:root{
  --pine:#22392B;
  --pine-deep:#16271D;
  --bark:#6B4F35;
  --cream:#F5EFE2;
  --cream-deep:#EAE1CC;
  --ember:#C9722F;
  --rose:#8C2F39;
  --anthracite:#211E1A;
  --white:#FFFDF8;
  --radius:10px;
  --shadow:0 2px 14px rgba(33,30,26,.12);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:'Public Sans',system-ui,sans-serif;color:var(--anthracite);background:var(--cream);line-height:1.6;font-size:16.5px}
h1,.wordmark{font-family:'Alfa Slab One',serif;font-weight:400}
h2{font-size:clamp(1.7rem,4vw,2.4rem);color:var(--pine);font-weight:700;margin-bottom:.6rem;line-height:1.15}
h3{font-size:1.15rem;color:var(--pine);margin-bottom:.35rem;line-height:1.2}
p{margin-bottom:1rem}
a{color:var(--pine)}
img{max-width:100%;display:block}
.eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember);font-weight:700;margin-bottom:.5rem}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
section{padding:64px 0}
.btn{display:inline-block;background:var(--ember);color:var(--white);text-decoration:none;font-weight:700;padding:13px 26px;border-radius:6px;border:none;font-size:1rem;cursor:pointer;transition:background .15s}
.btn:hover{background:#A85C22}
.btn-outline{background:transparent;color:var(--pine);border:2px solid var(--pine)}
.btn-outline:hover{background:var(--pine);color:var(--white)}
:focus-visible{outline:3px solid var(--ember);outline-offset:2px}

.announce{background:var(--pine-deep);color:var(--cream);text-align:center;font-size:.9rem;padding:8px 16px}
.announce a{color:#E8A05C;font-weight:700}

header{position:sticky;top:0;z-index:50;background:var(--cream);border-bottom:1px solid var(--cream-deep)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;max-width:1100px;margin:0 auto}
.wordmark{font-size:1.25rem;color:var(--pine);text-decoration:none;line-height:1.1}
.wordmark small{display:block;font-family:'Public Sans',sans-serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bark);font-weight:600}
.nav-links{display:none;gap:20px;list-style:none;align-items:center}
.nav-links a{text-decoration:none;font-weight:600;font-size:.92rem;color:var(--anthracite)}
.nav-links a:hover,.nav-links a.active{color:var(--ember)}
.nav-links .btn{padding:9px 18px;font-size:.9rem;color:var(--white)}
.nav-group{position:relative}
.nav-group summary{list-style:none;cursor:pointer;font-weight:600;font-size:.92rem;color:var(--anthracite);padding:8px 0}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary::after{content:' +';color:var(--ember)}
.nav-group[open] summary::after{content:' −'}
.nav-drop{position:absolute;top:100%;left:-16px;min-width:220px;background:var(--white);border:1px solid var(--cream-deep);border-radius:8px;padding:8px;box-shadow:var(--shadow);z-index:60}
.nav-drop a{display:block;padding:9px 10px;border-radius:5px;white-space:nowrap}
.nav-drop a:hover{background:var(--cream)}
.menu-btn{background:none;border:2px solid var(--pine);border-radius:6px;color:var(--pine);font-weight:700;padding:7px 14px;cursor:pointer;font-size:.9rem}
@media(min-width:1020px){.nav-links{display:flex}.menu-btn{display:none}}
.mobile-menu{display:none;flex-direction:column;background:var(--white);border-top:1px solid var(--cream-deep);padding:10px 20px 18px;list-style:none;gap:2px}
.mobile-menu.open{display:flex}
.mobile-menu a{display:block;padding:10px 4px;text-decoration:none;font-weight:600;color:var(--anthracite);border-bottom:1px solid var(--cream-deep)}
.mobile-menu li:last-child a{border:none}

/* Page hero banner (interior pages) */
.page-hero{position:relative;background:var(--pine-deep);color:var(--cream);padding:70px 0 90px;overflow:hidden}
.page-hero .wrap{position:relative;z-index:2;text-align:center}
.page-hero h1{font-size:clamp(1.8rem,4.5vw,2.8rem);color:var(--cream);text-shadow:0 2px 10px rgba(0,0,0,.5)}
.page-hero p{max-width:640px;margin:0.6rem auto 0;color:#EDE6D2;text-shadow:0 1px 8px rgba(0,0,0,.55)}
.page-hero .bg{position:absolute;inset:0;background:linear-gradient(rgba(22,39,29,.62),rgba(22,39,29,.78)) center/cover;z-index:0}
.page-hero .bg.img{background-size:cover;background-position:center}

/* Home hero */
.hero{position:relative;background:var(--pine-deep);color:var(--cream);overflow:hidden;padding:0}
.hero-inner{position:relative;z-index:2;max-width:1100px;margin:0 auto;padding:90px 20px 150px;text-align:center}
.hero h1{font-size:clamp(2.1rem,6vw,3.6rem);color:var(--cream);margin-bottom:1rem;text-shadow:0 2px 12px rgba(0,0,0,.55)}
.hero p.lede{font-size:clamp(1.05rem,2.5vw,1.3rem);max-width:640px;margin:0 auto 1.8rem;color:#F0E9D6;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.hero .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.ridge{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:auto;z-index:1;pointer-events:none}
.hero-photo{position:absolute;inset:0;background:linear-gradient(rgba(22,39,29,.55),rgba(22,39,29,.72)),url('../images/hero.jpg') center/cover;z-index:0}

.availability{padding:0;background:var(--cream);position:relative;z-index:4}
.availability .wrap{transform:translateY(-24px)}
.availability-card{display:grid;gap:12px;background:var(--white);border-radius:12px;padding:22px;box-shadow:0 8px 28px rgba(33,30,26,.18);align-items:end}
.availability-heading h2{font-size:1.45rem;margin:0}
.availability-heading .eyebrow{margin-bottom:2px}
.availability-card label{font-size:.78rem;font-weight:700;color:var(--pine)}
.availability-card input{display:block;width:100%;margin-top:4px;padding:10px 9px;border:1.5px solid var(--cream-deep);border-radius:6px;background:var(--cream);font:inherit;color:var(--anthracite)}
.availability-card .btn{width:100%;padding:11px 14px}
.availability-error{color:var(--rose);font-size:.82rem;font-weight:700;margin:0;grid-column:1/-1}
.booking-confidence{display:flex;gap:12px 22px;justify-content:center;flex-wrap:wrap;padding:13px 8px 0;font-size:.82rem;color:var(--bark);font-weight:600}
.booking-confidence a{font-weight:700}
@media(min-width:900px){.availability-card{grid-template-columns:1.35fr 1fr 1fr .55fr .55fr .45fr 1fr}.availability-heading{align-self:center}.availability-card input{min-width:0}}

.trust-section{padding-top:52px}
.trust-grid{margin-top:24px}
.trust-grid>div{background:var(--white);padding:22px;border-radius:var(--radius);box-shadow:var(--shadow);border-bottom:4px solid var(--ember)}
.trust-grid span{font-size:1.8rem;display:block;margin-bottom:10px}
.trust-grid p{font-size:.92rem;margin:0}

.marquee{background:var(--ember);color:var(--white);overflow:hidden;padding:12px 0;white-space:nowrap}
.marquee-track{display:inline-block;animation:scroll 32s linear infinite}
.marquee span{margin:0 26px;font-weight:700;font-size:.95rem}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none;white-space:normal}}

.grid{display:grid;gap:22px}
@media(min-width:700px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}
.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border-top:4px solid var(--pine);display:flex;flex-direction:column}
.card .body{padding:22px 24px;display:flex;flex-direction:column;flex:1}
.card .body .btn{margin-top:auto;align-self:flex-start}
.card img{width:100%;height:200px;object-fit:cover}
.card .tag{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--bark);font-weight:700}
.card ul{margin:.5rem 0 1rem 1.1rem}

