  :root{
    --cream:#F6F0E3;
    --paper:#EEE4CF;
    --ink:#2C241C;
    --ink-soft:#54493c;
    --moor:#3A4530;
    --moor-dark:#262E1D;
    --rust:#A5602D;
    --rust-dark:#844C24;
    --gold:#C08A2E;
    --stone:#8C8168;
    --line: rgba(44,36,28,0.14);
    --radius: 3px;
  }

  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --cream:#211d17;
      --paper:#241f18;
      --ink:#EFE7D6;
      --ink-soft:#c9bfab;
      --line: rgba(239,231,214,0.14);
      --stone:#a99e86;
    }
  }
  :root[data-theme="dark"]{
    --cream:#211d17;
    --paper:#241f18;
    --ink:#EFE7D6;
    --ink-soft:#c9bfab;
    --line: rgba(239,231,214,0.14);
    --stone:#a99e86;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top: calc(84px + env(safe-area-inset-top,0px));}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Inter', system-ui, sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
    overflow-x:hidden;
  }
  h1,h2,h3{
    font-family:'Fraunces', Georgia, serif;
    font-weight:560;
    letter-spacing:-0.01em;
    margin:0;
    color:var(--ink);
  }
  p{margin:0;}
  a{color:inherit;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  /* ---------- decorative horse line art ---------- */
  .horse-field{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
  .horse-field svg{ position:absolute; color:currentColor; }
  .horse-field img{ position:absolute; display:block; height:auto; user-select:none; -webkit-user-drag:none; }

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:40;
    background:rgba(246,240,227,0.92);
    backdrop-filter: blur(6px);
    border-bottom:1px solid var(--line);
    padding-top:env(safe-area-inset-top,0px);
  }
  :root[data-theme="dark"] header, @media (prefers-color-scheme: dark){ header{ background:rgba(33,29,23,0.9); } }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 0;
  }
	.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
  .brand-mark{ width:90px; height:90px; flex:none; object-fit:contain; display: flex; align-self: auto; }
  .brand-text{ font-family:'Fraunces', serif; font-weight:650; font-size:19px; letter-spacing:0.01em; color:var(--ink); }
  .brand-sub{ font-size:11px; color:var(--stone); letter-spacing:0.06em; display:block; margin-top:1px; }

  nav ul{ list-style:none; display:flex; gap:28px; margin:0; padding:0; }
  nav a{
    text-decoration:none; font-size:14.5px; color:var(--ink-soft);
    padding:4px 0; border-bottom:1px solid transparent; transition:color .15s, border-color .15s;
  }
  nav a:hover, nav a:focus-visible{ color:var(--rust); border-color:var(--rust); }
  .nav-toggle{ display:none; }

  @media (max-width:860px){
    nav ul{ display:none; }
    .nav-toggle{
      display:inline-flex; align-items:center; justify-content:center;
      width:38px; height:38px; border:1px solid var(--line); background:none; border-radius:var(--radius);
      color:var(--ink);
    }
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    background: var(--moor);
    color:#F3EFE1;
    overflow:hidden;
  }
  .hero-inner{
    position:relative; z-index:2;
    padding:96px 0 84px;
    max-width:640px;
  }
  .hero .eyebrow{
    font-size:13.5px; color:#CBB98A; margin-bottom:18px; display:block;
  }
  .hero h1{
    font-size:clamp(2.4rem, 5vw, 3.5rem);
    line-height:1.06;
    color:#FBF7EC;
  }
  .hero h1 em{ font-style:italic; font-weight:450; color:#D9A85B; }
  .hero p.lead{
    margin-top:22px;
    font-size:17.5px;
    color:#D9D3BE;
    max-width:46ch;
  }
  .hero-actions{ display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }

  .hero-grid{
    display:grid; grid-template-columns:1.15fr 1fr; gap:56px; align-items:center;
  }
  .hero-grid .hero-inner{ padding:96px 0 84px; max-width:none; }
  .hero-media{ position:relative; z-index:2; }
  .hero-media img{
    display:block; width:100%; height:auto;
    aspect-ratio:1/1.05; object-fit:cover;
    border-radius:14px;
    border:1px solid rgba(251,247,236,0.28);
    box-shadow:0 24px 60px rgba(0,0,0,0.35);
  }
  @media (max-width:900px){
    .hero-grid{ grid-template-columns:1fr; gap:8px; }
    .hero-grid .hero-inner{ padding:64px 0 0; }
    .hero-media{ padding-bottom:56px; }
  }

  .btn{
    display:inline-block;
    font-family:'Inter', sans-serif;
    font-size:14.5px; font-weight:600;
    padding:13px 26px;
    border-radius:var(--radius);
    text-decoration:none;
    transition:transform .12s ease, background .15s ease, border-color .15s ease, color .15s ease;
    border:1px solid transparent;
  }
  .btn:active{ transform:translateY(1px); }
  .btn-solid{ background:var(--rust); color:#FBF3E6; }
  .btn-solid:hover{ background:var(--rust-dark); }
  .btn-outline{ border-color:rgba(251,247,236,0.45); color:#FBF7EC; }
  .btn-outline:hover{ border-color:#FBF7EC; background:rgba(251,247,236,0.08); }
  .btn-outline.dark{ border-color:var(--ink); color:var(--ink); }
  .btn-outline.dark:hover{ background:rgba(44,36,28,0.06); }

  /* ---------- section basics ---------- */
  section{ position:relative; padding:88px 0; }
  @media (max-width:640px){ section{ padding:60px 0; } }
  .eyebrow-label{
    font-size:13px; color:var(--rust); font-weight:600; margin-bottom:14px; display:block;
  }
  .section-head{ max-width:640px; margin-bottom:48px; }
  .section-head h2{ font-size:clamp(1.7rem,3.2vw,2.3rem); line-height:1.15; }
  .section-head p{ margin-top:14px; color:var(--ink-soft); font-size:16px; max-width:56ch; }

  /* ---------- about / welcome ---------- */
  .about-grid{
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:64px; align-items:start;
  }
  @media (max-width:860px){ .about-grid{ grid-template-columns:1fr; gap:40px; } }
  .about-copy p{ color:var(--ink-soft); font-size:16px; margin-bottom:16px; }
  .about-copy strong{ color:var(--ink); font-weight:600; }

  .quote-block{
    background:var(--paper);
    border-left:3px solid var(--rust);
    padding:30px 32px;
    border-radius:0 var(--radius) var(--radius) 0;
  }
  .quote-block p{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:22px;
    line-height:1.4;
    color:var(--ink);
  }
  .quote-block span{
    display:block; margin-top:16px; font-family:'Inter',sans-serif; font-style:normal;
    font-size:13px; color:var(--stone); letter-spacing:0.03em;
  }

  .facility-list{ margin-top:36px; border-top:1px solid var(--line); }
  .facility-list li{
    list-style:none; display:flex; gap:16px; align-items:flex-start;
    padding:15px 0; border-bottom:1px solid var(--line); font-size:15.5px; color:var(--ink-soft);
  }
  .facility-list svg{ flex:none; width:18px; height:18px; margin-top:3px; color:var(--gold); }

  /* ---------- offerings ---------- */
  /* ---------- photo strip ---------- */
  .photo-strip{ background:var(--cream); }
  .photo-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:20px;
  }
  @media (max-width:640px){ .photo-grid{ grid-template-columns:1fr; } }
  .photo-grid figure{ margin:0; }
  .photo-grid img{
    width:100%; height:340px; object-fit:cover;
    border-radius: 14px;
    border:1px solid var(--line);
    display:block;
  }
  .photo-grid figcaption{
    margin-top:10px; font-size:13px; color:var(--stone); letter-spacing:0.01em;
  }

  .offerings{ background:var(--paper); }
  .offer-list{ border-top:1px solid var(--line); }
  .offer-row{
    display:grid; grid-template-columns: 220px 1fr auto;
    gap:28px; align-items:start;
    padding:34px 0; border-bottom:1px solid var(--line);
  }
  @media (max-width:760px){
    .offer-row{ grid-template-columns:1fr; gap:10px; padding:26px 0; }
  }
  .offer-row h3{ font-size:20px; font-weight:560; }
  .offer-row .offer-tag{ font-size:12.5px; color:var(--rust); letter-spacing:0.03em; display:block; margin-bottom:6px; }
  .offer-row p{ color:var(--ink-soft); font-size:15.5px; max-width:56ch; }
  .offer-row a.offer-link{
    font-size:14px; font-weight:600; color:var(--ink); text-decoration:none;
    border-bottom:1px solid var(--rust); padding-bottom:2px; white-space:nowrap; align-self:start; justify-self:end;
  }
  @media (max-width:760px){ .offer-row a.offer-link{ justify-self:start; margin-top:4px; } }
  .offer-row a.offer-link:hover{ color:var(--rust); }

  /* ---------- accreditation band ---------- */
  .accred{
    background:var(--moor-dark);
    color:#EFE9D8;
    position:relative;
    overflow:hidden;
  }
  .accred-inner{ position:relative; z-index:2; }
  .accred-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:32px;
  }
  @media (max-width:760px){ .accred-grid{ grid-template-columns:repeat(2,1fr); } }
  .accred-item{ text-align:left; }
  .accred-item .num{ font-family:'Fraunces',serif; font-size:15px; color:#D9A85B; margin-bottom:8px; display:block; }
  .accred-item h4{ font-family:'Fraunces',serif; font-weight:560; font-size:17px; margin-bottom:6px; color:#FBF7EC; }
  .accred-item p{ font-size:13.5px; color:#B9B196; line-height:1.55; }
  .accred-foot{
    margin-top:44px; padding-top:28px; border-top:1px solid rgba(239,233,216,0.15);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px;
    font-size:13px; color:#B9B196;
  }

  /* ---------- contact ---------- */
  .contact-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; }
  @media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; gap:44px; } }
  .contact-list{ margin-top:28px; }
  .contact-list dt{ font-size:12.5px; color:var(--stone); letter-spacing:0.03em; margin-top:20px; }
  .contact-list dt:first-child{ margin-top:0; }
  .contact-list dd{ margin:4px 0 0; font-size:16.5px; color:var(--ink); }
  .contact-list a{ text-decoration:none; color:var(--ink); border-bottom:1px solid var(--line); }
  .contact-list a:hover{ color:var(--rust); border-color:var(--rust); }

  .map-frame{
    border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
    aspect-ratio: 4/3; background:var(--paper);
  }
  .map-frame iframe{ width:100%; height:100%; border:0; display:block; }
  .directions{
    margin-top:22px; padding:20px 22px; background:var(--paper); border-radius:var(--radius);
    font-size:14.5px; color:var(--ink-soft); line-height:1.65;
  }
  .directions strong{ color:var(--ink); }

  /* ---------- footer ---------- */
  footer{
    background:var(--moor);
    color:#C7C0A6;
    padding:40px 0 calc(40px + env(safe-area-inset-bottom,0px));
    font-size:13.5px;
  }
  .footer-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
  footer a{ color:#EFE9D8; text-decoration:none; border-bottom:1px solid rgba(239,233,216,0.3); }
  footer a:hover{ border-color:#EFE9D8; }

  :focus-visible{ outline:2px solid var(--rust); outline-offset:2px; }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ transition:none !important; }
  }

/* ---------- shared-header include: active page indicator ---------- */
nav a[aria-current="page"]{ color:var(--rust); border-color:var(--rust); }

/* ---------- pricing table (tariff page) ---------- */
.price-table{ border-top:1px solid var(--line); margin-top:8px; }
.price-row{
  display:grid; grid-template-columns: 1fr auto auto; gap:20px; align-items:baseline;
  padding:18px 0; border-bottom:1px solid var(--line);
}
.price-row .price-label{ font-size:16.5px; color:var(--ink); }
.price-row .price-note{ display:block; margin-top:2px; font-size:13.5px; color:var(--stone); }
.price-row .price-val{ font-family:'Fraunces', serif; font-size:17px; color:var(--rust); white-space:nowrap; }
.price-row .price-val .tag{ display:block; font-family:'Inter',sans-serif; font-size:11.5px; color:var(--stone); font-weight:500; margin-top:2px; }
.price-group-title{ margin-top:44px; margin-bottom:6px; }
.price-group-title h3{ font-size:19px; }
.price-group-title p{ margin-top:6px; color:var(--ink-soft); font-size:14.5px; max-width:56ch; }
.price-callout{
  margin-top:36px; padding:20px 22px; background:var(--paper); border-radius:var(--radius);
  font-size:14.5px; color:var(--ink-soft);
}
@media (max-width:560px){
  .price-row{ grid-template-columns:1fr auto; }
  .price-row .price-val:nth-child(3){ grid-column:2; }
}

/* ---------- gallery page ---------- */
.gallery-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:22px;
  margin-top:8px;
}
@media (max-width:860px){ .gallery-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .gallery-grid{ grid-template-columns:1fr; } }
.gallery-card{
  display:block; text-decoration:none; color:inherit;
  border:1px solid var(--line); border-radius:14px; overflow:hidden;
  background:var(--paper);
  transition:transform .15s ease, box-shadow .15s ease;
}
.gallery-card:hover{ transform:translateY(-3px); box-shadow:0 10px 24px rgba(44,36,28,0.12); }
.gallery-card .thumb-wrap{
  aspect-ratio:4/3; overflow:hidden; background:var(--line);
}
.gallery-card img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.gallery-card .gallery-card-body{ padding:16px 18px; }
.gallery-card h3{ font-size:16.5px; font-weight:560; }
.gallery-card .count{
  display:block; margin-top:4px; font-size:13px; color:var(--stone);
}
.gallery-note{
  margin-top:40px; padding:20px 22px; background:var(--paper); border-radius:var(--radius);
  font-size:14.5px; color:var(--ink-soft);
}

/* ---------- gallery lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .2s ease, visibility 0s linear .2s;
}
.lightbox.open{
  opacity:1; visibility:visible;
  transition:opacity .2s ease, visibility 0s linear 0s;
}
.lightbox-backdrop{
  position:absolute; inset:0; background:rgba(20,16,10,0.92);
}
.lightbox-inner{
  position:relative; z-index:1;
  width:100%; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:64px 76px;
}
.lightbox-img{
  max-width:100%; max-height:78vh; object-fit:contain;
  border-radius:var(--radius);
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
  background:var(--ink);
}
.lightbox-caption{
  margin-top:18px; text-align:center; color:var(--cream);
}
.lightbox-title{ font-family:'Fraunces', serif; font-size:18px; }
.lightbox-count{ display:block; margin-top:4px; font-size:13px; color:var(--stone); }
.lightbox-close{
  position:absolute; top:18px; right:22px;
  width:40px; height:40px; border-radius:50%;
  background:transparent; border:1px solid rgba(246,240,227,0.35);
  color:var(--cream); font-size:24px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s ease, border-color .15s ease;
}
.lightbox-close:hover{ background:rgba(246,240,227,0.12); border-color:rgba(246,240,227,0.6); }
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:52px; height:52px; border-radius:50%;
  background:rgba(246,240,227,0.08); border:1px solid rgba(246,240,227,0.3);
  color:var(--cream); font-size:30px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s ease, border-color .15s ease;
}
.lightbox-nav:hover{ background:rgba(246,240,227,0.18); border-color:rgba(246,240,227,0.6); }
.lightbox-prev{ left:18px; }
.lightbox-next{ right:18px; }
@media (max-width:700px){
  .lightbox-inner{ padding:20px 54px; }
  .lightbox-nav{ width:40px; height:40px; font-size:22px; }
  .lightbox-prev{ left:6px; }
  .lightbox-next{ right:6px; }
  .lightbox-close{ top:10px; right:10px; width:34px; height:34px; font-size:20px; }
  .lightbox-img{ max-height:64vh; }
}
