/* ============================================================
   Lux Vacations Rental — shared design system
   Navy / Gold / Cream, Playfair Display + Jost
   ============================================================ */

:root{
  --navy:#3aa8d8;
  --navy-deep:#2589b8;
  --navy-soft:#63c0e8;
  --gold:#f5e42e;
  --gold-light:#f9f27a;
  --terra:#3fbfb0;
  --cream:#fff8ea;
  --paper:#ffffff;
  --ink:#17435a;
  --ink-soft:#557685;
  --line:#f1e4c8;
  --radius:12px;
  --shadow:0 24px 60px rgba(37,137,184,.16);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Jost', sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
  font-weight:400;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Playfair Display', serif;
  font-weight:600;
  line-height:1.18;
  color:var(--navy);
}
em{font-style:italic; color:var(--terra); font-family:'Playfair Display', serif;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{list-style:none;}
button{font-family:inherit;}
.container{max-width:1180px; margin:0 auto; padding:0 24px;}
.container-narrow{max-width:840px; margin:0 auto; padding:0 24px;}

.eyebrow{
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.74rem;
  color:var(--gold);
  font-weight:600;
  margin-bottom:14px;
  display:block;
}
.section-head{text-align:center; max-width:680px; margin:0 auto 56px;}
.section-head h2{font-size:clamp(1.7rem, 3vw, 2.4rem);}
.section-head p{color:var(--ink-soft); margin-top:16px; font-size:1.02rem;}
.section-head.left{margin:0 0 44px; text-align:left;}
section{padding:100px 0;}
.on-navy{background:var(--navy); color:#fff;}
.on-navy h2, .on-navy h3{color:#fff;}
.on-navy p{color:rgba(255,255,255,.75);}
.on-navy .section-head p{color:rgba(255,255,255,.65);}
.on-paper{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* BUTTONS */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 32px;
  font-family:'Jost', sans-serif; font-size:.9rem; font-weight:500; letter-spacing:.05em;
  text-transform:uppercase;
  border-radius:var(--radius); cursor:pointer; border:1px solid transparent;
  transition:all .25s ease; white-space:nowrap;
}
.btn-primary{background:var(--gold); color:var(--navy);}
.btn-primary:hover{background:var(--gold-light); transform:translateY(-1px);}
.btn-outline{border-color:rgba(255,255,255,.4); color:#fff; background:transparent;}
.btn-outline:hover{border-color:var(--gold); color:var(--gold);}
.btn-outline-dark{border-color:var(--navy); color:var(--navy); background:transparent;}
.btn-outline-dark:hover{border-color:var(--gold); color:var(--gold); background:var(--navy);}
.btn-block{width:100%;}
.btn-sm{padding:11px 22px; font-size:.8rem;}
.btn-plain-case{text-transform:none; letter-spacing:normal;}
.btn[disabled]{opacity:.35; cursor:default; pointer-events:none;}

/* HEADER */
header{position:sticky; top:0; z-index:100; background:rgba(37,137,184,.95); backdrop-filter:blur(8px); border-bottom:1px solid rgba(255,255,255,.08);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 0; gap:24px;}
.brand{display:flex; align-items:center; gap:12px; color:#fff;}
.logo-mark{
  width:32px; height:32px; border:1px solid var(--gold); transform:rotate(45deg);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.logo-mark span{transform:rotate(-45deg); font-family:'Playfair Display', serif; color:var(--gold); font-size:.95rem;}
.brand-text{font-family:'Playfair Display', serif; font-size:1.12rem; letter-spacing:.01em; white-space:nowrap;}
.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;}
.nav-links{display:flex; gap:28px; align-items:center; flex:1; justify-content:center;}
.nav-links a{color:#ffffff; font-weight:600; text-shadow:0 1px 6px rgba(6,26,38,.45); font-size:.86rem; letter-spacing:.02em; transition:color .2s; position:relative;}
.nav-links a:hover, .nav-links a.active{color:var(--gold);}
.nav-links a.active::after{content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:var(--gold);}
.nav-cta{display:flex; align-items:center; gap:14px; flex-shrink:0;}
.nav-phone{color:rgba(255,255,255,.75); font-size:.84rem; display:flex; align-items:center; gap:6px;}
.nav-phone:hover{color:var(--gold);}
.menu-toggle{display:none; background:none; border:none; color:#fff; font-size:1.5rem; cursor:pointer; line-height:1;}

/* HERO (interior pages) */
.page-hero{
  position:relative; color:#fff; padding:150px 0 90px; text-align:center;
  background:linear-gradient(160deg, rgba(37,137,184,.88) 0%, rgba(58,168,216,.82) 100%);
  isolation:isolate; overflow:hidden;
}
.page-hero .hero-bg{position:absolute; inset:0; z-index:-1; background-size:cover; background-position:center; opacity:.55;}
.page-hero .eyebrow{justify-content:center; display:flex;}
.page-hero h1{color:#fff; font-size:clamp(2.1rem, 4.4vw, 3.3rem);}
.page-hero p{color:rgba(255,255,255,.78); max-width:600px; margin:18px auto 0; font-size:1.05rem;}
.breadcrumb{font-size:.78rem; color:rgba(255,255,255,.5); letter-spacing:.05em; margin-bottom:18px;}
.breadcrumb a:hover{color:var(--gold);}

/* HOME HERO — Ken Burns slideshow */
.hero{position:relative; color:#fff; padding:150px 0 150px; overflow:hidden; isolation:isolate; min-height:92vh; display:flex; align-items:center;}
.hero-slideshow{position:absolute; inset:0; z-index:-2; background:var(--navy);}
.hero-slide{position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transform:scale(1); animation:kbFade 30s infinite ease-in-out; will-change:opacity, transform;}
.hero-slide:nth-child(1){background-image:url('https://images.unsplash.com/photo-1602002418082-a4443e081dd1?q=80&w=1920&auto=format&fit=crop'); animation-delay:0s;}
.hero-slide:nth-child(2){background-image:url('https://images.unsplash.com/photo-1518509562904-e7ef99cdcc86?q=80&w=1920&auto=format&fit=crop'); animation-delay:7.5s;}
.hero-slide:nth-child(3){background-image:url('https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?q=80&w=1920&auto=format&fit=crop'); animation-delay:15s;}
.hero-slide:nth-child(4){background-image:url('https://images.unsplash.com/photo-1590523278191-995cbcda646b?q=80&w=1920&auto=format&fit=crop'); animation-delay:22.5s;}
@keyframes kbFade{0%{opacity:0; transform:scale(1);} 6%{opacity:1;} 25%{opacity:1; transform:scale(1.09);} 32%{opacity:0; transform:scale(1.09);} 100%{opacity:0;}}
.hero-overlay{position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(37,137,184,.55) 0%, rgba(37,137,184,.72) 65%, rgba(37,137,184,.92) 100%);}
.hero-content{text-align:center; max-width:820px; margin:0 auto;}
.hero-content .eyebrow{justify-content:center; display:flex;}
.hero h1{color:#fff; font-size:clamp(2.6rem, 6vw, 4.4rem); margin-bottom:10px;}
.hero-sub{font-family:'Playfair Display', serif; font-style:italic; color:var(--gold-light); font-size:clamp(1.05rem,2vw,1.35rem); margin-bottom:20px;}
.hero p.lead{color:rgba(255,255,255,.82); font-size:1.08rem; max-width:560px; margin:0 auto 38px;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; justify-content:center; margin-bottom:20px;}
.scroll-cue{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.5); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:8px;}
.scroll-cue span{width:1px; height:30px; background:rgba(255,255,255,.35); animation:pulseLine 2s infinite;}
@keyframes pulseLine{0%,100%{opacity:.2;} 50%{opacity:1;}}

/* STATS STRIP */
.stats-strip{background:var(--navy-deep); border-top:1px solid rgba(255,255,255,.08);}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); text-align:center;}
.stats-grid > div{padding:34px 20px; border-left:1px solid rgba(255,255,255,.08);}
.stats-grid > div:first-child{border-left:none;}
.stats-grid strong{display:block; font-family:'Playfair Display', serif; color:var(--gold); font-size:2rem; margin-bottom:6px;}
.stats-grid span{color:rgba(255,255,255,.65); font-size:.82rem; letter-spacing:.03em;}

/* INTRO SPLIT */
.intro-split{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.intro-media{position:relative; height:460px; border-radius:var(--radius); overflow:hidden;}
.intro-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.intro-media img:nth-child(2){width:56%; height:56%; top:auto; bottom:-24px; right:-24px; left:auto; border:6px solid var(--cream); box-shadow:var(--shadow);}
.intro-text h2{margin-bottom:20px;}
.intro-text p{color:var(--ink-soft); margin-bottom:28px;}
.intro-actions{display:flex; gap:16px; flex-wrap:wrap;}

/* FEATURE / WHY CARDS */
.feature-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.feature-card{background:var(--paper); padding:44px 34px;}
.feature-card .icon{width:46px; height:46px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:1.25rem; margin-bottom:24px;}
.feature-card h3{font-size:1.12rem; margin-bottom:12px;}
.feature-card p{color:var(--ink-soft); font-size:.94rem;}

/* PROCESS STEPS */
.process-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:44px;}
.step{position:relative;}
.step-num{font-family:'Playfair Display', serif; font-size:2.8rem; font-weight:600; line-height:1; margin-bottom:18px; -webkit-text-stroke:1px var(--gold); color:transparent;}
.step h3{font-size:1.16rem; margin-bottom:10px;}
.step p{color:var(--ink-soft); font-size:.94rem; margin-bottom:14px;}
.step a{color:var(--gold); font-size:.85rem; font-weight:500; letter-spacing:.02em;}
.step a:hover{text-decoration:underline;}

/* TESTIMONIALS */
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.testi-card{background:var(--navy-soft); border:1px solid rgba(255,255,255,.08); padding:34px 30px; border-radius:var(--radius);}
.testi-card .stars{color:var(--gold); letter-spacing:3px; margin-bottom:18px; font-size:.9rem;}
.testi-card blockquote{font-family:'Playfair Display', serif; font-size:1.05rem; line-height:1.5; margin-bottom:20px; color:#fff; font-weight:500;}
.testi-card cite{font-style:normal; color:var(--gold); font-size:.82rem; letter-spacing:.03em; display:block;}
.testi-card cite span{display:block; color:rgba(255,255,255,.55); font-size:.78rem; margin-top:2px;}

/* RESIDENCE / DESTINATION CARDS */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.card-grid.cols-4{grid-template-columns:repeat(4,1fr);}
.media-card{position:relative; height:340px; border-radius:var(--radius); overflow:hidden; isolation:isolate; display:block;}
.media-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s ease;}
.media-card:hover img{transform:scale(1.1);}
.media-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(37,137,184,0) 40%, rgba(37,137,184,.94) 100%);}
.media-info{position:absolute; left:0; right:0; bottom:0; padding:24px; z-index:2; color:#fff;}
.media-info .tag{font-family:'Playfair Display', serif; color:var(--gold); font-size:.8rem; letter-spacing:.08em; display:block; margin-bottom:6px;}
.media-info h3{color:#fff; font-size:1.24rem; margin-bottom:6px;}
.media-info p{color:rgba(255,255,255,.78); font-size:.86rem; max-width:280px;}
.media-info .know-more{margin-top:10px; display:inline-block; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light); border-bottom:1px solid rgba(217,195,150,.5);}

/* RESORT LIST CARDS (no image, name-only browse) */
.resort-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.resort-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 26px 22px; transition:border-color .2s, transform .2s, box-shadow .2s;
}
.resort-card:hover{border-color:var(--gold); transform:translateY(-3px); box-shadow:var(--shadow);}
.resort-card h4{font-size:1.02rem; margin-bottom:10px;}
.resort-card{display:block; cursor:pointer;}
.resort-card .resort-link{color:var(--gold); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500;}
.resort-card:hover .resort-link{text-decoration:underline;}

/* RESIDENCE DETAIL PAGE */
.res-carousel{margin-bottom:54px;}
.res-carousel-viewport{position:relative; width:100%; height:480px; border-radius:4px; overflow:hidden; background:var(--navy);}
.res-carousel-viewport img{width:100%; height:100%; object-fit:cover; display:block;}
.res-carousel-arrow{position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:rgba(37,137,184,.55); border:1px solid rgba(255,255,255,.3); color:#fff; font-size:1.5rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s, border-color .2s;}
.res-carousel-arrow:hover{background:var(--gold); color:var(--navy); border-color:var(--gold);}
.res-carousel-arrow.prev{left:16px;}
.res-carousel-arrow.next{right:16px;}
.res-carousel-counter{position:absolute; bottom:16px; right:16px; background:rgba(37,137,184,.7); color:#fff; font-size:.78rem; padding:5px 12px; border-radius:20px; letter-spacing:.04em;}
.res-carousel-thumbs{display:flex; gap:10px; margin-top:14px; overflow-x:auto; padding-bottom:4px;}
.res-carousel-thumbs img{width:110px; height:76px; object-fit:cover; border-radius:3px; cursor:pointer; opacity:.5; border:2px solid transparent; transition:opacity .2s, border-color .2s; flex-shrink:0;}
.res-carousel-thumbs img:hover{opacity:.85;}
.res-carousel-thumbs img.active{opacity:1; border-color:var(--gold);}
.restype-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px; margin-bottom:54px;}
.restype-card{background:var(--navy-soft); border:1px solid rgba(255,255,255,.08); border-radius:4px; padding:24px; transition:border-color .2s, transform .2s;}
.restype-card:hover{border-color:var(--gold); transform:translateY(-3px);}
.restype-card h4{color:#fff; font-size:1.05rem; margin-bottom:14px;}
.restype-card a{color:var(--gold); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500;}
.restype-card a:hover{text-decoration:underline;}

/* CHIP FILTERS */
.chip-row{display:flex; flex-wrap:wrap; gap:12px;}
.chip{
  padding:10px 20px; border:1px solid var(--line); border-radius:30px; font-size:.85rem;
  background:var(--paper); cursor:pointer; transition:all .2s; color:var(--ink);
}
.chip:hover{border-color:var(--gold);}
.chip.active{background:var(--navy); border-color:var(--navy); color:#fff;}

/* WHY-THREE-PILLARS (rent/book/sell) */
.pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.pillars.two-col{grid-template-columns:repeat(2,1fr); max-width:920px; margin:0 auto;}
.pillar{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:40px 34px; display:flex; flex-direction:column; position:relative;
}
.pillar .pillar-eyebrow{color:var(--gold); text-transform:uppercase; font-size:.72rem; letter-spacing:.16em; font-weight:600; margin-bottom:12px;}
.pillar h3{font-size:1.3rem; margin-bottom:18px;}
.pillar ul{margin-bottom:26px; flex:1;}
.pillar li{position:relative; padding-left:24px; margin-bottom:12px; color:var(--ink-soft); font-size:.92rem;}
.pillar li::before{content:"✓"; position:absolute; left:0; top:0; color:var(--gold); font-weight:600;}
.pillar.dark{background:var(--navy); border-color:var(--navy);}
.pillar.dark h3, .pillar.dark li{color:#fff;}
.pillar.dark li{color:rgba(255,255,255,.8);}
.pillar.dark li::before{color:var(--gold);}

/* NEWSLETTER + CONTACT SNIPPET */
.split-cta{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.split-cta > div{background:var(--paper); padding:50px 44px;}
.newsletter-form{display:flex; gap:0; margin-top:22px; max-width:420px;}
.newsletter-form input{flex:1; padding:14px 16px; border:1px solid var(--line); border-right:none; background:var(--cream); font-family:'Jost',sans-serif; font-size:.92rem;}
.newsletter-form input:focus{outline:none; border-color:var(--gold);}
.newsletter-form button{border-radius:0;}
.mini-contact-list{margin-top:22px; display:flex; flex-direction:column; gap:14px;}
.mini-contact-list a{display:flex; align-items:center; gap:12px; color:var(--ink); font-size:.94rem;}
.mini-contact-list a:hover{color:var(--gold);}
.mini-contact-list .ic{width:34px; height:34px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); flex-shrink:0; font-size:.9rem;}
.form-note{color:var(--ink-soft); font-size:.82rem; margin-top:12px;}

/* FAQ */
.faq-list{max-width:800px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; background:none; border:none; text-align:left; padding:22px 4px; font-family:'Jost', sans-serif; font-size:1.02rem; font-weight:500; color:var(--navy); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px;}
.faq-q .plus{color:var(--gold); font-size:1.3rem; font-weight:300; transition:transform .25s; flex-shrink:0;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease; color:var(--ink-soft); font-size:.95rem; padding:0 4px;}
.faq-item.open .faq-a{padding-bottom:22px;}

/* CTA FINAL band */
.cta-final{position:relative; color:#fff; text-align:center; padding:110px 0; isolation:isolate; background-image:linear-gradient(160deg, rgba(37,137,184,.92) 0%, rgba(58,168,216,.88) 100%), url('https://images.unsplash.com/photo-1571003123894-1f0594d2b5d9?q=80&w=1920&auto=format&fit=crop'); background-size:cover; background-position:center;}
.cta-final h2{color:#fff; font-size:clamp(1.8rem, 3.4vw, 2.5rem); margin-bottom:18px;}
.cta-final p{color:rgba(255,255,255,.8); max-width:560px; margin:0 auto 34px; font-size:1.05rem;}
.cta-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* ===================== FORMS (shared) ===================== */
.form-card{background:var(--paper); border-radius:4px; padding:44px; box-shadow:var(--shadow); text-align:left;}
.form-card.on-page{max-width:720px; margin:0 auto;}
.field{margin-bottom:22px;}
.field:last-child{margin-bottom:0;}
.field > label{display:block; font-size:.82rem; font-weight:500; color:var(--navy); margin-bottom:9px; letter-spacing:.01em;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=number], .field input[type=date], .field select, .field textarea{
  width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:2px;
  font-family:'Jost', sans-serif; font-size:.95rem; color:var(--ink); background:var(--cream);
  transition:border-color .2s; appearance:none;
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a6570' stroke-width='1.5' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; padding-right:36px;
}
.field textarea{min-height:120px; resize:vertical;}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--gold);}
.field-hint{color:var(--ink-soft); font-size:.78rem; margin-top:6px;}
.checkbox-field{display:flex; align-items:flex-start; gap:10px;}
.checkbox-field input{margin-top:3px;}
.checkbox-field label{font-size:.86rem; color:var(--ink-soft);}

/* multi-option radio cards (survey) */
.options{display:grid; gap:10px;}
.option{display:flex; align-items:center; flex-wrap:wrap; gap:12px; border:1.5px solid var(--line); border-radius:2px; padding:14px 16px; cursor:pointer; position:relative; background:var(--cream); transition:border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;}
.option:hover{border-color:var(--gold);}
.option:focus-within{outline:2px solid var(--gold); outline-offset:2px;}
.option input[type=radio]{position:absolute; opacity:0; width:0; height:0;}
.option-mark{width:20px; height:20px; border-radius:50%; border:1.5px solid #c9c1b0; flex-shrink:0; position:relative; transition:all .18s ease; display:flex; align-items:center; justify-content:center; background:#fff;}
.option-mark::after{content:"✓"; font-size:.68rem; font-weight:700; color:#fff; opacity:0; transform:scale(.4); transition:all .18s ease;}
.option.selected{border-color:var(--navy); background:var(--navy); box-shadow:0 10px 24px rgba(58,168,216,.22); transform:translateY(-1px);}
.option.selected .option-mark{background:var(--gold); border-color:var(--gold);}
.option.selected .option-mark::after{opacity:1; transform:scale(1);}
.option-text{font-size:.93rem; color:var(--ink); transition:color .18s ease;}
.option-text small{display:block; font-size:.78rem; color:var(--ink-soft); margin-top:2px;}
.option.selected .option-text{color:#fff; font-weight:500;}
.option.selected .option-text small{color:rgba(255,255,255,.65);}
.option-inline-input{display:none; margin-left:32px; flex-basis:calc(100% - 32px); padding:10px 12px; border:1.5px solid var(--gold); border-radius:2px; font-family:'Jost', sans-serif; font-size:.9rem; background:#fff; color:var(--ink);}
.option.selected .option-inline-input{display:block;}
.options.answered .option:not(.selected){display:none;}
.change-answer{display:none; justify-self:start; background:none; border:none; color:var(--ink-soft); font-size:.82rem; text-decoration:underline; text-underline-offset:2px; cursor:pointer; padding:4px 2px 0;}
.change-answer:hover{color:var(--navy);}
.options.answered .change-answer{display:inline-block;}

/* stepper */
.progress-bar{height:3px; background:var(--line); border-radius:2px; margin-bottom:10px; overflow:hidden;}
.progress-fill{height:100%; width:20%; background:var(--gold); transition:width .35s ease;}
.progress-label{display:flex; justify-content:space-between; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:34px;}
.form-step{display:none;}
.form-step.active{display:block; animation:fadeStep .35s ease;}
@keyframes fadeStep{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}
.form-step h3{font-size:1.2rem; margin-bottom:6px;}
.form-step .step-hint{color:var(--ink-soft); font-size:.86rem; margin-bottom:28px;}
.form-nav{display:flex; justify-content:space-between; align-items:center; margin-top:38px;}
.btn-ghost{background:none; border:none; color:var(--ink-soft); font-size:.9rem; letter-spacing:.02em; cursor:pointer; padding:12px 6px;}
.btn-ghost:hover{color:var(--navy);}
.btn-ghost:disabled{opacity:.3; cursor:default;}
.form-success{display:none; text-align:center; padding:10px 0 4px;}
.form-success.active{display:block;}
.form-success .check{width:58px; height:58px; border-radius:50%; border:2px solid var(--gold); display:flex; align-items:center; justify-content:center; margin:0 auto 22px; color:var(--gold); font-size:1.5rem;}
.form-success h3{margin-bottom:12px;}
.form-success p{color:var(--ink-soft); font-size:.95rem; max-width:440px; margin:0 auto 22px;}

/* GOAL CARDS (survey step 1 focus picker) */
.goal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.goal-card{border:1.5px solid var(--line); border-radius:var(--radius); padding:24px 20px; cursor:pointer; background:var(--cream); transition:all .18s ease; text-align:left; position:relative;}
.goal-card input{position:absolute; opacity:0;}
.goal-card .goal-ic{font-size:1.4rem; color:var(--gold); margin-bottom:12px; display:block;}
.goal-card h4{font-size:1rem; margin-bottom:6px; color:var(--navy);}
.goal-card p{font-size:.82rem; color:var(--ink-soft); margin:0;}
.goal-card:hover{border-color:var(--gold);}
.goal-card.selected{background:var(--navy); border-color:var(--navy);}
.goal-card.selected h4, .goal-card.selected p{color:#fff;}
.goal-card.selected p{color:rgba(255,255,255,.7);}

/* trust badges under survey intro */
.trust-row{display:flex; gap:30px; flex-wrap:wrap; margin-top:26px;}
.trust-row div{font-size:.82rem; color:rgba(255,255,255,.7); display:flex; align-items:center; gap:8px;}
.trust-row strong{color:var(--gold); font-family:'Playfair Display', serif; font-size:1.1rem;}

/* WHATSAPP FLOAT */
.wa-float{
  position:fixed; bottom:26px; right:26px; z-index:200;
  width:58px; height:58px; border-radius:50%; background:#25D366;
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.6rem;
  box-shadow:0 10px 26px rgba(0,0,0,.28); transition:transform .2s;
}
.wa-float:hover{transform:scale(1.08);}

/* FOOTER */
footer{background:var(--navy-deep); color:rgba(255,255,255,.55); padding:64px 0 28px; font-size:.88rem;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:24px;}
.footer-brand .brand{margin-bottom:16px;}
.footer-brand p{max-width:280px; color:rgba(255,255,255,.5); font-size:.86rem;}
footer h5{color:#fff; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:18px; font-family:'Jost',sans-serif; font-weight:500;}
footer ul li{margin-bottom:11px;}
footer a{color:rgba(255,255,255,.6);}
footer a:hover{color:var(--gold);}
.footer-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.78rem; color:rgba(255,255,255,.4);}

/* NAV AUTH LINK */
.nav-auth-link{color:rgba(255,255,255,.82); font-size:.86rem; padding:8px 4px; transition:color .2s;}
.nav-auth-link:hover{color:var(--gold);}

/* ===================== AUTH PAGES (login / sign up) ===================== */
.auth-shell{min-height:calc(100vh - 65px); display:flex; align-items:center; justify-content:center; padding:70px 20px; background:linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%); position:relative; isolation:isolate; overflow:hidden;}
.auth-shell::before{content:""; position:absolute; inset:0; z-index:-1; opacity:.18; background-image:url('https://images.unsplash.com/photo-1590523278191-995cbcda646b?q=80&w=1600&auto=format&fit=crop'); background-size:cover; background-position:center;}
.auth-card{background:var(--paper); width:100%; max-width:460px; border-radius:4px; padding:48px 44px; box-shadow:var(--shadow);}
.auth-card .eyebrow{text-align:center; display:block;}
.auth-card h1{text-align:center; font-size:1.7rem; margin-bottom:10px;}
.auth-card p.lead{text-align:center; color:var(--ink-soft); font-size:.92rem; margin-bottom:32px;}
.password-field{position:relative;}
.password-toggle{position:absolute; right:2px; top:34px; background:none; border:none; color:var(--ink-soft); cursor:pointer; font-size:.76rem; letter-spacing:.03em; padding:8px 10px;}
.password-toggle:hover{color:var(--navy);}
.auth-switch{text-align:center; margin-top:26px; font-size:.88rem; color:var(--ink-soft);}
.auth-switch a{color:var(--gold); font-weight:500;}
.auth-switch a:hover{text-decoration:underline;}
.auth-error{background:#fdeceb; border:1px solid #f3b9b3; color:#a3352b; padding:12px 14px; border-radius:2px; font-size:.85rem; margin-bottom:20px; display:none;}
.auth-error.show{display:block;}
.auth-note{text-align:center; color:var(--ink-soft); font-size:.78rem; margin-top:22px; line-height:1.5;}

/* Split-screen auth layout (login.html / signup.html) — photo left, form right */
.auth-split{min-height:calc(100vh - 65px); display:grid; grid-template-columns:1fr 1fr;}
.auth-split-media{position:relative; background-size:cover; background-position:center; display:flex; flex-direction:column; justify-content:flex-end; padding:70px 60px; isolation:isolate;}
.auth-split-media::before{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(37,137,184,.25) 0%, rgba(37,137,184,.9) 100%);}
.auth-split-media .logo-mark{width:56px; height:56px; margin-bottom:44px; border-color:var(--gold);}
.auth-split-media .logo-mark span{font-size:1.5rem;}
.auth-split-media .eyebrow{color:var(--gold-light); letter-spacing:.22em;}
.auth-split-media h2{color:#fff; font-size:clamp(2rem,3.4vw,2.7rem); margin:10px 0 22px; line-height:1.15;}
.auth-split-media p{color:rgba(255,255,255,.75); max-width:420px; font-size:1rem; font-style:italic; font-family:'Playfair Display', serif;}
.auth-split-form{background:var(--navy); display:flex; align-items:center; justify-content:center; padding:70px 50px;}
.auth-split-form-inner{width:100%; max-width:420px;}
.auth-split-form-inner .eyebrow{text-align:left;}
.auth-split-form .field{position:relative; margin-bottom:32px;}
.auth-split-form .field > label{display:block; color:rgba(255,255,255,.55); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px;}
.auth-split-form .field input{width:100%; background:transparent; border:none; border-bottom:1px solid rgba(255,255,255,.25); border-radius:0; color:#fff; padding:6px 30px 10px 0; font-family:'Jost',sans-serif; font-size:1rem;}
.auth-split-form .field input::placeholder{color:rgba(255,255,255,.3);}
.auth-split-form .field input:focus{outline:none; border-bottom-color:var(--gold);}
.auth-split-form .field-icon{position:absolute; right:0; bottom:12px; color:rgba(255,255,255,.4); font-size:.95rem; pointer-events:none;}
.auth-split-form .password-toggle{position:absolute; right:0; bottom:6px; background:none; border:none; color:rgba(255,255,255,.45); cursor:pointer; font-size:1rem; padding:4px;}
.auth-split-form .password-toggle:hover{color:#fff;}
.auth-split-form .auth-switch{color:rgba(255,255,255,.55); text-align:left;}
.auth-split-form .auth-switch a{color:var(--gold); font-weight:500;}
.auth-split-form .auth-note{color:rgba(255,255,255,.4); text-align:left;}

/* ===================== ACCOUNT DASHBOARD ===================== */
.dash-shell{display:grid; grid-template-columns:260px 1fr; min-height:640px; background:var(--paper); box-shadow:var(--shadow); border-radius:4px; overflow:hidden; margin:44px 0 80px;}
.dash-sidebar{background:var(--navy); color:#fff; padding:40px 26px;}
.dash-user{display:flex; align-items:center; gap:14px; margin-bottom:34px; padding-bottom:26px; border-bottom:1px solid rgba(255,255,255,.12);}
.dash-user .avatar{width:50px; height:50px; border-radius:50%; background:var(--gold); color:var(--navy); display:flex; align-items:center; justify-content:center; font-family:'Playfair Display', serif; font-size:1.2rem; flex-shrink:0;}
.dash-user .who strong{display:block; font-size:.95rem;}
.dash-user .who span{display:block; font-size:.76rem; color:rgba(255,255,255,.55); margin-top:2px; word-break:break-all;}
.dash-nav a{display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:2px; color:rgba(255,255,255,.72); font-size:.9rem; margin-bottom:4px; cursor:pointer; transition:all .15s;}
.dash-nav a.active, .dash-nav a:hover{background:rgba(255,255,255,.08); color:#fff;}
.dash-nav .logout{margin-top:26px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); color:var(--terra);}
.dash-nav .logout:hover{background:rgba(201,127,94,.12); color:var(--terra);}
.dash-main{padding:48px 46px;}
.dash-panel{display:none;}
.dash-panel.active{display:block; animation:fadeStep .3s ease;}
.dash-panel h2{font-size:1.5rem; margin-bottom:8px;}
.dash-panel > p.dash-hint{color:var(--ink-soft); font-size:.92rem; margin-bottom:32px;}
.stat-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:40px;}
.stat-card{background:var(--cream); border:1px solid var(--line); padding:26px; border-radius:2px;}
.stat-card strong{display:block; font-family:'Playfair Display', serif; font-size:1.9rem; color:var(--navy);}
.stat-card span{color:var(--ink-soft); font-size:.83rem;}
.dash-section-title{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; flex-wrap:wrap; gap:12px;}
.dash-section-title h3{font-size:1.1rem;}
.data-table{width:100%; border-collapse:collapse; margin-bottom:20px;}
.data-table th{text-align:left; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); padding:12px; border-bottom:1px solid var(--line); white-space:nowrap;}
.data-table td{padding:15px 12px; border-bottom:1px solid var(--line); font-size:.88rem; vertical-align:top;}
.data-table-wrap{overflow-x:auto;}
.status-pill{padding:4px 13px; border-radius:20px; font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap;}
.status-pending{background:#fbe9d7; color:#a15c1c;}
.status-review{background:#e6e9f5; color:#3d4a9e;}
.status-confirmed{background:#dcefe0; color:#2b7a43;}
.empty-state{text-align:center; padding:56px 24px; border:1px dashed var(--line); border-radius:2px;}
.empty-state .ic{font-size:1.8rem; color:var(--gold); margin-bottom:14px;}
.empty-state p{color:var(--ink-soft); margin:6px 0 22px; font-size:.92rem;}
.profile-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.doc-list{display:grid; gap:12px;}
.doc-row{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; border:1px solid var(--line); border-radius:2px; background:var(--cream);}
.doc-row .doc-name{font-size:.9rem; color:var(--navy); font-weight:500;}
.doc-row .doc-meta{font-size:.78rem; color:var(--ink-soft); margin-top:2px;}
.support-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.support-card{background:var(--cream); border:1px solid var(--line); padding:26px; border-radius:2px; text-align:center;}
.support-card .icon{width:44px; height:44px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); margin:0 auto 16px;}
.support-card h4{font-size:1rem; margin-bottom:8px;}
.support-card p{color:var(--ink-soft); font-size:.85rem; margin-bottom:16px;}

/* ===================== MEMBER AREA (account.html) extras ===================== */
.setup-cards{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:8px;}
.setup-card{background:var(--cream); border:1px solid var(--line); border-radius:var(--radius); padding:26px; transition:border-color .2s, transform .2s;}
.setup-card:hover{border-color:var(--gold); transform:translateY(-2px);}
.setup-card .sc-icon{width:38px; height:38px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); margin-bottom:16px;}
.setup-card h4{font-size:1.02rem; margin-bottom:8px;}
.setup-card p{color:var(--ink-soft); font-size:.86rem; margin-bottom:14px;}
.setup-card a{color:var(--gold); font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500; cursor:pointer;}
.setup-card a:hover{text-decoration:underline;}
.checklist-box{background:var(--cream); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; margin-bottom:26px; max-width:320px;}
.checklist-box .cl-head{display:flex; justify-content:space-between; align-items:center; font-size:.82rem; font-weight:500; color:var(--navy); border-bottom:2px solid var(--gold); padding-bottom:10px; margin-bottom:10px;}
.checklist-box .cl-head span:last-child{color:var(--gold);}
.checklist-item{display:flex; align-items:center; gap:8px; font-size:.84rem; color:var(--ink-soft); margin-bottom:6px;}
.checklist-item .ck{color:var(--gold);}

.numbered-list{counter-reset:item; margin:16px 0;}
.numbered-list li{list-style:none; counter-increment:item; position:relative; padding-left:28px; margin-bottom:10px; color:var(--ink-soft); font-size:.92rem;}
.numbered-list li::before{content:counter(item)"."; position:absolute; left:0; color:var(--gold); font-weight:600;}
.dash-panel h4{font-size:1rem; color:var(--navy); margin:22px 0 6px;}
.dash-panel .lead-text{color:var(--ink-soft); font-size:.92rem; margin-bottom:8px;}
.privacy-note{background:var(--cream); border-left:3px solid var(--gold); padding:12px 16px; font-size:.85rem; color:var(--ink-soft); margin:16px 0;}

.plan-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:1px;}
.plan-grid > div{background:var(--navy-soft); color:#fff; padding:30px;}
.plan-grid .pg-eyebrow{color:var(--gold); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; display:block; margin-bottom:8px;}
.plan-grid h4{color:#fff; font-size:1.3rem; margin-bottom:6px;}
.plan-grid p{color:rgba(255,255,255,.6); font-size:.85rem;}
.plan-status{text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center;}
.plan-status .badge{width:44px; height:44px; border-radius:50%; border:2px solid var(--gold); display:flex; align-items:center; justify-content:center; color:var(--gold); margin-bottom:12px; font-size:1.2rem;}
.plan-status strong{color:var(--gold); font-size:1.2rem; display:block; margin-bottom:6px;}
.pay-support-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:20px;}
.pay-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:26px;}
.pay-card .pg-eyebrow{color:var(--gold); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; display:block; margin-bottom:8px;}
.pay-card h4{font-size:1.1rem; margin-bottom:16px;}
.pay-row{display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--line); font-size:.88rem;}
.pay-row:last-child{border-bottom:none;}
.pay-row span:first-child{color:var(--ink-soft); text-transform:uppercase; font-size:.72rem; letter-spacing:.06em;}
.pay-row span:last-child{font-weight:600; color:var(--navy);}

.legal-box{max-height:340px; overflow-y:auto; background:var(--paper); border:1px solid var(--line); padding:22px 24px; font-size:.82rem; color:var(--ink-soft); line-height:1.6; margin-top:16px;}
.legal-box strong{display:block; color:var(--navy); margin:14px 0 4px;}
.legal-box strong:first-child{margin-top:0;}

.calendar-year-nav{display:flex; align-items:center; justify-content:center; gap:34px; margin:26px 0 30px; flex-wrap:wrap;}
.calendar-year-nav button{background:none; border:none; color:var(--ink-soft); font-size:1.3rem; cursor:pointer;}
.calendar-year-nav button:hover{color:var(--gold);}
.calendar-year-nav .yr{font-family:'Playfair Display', serif; font-size:1.3rem; color:var(--ink-soft); cursor:pointer;}
.calendar-year-nav .yr.active{color:var(--navy); font-weight:600;}
.calendar-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.mini-month{background:var(--cream); border:1px solid var(--line); border-radius:var(--radius); padding:16px;}
.mini-month h5{font-family:'Playfair Display', serif; color:var(--gold); font-size:.95rem; margin-bottom:10px; text-align:center;}
.mini-month table{width:100%; border-collapse:collapse; font-size:.72rem; color:var(--ink-soft);}
.mini-month th{font-weight:500; color:var(--ink-soft); opacity:.7; padding:2px 0;}
.mini-month td{text-align:center; padding:3px 0; color:var(--ink);}

.modal-overlay{position:fixed; inset:0; background:rgba(37,137,184,.7); z-index:300; display:none; align-items:flex-start; justify-content:center; padding:60px 20px; overflow-y:auto;}
.modal-overlay.show{display:flex;}
.modal-box{background:var(--navy); color:#fff; max-width:720px; width:100%; border-radius:4px; padding:40px 44px 44px; position:relative;}
.modal-box h3{color:#fff; font-size:1.4rem; margin-bottom:26px; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.12);}
.modal-close{position:absolute; top:24px; right:28px; background:none; border:none; color:rgba(255,255,255,.6); font-size:1.4rem; cursor:pointer;}
.modal-close:hover{color:#fff;}
.modal-box .field > label{color:rgba(255,255,255,.6); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em;}
.modal-box .field input, .modal-box .field select, .modal-box .field textarea{background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.15); color:#fff;}
.modal-box .field input::placeholder, .modal-box .field textarea::placeholder{color:rgba(255,255,255,.35);}
.modal-box .checkbox-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; margin-bottom:20px;}
.modal-box .checkbox-field label{color:rgba(255,255,255,.75);}
.modal-box .amenity-add{display:flex; gap:10px;}
.modal-box .amenity-add input{flex:1;}
/* custom closed-by-default multi-select dropdown (Sister Resorts) */
.ms-dropdown{position:relative;}
.ms-toggle{width:100%; text-align:left; padding:13px 14px; border:1px solid rgba(255,255,255,.15); border-radius:2px; background:rgba(255,255,255,.06); color:#fff; font-family:'Jost',sans-serif; font-size:.95rem; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:10px;}
.ms-toggle:hover{border-color:var(--gold);}
.ms-toggle::after{content:"▾"; color:rgba(255,255,255,.5); font-size:.7rem; flex-shrink:0;}
.ms-toggle.open::after{content:"▴";}
.ms-panel{display:none; position:absolute; top:calc(100% + 6px); left:0; right:0; max-height:260px; overflow-y:auto; background:var(--navy-deep); border:1px solid rgba(255,255,255,.15); border-radius:2px; z-index:50; box-shadow:0 20px 40px rgba(0,0,0,.4);}
.ms-panel.open{display:block;}
.ms-option{padding:10px 14px; font-size:.86rem; color:rgba(255,255,255,.8); cursor:pointer; display:flex; align-items:center; gap:10px;}
.ms-option:hover{background:rgba(255,255,255,.08);}
.ms-option .ms-check{width:16px; height:16px; border:1.5px solid rgba(255,255,255,.4); border-radius:3px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:.62rem; color:var(--navy);}
.ms-option.selected{background:rgba(191,160,106,.16); color:#fff;}
.ms-option.selected .ms-check{background:var(--gold); border-color:var(--gold); color:var(--navy);}

/* Sister Resorts shown as removable chips inside the field itself */
.ms-chips{min-height:50px; border:1px solid rgba(255,255,255,.15); border-radius:2px; background:rgba(255,255,255,.06); padding:9px; display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
.ms-chip{display:inline-flex; align-items:center; gap:8px; background:rgba(191,160,106,.2); border:1px solid var(--gold); color:#fff; padding:6px 8px 6px 12px; border-radius:2px; font-size:.82rem; white-space:nowrap;}
.ms-chip button{background:none; border:none; color:var(--gold); cursor:pointer; font-size:.9rem; line-height:1; padding:0 2px;}
.ms-chip button:hover{color:#fff;}
.ms-chips-add{color:var(--gold); font-size:.82rem; padding:6px 10px; cursor:pointer; border:1px dashed var(--gold); border-radius:2px;}
.ms-chips-add:hover{background:rgba(191,160,106,.15);}

/* My Weeks results as rich cards */
.weeks-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px;}
.week-card{background:var(--navy-soft); border:1px solid rgba(255,255,255,.08); border-radius:4px; overflow:hidden;}
.week-card-media{position:relative; height:220px; background:var(--navy);}
.week-card-media img{width:100%; height:100%; object-fit:cover;}
.week-badge{position:absolute; top:16px; left:16px; background:var(--navy-deep); color:#fff; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; padding:6px 12px; border-radius:2px;}
.week-card-actions{position:absolute; top:14px; right:14px; display:flex; gap:8px;}
.week-card-actions button{width:32px; height:32px; border-radius:50%; background:rgba(37,137,184,.65); border:none; color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:.9rem; transition:all .15s;}
.week-card-actions button:hover{background:var(--gold); color:var(--navy);}
.week-card-body{padding:26px;}
.week-card-body .eyebrow{color:var(--gold);}
.week-card-body h3{color:#fff; font-size:1.4rem; margin:6px 0 20px;}
.week-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; border-top:1px solid rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.1); padding:16px 0; margin-bottom:20px;}
.week-stats > div span{display:block; text-transform:uppercase; font-size:.63rem; letter-spacing:.08em; color:rgba(255,255,255,.45); margin-bottom:4px;}
.week-stats > div strong{color:#fff; font-size:.95rem; font-weight:600;}
.week-section{margin-bottom:16px;}
.week-section:last-child{margin-bottom:0;}
.week-section .label{display:block; text-transform:uppercase; font-size:.66rem; letter-spacing:.08em; color:rgba(255,255,255,.45); margin-bottom:8px;}
.week-section p{color:rgba(255,255,255,.75); font-size:.86rem; line-height:1.6; margin:0;}
.amenity-pills{display:flex; flex-wrap:wrap; gap:8px;}
.amenity-pills span{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.8); font-size:.76rem; padding:6px 12px; border-radius:20px;}

/* ===================== ACCOUNT ACTIVATION WIZARD ===================== */
.activation-steps{display:flex; align-items:center; justify-content:center; gap:0; margin:36px 0 54px; flex-wrap:wrap;}
.astep{display:flex; align-items:center; gap:12px;}
.astep .anum{width:40px; height:40px; border-radius:50%; border:1.5px solid rgba(255,255,255,.3); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.55); font-weight:600; flex-shrink:0; font-family:'Jost',sans-serif; font-size:.92rem;}
.astep.active .anum{border-color:var(--gold); color:var(--gold);}
.astep.completed .anum{background:var(--gold); border-color:var(--gold); color:var(--navy);}
.astep .alabel{color:rgba(255,255,255,.5); font-size:.8rem; text-transform:uppercase; letter-spacing:.07em; white-space:nowrap;}
.astep.active .alabel, .astep.completed .alabel{color:#fff; font-weight:500;}
.aline{width:70px; height:1px; background:rgba(255,255,255,.2); margin:0 16px;}
.aline.completed{background:var(--gold);}

.activation-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); max-width:1120px; margin:0 auto;}
.activation-panel{background:var(--navy-soft); padding:46px;}
.activation-panel.doc{background:var(--navy);}
.activation-panel h3{color:#fff;}
.activation-panel .field > label{color:rgba(255,255,255,.6); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em;}
.activation-panel .field input{background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.15); color:#fff;}
.activation-panel .field input::placeholder{color:rgba(255,255,255,.35);}
.activation-panel .checkbox-field label{color:rgba(255,255,255,.85);}
.activation-panel .checkbox-field label small{display:block; color:rgba(255,255,255,.5); font-weight:400; margin-top:4px;}

.plans-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0; max-width:1120px; margin:0 auto; border:1px solid rgba(255,255,255,.08);}
.plan-card{background:var(--navy-soft); border-right:1px solid rgba(255,255,255,.08); padding:40px 32px; position:relative;}
.plan-card:last-child{border-right:none;}
.plan-priority-badge{position:absolute; top:0; right:0; background:var(--gold); color:var(--navy); font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; padding:8px 16px; font-weight:600;}
.plan-card h3{color:#fff; font-size:1.6rem; margin:8px 0 6px;}
.plan-card .plan-sub{color:rgba(255,255,255,.55); margin-bottom:26px; font-size:.92rem;}
.plan-fee-row{display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:20px 0; border-top:1px solid rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:24px;}
.plan-fee-box{border:1px solid rgba(255,255,255,.15); padding:12px; text-align:center; border-radius:2px;}
.plan-fee-box span{display:block; color:var(--gold); font-size:.68rem; letter-spacing:.05em;}
.plan-fee-box strong{color:#fff; font-size:1.05rem; font-family:'Playfair Display', serif;}
.plan-includes-label{color:rgba(255,255,255,.45); text-transform:uppercase; font-size:.66rem; letter-spacing:.08em; margin-bottom:10px;}
.plan-includes-text{color:#fff; font-size:.9rem; margin-bottom:28px; display:flex; gap:8px; align-items:flex-start; line-height:1.4;}
.plan-includes-text::before{content:"✓"; color:var(--gold); flex-shrink:0;}
.plan-promo-badge{position:absolute; top:0; left:0; background:var(--terra); color:#fff; font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; padding:8px 16px; font-weight:600;}
.plan-price-block{padding:20px 0; border-top:1px solid rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:24px;}
.plan-price-old{display:block; color:rgba(255,255,255,.42); font-size:.85rem; text-decoration:line-through; margin-bottom:4px;}
.plan-price-now{display:flex; align-items:baseline; gap:8px;}
.plan-price-now strong{color:var(--gold); font-family:'Playfair Display', serif; font-size:2.2rem; line-height:1;}
.plan-price-now span{color:rgba(255,255,255,.6); font-size:.78rem;}
.plan-price-mxn{display:block; color:rgba(255,255,255,.4); font-size:.75rem; margin:6px 0 10px;}
.plan-save-badge{display:inline-block; background:rgba(255,255,255,.92); color:var(--navy-deep); font-size:.72rem; font-weight:700; padding:4px 10px; border-radius:20px; letter-spacing:.02em;}

.currency-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:30px;}
.currency-box{border:1.5px solid rgba(255,255,255,.15); padding:18px; border-radius:2px; cursor:pointer; text-align:left; background:rgba(255,255,255,.03);}
.currency-box.selected{border-color:var(--gold); background:rgba(191,160,106,.1);}
.currency-box .sign{color:var(--gold); font-size:.85rem;}
.currency-box strong{display:block; color:#fff; font-size:1.2rem; margin:4px 0 2px; font-family:'Playfair Display', serif;}
.currency-box .sub{color:rgba(255,255,255,.5); font-size:.82rem;}
.payment-method-row{border:1px solid rgba(255,255,255,.15); border-radius:2px; padding:18px 20px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; margin-bottom:12px; transition:border-color .2s; background:rgba(255,255,255,.03);}
.payment-method-row:hover{border-color:var(--gold);}
.payment-method-row .pm-left{display:flex; align-items:center; gap:14px;}
.payment-method-row strong{color:#fff; display:block; font-size:.96rem;}
.payment-method-row .sub{color:rgba(255,255,255,.5); font-size:.82rem;}
.payment-method-row .pm-arrow{color:var(--gold);}
.registration-protected{text-align:center; color:rgba(255,255,255,.55); margin:34px auto 0; max-width:560px; font-size:.88rem; display:flex; gap:10px; align-items:flex-start; justify-content:center;}
.registration-protected strong{color:#fff; display:block; margin-bottom:4px;}

/* RESPONSIVE */
@media (max-width: 980px){
  .intro-split{grid-template-columns:1fr; gap:32px;}
  .intro-media{height:340px;}
  .feature-grid{grid-template-columns:1fr;}
  .process-steps{grid-template-columns:1fr; gap:36px;}
  .testi-grid{grid-template-columns:1fr; gap:20px;}
  .card-grid, .card-grid.cols-4{grid-template-columns:repeat(2,1fr);}
  .resort-grid{grid-template-columns:repeat(2,1fr);}
  .pillars, .pillars.two-col{grid-template-columns:1fr; gap:20px;}
  .split-cta{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:32px;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .stats-grid > div:nth-child(3){border-left:none;}
  .goal-grid{grid-template-columns:1fr;}
  .dash-shell{grid-template-columns:200px 1fr;}
  .dash-main{padding:36px 30px;}
  .stat-cards{grid-template-columns:1fr 1fr;}
  .support-grid{grid-template-columns:1fr;}
  .profile-grid{grid-template-columns:1fr;}
  .setup-cards{grid-template-columns:1fr;}
  .plan-grid{grid-template-columns:1fr;}
  .pay-support-grid{grid-template-columns:1fr;}
  .calendar-grid{grid-template-columns:repeat(2,1fr);}
  .weeks-grid{grid-template-columns:1fr;}
  .activation-grid{grid-template-columns:1fr;}
  .plans-grid{grid-template-columns:1fr;}
  .plan-card{border-right:none; border-bottom:1px solid rgba(255,255,255,.08);}
  .currency-grid{grid-template-columns:1fr;}
  .aline{width:30px;}
  .auth-split{grid-template-columns:1fr; min-height:auto;}
  .auth-split-media{padding:44px 28px; min-height:280px;}
  .auth-split-media .logo-mark{margin-bottom:20px;}
  .auth-split-form{padding:44px 28px;}
  .res-carousel-viewport{height:320px;}
  .res-carousel-thumbs img{width:84px; height:58px;}
}
@media (max-width: 760px){
  .nav-links{position:absolute; top:100%; left:0; right:0; background:var(--navy); flex-direction:column; align-items:flex-start; padding:20px 24px; gap:16px; display:none;}
  .nav-links.show{display:flex;}
  .menu-toggle{display:block; order:99;}
  .nav{flex-wrap:wrap; row-gap:10px;}
  .nav-cta{flex-wrap:wrap; justify-content:flex-end; gap:10px;}
  .nav-cta .nav-phone{display:none;}
  .card-grid, .card-grid.cols-4{grid-template-columns:1fr;}
  .resort-grid{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .form-card{padding:30px 22px;}
  section{padding:72px 0;}
  .hero{padding:130px 0 120px; min-height:auto;}
  .page-hero{padding:130px 0 70px;}
  .footer-grid{grid-template-columns:1fr;}
  .dash-shell{grid-template-columns:1fr; margin:24px 0 60px;}
  .dash-sidebar{padding:24px 20px;}
  .dash-nav{display:flex; flex-wrap:wrap; gap:6px;}
  .dash-nav a{margin-bottom:0;}
  .dash-user{border-bottom:none; margin-bottom:16px; padding-bottom:0;}
  .dash-main{padding:30px 22px;}
  .stat-cards{grid-template-columns:1fr;}
  .auth-card{padding:36px 26px;}
  .calendar-grid{grid-template-columns:1fr 1fr;}
  .modal-box{padding:30px 22px 34px;}
  .modal-box .checkbox-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion: reduce){
  .hero-slide{animation:none; opacity:1;}
  .hero-slide:nth-child(n+2){display:none;}
  .media-card img{transition:none;}
}
