:root{
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --text-3xl:clamp(2.5rem,1rem + 4vw,5rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;

  --color-bg:#f3ede3;
  --color-surface:#faf6ef;
  --color-surface-2:#ece4d6;
  --color-text:#2b1d14;
  --color-text-muted:#6b5c4f;
  --color-line:oklch(0.25 0.03 50 / 0.14);
  --color-brand:#4a1c0c;
  --color-accent:#ec8a32;
  --color-accent-hover:#de7a22;
  --color-accent-strong:#b25a12;
  --color-moss:#5b6648;
  --color-forest:#1e221b;
  --color-forest-2:#2a3025;
  --color-cream:#f1ebe0;
  --color-cream-muted:#bdb4a5;

  --radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;
  --transition-interactive:180ms cubic-bezier(.16,1,.3,1);
  --shadow-sm:0 1px 2px oklch(0.25 0.03 50 / .08);
  --shadow-md:0 2px 4px oklch(0.25 0.03 50 / .06),0 10px 28px oklch(0.25 0.03 50 / .08);
  --content-narrow:680px;--content-default:1040px;--content-wide:1240px;
  --font-display:'Gambetta','Georgia',serif;
  --font-body:'Switzer','Helvetica Neue',sans-serif;
  --header-h:76px;
}

body{background:var(--color-bg)}
.wrap{width:min(100% - 2*var(--space-5),var(--content-wide));margin-inline:auto}
.wrap--narrow{width:min(100% - 2*var(--space-5),var(--content-narrow));margin-inline:auto}
.wrap--mid{width:min(100% - 2*var(--space-5),var(--content-default));margin-inline:auto}

.skip{position:absolute;left:var(--space-4);top:-100px;background:var(--color-text);color:var(--color-cream);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);z-index:100}
.skip:focus{top:var(--space-3)}

/* Typography */
.display{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em}
h1,h2{font-family:var(--font-display);font-weight:500;letter-spacing:-.015em}
h2{font-size:var(--text-2xl);line-height:1.08}
h3{font-size:var(--text-lg);font-weight:600;line-height:1.25}
.eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--color-moss);display:inline-flex;align-items:center;gap:var(--space-3)}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--color-accent);display:block}
.on-dark .eyebrow{color:var(--color-cream-muted)}
.lead{font-size:var(--text-lg);line-height:1.5;color:var(--color-text-muted);max-width:52ch}
.on-dark .lead{color:var(--color-cream-muted)}
.muted{color:var(--color-text-muted)}
.small{font-size:var(--text-sm)}
.xs{font-size:var(--text-xs)}
.prose p+p{margin-top:var(--space-4)}
.prose p{max-width:62ch}
strong{font-weight:600}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;text-decoration:none;line-height:1.2;text-align:center}
.btn--primary{background:var(--color-accent);color:#24160d}
.btn--primary:hover{background:var(--color-accent-hover)}
.btn--primary:active{transform:translateY(1px)}
.btn--ghost{border:1px solid currentColor;color:var(--color-text)}
.btn--ghost:hover{background:oklch(0.25 0.03 50 / .06)}
.on-dark .btn--ghost,.hero .btn--ghost{color:var(--color-cream);border-color:oklch(0.95 0.01 80 / .55)}
.on-dark .btn--ghost:hover,.hero .btn--ghost:hover{background:oklch(0.95 0.01 80 / .1)}
.btn svg{width:18px;height:18px;flex:none}
.link{color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:4px;font-weight:600}
.link:hover{color:var(--color-accent-strong)}
.on-dark .link{color:var(--color-cream)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:oklch(0.95 0.015 80 / .92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);height:var(--header-h)}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:50px;width:auto}
.nav{display:flex;align-items:center;gap:var(--space-1)}
.nav a{font-size:var(--text-sm);color:var(--color-text);text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);white-space:nowrap}
.nav a:hover{background:oklch(0.25 0.03 50 / .06)}
.nav a[aria-current="page"]{color:var(--color-accent-strong);font-weight:600}
.nav .btn{margin-left:var(--space-3);padding-inline:var(--space-5);min-height:44px}
.menu-btn{display:none;width:48px;height:48px;border-radius:var(--radius-full);align-items:center;justify-content:center;color:var(--color-text)}
.menu-btn svg{width:26px;height:26px}
@media (max-width:1120px){
  .menu-btn{display:inline-flex}
  .nav{position:fixed;inset:var(--header-h) 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--color-surface);padding:var(--space-4) var(--space-5) var(--space-6);border-bottom:1px solid var(--color-line);box-shadow:var(--shadow-md);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path 260ms cubic-bezier(.16,1,.3,1),visibility 0s 260ms}
  .nav.open{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path 260ms cubic-bezier(.16,1,.3,1)}
  .nav a{padding:var(--space-4) var(--space-2);border-radius:0;border-bottom:1px solid var(--color-line);font-size:var(--text-base)}
  .nav .btn{margin:var(--space-4) 0 0;border-bottom:0}
}

