/* =========================================================
   鈴木商店 × ORIME  クラウドファンディングLP デモ
   黒系・重厚・シック・高級感
   ========================================================= */

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:none}
a{color:inherit;text-decoration:none}
ul{list-style:none}

:root{
  --ink:#0b0a09;
  --ink-2:#131110;
  --panel:#191512;
  --panel-2:#211b16;
  --paper:#1f1811;
  --paper-2:#291f15;
  --line:rgba(233,222,200,.14);
  --line-strong:rgba(233,222,200,.30);
  --text:#e9e2d4;
  --text-dim:#a99f8c;
  --text-ink:#e9e0cf;
  --text-ink-dim:#a1927b;
  --gold:#c8a24a;
  --gold-lite:#e6cf93;
  --gold-deep:#9c7c33;
  --camel:#c06f30;
  --green:#2f4a2b;
  --red:#a5231f;
  --maxw:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --shadow:0 30px 60px -25px rgba(0,0,0,.7);
  --leather:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
}

body{
  font-family:"Zen Kaku Gothic New","Noto Sans JP",system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  background:var(--ink);
  color:var(--text);
  line-height:1.85;
  letter-spacing:.02em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

.serif{font-family:"Shippori Mincho","Noto Serif JP",serif}

/* ---- Layout helpers ---- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.section{padding:110px 0;position:relative}
.section--tight{padding:78px 0}
.section.ink{background:var(--ink-2)}
.section.ink::before{content:"";position:absolute;inset:0;background-image:var(--leather);background-size:200px;mix-blend-mode:overlay;opacity:.5;pointer-events:none}
.section.paper{background:linear-gradient(180deg,var(--paper-2),var(--paper));color:var(--text-ink)}
.section.paper::before{content:"";position:absolute;inset:0;background-image:var(--leather);background-size:200px;mix-blend-mode:overlay;opacity:.45;pointer-events:none}
.section.paper .eyebrow{color:var(--gold-lite)}
.section.paper .sec-head p{color:var(--text-ink-dim)}
.section.paper .wrap{position:relative}
.section.panel{background:var(--panel)}

.eyebrow{
  font-family:"Shippori Mincho",serif;
  font-size:.8rem;letter-spacing:.42em;text-transform:uppercase;
  color:var(--gold-lite);display:inline-flex;align-items:center;gap:.8em;margin-bottom:20px
}
.eyebrow::before{content:"";width:34px;height:1px;background:currentColor;opacity:.7}

.sec-head{max-width:720px;margin-bottom:60px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head.center .eyebrow::after{content:"";width:34px;height:1px;background:currentColor;opacity:.7}
h2.h{font-family:"Shippori Mincho",serif;font-weight:600;font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.4;letter-spacing:.04em}
.sec-head p{margin-top:20px;color:var(--text-dim);font-size:1.02rem}

.hr-stitch{height:2px;border:0;background:
  repeating-linear-gradient(90deg,var(--gold) 0 12px,transparent 12px 24px);
  opacity:.5;margin:0}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  padding:16px 30px;border-radius:2px;font-weight:700;font-size:.95rem;letter-spacing:.08em;
  transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s;
  border:1px solid var(--gold);white-space:nowrap
}
.btn--gold{background:linear-gradient(160deg,var(--gold-lite),var(--gold) 55%,var(--gold-deep));color:#231a08;box-shadow:0 14px 30px -14px rgba(200,162,74,.6)}
.btn--gold:hover{transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--gold-lite)}
.btn--ghost:hover{background:rgba(200,162,74,.12);transform:translateY(-2px)}
.btn--block{width:100%}
.btn--lg{padding:19px 40px;font-size:1rem}

/* ---- Announcement ribbon ---- */
.ribbon{
  background:repeating-linear-gradient(135deg,#1c1610 0 14px,#241d14 14px 28px);
  border-bottom:1px solid var(--line);
  font-size:.8rem;color:var(--text-dim);text-align:center;padding:9px 44px 9px 20px;position:relative;letter-spacing:.03em
}
.ribbon b{color:var(--gold-lite);font-weight:700}
.ribbon button{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-dim);font-size:1.1rem;line-height:1;padding:4px}
.ribbon button:hover{color:var(--gold-lite)}

/* ---- Header ---- */
.site-head{position:sticky;top:0;z-index:80;background:rgba(11,10,9,.82);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s,padding .3s,background .3s}
.site-head.scrolled{border-color:var(--line);background:rgba(11,10,9,.94)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;transition:height .3s}
.site-head.scrolled .wrap{height:64px}

.brand{display:flex;align-items:center;gap:12px}
.brand .mark{width:34px;height:34px;border:1px solid var(--gold);display:grid;place-items:center;flex:none}
.brand .mark span{font-family:"Shippori Mincho",serif;color:var(--gold-lite);font-size:1rem;line-height:1}
.brand .nm{display:flex;flex-direction:column;line-height:1.25}
.brand .nm b{font-family:"Shippori Mincho",serif;font-weight:600;font-size:1.02rem;letter-spacing:.14em;color:var(--text)}
.brand .nm i{font-style:normal;font-size:.58rem;letter-spacing:.34em;color:var(--text-dim)}

.nav{display:flex;align-items:center;gap:30px}
.nav a{font-size:.85rem;letter-spacing:.06em;color:var(--text-dim);transition:color .2s;position:relative;padding:6px 0}
.nav a:hover,.nav a.active{color:var(--gold-lite)}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .3s var(--ease)}
.nav a:hover::after{width:100%}
.nav .btn{padding:11px 20px;font-size:.8rem}

