/* 上映と設計図 — DESIGN.md準拠 */
:root{
  --sumi:#0F1214; --sumi2:#171B1F; --screen:#E9E6E0;
  --brass:#C6994B; --paper:#F4F1EA; --ink:#22262A;
  --sub:#6B7076; --dim:#878C91; --bp:#2E5E77; --bengara:#A63A2B;
  --serif:'Shippori Mincho','Hiragino Mincho ProN',serif;
  --sans:'Hiragino Sans','Yu Gothic',sans-serif;
  --mono:'Courier Prime','Courier New',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--sumi);overflow-x:clip;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
em{font-style:normal}

/* ---------- 共通: ラベル・見出し・リンク ---------- */
.label{font:400 .72rem var(--mono);letter-spacing:.3em;text-transform:uppercase}
.label--bp{color:var(--bp)}
.label--brass{color:var(--brass)}
.label--dim{color:var(--dim)}
.h-serif{font-family:var(--serif);font-weight:600;letter-spacing:.04em;line-height:1.55}
.nb{display:inline-block}
.kicker{font:400 .75rem var(--mono);letter-spacing:.32em;color:var(--brass)}
.quiet-link{display:inline-block;text-decoration:none;padding:.3em .1em;border-bottom:1px solid var(--brass);transition:border-color .25s,color .25s}
.quiet-link:hover{color:var(--brass)}
.quiet-link--bp{border-bottom-color:var(--bp);color:var(--bp)}
.quiet-link--bp:hover{color:var(--ink)}

/* ---------- 幕(暗部)共通 ---------- */
.act--dark{position:relative;background:var(--sumi) url("../assets/hex-dark-bg.webp");background-size:360px auto;color:var(--screen)}
.act--dark::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 90% 55% at 50% 78%, rgba(198,153,75,.18) 0%, rgba(198,153,75,.06) 45%, transparent 75%),
    linear-gradient(rgba(15,18,20,.52), rgba(15,18,20,.52))}
.act--dark > *{position:relative}

/* ---------- 紙面共通 ---------- */
.act--paper{background:var(--paper) url("../assets/paper-grid.webp");background-size:1100px auto;color:var(--ink)}
.paper-inner{max-width:1080px;margin:0 auto;padding:96px 24px}
@media(min-width:900px){.paper-inner{padding:150px 48px}}
.paper-lead{color:var(--sub);line-height:2.1;margin-top:1.2rem}

/* ---------- 湾曲境界 ---------- */
.curve{line-height:0}
.curve svg{width:100%;height:110px;display:block}
@media(min-width:900px){.curve svg{height:160px}}
.curve__paper{fill:var(--paper)}
.curve__rim{fill:none;stroke:var(--brass);stroke-width:2.5;filter:drop-shadow(0 0 6px rgba(198,153,75,.85)) drop-shadow(0 0 22px rgba(198,153,75,.4))}
.curve--to-paper{margin-top:-1px}
.curve--to-dark{margin-bottom:-1px}