/* Hero */
.hero{position:relative;min-height:min(92vh,860px);display:flex;align-items:flex-end;color:var(--color-cream);overflow:hidden;background:#0d0f0b}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:40% 60%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,oklch(0.12 0.01 90 / .35) 0%,oklch(0.12 0.01 90 / .05) 35%,oklch(0.12 0.01 90 / .55) 70%,oklch(0.12 0.01 90 / .85) 100%)}
.hero .wrap{position:relative;z-index:1;padding-block:var(--space-16) clamp(var(--space-12),8vw,var(--space-24))}
.hero h1{font-size:var(--text-3xl);line-height:1.02;max-width:14ch;margin-block:var(--space-4) var(--space-5)}
.hero .lead{color:oklch(0.92 0.01 80);max-width:46ch}
.hero .btn-row{margin-top:var(--space-8)}
.hero__facts{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);margin-top:var(--space-8);font-size:var(--text-sm);color:oklch(0.88 0.01 80)}
.hero__facts span{display:inline-flex;align-items:center;gap:var(--space-2)}
.hero__facts span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-accent)}
.hero .eyebrow{color:oklch(0.9 0.01 80)}

.page-hero{position:relative;color:var(--color-cream);background:var(--color-forest);overflow:hidden}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,oklch(0.15 0.01 100 / .85),oklch(0.15 0.01 100 / .3))}
.page-hero .wrap{position:relative;z-index:1;padding-block:clamp(var(--space-16),10vw,var(--space-32)) clamp(var(--space-12),6vw,var(--space-20))}
.page-hero h1{font-size:var(--text-2xl);max-width:18ch;margin-block:var(--space-4)}
.page-hero .lead{color:oklch(0.9 0.01 80)}
.page-hero .eyebrow{color:oklch(0.88 0.01 80)}

/* Sections */
.section{padding-block:clamp(var(--space-16),9vw,var(--space-32))}
.section--tight{padding-block:clamp(var(--space-12),6vw,var(--space-20))}
.section--surface{background:var(--color-surface)}
.section--sand{background:var(--color-surface-2)}
.on-dark{background:var(--color-forest);color:var(--color-cream)}
.on-dark h2,.on-dark h3{color:var(--color-cream)}
.section-head{display:grid;gap:var(--space-4);margin-bottom:clamp(var(--space-10),5vw,var(--space-16))}
.section-head h2{max-width:20ch}
.section-head--split{grid-template-columns:1fr;align-items:end}
@media (min-width:900px){.section-head--split{grid-template-columns:1.1fr .9fr;gap:var(--space-12)}}

/* Trust strip */
.trust{background:var(--color-surface);border-bottom:1px solid var(--color-line)}
.trust ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:0}
.trust li{padding:var(--space-6) var(--space-5);border-left:1px solid var(--color-line);max-width:none}
.trust li:first-child{border-left:0}
.trust b{display:block;font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);line-height:1.2;margin-bottom:var(--space-1)}
.trust span{font-size:var(--text-sm);color:var(--color-text-muted)}
@media (max-width:640px){.trust li{border-left:0;border-top:1px solid var(--color-line);padding-inline:0}.trust li:first-child{border-top:0}}