.burger{display:none;width:40px;height:40px;flex-direction:column;justify-content:center;gap:5px;align-items:center}
.burger span{width:22px;height:1.5px;background:var(--text);transition:.3s}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ---- Hero ---- */
.hero{position:relative;background:var(--ink);padding:78px 0 90px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:var(--leather);background-size:220px;opacity:.5;mix-blend-mode:overlay}
.hero::after{content:"";position:absolute;width:620px;height:620px;right:-160px;top:-180px;border-radius:50%;background:radial-gradient(circle,rgba(200,162,74,.18),transparent 68%);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero-copy .eyebrow{margin-bottom:24px}
.hero h1{font-family:"Shippori Mincho",serif;font-weight:600;font-size:clamp(2.1rem,5.4vw,3.5rem);line-height:1.42;letter-spacing:.03em}
.hero h1 em{font-style:normal;color:var(--gold-lite);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.4em;background:rgba(200,162,74,.18);z-index:-1}
.hero .lede{margin-top:26px;color:var(--text-dim);font-size:1.05rem;max-width:30em}
.hero .cta-row{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap}
.hero .note{margin-top:18px;font-size:.78rem;color:var(--text-dim);letter-spacing:.04em}

.hero-visual{position:relative}
.hero-visual .frame{border:1px solid var(--line-strong);padding:12px;background:var(--panel);box-shadow:var(--shadow)}
.hero-visual .frame img{width:100%;aspect-ratio:4/3.1;object-fit:cover}
.hero-visual .cap{position:absolute;left:-14px;bottom:26px;background:var(--ink);border:1px solid var(--gold);padding:10px 16px;font-size:.72rem;letter-spacing:.16em;color:var(--gold-lite);font-family:"Shippori Mincho",serif}

/* funding meta card */
.fund{margin-top:34px;border:1px solid var(--line-strong);background:linear-gradient(180deg,rgba(255,255,255,.03),transparent);padding:24px}
.fund .bar{height:8px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;margin:6px 0 18px}
.fund .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold-lite));border-radius:99px;transition:width 1.6s var(--ease)}
.fund .row{display:flex;gap:8px;flex-wrap:wrap}
.fund .stat{flex:1;min-width:96px}
.fund .stat b{display:block;font-family:"Shippori Mincho",serif;font-size:1.5rem;color:var(--text);line-height:1.2}
.fund .stat b .u{font-size:.8rem;color:var(--text-dim);margin-left:2px}
.fund .stat span{font-size:.7rem;letter-spacing:.14em;color:var(--text-dim)}
.fund .goal{font-size:.78rem;color:var(--text-dim);margin-bottom:4px;display:flex;justify-content:space-between}
.fund .goal b{color:var(--gold-lite);font-family:"Shippori Mincho",serif}

/* ---- quick 3 points ---- */
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.tri .card{border:1px solid var(--line);padding:34px 26px;background:var(--panel);text-align:center;transition:border-color .3s,transform .3s}
.tri .card:hover{border-color:var(--gold);transform:translateY(-4px)}
.tri .ic{width:64px;height:64px;margin:0 auto 20px;color:var(--gold-lite)}
.tri .card b{font-family:"Shippori Mincho",serif;font-size:1.12rem;display:block;margin-bottom:10px;letter-spacing:.04em}
.tri .card p{font-size:.9rem;color:var(--text-dim)}

