/* Alder & Stone — bespoke sections (harvest-back candidates) */

/* ── nav-minimal ── */
.nav-min{padding:var(--s3) 0;position:absolute;top:0;left:0;right:0;z-index:10}
.nav-min .inner{display:flex;justify-content:space-between;align-items:baseline}
.nav-min .logo{font-family:var(--display);font-weight:600;font-size:22px;color:#fff}
.nav-min .right{display:flex;gap:var(--s3);align-items:baseline}
.nav-min a{color:rgba(255,255,255,.85);font-weight:500;font-size:15px}
.nav-min a:hover{color:#fff}
.nav-min .tel{font-weight:700;color:#fff}

/* ── hero-fullbleed with line-mask headline ── */
.hero-full{position:relative;min-height:92vh;display:flex;align-items:flex-end;overflow:hidden}
.hero-full::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(28,24,18,.34) 0%,transparent 34%,rgba(28,24,18,.78) 100%)}
.hero-full .content{position:relative;z-index:1;padding:0 0 calc(var(--s6) + 40px);color:#fff;max-width:900px}
.hero-full h1{color:#fff;font-weight:600;font-size:clamp(44px,7vw,88px);line-height:1.02}
.hero-full .sub{color:rgba(255,255,255,.9);font-size:20px;margin:var(--s3) 0 var(--s4);max-width:30em}
.hero-full .label{color:rgba(255,255,255,.78)}
.line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.line > span{display:block}
@media (prefers-reduced-motion:no-preference){
  .line > span{transform:translateY(112%);animation:lineup .95s cubic-bezier(.23,1,.32,1) forwards}
  .line:nth-of-type(2) > span{animation-delay:.14s}
  @keyframes lineup{to{transform:none}}
}

/* ── intro panel overlapping the hero ── */
.intro-card{position:relative;z-index:2;background:var(--surface);
  margin-top:-96px;padding:var(--s5) clamp(24px,5vw,64px);
  border-radius:var(--radius-img);box-shadow:var(--shadow);max-width:920px}
.intro-card .statline{display:flex;align-items:baseline;gap:14px;margin-top:var(--s4);
  border-top:1px solid var(--line);padding-top:var(--s3)}
.intro-card .statline .n{font-family:var(--display);font-weight:700;font-size:clamp(40px,5vw,64px);
  color:var(--accent);line-height:1;font-variant-numeric:tabular-nums}
.intro-card .statline .d{color:var(--muted);font-size:var(--fs-small);max-width:22em}

/* ── editorial service rows with ghost numerals ── */
.svc-row{position:relative;display:grid;grid-template-columns:1fr .95fr;gap:var(--s5);
  align-items:center;padding:var(--s6) 0 var(--s5)}
.svc-row + .svc-row{border-top:1px solid var(--line)}
.svc-row:nth-child(even) .txt{order:2}
.svc-row:nth-child(even) .pic{order:1}
.svc-row .idx{position:absolute;top:calc(var(--s4));left:-18px;z-index:0;
  font-family:var(--display);font-style:italic;font-weight:600;
  font-size:clamp(120px,16vw,220px);line-height:1;color:var(--accent-soft);
  pointer-events:none;user-select:none}
.svc-row:nth-child(even) .idx{left:auto;right:-10px}
.svc-row .txt{position:relative;z-index:1}
.svc-row h3{font-size:var(--fs-h2);margin-bottom:var(--s2)}
.svc-row .pic{position:relative;z-index:1;aspect-ratio:4/3;border-radius:var(--radius-img);
  overflow:hidden;box-shadow:var(--shadow)}
.svc-row .pic img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.23,1,.32,1)}
.svc-row:hover .pic img{transform:scale(1.04)}

/* ── editorial gallery: staggered plates with printed captions ── */
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5) var(--s4);align-items:start}
.gallery figure{margin:0}
.gallery figure:nth-child(even){margin-top:var(--s6)}
.gallery .ph{border-radius:var(--radius-img);overflow:hidden;box-shadow:var(--shadow)}
.gallery .ph img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .8s cubic-bezier(.23,1,.32,1)}
.gallery figure:hover .ph img{transform:scale(1.04)}
.gallery figcaption{display:flex;gap:12px;align-items:baseline;padding-top:16px;
  border-bottom:1px solid var(--line);padding-bottom:var(--s2)}