.seasonal{background:var(--pine);color:var(--cream);border-radius:var(--radius);overflow:hidden;display:grid;margin-top:34px}
@media(min-width:800px){.seasonal{grid-template-columns:1.2fr 1fr}}
.seasonal .txt{padding:34px 30px}
.seasonal h3{color:var(--cream);font-size:1.35rem}
.seasonal p{color:#D9D2BE}
.seasonal img{width:100%;height:100%;object-fit:cover;min-height:220px}

.amen{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);text-align:center}
.amen .ico{font-size:1.7rem;display:block;margin-bottom:6px}
.amen p{margin:0;font-size:.92rem}

.rules-grid dt{font-weight:700;color:var(--pine);margin-top:14px}
.rules-grid dd{margin-left:0;color:#3D382F}

.attr{display:flex;gap:14px;align-items:baseline;background:var(--white);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.attr .mins{font-family:'Alfa Slab One',serif;color:var(--ember);font-size:1.1rem;min-width:74px}

.event{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.event img{width:100%;height:190px;object-fit:cover}
.event .body{padding:16px 20px}
.event .body p{margin:0}
.calendar-frame{display:block;width:100%;min-height:760px;border:0;border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}
@media(max-width:620px){.calendar-frame{min-height:900px;border-radius:6px}}
.facebook-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,500px);gap:clamp(32px,6vw,88px);align-items:center;margin-top:48px}
.facebook-copy>p:not(.eyebrow){max-width:580px;margin:0 0 26px}
.facebook-embed{width:100%;min-height:620px;overflow:hidden;border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}
.facebook-embed iframe{display:block;width:100%;max-width:500px}
@media(max-width:820px){.facebook-feature{grid-template-columns:1fr}.facebook-embed{max-width:500px;margin:0 auto}}

.contact-grid{display:grid;gap:26px}
@media(min-width:850px){.contact-grid{grid-template-columns:1fr 1.2fr}}
.map-embed{border:0;width:100%;min-height:320px;border-radius:var(--radius);box-shadow:var(--shadow)}
.contact-card p{margin-bottom:.5rem}
.big-time{font-family:'Alfa Slab One',serif;color:var(--pine);font-size:1.3rem;margin-right:6px}
.contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;align-items:center}
.contact-actions .btn{padding:11px 17px;font-size:.92rem}
.contact-actions .text-link{font-weight:700;padding:8px 4px}

