/* =========================================================
   地球工房 — リアルペット3Dフィギュア（B2C サイト共通）
   Warm premium. Navy ink + brass + cream. Noto Sans/Serif JP + Cormorant.
   ========================================================= */

:root{
  --ink:        #1A1A1E;          /* cool near-black */
  --ink-soft:   #44444C;
  --navy-900:   #0E1A30;
  --navy-800:   #14253F;
  --navy-700:   #1C3556;

  --brass:      #B08A42;          /* primary accent */
  --brass-2:    #C7A35A;
  --brass-soft: #E4CF9E;
  --brass-tint: rgba(176,138,66,0.10);

  --rose:       #B5715C;          /* warm secondary (memorial/soft) */
  --rose-tint:  rgba(181,113,92,0.10);

  --cream:      #F1F0F2;          /* page bg (grayge) */
  --cream-2:    #E7E6EA;
  --cream-3:    #D8D7DD;
  --white:      #FFFFFF;

  --muted:      #6A6870;
  --muted-2:    #9A98A2;
  --line:       rgba(26,26,30,0.13);
  --line-soft:  rgba(26,26,30,0.08);
  --line-light: rgba(255,255,255,0.16);

  --font-jp:    "Noto Sans JP", system-ui, sans-serif;
  --font-mincho:"Noto Serif JP", serif;
  --font-latin: "Cormorant Garamond", Georgia, serif;

  --maxw: 1160px;
  --pad:  clamp(20px, 5vw, 60px);
  --radius: 14px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; font-family:var(--font-jp); color:var(--ink); background:var(--cream);
  line-height:1.9; letter-spacing:.01em; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4,p,figure{ margin:0; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad); }
.narrow{ max-width:860px; }

/* ---------- type atoms ---------- */
.eyebrow{
  font-family:var(--font-latin); font-size:clamp(13px,1.4vw,15px); letter-spacing:.4em;
  text-transform:uppercase; font-weight:600; color:var(--brass);
  display:inline-flex; align-items:center; gap:.7em;
}
.eyebrow::before{ content:""; width:24px; height:1px; background:var(--brass); display:inline-block; }
.eyebrow.center{ justify-content:center; }
.eyebrow.center::after{ content:""; width:24px; height:1px; background:var(--brass); display:inline-block; }
.kicker{ font-size:13px; letter-spacing:.28em; color:var(--muted); font-weight:600; }
.serif{ font-family:var(--font-mincho); }
.h1{ font-family:var(--font-mincho); font-weight:700; font-size:clamp(32px,5.6vw,64px); line-height:1.28; letter-spacing:.02em; }
.h2{ font-family:var(--font-mincho); font-weight:700; font-size:clamp(27px,4vw,44px); line-height:1.36; letter-spacing:.02em; }
.h2.sans{ font-family:var(--font-jp); font-weight:900; letter-spacing:.01em; }
.h3{ font-weight:800; font-size:clamp(19px,2.2vw,24px); line-height:1.5; }
.h2 .accent,.h1 .accent{ color:var(--brass); }
.lead{ font-size:clamp(15px,1.8vw,18px); color:var(--muted); line-height:2.05; font-weight:500; }
.num-latin{ font-family:var(--font-latin); font-weight:600; font-variant-numeric:lining-nums; }

.section{ padding-block:clamp(60px,9vw,120px); position:relative; }
.section.tight{ padding-block:clamp(44px,6vw,80px); }
.section-head{ max-width:720px; }
.section-head.center{ margin-inline:auto; text-align:center; }
.cream2{ background:var(--cream-2); }
.dark{ position:relative; color:#fff;
  background:linear-gradient(160deg, rgba(22,16,12,.90), rgba(20,15,11,.82)), url("../assets/human/craft-2.png") center/cover no-repeat; }