/* Split */
.split{display:grid;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
@media (min-width:900px){.split{grid-template-columns:1fr 1fr}.split--wide-img{grid-template-columns:1.2fr .8fr}.split--rev>:first-child{order:2}}
.split h2{margin-block:var(--space-4) var(--space-6)}
.media{border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface-2)}
.media img{width:100%;height:100%;object-fit:cover}
.media--tall{aspect-ratio:4/5}
.media--wide{aspect-ratio:4/3}
.cap{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-2)}
.on-dark .cap{color:var(--color-cream-muted)}

/* Problem list */
.issues{display:grid;gap:0;margin-top:var(--space-8);border-top:1px solid var(--color-line)}
.issues li{display:grid;grid-template-columns:2.5rem 1fr;gap:var(--space-3);padding-block:var(--space-4);border-bottom:1px solid var(--color-line);max-width:none}
.issues li span:first-child{font-family:var(--font-display);color:var(--color-accent-strong);font-size:var(--text-lg);line-height:1.3}
.on-dark .issues{border-color:oklch(0.95 0.01 80 / .15)}
.on-dark .issues li{border-color:oklch(0.95 0.01 80 / .15)}
.on-dark .issues li span:first-child{color:var(--color-accent)}
.pull{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.25;max-width:24ch;margin-top:var(--space-10)}

/* Layers diagram */
.layers{display:grid;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
@media (min-width:960px){.layers{grid-template-columns:1fr 1fr}}
.diagram{background:var(--color-surface);border-radius:var(--radius-xl);padding:clamp(var(--space-5),3vw,var(--space-10));border:1px solid var(--color-line)}
.diagram svg{width:100%;height:auto}
.benefits{display:grid;gap:var(--space-6);margin-top:var(--space-8)}
@media (min-width:640px){.benefits{grid-template-columns:1fr 1fr}}
.benefit h3{font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-1);display:flex;gap:var(--space-2);align-items:baseline}
.benefit h3::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--color-accent);flex:none;transform:translateY(-1px)}
.benefit p{font-size:var(--text-sm);color:var(--color-text-muted)}

/* Compare table */
.compare{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm);background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-line)}
.compare th,.compare td{padding:var(--space-4) var(--space-5);text-align:left;vertical-align:top;border-bottom:1px solid var(--color-line)}
.compare tr:last-child td,.compare tr:last-child th{border-bottom:0}
.compare thead th{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600;background:var(--color-surface-2)}
.compare thead th.us{color:var(--color-brand);background:oklch(0.85 0.08 65 / .5)}
.compare tbody th{font-weight:600;width:24%}
.compare td.us{background:oklch(0.93 0.04 70 / .45);color:var(--color-text);font-weight:500}
.compare td.them{color:var(--color-text-muted)}
@media (max-width:700px){
  .compare thead{display:none}
  .compare,.compare tbody,.compare tr,.compare th,.compare td{display:block;width:100%}
  .compare tr{border-bottom:1px solid var(--color-line);padding:var(--space-4)}
  .compare tbody th{padding:0 0 var(--space-2);border:0;width:100%}
  .compare td{padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm)}
  .compare td::before{content:attr(data-l);display:block;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--color-text-muted);margin-bottom:2px}
}
.note{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-4);max-width:70ch}
.on-dark .note{color:var(--color-cream-muted)}

