/* Class A Motorcoach Resorts — shared stylesheet */

:root{--cream:#f4f0e8;--paper:#fbfaf7;--ink:#17211d;--forest:#1f352e;--deep:#101b18;--gold:#b79356;--muted:#6e746f;--line:#d8d2c6;--font-serif:'Playfair Display',Georgia,'Times New Roman',serif;--font-sans:'Inter',Arial,Helvetica,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans),Arial,sans-serif}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button,a{transition:.25s ease}
img{display:block;width:100%;height:100%;object-fit:cover}

/* ---------- Navigation ---------- */
.nav{height:86px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;position:absolute;top:0;left:0;width:100%;z-index:20;color:white;border-bottom:1px solid #ffffff3d}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--font-serif);font-size:20px;line-height:.9}
.brand em{display:block;font-family:var(--font-sans);font-size:8px;font-style:normal;letter-spacing:2.2px;text-transform:uppercase;margin-top:6px}
.brandMark{display:grid;place-items:center;border:1px solid currentColor;width:39px;height:39px;font-size:17px}
.navLinks{display:flex;gap:27px;font-size:12px;letter-spacing:.5px}
.navLinks a:hover,.navLinks a.active{color:#d9bb7e}
.listLink{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;border-bottom:1px solid white;padding:9px 0}
.menu{display:none;background:none;border:0}
.menu span{display:block;width:24px;height:1px;background:white;margin:6px}

/* ---------- Homepage hero ---------- */
.hero{height:auto;min-height:920px;position:relative;color:white;background-image:url('../images/hero.jpg');background-position:center top;background-size:cover;background-repeat:no-repeat}
.heroShade,.imageVeil{position:absolute;inset:0;background:linear-gradient(90deg,#101916cf 0%,#1019165c 50%,#10191625 100%)}
.heroShade{background:linear-gradient(90deg,rgba(255,246,226,.16) 0%,rgba(255,246,226,.1) 52%,rgba(255,246,226,.06) 100%)}
.heroContent{position:relative;z-index:2;padding:175px 7vw 80px;max-width:1080px}
.eyebrow{text-transform:uppercase;letter-spacing:2.7px;font-size:10px;font-weight:700;color:#92733f;margin:0 0 20px}
.eyebrow.light{color:#d4b478}
.hero h1,.section h2,.centerHead h2,.partners h2,.newsletter h2,.pageHero h1{font-family:var(--font-serif);font-weight:400;margin:0;letter-spacing:-2px}
.hero h1{font-size:clamp(56px,6vw,92px);line-height:.9}
.hero h1 i,.newsletter h2 i{font-weight:400;color:#e1c38e}
.heroCopy{font-family:var(--font-serif);font-size:20px;line-height:1.45;max-width:670px;margin:28px 0 33px;color:#f2eee5}
.scroll{position:absolute;right:4vw;bottom:35px;z-index:2;font-size:8px;letter-spacing:2px;writing-mode:vertical-rl;display:flex;gap:15px;align-items:center}
.scroll span{font-size:18px}

/* ---------- Search dock ---------- */
.heroSearchDock{position:relative;z-index:5;background:#f4f0e8;padding:38px 7vw 34px;border-top:1px solid #d8d2c6}
.heroSearchDock .dockCopy{font-family:var(--font-serif);font-size:19px;line-height:1.45;color:#39433e;max-width:720px;margin:0 0 20px}
.heroSearchDock .searchPanel{width:min(900px,100%);box-shadow:0 12px 35px rgba(16,27,24,.13)}
.heroSearchDock .quick{color:#28332e;margin-top:15px}
.heroSearchDock .quick button{color:#28332e;border-bottom-color:#8a918c}
.searchPanel{background:#ffffff;color:var(--ink);width:min(900px,86vw);box-shadow:0 18px 50px #0004}
.searchTabs{height:50px;display:flex;border-bottom:1px solid #ddd8cf;padding-left:24px;gap:28px}
.searchTabs button{background:none;border:0;font-size:11px;text-transform:uppercase;letter-spacing:1.3px;color:#757975;position:relative;cursor:pointer}
.searchTabs button.active{color:var(--ink);font-weight:700}
.searchTabs button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--gold)}
.searchRow{display:grid;grid-template-columns:1.4fr .85fr auto;align-items:center;padding:14px}
.searchRow label{display:flex;flex-direction:column;padding:3px 18px;border-right:1px solid #ddd8cf}
.searchRow label span{font-size:9px;letter-spacing:1.7px;font-weight:700;margin-bottom:6px}
.searchRow input,.searchRow select{border:0;outline:0;background:white;color:var(--ink);padding:2px 0}
.searchRow input::placeholder{color:#676b67}
.searchButton,.goldButton{border:0;background:var(--forest);color:white;text-transform:uppercase;letter-spacing:1.5px;font-size:10px;font-weight:700;padding:20px 26px;cursor:pointer}
.searchButton:hover{background:var(--gold)}
.quick{display:flex;gap:15px;margin-top:17px;align-items:center;font-size:10px}
.quick span{text-transform:uppercase;letter-spacing:2px;color:#d4b478}
.quick button{border:0;border-bottom:1px solid #ffffff70;color:white;background:transparent;padding:4px 0;cursor:pointer;font-size:11px}

/* ---------- Interior page hero ---------- */
.pageHero{min-height:430px;position:relative;color:white;display:flex;align-items:flex-end}
.pageHero>img{position:absolute;inset:0}
.pageHero .imageVeil{background:linear-gradient(0deg,#0e1815e0 0%,#0e181570 55%,#0e181540 100%)}
.pageHeroInner{position:relative;z-index:2;padding:150px 7vw 55px;max-width:1080px}
.pageHero h1{font-size:clamp(44px,5vw,76px);line-height:.95}
.pageHero .heroCopy{font-size:18px;margin:20px 0 0;max-width:640px}
.crumb{position:relative;z-index:2;font-size:9px;letter-spacing:1.8px;text-transform:uppercase;color:#d9c291;margin:0 0 18px}
.crumb a{border-bottom:1px solid #d9c29160}
.crumb a:hover{color:white}

/* ---------- Sections ---------- */
.section{max-width:1440px;margin:auto;padding:110px 6vw}
.intro{padding-top:120px}
.sectionHead{display:flex;align-items:end;justify-content:space-between;gap:40px}
.section h2,.centerHead h2{font-size:clamp(42px,4.5vw,67px);line-height:1;color:var(--ink)}
.textLink{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;border-bottom:1px solid #9d855d;padding-bottom:8px;font-weight:700;white-space:nowrap}
.textLink span,.destination>span{margin-left:8px}
.lead{font-family:var(--font-serif);font-size:19px;line-height:1.5;color:#5f6762;max-width:720px;margin:30px 0 55px}
.darkSection h2{color:white}
.headCopy{max-width:390px;color:#aaa;font-family:var(--font-serif);font-size:18px;line-height:1.5;margin:0}
.coaches .headCopy.ink,.headCopy.ink{color:#6d736e}

/* ---------- Resort cards (homepage featured) ---------- */
.resortGrid{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:330px 330px;gap:18px}
.resortCard{position:relative;overflow:hidden;color:white}
.resortCard.r0{grid-row:1/3}
.resortCard img,.destination img,.category img{transition:transform .7s ease}
.resortCard:hover img,.destination:hover img,.category:hover img{transform:scale(1.04)}
.resortCard .imageVeil{background:linear-gradient(0deg,#0d1814e8 0%,transparent 68%)}
.cardTop{position:absolute;top:22px;left:22px;background:#e7d2a7;color:#17211d;font-size:8px;letter-spacing:1.8px;padding:7px 10px;font-weight:700}
.resortInfo{position:absolute;left:30px;right:30px;bottom:28px}
.resortInfo>p,.listingMeta>p{font-size:9px;letter-spacing:1.6px;text-transform:uppercase;margin:0 0 8px;color:#d9c291}
.resortInfo h3{font-family:var(--font-serif);font-size:32px;margin:0 0 8px;font-weight:500}
.resortInfo .description{font-family:var(--font-serif);font-size:15px;color:#e7e5df}
.tags{display:flex;gap:8px;margin:15px 0;flex-wrap:wrap}
.tags span{font-size:8px;text-transform:uppercase;letter-spacing:1px;border:1px solid #ffffff62;padding:5px 8px}
.resortInfo>a{font-size:9px;text-transform:uppercase;letter-spacing:1.4px;font-weight:700}

/* ---------- Destinations ---------- */
.destinations{background:var(--deep);color:white}
.destinationGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:55px}
.destination{height:270px;position:relative;overflow:hidden}
.destination .imageVeil{background:linear-gradient(0deg,#0b1613d9,transparent 70%)}
.destination>div:last-of-type{position:absolute;bottom:23px;left:24px}
.destination h3{font-family:var(--font-serif);font-size:28px;margin:0}
.destination p{font-size:10px;color:#ddd;margin:5px 0}
.destination>span{position:absolute;right:24px;bottom:30px}

/* ---------- Listing cards ---------- */
.listingGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:50px}
.listingCard{background:white}
.listingImage{height:290px;position:relative;overflow:hidden}
.listingImage img{transition:transform .6s}
.listingCard:hover .listingImage img{transform:scale(1.035)}
.listingImage button{position:absolute;right:15px;top:15px;border:0;border-radius:50%;background:#fffffff0;width:37px;height:37px;font-size:20px;cursor:pointer}
.listingImage>span{position:absolute;left:14px;bottom:14px;background:#17211de6;color:white;padding:7px 9px;font-size:8px;letter-spacing:1.5px}
.listingMeta{padding:22px 5px 5px}
.listingMeta>p{color:#897149}
.listingMeta h3{font-family:var(--font-serif);font-size:25px;margin:0 0 11px;font-weight:500}
.features{font-size:10px;color:#777;border-bottom:1px solid var(--line);padding-bottom:18px}
.price{display:flex;align-items:baseline;gap:4px;padding-top:16px;font-size:10px}
.price strong{font-family:var(--font-serif);font-size:23px}
.price a{margin-left:auto;text-transform:uppercase;letter-spacing:1px;font-size:9px;font-weight:700}
.price small{margin-left:7px;color:#8b8b86}
.sale{background:var(--cream)}
.saleCard{background:transparent}
.saleCard .listingMeta{padding-left:0;padding-right:0}

/* ---------- Filter bar (directory pages) ---------- */
.filterBar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.filterBar button{border:1px solid var(--line);background:transparent;color:#4c554f;font-size:10px;text-transform:uppercase;letter-spacing:1.3px;padding:11px 16px;cursor:pointer}
.filterBar button:hover{border-color:var(--gold);color:var(--ink)}
.filterBar button.active{background:var(--forest);border-color:var(--forest);color:white}
.resultNote{font-size:11px;color:#848984;margin:0 0 30px;letter-spacing:.5px}
.hiddenCard{display:none!important}

/* ---------- Categories ---------- */
.categories{background:#21332d;color:white}
.categories .section{padding-top:95px;padding-bottom:95px}
.centerHead{text-align:center}
.centerHead h2{color:white}
.categoryGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:45px}
.category{height:360px;position:relative;overflow:hidden}
.category .imageVeil{background:linear-gradient(0deg,#09120fd9,transparent 75%)}
.category h3{font-family:var(--font-serif);font-size:31px;font-weight:400;position:absolute;bottom:32px;left:25px;margin:0}
.category>span{position:absolute;top:20px;right:20px;font-size:9px;text-transform:uppercase;letter-spacing:1.2px;opacity:0}
.category:hover>span{opacity:1}
.categoryPills{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #ffffff2e;margin-top:15px}
.categoryPills a{padding:18px;text-align:center;text-transform:uppercase;font-size:9px;letter-spacing:1.2px;border-right:1px solid #ffffff2e}
.categoryPills a:last-child{border:0}

/* ---------- Coaches ---------- */
.brandRow{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:55px 0;color:#505954;font-family:var(--font-serif);font-size:16px;letter-spacing:1px;flex-wrap:wrap}
.coachFeature{height:560px;position:relative;color:white}
.coachFeature .imageVeil{background:linear-gradient(90deg,#0d1814de,transparent 70%)}
.coachFeature>div:last-child{position:absolute;left:6%;top:50%;transform:translateY(-50%);max-width:470px}
.coachFeature h2{color:white;font-size:60px}
.coachFeature p:not(.eyebrow){font-family:var(--font-serif);font-size:18px;line-height:1.5}
.lightButton{display:inline-block;border:1px solid #ffffff7a;padding:17px 20px;margin-top:15px;text-transform:uppercase;font-size:9px;letter-spacing:1.4px}
.lightButton:hover{background:#ffffff22}
.brandCardGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:25px;margin-top:50px}
.brandCard{background:white;padding:45px 40px;border:1px solid var(--line)}
.brandCard h3{font-family:var(--font-serif);font-size:30px;font-weight:500;margin:0 0 6px}
.brandCard .origin{font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:#897149;margin:0 0 16px}
.brandCard p:not(.origin){font-family:var(--font-serif);font-size:16px;line-height:1.55;color:#4e5651;margin:0}

/* ---------- Journal ---------- */
.journal{background:#eee9df}
.journalGrid{display:grid;grid-template-columns:1.3fr .7fr;gap:40px;margin-top:50px}
.story img{height:420px}
.story p{font-size:8px;letter-spacing:1.4px;color:#917342}
.story h3{font-family:var(--font-serif);font-size:35px;font-weight:500;margin:10px 0}
.story a{font-size:9px;text-transform:uppercase;letter-spacing:1.2px;font-weight:700}
.mainStory>div{padding-top:20px}
.storyStack{display:flex;flex-direction:column;gap:18px}
.miniStory{display:grid;grid-template-columns:145px 1fr;gap:18px;padding-bottom:18px;border-bottom:1px solid #cbc4b7}
.miniStory img{height:115px}
.miniStory h3{font-size:21px;margin:5px 0}
.miniStory p{margin:0}
.storyGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:50px}
.storyGrid .story img{height:260px}
.storyGrid .story h3{font-size:26px}

/* ---------- Article page ---------- */
.articleWrap{max-width:800px;margin:auto;padding:80px 6vw 110px}
.articleWrap .eyebrow{margin-bottom:14px}
.articleTitle{font-family:var(--font-serif);font-weight:400;letter-spacing:-1.5px;font-size:clamp(38px,4.2vw,58px);line-height:1.05;margin:0 0 18px}
.articleMeta{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#848984;margin-bottom:40px}
.articleBody{font-family:var(--font-serif);font-size:19px;line-height:1.7;color:#2b332e}
.articleBody h2{font-size:32px;letter-spacing:-1px;font-weight:500;margin:50px 0 15px}
.articleBody p{margin:0 0 22px}
.articleBody strong{font-family:var(--font-sans);font-size:16px}
.articleBody blockquote{border-left:2px solid var(--gold);margin:35px 0;padding:5px 0 5px 28px;font-style:italic;font-size:22px;color:#4b544e}
.articleHero{height:480px;position:relative}
.backBar{padding:28px 6vw 0;max-width:800px;margin:auto}
.backBar a{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;border-bottom:1px solid #9d855d;padding-bottom:6px}

/* ---------- Partners ---------- */
.partners{display:grid;grid-template-columns:2fr 1fr;background:var(--deep);color:white}
.partnerMain{padding:105px 8vw;background:linear-gradient(90deg,#101b18ed,#101b18b0),url('https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=1600&q=85') center/cover}
.partnerMain h2{font-size:56px}
.partnerMain>p:not(.eyebrow){font-family:var(--font-serif);font-size:18px;max-width:650px;line-height:1.5;color:#d6d6d0}
.partnerPoints{display:flex;gap:24px;font-size:10px;margin:28px 0;flex-wrap:wrap}
.partnerPoints span:before{content:"✓";color:#d5b67d;margin-right:7px}
.goldButton{display:inline-block;background:#b59359;color:#10201a;padding:18px 25px}
.goldButton:hover{background:#d9bb7e}
.partnerSide{background:#d9c49b;color:#19221e;padding:100px 55px;display:flex;flex-direction:column;justify-content:center}
.partnerSide h3{font-family:var(--font-serif);font-size:34px;font-weight:500;margin:0}
.partnerSide p:not(.eyebrow){font-family:var(--font-serif);line-height:1.5}
.partnerSide a{text-transform:uppercase;font-size:9px;letter-spacing:1.5px;font-weight:700;margin-top:10px}

/* ---------- Value props / steps ---------- */
.stepGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:55px}
.stepCard{background:white;border:1px solid var(--line);padding:42px 36px}
.stepCard .stepNum{font-family:var(--font-serif);font-size:38px;color:var(--gold);margin:0 0 14px}
.stepCard h3{font-family:var(--font-serif);font-size:25px;font-weight:500;margin:0 0 12px}
.stepCard p{font-family:var(--font-serif);font-size:15px;line-height:1.55;color:#4e5651;margin:0}

/* ---------- Forms ---------- */
.formSection{background:var(--cream)}
.formCard{background:white;box-shadow:0 12px 35px rgba(16,27,24,.1);padding:55px 50px;max-width:860px}
.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:28px 35px}
.formGrid label,.formFull label{display:flex;flex-direction:column}
.formFull{margin-top:28px}
.formGrid label span,.formFull label span{font-size:9px;letter-spacing:1.7px;font-weight:700;text-transform:uppercase;margin-bottom:9px;color:#39433e}
.formGrid input,.formGrid select,.formFull textarea,.formFull input{border:0;border-bottom:1px solid #b9b3a6;background:transparent;padding:8px 2px;outline:0;color:var(--ink)}
.formGrid input:focus,.formGrid select:focus,.formFull textarea:focus{border-bottom-color:var(--gold)}
.formFull textarea{min-height:120px;resize:vertical}
.formActions{margin-top:38px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.formActions small{font-size:10px;color:#848984;max-width:340px;line-height:1.5}
.notice{display:none;margin-top:25px;background:#eef3ec;border:1px solid #b9ccb4;color:#2c4a33;padding:16px 20px;font-size:13px;line-height:1.5}
.notice.show{display:block}

/* ---------- Contact / about ---------- */
.infoGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:55px}
.infoCard{border:1px solid var(--line);background:white;padding:40px 34px}
.infoCard h3{font-family:var(--font-serif);font-size:24px;font-weight:500;margin:0 0 10px}
.infoCard p{font-family:var(--font-serif);font-size:15px;line-height:1.6;color:#4e5651;margin:0}
.infoCard a{color:#8a6f3f;border-bottom:1px solid #c9b488}
.prose{max-width:820px;font-family:var(--font-serif);font-size:18px;line-height:1.7;color:#2b332e}
.prose h2{font-size:30px;letter-spacing:-1px;font-weight:500;margin:45px 0 12px;font-family:var(--font-serif)}
.prose p{margin:0 0 20px}
.prose ul{margin:0 0 20px;padding-left:22px}
.prose li{margin-bottom:8px}
.legalMeta{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#848984;margin:0 0 40px}

/* ---------- Newsletter ---------- */
.newsletter{text-align:center;padding:95px 20px;background:var(--paper)}
.newsletter h2{font-size:55px}
.newsletter>p:not(.eyebrow){font-family:var(--font-serif);font-size:17px;color:#6b716c}
.newsletter form{display:flex;max-width:600px;margin:28px auto 16px;border-bottom:1px solid #888}
.newsletter input{flex:1;border:0;background:transparent;padding:15px 4px;outline:0}
.newsletter button{border:0;background:transparent;text-transform:uppercase;font-size:9px;letter-spacing:1.4px;font-weight:700;cursor:pointer}
.newsletter small{font-size:8px;color:#999}
.newsletter .notice{max-width:600px;margin:20px auto 0;text-align:left}

/* ---------- Footer ---------- */
footer{background:#111b18;color:#ccc;padding:75px 6vw 25px}
.footerTop{display:grid;grid-template-columns:1.2fr 2fr;gap:80px}
.footerBrand p{font-family:var(--font-serif);font-size:15px;line-height:1.5;max-width:300px;color:#909892;margin-top:25px}
.footerLinks{display:grid;grid-template-columns:repeat(4,1fr);gap:35px}
.footerLinks div{display:flex;flex-direction:column;gap:13px}
.footerLinks strong{font-size:8px;letter-spacing:1.7px;color:#d0b47e;margin-bottom:7px}
.footerLinks a{font-family:var(--font-serif);font-size:15px}
.footerLinks a:hover{color:#d0b47e}
.footerBottom{border-top:1px solid #ffffff1c;margin-top:60px;padding-top:22px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#77807b}

/* ---------- Responsive ---------- */
@media(max-width:900px){
.navLinks,.listLink{display:none}
.menu{display:block}
.navLinks.open{display:flex;position:absolute;top:86px;left:0;right:0;background:#14201d;padding:30px 5vw;flex-direction:column}
.heroContent{padding-top:150px}
.hero h1{font-size:60px}
.searchPanel{width:100%}
.quick{flex-wrap:wrap}
.resortGrid{grid-template-columns:1fr;grid-template-rows:520px 360px 360px}
.resortCard.r0{grid-row:auto}
.destinationGrid,.listingGrid{grid-template-columns:repeat(2,1fr)}
.categoryGrid{grid-template-columns:repeat(2,1fr)}
.brandRow{flex-wrap:wrap}
.journalGrid{grid-template-columns:1fr}
.partners{grid-template-columns:1fr}
.footerTop{grid-template-columns:1fr}
.footerLinks{gap:20px}
.brandCardGrid{grid-template-columns:1fr}
.stepGrid,.infoGrid{grid-template-columns:1fr}
.storyGrid{grid-template-columns:repeat(2,1fr)}
.formGrid{grid-template-columns:1fr}
.formCard{padding:40px 30px}
}
@media(max-width:620px){
.nav{height:72px;padding:0 20px}
.brand{font-size:17px}
.brandMark{width:35px;height:35px}
.navLinks.open{top:72px}
.hero{min-height:680px}
.heroContent{padding:125px 20px 60px}
.hero h1{font-size:48px;line-height:.95}
.hero h1 br{display:none}
.heroCopy{font-size:17px}
.heroSearchDock{padding:30px 20px}
.heroSearchDock .dockCopy{font-size:16px}
.heroSearchDock .quick{display:none}
.searchTabs{gap:13px;padding-left:10px}
.searchTabs button{font-size:8px}
.searchRow{grid-template-columns:1fr;padding:14px}
.searchRow label{border-right:0;border-bottom:1px solid #ddd8cf;padding:10px 8px}
.searchRow .region{display:none}
.searchButton{margin-top:10px}
.quick{display:none}
.scroll{display:none}
.section{padding:75px 20px}
.sectionHead{align-items:start}
.sectionHead .headCopy{display:none}
.section h2,.centerHead h2{font-size:42px}
.textLink{display:none}
.lead{font-size:17px}
.pageHeroInner{padding:120px 20px 45px}
.pageHero{min-height:360px}
.pageHero h1{font-size:40px}
.resortGrid{grid-template-rows:440px 330px 330px}
.resortInfo{left:20px;bottom:20px}
.resortInfo h3{font-size:27px}
.destinationGrid,.listingGrid{grid-template-columns:1fr}
.destination{height:240px}
.listingImage{height:280px}
.categoryGrid{grid-template-columns:1fr 1fr}
.category{height:250px}
.category h3{font-size:25px;left:15px;bottom:20px}
.categoryPills{grid-template-columns:1fr 1fr}
.categoryPills a:nth-child(2){border-right:0}
.categoryPills a:nth-child(-n+2){border-bottom:1px solid #ffffff2e}
.brandRow{justify-content:center;gap:24px 28px}
.coachFeature{height:520px}
.coachFeature>div:last-child{left:25px;right:20px}
.coachFeature h2{font-size:44px}
.journalGrid{gap:20px}
.story img{height:290px}
.story h3{font-size:29px}
.miniStory{grid-template-columns:110px 1fr}
.miniStory img{height:105px}
.miniStory h3{font-size:17px}
.storyGrid{grid-template-columns:1fr}
.partnerMain{padding:75px 25px}
.partnerMain h2{font-size:43px}
.partnerPoints{flex-direction:column;gap:10px}
.partnerSide{padding:65px 25px}
.newsletter{padding:70px 20px}
.newsletter h2{font-size:42px}
.newsletter form{flex-direction:column;border:0;gap:10px}
.newsletter input{border-bottom:1px solid #888}
.newsletter button{background:var(--forest);color:white;padding:16px}
.footerLinks{grid-template-columns:1fr 1fr}
.footerBottom{flex-direction:column;gap:10px}
.footerTop{gap:45px}
.articleHero{height:320px}
.brandCard{padding:32px 25px}
}

/* ---------- Resort directory (real data) ---------- */
.resortList{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:34px}
.resortItem{background:white;border:1px solid var(--line);padding:28px 28px 22px;display:flex;flex-direction:column}
.resortItem:hover{border-color:#c2b48d}
.resortItemHead{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.resortItem .place{font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:#897149;margin:0 0 7px}
.resortItem h3{font-family:var(--font-serif);font-size:24px;font-weight:500;margin:0;line-height:1.15}
.resortItem .reqline{font-size:11px;color:#6e746f;margin:8px 0 0}
.badges{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.badge{font-size:7.5px;letter-spacing:1.5px;font-weight:700;padding:6px 8px;border:1px solid var(--line);color:#5f6762;white-space:nowrap}
.badge.gold{background:#e7d2a7;border-color:#e7d2a7;color:#17211d}
.specs{margin:20px 0 0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;gap:9px}
.specRow{display:grid;grid-template-columns:112px 1fr;gap:12px;font-size:12px;align-items:baseline}
.specRow dt{font-size:8.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:#8b8b86}
.specRow dd{margin:0;color:#2b332e}
.tags.ink{margin:16px 0 0}
.tags.ink span{border-color:var(--line);color:#5f6762}
.resortItemFoot{margin-top:auto;padding-top:18px;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:10px}
.resortItemFoot a:first-child{text-transform:uppercase;letter-spacing:1.2px;font-weight:700;border-bottom:1px solid #9d855d;padding-bottom:4px}
.resortItemFoot a[href^="tel"]{color:#6e746f}
.resortItemFoot .addr{flex-basis:100%;color:#9a9f9a;font-size:10px}
.sourceNote{margin-top:45px;font-size:11px;line-height:1.7;color:#8b8b86;max-width:820px}
.filterBar.toggles{margin-top:4px}
.filterBar.toggles button.active{background:var(--gold);border-color:var(--gold);color:#17211d}

/* ---------- Map page ---------- */
.mapIntro{max-width:1440px;margin:auto;padding:150px 6vw 30px;text-align:center}
.mapIntro h1{font-family:var(--font-serif);font-weight:400;letter-spacing:-2px;font-size:clamp(40px,4.5vw,64px);margin:0 0 16px;color:var(--ink)}
.mapIntro p:not(.eyebrow){font-family:var(--font-serif);font-size:17px;line-height:1.55;color:#5f6762;max-width:660px;margin:0 auto}
.mapLegend{margin-top:20px;font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:#6e746f;display:flex;gap:18px;justify-content:center;align-items:center}
.mapLegend .dot{width:11px;height:11px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:-1px}
.mapLegend .dot.gold{background:var(--gold)}
.mapLegend .dot.green{background:var(--forest)}
#resortMap{height:620px;margin:34px 6vw 0;border:1px solid var(--line);z-index:1}
.leaflet-popup-content{font-family:var(--font-sans);font-size:12px;line-height:1.55}
.leaflet-popup-content strong{font-family:var(--font-serif);font-size:15px}
.leaflet-popup-content a{color:#8a6f3f;border-bottom:1px solid #c9b488}

/* ---------- HOA / ownership table ---------- */
.tableWrap{overflow-x:auto;margin-top:40px;border:1px solid var(--line);background:white}
table.hoa{border-collapse:collapse;width:100%;min-width:680px;font-size:12px}
table.hoa th{background:var(--forest);color:white;text-align:left;font-size:8.5px;letter-spacing:1.5px;text-transform:uppercase;padding:14px 16px;font-weight:700;white-space:nowrap}
table.hoa td{padding:13px 16px;border-top:1px solid var(--line);color:#2b332e}
table.hoa tbody tr:hover{background:#faf8f3}
table.hoa .rname{font-family:var(--font-serif);font-size:15px}
table.hoa .fee{font-family:var(--font-serif);font-size:17px;white-space:nowrap}
table.hoa .yes{color:#3f6b4a;font-weight:700}
table.hoa .no{color:#c3c8c3}
.statRow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
.statCard{background:white;border:1px solid var(--line);padding:26px 24px;text-align:center}
.statCard strong{display:block;font-family:var(--font-serif);font-size:34px;color:var(--gold);line-height:1}
.statCard span{display:block;margin-top:8px;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#6e746f}

@media(max-width:900px){
.resortList{grid-template-columns:1fr}
.statRow{grid-template-columns:repeat(2,1fr)}
#resortMap{height:460px;margin:28px 20px 0}
.mapIntro{padding:120px 20px 24px}
}
@media(max-width:620px){
.resortItem{padding:22px 20px 18px}
.resortItem h3{font-size:21px}
.resortItemHead{flex-direction:column}
.badges{flex-direction:row;align-items:flex-start}
.specRow{grid-template-columns:100px 1fr;font-size:11.5px}
.statRow{grid-template-columns:1fr 1fr;gap:12px}
.statCard strong{font-size:27px}
#resortMap{height:400px}
}