.dark .h2,.dark .h1,.dark .h3{ color:#fff; }
.dark .lead{ color:rgba(255,255,255,.74); }
.dark .kicker{ color:rgba(255,255,255,.6); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--font-jp); font-weight:700; font-size:clamp(15px,1.6vw,16.5px); letter-spacing:.03em;
  padding:1.02em 2.05em; border-radius:100px; cursor:pointer; border:none; white-space:nowrap;
  background:linear-gradient(180deg,var(--brass-2),var(--brass)); color:#fff;
  box-shadow:0 14px 30px -12px rgba(176,138,66,.7), inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s, filter .25s;
}
.btn:hover{ transform:translateY(-2px); filter:brightness(1.05); box-shadow:0 20px 40px -12px rgba(176,138,66,.8); }
.btn .arr{ font-family:var(--font-latin); font-size:1.2em; line-height:1; transform:translateY(-1px); }
.btn.lg{ padding:1.2em 2.6em; font-size:clamp(16px,1.8vw,18px); }
.btn.ghost{ background:transparent; color:var(--ink); border:1px solid var(--line); box-shadow:none; font-weight:600; }
.btn.ghost:hover{ border-color:var(--brass); color:var(--brass); box-shadow:none; }
.btn.on-dark.ghost{ color:#fff; border-color:var(--line-light); }
.btn.block{ width:100%; }

.pill{ display:inline-flex; align-items:center; gap:.5em; font-size:12.5px; font-weight:700; letter-spacing:.06em;
  padding:.5em 1em; border-radius:100px; background:var(--brass-tint); color:var(--brass);
  border:1px solid color-mix(in srgb,var(--brass) 32%,transparent); }
.pill.rose{ background:var(--rose-tint); color:var(--rose); border-color:color-mix(in srgb,var(--rose) 32%,transparent); }

/* ---------- placeholders ---------- */
.ph{ position:relative; overflow:hidden; border-radius:var(--radius);
  background:repeating-linear-gradient(135deg,rgba(26,23,18,.045) 0 12px,rgba(26,23,18,0) 12px 24px),var(--cream-3);
  border:1px solid var(--line); display:flex; align-items:center; justify-content:center; min-height:160px; }
.ph .ph-label{ font-family:ui-monospace,Menlo,monospace; font-size:12px; letter-spacing:.05em; color:var(--muted); padding:.7em 1em; text-align:center; }
.ph.dark{ background:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 12px,rgba(255,255,255,0) 12px 24px),var(--navy-800); border-color:var(--line-light); }
.ph.dark .ph-label{ color:rgba(255,255,255,.5); }

/* photo frame */
.framed{ border-radius:var(--radius); overflow:hidden; box-shadow:0 30px 60px -34px rgba(26,23,18,.5); border:1px solid var(--line-soft); background:var(--white); }
.framed img{ width:100%; display:block; }

/* =========================================================
   HEADER (injected by site.js)
   ========================================================= */
.site-header{ position:sticky; top:0; z-index:80;
  background:color-mix(in srgb,var(--cream) 86%,transparent); backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid var(--line-soft); transition:box-shadow .3s, background .3s; }
.site-header .bar{ display:flex; align-items:center; justify-content:space-between; height:72px; gap:18px; }
.brand{ display:flex; align-items:center; gap:12px; flex:none; }
.brand .logo{ height:38px; width:auto; display:block; }
.brand-tag{ font-size:10px; letter-spacing:.14em; font-weight:700; color:var(--muted); line-height:1.35;
  padding-left:12px; border-left:1px solid var(--line); }
