/* ============================================================
   Highline Adventures — guest-surface brand layer (Phase 6.7b)
   Loaded ONLY by templates/base.html (guest pages), after
   variables/shell/components/custom so its overrides win.
   Source of truth: _TEMP/mock-hla-website/ Highline Site
   Prototype + the Highline design system (Brand ID 2020 v1).
   Admin (base_shell.html) and staff layouts never load this.
   ============================================================ */

/* ── Neue Haas Grotesk Display Pro (licensed; 4 shipped weights,
      same subset as presentation-site) ─────────────────────── */
@font-face { font-family: 'Neue Haas Grotesk Display Pro'; font-weight: 300; font-style: normal; font-display: swap;
  src: url('/static/fonts/Linotype_-_NHaasGroteskDSPro-45Lt.otf') format('opentype'); }
@font-face { font-family: 'Neue Haas Grotesk Display Pro'; font-weight: 400; font-style: normal; font-display: swap;
  src: url('/static/fonts/Linotype_-_NHaasGroteskDSPro-55Rg.otf') format('opentype'); }
@font-face { font-family: 'Neue Haas Grotesk Display Pro'; font-weight: 500; font-style: normal; font-display: swap;
  src: url('/static/fonts/Linotype_-_NHaasGroteskDSPro-65Md.otf') format('opentype'); }
@font-face { font-family: 'Neue Haas Grotesk Display Pro'; font-weight: 700; font-style: normal; font-display: swap;
  src: url('/static/fonts/Linotype_-_NHaasGroteskDSPro-75Bd.otf') format('opentype'); }

/* ── Brand tokens (per Brand ID p.25) + guest surface overrides ── */
:root {
  --vp-font-family-base: 'Neue Haas Grotesk Display Pro', -apple-system,
    BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;

  /* Brand-exact hues (variables.css is shared with admin — override here) */
  --skies: #86AABA;
  --mute-cream: #FEEDD5;

  --hl-hills:        #315C4D;
  --hl-hills-deep:   #244538;
  --hl-hills-tint:   #4F7869;
  --hl-blooms:       #F48020;
  --hl-blooms-deep:  #D86A0F;
  --hl-blooms-tint:  #F9A968;
  --hl-golden:       #D2AB4E;
  --hl-golden-tint:  #E5C97E;
  --hl-mute:         #FEEDD5;
  --hl-light:        #F4F4F0;
  --hl-medium:       #595A5F;
  --hl-dark:         #181819;

  --hl-border:        rgba(24, 24, 25, 0.12);
  --hl-border-strong: rgba(24, 24, 25, 0.32);

  /* Chrome */
  --hl-header-bg:   rgba(254, 237, 213, 0.78);
  --hl-header-text: #181819;
  --hl-footer-bg:   #244538;
  --hl-band-bg:     #315C4D;
  --hl-on-band:     #F4F4F0;
  --hl-on-band-soft:#FEEDD5;

  /* Cream card / section surfaces */
  --hl-surface-mute: #FEEDD5;
}

/* Derived dark companion (off-spec by decision — brand is light-only).
   variables.css html.dark already flips bg/text/brand; these cover the
   Highline-specific surfaces. */
html.dark {
  --hl-border:        rgba(244, 244, 240, 0.14);
  --hl-border-strong: rgba(244, 244, 240, 0.34);

  --hl-header-bg:   rgba(24, 24, 25, 0.80);
  --hl-header-text: #F4F4F0;
  --hl-footer-bg:   #1D3730;
  --hl-band-bg:     #244538;

  --hl-surface-mute: #26241F;   /* warm dark stand-in for cream */
}

/* ── Base typography ─────────────────────────────────────────── */
body {
  font-family: var(--vp-font-family-base);
  letter-spacing: 0.005em;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { letter-spacing: 0.01em; text-wrap: balance; }

/* ── Eyebrow label ───────────────────────────────────────────── */
.hl-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--hl-blooms);
}

/* ── CTA language: primary actions are Blooms pills (brand spec:
      Blooms = accent/CTA). Restyles existing bg-brand / bg-accent
      Tailwind CTAs across the guest surface without template edits;
      element+class selectors outrank the CDN utilities. ───────── */