.gallery figcaption .no{font-family:var(--display);font-style:italic;color:var(--accent);font-size:16px}
.gallery figcaption .t{font-weight:700;color:var(--ink)}
.gallery figcaption .s{color:var(--muted);font-size:14px;margin-left:auto}
@media (max-width:700px){.gallery{grid-template-columns:1fr;gap:var(--s4)}
  .gallery figure:nth-child(even){margin-top:0}}

/* ── quote band: typographic moment on deep olive, rotating voices ── */
.quote-band{position:relative;overflow:hidden;background:#262C19;padding:calc(var(--s6)*1.2) 0}
.quote-band .container{position:relative;text-align:center}
.quote-band .rotor{display:grid}
.quote-band .rotor blockquote{grid-area:1/1;opacity:0;transition:opacity 1.1s ease;
  align-self:center;justify-self:center}
.quote-band .rotor blockquote.on{opacity:1}
.quote-band blockquote{font-family:var(--display);font-style:italic;font-weight:500;
  font-size:clamp(26px,3.8vw,44px);line-height:1.25;color:#fff;max-width:22em;margin:0 auto}
.quote-band .who{display:block;margin-top:var(--s3);font-family:var(--body);font-style:normal;
  font-size:var(--fs-small);color:rgba(255,255,255,.75)}

/* ── almanac: seasons as editorial programme rows ── */
.almanac{border-top:1px solid var(--line)}
.alm-row{display:grid;grid-template-columns:76px .85fr .55fr 1.6fr;gap:var(--s4);
  padding:var(--s4) 0;border-bottom:1px solid var(--line);align-items:center}
.alm-row .glyph{width:64px;height:64px;color:var(--accent)}
.alm-row .glyph svg{width:100%;height:100%;display:block}
.alm-row .glyph path,.alm-row .glyph circle,.alm-row .glyph line{
  fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* glyphs draw themselves in when the row scrolls into view */
@media (prefers-reduced-motion:no-preference){
  .alm-row .glyph [pathLength]{stroke-dasharray:1;stroke-dashoffset:1;
    transition:stroke-dashoffset 1.1s cubic-bezier(.4,0,.3,1) .25s}
  .alm-row.in .glyph [pathLength]{stroke-dashoffset:0}
}
.alm-row .name{font-family:var(--display);font-style:italic;font-weight:600;
  font-size:clamp(30px,4.4vw,48px);line-height:1;color:var(--ink)}
.alm-row .m{font-size:var(--fs-label);letter-spacing:var(--track-label);
  text-transform:uppercase;color:var(--muted);white-space:nowrap}
.alm-row p{margin:0;font-size:var(--fs-body)}
.alm-row.now .name{color:var(--accent)}
.alm-row.now .m::after{content:" — you're here";color:var(--accent);font-weight:700;text-transform:none;letter-spacing:0}
@media (max-width:700px){
  .alm-row{grid-template-columns:56px 1fr;gap:var(--s1) var(--s3)}
  .alm-row .glyph{grid-row:span 3;width:48px;height:48px;align-self:start}
}

/* ── closing CTA ── */
.closing{padding:calc(var(--section-pad)*1.15) 0;text-align:center}
.closing h2{font-size:clamp(36px,5.5vw,68px);font-weight:600}
.closing h2 em{font-style:italic;color:var(--accent)}
.closing p{max-width:34em;margin:var(--s3) auto var(--s4)}
.closing .btn{min-width:260px}

/* ── sticky return nav: slides in after the hero ── */
.nav-back{position:fixed;top:0;left:0;right:0;z-index:80;
  background:color-mix(in srgb,var(--ground) 92%,transparent);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);transform:translateY(-100%);
  transition:transform .45s cubic-bezier(.23,1,.32,1)}
body.scrolled .nav-back{transform:translateY(0)}
.nav-back .inner{display:flex;justify-content:space-between;align-items:center;height:58px}
.nav-back .logo{font-family:var(--display);font-weight:600;font-size:18px;color:var(--ink)}
.nav-back .btn{padding:10px 18px;font-size:14px}
@media (prefers-reduced-motion:reduce){.nav-back{transition:none}}

/* ── consult form card: echoes the intro panel's depth ── */
.form-card{background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-img);padding:var(--s4);box-shadow:var(--shadow)}

/* ── contour lines: landscape-survey linework as ghost texture ── */
.contours{position:relative}
.contours::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 400' fill='none'%3E%3Cpath d='M0,80 C150,20 300,140 600,60' stroke='%235E6F3D' stroke-opacity='.14'/%3E%3Cpath d='M0,160 C180,100 320,220 600,140' stroke='%235E6F3D' stroke-opacity='.12'/%3E%3Cpath d='M0,240 C160,180 340,300 600,220' stroke='%235E6F3D' stroke-opacity='.10'/%3E%3Cpath d='M0,320 C170,260 330,380 600,300' stroke='%235E6F3D' stroke-opacity='.08'/%3E%3C/svg%3E");
  background-size:900px auto;background-repeat:no-repeat;background-position:top right}