.main-nav{ display:flex; align-items:center; gap:clamp(9px,1.2vw,20px); }
.main-nav a{ font-size:13.5px; font-weight:600; color:var(--ink-soft); letter-spacing:.02em; position:relative; padding:6px 0; transition:color .2s; white-space:nowrap; }
.main-nav a:hover{ color:var(--brass); }
.main-nav a.active{ color:var(--brass); }
.main-nav a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--brass); border-radius:2px; }
.header-cta{ display:flex; align-items:center; gap:12px; flex:none; }
.header-cta .fc-link{ font-size:12.5px; color:var(--muted); font-weight:600; }
.header-cta .fc-link:hover{ color:var(--brass); }
.header-cta .btn{ padding:.7em 1.4em; font-size:14px; }
.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span{ width:24px; height:2px; background:var(--ink); border-radius:2px; transition:.3s; }
@media (max-width:1240px){
  .main-nav{ position:fixed; inset:72px 0 auto 0; flex-direction:column; align-items:flex-start; gap:0;    background:var(--cream); border-bottom:1px solid var(--line); padding:8px var(--pad) 20px; transform:translateY(-130%);
    transition:transform .35s cubic-bezier(.2,.7,.3,1); box-shadow:0 24px 40px -28px rgba(0,0,0,.4); z-index:79; }
  body.nav-open .main-nav{ transform:translateY(0); }
  .main-nav a{ width:100%; padding:13px 0; border-bottom:1px solid var(--line-soft); font-size:15px; }
  .main-nav a.active::after{ display:none; }
  .nav-toggle{ display:flex; }
  body.nav-open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  body.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
  body.nav-open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .header-cta .fc-link{ display:none; }
}
@media (max-width:560px){ .brand-tag{ display:none; } .brand .logo{ height:32px; } .header-cta .btn{ display:none; } }
.site-header.scrolled{ box-shadow:0 10px 30px -22px rgba(26,23,18,.5); background:color-mix(in srgb,var(--cream) 95%,transparent); }

/* =========================================================
   PAGE HERO (sub-pages)
   ========================================================= */
.page-hero{ position:relative; overflow:hidden; color:#fff;
  background:linear-gradient(100deg, rgba(22,16,12,.92) 0%, rgba(22,16,12,.66) 44%, rgba(22,16,12,.34) 100%), url("../assets/human/pair-hand.png") center 26%/cover no-repeat; }
body[data-page="gallery"] .page-hero{
  background:linear-gradient(100deg, rgba(16,11,8,.92) 0%, rgba(16,11,8,.60) 46%, rgba(16,11,8,.30) 100%), url("../assets/human/gallery/g-troupe-dark.jpg") center 32%/cover no-repeat; }
body[data-page="about"] .page-hero{
  background:linear-gradient(100deg, rgba(16,11,8,.92) 0%, rgba(16,11,8,.62) 46%, rgba(16,11,8,.32) 100%), url("../assets/human/gallery/g-men-row.jpg") center 36%/cover no-repeat; }
.page-hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; z-index:3;
  background:linear-gradient(90deg,transparent,rgba(201,166,92,.65),transparent); }

/* ---- human luxe hero (home) ---- */
.hero-lux{ position:relative; overflow:hidden; color:#fff; padding-block:clamp(56px,8vw,116px);
  background:linear-gradient(100deg, rgba(15,10,7,.94) 0%, rgba(15,10,7,.80) 34%, rgba(15,10,7,.46) 58%, rgba(15,10,7,.18) 78%, rgba(15,10,7,.50) 100%), url("../assets/human/gallery/g-women-row.jpg") center 28%/cover no-repeat; }
.hero-lux::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:linear-gradient(90deg,transparent,rgba(201,166,92,.7),transparent); }
.hero-lux .lux-ring{ position:absolute; border-radius:50%; pointer-events:none; }
.hero-lux .r1{ width:440px;height:440px; right:-130px; top:-150px; border:1px solid rgba(201,166,92,.24); }
.hero-lux .r2{ width:280px;height:280px; left:-120px; bottom:-140px; border:1px solid rgba(255,255,255,.10); }
.hero-lux .eyebrow{ color:var(--brass-soft); }
.hero-lux .eyebrow::before{ background:var(--brass-soft); }
.hero-lux .kicker{ color:rgba(255,255,255,.62); }
.hero-lux .stat-div{ border-left:1px solid rgba(255,255,255,.16); padding-left:24px; }
.accent-gold{ color:var(--brass-soft); }
.framed-gold{ border-radius:var(--radius); overflow:hidden; position:relative;
  border:1px solid rgba(201,166,92,.55);
  box-shadow:0 44px 90px -34px rgba(0,0,0,.75), 0 0 0 6px rgba(201,166,92,.08); }