/* ---- problem / promise ---- */
.pp{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);overflow:hidden}
.pp>div{padding:44px 40px}
.pp .problem{background:var(--ink-2);border-right:1px solid var(--line)}
.pp .promise{background:linear-gradient(180deg,rgba(200,162,74,.08),transparent)}
.pp h3{font-family:"Shippori Mincho",serif;font-size:1.15rem;margin-bottom:20px;letter-spacing:.06em}
.pp .problem h3{color:var(--text-dim)}
.pp .promise h3{color:var(--gold-lite)}
.pp li{padding-left:26px;position:relative;margin-bottom:14px;color:var(--text-dim);font-size:.95rem}
.pp .problem li::before{content:"×";position:absolute;left:0;color:#8a6a4a;font-weight:700}
.pp .promise li{color:var(--text)}
.pp .promise li::before{content:"";position:absolute;left:0;top:.55em;width:12px;height:6px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}

/* ---- structure interactive ---- */
.struct{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;align-items:center}
.struct .stage{border:1px solid var(--line-strong);background:var(--panel);padding:16px;position:relative;box-shadow:var(--shadow)}
.struct .stage .ph{position:relative;width:100%;aspect-ratio:4/3.4;overflow:hidden}
.struct .stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s var(--ease)}
.struct .stage img.on{opacity:1}
.struct .steps{display:flex;flex-direction:column;gap:12px}
.struct .step{border:1px solid var(--line);padding:20px 22px;background:var(--ink-2);text-align:left;transition:.3s;display:flex;gap:18px;align-items:flex-start}
.struct .step:hover{border-color:var(--line-strong)}
.struct .step.on{border-color:var(--gold);background:linear-gradient(180deg,rgba(200,162,74,.1),transparent)}
.struct .step .no{font-family:"Shippori Mincho",serif;color:var(--gold-lite);font-size:1.1rem;flex:none;width:2ch}
.struct .step b{font-family:"Shippori Mincho",serif;font-size:1.05rem;display:block;margin-bottom:6px;letter-spacing:.04em}
.struct .step p{font-size:.86rem;color:var(--text-dim)}
.struct .step.on p{color:var(--text)}

/* ---- capacity ---- */
.cap-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.cap-nums{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);border:1px solid var(--line)}
.cap-nums .c{background:var(--paper);padding:30px 22px;text-align:center}
.cap-nums .c b{font-family:"Shippori Mincho",serif;font-size:2.4rem;color:var(--text-ink);line-height:1}
.cap-nums .c b .u{font-size:.9rem;color:var(--gold-deep);margin-left:3px}
.cap-nums .c span{font-size:.8rem;letter-spacing:.12em;color:var(--text-ink-dim);display:block;margin-top:8px}
.cap-svg{color:var(--gold-deep)}

/* ---- spec ---- */
.spec{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.spec-draw{border:1px solid var(--line);background:var(--ink-2);padding:30px;color:var(--gold-lite)}
.compare{margin-top:22px}
.compare .b{margin-bottom:14px}
.compare .b span{font-size:.78rem;color:var(--text-dim);display:flex;justify-content:space-between;margin-bottom:6px}
.compare .b i{display:block;height:14px;background:rgba(255,255,255,.08);position:relative}
.compare .b i::after{content:"";position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold-lite));width:var(--w,50%)}
.spec-table{width:100%;border-collapse:collapse;font-size:.9rem}
.spec-table th,.spec-table td{text-align:left;padding:15px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.spec-table th{color:var(--text-dim);font-weight:400;width:34%;letter-spacing:.08em;font-family:"Shippori Mincho",serif}

/* ---- colors ---- */
.colors{display:grid;grid-template-columns:1fr .9fr;gap:50px;align-items:center}
.colors .big{border:1px solid var(--line-strong);padding:14px;background:var(--panel);box-shadow:var(--shadow)}
.colors .big img{width:100%;aspect-ratio:3/2;object-fit:cover}
.colors .pick{display:flex;flex-direction:column;gap:10px}
.colors .sw{display:flex;align-items:center;gap:16px;border:1px solid var(--line);padding:14px 18px;background:var(--ink-2);text-align:left;transition:.25s}
.colors .sw:hover{border-color:var(--line-strong)}
.colors .sw.on{border-color:var(--gold);background:linear-gradient(180deg,rgba(200,162,74,.1),transparent)}
.colors .sw .dot{width:34px;height:34px;border:1px solid rgba(255,255,255,.25);flex:none}
.colors .sw b{font-family:"Shippori Mincho",serif;letter-spacing:.06em;display:block}
.colors .sw span{font-size:.76rem;color:var(--text-dim)}

/* ---- craftsman story ---- */
.story{position:relative}
.story .band{height:230px;background:url("../img/photo/craft-tools-dark.jpg") center/cover;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}
.story .band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink-2) 2%,transparent 40%,transparent 60%,var(--ink-2) 98%)}
.story-body{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:60px}
.story-body .lead{font-family:"Shippori Mincho",serif;font-size:1.3rem;line-height:1.9;letter-spacing:.04em;color:var(--text)}
.story-body p{color:var(--text-dim);font-size:.96rem;margin-bottom:18px}
.pquote{border-left:2px solid var(--gold);padding:6px 0 6px 24px;margin:26px 0;font-family:"Shippori Mincho",serif;font-size:1.12rem;color:var(--gold-lite);line-height:1.8}
.ph-note{border:1px dashed var(--line-strong);padding:14px 18px;font-size:.78rem;color:var(--text-dim);margin-top:10px;background:rgba(255,255,255,.02)}

