*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --green:#2E8B6A;--green-l:#4DB88C;--green-d:#1A5C44;
  --gold:#C88B2E;--gold-l:#E8AD4A;--gold-bg:rgba(200,139,46,.07);
  --dark:#2A2520;--gray:#7A7268;--gray-l:#A89E94;
  --bg:#FAF8F5;--bg2:#F3F0EB;--warm:#FFF8F0;--cream:#FFFCF7;--white:#FFFFFF;
  --font-sans:'Zen Maru Gothic','Noto Sans JP',sans-serif;
  --font-serif:'Noto Serif JP',serif;
  --font-ui:'Noto Sans JP',sans-serif;
  --font-en:'Inter',sans-serif;
  --r:20px;--rl:28px;
  --ease:cubic-bezier(.22,1,.36,1);
  --shadow:0 8px 32px rgba(58,53,48,.06);--shadow-lg:0 20px 60px rgba(58,53,48,.1);
}
html{font-size:16px}
body{font-family:var(--font-sans);color:var(--dark);line-height:1.8;background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
::selection{background:var(--green-l);color:#fff}

/* Smooth scroll overrides */
html.lenis{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto}

/* ===== LOADER ===== */
#loader{position:fixed;inset:0;z-index:10000;background:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s,visibility .8s}
#loader.done{opacity:0;visibility:hidden;pointer-events:none}
.ld-counter{font-family:var(--font-en);font-size:clamp(4rem,10vw,7rem);font-weight:900;color:var(--green);line-height:1;opacity:0;animation:ldIn .4s .1s ease forwards}
.ld-name{font-family:var(--font-sans);font-size:.9rem;font-weight:700;color:var(--gray-l);letter-spacing:8px;margin-top:20px;opacity:0;animation:ldIn .4s .3s ease forwards}
@keyframes ldIn{to{opacity:1}}

/* ===== HEADER ===== */
#np-header{position:fixed;top:0;left:0;width:100%;z-index:1000;padding:20px 0;transition:all .5s var(--ease);mix-blend-mode:difference}
#np-header.scrolled{mix-blend-mode:normal;background:rgba(250,248,245,.92);backdrop-filter:blur(20px);box-shadow:0 1px 20px rgba(0,0,0,.03);padding:14px 0}
#np-header.scrolled .logo-txt,#np-header.scrolled nav a,#np-header.scrolled .mob-tog span{color:var(--dark)}
#np-header.scrolled .mob-tog span{background:var(--dark)}
#np-header .inner{display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:0 auto;padding:0 48px}
.logo{display:flex;align-items:center;gap:14px}
.logo-txt{font-family:var(--font-sans);font-size:1.2rem;font-weight:900;color:#fff;transition:color .4s}
.logo-txt span{color:var(--gold-l)}
nav{display:flex;align-items:center;gap:36px}
nav a{font-size:.78rem;font-weight:500;color:rgba(255,255,255,.6);transition:color .3s;font-family:var(--font-ui);letter-spacing:.5px}
nav a:hover{color:#fff}
#np-header.scrolled nav a{color:var(--gray)}
#np-header.scrolled nav a:hover{color:var(--green)}
.h-cta{background:transparent;color:#fff;padding:10px 28px;border-radius:0;font-weight:600;font-size:.78rem;border:1px solid rgba(255,255,255,.3);cursor:pointer;transition:all .4s var(--ease);font-family:var(--font-ui);letter-spacing:1px}
.h-cta:hover{background:rgba(255,255,255,.1)}
#np-header.scrolled .h-cta{color:var(--dark);border-color:var(--dark)}
#np-header.scrolled .h-cta:hover{background:var(--dark);color:#fff}
.mob-tog{display:none;background:none;border:none;cursor:pointer;padding:8px}
.mob-tog span{display:block;width:22px;height:1.5px;background:#fff;margin:5px 0;transition:all .3s}

/* ===== HERO — CINEMATIC DARK ===== */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 48px 80px;overflow:hidden;background:var(--dark);color:#fff}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 60%,rgba(46,139,106,.08),transparent 50%),radial-gradient(ellipse at 70% 30%,rgba(200,139,46,.05),transparent 50%)}
.hero-content{position:relative;z-index:2;max-width:1400px;width:100%;margin:0 auto}
.hero h1{font-family:var(--font-sans);font-size:clamp(2.4rem,6vw,5rem);font-weight:900;line-height:1.25;margin-bottom:32px;color:rgba(255,255,255,.85)}
.hero h1 .rotate-wrap{position:relative;display:inline-block}
.hero h1 .rotate-word{display:inline-block;transition:all .7s ease;font-family:var(--font-serif);font-style:italic;font-weight:700;background:linear-gradient(135deg,#E87040,#F0A050,#4DB88C,#2E8B6A);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:paintShift 6s ease infinite}
.hero h1 .rotate-word.out{opacity:0;transform:translateY(20px);position:absolute;left:0;top:0}
.hero h1 .rotate-word.in{opacity:1;transform:translateY(0)}
.hero-sub{font-size:clamp(.88rem,1.1vw,1rem);color:rgba(255,255,255,.4);line-height:2;max-width:560px;font-family:var(--font-ui);font-weight:300}
.hero-btn-main{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:var(--green);color:#fff;font-size:.85rem;font-weight:700;border-radius:6px;font-family:var(--font-ui);transition:all .4s var(--ease);letter-spacing:.5px}
.hero-btn-main:hover{background:var(--green-l);transform:translateY(-2px);box-shadow:0 8px 24px rgba(46,139,106,.3)}
.hero-btn-sub{display:inline-flex;align-items:center;gap:6px;padding:14px 24px;background:rgba(200,139,46,.12);color:var(--gold-l);font-size:.8rem;font-weight:600;border-radius:6px;font-family:var(--font-ui);border:1px solid rgba(200,139,46,.25);transition:all .4s var(--ease);backdrop-filter:blur(8px)}
.hero-btn-sub:hover{background:rgba(200,139,46,.2);transform:translateY(-2px)}
.hero-scroll{position:absolute;bottom:40px;right:48px;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2}
.hero-scroll span{font-size:.6rem;letter-spacing:4px;color:rgba(255,255,255,.25);font-family:var(--font-en);text-transform:uppercase;writing-mode:vertical-rl}
.hero-scroll-line{width:1px;height:48px;background:rgba(255,255,255,.12);position:relative;overflow:hidden}
.hero-scroll-line::after{content:'';position:absolute;top:-100%;width:100%;height:50%;background:var(--gold-l);animation:scrollDown 2.5s ease infinite}
@keyframes scrollDown{to{top:200%}}
@keyframes paintShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}

/* ===== SECTION SHARED ===== */
.sec{padding:160px 48px;position:relative}
.sec-inner{max-width:1200px;margin:0 auto}
.sec-label{font-family:var(--font-en);font-size:.68rem;font-weight:600;color:var(--gray-l);letter-spacing:5px;text-transform:uppercase;margin-bottom:16px;display:block}
.sec-title{font-family:var(--font-sans);font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:900;line-height:1.3;color:var(--dark);margin-bottom:20px}
.sec-title .serif{font-family:var(--font-serif);font-style:italic;font-weight:700;color:var(--green)}
.sec-desc{font-size:.92rem;color:var(--gray);line-height:2.2;max-width:520px;font-family:var(--font-ui);font-weight:300}
/* Reveal animation base */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-line{overflow:hidden;display:block}.reveal-line span{display:block;transform:translateY(110%);transition:transform .7s var(--ease)}
.reveal-line.visible span{transform:translateY(0)}

/* ===== TRUST BAR ===== */
.trust{padding:64px 48px;background:var(--white);border-bottom:1px solid rgba(0,0,0,.03)}
.trust-row{display:flex;justify-content:center;gap:48px;flex-wrap:wrap;max-width:1400px;margin:0 auto}
.trust-item{display:flex;align-items:center;gap:12px}
.trust-item .ti-ico{width:44px;height:44px;border-radius:14px;background:var(--bg2);display:flex;align-items:center;justify-content:center}
.trust-item .ti-ico svg{width:20px;height:20px;stroke:var(--green);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.trust-item .ti-t{font-size:.85rem;font-weight:700}
.trust-item .ti-s{font-size:.68rem;color:var(--gray-l);font-family:var(--font-ui)}

/* ===== STATS ===== */
.stats{padding:120px 48px;background:var(--white)}
.stats-row{display:flex;justify-content:center;gap:0;max-width:1000px;margin:0 auto}
.stat{text-align:center;flex:1;padding:0 40px;position:relative}
.stat:not(:last-child)::after{content:'';position:absolute;right:0;top:15%;height:70%;width:1px;background:rgba(0,0,0,.05)}
.stat-val{font-family:var(--font-en);font-size:clamp(2.5rem,5vw,4rem);font-weight:900;color:var(--green);line-height:1}
.stat-val .u{font-size:.4em;color:var(--gold);margin-left:2px;font-weight:700}
.stat-label{font-size:.72rem;color:var(--gray-l);margin-top:8px;font-family:var(--font-ui)}

/* ===== PROBLEMS ===== */
.problems{background:var(--warm)}
.prob-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.prob-cards{display:flex;flex-direction:column;gap:20px}
.prob-card{display:grid;grid-template-columns:52px 1fr;gap:20px;padding:28px 32px;border-radius:var(--r);background:var(--white);border:1px solid rgba(0,0,0,.03);transition:all .5s var(--ease)}
.prob-card:hover{transform:translateX(8px);box-shadow:var(--shadow-lg)}
.prob-card .pi{width:52px;height:52px;border-radius:16px;background:var(--warm);display:flex;align-items:center;justify-content:center;transition:transform .4s var(--ease)}
.prob-card:hover .pi{transform:scale(1.1) rotate(-5deg)}
.prob-card .pi svg{width:24px;height:24px;stroke:var(--gold);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.prob-card h3{font-size:.92rem;font-weight:700;margin-bottom:4px}
.prob-card p{font-size:.8rem;color:var(--gray);line-height:1.9;font-family:var(--font-ui)}

/* ===== REASONS — Numbered ===== */
.reasons{background:var(--white)}
.r-list{display:flex;flex-direction:column;gap:0}
.r-row{display:grid;grid-template-columns:120px 1fr;gap:48px;align-items:start;padding:56px 0;border-bottom:1px solid rgba(0,0,0,.04);transition:all .5s var(--ease)}
.r-row:first-child{padding-top:0}.r-row:last-child{border-bottom:none;padding-bottom:0}
.r-num-big{font-family:var(--font-en);font-size:clamp(2.5rem,4vw,4rem);font-weight:900;color:rgba(46,139,106,.07);line-height:1;transition:color .5s}
.r-row:hover .r-num-big{color:rgba(46,139,106,.15)}
.r-body h3{font-size:1.15rem;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:12px}
.r-body h3 svg{width:20px;height:20px;stroke:var(--green);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.r-body p{font-size:.88rem;color:var(--gray);line-height:2.2;font-family:var(--font-ui);font-weight:300;max-width:600px}
.r-tags{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.r-tags span{padding:4px 16px;border-radius:20px;font-size:.68rem;font-weight:600;background:rgba(46,139,106,.04);color:var(--green);font-family:var(--font-ui)}

/* ===== SERVICES — 4 col ===== */
.services{background:var(--bg)}
/* Services — horizontal row layout (posts-tokyo style) */
.srv-list{margin-top:64px}
.srv-row{display:grid;grid-template-columns:120px 1fr 1.4fr 40px;align-items:center;gap:0 32px;padding:28px 0;border-top:1px solid rgba(42,37,32,.1);cursor:pointer;transition:padding .25s cubic-bezier(.16,1,.3,1),background-color .25s cubic-bezier(.16,1,.3,1)}
.srv-row:last-child{border-bottom:1px solid rgba(42,37,32,.1)}
.srv-row:hover{padding:28px 32px;background:var(--cream);border-radius:4px}
.srv-num{font-family:var(--font-en);font-size:3.2rem;font-weight:900;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(42,37,32,.15);transition:color .35s var(--ease),-webkit-text-stroke-color .35s var(--ease)}
.srv-row:hover .srv-num{-webkit-text-stroke-color:var(--green);color:rgba(46,139,106,.06)}
.srv-title-col h3{font-size:1.05rem;font-weight:700;letter-spacing:.02em}
.srv-title-col .srv-sub{font-size:.72rem;color:var(--gray-l);margin-top:2px;font-family:var(--font-en);font-weight:400;text-transform:uppercase;letter-spacing:.08em}
.srv-desc{font-size:.88rem;color:var(--gray);line-height:1.9;font-family:var(--font-ui);font-weight:300}
.srv-arrow{font-size:1.4rem;color:var(--gray-l);transition:color .3s,transform .3s var(--ease);text-align:right}
.srv-row:hover .srv-arrow{color:var(--green);transform:translateX(4px)}

/* ===== GALLERY — Horizontal ===== */
.gallery{padding:160px 0;background:var(--cream);overflow:hidden;position:relative}
.gal-head{padding:0 48px;max-width:1200px;margin:0 auto 64px}
.gal-scroll{display:flex;gap:24px;padding:0 48px}
.gal-card{flex-shrink:0;width:420px;border-radius:var(--rl);overflow:hidden;background:var(--white);border:1px solid rgba(0,0,0,.02);transition:all .6s var(--ease);box-shadow:var(--shadow)}
.gal-card:hover{transform:scale(1.02);box-shadow:var(--shadow-lg)}
.gal-slider{position:relative;aspect-ratio:4/3;overflow:hidden;cursor:col-resize}
.gal-bf,.gal-af{position:absolute;inset:0}
.gal-bf{background:linear-gradient(135deg,#B8B0A6,#9A9288)}
.gal-af{background:linear-gradient(135deg,#7BC8A0,#3DA06A);clip-path:inset(0 50% 0 0)}
.gal-bf svg,.gal-af svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40%;height:40%;stroke:rgba(255,255,255,.25);fill:none;stroke-width:1.5}
.gal-af svg{stroke:rgba(255,255,255,.5)}
.gal-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--white);z-index:2;transform:translateX(-50%)}
.gal-handle::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:var(--white);box-shadow:0 4px 16px rgba(0,0,0,.12)}
.gal-handle svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;stroke:var(--dark);fill:none;stroke-width:2.5;stroke-linecap:round;z-index:1}
.gal-lb{position:absolute;top:12px;padding:4px 14px;border-radius:6px;font-size:.62rem;font-weight:700;z-index:3;font-family:var(--font-en);letter-spacing:1px}
.gal-lb.bf{left:12px;background:rgba(0,0,0,.3);color:white;backdrop-filter:blur(4px)}
.gal-lb.af{right:12px;background:var(--green);color:white}
.gal-info{padding:24px 28px}
.gal-info .tag{display:inline-block;padding:3px 14px;border-radius:14px;font-size:.62rem;font-weight:700;background:rgba(46,139,106,.05);color:var(--green);margin-bottom:8px;font-family:var(--font-ui)}
.gal-info h4{font-size:.95rem;font-weight:700}
.gal-info p{font-size:.76rem;color:var(--gray);margin-top:4px;font-family:var(--font-ui)}

/* ===== FLOW ===== */
.flow{background:var(--white)}
.flow-wrap{max-width:800px;margin:64px auto 0;position:relative}
.flow-line{position:absolute;left:56px;top:0;bottom:0;width:1.5px;background:linear-gradient(180deg,var(--green-l),var(--gold-l))}
.fl-step{display:grid;grid-template-columns:72px 1fr;gap:32px;margin-bottom:48px;position:relative}
.fl-step:last-child{margin-bottom:0}
.fl-mk{width:72px;height:72px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-en);font-size:1.2rem;font-weight:900;box-shadow:0 6px 24px rgba(46,139,106,.15),0 0 0 5px var(--white);position:relative;z-index:2;transition:all .5s var(--ease)}
.fl-step:hover .fl-mk{transform:scale(1.08);box-shadow:0 10px 32px rgba(46,139,106,.2),0 0 0 5px var(--white)}
.fl-ct{padding:8px 0 0}
.fl-ct h4{font-size:1rem;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.fl-ct p{font-size:.85rem;color:var(--gray);line-height:2;font-family:var(--font-ui);font-weight:300}
.fl-free{padding:3px 10px;border-radius:4px;font-size:.6rem;font-weight:700;background:#EF4444;color:white;font-family:var(--font-en)}

/* ===== REVIEWS — Carousel (posts-tokyo style) ===== */
.reviews{background:var(--bg2);overflow:hidden}
.rv-container{position:relative;max-width:1200px;margin:0 auto}
.rv-viewport{overflow:hidden}
.rv-track{display:flex;transition:transform .6s var(--ease)}
.rv-card{flex-shrink:0;width:100%;padding:0 40px}
.rv-card-inner{display:grid;grid-template-columns:auto 1fr;gap:56px;align-items:center}
.rv-quote{font-family:var(--font-serif);font-size:clamp(1rem,1.4vw,1.2rem);line-height:2.4;color:var(--dark);font-weight:400;position:relative;padding-left:32px}
.rv-quote::before{content:'"';position:absolute;left:0;top:-8px;font-size:3rem;color:var(--green-l);font-family:var(--font-serif);line-height:1}
.rv-author-info{margin-top:28px;padding-left:32px}
.rv-name{font-size:.95rem;font-weight:700}
.rv-meta{font-size:.78rem;color:var(--gray);margin-top:2px;font-family:var(--font-ui)}
.rv-photo{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--green-l));display:flex;align-items:center;justify-content:center;color:white;font-weight:900;font-size:2rem;flex-shrink:0}
.rv-nav{display:flex;gap:12px;margin-top:48px}
.rv-nav button{width:52px;height:52px;border-radius:50%;border:1px solid rgba(0,0,0,.08);background:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease)}
.rv-nav button:hover{background:var(--dark);border-color:var(--dark)}
.rv-nav button:hover svg{stroke:#fff}
.rv-nav button svg{width:18px;height:18px;stroke:var(--dark);fill:none;stroke-width:2;stroke-linecap:round}
.rv-dots{display:flex;gap:6px;align-items:center;margin-left:20px}
.rv-dots span{width:6px;height:6px;border-radius:50%;background:rgba(0,0,0,.1);transition:all .3s}
.rv-dots span.active{width:24px;border-radius:3px;background:var(--green)}

/* ===== CTA ===== */
.cta{padding:160px 48px;text-align:center;background:var(--dark);color:#fff;position:relative;overflow:hidden}
.cta::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 40% 60%,rgba(46,139,106,.08),transparent 50%)}
.cta h2{font-family:var(--font-sans);font-size:clamp(1.6rem,3.5vw,2.8rem);font-weight:900;margin-bottom:20px;position:relative;z-index:1;color:rgba(255,255,255,.9)}
.cta h2 .serif{font-family:var(--font-serif);font-style:italic;color:var(--gold-l)}
.cta .cta-d{font-size:.95rem;opacity:.4;margin-bottom:56px;position:relative;z-index:1;font-family:var(--font-ui);font-weight:300}
.cta-btns{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}
.cta .btn-main{display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:#fff;font-weight:700;font-size:1rem;padding:20px 52px;border-radius:0;border:none;cursor:pointer;transition:all .4s var(--ease);font-family:var(--font-sans);letter-spacing:1px}
.cta .btn-main:hover{background:var(--gold-l);transform:translateY(-2px)}
.cta .btn-main svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round}
.cta-phone{display:inline-flex;align-items:center;gap:14px;background:transparent;border:1px solid rgba(255,255,255,.15);padding:18px 44px;font-weight:600;font-size:.95rem;transition:all .4s;font-family:var(--font-sans);color:rgba(255,255,255,.7);letter-spacing:1px}
.cta-phone:hover{border-color:rgba(255,255,255,.3);color:#fff}
.cta-phone svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.cta-note{margin-top:28px;font-size:.72rem;opacity:.25;position:relative;z-index:1;font-family:var(--font-ui)}

/* ===== FOOTER ===== */
.np-footer{padding:80px 48px 36px;background:#1E1A16;color:rgba(255,255,255,.35)}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:56px;max-width:1400px;margin:0 auto 56px}
.ft-brand .logo-txt{font-family:var(--font-sans);font-size:1.2rem;font-weight:900;color:rgba(255,255,255,.8);margin-bottom:14px}
.ft-brand .logo-txt span{color:var(--gold-l)}
.ft-brand p{font-size:.8rem;line-height:2;font-family:var(--font-ui)}
footer h4{color:rgba(255,255,255,.5);font-size:.68rem;font-weight:600;letter-spacing:4px;text-transform:uppercase;margin-bottom:18px;font-family:var(--font-en)}
footer ul{list-style:none}
footer li{margin-bottom:10px}
footer li a{font-size:.8rem;transition:all .3s;font-family:var(--font-ui)}
footer li a:hover{color:var(--green-l)}
.ft-bottom{max-width:1400px;margin:0 auto;padding-top:28px;border-top:1px solid rgba(255,255,255,.04);display:flex;justify-content:space-between;align-items:center;font-size:.68rem;font-family:var(--font-en)}

/* ===== FLOAT BAR ===== */
.fbar{position:fixed;bottom:0;left:0;right:0;z-index:999;background:rgba(250,248,245,.94);backdrop-filter:blur(20px);border-top:1px solid rgba(0,0,0,.03);padding:12px 24px;display:flex;gap:12px;justify-content:center;transform:translateY(100%);transition:transform .5s var(--ease)}
.fbar.show{transform:translateY(0)}
.fbar a{flex:1;max-width:220px;padding:14px;text-align:center;font-weight:700;font-size:.85rem;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-sans)}
.fbar .fb-p{background:var(--green);color:white}
.fbar .fb-f{background:var(--gold);color:white}
.fbar a svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .sec{padding:100px 24px}
  #np-header .inner{padding:0 24px}
  .hero{padding:0 24px 60px}
  nav{display:none}.mob-tog{display:block}
  .prob-layout{grid-template-columns:1fr}
  .srv-row{grid-template-columns:80px 1fr 1.2fr 32px;gap:0 20px}
  .stats-row{flex-wrap:wrap;gap:40px}
  .stat::after{display:none}
  .rv-card-inner{grid-template-columns:1fr}
  .rv-photo{width:80px;height:80px;font-size:1.4rem}
  .ft-grid{grid-template-columns:1fr 1fr}
  .gal-card{width:340px}
  .trust{padding:48px 24px}
  .gallery{padding:100px 0}
  .gal-head{padding:0 24px}
  .gal-scroll{padding:0 24px}
}
@media(max-width:768px){
  .hero h1{font-size:clamp(1.8rem,5vw,2.4rem)}
  .stats-row{flex-direction:column;align-items:center;gap:32px}
  .prob-card{grid-template-columns:1fr;text-align:center;padding:24px}
  .prob-card .pi{margin:0 auto 8px}
  .r-row{grid-template-columns:1fr;gap:8px;padding:32px 0}
  .r-num-big{font-size:2rem}
  .r-body h3{justify-content:center}.r-tags{justify-content:center}
  .srv-row{grid-template-columns:1fr;gap:12px 0;padding:24px 0}
  .srv-num{font-size:2.2rem}
  .srv-desc{margin-top:4px}
  .srv-arrow{display:none}
  .srv-row:hover{padding:24px 20px}
  .gal-card{width:300px}
  .fl-step{grid-template-columns:52px 1fr;gap:20px}
  .fl-mk{width:52px;height:52px;font-size:1rem}
  .flow-line{left:42px}
  .ft-grid{grid-template-columns:1fr}
  .ft-bottom{flex-direction:column;gap:12px;text-align:center}
  .cta{padding:100px 24px}
  .rv-quote{font-size:.95rem;padding-left:24px}
  .rv-card{padding:0 20px}
  .rv-card-inner{gap:28px}
  .trust-row{gap:20px}
}

/* ===== FAQ ===== */
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px}
.faq-item{background:var(--white);border-radius:var(--r);padding:24px 28px;border:1px solid rgba(0,0,0,.04);transition:box-shadow .4s var(--ease)}
.faq-item:hover{box-shadow:var(--shadow)}
.faq-q{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:700;font-size:.9rem;gap:16px}
.faq-icon{font-size:1.2rem;transition:transform .3s;color:var(--gray-l);flex-shrink:0}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease;color:var(--gray);font-size:.82rem;line-height:2}
.faq-a p{padding-top:14px}
.faq-item.open .faq-a{max-height:300px}
.faq-item.open .faq-icon{transform:rotate(45deg)}
@media(max-width:768px){.faq-grid{grid-template-columns:1fr}}

/* ===== SUBSIDY BANNER RESPONSIVE ===== */
@media(max-width:768px){
  .subsidy-banner{padding:28px 20px !important}
  .subsidy-banner > div{grid-template-columns:1fr !important;gap:12px !important;text-align:center}
  .subsidy-banner > div > div:first-child{display:none}
  .subsidy-banner > div > div:last-child{flex-direction:row;justify-content:center}
}

/* ===== AREA SECTION ===== */
.area-sec{background:var(--bg2)}
.area-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:48px}
.area-col h4{font-size:.85rem;font-weight:700;margin-bottom:12px;color:var(--dark);padding-bottom:8px;border-bottom:2px solid var(--green)}
.area-col ul{list-style:none}
.area-col li{font-size:.8rem;color:var(--gray);line-height:2.2;font-family:var(--font-ui);font-weight:300}
.area-note{margin-top:32px;padding:20px 24px;background:var(--white);border-radius:var(--r);font-size:.82rem;color:var(--gray);line-height:1.9;text-align:center}
@media(max-width:768px){
  .area-grid{grid-template-columns:repeat(2,1fr);gap:20px}
}

/* SWELL 子テーマ 上書き対策 */
body.nagomi-top {
  writing-mode: horizontal-tb !important;
}
body.nagomi-top .hero,
body.nagomi-top .trust,
body.nagomi-top .stats,
body.nagomi-top .sec,
body.nagomi-top .gallery,
body.nagomi-top .cta,
body.nagomi-top .np-footer {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
body.nagomi-top .hero {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  align-items: flex-start !important;
  min-height: 100vh !important;
}
body.nagomi-top .hero-content {
  max-width: 1400px !important;
  width: 100% !important;
  margin: 0 auto !important;
  writing-mode: horizontal-tb !important;
}
body.nagomi-top .hero h1 {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
}
body.nagomi-top * {
  writing-mode: horizontal-tb;
}
/* WordPress admin bar 対策 */
body.admin-bar.nagomi-top .hero {
  min-height: calc(100vh - 32px) !important;
}
/* SWELLのwrapper無効化 */
body.nagomi-top #primary,
body.nagomi-top #content,
body.nagomi-top .l-mainContent,
body.nagomi-top .l-content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
}