:root{
  --navy:#061b2f;
  --navy-2:#092c3f;
  --teal:#078f9d;
  --aqua:#08b8c8;
  --green:#08b857;
  --cream:#fbf6ed;
  --card:#ffffff;
  --muted:#647482;
  --line:#e5edf1;
  --shadow:0 20px 55px rgba(6,27,47,.18);
  --soft-shadow:0 10px 28px rgba(6,27,47,.10);
  --radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(135deg,#eef9fb 0%,#fff8ef 100%);color:var(--navy);min-height:100vh}
a{color:inherit;text-decoration:none}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:12px;top:12px;background:#fff;padding:10px;z-index:99;border-radius:10px}.phone-frame{max-width:430px;margin:0 auto;min-height:100vh;background:linear-gradient(180deg,#fff 0,#f7fbfb 100%);box-shadow:0 0 70px rgba(6,27,47,.16);position:relative;overflow:hidden;padding-bottom:112px}.topbar{height:58px;position:sticky;top:0;z-index:40;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid rgba(229,237,241,.7)}.icon-button,.whatsapp-dot{width:36px;height:36px;border:0;border-radius:50%;display:grid;place-items:center;background:rgba(7,143,157,.08);color:var(--teal);font-weight:900}.brand{display:flex;align-items:center;gap:8px;line-height:1}.brand-mark{font-size:1.5rem}.brand strong{display:block;font-size:1.05rem;color:var(--teal);letter-spacing:-.02em}.brand small{display:block;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-2)}
.screen{display:none;min-height:calc(100vh - 152px);padding:16px 16px 34px}.screen.active-screen{display:block;animation:screenIn .34s cubic-bezier(.2,.8,.2,1)}@keyframes screenIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.hero-panel{height:390px;margin:-16px -16px 0;position:relative;background:url('assets/hero.png') center/cover no-repeat;overflow:hidden}.hero-panel:before{content:"";position:absolute;inset:-10px;background:url('assets/hero.png') center/cover no-repeat;animation:heroDrift 14s ease-in-out infinite alternate;z-index:0}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,27,47,.06) 0%,rgba(6,27,47,.18) 40%,rgba(6,27,47,.88) 100%);z-index:1}.hero-content{position:absolute;left:18px;right:18px;bottom:48px;color:#fff;text-align:left;z-index:2}.eyebrow{margin:0 0 7px;text-transform:uppercase;letter-spacing:.14em;color:var(--teal);font-size:.68rem;font-weight:950}.eyebrow.light{color:#b7fbff}.hero-content h1{margin:0;max-width:370px;font-size:2.55rem;line-height:.96;letter-spacing:-.065em}.hero-content h1 span,.body-heading span{color:#5bf1e9;white-space:nowrap}.hero-copy{margin:13px 0 18px;max-width:350px;color:rgba(255,255,255,.90);font-weight:650;line-height:1.45}.primary-btn,.secondary-btn{min-height:48px;border-radius:16px;padding:14px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:950;text-transform:uppercase;letter-spacing:.035em;font-size:.78rem}.primary-btn{border:0;background:linear-gradient(135deg,#08c965,var(--green));color:#fff;box-shadow:0 16px 28px rgba(8,184,87,.25);position:relative;overflow:hidden}.primary-btn:after{content:"";position:absolute;inset:-70% -40%;background:linear-gradient(100deg,transparent 42%,rgba(255,255,255,.38) 50%,transparent 58%);transform:translateX(-70%);animation:shine 3.4s ease-in-out infinite}.secondary-btn{background:#fff;border:1px solid var(--line);color:var(--teal);box-shadow:var(--soft-shadow)}.hero-btn{width:100%}.premium-card{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.9);border-radius:var(--radius);box-shadow:var(--soft-shadow);backdrop-filter:blur(16px);animation:cardRise .5s cubic-bezier(.2,.8,.2,1) both}.floating-card{margin:-30px 6px 12px;position:relative;z-index:3;padding:9px;animation-delay:.05s}.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mini-grid a{height:72px;border-radius:18px;background:linear-gradient(180deg,#f9ffff,#edf9fb);border:1px solid var(--line);display:grid;place-items:center;align-content:center;gap:5px;text-align:center;transition:transform .18s ease, box-shadow .18s ease}.mini-grid a:active,.secondary-btn:active,.primary-btn:active{transform:scale(.98)}.mini-grid span{font-size:1.25rem}.mini-grid strong{font-size:.68rem}.home-summary{padding:18px;margin:0 6px;animation-delay:.12s}.body-heading{margin:0 0 8px;font-size:1.32rem;line-height:1.08;letter-spacing:-.04em}.body-copy{margin:0 0 13px;color:var(--muted);font-size:.9rem;line-height:1.45}.pill-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;align-items:center}.pill-row span{background:#edf8fa;color:var(--navy-2);border:1px solid #d9eef2;border-radius:999px;padding:8px 4px;font-size:.62rem;font-weight:900;text-align:center;white-space:nowrap}.summary-line{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center}.summary-line b{font-size:1.05rem}.summary-line small{color:var(--muted);text-align:right}
.pass-card{margin:12px 6px 0;padding:16px;background:radial-gradient(circle at 90% 12%,rgba(91,241,233,.25),transparent 32%),linear-gradient(145deg,#061b2f 0%,#083247 58%,#087f8f 100%);border:1px solid rgba(91,241,233,.22);color:#fff;box-shadow:0 20px 42px rgba(6,27,47,.20);animation-delay:.2s}.pass-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.pass-topline span{font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;font-weight:950;color:#8af9f3}.pass-topline b{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:6px 10px}.pass-content{display:grid;grid-template-columns:1fr 88px;gap:12px;align-items:center}.pass-card h2{margin:0 0 8px;font-size:1.22rem;line-height:1.08;letter-spacing:-.035em}.pass-card p{margin:0;color:rgba(255,255,255,.76);font-size:.82rem;line-height:1.45}.discount-badge{width:88px;height:88px;border-radius:24px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;text-align:center;align-content:center}.discount-badge strong{font-size:2rem;line-height:1;color:#5bf1e9}.discount-badge small{display:block;font-size:.6rem;color:rgba(255,255,255,.76);font-weight:800;text-transform:uppercase;line-height:1.15}.pass-link{margin-top:14px;min-height:44px;border-radius:999px;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;padding:11px 13px;font-size:.72rem;font-weight:950;text-transform:uppercase;letter-spacing:.03em}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 6px 0}.home-actions .secondary-btn{box-shadow:none}.screen-title{text-align:center;margin:6px auto 18px;max-width:360px}.screen-title h2{font-size:1.55rem;line-height:1.18;letter-spacing:-.04em;margin:0}.service-list,.reviews,.contact-list{display:grid;gap:12px}.service-card{display:grid;grid-template-columns:58px 1fr 20px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--soft-shadow);animation:cardRise .45s cubic-bezier(.2,.8,.2,1) both}.service-card>span{height:100%;min-height:76px;background:linear-gradient(135deg,var(--teal),var(--aqua));display:grid;place-items:center;color:#fff;font-size:1.55rem}.service-card div{padding:13px 10px}.service-card h3{margin:0 0 4px;font-size:.95rem}.service-card p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.38}.service-card b{color:#9aaab4;font-size:1.4rem}.fare-box{margin-top:14px;background:#fff8ec;border:1px solid #f1dfbb;border-radius:18px;padding:14px;color:#654e25}.fare-box p{margin:5px 0 0;font-size:.86rem;line-height:1.45}.booking-form{padding:16px;display:grid;gap:12px}.booking-form label{display:grid;gap:6px;font-size:.75rem;font-weight:900;color:var(--navy-2)}.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:1px solid #d8e5ea;background:#fff;border-radius:13px;padding:12px;color:var(--navy);outline:none}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(7,143,157,.12)}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.full{width:100%;cursor:pointer}.micro-note{margin:0;text-align:center;color:var(--muted);font-size:.78rem;line-height:1.35}.review{display:grid;grid-template-columns:50px 1fr;gap:12px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:var(--soft-shadow);animation:cardRise .45s cubic-bezier(.2,.8,.2,1) both}.avatar{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--teal),#b9f5f2);color:#fff;font-weight:950}.review h3{margin:0 0 2px;font-size:.95rem}.stars{margin:0 0 6px;color:#ffb200;letter-spacing:.08em}.review p:last-child{margin:0;color:#465966;font-size:.86rem;line-height:1.45}.why-card{margin-top:14px;padding:16px}.why-card ul{margin:8px 0 0;padding-left:18px;color:#465966;line-height:1.65}.contact-banner{height:230px;margin:-16px -16px 16px;background:linear-gradient(180deg,rgba(6,27,47,.08),rgba(6,27,47,.82)),url('assets/hero.png') center/cover no-repeat;display:flex;align-items:flex-end;padding:22px;color:#fff}.contact-banner h2{margin:0;font-size:1.8rem;line-height:1.05;letter-spacing:-.04em}.contact-list a{display:grid;grid-template-columns:48px 1fr 18px;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:var(--soft-shadow)}.contact-list span{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--green),var(--teal));color:#fff}.contact-list small{display:block;color:var(--muted);margin-top:2px}.contact-list b{color:#9aaab4;font-size:1.3rem}.vehicle-card{margin-top:14px;padding:13px;display:grid;grid-template-columns:1fr 112px;gap:10px;align-items:center}.vehicle-card p{margin:5px 0 0;color:var(--muted);font-size:.82rem;line-height:1.35}.vehicle-card img{width:112px;height:70px;object-fit:cover;border-radius:15px}.sticky-book{position:fixed;left:50%;transform:translateX(-50%);bottom:78px;width:min(360px,calc(100% - 52px));height:48px;border-radius:999px;background:linear-gradient(135deg,var(--teal),#056a79);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:950;text-transform:uppercase;letter-spacing:.03em;box-shadow:0 18px 36px rgba(7,143,157,.28);z-index:35;transition:transform .25s ease,opacity .25s ease}.home-screen .sticky-book{opacity:0;pointer-events:none;transform:translateX(-50%) translateY(20px)}.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(430px,100%);height:76px;background:rgba(255,255,255,.95);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:40;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a{display:grid;place-items:center;align-content:center;gap:3px;font-size:.66rem;font-weight:850;color:#334755;transition:color .18s ease, transform .18s ease}.bottom-nav span{font-size:1.15rem}.bottom-nav a.active{color:var(--teal);transform:translateY(-2px)}
@keyframes heroDrift{from{transform:scale(1.02) translateX(-4px)}to{transform:scale(1.08) translateX(6px)}}@keyframes shine{0%,45%{transform:translateX(-75%)}65%,100%{transform:translateX(75%)}}@keyframes cardRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:860px){body{padding:24px}.phone-frame{border-radius:34px;min-height:calc(100vh - 48px)}.hero-panel{height:405px}.screen{min-height:calc(100vh - 176px)}.phone-frame:before{content:"Private rides across Providenciales. Solo travellers, couples and groups up to 4.";position:fixed;left:50%;bottom:100px;transform:translateX(-50%);width:min(760px,calc(100% - 80px));background:linear-gradient(135deg,var(--teal),#056a79);color:#fff;border-radius:999px;padding:18px 230px 18px 26px;font-weight:850;box-shadow:var(--shadow);z-index:20}.phone-frame:after{content:"Book on WhatsApp";position:fixed;left:calc(50% + 168px);bottom:112px;background:#fff;color:var(--teal);border-radius:999px;padding:10px 28px;font-weight:950;text-transform:uppercase;z-index:21}.sticky-book{display:none}}
@media(max-width:380px){.hero-panel{height:392px}.hero-content h1{font-size:2.32rem}.body-heading{font-size:1.2rem}.pill-row span{font-size:.56rem;padding:8px 2px}.pass-content{grid-template-columns:1fr 76px}.discount-badge{width:76px;height:76px}.discount-badge strong{font-size:1.7rem}.two-cols{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero-panel:before{transform:none!important}}
.qr-card{margin-top:14px;padding:14px;display:grid;grid-template-columns:1fr 116px;gap:14px;align-items:center;overflow:hidden;position:relative}
.qr-card:before{content:"";position:absolute;inset:auto -60px -80px auto;width:170px;height:170px;border-radius:50%;background:rgba(8,184,200,.12);pointer-events:none}
.qr-copy h3{margin:4px 0 6px;font-size:1.05rem;line-height:1.12;letter-spacing:-.025em;color:var(--navy)}
.qr-copy p:last-child{margin:0;color:var(--muted);font-size:.8rem;line-height:1.38}
.qr-card img{width:116px;height:116px;object-fit:contain;border-radius:20px;background:#fff;border:1px solid var(--line);padding:8px;box-shadow:0 12px 28px rgba(6,27,47,.12)}
.contact-list a:nth-child(3) span,.contact-list a:nth-child(4) span{font-size:1.2rem;font-weight:950}
@media(max-width:380px){.qr-card{grid-template-columns:1fr 96px}.qr-card img{width:96px;height:96px}.qr-copy h3{font-size:.98rem}}

/* V5 booking polish */
.quick-requests{padding:15px;margin-bottom:14px;animation:cardRise .45s cubic-bezier(.2,.8,.2,1) both}
.quick-copy h3{margin:4px 0 12px;font-size:1.05rem;line-height:1.16;letter-spacing:-.025em;color:var(--navy)}
.request-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.request-chip{border:1px solid var(--line);background:linear-gradient(180deg,#ffffff,#f3fbfc);border-radius:16px;min-height:64px;padding:10px 8px;color:var(--navy);font-weight:900;font-size:.76rem;line-height:1.15;display:grid;place-items:center;align-content:center;gap:5px;text-align:center;cursor:pointer;box-shadow:0 10px 24px rgba(6,27,47,.06);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
.request-chip span{font-size:1.25rem}
.request-chip:hover,.request-chip.selected{transform:translateY(-2px);border-color:rgba(7,143,157,.38);box-shadow:0 16px 30px rgba(7,143,157,.14);background:linear-gradient(180deg,#f7ffff,#e8fbfc)}
.ready-card{display:none;margin-top:14px;padding:15px;grid-template-columns:52px 1fr;gap:12px;align-items:center;border-color:rgba(8,185,108,.28);background:linear-gradient(180deg,#ffffff,#effff8)}
.ready-card.show{display:grid;animation:cardRise .35s cubic-bezier(.2,.8,.2,1) both}
.ready-icon{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,var(--green),var(--teal));color:#fff;font-size:1.4rem;font-weight:950;box-shadow:0 14px 28px rgba(8,185,108,.18)}
.ready-card h3{margin:3px 0 5px;font-size:1.02rem;letter-spacing:-.025em;color:var(--navy)}
.ready-card p:last-child{margin:0;color:var(--muted);font-size:.82rem;line-height:1.4}
@media(max-width:380px){.request-grid{grid-template-columns:1fr}.request-chip{min-height:58px}}


/* V6 smart social proof popup */
.proof-toast{
  position:fixed;
  left:50%;
  bottom:132px;
  width:min(372px,calc(100% - 42px));
  transform:translate(-50%,18px) scale(.98);
  opacity:0;
  pointer-events:none;
  z-index:38;
  display:grid;
  grid-template-columns:46px 1fr;
  gap:11px;
  align-items:center;
  padding:12px 14px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.72);
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(238,252,253,.94));
  box-shadow:0 20px 46px rgba(6,27,47,.20);
  backdrop-filter:blur(18px);
  transition:opacity .34s ease,transform .34s cubic-bezier(.2,.8,.2,1);
}
.proof-toast.show{opacity:1;transform:translate(-50%,0) scale(1)}
.proof-toast:before{content:"";position:absolute;inset:0;border-radius:22px;background:linear-gradient(120deg,rgba(8,184,200,.18),transparent 42%,rgba(8,201,101,.16));pointer-events:none}
.proof-icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--teal),var(--green));color:#fff;font-size:1.3rem;box-shadow:0 12px 28px rgba(7,143,157,.22);position:relative;z-index:1}
.proof-copy{position:relative;z-index:1;line-height:1.25}
.proof-copy strong{display:block;font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;color:var(--teal);font-weight:950;margin-bottom:3px}
.proof-copy span{display:block;color:var(--navy);font-weight:850;font-size:.86rem}
.home-screen .proof-toast{bottom:94px}
@media(min-width:860px){.proof-toast{bottom:34px;left:calc(50% + 275px);width:350px}.home-screen .proof-toast{bottom:34px}}
@media(max-width:380px){.proof-toast{bottom:128px;width:calc(100% - 30px);grid-template-columns:42px 1fr;padding:11px 12px}.proof-icon{width:42px;height:42px}.proof-copy span{font-size:.8rem}}

/* V7 Approved Driver seal */
.driver-seal{position:absolute;right:18px;top:28px;width:106px;height:106px;border-radius:50%;z-index:3;display:grid;place-items:center;align-content:center;text-align:center;color:#07253a;background:radial-gradient(circle at 34% 28%,#fff 0%,#fff8df 48%,#edd08a 100%);border:3px solid rgba(255,255,255,.92);box-shadow:0 12px 30px rgba(3,29,45,.24),0 0 0 2px rgba(222,177,68,.55),inset 0 0 0 4px rgba(139,99,22,.14);transform:rotate(7deg);animation:sealDrop .72s cubic-bezier(.18,.86,.22,1.16) .35s both,sealFloat 4.6s ease-in-out 1.2s infinite}
.driver-seal:before{content:"";position:absolute;inset:9px;border-radius:50%;border:2px dotted rgba(7,37,58,.42)}
.driver-seal:after{content:"";position:absolute;inset:-8px;border-radius:50%;background:radial-gradient(circle,rgba(91,241,233,.32),transparent 62%);z-index:-1;filter:blur(2px)}
.driver-seal .seal-check{font-size:1.25rem;line-height:1;margin-bottom:2px;color:#078f9d;text-shadow:0 1px 0 rgba(255,255,255,.75)}
.driver-seal strong{display:block;font-size:.78rem;font-weight:1000;text-transform:uppercase;letter-spacing:.035em;line-height:.95}
.driver-seal small{display:block;margin-top:4px;font-size:.48rem;font-weight:950;text-transform:uppercase;letter-spacing:.13em;color:#087f8f}
@keyframes sealDrop{from{opacity:0;transform:translateY(-12px) scale(.75) rotate(16deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(7deg)}}
@keyframes sealFloat{0%,100%{transform:translateY(0) rotate(7deg)}50%{transform:translateY(-4px) rotate(5deg)}}
@media(max-width:380px){.driver-seal{right:14px;top:24px;width:92px;height:92px}.driver-seal strong{font-size:.67rem}.driver-seal small{font-size:.42rem}.driver-seal .seal-check{font-size:1.05rem}.hero-content{bottom:42px}.hero-content h1{max-width:280px}}
@media(min-width:381px){.hero-content h1{max-width:318px}.hero-copy{max-width:318px}}

/* V7.1 mobile approved driver seal fix */
.driver-seal {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 12 !important;
}

@media (max-width: 700px) {
    .hero {
        position: relative !important;
        overflow: visible !important;
    }

    .hero-media,
    .hero-image,
    .hero-bg,
    .hero-visual {
        overflow: visible !important;
    }

    .driver-seal {
        position: absolute !important;
        top: 18px !important;
        right: 16px !important;
        width: 92px !important;
        height: 92px !important;
        border-radius: 50% !important;
        transform: rotate(6deg) !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        background: radial-gradient(circle at 30% 25%, #fffdf1 0%, #f8e5ad 52%, #c9982e 100%) !important;
        border: 3px solid rgba(255, 255, 255, 0.85) !important;
        box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28), 0 0 0 5px rgba(7, 152, 168, 0.18) !important;
        color: #07283a !important;
        text-align: center !important;
        pointer-events: none !important;
    }

    .driver-seal .seal-check,
    .driver-seal .check,
    .driver-seal span:first-child {
        font-size: 20px !important;
        line-height: 1 !important;
        color: #078894 !important;
        font-weight: 900 !important;
    }

    .driver-seal strong,
    .driver-seal .seal-title {
        font-size: 13px !important;
        line-height: 1.02 !important;
        letter-spacing: 0.5px !important;
        font-weight: 900 !important;
        text-transform: uppercase !important;
    }

    .driver-seal small,
    .driver-seal .seal-subtitle {
        font-size: 8px !important;
        line-height: 1 !important;
        margin-top: 3px !important;
        text-transform: uppercase !important;
        letter-spacing: 0.4px !important;
    }
}

@media (max-width: 390px) {
    .driver-seal {
        width: 78px !important;
        height: 78px !important;
        top: 14px !important;
        right: 12px !important;
    }

    .driver-seal strong,
    .driver-seal .seal-title {
        font-size: 11px !important;
    }

    .driver-seal small,
    .driver-seal .seal-subtitle {
        font-size: 7px !important;
    }
}

/* V7.2 mobile visual hotfix: approved seal + social proof toast */
.driver-seal {
    display: none !important;
}

/* New visible mobile-safe approved driver seal */
.approved-driver-seal-v72 {
    position: absolute;
    top: 22px;
    right: 18px;
    width: 104px;
    height: 104px;
    border-radius: 50%;
    z-index: 40;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    pointer-events: none;
    color: #08263a;
    background:
        radial-gradient(circle at 30% 24%, #ffffff 0%, #fff7df 42%, #f0cf7a 74%, #c89428 100%);
    border: 3px solid rgba(255,255,255,.95);
    box-shadow:
        0 14px 34px rgba(0,0,0,.28),
        0 0 0 5px rgba(5,154,169,.18),
        inset 0 0 0 5px rgba(118,83,18,.16);
    transform: rotate(7deg);
    animation: sealInV72 .65s cubic-bezier(.18,.88,.22,1.18) .45s both,
               sealFloatV72 4.5s ease-in-out 1.2s infinite;
}

.approved-driver-seal-v72::before {
    content: "";
    position: absolute;
    inset: 10px;
    border-radius: 50%;
    border: 2px dotted rgba(8,38,58,.45);
}

.approved-driver-seal-v72::after {
    content: "";
    position: absolute;
    inset: -9px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(94,241,233,.34), transparent 62%);
    z-index: -1;
    filter: blur(2px);
}

.approved-driver-seal-v72 .seal-check {
    font-size: 1.45rem;
    line-height: 1;
    color: #078894;
    font-weight: 900;
    margin-bottom: 3px;
}

.approved-driver-seal-v72 strong {
    display: block;
    font-size: .78rem;
    line-height: .92;
    font-weight: 1000;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.approved-driver-seal-v72 small {
    display: block;
    margin-top: 4px;
    font-size: .44rem;
    line-height: 1;
    color: #087f8f;
    font-weight: 950;
    letter-spacing: .12em;
    text-transform: uppercase;
}

@keyframes sealInV72 {
    from {
        opacity: 0;
        transform: translateY(-12px) scale(.78) rotate(14deg);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1) rotate(7deg);
    }
}

@keyframes sealFloatV72 {
    0%, 100% {
        transform: translateY(0) rotate(7deg);
    }
    50% {
        transform: translateY(-5px) rotate(5deg);
    }
}

@media (max-width: 700px) {
    .hero,
    .hero-section,
    .hero-panel,
    .hero-wrap {
        position: relative !important;
        overflow: visible !important;
    }

    .approved-driver-seal-v72 {
        top: 18px;
        right: 14px;
        width: 86px;
        height: 86px;
        z-index: 80;
    }

    .approved-driver-seal-v72 .seal-check {
        font-size: 1.05rem;
        margin-bottom: 2px;
    }

    .approved-driver-seal-v72 strong {
        font-size: .62rem;
        line-height: .92;
    }

    .approved-driver-seal-v72 small {
        font-size: .34rem;
        margin-top: 3px;
    }
}

@media (max-width: 390px) {
    .approved-driver-seal-v72 {
        top: 14px;
        right: 10px;
        width: 74px;
        height: 74px;
    }

    .approved-driver-seal-v72 strong {
        font-size: .53rem;
    }

    .approved-driver-seal-v72 small {
        display: none;
    }
}

/* Premium social proof popup card */
#proofToast,
.proof-toast,
.social-proof-toast,
[data-proof-toast] {
    position: fixed !important;
    left: 16px !important;
    right: 16px !important;
    bottom: calc(86px + env(safe-area-inset-bottom)) !important;
    z-index: 120 !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    padding: 13px 15px !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.94) !important;
    border: 1px solid rgba(7,152,168,.20) !important;
    box-shadow: 0 18px 45px rgba(3,31,43,.20) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    color: #09283a !important;
    overflow: hidden !important;
    line-height: 1.25 !important;
}

#proofToast::before,
.proof-toast::before,
.social-proof-toast::before,
[data-proof-toast]::before {
    content: "🌴";
    width: 36px;
    height: 36px;
    min-width: 36px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #eaffff, #d7fbf6);
    box-shadow: inset 0 0 0 1px rgba(7,152,168,.12);
    font-size: 1.15rem;
}

#proofToast strong,
.proof-toast strong,
.social-proof-toast strong,
[data-proof-toast] strong {
    display: block !important;
    font-size: .78rem !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: #078894 !important;
    margin-bottom: 2px !important;
    font-weight: 900 !important;
}

#proofToast span,
#proofToast p,
.proof-toast span,
.proof-toast p,
.social-proof-toast span,
.social-proof-toast p,
[data-proof-toast] span,
[data-proof-toast] p {
    font-size: .92rem !important;
    color: #102b3b !important;
    margin: 0 !important;
    font-weight: 750 !important;
}

#proofToast.is-hidden,
.proof-toast.is-hidden,
.social-proof-toast.is-hidden,
[data-proof-toast].is-hidden {
    opacity: 0 !important;
    transform: translateY(14px) !important;
    pointer-events: none !important;
}

#proofToast.is-visible,
.proof-toast.is-visible,
.social-proof-toast.is-visible,
[data-proof-toast].is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

@media (max-width: 700px) {
    #proofToast,
    .proof-toast,
    .social-proof-toast,
    [data-proof-toast] {
        left: 14px !important;
        right: 14px !important;
        bottom: calc(78px + env(safe-area-inset-bottom)) !important;
        padding: 12px 14px !important;
        border-radius: 20px !important;
    }
}

/* V7.3 social proof mobile alignment fix */
#proofToast,
.proof-toast,
.social-proof-toast,
[data-proof-toast] {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    bottom: calc(92px + env(safe-area-inset-bottom)) !important;
    width: calc(100vw - 32px) !important;
    max-width: 420px !important;
    min-height: 64px !important;
    transform: translateX(-50%) translateY(14px) !important;
    z-index: 180 !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px 14px !important;
    border-radius: 22px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border: 1px solid rgba(7, 152, 168, 0.22) !important;
    box-shadow: 0 18px 45px rgba(3, 31, 43, 0.22) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    color: #09283a !important;
    overflow: hidden !important;
    line-height: 1.25 !important;
}

#proofToast::before,
.proof-toast::before,
.social-proof-toast::before,
[data-proof-toast]::before {
    content: "🌴" !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    border-radius: 50% !important;
    display: grid !important;
    place-items: center !important;
    background: linear-gradient(135deg, #eaffff, #d7fbf6) !important;
    box-shadow: inset 0 0 0 1px rgba(7, 152, 168, 0.14) !important;
    font-size: 1.1rem !important;
}

#proofToast > div,
.proof-toast > div,
.social-proof-toast > div,
[data-proof-toast] > div {
    min-width: 0 !important;
    flex: 1 !important;
}

#proofToast strong,
.proof-toast strong,
.social-proof-toast strong,
[data-proof-toast] strong {
    display: block !important;
    font-size: 0.72rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: #078894 !important;
    margin-bottom: 3px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}

#proofToast span,
#proofToast p,
.proof-toast span,
.proof-toast p,
.social-proof-toast span,
.social-proof-toast p,
[data-proof-toast] span,
[data-proof-toast] p {
    display: block !important;
    font-size: 0.88rem !important;
    color: #102b3b !important;
    margin: 0 !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
}

#proofToast.is-visible,
.proof-toast.is-visible,
.social-proof-toast.is-visible,
[data-proof-toast].is-visible {
    opacity: 1 !important;
    transform: translateX(-50%) translateY(0) !important;
}

#proofToast.is-hidden,
.proof-toast.is-hidden,
.social-proof-toast.is-hidden,
[data-proof-toast].is-hidden {
    opacity: 0 !important;
    transform: translateX(-50%) translateY(18px) !important;
    pointer-events: none !important;
}

@media (max-width: 430px) {
    #proofToast,
    .proof-toast,
    .social-proof-toast,
    [data-proof-toast] {
        width: calc(100vw - 28px) !important;
        max-width: 390px !important;
        bottom: calc(88px + env(safe-area-inset-bottom)) !important;
        border-radius: 20px !important;
        padding: 11px 13px !important;
    }

    #proofToast span,
    #proofToast p,
    .proof-toast span,
    .proof-toast p,
    .social-proof-toast span,
    .social-proof-toast p,
    [data-proof-toast] span,
    [data-proof-toast] p {
        font-size: 0.84rem !important;
    }
}

@media (max-width: 360px) {
    #proofToast,
    .proof-toast,
    .social-proof-toast,
    [data-proof-toast] {
        width: calc(100vw - 22px) !important;
        bottom: calc(84px + env(safe-area-inset-bottom)) !important;
        padding: 10px 12px !important;
    }

    #proofToast::before,
    .proof-toast::before,
    .social-proof-toast::before,
    [data-proof-toast]::before {
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
    }
}

/* V7.4 best-fit copy and stronger No Pressure highlight */
.home-summary .body-heading span {
    color: #0B6F88 !important;
    font-weight: 900 !important;
}

/* V7.5 keep vehicle label on one line */
.home-summary .summary-line b {
    white-space: nowrap !important;
    font-size: clamp(1.35rem, 4.8vw, 1.85rem) !important;
    line-height: 1.05 !important;
}

@media (max-width: 430px) {
    .home-summary .summary-line {
        gap: 12px !important;
        align-items: center !important;
    }

    .home-summary .summary-line b {
        font-size: 1.35rem !important;
        letter-spacing: -0.04em !important;
    }

    .home-summary .summary-line small {
        font-size: 0.92rem !important;
        line-height: 1.15 !important;
    }
}

/* V7.5 home polish: vehicle label + premium trust strip */
.home-summary .summary-line b {
    white-space: nowrap !important;
    font-size: clamp(1.25rem, 4.5vw, 1.75rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.04em !important;
}

.premium-trust-strip {
    display: grid;
    gap: 10px;
    margin: 14px 18px 18px;
    padding: 14px 16px;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(7, 152, 168, 0.16);
    box-shadow: 0 18px 38px rgba(4, 31, 43, 0.08);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.premium-trust-strip span {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #0c2b3d;
    font-weight: 850;
    font-size: 0.92rem;
    line-height: 1.15;
}

@media (min-width: 520px) {
    .premium-trust-strip {
        grid-template-columns: repeat(3, 1fr);
    }

    .premium-trust-strip span {
        justify-content: center;
        text-align: center;
        font-size: 0.82rem;
    }
}

@media (max-width: 430px) {
    .home-summary .summary-line {
        gap: 10px !important;
        align-items: center !important;
    }

    .home-summary .summary-line b {
        font-size: 1.18rem !important;
        letter-spacing: -0.055em !important;
    }

    .home-summary .summary-line small {
        font-size: 0.9rem !important;
        line-height: 1.12 !important;
    }

    .premium-trust-strip {
        margin: 12px 16px 16px;
        padding: 13px 15px;
        border-radius: 22px;
    }

    .premium-trust-strip span {
        font-size: 0.88rem;
    }
}

/* V7.6 desktop-only WhatsApp floating bar refinement */
@media (min-width: 900px) {
    .floating-book,
    .floating-cta,
    .sticky-book,
    .sticky-whatsapp,
    .book-float,
    .desktop-book-bar,
    .whatsapp-float,
    .bottom-cta {
        left: 50% !important;
        right: auto !important;
        bottom: 38px !important;
        width: min(720px, calc(100vw - 220px)) !important;
        max-width: 720px !important;
        transform: translateX(-50%) !important;
        border-radius: 999px !important;
        padding: 12px 16px 12px 26px !important;
        box-shadow: 0 18px 45px rgba(2, 42, 50, 0.22) !important;
    }

    .floating-book a,
    .floating-cta a,
    .sticky-book a,
    .sticky-whatsapp a,
    .book-float a,
    .desktop-book-bar a,
    .whatsapp-float a,
    .bottom-cta a {
        min-width: 190px !important;
        max-width: 240px !important;
        padding: 12px 22px !important;
        border-radius: 999px !important;
        white-space: nowrap !important;
    }

    .floating-book p,
    .floating-cta p,
    .sticky-book p,
    .sticky-whatsapp p,
    .book-float p,
    .desktop-book-bar p,
    .whatsapp-float p,
    .bottom-cta p,
    .floating-book span,
    .floating-cta span,
    .sticky-book span,
    .sticky-whatsapp span,
    .book-float span,
    .desktop-book-bar span,
    .whatsapp-float span,
    .bottom-cta span {
        font-size: 0.92rem !important;
        line-height: 1.2 !important;
    }
}

@media (min-width: 1200px) {
    .floating-book,
    .floating-cta,
    .sticky-book,
    .sticky-whatsapp,
    .book-float,
    .desktop-book-bar,
    .whatsapp-float,
    .bottom-cta {
        width: 680px !important;
        max-width: 680px !important;
    }
}

/* V7.6 desktop-only WhatsApp floating bar refinement */
@media (min-width: 900px) {
    .floating-book,
    .floating-cta,
    .sticky-book,
    .sticky-whatsapp,
    .book-float,
    .desktop-book-bar,
    .whatsapp-float,
    .bottom-cta {
        left: 50% !important;
        right: auto !important;
        bottom: 38px !important;
        width: min(720px, calc(100vw - 220px)) !important;
        max-width: 720px !important;
        transform: translateX(-50%) !important;
        border-radius: 999px !important;
        padding: 12px 16px 12px 26px !important;
        box-shadow: 0 18px 45px rgba(2, 42, 50, 0.22) !important;
    }

    .floating-book a,
    .floating-cta a,
    .sticky-book a,
    .sticky-whatsapp a,
    .book-float a,
    .desktop-book-bar a,
    .whatsapp-float a,
    .bottom-cta a {
        min-width: 190px !important;
        max-width: 240px !important;
        padding: 12px 22px !important;
        border-radius: 999px !important;
        white-space: nowrap !important;
    }

    .floating-book p,
    .floating-cta p,
    .sticky-book p,
    .sticky-whatsapp p,
    .book-float p,
    .desktop-book-bar p,
    .whatsapp-float p,
    .bottom-cta p,
    .floating-book span,
    .floating-cta span,
    .sticky-book span,
    .sticky-whatsapp span,
    .book-float span,
    .desktop-book-bar span,
    .whatsapp-float span,
    .bottom-cta span {
        font-size: 0.92rem !important;
        line-height: 1.2 !important;
    }
}

@media (min-width: 1200px) {
    .floating-book,
    .floating-cta,
    .sticky-book,
    .sticky-whatsapp,
    .book-float,
    .desktop-book-bar,
    .whatsapp-float,
    .bottom-cta {
        width: 680px !important;
        max-width: 680px !important;
    }
}

/* V7.7 desktop-only fix for pseudo desktop WhatsApp bar */
@media (min-width: 860px) {
    .phone-frame:before {
        left: 50% !important;
        bottom: 72px !important;
        transform: translateX(-50%) !important;
        width: 620px !important;
        max-width: calc(100vw - 420px) !important;
        min-width: 520px !important;
        padding: 14px 220px 14px 24px !important;
        border-radius: 999px !important;
        font-size: 0.88rem !important;
        line-height: 1.15 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        box-shadow: 0 18px 45px rgba(2, 42, 50, 0.18) !important;
        z-index: 22 !important;
    }

    .phone-frame:after {
        left: calc(50% + 190px) !important;
        bottom: 84px !important;
        transform: translateX(-50%) !important;
        padding: 9px 26px !important;
        min-width: 185px !important;
        text-align: center !important;
        border-radius: 999px !important;
        font-size: 0.78rem !important;
        box-shadow: 0 10px 24px rgba(255,255,255,0.18) !important;
        z-index: 23 !important;
    }
}

@media (min-width: 1200px) {
    .phone-frame:before {
        width: 660px !important;
        max-width: 660px !important;
    }

    .phone-frame:after {
        left: calc(50% + 205px) !important;
    }
}

@media (min-width: 1600px) {
    .phone-frame:before {
        bottom: 72px !important;
    }

    .phone-frame:after {
        bottom: 84px !important;
    }
}

/* V7.8 desktop-only clean WhatsApp CTA */
@media (min-width: 860px) {
    .phone-frame:before {
        display: none !important;
        content: none !important;
    }

    .phone-frame:after {
        content: "BOOK ON WHATSAPP" !important;
        position: fixed !important;
        left: 50% !important;
        right: auto !important;
        bottom: 58px !important;
        transform: translateX(-50%) !important;
        width: auto !important;
        min-width: 260px !important;
        max-width: 320px !important;
        padding: 14px 34px !important;
        border-radius: 999px !important;
        background: linear-gradient(135deg, #ffffff, #f3ffff) !important;
        color: #078894 !important;
        border: 1px solid rgba(7, 152, 168, 0.22) !important;
        box-shadow: 0 18px 42px rgba(2, 42, 50, 0.18) !important;
        font-size: 0.84rem !important;
        line-height: 1 !important;
        font-weight: 950 !important;
        letter-spacing: 0.04em !important;
        text-transform: uppercase !important;
        text-align: center !important;
        z-index: 35 !important;
        white-space: nowrap !important;
    }
}

@media (min-width: 1200px) {
    .phone-frame:after {
        bottom: 58px !important;
    }
}

/* V9 Live Reviews and Rating Form */
.reviews-screen .screen-title {
    margin-bottom: 14px;
}

.review-summary {
    padding: 16px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: center;
    margin-bottom: 14px;
}

.review-score {
    color: #ffb200;
    letter-spacing: .08em;
    font-size: 1.2rem;
    margin: 0 0 4px;
}

.review-summary h3 {
    margin: 0 0 4px;
    font-size: 1.05rem;
    letter-spacing: -.02em;
}

.review-summary p:last-child {
    margin: 0;
    color: var(--muted);
    font-size: .82rem;
}

.review-form {
    padding: 16px;
    display: grid;
    gap: 12px;
    margin-bottom: 14px;
}

.form-intro h3 {
    margin: 0;
    font-size: 1.12rem;
}

.rating-picker {
    display: flex;
    gap: 8px;
    justify-content: center;
    padding: 6px 0 2px;
}

.rating-picker button {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    border: 1px solid #f2d48c;
    background: linear-gradient(180deg, #fffdf3, #fff4cf);
    color: #ffb200;
    font-size: 1.35rem;
    cursor: pointer;
    box-shadow: 0 10px 22px rgba(255, 178, 0, .12);
}

.rating-picker button.is-muted {
    color: #cdd6dc;
    background: #f7fbfc;
    border-color: var(--line);
    box-shadow: none;
}

.review-form label {
    display: grid;
    gap: 6px;
    font-size: .75rem;
    font-weight: 900;
    color: var(--navy-2);
}

.review-form label small {
    font-weight: 700;
    color: var(--muted);
}

.review-form input,
.review-form select,
.review-form textarea {
    width: 100%;
    border: 1px solid #d8e5ea;
    background: #fff;
    border-radius: 13px;
    padding: 12px;
    color: var(--navy);
    outline: none;
}

.review-form input:focus,
.review-form select:focus,
.review-form textarea:focus {
    border-color: var(--teal);
    box-shadow: 0 0 0 4px rgba(7,143,157,.12);
}

.permission-check {
    grid-template-columns: 22px 1fr;
    align-items: start;
    gap: 10px !important;
    font-size: .78rem !important;
    line-height: 1.35;
    color: var(--muted) !important;
    font-weight: 750 !important;
}

.permission-check input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.reviews-list {
    display: grid;
    gap: 12px;
}

.guest-review-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    padding: 15px;
    box-shadow: var(--soft-shadow);
    animation: cardRise .45s cubic-bezier(.2,.8,.2,1) both;
}

.guest-review-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
}

.guest-review-stars {
    color: #ffb200;
    letter-spacing: .08em;
    white-space: nowrap;
}

.guest-review-name {
    margin: 0;
    font-size: 1rem;
    font-weight: 950;
    color: var(--navy);
}

.guest-review-meta {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.35;
}

.guest-review-text {
    margin: 0;
    color: #405565;
    font-size: .9rem;
    line-height: 1.48;
}

.review-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

.review-tags span {
    background: #edf8fa;
    color: var(--navy-2);
    border: 1px solid #d9eef2;
    border-radius: 999px;
    padding: 6px 9px;
    font-size: .68rem;
    font-weight: 850;
}

.view-more-reviews {
    margin-top: 14px;
}

.empty-reviews {
    padding: 16px;
    text-align: center;
    color: var(--muted);
}

@media (max-width: 420px) {
    .review-summary {
        grid-template-columns: 1fr;
    }

    .review-summary .secondary-btn {
        width: 100%;
    }

    .rating-picker button {
        width: 38px;
        height: 38px;
    }
}

/* V9.2 Force review form to remain hidden until opened */
.review-form[hidden] {
    display: none !important;
}

/* V9.4 Guest Perks & Local Partners */
.guest-perks {
    padding: 16px;
    margin: 14px 0;
    overflow: hidden;
    position: relative;
}

.guest-perks::before {
    content: "";
    position: absolute;
    inset: -80px auto auto -80px;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, rgba(7, 136, 148, .16), transparent 65%);
    pointer-events: none;
}

.perks-heading {
    position: relative;
    z-index: 1;
    margin-bottom: 14px;
}

.perks-heading h2 {
    margin: 0 0 6px;
    font-size: 1.18rem;
    letter-spacing: -.03em;
}

.perks-heading p:last-child {
    margin: 0;
    color: var(--muted);
    font-size: .86rem;
    line-height: 1.45;
}

.perks-grid {
    display: grid;
    gap: 10px;
    position: relative;
    z-index: 1;
}

.perk-card {
    background: linear-gradient(180deg, #ffffff, #f7fdfe);
    border: 1px solid #dceff2;
    border-radius: 18px;
    padding: 13px;
    box-shadow: 0 12px 28px rgba(6, 27, 45, .06);
}

.perk-icon {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    background: #edf8fa;
    display: grid;
    place-items: center;
    margin-bottom: 9px;
    font-size: 1.15rem;
}

.perk-card h3 {
    margin: 0 0 5px;
    font-size: .96rem;
    color: var(--navy);
}

.perk-card p {
    margin: 0;
    color: #506574;
    font-size: .82rem;
    line-height: 1.45;
}

.perks-btn {
    margin-top: 13px;
    position: relative;
    z-index: 1;
}

@media (min-width: 860px) {
    .guest-perks {
        padding: 20px;
    }

    .perks-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* V9.5 Premium Guest Perks layout refinement */
.guest-perks {
    padding: 18px !important;
    border-radius: 24px !important;
}

.perks-heading {
    text-align: left;
    margin-bottom: 16px !important;
}

.perks-heading h2 {
    font-size: 1.22rem !important;
    line-height: 1.18 !important;
    margin-bottom: 8px !important;
}

.perks-heading p:last-child {
    max-width: 95%;
    font-size: .88rem !important;
    line-height: 1.55 !important;
}

.perks-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
}

.perk-card {
    display: grid;
    grid-template-columns: 46px 1fr;
    gap: 12px;
    align-items: start;
    min-height: auto;
    padding: 15px !important;
    border-radius: 20px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,253,254,.96)) !important;
    border: 1px solid rgba(7, 136, 148, .18) !important;
}

.perk-icon {
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    border-radius: 16px !important;
    background: linear-gradient(180deg, #eefbfc, #e3f5f8) !important;
    box-shadow: inset 0 0 0 1px rgba(7, 136, 148, .08);
}

.perk-card h3 {
    margin: 0 0 6px !important;
    font-size: .98rem !important;
    line-height: 1.15 !important;
    letter-spacing: -.015em;
}

.perk-card p {
    font-size: .84rem !important;
    line-height: 1.5 !important;
    color: #415767 !important;
    max-width: 100%;
}

.perks-btn {
    margin-top: 14px !important;
    height: 48px;
    display: grid !important;
    place-items: center;
    letter-spacing: .04em;
}

@media (min-width: 520px) {
    .perks-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 10px !important;
    }

    .perk-card {
        display: block;
        padding: 14px !important;
    }

    .perk-icon {
        margin-bottom: 10px !important;
    }

    .perk-card h3 {
        min-height: 38px;
    }
}

@media (min-width: 860px) {
    .guest-perks {
        padding: 22px !important;
    }

    .perks-grid {
        gap: 14px !important;
    }

    .perk-card {
        padding: 16px !important;
    }

    .perk-card p {
        text-align: left;
    }
}

/* V9.6 Fix Guest Perks mobile card grid */
@media (max-width: 519px) {
    .guest-perks {
        padding: 16px !important;
    }

    .perks-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
        width: 100% !important;
    }

    .perk-card {
        display: grid !important;
        grid-template-columns: 44px minmax(0, 1fr) !important;
        grid-template-rows: auto auto !important;
        column-gap: 12px !important;
        row-gap: 5px !important;
        align-items: start !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 15px !important;
    }

    .perk-icon {
        grid-column: 1 !important;
        grid-row: 1 / span 2 !important;
        width: 44px !important;
        height: 44px !important;
        margin: 0 !important;
    }

    .perk-card h3 {
        grid-column: 2 !important;
        grid-row: 1 !important;
        min-width: 0 !important;
        width: 100% !important;
        margin: 1px 0 2px !important;
        font-size: .96rem !important;
        line-height: 1.2 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    .perk-card p {
        grid-column: 2 !important;
        grid-row: 2 !important;
        min-width: 0 !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        font-size: .83rem !important;
        line-height: 1.48 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        white-space: normal !important;
    }

    .perks-btn {
        width: 100% !important;
        margin-top: 14px !important;
    }
}

/* V9.7 Individual Guest Perk card colours */
.perk-card:nth-child(1) {
    background:
        linear-gradient(180deg, #fff9ef 0%, #fff4df 100%) !important;
    border-color: rgba(215, 160, 74, .28) !important;
    box-shadow: 0 14px 30px rgba(178, 126, 47, .10) !important;
}

.perk-card:nth-child(1) .perk-icon {
    background:
        linear-gradient(180deg, #fff4dc, #ffe8bf) !important;
    box-shadow: inset 0 0 0 1px rgba(215, 160, 74, .16) !important;
}

.perk-card:nth-child(2) {
    background:
        linear-gradient(180deg, #fff7f4 0%, #ffebe5 100%) !important;
    border-color: rgba(218, 128, 102, .25) !important;
    box-shadow: 0 14px 30px rgba(184, 93, 68, .09) !important;
}

.perk-card:nth-child(2) .perk-icon {
    background:
        linear-gradient(180deg, #fff0eb, #ffddd3) !important;
    box-shadow: inset 0 0 0 1px rgba(218, 128, 102, .14) !important;
}

.perk-card:nth-child(3) {
    background:
        linear-gradient(180deg, #effbff 0%, #e3f5fb 100%) !important;
    border-color: rgba(73, 162, 190, .25) !important;
    box-shadow: 0 14px 30px rgba(47, 126, 151, .10) !important;
}

.perk-card:nth-child(3) .perk-icon {
    background:
        linear-gradient(180deg, #e7f8fc, #d5eef6) !important;
    box-shadow: inset 0 0 0 1px rgba(73, 162, 190, .14) !important;
}

.perk-card h3 {
    color: #092238 !important;
}

.perk-card p {
    color: #465d6b !important;
}

@media (hover: hover) {
    .perk-card {
        transition: transform .22s ease, box-shadow .22s ease;
    }

    .perk-card:hover {
        transform: translateY(-3px);
    }
}

/* V9.9 Booking contact methods */
.booking-contact-methods {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.booking-contact-methods legend {
    padding: 0;
    margin: 0 0 8px;
    color: var(--navy-2);
    font-size: .75rem;
    font-weight: 900;
}

.booking-contact-options {
    display: grid;
    gap: 9px;
}

.booking-contact-option {
    display: grid !important;
    grid-template-columns: 20px 38px minmax(0, 1fr);
    gap: 10px !important;
    align-items: center;
    width: 100%;
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid #d8e5ea;
    border-radius: 15px;
    background: #fff;
    cursor: pointer;
    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease;
}

.booking-contact-option:has(input:checked) {
    border-color: rgba(7, 136, 148, .58);
    background: #effbfc;
    box-shadow: 0 0 0 3px rgba(7, 136, 148, .09);
}

.booking-contact-option input {
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    accent-color: var(--teal);
}

.booking-method-icon {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #eaf8fa;
    font-size: 1rem;
}

.booking-contact-option > span:last-child {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.booking-contact-option strong {
    color: var(--navy);
    font-size: .84rem;
    line-height: 1.2;
}

.booking-contact-option small {
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.35;
    font-weight: 700;
}

@media (min-width: 600px) {
    .booking-contact-options {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .booking-contact-option {
        grid-template-columns: 20px minmax(0, 1fr);
        align-items: start;
    }

    .booking-method-icon {
        grid-column: 1 / span 2;
    }
}

/* V9.10 Show Guest Perks only on Home page */
.guest-perks {
    display: none !important;
}

body.home-screen .guest-perks {
    display: block !important;
}

/* V10.3 Public owner replies */
.guest-review-owner-reply {
    margin-top: 13px;
    padding: 12px 13px;
    border-left: 4px solid var(--teal);
    border-radius: 12px;
    background: linear-gradient(180deg, #effbfc, #e8f7f9);
    color: #385661;
}

.guest-review-owner-reply strong {
    display: block;
    color: var(--navy);
    font-size: .78rem;
    margin-bottom: 5px;
}

.guest-review-owner-reply p {
    margin: 0;
    font-size: .82rem;
    line-height: 1.48;
}

/* V10.4 Multiple review reactions */
.review-reactions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid #e1edf0;
}

.review-reaction {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 6px;
    align-items: center;
    min-width: 0;
    border: 1px solid #d8e8ec;
    border-radius: 13px;
    padding: 8px 9px;
    background: #f8fcfd;
    color: var(--navy);
    cursor: pointer;
    text-align: left;
    transition:
        transform .18s ease,
        background .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.review-reaction > span {
    font-size: 1rem;
    line-height: 1;
}

.review-reaction strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .68rem;
    line-height: 1.1;
}

.review-reaction small {
    min-width: 22px;
    border-radius: 999px;
    padding: 4px 6px;
    background: #e6f4f6;
    color: var(--teal);
    font-size: .64rem;
    font-weight: 950;
    text-align: center;
}

.review-reaction:hover {
    transform: translateY(-1px);
    border-color: rgba(7, 136, 148, .4);
}

.review-reaction.is-selected {
    border-color: rgba(7, 136, 148, .55);
    background: linear-gradient(180deg, #eefbfc, #e5f7f9);
    box-shadow: 0 7px 18px rgba(7, 136, 148, .1);
}

.review-reaction.is-selected small {
    background: var(--teal);
    color: #fff;
}

.review-reaction.is-saving {
    opacity: .65;
}

.review-reaction:disabled {
    cursor: wait;
}

.review-reaction-status {
    min-height: 16px;
    margin: 7px 0 0;
    color: var(--teal);
    font-size: .68rem;
    font-weight: 850;
}

.review-reaction-status.is-error {
    color: #b32626;
}

@media (min-width: 520px) {
    .review-reactions {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .review-reaction {
        grid-template-columns: 22px minmax(0, 1fr);
    }

    .review-reaction small {
        grid-column: 1 / span 2;
        justify-self: start;
    }
}

/* V11 Social Sharing */
.social-share-card {
    margin-top: 14px;
    padding: 17px;
    overflow: hidden;
    position: relative;
    background:
        radial-gradient(
            circle at top right,
            rgba(7, 136, 148, .15),
            transparent 34%
        ),
        linear-gradient(180deg, #ffffff, #f3fbfc);
}

.social-share-heading {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
}

.social-share-heading h3 {
    margin: 2px 0 7px;
    color: var(--navy);
    font-size: 1.08rem;
    line-height: 1.25;
}

.social-share-heading p:last-child {
    margin: 0;
    color: var(--muted);
    font-size: .82rem;
    line-height: 1.5;
}

.social-share-main-icon {
    width: 43px;
    height: 43px;
    flex: 0 0 43px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: linear-gradient(180deg, #e9fafb, #d9f1f4);
    color: var(--teal);
    font-size: 1.15rem;
    font-weight: 950;
}

.social-share-buttons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}

.social-share-button {
    display: grid;
    grid-template-columns: 29px minmax(0, 1fr);
    gap: 7px;
    align-items: center;
    width: 100%;
    min-width: 0;
    border: 1px solid #d8e8ec;
    border-radius: 14px;
    padding: 10px;
    background: #fff;
    color: var(--navy);
    cursor: pointer;
    text-align: left;
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.social-share-button:hover {
    transform: translateY(-1px);
    border-color: rgba(7, 136, 148, .42);
    box-shadow: 0 8px 20px rgba(6, 27, 45, .08);
}

.social-share-button > span {
    width: 29px;
    height: 29px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    font-size: .95rem;
    font-weight: 950;
}

.social-share-button strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    color: inherit;
    font-size: .72rem;
    white-space: nowrap;
}

.social-share-button.facebook {
    color: #1757a6;
    background: #f5f9ff;
}

.social-share-button.facebook > span {
    background: #e4efff;
}

.social-share-button.whatsapp {
    color: #087a47;
    background: #f1fff8;
}

.social-share-button.whatsapp > span {
    background: #dff8eb;
}

.social-share-button.instagram {
    color: #a42b68;
    background: #fff5fa;
}

.social-share-button.instagram > span {
    background: #fae3ef;
}

.social-share-button.tiktok {
    color: #121d28;
    background: #f7f9fa;
}

.social-share-button.tiktok > span {
    background: #e9eef0;
}

.social-share-button.copy-link {
    color: var(--teal);
    background: #f0fafb;
    grid-column: 1 / -1;
}

.social-share-button.copy-link > span {
    background: #dff2f5;
}

.social-share-preview {
    margin-top: 13px;
    padding: 13px;
    border: 1px dashed #bedde2;
    border-radius: 15px;
    background: rgba(255, 255, 255, .78);
}

.social-share-preview strong {
    display: block;
    margin-bottom: 6px;
    color: var(--navy);
    font-size: .74rem;
}

.social-share-preview p {
    margin: 0;
    color: #506574;
    font-size: .77rem;
    line-height: 1.5;
}

.social-share-status {
    min-height: 18px;
    margin: 8px 0 0;
    color: var(--teal);
    font-size: .72rem;
    font-weight: 850;
}

.social-share-status.is-error {
    color: #b32626;
}

@media (min-width: 520px) {
    .social-share-buttons {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .social-share-button {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .social-share-button.copy-link {
        grid-column: auto;
    }
}

/* V11.1 Review anti-bot field */
.review-honeypot {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* ========================================================
   V12.0 NO PRESSURE PASS
======================================================== */

.pass-screen {
    padding-bottom: 120px;
}

.pass-hero {
    position: relative;
    min-height: 330px;
    overflow: hidden;
    border-radius: 0 0 28px 28px;
    background:
        linear-gradient(
            135deg,
            rgba(4, 31, 50, .96),
            rgba(4, 99, 112, .82)
        ),
        url("assets/hero.png") center/cover no-repeat;
}

.pass-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(
            circle at top right,
            rgba(49, 211, 216, .24),
            transparent 42%
        );
}

.pass-hero-content {
    position: relative;
    z-index: 1;
    padding: 42px 22px 32px;
    color: #fff;
}

.pass-hero-content h2 {
    margin: 8px 0 14px;
    font-size: clamp(2.15rem, 10vw, 3.2rem);
    line-height: 1;
    letter-spacing: -.04em;
}

.pass-hero-content h2 span {
    color: #75e1e3;
}

.pass-hero-content > p:not(.eyebrow) {
    max-width: 520px;
    margin: 0;
    font-size: .98rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, .88);
}

.pass-approved-note {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 18px;
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    backdrop-filter: blur(8px);
    font-size: .74rem;
}

.pass-approved-note span {
    width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #72dfb0;
    color: #053424;
    font-weight: 950;
}

.pass-intro {
    position: relative;
    z-index: 2;
    margin: -24px 14px 18px;
    padding: 18px;
}

.pass-intro h3 {
    margin: 4px 0 15px;
    color: var(--navy);
}

.pass-steps {
    display: grid;
    gap: 10px;
}

.pass-steps > div {
    display: grid;
    grid-template-columns: 35px minmax(0, 1fr);
    column-gap: 10px;
    align-items: center;
    padding: 11px;
    border: 1px solid #deecef;
    border-radius: 14px;
    background: #f8fcfd;
}

.pass-steps > div > span {
    grid-row: 1 / span 2;
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #dff4f6;
    color: var(--teal);
    font-weight: 950;
}

.pass-steps strong {
    font-size: .82rem;
}

.pass-steps small {
    margin-top: 2px;
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.4;
}

.pass-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 14px;
    margin: 22px 16px 12px;
}

.pass-section-heading h3 {
    margin: 3px 0 0;
    color: var(--navy);
    font-size: 1.22rem;
}

.pass-section-heading > span {
    font-size: 1.8rem;
}

.partner-voucher-list {
    display: grid;
    gap: 12px;
    padding: 0 14px;
}

.partner-voucher {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 15px;
    border: 1px solid #d9e8eb;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(6, 27, 45, .07);
}

.voucher-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    font-size: 1.55rem;
}

.partner-photo {
    border-color: #ddd1f2;
    background: linear-gradient(180deg, #fff, #fbf8ff);
}

.partner-photo .voucher-icon {
    background: #f0e9fb;
}

.partner-dining {
    border-color: #ecd9af;
    background: linear-gradient(180deg, #fff, #fffaf0);
}

.partner-dining .voucher-icon {
    background: #fbf0d8;
}

.partner-tours {
    border-color: #bfe5e8;
    background: linear-gradient(180deg, #fff, #f2fbfc);
}

.partner-tours .voucher-icon {
    background: #ddf4f5;
}

.partner-villa {
    border-color: #d4e3bd;
    background: linear-gradient(180deg, #fff, #f8fbf2);
}

.partner-villa .voucher-icon {
    background: #eaf3dd;
}

.voucher-copy small {
    display: block;
    margin-bottom: 4px;
    color: var(--teal);
    font-size: .65rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.voucher-copy h3 {
    margin: 0 0 6px;
    color: var(--navy);
    font-size: .96rem;
}

.voucher-copy p {
    margin: 0;
    color: var(--muted);
    font-size: .75rem;
    line-height: 1.48;
}

.voucher-button {
    grid-column: 1 / -1;
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 11px 14px;
    background: linear-gradient(135deg, #078894, #0aa4ae);
    color: #fff;
    font-weight: 950;
    cursor: pointer;
}

.pass-information {
    display: grid;
    grid-template-columns: 37px minmax(0, 1fr);
    gap: 11px;
    margin: 16px 14px;
    padding: 15px;
    background: #f1fafb;
}

.pass-information > span {
    width: 37px;
    height: 37px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: #dff3f5;
}

.pass-information strong {
    color: var(--navy);
    font-size: .82rem;
}

.pass-information p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.5;
}

.pass-support-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0 14px 18px;
}

.pass-support-grid a {
    display: grid;
    gap: 8px;
    min-height: 104px;
    padding: 15px;
    border: 1px solid #d9e8eb;
    border-radius: 18px;
    background: #fff;
    color: var(--navy);
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(6, 27, 45, .06);
}

.pass-support-grid span {
    font-size: 1.45rem;
}

.pass-support-grid strong {
    font-size: .78rem;
    line-height: 1.35;
}

.pass-request-panel,
.pass-pending-card {
    position: relative;
    margin: 16px 14px;
    padding: 18px;
}

.pass-request-panel[hidden],
.pass-pending-card[hidden] {
    display: none !important;
}

.pass-panel-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 35px;
    height: 35px;
    border: 0;
    border-radius: 50%;
    background: #edf5f6;
    color: var(--navy);
    font-size: 1.3rem;
    cursor: pointer;
}

.pass-request-panel h3 {
    margin: 4px 42px 14px 0;
    color: var(--navy);
}

.selected-pass-benefit {
    display: grid;
    gap: 4px;
    margin-bottom: 14px;
    padding: 13px;
    border-radius: 14px;
    background: #eef9fa;
}

.selected-pass-benefit small {
    color: var(--teal);
    font-size: .65rem;
    font-weight: 900;
    text-transform: uppercase;
}

.selected-pass-benefit strong {
    color: var(--navy);
}

.selected-pass-benefit span {
    color: var(--muted);
    font-size: .73rem;
}

#passRequestForm {
    display: grid;
    gap: 12px;
}

#passRequestForm label:not(.pass-confirmation) {
    display: grid;
    gap: 7px;
    color: var(--navy);
    font-size: .76rem;
    font-weight: 900;
}

#passRequestForm input,
#passRequestForm select,
#passRequestForm textarea {
    width: 100%;
    border: 1px solid #d4e5e8;
    border-radius: 13px;
    padding: 12px;
    background: #fff;
    color: var(--navy);
    font: inherit;
}

#passRequestForm textarea {
    min-height: 92px;
    resize: vertical;
}

.pass-confirmation {
    display: grid;
    grid-template-columns: 21px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    color: var(--muted);
    font-size: .71rem;
    line-height: 1.45;
}

.pass-confirmation input {
    width: 18px !important;
    height: 18px;
    margin: 1px 0 0;
}

.pass-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.pass-request-status {
    min-height: 18px;
    margin: 0;
    color: var(--teal);
    font-size: .73rem;
    font-weight: 850;
}

.pass-request-status.is-error {
    color: #b32626;
}

.pass-pending-card {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 13px;
    border-color: #f0d99c;
    background: linear-gradient(180deg, #fffdf6, #fff9e8);
}

.pass-pending-icon {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #fff1bd;
    font-size: 1.35rem;
}

.pass-pending-card h3 {
    margin: 4px 0 7px;
    color: var(--navy);
}

.pass-pending-card p {
    margin: 0;
    color: var(--muted);
    font-size: .74rem;
    line-height: 1.5;
}

.pass-reference {
    margin-top: 10px !important;
}

.pass-reference strong {
    color: var(--navy);
}

.bottom-nav {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.bottom-nav a {
    min-width: 0;
    padding-inline: 3px;
    font-size: .61rem;
}

.bottom-nav a span {
    font-size: 1rem;
}

@media (min-width: 600px) {
    .partner-voucher-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pass-steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* V12.1.1 Pass preferred contact methods */
.pass-contact-methods {
    margin: 0;
    padding: 0;
    border: 0;
}

.pass-contact-methods legend {
    margin-bottom: 8px;
    color: var(--navy);
    font-size: .76rem;
    font-weight: 900;
}

.pass-contact-options {
    display: grid;
    gap: 8px;
}

.pass-contact-option {
    display: grid !important;
    grid-template-columns: 20px 34px minmax(0, 1fr);
    gap: 8px !important;
    align-items: center;
    margin: 0;
    padding: 11px;
    border: 1px solid #d4e5e8;
    border-radius: 14px;
    background: #f9fcfd;
    cursor: pointer;
}

.pass-contact-option input {
    width: 17px !important;
    height: 17px;
    margin: 0;
}

.pass-contact-option > span:first-of-type {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #e4f4f6;
    font-size: 1rem;
}

.pass-contact-option strong {
    display: block;
    color: var(--navy);
    font-size: .78rem;
}

.pass-contact-option small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: .67rem;
    line-height: 1.35;
}

.pass-contact-option:has(input:checked) {
    border-color: rgba(7, 136, 148, .55);
    background: #eefafb;
    box-shadow: 0 0 0 3px rgba(7, 136, 148, .08);
}

/* ========================================================
   V12.3 GUEST PASS STATUS LOOKUP
======================================================== */

.pass-status-tool {
    margin: 18px 14px 28px;
    padding: 18px;
}

.pass-status-heading {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 16px;
}

.pass-status-heading h3 {
    margin: 4px 0 7px;
    color: var(--navy);
}

.pass-status-heading p:not(.eyebrow) {
    margin: 0;
    color: var(--muted);
    font-size: .75rem;
    line-height: 1.5;
}

.pass-status-heading > span {
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: #e7f7f8;
    font-size: 1.3rem;
}

#passStatusForm {
    display: grid;
    gap: 12px;
}

#passStatusForm label {
    display: grid;
    gap: 7px;
    color: var(--navy);
    font-size: .76rem;
    font-weight: 900;
}

#passStatusForm input {
    width: 100%;
    border: 1px solid #d4e5e8;
    border-radius: 13px;
    padding: 12px;
    background: #fff;
    color: var(--navy);
    font: inherit;
    outline: none;
}

#passStatusForm input:focus {
    border-color: var(--teal);
    box-shadow: 0 0 0 4px rgba(7,136,148,.1);
}

#checkPassStatusButton:disabled {
    opacity: .65;
    cursor: wait;
}

.pass-status-message {
    min-height: 18px;
    margin: 0;
    color: var(--teal);
    font-size: .73rem;
    font-weight: 850;
}

.pass-status-message.is-error {
    color: #b32626;
}

.guest-pass-result[hidden] {
    display: none !important;
}

.guest-pass-result {
    margin-top: 16px;
    padding: 14px;
    border: 1px solid #d7e7eb;
    border-radius: 19px;
    background: #f8fcfd;
}

.guest-pass-result-banner {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 13px;
    border-radius: 16px;
}

.guest-pass-result-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 1.35rem;
    font-weight: 950;
}

.guest-pass-result-banner small {
    display: block;
    margin-bottom: 3px;
    font-size: .64rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.guest-pass-result-banner h3 {
    margin: 0;
    font-size: 1rem;
}

.guest-pass-result-banner p {
    margin: 5px 0 0;
    font-size: .72rem;
    line-height: 1.45;
}

.status-approved .guest-pass-result-banner {
    background: #e6fbf0;
    color: #087143;
}

.status-approved .guest-pass-result-icon {
    background: #08b967;
    color: #fff;
}

.status-pending .guest-pass-result-banner {
    background: #fff5d6;
    color: #765600;
}

.status-pending .guest-pass-result-icon {
    background: #ffd76c;
    color: #654600;
}

.status-redeemed .guest-pass-result-banner,
.status-expired .guest-pass-result-banner {
    background: #fff2dc;
    color: #895a00;
}

.status-redeemed .guest-pass-result-icon,
.status-expired .guest-pass-result-icon {
    background: #efb344;
    color: #fff;
}

.status-rejected .guest-pass-result-banner,
.status-invalid .guest-pass-result-banner {
    background: #fff0f0;
    color: #a32929;
}

.status-rejected .guest-pass-result-icon,
.status-invalid .guest-pass-result-icon {
    background: #d94444;
    color: #fff;
}

.guest-pass-result-details {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.guest-pass-result-details > div {
    padding: 10px;
    border: 1px solid #dce9eb;
    border-radius: 13px;
    background: #fff;
}

.guest-pass-result-details small {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: .63rem;
    font-weight: 850;
    text-transform: uppercase;
}

.guest-pass-result-details strong {
    display: block;
    color: var(--navy);
    font-size: .78rem;
    line-height: 1.4;
}

.guest-pass-code[hidden],
.guest-pass-copy-code[hidden] {
    display: none !important;
}

.guest-pass-code {
    display: grid;
    place-items: center;
    margin-top: 13px;
    padding: 16px;
    border: 2px dashed #68c4ca;
    border-radius: 17px;
    background: #eafafb;
    text-align: center;
}

.guest-pass-code small {
    color: var(--muted);
    font-size: .65rem;
    font-weight: 900;
    text-transform: uppercase;
}

.guest-pass-code strong {
    margin-top: 4px;
    color: var(--navy);
    font-size: 2rem;
    letter-spacing: .2em;
}

.guest-pass-code p {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: .69rem;
}

.guest-pass-copy-code {
    width: 100%;
    margin-top: 10px;
    text-align: center;
}

/* ========================================================
   V12.4 DYNAMIC PARTNER CARDS
======================================================== */

.partner-general {
    border-color: #d6e3e8;
    background: linear-gradient(180deg, #fff, #f7fbfc);
}

.partner-general .voucher-icon {
    background: #e8f2f4;
}

.voucher-benefit-line {
    grid-column: 1 / -1;
    display: grid;
    gap: 3px;
    padding: 11px 12px;
    border: 1px dashed rgba(7,136,148,.35);
    border-radius: 13px;
    background: rgba(235,249,250,.72);
}

.voucher-benefit-line small {
    color: var(--teal);
    font-size: .62rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.voucher-benefit-line strong {
    color: var(--navy);
    font-size: .76rem;
    line-height: 1.4;
}

.partner-empty-card {
    grid-column: 1 / -1;
    padding: 26px 18px;
    text-align: center;
}

.partner-empty-card > span {
    display: block;
    margin-bottom: 9px;
    font-size: 2rem;
}

.partner-empty-card h3 {
    margin: 0 0 7px;
    color: var(--navy);
}

.partner-empty-card p {
    margin: 0;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.5;
}