/* ---------- HERO ---------- */
.hero{overflow:clip;cursor:none}
@media(hover:none){.hero{cursor:auto}}
/* A: 映写光 */
.hero__glow{position:absolute;inset:-20%;background:radial-gradient(ellipse 55% 42% at 50% 82%, rgba(198,153,75,.3), rgba(198,153,75,.08) 50%, transparent 75%);animation:heroBreathe 7s ease-in-out infinite;mix-blend-mode:screen;pointer-events:none}
@keyframes heroBreathe{50%{transform:translateY(-3%) scale(1.07);opacity:.75}}
.hero__beam{position:absolute;inset:0;background:conic-gradient(from 178deg at 50% 130%, transparent 40%, rgba(233,230,224,.045) 49%, rgba(233,230,224,.08) 50%, rgba(233,230,224,.045) 51%, transparent 60%);animation:heroBeam 11s ease-in-out infinite alternate;pointer-events:none}
@keyframes heroBeam{to{transform:rotate(4deg)}}
.hero__grain{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;opacity:.5}
/* C: 設計図ドロー + α2 リベット */
.hero__cad .draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:cadDraw 2.4s ease forwards;animation-delay:var(--d)}
@keyframes cadDraw{to{stroke-dashoffset:0}}
.hero__cad .cad-num text{opacity:0;animation:cadNum 1s ease forwards;animation-delay:5.4s}
@keyframes cadNum{to{opacity:1}}
.hero__cad .rivet{opacity:0;fill:var(--brass);stroke:none;animation:cadRivet .5s ease forwards;animation-delay:var(--d);transform-box:fill-box;transform-origin:center}
@keyframes cadRivet{from{opacity:0;transform:scale(2.4)}to{opacity:1;transform:scale(1)}}
.hero__cad .rivet-flash{opacity:0;fill:none;stroke:var(--brass);stroke-width:1;animation:cadFlash .9s ease forwards;animation-delay:var(--d);transform-box:fill-box;transform-origin:center}
@keyframes cadFlash{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(2.6)}}
/* α3: 計器 */
.hero__meter{position:absolute;right:5%;bottom:4%;text-align:right;font:11px var(--mono);color:var(--dim);letter-spacing:.18em;line-height:2;pointer-events:none}
.hero__meter b{color:var(--brass);font-weight:400}
@media(min-width:900px){.hero__meter{right:calc(24% + 20px);bottom:6%}}
/* α1: 計測クロスヘア */
.xh{position:fixed;z-index:60;pointer-events:none;inset:0;opacity:0;transition:opacity .3s}
.xh.on{opacity:1}
.xh__vl,.xh__hl{position:absolute;background:rgba(94,143,168,.35)}
.xh__vl{top:0;bottom:0;width:1px}
.xh__hl{left:0;right:0;height:1px}
.xh__dot{position:absolute;width:7px;height:7px;border:1px solid var(--brass);transform:translate(-50%,-50%) rotate(45deg)}
.xh__co{position:absolute;transform:translate(14px,14px);font:10px var(--mono);color:var(--bp);letter-spacing:.14em;background:rgba(15,18,20,.7);padding:2px 6px}
@media(hover:none){.xh{display:none}}
.hero__inner{position:relative;max-width:1080px;margin:0 auto;padding:18vh 24px 0;min-height:88vh}
@media(min-width:900px){.hero__inner{padding:22vh 48px 0}}
.hero__flag{font-family:var(--serif);font-weight:600;font-size:clamp(1.95rem,6vw,3.9rem);line-height:1.55;letter-spacing:.05em;margin-top:1.6rem}
.hero__flag .ch{display:inline-block}
.hero__sub{margin-top:1.5rem;max-width:min(30em,calc(100% - 44px));font-size:.95rem;line-height:2.05;letter-spacing:.05em;color:#c9c6c0}
@media(min-width:900px){.hero__sub{font-size:1.02rem}}
.hero__links{display:flex;flex-direction:column;gap:.9rem;align-items:flex-start;margin-top:2rem;font-size:.95rem}
@media(min-width:640px){.hero__links{flex-direction:row;gap:2.4rem}}
.hero__rule{position:absolute;top:8vh;right:26px;bottom:-4vh;width:1px;background:linear-gradient(to bottom,transparent,var(--brass) 12%,var(--brass) 88%,transparent)}
@media(min-width:900px){.hero__rule{right:24%}}
.hero__rule::after{content:"";position:absolute;bottom:0;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--brass)}
.hero__name{position:absolute;top:16%;left:50%;transform:translateX(-50%);writing-mode:vertical-rl;font-family:var(--sans);font-size:.82rem;letter-spacing:.42em;color:var(--screen);background:var(--sumi);padding:1em 0}
.hero__cad{position:absolute;right:4%;bottom:-6%;width:min(46vw,420px);color:var(--bp);opacity:.55}
.hero__cad .cad-num{fill:var(--bp);font-family:var(--mono)}

