/* Salish Skies shared web components | v1 (draft, site v47)
   Inherits the live site's tokens (--night, --cold, --blue, --amber, --ink, --faint, --line)
   and Saira typeface. New tokens below are additions for the wedding path and are
   documented in marketing/00-brand-foundation/tokens-v1.css for owner approval. */

:root{
  --gold:#d9b27c;          /* derived: warm gold for dark backgrounds, echoes ADIW v14 headline */
  --panel:#0a1020;         /* derived: raised surface on night */
  --panel-2:#0d1426;
  --radius:4px;
  --nav-h:60px;
}

/* ---- top navigation ---- */
.ss-nav{
  position:fixed; top:0; left:0; right:0; z-index:50; height:var(--nav-h);
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:0 clamp(16px,4vw,48px);
  background:rgba(6,9,18,.72); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.ss-brand{ display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--cold); font-size:.78rem; letter-spacing:.28em; text-transform:uppercase; white-space:nowrap; }
.ss-brand img{ height:26px; width:auto; display:block; }
.ss-nav ul{ list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:clamp(.9rem,2.2vw,2rem); }
.ss-nav a.navlink{ color:var(--ink); text-decoration:none; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; padding:.4rem 0; border-bottom:1px solid transparent; transition:border-color .3s ease, color .3s ease; white-space:nowrap; }
.ss-nav a.navlink:hover, .ss-nav a.navlink[aria-current="page"]{ color:var(--cold); border-color:var(--gold); }
.ss-nav a.navlink.wed{ color:var(--gold); }
.ss-nav .nav-cta{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--night); background:var(--cold); padding:.6rem 1.05rem; border-radius:999px; text-decoration:none; white-space:nowrap; }
.ss-nav .nav-cta:hover{ background:#fff; }
.ss-nav .opt{ display:list-item; }
@media (max-width:900px){ .ss-nav .opt{ display:none; } }
@media (max-width:520px){
  .ss-brand span{ display:none; }
  .ss-nav ul{ gap:.95rem; }
  .ss-nav a.navlink{ font-size:.7rem; letter-spacing:.1em; }
  .ss-nav .nav-cta{ padding:.55rem .8rem; font-size:.66rem; letter-spacing:.1em; }
}
@media (max-width:520px){ .ss-nav li.cta-li{ display:none; } }

/* ---- buttons ---- */
.btn-row{ display:flex; flex-wrap:wrap; gap:.9rem 1.2rem; align-items:center; justify-content:center; }
.btn{
  display:inline-block; font-family:var(--sans); font-weight:400; font-size:.78rem;
  letter-spacing:.2em; text-transform:uppercase; text-decoration:none; border-radius:999px;
  padding:1rem 2rem; border:1px solid transparent; cursor:pointer; text-align:center;
  transition:transform .35s ease, background .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.btn-primary{ color:var(--night); background:var(--gold); }
.btn-primary:hover{ background:#e8c79a; transform:translateY(-2px); box-shadow:0 0 40px -8px rgba(217,178,124,.6); }
.btn-ghost{ color:var(--cold); background:transparent; border-color:rgba(223,234,255,.38); }
.btn-ghost:hover{ border-color:var(--cold); transform:translateY(-2px); }
.btn:focus-visible{ outline:2px solid var(--blue); outline-offset:4px; }
.textlink{ color:var(--cold); text-decoration:none; border-bottom:1px solid var(--line); padding-bottom:2px; }
.textlink:hover{ border-color:var(--gold); }

/* ---- audience cards ---- */
.choose-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:2.6rem; background:var(--line); border:1px solid var(--line); }
@media (max-width:860px){ .choose-grid{ grid-template-columns:1fr; } }
.choose-card{ background:var(--night); padding:2.2rem 2rem 2.1rem; display:flex; flex-direction:column; gap:.9rem; transition:background .4s ease; }
.choose-card:hover{ background:#0a0f1c; }
.choose-card .motif{ width:120px; height:auto; color:var(--cold); opacity:.55; }
.choose-card .motif .lk{ stroke:currentColor; stroke-width:.8; fill:none; opacity:.55; }
.choose-card .motif .dt{ fill:currentColor; }
.choose-card.wed .motif{ color:var(--gold); opacity:.9; }
.choose-card .kicker{ font-size:.66rem; letter-spacing:.26em; text-transform:uppercase; color:var(--faint); margin:0; }
.choose-card h3{ font-family:var(--serif); font-weight:500; font-size:clamp(1.2rem,1.8vw,1.5rem); color:var(--cold); margin:0; line-height:1.25; }
.choose-card p.body{ font-size:1rem; line-height:1.65; color:var(--ink); margin:0; flex:1; }
.choose-card .go{ align-self:flex-start; margin-top:.4rem; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--cold); text-decoration:none; border-bottom:1px solid var(--line); padding-bottom:3px; }
.choose-card.wed .go{ color:var(--gold); border-color:rgba(217,178,124,.5); }
.choose-card .go:hover{ border-color:currentColor; }

/* ---- feature row ---- */
.feature-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:2.4rem 3rem; margin-top:2.8rem; }
@media (max-width:860px){ .feature-row{ grid-template-columns:1fr; gap:1.8rem; } }
.feature{ padding-top:1.3rem; border-top:1px solid var(--line); }
.feature .num{ font-size:.7rem; letter-spacing:.24em; color:var(--gold); margin:0 0 .7rem; }
.feature h3{ font-family:var(--serif); font-weight:500; font-size:clamp(1.1rem,1.6vw,1.3rem); color:var(--cold); margin:0 0 .55rem; }
.feature p{ font-size:1rem; line-height:1.7; color:var(--ink); margin:0; max-width:40ch; }

/* ---- route callout (homepage invite) ---- */
.route-callout{ display:flex; flex-wrap:wrap; gap:1rem 1.6rem; justify-content:center; align-items:center; max-width:680px; margin:2.2rem auto 1.6rem; padding:1.2rem 1.4rem; border:1px solid rgba(217,178,124,.35); border-radius:var(--radius); background:rgba(217,178,124,.05); }
.route-callout p{ margin:0; color:var(--ink); font-size:.98rem; }

/* ---- disclaimers / captions ---- */
.concept-note{ font-size:.78rem; line-height:1.55; color:var(--faint); letter-spacing:.01em; margin:.9rem 0 0; }
.concept-note b{ font-weight:500; color:var(--ink); letter-spacing:.12em; text-transform:uppercase; font-size:.66rem; margin-right:.4rem; }
.media-credit{ position:absolute; right:clamp(12px,3vw,28px); bottom:12px; z-index:3; font-size:.68rem; color:rgba(223,234,255,.78); background:rgba(3,5,10,.55); padding:.3rem .55rem; border-radius:3px; max-width:min(92vw,420px); text-align:right; }

/* ---- forms (shared with the existing .field system on the homepage) ---- */
.form-error{ text-align:center; color:#ffb4a8; font-size:.92rem; margin:1rem auto 0; max-width:52ch; }
.check{ display:flex; align-items:center; gap:.55rem; margin-top:.65rem; font-size:.86rem; color:var(--ink); cursor:pointer; }
.check input{ width:18px; height:18px; accent-color:var(--gold); margin:0; flex:none; }
.field input[type="date"]{ color-scheme:dark; min-height:2.4rem; }
.field input:disabled{ opacity:.45; }
.hint{ font-size:.78rem; color:var(--faint); margin:.45rem 0 0; line-height:1.5; }
.select-wrap{ position:relative; }
.select-wrap::after{ content:""; position:absolute; right:.2rem; top:50%; width:7px; height:7px; border-right:1px solid var(--faint); border-bottom:1px solid var(--faint); transform:translateY(-70%) rotate(45deg); pointer-events:none; }

/* ---- site footer ---- */
.ss-footer-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 1.6rem; margin:1.4rem 0 0; padding:0; list-style:none; }
.ss-footer-links a{ color:var(--ink); text-decoration:none; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; }
.ss-footer-links a:hover{ color:var(--cold); }
.ss-tagline{ font-family:var(--serif); color:var(--amber); font-size:1rem; margin:1.4rem 0 0; }

@media (prefers-reduced-motion: reduce){
  .btn, .choose-card, .ss-nav a.navlink{ transition:none !important; }
  .btn:hover{ transform:none !important; }
}

@media (max-width:520px){ .opt-inline{ display:none; } }