/* ---- process ---- */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line);border:1px solid var(--line)}
.proc .p{background:var(--ink-2);padding:34px 24px;text-align:center;transition:background .3s}
.proc .p:hover{background:var(--panel)}
.proc .ic{width:58px;height:58px;margin:0 auto 18px;color:var(--gold-lite)}
.proc .p .no{font-size:.72rem;letter-spacing:.3em;color:var(--gold-lite);display:block;margin-bottom:6px}
.proc .p b{font-family:"Shippori Mincho",serif;font-size:1.05rem;display:block;margin-bottom:8px}
.proc .p p{font-size:.82rem;color:var(--text-dim)}

/* ---- personas ---- */
.persona{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.persona .c{border:1px solid var(--line);padding:30px 22px;background:var(--panel);transition:.3s}
.persona .c:hover{border-color:var(--gold);transform:translateY(-4px)}
.persona .ic{width:50px;height:50px;color:var(--gold-lite);margin-bottom:18px}
.persona .c b{font-family:"Shippori Mincho",serif;display:block;margin-bottom:10px;font-size:1.02rem}
.persona .c p{font-size:.84rem;color:var(--text-dim)}

/* ---- returns ---- */
.returns{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ret{border:1px solid var(--line);background:var(--ink-2);padding:28px 26px;display:flex;flex-direction:column;transition:.3s;position:relative}
.ret:hover{border-color:var(--gold);transform:translateY(-5px)}
.ret.feat{border-color:var(--gold);background:linear-gradient(180deg,rgba(200,162,74,.1),transparent)}
.ret .tag{position:absolute;top:-1px;right:-1px;background:var(--gold);color:#231a08;font-size:.68rem;font-weight:700;letter-spacing:.1em;padding:5px 12px}
.ret h4{font-family:"Shippori Mincho",serif;font-size:1.1rem;letter-spacing:.04em;margin-bottom:6px;padding-right:60px}
.ret .off{color:var(--gold-lite);font-size:.8rem;letter-spacing:.1em;margin-bottom:16px}
.ret .price{font-family:"Shippori Mincho",serif;font-size:1.9rem;color:var(--text)}
.ret .price s{font-size:.9rem;color:var(--text-dim);margin-left:8px}
.ret .price .u{font-size:.9rem;color:var(--text-dim)}
.ret ul{margin:16px 0 20px;font-size:.85rem;color:var(--text-dim)}
.ret ul li{padding-left:20px;position:relative;margin-bottom:8px}
.ret ul li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:5px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.ret .stock{font-size:.72rem;color:var(--text-dim);margin-bottom:6px;display:flex;justify-content:space-between}
.ret .sbar{height:5px;background:rgba(255,255,255,.08);margin-bottom:18px;overflow:hidden}
.ret .sbar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold-deep),var(--gold-lite))}
.ret .btn{margin-top:auto}