.contours > *{position:relative;z-index:1}

/* ── after dark: the lighting section, deep evening green ── */
.afterdark{background:#1B2015;padding:var(--section-pad) 0}
.afterdark .label{color:#A9B57C}
.afterdark h2{color:#F3F0E4;margin:var(--s2) 0 var(--s3)}
.afterdark p{color:rgba(243,240,228,.75)}
.afterdark .pics{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s3);margin:var(--s4) 0}
.afterdark .pics .ph{border-radius:var(--radius-img);overflow:hidden;
  box-shadow:0 24px 70px -24px rgba(0,0,0,.7)}
.afterdark .pics .ph img{width:100%;height:100%;object-fit:cover;display:block}
.afterdark .pics .ph:last-child{margin-top:var(--s5)}
.afterdark .btn--ghost{border-color:rgba(243,240,228,.35);color:#F3F0E4}
.afterdark .btn--ghost:hover{border-color:#F3F0E4;color:#F3F0E4}
@media (max-width:700px){.afterdark .pics{grid-template-columns:1fr}
  .afterdark .pics .ph:last-child{margin-top:0}}

/* ── print details ── */
.dropcap::first-letter{font-family:var(--display);font-weight:600;font-size:3.3em;
  float:left;line-height:.82;padding:.05em .14em 0 0;color:var(--accent)}
.hero-full h1 em{font-style:italic;font-weight:500}
@media (prefers-reduced-motion:no-preference){
  .gallery figure .ph{transition:transform .5s cubic-bezier(.23,1,.32,1),box-shadow .5s ease}
  .gallery figure:hover .ph{transform:translateY(-5px);box-shadow:0 26px 60px -22px rgba(35,32,26,.4)}
}

/* ── grand footer ── */
.footer-grand{background:var(--surface-2);border-top:1px solid var(--line);
  padding:var(--s5) 0 var(--s3);margin-top:var(--s6)}
.footer-grand .word{font-family:var(--display);font-style:italic;font-weight:600;
  font-size:clamp(44px,7vw,88px);line-height:1;color:var(--ink);margin-bottom:var(--s5)}
.footer-grand .word em{color:var(--accent);font-style:italic}
.footer-grand .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:var(--s4);
  padding-bottom:var(--s4);border-bottom:1px solid var(--line)}
.footer-grand .k{font-size:var(--fs-label);letter-spacing:var(--track-label);
  text-transform:uppercase;color:var(--muted);margin-bottom:var(--s2)}
.footer-grand ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:15px}
.footer-grand .blurb{color:var(--muted);font-size:15px;max-width:26em}
.footer-grand .legal{padding-top:var(--s3);display:flex;justify-content:space-between;
  gap:var(--s2);flex-wrap:wrap;font-size:13px;color:var(--muted)}
@media (max-width:800px){.footer-grand .cols{grid-template-columns:1fr 1fr}}

@media (max-width:900px){
  .hero-full{min-height:80vh}
  .svc-row{grid-template-columns:1fr;gap:var(--s3);padding:var(--s5) 0 var(--s4)}
  .svc-row:nth-child(even) .txt{order:1}
  .svc-row:nth-child(even) .pic{order:2}
  .svc-row .idx{font-size:110px;top:-10px}
  .intro-card{margin-top:-64px}
}
