/* The Landing at Caras Park — site styles */

/* ====================================
   BRAND TOKENS
==================================== */
:root {
  /* Fonts */
  --font-heading: 'Cardo', Georgia, 'Times New Roman', serif;
  --font-body: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

  /* Brand colors */
  --color-primary: #173152;
  --color-primary-dark: #0F2239;
  --color-primary-light: #E8EDF3;
  --color-secondary: #EEF2F4;
  --color-accent: #C97E4B;
  --color-accent-dark: #A05D2B;   /* label text: clears AA on white and on the tint */

  /* Neutrals */
  --color-text: #1B2431;
  --color-text-muted: #4E5A69;
  --color-bg: #FFFFFF;
  --color-surface: #EEF2F4;   /* Sterling light blue-grey */
  --color-border: #DCE3E7;
  --color-footer-bg: #173152;
  --color-footer-text: #D7DFE9;

  /* Scrim used over every photograph on this site */
  --scrim: linear-gradient(rgba(15, 34, 57, 0.72), rgba(15, 34, 57, 0.72));
  --scrim-hero: linear-gradient(100deg, rgba(15, 34, 57, 0.90) 0%, rgba(15, 34, 57, 0.82) 42%, rgba(15, 34, 57, 0.46) 100%);
  --scrim-page: linear-gradient(105deg, rgba(15, 34, 57, 0.90) 0%, rgba(15, 34, 57, 0.84) 46%, rgba(15, 34, 57, 0.56) 100%);
  --scrim-center: linear-gradient(rgba(15, 34, 57, 0.46) 0%, rgba(15, 34, 57, 0.58) 48%, rgba(15, 34, 57, 0.84) 100%);
}

/* ====================================
   ROBOT SNACKS — CSS BASELINE
   ====================================
   Engineering hygiene, tokens, and accessibility primitives only.
   Loads on every site, always, verbatim.

   This file is intentionally minimal. The Designer pastes its
   contents into the single shared `styles.css` at the My Website
   root in the Designer Phase, directly after the brand `:root`
   block (colors + fonts) composed from the Site Brief. Paste
   verbatim — do not edit, reorder, or selectively include parts.

   What's here:
   — Reset (box-sizing, image and form control normalization).
   — Layout tokens (spacing scale, container max, section padding,
     radii, shadows, transitions) and the fluid type scale tokens.
   — Base typography defaults: body styling using tokens, headings
     pulling from the type scale, paragraph margins, link colors,
     `text-wrap: balance` on headings and `text-wrap: pretty` on
     body for modern typographic resilience.
   — `.container` as a universal layout primitive.
   — `:focus-visible` outline so keyboard nav is always visible.
   — `prefers-reduced-motion` block so any motion the Designer adds
     respects the user's OS setting.
   — `.visually-hidden` (required by the page_template.html skip link).

   What's NOT here:
   — Buttons. Nav. Footer. Form field styling. Section headers.
     Grid components. Layout splits. Mobile breakpoints for those.
     Scroll-reveal motion. Generic utility classes (text-center,
     bg-surface, bg-primary-light).
   — All component-level styling is the Designer's job, written
     fresh into the site-specific styles section of `styles.css`
     after this baseline. The Designer uses the tokens and the
     type/spacing scales below, plus modern CSS (Grid, Flex,
     `clamp`, `text-wrap`), to build what THIS brand needs.

   Pages link `styles.css` with <link rel="stylesheet" href="styles.css">
   in <head>. Pages contain zero <style> blocks and zero inline
   style="..." attributes — every visual rule lives in styles.css.
==================================== */

/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
img, video { max-width: 100%; height: auto; display: block; }
input, button, textarea, select { font: inherit; }

