:root{--primary:#2d7a7e;--primary-dark:#1f5c60;--primary-pale:#eaf4f3;--amber:#c87836;--amber-dark:#a75d23;--cream:#fbf8f1;--ink:#203132;--muted:#657273;--line:#dce5e3;--white:#fff;--shadow:0 18px 48px rgba(31,78,80,.1);--radius:24px;--font:"Noto Sans JP",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body.portfolio-v2{margin:0;background:var(--white);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit}.container{width:min(1120px,calc(100% - 40px));margin-inline:auto}.narrow{width:min(820px,calc(100% - 40px))}.section{padding:104px 0}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(220,229,227,.8);backdrop-filter:blur(14px)}.header-inner{height:80px;display:flex;align-items:center;gap:28px}.site-logo{font-weight:800;letter-spacing:.01em;color:var(--primary-dark);font-size:1.05rem;white-space:nowrap}.desktop-nav{display:flex;gap:22px;margin-left:auto;font-size:.85rem;font-weight:600}.desktop-nav a{transition:color .2s}.desktop-nav a:hover{color:var(--primary)}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:54px;padding:12px 25px;border:2px solid var(--amber);border-radius:999px;background:var(--amber);color:#fff;font-weight:700;line-height:1.4;box-shadow:0 8px 22px rgba(200,120,54,.2);transition:transform .2s,background .2s,border-color .2s,box-shadow .2s}.button:hover{background:var(--amber-dark);border-color:var(--amber-dark);transform:translateY(-2px);box-shadow:0 12px 26px rgba(167,93,35,.25)}.button:focus-visible,.menu-toggle:focus-visible,.faq-item button:focus-visible,a:focus-visible{outline:3px solid #f0b87e;outline-offset:3px}.button-small{min-height:44px;padding:8px 18px;font-size:.85rem;box-shadow:none}.button-outline{background:transparent;border-color:var(--primary);color:var(--primary);box-shadow:none}.button-outline:hover{background:var(--primary);border-color:var(--primary);color:#fff}.menu-toggle,.mobile-nav{display:none}
.hero{padding:82px 0 112px;background:linear-gradient(135deg,#f5fbfa 0%,var(--cream) 100%);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:70px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 20px;color:var(--primary);font-size:.9rem;font-weight:700}.hero h1{margin:0;font-size:clamp(2.65rem,4.5vw,4.6rem);line-height:1.25;letter-spacing:-.035em;font-weight:800}.hero h1 em{color:var(--primary);font-style:normal}.hero-lead{max-width:620px;margin:26px 0 34px;color:#4b5c5d;font-size:1.05rem}.button-row{display:flex;gap:14px;flex-wrap:wrap}.hero-visual{position:relative;padding:0 0 70px 20px}.hero-visual:before{content:"";position:absolute;inset:-40px -100px 80px 70px;border-radius:50%;background:#dfeeed;z-index:0}.hero-visual>img{position:relative;z-index:1;width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:30px;box-shadow:var(--shadow)}.approach-card{position:absolute;z-index:2;left:0;right:30px;bottom:0;padding:25px 28px;background:#fff;border-radius:20px;border-left:5px solid var(--amber);box-shadow:var(--shadow)}.approach-card strong{font-size:1.05rem}.approach-card p{margin:8px 0 0;color:var(--muted);font-size:.9rem;line-height:1.75}
.section-heading{max-width:700px;margin:0 auto 52px;text-align:center}.section-heading>span{display:block;margin-bottom:7px;color:var(--primary);font-size:.86rem;font-weight:800;letter-spacing:.1em}.section-heading h2{margin:0;font-size:clamp(2rem,3.4vw,3rem);line-height:1.35;letter-spacing:-.025em}.section-heading p{margin:17px 0 0;color:var(--muted)}.problems{background:var(--cream)}.problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.problem-card{display:flex;align-items:flex-start;gap:16px;padding:24px;background:#fff;border:1px solid #eee9de;border-radius:18px}.problem-card p{margin:0;font-weight:600;line-height:1.65}.icon-box{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--primary-pale);color:var(--primary)}.icon-box .icon{font-size:1.35rem}.center-cta{text-align:center;margin-top:45px}.center-cta p{margin:0 0 18px;color:var(--muted)}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-card{padding:36px 30px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;transition:transform .25s,box-shadow .25s}.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.large-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--primary-pale);color:var(--primary)}.large-icon .icon{font-size:1.8rem}.service-card h3{margin:24px 0 12px;font-size:1.25rem}.service-card>p{margin:0;color:var(--muted)}.service-card ul{display:grid;gap:8px;margin:24px 0 0;padding:20px 0 0;border-top:1px solid var(--line);list-style:none}.service-card li{display:flex;gap:8px;align-items:center;font-size:.9rem;font-weight:600}.service-card li .icon{color:var(--primary)}
.trust{background:var(--primary-dark);color:#fff}.section-heading.light>span{color:#b9e0de}.section-heading.light p{color:#c5d5d5}.trust-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.trust-card{display:flex;gap:18px;padding:26px;border:1px solid rgba(255,255,255,.14);border-radius:20px;background:rgba(255,255,255,.075)}.icon-box.amber{background:var(--amber);color:#fff}.trust-card h3{margin:0 0 6px;font-size:1.05rem}.trust-card p{margin:0;color:#c9d7d7;font-size:.9rem}
.works{background:#f8fbfa}.works-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.work-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 26px rgba(31,78,80,.06)}.work-image{overflow:hidden;aspect-ratio:16/9;background:#edf2f1}.work-image img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .4s}.work-card:hover .work-image img{transform:scale(1.025)}.work-body{padding:28px}.tags{display:flex;gap:7px;flex-wrap:wrap}.tags span{padding:4px 10px;border-radius:999px;background:var(--primary-pale);color:var(--primary-dark);font-size:.75rem;font-weight:700}.tags span:first-child{background:#fff0e3;color:#9a521d}.work-card h3{margin:15px 0 20px;font-size:1.4rem}.work-card dl{display:grid;gap:8px;margin:0}.work-card dl div{display:grid;grid-template-columns:52px 1fr;gap:12px}.work-card dt{color:var(--muted);font-size:.78rem;font-weight:700}.work-card dd{margin:0;font-size:.88rem;line-height:1.6}.work-actions{display:flex;align-items:center;gap:20px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.work-actions a{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-size:.88rem;font-weight:800}.work-actions a:hover{text-decoration:underline}.work-actions .icon{font-size:1rem}
.flow-list{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin:0;padding:0;list-style:none}.flow-list:before{content:"";position:absolute;top:27px;left:9%;right:9%;height:2px;background:var(--line)}.flow-list li{position:relative;text-align:center}.step-number{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;margin:0 auto 20px;border-radius:50%;background:var(--primary);color:#fff;font-weight:800}.flow-list h3{margin:0 0 8px;font-size:1rem}.flow-list p{margin:0;color:var(--muted);font-size:.88rem}
.about{background:var(--cream)}.about-grid{display:grid;grid-template-columns:380px 1fr;gap:56px;align-items:center}.about-photo img{display:block;width:100%;height:auto;border-radius:28px;box-shadow:var(--shadow)}.about-copy h3{margin:0 0 12px;font-size:2rem;color:var(--primary-dark)}.profile-meta{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:20px;color:var(--primary);font-size:.88rem;font-weight:700}.profile-meta span{display:flex;align-items:center;gap:6px}.about-copy p{color:#4c5c5c}.about-values{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px}.about-values article{display:flex;gap:18px;padding:26px;background:#fff;border-radius:18px}.about-values article>.icon{font-size:1.7rem;color:var(--primary)}.about-values h3{margin:0 0 7px;font-size:1rem}.about-values p{margin:0;color:var(--muted);font-size:.88rem}
.pricing{background:#fff}.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}.price-grid article{position:relative;padding:34px 28px;border:1px solid var(--line);border-radius:var(--radius);text-align:center}.price-grid article.featured{border:2px solid var(--primary);box-shadow:var(--shadow)}.price-grid .featured>span{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);padding:5px 16px;border-radius:999px;background:var(--primary);color:#fff;font-size:.75rem;font-weight:700;white-space:nowrap}.price-grid h3{margin:0 0 12px;font-size:1.05rem}.price-grid strong{display:block;color:var(--primary-dark);font-size:2.25rem;line-height:1.4}.price-grid small{font-size:1rem}.price-grid p{color:var(--muted);font-size:.88rem}.price-note{text-align:center;margin:25px 0 0;color:var(--muted);font-size:.82rem}
.faq{background:#f7faf9}.faq-list{display:grid;gap:12px}.faq-item{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}.faq-item button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:20px 24px;border:0;background:transparent;color:var(--ink);text-align:left;font-weight:700;cursor:pointer}.faq-item button .icon{color:var(--primary);transition:transform .25s}.faq-item button[aria-expanded="true"] .icon{transform:rotate(180deg)}.faq-answer{padding:0 24px 20px;color:var(--muted)}.faq-answer p{margin:0;padding-top:17px;border-top:1px solid var(--line)}
.contact{background:var(--primary-dark);color:#fff}.contact-box{display:grid;grid-template-columns:1.4fr .6fr;gap:70px;align-items:center}.contact-box>div>span{color:#b9e0de;font-size:.85rem;font-weight:700;letter-spacing:.08em}.contact-box h2{margin:5px 0 16px;font-size:clamp(2rem,3vw,3rem)}.contact-box p{max-width:660px;color:#c9d7d7}.button-light{margin-top:15px;background:#fff;border-color:#fff;color:var(--primary-dark);box-shadow:none}.button-light:hover{background:var(--cream);border-color:var(--cream);color:var(--primary-dark)}.contact-box ul{display:grid;gap:14px;margin:0;padding:0;list-style:none}.contact-box li{display:flex;align-items:center;gap:10px;font-weight:600}.contact-box li .icon{color:#b9e0de}.site-footer{padding:36px 0;background:#153f42;color:#fff}.site-footer .container{display:flex;align-items:center;justify-content:space-between;gap:30px}.site-footer strong{font-size:1.1rem}.site-footer p{margin:3px 0 0;color:#b9caca;font-size:.82rem}.site-footer small{color:#a9baba}
@media(max-width:960px){.desktop-nav,.header-cta{display:none}.menu-toggle{display:grid;gap:4px;width:44px;height:44px;margin-left:auto;padding:11px;border:0;border-radius:50%;background:var(--primary-pale);cursor:pointer}.menu-toggle span:not(.screen-reader-text){display:block;width:22px;height:2px;background:var(--primary-dark);transition:.2s}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.mobile-nav{position:absolute;top:80px;left:0;right:0;display:none;padding:12px 20px 24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 28px rgba(31,78,80,.12)}.mobile-nav.is-open{display:grid}.mobile-nav a{padding:12px 0;border-bottom:1px solid var(--line);font-weight:700}.hero-grid{grid-template-columns:1fr;gap:50px}.hero-copy{max-width:720px}.hero-visual{max-width:680px;margin:auto}.problem-grid{grid-template-columns:repeat(2,1fr)}.service-grid{grid-template-columns:1fr}.service-card{display:grid;grid-template-columns:auto 1fr;column-gap:22px}.service-card .large-icon{grid-row:1/4}.service-card h3{margin:5px 0 8px}.service-card ul{grid-column:2}.flow-list{grid-template-columns:repeat(2,1fr);row-gap:42px}.flow-list:before{display:none}.about-grid{grid-template-columns:310px 1fr}.contact-box{grid-template-columns:1fr;gap:32px}.contact-box ul{grid-template-columns:repeat(3,auto)}}
@media(max-width:680px){.container,.narrow{width:min(100% - 32px,1120px)}.section{padding:74px 0}.header-inner{height:68px}.mobile-nav{top:68px}.hero{padding:55px 0 82px}.hero h1{font-size:clamp(2.15rem,10.5vw,3.2rem)}.hero-lead{font-size:.98rem}.button-row{display:grid}.button{width:100%}.hero-visual{padding:0 0 95px}.hero-visual:before{inset:-20px -60px 110px 40px}.hero-visual>img{aspect-ratio:4/3;border-radius:20px}.approach-card{right:0;padding:20px}.section-heading{margin-bottom:36px}.section-heading h2{font-size:2rem}.problem-grid,.trust-grid,.works-grid,.price-grid,.about-values{grid-template-columns:1fr}.problem-card{padding:19px}.service-card{display:block;padding:28px 24px}.service-card h3{margin-top:18px}.service-card ul{display:grid}.trust-card{padding:21px}.work-body{padding:23px}.flow-list{grid-template-columns:1fr;gap:0}.flow-list li{display:grid;grid-template-columns:54px 1fr;gap:18px;text-align:left;padding-bottom:30px}.flow-list li:not(:last-child):before{content:"";position:absolute;left:26px;top:54px;bottom:0;width:2px;background:var(--line)}.step-number{width:52px;height:52px;margin:0}.about-grid{grid-template-columns:1fr;gap:30px}.about-photo{max-width:450px}.profile-meta{display:grid;gap:7px}.price-grid{gap:16px}.price-grid article.featured{margin-top:10px}.contact-box ul{grid-template-columns:1fr}.site-footer .container{display:block}.site-footer small{display:block;margin-top:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* プロフィール写真は縦長の実写真を切らずに表示する */
.about-photo img{
	aspect-ratio:auto!important;
	width:100%!important;
	height:auto!important;
	max-height:none!important;
	object-fit:contain!important;
	object-position:center!important;
}

/* スマホメニューの×印を中央で揃える */
@media(max-width:960px){
	.menu-toggle{
		position:relative!important;
		display:block!important;
		padding:0!important;
	}
	.menu-toggle span:not(.screen-reader-text){
		position:absolute!important;
		left:50%!important;
		top:50%!important;
		width:22px!important;
		height:2px!important;
		margin:0!important;
		transform:translate(-50%,-50%)!important;
		transform-origin:center!important;
	}
	.menu-toggle span:not(.screen-reader-text):nth-child(1){
		transform:translate(-50%,calc(-50% - 7px))!important;
	}
	.menu-toggle span:not(.screen-reader-text):nth-child(2){
		transform:translate(-50%,-50%)!important;
	}
	.menu-toggle span:not(.screen-reader-text):nth-child(3){
		transform:translate(-50%,calc(-50% + 7px))!important;
	}
	.menu-toggle[aria-expanded="true"] span:not(.screen-reader-text):nth-child(1){
		transform:translate(-50%,-50%) rotate(45deg)!important;
	}
	.menu-toggle[aria-expanded="true"] span:not(.screen-reader-text):nth-child(2){
		opacity:0!important;
	}
	.menu-toggle[aria-expanded="true"] span:not(.screen-reader-text):nth-child(3){
		transform:translate(-50%,-50%) rotate(-45deg)!important;
	}
}
