:root{
  --ink:#1c1a17;
  --ink-2:#3a3530;
  --muted:#6b625a;
  --cream:#f7f2ea;
  --paper:#fffdf9;
  --line:#e6ddcf;
  --gold:#8a6a3e; /* darkened so text and white-on-gold buttons pass WCAG AA */
  --gold-2:#c9a76c;
  --gold-soft:#f1e6d2;
  --weekend:#efe3cc;
  --holiday:#e9d1cb;
  --holiday-ink:#8a3f33;
  --booked:#ece9e4;
  --radius:14px;
  --shadow:0 20px 50px -25px rgba(28,26,23,.35);
  --serif:"Frank Ruhl Libre", Georgia, serif;
  --sans:"Heebo", system-ui, sans-serif;
  --script:"Cormorant Garamond", Georgia, serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{zoom:var(--a11y-zoom,1)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;top:-100px;right:16px;z-index:200;background:var(--ink);color:#fff;padding:12px 20px;border-radius:0 0 10px 10px;font-weight:500}
.skip:focus{top:0}
:focus-visible{outline:3px solid #1a5fb4;outline-offset:3px;border-radius:4px}
main:focus{outline:none}

/* accessibility modes */
html.a11y-contrast{--ink:#000;--ink-2:#000;--muted:#222;--paper:#fff;--cream:#fff;--line:#555;--gold:#5a4220;--weekend:#e9dcc0;--holiday:#f0c9c0}
html.a11y-contrast .hero-shade{background:rgba(0,0,0,.7)}
html.a11y-contrast .nav.solid{background:#fff}
html.a11y-links a{text-decoration:underline!important;text-underline-offset:3px}
html.a11y-readable body,html.a11y-readable h1,html.a11y-readable h2,html.a11y-readable h3,html.a11y-readable h4,html.a11y-readable .logo-en,html.a11y-readable .script{font-family:Arial,"Heebo",sans-serif!important;font-style:normal!important;letter-spacing:normal!important}
html.a11y-nomotion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-nomotion .reveal{opacity:1;transform:none}

/* sits above the "Powered by Netlify" badge (bottom 64px of the right corner on the free plan) */
.a11y-btn{position:fixed;bottom:84px;right:22px;z-index:60;width:52px;height:52px;border-radius:50%;border:0;background:#1a5fb4;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px -8px rgba(0,0,0,.4)}
.a11y-btn svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}
.a11y-btn svg circle{fill:#fff;stroke:none}
.a11y-panel{position:fixed;bottom:146px;right:22px;z-index:61;width:min(300px,calc(100vw - 32px));background:#fff;color:#000;border-radius:14px;padding:18px;box-shadow:0 20px 50px -10px rgba(0,0,0,.45);font-family:Arial,"Heebo",sans-serif}
.a11y-panel[hidden]{display:none}
.a11y-panel h2{font-family:inherit;font-size:18px;margin:0 0 12px}
.a11y-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.a11y-panel button{font:inherit;font-size:14px;padding:10px 8px;border:1px solid #888;border-radius:8px;background:#f4f4f4;color:#000;cursor:pointer}
.a11y-panel button[aria-pressed="true"]{background:#1a5fb4;color:#fff;border-color:#1a5fb4}
.a11y-reset{width:100%;margin-top:10px}
.a11y-statement{display:block;text-align:center;margin-top:12px;color:#1a5fb4;text-decoration:underline}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--paper);line-height:1.75;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.2;margin:0 0 .6em}
h2{font-size:clamp(30px,4vw,46px)}
p{margin:0 0 1em}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.narrow{max-width:820px}
.center{text-align:center}
.muted{color:var(--muted)}
.section{padding:110px 0}
.eyebrow{font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-2);font-weight:500;margin-bottom:14px}
.eyebrow.dark{color:var(--gold)}
.sub{color:var(--muted);max-width:620px;margin:0 auto 40px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 30px;border-radius:999px;font-family:var(--sans);font-size:16px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:.25s}
.btn-gold{background:var(--gold);color:#fff}
.btn-gold:hover{background:var(--ink)}
.btn-ghost{border-color:rgba(255,255,255,.6);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--ink)}
.btn-line{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-line:hover{border-color:var(--ink)}
.btn-sm{padding:9px 20px;font-size:15px}
.link-gold{color:var(--gold);font-weight:500;border-bottom:1px solid currentColor;cursor:pointer}

/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;transition:.35s;color:#fff}
.nav.solid{background:rgba(255,253,249,.94);backdrop-filter:blur(10px);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.nav-inner{max-width:1240px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;flex-direction:column;line-height:1}
.logo-en{font-family:var(--script);font-style:italic;font-size:34px}
.logo-sub{font-size:10px;letter-spacing:.42em;margin-top:4px;opacity:.8}
.links{display:flex;align-items:center;gap:30px;font-size:15px}
.links a:not(.btn){position:relative;padding:4px 0}
.links a:not(.btn)::after{content:"";position:absolute;inset:auto 0 -2px;height:1px;background:currentColor;transform:scaleX(0);transition:.3s}
.links a:not(.btn):hover::after{transform:scaleX(1)}
.nav-icons{display:flex;align-items:center;gap:6px;margin-inline-start:18px}
.ig-link{display:flex;padding:8px;border-radius:50%;transition:.2s}
.ig-link svg,.ig-ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
.ig-link svg circle:last-child,.ig-ico circle:last-child{fill:currentColor;stroke:none}
.ig-link:hover{background:rgba(127,127,127,.15)}
.ig-ico{width:20px;height:20px}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.burger span{display:block;width:24px;height:1.5px;background:currentColor;margin:6px 0;color:inherit}
.nav .burger span{background:#fff}
.nav.solid .burger span{background:var(--ink)}

/* hero */
.hero{position:relative;height:100vh;min-height:620px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:#2a2622 center/cover no-repeat;transform:scale(1.08);animation:zoom 14s ease-out forwards}
@keyframes zoom{to{transform:scale(1)}}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.vid-toggle{position:absolute;top:96px;left:24px;z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.25);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
.vid-toggle:hover{background:rgba(0,0,0,.5)}
.vid-toggle[hidden]{display:none}
.vid-toggle svg{width:18px;height:18px;fill:currentColor}
.vid-toggle .i-play,.vid-toggle.paused .i-pause{display:none}
.vid-toggle.paused .i-play{display:block}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,15,.55),rgba(20,18,15,.42) 40%,rgba(20,18,15,.75))}
.hero h1,.hero-text,.hero .eyebrow{text-shadow:0 2px 18px rgba(0,0,0,.45)}
.hero-content{position:relative;max-width:820px;padding:0 24px;animation:rise 1.2s .2s both}
@keyframes rise{from{opacity:0;transform:translateY(30px)}}
.hero h1{font-size:clamp(38px,6vw,72px);font-weight:400}
.hero .script{font-family:var(--script);font-style:italic;font-size:1.5em;color:var(--gold-2);line-height:1}
.hero-text{font-size:19px;max-width:600px;margin:0 auto 34px;opacity:.92}
.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.scroll-cue{position:absolute;bottom:34px;left:50%;width:26px;height:42px;border:1.5px solid rgba(255,255,255,.7);border-radius:20px;transform:translateX(-50%)}
.scroll-cue::after{content:"";position:absolute;top:8px;left:50%;width:3px;height:8px;background:#fff;border-radius:3px;transform:translateX(-50%);animation:cue 1.8s infinite}
@keyframes cue{50%{transform:translate(-50%,10px);opacity:.3}}

/* about */
.about-head{margin-bottom:56px}
.welcome{font-size:18px;letter-spacing:.45em;margin-bottom:18px}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.about-img{position:relative}
.about-img img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;width:100%;box-shadow:var(--shadow)}
.about-img::before{content:"";position:absolute;inset:-18px 18px 18px -18px;border:1px solid var(--gold-2);border-radius:var(--radius);z-index:-1}
.facts{display:flex;gap:40px;margin:30px 0 0;padding-top:26px;border-top:1px solid var(--line)}
.facts dt{font-size:13px;color:var(--muted);letter-spacing:.1em}
.facts dd{margin:4px 0 0;font-family:var(--serif);font-size:24px}

/* amenities */
.amen{background:var(--cream)}
.amen-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:50px}
.amen-item{background:var(--paper);padding:34px 26px;border-radius:var(--radius);border:1px solid var(--line);transition:.3s}
.amen-item:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.amen-item svg{width:38px;height:38px;stroke:var(--gold);fill:none;stroke-width:1.3;margin-bottom:18px}
.amen-item h3{font-size:21px;margin-bottom:6px}
.amen-item p{font-size:15px;color:var(--muted);margin:0}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:240px;gap:14px;margin-top:50px}
.gallery figure{margin:0;overflow:hidden;border-radius:10px;cursor:zoom-in;background:var(--cream)}
.gallery figure:nth-child(6n+1){grid-column:span 2;grid-row:span 2}
.gallery figure:nth-child(6n+4){grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.gallery figure:hover img{transform:scale(1.06)}
.more{margin-top:30px}

/* availability */
.avail{background:var(--cream)}
.price-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:880px;margin:0 auto 40px}
.pc{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px;text-align:center}
.pc small{display:block;color:var(--muted);font-size:14px}
.pc strong{display:block;font-family:var(--serif);font-size:32px;font-weight:500;margin:4px 0 2px}
.pc span{font-size:13px;color:var(--muted)}
.pc.weekend{background:var(--weekend);border-color:transparent}
.pc.holiday{background:var(--holiday);border-color:transparent}

.cal-box{background:var(--paper);border-radius:20px;padding:30px;box-shadow:var(--shadow)}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.cal-nav{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:none;font-size:24px;cursor:pointer;color:var(--ink);transition:.2s;flex:none}
.cal-nav:hover:not(:disabled){background:var(--ink);color:#fff}
.cal-nav:disabled{opacity:.3;cursor:default}
.cal-legend{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:14px;color:var(--muted)}
.cal-legend span{display:flex;align-items:center;gap:6px}
.lg{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid var(--line)}
.lg-free{background:var(--paper)}
.lg-weekend{background:var(--weekend);border-color:transparent}
.lg-holiday{background:var(--holiday);border-color:transparent}
.lg-booked{background:repeating-linear-gradient(45deg,var(--booked) 0 3px,#d9d4cc 3px 5px);border-color:transparent}
.cal-months{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.month h3{text-align:center;font-size:22px;margin-bottom:14px}
.dow,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.dow div{text-align:center;font-size:13px;color:var(--muted);padding-bottom:6px}
.day{position:relative;min-height:64px;border-radius:8px;border:1px solid transparent;background:none;font-family:inherit;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 2px;transition:background .15s,border-color .15s}
.day .n{font-size:16px;font-weight:500;line-height:1.1}
.day .p{font-size:11.5px;color:var(--muted);line-height:1.2;margin-top:2px}
.day .h{font-size:9.5px;color:var(--holiday-ink);line-height:1.1;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.day.weekend{background:var(--weekend)}
.day.holiday{background:var(--holiday)}
.day.special{background:var(--gold-soft)}
.day:hover:not(:disabled){border-color:var(--ink)}
.day.past{opacity:.3;cursor:default;background:none}
.day.booked{background:repeating-linear-gradient(45deg,var(--booked) 0 4px,#e1dcd4 4px 7px);cursor:not-allowed}
.day.booked .n{text-decoration:line-through;color:var(--muted)}
.day.booked .p{visibility:hidden}
.day.in-range{background:#e8dcc5}
.day.sel-start,.day.sel-end{background:var(--ink)!important;color:#fff}
.day.sel-start .p,.day.sel-end .p,.day.sel-start .h,.day.sel-end .h{color:#e8dcc5}
.day.checkout-only{cursor:pointer}
.day.blank{cursor:default}

.day.view{cursor:default}
.day.view:hover{border-color:transparent}
.avail-cta{max-width:640px;margin:30px auto 0;text-align:center;background:var(--paper);border-radius:20px;padding:30px;box-shadow:var(--shadow)}
.avail-cta p:first-child{font-family:var(--serif);font-size:24px;margin-bottom:16px}
.avail-cta .fine{margin-top:16px}
.summary{max-width:640px;margin:30px auto 0;background:var(--paper);border-radius:20px;padding:28px 30px;box-shadow:var(--shadow)}
.sum-empty{text-align:center;color:var(--muted)}
.sum-dates{font-family:var(--serif);font-size:22px;margin-bottom:12px}
.sum-lines{list-style:none;padding:0;margin:0 0 12px;font-size:15px}
.sum-lines li{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--line)}
.sum-warn{background:#fbecd9;color:#7a4a12;padding:10px 14px;border-radius:10px;font-size:14px;margin-bottom:12px}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;font-size:18px;margin:8px 0 18px}
.sum-total strong{font-family:var(--serif);font-size:34px;font-weight:500}
.sum-actions{display:flex;gap:10px;flex-wrap:wrap}
.sum-actions .btn-gold{flex:1}
.fine{font-size:13px;color:var(--muted);margin:14px 0 0}
.platforms{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:34px;color:var(--muted)}
.plat{padding:8px 18px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font-weight:500;transition:.2s}
.plat:hover{border-color:var(--ink)}

/* reviews */
.rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-top:40px}
.ratings{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:30px}
.rating{display:flex;flex-direction:column;align-items:center;min-width:150px;padding:20px 26px;border:1px solid var(--line);border-radius:var(--radius);transition:.2s}
.rating:hover{border-color:var(--gold);box-shadow:var(--shadow)}
.rating strong{font-family:var(--serif);font-size:38px;font-weight:500;line-height:1;color:var(--gold)}
.rating strong small{font-size:16px;color:var(--muted)}
.rating span{font-weight:500;margin-top:8px}
.rating em{font-style:normal;font-size:13px;color:var(--muted)}
.rev{background:var(--cream);padding:30px;border-radius:var(--radius);margin:0}
.rev p{font-family:var(--serif);font-size:19px}
.rev footer{font-size:14px;color:var(--muted)}

/* day use */
.day-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1000px;margin:10px auto 0}
.day-card{background:var(--ink);color:#f3ece1;border-radius:20px;padding:38px 34px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.day-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-2))}
.day-card h3{font-size:28px;color:#fff}
.day-card p{opacity:.85}
.day-card ul{list-style:none;padding:0;margin:4px 0 28px}
.day-card li{padding:8px 0;border-top:1px solid rgba(255,255,255,.12);display:flex;gap:10px;align-items:center}
.day-card li::before{content:"✦";color:var(--gold-2);font-size:12px}
.day-card .btn{margin-top:auto;align-self:flex-start}

.extras{margin-top:70px}
.extras h3{font-size:30px}
.extras .sub{margin-bottom:30px}
.extras-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:30px}
.extra{text-align:center;padding:24px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}
.extra svg{width:34px;height:34px;stroke:var(--gold);fill:none;stroke-width:1.3;margin:0 auto 12px}
.extra h4{font-family:var(--serif);font-weight:500;font-size:19px;margin:0 0 4px}
.extra p{font-size:14px;color:var(--muted);margin:0}

/* around */
.around{background:var(--cream)}
.tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:34px}
.tabs button{font-family:inherit;font-size:15px;padding:9px 20px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;transition:.2s}
.tabs button:hover{border-color:var(--ink)}
.tabs button[aria-selected="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.around-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.spot{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px 24px 18px;display:flex;flex-direction:column;animation:fadeIn .4s both}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}}
.spot-cat{font-size:12px;letter-spacing:.12em;color:var(--gold);font-weight:500}
.spot h3{font-size:22px;margin:6px 0 2px}
.spot-place{font-size:14px;color:var(--muted);margin-bottom:10px}
.spot p:not(.spot-place){font-size:15px;color:var(--ink-2)}
.spot-foot{margin-top:auto;padding-top:14px;border-top:1px dashed var(--line);display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--muted)}
.spot-foot a{color:var(--gold);font-weight:500}
.spot-foot a:hover{color:var(--ink)}

/* location */
.loc-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center}
.map{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3;background:var(--cream)}
.map-consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:30px;text-align:center;background:linear-gradient(160deg,var(--cream),#efe6d6)}
.map-consent[hidden]{display:none}
.map-consent p{max-width:320px;color:var(--ink-2);margin:0}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(.35) sepia(.15)}

/* faq */
.faq{background:var(--cream)}
.qa{border-bottom:1px solid var(--line)}
.qa h3{margin:0;font-size:inherit;font-weight:inherit}
.qa button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-family:var(--serif);font-size:21px}
.qa button::after{content:"+";font-family:var(--sans);font-weight:300;font-size:28px;color:var(--gold);transition:.3s}
.qa.open button::after{transform:rotate(45deg)}
.qa .ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s}
.qa.open .ans{grid-template-rows:1fr}
.qa .ans>div{overflow:hidden;color:var(--ink-2)}
.qa .ans p{padding-bottom:22px;margin:0}

/* cta + footer */
.cta{background:var(--ink) center/cover;color:#fff;padding:110px 0;position:relative}
.cta p{opacity:.8;margin-bottom:30px}
.center-row{justify-content:center}
.footer{background:#14120f;color:#d8d0c4;padding:60px 0 30px}
.foot-grid{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:start}
.foot-links{display:flex;flex-wrap:wrap;gap:12px 24px}
.foot-links a:hover,.foot-btn:hover{color:var(--gold-2)}
.foot-btn{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.copy{grid-column:1/-1;border-top:1px solid #2c2823;padding-top:20px;font-size:14px;margin:0}

.wa-float{position:fixed;bottom:22px;left:22px;z-index:60;width:58px;height:58px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px -8px rgba(0,0,0,.4);transition:.25s}
.wa-float:hover{transform:scale(1.08)}

.lightbox{position:fixed;inset:0;z-index:100;background:rgba(15,13,11,.94);display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lightbox img{max-width:90vw;max-height:86vh;border-radius:6px}
.lb-close,.lb-nav{position:absolute;background:none;border:0;color:#fff;font-size:44px;cursor:pointer;padding:10px 18px;opacity:.8}
.lb-close{top:14px;left:20px}
.lb-prev{right:10px}
.lb-next{left:10px}

.reveal{opacity:0;transform:translateY(30px);transition:1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* cookie consent */
html.ck-lock{overflow:hidden}
.ck-banner{position:fixed;inset:auto 18px 18px;z-index:90;max-width:1080px;margin:0 auto;background:var(--paper);color:var(--ink);border-radius:20px;box-shadow:0 30px 70px -20px rgba(28,26,23,.45),0 0 0 1px var(--line);overflow:hidden;opacity:0;transform:translateY(28px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.ck-banner::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-2),var(--gold))}
.ck-banner.ck-open{opacity:1;transform:none}
.ck-banner[hidden],.ck-modal[hidden]{display:none}
.ck-inner{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;padding:28px 34px}
.ck-text h2{font-family:var(--serif);font-size:24px;font-weight:500;margin:0 0 6px}
.ck-text p{font-size:15px;line-height:1.7;color:var(--ink-2);margin:0}
.ck-text a,.ck-intro a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.ck-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;max-width:470px}
.ck-btn{font-family:var(--sans);font-size:15px;font-weight:500;padding:12px 22px;border-radius:999px;cursor:pointer;border:1px solid transparent;transition:.25s;white-space:nowrap}
.ck-primary{background:var(--gold);color:#fff}
.ck-primary:hover{background:var(--ink)}
.ck-secondary{background:transparent;color:var(--ink);border-color:var(--ink)}
.ck-secondary:hover{background:var(--ink);color:#fff}
.ck-link{font:inherit;font-size:15px;background:none;border:0;padding:8px 4px;color:var(--ink);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.ck-link:hover{color:var(--gold)}

.ck-modal{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(28,26,23,.55);backdrop-filter:blur(4px);opacity:0;transition:opacity .35s ease}
.ck-modal.ck-open{opacity:1}
.ck-dialog{position:relative;width:100%;max-width:600px;max-height:calc(100vh - 36px);overflow-y:auto;background:var(--paper);color:var(--ink);border-radius:22px;padding:38px 36px 30px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);transform:translateY(16px) scale(.98);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.ck-modal.ck-open .ck-dialog{transform:none}
.ck-x{position:absolute;top:14px;left:16px;width:40px;height:40px;border:0;border-radius:50%;background:none;font-size:28px;line-height:1;color:var(--ink);cursor:pointer}
.ck-x:hover{background:var(--cream)}
.ck-eyebrow{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);font-weight:500;margin:0 0 6px}
.ck-dialog h2{font-family:var(--serif);font-size:30px;font-weight:500;margin:0 0 10px}
.ck-intro{font-size:15px;color:var(--ink-2);margin-bottom:20px}
.ck-cats{border-top:1px solid var(--line)}
.ck-cat{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line)}
.ck-cat h3{font-family:var(--sans);font-size:17px;font-weight:500;margin:0 0 4px}
.ck-cat p{font-size:14px;line-height:1.65;color:var(--muted);margin:0}
.ck-always{display:inline-block;margin-inline-start:8px;font-size:12px;font-weight:500;color:var(--gold);background:var(--gold-soft);padding:2px 10px;border-radius:999px;vertical-align:middle}
.ck-switch{position:relative;flex:none;width:52px;height:30px;margin-top:2px;cursor:pointer}
.ck-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.ck-switch input:disabled{cursor:not-allowed}
.ck-track{position:absolute;inset:0;border-radius:999px;background:#cfc6b8;transition:background .25s}
.ck-track::after{content:"";position:absolute;top:3px;right:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .25s}
.ck-switch input:checked+.ck-track{background:var(--gold)}
.ck-switch input:checked+.ck-track::after{transform:translateX(-22px)}
.ck-switch input:disabled+.ck-track{opacity:.8}
.ck-switch input:focus-visible+.ck-track{outline:3px solid #1a5fb4;outline-offset:3px}
.ck-dialog-actions{display:flex;gap:10px;justify-content:flex-start;margin-top:24px;flex-wrap:wrap}
@media (max-width:860px){
  .ck-inner{grid-template-columns:1fr;gap:18px;padding:26px 24px 22px}
  .ck-actions{max-width:none;justify-content:flex-start}
}
@media (max-width:600px){
  .ck-banner{inset:auto 0 0;border-radius:20px 20px 0 0;transform:translateY(100%)}
  .ck-text h2{font-size:21px}
  .ck-text p{font-size:14px}
  .ck-actions{flex-direction:column;align-items:stretch}
  .ck-btn{width:100%;white-space:normal}
  .ck-link{align-self:center}
  .ck-modal{align-items:flex-end;padding:0}
  .ck-dialog{border-radius:22px 22px 0 0;padding:34px 22px 24px;max-height:92vh;transform:translateY(40px)}
  .ck-dialog-actions .ck-btn{flex:1}
}

/* responsive */
@media (max-width:960px){
  .about-grid,.loc-grid{grid-template-columns:1fr;gap:50px}
  .amen-grid{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}
  .gallery figure:nth-child(6n+4){grid-row:auto}
  .cal-months{grid-template-columns:1fr}
  .around-grid{grid-template-columns:1fr 1fr}
  .day-grid{grid-template-columns:1fr}
  .extras-grid{grid-template-columns:repeat(2,1fr)}
  .cal-months .month:nth-child(2){display:none}
}
.links a{white-space:nowrap}
@media (max-width:1120px){
  .burger{display:block}
  .links{position:fixed;inset:0 0 auto;top:0;flex-direction:column;background:var(--paper);color:var(--ink);padding:90px 24px 30px;gap:20px;transform:translateY(-110%);transition:.4s;box-shadow:var(--shadow)}
  .links.open{transform:none}
  .burger{position:relative;z-index:2}
  .nav.menu-open .burger span{background:var(--ink)}
}
@media (max-width:600px){
  body{font-size:16px}
  .wrap{padding:0 16px}
  .section{padding:80px 0}
  .amen-grid{grid-template-columns:1fr 1fr;gap:12px}
  .amen-item{padding:22px 16px}
  .around-grid{grid-template-columns:1fr}
  .tabs{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:6px}
  .tabs button{flex:none}
  .day-card{padding:30px 22px}
  .pc{display:flex;justify-content:space-between;align-items:center;text-align:right;padding:14px 18px}
  .pc strong{font-size:24px;margin:0}
  .cal-box{padding:16px 10px;border-radius:16px}
  .cal-legend{gap:10px;font-size:12px}
  .day{min-height:54px}
  .day .p{font-size:10px}
  .day .h{display:none}
  .facts{gap:24px}
  .summary{padding:22px 18px}
  .foot-grid{grid-template-columns:1fr}
  .about-img::before{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