/* Layout Tokens */
:root {
  --space-1: 0.5rem; --space-2: 1rem; --space-3: 1.5rem;
  --space-4: 2rem; --space-5: 2.5rem; --space-6: 3rem; --space-7: 3.5rem; --space-8: 4rem; --space-12: 6rem;
  --container-max: 1200px;
  --container-padding: clamp(1rem, 5vw, 2rem);
  --section-padding: clamp(3rem, 7vw, 5rem);
  --radius-sm: 4px; --radius-md: 8px; --radius-lg: 16px;
  --radius-xl: 24px; --radius-full: 9999px;
  --transition: all 0.2s ease;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.10);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);
}

/* Typography Scale */
:root {
  --text-xs:   clamp(0.75rem,  1.5vw, 0.875rem);
  --text-sm:   clamp(0.875rem, 2vw,   1rem);
  --text-base: clamp(1rem,     2.5vw, 1.125rem);
  --text-lg:   clamp(1.125rem, 3vw,   1.25rem);
  --text-xl:   clamp(1.25rem,  3.5vw, 1.5rem);
  --text-2xl:  clamp(1.5rem,   4vw,   2rem);
  --text-3xl:  clamp(2rem,     5vw,   2.75rem);
  --text-4xl:  clamp(2.5rem,   6vw,   3.5rem);
}

/* Base body + container */
body { font-family: var(--font-body); font-size: var(--text-base); line-height: 1.7; color: var(--color-text); background: var(--color-bg); }
.container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-padding); }
section { padding: var(--section-padding) 0; }

/* Typography defaults — sensible starting points using the type scale; override per brand */
h1,h2,h3,h4,h5,h6 { font-family: var(--font-heading); line-height: 1.2; font-weight: 700; text-wrap: balance; }
p, li { text-wrap: pretty; }
h1 { font-size: var(--text-4xl); }
h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-2xl); }
h4 { font-size: var(--text-xl); }
p  { margin-bottom: var(--space-2); }
p:last-child { margin-bottom: 0; }
a  { color: var(--color-primary); text-decoration: none; transition: var(--transition); }
a:hover { color: var(--color-primary-dark); }

/* Focus states — visible focus ring on all interactive elements */
:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* Reduced motion — respect user's OS setting */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Skip link visibility — required by page_template.html */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ====================================
   SITE-SPECIFIC STYLES
   The Landing at Caras Park
==================================== */

/* ---- Typographic posture -----------------------------
   Cardo carries the main headings only (h1, h2). It has a small
   x-height and runs narrow, so the sizes below sit above the base
   scale and the tracking stays near neutral. Every other heading
   and every label is Open Sans semibold, which keeps the two
   voices clearly separated. */
h1, h2 { font-weight: 400; letter-spacing: -0.004em; }
h1 { line-height: 1.10; font-size: clamp(2.7rem, 6.4vw, 3.8rem); }
h2 { line-height: 1.16; font-size: clamp(2.1rem, 5.2vw, 2.95rem); }
h3, h4, h5, h6 {
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.3;
}

/* ====================================
   SIGNATURE MOTIF
   Two shapes, both lifted straight off the wordmark:
   1. The angled rule. Every rule in the logo is cut on a forward
      slant, top edge running past the bottom edge. Every rule on
      this site is cut the same way.
   2. The plane mark. The terracotta triangle tucked into the A.
      It is the only arrow this site uses.
==================================== */

/* The angled cut, in the logo's proportion: the slant runs back
   roughly half the rule's height. */
.rule,
.section-eyebrow::before,
.fact::before,
.layout-option::before,
.rule-split::before,
.rule-split::after {
  clip-path: polygon(0 0, 100% 0, calc(100% - 0.5em) 100%, 0 100%);
}

/* The plane mark, apex up, in the logo's 2.2:1 proportion. */
.plane-mark {
  display: inline-block;
  width: 13px;
  height: 6px;
  background: var(--color-accent);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  flex: none;
}
/* Turned to point forward, as a link arrow or a list marker. */
.arrow-mark {
  display: inline-block;
  width: 7px;
  height: 15px;
  background: var(--color-accent);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  flex: none;
  transition: var(--transition);
}

