
/* ============================================================
   Right-side navigation drawer (mobile + desktop). Trigger = the ☰ button in the header (after the user icon);
   panel slides in from the right. Mounted at body level (outside the header's backdrop-filter). Holds the quick
   links, favorites ("My lists"), account actions and — the key mobile fix — the language selector.
   ============================================================ */
.nvd{position:fixed;inset:0;z-index:1100;}
.nvd[hidden]{display:none;}
.nvd-scrim{position:absolute;inset:0;background:rgba(14,42,51,.5);backdrop-filter:blur(2px);opacity:0;transition:opacity .28s ease;}
.nvd.open .nvd-scrim{opacity:1;}
.nvd-panel{position:absolute;top:0;right:0;height:100%;height:100dvh;width:min(360px,88vw);background:#fff;box-shadow:-16px 0 50px rgba(14,40,46,.24);display:flex;flex-direction:column;padding:16px 14px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform;}
.nvd.open .nvd-panel{transform:none;}
.nvd-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 4px 14px;}
.nvd-brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:17px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink);}
.nvd-nav{display:flex;flex-direction:column;gap:1px;}
.nvd-nav a{display:flex;align-items:center;gap:13px;padding:12px;border-radius:11px;font-weight:600;font-size:15px;color:var(--ink);transition:background .14s,color .14s;}
.nvd-nav a i{font-size:20px;color:var(--teal-d);width:24px;text-align:center;flex:none;}
.nvd-nav a:hover,.nvd-nav a:focus-visible{background:var(--teal-50);color:var(--teal-d);}
.nvd-div{height:1px;background:var(--line-2);margin:12px 6px;}
.nvd-cta{display:flex;align-items:center;justify-content:center;gap:9px;padding:13px;border-radius:11px;background:var(--teal-d);color:#fff;font-weight:700;font-size:15px;margin:3px 2px;}
.nvd-cta:hover{background:#085a6f;}
.nvd-cta i{font-size:19px;}
.nvd-cta-ghost{background:none;color:var(--muted);border:1px solid var(--line-2);width:100%;font-family:inherit;cursor:pointer;}
.nvd-cta-ghost:hover{background:#F4F6F5;color:var(--ink);}
.nvd-logoutf{margin:0;}
.nvd-lang{margin-top:auto;padding-top:16px;}
.nvd-lang-h{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin:0 6px 9px;}
.nvd-lang-h i{font-size:15px;}
.nvd-lang-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.nvd-lang-opts a{padding:11px 12px;border-radius:10px;border:1px solid var(--line-2);font-weight:600;font-size:14px;text-align:center;color:var(--ink);transition:background .14s,border-color .14s,color .14s;}
.nvd-lang-opts a:hover{background:var(--teal-50);border-color:var(--teal);color:var(--teal-d);}
.nvd-lang-opts a.on{background:var(--teal-d);color:#fff;border-color:var(--teal-d);}
@media (prefers-reduced-motion: reduce){.nvd-panel,.nvd-scrim{transition:none;}}

/* ============================================================
   User data (client-side): favorites, share, saved searches.
   Per-visitor state is applied AFTER SSR (cache-safe).
   ============================================================ */
/* Favorite heart as a button (home + result cards). Active ("saved") state reads brand blue and stays clearly
   visible over any photo (the filled glyph keeps home.css's white drop-shadow). The .card .cph .heart.on
   selector is intentionally more specific than home.css's `.card .cph .heart{color:#fff}` so the active colour
   actually wins the cascade. The filled heart is the Phosphor fill weight (`ph-fill ph-heart`, loaded in
   _Layout); the icon inherits its colour from the button, so no per-glyph colour rule is needed. */
.card .cph .heart{background:none;border:none;padding:0;}
.card .cph .heart.on,.heart.on{color:var(--teal);}
.topacts button.on{border-color:var(--teal);color:var(--teal-d);background:var(--teal-50);}

/* SERP result tools (save / share / sort) */
.rtools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.rtool{display:flex;align-items:center;gap:7px;font-family:inherit;font-size:13px;font-weight:700;color:var(--ink);background:#fff;border:1px solid #DCE4E3;border-radius:9px;padding:7px 12px;cursor:pointer;}
.rtool:hover{background:#F4F6F5;}
.rtool .ph{font-size:16px;color:var(--teal);}

/* Favorites / saved-searches pages */
.userdata{padding:26px var(--gutter) 60px;}
.userdata h1{font-size:clamp(22px,3vw,30px);font-weight:800;letter-spacing:-.02em;}
.userdata .lead{margin:8px 0 22px;}
/* "My lists" sections (Favorites + Saved searches on one screen) — each block clearly typed with a header. */
.userdata-sec{margin-bottom:36px;}
.userdata-h2{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;letter-spacing:-.01em;color:var(--ink);margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line-2);}
.userdata-h2 .ph{color:var(--teal);font-size:18px;}
.userdata-sec .userdata-empty{padding:26px 0;}
.userdata-empty{text-align:center;color:var(--muted);padding:40px 0;}
.userdata-empty i{font-size:36px;color:var(--teal);display:block;margin-bottom:12px;}
.userdata-empty p{margin-bottom:18px;}
/* Filled primary CTA, refined pill (the outline .dl is for inline detail-page links). */
.userdata-empty .dl,.userdata-cta .dl{background:var(--teal-d);color:#fff;border-color:var(--teal-d);border-radius:var(--r-pill);padding:10px 22px;font-size:14px;}
.userdata-empty .dl:hover,.userdata-cta .dl:hover{background:#085a6f;}
.userdata-empty .dl i,.userdata-cta .dl i{font-size:16px;color:#fff;display:inline;margin:0;}
/* Single shared "Explore" CTA centered under both sections. */
.userdata-cta{display:flex;justify-content:center;margin-top:8px;}

.saved-list{display:flex;flex-direction:column;gap:10px;max-width:640px;}
.saved-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line-2);border-radius:11px;padding:12px 14px;}
.saved-link{display:flex;align-items:flex-start;gap:9px;font-weight:700;color:var(--ink);min-width:0;}
.saved-link>.ph{color:var(--teal);margin-top:2px;flex:0 0 auto;}
.saved-main{display:flex;flex-direction:column;gap:2px;min-width:0;}
.saved-title{font-weight:700;color:var(--ink);}
.saved-sub{font-weight:600;font-size:12.5px;color:var(--muted);}
.saved-del{background:none;border:none;cursor:pointer;color:var(--faint);font-size:18px;}
.saved-del:hover{color:#d23;}

/* Remove button on each favorites card (overlay in the top-right corner) */
.scard-wrap{position:relative;}
.scard-wrap .mid{padding-right:40px;}
.fav-del{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line-2);background:#fff;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-pill);transition:color .15s,border-color .15s,background .15s;z-index:2;}
.fav-del:hover{color:#d23;border-color:#f3c0c0;background:#fff5f5;}
.fav-del i{font-size:17px;}

/* Rich text coming from the DB (descriptions/intros may contain <p>, <ul>, <strong>, etc.) */
.lead p, .nd p, .rd p { margin: 0 0 10px; }
.lead p:last-child, .nd p:last-child, .rd p:last-child { margin-bottom: 0; }
.lead ul, .lead ol, .nd ul, .rd ul { margin: 8px 0; padding-left: 20px; }
.lead li, .nd li, .rd li { margin: 3px 0; }
.lead strong, .nd strong { color: var(--ink); font-weight: 700; }
.lead a, .nd a, .rd a { color: var(--teal-d); text-decoration: underline; }

/* ============================================================
   Search controls — date-range + passengers popovers
   ============================================================ */
.fields .f[data-control]{position:relative;cursor:pointer;}
.fields .f[data-control] .v{cursor:pointer;}
/* .popover + .cal-* moved to datepicker.css (shared by B2C and the Portal). */
.stepper{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:9px 2px;font-size:14px;font-weight:600;}
.stepper .ctl{display:flex;align-items:center;gap:12px;}
.stepper .ctl button{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line-2);background:#fff;font-size:17px;line-height:1;color:var(--teal-d);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s;}
.stepper .ctl button:hover{border-color:var(--teal);background:var(--teal-50);}
.stepper .ctl b{min-width:18px;text-align:center;font-weight:700;}

/* Leaflet price-tag markers. The Leaflet icon root (.rl-pin) is a 0×0 anchor at the exact coordinate; the
   .mpin pill floats centred just above it via transform, with a little tail (::after) pointing to the point.
   This keeps variable-width price tags correctly anchored at any zoom. */
.rl-pin{width:0;height:0;}
/* A clean price pill centred on the coordinate — no downward tail. */
.mpin{position:absolute;left:0;top:0;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:5px;background:#fff;color:var(--ink);font-size:13px;font-weight:800;padding:7px 11px;border-radius:999px;white-space:nowrap;cursor:pointer;box-shadow:0 4px 14px rgba(20,40,46,.28);transition:transform .12s,background .12s,color .12s,box-shadow .12s;}
.mpin i{font-size:12px;color:var(--teal);}
/* .on = cheapest in view; .hl = synced with a hovered/clicked card. Both read as the brand teal. */
.mpin.on{background:var(--teal-d);color:#fff;}
.mpin.on i{color:#fff;}
.mpin.hl{background:var(--teal-d);color:#fff;z-index:600;transform:translate(-50%,-50%) scale(1.1);box-shadow:0 8px 22px rgba(11,142,171,.45);}
.mpin.hl i{color:#fff;}
/* No-price marker (all product is on-request today, so this is the common hotel-map marker): a tidy round
   icon pin — just a clear hotel glyph, never a price pill with a bare "·" dot beside it. Crisp at mobile DPI. */
.mpin-icon{gap:0;width:34px;height:34px;padding:0;justify-content:center;border:1.5px solid var(--teal);}
.mpin-icon i{font-size:16px;color:var(--teal);}
.mpin-icon.hl{border-color:#fff;}
/* Clustered-pins bubble (markercluster) — a brand teal circle with the child count, matching the pin family. */
.rl-cluster-wrap{background:none;border:none;}
.rl-cluster{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--teal-d);color:#fff;font-weight:800;font-size:14px;border:2.5px solid #fff;box-shadow:0 4px 14px rgba(20,40,46,.32);}
.leaflet-marker-icon:focus-visible .mpin{outline:2px solid var(--teal-d);outline-offset:2px;}
/* Single-location pin (hotel detail's "Location" map) — just the marker, no price/label, same brand teal as
   .mpin's highlighted state so every pin on the site reads consistently. A plain circle (not a teardrop) so
   it stays centred on the coordinate with no rotation math. */
.spin{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:30.6px;height:30.6px;border-radius:50%;background:var(--teal-d);border:2.6px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14.5px;box-shadow:0 4px 14px rgba(20,40,46,.32);}

/* Branded error / not-found pages. */
.errpage{min-height:46vh;}
.errpage .phero{text-align:center;max-width:600px;margin:52px auto 0;}
.errpage .phero .cbtn{margin-top:20px;}

/* Destination landing page (data-driven from real products). */
/* Match the standard .wrap content width (1240px) so it lines up with search/explore/detail. */
.destpage{max-width:1240px;padding:24px var(--gutter) 60px;}
.destpage .crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:14px;flex-wrap:wrap;}
.destpage .crumb a{color:var(--teal-d);font-weight:600;}
.destpage .crumb i{font-size:12px;color:var(--faint);}
.destpage .phero{margin:0 0 8px;}
.destpage .phero .eyebrow{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.10em;text-transform:uppercase;color:var(--teal-d);background:var(--teal-50);padding:5px 11px;border-radius:var(--r-pill);}
.destpage .phero h1{font-size:clamp(28px,4vw,40px);line-height:1.12;margin:14px 0 0;letter-spacing:-.01em;}
.destpage .phero .lead{font-size:17px;color:var(--muted);margin:12px 0 0;max-width:70ch;}
.dfacts{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px;font-size:14px;font-weight:600;color:var(--ink);}
.dfacts span{display:inline-flex;align-items:center;gap:7px;}
.dfacts i{color:var(--teal);font-size:17px;}

/* Photo hero: city image behind the title with a teal scrim (real master on disk, or the branded placeholder). */
.destpage .phero-photo{position:relative;border-radius:20px;overflow:hidden;min-height:300px;padding:34px;margin:0 0 8px;display:flex;flex-direction:column;justify-content:flex-end;}
.destpage .phero-photo .phero-bg{position:absolute;inset:0;background-size:cover;background-position:center;}
.destpage .phero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,52,64,.30) 0%,rgba(6,32,40,.32) 45%,rgba(5,26,33,.86) 100%);}
.destpage .phero-photo .phero-in{position:relative;z-index:2;}
.destpage .phero-photo .eyebrow{background:rgba(255,255,255,.18);color:#fff;}
.destpage .phero-photo h1{color:#fff;text-shadow:0 3px 20px rgba(0,0,0,.45);}
.destpage .phero-photo .lead{color:rgba(255,255,255,.94);text-shadow:0 2px 14px rgba(0,0,0,.4);max-width:70ch;}
.destpage .phero-photo .dfacts{color:#fff;}
.destpage .phero-photo .dfacts i{color:var(--gold,#E8BF7D);}
.dsec{margin:36px 0 0;}
.dsec-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;}
.dsec-h h2{font-size:21px;margin:0;letter-spacing:-.01em;}
.dsec-h h3{font-size:18px;margin:0;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:8px;}
.dsec-h h3 i{color:var(--teal);font-size:19px;}
.dsec-h a{font-size:14px;font-weight:700;color:var(--teal-d);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}

/* Destination editorial: intro description, B2B trade guide, useful info. */
.dprose{max-width:74ch;}
.dprose p{font-size:16px;line-height:1.72;color:var(--ink);margin:0 0 12px;}
.dprose p:last-child{margin-bottom:0;}
.dintro{margin:22px 0 0;}
.dintro .dprose{max-width:none;}
.dintro .dprose p{color:var(--muted);}
.dguide{margin:40px 0 0;}
.dguide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
.dgcard{background:var(--teal-50,#EAF6F8);border:1px solid var(--line-2,#DCE4E3);border-radius:16px;padding:20px 20px 18px;}
.dgcard h3{font-size:15.5px;margin:0 0 10px;display:flex;align-items:center;gap:9px;letter-spacing:-.005em;}
.dgcard h3 i{color:var(--teal-d);font-size:19px;}
.dgcard p{font-size:14.5px;line-height:1.62;color:var(--ink);margin:0 0 9px;}
.dgcard p:last-child{margin-bottom:0;}
.duseful{margin:36px 0 0;background:var(--sand-50,#F7F3EC);border:1px solid var(--line-2,#DCE4E3);border-radius:16px;padding:22px 22px 18px;}
.duseful .dsec-h{margin-bottom:10px;}
.duseful .dprose p{font-size:14.5px;color:var(--muted);}

/* Destinations index (hub): country sections + destination cards with image. */
.dxgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}
.dxcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-2,#DCE4E3);border-radius:16px;overflow:hidden;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;}
.dxcard:hover{border-color:var(--teal);box-shadow:0 12px 30px rgba(20,40,46,.12);transform:translateY(-2px);}
.dxthumb{display:block;aspect-ratio:16/10;background:var(--teal-50,#EAF6F8);overflow:hidden;}
.dxthumb rl-img,.dxthumb img{width:100%;height:100%;object-fit:cover;display:block;}
.dxcard:hover .dxthumb img{transform:scale(1.04);}
.dxthumb img{transition:transform .3s ease;}
.dxbody{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px;}
.dxname{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.005em;}
.dxname i{color:var(--teal-d);font-size:16px;flex:none;transition:transform .15s ease;}
.dxcard:hover .dxname i{transform:translateX(3px);}
.dxteaser{font-size:13.5px;line-height:1.5;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* Auth: header signed-in chip + logout button, and the login error banner. */
.userchip{display:inline-flex;align-items:center;gap:6px;cursor:pointer;max-width:160px;}
.userchip .full{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.logoutf{display:inline-flex;margin:0;padding:0;}
.logoutf button{background:none;border:none;cursor:pointer;font:inherit;color:inherit;padding:0;display:inline-flex;align-items:center;}
.autherr{display:flex;align-items:center;gap:8px;background:#FDECEC;color:#B42318;border:1px solid #F3C0BD;border-radius:10px;padding:10px 12px;font-size:13.5px;margin-bottom:14px;}
.autherr i{font-size:16px;}

/* ---------- Toasts (confirmations / errors) ---------- */
.rl-toasts{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none;}
.rl-toast{display:flex;align-items:center;gap:10px;background:#fff;color:var(--ink);border:1px solid var(--line-2);border-left:4px solid var(--teal);border-radius:12px;padding:12px 16px;box-shadow:0 12px 32px rgba(20,40,46,.20);font-size:14px;font-weight:600;max-width:340px;opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease;}
.rl-toast.in{opacity:1;transform:none;}
.rl-toast i{font-size:18px;}
.rl-toast--success{border-left-color:var(--teal);}.rl-toast--success i{color:var(--teal-d);}
.rl-toast--error{border-left-color:#D92D20;}.rl-toast--error i{color:#D92D20;}
.rl-toast--info{border-left-color:var(--amber-d);}.rl-toast--info i{color:var(--amber-d);}
@media(max-width:600px){.rl-toasts{left:12px;right:12px;top:12px;}.rl-toast{max-width:none;}}

/* ---------- Loading skeletons (search results) ---------- */
.sk{pointer-events:none;}
.sk-box{background:linear-gradient(90deg,#eceeee 25%,#f5f7f7 37%,#eceeee 63%);background-size:400% 100%;animation:sk-shimmer 1.3s ease infinite;border-radius:8px;}
.sk-thumb{flex:0 0 150px;height:130px;border-radius:10px;}
.sk-lines{flex:1;display:flex;flex-direction:column;gap:10px;}
@keyframes sk-shimmer{0%{background-position:100% 0;}100%{background-position:0 0;}}

/* ---------- Button loading spinner (tap feedback) ---------- */
.is-loading{position:relative;color:transparent!important;pointer-events:none;}
.is-loading>*{visibility:hidden;}
.is-loading::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid rgba(255,255,255,.55);border-top-color:#fff;border-radius:50%;animation:rl-spin .6s linear infinite;}
/* On light/ghost buttons the white spinner would be invisible — use the brand teal so it reads on any bg. */
.pbtn-sec.is-loading::after,.pbtn.ghost.is-loading::after,.ghost.is-loading::after,.paddq.is-loading::after,.cbtn.sec.is-loading::after,.pcart-hx.is-loading::after{border-color:rgba(14,110,134,.28);border-top-color:var(--teal-d);}
@keyframes rl-spin{to{transform:rotate(360deg);}}

/* Leaflet popup: strip the default chrome so our .mapinfo-card fills it edge-to-edge. */
.rl-popup .leaflet-popup-content-wrapper{padding:0;border-radius:13px;overflow:hidden;box-shadow:0 14px 36px rgba(20,40,46,.30);}
.rl-popup .leaflet-popup-content{margin:0;width:310px!important;}
/* Softly rounded popup tip, echoing the pill corners. */
.rl-popup .leaflet-popup-tip{border-radius:0 0 4px 0;}
/* Close affordance: original size, just nudged a few px off the top/right edges so it isn't flush to the
   corner. The extra .leaflet-container prefix outranks Leaflet's own ".leaflet-container a..." rule. */
.leaflet-container .rl-popup .leaflet-popup-close-button{z-index:3;width:24px;height:24px;right:9px;top:9px;color:var(--ink);font-size:18px;line-height:24px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 1px 6px rgba(0,0,0,.25);}
.leaflet-container .rl-popup .leaflet-popup-close-button:hover{color:var(--teal-d);background:#fff;}

/* ---------- Filter facets (data-driven rail) ---------- */
.opts{display:flex;flex-direction:column;}
.opts.scroll{max-height:212px;overflow-y:auto;margin-right:-6px;padding-right:6px;}
.opts.scroll::-webkit-scrollbar{width:6px;}
.opts.scroll::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px;}
.opt{display:flex;align-items:center;gap:10px;font-size:13.5px;padding:5px 0;cursor:pointer;user-select:none;line-height:1;}
.opt .box{position:relative;width:18px;height:18px;border:1.5px solid #C3CFCE;border-radius:5px;flex:0 0 auto;transition:background .12s,border-color .12s;}
.opt:hover .box{border-color:var(--teal);}
.opt .box.on{background:var(--teal);border-color:var(--teal);}
.opt .box.on::after{content:"";position:absolute;left:50%;top:50%;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%,-58%) rotate(45deg);}
.opt .stars{color:var(--amber-d);font-size:14px;line-height:1;letter-spacing:1.5px;}
.opt .opt-l{line-height:1.2;}
.opt .ct{margin-left:auto;color:var(--faint);font-size:12px;font-variant-numeric:tabular-nums;}

/* Result card intro (search results) + circuit duration chip in the meta line */
.scard .intro{font-size:13px;color:var(--muted);line-height:1.45;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.scard .zone i.ph-moon-stars{color:var(--teal);}

/* Mobile: results bar fills the line — sort segments and save/share stretch evenly */
@media(max-width:680px){
  .rbar{flex-direction:column;align-items:stretch;gap:10px;}
  .rtools{width:100%;flex-wrap:wrap;gap:8px;}
  .rtools .rtool{flex:1;justify-content:center;}
  .rtools .seg{flex-basis:100%;}
  .rtools .seg span{flex:1;text-align:center;}
}

/* Sidebar column = product-type switcher (nav) stacked above the filter rail */
.side{display:flex;flex-direction:column;gap:14px;min-width:0;}
.side .rail{position:static;}
.typeswitch{background:#fff;border:1px solid var(--line-2);border-radius:13px;padding:6px;display:flex;flex-direction:column;gap:2px;}
.typeswitch a{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:9px;font-size:14px;font-weight:600;color:var(--muted);transition:background .12s,color .12s;}
.typeswitch a i{font-size:19px;}
.typeswitch a.on{background:var(--teal);color:#fff;}
.typeswitch a:not(.on):hover{background:var(--teal-50);color:var(--teal-d);}

/* ---------- Mobile header spacing + round icon-only buttons ---------- */
/* When the link text collapses, header links become icon-only — give them the same round hover as favorites. */
@media(max-width:920px){
  .hr .lnk{width:38px;height:38px;padding:0;justify-content:center;border-radius:50%;}
}
/* ---------- Mobile footer spacing (horizontal gutter comes from the shared --gutter) ---------- */
@media(max-width:680px){
  footer .wrap{padding:36px var(--gutter) 24px;}
  .fcols{gap:24px;margin-bottom:22px;}
  .fbot{flex-direction:column;align-items:flex-start;gap:8px;}
}

/* Card meta: location + (circuit) nights as separate chips — inline on desktop, stacked on mobile.
   Intros are hidden on mobile (compact list) and shown on desktop. */
.scard .zone{flex-wrap:wrap;gap:3px 10px;}
.scard .zone .loc,.scard .zone .nights{display:inline-flex;align-items:center;gap:6px;}
.scard .zone .nights i{color:var(--teal);}
@media(max-width:680px){
  .scard .zone{flex-direction:column;align-items:flex-start;gap:3px;}
  .scard .intro{display:none;}
  /* On the favorites page the intro is wanted context (few cards, not a dense SERP), so keep it on mobile too. */
  .userdata [data-favorites-list] .scard .intro{display:-webkit-box;}
}

/* ---------- Destination picker (modal on desktop, bottom sheet on mobile) ---------- */
.destpick{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;}
.destpick[hidden]{display:none;}
.destpick-overlay{position:absolute;inset:0;background:rgba(15,40,46,.45);backdrop-filter:blur(2px);}
.destpick-panel{position:relative;background:#fff;border-radius:18px;width:min(460px,92vw);max-height:74vh;max-height:74dvh;display:flex;flex-direction:column;box-shadow:var(--shadow-float);overflow:hidden;}
.destpick-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);}
.destpick-head > i{font-size:20px;color:var(--teal);flex:0 0 auto;}
.destpick-head input{flex:1;min-width:0;border:none;outline:none;font-family:inherit;font-size:16px;color:var(--ink);background:none;}
.destpick-x{border:none;background:#F4F6F5;width:32px;height:32px;border-radius:50%;cursor:pointer;color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:16px;flex:0 0 auto;}
.destpick-x:hover{background:var(--teal-50);} /* background tone only — icon keeps its colour (consistent close behaviour) */
.destpick-list{overflow-y:auto;padding:8px;}
.destpick-country{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);padding:12px 10px 6px;position:sticky;top:0;background:#fff;}
.destpick-item{display:flex;align-items:center;gap:11px;width:100%;border:none;background:none;font-family:inherit;font-size:15px;color:var(--ink);text-align:left;padding:11px 10px;border-radius:10px;cursor:pointer;}
.destpick-item:hover{background:var(--teal-50);}
.destpick-item i{font-size:18px;color:var(--teal);flex:0 0 auto;}
.destpick-empty{padding:24px;text-align:center;color:var(--muted);font-size:14px;}
@media(max-width:680px){
  .destpick{align-items:flex-end;}
  .destpick-panel{width:100%;max-height:88vh;max-height:88dvh;border-radius:18px 18px 0 0;}
}

/* ---------- Map info window (click a pin) ---------- */
/* Compact horizontal card (small thumb + body) so it fits inside the map strip at any pin position. */
.mapinfo{position:absolute;z-index:8;transform:translate(-50%,calc(-100% - 13px));width:min(290px,86vw);border-radius:13px;background:#fff;box-shadow:0 14px 36px rgba(20,40,46,.30);}
.mapinfo[hidden]{display:none;}
.mapinfo.below{transform:translate(-50%,15px);} /* shown under the pin near the top edge */
.mapinfo::after{content:"";position:absolute;left:50%;bottom:-6px;width:13px;height:13px;background:#fff;transform:translateX(-50%) rotate(45deg);border-radius:0 0 3px 0;}
.mapinfo.below::after{bottom:auto;top:-6px;border-radius:3px 0 0 0;}
.mapinfo-x{position:absolute;right:7px;top:7px;z-index:3;width:24px;height:24px;border-radius:50%;border:none;background:rgba(255,255,255,.92);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 6px rgba(0,0,0,.25);transition:background .12s;}
.mapinfo-x i{font-size:13px;line-height:1;}
.mapinfo-x:hover{background:#fff;} /* background tone only — icon keeps its colour (consistent close behaviour) */
.mapinfo-card{display:flex;align-items:stretch;border-radius:13px;overflow:hidden;background:#fff;}
.mapinfo-card:hover .mapinfo-name{color:var(--teal-d);}
.mapinfo-thumb{flex:0 0 88px;align-self:stretch;background:var(--teal-50);}
.mapinfo-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.mapinfo-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding:10px 12px;padding-right:36px;}
.mapinfo-name{font-size:14px;font-weight:800;color:var(--ink);line-height:1.25;transition:color .12s;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.mapinfo-stars{color:var(--amber-d);font-size:12px;letter-spacing:1px;}
.mapinfo-foot{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:auto;}
.mapinfo-price{font-size:14.5px;font-weight:800;color:var(--ink);white-space:nowrap;}
.mapinfo-price small{font-size:10.5px;font-weight:600;color:var(--faint);margin-right:2px;}
.mapinfo-see{font-size:12px;font-weight:700;color:var(--teal-d);white-space:nowrap;}

/* Google InfoWindow chrome overrides so our card fills the bubble with no white gaps. */
.gm-style-iw.gm-style-iw-c{padding:0!important;border-radius:14px!important;overflow:hidden!important;box-shadow:0 14px 36px rgba(20,40,46,.3)!important;}
.gm-style-iw-d{overflow:hidden!important;max-height:none!important;}
.gm-style-iw-c .mapinfo-content,.gm-style-iw-c .mapinfo-card{width:280px;max-width:84vw;}
.gm-style-iw-c button.gm-ui-hover-effect{top:6px!important;right:6px!important;width:28px!important;height:28px!important;background:rgba(255,255,255,.95)!important;border-radius:50%!important;box-shadow:0 1px 6px rgba(0,0,0,.25)!important;opacity:1!important;}
.gm-style-iw-c button.gm-ui-hover-effect>span{margin:7px!important;background-color:var(--ink)!important;}

/* Generic select popover (home omni per-product quick filter) */
.selitems{display:flex;flex-direction:column;gap:2px;min-width:190px;}
.selitem{text-align:left;border:none;background:none;font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);padding:10px 12px;border-radius:9px;cursor:pointer;}
.selitem:hover{background:var(--teal-50);color:var(--teal-d);}
.selitem.on{background:var(--teal);color:#fff;}

/* ── Content / marketing / auth pages (about, agencies, login, legal) ── */
/* Reading pages (about / terms / privacy): a centered, comfortable column with the shared gutter,
   so content isn't a narrow block hugging the left edge. */
.cpage{max-width:760px;padding:36px var(--gutter) 64px;}
.cpage .phero{max-width:none;margin:0 0 30px;}
.cpage .phero .eyebrow{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.10em;text-transform:uppercase;color:var(--teal-d);background:var(--teal-50);padding:5px 11px;border-radius:var(--r-pill);}
.cpage .phero h1{font-size:clamp(28px,4vw,42px);line-height:1.12;margin:14px 0 0;letter-spacing:-.01em;}
.cpage .phero .lead{font-size:18px;color:var(--muted);margin:14px 0 0;}
.cpage .prose,.cpage .legal-doc,.cpage .about-doc{max-width:none;}
.cpage .prose h2{font-size:22px;margin:30px 0 8px;letter-spacing:-.01em;}
.cpage .prose p{color:var(--ink);margin:0 0 12px;}
.cpage .prose .muted{color:var(--muted);}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:24px 0;}
.feat .fc{border:1px solid var(--line-2);border-radius:var(--r-card);padding:20px;background:#fff;}
.feat .fc .ic{width:42px;height:42px;border-radius:11px;background:var(--teal-50);color:var(--teal-d);display:flex;align-items:center;justify-content:center;font-size:22px;}
.feat .fc h3{font-size:16px;margin:13px 0 5px;}
.feat .fc p{font-size:14px;color:var(--muted);margin:0;}
.cband{margin-top:34px;background:var(--sand);border-radius:var(--r-card);padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.cband h2{margin:0 0 4px;font-size:22px;}
.cband p{margin:0;color:var(--muted);}
.cband .acts{display:flex;gap:10px;flex-wrap:wrap;}
.cbtn{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:15px;padding:12px 20px;border-radius:var(--r-btn);text-decoration:none;cursor:pointer;border:none;font-family:inherit;}
.cbtn.pri{background:var(--teal-d);color:#fff;}
.cbtn.pri:hover{background:#085a6f;}
.cbtn.sec{background:#fff;color:var(--ink);border:1px solid var(--line-2);}
.cbtn.sec:hover{border-color:var(--teal);color:var(--teal-d);}
.cbtn:disabled,.cbtn.pri:disabled{background:var(--line-2);color:var(--faint);cursor:not-allowed;}
/* Auth / professional access */
/* Keep the page gutter on the horizontal axis — a bare "padding:.. 0 .." here would override .wrap's gutter
   and glue the card to the screen edges on narrow viewports. */
.authwrap{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:start;padding:36px var(--gutter) 64px;}
@media(max-width:820px){.authwrap{grid-template-columns:1fr;gap:24px;}}
.authwrap .pitch h1{font-size:clamp(26px,3.5vw,38px);line-height:1.14;margin:0 0 14px;letter-spacing:-.01em;}
.authwrap .pitch .lead{font-size:17px;color:var(--muted);margin:0 0 22px;}
.authwrap .pitch .blist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;}
.authwrap .pitch .blist li{display:flex;gap:11px;align-items:flex-start;font-size:15px;}
.authwrap .pitch .blist i{color:var(--teal);font-size:20px;flex:0 0 auto;margin-top:1px;}
.authcard{border:1px solid var(--line-2);border-radius:var(--r-card);box-shadow:var(--shadow-float);padding:26px;background:#fff;}
.authcard h2{font-size:20px;margin:0 0 4px;}
.authcard .sub{font-size:14px;color:var(--muted);margin:0 0 18px;}
.authcard label{display:block;font-size:13px;font-weight:700;color:var(--ink);margin:0 0 6px;}
.authcard .fld{margin-bottom:14px;}
.authcard .frow2{display:flex;gap:12px;}
.authcard .frow2 .fld{flex:1;min-width:0;}
@media(max-width:560px){.authcard .frow2{flex-direction:column;gap:0;}}

/* Quote / enquiry modal (product detail pages) */
.qm[hidden]{display:none;}
.qm [hidden]{display:none !important;} /* hidden must win over the flex/block display set below */
.qm{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;}
.qm-scrim{position:absolute;inset:0;background:rgba(14,42,51,.55);backdrop-filter:blur(2px);}
/* The card carries no padding itself — each state (form wrap / success panel) owns its own inset, so the
   sticky form header can sit flush at the very top of the card with no gap above the title. */
.qm-card{position:relative;background:#fff;border-radius:18px;width:min(480px,100%);max-height:92vh;max-height:92dvh;overflow:auto;box-shadow:0 24px 70px rgba(0,0,0,.34);animation:qm-in .18s ease;}
[data-quote-form-wrap]{padding:0 26px 22px;} /* sides + bottom; the sticky header owns the top spacing */
@keyframes qm-in{from{opacity:0;transform:translateY(10px) scale(.99);}to{opacity:1;transform:none;}}
/* Canonical circular close button (same family as the map-pin close .mapinfo-x) — used across the site. */
.rl-close{flex:none;width:34px;height:34px;border-radius:50%;border:none;background:var(--sand,#F5EFE3);color:var(--ink,#15333D);display:inline-flex;align-items:center;justify-content:center;font-size:17px;line-height:1;cursor:pointer;transition:background .15s;}
.rl-close:hover{background:#ece3d2;} /* only the background tone shifts — the X keeps its colour */
.rl-close:focus-visible{outline:none;box-shadow:0 0 0 2px var(--teal-50,#E2F1F4);}
.qm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
/* Form-state header sticks to the top of the (scrollable) card so the close button is always reachable even
   when the form is taller than the viewport. It sits flush at the card top (small top padding → the title is
   high in the container) and its negative side margins let the white background bleed over the wrap's side
   padding to cover full-width as content scrolls beneath it. No negative TOP margin: a sticky element ignores
   it when painting but still pulls the next element up under the header (which used to clip the product pill).
   The success header (.qm-head-ok) is excluded — its panel is short and aligns its own close button. */
.qm-head:not(.qm-head-ok){position:sticky;top:0;z-index:3;background:#fff;margin:0 -26px 14px;padding:18px 26px 12px;border-radius:18px 18px 0 0;}
/* Success state (.qm-ok) owns its own padding (the card has none). This modifier pulls the close button up
   toward the top-right corner so it sits at a comfortable inset, matching the form header's close. */
.qm-head-ok{justify-content:flex-end;margin:-4px -6px 0 0;}
.qm-title{font-size:21px;font-weight:800;letter-spacing:-.01em;margin:0;color:var(--ink,#15333D);}
.qm-prod{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--teal-d,#0A6E86);background:var(--teal-50,#E2F1F4);border-radius:10px;padding:9px 12px;margin:0 0 16px;font-weight:600;}
.qm-row{display:flex;gap:12px;}
.qm-row .qm-fld{flex:1;}
.qm-fld{margin-bottom:12px;}
.qm-fld label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:var(--ink,#15333D);}
.qm-fld input,.qm-fld textarea{width:100%;font-family:inherit;font-size:15px;padding:12px 13px;border:1px solid var(--line-2,#DCE4E3);border-radius:var(--r-btn,11px);background:#fff;color:var(--ink,#15333D);}
.qm-fld input:focus,.qm-fld textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-50);}
.qm-err{background:#FDECEC;color:#B42318;border:1px solid #F3C0BD;border-radius:10px;padding:9px 12px;font-size:13px;margin-bottom:12px;display:flex;gap:7px;align-items:center;}
.qm-send{width:100%;justify-content:center;display:inline-flex;align-items:center;gap:8px;background:var(--teal-d,#0A6E86);color:#fff;border:none;border-radius:11px;padding:13px;font-weight:700;font-size:15px;font-family:inherit;cursor:pointer;}
.qm-send:hover{background:#085a6f;}
.qm-clear{display:inline-flex;align-items:center;gap:6px;margin:10px auto 0;background:none;border:none;color:var(--muted,#5b6b6e);font-family:inherit;font-size:13px;cursor:pointer;width:auto;}
.qm-clear:hover{color:var(--teal-d,#0A6E86);text-decoration:underline;}
.qm-send.is-loading{opacity:.7;pointer-events:none;}
.qm-ok{text-align:center;padding:22px 24px 26px;}
.qm-ok-ic{font-size:52px;color:#1E7A36;}
.qm-ok h2{font-size:21px;margin:8px 0 6px;color:var(--ink,#15333D);}
.qm-ok p{color:var(--muted,#5b6b6e);margin:0 0 18px;}
/* Mobile bottom-sheet: tighter insets and a smaller title, and the header's top padding drops to 14px so the
   title sits high in the sheet, leaving more room for the inputs. Side margins (-18) match the wrap's side
   padding (18) so the sticky header still bleeds full-width. */
@media(max-width:520px){.qm-card{border-radius:16px 16px 0 0;align-self:flex-end;width:100%;max-height:94vh;max-height:94dvh;}[data-quote-form-wrap]{padding:0 18px 18px;}.qm-head:not(.qm-head-ok){border-radius:16px 16px 0 0;margin:0 -18px 12px;padding:14px 18px 10px;}.qm-ok{padding:18px 18px 22px;}.qm-title{font-size:19px;}.qm-prod{margin:0 0 12px;}.qm{padding:0;align-items:flex-end;}.qm-row{flex-direction:column;gap:0;}}
.authcard input{width:100%;font-family:inherit;font-size:15px;padding:12px 13px;border:1px solid var(--line-2);border-radius:var(--r-btn);background:#fff;color:var(--ink);}
.authcard textarea{width:100%;font-family:inherit;font-size:15px;padding:12px 13px;border:1px solid var(--line-2);border-radius:var(--r-btn);background:#fff;color:var(--ink);resize:vertical;min-height:96px;}
.authcard input:focus,.authcard textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-50);}
.authcard .ferr{display:block;color:var(--rose);font-size:12.5px;font-weight:600;margin-top:5px;}
/* Checkbox group (Groups & MICE services). Checkboxes stay auto-width (not 100% like text inputs). */
.chkgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px;margin-top:2px;}
.authcard .chk{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink);font-weight:500;cursor:pointer;}
.authcard .chk input{width:auto;margin:0;flex:none;accent-color:var(--teal,#137a6f);}
.chk-inline{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:14px;color:var(--ink);cursor:pointer;}
@media(max-width:560px){.chkgrid{grid-template-columns:1fr;}}
.authcard input.input-validation-error,.authcard textarea.input-validation-error{border-color:var(--rose);}
.okstate{text-align:center;padding:14px 6px;display:flex;flex-direction:column;align-items:center;}
.okstate .ok-ic{font-size:46px;color:var(--green);line-height:1;margin-bottom:8px;}
.okstate h2{margin:0 0 6px;}
.okstate .sub{text-align:center;max-width:38ch;margin-left:auto;margin-right:auto;}
.okstate .cbtn{margin-top:16px;}
.okstate .ok-ic.maint{color:var(--gold,#C49A4A);}
.maint-cta{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px;width:100%;}
.maint-cta .cbtn{margin-top:0;flex:1 1 0;min-width:140px;justify-content:center;}
.authcard .cbtn.pri{width:100%;justify-content:center;margin-top:4px;}
.authcard .note{margin-top:16px;font-size:13px;color:var(--muted);background:var(--teal-50);border-radius:11px;padding:11px 13px;}
.authcard .alt{margin-top:14px;font-size:14px;text-align:center;color:var(--muted);}
.legalnote{background:var(--amber-50);border:1px solid var(--amber);color:var(--ink);border-radius:11px;padding:12px 15px;font-size:14px;margin:0 0 22px;}
.legal-doc{max-width:74ch;}
.legal-doc p{margin:0 0 12px;font-size:14.5px;line-height:1.66;color:var(--ink);}
.legal-doc strong,.legal-doc b{color:var(--ink);font-weight:800;}
/* About page — designed value-prop layout. Reuses the home .why-c card so About reads as one system with the
   rest of the site; wider than the 760px legal pages so the card grid has room. */
.cpage.about{max-width:1240px;}
.about-lead{font-size:18px;line-height:1.6;color:var(--muted);margin:14px 0 0;max-width:72ch;}
.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0 42px;}
.about-grid .why-c{background:#fff;border:1px solid var(--line-2);border-radius:var(--r-card);padding:22px;}
.about-grid .why-c .ic{background:var(--teal-50);box-shadow:none;}
.about-where{margin:6px 0 26px;}
.about-where .sh{margin-bottom:16px;}
.about-chips{display:flex;flex-wrap:wrap;gap:9px;}
.about-chips span{background:var(--sand);color:var(--ink);border-radius:var(--r-pill);padding:8px 15px;font-size:13.5px;font-weight:600;}
.about-reg{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--muted);background:var(--teal-50);border-radius:12px;padding:13px 16px;margin:0;}
.about-reg i{color:var(--teal-d);font-size:18px;flex:none;}
/* Closing brand narrative (the "partner in South America" statement from the published About). */
.about-close{margin:8px 0 22px;padding:30px 34px;border-radius:var(--r-card);background:linear-gradient(180deg,var(--sand),#fff);border:1px solid var(--line-2);}
.about-close h2{font-size:clamp(20px,2.4vw,26px);letter-spacing:-.01em;margin:0 0 10px;}
.about-close p{margin:0;font-size:16px;line-height:1.7;color:var(--ink-2,var(--muted));max-width:80ch;}
@media(max-width:900px){.about-grid{grid-template-columns:1fr 1fr;}.about-close{padding:24px 20px;}}
@media(max-width:560px){.about-grid{grid-template-columns:1fr;}}
.faq-doc{max-width:74ch;}
.faq-doc h2{margin:30px 0 12px;}
.faq-q{border:1px solid var(--line-2);border-radius:var(--r-card);margin:0 0 10px;background:#fff;overflow:hidden;}
.faq-q summary{list-style:none;cursor:pointer;padding:15px 46px 15px 18px;font-size:15px;font-weight:700;color:var(--ink);position:relative;}
.faq-q summary::-webkit-details-marker{display:none;}
.faq-q summary::after{content:"\002B";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:20px;font-weight:600;color:var(--teal-d);transition:transform .18s ease;}
.faq-q[open] summary::after{content:"\2212";}
.faq-q summary:hover{color:var(--teal-d);}
.faq-q summary:focus-visible{outline:2px solid var(--teal-d);outline-offset:-2px;}
.faq-q p{margin:0;padding:0 18px 16px;font-size:14.5px;line-height:1.66;color:var(--ink-2,var(--muted));}

/* ---------- Help / FAQ (redesigned: intro note, iconed sections, card accordion, support block) ---------- */
.faqx-note{display:flex;gap:10px;align-items:flex-start;background:var(--teal-50);border:1px solid #cfe6ec;color:var(--teal-d);border-radius:var(--r-card);padding:13px 16px;margin:0 0 28px;font-size:14px;font-weight:600;}
.faqx-note i{font-size:18px;margin-top:1px;flex:0 0 auto;}
.faqx-sec{margin:0 0 30px;}
.faqx-sec-h{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:800;letter-spacing:-.01em;margin:0 0 14px;}
.faqx-ic{width:34px;height:34px;border-radius:10px;background:var(--teal-50);color:var(--teal-d);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.faqx-ic i{font-size:19px;}
.faqx-list{display:flex;flex-direction:column;gap:10px;}
.faqx-q{border:1px solid var(--line-2);border-radius:14px;background:#fff;overflow:hidden;transition:border-color .15s,box-shadow .15s;}
.faqx-q[open]{border-color:#bfe0e8;box-shadow:0 6px 20px rgba(14,110,134,.06);}
.faqx-q summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;justify-content:space-between;padding:16px 18px;font-size:15px;font-weight:700;color:var(--ink);}
.faqx-q summary::-webkit-details-marker{display:none;}
.faqx-q summary:hover{color:var(--teal-d);}
.faqx-q summary:focus-visible{outline:2px solid var(--teal-d);outline-offset:-2px;border-radius:14px;}
.faqx-chev{font-size:18px;color:var(--teal-d);flex:0 0 auto;transition:transform .2s ease;}
.faqx-q[open] .faqx-chev{transform:rotate(180deg);}
.faqx-a{padding:0 18px 17px;}
.faqx-a p{margin:0;font-size:14.5px;line-height:1.7;color:var(--muted);}
.faqx-support{margin-top:36px;border:1px solid var(--line-2);border-radius:var(--r-card);padding:22px 24px;background:var(--sand);}
.faqx-support-h{display:flex;align-items:center;gap:11px;}
.faqx-support-h h2{margin:0;font-size:19px;font-weight:800;}
.faqx-hours{margin:12px 0 16px;display:flex;gap:9px;align-items:flex-start;color:var(--muted);font-size:14.5px;}
.faqx-hours i{color:var(--teal-d);font-size:17px;margin-top:1px;flex:0 0 auto;}
.faqx-chan{display:flex;flex-wrap:wrap;gap:10px;}
.faqx-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line-2);border-radius:var(--r-pill);padding:9px 15px;font-weight:700;font-size:14px;color:var(--ink);transition:border-color .15s,color .15s;}
.faqx-chip i{font-size:17px;color:var(--teal-d);}
.faqx-chip:hover{border-color:var(--teal);color:var(--teal-d);}

@media(max-width:760px){.authwrap{grid-template-columns:1fr;gap:26px;}}

/* ── Auth split-screen (login) ── */
.authpage{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;}
.authpage .brandside{position:relative;background:var(--ink-deep);color:#fff;padding:34px 44px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;}
.authpage .sun{position:absolute;right:-80px;top:-80px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(232,191,125,.5),rgba(232,191,125,0) 70%);}
.authpage .blogo{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:800;position:relative;z-index:1;color:#fff;}
.authpage .blogo .rl-logo{width:30px;height:30px;}
.authpage .bmid{position:relative;z-index:1;}
.authpage .bmid h2{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.12;max-width:16ch;margin-bottom:14px;}
.authpage .bmid p{font-size:15px;color:#AFC6CC;max-width:42ch;}
.authpage .bstats{display:flex;gap:28px;position:relative;z-index:1;flex-wrap:wrap;}
.authpage .bstats .n{font-size:20px;font-weight:800;}
.authpage .bstats .l{font-size:12.5px;color:#9FB6BD;max-width:18ch;}
.authpage .formside{display:flex;align-items:center;justify-content:center;padding:34px;}
.authpage .fcard{width:100%;max-width:392px;}
.authpage .topnav{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);margin-bottom:34px;}
.authpage .topnav .back{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--teal-d);}
.authpage .fcard h1{font-size:25px;font-weight:800;letter-spacing:-.01em;margin-bottom:6px;}
.authpage .fcard .sub{font-size:14px;color:var(--muted);margin-bottom:22px;}
.authpage .field{margin-bottom:15px;}
.authpage .field label{display:block;font-size:12.5px;font-weight:700;color:var(--muted);margin-bottom:6px;}
.authpage .field input{width:100%;font-family:inherit;font-size:15px;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:11px;padding:12px 13px;}
.authpage .field input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-50);}
.authpage .rowflex{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin:-2px 0 16px;}
.authpage .rowflex .rem{display:flex;align-items:center;gap:8px;color:var(--muted);}
.authpage .rowflex .rem input{width:15px;height:15px;accent-color:var(--teal);}
.authpage .rowflex a{color:var(--teal-d);font-weight:700;}
.authpage .enter{width:100%;background:var(--teal-d);color:#fff;border:none;font-family:inherit;font-size:15.5px;font-weight:800;padding:13px;border-radius:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;}
.authpage .enter:hover{background:#085a6f;}
.authpage .enter:disabled,.authpage .gbtn:disabled{background:var(--line-2);color:var(--faint);cursor:not-allowed;}
.authpage .gbtn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line-2);border-radius:11px;padding:12px;font-family:inherit;font-size:14.5px;font-weight:700;color:var(--ink);background:#fff;cursor:pointer;}
.authpage .gbtn i{font-size:20px;color:#4285F4;}
.authpage .gbtn:disabled i{color:var(--faint);}
.authpage .divider{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:12.5px;margin:20px 0;}
.authpage .divider::before,.authpage .divider::after{content:"";flex:1;height:1px;background:var(--line-2);}
.authpage .createbtn{display:block;text-align:center;width:100%;border:1px solid var(--teal-d);color:var(--teal-d);background:#fff;font-family:inherit;font-size:14.5px;font-weight:800;padding:12px;border-radius:11px;}
.authpage .createbtn:hover{background:var(--teal-50);}
.authpage .authnote{margin-top:16px;font-size:13px;color:var(--muted);background:var(--teal-50);border-radius:11px;padding:11px 13px;display:flex;gap:8px;align-items:flex-start;}
.authpage .authnote i{color:var(--teal-d);font-size:17px;flex:0 0 auto;margin-top:1px;}
@media(max-width:820px){.authpage{grid-template-columns:1fr;}.authpage .brandside{display:none;}}

/* ── Registration / agencies page ── */
.reg-hero{background:linear-gradient(180deg,var(--teal-50),#fff);}
.reg-hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:50px var(--gutter) 56px;}
.reg-hero .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-d);background:#fff;border:1px solid var(--line-2);padding:6px 13px;border-radius:var(--r-pill);margin-bottom:16px;}
.reg-pitch h1{font-size:clamp(28px,3.6vw,42px);line-height:1.08;font-weight:800;letter-spacing:-.02em;margin-bottom:14px;}
.reg-pitch .lead{font-size:16px;color:var(--muted);max-width:48ch;margin-bottom:22px;}
.reg-pitch .ulist{display:grid;gap:12px;list-style:none;padding:0;margin:0;}
.reg-pitch .ulist li{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;}
.reg-pitch .ulist i{color:var(--green);font-size:20px;margin-top:1px;flex:0 0 auto;}
.authcard select{width:100%;font-family:inherit;font-size:15px;color:var(--ink);background-color:#fff;border:1px solid var(--line-2);border-radius:var(--r-btn);padding:12px 40px 12px 13px;cursor:pointer;
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230A6E86' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;background-position:right 13px center;background-size:16px;}
.authcard select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-50);}
.authcard .grid2{display:grid;grid-template-columns:1fr 1fr;gap:13px;}
.authcard-alt{text-align:center;font-size:13px;color:var(--muted);margin-top:14px;}
.authcard-alt a{color:var(--teal-d);font-weight:700;}
.reg-sec .wrap,.reg-steps .wrap{padding:50px var(--gutter);}
.reg-sh{text-align:center;margin-bottom:28px;}
.reg-sh h2{font-size:26px;font-weight:800;letter-spacing:-.01em;}
.reg-sh p{font-size:15px;color:var(--muted);margin-top:8px;}
.reg-steps{background:var(--sand);}
.reg-stepg{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.reg-step .n{width:36px;height:36px;border-radius:50%;background:#fff;color:var(--teal-d);font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:11px;border:1px solid var(--line-2);}
.reg-step h3{font-size:15.5px;font-weight:800;margin-bottom:4px;}
.reg-step p{font-size:13.5px;color:var(--muted);}
.reg-trust{border-top:1px solid var(--line);}
.reg-trust .wrap{display:flex;align-items:center;justify-content:center;gap:34px;flex-wrap:wrap;padding:24px var(--gutter);font-size:13.5px;color:var(--muted);}
.reg-trust .b{display:flex;align-items:center;gap:9px;}
.reg-trust .b i{font-size:20px;color:var(--teal);}
@media(max-width:900px){.reg-hero .wrap{grid-template-columns:1fr;gap:30px;}.reg-stepg{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.reg-stepg,.authcard .grid2{grid-template-columns:1fr;}}

/* Cookie-consent banner (shown only when analytics is configured) */
.consent{position:fixed;left:16px;right:16px;bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:1000;max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line-2,#E3E8E7);border-radius:14px;box-shadow:0 10px 40px rgba(20,40,46,.18);padding:16px 18px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.consent p{margin:0;font-size:13.5px;color:var(--muted,#6B7A7E);flex:1;min-width:200px;}
.consent-act{display:flex;gap:8px;margin-left:auto;}
.consent-btn{font-family:inherit;font-size:13.5px;font-weight:600;border-radius:9px;padding:9px 16px;border:none;cursor:pointer;background:var(--teal-d,#0A6E86);color:#fff;}
.consent-btn.ghost{background:#fff;border:1px solid var(--line-2,#E3E8E7);color:var(--muted,#6B7A7E);}
.consent-btn:hover{filter:brightness(1.05);}
.consent[hidden]{display:none;}