/* Models */
.models{display:grid;gap:var(--space-6)}
@media (min-width:860px){.models{grid-template-columns:1fr 1fr}}
.model{background:var(--color-surface);border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--color-line);display:flex;flex-direction:column}
.model .media{border-radius:0;aspect-ratio:16/10}
.model__body{padding:clamp(var(--space-5),3vw,var(--space-8));display:flex;flex-direction:column;gap:var(--space-4);flex:1}
.model__top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);flex-wrap:wrap}
.model h3{font-family:var(--font-display);font-weight:500;font-size:var(--text-xl)}
.price{font-family:var(--font-display);font-size:var(--text-xl);line-height:1;white-space:nowrap}
.price small{font-family:var(--font-body);font-size:var(--text-xs);color:var(--color-text-muted);display:block;text-align:right;margin-top:var(--space-1)}
.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);padding-block:var(--space-4);border-block:1px solid var(--color-line)}
.specs div{font-size:var(--text-xs);color:var(--color-text-muted)}
.specs b{display:block;font-size:var(--text-base);color:var(--color-text);font-weight:600;font-variant-numeric:tabular-nums}
.ticks{display:grid;gap:var(--space-2);font-size:var(--text-sm)}
.ticks li{display:grid;grid-template-columns:1.25rem 1fr;gap:var(--space-2);max-width:none}
.ticks li::before{content:"";width:12px;height:7px;border-left:2px solid var(--color-moss);border-bottom:2px solid var(--color-moss);transform:rotate(-45deg) translate(2px,6px)}
.on-dark .ticks li::before{border-color:var(--color-accent)}

/* Packages */
.packages{display:grid;gap:var(--space-5)}
@media (min-width:960px){.packages{grid-template-columns:.9fr 1.2fr .9fr;align-items:stretch}}
.pack{border-radius:var(--radius-xl);padding:clamp(var(--space-6),3vw,var(--space-8));background:var(--color-surface);border:1px solid var(--color-line);display:flex;flex-direction:column;gap:var(--space-4)}
.pack--feature{background:var(--color-forest);color:var(--color-cream);border-color:transparent}
.pack--feature .muted{color:var(--color-cream-muted)}
.pack__label{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--color-moss)}
.pack--feature .pack__label{color:var(--color-accent)}
.pack h3{font-family:var(--font-display);font-weight:500;font-size:var(--text-xl)}
.pack__price{font-size:var(--text-sm);font-weight:600;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background:var(--color-surface-2);align-self:flex-start}
.pack--feature .pack__price{background:oklch(0.95 0.01 80 / .1)}
.pack .btn{margin-top:auto;align-self:flex-start}
.factors{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.factors li{font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid oklch(0.95 0.01 80 / .25);max-width:none}

/* Steps */
.steps{display:grid;gap:var(--space-5);counter-reset:s}
@media (min-width:700px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.steps{grid-template-columns:repeat(5,1fr)}}
.step{counter-increment:s;display:flex;flex-direction:column;gap:var(--space-3)}
.step .media{aspect-ratio:4/5}
.step h3{font-size:var(--text-base);display:flex;gap:var(--space-2);align-items:baseline}
.step h3::before{content:counter(s,decimal-leading-zero);font-family:var(--font-display);color:var(--color-accent-strong);font-weight:500}
.on-dark .step h3::before{color:var(--color-accent)}
.step p{font-size:var(--text-sm);color:var(--color-text-muted)}
.on-dark .step p{color:var(--color-cream-muted)}
.step .dur{font-size:var(--text-xs);font-weight:600;color:var(--color-moss)}
.on-dark .step .dur{color:var(--color-accent)}
.timebar{margin-top:var(--space-10);display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-8);align-items:center;padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);background:oklch(0.95 0.01 80 / .06);border:1px solid oklch(0.95 0.01 80 / .12)}
.timebar b{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500}

