/* ============================================================
   Twin Oaks Resort — luxury ranch design system
   Fonts: Kavarian (display) · Golte (text) · Castile Mastah (accent)
   Palette: cream canvas, ranch brown ink, oak green, tan gold
   ============================================================ */

@font-face{ font-family:'Kavarian'; src:url('/assets/fonts/kavarian-400.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face{ font-family:'Golte'; src:url('/assets/fonts/golte-400.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face{ font-family:'Castile Mastah'; src:url('/assets/fonts/castile-mastah-400.woff2') format('woff2'); font-weight:400; font-display:swap; }

:root{
  --cream:#F7F2E9;
  --cream-2:#FBF8F1;
  --cream-3:#EFE6D3;
  --ink:#33261A;
  --ink-2:#4C3E2C;
  --muted:#7E6F59;
  --green:#4A5A34;
  --gold:#B08D4F;
  --gold-deep:#967540;
  --gold-soft:#E0C896;
  --line:rgba(51,38,26,.14);
  --dark:#241A10;
  --ease:cubic-bezier(.16,1,.3,1);
  --gap:clamp(84px,10vw,148px);
  --wrap:1200px;
  --r-lg:24px;
  --r-md:16px;
  --shadow:0 20px 44px -12px rgba(51,38,26,.18);
  --shadow-sm:0 10px 26px -8px rgba(51,38,26,.16);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:rgba(176,141,79,.6) #E9DFCB; }
::-webkit-scrollbar{ width:12px; height:12px; }
::-webkit-scrollbar-track{ background:#E9DFCB; }
::-webkit-scrollbar-thumb{ background:rgba(176,141,79,.6); border-radius:999px; border:3px solid #E9DFCB; background-clip:padding-box; }
::-webkit-scrollbar-thumb:hover{ background:var(--gold); border:3px solid #E9DFCB; background-clip:padding-box; }

body{
  margin:0;
  background:var(--cream-2);
  color:var(--ink);
  font-family:'Golte', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
figure{ margin:0; }
h1,h2,h3{ margin:0; font-weight:400; }
button{ font:inherit; background:none; border:0; cursor:pointer; color:inherit; }
::selection{ background:var(--gold-soft); color:var(--ink); }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:4px; }

.ic{ width:1.15em; height:1.15em; flex:none; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 clamp(20px,4vw,40px); }
.sec{ padding:var(--gap) 0; position:relative; }

/* ---------- type ---------- */
.h2{
  font-family:'Kavarian', Georgia, serif;
  font-size:clamp(2.05rem,3.4vw,2.95rem);
  line-height:1.14;
  letter-spacing:.005em;
  color:var(--ink);
  padding-bottom:.3em;
}
.h2 em, .hero__title em, .cta__title em{
  font-family:'Castile Mastah', cursive;
  font-style:normal;
  color:var(--gold-deep);
  font-size:1.42em;
  line-height:.5;
  display:inline-block;
  vertical-align:-.08em;
  transform:rotate(-1.6deg);
  padding:0 .04em;
}
.lead{ font-size:1.125rem; line-height:1.72; color:var(--ink-2); margin:1.1rem 0 0; max-width:56ch; }
.body-t{ font-size:1.02rem; line-height:1.75; color:var(--muted); margin:1rem 0 0; max-width:56ch; }
.sec__head{ max-width:760px; margin:0 auto 60px; text-align:center; }
.sec__head .lead{ margin-left:auto; margin-right:auto; }

/* ---------- the ONE pill family ---------- */
.pill{
  display:inline-flex; align-items:center; gap:12px;
  background:var(--gold); color:#FFF9EC;
  font-size:.95rem; font-weight:600; letter-spacing:.02em;
  padding:13px 12px 13px 26px; border-radius:999px;
  border:1px solid var(--gold);
  transition:background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
  box-shadow:0 8px 20px -8px rgba(150,117,64,.55);
}
.pill__chip{
  width:30px; height:30px; border-radius:50%;
  background:rgba(36,26,16,.28);
  display:flex; align-items:center; justify-content:center;
  transition:transform .25s var(--ease);
}
.pill__chip .ic{ width:14px; height:14px; }
.pill:hover{ background:var(--gold-deep); border-color:var(--gold-deep); }
.pill:hover .pill__chip{ transform:translateX(3px); }

.pill--ghost, .pill--ghost-l{
  background:transparent; box-shadow:none;
}
.pill--ghost{ border-color:rgba(51,38,26,.35); color:var(--ink); }
.pill--ghost .pill__chip{ background:rgba(51,38,26,.12); }
.pill--ghost:hover{ background:rgba(176,141,79,.12); border-color:var(--gold); color:var(--gold-deep); }
.pill--ghost-l{ border-color:rgba(247,242,233,.55); color:var(--cream); }
.pill--ghost-l .pill__chip{ background:rgba(247,242,233,.18); }
.pill--ghost-l:hover{ background:rgba(247,242,233,.14); border-color:var(--gold-soft); color:var(--gold-soft); }
.pill--sm{ padding:9px 9px 9px 20px; font-size:.88rem; }
.pill--sm .pill__chip{ width:26px; height:26px; }

/* ---------- reveal motion ---------- */
@media (prefers-reduced-motion: no-preference){
  .rev{ opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
  .rev.on{ opacity:1; transform:none; }
}
@media (prefers-reduced-motion: reduce){
  .rev{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto; }
}

/* ============ HEADER ============ */
.hd{
  position:absolute; inset:0 0 auto 0; z-index:300;
}
.hd__in{
  max-width:1440px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:16px clamp(18px,3vw,36px);
}
.hd__brand{ position:relative; display:block; width:118px; }
.hd__logo{ width:118px; height:auto; transition:opacity .3s var(--ease); }
.hd__logo--dark{ position:absolute; inset:0; opacity:0; }
.hd__actions{ display:flex; align-items:center; gap:clamp(12px,2vw,26px); }
.hd__menu-btn{
  display:inline-flex; align-items:center; gap:10px;
  color:var(--cream); font-weight:600; font-size:.92rem;
  letter-spacing:.22em; text-transform:uppercase;
  padding:10px 4px; transition:color .3s;
}
.hd__menu-btn .ic{ width:20px; height:20px; }
.hd__menu-btn .ic-x{ display:none; }
.hd__menu-btn.is-open .ic-burger{ display:none; }
.hd__menu-btn.is-open .ic-x{ display:block; }
.hd__menu-btn:hover{ color:var(--gold-soft); }
/* header state while the menu overlay is open */
.hd.menu-open .hd__logo--light{ opacity:0; }
.hd.menu-open .hd__logo--dark{ opacity:1; }
.hd.menu-open .hd__menu-btn{ color:var(--ink); }
.hd.menu-open .hd__menu-btn:hover{ color:var(--gold-deep); }

/* ============ MENU OVERLAY ============ */
.menu{ position:fixed; inset:0; z-index:200; }
.menu[hidden]{ display:none; }
.menu__back{ position:absolute; inset:0; background:rgba(24,17,10,.45); backdrop-filter:blur(5px); }
.menu__sheet{
  position:absolute; inset:0; overflow-y:auto;
  background:
    linear-gradient(to bottom,
      rgba(251,248,241,.88) 0%, rgba(251,248,241,.82) 45%,
      rgba(251,248,241,.9) 100%),
    url('/assets/img/lake-1600.webp') center 30%/cover no-repeat,
    var(--cream-2);
  display:flex; flex-direction:column;
  padding:clamp(84px,10vh,110px) clamp(20px,4vw,52px) clamp(22px,3.5vh,36px);
  animation:menuIn .4s var(--ease);
}
@keyframes menuIn{ from{ opacity:0; transform:translateY(-14px); } to{ opacity:1; transform:none; } }
.menu__top{ display:none; }
.menu__top-actions{ display:flex; align-items:center; gap:18px; }
.menu__close{
  width:46px; height:46px; border-radius:50%;
  border:1.5px solid rgba(51,38,26,.3); color:var(--ink);
  display:flex; align-items:center; justify-content:center;
  transition:background .25s, color .25s, border-color .25s, transform .25s var(--ease);
}
.menu__close:hover{ background:var(--gold); border-color:var(--gold); color:#FFF9EC; transform:rotate(90deg); }
.menu__close .ic{ width:17px; height:17px; }

.menu__body{
  flex:1; display:grid; grid-template-columns:minmax(300px,1fr) minmax(0,1.15fr);
  gap:clamp(28px,5vw,72px); align-items:center;
  max-width:1280px; width:100%; margin:0 auto;
  padding:clamp(12px,2.5vh,28px) 0;
}
.menu__left{ display:flex; flex-direction:column; align-items:flex-start; }
.menu__logo{ width:132px; height:auto; margin-bottom:clamp(10px,2vh,22px); }
.menu__nav{ display:flex; flex-direction:column; }
.menu__nav a{
  display:flex; align-items:baseline; gap:14px;
  font-family:'Kavarian', Georgia, serif;
  font-size:clamp(1.35rem,2.6vh,1.85rem);
  color:var(--ink); padding:clamp(3px,1vh,7px) 0;
  transition:color .22s, padding-left .28s var(--ease);
}
.menu__nav a i{
  font-family:'Golte', sans-serif; font-style:normal;
  font-size:.68rem; font-weight:600; letter-spacing:.14em;
  color:var(--gold); width:22px;
}
.menu__nav a:hover{ color:var(--gold-deep); padding-left:8px; }
.menu__guest{ margin-top:clamp(14px,2.5vh,24px); }

.menu__right{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(10px,1.6vw,18px);
}
.menu__ph{ position:relative; border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-sm); }
.menu__ph img{ width:100%; aspect-ratio:4/3.1; object-fit:cover; transition:transform .6s var(--ease); }
.menu__ph:hover img{ transform:scale(1.05); }
.menu__ph figcaption{
  position:absolute; inset:auto 0 0 0; padding:22px 14px 10px;
  background:linear-gradient(to top, rgba(24,17,10,.72), transparent);
  color:var(--cream); font-size:.8rem; letter-spacing:.04em;
}
.menu__touch{
  display:flex; flex-wrap:wrap; gap:clamp(18px,3.5vw,56px);
  border-top:1px solid var(--line);
  padding-top:clamp(16px,2.5vh,26px);
  max-width:1280px; width:100%; margin:0 auto;
}
.menu__touch-title{
  font-family:'Castile Mastah', cursive; font-size:1.7rem; color:var(--gold-deep);
  align-self:center; margin-right:auto; transform:rotate(-2deg);
}
.menu__touch a{ display:flex; align-items:center; gap:12px; }
.menu__touch a .ic{
  width:38px; height:38px; padding:10px; border-radius:50%;
  background:rgba(176,141,79,.14); color:var(--gold-deep);
  transition:background .25s, color .25s;
}
.menu__touch a:hover .ic{ background:var(--gold); color:#FFF9EC; }
.menu__touch a span{ font-size:.86rem; color:var(--muted); line-height:1.35; }
.menu__touch a b{ display:block; font-size:.92rem; color:var(--ink); font-weight:600; }

/* ============ HERO ============ */
.hero{
  position:relative; min-height:100svh;
  display:flex; align-items:center; justify-content:center;
  padding:120px 0 80px;
  isolation:isolate;
}
.hero__media, .hero__media picture, .hero__media img{ position:absolute; inset:0; width:100%; height:100%; }
.hero__media img{ object-fit:cover; object-position:center 38%; }
.hero__scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom,
    rgba(20,14,8,.68) 0%, rgba(20,14,8,.5) 20%,
    rgba(20,14,8,.34) 42%, rgba(20,14,8,.38) 62%,
    rgba(20,14,8,.52) 82%, rgba(20,14,8,.68) 100%);
}
.hero__in::before{
  content:""; position:absolute; z-index:-1;
  inset:-8% -14%;
  background:radial-gradient(ellipse 62% 58% at 50% 46%,
    rgba(20,14,8,.42) 0%, rgba(20,14,8,.22) 46%, transparent 72%);
  pointer-events:none;
}
.hero__in{
  position:relative; z-index:2; text-align:center;
  max-width:920px; padding:0 24px;
}
.hero__place{
  display:inline-flex; align-items:center; gap:16px;
  color:var(--gold-soft); font-size:.82rem; font-weight:600;
  letter-spacing:.3em; text-transform:uppercase; margin:0 0 22px;
  text-shadow:0 1px 12px rgba(24,17,10,.5);
}
.hero__place::before, .hero__place::after{
  content:""; width:38px; height:1px; background:linear-gradient(90deg, transparent, var(--gold-soft));
}
.hero__place::after{ background:linear-gradient(90deg, var(--gold-soft), transparent); }
.hero__title{
  font-family:'Kavarian', Georgia, serif;
  font-size:clamp(2.7rem,6vw,4.9rem);
  line-height:1.05; color:#FDFAF2;
  text-shadow:0 2px 30px rgba(24,17,10,.45);
}
.hero__title em{ color:var(--gold-soft); font-size:1.34em; }
.hero__sub{
  margin:26px auto 0; max-width:660px;
  color:rgba(253,250,242,.88); font-size:1.08rem; line-height:1.75;
  text-shadow:0 1px 14px rgba(24,17,10,.5);
}
.hero__ctas{ display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin-top:36px; }

/* ============ INTRO ============ */
.intro__grid{
  display:grid; grid-template-columns:1fr 1.06fr;
  gap:clamp(40px,6vw,84px); align-items:center;
}
.intro__facts{ margin:30px 0 34px; display:flex; flex-direction:column; gap:16px; }
.intro__facts li{ display:flex; gap:14px; align-items:flex-start; }
.intro__facts .ic{
  width:42px; height:42px; padding:10px; flex:none;
  border-radius:13px; background:rgba(74,90,52,.12); color:var(--green);
}
.intro__facts span{ font-size:.97rem; color:var(--muted); line-height:1.5; padding-top:2px; }
.intro__facts b{ color:var(--ink); font-weight:600; }

.intro__mosaic{ position:relative; min-height:560px; }
.intro__ph{ overflow:hidden; border-radius:var(--r-lg); box-shadow:var(--shadow); }
.intro__ph img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.intro__ph:hover img{ transform:scale(1.045); }
.intro__ph--big{ position:absolute; left:0; top:0; width:76%; height:74%; }
.intro__ph--sm1{ position:absolute; right:0; top:8%; width:40%; height:44%; border:6px solid var(--cream-2); }
.intro__ph--sm2{ position:absolute; right:6%; bottom:0; width:46%; height:36%; border:6px solid var(--cream-2); }
.intro__stat{
  position:absolute; z-index:2;
  background:var(--cream-2); border:1px solid var(--line);
  border-radius:var(--r-md); box-shadow:var(--shadow-sm);
  padding:14px 20px; text-align:center; line-height:1.15;
}
.intro__stat b{ display:block; font-family:'Kavarian', Georgia, serif; font-size:1.75rem; color:var(--green); }
.intro__stat span{ font-size:.76rem; color:var(--muted); letter-spacing:.04em; }
.intro__stat--1{ left:6%; bottom:4%; }
.intro__stat--2{ right:-2%; top:52%; }
.intro__stat--2 b{ color:var(--gold-deep); }

/* ============ WESTERN TOWN ============ */
.town{ background:var(--cream); }
.town__grid{
  display:grid; grid-template-columns:1.08fr 1fr;
  gap:clamp(40px,6vw,84px); align-items:center;
}
.town__photos{ position:relative; }
.town__ph--main{ overflow:hidden; border-radius:var(--r-lg); box-shadow:var(--shadow); }
.town__ph--main img{ width:100%; aspect-ratio:14/10.5; object-fit:cover; transition:transform .7s var(--ease); }
.town__ph--main:hover img{ transform:scale(1.04); }
.town__ph--over{
  position:absolute; right:-4%; bottom:-9%; width:46%;
  border:7px solid #fff; border-radius:14px;
  box-shadow:0 26px 44px -14px rgba(51,38,26,.35);
  transform:rotate(2.4deg);
  overflow:hidden;
}
.town__ph--over img{ width:100%; aspect-ratio:3/2.1; object-fit:cover; }
.town__chips{ display:flex; flex-wrap:wrap; gap:10px; margin:26px 0 32px; }
.town__chips li{
  border:1px solid var(--line); background:var(--cream);
  border-radius:999px; padding:8px 17px;
  font-size:.86rem; color:var(--ink-2); letter-spacing:.02em;
  transition:border-color .2s, color .2s, background .2s;
}
.town__chips li:hover{ border-color:var(--gold); color:var(--gold-deep); background:#fff; }

/* ============ STAYS ============ */
.stays__badge{
  display:inline-flex; align-items:center; gap:9px;
  margin-top:22px; padding:9px 20px;
  border:1px solid rgba(176,141,79,.55); border-radius:999px;
  background:rgba(255,255,255,.55);
  color:var(--gold-deep); font-size:.88rem; font-weight:600; letter-spacing:.03em;
}
.stays__badge .ic{ width:15px; height:15px; }
.stays__rail{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
.stay{
  background:#FFFDF8; border:1px solid var(--line); border-radius:20px;
  overflow:hidden; box-shadow:var(--shadow-sm);
  display:flex; flex-direction:column;
  transition:box-shadow .3s var(--ease), border-color .3s;
}
.stay:hover{ box-shadow:var(--shadow); border-color:rgba(176,141,79,.4); }
.stay__ph{ overflow:hidden; }
.stay__ph img{ width:100%; aspect-ratio:4/2.9; object-fit:cover; transition:transform .7s var(--ease); }
.stay:hover .stay__ph img{ transform:scale(1.06); }
.stay__in{ padding:20px 22px 24px; display:flex; flex-direction:column; flex:1; }
.stay__name{ font-family:'Kavarian', Georgia, serif; font-size:1.32rem; color:var(--ink); }
.stay__blurb{ font-size:.9rem; color:var(--muted); line-height:1.55; margin:8px 0 14px; flex:1; }
.stay__price{ margin:0 0 12px; font-size:.85rem; color:var(--muted); }
.stay__price b{ font-family:'Kavarian', Georgia, serif; font-size:1.35rem; color:var(--gold-deep); font-weight:400; }
.stay__link{
  display:inline-flex; align-items:center; gap:7px;
  font-size:.9rem; font-weight:600; color:var(--green);
  transition:color .2s, gap .25s var(--ease);
}
.stay__link .ic{ width:15px; height:15px; }
.stay__link:hover{ color:var(--gold-deep); gap:11px; }

/* ============ AMENITIES ============ */
.amen{ background:var(--cream); }
.amen__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:22px;
}
.amen__card{
  position:relative; overflow:hidden; border-radius:20px;
  box-shadow:var(--shadow-sm); min-height:230px;
}
.amen__card--tall{ grid-row:span 2; min-height:480px; }
.amen__card img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; transition:transform .7s var(--ease);
}
.amen__card:hover img{ transform:scale(1.05); }
.amen__card figcaption{
  position:absolute; inset:auto 0 0 0; z-index:2;
  padding:44px 20px 18px;
  background:linear-gradient(to top, rgba(24,17,10,.78) 0%, rgba(24,17,10,.28) 60%, transparent 100%);
  color:var(--cream);
}
.amen__card figcaption b{
  display:block; font-family:'Kavarian', Georgia, serif;
  font-size:1.22rem; font-weight:400; letter-spacing:.01em;
}
.amen__card figcaption span{ font-size:.84rem; color:rgba(247,242,233,.82); line-height:1.45; display:block; margin-top:3px; }

/* ============ WEDDINGS BAND ============ */
.wed{
  position:relative; isolation:isolate;
  padding:calc(var(--gap) * 1.05) 0;
  text-align:center;
}
.wed__media, .wed__media img{ position:absolute; inset:0; width:100%; height:100%; }
.wed__media img{ object-fit:cover; object-position:center 42%; }
.wed__scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(to bottom, rgba(20,14,8,.68), rgba(20,14,8,.55) 50%, rgba(20,14,8,.72)); }
.wed__in{ position:relative; z-index:2; max-width:820px; }
.wed .h2{ color:#FDFAF2; text-shadow:0 2px 26px rgba(20,14,8,.5); }
.wed .h2 em{ color:var(--gold-soft); }
.wed .lead{ color:rgba(253,250,242,.88); margin-left:auto; margin-right:auto; }
.wed__facts{
  display:flex; justify-content:center; gap:clamp(24px,5vw,64px);
  margin:40px 0 42px; flex-wrap:wrap;
}
.wed__facts li{ text-align:center; }
.wed__facts b{
  display:block; font-family:'Kavarian', Georgia, serif;
  font-size:2rem; color:var(--gold-soft); line-height:1.1;
}
.wed__facts span{ font-size:.85rem; color:rgba(253,250,242,.75); }

/* ============ AREA ============ */
.area{ overflow:hidden; }
.area__stage{ position:relative; }
.area__ghost{
  position:absolute; left:-1%; top:-6%; z-index:0;
  font-family:'Kavarian', Georgia, serif;
  font-size:clamp(8rem,15vw,12.5rem); line-height:1;
  color:transparent; -webkit-text-stroke:1.5px rgba(176,141,79,.22);
  pointer-events:none; user-select:none; white-space:nowrap;
}
.area__panel{
  position:absolute; left:0; top:50%; transform:translateY(-50%); z-index:3;
  width:min(500px,46%);
  background:var(--cream-2); border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--shadow);
  padding:clamp(26px,2.8vw,38px);
}
/* fine-stationery gold hairline inner frame */
.area__panel::before{
  content:""; position:absolute; inset:9px;
  border:1px solid rgba(176,141,79,.4); border-radius:calc(var(--r-lg) - 8px);
  pointer-events:none;
}
/* oak-icon badge straddling the panel's top edge */
.area__panel-badge{
  position:absolute; top:-27px; left:50%; transform:translateX(-50%);
  width:54px; height:54px; border-radius:50%;
  background:#FFFDF8; border:1px solid rgba(176,141,79,.55);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold-deep); box-shadow:var(--shadow-sm);
}
.area__panel-badge .ic{ width:26px; height:26px; }
/* hand-inked swash under the script word */
.area__swash{ display:block; width:min(58%,220px); height:auto; margin:2px 0 0 2%; }
/* the distance ledger */
.area__ledger{ margin:20px 0 22px; }
.area__ledger li{
  display:flex; align-items:baseline; gap:12px;
  padding:7px 2px; border-bottom:1px solid var(--line);
}
.area__ledger li:first-child{ border-top:1px solid var(--line); }
.area__ledger .t{
  font-family:'Kavarian', Georgia, serif; font-size:1.08rem; color:var(--ink);
  display:flex; align-items:center;
}
.area__ledger .t::before{
  content:""; width:13px; height:13px; flex:none; margin-right:9px;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 21s-6.8-5.5-6.8-11a6.8 6.8 0 1 1 13.6 0c0 5.5-6.8 11-6.8 11Z" fill="none" stroke="%23B08D4F" stroke-width="2.2"/><circle cx="12" cy="10" r="2.6" fill="%23B08D4F"/></svg>') no-repeat center/contain;
}
.area__ledger .l{ flex:1; border-bottom:1.5px dotted rgba(126,111,89,.55); transform:translateY(-4px); }
.area__ledger .d{ font-size:.86rem; font-weight:600; color:var(--gold-deep); white-space:nowrap; }
.area__cta{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.area__call{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.93rem; font-weight:600; color:var(--ink-2);
  transition:color .2s;
}
.area__call .ic{ width:16px; height:16px; color:var(--gold-deep); }
.area__call:hover{ color:var(--gold-deep); }

/* map card */
.mapcard{
  position:relative; border-radius:var(--r-lg); overflow:hidden;
  border:8px solid #FFFDF8; box-shadow:var(--shadow);
  transform:rotate(1.1deg);
  transition:transform .5s var(--ease);
}
.mapcard:hover{ transform:rotate(0deg); }
.mapcard--wide{
  width:84%; margin-left:auto;
  height:clamp(560px,56vw,760px);
}
.mapcard__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.mapcard__svg{ position:absolute; inset:0; width:100%; height:100%; }
.mapcard .route-glow{ fill:none; stroke:#FBF8F1; stroke-width:26; stroke-linecap:round; stroke-linejoin:round; opacity:.7; }
.mapcard .route{
  fill:none; stroke:#B08D4F; stroke-width:13; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:100; stroke-dashoffset:100;
  transition:stroke-dashoffset 2s var(--ease) .35s;
}
.mapcard.on .route{ stroke-dashoffset:0; }
.mapcard .doodle{ fill:none; stroke:#967540; stroke-width:6; stroke-linecap:round; opacity:.85; }
.mapcard .doodle-head{ fill:#967540; opacity:.85; }
@media (prefers-reduced-motion: reduce){
  .mapcard .route{ stroke-dashoffset:0; transition:none; }
}
.mapcard__star{
  position:absolute; left:33%; top:50%; width:64px; height:auto;
  transform:translate(-50%,-50%);
  filter:drop-shadow(0 4px 10px rgba(51,38,26,.45));
}
.mapcard__logo{
  position:absolute; left:33%; top:50%; width:118px; height:auto;
  transform:translate(-50%,calc(-100% - 46px));
  filter:drop-shadow(0 2px 7px rgba(251,248,241,.7));
}
.area__note{
  position:absolute; left:55%; top:20%;
  font-family:'Castile Mastah', cursive;
  font-size:clamp(1.35rem,2vw,1.75rem); color:var(--gold-deep);
  transform:rotate(-7deg);
  text-shadow:0 1px 10px rgba(251,248,241,.95), 0 0 4px rgba(251,248,241,.9);
  pointer-events:none;
}

/* ============ REVIEWS ============ */
.revs{ background:var(--cream); }
.revs__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.rev__card{
  background:#FFFDF8; border:1px solid var(--line); border-radius:20px;
  padding:28px 28px 24px; box-shadow:var(--shadow-sm);
  display:flex; flex-direction:column; gap:16px;
}
.rev__stars{ display:flex; gap:3px; }
.rev__stars .ic{ width:15px; height:15px; fill:var(--gold); }
.rev__card p{
  margin:0; font-family:'Kavarian', Georgia, serif; font-style:italic;
  font-size:1.06rem; line-height:1.6; color:var(--ink-2); flex:1;
}
.rev__card footer{ display:flex; align-items:center; gap:14px; }
.rev__avatar{
  width:54px; height:54px; border-radius:50%; object-fit:cover; flex:none;
  border:2px solid var(--gold-soft); box-shadow:0 4px 12px -4px rgba(51,38,26,.3);
}
.rev__card footer b{ display:block; font-size:.94rem; color:var(--ink); }
.rev__who>span{ display:block; font-size:.8rem; color:var(--muted); }

/* ============ CLOSING CTA + FOOTER (one continuous image) ============ */
.ctafoot{ position:relative; isolation:isolate; overflow:hidden; }
.ctafoot__bg, .ctafoot__bg picture, .ctafoot__bg img{ position:absolute; inset:0; width:100%; height:100%; }
.ctafoot__bg img{ object-fit:cover; object-position:center 72%; }
.ctafoot__veil{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom,
    #FBF8F1 0%,
    rgba(251,248,241,.9) 3%, rgba(251,248,241,.65) 6%,
    rgba(251,248,241,.34) 9.5%, rgba(251,248,241,.12) 13%,
    rgba(251,248,241,0) 16%,
    rgba(20,14,8,.25) 19%, rgba(20,14,8,.5) 24%,
    rgba(20,14,8,.62) 33%, rgba(20,14,8,.68) 45%,
    rgba(20,14,8,.74) 60%, rgba(20,14,8,.8) 75%,
    rgba(20,14,8,.85) 100%);
}
.cta{
  position:relative; z-index:2;
  padding:calc(var(--gap) * 1.35) 0 calc(var(--gap) * .6);
  text-align:center;
}
.cta__in{ position:relative; }
.cta__in::before{
  content:""; position:absolute; z-index:-1;
  inset:-22% -18%;
  background:radial-gradient(ellipse 58% 62% at 50% 50%,
    rgba(20,14,8,.5) 0%, rgba(20,14,8,.28) 48%, transparent 72%);
  pointer-events:none;
}
.cta__title{
  font-family:'Kavarian', Georgia, serif;
  font-size:clamp(2.5rem,5.4vw,4.1rem); line-height:1.08;
  color:#FDFAF2; text-shadow:0 2px 30px rgba(20,14,8,.5);
}
.cta__title em{ color:var(--gold-soft); font-size:1.3em; }
.cta .lead{ color:rgba(253,250,242,.92); margin:1.2rem auto 2.2rem; text-shadow:0 1px 14px rgba(20,14,8,.45); }

/* ============ FOOTER ============ */
.ft{
  position:relative; z-index:2;
  color:rgba(247,242,233,.72);
  padding:calc(var(--gap) * .55) 0 0;
  font-size:.95rem;
}
.ft__grid{
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1.25fr;
  gap:clamp(32px,4.5vw,64px);
}
.ft__logo{ width:150px; height:auto; margin-bottom:20px; }
.ft__brand p{ margin:0 0 24px; line-height:1.7; color:rgba(247,242,233,.62); max-width:34ch; }
.ft__guest{ margin-bottom:24px; }
.ft__social{ display:flex; gap:12px; }
.ft__social a{
  width:40px; height:40px; border-radius:50%;
  border:1px solid rgba(247,242,233,.28);
  display:flex; align-items:center; justify-content:center;
  color:rgba(247,242,233,.8);
  transition:border-color .25s, color .25s, background .25s;
}
.ft__social a:hover{ border-color:var(--gold-soft); color:var(--gold-soft); background:rgba(224,200,150,.08); }
.ft__social .ic{ width:17px; height:17px; }
.ft__col h3{
  font-family:'Kavarian', Georgia, serif; font-size:1.12rem; font-weight:400;
  color:var(--gold-soft); margin:6px 0 18px; letter-spacing:.03em;
}
.ft__col a{
  display:block; padding:5px 0; color:rgba(247,242,233,.68);
  transition:color .2s, padding-left .25s var(--ease);
}
.ft__col a:hover{ color:var(--gold-soft); padding-left:5px; }
.ft__touch a{ display:flex; align-items:flex-start; gap:12px; padding:7px 0; }
.ft__touch a .ic{
  width:34px; height:34px; padding:9px; flex:none;
  border-radius:50%; background:rgba(224,200,150,.1); color:var(--gold-soft);
}
.ft__touch a:hover{ padding-left:0; color:var(--gold-soft); }
.ft__hours{ display:flex; align-items:flex-start; gap:12px; padding:7px 0; margin:0; }
.ft__hours .ic{
  width:34px; height:34px; padding:9px; flex:none;
  border-radius:50%; background:rgba(224,200,150,.1); color:var(--gold-soft);
}
.ft__hours b{ display:block; color:rgba(247,242,233,.9); font-weight:600; }

.ft__partner{
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  margin-top:calc(var(--gap) * .55); padding:26px 0;
  border-top:1px solid rgba(247,242,233,.14);
}
.ft__powered{ display:inline-flex; align-items:center; gap:14px; }
.ft__powered span{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(247,242,233,.45); }
.ft__powered img{ height:36px; width:auto; opacity:.9; transition:opacity .2s; }
.ft__powered:hover img{ opacity:1; }
.ft__cards{ display:inline-flex; align-items:center; gap:14px; }
.ft__cards span{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(247,242,233,.45); }
.ft__cards img{ height:30px; width:auto; }

.ft__bar{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding:20px 0 24px; border-top:1px solid rgba(247,242,233,.14);
  font-size:.83rem; color:rgba(247,242,233,.45);
}
.ft__bar p{ margin:0; }
.ft__bar nav a{ margin-left:22px; transition:color .2s; }
.ft__bar nav a:hover{ color:var(--gold-soft); }

/* ============ RESPONSIVE ============ */
@media (max-width:1100px){
  .stays__rail{ grid-template-columns:repeat(2,1fr); }
  .amen__grid{ grid-template-columns:repeat(2,1fr); }
  .amen__card--tall{ grid-row:auto; min-height:300px; }
  .intro__grid, .town__grid{ grid-template-columns:1fr; }
  .area__panel{
    position:relative; top:auto; transform:none; width:100%;
    margin-bottom:-44px;
  }
  .mapcard--wide{ width:100%; height:clamp(400px,62vw,540px); }
  .intro__mosaic{ min-height:0; height:64vw; max-height:520px; margin-top:8px; }
  .town__photos{ margin-bottom:26px; }
  .menu__body{ grid-template-columns:1fr; align-items:start; gap:26px; }
  .menu__right{ grid-template-columns:repeat(4,1fr); }
  .ft__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .hero{ flex-direction:column; justify-content:center; min-height:0; padding-bottom:56px; }
  .hero__in{ padding-bottom:0; }
}
@media (max-width:640px){
  .hd__brand, .hd__logo{ width:92px; }
  .area__ghost{ display:none; }
  .hd .pill{ padding:9px 9px 9px 18px; font-size:.85rem; }
  .hd__menu-btn span{ display:none; }
  .menu__word{ display:none; }
  .menu__top-actions .pill{ white-space:nowrap; }
  .hero__title{ font-size:2.5rem; }
  .hero__sub{ font-size:1rem; }
  .stays__rail, .amen__grid, .revs__grid{ grid-template-columns:1fr; }
  .intro__mosaic{ height:96vw; }
  .intro__stat--2{ right:0; }
  .town__ph--over{ right:2%; }
  .menu__right{ grid-template-columns:1fr 1fr; }
  .menu__touch{ flex-direction:column; gap:14px; }
  .menu__touch-title{ margin-right:0; }
  .ft__grid{ grid-template-columns:1fr; }
  .ft__partner{ flex-direction:column; align-items:flex-start; }
  .ft__bar{ flex-direction:column; align-items:flex-start; }
  .ft__bar nav a{ margin:0 18px 0 0; }
  .wed__facts{ gap:20px; }
}

/* ============================================================
   INTERIOR PAGES — page hero, splits, tables, gallery, lightbox
   ============================================================ */

/* ---------- page hero ---------- */
.page-hero{
  position:relative; isolation:isolate;
  min-height:clamp(380px,58vh,560px);
  display:flex; align-items:flex-end; justify-content:center;
  padding:140px 0 64px;
}
.page-hero__media, .page-hero__media img{ position:absolute; inset:0; width:100%; height:100%; }
.page-hero__media img{ object-fit:cover; object-position:center 45%; }
.page-hero__scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom,
    rgba(20,14,8,.6) 0%, rgba(20,14,8,.28) 40%,
    rgba(20,14,8,.4) 68%, rgba(20,14,8,.66) 100%);
}
.page-hero__in{ position:relative; z-index:2; text-align:center; max-width:860px; padding:0 24px; }
.page-hero__title{
  font-family:'Kavarian', Georgia, serif;
  font-size:clamp(2.5rem,5.5vw,4rem); line-height:1.08;
  color:#FDFAF2; text-shadow:0 2px 28px rgba(20,14,8,.5);
}
.page-hero__title em{ color:var(--gold-soft); }
.page-hero__lead{
  margin:18px auto 0; max-width:620px;
  color:rgba(253,250,242,.9); font-size:1.06rem; line-height:1.7;
  text-shadow:0 1px 12px rgba(20,14,8,.5);
}

/* ---------- page sections ---------- */
.pg{ padding:var(--gap) 0; position:relative; }
.pg--alt{ background:var(--cream); }
.pg__lead-in{ max-width:720px; margin:0 auto 56px; text-align:center; }
.pg__lead-in .lead{ margin-left:auto; margin-right:auto; }

/* feature split */
.feat{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(36px,5vw,72px); align-items:center;
}
.feat + .feat{ margin-top:calc(var(--gap) * .8); }
.feat--flip .feat__media{ order:2; }
.feat__media{ position:relative; }
.feat__ph{ overflow:hidden; border-radius:var(--r-lg); box-shadow:var(--shadow); }
.feat__ph img{ width:100%; aspect-ratio:4/3.2; object-fit:cover; transition:transform .7s var(--ease); }
.feat__ph:hover img{ transform:scale(1.04); }
.feat__ph--small{
  position:absolute; right:-5%; bottom:-12%; width:46%;
  border:7px solid #fff; border-radius:14px;
  box-shadow:0 26px 44px -14px rgba(51,38,26,.35);
  transform:rotate(2.4deg); overflow:hidden;
}
.feat__ph--small img{ aspect-ratio:3/2.2; }
.feat__copy .h2{ margin-bottom:0; }
.feat__list{ margin:24px 0 30px; display:flex; flex-direction:column; gap:13px; }
.feat__list li{ display:flex; gap:13px; align-items:flex-start; font-size:.97rem; color:var(--muted); line-height:1.55; }
.feat__list li b{ color:var(--ink); font-weight:600; }
.feat__list .ic{
  width:38px; height:38px; padding:9px; flex:none;
  border-radius:12px; background:rgba(74,90,52,.12); color:var(--green);
}
.feat__mini{
  display:flex; gap:12px; flex-wrap:wrap; margin:20px 0 28px;
}
.feat__mini li{
  border:1px solid var(--line); background:var(--cream-2);
  border-radius:999px; padding:8px 16px; font-size:.85rem; color:var(--ink-2);
}

/* ---------- rate tables / price lists ---------- */
.price-rows{ margin:22px 0 0; }
.price-rows li{
  display:flex; align-items:baseline; gap:12px;
  padding:8px 2px; border-bottom:1px solid var(--line);
  font-size:.95rem;
}
.price-rows li:last-child{ border-bottom:0; }
.price-rows .n{ color:var(--ink-2); }
.price-rows .l{ flex:1; border-bottom:1.5px dotted rgba(126,111,89,.5); transform:translateY(-3px); }
.price-rows .v{ font-family:'Kavarian', Georgia, serif; font-size:1.12rem; color:var(--gold-deep); white-space:nowrap; }
.price-note{ font-size:.85rem; color:var(--muted); margin-top:14px; }

/* tier cards (wedding packages) */
.tiers{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.tier{
  background:#FFFDF8; border:1px solid var(--line); border-radius:20px;
  padding:30px 28px; box-shadow:var(--shadow-sm);
  display:flex; flex-direction:column;
  transition:box-shadow .3s, border-color .3s, transform .3s var(--ease);
}
.tier:hover{ box-shadow:var(--shadow); border-color:rgba(176,141,79,.45); transform:translateY(-3px); }
.tier--dark{
  background:var(--dark); color:rgba(247,242,233,.78);
  border-color:rgba(224,200,150,.35);
  position:relative;
}
.tier__flag{
  position:absolute; top:-15px; left:50%; transform:translateX(-50%);
  background:var(--gold); color:#FFF9EC; font-size:.74rem; font-weight:600;
  letter-spacing:.06em; padding:6px 16px; border-radius:999px;
  box-shadow:0 6px 16px -6px rgba(150,117,64,.6); white-space:nowrap;
}
.tier__name{ font-family:'Kavarian', Georgia, serif; font-size:1.4rem; color:var(--ink); }
.tier--dark .tier__name{ color:var(--gold-soft); }
.tier__days{ font-size:.85rem; color:var(--muted); margin-top:4px; }
.tier--dark .tier__days{ color:rgba(247,242,233,.6); }
.tier__price{ margin:16px 0 6px; font-family:'Kavarian', Georgia, serif; font-size:2.3rem; color:var(--gold-deep); line-height:1; }
.tier--dark .tier__price{ color:var(--gold-soft); }
.tier__inc{ margin:16px 0 24px; display:flex; flex-direction:column; gap:9px; flex:1; }
.tier__inc li{ display:flex; gap:10px; font-size:.9rem; line-height:1.5; }
.tier__inc .ic{ width:16px; height:16px; flex:none; margin-top:3px; color:var(--green); }
.tier--dark .tier__inc .ic{ color:var(--gold-soft); }
.tier .pill{ justify-content:center; }

/* ---------- FAQ accordion ---------- */
.faq{ max-width:820px; margin:0 auto; }
.faq__item{
  background:#FFFDF8; border:1px solid var(--line); border-radius:16px;
  margin-bottom:12px; overflow:hidden;
  transition:border-color .25s, box-shadow .25s;
}
.faq__item[open]{ border-color:rgba(176,141,79,.5); box-shadow:var(--shadow-sm); }
.faq__q{
  display:flex; align-items:center; gap:14px;
  padding:18px 22px; cursor:pointer; list-style:none;
  font-family:'Kavarian', Georgia, serif; font-size:1.14rem; color:var(--ink);
  transition:color .2s;
}
.faq__q::-webkit-details-marker{ display:none; }
.faq__q:hover{ color:var(--gold-deep); }
.faq__q .ic{
  width:30px; height:30px; padding:8px; flex:none; margin-left:auto;
  border-radius:50%; background:rgba(176,141,79,.14); color:var(--gold-deep);
  transition:transform .3s var(--ease), background .2s, color .2s;
}
.faq__item[open] .faq__q .ic{ transform:rotate(45deg); background:var(--gold); color:#FFF9EC; }
.faq__a{
  padding:0 22px 20px 22px; color:var(--muted); font-size:.96rem; line-height:1.7;
}
.faq__a b{ color:var(--ink-2); }

/* ---------- gallery page ---------- */
.gal__filters{
  display:flex; flex-wrap:wrap; justify-content:center; gap:9px;
  margin-bottom:44px;
}
.gal__filter{
  border:1px solid var(--line); background:#FFFDF8; color:var(--ink-2);
  border-radius:999px; padding:9px 20px; font-size:.88rem; font-weight:600;
  transition:background .2s, color .2s, border-color .2s;
}
.gal__filter:hover{ border-color:var(--gold); color:var(--gold-deep); }
.gal__filter.on{ background:var(--gold); border-color:var(--gold); color:#FFF9EC; }
.gal__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
.gal__tile{
  position:relative; overflow:hidden; border-radius:14px;
  box-shadow:var(--shadow-sm); cursor:zoom-in;
  border:0; padding:0; background:none; display:block; width:100%;
}
.gal__tile img{
  width:100%; aspect-ratio:1/1; object-fit:cover; display:block;
  transition:transform .6s var(--ease);
}
.gal__tile:hover img{ transform:scale(1.06); }
.gal__tile--w2{ grid-column:span 2; }
.gal__tile--w2 img{ aspect-ratio:2/1; }
.gal__tile span{
  position:absolute; inset:auto 0 0 0; padding:26px 14px 10px;
  background:linear-gradient(to top, rgba(24,17,10,.68), transparent);
  color:var(--cream); font-size:.78rem; letter-spacing:.03em; text-align:left;
  opacity:0; transition:opacity .3s;
}
.gal__tile:hover span{ opacity:1; }
.gal__tile.hide{ display:none; }

/* lightbox */
.lb{ position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; padding:4vmin; }
.lb[hidden]{ display:none; }
.lb__back{ position:absolute; inset:0; background:rgba(20,14,8,.9); backdrop-filter:blur(6px); }
.lb__fig{ position:relative; z-index:2; max-width:min(1100px,94vw); }
.lb__img{
  display:block; max-width:100%; max-height:80vh; margin:0 auto;
  border-radius:12px; box-shadow:0 40px 90px -30px rgba(0,0,0,.8);
  animation:lbIn .25s var(--ease);
}
@keyframes lbIn{ from{ opacity:0; transform:scale(.97); } to{ opacity:1; transform:none; } }
.lb__cap{ text-align:center; color:rgba(247,242,233,.8); font-size:.9rem; margin-top:14px; }
.lb__count{ color:var(--gold-soft); margin-right:8px; }
.lb__x{
  position:absolute; top:18px; right:20px; z-index:5;
  width:52px; height:52px; border-radius:50%;
  border:1.5px solid rgba(247,242,233,.5); background:rgba(20,14,8,.45); color:var(--cream);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s, border-color .2s, transform .25s var(--ease);
}
.lb__x:hover{ background:var(--gold); border-color:var(--gold); transform:rotate(90deg); }
.lb__x .ic{ width:18px; height:18px; }
.lb__nav{
  position:absolute; top:50%; z-index:5; transform:translateY(-50%);
  width:52px; height:52px; border-radius:50%;
  border:1.5px solid rgba(247,242,233,.4); background:rgba(20,14,8,.4); color:var(--cream);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s, border-color .2s;
}
.lb__nav:hover{ background:var(--gold); border-color:var(--gold); }
.lb__nav .ic{ width:18px; height:18px; }
.lb__nav--prev{ left:18px; }
.lb__nav--next{ right:18px; }
.lb__close-pill{
  position:absolute; bottom:22px; left:50%; transform:translateX(-50%); z-index:5;
  display:inline-flex; align-items:center; gap:9px;
  background:rgba(251,248,241,.9); color:var(--ink);
  border-radius:999px; padding:10px 22px; font-size:.9rem; font-weight:600; cursor:pointer;
  transition:background .2s;
}
.lb__close-pill:hover{ background:#fff; }
.lb__close-pill .ic{ width:14px; height:14px; }

/* ---------- attractions ---------- */
.attr{
  display:grid; grid-template-columns:repeat(2,1fr); gap:22px;
}
.attr__card{
  background:#FFFDF8; border:1px solid var(--line); border-radius:20px;
  padding:26px 28px; box-shadow:var(--shadow-sm);
  display:flex; gap:20px; align-items:flex-start;
  transition:box-shadow .3s, border-color .3s, transform .3s var(--ease);
}
.attr__card:hover{ box-shadow:var(--shadow); border-color:rgba(176,141,79,.45); transform:translateY(-2px); }
.attr__dist{
  flex:none; width:86px; text-align:center;
  background:rgba(176,141,79,.12); border:1px solid rgba(176,141,79,.4);
  border-radius:14px; padding:12px 8px;
}
.attr__dist b{ display:block; font-family:'Kavarian', Georgia, serif; font-size:1.35rem; color:var(--gold-deep); line-height:1.05; }
.attr__dist span{ font-size:.72rem; color:var(--muted); letter-spacing:.04em; }
.attr__name{ font-family:'Kavarian', Georgia, serif; font-size:1.25rem; color:var(--ink); margin-bottom:6px; }
.attr__blurb{ font-size:.92rem; color:var(--muted); line-height:1.6; }

/* ---------- maps page ---------- */
.dirrows{ max-width:860px; margin:0 auto; }
.dirrow{
  display:flex; gap:20px; align-items:flex-start;
  background:#FFFDF8; border:1px solid var(--line); border-radius:16px;
  padding:20px 24px; margin-bottom:14px; box-shadow:var(--shadow-sm);
}
.dirrow__from{
  flex:none; width:150px;
  font-family:'Kavarian', Georgia, serif; font-size:1.1rem; color:var(--ink);
}
.dirrow__from span{ display:block; font-family:'Golte', sans-serif; font-size:.78rem; color:var(--gold-deep); font-weight:600; margin-top:3px; }
.dirrow__txt{ font-size:.94rem; color:var(--muted); line-height:1.65; }

/* ---------- contact ---------- */
.cgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.ccard{
  background:#FFFDF8; border:1px solid var(--line); border-radius:20px;
  padding:30px 26px; box-shadow:var(--shadow-sm); text-align:center;
  transition:box-shadow .3s, border-color .3s, transform .3s var(--ease);
}
.ccard:hover{ box-shadow:var(--shadow); border-color:rgba(176,141,79,.45); transform:translateY(-2px); }
.ccard .ic{
  width:54px; height:54px; padding:15px; margin:0 auto 16px;
  border-radius:50%; background:rgba(176,141,79,.14); color:var(--gold-deep);
}
.ccard b{ display:block; font-family:'Kavarian', Georgia, serif; font-size:1.2rem; color:var(--ink); margin-bottom:6px; }
.ccard span{ font-size:.92rem; color:var(--muted); line-height:1.6; }
.ccard a{ color:var(--ink-2); font-weight:600; transition:color .2s; }
.ccard a:hover{ color:var(--gold-deep); }

/* ---------- interior responsive ---------- */
@media (max-width:1024px){
  .feat{ grid-template-columns:1fr; }
  .feat--flip .feat__media{ order:0; }
  .tiers, .cgrid{ grid-template-columns:1fr; }
  .attr{ grid-template-columns:1fr; }
  .gal__grid{ grid-template-columns:repeat(3,1fr); }
  .tier--dark{ transform:none; }
}
@media (max-width:640px){
  .gal__grid{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .dirrow{ flex-direction:column; gap:8px; }
  .dirrow__from{ width:auto; }
  .feat__ph--small{ right:2%; }
}
