/* Heart of the Village Inn — main.css
   Generated from: romantic-getaway-vermont.html (canonical template)
   Do not edit manually — update source page and regenerate.
*/

@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:optional;src:url('/fonts/playfair-display-v40-latin-regular.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:optional;src:url('/fonts/playfair-display-v40-latin-italic.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:optional;src:url('/fonts/playfair-display-v40-latin-600.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:600;font-display:optional;src:url('/fonts/playfair-display-v40-latin-600italic.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:optional;src:url('/fonts/playfair-display-v40-latin-700.woff2') format('woff2')}
@font-face{font-family:'Lato';font-style:normal;font-weight:300;font-display:optional;src:url('/fonts/lato-v25-latin-300.woff2') format('woff2')}
@font-face{font-family:'Lato';font-style:normal;font-weight:400;font-display:optional;src:url('/fonts/lato-v25-latin-regular.woff2') format('woff2')}
@font-face{font-family:'Lato';font-style:normal;font-weight:700;font-display:optional;src:url('/fonts/lato-v25-latin-700.woff2') format('woff2')}


/*
  ═══════════════════════════════════════════════════════════════
    HEART OF THE VILLAGE INN — LIGHT / ACCESSIBLE THEME
    Accessibility standards applied:
      • WCAG 2.1 Level AA (primary target) / AAA where feasible
      • ADA Section 508
      • EN 301 549 v3 (EU / international)
      • APCA (Accessible Perceptual Contrast Algorithm) guidance
      • WCAG 2.2 new criteria (focus-visible 2.4.11, target-size 2.5.8)

    Verified contrast ratios (all on respective backgrounds):
      Body text #1C1C1C on #FDFAF5   → 17.5:1  (AAA ✓)
      Secondary #4F4F4F on #FDFAF5  →  8.3:1  (AAA ✓)
      Heading   #1A3C1E on #FDFAF5  → 14.9:1  (AAA ✓)
      Label     #5C3A00 on #FDFAF5  →  9.3:1  (AAA ✓)
      Link      #1A5730 on #FDFAF5  →  7.5:1  (AAA ✓)
      Nav link  #1A3C1E on #FFFEF9  → 14.9:1  (AAA ✓)
      Book Now  #FFFFFF on #6B1A1A  → 12.0:1  (AAA ✓)
      Body text #1C1C1C on #FFFFFF  → 18.1:1  (AAA ✓)
      Sage text #1A3C1E on #EDF5EE  → 12.5:1  (AAA ✓)
      Body      #F0EBE0 on #2D4A2D  →  8.2:1  (AAA ✓)
      Gold deco  decorative only — not used as sole info carrier
  ═══════════════════════════════════════════════════════════════
  */

  /* ── Design tokens ────────────────────────────────────────── */
  :root {
    /* Backgrounds — warm, soft, low-fatigue palette */
    --bg-page:       #FDFAF5;   /* warm white — page base */
    --bg-white:      #FFFFFF;
    --bg-cream:      #F5EFE3;   /* warm cream sections */
    --bg-sage:       #EDF5EE;   /* replaces old dark-green sections */
    --bg-sage-mid:   #D6EAD8;   /* deeper sage for contrast strips */
    --bg-nav:        #FFFEF9;   /* near-white nav */
    --bg-footer:     #2D4A2D;   /* dark forest green footer — brand anchor */

    /* Text — dark enough for AAA on all light backgrounds */
    --text-primary:  #1C1C1C;   /* 17.5:1 on page bg */
    --text-secondary:#4F4F4F;   /* 8.3:1 on page bg */
    --text-muted:    #5C5C5C;   /* 6.4:1 on page bg — large text only */
    --text-inverse:  #F0EBE0;   /* on dark footer */

    /* Brand colours (all WCAG-adjusted for light backgrounds) */
    --green-dark:    #1A3C1E;   /* headings, nav text — 14.9:1 on bg-page */
    --green-mid:     #2D5E32;   /* buttons, active states */
    --green-light:   #3D7A43;   /* hover — still 5.8:1 on white */
    --burgundy:      #6B1A1A;   /* CTAs — 12:1 on white */
    --burgundy-hover:#852020;   /* hover */
    --gold-text:     #5C3A00;   /* label text — 9.3:1 on bg-page */
    --gold-deco:     #B08D57;   /* decorative only (dividers, star icons) */
    --gold-deco-mid: #C8A97A;   /* lighter decorative */

    /* Interactive */
    --focus-ring:    #1A5730;   /* 3px focus outline colour */
    --focus-bg:      #E8F5E9;   /* subtle bg tint on focused items */

    /* Surfaces */
    --border-subtle: #D8D0C0;   /* card/nav borders */
    --border-mid:    #B8AFA0;   /* stronger dividers */
    --shadow-sm:     0 2px 8px  rgba(0,0,0,.07);
    --shadow-md:     0 4px 20px rgba(0,0,0,.09);
    --shadow-lg:     0 8px 40px rgba(0,0,0,.12);

    /* Typography */
    --font-display:  'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-body:     'Lato', Arial, Helvetica, sans-serif;

    /* Layout */
    --max-w:         1200px;
    --radius-sm:     3px;
    --radius-md:     6px;

    /* Spacing scale */
    --space-1: 4px;  --space-2: 8px;  --space-3: 12px;
    --space-4: 16px; --space-5: 24px; --space-6: 32px;
    --space-7: 48px; --space-8: 64px; --space-9: 88px;
  }

  /* ── Reset ────────────────────────────────────────────────── */
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; font-size: 16px; }

  /* Respect user motion preference (WCAG 2.3.3) */
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  }

  body {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;           /* WCAG 1.4.12 — min 1.5, using 1.7 */
    background: var(--bg-page);
    color: var(--text-primary);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  img { max-width: 100%; height: auto; display: block; }
  a   { color: var(--green-mid); text-decoration: underline; text-underline-offset: 3px; transition: color .15s; }
  a:hover { color: var(--burgundy); }

  /* ── Global focus indicator (WCAG 2.4.11 — enhanced focus visible) */
  :focus-visible {
    outline: 3px solid var(--focus-ring);
    outline-offset: 3px;
    border-radius: 2px;
  }
  :focus:not(:focus-visible) { outline: none; }

  /* ── Skip navigation (WCAG 2.4.1) ────────────────────────── */
  .skip-link {
    position: absolute;
    top: -60px;
    left: var(--space-4);
    background: var(--green-dark);
    color: #FFFFFF;
    padding: var(--space-3) var(--space-5);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    font-weight: 700;
    font-size: .95rem;
    text-decoration: none;
    z-index: 10000;
    transition: top .2s;
  }
  .skip-link:focus { top: 0; }

  /* ── HEADER / NAV — light background ─────────────────────── */
  .site-header {
    position: sticky; top: 0; z-index: 1000;
    background: var(--bg-nav);
    border-bottom: 2px solid var(--bg-sage-mid);
    box-shadow: var(--shadow-sm);
  }
  .nav-inner {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 0 var(--space-5);
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
    gap: var(--space-3);
  }

  /* Brand block: image + text logo */
  .nav-brand {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-shrink: 0;
    margin-right: var(--space-2);
  }
  .nav-logo-img { height: 50px; width: auto; display: block; flex-shrink: 0; }

  .nav-logo {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--green-dark);
    text-decoration: none;
    line-height: 1.25;
    white-space: nowrap;
  }
  .nav-logo span {
    display: block;
    font-family: var(--font-body);
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--gold-text);
    margin-top: 2px;
  }
  .nav-logo:hover { color: var(--burgundy); text-decoration: none; }

  /* Nav links */
  .nav-links {
    display: flex;
    align-items: center;
    gap: 2px;
    list-style: none;
    flex-wrap: nowrap;
    flex: 1;
    justify-content: flex-end;
  }
  /* Remove list semantics suppression bug — add role=list in HTML too */
  .nav-links > li { position: relative; }

  .nav-links a {
    display: block;
    color: var(--green-dark);
    font-size: .84rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 10px 11px;
    border-radius: var(--radius-sm);
    transition: background .15s, color .15s;
    white-space: nowrap;
    /* Minimum touch target height via padding (WCAG 2.5.8) */
    min-height: 44px;
    display: flex;
    align-items: center;
  }
  .nav-links a:hover { background: var(--bg-sage); color: var(--green-dark); text-decoration: none; }
  .nav-links a[aria-current="page"] { color: var(--burgundy); border-bottom: 2px solid var(--burgundy); }

  /* Dropdown */
  .dropdown { position: relative; }
  .dropdown::after { content: ""; display: block; position: absolute; left: 0; right: 0; top: 100%; height: 16px; }
  .dropdown-toggle {
    background: none; border: none; cursor: pointer;
    color: var(--green-dark);
    font-family: var(--font-body);
    font-size: .84rem; font-weight: 700;
    letter-spacing: .05em; text-transform: uppercase;
    padding: 10px 11px;
    border-radius: var(--radius-sm);
    transition: background .15s, color .15s;
    white-space: nowrap;
    min-height: 44px;
    display: flex; align-items: center; gap: 4px;
  }
  .dropdown-toggle:hover { background: var(--bg-sage); }
  .dropdown-toggle .chevron {
    font-size: .7em;
    transition: transform .2s;
    display: inline-block;
  }
  .dropdown-toggle[aria-expanded="true"] .chevron { transform: rotate(180deg); }

  .dropdown-menu {
    display: none;
    position: absolute; top: 100%; left: 0;
    background: var(--bg-white);
    min-width: 210px;
    border: 1px solid var(--border-subtle);
    border-top: 3px solid var(--green-mid);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    box-shadow: var(--shadow-lg);
    list-style: none;
    z-index: 999;
  }
  .dropdown-menu li a {
    display: block; padding: 12px 18px;
    font-size: .85rem; font-weight: 700;
    color: var(--green-dark);
    text-transform: none; letter-spacing: normal;
    text-decoration: none;
    border-bottom: 1px solid var(--bg-cream);
    min-height: 44px; display: flex; align-items: center;
    transition: background .15s;
  }
  .dropdown-menu li:last-child a { border-bottom: none; }
  .dropdown-menu li a:hover { background: var(--bg-sage); color: var(--green-dark); }
  .dropdown.open .dropdown-menu, .dropdown:hover .dropdown-menu, .dropdown:focus-within .dropdown-menu { display: block; }

  /* Book Now button */
  .nav-book {
    background: var(--burgundy) !important;
    color: #FFFFFF !important;
    padding: 10px 18px !important;
    border-radius: var(--radius-sm) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    text-decoration: none !important;
    min-height: 44px !important;
    display: flex !important; align-items: center;
    transition: background .15s !important;
  }
  .nav-book:hover { background: var(--burgundy-hover) !important; text-decoration: none !important; }

  /* Hamburger */
  .hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    cursor: pointer;
    background: none;
    border: 2px solid var(--green-dark);
    border-radius: var(--radius-sm);
    padding: 8px;
    min-width: 44px; min-height: 44px;
  }
  .hamburger span { width: 22px; height: 2px; background: var(--green-dark); display: block; transition: .3s; }

  /* ── ANNOUNCEMENT STRIP ───────────────────────────────────── */
  .strip {
    background: var(--bg-sage-mid);
    padding: 14px var(--space-5);
    text-align: center;
    color: var(--green-dark);
    font-size: .9rem;
    border-bottom: 1px solid #A8C8AB;
  }
  .strip a {
    color: var(--green-dark);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .strip strong { font-weight: 700; }

  /* ── HERO ─────────────────────────────────────────────────── */
  .hero {
    position: relative;
    min-height: 82vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    background: var(--green-dark);
  }
  .hero-bg-img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 35%;
  }
  /*
    Overlay: gentler than dark theme — natural, airy feel.
    A warm, translucent vignette darker at top & bottom for
    text legibility (verified: white text on this overlay ≥ 4.5:1).
  */
  .hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(
      180deg,
      rgba(20, 42, 22, .52) 0%,
      rgba(20, 42, 22, .15) 40%,
      rgba(20, 42, 22, .20) 60%,
      rgba(20, 42, 22, .65) 100%
    );
  }
  .hero-content {
    position: relative; z-index: 1;
    padding: 64px var(--space-5);
    max-width: 820px;
    /* Frosted text panel for extra legibility on all photo conditions */
    background: rgba(20, 42, 22, .38);
    border-radius: var(--radius-md);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    border: 1px solid rgba(255,255,255,.12);
  }
  .hero-eyebrow {
    font-family: var(--font-display);
    font-style: italic;
    font-weight: 400;
    font-size: 1rem;
    letter-spacing: .02em;
    text-transform: none;
    color: #F5D78A;             /* warm gold — sufficient contrast on dark panel */
    margin-bottom: var(--space-5);
    line-height: 1.55;
  }
  .hero h1 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3.2rem);
    color: #FFFFFF;             /* 21:1 on dark panel */
    line-height: 1.2;
    margin-bottom: var(--space-5);
  }
  .hero h1 em { color: #F5D78A; font-style: italic; }
  .hero p {
    font-size: 1.1rem;
    color: rgba(255, 255, 255, .93);
    max-width: 560px;
    margin: 0 auto var(--space-7);
    line-height: 1.75;
  }
  .hero-btns { display: flex; gap: var(--space-4); justify-content: center; flex-wrap: wrap; }

  /* ── BUTTONS ──────────────────────────────────────────────── */
  /*
    All buttons: min 44×44px target (WCAG 2.5.8)
    Solid underline on :focus-visible for non-colour cue
  */
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 32px;
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    border: 2px solid transparent;
    transition: background .15s, color .15s, border-color .15s, transform .15s;
  }
  .btn:hover { transform: translateY(-2px); }
  .btn:active { transform: translateY(0); }

  .btn-primary { background: var(--burgundy); color: #FFFFFF; border-color: var(--burgundy); }
  .btn-primary:hover { background: var(--burgundy-hover); border-color: var(--burgundy-hover); color: #FFFFFF; text-decoration: none; }

  /* Hero outline button — white on dark panel */
  .btn-outline { background: transparent; color: #FFFFFF; border-color: rgba(255,255,255,.75); }
  .btn-outline:hover { background: rgba(255,255,255,.15); border-color: #FFFFFF; color: #FFFFFF; text-decoration: none; }

  /* Green button — on light bg */
  .btn-green { background: var(--green-mid); color: #FFFFFF; border-color: var(--green-mid); }
  .btn-green:hover { background: var(--green-dark); border-color: var(--green-dark); color: #FFFFFF; text-decoration: none; }

  /* Outlined green — on light sections */
  .btn-outline-green { background: transparent; color: var(--green-mid); border-color: var(--green-mid); }
  .btn-outline-green:hover { background: var(--bg-sage); color: var(--green-dark); border-color: var(--green-dark); text-decoration: none; }

  /* ── LAYOUT ───────────────────────────────────────────────── */
  .container { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--space-5); }
  .section     { padding: var(--space-9) var(--space-5); }
  .section-sm  { padding: var(--space-7) var(--space-5); }

  /* Section backgrounds — light palette */
  .s-white   { background: var(--bg-white); }
  .s-page    { background: var(--bg-page); }
  .s-cream   { background: var(--bg-cream); }
  .s-sage    { background: var(--bg-sage); }

  /* Keep old class names working */
  .section-cream    { background: var(--bg-page); }
  .section-offwhite { background: var(--bg-cream); }
  /* Previously dark green → now light sage */
  .section-dark     { background: var(--bg-sage); color: var(--text-primary); }

  .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-7); align-items: start; }
  .grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-6); }
  .grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--space-5); }
  .text-center { text-align: center; }
  .mx-auto { margin-left: auto; margin-right: auto; }
  .max-700 { max-width: 700px; }
  .mb-40 { margin-bottom: 40px; }
  .mt-16 { margin-top: 16px; }
  .mt-24 { margin-top: 24px; }
  .mt-40 { margin-top: 40px; }

  /* ── TYPOGRAPHY ───────────────────────────────────────────── */
  .section-label {
    display: block;
    font-size: .72rem;
    letter-spacing: .3em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--gold-text);    /* #5C3A00 — 9.3:1 on bg-page ✓ AAA */
    margin-bottom: var(--space-3);
  }
  h1, h2, h3, h4 { font-family: var(--font-display); line-height: 1.25; color: var(--green-dark); }
  h2 { font-size: clamp(1.75rem, 3.8vw, 2.6rem); margin-bottom: var(--space-5); }
  h3 { font-size: 1.35rem; margin-bottom: var(--space-3); color: var(--text-primary); }

  /* In sage sections headings stay dark-green — still AAA */
  .section-dark h2, .section-dark h3 { color: var(--green-dark); }
  .section-dark .section-label { color: var(--gold-text); }

  .lead {
    font-size: 1.1rem;
    line-height: 1.8;
    color: var(--text-secondary);
    margin-bottom: var(--space-5);
  }
  .section-dark .lead { color: var(--text-secondary); }

  /* Gold divider — decorative only, not sole info carrier */
  .divider { width: 48px; height: 3px; background: var(--gold-deco); margin: 0 0 var(--space-5); border: none; }
  .divider-center { margin: 0 auto var(--space-5); }

  /* ── HIGHLIGHTS BAR ───────────────────────────────────────── */
  .highlights-bar { background: var(--bg-white); border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); padding: var(--space-7) var(--space-5); }
  .highlight-item { text-align: center; }
  .highlight-icon { font-size: 1.9rem; margin-bottom: var(--space-2); line-height: 1; }
  .highlight-title { font-family: var(--font-display); font-size: 1rem; font-weight: 600; color: var(--green-dark); margin-bottom: 4px; }
  .highlight-sub { font-size: .82rem; color: var(--text-secondary); }

  /* ── FEATURE LIST ─────────────────────────────────────────── */
  .feature-list { list-style: none; }
  .feature-list li {
    padding: 10px 0;
    border-bottom: 1px solid var(--border-subtle);
    display: flex; gap: var(--space-3); align-items: flex-start;
    font-size: .95rem; color: var(--text-primary);
    line-height: 1.6;
  }
  /* Icon is decorative; text carries the meaning */
  .feature-list li::before { content: '✦'; color: var(--gold-deco); font-size: .7rem; margin-top: 5px; flex-shrink: 0; }

  /* ── GLANCE BOX ───────────────────────────────────────────── */
  .glance-box {
    background: var(--bg-sage);
    border: 1px solid #A8C8AB;
    border-left: 4px solid var(--green-mid);
    border-radius: var(--radius-md);
    padding: 40px 36px;
  }
  .glance-box .feature-list li { border-color: #B8D4BB; }

  /* ── CARDS ────────────────────────────────────────────────── */
  .card {
    background: var(--bg-white);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform .2s, box-shadow .2s;
  }
  .card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
  .card-img { width: 100%; height: 220px; object-fit: cover; }
  .card-body { padding: var(--space-5); }
  .card-body h3 { font-size: 1.15rem; color: var(--green-dark); margin-bottom: var(--space-2); }
  .card-body p  { font-size: .92rem; color: var(--text-secondary); line-height: 1.65; }

  /* Badge */
  .badge {
    display: inline-block;
    background: var(--bg-sage-mid);
    color: var(--green-dark);
    font-size: .7rem; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 20px;
    margin-bottom: var(--space-3);
  }

  /* ── ROOM CARDS ───────────────────────────────────────────── */
  .room-card {
    background: var(--bg-white);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform .2s, box-shadow .2s;
  }
  .room-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
  .room-card-img {
    width: 100%; height: 220px;
    object-fit: cover;
    display: flex; align-items: center; justify-content: center;
  }
  .room-card-img-placeholder {
    font-family: var(--font-display);
    color: #FFFFFF;
    font-size: 1.3rem;
    text-align: center;
    padding: var(--space-5);
    text-shadow: 0 1px 4px rgba(0,0,0,.5);
  }
  .room-card-body { padding: 24px 24px 28px; }
  .room-card-body h3 { font-size: 1.25rem; color: var(--green-dark); margin-bottom: 6px; }
  .room-meta {
    font-size: .82rem; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase;
    color: var(--gold-text);
    margin-bottom: var(--space-3);
  }
  .room-card-body p { font-size: .93rem; color: var(--text-secondary); line-height: 1.65; }

  /* ── BREAKFAST / SAGE SECTION ─────────────────────────────── */
  .section-sage-panel {
    background: var(--bg-sage);
    border: 1px solid #B8D4BB;
    border-left: 4px solid var(--green-mid);
    border-radius: var(--radius-md);
    padding: 36px 32px;
  }

  /* ── TESTIMONIALS ─────────────────────────────────────────── */
  .testimonial {
    background: var(--bg-white);
    border: 1px solid var(--border-subtle);
    border-left: 4px solid var(--gold-deco);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    padding: 28px 28px 24px;
    box-shadow: var(--shadow-sm);
    position: relative;
  }
  /* Decorative quote mark — aria-hidden in markup */
  .testimonial::before {
    content: '\201C';
    font-family: var(--font-display);
    font-size: 5rem;
    color: var(--gold-deco);
    opacity: .18;
    position: absolute;
    top: -8px; left: 14px;
    line-height: 1;
    pointer-events: none;
    user-select: none;
  }
  .testimonial p { font-style: italic; font-size: .97rem; color: var(--text-primary); margin-bottom: var(--space-3); line-height: 1.7; }
  .testimonial cite { font-size: .8rem; color: var(--text-secondary); font-style: normal; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
  /* Stars: decorative — aria-hidden; source cited in text */
  .stars { color: var(--gold-deco); font-size: 1rem; margin-bottom: 8px; letter-spacing: 2px; }
  .stars[aria-label] { color: var(--gold-deco); } /* if aria-label used for screen reader */

  /* ── BOOK CTA SECTION ─────────────────────────────────────── */
  .cta-section {
    background: var(--green-dark);
    padding: var(--space-9) var(--space-5);
    text-align: center;
  }
  .cta-section .section-label { color: #F5D78A; }
  .cta-section h2 { color: #FFFFFF; }           /* 21:1 ✓ */
  .cta-section .lead { color: rgba(255,255,255,.88); }
  .cta-section .divider { background: var(--gold-deco-mid); }
  .cta-section p.note { color: rgba(255,255,255,.70); font-size: .88rem; margin-top: var(--space-5); }
  .cta-section p.note a { color: #F5D78A; text-decoration: underline; }

  /* ── FOOTER ───────────────────────────────────────────────── */
  .site-footer {
    background: var(--bg-footer);
    color: var(--text-inverse);
    padding: var(--space-8) var(--space-5) var(--space-6);
  }
  .footer-inner {
    max-width: var(--max-w);
    margin: 0 auto var(--space-8);
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr 1fr;
    gap: var(--space-7);
  }
  .footer-brand .brand-name { font-family: var(--font-display); font-size: 1.15rem; color: #FFFFFF; margin-bottom: var(--space-3); }
  .footer-brand p { font-size: .88rem; line-height: 1.7; max-width: 280px; color: rgba(240,235,224,.82); }
  .footer-col h4 { font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: #F5D78A; margin-bottom: var(--space-4); font-family: var(--font-body); }
  .footer-col ul { list-style: none; }
  .footer-col li { margin-bottom: var(--space-2); }
  .footer-col a { color: rgba(240,235,224,.72); font-size: .88rem; text-decoration: underline; text-underline-offset: 3px; transition: color .15s; }
  .footer-col a:hover { color: #F5D78A; }
  .footer-bottom {
    max-width: var(--max-w); margin: 0 auto;
    border-top: 1px solid rgba(255,255,255,.15);
    padding-top: var(--space-5);
    display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-3);
    font-size: .8rem; color: rgba(240,235,224,.45);
  }
  .footer-bottom a { color: rgba(240,235,224,.55); text-decoration: underline; }
  .footer-bottom a:hover { color: #F5D78A; }
  .contact-line { font-size: .88rem; margin-bottom: 8px; }
  .contact-line a { color: #F5D78A; text-decoration: underline; }

  /* ── MOBILE NAV ───────────────────────────────────────────── */
  .mobile-nav {
    display: none;
    position: fixed; inset: 0;
    background: var(--bg-nav);
    z-index: 9999;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-top: 76px;
    padding-bottom: 32px;
    gap: var(--space-3);
    overflow-y: auto;
  }
  .mobile-nav.open { display: flex; }
  .mobile-nav a {
    color: var(--green-dark);
    font-family: var(--font-display);
    font-size: 1.5rem;
    padding: var(--space-3) var(--space-5);
    text-decoration: none;
    min-height: 48px;
    display: flex; align-items: center;
  }
  .mobile-nav a:hover { color: var(--burgundy); }
  .mobile-nav-close {
    position: absolute; top: var(--space-5); right: var(--space-5);
    background: none; border: 2px solid var(--green-dark);
    border-radius: var(--radius-sm);
    color: var(--green-dark);
    font-size: 1.4rem;
    cursor: pointer;
    min-width: 44px; min-height: 44px;
    display: flex; align-items: center; justify-content: center;
  }

  /* ── MOBILE NAV ACCORDION ────────────────────────────────── */
  .mob-acc {
    width: 100%;
    max-width: 400px;
    border-top: 1px solid rgba(26,60,30,0.15);
  }
  .mob-acc-group {
    border-bottom: 1px solid rgba(26,60,30,0.15);
  }
  .mob-acc-hdr {
    width: 100%;
    background: none;
    border: none;
    color: var(--green-dark);
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 600;
    padding: 16px 20px;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 52px;
  }
  .mob-acc-hdr:hover { color: var(--burgundy); }
  .mob-acc-hdr:focus-visible {
    outline: 3px solid var(--burgundy);
    outline-offset: -2px;
  }
  .mob-acc-chevron {
    display: inline-block;
    transition: transform 250ms ease;
    font-size: 0.75em;
    flex-shrink: 0;
  }
  .mob-acc-hdr[aria-expanded="true"] .mob-acc-chevron {
    transform: rotate(180deg);
  }
  .mob-acc-panel {
    display: grid;
    grid-template-rows: 0fr;
    overflow: hidden;
    transition: grid-template-rows 250ms ease;
    background: rgba(26,60,30,0.04);
  }
  .mob-acc-panel > .mob-acc-panel-inner {
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  .mob-acc-panel.open { grid-template-rows: 1fr; }
  @media (prefers-reduced-motion: reduce) {
    .mob-acc-panel { transition: none; }
    .mob-acc-chevron { transition: none; }
  }
  .mob-acc-panel a {
    padding: 13px 20px 13px 34px;
    font-size: 1rem;
    border-left: 3px solid transparent;
    min-height: 44px;
  }
  .mob-acc-panel a:hover {
    color: var(--burgundy);
    border-left-color: var(--burgundy);
  }
  .mob-acc-panel a[aria-current="page"] {
    color: var(--burgundy);
    border-left-color: var(--burgundy);
    font-weight: 600;
  }
  .mob-acc-panel a:focus-visible {
    outline: 3px solid var(--burgundy);
    outline-offset: -2px;
  }
.mob-nav-booknow { display: block; margin: 20px auto 0; padding: 14px 32px; background: var(--burgundy); color: #fff !important; font-family: var(--font-display); font-size: 1rem; font-weight: 600; text-align: center; border-radius: 4px; text-decoration: none; letter-spacing: 0.03em; min-height: 44px; max-width: 240px; }
.mob-nav-booknow:hover { opacity: 0.9; }
.mob-nav-booknow:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

  /* ── RESPONSIVE ───────────────────────────────────────────── */
  @media (max-width: 1080px) { .nav-links a, .dropdown-toggle { font-size: .78rem; padding: 8px 8px; } }
  @media (max-width: 960px)  { .nav-brand .nav-logo { display: none; } }
  @media (max-width: 900px)  {
    .grid-2 { grid-template-columns: 1fr; }
    .grid-3 { grid-template-columns: 1fr 1fr; }
    .grid-4 { grid-template-columns: 1fr 1fr; }
    .footer-inner { grid-template-columns: 1fr 1fr 1fr; }
    .nav-links { display: none; }
    .hamburger { display: flex; }
    .nav-brand .nav-logo { display: block; }
  }
  @media (max-width: 600px)  {
    .grid-3, .grid-4 { grid-template-columns: 1fr; }
    .footer-inner { grid-template-columns: 1fr; }
    .section { padding: var(--space-8) var(--space-4); }
    .hero { min-height: 75vh; }
    .hero-content { margin: var(--space-5); padding: var(--space-6) var(--space-4); }
  }

  /* ── High-contrast mode (WCAG 1.4.11) ────────────────────── */
  @media (prefers-contrast: more) {
    :root {
      --text-secondary: #2A2A2A;
      --border-subtle: #666666;
      --bg-sage: #D0E8D2;
      --gold-deco: #7A5A00;
    }
    .nav-links a, .dropdown-toggle { border: 1px solid transparent; }
    .nav-links a:hover, .dropdown-toggle:hover { border-color: var(--green-dark); }
    .card, .room-card, .testimonial { border-width: 2px; }
  }

  /* ── Backward-compat aliases for old dark-theme variables ── */
  :root {
    --dark:       #2D4A2D;   /* was nav bg — maps to footer green */
    --green:      #1A3C1E;   /* was body green — maps to green-dark */
    --gold:       #B08D57;   /* was decorative gold */
    --cream:      #F5EFE3;
    --cream-dark: #EDE5D5;
    --gray:       #4F4F4F;   /* maps to text-secondary */
    --charcoal:   #2C2C2C;
  }

  /* ── Page hero (inner pages) ── */
  .page-hero {
    background: var(--bg-sage);
    color: var(--text-primary);
    padding: 72px 24px 64px;
    text-align: center;
    position: relative;
    overflow: hidden;
    border-bottom: 2px solid #A8C8AB;
  }
  .page-hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,transparent,var(--gold-deco),transparent); }
  .page-hero h1  { color: var(--green-dark); font-family: var(--font-display); font-size: clamp(2rem,5vw,3.2rem); margin-bottom:16px; }
  .page-hero p   { color: var(--text-secondary); font-size:0.95rem; max-width:860px; margin:0 auto 1em; line-height:1.7; text-align:center; }
  .page-hero .signature-sentence { margin-top: 1.2em; }
  .page-hero .eyebrow, .eyebrow { display:block; font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; font-weight:700; color:var(--gold-text); margin-bottom:16px; }
  .page-hero .eyebrow { font-family:var(--font-display); font-style:italic; font-weight:400; font-size:1rem; letter-spacing:.02em; text-transform:none; }

  /* ── FAQ accordion ── */
  .faq-item { border-bottom: 1px solid var(--border-subtle); }
  .faq-q { background:none; border:none; width:100%; text-align:left; padding:18px 0; display:flex; justify-content:space-between; align-items:center; font-family:var(--font-display); font-size:1.05rem; color:var(--green-dark); cursor:pointer; font-weight:600; }
  .faq-q:hover { color:var(--burgundy); }
  .faq-q .icon { font-size:1.2rem; flex-shrink:0; }
  .faq-a { display:none; padding:0 0 18px; color:var(--text-secondary); line-height:1.8; }
  .faq-item.open .faq-a { display:block; }
  .faq-item.open .faq-q { color:var(--burgundy); }

  /* ── Policy tables ── */
  .policy-table { width:100%; border-collapse:collapse; margin:16px 0; }
  .policy-table th { background:var(--green-dark); color:#fff; padding:12px 16px; text-align:left; font-size:.88rem; }
  .policy-table td { padding:12px 16px; border-bottom:1px solid var(--border-subtle); font-size:.93rem; color:var(--text-primary); vertical-align:top; }
  .policy-table tr:nth-child(even) td { background:var(--bg-cream); }
  .policy-section { margin-bottom:40px; padding-bottom:32px; border-bottom:1px solid var(--border-subtle); }
  .policy-section h3 { color:var(--green-dark); margin-bottom:14px; }
  .policy-section ul { padding-left:20px; color:var(--text-secondary); line-height:1.9; }
  .policy-section li { margin-bottom:6px; }

  /* ── Review cards ── */
  .review-card { background:var(--bg-white); border:1px solid var(--border-subtle); border-left:4px solid var(--gold-deco); border-radius:0 var(--radius-md) var(--radius-md) 0; padding:28px; box-shadow:var(--shadow-sm); }
  .review-source-badge { display:inline-block; background:var(--bg-sage-mid); color:var(--green-dark); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:4px 10px; border-radius:20px; margin-bottom:10px; }

  /* ── Accommodations room detail headers ── */
  .room-detail-header { background:var(--bg-sage); color:var(--text-primary); padding:32px; border-radius:var(--radius-md); margin-bottom:0; border-bottom:2px solid #A8C8AB; }
  .room-detail-header h2 { color:var(--green-dark); }

  /* ── Breakfast menu placeholder ── */
  .menu-placeholder { background:var(--bg-sage); border:2px dashed #A8C8AB; border-radius:var(--radius-md); min-height:500px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px; }

  /* ── Innkeeper photo ── */
  .innkeeper-photo { border-radius:var(--radius-md); box-shadow:var(--shadow-md); border:3px solid #A8C8AB; max-width:100%; }

  /* ── Google Maps embed ── */
  .map-container { border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-md); border:1px solid var(--border-subtle); }
  .map-container iframe { display:block; }

  /* ── Contact info box ── */
  .contact-box { background:var(--bg-sage); border:1px solid #A8C8AB; border-radius:var(--radius-md); padding:32px; }
  .contact-box h3 { color:var(--green-dark); }

  /* ── Stat tiles ── */
  .stat-tile { background:var(--green-dark); color:var(--text-inverse); border-radius:var(--radius-sm); padding:20px; text-align:center; }
  .stat-tile .stat-num { font-family:var(--font-display); font-size:2rem; color:#F5D78A; font-weight:700; }
  .stat-tile .stat-label { font-size:.82rem; color:rgba(240,235,224,.8); }

  /* ── Activity cards (things-to-do, explore) ── */
  .activity-card { background:var(--bg-white); border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:24px; border-top:3px solid var(--green-mid); box-shadow:var(--shadow-sm); }
  .activity-card h3 { color:var(--green-dark); margin-bottom:8px; }
  .activity-card p { color:var(--text-secondary); font-size:.92rem; line-height:1.65; }

  /* ── Gift card box ── */
  .gift-card-box { background:var(--bg-white); border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:32px; box-shadow:var(--shadow-sm); text-align:center; }

  /* ── CTA dark section ── */
  .section-dark { background:var(--bg-sage); }
  .section-dark.text-center { background:var(--green-dark) !important; }
  .section-dark.text-center h2 { color:#fff !important; }
  .section-dark.text-center .section-label { color:#F5D78A !important; }
  .section-dark.text-center .lead { color:rgba(255,255,255,.88) !important; }
  .section-dark.text-center .divider { background:var(--gold-deco-mid); }

  /* ── Section helpers ── */
  .section-sm { padding: 56px 24px; }
  .max-900 { max-width: 900px; }

  .breadcrumbs { padding: 18px 24px 0; display: none; }
  .breadcrumbs ol { list-style: none; display: flex; gap: 10px; flex-wrap: wrap; color: var(--text-secondary); font-size: .9rem; }
  .breadcrumbs li + li::before { content: "›"; margin-right: 10px; color: var(--gold-text); }
  .section-positioning { padding: 28px 0 8px; }
  .section-positioning p { max-width: 920px; margin: 0 auto 18px; color: var(--text-secondary); }
  .icon-row { display: flex; flex-wrap: wrap; gap: 10px 14px; justify-content: center; text-align: center; margin-top: 14px; }
  .icon-item { display: flex; align-items: center; justify-content: center; padding: 10px 14px; background: var(--bg-white); border: 1px solid var(--border-subtle); border-radius: 999px; box-shadow: var(--shadow-sm); font-weight: 700; color: var(--green-dark); }

/* ── Mobile sticky Book Now bar ─────────────────────────── */
.mobile-book-bar { display: none; }
@media (max-width: 900px) {
  .mobile-book-bar {
    display: block; position: fixed; bottom: 0; left: 0; right: 0;
    z-index: 999; background: var(--burgundy, #6B2D3E);
    text-align: center; padding: 12px 20px;
    box-shadow: 0 -2px 8px rgba(0,0,0,0.18);
  }
  .mobile-book-bar a { display: inline-block; color: #fff; font-weight: 700; font-size: 1rem; letter-spacing: .03em; text-decoration: none; }
  .mobile-book-bar .external-icon { display: inline-block; margin-left: .28em; font-size: .92em; }
  body.mobile-nav-open .mobile-book-bar { display: none; }
  body { padding-bottom: 54px; }
  body.mobile-nav-open { padding-bottom: 0; }
}


  /* ── Accommodations-specific styles ───────────────────────── */

  /* Page hero */
  .page-hero {
    background: var(--bg-sage);
    color: var(--text-primary);
    padding: 72px 24px 64px;
    text-align: center;
    position: relative;
    overflow: hidden;
    border-bottom: 2px solid #A8C8AB;
  }
  .page-hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,transparent,var(--gold-deco),transparent); }
  .page-hero h1  { color: var(--green-dark); font-family: var(--font-display); font-size: clamp(2rem,5vw,3.2rem); margin-bottom:16px; }
  .page-hero > p { color: var(--text-secondary); font-size:0.95rem; max-width:860px; margin:0 auto 1em; line-height:1.7; text-align:center; }
  .eyebrow { display:block; font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; font-weight:700; color:var(--gold-text); margin-bottom:16px; }

  /* Section heading with divider */
  .section-heading { color: var(--green-dark); margin-bottom:6px; font-size:1.6rem; }
  .section-note { color: var(--text-secondary); font-size:.88rem; margin-bottom:28px; line-height:1.6; }

  /* Rooms grid — 2 columns for side-by-side pairs */
  .rooms-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }
  @media (max-width: 720px) { .rooms-grid { grid-template-columns: 1fr; } }

  /* Room card — compact tile style */
  .room-card {
    background: var(--bg-white);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    transition: transform .2s, box-shadow .2s;
  }
  .room-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }

  /* Full-width card spans both columns */
  .room-card.full-width {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 380px 1fr;
  }
  .room-card.full-width .room-card-img { height: 100%; min-height: 260px; border-radius: 0; }
  @media (max-width: 860px) {
    .room-card.full-width { grid-template-columns: 1fr; grid-column: auto; }
    .room-card.full-width .room-card-img { height: 220px; }
  }

  /* Room card image */
  .room-card-img {
    width: 100%;
    height: 210px;
    object-fit: cover;
    display: block;
    flex-shrink: 0;
  }
  /* Placeholder gradient when no photo */
  .room-card-img-placeholder {
    width: 100%; height: 210px;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-display); color: #fff;
    font-size: 1.1rem; text-align: center; padding: 16px;
    text-shadow: 0 1px 4px rgba(0,0,0,.4);
    flex-shrink: 0;
  }
  .room-card.full-width .room-card-img-placeholder { height: 100%; min-height: 260px; }

  /* Room card body */
  .room-card-body {
    padding: 20px 22px 24px;
    display: flex; flex-direction: column; flex: 1;
  }
  .room-card-body .room-meta-badge {
    display: inline-block;
    background: var(--bg-sage-mid);
    color: var(--green-dark);
    font-size: .65rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
    padding: 3px 9px; border-radius: 20px;
    margin-bottom: 8px;
  }
  .room-card-body h3 {
    font-family: var(--font-display);
    font-size: 1.2rem; color: var(--green-dark);
    margin-bottom: 4px;
  }
  .room-meta-line {
    font-size: .75rem; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase;
    color: var(--gold-text); margin-bottom: 10px;
  }
  .room-card-body p {
    font-size: .88rem; color: var(--text-secondary);
    line-height: 1.68; margin-bottom: 14px; flex: 1;
  }

  /* Tag chips */
  .tag-grid {
    display: flex; flex-wrap: wrap; gap: 6px;
    margin-bottom: 16px;
  }
  .tag {
    display: inline-block;
    background: var(--bg-sage);
    border: 1px solid #A8C8AB;
    color: var(--green-dark);
    font-size: .68rem; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase;
    padding: 3px 9px; border-radius: 20px;
  }

  /* Book button — compact */
  .btn-book {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 40px; padding: 9px 20px;
    background: var(--green-mid); color: #fff;
    border: 2px solid var(--green-mid);
    border-radius: var(--radius-sm);
    font-family: var(--font-body); font-size: .78rem;
    font-weight: 700; letter-spacing: .09em; text-transform: uppercase;
    text-decoration: none; cursor: pointer;
    transition: background .15s, border-color .15s, transform .15s;
    align-self: flex-start;
  }
  .btn-book:hover { background: var(--green-dark); border-color: var(--green-dark); color: #fff; transform: translateY(-1px); text-decoration: none; }

  /* Section dividers */
  .section-group { margin-bottom: 52px; }
  .section-group:last-child { margin-bottom: 0; }

  /* Amenities strip */
  .amenities-strip {
    background: var(--bg-white);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-7) var(--space-5);
  }
  .amenities-cols {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-5);
    margin-top: 28px;
  }
  @media (max-width: 720px) { .amenities-cols { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 480px) { .amenities-cols { grid-template-columns: 1fr; } }
  .amenities-cols .feature-list li { font-size: .85rem; }

  /* Booking info box */
  .booking-info-box {
    background: var(--bg-sage);
    border: 1px solid #A8C8AB;
    border-left: 4px solid var(--green-mid);
    border-radius: var(--radius-md);
    padding: 28px 32px;
    margin-top: 48px;
  }
  .booking-info-box h3 { color: var(--green-dark); margin-bottom: 14px; font-size: 1.05rem; }
  .booking-info-box .feature-list li { font-size: .88rem; }

  /* CTA dark section */
  .section-dark.text-center { background: var(--green-dark); padding: var(--space-9) var(--space-5); color: #fff; }
  .section-dark.text-center h2 { color: #fff; }
  .section-dark.text-center .section-label { color: #F5D78A; }
  .section-dark.text-center .lead { color: rgba(255,255,255,.88); }
  .section-dark.text-center .divider { background: var(--gold-deco-mid); margin: 0 auto var(--space-5); }

/* Screen-reader-only utility */
.sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* External-link icon for booking CTAs */
.external-icon{
  display:inline-block;
  margin-left:.28em;
  line-height:1;
  font-size:.92em;
  vertical-align:baseline;
}

/* Body content spacing (universal reset zeros p/h2 margins) */
.romantic-body p { margin: 0 0 1.15em; line-height: 1.7; color: var(--text-secondary); font-size: 1rem; }
.romantic-body h2 { margin: 2em 0 .6em; font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2rem); color: var(--green-dark); line-height: 1.25; }
.romantic-body h2:first-child { margin-top: .5em; }
.romantic-body a { color: var(--burgundy, #6B1A1A); text-decoration: underline; }



.card-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.stack-24>*+*{margin-top:24px}.stack-16>*+*{margin-top:16px}.list-check{list-style:none;padding:0}.list-check li{padding:10px 0 10px 28px;position:relative;border-bottom:1px solid var(--border-subtle)}.list-check li::before{content:"✓";position:absolute;left:0;top:10px;color:var(--green-mid);font-weight:700}.list-soft{list-style:none;padding:0}.list-soft li{padding:10px 0 10px 28px;position:relative;border-bottom:1px solid var(--border-subtle)}.list-soft li::before{content:"•";position:absolute;left:10px;top:10px;color:var(--gold-text);font-weight:700}.chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.chip{display:inline-flex;align-items:center;padding:8px 12px;background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:999px;color:var(--green-dark);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.intro-panel{background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:32px}.fit-card{background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:26px;box-shadow:var(--shadow-sm);height:100%}.fit-card h3{color:var(--green-dark);margin-bottom:10px}.fit-card p{color:var(--text-secondary);font-size:.95rem}.fit-card .btn{margin-top:16px}.signal-box{background:var(--bg-sage);border:1px solid #A8C8AB;border-left:4px solid var(--green-mid);border-radius:var(--radius-md);padding:28px}.gentle-box{background:var(--bg-cream);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:28px}.cta-split{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center}.quote-strip{background:var(--bg-white);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:22px 24px;text-align:center;color:var(--green-dark);font-family:var(--font-display);font-size:1.2rem}.next-links{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.next-link-card{background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:22px;box-shadow:var(--shadow-sm)}.next-link-card h3{font-size:1.05rem;margin-bottom:8px;color:var(--green-dark)}.next-link-card p{font-size:.9rem;color:var(--text-secondary);margin-bottom:12px}.breadcrumbs{padding:18px 24px 0}.breadcrumbs ol{list-style:none;display:flex;gap:10px;flex-wrap:wrap;color:var(--text-secondary);font-size:.9rem}.breadcrumbs li+li::before{content:"›";margin-right:10px;color:var(--gold-text)}.hero-kicker{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}.hero-kicker .chip{background:rgba(253,250,245,.96);border:1px solid #D8D0C0;color:var(--green-dark);font-size:.82rem;line-height:1.35;box-shadow:0 2px 8px rgba(0,0,0,.08)}.faq-mini details{background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px 18px}.faq-mini details+details{margin-top:12px}.faq-mini summary{cursor:pointer;font-weight:700;color:var(--green-dark)}.faq-mini p{margin-top:10px;color:var(--text-secondary)}@media (max-width: 900px){.card-grid-3,.card-grid-2,.next-links,.cta-split{grid-template-columns:1fr}}

  .footer-social { display: flex; gap: 14px; margin-top: 12px; }
  .footer-social a { color: #F5D78A; display: inline-flex; align-items: center; transition: opacity 0.15s ease; }
  .footer-social a:hover { opacity: 0.75; }
  .footer-social a:focus-visible { outline: 3px solid var(--focus-ring, #F5D78A); outline-offset: 3px; border-radius: 3px; }
  

.related-guides { max-width: 800px; margin: 2em auto; padding: 1.5em 2em; }
.related-guides h2 { font-family: var(--font-display, 'Playfair Display', Georgia, serif); color: var(--green-dark, #1A3C1E); margin-bottom: 0.75em; }
.related-guides .guide-links { list-style: none; padding: 0; }
.related-guides .guide-links li { margin-bottom: 0.5em; }
.related-guides .guide-links a { color: var(--green-dark, #1A3C1E); text-decoration: underline; }

/* === Component: .hvi-next-steps (from FAQ.html) === */
.hvi-next-steps{background:#FDFAF5;padding:48px 24px;border-top:1px solid #E8E0D4;}
.hvi-next-steps h2{font-family:'Playfair Display',Georgia,serif;font-size:1.35rem;font-weight:600;color:#1A3C1E;text-align:center;margin:0 0 28px;}
.hvi-next-steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:900px;margin:0 auto;}

/* === Shared components (appear on 2+ pages, not in canonical) === */
.fit-no h3{color:#a33}
.day-activity{margin:.75rem 0;padding-left:1rem;border-left:2px solid #E8E4DC}
.next-step-item a{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--green-dark);text-decoration:none;display:block;margin-bottom:var(--space-2)}
.room-carousel-track{ display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:thin; border-radius:var(--radius-md); }
.dropdown.open .dropdown-menu,.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu{display:block}
.hero-content{position:relative;z-index:1;padding:64px var(--space-5);max-width:820px;background:rgba(20,42,22,.38);border-radius:var(--radius-md);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);border:1px solid rgba(255,255,255,.12)}
.next-step-links { display: flex; flex-wrap: wrap; gap: var(--space-3); list-style: none; padding: 0; }
.nav-logo span { display: block; font-family: var(--font-body); font-size: .72rem; font-weight: 400; color: var(--text-secondary); letter-spacing: .06em; }
@media (max-width: 900px) { .footer-inner { grid-template-columns: 1fr 1fr 1fr; } }
.chevron{font-size:.7em;transition:transform .2s}
.nav-links a:hover,.dropdown-toggle:hover{background:var(--bg-sage);color:var(--green-dark);text-decoration:none}
.footer-col ul{list-style:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.nearby-list .place-dist{color:var(--text-muted);font-size:.88rem}
.icon-item{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border:1px solid rgba(0,0,0,0.08);border-radius:12px;background:rgba(255,255,255,0.6);font-size:0.95rem;line-height:1}
.fit-good{background:#EDF5EE;border:1px solid #A8C8AB;border-top:4px solid var(--green-mid)}
@media (max-width: 600px) { .footer-inner { grid-template-columns: 1fr; } }
.next-step-item a:hover{color:var(--burgundy);text-decoration:underline}
*:focus-visible { outline: 3px solid var(--gold-deco); outline-offset: 2px; }
.hero p{font-size:1.1rem;color:rgba(255,255,255,.93);max-width:640px;margin:0 auto 32px}
.faq-item:last-child{border-bottom:none}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;flex-wrap:nowrap;flex:1;justify-content:flex-end}
.room-carousel-btn:hover{ background:var(--bg-sage); }
.footer-bottom a{color:rgba(240,235,224,.55);text-decoration:underline}
.info-box{background:#F5F0E8;border:1px solid #D6D0C5;border-radius:8px;padding:1.25rem 1.5rem;margin:2rem 0}
@media(max-width:420px){.hvi-next-steps-grid{grid-template-columns:1fr;}}
.cta-mini{background:var(--bg-sage);border-left:4px solid var(--green-mid);padding:18px 20px;border-radius:8px}
.btn-outline:hover{background:rgba(255,255,255,.15);border-color:#fff;color:#fff;text-decoration:none}
.comparison-table .maybe{color:var(--gold-text);font-size:.85rem}
.btn-green:hover{background:var(--green-dark);border-color:var(--green-dark);color:#fff;text-decoration:none}
.nearby-list{list-style:none;padding:0;margin-top:var(--space-5)}
.btn-green:hover{background:var(--green-dark);border-color:var(--green-dark);color:#fff}
.table-lite th,.table-lite td{padding:14px 16px;border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top}
@media (max-width: 600px) { .grid-3, .grid-4 { grid-template-columns: 1fr; } .footer-inner { grid-template-columns:1.4fr 1fr 1fr 1fr 1fr 1fr; } .section { padding: var(--space-8) var(--space-4); } .hero { min-height: 75vh; } .hero-content { margin: var(--space-5); padding: var(--space-6) var(--space-4); } }
.s-white{background:#fff}
.feature-list li::before{content:'✦';color:var(--gold-deco);font-size:.7rem;margin-top:7px;flex-shrink:0}
.hero-eyebrow{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1rem;letter-spacing:.02em;text-transform:none;color:#F5D78A;margin-bottom:var(--space-5);line-height:1.55}
@media(max-width:600px){.next-steps-grid{grid-template-columns:1fr}}
.footer-brand .brand-name{font-family:var(--font-display);font-size:1.15rem;color:#fff;margin-bottom:12px}
.nearby-list .distance{color:var(--text-muted);font-size:.85rem}
.gallery-caption{ margin-top:10px; }
.next-step-item a{font-weight:700;font-family:var(--font-display);font-size:1rem;color:var(--green-dark)}
.mobile-nav { display: none; position: fixed; inset: 0; background: var(--bg-nav); z-index: 9999; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2); overflow-y: auto; }
@media(max-width:900px){.grid-2,.grid-3,.two-col{grid-template-columns:1fr}.nearby-grid{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr 1fr 1fr}.nav-links{display:none}.hamburger{display:flex}.nav-brand .nav-logo{display:block}.next-steps-grid{grid-template-columns:1fr 1fr}}
.nav-logo:hover{color:var(--burgundy);text-decoration:none}
.two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:32px}
.chevron { font-size: .6em; transition: transform .2s; display: inline-block; }
:focus:not(:focus-visible){outline:none}
.comparison-hero { position: relative; background: linear-gradient(180deg, rgba(20,42,22,.58) 0%, rgba(20,42,22,.48) 100%), url('images/index/heart-of-the-village-inn-arrival-shelburne-vermont.webp') center/cover no-repeat; min-height: 54vh; display: flex; align-items: center; }
.btn-primary:hover{background:var(--burgundy-hover);border-color:var(--burgundy-hover);color:#fff}
.highlight span{font-size:.88rem;color:var(--text-secondary)}
.mini-card li { margin-bottom: 10px; }
.comparison-table .check{color:var(--green-mid);font-weight:700;font-size:1.1rem}
.next-step-item{background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-5);text-align:center;box-shadow:var(--shadow-sm)}
.faq-item.open .faq-a{display:block}
html{scroll-behavior:smooth;font-size:16px}
.nav-links a[aria-current="page"]{color:var(--burgundy);border-bottom:2px solid var(--burgundy)}
h3{font-size:1.35rem;margin-bottom:var(--space-3);color:var(--text-primary)}
img{max-width:100%;display:block;height:auto}
.feature-card{background:var(--bg-white);border:1px solid var(--border-subtle);border-top:4px solid var(--green-mid);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm)}
.footer-bottom{max-width:var(--max-w);margin:0 auto;border-top:1px solid rgba(255,255,255,.15);padding-top:var(--space-5);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3);font-size:.8rem;color:rgba(240,235,224,.45)}
.last-updated{font-size:.8rem;color:var(--text-muted);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}
.next-step-links li a:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); color: var(--burgundy); }
.nav-brand{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0;margin-right:var(--space-2)}
.footer-col li{margin-bottom:8px}
.faq-q{background:none;border:none;width:100%;text-align:left;padding:18px 0;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-display);font-size:1.05rem;color:var(--green-dark);cursor:pointer;font-weight:600}
.faq-item p{font-size:.93rem;color:var(--text-secondary);line-height:1.75;margin:0}
body{font-family:var(--font-body);font-size:1rem;line-height:1.7;background:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased}
.next-step-item p{font-size:.88rem;color:var(--text-secondary);line-height:1.6;margin:0}
.hero{position:relative;min-height:78vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--green-dark)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,42,22,.55) 0%,rgba(20,42,22,.20) 40%,rgba(20,42,22,.25) 60%,rgba(20,42,22,.68) 100%)}
.skip-link{position:absolute;top:-60px;left:var(--space-4);background:var(--green-dark);color:#fff;padding:var(--space-3) var(--space-5);border-radius:0 0 var(--radius-md) var(--radius-md);font-weight:700;font-size:.95rem;text-decoration:none;z-index:10000;transition:top .2s}
.hero p { font-size: 1.1rem; color: rgba(255,255,255,.93); max-width: 560px; margin: 0 auto var(--space-7); line-height: 1.75; }
.dropdown-menu li a:hover{background:var(--bg-sage);color:var(--green-dark)}
.eyebrow-card{display:inline-block;background:#F7F4EE;color:#222;border:1px solid #D6D0C5;padding:8px 14px;border-radius:999px;font-size:.86rem;font-weight:700;margin:6px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.skip-link { position: absolute; top: -100%; left: 0; background: var(--green-dark); color: #fff; padding: 10px 20px; z-index: 99999; text-decoration: none; font-weight: 700; }
.mobile-nav a:hover{color:var(--burgundy)}
.btn-outline-green:hover{background:var(--bg-sage);color:var(--green-dark);border-color:var(--green-dark);text-decoration:none}
.hvi-next-steps{background:#FDFAF5;padding:48px 24px;border-top:1px solid #E8E0D4;}
.icon-item span{white-space:nowrap}
.perk-icon{font-size:1.4rem;flex-shrink:0;margin-top:2px;color:var(--green-mid)}
.page-hero p { color: var(--text-secondary); font-size:1rem; max-width:860px; margin:0 auto 1em; line-height:1.7;text-align:center; }
.hvi-next-step a:hover{text-decoration:underline;}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}
.hero-content{position:relative;z-index:1;max-width:860px;margin:24px;padding:56px 28px;background:rgba(20,42,22,.38);border-radius:var(--radius-md);backdrop-filter:blur(2px);border:1px solid rgba(255,255,255,.12)}
@media (max-width:900px){.two-col,.info-grid{grid-template-columns:1fr}.hero-content{max-width:900px}}
.nav-book:hover{background:var(--burgundy-hover)!important;text-decoration:none!important}
.comparison-summary { background: var(--bg-white); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 26px 24px; height: 100%; }
.s-white{background:var(--bg-white)}
@media (max-width: 900px) { .grid-2 { grid-template-columns: 1fr; } .grid-3 { grid-template-columns: 1fr 1fr; } .grid-4 { grid-template-columns: 1fr 1fr; } .footer-inner { grid-template-columns:1.4fr 1fr 1fr 1fr 1fr 1fr; } .nav-links { display: none; } .hamburger { display: flex; } .nav-brand .nav-logo { display: block; } }
.hero-kickers { display:flex; flex-wrap:wrap; gap:10px; margin: 0 0 var(--space-5); }
.section { padding: var(--space-8) 0; }
.page-hero .eyebrow{text-align:center;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1rem;letter-spacing:.02em;text-transform:none}
.checklist{list-style:none;padding:0;margin:0}
.comparison-table td strong { color: var(--green-dark); }
.page-hero h1{color:var(--green-dark);font-family:var(--font-display);font-size:clamp(2rem,5vw,3.2rem);margin-bottom:16px}
.mobile-nav a{color:var(--green-dark);font-family:var(--font-display);font-size:1.5rem;padding:var(--space-3) var(--space-5);text-decoration:none;min-height:48px;display:flex;align-items:center}
.nav-links { display: flex; list-style: none; gap: 4px; align-items: center; }
.eyebrow{display:block;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;font-weight:700;color:var(--gold-text);margin-bottom:16px}
.last-updated{font-size:.8rem;color:var(--text-muted);margin-top:var(--space-6);font-style:italic}
.contact-line a{color:#F5D78A}
.fit-box li{padding:var(--space-2) 0;border-bottom:1px solid var(--bg-cream);font-size:.93rem;color:var(--text-secondary);display:flex;gap:var(--space-3);align-items:flex-start}
.page-hero p { color: var(--text-secondary); font-size:1rem; max-width:860px; margin:0 auto 1em; line-height:1.7; text-align:center; }
@media(max-width:960px){.nav-brand .nav-logo{display:none}}
.perk-item p{font-size:.93rem;color:var(--text-secondary);line-height:1.7;margin:0}
.icon-row{display:flex;flex-wrap:wrap;gap:10px 14px;margin:14px auto 0;justify-content:center;text-align:center}
.local-links a{font-weight:700}
.comparison-table tr:nth-child(even) td{background:var(--bg-sage)}
.comparison-table th { background: var(--bg-sage); color: var(--green-dark); font-size: .95rem; }
.nearby-list li{padding:.4rem 0;border-bottom:1px solid #E8E4DC;font-size:.95rem}
.hero-slide.is-active { opacity:1; }
.dropdown-menu li a{display:flex;align-items:center;padding:12px 18px;font-size:.85rem;font-weight:700;color:var(--green-dark);text-transform:none;letter-spacing:normal;border-bottom:1px solid var(--bg-cream)}
.dropdown-menu { top: 100%; min-width: 240px; padding: 6px 0; }
.max-700{max-width:700px}
.feature-list li{padding:10px 0;border-bottom:1px solid var(--border-subtle);display:flex;gap:12px;align-items:flex-start}
.mini-card { background: var(--bg-white); border: 1px solid var(--border-subtle); border-left: 4px solid var(--green-mid); border-radius: var(--radius-md); padding: 24px 22px; box-shadow: var(--shadow-sm); height: 100%; }
.cta-links{font-size:.92rem;color:rgba(255,255,255,.85);margin-top:22px}
.fit-box li:last-child{border-bottom:none}
.faq-item{background:#fff;border:1px solid var(--border-subtle);border-radius:8px;padding:18px;box-shadow:var(--shadow-sm)}
.hero .eyebrow{color:#F5D78A;margin-bottom:20px;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1rem;letter-spacing:.02em;text-transform:none}
.hamburger span { display: block; width: 24px; height: 2px; background: var(--green-dark); border-radius: 2px; }
.next-steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);max-width:var(--max-w);margin:0 auto}
.comparison-panel { background: var(--bg-white); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); overflow: hidden; }
ul, ol { padding-left: 1.4rem; }
.room-carousel-btn{ min-width:44px; min-height:44px; border:1px solid var(--border-subtle); background:var(--bg-white); color:var(--green-dark); border-radius:999px; cursor:pointer; font:inherit; font-weight:700; box-shadow:var(--shadow-sm); }
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-7);align-items:start}
.contact-line{font-size:.88rem;margin-bottom:8px}
.info-box{background:var(--bg-sage);border:1px solid #A8C8AB;border-left:4px solid var(--green-mid);border-radius:var(--radius-md);padding:var(--space-6)}
.nav-links a:hover{background:var(--bg-sage);color:var(--green-dark);text-decoration:none}
h3{font-size:1.35rem;margin-bottom:12px}
.fit-no .icon{color:#a33}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;flex:1;justify-content:flex-end}
.footer-col h4{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:#F5D78A;margin-bottom:16px;font-family:var(--font-body)}
.note-box{background:var(--bg-sage);border:1px solid #A8C8AB;border-left:4px solid var(--green-mid);border-radius:var(--radius-md);padding:28px}
.dropdown-menu{display:none;position:absolute;top:100%;left:0;background:var(--bg-white);min-width:210px;padding:6px 0;border:1px solid var(--border-subtle);border-top:3px solid var(--green-mid);border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);list-style:none;z-index:999}
.nearby-list li{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--border-subtle);font-size:.93rem}
.comparison-grid-3 { display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.fit-box .icon{flex-shrink:0;font-size:1rem}
.nearby-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-sage);border-radius:6px;font-size:.92rem}
.page-hero .eyebrow { text-align:center; font-family:var(--font-display); font-style:italic; font-weight:400; font-size:1rem; letter-spacing:.02em; text-transform:none; }
.highlight{background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:22px;text-align:center;box-shadow:var(--shadow-sm)}
:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-radius:2px}
.mobile-nav { justify-content: flex-start !important; padding-top: 76px !important; padding-bottom: 32px !important; gap: var(--space-3) !important; }
.section{padding:var(--space-8) var(--space-5)}
.breadcrumbs a{color:#fff;text-decoration:underline}
.page-hero{background:var(--bg-sage);color:var(--text-primary);padding:72px 24px 64px;text-align:center;position:relative;overflow:hidden;border-bottom:2px solid #A8C8AB}
.footer-col h4{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:#F5D78A;margin-bottom:var(--space-4);font-family:var(--font-body)}
.mobile-nav{display:none;position:fixed;inset:0;background:var(--bg-nav);z-index:9999;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);overflow-y:auto}
.hamburger span{width:22px;height:2px;background:var(--green-dark);display:block;transition:.3s}
.btn-outline:hover{background:rgba(255,255,255,.15);color:#fff}
.step-item:last-child{border-bottom:none}
.cta-section p.note a{color:#F5D78A;text-decoration:underline}
@media (max-width: 960px) { .nav-logo { display: none; } }
.nearby-item::before{content:'📍';font-size:.9rem;flex-shrink:0}
.breakfast-included-note{margin:18px auto 0; max-width:1100px; padding:0 16px; font-size:0.98rem; line-height:1.5; color:var(--text-secondary);}
a{color:var(--green-mid);text-decoration:underline;text-underline-offset:3px}
.checklist li{padding:8px 0;border-bottom:1px solid var(--border-subtle)}
@media(max-width:900px){.grid-2,.fit-grid{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:1fr 1fr 1fr}.nav-links{display:none}.hamburger{display:flex}.nav-brand .nav-logo{display:block}.next-steps-grid{grid-template-columns:1fr 1fr}}
.nearby-list li{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);font-size:.95rem}
.hvi-next-step p{font-size:.82rem;color:#555;margin:8px 0 0;line-height:1.5;}
.nearby-list .place-dist{color:var(--text-muted);font-size:.88rem;white-space:nowrap;margin-left:var(--space-4)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 32px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.88rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:2px solid transparent;transition:background .15s,color .15s,border-color .15s,transform .15s}
@media(max-width:700px){.hvi-next-steps-grid{grid-template-columns:1fr 1fr;}}
.page-hero .section-label { text-align:center; }
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.card{background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}
.footer-col a:hover{color:#F5D78A}
.nav-book{background:var(--burgundy)!important;color:#fff!important;padding:10px 18px!important;border-radius:var(--radius-sm)!important;font-weight:700!important;text-transform:uppercase;text-decoration:none!important;min-height:44px!important;display:flex!important;align-items:center;transition:background .15s!important}
.intro-strip{background:var(--bg-sage);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
.dropdown::after{content:"";position:absolute;left:-10px;right:-10px;top:100%;height:14px}
.fit-box li{font-size:.9rem;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.06);line-height:1.5}
@media (max-width: 700px){ .room-carousel-controls{ flex-direction:column; align-items:stretch; } .room-carousel-dots{ justify-content:center; } .room-carousel-buttons{ justify-content:center; } }
.fit-good .icon{color:var(--green-mid)}
.perk-item p{font-size:.9rem;color:var(--text-secondary);line-height:1.65;margin:0}
.hvi-next-steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:900px;margin:0 auto;}
.day-block h3{color:#2D5016;margin-top:0}
.comparison-note { background: var(--bg-sage); border: 1px solid #B8D4BB; border-left: 4px solid var(--green-mid); border-radius: var(--radius-md); padding: 18px 20px; color: var(--text-primary); }
.btn-outline-green{background:transparent;color:var(--green-mid);border-color:var(--green-mid)}
@media(max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:1fr 1fr 1fr}.nav-links{display:none}.hamburger{display:flex}.nav-brand .nav-logo{display:block}.next-steps-grid{grid-template-columns:1fr 1fr}}
.mobile-nav { display: none; position: fixed; inset: 0; background: #FFFEF9; z-index: 9999; flex-direction: column; align-items: center; justify-content: center; gap: 8px; overflow-y: auto; }
:root { --bg-page:#FDFAF5; --bg-white:#fff; --bg-cream:#F5EFE3; --bg-sage:#EDF5EE; --bg-sage-mid:#D6EAD8; --bg-nav:#FFFEF9; --bg-footer:#2D4A2D; --text-primary:#1C1C1C; --text-secondary:#4F4F4F; --text-muted:#5C5C5C; --text-inverse:#F0EBE0; --green-dark:#1A3C1E; --green-mid:#2D5E32; --green-light:#3D7A43; --burgundy:#6B1A1A; --burgundy-hover:#852020; --gold-text:#5C3A00; --gold-deco:#B08D57; --gold-deco-mid:#C8A97A; --focus-ring:#1A5730; --border-subtle:#D8D0C0; --shadow-sm:0 2px 8px rgba(0,0,0,.07); --shadow-md:0 4px 20px rgba(0,0,0,.09); --shadow-lg:0 8px 40px rgba(0,0,0,.12); --font-display:'Playfair Display', Georgia, serif; --font-body:'Lato', Arial, sans-serif; --max-w:1200px; --radius-sm:3px; --radius-md:6px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --space-7:48px; --space-8:64px; --space-9:88px; }
.page-hero p{color:var(--text-secondary);font-size:1rem;max-width:860px;margin:0 auto 1em;line-height:1.7; text-align:center; }
@media(max-width:600px){.footer-inner{grid-template-columns:1fr}.section{padding:var(--space-8) var(--space-4)}.hero{min-height:65vh}.hero-content{margin:var(--space-5);padding:var(--space-6) var(--space-4)}.next-steps-grid{grid-template-columns:1fr}}
.footer-inner { max-width: var(--max-w); margin: 0 auto var(--space-8); display: grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr 1fr; gap: var(--space-7); }
.btn-primary{background:var(--burgundy);border-color:var(--burgundy);color:#fff}
.cta-links a{color:#F5D78A}
.nearby-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}
.hero h1{font-family:var(--font-display);font-size:clamp(2rem,4vw,3.2rem);color:#fff;line-height:1.2;margin-bottom:var(--space-5)}
.btn:hover{transform:translateY(-2px)}
.nav-logo{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--green-dark);text-decoration:none;line-height:1.25;white-space:nowrap}
.feature-list li{padding:10px 0;border-bottom:1px solid var(--border-subtle);display:flex;gap:var(--space-3);align-items:flex-start;font-size:.95rem;color:var(--text-primary);line-height:1.6}
.faq-item h3{font-size:1.05rem;color:var(--green-dark);margin-bottom:var(--space-3);line-height:1.4}
.breadcrumbs{font-size:.9rem;color:rgba(255,255,255,.86);margin-bottom:14px}
.nav-book { background: var(--burgundy) !important; color: #FFFFFF !important; border-radius: 4px; padding: 10px 18px !important; font-weight: 700 !important; text-decoration: none !important; display: flex !important; align-items: center; }
.info-box{background:var(--bg-sage);border:1px solid #A8C8AB;border-left:4px solid var(--green-mid);border-radius:var(--radius-md);padding:var(--space-6);margin:2rem 0}
.breadcrumbs a { color: #FFFFFF; }
.external-icon { display: inline-block; margin-left: .28em; line-height: 1; font-size: .92em; vertical-align: baseline; }
:root { --bg-page: #FDFAF5; --bg-white: #FFFFFF; --bg-sage: #EDF5EE; --bg-sage-mid: #D6EBD8; --bg-footer: #1A2E1A; --green-dark: #1A3C1E; --green-mid: #2D5016; --burgundy: #6B1A1A; --burgundy-hover: #5A1515; --gold-deco: #B8860B; --gold-text: #7A5800; --text-primary: #1C1C1C; --text-secondary: #4F4F4F; --text-inverse: #F0EBE0; --border-subtle: #D8D0C0; --shadow-sm: 0 1px 3px rgba(0,0,0,.08); --shadow-md: 0 4px 16px rgba(0,0,0,.12); --radius-md: 8px; --max-w: 1100px; --font-display: 'Playfair Display', Georgia, serif; --font-body: 'Lato', system-ui, sans-serif; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px; --space-6: 32px; --space-7: 40px; --space-8: 56px; --space-9: 72px; }
.nav-logo{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--green-dark);text-decoration:none;line-height:1.2;white-space:nowrap}
.nav-logo { color: var(--green-dark); text-decoration: none; font-family: var(--font-display); font-size: 1rem; font-weight: 600; line-height: 1.2; }
.footer-bottom a { color: rgba(240,235,224,.85); text-decoration: underline; }
.nav-inner{max-width:var(--max-w);margin:0 auto;padding:0 var(--space-5);display:flex;align-items:center;justify-content:space-between;height:72px;gap:var(--space-3)}
@media(prefers-contrast:more){:root{--text-secondary:#2A2A2A;--border-subtle:#666;--bg-sage:#D0E8D2;--gold-deco:#7A5A00}.info-box,.faq-item{border-width:2px}}
html { scroll-behavior: smooth; }
.fit-box{border-radius:var(--radius-md);padding:var(--space-6)}
.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.hamburger span{width:22px;height:2px;background:var(--green-dark);display:block}
a:hover{color:var(--burgundy)}
.dropdown-toggle[aria-expanded="true"] .chevron{transform:rotate(180deg)}
.footer-brand .brand-name{font-family:var(--font-display);font-size:1.15rem;color:#fff;margin-bottom:var(--space-3)}
.nav-links a{display:flex;align-items:center;color:var(--green-dark);font-size:.84rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;padding:10px 11px;border-radius:var(--radius-sm);transition:background .15s,color .15s;white-space:nowrap;min-height:44px}
.room-carousel-controls{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; }
.cta-section .section-label{color:#F5D78A}
.dropdown::after { content: ""; position: absolute; left: -10px; right: -10px; top: 100%; height: 14px; }
.grid-2{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:start}
@media(max-width:1080px){.nav-links a,.dropdown-toggle{font-size:.78rem;padding:8px 8px}}
.nearby-list{list-style:none;padding:0;margin:1.5rem 0}
.next-step-block h2 { font-size: 1.4rem; margin-bottom: var(--space-4); }
.comparison-table .cross{color:#a33;font-size:1.1rem}
.dropdown-menu li a[aria-current="page"] { color: var(--burgundy); background: var(--bg-sage); border-bottom: 1px solid var(--bg-cream); }
.lead{font-size:1.1rem;line-height:1.8;color:var(--text-secondary);margin-bottom:var(--space-5)}
.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--space-5)}
@media (max-width: 700px) { .comparison-table, .comparison-table thead, .comparison-table tbody, .comparison-table th, .comparison-table td, .comparison-table tr { display: block; } .comparison-table thead { display:none; } .comparison-table tr { border-bottom: 1px solid var(--border-subtle); } .comparison-table td { padding: 12px 16px; } .comparison-table td::before { content: attr(data-label); display:block; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color: var(--gold-text); font-weight:700; margin-bottom: 5px; } }
.dropdown-menu{display:none;position:absolute;top:100%;left:0;background:var(--bg-white);min-width:220px;border:1px solid var(--border-subtle);border-top:3px solid var(--green-mid);border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);list-style:none;z-index:999}
.mini-card ul { margin-left: 18px; color: var(--text-secondary); }
.btn-green{background:var(--green-mid);border-color:var(--green-mid);color:#fff}
.nav-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--space-5); display: flex; align-items: center; gap: var(--space-4); min-height: 64px; }
.highlight-box h3{color:var(--burgundy);margin-bottom:var(--space-3)}
.info-box ul li{font-size:.93rem;color:var(--text-secondary);margin-bottom:var(--space-2)}
.room-carousel-dots{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.highlight-box{background:var(--bg-cream);border:1px solid var(--border-subtle);border-top:4px solid var(--burgundy);border-radius:var(--radius-md);padding:var(--space-6);margin-top:var(--space-6)}
.hvi-next-steps h2{font-family:'Playfair Display',Georgia,serif;font-size:1.35rem;font-weight:600;color:#1A3C1E;text-align:center;margin:0 0 28px;}
.cta-section{background:var(--green-dark);padding:var(--space-9) var(--space-5);text-align:center}
.fit-box ul{list-style:none;padding:0}
.last-updated{font-size:.82rem;color:#888;margin-top:1.5rem}
.hero-chip { display:inline-flex; align-items:center; min-height:40px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.14); color:#FFFFFF; border:1px solid rgba(255,255,255,.22); font-size:.92rem; font-weight:700; }
.next-step-item{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-sm)}
.room-carousel-buttons{ display:flex; gap:10px; }
.btn:hover{transform:translateY(-2px);text-decoration:none}
.faq-a{display:none;padding:0 0 18px;color:var(--text-secondary)}
@media (max-width: 860px) { .nav-links { display: none; } .hamburger { display: flex; } }
@media (max-width: 980px){ .grid-2{grid-template-columns:1fr} .intro-highlights{grid-template-columns:repeat(2,1fr)} .footer-inner{grid-template-columns: 1fr 1fr 1fr;padding-right:16px} .hero{min-height:72vh} .hero-content{padding:44px 20px} .intro-highlights{grid-template-columns:1fr} }
.nearby-list .place-name{font-weight:700;color:var(--green-dark)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 28px;border-radius:var(--radius-sm);font-size:.88rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s,background .15s,border-color .15s,color .15s}
.section-sm{padding:var(--space-7) var(--space-5)}
.text-center{text-align:center}
.perk-item h3{font-size:1.05rem;color:var(--green-dark);margin-bottom:4px}
.next-steps{background:var(--bg-cream);padding:var(--space-8) var(--space-5)}
.dropdown-menu li:last-child a{border-bottom:none}
.divider-center{margin:0 auto var(--space-5)}
.hero p{font-size:1.1rem;color:rgba(255,255,255,.93);max-width:560px;margin:0 auto var(--space-7);line-height:1.75}
.comparison-table{width:100%;border-collapse:collapse;margin-top:var(--space-5)}
.table-lite{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}
.dropdown-menu { display: none; position: absolute; top: 100%; left: 0; background: #FFFEF9; border: 1px solid var(--border-subtle); border-radius: var(--radius-md); box-shadow: var(--shadow-md); min-width: 200px; z-index: 999; list-style: none; padding: var(--space-2) 0; }
body.mobile-nav-open{overflow:hidden}
a{color:var(--green-mid);text-decoration:underline;text-underline-offset:3px;transition:color .15s}
.section-label{display:block;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;font-weight:700;color:var(--gold-text);margin-bottom:var(--space-3)}
.faq-item{border-bottom:1px solid var(--border-subtle)}
.contact-line a{color:#F5D78A;text-decoration:underline}
.mobile-nav a{display:flex;align-items:center;min-height:48px;font-family:var(--font-display);font-size:1.25rem;color:#F0EBE0;text-decoration:none;padding:4px 0}
.footer-inner{max-width:var(--max-w);margin:0 auto var(--space-8);display:grid;grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr 1fr;gap:var(--space-7)}
.room-carousel-dot.is-active{ background:var(--green-mid); }
.footer-inner{max-width:var(--max-w);margin:0 auto var(--space-8);display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr 1fr;gap:var(--space-7)}
.perk-item h3{font-size:1.1rem;color:var(--green-dark);margin-bottom:6px}
.cta-section h2{color:#fff}
.breadcrumbs ol{list-style:none;display:flex;gap:10px;flex-wrap:wrap;color:var(--text-secondary);font-size:.92rem}
.nav-book:hover { background: var(--burgundy-hover) !important; }
.faq-item h3{margin-bottom:8px}
.max-1000{max-width:1000px}
.mobile-nav-close{align-self:flex-end;background:none;border:2px solid rgba(240,235,224,.5);border-radius:var(--radius-sm,3px);color:#F0EBE0;font-size:1.4rem;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(20,42,22,.56) 0%, rgba(20,42,22,.18) 42%, rgba(20,42,22,.18) 58%, rgba(20,42,22,.68) 100%)}
.perk-item:last-child{border-bottom:none}
.section-label,.eyebrow{display:block;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;font-weight:700;color:var(--gold-text);margin-bottom:16px}
.chip{display:inline-block;background:var(--bg-sage);border:1px solid #A8C8AB;color:var(--green-dark);font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:5px 10px;border-radius:999px}
.fit-good h3{color:var(--green-dark)}
.eyebrow-card{display:inline-block;background:#F7F4EE;color:#222;border:1px solid #D6D0C5;padding:8px 14px;border-radius:999px;font-size:.86rem;font-weight:700;margin:6px}
.hvi-next-step{background:#FFFFFF;border:1px solid #E8E0D4;border-radius:8px;padding:18px 16px;text-align:center;}
.nav-logo-img{height:50px;width:auto;display:block;flex-shrink:0}
.table-lite th{background:var(--bg-sage)}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.25;color:var(--green-dark)}
.hero h1 em{color:#F5D78A;font-style:italic}
.external-icon{display:inline-block;margin-left:.28em;line-height:1;font-size:.92em;vertical-align:baseline}
.nav-book:hover{background:var(--burgundy-hover)!important;color:#fff!important}
.subtle-links { margin-top: 18px; font-size: .95rem; line-height: 1.7; color: rgba(255,255,255,.82); }
.fit-box h3{font-size:1rem;margin-bottom:var(--space-4)}
.nav-logo span{display:block;font-family:var(--font-body);font-size:.6rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-text);margin-top:2px}
.feature-list li::before{content:'✦';color:var(--gold-deco);font-size:.7rem;margin-top:5px;flex-shrink:0}
.nav-logo-img { height: 50px; width: auto; display: block; }
.cta-section p.note{color:rgba(255,255,255,.70);font-size:.88rem;margin-top:var(--space-5)}
.page-hero > p { color: var(--text-secondary); font-size:1.05rem; max-width:680px; margin:0 auto; line-height:1.7; }
.s-cream{background:var(--bg-cream)}
@media (hover:hover){ .breakfast-gallery picture img:hover{ transform:scale(1.02); box-shadow:0 12px 28px rgba(0,0,0,0.12); } }
.feature-list{list-style:none}
body { font-family: var(--font-body); background: var(--bg-page); color: var(--text-primary); line-height: 1.7; }
.intro-highlights{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.hero-content { position: relative; z-index: 1; padding: 64px var(--space-5); max-width: 820px; background: rgba(20,42,22,.38); border-radius: var(--radius-md); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); border: 1px solid rgba(255,255,255,.12); }
.hero-content a { color: #F5D78A; text-decoration-color: rgba(245,215,138,.5); }
.site-header{position:sticky;top:0;z-index:1000;background:var(--bg-nav);border-bottom:2px solid var(--bg-sage-mid);box-shadow:var(--shadow-sm)}
.dropdown{position:relative}
.perk-item{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-5) 0;border-bottom:1px solid var(--border-subtle)}
.dropdown-toggle:hover{background:var(--bg-sage)}
h2{font-size:clamp(1.9rem,4vw,2.8rem);margin-bottom:20px}
.card-pad{padding:32px}
.s-sage{background:var(--bg-sage)}
.next-step-links li a { display: inline-block; background: var(--bg-white); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: 12px 20px; font-weight: 700; color: var(--green-dark); text-decoration: none; font-size: .92rem; transition: box-shadow .15s, transform .15s; }
h1,h2,h3,h4 { font-family: var(--font-display); color: var(--green-dark); line-height: 1.25; }
p.lead{font-size:1.08rem;line-height:1.8;color:var(--text-secondary)}
.section-sm{padding:56px 24px}
.mx-auto{margin-left:auto;margin-right:auto}
.site-footer{background:var(--bg-footer);color:var(--text-inverse);padding:var(--space-8) var(--space-5) var(--space-6)}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;cursor:pointer;background:none;border:2px solid var(--green-dark);border-radius:var(--radius-sm);padding:8px;min-width:44px;min-height:44px}
.cta-section .divider{background:var(--gold-deco-mid);margin:0 auto 24px}
.dropdown-menu li a { display: block; padding: 10px 18px; font-size: .85rem; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--text-primary); text-decoration: none; border-bottom: 1px solid #F0EBE0; }
.dropdown-toggle{background:none;border:none;cursor:pointer;color:var(--green-dark);font-family:var(--font-body);font-size:.84rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:10px 11px;border-radius:var(--radius-sm);transition:background .15s,color .15s;white-space:nowrap;min-height:44px;display:flex;align-items:center;gap:4px}
body.mobile-nav-open { overflow: hidden; }
.btn-green{background:var(--green-mid);color:#fff;border-color:var(--green-mid)}
.dropdown-menu{display:none;position:absolute;top:100%;left:0;background:#fff;min-width:210px;padding:6px 0;border:1px solid var(--border-subtle);border-top:3px solid var(--green-mid);border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);list-style:none;z-index:999}
.btn-outline{background:transparent;border-color:rgba(255,255,255,.8);color:#fff}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.gallery-caption{font-size:.9rem;color:var(--text-secondary);margin-top:10px}
.footer-bottom{max-width:var(--max-w);margin:0 auto;border-top:1px solid rgba(255,255,255,.15);padding-top:var(--space-5);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;font-size:.8rem;color:rgba(240,235,224,.55)}
.comparison-table { width: 100%; border-collapse: collapse; }
.nav-brand{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0}
.hvi-next-step a{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:.97rem;color:#1A5730;text-decoration:none;}
.dropdown-menu{display:none;position:absolute;top:100%;left:0;background:var(--bg-white);min-width:210px;border:1px solid var(--border-subtle);border-top:3px solid var(--green-mid);border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);list-style:none;z-index:999}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%}
@media(max-width:600px){.grid-2,.grid-3{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr}.section{padding:var(--space-8) var(--space-4)}.next-steps-grid{grid-template-columns:1fr}}
.section{padding:var(--space-9) var(--space-5)}
.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important}
.gallery-card img{border-radius:var(--radius-md);width:100%;height:auto;box-shadow:var(--shadow-md)}
.card-body{padding:var(--space-5)}
.info-box{background:#fff;border:1px solid var(--border-subtle);border-radius:8px;padding:18px;box-shadow:var(--shadow-sm)}
.breadcrumbs li+li::before{content:'›';margin-right:10px;color:var(--gold-text)}
.footer-bottom { max-width: var(--max-w); margin: 0 auto; border-top: 1px solid rgba(255,255,255,.15); padding-top: var(--space-5); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-3); font-size: .8rem; color: rgba(240,235,224,.75); }
.dropdown-toggle .chevron{font-size:.7em;transition:transform .2s;display:inline-block}
.next-step-item p{font-size:.85rem;color:var(--text-secondary);margin-top:var(--space-2)}
img{max-width:100%;height:auto;display:block}
.info-box h3{font-size:1.05rem;margin:0 0 10px;color:var(--green-dark)}
.room-carousel-slide img{ width:100%; height:auto; border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.hero{position:relative;min-height:72vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--green-dark)}
.nearby-list li:last-child{border-bottom:none}
.fit-box{background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-6)}
.nav-links a:hover, .dropdown-toggle:hover { background: var(--bg-sage); }
.next-steps{background:var(--bg-cream);border-top:2px solid #A8C8AB;padding:var(--space-7) var(--space-5)}
.perk-item{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle)}
body{font-family:var(--font-body);background:var(--bg-page);color:var(--text-primary);line-height:1.7}
.info-box ul{margin:.5rem 0 0;padding-left:1.25rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.hero h1{font-size:clamp(2.5rem,5.8vw,4.4rem);color:#fff;margin-bottom:18px}
.site-footer { background: var(--bg-footer); color: var(--text-inverse); padding: 56px 24px 32px; }
.room-carousel-dot{ width:10px; height:10px; border-radius:999px; background:#cbbda7; border:none; padding:0; cursor:pointer; }
a { color: var(--green-dark); }
.comparison-table th,.comparison-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border-subtle);font-size:.92rem}
.fit-box h3{font-size:1.1rem;margin-bottom:var(--space-4)}
.site-header { background: #FFFEF9; border-bottom: 1px solid var(--border-subtle); position: sticky; top: 0; z-index: 1000; }
.nav-links a, .dropdown-toggle { font-family: var(--font-body); font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--green-dark); text-decoration: none; padding: 10px 12px; border-radius: 4px; background: none; border: none; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 4px; }
.day-activity strong{color:#333;display:block;margin-bottom:.2rem}
.day-block{margin:2.5rem 0;padding:1.5rem;background:#fff;border-left:4px solid #6B2D3E;border-radius:0 8px 8px 0}
.skip-link{position:absolute;top:-60px;left:16px;background:var(--green-dark);color:#fff;padding:12px 20px;border-radius:0 0 var(--radius-md) var(--radius-md);font-weight:700;text-decoration:none;z-index:10000}
.nav-links a,.dropdown-toggle{display:flex;align-items:center;min-height:44px;padding:10px 11px;color:var(--green-dark);font-size:.84rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border-radius:var(--radius-sm);background:none;border:none;cursor:pointer;white-space:nowrap;font-family:var(--font-body)}
.cta-section .divider{background:var(--gold-deco-mid)}
.btn:active{transform:translateY(0)}
.section-label { font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-text); margin-bottom: var(--space-3); }
.highlight strong{display:block;font-family:var(--font-display);font-size:1.08rem;color:var(--green-dark);margin-bottom:4px}
.nearby-list .place{font-weight:700;color:var(--text-primary)}
.hero-slide { position:absolute; inset:0; opacity:0; transition: opacity 900ms ease; }
@media (max-width: 900px) { .comparison-grid-3 { grid-template-columns: 1fr; } .comparison-hero { min-height: auto; } }
.mobile-nav{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;flex-direction:column;padding:20px 24px 40px;gap:4px;overflow-y:auto}
.comparison-yes { color: var(--green-mid); font-weight: 700; }
.comparison-table th{background:var(--green-dark);color:#fff;font-family:var(--font-body);font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.faq-item{border-bottom:1px solid var(--border-subtle);padding:var(--space-5) 20px}
.cta-section .lead{color:rgba(255,255,255,.88)}
.footer-brand p{font-size:.88rem;line-height:1.7;max-width:320px;color:rgba(240,235,224,.82)}
.footer-col a{color:rgba(240,235,224,.74);font-size:.88rem;text-decoration:underline;text-underline-offset:3px}
.nav-brand { display: flex; align-items: center; gap: var(--space-3); flex-shrink: 0; text-decoration: none; margin-right: auto; }
@media(max-width:900px){.two-col,.info-grid{grid-template-columns:1fr}.hero-content{max-width:900px}.next-steps-grid{grid-template-columns:1fr 1fr}}
.room-carousel-slide{ flex:0 0 100%; scroll-snap-align:start; position:relative; }
.breadcrumbs { padding: 18px 24px 0; }
.mobile-nav.open{display:flex}
.footer-brand p{font-size:.88rem;line-height:1.7;max-width:280px;color:rgba(240,235,224,.82)}
.nav-book{background:var(--burgundy)!important;color:#fff!important;padding:10px 18px!important;border-radius:var(--radius-sm)!important;text-decoration:none!important}
.cta-section{background:var(--green-dark);text-align:center;color:#fff}
:root{--bg-page:#FDFAF5;--bg-white:#FFFFFF;--bg-cream:#F5EFE3;--bg-sage:#EDF5EE;--bg-sage-mid:#D6EAD8;--bg-nav:#FFFEF9;--bg-footer:#2D4A2D;--text-primary:#1C1C1C;--text-secondary:#4F4F4F;--text-muted:#5C5C5C;--text-inverse:#F0EBE0;--green-dark:#1A3C1E;--green-mid:#2D5E32;--green-light:#3D7A43;--burgundy:#6B1A1A;--burgundy-hover:#852020;--gold-text:#5C3A00;--gold-deco:#B08D57;--gold-deco-mid:#C8A97A;--focus-ring:#1A5730;--focus-bg:#E8F5E9;--border-subtle:#D8D0C0;--border-mid:#B8AFA0;--shadow-sm:0 2px 8px rgba(0,0,0,.07);--shadow-md:0 4px 20px rgba(0,0,0,.09);--shadow-lg:0 8px 40px rgba(0,0,0,.12);--font-display:'Playfair Display',Georgia,'Times New Roman',serif;--font-body:'Lato',Arial,Helvetica,sans-serif;--max-w:1200px;--radius-sm:3px;--radius-md:6px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:88px}
.feature-card{background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm)}
.footer-col ul { list-style: none; padding: 0; }
.breadcrumbs { font-size: .92rem; color: rgba(255,255,255,.88); margin-bottom: var(--space-4); }
.hero-utility .eyebrow-card{box-shadow:0 2px 8px rgba(0,0,0,.06)}
.hero-btns{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap}
.mobile-nav-close { position: absolute; top: 20px; right: 20px; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--green-dark); padding: 8px; min-height: 44px; min-width: 44px; }
.btn-primary{background:var(--burgundy);color:#fff;border-color:var(--burgundy)}
.feature-card h3{color:var(--green-dark);margin-bottom:var(--space-3)}
.comparison-table th, .comparison-table td { padding: 16px 18px; border-bottom: 1px solid var(--border-subtle); vertical-align: top; text-align: left; }
.mb-40{margin-bottom:40px}
.nav-links>li{position:relative}
.skip-link:focus{top:0}
.mobile-nav a { color: var(--green-dark); font-family: var(--font-display); font-size: 1.4rem; padding: 12px 24px; text-decoration: none; min-height: 48px; display: flex; align-items: center; }
@media(max-width:600px){.grid-2,.fit-grid{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr}.section{padding:var(--space-8) var(--space-4)}.next-steps-grid{grid-template-columns:1fr}}
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.hero-slides { position:absolute; inset:0; }
p { margin-bottom: 1rem; }
.footer-col li{margin-bottom:var(--space-2)}
.footer-col a{color:rgba(240,235,224,.72);font-size:.88rem;text-decoration:underline;text-underline-offset:3px;transition:color .15s}
.max-800{max-width:800px}
.breakfast-gallery picture img{ width:100%; height:auto; border-radius:12px; box-shadow:0 8px 20px rgba(0,0,0,0.08); transition:transform .35s ease, box-shadow .35s ease; }
.fit-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);margin-top:var(--space-5)}
h1,h2,h3{font-family:var(--font-display);line-height:1.2;color:var(--green-dark)}
.hero-utility{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
h2{font-size:clamp(1.75rem,3.8vw,2.6rem);margin-bottom:var(--space-5)}
.mobile-nav-close{position:absolute;top:var(--space-5);right:var(--space-5);background:none;border:2px solid var(--green-dark);border-radius:var(--radius-sm);color:var(--green-dark);font-size:1.4rem;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.fit-no{background:#FDF5F5;border:1px solid #DDB8B8;border-top:4px solid #A33}
.dropdown-menu li a:hover{background:var(--bg-sage)}
.comparison-table th:first-child{border-radius:var(--radius-sm) 0 0 0}
.comparison-table th:last-child{border-radius:0 var(--radius-sm) 0 0}
.dropdown::after{content:"";display:block;position:absolute;left:0;right:0;top:100%;height:16px}
.last-updated{text-align:center;font-size:.8rem;color:var(--text-muted);padding:var(--space-5)}
.page-hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--gold-deco),transparent)}
.footer-bottom a:hover{color:#F5D78A}
.btn-primary:hover{background:var(--burgundy-hover);border-color:var(--burgundy-hover);color:#fff;text-decoration:none}
.dropdown-menu li a{display:flex;align-items:center;padding:12px 18px;font-size:.85rem;font-weight:700;color:var(--green-dark);text-transform:none;letter-spacing:normal;text-decoration:none;border-bottom:1px solid var(--bg-cream);min-height:44px;transition:background .15s}
.checklist li:last-child{border-bottom:none}
.hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 8px; }
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.comparison-hero .hero-content { max-width: 880px; margin: 0 auto; text-align: left; }
.mobile-nav a:hover{color:#F5D78A}
.s-page{background:var(--bg-page)}
.subtle-links a { color: #F5D78A; }
@media (prefers-reduced-motion: reduce){ .hero-slide { transition:none; } }
.btn-outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,42,22,.52) 0%, rgba(20,42,22,.15) 40%, rgba(20,42,22,.20) 60%, rgba(20,42,22,.65) 100%); }
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.last-updated { font-size: .82rem; color: var(--text-secondary); margin-top: var(--space-5); font-style: italic; }