/* The full logo rule: navy run, gap, terracotta run, both cut on the slant. */
.rule-split {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: var(--space-4);
}
.rule-split::before {
  content: "";
  height: 10px;
  font-size: 10px;
  width: clamp(80px, 12vw, 150px);
  background: var(--color-primary);
  flex: none;
}
.rule-split::after {
  content: "";
  height: 10px;
  font-size: 10px;
  flex: 1 1 auto;
  background: var(--color-accent);
}
.on-dark .rule-split::before, .field-navy .rule-split::before { background: #FFFFFF; }

/* Eyebrow: the angled rule in front of a small-caps label */
.section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent-dark);
  margin-bottom: var(--space-2);
}
.section-eyebrow::before {
  content: "";
  width: 34px;
  height: 6px;
  font-size: 6px;
  background: var(--color-accent);
  flex: none;
}
.on-dark .section-eyebrow,
.section-eyebrow.on-dark { color: #E2A277; }
.on-dark .section-eyebrow::before { background: var(--color-accent); }

.lede { font-size: var(--text-lg); color: var(--color-text-muted); line-height: 1.65; max-width: 46ch; }

/* ---- Buttons ------------------------------------------ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  padding: 1em 1.9em;
  border: 2px solid transparent;
  border-radius: 0;
  cursor: pointer;
  transition: var(--transition);
  text-align: center;
}
.btn-primary { background: var(--color-primary); color: #FFFFFF; border-color: var(--color-primary); }
.btn-primary:hover { background: var(--color-primary-dark); border-color: var(--color-primary-dark); color: #FFFFFF; }
.btn-outline { background: transparent; color: var(--color-primary); border-color: var(--color-primary); }
.btn-outline:hover { background: var(--color-primary); color: #FFFFFF; }
.btn-light { background: #FFFFFF; color: var(--color-primary); border-color: #FFFFFF; }
.btn-light:hover { background: var(--color-secondary); border-color: var(--color-secondary); color: var(--color-primary-dark); }
.btn-ghost-light { background: transparent; color: #FFFFFF; border-color: rgba(255,255,255,0.65); }
.btn-ghost-light:hover { background: rgba(255,255,255,0.12); color: #FFFFFF; border-color: #FFFFFF; }
.btn-lg { font-size: var(--text-base); padding: 1.05em 2.2em; }
.btn-sm { font-size: var(--text-xs); padding: 0.75em 1.4em; }
.btn .arrow-mark { width: 6px; height: 12px; background: currentColor; }
.btn:hover .arrow-mark { transform: translateX(4px); }

/* Text link carrying the plane mark and an angled underline */
.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-primary);
  padding-bottom: 0.4em;
  position: relative;
}
.link-arrow::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%;
  height: 5px;
  font-size: 5px;
  background: var(--color-accent);
  clip-path: polygon(0 0, 100% 0, calc(100% - 0.5em) 100%, 0 100%);
}
.link-arrow:hover .arrow-mark { transform: translateX(4px); }
.on-dark .link-arrow { color: #FFFFFF; }
.on-dark .link-arrow:hover { color: var(--color-secondary); }

.link-row { margin-top: var(--space-4); }

/* ---- Navigation --------------------------------------- */
/* Logo is navy and terracotta on transparent, so the nav ground stays
   paper-light. No transparent-over-hero state on this build. */
.site-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
}
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: 84px;
}
.nav-logo { display: inline-flex; align-items: center; }
.nav-logo img { height: 42px; width: auto; }
.nav-links {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  list-style: none;
}
.nav-links a:not(.btn) {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--color-text);
  padding-bottom: 5px;
  position: relative;
}
.nav-links a:not(.btn)::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%;
  height: 4px;
  font-size: 4px;
  background: var(--color-accent);
  clip-path: polygon(0 0, 100% 0, calc(100% - 0.5em) 100%, 0 100%);
  opacity: 0;
  transition: var(--transition);
}
.nav-links a:not(.btn):hover::after,
.nav-links a[aria-current="page"]::after { opacity: 1; }
.nav-links a:not(.btn):hover { color: var(--color-primary); }
.nav-links .btn { padding-left: 1.7em; padding-right: 1.7em; }