/* 症状(字幕リビール) */
.symptoms{position:relative}
.symptoms__pin{max-width:1080px;margin:0 auto;padding:10vh 24px;display:flex;justify-content:flex-end}
@media(min-width:900px){.symptoms__pin{padding:12vh 48px}}
.symptoms__list{list-style:none;display:flex;flex-direction:column;gap:3.2rem;max-width:34em}
.symptoms__list li{display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:start}
.symptoms__no{font:400 .8rem var(--mono);color:var(--brass);letter-spacing:.1em;border-bottom:1px solid var(--brass);padding:0 .2em .35em;margin-top:.5em}
.symptoms__text{font-family:var(--serif);font-size:clamp(1.05rem,2.2vw,1.45rem);line-height:2.1;letter-spacing:.04em}
.symptoms__text .w{color:#3a3f45}
.hero__closing{max-width:1080px;margin:0 auto;padding:6vh 24px 16vh}
@media(min-width:900px){.hero__closing{padding:8vh 48px 20vh}}
.hero__closing p{max-width:34em;line-height:2.3;letter-spacing:.05em;margin-bottom:1.6em;color:#c9c6c0}

/* ---------- SERVICE ---------- */
.svc-list{list-style:none;display:flex;flex-direction:column;gap:88px;margin-top:72px;counter-reset:svc}
.svc{max-width:640px;position:relative}
.svc__art{position:absolute;z-index:0;mix-blend-mode:multiply;pointer-events:none;
  right:-6%;top:14%;width:min(74%,340px);opacity:.3}
.svc--r .svc__art{right:auto;left:-6%}
.svc__head,.svc__body{position:relative;z-index:1}
@media(min-width:900px){
  .svc__art{opacity:.9;width:min(26vw,350px);top:-24px}
  .svc--l .svc__art{right:auto;left:calc(100% + 56px)}
  .svc--r .svc__art{left:auto;right:calc(100% + 56px)}
}
.svc--r{margin-left:auto}
@media(min-width:900px){
  .svc--l{margin-right:auto}
  .svc--l::after,.svc--r::before{content:"";position:absolute;top:1.2rem;width:120px;height:1px;background:var(--bp);opacity:.4}
  .svc--l::after{right:-160px}
  .svc--r::before{left:-160px}
}
.svc__head{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:baseline}
.svc__no{font:700 clamp(2.6rem,6vw,4rem)/1 var(--mono);color:transparent;-webkit-text-stroke:1.4px var(--bp)}
.svc__q{font-size:.85rem;font-weight:600;color:var(--bp);letter-spacing:.06em}
.svc__name{font-size:clamp(1.4rem,3vw,1.9rem);margin-top:.4rem}
.svc__body{margin-top:1.4rem;padding-left:0}
@media(min-width:900px){.svc__body{padding-left:calc(clamp(2.6rem,6vw,4rem) + 1.4rem)}}
.svc__body>p{line-height:2.1;color:var(--ink);margin-bottom:1.2em;max-width:36em}
.svc__more summary{list-style:none;cursor:pointer;display:inline-block}
.svc__more summary::-webkit-details-marker{display:none}
.svc__more summary .quiet-link::after{content:" +";font-family:var(--mono)}
.svc__more[open] summary .quiet-link::after{content:" −"}
.svc__fit{margin-top:1.4rem;border-left:2px solid var(--bp);padding:.4em 0 .4em 1.4em}
.svc__fit-title{font-size:.82rem;font-weight:600;color:var(--bp);margin-bottom:.6em}
.svc__fit ul{list-style:none}
.svc__fit li{line-height:2;color:var(--sub);padding-left:1.2em;position:relative}
.svc__fit li::before{content:"—";position:absolute;left:0;color:var(--bp)}
.svc__fit-title+ul+.svc__fit-title{margin-top:1.2em}
.svc__fit-note{line-height:2;color:var(--sub);max-width:34em}
.svc__ask{margin-top:1.4rem}

/* ---------- NOT SURE? 帯 ---------- */
.film-band{background:var(--sumi2);color:var(--screen);position:relative}
.film-band__holes{height:26px;background-image:radial-gradient(rgba(233,230,224,.16) 4px,transparent 5px);background-size:56px 26px;background-position:14px center}
.film-band__inner{max-width:1080px;margin:0 auto;padding:72px 24px}
@media(min-width:900px){.film-band__inner{padding:88px 48px}}
.film-band__title{font-size:clamp(1.4rem,3.2vw,2.1rem);margin-top:1rem}
.film-band__cols{display:grid;gap:2.5rem;margin-top:2.4rem}
@media(min-width:820px){.film-band__cols{grid-template-columns:1fr 1fr;gap:5rem}}
.film-band__cols p{line-height:2.2;color:#c9c6c0;margin-bottom:.8em}
.dash-list{list-style:none}
.dash-list li{line-height:2.2;padding-left:1.3em;position:relative;color:#c9c6c0}
.dash-list li::before{content:"—";position:absolute;left:0;color:var(--brass)}
.film-band__cta{margin-top:2.6rem}

/* ---------- WHY OKADA ---------- */
.why__inner{max-width:1080px;margin:0 auto;padding:64px 24px 96px;display:grid;gap:2rem}
@media(min-width:900px){.why__inner{grid-template-columns:auto 1fr;gap:5rem;padding:96px 48px 150px}}
.why__chapter{display:flex;align-items:baseline;gap:1.2rem}
@media(min-width:900px){.why__chapter{position:sticky;top:34vh;align-self:start;flex-direction:column;gap:.8rem}}
.why__num{font:700 clamp(3.4rem,8vw,6.4rem)/1 var(--mono);color:transparent;-webkit-text-stroke:1.5px var(--brass)}
.why__flow{max-width:38em}
.why__flow h2{font-size:clamp(1.5rem,3.4vw,2.3rem)}
.why__story{margin-top:2.4rem}
.why__story p{line-height:2.4;letter-spacing:.05em;color:#c9c6c0;margin-bottom:1.8em}
.why__steps{font-family:var(--serif);color:var(--screen)!important;font-size:1.08em}
.aperture{margin:3.4rem 0}
.aperture img{width:100%;max-width:560px;border-radius:24px;border:1px solid rgba(198,153,75,.55)}
.aperture figcaption{font-size:.8rem;color:var(--dim);margin-top:.9em;letter-spacing:.08em}
.why__deficit{font-family:var(--serif);font-size:clamp(1.25rem,2.8vw,1.8rem);line-height:2;color:var(--screen);border-bottom:1px solid var(--bengara);display:inline-block;padding-bottom:.35em;margin:1.2rem 0 2.4rem}
.bengara{color:var(--bengara);font-weight:700}
.why__links{display:flex;flex-wrap:wrap;gap:1.2rem 2.4rem;margin-top:1.4rem;font-size:.95rem}

/* ---------- APPROACH ---------- */
.approach__lead{margin-top:1.6rem}
.approach__lead p{line-height:2.2;color:var(--sub);max-width:36em;margin-bottom:.6em}
.prin-list{list-style:none;display:flex;flex-direction:column;gap:56px;margin-top:64px}
.prin{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;max-width:620px;margin-left:var(--px)}
.prin__node{width:58px;height:64px;flex:none;display:grid;place-items:center;font:700 1rem var(--mono);color:var(--bp);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 64'%3E%3Cpolygon points='29,1.5 56.5,17 56.5,47 29,62.5 1.5,47 1.5,17' fill='none' stroke='%23C6994B' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat}
.prin__t{font-family:var(--serif);font-size:1.2rem;font-weight:600;margin-bottom:.7em}
.prin p{line-height:2.1;color:var(--sub);margin-bottom:.5em;max-width:32em}

/* ---------- 紙面⇔紙面の区切り(寸法線) ---------- */
.paper-inner--join-b{padding-bottom:0}
.paper-inner--join-t{padding-top:64px}
@media(min-width:900px){.paper-inner--join-t{padding-top:88px}}
.dim-rule{height:13px;margin-top:88px;position:relative;opacity:.5;
  background:linear-gradient(var(--bp),var(--bp)) center/100% 1px no-repeat}
.dim-rule::before,.dim-rule::after{content:"";position:absolute;top:0;width:1px;height:13px;background:var(--bp)}
.dim-rule::before{left:0}
.dim-rule::after{right:0}
@media(min-width:900px){.dim-rule{margin-top:120px}}

/* ---------- PRACTICE(観測記録) ---------- */
.practice__lead{margin-top:1.6rem}
.practice__lead p{line-height:2.2;color:var(--sub);max-width:36em;margin-bottom:.6em}
.log-list{list-style:none;margin-top:64px;border-left:1px solid rgba(46,94,119,.45)}
.log{position:relative;padding:0 0 60px 1.8rem;max-width:760px}
.log:last-child{padding-bottom:4px}
.log::before{content:"";position:absolute;left:-8px;top:.2em;width:15px;height:17px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 64'%3E%3Cpolygon points='29,1.5 56.5,17 56.5,47 29,62.5 1.5,47 1.5,17' fill='%23F4F1EA' stroke='%232E5E77' stroke-width='2.4'/%3E%3C/svg%3E") center/contain no-repeat}
.log__no{font:400 .72rem var(--mono);letter-spacing:.24em;color:var(--bp)}
.log__t{font-size:clamp(1.15rem,2.4vw,1.45rem);margin:.5em 0 .9em}
.log__body>p{line-height:2.1;color:var(--sub);max-width:36em;margin-bottom:.6em}
@media(min-width:900px){
  .log-list{margin-left:8.5rem}
  .log{padding-left:2.4rem}
  .log__no{position:absolute;left:-8.5rem;top:.1em;width:7rem;text-align:right}
  .log__t{margin-top:0}
}
.ratio{margin:1.6rem 0 1.8rem;max-width:460px}
.ratio__bar{display:flex;height:16px;border:1px solid var(--bp)}
.ratio__m{width:85%;background:repeating-linear-gradient(135deg,rgba(46,94,119,.6) 0 1.5px,transparent 1.5px 6px)}
.ratio__r{width:7%;background:repeating-linear-gradient(135deg,rgba(46,94,119,.25) 0 1.5px,transparent 1.5px 6px);border-left:1px dashed var(--bp)}
.ratio__h{flex:1;background:var(--brass)}
.ratio__scale{display:flex;justify-content:space-between;font:400 .72rem var(--mono);letter-spacing:.14em;color:var(--bp);margin-top:.55em}
.ratio__scale span:last-child{color:#8a6a2f}
.ratio figcaption{font-size:.78rem;line-height:1.8;color:var(--sub);margin-top:.4em}
.practice__start{margin-top:72px;border-left:2px solid var(--bp);padding:.4em 0 .4em 1.4em;max-width:680px}
.practice__start>p{line-height:2.1;color:var(--ink);margin-bottom:.8em}
.dash-list--paper li{color:var(--sub);line-height:2}
.dash-list--paper li+li{margin-top:.6em}
.dash-list--paper li::before{color:var(--bp)}
.practice__note{font-size:.8rem;line-height:1.9;color:var(--sub);margin-top:2rem}

/* ---------- FLOW(工程図) ---------- */
.flow-list{list-style:none;margin-top:64px;position:relative;display:grid;gap:44px}
.flow-list::before{content:"";position:absolute;left:23px;top:20px;bottom:20px;border-left:1px dashed var(--bp);opacity:.7}
.step{display:grid;grid-template-columns:48px 1fr;gap:1.2rem;position:relative;align-content:start}
.step__node{width:48px;height:53px;display:grid;place-items:center;font:700 .85rem var(--mono);color:var(--bp);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 64'%3E%3Cpolygon points='29,1.5 56.5,17 56.5,47 29,62.5 1.5,47 1.5,17' fill='%23F4F1EA' stroke='%232E5E77' stroke-width='2.4'/%3E%3C/svg%3E") center/contain no-repeat}
.step__t{font-family:var(--serif);font-size:1.12rem;font-weight:600;line-height:1.7;margin-top:.6rem}
.step__body p{line-height:2.05;color:var(--sub);margin-top:.5em;max-width:34em}
@media(min-width:1000px){
  .flow-list{grid-template-columns:repeat(5,1fr);gap:28px}
  .flow-list::before{left:24px;right:calc(20% - 4px);top:26px;bottom:auto;border-left:0;border-top:1px dashed var(--bp)}
  .step{grid-template-columns:1fr;gap:0}
  .step__t{margin-top:1.1rem}
}
.flow__cost{margin-top:72px;border-left:2px solid var(--bp);padding:.4em 0 .4em 1.4em;max-width:680px}
.flow__cost p:not(.svc__fit-title){line-height:2.1;color:var(--sub);margin-bottom:.4em}

/* ---------- PROFILE ---------- */
.profile__grid{display:grid;gap:3rem;margin-top:2.2rem}
@media(min-width:860px){.profile__grid{grid-template-columns:minmax(260px,380px) 1fr;gap:5rem}}
.profile__photo img{border-radius:24px;border:1px solid var(--brass)}
.profile__text h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}
.profile__role{font-size:.88rem;letter-spacing:.08em;color:#c9c6c0;margin-top:.5em}
.timeline{list-style:none;margin:1.8rem 0 2.4rem;border-left:1.4px solid rgba(198,153,75,.6);padding-left:0}
.timeline li{position:relative;padding:0 0 1.1em 1.8em;line-height:1.9;color:var(--screen);font-size:1rem}
.timeline li::before{content:"";position:absolute;left:-8px;top:.45em;width:14px;height:16px;background:var(--sumi) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 64'%3E%3Cpolygon points='29,1.5 56.5,17 56.5,47 29,62.5 1.5,47 1.5,17' fill='none' stroke='%23C6994B' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat}
.profile__text>p{line-height:2.2;color:var(--screen);margin-bottom:1.1em;max-width:36em}

/* ---------- FAQ ---------- */
.faq-list{margin-top:56px;display:flex;flex-direction:column;gap:52px}
.faq-item{max-width:620px}
.faq-item--r{margin-left:auto}
.faq-item dt{font-family:var(--serif);font-weight:600;font-size:1.15rem;line-height:1.9;display:flex;gap:.9rem;align-items:baseline}
.faq-q{font:700 1.3rem var(--mono);color:var(--brass)}
.faq-item dd{margin:.9rem 0 0 2.2rem}
.faq-item dd p{line-height:2.1;color:var(--sub);margin-bottom:.5em;max-width:33em}

/* ---------- CONTACT ---------- */
.contact::before{background:
  radial-gradient(ellipse 100% 60% at 50% 30%, rgba(198,153,75,.22) 0%, rgba(198,153,75,.07) 45%, transparent 78%),
  linear-gradient(rgba(15,18,20,.52), rgba(15,18,20,.52))!important}
.contact__inner{max-width:820px;margin:0 auto;padding:80px 24px 64px;text-align:center}
@media(min-width:900px){.contact__inner{padding:120px 48px 88px}}
.contact__title{font-size:clamp(1.6rem,3.6vw,2.4rem);margin-top:1rem}
.contact__lead{margin-top:2rem;line-height:2.3;color:#c9c6c0}
.contact__examples{display:inline-block;text-align:left;margin:1.6rem auto 0}
.contact__lead2{margin-top:1.8rem;line-height:2.2;color:#c9c6c0}
.contact__free{margin-top:1.6rem;font-family:var(--serif);font-size:1.08rem;letter-spacing:.06em;color:var(--screen)}
.contact__note{margin-top:1.6rem;font-size:.8rem;line-height:1.9;color:var(--dim)}
.contact__ctas{display:flex;flex-direction:column;gap:1.1rem;align-items:center;margin-top:3rem}
@media(min-width:640px){.contact__ctas{flex-direction:row;justify-content:center;gap:1.6rem}}
.cta{display:inline-block;text-decoration:none;font-weight:700;font-size:1rem;letter-spacing:.08em;padding:16px 44px;border-radius:3px;transition:filter .25s,background .25s,color .25s}
.cta--brass{background:var(--brass);color:#14171A}
.cta--brass:hover{filter:brightness(1.12)}
.cta--ghost{border:1px solid rgba(233,230,224,.5);color:var(--screen)}
.cta--ghost:hover{border-color:var(--brass);color:var(--brass)}
/* フォーム */
.form{margin:4.5rem auto 0;max-width:640px;text-align:left;background:var(--sumi2);border:1px solid rgba(135,140,145,.3);border-radius:24px;padding:2rem 1.4rem;scroll-margin-top:10vh}
@media(min-width:640px){.form{padding:3rem 3rem}}
.form__field{margin-bottom:1.6rem}
.form__field label,.form__field legend{display:block;font-size:.9rem;letter-spacing:.06em;color:var(--screen);margin-bottom:.6em}
.form__req{font:400 .68rem var(--mono);color:var(--brass);letter-spacing:.15em;margin-left:.6em}
.form__opt{font:400 .68rem var(--mono);color:var(--dim);letter-spacing:.15em;margin-left:.6em}
.form input[type=text],.form input[type=email],.form input[type=url],.form textarea{
  width:100%;background:var(--sumi);border:1px solid rgba(135,140,145,.4);border-radius:3px;color:var(--screen);
  font:1rem var(--sans);padding:.8em .9em}
.form input:focus,.form textarea:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:transparent}
.form__field--options{border:0}
.form__check{display:block;font-size:.93rem;color:#c9c6c0;line-height:1.7;padding:.35em 0;cursor:pointer}
.form__check input{accent-color:var(--brass);margin-right:.7em}
.form__submit-wrap{text-align:center;margin-top:2.2rem}
.form__submit{border:0;cursor:pointer;font-family:var(--sans)}
.form__pending{margin-top:1.4rem;text-align:center;font-size:.88rem;color:var(--brass);line-height:1.8}
.form__error{outline:2px solid var(--bengara)!important}
.footer{padding:3.5rem 24px 2.5rem;text-align:center}
.footer__op{margin-top:1rem;font-size:.78rem;letter-spacing:.06em;color:var(--dim)}
.footer__op a{color:inherit;text-underline-offset:3px}
.footer__op--link{margin-top:.4rem}
.form__privacy a,.footer__op a{white-space:nowrap}
.form__privacy{margin-top:.4rem;font-size:.82rem;line-height:1.9;color:#c9c6c0;text-align:center}
.form__privacy a{color:var(--screen);text-underline-offset:3px}

/* ---------- 追従CTA(広告流入向け・2026-09-30) ---------- */
.sticky-cta{position:fixed;z-index:50;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.85rem 20px calc(.85rem + env(safe-area-inset-bottom));background:rgba(23,27,31,.96);border-top:1px solid var(--brass);
  color:var(--screen);text-decoration:none;opacity:0;visibility:hidden;transform:translateY(100%);transition:opacity .3s,transform .3s,visibility .3s}
.sticky-cta.on{opacity:1;visibility:visible;transform:none}
.sticky-cta__note{font-size:.8rem;letter-spacing:.04em;color:#c9c6c0}
.sticky-cta__go{font-weight:700;font-size:.92rem;letter-spacing:.06em;color:#14171A;background:var(--brass);border-radius:3px;padding:.55em 1.1em;white-space:nowrap}
@media(min-width:900px){
  .sticky-cta{left:auto;right:28px;bottom:28px;border:1px solid var(--brass);border-radius:3px;padding:.7rem .7rem .7rem 1.2rem}
}
@media (prefers-reduced-motion: reduce){.sticky-cta{transition:none}}

/* ---------- モーション既定(JSなし/reduced時も成立) ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .symptoms__text .w{color:inherit!important}
  .hero__glow,.hero__beam{animation:none}
  .hero__grain,.xh{display:none}
  .hero{cursor:auto}
  .hero__cad .draw{animation:none;stroke-dashoffset:0}
  .hero__cad .cad-num text{animation:none;opacity:1}
  .hero__cad .rivet{animation:none;opacity:1}
  .hero__cad .rivet-flash{display:none}
}