.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:700px){.gallery{grid-template-columns:repeat(3,1fr)}}
.gallery img{width:100%;height:210px;object-fit:cover;border-radius:8px;box-shadow:var(--shadow)}

.sitemap-img{border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--cream-deep)}

.teaser{display:grid;gap:26px;align-items:center}
@media(min-width:820px){.teaser{grid-template-columns:1fr 1fr}.teaser.flip .pic{order:2}}
.teaser .pic img{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;height:320px;object-fit:cover}

.cta-band{background:var(--pine);color:var(--cream);text-align:center;padding:56px 20px}
.cta-band h2{color:var(--cream)}
.cta-band p{color:#D9D2BE;max-width:560px;margin:0 auto 1.4rem}
.faq-wrap{display:grid;gap:32px;align-items:start}
.faq-list details{background:var(--white);border-radius:8px;padding:0 18px;margin-bottom:10px;box-shadow:var(--shadow)}
.faq-list summary{cursor:pointer;color:var(--pine);font-weight:700;padding:16px 28px 16px 0;position:relative;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';position:absolute;right:0;color:var(--ember);font-size:1.35rem;top:11px}
.faq-list details[open] summary::after{content:'−'}
.faq-list details p{padding:0 0 16px;margin:0;color:#4d463c}
@media(min-width:820px){.faq-wrap{grid-template-columns:.75fr 1.25fr}}

footer{background:var(--anthracite);color:#CFC7B4;padding:54px 0 30px;margin-top:20px}
.newsletter-band{background:var(--cream-deep);padding:52px 0;margin:0}
.newsletter-inner{display:grid;gap:28px;align-items:start}
@media(min-width:820px){.newsletter-inner{grid-template-columns:.9fr 1.1fr}}
.newsletter-inner h2{margin-bottom:.5rem}
.newsletter-form{background:var(--white);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.newsletter-fields{display:grid;gap:14px;margin-bottom:14px}
@media(min-width:560px){.newsletter-fields{grid-template-columns:.75fr 1.25fr}}
.newsletter-form label{font-weight:600;color:var(--pine);font-size:.86rem}
.newsletter-form input[type="text"],.newsletter-form input[type="email"],.newsletter-form input:not([type]){display:block;width:100%;margin-top:5px;padding:11px 12px;border:1.5px solid var(--cream-deep);border-radius:6px;background:var(--cream);font:inherit}
.newsletter-check{display:flex;gap:9px;align-items:flex-start;margin:10px 0;color:var(--anthracite)!important;font-weight:400!important}
.newsletter-check input{margin-top:4px}
.newsletter-form .btn{margin-top:8px}
.newsletter-status{font-size:.9rem;font-weight:700;color:var(--pine);margin:10px 0 0}
.newsletter-form button:disabled{opacity:.65;cursor:wait}
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
footer .wordmark{color:var(--cream)}
footer .cols{display:grid;gap:30px;margin:26px 0 34px}
@media(min-width:700px){footer .cols{grid-template-columns:repeat(3,1fr)}}
footer h4{color:var(--cream);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}
footer a{color:#CFC7B4;text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:#E8A05C}
footer .legal{border-top:1px solid #3A362F;padding-top:18px;font-size:.85rem;text-align:center;color:#96907F}
.alt{background:var(--cream-deep)}

.modal-bg{display:none;position:fixed;inset:0;background:rgba(22,30,25,.65);z-index:100;align-items:center;justify-content:center;padding:20px}
.modal-bg.open{display:flex}
.modal-bg[aria-hidden="true"]{display:none}
.modal{background:var(--white);border-radius:12px;max-width:440px;width:100%;padding:30px;box-shadow:0 10px 40px rgba(0,0,0,.35);position:relative}
.modal h3{font-size:1.35rem;margin-bottom:4px}
.modal .sub{font-size:.92rem;color:var(--bark);margin-bottom:18px}
.modal .row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.modal .row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:18px}
.modal label{font-weight:600;font-size:.85rem;display:block;margin-bottom:4px;color:var(--pine)}
.modal input{width:100%;padding:10px 11px;border:1.5px solid var(--cream-deep);border-radius:6px;font-family:inherit;font-size:1rem;background:var(--cream)}
.modal input:focus{border-color:var(--ember);outline:none}
.modal .btn{width:100%;text-align:center}
.modal .close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--bark);line-height:1}
.modal .err{color:var(--rose);font-size:.85rem;margin:0 0 10px;display:none}
.pet-policy-alert{background:#F7E7D8;border-left:4px solid var(--ember);border-radius:4px;color:var(--anthracite);font-size:.82rem;padding:8px 10px;margin:-8px 0 14px}
.modal-trust{text-align:center;color:var(--bark);font-size:.76rem;margin:10px 0 0}
body.modal-open{overflow:hidden}

.mobile-conversion{display:none}
@media(max-width:700px){
  body{padding-bottom:62px}
  .mobile-conversion{display:grid;grid-template-columns:.72fr 1.28fr;position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--white);box-shadow:0 -3px 18px rgba(33,30,26,.2);padding:8px;gap:8px}
  .mobile-conversion a{text-align:center;text-decoration:none;font-weight:700;border:2px solid var(--pine);border-radius:6px;padding:9px 6px}
  .mobile-conversion a:last-child{background:var(--ember);border-color:var(--ember);color:var(--white)}
}

.application-layout{display:grid;gap:28px;align-items:start}
@media(min-width:880px){.application-layout{grid-template-columns:.8fr 1.4fr}}
.application-note,.application-form{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}
.application-note{border-top:5px solid var(--ember)}
.application-note ul{margin:0 0 1rem 1.2rem}
.application-form fieldset{border:0;border-top:1px solid var(--cream-deep);padding:22px 0 4px;margin:0}
.application-form fieldset:first-of-type{border-top:0;padding-top:0}
.application-form legend{font-weight:700;color:var(--pine);font-size:1.08rem;padding-right:10px}
.form-grid{display:grid;gap:15px;margin-top:14px}
@media(min-width:620px){.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}}
.application-form label{display:block;font-weight:600;color:var(--pine);font-size:.88rem}
.application-form input,.application-form select,.application-form textarea{display:block;width:100%;margin-top:5px;padding:11px 12px;border:1.5px solid var(--cream-deep);border-radius:6px;background:var(--cream);font:inherit;color:var(--anthracite)}
.application-form textarea{min-height:105px;resize:vertical}
.application-form input:focus,.application-form select:focus,.application-form textarea:focus{border-color:var(--ember);outline:none}
.application-form .check{display:flex;gap:10px;align-items:flex-start;color:var(--anthracite);font-weight:400;margin:16px 0}
.application-form .check input{width:auto;margin-top:4px}
.status{color:var(--pine);font-weight:700;margin-top:14px}

@media(max-width:520px){
  section{padding:48px 0}
  .hero-inner{padding:72px 20px 125px}
  .availability .wrap{transform:translateY(-16px)}
  .modal{padding:26px 20px}
  .modal .row,.modal .row3{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
}