/* ---- schedule ---- */
.timeline{position:relative;padding-left:34px}
.timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:1px;background:var(--line-strong)}
.timeline li{position:relative;margin-bottom:30px}
.timeline li::before{content:"";position:absolute;left:-30px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid var(--gold)}
.timeline li b{font-family:"Shippori Mincho",serif;color:var(--gold-lite);letter-spacing:.06em;display:block;margin-bottom:4px}
.timeline li span{font-size:.75rem;letter-spacing:.16em;color:var(--text-dim);display:block;margin-bottom:6px}
.timeline li p{font-size:.9rem;color:var(--text-dim)}

/* ---- FAQ ---- */
.faq{max-width:800px;margin:0 auto}
.faq .q{border-bottom:1px solid var(--line)}
.faq .q>button{width:100%;text-align:left;padding:24px 44px 24px 0;position:relative;font-family:"Shippori Mincho",serif;font-size:1.02rem;letter-spacing:.03em;color:var(--text)}
.faq .q>button::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--gold-lite);font-size:1.3rem;transition:transform .3s}
.faq .q.open>button::after{transform:translateY(-50%) rotate(45deg)}
.faq .a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
.faq .a p{padding:0 0 24px;color:var(--text-dim);font-size:.92rem}

/* ---- risk ---- */
.risk{border:1px solid var(--line);background:var(--ink-2);padding:40px;max-width:860px;margin:0 auto}
.risk p{color:var(--text-dim);font-size:.94rem;margin-bottom:14px}
.risk p:last-child{margin-bottom:0}

/* ---- testimonials ---- */
.voices{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.voice{border:1px solid var(--line);background:var(--panel);padding:28px 24px}
.voice .stars{color:var(--gold-lite);letter-spacing:.2em;font-size:.8rem;margin-bottom:12px}
.voice p{font-size:.9rem;color:var(--text-dim);margin-bottom:16px}
.voice .who{display:flex;align-items:center;gap:12px}
.voice .who .av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--panel-2),var(--gold-deep));border:1px solid var(--line-strong);flex:none}
.voice .who b{font-size:.82rem;font-family:"Shippori Mincho",serif}
.voice .who span{font-size:.72rem;color:var(--text-dim);display:block}

/* ---- form ---- */
.form-wrap{max-width:720px;margin:0 auto;border:1px solid var(--line-strong);background:var(--panel);padding:44px}
.form-row{margin-bottom:22px}
.form-row.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;font-size:.82rem;letter-spacing:.1em;color:var(--text-dim);margin-bottom:8px;font-family:"Shippori Mincho",serif}
label .req{color:var(--gold-lite);margin-left:4px}
input,select,textarea{
  width:100%;background:var(--ink);border:1px solid var(--line-strong);color:var(--text);
  padding:13px 15px;font:inherit;font-size:.92rem;border-radius:2px;transition:border-color .2s
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold)}
textarea{resize:vertical;min-height:110px}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold-lite) 50%),linear-gradient(135deg,var(--gold-lite) 50%,transparent 50%);background-position:calc(100% - 20px) center,calc(100% - 15px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.check{display:flex;gap:12px;align-items:flex-start;font-size:.82rem;color:var(--text-dim);letter-spacing:.02em;font-family:inherit}
.check input{width:auto;margin-top:4px;flex:none;accent-color:var(--gold)}
.err{color:#e0865f;font-size:.76rem;margin-top:6px;display:none}
.field-bad input,.field-bad select,.field-bad textarea{border-color:#c25f3d}
.field-bad .err{display:block}
.form-note{font-size:.75rem;color:var(--text-dim);text-align:center;margin-top:16px}
.form-done{display:none;text-align:center;padding:30px 10px}
.form-done .ok{width:60px;height:60px;border:2px solid var(--gold);border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;color:var(--gold-lite)}
.form-done h3{font-family:"Shippori Mincho",serif;font-size:1.3rem;margin-bottom:10px}
.form-done p{color:var(--text-dim);font-size:.9rem}
.is-sent .form-fields{display:none}
.is-sent .form-done{display:block}

/* ---- final CTA ---- */
.final{background:linear-gradient(180deg,var(--ink-2),var(--ink));text-align:center;position:relative}
.final::before{content:"";position:absolute;inset:0;background-image:var(--leather);background-size:200px;opacity:.5;mix-blend-mode:overlay}
.final .wrap{position:relative}
.final h2{font-family:"Shippori Mincho",serif;font-size:clamp(1.7rem,4.5vw,2.8rem);line-height:1.5;margin-bottom:16px}
.final p{color:var(--text-dim);margin-bottom:32px}
.final .cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---- sticky mobile CTA ---- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;gap:10px;padding:12px 16px;background:rgba(11,10,9,.95);border-top:1px solid var(--gold);backdrop-filter:blur(8px)}
.sticky-cta .btn{flex:1;padding:14px}

/* ---- footer ---- */
.site-foot{background:var(--ink);border-top:1px solid var(--line);padding:64px 0 40px}
.site-foot .top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:44px}
.site-foot .brand{margin-bottom:18px}
.site-foot p{font-size:.85rem;color:var(--text-dim);max-width:32em}
.site-foot h5{font-family:"Shippori Mincho",serif;font-size:.9rem;letter-spacing:.14em;color:var(--text);margin-bottom:16px}
.site-foot li{margin-bottom:10px}
.site-foot li a{font-size:.83rem;color:var(--text-dim);transition:color .2s}
.site-foot li a:hover{color:var(--gold-lite)}
.sns{display:flex;gap:12px;margin-top:6px}
.sns a{width:38px;height:38px;border:1px solid var(--line-strong);display:grid;place-items:center;color:var(--text-dim);transition:.25s}
.sns a:hover{border-color:var(--gold);color:var(--gold-lite)}
.foot-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.75rem;color:var(--text-dim)}