a.bg-brand, button.bg-brand,
a.bg-accent, button.bg-accent {
  background-color: var(--hl-blooms);
  color: #FFF9F0;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 700;
  transition: background-color 150ms ease, transform 150ms ease;
}
a.bg-brand:hover, button.bg-brand:hover,
a.bg-accent:hover, button.bg-accent:hover {
  background-color: var(--hl-blooms-deep);
  transform: translateY(-1px);
}
/* Secondary surface buttons keep their color but adopt the pill */
a.bg-surface-soft, button.bg-surface-soft {
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* Explicit button classes for new/reworked markup */
.hl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  border: none;
  border-radius: 999px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 13px 26px;
  transition: all 150ms ease;
}
.hl-btn-lg { font-size: 14px; padding: 16px 34px; }
.hl-btn-primary { background: var(--hl-blooms); color: #FFF9F0; }
.hl-btn-primary:hover { background: var(--hl-blooms-deep); transform: translateY(-1px); }
.hl-btn-outline {
  background: transparent;
  color: var(--vp-c-brand-1);
  border: 2px solid var(--vp-c-brand-1);
}
.hl-btn-outline:hover { background: var(--vp-c-brand-1); color: var(--hl-light); }
.hl-btn-outline-light {
  background: transparent;
  color: #F4F4F0;
  border: 2px solid #F4F4F0;
}
.hl-btn-outline-light:hover { background: #F4F4F0; color: var(--hl-hills); }

/* ── Header (sticky cream glass bar) ─────────────────────────── */
.hl-header {
  background: var(--hl-header-bg);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--hl-border);
  color: var(--hl-header-text);
}
.hl-navlink {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--vp-c-text-1);
  text-decoration: none;
  transition: color 150ms ease;
}
.hl-navlink:hover { color: var(--hl-blooms); }
/* Official PNG lockup: Hills+Blooms variant on light, Light variant on dark */
.hl-logo-dark { display: none; }
html.dark .hl-logo-light { display: none; }
html.dark .hl-logo-dark { display: block; }

/* ── Hills band (dark green section with topo pattern) ───────── */
.hl-band {
  position: relative;
  overflow: hidden;
  background: var(--hl-band-bg);
  color: var(--hl-on-band);
}
.hl-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('/static/images/highline/topo.svg');
  background-size: 640px;
  opacity: 0.13;
  pointer-events: none;
}
.hl-band > * { position: relative; }

/* ── Hero (photo + bottom-anchored copy) ─────────────────────── */
.hl-hero {
  position: relative;
  overflow: hidden;
  background: var(--hl-hills-deep);
}
.hl-hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hl-hero-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(24,24,25,0.60) 0%, rgba(24,24,25,0.18) 40%, rgba(24,24,25,0) 60%);
  pointer-events: none;
}

/* ── Framed callout box (4px brand border motif) ─────────────── */
.hl-box {
  border: 4px solid var(--vp-c-brand-1);
  padding: 28px 30px;
}
.hl-box-2 { border-width: 2px; padding: 22px 24px; }

/* ── Editorial card (cream, crisp border, hover lift) ────────── */
.hl-card {
  background: var(--hl-surface-mute);
  border: 1px solid var(--hl-border);
  border-radius: 8px;
  overflow: hidden;
  transition: all 240ms cubic-bezier(0.22, 1, 0.36, 1);
}
.hl-card:hover {
  box-shadow: 0 4px 12px rgba(24, 24, 25, 0.10);
  transform: translateY(-2px);
}

/* ── Flat-editorial adjustments to shared components on guest pages ── */
.form-input { border-radius: 4px; }
.card { border-radius: 8px; }

/* Auth hero: Highline photography instead of the SG watermark art.
   shell.css puts the image on .app-hero::before (viewport-fixed cover);
   only the image swaps — the ::after contrast scrim stays. .app-hero is
   only used by guest auth pages. */
.app-hero::before { background-image: url('/static/images/highline/hero-home.webp'); }