.framed-gold img{ width:100%; display:block; }
.page-hero .wrap{ position:relative; z-index:2; padding-block:clamp(54px,7vw,92px); }
.page-hero .crumb{ font-size:12.5px; letter-spacing:.06em; color:rgba(255,255,255,.72); margin-bottom:18px; }
.page-hero .crumb a:hover{ color:var(--brass-soft); }
.page-hero h1{ font-family:var(--font-mincho); font-weight:700; font-size:clamp(30px,4.6vw,52px); line-height:1.3; }
.page-hero .sub{ color:rgba(255,255,255,.78); margin-top:14px; font-size:clamp(15px,1.8vw,18px); max-width:620px; line-height:2; }
.page-hero .en{ font-family:var(--font-latin); font-size:clamp(13px,1.4vw,15px); letter-spacing:.4em; text-transform:uppercase; color:var(--brass-soft); display:block; margin-bottom:12px; }
.page-hero .deco{ position:absolute; right:-80px; top:-80px; width:360px; height:360px; border:1px solid var(--line-light); border-radius:50%; opacity:.5; }
.page-hero .deco2{ position:absolute; right:60px; bottom:-140px; width:260px; height:260px; border:1px solid color-mix(in srgb,var(--brass) 30%,transparent); border-radius:50%; opacity:.5; }

/* =========================================================
   GRIDS / CARDS
   ========================================================= */
.grid{ display:grid; gap:clamp(16px,2.2vw,26px); }
.g-2{ grid-template-columns:repeat(2,1fr); }
.g-3{ grid-template-columns:repeat(3,1fr); }
.g-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .g-3,.g-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .g-2,.g-3,.g-4{ grid-template-columns:1fr; } }

.card{ background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius); padding:clamp(22px,2.6vw,32px);
  transition:transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s, border-color .3s; }
.card:hover{ transform:translateY(-4px); box-shadow:0 26px 50px -30px rgba(26,23,18,.4); border-color:var(--line); }
.card .c-num{ font-family:var(--font-latin); font-weight:600; font-size:15px; color:var(--brass); letter-spacing:.1em; }
.card .c-title{ font-weight:800; font-size:clamp(17px,2vw,20px); margin:.5em 0 .5em; line-height:1.5; }
.card .c-body{ font-size:14.5px; color:var(--muted); line-height:1.95; }
.card.dark{ background:rgba(255,255,255,.04); border-color:var(--line-light); }
.card.dark .c-title{ color:#fff; } .card.dark .c-body{ color:rgba(255,255,255,.66); }

.icon-badge{ width:50px; height:50px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:var(--brass-tint); color:var(--brass); border:1px solid color-mix(in srgb,var(--brass) 28%,transparent);
  font-family:var(--font-latin); font-weight:600; font-size:22px; }

.feature-split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:center; }
.feature-split.rev .fs-media{ order:2; }
@media (max-width:860px){ .feature-split{ grid-template-columns:1fr; } .feature-split.rev .fs-media{ order:0; } }

.checklist{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:13px; }
.checklist li{ display:flex; gap:13px; align-items:flex-start; font-size:15.5px; line-height:1.8; font-weight:500; }
.checklist li .ck{ flex:none; width:24px; height:24px; border-radius:50%; background:var(--brass); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:13px; margin-top:3px; }
.dark .checklist li{ color:rgba(255,255,255,.86); }

/* steps */
.flow{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,28px); }
@media (max-width:820px){ .flow{ grid-template-columns:1fr; } }
.flow .fl{ position:relative; background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius); padding:clamp(22px,2.6vw,30px); }
.flow .fl .n{ font-family:var(--font-latin); font-weight:600; font-size:44px; line-height:.9; color:var(--brass-soft); }
.flow .fl h4{ font-weight:800; font-size:18px; margin:.5em 0 .4em; }
.flow .fl p{ font-size:14px; color:var(--muted); line-height:1.9; }

