/* Salish Skies site layer | v49 (Nightfall Gold, refinement)
   Loaded after ss-components-v1.css and ss-brand-tokens-v1.css. Same palette and type;
   adds: mobile menu, readable minimum sizes, touch targets, form status states,
   and homepage rhythm (scoped to body.home). */

:root{ --band:#0f182b; --band-2:#111b31; }

/* ---------- readability floors (mobile review: 10-11px text) ---------- */
.eyebrow{ font-size:.8rem; letter-spacing:.22em; }
.choose-card .kicker{ font-size:.78rem; letter-spacing:.18em; }
.field label{ font-size:.78rem; letter-spacing:.14em; }
.concept-note{ font-size:.86rem; }
.concept-note b{ font-size:.74rem; }
.media-credit, .ss-horizon .credit, .demo-cap{ font-size:.78rem; }
.footline{ font-size:.78rem; letter-spacing:.16em; }
.hint, .form-privacy{ font-size:.86rem; }
.feature .num{ font-size:.8rem; }
.btn, .hero-routes .btn{ font-size:.78rem; }
.ss-nav .ss-brand{ display:inline-flex; align-items:center; min-height:44px; }
.choose-card .go, a.go{ font-size:.78rem; }
.concept-tag{ font-size:.75rem !important; }

/* ---------- touch targets ---------- */
.ss-nav a.navlink{ display:inline-flex; align-items:center; min-height:44px; font-size:.8rem; }
.ss-nav .nav-cta{ display:inline-flex; align-items:center; min-height:44px; }
.ss-footer-links a{ display:inline-flex; align-items:center; min-height:44px; padding:0 .2rem; font-size:.84rem; }
.btn{ min-height:48px; display:inline-flex; align-items:center; justify-content:center; }
.textlink{ display:inline-flex; align-items:center; min-height:44px; }
.check{ min-height:44px; }
@media (max-width:520px){ .ss-nav a.navlink{ font-size:.78rem; letter-spacing:.08em; } }

/* ---------- mobile menu ---------- */
.menu-btn{ display:none; align-items:center; gap:.45rem; min-height:44px; min-width:44px; padding:0 .4rem; background:none; border:0; color:var(--cold); font-family:var(--sans); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; }
.menu-btn .bars{ width:18px; height:12px; position:relative; display:inline-block; }
.menu-btn .bars::before, .menu-btn .bars::after, .menu-btn .bars span{ content:""; position:absolute; left:0; right:0; height:1.5px; background:var(--gold-light); }
.menu-btn .bars::before{ top:0; } .menu-btn .bars span{ top:5px; } .menu-btn .bars::after{ bottom:0; }
.menu-panel{ position:fixed; top:var(--nav-h); left:0; right:0; z-index:49; background:rgba(11,18,32,.97); border-bottom:1px solid var(--line); padding:.6rem clamp(16px,4vw,48px) 1.2rem; }
.menu-panel[hidden]{ display:none; }
.menu-panel ul{ list-style:none; margin:0; padding:0; display:grid; gap:0; }
.menu-panel a{ display:flex; align-items:center; min-height:48px; color:var(--cold); text-decoration:none; font-family:var(--sans); font-size:.95rem; letter-spacing:.12em; text-transform:uppercase; border-bottom:1px solid var(--line); }
.menu-panel a.wed{ color:var(--gold-light); }
@media (max-width:900px){ .js .menu-btn{ display:inline-flex; } }
@media (min-width:901px){ .menu-panel{ display:none !important; } }
@media (max-width:420px){ .ss-nav ul{ gap:.7rem; } .menu-btn .lbl{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; } }
@media (max-width:360px){ .ss-nav .ss-brand img{ width:94px; height:auto; } .ss-nav ul{ gap:.4rem; } .ss-nav a.navlink{ letter-spacing:.06em; } }

/* ---------- form status (never auto-resend) ---------- */
.form-status{ max-width:640px; margin:1.4rem auto 0; padding:1rem 1.2rem; border-radius:4px; text-align:left; font-family:var(--reading); font-size:1rem; line-height:1.6; }
.form-status[hidden]{ display:none; }
.form-status.is-error{ border:1px solid #e8a798; background:rgba(232,167,152,.08); color:#f6d6cd; }
.form-status.is-uncertain{ border:1px solid rgba(226,192,143,.6); background:rgba(226,192,143,.08); color:var(--cold); }
.form-status a{ color:var(--gold-light); }
.privacy-link{ color:var(--gold-light); }

/* =================== HOMEPAGE RHYTHM (body.home) =================== */
/* Approved copy and the responsive, text-based planning graphic. */
.home .hero-offer{ max-width:52ch; margin:1.4rem auto 0; padding:0 1rem; font-family:var(--reading); font-size:1rem; line-height:1.6; color:var(--cold); }
.ss-nav a.navlink,.ss-nav a.navlink[aria-current="page"]{ color:var(--ink); }
.home .choose-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.approved-story{ max-width:64ch; margin:2rem auto 0; text-align:left; font-family:var(--reading); line-height:1.85; }
.approved-story p + p{ margin-top:1.5rem; }
.planning-intro{ max-width:56ch; margin:1.8rem auto 0; font-family:var(--reading); line-height:1.8; }
.planning-flow{ list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; margin:3rem 0 0; padding:0; text-align:left; }
.planning-flow li{ position:relative; min-width:0; border-top:1px solid var(--gold-light); padding:1.4rem 1rem; background:var(--band); }
.planning-flow li:not(:last-child)::after{ content:"→"; position:absolute; right:-1.25rem; top:1.1rem; color:var(--gold-light); }
.planning-number{ display:block; margin-bottom:1.1rem; color:var(--gold-light); font-family:var(--sans); font-size:1.5rem; }
.planning-flow h3{ margin:0 0 .8rem; font-size:1.1rem; }
.planning-flow p{ margin:0; font-family:var(--reading); font-size:1rem; line-height:1.7; color:var(--ink); }
.home .field .hint{ margin:.6rem 0 0; color:var(--faint); font-family:var(--reading); font-size:.875rem; line-height:1.6; }
@media(max-width:860px){ .planning-flow{ grid-template-columns:repeat(2,minmax(0,1fr)); } .planning-flow li::after{ display:none; } }
@media(max-width:640px){ .home .choose-grid,.planning-flow{ grid-template-columns:minmax(0,1fr); } .planning-flow{ gap:1.5rem; } .planning-flow li:not(:last-child)::after{ content:"↓"; display:block; right:1rem; top:auto; bottom:-1.4rem; } }
/* fewer repeated gold rules: keep them only where a section turns toward the visitor */
.home .display::after{ display:none; }
.home #invite .display::after, .home .stand-statement .display::after{ display:block; }

/* bands: same navy family, a lifted surface for the practical chapter */
.home .practical, .home .audience{ background:linear-gradient(180deg, var(--band) 0%, var(--band-2) 100%); }
.home .practical{ border-top:1px solid var(--line); }
.home .audience{ border-bottom:1px solid var(--line); }
.home .aud-card{ background:var(--band); }
.home .aud-card:hover{ background:#132039; }

/* local: heading left, points right */
@media (min-width:860px){
  .home .local .center{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr); column-gap:clamp(2.5rem,6vw,6rem); align-items:start; }
  .home .local .eyebrow{ grid-column:1; grid-row:1; }
  .home .local .display{ grid-column:1; grid-row:2; }
  .home .local .local-grid{ grid-column:2; grid-row:1 / span 3; margin-top:0; }
}

/* craft: text + formation concepts video (demonstration moment 1) */
.home .craft .center{ display:grid; grid-template-columns:minmax(0,1fr); gap:2.4rem; }
@media (min-width:960px){ .home .craft .center{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; column-gap:clamp(2.5rem,5vw,5rem); } .home .craft .craft-text{ grid-column:1; } .home .craft .demo-video{ grid-column:2; } }
.demo-cap{ margin:.7rem 0 0; color:var(--faint); font-family:var(--sans); letter-spacing:.02em; line-height:1.5; }
.demo-cap b{ color:inherit; font-weight:500; margin-right:.25rem; }

/* craft heading: let the narrower column wrap naturally */
@media (min-width:960px){ .home .craft .display br{ display:none; } .home .craft .display{ text-wrap:balance; } }

.demo-video{ margin:0 auto; width:min(100%, 380px); }
.demo-video .frame{ border:1px solid rgba(226,192,143,.45); padding:6px; background:#0B1220; }
.demo-video video{ display:block; width:100%; height:auto; aspect-ratio:9/16; background:#0B1220; }
@media (min-width:960px){ .home .craft .demo-video{ grid-column:2; } }

/* signature: formations flown above an Island horizon (demonstration moment 2) */
.home #signature{ padding-bottom:0; overflow:hidden; }
.home #signature .center{ position:relative; z-index:2; }
.home #momentCanvas{ position:relative; z-index:2; height:clamp(340px,56vh,560px); }
.home .sig-horizon{ position:relative; z-index:1; height:clamp(110px,14vw,200px); margin:calc(-1 * clamp(30px,4vw,60px)) calc(-1 * clamp(16px,7vw,96px)) 0;
  background:url("/assets/img/sig-horizon-v1.svg") center bottom/cover no-repeat;
  -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 45%, #000 85%, transparent 100%); mask-image:linear-gradient(180deg, transparent 0%, #000 45%, #000 85%, transparent 100%); }

/* safety: one centered statement, a different composition */
.home .standard .center{ text-align:center; max-width:820px; }
.home .standard .lead{ margin-left:auto; margin-right:auto; max-width:46ch; font-size:clamp(1.1rem,1.9vw,1.35rem); }
.home .standard .display::after{ display:block; margin-left:auto; margin-right:auto; }

/* modes: typographic pair */
.home .mode{ border-top:0; padding-top:0; }
.home .mode::before{ display:none; }
.home .mode h3{ font-family:var(--sans); font-weight:300; text-transform:uppercase; letter-spacing:.08em; font-size:clamp(1.8rem,3.6vw,2.8rem); color:var(--gold-light); margin-bottom:.8rem; }
.home .mode p{ font-size:1.08rem; }

/* invite: a little warmth */
.home #invite{ background:radial-gradient(60% 40% at 50% 30%, rgba(226,192,143,.06), transparent 75%); }

/* experience: commissioned formation concepts */
.formation-row{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,2.4vw,2rem); margin-top:clamp(2.4rem,5vw,3.6rem); }
@media (max-width:860px){ .formation-row{ grid-template-columns:1fr; } }
.formation{ position:relative; margin:0; border:1px solid rgba(226,192,143,.3); background:#070c19; }
.formation img{ display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.formation .concept-tag{ position:absolute; right:8px; bottom:6px; font-family:var(--sans); letter-spacing:.04em; color:rgba(244,239,228,.62); text-shadow:0 1px 2px rgba(0,0,0,.6); }

/* invite: spacing after the wedding call-out was removed */
.home #invite .form-note{ margin-top:2rem; }

/* sub pages (/experience/, /events/, /contact/): same type and sections as the homepage */
.sub .page-hero{ padding-top:calc(var(--nav-h) + clamp(3.5rem,9vh,6rem)); }
.sub .formations{ padding-top:0; }
.sub .formations .eyebrow{ font-size:.8rem; font-weight:400; margin:0; }
.sub .formation-row{ margin-top:1.6rem; }
.sub .sub-cta{ text-align:center; }
.sub .sub-foot{ text-align:center; padding:3rem 16px 3.5rem; border-top:1px solid var(--line); }
.sub #invite .form-note{ margin-top:2rem; }

/* Owner-selected concepts. Keep the whole image visible at every screen width. */
.site-visual{ display:block; width:100%; max-width:1100px; margin:2.4rem auto 0; text-align:left; }
.site-visual picture{ display:block; overflow:hidden; border:1px solid var(--line); background:var(--night); }
.site-visual img{ display:block; width:100%; height:auto; }
.site-visual figcaption{ margin:.5rem 0 0; color:var(--faint); font-family:var(--sans); font-size:.8rem; line-height:1.6; font-weight:400; letter-spacing:.03em; }
.has-visual .site-visual{ margin:0 0 1.4rem; }
.home .aud-card.has-visual p{ max-width:none; }
.weddings .site-visual{ width:min(100%,1100px); }
.weddings .site-visual figcaption{ font-size:.86rem; }
.idea .site-visual{ margin:0 0 1.2rem; }
.idea .site-visual picture{ aspect-ratio:4 / 3; display:flex; align-items:center; justify-content:center; }
.idea .site-visual img{ max-height:100%; object-fit:contain; }
@media(max-width:760px){ .idea .site-visual picture{ aspect-ratio:auto; } }

/* Existing venue diagram, reused for general event planning on Experience. */
.site-zones{ margin:2.2rem 0 0; }
.site-zones .layout{ border:1px solid var(--line); background:var(--night); }
.site-zones img{ display:block; width:100%; height:auto; }
.site-zones .zone-labels{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); text-align:center; }
.site-zones .zone-labels li{ min-width:0; padding:.8rem .4rem 0; border-top:6px solid var(--zc); font-family:var(--sans); font-size:.8rem; line-height:1.5; color:var(--cold); }
.site-zones .zone-labels li:nth-child(1){ --zc:#e7b969; }
.site-zones .zone-labels li:nth-child(2){ --zc:#91a8d5; }
.site-zones .zone-labels li:nth-child(3){ --zc:#70bfb0; }
.site-zones figcaption{ margin:.9rem 0 0; font-size:.86rem; color:var(--faint); }
.choose-card .choose-visual{ margin:0 0 1.4rem; }
.choose-card .choose-visual picture{ aspect-ratio:3 / 2; display:flex; align-items:center; justify-content:center; }
.choose-card .choose-visual img{ height:100%; object-fit:contain; }

/* Shared inquiry layout on every page. */
  /* ---- invitation + form ---- */
  #invite{ text-align:center; }
  .inquiry{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem 2rem; max-width:680px; margin:2.6rem auto 0; text-align:left; }
  .inquiry[hidden]{ display:none; }
  @media (max-width:640px){ .inquiry{ grid-template-columns:1fr; gap:1.3rem; } }
  .inquiry .full{ grid-column:1 / -1; }
  .field{ display:flex; flex-direction:column; min-width:0; }
  .field label{ font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--faint); margin-bottom:.5rem; }
  .field input, .field textarea, .field select{
    background:transparent; border:none; border-bottom:1px solid var(--line);
    color:var(--cold); font-family:var(--sans); font-size:1rem; padding:.55rem 0; outline:none;
    transition:border-color .3s ease; width:100%; min-width:0; box-sizing:border-box;
  }
  .field select{ -webkit-appearance:none; appearance:none; cursor:pointer; }
  .field select option{ background:var(--night); color:var(--cold); }
  .field input:focus, .field textarea:focus, .field select:focus{ border-color:var(--blue); }
  .field textarea{ resize:vertical; }
  .submit-row{ text-align:center; margin-top:.6rem; }
  .or-email{ text-align:center; margin-top:1.6rem; font-size:.85rem; color:var(--faint); }
  .form-note{ text-align:center; margin:0 auto 1.8rem; max-width:52ch; font-size:.92rem; color:var(--faint); }
  .form-privacy{ text-align:center; margin:1.1rem auto 0; max-width:52ch; font-size:.8rem; color:var(--muted-dim,var(--faint)); }
  .req{ color:var(--blue); }
  .form-thanks{ text-align:center; padding:2.5rem 0 1rem; animation:ftin 1s ease both; }
  .ft-head{ font-family:var(--serif); font-size:clamp(1.4rem,2.6vw,2rem); color:var(--cold); }
  .ft-sub{ margin-top:.9rem; font-size:1rem; color:var(--ink); }
  @keyframes ftin{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
  .cta{
    display:inline-block;
    font-family:var(--sans); font-weight:400; font-size:.78rem;
    letter-spacing:.22em; text-transform:uppercase; color:var(--night);
    background:var(--cold); padding:1rem 2.2rem; border-radius:999px;
    text-decoration:none; border:none; cursor:pointer;
    transition:transform .4s ease, background .4s ease, box-shadow .4s ease;
  }
  .cta:hover{ transform:translateY(-2px); background:#fff; box-shadow:0 0 44px -6px rgba(110,168,255,.55); }
  .cta:focus-visible{ outline:2px solid var(--blue); outline-offset:4px; }


.shared-inquiry .center{max-width:1100px;margin:0 auto;}
.shared-inquiry .field label{font-size:.78rem;line-height:1.6;letter-spacing:.14em;}
.shared-inquiry .form-privacy{font-size:.86rem;}
.shared-inquiry .lead{margin:1.8rem 0 0;}
.shared-inquiry .display{font-family:var(--sans);font-weight:300;font-size:clamp(1.7rem,4.1vw,3rem);line-height:1.12;letter-spacing:.06em;text-transform:uppercase;}
.shared-inquiry .form-note{margin-top:2rem;}
.shared-inquiry .cta{font-family:var(--sans);font-size:.85rem;min-height:48px;}
/* One type system: Saira headings and controls, Noto Serif reading text. */
body{font-family:var(--reading);}
h1,h2,h3,.display,.lux,.weddings #hero h1{font-family:var(--sans)!important;}
.weddings{--luxe:var(--sans);}
p,li{font-family:var(--reading);}
.ss-nav a,.ss-nav button,.menu-panel a,.ss-footer-links a,.field label,input,textarea,select,button,.btn,.eyebrow,.contact-pin{font-family:var(--sans);}
.questions .center,.proposal .center,.venue-programming .center,.practical .center,.planning .center,.weddings #how-it-works .center{text-align:left;}
.questions .planning-intro,.proposal .approved-story,.venue-programming .planning-intro,.practical .planning-intro,.planning .planning-intro{margin-left:0;margin-right:0;}
.shared-inquiry{text-align:left!important;}
.shared-inquiry .display::after{margin-left:0!important;}
.shared-inquiry .form-note,.shared-inquiry .lead{max-width:64ch;}

.shared-inquiry .field label{font-weight:400;}
.shared-inquiry .inquiry{margin:2.6rem 0 0;}
.shared-inquiry .form-note,.shared-inquiry .form-privacy,.shared-inquiry .form-thanks,.shared-inquiry .or-email{margin-left:0;margin-right:0;text-align:left;}
.shared-inquiry{padding:clamp(4.5rem,11vh,8.5rem) clamp(16px,7vw,96px);font-family:var(--reading);font-weight:400;}
.shared-inquiry h2{margin:0;}
.shared-inquiry p{line-height:1.8;font-weight:400;}
.shared-inquiry .or-email{font-size:.9rem;letter-spacing:.04em;text-transform:none;}
.privacy-page main{max-width:none;margin:0;padding:0;}
.privacy-copy{max-width:760px;margin:0 auto;padding:calc(var(--nav-h) + 3.5rem) clamp(16px,6vw,48px) 4rem;}
.ss-tagline,.hero-tag,.hero-tagline{font-family:var(--reading)!important;font-style:italic;font-weight:400;text-transform:none;letter-spacing:.01em;}
.weddings #hero h1,.weddings h2.lux{font-weight:300;}

/* Keep the diagram qualification on the illustration itself. */
.zones .layout, .site-zones .layout{ position:relative; }
.zone-image-note{ position:absolute; left:.6rem; top:.6rem; padding:.3rem .5rem; background:rgba(7,12,25,.88); color:#f4efe4; font:400 clamp(.75rem,1.2vw,.8rem)/1.4 var(--sans); letter-spacing:.02em; }

.event-detail .center{text-align:left;}
.event-detail .planning-intro{margin-left:0;margin-right:0;}

/* Audit refinements: readable controls and compact mobile chapters. */
.field select{appearance:auto;-webkit-appearance:menulist;padding-right:1rem;}
.season-note,.animation-note{font:400 .85rem/1.6 var(--sans);color:var(--faint);}
.season-note{margin:1.4rem auto;}
.operating-model .center{text-align:left;}
.operating-model .approved-story{margin-left:0;}
.weddings .italic{font-family:var(--reading)!important;font-weight:400;font-synthesis:none;}
.approved-story p+p{margin-top:1.5em;}
@media(max-width:640px){
 .sub main>section:not(.page-hero),.weddings main>section:not(#hero){padding-top:3rem;padding-bottom:3rem;}
 .sub .event-detail .site-visual{margin-top:1.5rem;}
}

/* Persistent contact access occupies its own strip, outside the reading viewport. */
html{height:100%;overflow:hidden;}
body{height:100%;overflow:hidden;}
.site-scroll-frame{position:fixed;inset:0 0 calc(60px + env(safe-area-inset-bottom,0px));overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:76px;}
.contact-dock{position:fixed;inset:auto 0 0;box-sizing:border-box;height:calc(60px + env(safe-area-inset-bottom,0px));padding:8px max(16px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px));display:flex;justify-content:flex-end;align-items:center;background:var(--night);border-top:1px solid var(--line);z-index:50;}
.contact-shortcut{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:100px;padding:0 18px;box-sizing:border-box;border:1px solid var(--gold-light);border-radius:999px;color:var(--gold-light);text-decoration:none;font:500 .85rem/1.2 var(--sans);letter-spacing:.04em;}
.contact-shortcut:hover{background:var(--gold-light);color:var(--night);}
.contact-shortcut:focus-visible{outline:2px solid var(--cold);outline-offset:2px;}
.contact-form-visible .contact-dock{display:none;}
.contact-form-visible .site-scroll-frame{bottom:0;}
@media(prefers-reduced-motion:reduce){.site-scroll-frame{scroll-behavior:auto;}}

/* Icons extracted from the VIEx proposal, recoloured by the shared brand palette. */
.environment-filter{position:absolute;color:var(--gold-light);}
.viex-environment-icon{display:block;width:88px;height:90px;color:var(--gold-light);margin-bottom:1.2rem;}
.environment-principles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;list-style:none;padding:0;margin:2.5rem 0;}
.environment-principles h3{font-size:1.05rem;line-height:1.4;margin:0 0 .7rem;}
.environment-principles p{font-family:var(--reading);font-size:1rem;line-height:1.7;color:var(--ink);margin:0;}
@media(max-width:850px){.environment-principles{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:420px){.environment-principles{grid-template-columns:1fr;gap:1.8rem;}.environment-principles li{display:grid;grid-template-columns:70px 1fr;gap:0 1rem;align-items:start;}.viex-environment-icon{width:64px;height:66px;grid-row:1/3;margin:0;}.environment-principles h3{margin-top:.15rem;}}