.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  background: none;
  border: 0;
  cursor: pointer;
}
.nav-toggle span {
  display: block;
  height: 3px;
  width: 26px;
  font-size: 3px;
  background: var(--color-primary);
  clip-path: polygon(0 0, 100% 0, calc(100% - 0.5em) 100%, 0 100%);
  transition: var(--transition);
}

@media (max-width: 880px) {
  .nav-inner { min-height: 70px; }
  .nav-logo img { height: 34px; }
  .nav-toggle { display: flex; }
  .nav-links {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
    padding: var(--space-2) var(--container-padding) var(--space-4);
    display: none;
  }
  .nav-links.open { display: flex; }
  .nav-links li { border-top: 1px solid var(--color-border); }
  .nav-links li:last-child { border-top: 0; padding-top: var(--space-3); }
  .nav-links a:not(.btn) { display: block; padding: var(--space-2) 0; font-size: var(--text-base); }
  .nav-links a:not(.btn)::after { display: none; }
  .nav-links .btn { width: 100%; justify-content: center; }
}

/* ---- Hero --------------------------------------------- */
.hero {
  position: relative;
  padding: clamp(4.5rem, 12vw, 9rem) 0 clamp(6rem, 12vw, 9rem);
  background-color: var(--color-primary-dark);
  background-image: var(--scrim-hero), url('My Photos and Logo/Event Space Conference Table with Bar-web.jpg');
  background-size: cover;
  background-position: center 58%;
  color: #FFFFFF;
}
.hero-inner { max-width: 46rem; }
.hero h1 { color: #FFFFFF; font-size: clamp(2.4rem, 6vw, 4rem); margin-bottom: var(--space-3); }
.hero p {
  font-size: var(--text-lg);
  color: rgba(255,255,255,0.92);
  max-width: 40rem;
  margin-bottom: var(--space-5);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }

/* Photo + wordmark only. The headline lives in the navy panel below,
   which lifts up over the bottom of the photograph. */
.hero-photo {
  display: flex;
  align-items: center;
  min-height: clamp(560px, 78vh, 840px);
  padding: clamp(4rem, 10vw, 7rem) 0 clamp(8.5rem, 16vw, 12rem);
  background-image: var(--scrim-center), url('My Photos and Logo/Event Space Conference Table with Bar-web.jpg');
  background-position: center 52%;
  text-align: center;
}
.hero-photo > .container { width: 100%; }
.hero-logo { width: min(580px, 84vw); height: auto; margin: 0 auto; }

/* The navy panel: headline on the left, the ask on the right. */
.hero-panel-wrap { padding: 0; }
.hero-panel {
  background: var(--color-primary);
  color: #FFFFFF;
  position: relative;
  z-index: 2;
  margin-top: clamp(-7rem, -9vw, -4.5rem);
  padding: clamp(2rem, 4.5vw, 3.5rem) clamp(1.5rem, 4vw, 3.5rem);
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
  box-shadow: var(--shadow-lg);
}
.hero-panel h1 {
  color: #FFFFFF;
  font-size: clamp(2.05rem, 3.8vw, 3.05rem);
  margin: 0;
}
.hero-panel .section-eyebrow { color: #E2A277; }
.hero-panel p {
  color: rgba(255,255,255,0.88);
  font-size: var(--text-base);
  margin-bottom: var(--space-4);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
@media (max-width: 880px) {
  .hero-panel { grid-template-columns: 1fr; margin-top: -3.5rem; gap: var(--space-4); }
}
@media (max-width: 680px) {
  .hero-panel .section-eyebrow { flex-direction: column; align-items: flex-start; gap: 0.7rem; }
  .cta-band .section-eyebrow { flex-direction: column; gap: 0.7rem; }
  .hero-actions .btn { width: 100%; justify-content: center; }
}

/* Inner page hero: solid navy, or a photograph under the same scrim */
.page-hero {
  background: var(--color-primary);
  color: #FFFFFF;
  padding: clamp(3.5rem, 8vw, 6rem) 0 clamp(3.5rem, 8vw, 5.5rem);
}
.page-hero-photo {
  background-color: var(--color-primary-dark);
  background-size: cover;
  background-position: center 58%;
  padding: clamp(5rem, 11vw, 8.5rem) 0 clamp(5rem, 11vw, 8rem);
}
.page-hero-interior { background-image: var(--scrim-page), url('My Photos and Logo/Event Space Breakout Rooms with Accent Walls-web.jpg'); }
.page-hero-exterior { background-image: var(--scrim-page), url('My Photos and Logo/269 West Front Exterior-web.jpg'); }
.page-hero h1 { color: #FFFFFF; max-width: 20ch; margin-bottom: var(--space-3); }
.page-hero p { color: rgba(255,255,255,0.88); font-size: var(--text-lg); max-width: 52ch; }

/* ---- Facts row, on the paper ground under the panel --- */
.facts-row { padding: clamp(2.75rem, 5vw, 4rem) 0; }
.facts-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: clamp(1.25rem, 3vw, 2.5rem);
}
.fact { display: flex; flex-direction: column; gap: 0.5rem; }
.fact::before {
  content: "";
  width: 30px;
  height: 6px;
  font-size: 6px;
  background: var(--color-accent);
  flex: none;
  margin-bottom: 0.2rem;
}
.fact-value {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.2;
}
.fact-label {
  font-size: var(--text-xs);
  letter-spacing: 0.02em;
  color: var(--color-text-muted);
  line-height: 1.5;
}
@media (max-width: 980px) { .facts-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-4); } }
@media (max-width: 520px) { .facts-grid { grid-template-columns: 1fr; } }

/* ---- Section headers and fields ------------------------ */
.field-cream { background: var(--color-surface); }
.field-navy { background: var(--color-primary); color: #FFFFFF; }
.field-navy h2, .field-navy h3 { color: #FFFFFF; }
.field-navy p { color: rgba(255,255,255,0.88); }

.section-header { max-width: 40rem; margin-bottom: var(--space-6); }
.section-header-wide { max-width: none; }
.section-header-wide h2 { max-width: 36ch; }
.section-header h2 { margin-bottom: var(--space-2); }
.section-header p { color: var(--color-text-muted); font-size: var(--text-lg); }
.field-navy .section-header p { color: rgba(255,255,255,0.88); }

/* ---- Prose column -------------------------------------- */
.prose { max-width: 40rem; }
.prose p + p { margin-top: var(--space-2); }
.prose p { margin-bottom: 0; }

/* ---- Split: text beside an image ----------------------- */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}
.media-frame { position: relative; }
.media-frame img { width: 100%; height: auto; }
.split-media figcaption {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-top: var(--space-2);
  letter-spacing: 0.01em;
}
.field-navy .split-media figcaption, .on-dark .split-media figcaption { color: rgba(255,255,255,0.7); }
.split-reverse .split-body { order: 2; }
@media (max-width: 860px) {
  .split { grid-template-columns: 1fr; gap: var(--space-5); }
  .split-reverse .split-body { order: 0; }
}

/* ---- Use-case rows ------------------------------------
   Number, title and text sit on one line so the row reaches the
   full width of the rule above it, the way an editorial table does. */
.usecases { display: flex; flex-direction: column; gap: var(--space-5); }
.usecase {
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 0.85fr) minmax(0, 1.4fr);
  gap: var(--space-4);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-border);
  align-items: start;
}
.usecase-number {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: 400;
  color: var(--color-accent);
  line-height: 1;
  padding-top: 0.05em;
}
.usecase h3 { font-size: var(--text-xl); margin: 0; }
.usecase p { color: var(--color-text-muted); }
@media (max-width: 900px) {
  .usecase { grid-template-columns: 3rem minmax(0, 1fr); }
  .usecase p { grid-column: 2; margin-top: var(--space-1); }
}
@media (max-width: 620px) {
  .usecase { grid-template-columns: 1fr; gap: var(--space-1); }
  .usecase p { grid-column: 1; }
}