/* Before/after */
.ba{position:relative;aspect-ratio:16/8.1;border-radius:var(--radius-lg);overflow:hidden;user-select:none;touch-action:pan-y;background:#222;max-width:960px;margin-inline:auto}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba .ba__after{clip-path:inset(0 0 0 var(--pos,50%))}
.ba__handle{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:2px;background:var(--color-cream);transform:translateX(-1px);pointer-events:none}
.ba__handle::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;border-radius:50%;background:var(--color-cream);transform:translate(-50%,-50%);box-shadow:var(--shadow-md);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b1d14' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M9 6l-6 6 6 6M15 6l6 6-6 6'/%3E%3C/svg%3E");background-size:22px;background-repeat:no-repeat;background-position:center}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba__tag{position:absolute;top:var(--space-3);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:oklch(0.15 0.01 90 / .7);color:var(--color-cream);pointer-events:none}
.ba__tag--l{left:var(--space-3)}.ba__tag--r{right:var(--space-3)}

/* Seasons */
.seasons{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}
@media (min-width:900px){.seasons{grid-template-columns:repeat(4,1fr)}}
.season .media{aspect-ratio:16/10}
.season b{display:block;margin-top:var(--space-2);font-size:var(--text-sm)}
.season span{font-size:var(--text-xs);color:var(--color-text-muted)}
.on-dark .season span{color:var(--color-cream-muted)}

/* Gallery mosaic */
.mosaic{display:grid;gap:var(--space-3);grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(140px,22vw,280px);grid-auto-flow:dense}
@media (min-width:900px){.mosaic{grid-template-columns:repeat(4,1fr)}}
.mosaic figure{border-radius:var(--radius-md);overflow:hidden;position:relative;background:var(--color-surface-2)}
.mosaic img{width:100%;height:100%;object-fit:cover}
.mosaic .w2{grid-column:span 2}.mosaic .h2{grid-row:span 2}

/* Guest */
.guest{display:grid;gap:var(--space-3);grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(120px,16vw,220px)}
.guest figure{border-radius:var(--radius-md);overflow:hidden}
.guest img{width:100%;height:100%;object-fit:cover}
.g1{grid-column:span 4;grid-row:span 2}.g2{grid-column:span 2;grid-row:span 2}.g3{grid-column:span 2}.g4{grid-column:span 2}.g5{grid-column:span 2}
@media (max-width:700px){.guest{grid-template-columns:repeat(2,1fr)}.g1{grid-column:span 2}.g2{grid-column:span 1;grid-row:span 2}.g3,.g4,.g5{grid-column:span 1}.g5{display:none}}
.moments{display:grid;gap:var(--space-6);margin-top:var(--space-10)}
@media (min-width:800px){.moments{grid-template-columns:repeat(3,1fr)}}
.moments h3{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);margin-bottom:var(--space-2)}
.moments p{font-size:var(--text-sm);color:var(--color-text-muted)}

/* Calculator */
.calc{display:grid;gap:clamp(var(--space-6),4vw,var(--space-12));background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-xl);padding:clamp(var(--space-6),4vw,var(--space-12))}
@media (min-width:900px){.calc{grid-template-columns:1fr 1fr;align-items:center}}
.field-range{display:grid;gap:var(--space-2);margin-bottom:var(--space-6)}
.field-range label{display:flex;justify-content:space-between;font-size:var(--text-sm);font-weight:600}
.field-range output{font-variant-numeric:tabular-nums;color:var(--color-accent-strong)}
input[type=range]{width:100%;accent-color:var(--color-accent-strong);height:32px}
.calc__out{border-radius:var(--radius-lg);background:var(--color-forest);color:var(--color-cream);padding:clamp(var(--space-6),3vw,var(--space-10))}
.calc__out .xs{color:var(--color-cream-muted);letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.calc__big{font-family:var(--font-display);font-size:var(--text-3xl);line-height:1;margin-block:var(--space-3);font-variant-numeric:tabular-nums}
.calc__rows{display:grid;gap:var(--space-2);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid oklch(0.95 0.01 80 / .15);font-size:var(--text-sm)}
.calc__rows div{display:flex;justify-content:space-between;gap:var(--space-4)}
.calc__rows span:last-child{font-variant-numeric:tabular-nums;font-weight:600}

/* Pilot / map */
.pilot{display:grid;gap:clamp(var(--space-8),5vw,var(--space-16))}
@media (min-width:960px){.pilot{grid-template-columns:1fr 1fr;align-items:center}}
.map{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;background:var(--color-surface-2);border:1px solid var(--color-line)}
.map iframe{width:100%;height:100%;border:0;display:block}
.addr{display:grid;gap:var(--space-1);margin-block:var(--space-6);font-size:var(--text-sm)}

/* Timeline */
.timeline{display:grid;gap:0;border-left:2px solid var(--color-line);margin-left:var(--space-2)}
.timeline li{position:relative;padding:0 0 var(--space-8) var(--space-8);max-width:none;display:grid;gap:var(--space-4)}
@media (min-width:800px){.timeline li{grid-template-columns:220px 1fr;align-items:start}}
.timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 4px var(--color-bg)}
.timeline time{font-size:var(--text-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-moss)}
.timeline h3{font-size:var(--text-base);margin-block:var(--space-1)}
.timeline p{font-size:var(--text-sm);color:var(--color-text-muted)}
.timeline .media{aspect-ratio:3/2;max-width:420px}

