@charset "UTF-8";
/* ==========================================================
   WakabaWorks 若葉ワークス v10
   1  Tokens / Base
   2  Header
   3  Buttons / Links（相談につながるボタンはライムで統一）
   4  Hero
   5  Ticker
   6  Section common
   7  Concerns（お悩み）
   8  About / Reasons（安心な3つの理由）
   9  Service
   10 Price
   11 Works / Dialog
   12 Process / FAQ
   13 Contact
   14 Footer / Floating CTA
   15 Responsive
   16 Motion
   ========================================================== */

/* 1 Tokens / Base ---------------------------------------- */
:root{
  --ink:#151a16;
  --green:#173e2b;
  --lime:#c8fa66;
  --lime-deep:#8fc23a;
  --paper:#f4f6ef;
  --muted:#606e63;
  --line:#dce3d8;
  --line-paper:#c9d3c2;
  --hero-bg:#afc444;
  /* 行動の色 ライムは相談ボタンだけに使う */
  --cta:var(--lime);
  --cta-text:var(--ink);
  --cta-hover:var(--ink);
  --cta-hover-text:#fff;
  --gutter:clamp(24px,5vw,88px);
  --header-h:100px;
  --header-h-compact:72px;
  --slant:-14deg;
  --font:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
  --font-en:Arial,"Helvetica Neue",sans-serif;
  --font-label:"DIN Alternate","Bahnschrift",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  --ease:cubic-bezier(.19,1,.22,1);
  --ease-soft:cubic-bezier(.165,.84,.44,1);
  --ease-wipe:cubic-bezier(.79,.17,.15,.96);
  color:var(--ink);
  font-family:var(--font);
  font-size:16px;
  font-synthesis:none;
  scroll-behavior:smooth;
  scroll-padding-top:88px;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;padding-top:var(--header-h);background:#fff}
a{color:inherit;text-decoration:none}
button{border:0;font:inherit;color:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
img{display:block;width:100%;height:auto}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-weight:700;font-feature-settings:"palt"}
ul,ol{margin:0;padding:0;list-style:none}
em{font-style:normal;color:var(--green)}
[hidden]{display:none!important}
::selection{background:var(--lime);color:var(--ink)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #629025;outline-offset:6px}
.skip-link{position:fixed;top:-90px;left:20px;z-index:50;padding:16px;background:var(--green);color:#fff}
.skip-link:focus{top:15px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.scroll-sentinel{position:absolute;top:0;left:0;width:1px;height:140px;pointer-events:none;visibility:hidden}
.eyebrow{font-family:var(--font-label);font-size:.75rem;font-weight:600;letter-spacing:.14em}

/* 2 Header ------------------------------------------------ */
.site-header{position:fixed;inset:0 0 auto;z-index:20;height:var(--header-h);padding-inline:4vw;display:flex;align-items:center;justify-content:space-between;gap:30px;background:#fff;transition:height .5s var(--ease),box-shadow .5s}
.is-scrolled .site-header{height:var(--header-h-compact);box-shadow:0 1px 0 var(--line)}
.brand{display:block;position:relative;flex-shrink:0;width:208px;aspect-ratio:4.15;overflow:hidden;background:#fff}
.brand img{width:100%;height:100%;object-fit:cover;object-position:50% 49%;transform:scale(1.36)}
.site-header .brand{transform-origin:left center;transition:transform .5s var(--ease)}
.is-scrolled .site-header .brand{transform:scale(.84)}
#main-nav{display:flex;align-items:center;gap:32px;font-size:.875rem;font-weight:600}
#main-nav>a:not(.nav-contact){position:relative;padding:12px 0}
#main-nav>a:not(.nav-contact)::after{content:"";position:absolute;left:0;bottom:5px;width:100%;height:1px;background:var(--green);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav-contact{display:flex;gap:24px;padding:16px 22px;border-radius:999px;background:var(--cta);color:var(--cta-text);font-weight:700}
.menu-toggle{display:none}

/* 3 Buttons / Links -------------------------------------- */
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;padding:22px 26px;border-radius:999px;background:var(--cta);color:var(--cta-text);font-size:.9375rem;font-weight:700}
.button>span{font-size:1.4rem;line-height:1}
/* ボタン内で円が広がって色が変わる */
.button,.nav-contact{position:relative;isolation:isolate;overflow:hidden;--fill:var(--cta-hover);--fill-text:var(--cta-hover-text);transition:color .5s var(--ease)}
.button::before,.nav-contact::before{content:"";position:absolute;left:0;bottom:0;z-index:-1;width:220%;aspect-ratio:1;border-radius:50%;background:var(--fill);transform:translate(-50%,50%) scale(0);transition:transform .75s var(--ease)}
.button>span,.nav-contact>span{display:inline-block}
.button-note{padding-left:8px;color:var(--muted);font-size:.75rem;letter-spacing:.02em}
.text-link{position:relative;padding:14px 0;border-bottom:1px solid var(--line);font-size:.875rem;font-weight:600;white-space:nowrap}
.text-link::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.text-link span{display:inline-block;margin-left:10px;transition:transform .5s var(--ease)}
.circle-link{position:relative;display:grid;place-items:center;width:48px;height:48px;overflow:hidden;border:1px solid #98ad89;border-radius:50%;font-size:1.4rem;transition:background .35s,color .35s,border-color .35s}
.circle-link span{display:block;line-height:1}

@media(hover:hover){
  #main-nav>a:not(.nav-contact):hover::after{transform:scaleX(1);transform-origin:left}
  .button:hover,.nav-contact:hover{color:var(--fill-text)}
  .button:hover::before,.nav-contact:hover::before{transform:translate(-50%,50%) scale(1)}
  .text-link:hover::after{transform:scaleX(1);transform-origin:left}
  .text-link:hover span{transform:var(--nudge,translate(3px,-3px))}
  .circle-link:hover{background:var(--green);border-color:var(--green);color:#fff}
}

/* 4 Hero -------------------------------------------------- */
.hero{position:relative;display:grid;grid-template-columns:1.05fr 1fr;grid-template-rows:1fr auto;align-items:stretch;min-height:750px;padding:24px 0 0 5vw;overflow:hidden}
.hero-copy{position:relative;z-index:2;min-width:0;padding:16px 35px 48px 0}
.hero-intro{margin-bottom:24px;color:var(--green);font-size:.8125rem;font-weight:700;letter-spacing:.06em}
.hero-display{margin-left:-.045em;font:800 clamp(5.5rem,10.8vw,10.5rem)/.87 var(--font-en);letter-spacing:-.075em}
.hero-display>span{display:block;overflow:hidden;padding-bottom:.035em}
.hero-display b{display:block;font:inherit}
.hero-display i{display:inline-block;font-style:normal}
.hero h1{margin-top:24px;font-size:clamp(1.6rem,2.5vw,2.4rem);line-height:1.6;letter-spacing:.025em}
.hero h1 span{position:relative;display:inline-block;color:var(--green)}
.hero h1 span::after{content:"";position:absolute;left:-3%;bottom:-3px;width:106%;height:12px;border-bottom:2px solid #80a555;border-radius:50%;transform:rotate(-2deg);pointer-events:none}
.hero-description{margin-top:17px;font-size:1rem;line-height:1.9}
.hero-actions{display:flex;align-items:flex-start;gap:26px;margin-top:26px}
.hero-cta{display:flex;flex-direction:column;gap:10px}
.hero-actions .text-link{--nudge:translateY(3px);margin-top:9px}
.hero-visual{position:relative;min-height:570px}
/* 最優先で維持する台形 左辺が斜め */
.hero-art{position:absolute;inset:0;overflow:hidden;background:var(--hero-bg);clip-path:polygon(17% 0,100% 0,100% 100%,0 100%)}
.hero-art img{width:100%;height:100%;object-fit:cover;object-position:53% center;transform:scale(1.08)}
/* 台形の上に重ねる幕 通常は非表示で 最初の表示だけ動く */
.hero-art::after{content:"";position:absolute;inset:0;background:var(--lime);transform:scaleX(0);transform-origin:left}
/* 台形の斜辺と平行な細い線 */
.hero-line{position:absolute;top:0;bottom:0;left:-30px;width:17%;z-index:1;pointer-events:none;background:linear-gradient(to bottom right,transparent calc(50% - 1.2px),var(--lime-deep) 50%,transparent calc(50% + 1.2px))}
.hero-seal{position:absolute;left:40px;bottom:24px;z-index:2;display:flex;align-items:center;justify-content:center;gap:7px;width:118px;height:118px;border:5px solid #fff;border-radius:50%;background:var(--lime);font:600 .8125rem/1.65 var(--font);letter-spacing:.035em;transform:rotate(-8deg);transition:transform .6s var(--ease)}
.hero-seal span{white-space:nowrap}
.hero-seal b{display:inline-block;font:400 25px/1 var(--font-en);transition:transform .5s var(--ease)}
.hero-bottom{position:relative;grid-column:1/-1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 4vw 28px 0}
.hero-bottom::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform-origin:left}
.hero-bottom>p{font-size:.8125rem;line-height:1.8}
.hero-price{display:flex;align-items:center;gap:16px}
.hero-price>span{font-size:.75rem;line-height:1.5}
.hero-price p{font-size:.75rem;white-space:nowrap}
.hero-price strong{font:500 2rem var(--font-en);letter-spacing:-.05em}
.hero-price .hero-revision{padding-left:17px;border-left:1px solid #bdc5b7;font-size:.8125rem;line-height:1.6}
.hero-price>span:first-child{white-space:nowrap}
.hero-price small{margin-left:2px;font-size:.6875rem}
.scroll-cue{display:flex;align-items:center;gap:16px;font:600 10px var(--font-label);letter-spacing:.2em;white-space:nowrap}
.scroll-cue i{position:relative;display:block;width:1px;height:38px;overflow:hidden;background:#cfd6c9}
.scroll-cue i::after{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(-100%)}

@media(hover:hover){
  .hero-seal:hover{transform:rotate(0)}
  .hero-seal:hover b{transform:translate(3px,3px)}
}

/* 5 Ticker ------------------------------------------------ */
.ticker{overflow:hidden;padding:19px 0;background:var(--ink);color:var(--lime)}
.ticker-track{display:flex;align-items:center;gap:34px;width:max-content;min-height:21px;font:600 1rem var(--font-en);letter-spacing:.12em}
.ticker-track i{display:block;width:9px;height:20px;background:var(--lime);transform:skewX(var(--slant))}

/* 6 Section common --------------------------------------- */
.section{padding:95px var(--gutter)}
.section-heading{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:22px 50px;align-items:end;margin-bottom:50px}
.section-heading>.eyebrow{grid-column:1/-1;color:var(--muted);font-size:.6875rem}
.section-word{position:relative;grid-column:1/-1;margin-left:-.04em;font:800 clamp(3.5rem,8vw,8rem)/.93 var(--font-en);letter-spacing:-.075em}
/* 見出し英字の前に置く斜めのライム 台形の斜辺と同じ向き */
.section-word::before{content:"";position:absolute;left:-.3em;top:.1em;width:.12em;height:.66em;background:var(--lime);transform:skewX(var(--slant));transform-origin:bottom}
.section-word .char{display:inline-block}
.section-heading h2{font-size:clamp(1.7rem,2.6vw,2.5rem);line-height:1.6;letter-spacing:.03em}
.section-heading>p:last-child:not(.eyebrow){padding-bottom:9px;color:var(--muted);font-size:1rem;line-height:2}
/* 背景の斜めの帯 */
.services,.process{position:relative;isolation:isolate;overflow:hidden}
.services::before,.process::before{content:"";position:absolute;z-index:-1;top:-20%;width:clamp(180px,22vw,340px);height:150%;background:#fff;transform:rotate(14deg);transform-origin:top}
.services::before{left:6%}
.process::before{top:6%;right:10%;height:120%;background:var(--paper)}

/* 7 Concerns（お悩み）------------------------------------ */
.concerns{background:var(--paper)}
.concern-list{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.concern-list li{position:relative;padding:24px 0 6px 22px;border-top:1px solid var(--line-paper);font-size:1.0625rem;font-weight:600;line-height:1.8}
.concern-list li::before{content:"";position:absolute;left:0;top:52px;width:8px;height:22px;background:var(--lime);transform:skewX(var(--slant))}
.concern-list li>span{display:block;margin-bottom:8px;color:var(--muted);font:600 .6875rem var(--font-label);letter-spacing:.12em}
.concerns-pivot{display:grid;grid-template-columns:1.15fr 1fr;gap:26px 50px;align-items:end;margin-top:64px;padding-top:44px;border-top:1px solid var(--ink)}
.concerns-pivot h3{font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.6;letter-spacing:.03em}
.concerns-pivot>div p{color:var(--muted);font-size:1rem;line-height:2}
.concerns-pivot>div .text-link{display:inline-block;margin-top:22px}

/* 8 About / Reasons -------------------------------------- */
.about{--curtain:#fff;background:#fff}
.about-top{display:grid;grid-template-columns:.95fr 1.05fr;gap:60px;align-items:center}
.about-photo{position:relative;aspect-ratio:1;max-width:560px;overflow:hidden;border-radius:50%}
.about-photo>img{width:100%;height:100%;object-fit:cover;object-position:64% center;transform:scale(1.08)}
.reason-list{border-bottom:1px solid #b6c3ac}
.reason-list li{position:relative;padding:26px 0}
.reason-list li>span{color:var(--green);font:600 .6875rem var(--font-label);letter-spacing:.12em}
.reason-list h3{margin:14px 0 10px;font-size:1.4rem;font-weight:600;line-height:1.6}
.reason-list p{color:var(--muted);font-size:1rem;line-height:1.9}

/* 9 Service ----------------------------------------------- */
.services{--curtain:var(--paper);background:var(--paper)}
.service-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px;align-items:stretch}
.service-photo{position:relative;align-self:start;aspect-ratio:1;overflow:hidden;border-radius:6px 48% 6px 6px;background:#e8ecd9}
.service-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:scale(1.08)}
.service-list{border-top:1px solid var(--ink)}
.service-row{display:grid;grid-template-columns:30px 1fr 48px;gap:13px 18px;align-items:center;padding:27px 0;border-bottom:1px solid var(--line-paper);transition:background .4s}
.service-number{align-self:start;padding-top:4px;color:var(--muted);font:600 .9375rem var(--font-label);letter-spacing:.06em}
.service-en{margin-bottom:10px;color:var(--green);font:600 .625rem var(--font-label);letter-spacing:.16em}
.service-row h3{font-size:1.45rem;letter-spacing:.035em}
.service-row div>p:last-child{margin-top:11px;color:var(--muted);font-size:1rem;line-height:1.85}
.service-row ul{grid-column:2;grid-row:2;display:flex;flex-wrap:wrap;gap:1px 15px;font-size:.8125rem;line-height:1.9}
.service-row li::before{content:"―";margin-right:7px;color:#719151}
.service-row .circle-link{grid-column:3;grid-row:1}

@media(hover:hover){
  .service-row:hover{background:#fff}
}

/* 10 Price ------------------------------------------------ */
.price .section-heading{margin-bottom:40px}
.price-subtitle{display:flex;align-items:center;gap:14px;margin-bottom:26px;font-size:1.35rem;letter-spacing:.03em;font-feature-settings:"palt"}
.price-subtitle::before{content:"";width:8px;height:22px;background:var(--lime);transform:skewX(var(--slant))}
/* 選び方 */
.choose{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:72px}
.choose-card{position:relative;display:grid;align-content:start;gap:8px;padding:28px 30px 26px;border:1px solid var(--line-paper);border-radius:0 40px 8px 8px;background:var(--paper);transition:border-color .3s,background .3s}
.choose-tag{justify-self:start;padding:4px 12px;border-radius:999px;background:var(--green);color:#fff;font-size:.75rem;font-weight:700}
.choose-card strong{margin-top:4px;font-size:1.5rem;font-feature-settings:"palt"}
.choose-card p{font-size:.9375rem;white-space:nowrap}
.choose-card p b{padding:0 3px;font:500 2.2rem var(--font-en);letter-spacing:-.04em}
.choose-card .choose-sub{margin-top:-4px;font-size:.875rem;font-weight:700;white-space:normal}
.choose-card small{color:var(--muted);font-size:.875rem;line-height:1.8}
.choose-card em{position:absolute;top:26px;right:28px;color:var(--green);font-size:1.3rem;font-style:normal}
/* 月額プラン */
.plans{margin-bottom:72px}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.plan-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:32px 28px 26px;border:1px solid var(--line-paper);border-radius:8px;background:#fff}
.plan-card.is-featured{border:2px solid var(--green);box-shadow:0 18px 40px #17392a14}
.plan-badge{position:absolute;top:-13px;left:26px;padding:4px 14px;border-radius:999px;background:var(--green);color:#fff;font-size:.75rem;font-weight:700}
.plan-rank{color:var(--muted);font:600 .6875rem var(--font-label);letter-spacing:.16em}
.plan-card h4,.spot-card h4{font-size:1.4rem;font-feature-settings:"palt"}
.plan-price{font-size:.9375rem;white-space:nowrap}
.plan-price strong{padding:0 4px;font:500 3rem/1.1 var(--font-en);letter-spacing:-.05em}
.plan-price small{display:block;margin-top:2px;color:var(--muted);font-size:.8125rem}
.plan-card dl{margin:8px 0 0;border-top:1px solid var(--line)}
.plan-card dl div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.plan-card dt{color:var(--muted);font-size:.875rem}
.plan-card dd{margin:0;font-size:.9375rem;font-weight:700;text-align:right}
.plan-card dd small{display:block;color:var(--muted);font-size:.75rem;font-weight:400}
.plan-fit{flex:1;margin-top:6px;color:var(--muted);font-size:.875rem;line-height:1.8}
.plan-card .text-link{align-self:flex-start;margin-top:4px}
.plan-common{margin-top:24px;padding:28px 30px;border-radius:8px;background:var(--paper)}
.plan-common h4{margin-bottom:14px;font-size:1rem}
.plan-common ul{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 30px}
.plan-common li,.spot-card li{position:relative;padding-left:16px;color:var(--muted);font-size:.9375rem;line-height:1.7}
.plan-common li::before,.spot-card li::before{content:"";position:absolute;left:0;top:.45em;width:5px;height:.9em;background:var(--lime-deep);transform:skewX(var(--slant))}
.plan-common li b{margin-right:6px;color:var(--ink)}
.rev-note{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-paper);color:var(--muted);font-size:.8125rem;line-height:1.9}
/* プラン診断 */
.finder{display:grid;grid-template-columns:1fr 1fr;gap:24px 44px;margin-bottom:72px;padding:40px;border-radius:0 80px 8px 8px;background:var(--green);color:#fff}
.finder-head{grid-column:1/-1}
.finder-head .eyebrow{color:var(--lime)}
.finder-head h3{margin-top:10px;font-size:1.6rem}
.finder-head p{margin-top:8px;color:#d5e3d7;font-size:.9375rem}
.finder fieldset{grid-column:1;display:flex;flex-wrap:wrap;gap:10px;min-width:0;margin:0;padding:0;border:0;transition:opacity .3s}
.finder fieldset[disabled]{opacity:.35}
.finder legend{display:flex;align-items:center;gap:10px;float:left;width:100%;margin-bottom:12px;padding:0;font-size:.9375rem;font-weight:700}
.finder legend span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--lime);color:var(--ink);font:700 .75rem var(--font-label)}
.finder label{position:relative;cursor:pointer}
.finder fieldset[disabled] label{cursor:default}
.finder input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}
.finder label>span{display:inline-block;padding:10px 18px;border:1px solid #5d7a66;border-radius:999px;font-size:.875rem;transition:background .3s,color .3s,border-color .3s}
.finder input:checked+span{border-color:#fff;background:#fff;color:var(--ink);font-weight:700}
.finder input:focus-visible+span{outline:3px solid var(--lime);outline-offset:3px}
.finder-result{grid-column:2;grid-row:2/5;display:flex;flex-direction:column;justify-content:center;min-height:250px;padding:28px 30px;border-radius:8px;background:#fff;color:var(--ink)}
.finder-empty{color:var(--muted);font-size:.9375rem;line-height:1.8}
.finder-answer .eyebrow{color:var(--green)}
.finder-name{margin-top:8px;font-size:1.5rem;font-weight:700;font-feature-settings:"palt"}
.finder-price{margin-top:4px;font-size:.9375rem}
.finder-price strong{padding:0 3px;font:500 2.4rem var(--font-en);letter-spacing:-.04em}
.finder-price small{margin-left:2px;color:var(--muted);font-size:.75rem}
.finder-note{margin-top:8px;color:var(--muted);font-size:.875rem;line-height:1.8}
.finder-terms{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:.875rem;line-height:1.8}
.finder-terms:empty{display:none}
.finder-answer .button{margin-top:18px}
/* 買い切り・LP・バナー */
.spot{margin-bottom:72px}
.spot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.spot-card{display:flex;flex-direction:column;gap:10px;padding:30px 28px 26px;border:1px solid var(--line-paper);border-radius:8px;background:#fff}
.spot-card ul{display:grid;gap:8px;margin-top:8px;padding-top:14px;border-top:1px solid var(--line)}
.spot-card li{font-size:.875rem}
.spot-pay{margin-top:auto;padding-top:14px;color:var(--muted);font-size:.8125rem;line-height:1.8}
/* オプションとルール */
.price-details{display:grid;grid-template-columns:1fr 1.35fr;gap:40px 56px;margin-bottom:72px}
.option-table{width:100%;border-collapse:collapse}
.option-table th,.option-table td{padding:14px 0;border-bottom:1px solid var(--line);font-size:.9375rem;line-height:1.6;text-align:left;vertical-align:top}
.option-table tr:first-child>*{border-top:1px solid var(--line)}
.option-table th{padding-right:16px;font-weight:600}
.option-table td{font-weight:700;text-align:right;white-space:nowrap}
.option-table td small{display:block;color:var(--muted);font-size:.75rem;font-weight:400;white-space:normal}
.rules div{display:grid;grid-template-columns:10.5em 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.rules div:first-child{border-top:1px solid var(--line)}
.rules dt{font-size:.9375rem;font-weight:700;line-height:1.7}
.rules dd{margin:0;font-size:.9375rem;line-height:1.7}
.rules a{text-decoration:underline;text-underline-offset:3px}
/* こんなことも相談 */
.more-consult{display:grid;grid-template-columns:1fr 1.5fr;gap:26px 56px;align-items:start;margin-bottom:48px;padding:40px;border-radius:8px 8px 8px 60px;background:var(--paper)}
.more-consult .eyebrow{color:var(--green)}
.more-consult h3{margin-top:12px;font-size:1.6rem;line-height:1.6}
.consult-tags{display:flex;flex-wrap:wrap;gap:8px}
.consult-tags li{padding:8px 14px;border:1px solid var(--line-paper);border-radius:999px;background:#fff;font-size:.875rem;font-weight:600}
.more-consult p{margin-top:18px;color:var(--muted);font-size:.9375rem;line-height:1.9}
.price-cta{display:flex;flex-wrap:wrap;align-items:center;gap:18px 34px}
.price-cta p{color:var(--muted);font-size:.875rem;line-height:1.8}

/* 11 Works / Dialog --------------------------------------- */
.works{--curtain:var(--ink);background:var(--ink);color:#fff}
.works .eyebrow,.works .section-heading>p:last-child,.works .work-meta,.works .work-card>p,.works-cta p{color:#c1cbbd}
.works em{color:var(--lime)}
.filter-bar{display:flex;flex-wrap:wrap;gap:9px;margin:-24px 0 34px}
.filter-bar button{padding:10px 18px;border:1px solid #64735c;border-radius:30px;background:transparent;color:#fff;font-size:.875rem;transition:background .3s,color .3s,border-color .3s}
.filter-bar button[aria-pressed=true]{border-color:#fff;background:#fff;color:var(--ink)}
.work-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:40px;align-items:start}
.work-card:nth-child(2){margin-top:110px}
.work-card.is-filtered{margin-top:0}
.work-image{position:relative;display:block;width:100%;padding:0;overflow:hidden;border:0;background:#273025;text-align:left;cursor:pointer}
.work-image img{aspect-ratio:4/3;object-fit:contain;transition:transform .9s var(--ease)}
.work-view{position:absolute;right:20px;bottom:20px;z-index:1;display:flex;gap:10px;padding:12px 16px;background:#fff;color:var(--ink);font:600 .625rem var(--font-label);letter-spacing:.14em;transition:background .35s}
.work-view b{font-weight:400;transition:transform .5s var(--ease)}
.work-meta{display:flex;justify-content:space-between;margin-top:23px;font-size:.6875rem;letter-spacing:.03em}
.work-meta>span:last-child{font-family:var(--font-label);letter-spacing:.1em}
.work-card h3{margin-top:12px;font-size:1.5rem;font-weight:600}
.work-card h3 a{display:flex;justify-content:space-between;gap:20px}
.work-card h3 a span{display:inline-block;transition:transform .5s var(--ease)}
.work-card>p{margin-top:11px;font-size:1rem;line-height:1.9}
.work-card .work-image:focus-visible{outline-offset:5px}
.work-label{display:inline-block;margin-left:10px;padding:2px 7px;border:1px solid #64735c}
.works-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:16px 34px;margin-top:64px;padding-top:30px;border-top:1px solid #3a463a}
.works-cta p{font-size:1rem;line-height:1.9}
.works .text-link{border-color:#64735c}
.work-dialog{max-width:min(850px,90vw);max-height:90vh;padding:0;overflow:auto;border:0;border-radius:4px;color:var(--ink);box-shadow:0 30px 90px #10281955}
.work-dialog::backdrop{background:#14281ed9}
.work-dialog>img{max-height:64vh;object-fit:contain;background:#f6f8f2}
.work-dialog>div{padding:24px 30px}
.work-dialog h2{margin-top:12px;font-size:1.4rem}
.work-dialog>div>p:last-child{margin-top:10px;font-size:.875rem;line-height:1.9}
.dialog-close{position:sticky;top:0;z-index:2;display:block;margin:0 0 0 auto;padding:15px 20px;background:#fff;font-size:.875rem}

@media(hover:hover){
  .choose-card:hover{border-color:var(--green);background:#fff}
  .finder label:hover>span{border-color:#fff}
}

@media(hover:hover){
  .work-image:hover img{transform:scale(1.04)}
  .work-image:hover .work-view{background:var(--lime)}
  .work-image:hover .work-view b{transform:translate(2px,-2px)}
  .work-card h3 a:hover span{transform:translate(4px,-4px)}
  .filter-bar button[aria-pressed=false]:hover{border-color:#fff}
}

/* 12 Process / FAQ --------------------------------------- */
.process .section-heading{margin-bottom:45px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:27px}
.steps li{position:relative;padding-top:23px}
.steps li>span{color:#82966c;font:600 2rem var(--font-label);letter-spacing:.02em}
.steps h3{margin:19px 0 12px;font-size:1.2rem}
.steps p{color:var(--muted);font-size:1rem;line-height:1.9}
/* 上辺の線 表示時に左から引かれる */
.reason-list li::before,.steps li::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--line);transform-origin:left}
.reason-list li::before{background:#b6c3ac}
.lead-time{margin-top:40px;padding:18px 24px;border-left:3px solid var(--green);background:#fff;color:var(--muted);font-size:.9375rem;line-height:1.9}
.lead-time b{display:block;margin-bottom:2px;color:var(--ink)}
.faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:45px;margin-top:70px}
.faq>h3{padding-top:20px;font-size:1.3rem}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{position:relative;padding:22px 40px 22px 0;font-size:.9375rem;line-height:1.8;list-style:none;cursor:pointer;transition:color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before,.faq summary::after{content:"";position:absolute;right:4px;top:35px;width:14px;height:1.5px;background:var(--green);transition:transform .5s var(--ease)}
.faq summary::after{transform:rotate(90deg)}
.faq details[open] summary::after{transform:rotate(0)}
.faq details>p{padding-bottom:23px;color:var(--muted);font-size:1rem;line-height:2}
.faq details>p a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

@media(hover:hover){
  .faq summary:hover{color:var(--green)}
}

/* 13 Contact ---------------------------------------------- */
.contact{position:relative;display:grid;grid-template-columns:1fr minmax(0,1.1fr);gap:38px 56px;align-items:start;padding:85px var(--gutter) 70px;border-radius:100px 0 0 0;background:var(--green);color:#fff}
.contact-display{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font:800 clamp(4rem,10vw,10rem)/1 var(--font-en);letter-spacing:-.07em}
.contact-word .char{display:inline-block}
.contact-arrow{display:inline-block;color:var(--lime);font-size:.65em}
.contact .eyebrow{color:var(--lime)}
.contact h2{margin-top:21px;font-size:clamp(1.7rem,2.6vw,2.5rem);line-height:1.7}
.contact p:not(.eyebrow):not(.contact-display){margin-top:18px;color:#d5e3d7;font-size:.9375rem;line-height:2}
.assure{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:24px}
.assure li{position:relative;padding-left:16px;font-size:.875rem;font-weight:600;line-height:1.6}
.assure li::before{content:"";position:absolute;left:0;top:.3em;width:6px;height:1em;background:var(--lime);transform:skewX(var(--slant))}
.contact-form{display:grid;gap:18px;padding:34px 32px;border-radius:28px;background:#fff;color:var(--ink)}
.contact .contact-form p:not(.eyebrow):not(.contact-display){margin-top:0;color:var(--muted);font-size:.8125rem;line-height:1.8}
.field{display:grid;gap:7px}
.field-name{display:flex;align-items:center;gap:8px;font-size:.875rem;font-weight:700;line-height:1.5}
.field-name b{padding:1px 8px;border-radius:999px;background:var(--green);color:#fff;font-size:.6875rem}
.field-name small{color:var(--muted);font-size:.6875rem;font-weight:600}
.contact-form input:not([type=checkbox]),.contact-form select,.contact-form textarea{width:100%;min-width:0;padding:12px 14px;border:1px solid var(--line-paper);border-radius:10px;background:var(--paper);color:var(--ink);font:inherit;font-size:1rem;line-height:1.6}
.contact-form textarea{min-height:150px;resize:vertical}
.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible{outline:3px solid var(--lime-deep);outline-offset:2px;border-color:var(--green)}
.consent{display:flex;align-items:flex-start;gap:10px;font-size:.875rem;line-height:1.7}
.consent input{flex:none;width:20px;height:20px;margin-top:2px;accent-color:var(--green)}
.consent a,.contact-form .contact-email{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.contact-button{--fill:var(--cta-hover);--fill-text:var(--cta-hover-text);width:100%;justify-content:center;gap:20px;border:0;font-family:inherit;cursor:pointer}
.contact .contact-form p.contact-hint:not(.eyebrow){text-align:center;font-size:.75rem}
.contact-form .contact-email{font:inherit;overflow-wrap:anywhere}
.bot-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* 14 Footer / Floating CTA -------------------------------- */
.site-footer{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;padding:35px var(--gutter) 40px}
.site-footer .brand{width:200px}
.site-footer>p{grid-column:1;font-size:.8125rem}
.back-top{grid-column:2;grid-row:1/3;justify-self:end;font-size:.8125rem}
.back-top span{display:inline-block;transition:transform .5s var(--ease)}
.site-footer small{grid-column:1;margin-top:15px;color:var(--muted);font:11px var(--font-en)}
.site-footer>.footer-links{grid-column:1;font-size:.75rem}
.footer-links{display:flex;flex-wrap:wrap;gap:4px 1.4em}
.footer-links a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.motion-toggle{grid-column:2;grid-row:4;justify-self:end;padding:7px 0;border-bottom:1px solid #b1bca9;background:transparent;font-size:.75rem}
/* 追従の相談ボタン トップを過ぎたら出る */
.float-cta{position:fixed;right:24px;bottom:24px;z-index:15;display:inline-flex;align-items:center;gap:16px;padding:18px 24px;border-radius:999px;background:var(--cta);color:var(--cta-text);font-size:.875rem;font-weight:700;box-shadow:0 12px 30px #10281933;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .5s var(--ease),transform .6s var(--ease),background .4s,color .4s}
.float-cta>span{font-size:1.25rem;line-height:1}
.show-float .float-cta{opacity:1;transform:none;pointer-events:auto}

@media(hover:hover){
  .back-top:hover span{transform:translateY(-4px)}
  .float-cta:hover{background:var(--cta-hover);color:var(--cta-hover-text)}
}

/* 事業者情報ページ */
.legal-back{padding:10px 0}
.legal{max-width:960px;margin:0 auto;padding:70px var(--gutter) 90px}
.legal .eyebrow{color:var(--green)}
.legal h1{margin-top:14px;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.5}
.legal-lead{margin-top:14px;color:var(--muted);font-size:.9375rem;line-height:1.8}
.legal-list{margin:36px 0 0}
.legal-list>div{display:grid;grid-template-columns:12em 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.legal-list>div:first-child{border-top:1px solid var(--line)}
.legal-list dt{font-size:.9375rem;font-weight:700;line-height:1.8}
.legal-list dd{margin:0;font-size:.9375rem;line-height:1.8}
.legal-list dd ul{display:grid;gap:6px}
.legal-list dd li{position:relative;padding-left:14px}
.legal-list dd li::before{content:"";position:absolute;left:0;top:.75em;width:6px;height:1px;background:var(--muted)}
.legal-list dd li ul{margin-top:6px}
.legal-list a{text-decoration:underline;text-underline-offset:3px}
.legal-date{margin-top:24px;color:var(--muted);font-size:.8125rem}
.form-errors{display:grid;gap:8px;margin-top:24px;padding:20px 22px;border:1px solid #c0584a;border-radius:12px;background:#fff4f1;color:#7d2a22;font-size:.9375rem;line-height:1.8}
.form-errors li{list-style:disc;margin-left:1.2em}
.legal-back-bottom{margin-top:30px}
.legal-back-bottom+.legal-back-bottom{margin-top:14px}
/* 利用規約 */
.terms-toc{margin-top:32px;padding:22px 24px;border:1px solid var(--line-paper);border-radius:8px;background:var(--paper)}
.terms-toc>p{font-size:.875rem;font-weight:700}
.terms-toc ol{margin-top:10px;padding-left:1.8em;list-style:decimal;columns:2;column-gap:32px;font-size:.875rem;line-height:2}
.terms-toc a{text-decoration:underline;text-underline-offset:3px}
.terms-article{padding:28px 0;border-bottom:1px solid var(--line)}
.terms-article:first-of-type{margin-top:28px;border-top:1px solid var(--line)}
.terms-article h2{font-size:1.125rem;line-height:1.6;font-feature-settings:"palt"}
.terms-article ol{display:grid;gap:10px;margin-top:14px;padding-left:1.6em;list-style:decimal}
.terms-article li{font-size:.9375rem;line-height:1.85}
.terms-article ul{display:grid;gap:6px;margin-top:12px}
.terms-article ol ul{margin-top:8px}
.terms-article ul li{position:relative;padding-left:14px}
.terms-article ul li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:1px;background:var(--muted)}
.terms-article a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.legal-footer{grid-template-columns:1fr auto}
.legal-footer small{grid-column:2;margin:0;justify-self:end}

/* 15 Responsive ------------------------------------------- */
@media(min-width:1600px){
  .hero{min-height:900px}
  .hero-copy{padding-top:35px}
  .hero-visual{min-height:690px}
}

@media(max-width:1000px){
  #main-nav{gap:20px}
  .hero{min-height:710px}
  .hero-copy{padding-right:25px}
  .hero-display{font-size:10.8vw}
  .hero h1{font-size:1.7rem}
  .hero-actions{gap:16px}
  .hero-actions .button{gap:25px;padding:18px;font-size:.8125rem}
  .hero-actions .text-link{margin-top:6px}
  .hero-visual{min-height:550px}
  .hero-seal{width:100px;height:100px;border-width:4px;font-size:.6875rem}
  .hero-bottom{gap:14px}
  .hero-bottom>p{font-size:.75rem}
  .hero-bottom>p{white-space:nowrap}
  .hero-price{flex-wrap:wrap;row-gap:6px}
  .hero-price .hero-revision{flex-basis:100%;padding-left:0;border-left:0}
  .concern-list{grid-template-columns:1fr 1fr}
  .concerns-pivot{gap:22px 30px}
  .about-top{gap:35px}
  .reason-list h3{font-size:1.25rem}
  .service-layout{grid-template-columns:.82fr 1.18fr;gap:32px}
  .service-row{grid-template-columns:25px 1fr 42px;gap:12px}
  .service-row h3{font-size:1.3rem}
  .service-row ul{font-size:.75rem}
  .circle-link{width:42px;height:42px}
  .plan-grid,.spot-grid{gap:14px}
  .plan-card,.spot-card{padding:28px 20px 22px}
  .plan-price strong{font-size:2.4rem}
  .finder{grid-template-columns:1fr;padding:34px 30px}
  .finder fieldset,.finder-result{grid-column:1;grid-row:auto}
  .finder-result{min-height:0}
  .price-details{grid-template-columns:1fr}
  .more-consult{grid-template-columns:1fr}
  .contact{border-top-left-radius:75px}
}

@media(min-width:761px) and (max-width:1000px){
  .service-photo{aspect-ratio:4/5}
}

@media(max-width:760px){
  :root{--gutter:24px;--header-h:85px;--header-h-compact:64px;scroll-padding-top:72px}
  .site-header{gap:15px;padding-inline:24px}
  .site-header .brand{width:188px}
  .is-scrolled .site-header .brand{transform:scale(.8)}
  .menu-toggle{display:flex;align-items:center;gap:12px;padding:15px 0;background:transparent;font-size:.75rem}
  .menu-toggle i{position:relative;display:block;width:22px;height:10px}
  .menu-toggle i::before,.menu-toggle i::after{content:"";position:absolute;left:0;width:100%;height:1px;background:var(--green);transition:transform .45s var(--ease)}
  .menu-toggle i::before{top:0}
  .menu-toggle i::after{bottom:0}
  .menu-toggle[aria-expanded=true] i::before{transform:translateY(4.5px) rotate(18deg)}
  .menu-toggle[aria-expanded=true] i::after{transform:translateY(-4.5px) rotate(-18deg)}
  #main-nav{position:absolute;top:100%;left:0;right:0;display:none;padding:20px var(--gutter) 30px;background:#fff;box-shadow:0 15px 15px #1830260a}
  #main-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:10px}
  #main-nav .nav-contact{justify-content:space-between;margin-top:8px}
  .button{gap:30px;padding:20px 22px}

  .hero{grid-template-columns:1fr;grid-template-rows:auto auto auto;min-height:0;padding:18px 0 0}
  .hero-copy{padding:10px 24px 8px}
  .hero-intro{margin-bottom:22px;font-size:.75rem}
  .hero-display{font-size:clamp(4.8rem,19vw,8.3rem)}
  .hero h1{margin-top:20px;font-size:1.5rem;line-height:1.65}
  .hero h1 span::after{bottom:-4px;height:8px}
  .hero-description{margin-top:16px;font-size:.9375rem}
  .hero-actions{flex-wrap:wrap;gap:12px 20px;margin-top:23px}
  .hero-actions .button{gap:28px;padding:18px 19px}
  .hero-actions .text-link{margin-top:8px;font-size:.8125rem}
  .hero-actions .text-link span{margin-left:6px}
  .hero-visual{grid-row:3;height:350px;min-height:0;width:calc(100% - 24px);margin-left:24px}
  .hero-art{clip-path:polygon(10% 0,100% 0,100% 100%,0 100%)}
  .hero-line{left:-16px;width:10%}
  .hero-seal{left:24px;bottom:22px;gap:4px;width:96px;height:96px}
  .hero-bottom{grid-row:2;display:grid;grid-template-columns:1fr;padding:19px 24px 23px}
  .hero-bottom::after,.hero-bottom>p,.hero-bottom>.scroll-cue{display:none}
  .hero-price{display:grid;grid-template-columns:auto 1fr;gap:8px 17px}
  .hero-price strong{font-size:1.8rem}
  .hero-price .hero-revision{display:block;grid-column:1/-1;padding:0;border:0}

  .ticker{padding:16px 0}
  .ticker-track{gap:24px;font-size:.875rem}
  .ticker-track i{width:7px;height:16px}

  .section{padding-block:65px}
  .section-heading{grid-template-columns:1fr;gap:19px;margin-bottom:34px}
  .section-word{margin-bottom:6px;font-size:clamp(3rem,13vw,5.2rem)}
  .section-heading h2{font-size:1.8rem;line-height:1.55}
  .section-heading>p:last-child:not(.eyebrow){padding:0;line-height:1.9}
  .services::before,.process::before{width:120px}

  .concern-list{grid-template-columns:1fr;gap:6px}
  .concern-list li{padding:18px 0 14px 22px;font-size:1rem}
  .concern-list li::before{top:44px;height:20px}
  .concerns-pivot{grid-template-columns:1fr;gap:18px;margin-top:44px;padding-top:34px}
  .concerns-pivot h3{font-size:1.6rem}

  .about-top{grid-template-columns:1fr;gap:35px}
  .about-photo{width:calc(100% - 20px);margin:0 auto}
  .reason-list li{padding:22px 0}
  .reason-list h3{margin-top:12px;font-size:1.3rem}

  .service-layout{grid-template-columns:1fr;gap:28px}
  .service-photo{aspect-ratio:1.2}
  .service-photo>img{object-position:center 55%}
  .service-row{grid-template-columns:24px 1fr 42px;gap:13px}
  .service-row h3{font-size:1.4rem}
  .service-row div>p:last-child{font-size:.9375rem}
  .service-row ul{gap:1px 12px;font-size:.8125rem}

  .price .section-heading{margin-bottom:30px}
  .price-subtitle{font-size:1.25rem}
  .choose{grid-template-columns:1fr;gap:14px;margin-bottom:56px}
  .choose-card{padding:24px 22px 22px;border-radius:0 30px 8px 8px}
  .choose-card p b{font-size:2rem}
  .plans,.finder,.spot,.price-details{margin-bottom:56px}
  .plan-grid,.spot-grid{grid-template-columns:1fr;gap:22px}
  .plan-card,.spot-card{padding:28px 22px 22px}
  .plan-price strong{font-size:2.8rem}
  .plan-common{padding:24px 20px}
  .plan-common ul{grid-template-columns:1fr}
  .finder{padding:28px 20px;border-radius:0 50px 8px 8px}
  .finder-head h3{font-size:1.4rem}
  .finder-result{padding:24px 20px}
  .option-table th,.option-table td{font-size:.875rem}
  .option-table td{white-space:normal}
  .rules div{grid-template-columns:1fr;gap:2px}
  .rules dt,.rules dd{font-size:.875rem}
  .more-consult{padding:28px 20px;border-radius:8px 8px 8px 40px}
  .more-consult h3{font-size:1.4rem}
  .price-cta{flex-direction:column;align-items:stretch;gap:14px}
  .price-cta .button{justify-content:space-between}
  .lead-time{padding:16px 18px;font-size:.875rem}
  .legal{padding:44px var(--gutter) 60px}
  .legal-list>div{grid-template-columns:1fr;gap:4px;padding:16px 0}
  .legal-list dt,.legal-list dd{font-size:.875rem}
  .legal-back{font-size:.8125rem}
  .terms-toc{padding:18px 18px}
  .terms-toc ol{columns:1}
  .terms-article{padding:22px 0}
  .terms-article h2{font-size:1rem}
  .terms-article li{font-size:.875rem}

  .filter-bar{margin:0 0 26px}
  .filter-bar button{padding:9px 14px}
  .work-grid{grid-template-columns:1fr;gap:40px}
  .work-card:nth-child(2){margin-top:0}
  .work-view{right:12px;bottom:12px}
  .work-meta{margin-top:18px;font-size:.75rem;line-height:1.8}
  .work-card h3{font-size:1.35rem}
  .work-card>p{font-size:.9375rem}
  .work-label{margin-left:5px}
  .works-cta{flex-direction:column;align-items:flex-start;margin-top:48px}
  .work-dialog>div{padding:22px}

  .steps{grid-template-columns:1fr 1fr;gap:30px 22px}
  .steps p{font-size:.875rem}
  .faq{grid-template-columns:1fr;gap:24px;margin-top:50px}
  .faq>h3{padding:0}
  .faq summary{font-size:.875rem}

  .contact{grid-template-columns:1fr;gap:27px;padding:60px 24px 45px;border-top-left-radius:60px}
  .contact-display{margin-bottom:4px;font-size:clamp(3rem,13vw,5rem)}
  .contact h2{margin-top:20px;font-size:1.65rem}
  .assure{flex-direction:column;gap:8px}
  .contact-form{padding:26px 20px;border-radius:22px}

  .site-footer{gap:17px;padding:28px var(--gutter) 26px}
  .site-footer .brand{width:175px}
  .site-footer>p{font-size:.6875rem;line-height:1.8}
  .back-top{font-size:.6875rem}
  .site-footer small{font-size:10px}
  .motion-toggle{font-size:.625rem}
  .float-cta{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));gap:12px;padding:15px 20px;font-size:.8125rem}
}

@media(max-width:370px){
  :root{--gutter:20px}
  .site-header{padding-inline:20px}
  .site-header .brand{width:164px}
  .menu-toggle{gap:8px;font-size:.6875rem}
  .hero-copy{padding-inline:20px}
  .hero-intro{font-size:.6875rem}
  .hero h1{font-size:1.35rem}
  .hero-actions .button{gap:22px;padding-inline:17px}
  .hero-visual{width:calc(100% - 20px);height:310px;margin-left:20px}
  .hero-seal{width:86px;height:86px;font-size:.625rem}
  .hero-seal b{font-size:21px}
  .hero-bottom{padding-inline:20px}
  .hero-price strong{font-size:1.7rem}
  .section-word{font-size:clamp(2.6rem,14vw,3rem)}
  .section-heading h2{font-size:1.7rem}
  .concerns-pivot h3{font-size:1.45rem}
  .service-row h3{font-size:1.2rem}
  .service-row div>p:last-child{font-size:.875rem}
  .service-row ul{font-size:.75rem}
  .work-meta{font-size:.6875rem}
  .plan-price strong{font-size:2.4rem}
  .choose-card p b{font-size:1.8rem}
  .finder-price strong{font-size:2rem}
  .contact{padding-inline:20px}
  .contact h2{font-size:1.45rem}
  .contact-button{gap:18px;font-size:.8125rem}
  .site-footer{grid-template-columns:1fr;gap:14px}
  .back-top{grid-column:1;grid-row:auto;justify-self:start}
  .site-footer>.footer-links,.site-footer small{grid-column:1}
  .motion-toggle{grid-column:1;grid-row:auto;justify-self:start}
}

:is(.service-row,.reason-list li,.steps li,.concern-list li,.plan-card,.spot-card):nth-child(2){--d:.1s}
:is(.service-row,.reason-list li,.steps li,.concern-list li,.plan-card,.spot-card):nth-child(3){--d:.2s}
:is(.steps li,.concern-list li):nth-child(4){--d:.3s}

/* 16 Motion -----------------------------------------------
   動きは基本transformとopacityで一度きり
   （トップの細い線だけclip-pathで1回描く）
   ・導入演出  CSSのみ 停止ボタンで最終状態へ
   ・表示演出  画面に入ったときにJSが.is-visibleを付与
   ・連続演出  文字の帯 SCROLLの線 相談の矢印
     画面外 タブ非表示 停止中は一時停止
   動きを減らす設定では すべて止めた最終状態で表示
   ---------------------------------------------------------- */
@media(prefers-reduced-motion:no-preference){

  /* 連続演出 */
  .ticker-track{animation:ticker 38s linear infinite}
  .ticker:hover .ticker-track{animation-play-state:paused}
  .scroll-cue i::after{animation:scroll-line 2.4s var(--ease-soft) infinite}
  .contact-arrow{animation:contact-arrow 3s ease-in-out infinite}

  /* ホバー時の矢印の通り抜け */
  @media(hover:hover){
    .button:hover>span,.nav-contact:hover>span,.circle-link:hover span,.float-cta:hover>span{animation:arrow-through .7s both}
  }

  /* 導入演出 トップ */
  :root:not(.motion-paused) .site-header{animation:fade-down 1s var(--ease) .05s backwards}
  :root:not(.motion-paused) .hero-intro{animation:fade-right 1s var(--ease) .15s backwards}
  :root:not(.motion-paused) .hero-display i{animation:rise 1.1s var(--ease) calc(.2s + var(--i) * .05s) backwards}
  :root:not(.motion-paused) .hero h1{animation:fade-up 1.1s var(--ease) .6s backwards}
  :root:not(.motion-paused) .hero h1 span::after{animation:underline 1s var(--ease) 1.3s backwards}
  :root:not(.motion-paused) .hero-description{animation:fade-up 1.1s var(--ease) .72s backwards}
  :root:not(.motion-paused) .hero-actions{animation:fade-up 1.1s var(--ease) .84s backwards}
  :root:not(.motion-paused) .hero-visual{animation:uncover 1s var(--ease) backwards}
  :root:not(.motion-paused) .hero-art::after{animation:curtain-out 1.25s var(--ease-wipe) .5s backwards}
  :root:not(.motion-paused) .hero-art img{animation:settle 2s var(--ease) .5s backwards}
  :root:not(.motion-paused) .hero-line{animation:draw-y 1.2s var(--ease) 1s backwards}
  :root:not(.motion-paused) .hero-seal{animation:seal-in .9s cubic-bezier(.34,1.56,.64,1) 1.3s backwards}
  :root:not(.motion-paused) .hero-bottom::after{animation:draw-x 1.4s var(--ease) .9s backwards}
  :root:not(.motion-paused) .hero-bottom>*{animation:fade-up 1s var(--ease) 1.05s backwards}

  /* 表示演出 共通 */
  .js:not(.motion-paused) .reveal{transition:opacity .9s var(--ease-soft) var(--d,0s),transform 1s var(--ease) var(--d,0s)}
  .js:not(.motion-paused) .service-row.reveal{transition:opacity .9s var(--ease-soft) var(--d,0s),transform 1s var(--ease) var(--d,0s),background .4s}
  .js:not(.motion-paused) .reveal:not(.is-visible){opacity:0;transform:translateY(35px)}

  /* 見出し 斜めのライム→英字を1文字ずつ→日本語 */
  .js:not(.motion-paused) .section-heading.reveal:not(.is-visible){opacity:1;transform:none}
  .js:not(.motion-paused) .section-heading>*,.js:not(.motion-paused) .section-word::before,.js:not(.motion-paused) .section-word .char{transition:opacity .9s var(--ease-soft),transform 1.1s var(--ease)}
  .js:not(.motion-paused) .section-heading:not(.is-visible)>:not(.section-word){opacity:0;transform:translateY(22px)}
  .js:not(.motion-paused) .section-heading:not(.is-visible)>.eyebrow{transform:translateX(-16px)}
  .js:not(.motion-paused) .section-heading:not(.is-visible) .section-word::before{transform:skewX(var(--slant)) scaleY(0)}
  .js:not(.motion-paused) .section-heading:not(.is-visible) .char{opacity:0;transform:translateY(.4em)}
  .js:not(.motion-paused) .section-word .char{transition-delay:calc(.1s + var(--i) * .045s)}
  .js:not(.motion-paused) .section-heading>h2{transition-delay:.35s}
  .js:not(.motion-paused) .section-heading>p:last-child:not(.eyebrow){transition-delay:.5s}

  /* 写真 背景色の幕が引いて現れる */
  .service-photo::after,.about-photo::after,.work-image::after{content:"";position:absolute;inset:0;z-index:2;background:var(--curtain,#fff);transform:scaleX(0);transform-origin:left;pointer-events:none}
  .js:not(.motion-paused) :is(.service-photo,.about-photo).reveal:not(.is-visible){opacity:1;transform:none}
  .js:not(.motion-paused) :is(.service-photo,.about-photo)::after,.js:not(.motion-paused) .work-card .work-image::after{transition:transform 1.3s var(--ease-wipe) .1s}
  .js:not(.motion-paused) :is(.service-photo,.about-photo):not(.is-visible)::after,.js:not(.motion-paused) .work-card:not(.is-visible) .work-image::after{transform:scaleX(1)}
  .js:not(.motion-paused) :is(.service-photo,.about-photo)>img{transition:transform 2s var(--ease) .2s}
  .js:not(.motion-paused) :is(.service-photo,.about-photo):not(.is-visible)>img{transform:scale(1.2)}
  .js:not(.motion-paused) .work-card:not(.is-visible) .work-image img{transform:scale(1.12)}

  /* 線 左から引かれる */
  .js:not(.motion-paused) :is(.reason-list li,.steps li)::before{transition:transform 1.2s var(--ease) calc(var(--d,0s) + .15s)}
  .js:not(.motion-paused) :is(.reason-list li,.steps li):not(.is-visible)::before{transform:scaleX(0)}

  /* 料金の数字 */
  .js:not(.motion-paused) .plan-card .plan-price strong{display:inline-block;transition:transform 1.1s var(--ease) calc(var(--d,0s) + .2s),opacity .9s var(--ease-soft) calc(var(--d,0s) + .2s)}
  .js:not(.motion-paused) .plan-card:not(.is-visible) .plan-price strong{opacity:0;transform:translateY(30%)}
  .js:not(.motion-paused) .finder-answer:not([hidden]){animation:fade-up .7s var(--ease) backwards}

  /* 背景の斜めの帯 */
  .js:not(.motion-paused) :is(.services,.process)::before{transition:transform 1.6s var(--ease-wipe)}
  .js:not(.motion-paused) :is(.services,.process):not(.is-visible)::before{transform:rotate(14deg) scaleY(0)}

  /* 相談エリア */
  .js:not(.motion-paused) .contact-word .char{transition:opacity .8s var(--ease-soft),transform 1.1s var(--ease);transition-delay:calc(var(--i) * .045s)}
  .js:not(.motion-paused) .contact:not(.is-visible) .contact-word .char{opacity:0;transform:translateY(.4em)}

  /* 操作に応じた動き */
  :root:not(.motion-paused) .work-card.is-refresh{animation:fade-up .8s var(--ease) backwards}
  :root:not(.motion-paused) .faq details[open]>p{animation:fade-down .6s var(--ease)}
  :root:not(.motion-paused) .work-dialog[open]{animation:dialog-in .6s var(--ease)}
  :root:not(.motion-paused) .work-dialog[open]::backdrop{animation:fade .4s ease}
  :root:not(.motion-paused) #main-nav.is-open{animation:fade-down .45s var(--ease)}
}

/* 停止 タブ非表示 画面外 */
.motion-paused *,.motion-paused *::before,.motion-paused *::after,
.page-hidden *,.page-hidden *::before,.page-hidden *::after,
[data-animate].is-offscreen *,[data-animate].is-offscreen *::before,[data-animate].is-offscreen *::after{animation-play-state:paused!important}
.motion-paused *,.motion-paused *::before,.motion-paused *::after{transition-duration:0s!important;transition-delay:0s!important}
.motion-paused{scroll-behavior:auto}

@media(prefers-reduced-motion:reduce){
  :root{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .motion-toggle{display:none!important}
}

@keyframes ticker{to{transform:translateX(-50%)}}
@keyframes scroll-line{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}
@keyframes contact-arrow{50%{transform:translate(8px,-8px)}}
@keyframes arrow-through{
  0%{transform:none;animation-timing-function:cubic-bezier(.55,0,1,.45)}
  45%{transform:translate(110%,-110%);opacity:1}
  46%{transform:translate(-110%,110%);opacity:0;animation-timing-function:cubic-bezier(0,.55,.45,1)}
  50%{opacity:1}
  100%{transform:none}
}
@keyframes fade{from{opacity:0}}
@keyframes fade-up{from{opacity:0;transform:translateY(24px)}}
@keyframes fade-down{from{opacity:0;transform:translateY(-12px)}}
@keyframes fade-right{from{opacity:0;transform:translateX(-18px)}}
@keyframes rise{from{transform:translateY(112%)}}
@keyframes uncover{from{opacity:0;transform:translateX(60px)}}
@keyframes curtain-out{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes settle{from{transform:scale(1.22)}}
@keyframes draw-x{from{transform:scaleX(0)}}
@keyframes underline{from{transform:rotate(-2deg) scaleX(0)}}
@keyframes draw-y{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes seal-in{from{opacity:0;transform:rotate(-50deg) scale(.4)}}
@keyframes dialog-in{from{opacity:0;transform:translateY(24px) scale(.97)}}