/* stat row */
.statrow{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; }
.statrow .st{ background:var(--white); padding:clamp(20px,3vw,34px); text-align:center; }
.dark .statrow{ background:var(--line-light); border-color:var(--line-light); }
.dark .statrow .st{ background:var(--navy-800); }
.statrow .st b{ font-family:var(--font-latin); font-weight:600; font-size:clamp(30px,4.5vw,50px); line-height:1; color:var(--brass); display:block; }
.statrow .st .u{ font-size:13px; color:var(--muted); letter-spacing:.08em; margin-top:.6em; font-weight:600; }
.dark .statrow .st .u{ color:rgba(255,255,255,.62); }
@media (max-width:720px){ .statrow{ grid-template-columns:repeat(2,1fr); } }

/* =========================================================
   GALLERY
   ========================================================= */
.gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
@media (max-width:820px){ .gallery{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .gallery{ grid-template-columns:1fr 1fr; } }
.gphoto{ position:relative; border-radius:var(--radius); overflow:hidden; background:var(--cream-3); border:1px solid var(--line-soft);
  box-shadow:0 16px 36px -26px rgba(26,23,18,.45); }
.gphoto img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.2,.7,.3,1); }
.gphoto:hover img{ transform:scale(1.06); }
.gphoto .cap{ position:absolute; left:0; right:0; bottom:0; padding:26px 14px 12px; color:#fff; font-size:13px; font-weight:600;
  background:linear-gradient(180deg,transparent,rgba(14,26,48,.82)); }