/* ---- Steps (three, even at every breakpoint) ----------- */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 4vw, 3rem); }
.step { position: relative; }
.step-index {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent-dark);
  display: block;
  margin-bottom: var(--space-1);
}
.field-navy .step-index { color: #E2A277; }
.step h3 { font-size: var(--text-xl); margin-bottom: var(--space-1); }
.step p { color: var(--color-text-muted); font-size: var(--text-sm); }
.field-navy .step p { color: rgba(255,255,255,0.86); }
@media (max-width: 780px) { .steps { grid-template-columns: 1fr; } }

/* ---- Full-bleed photo section with the same scrim ------ */
.photo-band {
  position: relative;
  background-color: var(--color-primary-dark);
  background-size: cover;
  background-position: center;
  color: #FFFFFF;
  padding: clamp(4rem, 10vw, 7rem) 0;
}
.photo-band-evening { background-image: var(--scrim), url('My Photos and Logo/Event Space Breakout Rooms with Accent Walls-web.jpg'); }
.photo-band-ceiling { background-image: var(--scrim), url('My Photos and Logo/Event Space Exposed Ceiling-web.jpg'); }
.photo-band-exterior { background-image: var(--scrim), url('My Photos and Logo/269 West Front Exterior-web.jpg'); }
.photo-band-doors   { background-image: var(--scrim), url('My Photos and Logo/Event Space Breakout Rooms-web.jpg'); }
.photo-band h2 { color: #FFFFFF; }
.photo-band p { color: rgba(255,255,255,0.9); }
.photo-band .prose { max-width: 42rem; }

/* ---- Amenity lists ------------------------------------- */
.amenities { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-2) var(--space-4); margin-top: var(--space-5); }
.amenities li {
  display: grid;
  grid-template-columns: 1.1rem 1fr;
  gap: 0.7rem;
  align-items: start;
  font-size: var(--text-sm);
  line-height: 1.55;
}
.amenities li::before {
  content: "";
  width: 6px;
  height: 13px;
  background: var(--color-accent);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  margin-top: 0.42em;
}
@media (max-width: 720px) { .amenities { grid-template-columns: 1fr; } }

/* ---- Layout options (three, even at every breakpoint) --- */
.layouts { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.25rem, 2.5vw, 2rem); }
.layout-option { background: var(--color-bg); border: 1px solid var(--color-border); padding: var(--space-4); position: relative; }
.layout-option::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 78px;
  height: 8px;
  font-size: 8px;
  background: var(--color-accent);
}
.layout-option h3 { font-size: var(--text-lg); margin-bottom: var(--space-1); margin-top: var(--space-2); }
.layout-option p { font-size: var(--text-sm); color: var(--color-text-muted); }
@media (max-width: 1080px) { .layouts { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .layouts { grid-template-columns: 1fr; } }

/* ---- Detail list (address, parking, contact) ----------- */
.detail-list { list-style: none; display: grid; gap: var(--space-3); margin-top: var(--space-4); }
.detail-list li { display: grid; grid-template-columns: 1.4rem 1fr; gap: var(--space-1); align-items: start; }
.detail-list li::before {
  content: "";
  width: 6px;
  height: 13px;
  background: var(--color-accent);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  margin-top: 0.55em;
}
.detail-label {
  display: block;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.field-navy .detail-label, .photo-band .detail-label { color: rgba(255,255,255,0.72); }
.detail-value { font-size: var(--text-base); }

/* ---- Map ----------------------------------------------- */
.map-frame { position: relative; }
.map-frame iframe {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 0;
}
@media (max-width: 860px) {
  .map-frame iframe { aspect-ratio: 3 / 2; }
}

/* ---- Nearby ------------------------------------------- */
.nearby-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.75rem, 4vw, 3.5rem);
  margin-top: var(--space-5);
}
.nearby-group h3 { font-size: var(--text-base); margin-bottom: var(--space-2); }
.nearby-group ul { list-style: none; display: grid; gap: 0.45rem; }
.nearby-group li {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  display: grid;
  grid-template-columns: 0.9rem 1fr;
  gap: 0.6rem;
  align-items: start;
}
.nearby-group li::before {
  content: "";
  width: 5px;
  height: 11px;
  background: var(--color-accent);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  margin-top: 0.52em;
}
@media (max-width: 780px) { .nearby-grid { grid-template-columns: 1fr; gap: var(--space-4); } }