/* ---- page hero (sub pages) ---- */
.page-hero{background:var(--ink-2);padding:80px 0 66px;border-bottom:1px solid var(--line);position:relative}
.page-hero::before{content:"";position:absolute;inset:0;background-image:var(--leather);background-size:200px;opacity:.5;mix-blend-mode:overlay}
.page-hero .wrap{position:relative}
.page-hero h1{font-family:"Shippori Mincho",serif;font-weight:600;font-size:clamp(1.9rem,4.5vw,2.9rem);letter-spacing:.05em}
.page-hero .crumb{font-size:.75rem;letter-spacing:.16em;color:var(--text-dim);margin-bottom:18px}
.page-hero .crumb a:hover{color:var(--gold-lite)}

/* ---- about / generic prose ---- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.lead-p{font-family:"Shippori Mincho",serif;font-size:1.2rem;line-height:1.95;color:var(--text)}
.prose p{color:var(--text-dim);margin-bottom:18px;font-size:.96rem}
.info-table{width:100%;border-collapse:collapse;font-size:.9rem}
.info-table th,.info-table td{text-align:left;padding:16px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.info-table th{width:30%;color:var(--text-dim);font-weight:400;font-family:"Shippori Mincho",serif;letter-spacing:.08em}
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.mini{border:1px solid var(--line);background:var(--panel);padding:30px 24px}
.mini .ic{width:46px;height:46px;color:var(--gold-lite);margin-bottom:16px}
.mini b{font-family:"Shippori Mincho",serif;display:block;margin-bottom:10px;font-size:1.02rem}
.mini p{font-size:.85rem;color:var(--text-dim)}
.pill-list{display:flex;flex-wrap:wrap;gap:10px}
.pill-list span{border:1px solid var(--line-strong);padding:8px 16px;font-size:.82rem;color:var(--text-dim);letter-spacing:.04em}

/* ---- reveal ---- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---- responsive ---- */
@media(max-width:960px){
  .section{padding:80px 0}
  .hero .wrap,.struct,.cap-grid,.spec,.colors,.story-body,.two-col{grid-template-columns:1fr;gap:40px}
  .tri,.proc,.persona,.returns,.voices,.cards-3{grid-template-columns:1fr 1fr}
  .pp{grid-template-columns:1fr}
  .pp .problem{border-right:0;border-bottom:1px solid var(--line)}
  .site-foot .top{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .nav{position:fixed;inset:0 0 0 auto;width:min(78vw,320px);background:var(--ink-2);border-left:1px solid var(--line);flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:100px 30px 40px;gap:22px;transform:translateX(100%);transition:transform .35s var(--ease);z-index:75}
  .nav.open{transform:none}
  .nav a{font-size:1rem}
  .burger{display:flex;z-index:78}
  .tri,.proc,.persona,.returns,.voices,.cards-3,.cap-nums,.form-row.two{grid-template-columns:1fr}
  .site-foot .top{grid-template-columns:1fr}
  .sticky-cta{display:flex}
  body{padding-bottom:70px}
  .hero-visual .cap{left:8px}
  .form-wrap{padding:28px 20px}
  .section{padding:64px 0}
}
@media(prefers-reduced-motion:reduce){
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
}