/* FAQ */
.faq{border-top:1px solid var(--color-line)}
.faq details{border-bottom:1px solid var(--color-line)}
.faq summary{cursor:pointer;list-style:none;padding:var(--space-5) var(--space-10) var(--space-5) 0;font-weight:600;position:relative;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:var(--space-2);top:50%;width:12px;height:12px;border-right:2px solid var(--color-text);border-bottom:2px solid var(--color-text);transform:translateY(-75%) rotate(45deg);transition:transform 200ms cubic-bezier(.16,1,.3,1)}
.faq details[open] summary::after{transform:translateY(-25%) rotate(-135deg)}
.faq details p{padding:0 0 var(--space-5);color:var(--color-text-muted);max-width:68ch}
.faq details p+p{margin-top:calc(-1 * var(--space-2))}

/* Form */
.contact{display:grid;gap:clamp(var(--space-8),5vw,var(--space-16))}
@media (min-width:960px){.contact{grid-template-columns:.85fr 1.15fr}}
.form{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-xl);padding:clamp(var(--space-6),4vw,var(--space-10));display:grid;gap:var(--space-5);border:1px solid var(--color-line)}
.form .row{display:grid;gap:var(--space-5)}
@media (min-width:640px){.form .row{grid-template-columns:1fr 1fr}}
.f{display:grid;gap:var(--space-2)}
.f label,.f legend{font-size:var(--text-sm);font-weight:600}
.f label .opt{font-weight:400;color:var(--color-text-muted)}
.f input,.f select,.f textarea{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid oklch(0.25 0.03 50 / .22);background:#fffdf9;font-size:var(--text-base)}
.f textarea{min-height:120px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--color-accent-strong);box-shadow:0 0 0 3px oklch(0.72 0.15 60 / .25)}
.f [aria-invalid="true"]{border-color:#a3341f}
.err{font-size:var(--text-xs);color:#a3341f;min-height:1em}
.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);border:0}
.chips legend{margin-bottom:var(--space-2)}
.chips label{font-size:var(--text-sm);font-weight:500;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid oklch(0.25 0.03 50 / .22);cursor:pointer;min-height:44px;background:#fffdf9}
.chips input{accent-color:var(--color-accent-strong);width:16px;height:16px}
.chips label:has(input:checked){border-color:var(--color-accent-strong);background:oklch(0.93 0.05 70 / .6)}
.form__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}
.form__note{font-size:var(--text-xs);color:var(--color-text-muted)}
.form__ok{display:none;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:oklch(0.9 0.05 130 / .5);font-size:var(--text-sm)}
.form__ok.show{display:block}
.direct{display:grid;gap:var(--space-3);margin-top:var(--space-8)}
.direct a{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);border:1px solid oklch(0.95 0.01 80 / .18);text-decoration:none;color:inherit;min-height:64px}
.direct a:hover{background:oklch(0.95 0.01 80 / .06)}
.direct svg{width:22px;height:22px;flex:none;color:var(--color-accent)}
.direct b{display:block;font-size:var(--text-sm)}
.direct span{font-size:var(--text-xs);color:var(--color-cream-muted)}
.section--surface .direct a,.section--sand .direct a{border-color:var(--color-line)}
.section--surface .direct span{color:var(--color-text-muted)}