/* ---- FAQ ----------------------------------------------- */
.faq-list { max-width: 52rem; }
.faq-list details {
  border-top: 1px solid var(--color-border);
  padding: var(--space-3) 0;
}
.faq-list details:last-of-type { border-bottom: 1px solid var(--color-border); }
.faq-list summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  cursor: pointer;
  list-style: none;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.35;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after {
  content: "";
  width: 14px;
  height: 7px;
  background: var(--color-accent);
  clip-path: polygon(50% 100%, 100% 0, 0 0);
  flex: none;
  margin-top: 0.6em;
  transition: var(--transition);
}
.faq-list details[open] summary::after { clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.faq-list details p { margin-top: var(--space-2); color: var(--color-text-muted); max-width: 62ch; }

/* ---- Sterling group logos ------------------------------ */
.sterling-band { background: var(--color-primary-dark); padding: var(--space-6) 0; }
.sterling-inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); text-align: center; }
.sterling-inner p {
  font-size: var(--text-xs);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  font-weight: 600;
}
.sterling-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(2rem, 6vw, 4.5rem); }
.sterling-logos img { height: 34px; width: auto; opacity: 0.9; }
@media (max-width: 620px) { .sterling-logos img { height: 26px; } }

/* ---- CTA band ------------------------------------------ */
.cta-band {
  background-color: var(--color-primary-dark);
  background-image: var(--scrim), url('My Photos and Logo/Event Space Exposed Ceiling-web.jpg');
  background-size: cover;
  background-position: center;
  color: #FFFFFF;
  padding: clamp(4rem, 10vw, 6.5rem) 0;
  text-align: center;
}
.cta-band-exterior { background-image: var(--scrim), url('My Photos and Logo/269 West Front Exterior-web.jpg'); }
.cta-band h2 { color: #FFFFFF; margin-bottom: var(--space-2); }
.cta-band p { color: rgba(255,255,255,0.9); max-width: 40rem; margin: 0 auto var(--space-5); }
.cta-band .section-eyebrow { color: #E2A277; justify-content: center; }

/* ---- Inquiry form area --------------------------------- */
.form-panel {
  background: #FFFFFF;
  border: 1px solid var(--color-border);
  padding: clamp(1.5rem, 4vw, 3.25rem);
  box-shadow: var(--shadow-md);
  max-width: 820px;
  margin: 0 auto;
}
.form-panel .cognito { width: 100%; }
.inquire-intro { max-width: 640px; margin: 0 auto var(--space-6); text-align: center; }
.inquire-intro .section-eyebrow { justify-content: center; }
.inquire-intro .prose { max-width: none; }
.inquire-details {
  max-width: 820px;
  margin: var(--space-6) auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
.inquire-details .detail-list { margin-top: 0; }
@media (max-width: 780px) { .inquire-details { grid-template-columns: 1fr; gap: var(--space-2); } }

/* ---- Footer -------------------------------------------- */
footer {
  background: var(--color-footer-bg);
  color: var(--color-footer-text);
  padding: var(--space-8) 0 var(--space-4);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1.2fr;
  gap: clamp(2rem, 5vw, 4rem);
  padding-bottom: var(--space-6);
}
.footer-brand .nav-logo img { height: 44px; margin-bottom: var(--space-3); }
.footer-brand p { color: rgba(255,255,255,0.78); font-size: var(--text-sm); max-width: 34ch; }
.footer-note { color: rgba(255,255,255,0.55); font-size: var(--text-xs); margin-top: var(--space-2); }
.footer-heading {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #FFFFFF;
  margin-bottom: var(--space-3);
}
.footer-links { list-style: none; display: grid; gap: var(--space-2); }
.footer-links li, .footer-links a { font-size: var(--text-sm); color: rgba(255,255,255,0.78); }
.footer-links a:hover { color: #FFFFFF; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.16);
  padding-top: var(--space-3);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-2);
  font-size: var(--text-xs);
  color: rgba(255,255,255,0.6);
}
.footer-bottom a { color: rgba(255,255,255,0.78); }
.footer-bottom a:hover { color: #FFFFFF; }
@media (max-width: 860px) {
  .footer-grid { grid-template-columns: 1fr; gap: var(--space-5); }
}

/* ---- Scroll reveal -------------------------------------
   Restrained on purpose: a short rise and fade, plus the eyebrow's
   angled rule drawing itself in. The hiding only happens once the
   script has added .js-reveal to <html>, so with JavaScript off
   every word is still on the page. */
.js-reveal .reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.24, 1),
              transform 0.7s cubic-bezier(0.22, 0.61, 0.24, 1);
}
.js-reveal .reveal.in-view { opacity: 1; transform: none; }

/* The motif animates too: the angled rule draws out from the left. */
.js-reveal .reveal .section-eyebrow::before,
.js-reveal .reveal.section-eyebrow::before { width: 0; transition: width 0.55s cubic-bezier(0.22, 0.61, 0.24, 1) 0.18s; }
.js-reveal .reveal.in-view .section-eyebrow::before,
.js-reveal .reveal.in-view.section-eyebrow::before { width: 34px; }

/* Sets of sibling items come in one after another rather than all at once. */
.js-reveal .fact:nth-child(2),
.js-reveal .usecase:nth-child(2),
.js-reveal .step:nth-child(2),
.js-reveal .layout-option:nth-child(2),
.js-reveal .nearby-group:nth-child(2) { transition-delay: 0.09s; }
.js-reveal .fact:nth-child(3),
.js-reveal .usecase:nth-child(3),
.js-reveal .step:nth-child(3),
.js-reveal .layout-option:nth-child(3),
.js-reveal .nearby-group:nth-child(3) { transition-delay: 0.18s; }
.js-reveal .fact:nth-child(4),
.js-reveal .layout-option:nth-child(4) { transition-delay: 0.27s; }
.js-reveal .fact:nth-child(5) { transition-delay: 0.36s; }

/* The image in a split arrives just behind its text. */
.js-reveal .split-media.reveal { transition-delay: 0.12s; }

@media (prefers-reduced-motion: reduce) {
  .js-reveal .reveal { opacity: 1; transform: none; }
  .js-reveal .reveal .section-eyebrow::before,
  .js-reveal .reveal.section-eyebrow::before { width: 34px; }
}

/* ---- Cookie consent banner ----------------------------- */
.cookie-banner {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--color-footer-bg);
  color: var(--color-footer-text);
  padding: var(--space-4) var(--space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  z-index: 999;
  font-size: var(--text-sm);
}
.cookie-banner p { margin: 0; }
@media (max-width: 600px) {
  .cookie-banner { flex-direction: column; align-items: flex-start; }
}
