﻿  /* ---------- Tokens ---------- */
  :root{
    --ink:#211c12;
    --ink-soft:#4a4234;
    --parchment:#f7f1e3;
    --parchment-2:#efe4cc;
    --card:#fffdf7;
    --forest:#0e2b23;
    --forest-2:#153a2f;
    --forest-3:#1c4a3c;
    --gold:#b98f47;
    --gold-bright:#d4ad6a;
    --sage:#7c9184;
    --cream:#f4eddb;
    --line:rgba(33,28,18,0.14);
    --line-on-dark:rgba(244,237,219,0.18);
    --shadow:0 18px 40px -22px rgba(14,43,35,0.35);
    --radius:14px;
    --serif:Georgia,'Iowan Old Style','Palatino Linotype','Times New Roman',serif;
    --sans:'Segoe UI',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
    --script:'Segoe Script','Brush Script MT',cursive;
    --maxw:1180px;
  }
  @media (prefers-color-scheme: dark){
    :root{
      --ink:#f2ecd9;
      --ink-soft:#cfc6ac;
      --parchment:#0c1e18;
      --parchment-2:#122c23;
      --card:#132f26;
      --forest:#081712;
      --forest-2:#0f261e;
      --forest-3:#173a2e;
      --line:rgba(244,237,219,0.14);
      --shadow:0 18px 40px -18px rgba(0,0,0,0.55);
    }
  }
  :root[data-theme="dark"]{
    --ink:#f2ecd9; --ink-soft:#cfc6ac; --parchment:#0c1e18; --parchment-2:#122c23;
    --card:#132f26; --forest:#081712; --forest-2:#0f261e; --forest-3:#173a2e;
    --line:rgba(244,237,219,0.14); --shadow:0 18px 40px -18px rgba(0,0,0,0.55);
  }
  :root[data-theme="light"]{
    --ink:#211c12; --ink-soft:#4a4234; --parchment:#f7f1e3; --parchment-2:#efe4cc;
    --card:#fffdf7; --forest:#0e2b23; --forest-2:#153a2f; --forest-3:#1c4a3c;
    --line:rgba(33,28,18,0.14); --shadow:0 18px 40px -22px rgba(14,43,35,0.35);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;} }

  body{
    margin:0;
    background:var(--parchment);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding-inline:clamp(1.1rem,4vw,2.5rem);}

  h1,h2,h3,h4{font-family:var(--serif); font-weight:400; margin:0; text-wrap:balance; color:var(--ink);}
  .eyebrow{
    font-family:var(--sans); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--gold); font-weight:600; display:flex; align-items:center; gap:0.6em;
  }
  .eyebrow::before{content:""; width:1.4em; height:1px; background:var(--gold);}

  p{margin:0;}
  .lede{color:var(--ink-soft); max-width:60ch;}

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:0.5em;
    font-family:var(--sans); font-size:0.9rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
    padding:0.85em 1.7em; border-radius:999px; border:1px solid transparent;
    cursor:pointer; text-decoration:none; transition:transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
  }
  .btn:focus-visible{outline:2px solid var(--gold-bright); outline-offset:3px;}
  .btn-gold{background:var(--gold); color:#1b1508;}
  .btn-gold:hover{background:var(--gold-bright); transform:translateY(-1px);}
  .btn-ghost-dark{border-color:var(--line-on-dark); color:var(--cream);}
  .btn-ghost-dark:hover{border-color:var(--gold-bright); color:var(--gold-bright);}
  .btn-ghost-light{border-color:var(--line); color:var(--ink);}
  .btn-ghost-light:hover{border-color:var(--gold); color:var(--gold);}

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:40; background:var(--forest); color:var(--cream);
    border-bottom:1px solid var(--line-on-dark);
  }
  .nav{display:flex; align-items:center; justify-content:space-between; padding-block:0.9rem; gap:1.5rem;}
  .brand{display:flex; align-items:center; gap:0.7rem; text-decoration:none; color:var(--cream);}
  .brand svg{width:30px; height:30px; flex:none;}
  .brand-word{font-family:var(--serif); letter-spacing:0.12em; font-size:0.95rem; line-height:1.15;}
  .brand-word small{display:block; font-family:var(--script); letter-spacing:0; font-size:1.05rem; color:var(--gold-bright); margin-top:2px;}
  .brand-logo-chip{background:#fff; border-radius:10px; padding:0.35rem 0.6rem; display:flex; align-items:center; flex:none;}
  .brand-logo-chip img{height:38px; width:auto; display:block;}
  .foot-logo-chip{background:#fff; border-radius:12px; padding:0.7rem 1.1rem; display:inline-flex; align-items:center; margin-bottom:1rem;}
  .foot-logo-chip img{height:52px; width:auto; display:block;}

  /* Product gallery strip */
  .product-gallery{display:flex; gap:0.9rem; flex-wrap:wrap; margin-top:0.9rem;}
  .product-gallery img{width:130px; height:130px; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line); box-shadow:var(--shadow);}

  /* Hamper feature photo */
  .hamper-feature{display:flex; gap:1.6rem; align-items:center; flex-wrap:wrap; margin-bottom:1.6rem;}
  .hamper-feature img{width:150px; height:150px; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line-on-dark); box-shadow:var(--shadow); flex:none;}
  .hamper-feature p{color:var(--cream); opacity:0.82; max-width:44ch; font-size:0.92rem;}

  /* Panel feature photo (light background variant, used in price-list category panels) */
  .panel-feature{display:flex; gap:1.4rem; align-items:center; flex-wrap:wrap; margin-bottom:1.8rem;}
  .panel-feature img{width:140px; height:140px; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line); box-shadow:var(--shadow); flex:none;}
  .panel-feature p{color:var(--ink-soft); opacity:0.9; max-width:46ch; font-size:0.92rem;}

  /* Package/location photo strips */
  .photo-strip{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem; margin-bottom:2.2rem;}
  .photo-strip img{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line-on-dark); box-shadow:var(--shadow);}
  .loc-card .loc-photo{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); margin-bottom:1.2rem; border:1px solid var(--line-on-dark);}
  nav ul{list-style:none; display:flex; gap:1.7rem; margin:0; padding:0; font-size:0.8rem;}
  nav ul a{text-decoration:none; opacity:0.88; transition:opacity .15s ease, color .15s ease; text-transform:uppercase; font-weight:700; letter-spacing:0.06em;}
  nav ul a:hover{opacity:1; color:var(--gold-bright);}
  nav ul a[aria-current="page"]{opacity:1; color:var(--gold-bright);}
  .nav-actions{display:flex; align-items:center; gap:0.9rem;}
  .nav-toggle{display:none; align-items:center; justify-content:center; background:none; border:1px solid rgba(244,237,219,0.4); color:var(--cream); width:40px; height:36px; border-radius:var(--radius); cursor:pointer;}
  .nav-toggle svg{width:20px; height:20px;}
  #nav-check{display:none;}

  @media (max-width:880px){
    nav ul{position:absolute; top:100%; left:0; right:0; background:var(--forest); flex-direction:column; gap:0; padding:0.5rem 0; border-bottom:1px solid var(--line-on-dark); max-height:0; overflow:hidden; transition:max-height .25s ease;}
    nav ul a{display:block; padding:0.85rem clamp(1.1rem,4vw,2.5rem);}
    #nav-check:checked ~ nav ul{max-height:400px;}
    .nav-toggle{display:flex;}
    .nav-actions .btn{display:none;}
  }

  /* ---------- Utility bar (dual-tier header, Mediclinic-style) ---------- */
  .util-bar{background:var(--forest-2); color:var(--cream); border-bottom:1px solid var(--line-on-dark); font-size:0.78rem;}
  .util-bar .wrap{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:0.5rem; flex-wrap:wrap;}
  .util-contacts{display:flex; align-items:center; gap:0.7rem; flex-wrap:wrap;}
  .util-contacts a{text-decoration:none; opacity:0.82; transition:opacity .15s ease, color .15s ease;}
  .util-contacts a:hover{opacity:1; color:var(--gold-bright);}
  .util-contacts .sep{opacity:0.4;}
  .util-social{display:flex; align-items:center; gap:0.9rem;}
  .util-social a{display:inline-flex; opacity:0.82; transition:opacity .15s ease, color .15s ease;}
  .util-social a:hover{opacity:1; color:var(--gold-bright);}
  .util-social svg{width:15px; height:15px;}
  @media (max-width:700px){ .util-bar{display:none;} }

  /* ---------- Hero ---------- */
  .hero{
    position:relative; color:var(--cream); overflow:hidden; display:flex; align-items:flex-end;
    min-height:clamp(480px,62vw,640px);
    background:
      linear-gradient(180deg, rgba(8,23,18,0.74) 0%, rgba(8,23,18,0.9) 68%, var(--forest) 100%),
      url('images/hero-spa-2.jpg') center/cover no-repeat;
  }
  .hero .wrap{padding-block:clamp(2.6rem,7vw,4.5rem); width:100%; position:relative; z-index:1;}
  .hero-intro{max-width:640px; margin-bottom:3.6rem;}
  .hero h1{font-size:clamp(2.1rem,1.5rem + 2.6vw,3.5rem); line-height:1.08; color:var(--cream); margin-block:0.55em 0.5em;}
  .hero h1 em{font-style:italic; color:var(--gold-bright);}
  .hero .lede{color:var(--cream); opacity:0.85; max-width:50ch;}
  .hero-ctas{display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:1.8rem;}
  .hero-quote{font-family:var(--serif); font-style:italic; font-size:0.98rem; line-height:1.5; color:var(--cream); opacity:0.85; max-width:50ch; margin-top:1.8rem; padding-top:1.6rem; border-top:1px solid var(--line-on-dark);}
  .hero-quote span{display:block; margin-top:0.6rem; font-family:var(--sans); font-style:normal; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-bright);}

  /* ---------- Plan-your-visit bar ---------- */
  .visit-bar{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
    box-shadow:var(--shadow); padding:1.4rem; margin-top:clamp(-3.2rem,-4vw,-2.2rem);
    position:relative; z-index:5;
  }
  .visit-bar form{display:grid; grid-template-columns:0.95fr 1.15fr 0.8fr 0.8fr auto; gap:0.9rem; align-items:end;}
  @media (max-width:1050px){ .visit-bar form{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .visit-bar form{grid-template-columns:1fr;} }
  .visit-bar .btn{grid-column:auto;}
  @media (max-width:1050px){ .visit-bar .btn{grid-column:1 / -1;} }
  .field{display:flex; flex-direction:column; gap:0.4rem; min-width:0;}
  .field label{font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft);}
  .field select, .field input{
    width:100%; min-width:0; font-family:var(--sans); font-size:0.92rem; padding:0.7em 0.8em; border-radius:var(--radius);
    border:1px solid var(--line); background:var(--parchment); color:var(--ink);
  }
  .visit-bar .btn{width:100%; white-space:nowrap;}

  /* Booking CAPTCHA */
  .captcha-check{grid-column:1/-1; background:var(--parchment-2); border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.1rem;}
  .captcha-prompt{font-size:0.86rem; color:var(--ink-soft); margin-bottom:0.7rem;}
  .captcha-prompt strong{color:var(--ink); text-transform:capitalize;}
  .captcha-tiles{display:flex; gap:0.7rem; flex-wrap:wrap;}
  .captcha-tile{all:unset; cursor:pointer; box-sizing:border-box; display:flex; flex-direction:column; align-items:center; gap:0.3rem; width:76px; padding:0.6rem 0.4rem; border:1.5px solid var(--line); border-radius:10px; background:var(--card); transition:border-color .15s ease;}
  .captcha-tile svg{width:34px; height:24px; color:var(--ink-soft);}
  .captcha-tile span{font-size:0.68rem; letter-spacing:0.04em; color:var(--ink-soft); text-transform:uppercase;}
  .captcha-tile:hover{border-color:var(--gold);}
  .captcha-tile.correct{border-color:#3f8f5f; background:rgba(63,143,95,0.12);}
  .captcha-tile.correct svg, .captcha-tile.correct span{color:#2f6b46;}
  .captcha-tile.wrong{animation:captcha-shake .35s ease; border-color:#b0483f;}
  .captcha-tile[disabled]{opacity:0.55; cursor:default; pointer-events:none;}
  .captcha-status{margin-top:0.6rem; font-size:0.8rem; color:var(--ink-soft); min-height:1.1em;}
  .captcha-status.ok{color:#2f6b46; font-weight:600;}
  .captcha-status.err{color:#b0483f;}
  @keyframes captcha-shake{ 0%,100%{transform:translateX(0);} 25%{transform:translateX(-4px);} 75%{transform:translateX(4px);} }

  /* ---------- Sections ---------- */
  section{padding-block:clamp(3.2rem,7vw,5.5rem);}
  .section-head{display:flex; flex-direction:column; gap:0.9rem; max-width:62ch; margin-bottom:clamp(2rem,5vw,3rem);}
  .section-head h2{font-size:clamp(1.8rem,1.4rem + 1.6vw,2.6rem);}
  .section-head.centered{max-width:none; align-items:center; text-align:center; margin-inline:auto;}
  .section-head.centered .eyebrow{justify-content:center;}
  .section-head.centered .eyebrow::before{display:none;}
  .section-head.centered .lede{max-width:56ch;}
  .on-forest{background:var(--forest); color:var(--cream);}
  .on-forest .lede{color:var(--cream); opacity:0.82;}
  .on-forest h2{color:var(--cream);}

  /* Sub-page banner (e.g. Price List page) */
  .page-head{
    background:
      radial-gradient(1100px 420px at 82% -10%, rgba(212,173,106,0.14), transparent 60%),
      linear-gradient(180deg, var(--forest) 0%, var(--forest-2) 100%);
    color:var(--cream);
  }
  .page-head .wrap{padding-block:clamp(2.6rem,6vw,4rem);}
  .page-head h1{font-size:clamp(1.9rem,1.5rem + 2vw,3rem); color:var(--cream); margin-block:0.4em 0.5em;}
  .page-head .lede{color:var(--cream); opacity:0.82; max-width:60ch;}
  .page-head .hero-ctas{display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:1.6rem;}

  /* Services overview */
  .service-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1.1rem;}
  .service-card{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
    display:flex; flex-direction:column; text-decoration:none; color:var(--ink);
    box-shadow:var(--shadow);
    transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
  }
  .service-card:hover{border-color:var(--gold); transform:translateY(-3px);}
  .service-card .thumb{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--forest-2);}
  .service-card .thumb img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease;}
  .service-card:hover .thumb img{transform:scale(1.06);}
  .service-card .thumb .icon-badge{
    position:absolute; bottom:0.65rem; left:0.65rem; width:32px; height:32px; padding:7px;
    background:var(--forest); border-radius:50%; box-shadow:0 4px 10px rgba(0,0,0,0.3);
  }
  .service-card .thumb .icon-badge svg{width:100%; height:100%; color:var(--gold-bright);}
  .service-card .body{padding:1.2rem 1.3rem 1.4rem; display:flex; flex-direction:column; gap:0.7rem; flex:1;}
  .service-card h3{font-size:1.15rem;}
  .service-card p{color:var(--ink-soft); font-size:0.92rem;}
  .service-card .go{
    display:inline-flex; align-items:center; justify-content:center; gap:0.4em; width:fit-content;
    font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; font-weight:700;
    color:var(--gold-bright); background:var(--forest); padding:0.55em 1.1em; border-radius:999px; margin-top:auto;
  }

  /* Featured treatments */
  .feat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.4rem;}
  .feat-card{background:var(--forest-2); border:1px solid var(--line-on-dark); border-radius:var(--radius); padding:1.6rem; display:flex; flex-direction:column; gap:0.6rem;}
  .feat-card .tag{font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-bright);}
  .feat-card h3{color:var(--cream); font-size:1.2rem;}
  .feat-card p{color:var(--cream); opacity:0.75; font-size:0.9rem;}
  .feat-price{margin-top:auto; display:flex; align-items:baseline; justify-content:space-between; padding-top:0.8rem; border-top:1px solid var(--line-on-dark);}
  .feat-price .amt{font-family:var(--serif); font-size:1.35rem; color:var(--gold-bright); font-variant-numeric:tabular-nums;}
  .feat-price .from{font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--cream); opacity:0.6;}

  /* Price list — catalogue tabs */
  .catalogue{display:grid; grid-template-columns:auto 1fr; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--card);}
  @media (max-width:760px){ .catalogue{grid-template-columns:1fr;} }
  .cat-tabs{display:flex; flex-direction:column; background:var(--parchment-2); border-right:1px solid var(--line);}
  @media (max-width:760px){ .cat-tabs{flex-direction:row; overflow-x:auto; border-right:none; border-bottom:1px solid var(--line);} }
  .cat-tab{
    all:unset; cursor:pointer; padding:1.1rem 0.9rem; display:flex; align-items:center; gap:0.6rem;
    font-family:var(--sans); font-size:0.82rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-soft);
    border-left:3px solid transparent; white-space:nowrap;
  }
  @media (max-width:760px){ .cat-tab{border-left:none; border-bottom:3px solid transparent;} }
  .cat-tab[aria-selected="true"]{color:var(--ink); background:var(--card); border-left-color:var(--gold); font-weight:600;}
  @media (max-width:760px){ .cat-tab[aria-selected="true"]{border-bottom-color:var(--gold);} }
  .cat-tab .stars{color:var(--gold); font-size:0.7rem; letter-spacing:1px; margin-left:auto;}
  @media (max-width:760px){ .cat-tab .stars{display:none;} }

  .cat-panel{display:none; padding:clamp(1.4rem,3vw,2.4rem);}
  .cat-panel.active{display:block;}
  .cat-panel h4{font-size:1.05rem; color:var(--gold); margin-bottom:0.7rem; padding-bottom:0.5rem; border-bottom:1px solid var(--line);}
  .cat-panel .subgroup{margin-bottom:2rem;}
  .cat-panel .subgroup:last-child{margin-bottom:0;}
  table.pricetable{width:100%; border-collapse:collapse; font-size:0.92rem;}
  table.pricetable tr{border-bottom:1px dotted var(--line);}
  table.pricetable tr:last-child{border-bottom:none;}
  table.pricetable td{padding:0.5em 0.2em;}
  table.pricetable td.item{color:var(--ink);}
  table.pricetable td.price{text-align:right; font-variant-numeric:tabular-nums; color:var(--ink-soft); white-space:nowrap; padding-left:1rem;}
  .table-scroll{overflow-x:auto;}
  .note-line{font-size:0.82rem; color:var(--ink-soft); font-style:italic; margin-top:0.6rem;}

  /* Packages */
  .pkg-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.2rem;}
  .pkg-card{border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; background:var(--card); display:flex; flex-direction:column; gap:1rem; box-shadow:var(--shadow);}
  .pkg-card.featured{border-color:var(--gold); box-shadow:var(--shadow);}
  .pkg-name{display:flex; align-items:baseline; justify-content:space-between;}
  .pkg-name h3{font-size:1.2rem;}
  .pkg-price{font-family:var(--serif); font-size:1.6rem; color:var(--gold); font-variant-numeric:tabular-nums;}
  .pkg-card ul{margin:0; padding-left:1.1rem; color:var(--ink-soft); font-size:0.88rem; display:flex; flex-direction:column; gap:0.35rem;}
  .pkg-max{font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--sage);}

  .hamper-table{width:100%; border-collapse:collapse; font-size:0.9rem;}
  .hamper-table th{text-align:left; font-family:var(--sans); font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); border-bottom:1px solid var(--line); padding:0.6em 0.6em;}
  .hamper-table td{padding:0.75em 0.6em; border-bottom:1px dotted var(--line); vertical-align:top;}
  .hamper-table td.price{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--gold);}

  /* Policy callout */
  .policy-box{background:var(--parchment-2); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem clamp(1.4rem,4vw,2.2rem); display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.6rem;}
  .policy-box h4{font-size:0.95rem; margin-bottom:0.5rem; color:var(--ink);}
  .policy-box p{font-size:0.86rem; color:var(--ink-soft);}

  /* Locations */
  .loc-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.4rem;}
  @media (max-width:760px){ .loc-grid{grid-template-columns:1fr;} }
  .loc-card{background:var(--forest-2); border:1px solid var(--line-on-dark); border-radius:var(--radius); padding:1.8rem; color:var(--cream);}
  .loc-card .eyebrow{color:var(--gold-bright);}
  .loc-card .eyebrow::before{background:var(--gold-bright);}
  .loc-card h3{color:var(--cream); font-size:1.3rem; margin-top:0.5rem;}
  .loc-card address{font-style:normal; color:var(--cream); opacity:0.85; margin-top:0.6rem; line-height:1.6;}
  .loc-card .contact-line{margin-top:1rem; display:flex; flex-direction:column; gap:0.35rem; font-size:0.92rem;}
  .loc-card .contact-line a{text-decoration:none; color:var(--gold-bright);}
  .loc-card .loc-note{margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line-on-dark); font-size:0.84rem; color:var(--cream); opacity:0.85; line-height:1.5;}
  .loc-card .loc-note strong{color:var(--gold-bright); font-weight:600;}
  .loc-card .loc-note a{color:var(--gold-bright); text-decoration:none;}
  .hours-strip{display:flex; gap:2.5rem; flex-wrap:wrap; margin-top:2.2rem; padding-top:1.6rem; border-top:1px solid var(--line-on-dark); color:var(--cream);}
  .hours-strip div span{display:block; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-bright); margin-bottom:0.3rem;}

  footer{background:var(--forest); color:var(--cream); border-top:1px solid var(--line-on-dark);}
  .foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2.4rem; padding-block:3rem;}
  @media (max-width:700px){ .foot-grid{grid-template-columns:1fr;} }
  .foot-grid h4{font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-bright); margin-bottom:0.9rem;}
  .foot-grid ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.55rem; font-size:0.9rem;}
  .foot-grid ul a{text-decoration:none; opacity:0.85;}
  .foot-grid ul a:hover{opacity:1; color:var(--gold-bright);}
  .social-links a{display:inline-flex; align-items:center; gap:0.55em;}
  .social-links svg{width:18px; height:18px; flex:none; color:var(--gold-bright);}
  .foot-bottom{border-top:1px solid var(--line-on-dark); padding:1.3rem clamp(1.1rem,4vw,2.5rem); display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.6rem; font-size:0.8rem; opacity:0.65;}

  /* Events */
  .events-block{margin-bottom:2.6rem;}
  .events-block:last-child{margin-bottom:0;}
  .events-subhead{font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin-bottom:1.1rem;}
  .events-grid{display:grid; gap:1.6rem;}
  .events-empty{color:var(--ink-soft); font-size:0.92rem; font-style:italic;}
  .event-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; display:grid; grid-template-columns:220px 1fr;}
  @media (max-width:700px){ .event-card{grid-template-columns:1fr;} }
  .event-card .event-flyer{width:100%; height:100%; min-height:200px; object-fit:cover; display:block; cursor:pointer;}
  .event-card .event-body{padding:1.6rem clamp(1.4rem,3vw,2rem); display:flex; flex-direction:column; gap:0.5rem;}
  .event-card .event-tag{font-family:var(--sans); font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); font-weight:600;}
  .event-card h4{font-size:1.3rem;}
  .event-card .event-meta{display:flex; flex-wrap:wrap; gap:0.4rem 1.3rem; margin:0.3rem 0 0.2rem; font-size:0.86rem; color:var(--ink-soft);}
  .event-card .event-blurb{color:var(--ink-soft); font-size:0.9rem; max-width:60ch;}
  .event-tiers{display:flex; gap:0.6rem; flex-wrap:wrap; margin:0.4rem 0;}
  .event-tier{border:1px solid var(--line); border-radius:999px; padding:0.32em 0.9em; font-size:0.78rem; color:var(--ink-soft); white-space:nowrap;}
  .event-tier strong{color:var(--ink); font-variant-numeric:tabular-nums;}
  .event-cta-row{display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:0.5rem;}
  .event-counter{font-size:0.8rem; color:var(--ink-soft); font-style:italic;}
  .event-card.past{background:var(--parchment-2);}
  .event-card.past .event-flyer{filter:grayscale(0.75); opacity:0.85;}
  .event-card.past .event-concluded{font-size:0.86rem; color:var(--sage); font-style:italic; margin-top:0.4rem;}
  .flyer-link{font-size:0.82rem; font-weight:600; color:var(--gold); text-decoration:underline; text-underline-offset:2px;}
  .flyer-link:hover{color:var(--gold-bright);}
  .event-card.past .flyer-link{margin-top:0.6rem; display:inline-block; width:fit-content;}

  /* Full flyer lightbox */
  .flyer-lightbox{
    position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center;
    background:rgba(8,23,18,0.88); padding:2rem;
  }
  .flyer-lightbox.open{display:flex;}
  .flyer-lightbox img{max-width:min(92vw,520px); max-height:88vh; object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,0.5);}
  .flyer-lightbox-close{
    all:unset; cursor:pointer; position:absolute; top:1.2rem; right:1.4rem; width:42px; height:42px; border-radius:50%;
    background:rgba(244,237,219,0.15); color:var(--cream); font-size:1.6rem; line-height:1; display:flex; align-items:center; justify-content:center;
  }
  .flyer-lightbox-close:hover{background:rgba(244,237,219,0.28);}

  ::selection{background:var(--gold); color:#1b1508;}