.gphoto .tagpin{ position:absolute; top:10px; left:10px; font-size:11px; font-weight:700; letter-spacing:.04em;
  color:#1a1304; background:var(--brass-soft); padding:.25em .7em; border-radius:100px; }
.gphoto .ph{ width:100%; aspect-ratio:1/1; min-height:0; border:none; border-radius:0; }
/* gallery filter */
.gfilter{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.gfilter button{ font-family:var(--font-jp); font-size:14px; font-weight:600; color:var(--ink-soft); cursor:pointer;
  padding:.55em 1.2em; border-radius:100px; border:1px solid var(--line); background:var(--white); transition:.2s; }
.gfilter button:hover{ border-color:var(--brass); color:var(--brass); }
.gfilter button.active{ background:var(--brass); color:#fff; border-color:var(--brass); }

/* gallery showcase band (full-width hero photo with overlay) */
.gshowcase{ position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line-soft);
  box-shadow:0 30px 70px -38px rgba(26,23,18,.6); }
.gshowcase img{ width:100%; display:block; aspect-ratio:16/7.4; object-fit:cover; }
@media(max-width:680px){ .gshowcase img{ aspect-ratio:4/3; } }
.gshowcase .ov{ position:absolute; inset:auto 0 0 0; padding:clamp(20px,4vw,40px); color:#fff;
  background:linear-gradient(180deg,transparent,rgba(12,9,6,.04) 30%,rgba(12,9,6,.82)); }
.gshowcase .ov .en{ font-family:var(--font-latin); letter-spacing:.34em; text-transform:uppercase; font-size:13px; color:var(--brass-soft); }
.gshowcase .ov h3{ font-family:var(--font-mincho); font-weight:700; font-size:clamp(20px,3vw,32px); margin:.25em 0 .3em; line-height:1.4; }
.gshowcase .ov p{ font-size:clamp(13px,1.5vw,15px); color:rgba(255,255,255,.82); max-width:560px; line-height:1.85; }

/* masonry gallery (natural ratios) */
.gmasonry{ column-count:3; column-gap:clamp(14px,1.8vw,22px); }
@media(max-width:820px){ .gmasonry{ column-count:2; } }
@media(max-width:520px){ .gmasonry{ column-count:2; } }
@media(max-width:380px){ .gmasonry{ column-count:1; } }
.gmasonry .gphoto{ break-inside:avoid; -webkit-column-break-inside:avoid; margin:0 0 clamp(14px,1.8vw,22px); width:100%; }
.gmasonry .gphoto img{ aspect-ratio:auto; object-fit:fill; height:auto; }
.gmasonry .gphoto .cap{ padding:30px 14px 13px; font-size:12.5px; }

/* =========================================================
   PRICE TABLE
   ========================================================= */
.ptable{ width:100%; border-collapse:collapse; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; font-size:15px; }
.ptable thead th{ background:var(--navy-800); color:#fff; font-weight:700; padding:16px 18px; text-align:left; font-size:14px; letter-spacing:.03em; }
.ptable thead th.r{ text-align:right; }
.ptable tbody td{ padding:15px 18px; border-top:1px solid var(--line-soft); }
.ptable tbody td.size{ font-family:var(--font-latin); font-weight:600; font-size:19px; }
.ptable tbody td.r{ text-align:right; }
.ptable tbody tr:nth-child(even){ background:var(--cream); }
.ptable .blank::after{ content:"—"; color:var(--muted-2); }
.price-note{ font-size:12.5px; color:var(--muted); margin-top:14px; line-height:1.9; }

/* =========================================================
   OPTIONS — product stage + lifestyle + size guide
   ========================================================= */
.opt-stage{ border-radius:var(--radius); border:1px solid var(--line-soft);
  background:radial-gradient(120% 115% at 50% 26%, #ffffff 0%, var(--cream-2) 100%);
  box-shadow:0 30px 60px -40px rgba(26,23,18,.42); padding:clamp(24px,3.6vw,52px);
  display:grid; place-items:center; min-height:300px; }
.opt-stage img{ width:100%; max-width:440px; filter:drop-shadow(0 22px 26px rgba(20,37,63,.18)); }
.opt-pricecap{ font-size:12.5px; color:var(--muted); margin-top:13px; line-height:1.85; }
.sizeguide{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--line-soft);
  background:#fff; box-shadow:0 26px 56px -42px rgba(26,23,18,.4); padding:clamp(18px,2.6vw,40px) clamp(16px,3vw,48px); }
.sizeguide img{ width:100%; display:block; }
.sg-scale{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 10px; margin-top:20px; }
.sg-scale span{ font-family:var(--font-latin); font-weight:600; font-size:13.5px; color:var(--brass); letter-spacing:.02em;
  background:var(--brass-tint); border:1px solid color-mix(in srgb,var(--brass) 28%,transparent); padding:.32em .85em; border-radius:100px; }

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.voice{ background:var(--white); border:1px solid var(--line-soft); border-radius:var(--radius); padding:clamp(24px,3vw,34px);
  display:flex; flex-direction:column; gap:14px; box-shadow:0 18px 40px -30px rgba(26,23,18,.4); }
.voice .stars{ color:var(--brass); font-size:15px; letter-spacing:.18em; }
.voice .q{ font-size:15px; line-height:1.95; color:var(--ink-soft); font-weight:500; }
.voice .who{ display:flex; align-items:center; gap:12px; margin-top:auto; }
.voice .who .av{ width:42px; height:42px; border-radius:50%; background:var(--cream-3); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-latin); font-weight:600; color:var(--brass); flex:none; }
.voice .who .nm{ font-size:13.5px; font-weight:700; } .voice .who .pet{ font-size:12px; color:var(--muted); }

/* =========================================================
   FAQ
   ========================================================= */
.faq{ border-top:1px solid var(--line); }
.faq .qa{ border-bottom:1px solid var(--line); }
.faq .q{ display:flex; gap:16px; align-items:center; padding:22px 4px; cursor:pointer; font-weight:700; font-size:16px; }
.faq .q .qmark{ font-family:var(--font-latin); font-weight:600; color:var(--brass); font-size:21px; flex:none; }
.faq .q .tog{ margin-left:auto; flex:none; width:24px; height:24px; position:relative; }
.faq .q .tog::before,.faq .q .tog::after{ content:""; position:absolute; background:var(--brass); border-radius:2px; }
.faq .q .tog::before{ width:14px; height:2px; top:11px; left:5px; }
.faq .q .tog::after{ width:2px; height:14px; top:5px; left:11px; transition:opacity .3s; }
.faq .qa.open .q .tog::after{ opacity:0; }
.faq .a{ max-height:0; overflow:hidden; transition:max-height .4s ease; }
.faq .a .inner{ padding:0 4px 24px 48px; color:var(--muted); font-size:14.5px; line-height:1.95; }

/* =========================================================
   FORM
   ========================================================= */
.form-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,4vw,56px); align-items:start; }
@media (max-width:860px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
.field label{ font-size:13.5px; font-weight:700; letter-spacing:.03em; display:flex; align-items:center; gap:8px; }
.field label .req{ font-size:10.5px; background:var(--brass); color:#fff; padding:.15em .6em; border-radius:100px; }
.field label .opt{ font-size:10.5px; background:var(--cream-2); color:var(--muted); padding:.15em .6em; border-radius:100px; }
.field input,.field select,.field textarea{ font-family:var(--font-jp); font-size:15px; padding:.85em 1em; border:1px solid var(--line);
  border-radius:10px; background:var(--white); color:var(--ink); transition:border-color .2s, box-shadow .2s; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--brass); box-shadow:0 0 0 3px var(--brass-tint); }
.field textarea{ resize:vertical; min-height:120px; }
.form-aside{ background:var(--navy-800); color:#fff; border-radius:var(--radius); padding:clamp(26px,3vw,36px); }
.form-aside h4{ font-weight:800; font-size:19px; margin-bottom:14px; }
.form-aside .ai{ display:flex; gap:12px; padding:13px 0; border-top:1px solid var(--line-light); font-size:14px; line-height:1.7; }
.form-aside .ai .n{ font-family:var(--font-latin); color:var(--brass-soft); font-weight:600; font-size:20px; flex:none; width:24px; }
.form-note{ font-size:12px; color:var(--muted); margin-top:10px; line-height:1.8; }
.form-success{ display:none; background:var(--navy-800); color:#fff; border-radius:var(--radius); padding:clamp(34px,5vw,56px); text-align:center; }
.form-success.show{ display:block; }
.form-success .ok{ width:64px; height:64px; border-radius:50%; border:2px solid var(--brass); color:var(--brass);
  display:flex; align-items:center; justify-content:center; font-size:30px; margin:0 auto 18px; }

/* =========================================================
   CTA BAND + FOOTER
   ========================================================= */
.cta-band{ position:relative; overflow:hidden; color:#fff; text-align:center;
  background:linear-gradient(180deg, rgba(20,14,10,.84), rgba(20,14,10,.80)), url("../assets/human/group-stage.png") center/cover no-repeat; }
.cta-band .wrap{ position:relative; z-index:2; }
.cta-band .h2{ color:#fff; }

.site-footer{ background:#0A1322; color:rgba(255,255,255,.7); padding-block:clamp(46px,6vw,72px); }
.foot-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; }
@media (max-width:820px){ .foot-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .foot-top{ grid-template-columns:1fr; } }
.foot-logo-chip{ display:inline-block; background:#fff; padding:11px 16px; border-radius:12px; }
.foot-logo-chip img{ height:30px; width:auto; display:block; }
.foot-col h5{ color:#fff; font-size:13px; font-weight:700; letter-spacing:.06em; margin-bottom:14px; }
.foot-col a,.foot-col p{ display:block; font-size:13.5px; line-height:2; color:rgba(255,255,255,.66); }
.foot-col a:hover{ color:var(--brass-soft); }
.foot-info{ font-size:13.5px; line-height:1.95; color:rgba(255,255,255,.7); max-width:300px; }
.foot-legal{ margin-top:34px; padding-top:22px; border-top:1px solid var(--line-light); font-size:12px; color:var(--muted-2);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }

/* mobile sticky cta */
.mcta{ position:fixed; left:0; right:0; bottom:0; z-index:70; display:none; gap:10px;
  background:color-mix(in srgb,var(--navy-900) 95%,transparent); backdrop-filter:blur(10px); padding:10px var(--pad); border-top:1px solid var(--line-light); }
.mcta .btn{ flex:1; padding:.9em 1em; font-size:14px; }
@media (max-width:760px){ .mcta{ display:flex; } body.has-mcta{ padding-bottom:76px; } }

/* reveal */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s cubic-bezier(.2,.7,.3,1), transform .8s cubic-bezier(.2,.7,.3,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } html{ scroll-behavior:auto; } }