/* Spec table */
.spec{width:100%;font-size:var(--text-sm)}
.spec th,.spec td{padding:var(--space-3) 0;border-bottom:1px solid var(--color-line);text-align:left;vertical-align:top}
.spec th{font-weight:600;width:42%;padding-right:var(--space-4)}
.spec td{color:var(--color-text-muted)}

/* Full-bleed image band */
.band{position:relative;height:clamp(320px,55vw,640px);overflow:hidden}
.band img{width:100%;height:100%;object-fit:cover}
.band figcaption{position:absolute;left:0;right:0;bottom:0;padding:var(--space-8) 0 var(--space-6);background:linear-gradient(0deg,oklch(0.12 0.01 90 / .7),transparent);color:var(--color-cream);font-family:var(--font-display);font-size:var(--text-xl);max-width:none}

/* CTA band */
.cta{background:var(--color-forest);color:var(--color-cream);border-radius:var(--radius-xl);padding:clamp(var(--space-8),5vw,var(--space-16));display:grid;gap:var(--space-6);align-items:center;position:relative;overflow:hidden}
@media (min-width:900px){.cta{grid-template-columns:1.3fr auto}}
.cta h2{font-size:var(--text-xl);max-width:26ch}
.cta p{color:var(--color-cream-muted);margin-top:var(--space-3)}

/* Footer */
.site-footer{background:var(--color-forest);color:var(--color-cream);padding-block:var(--space-16) var(--space-8)}
.site-footer .grid{display:grid;gap:var(--space-10)}
@media (min-width:860px){.site-footer .grid{grid-template-columns:1.2fr 1fr 1fr 1fr}}
.site-footer img{height:110px;width:auto}
.site-footer h3{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-cream-muted);margin-bottom:var(--space-4);font-weight:600}
.site-footer ul{display:grid;gap:var(--space-2)}
.site-footer a{color:var(--color-cream);text-decoration:none;font-size:var(--text-sm);display:inline-block;padding-block:var(--space-1)}
.site-footer a:hover{color:var(--color-accent)}
.site-footer p{font-size:var(--text-sm);color:var(--color-cream-muted)}
.site-footer .bottom{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid oklch(0.95 0.01 80 / .12);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-cream-muted)}

/* Mobile action bar */
.actionbar{display:none}
@media (max-width:760px){
  .actionbar{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:var(--space-2);position:fixed;left:0;right:0;bottom:0;z-index:60;padding:var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom));background:oklch(0.95 0.015 80 / .96);backdrop-filter:blur(10px);border-top:1px solid var(--color-line)}
  .actionbar a{display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;text-decoration:none;color:var(--color-text);border:1px solid var(--color-line);background:var(--color-surface)}
  .actionbar a:active{transform:scale(.98)}
  .actionbar a.primary{background:var(--color-accent);border-color:transparent;color:#24160d}
  .actionbar svg{width:18px;height:18px}
  body{padding-bottom:72px}
}

/* Reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity 700ms cubic-bezier(.16,1,.3,1),transform 700ms cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}
.no-js .reveal{opacity:1;transform:none}

.grid-2{display:grid;gap:clamp(var(--space-6),4vw,var(--space-12))}
@media (min-width:860px){.grid-2{grid-template-columns:1fr 1fr}}
.stack>*+*{margin-top:var(--space-4)}
.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mt-10{margin-top:var(--space-10)}
.center{text-align:center;margin-inline:auto}
.legal h2{font-size:var(--text-xl);margin:var(--space-10) 0 var(--space-3)}
.legal p,.legal li{color:var(--color-text-muted)}
.legal ul{padding-left:var(--space-5);display:grid;gap:var(--space-2);margin-top:var(--space-3)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__fail{display:none;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:oklch(0.92 0.05 40 / .6);font-size:var(--text-sm)}
.form__fail.show{display:block}
.form button[disabled]{opacity:.6;cursor:wait}
.on-dark .form .btn--ghost{color:var(--color-text);border-color:var(--color-border, #cdbfae);background:transparent}
.on-dark .form .btn--ghost:hover{background:var(--color-surface-2)}
.on-dark .form .link,.on-dark .form a{color:var(--color-text)}
