/* UCPlaces 2026 design - shared styles (pages that set $UCP2 = true). Page specific styles live in their own file (e.g. ucp-home.css). */
@font-face{font-family:Montserrat;font-style:normal;font-weight:500 800;font-display:swap;src:url(../fonts/montserrat-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* 2026-11-10 contrast (Lighthouse): --blue-d was #1d9bd6 (3.1:1 as text on white); new --blue-a (solid blue behind white text, was --blue #35b6ec 2.3:1), --green-a (buy buttons, was --green 2.7:1), --orange-t (orange text, was --orange 2.2:1) */
:root{--blue:#35b6ec;--blue-d:#0b6fa4;--blue-a:#177bb0;--green-a:#0e8a00;--orange-t:#a85100;--navy:#0b2a5b;--green:#16b800;--green-d:#0f9300;--tint:#e8f4fd;--tint2:#cfe9fb;--mint:#e6f7ea;--orange:#f59a23;--ink:#1b2438;--mut:#5d6b82;--line:#dbe6f0;--bg:#fff}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:Montserrat,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-size:16px}
a{color:var(--blue-d);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.ti{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* buttons */
.btn{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;border-radius:999px;font-weight:700;font-size:15px;padding:11px 22px;border:2px solid transparent;cursor:pointer;font-family:inherit}
.btn.g{background:var(--green-a);color:#fff;box-shadow:0 6px 18px rgba(22,184,0,.28)}.btn.g:hover{background:#0c7c00;text-decoration:none}
.btn.b{background:var(--blue-a);color:#fff}.btn.o{background:#fff;border-color:var(--ink);color:var(--ink)}.btn.o:hover{background:var(--ink);color:#fff;text-decoration:none}
.btn.lg{padding:16px 34px;font-size:18px}.btn.sm{padding:8px 16px;font-size:13px}
.badges{display:flex;gap:12px;justify-content:center;margin-top:26px;flex-wrap:wrap}
.store{display:flex;align-items:center;gap:10px;background:#0b0f1a;color:#fff;border-radius:12px;padding:8px 16px;font-size:11px;line-height:1.2}.store b{display:block;font-size:16px}.store:hover{text-decoration:none}
/* header */
header.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;gap:22px;height:68px}
.logo{display:flex;align-items:center;flex:none}.logo img.full{width:auto;height:36px;max-width:none}
nav.main{display:flex;gap:4px;margin-left:12px}
nav.main>a,details.dd>summary{white-space:nowrap;color:var(--ink);font-weight:600;font-size:14px;padding:8px 12px;border-radius:999px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px}
details.dd>summary::-webkit-details-marker{display:none}
nav.main>a:hover,nav.main>a.on,details.dd[open]>summary,details.dd>summary:hover{background:var(--tint);text-decoration:none;color:var(--blue-d)}
nav.main details.dd>summary::after{content:"";border:4px solid transparent;border-top-color:currentColor;margin-top:4px}
details.dd{position:relative}
details.dd .menu{position:absolute;top:calc(100% + 6px);left:0;min-width:230px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 34px rgba(11,42,91,.16);padding:8px;display:flex;flex-direction:column;z-index:60}
details.dd .menu a{color:var(--ink);font-weight:600;font-size:14px;padding:9px 12px;border-radius:10px}details.dd .menu a:hover{background:var(--tint);text-decoration:none;color:var(--blue-d)}
details.me .menu{left:auto;right:0;min-width:180px}.me .user-profile{width:30px;height:30px;border-radius:50%;object-fit:cover}.me .user-name{max-width:110px;overflow:hidden;text-overflow:ellipsis}
.sp{flex:1}.ghost{white-space:nowrap;font-weight:600;font-size:14px;color:var(--ink)}
.hstore{flex:none}.hstore img{height:31px;width:auto}
@media(max-width:1519px){.hstore{display:none}}/* 2026-11-10 was 1429px: at 1440px wide (a 15px scrollbar leaves 1425px) the header with the store badges overflowed and the page scrolled sideways */
.burger{display:none;border:0;background:var(--tint);color:var(--navy);width:44px;height:44px;border-radius:50%;font-size:22px;cursor:pointer}
@media(max-width:960px){.logo img.full{height:38px}}
@media(max-width:860px){
 header .wrap{height:60px;gap:10px}.burger{display:block}.ghost{display:none}header .btn.o{display:none}.hstore{display:none}
 nav.main{display:none;position:absolute;top:100%;left:0;right:0;margin:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:10px 20px 16px;box-shadow:0 14px 30px rgba(11,42,91,.12)}
 nav.main.open{display:flex}
 details.dd .menu{position:static;box-shadow:none;border:0;padding:0 0 6px 14px;min-width:0}
 .me .user-name{display:none}
}
/* flash messages (session: failed / error / message) */
.flash{position:relative;max-width:1180px;margin:14px auto;padding:14px 48px 14px 18px;border-radius:14px;font-weight:600;font-size:15px}
.flash.warn{background:#fff4e0;color:#7a4a00;border:1px solid #f5d9a6}.flash.ok{background:var(--mint);color:#0e5c1a;border:1px solid #bfe6c7}
.flash .x{position:absolute;right:12px;top:8px;border:0;background:none;font-size:26px;line-height:1;color:inherit;cursor:pointer}
/* partner branded strips (header / footer); data from cross_site_header_code.inc */
.aff-strip{border-bottom:1px solid #eee;padding:6px 0}.aff-bottom{border:0;border-top:1px solid #eee;padding:7px 0}
.aff-center{text-align:center;margin:5px 0}.aff-slogan{margin:5px 0}
.aff-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.aff-link{display:contents}
.aff_logo img,.aff_banner img{width:auto;height:auto;max-height:64px;margin:0 10px}.aff_banner{flex:1;text-align:right}
.slogan_wrapper{flex:1;text-align:center}.aff_slogan{font-size:1.5em}
@media(max-width:800px){.aff_logo img,.aff_banner img{max-height:40px;margin:0}.aff_slogan{font-size:1.1em}}
@media(max-width:400px){.aff_logo img,.aff_banner img{max-height:35px}.aff_slogan{font-size:1em}}
/* footer: gradient + light inline-SVG skyline (::before) and dotted route with pins (::after), no image request */
footer{position:relative;overflow:hidden;isolation:isolate;color:#c9d8ee;padding:46px 0 96px;font-size:14px;background:linear-gradient(160deg,#0b2a5b 0%,#12408a 55%,#1d77c9 120%)}
footer a{color:#fff}
footer .fg{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
footer .fg>div:first-child p{font-size:15px;color:#dbe7f7;margin-top:12px}
footer .badges{justify-content:flex-start}footer .badges .store{display:flex;padding:8px 16px}/* 2026-11-10 the footer link rule ".fg a{display:inline-block;padding:3px 0}" (below) removed the badge padding */
footer .ti{width:15px;height:15px;vertical-align:-2px;margin-right:2px}
footer .logo img.full.flogo{height:auto;width:210px;max-width:70vw;filter:drop-shadow(0 4px 14px rgba(0,0,0,.28))}
footer .fleg{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:28px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18);font-size:13px}footer .fleg a{color:#c9d8ee}
footer .tourcity{float:none;background:none;border-radius:0;margin:0 0 30px;padding:0 0 22px;line-height:inherit;border-bottom:1px solid rgba(255,255,255,.18)}footer .tourcity .tourcity-list li{float:none;list-style:none;margin:0;padding:0;min-height:0}footer .tourcity>p{color:#fff}/* 2026-11-08 reset the legacy .tourcity box (grey bg, floats, bullets) on legacy-styled pages that use the new footer */footer .tourcity>p{color:#fff;font-weight:700;margin-bottom:8px}
footer .tourcity-list{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:12.5px;line-height:1.7}footer .tourcity-list li{display:inline}footer .tourcity-list .country{margin-left:0;flex-basis:auto}footer .tourcity-list a{color:#c9d8ee}footer .tourcity-list .country a{color:#fff}
@media(max-width:860px){footer{padding-bottom:110px}footer::before{height:64px;background-size:420px 64px}footer .fg{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px}footer .fg>div:first-child{grid-column:1/-1}footer .logo img.full.flogo{width:180px}}
footer::before{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;z-index:-1;opacity:.16;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 90' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0 90V62h24V40h18v22h14V50h10V30h14v20h16V58h22V34l14-14 14 14v24h20V46h18V26h16v20h14V60h26V42h16V18h18v24h12v20h24V52h18V36h14v16h22V44h16V30h20v14h18v18h22V50h18V38h14v20h28V46h20V28h16v18h12v16h26V54h18V62H600V90z'/%3E%3C/svg%3E") bottom center/600px 90px repeat-x}
footer::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.22;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 260' preserveAspectRatio='xMidYMid slice'%3E%3Cpath d='M-20 210C120 120 220 250 360 160S560 40 680 120 840 190 930 70' fill='none' stroke='%23fff' stroke-width='3' stroke-dasharray='2 12' stroke-linecap='round'/%3E%3Cg fill='%2339b6ee'%3E%3Cpath d='M360 160c-9-12-15-19-15-27a15 15 0 0 1 30 0c0 8-6 15-15 27z'/%3E%3Cpath d='M680 120c-9-12-15-19-15-27a15 15 0 0 1 30 0c0 8-6 15-15 27z'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Ccircle cx='360' cy='133' r='5'/%3E%3Ccircle cx='680' cy='93' r='5'/%3E%3C/g%3E%3C/svg%3E") center/cover no-repeat}
/* tour cards, grid and filter chips (shared by all pages) */
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:22px;scrollbar-width:none}
.chip{white-space:nowrap;border-radius:999px;padding:9px 18px;font-weight:700;font-size:14px;background:var(--tint);color:var(--blue-d);border:0;cursor:pointer;font-family:inherit}
.chip.on{background:var(--blue);color:#fff}
.chip.w{background:var(--mint);color:#1b8a3a}
.chip.k{background:#fff1de;color:#c06a00}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 4px 16px rgba(11,42,91,.06);transition:.2s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(11,42,91,.14)}
.ph{position:relative;aspect-ratio:16/10;background-size:cover;background-position:center}
.ph .mode{position:absolute;left:12px;top:12px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;font-size:19px}
.ph .tag{position:absolute;right:12px;top:12px;background:rgba(11,42,91,.78);color:#fff;font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px}
.ph .fav{position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:50%;background:#fff;display:grid;place-items:center;color:#e24;font-size:16px}
.card .bd{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12.5px;font-weight:600;color:var(--mut)}
.meta span{background:var(--tint);padding:3px 10px;border-radius:999px}
.card h3{font-size:16.5px;line-height:1.35;color:var(--navy)}
.card p{font-size:13.5px;color:var(--mut)}
.by{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--mut);margin-top:auto;padding-top:8px;border-top:1px dashed var(--line)}
.av{width:26px;height:26px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}
.price{font-weight:800;color:var(--navy)}
.pill{background:#e6f7ea;color:#177a32;font-size:11px;padding:2px 9px;border-radius:999px;font-weight:700}
.ex .av{width:60px;height:60px;font-size:22px;margin:0 auto 10px}
@media(max-width:720px){
.chips{margin:0 -16px 18px;padding:0 16px 6px}
.chip{padding:11px 18px;min-height:44px}
.grid{grid-template-columns:1fr}
}
.ex .av{width:40px;height:40px;border-radius:50%;font-size:15px;margin:0;flex:none}
.ph .mode{background:var(--blue);box-shadow:0 2px 10px rgba(0,30,80,.25)}
.ph .mode img{width:22px;height:22px;display:block}
.card[hidden]{display:none}
.card .dist{font-weight:700;color:var(--blue-d)}
.grid.latestg{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.lcard .ph{display:block}
.lcard h3{font-size:15.5px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card .facts{display:flex;flex-wrap:wrap;gap:6px}
.card .facts span{background:var(--tint);color:var(--blue-d);font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px}
.lcard .ft{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:6px}
.lcard .ft b{font-size:18px;color:var(--navy)}
.lcard .ft a{font-size:13px;font-weight:700;color:var(--blue-d)}
.lcard:hover .ft a{text-decoration:underline}
@media(max-width:1000px){
.grid.latestg{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
.grid.latestg{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:14px;padding-bottom:14px}
.grid.latestg .card{flex:0 0 78%;scroll-snap-align:start}
}
.ph img.pimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph .mode,.ph .tag,.ph .fav{z-index:1}
.lcard .hot{position:absolute;left:12px;bottom:12px;background:#ffb300;color:#3a2600;font-weight:800;font-size:12px;padding:5px 10px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.lcard .ph{position:relative}
a.ph{display:block}
@media(min-width:1430px){.wrap,.flash{max-width:1290px}}
@media(min-width:1600px){.wrap,.flash{max-width:1440px}}
h2.sec{font-size:30px;color:var(--navy);letter-spacing:-.5px;font-weight:800;margin-bottom:6px}
.lead{color:var(--mut);margin-bottom:24px;max-width:720px}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}
@media(max-width:720px){h2.sec{font-size:24px}}
.card{position:relative}.card h3 a.sl{color:inherit}.card h3 a.sl::after{content:"";position:absolute;inset:0;z-index:1}
.card .bd>a,.card .ft a{position:relative;z-index:2}
.busy{position:absolute;inset:0;border-radius:inherit;background:rgba(255,255,255,.75);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:50;cursor:progress;font-weight:700;color:var(--navy)}
.busy[hidden]{display:none}.busy.pg{position:fixed;border-radius:0;z-index:200}
.spin{width:38px;height:38px;border:4px solid var(--tint2);border-top-color:var(--blue);border-radius:50%;animation:ucpspin .8s linear infinite}
@keyframes ucpspin{to{transform:rotate(360deg)}}
.lcard p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13.5px;color:var(--mut)}
.grid.listg{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media(max-width:1000px){.grid.listg{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.grid.listg{grid-template-columns:1fr}.phero{padding:22px 0 32px}}
.pager{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:36px 0 0}
.pager a,.pager span{min-width:42px;height:42px;display:grid;place-items:center;border-radius:12px;padding:0 12px;font-weight:700;border:1px solid var(--line);color:var(--navy);background:#fff}
.pager a:hover{background:var(--tint);text-decoration:none}.pager .on{background:var(--blue);color:#fff;border-color:var(--blue)}.pager .dis{opacity:.4}
.sec0{padding:40px 20px 56px}
.search{display:flex;align-items:center;background:#fff;border-radius:999px;padding:8px 8px 8px 24px;max-width:680px;margin:0 auto;box-shadow:0 14px 40px rgba(0,40,90,.3)}
.search input{flex:1;border:0;outline:0;font:600 16px 'Montserrat',system-ui,sans-serif;color:var(--ink);background:transparent}
.search .go{width:48px;height:48px;border:0;padding:0;cursor:pointer;border-radius:50%;background:var(--blue);display:grid;place-items:center;color:#fff}.search .go svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:720px){
.search{padding:6px 6px 6px 16px}
.search input{min-width:0}
.search .go{width:46px;height:46px}
}
.phero .search.sform{margin:22px 0 0;max-width:680px}
.sfil{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-bottom:26px;padding:12px 16px;background:var(--tint);border-radius:18px}
.sfil .rescount{color:var(--navy);margin-right:auto}
.sfil label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.4px}
.sfil select{border:1px solid var(--line);border-radius:999px;padding:7px 12px;font:600 14px Montserrat,system-ui,sans-serif;background:#fff;color:var(--ink);text-transform:none;letter-spacing:0}
.sintro{margin:0 0 26px;max-width:980px;font-size:15px}
.faq details{border:1px solid var(--line);border-radius:16px;padding:2px 18px;margin-bottom:10px;background:#fff}
.faq summary{font-weight:700;padding:14px 0;cursor:pointer;color:var(--navy);list-style:none;display:flex;justify-content:space-between}
.faq summary:after{content:"+";color:var(--blue);font-size:22px;font-weight:800}
.faq details[open] summary:after{content:"–"}
.faq details p{color:var(--mut);padding-bottom:12px}
.benef{padding-top:26px;padding-bottom:0}.benef ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.benef li{display:flex;align-items:center;gap:10px;background:var(--tint);border-radius:16px;padding:13px 16px;font-weight:700;font-size:14.5px;color:var(--navy)}
.benef li::before{content:"";flex:none;width:20px;height:20px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/13px no-repeat}
@media(max-width:900px){.benef ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.benef ul{grid-template-columns:1fr}}
/* page header, version 4 "white editorial" (2026-11-06): white band, blue-green accent bar, route line */
.phero{background:#fff;color:var(--navy);border-bottom:1px solid var(--line);padding:30px 0 36px;position:relative;overflow:hidden}
.phero .wrap{position:relative;padding-left:34px}
.phero .wrap::before{content:"";position:absolute;left:20px;top:2px;bottom:2px;width:6px;border-radius:6px;background:linear-gradient(180deg,var(--blue),var(--green))}
.phero .wrap::after{content:"";position:absolute;right:20px;top:6px;width:300px;height:110px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 120'%3E%3Cpath d='M5 100C60 100 70 30 125 40S190 100 240 70 300 20 315 25' fill='none' stroke='%2335b6ec' stroke-width='4' stroke-dasharray='2 10' stroke-linecap='round'/%3E%3Ccircle cx='5' cy='100' r='8' fill='%2316b800'/%3E%3Ccircle cx='315' cy='25' r='8' fill='%23e24'/%3E%3C/svg%3E") center/contain no-repeat;opacity:.9;pointer-events:none}
@media(max-width:1000px){.phero .wrap::after{display:none}}
.phero .crumbs{font-size:13px;color:var(--mut);margin-bottom:12px}.phero .crumbs a{color:var(--blue-d);text-decoration:underline;text-underline-offset:2px}   /* 2026-11-10 links inside text must not rely on colour alone */
.phero h1{font-size:clamp(21px,2.4vw,29px);line-height:1.15;font-weight:800;letter-spacing:-.6px;max-width:900px;color:var(--navy)}.phero h1 b{color:var(--blue-d)}
.phero h2.intro{font-size:13px;font-weight:500;line-height:1.6;max-width:900px;margin-top:12px;color:var(--mut);letter-spacing:0}
.phero .chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.phero .chips span{background:var(--tint);color:var(--blue-d);font-weight:700;font-size:12.5px;border-radius:999px;padding:5px 13px}
.phero .search.sform{box-shadow:0 8px 26px rgba(11,42,91,.14);border:1px solid var(--line)}
/* inline login / sign up panel */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
#authdlg{position:fixed;top:88px;left:50%;transform:translateX(-50%);margin:0;max-height:calc(100vh - 108px);overflow:auto;border:0;border-radius:26px;padding:26px 28px 22px;width:min(440px,94vw);box-shadow:0 30px 80px rgba(11,42,91,.4);color:var(--ink);font-family:Montserrat,system-ui,sans-serif}
/* 2026-11-10 phones: the panel opens higher (88px -> 16px from the top, under the keyboard-friendly area) and is taller / roomier */
@media(max-width:720px){#authdlg{top:16px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);min-height:min(540px,calc(100dvh - 32px));padding:34px 22px 28px}}
#authdlg::backdrop{background:rgba(11,42,91,.55);backdrop-filter:blur(3px)}
.adx{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:30px;line-height:1;color:var(--mut);cursor:pointer}
.atabs2{display:grid;grid-template-columns:1fr 1fr;background:var(--tint);border-radius:999px;padding:4px;margin:6px 28px 18px 0}.atabs2 button{border:0;background:transparent;border-radius:999px;padding:10px;font:700 14px Montserrat,system-ui,sans-serif;color:var(--blue-d);cursor:pointer}
.atabs2 button[aria-selected=true]{background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(11,42,91,.16)}
.af[hidden]{display:none}.af label{display:block;font-size:13px;font-weight:700;color:var(--navy);margin:12px 0 5px}.af label small{font-weight:500;color:var(--mut)}
.af input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:500 15px Montserrat,system-ui,sans-serif}.af input:focus{outline:3px solid rgba(53,182,236,.35);border-color:var(--blue)}
.af .btn{width:100%;justify-content:center;margin-top:16px}.af .btn.ld{opacity:.7;cursor:progress}.alinks{margin:8px 0 0;text-align:right;font-size:13px}
.amsg{margin:0 0 6px;padding:10px 14px;border-radius:12px;background:#fdecec;color:#a11;font-weight:600;font-size:13.5px}.amsg.ok{background:#e6f7ea;color:#0e5c1a}.amsg[hidden]{display:none}
.aor{display:flex;align-items:center;gap:12px;margin:18px 0 12px;color:var(--mut);font-size:12.5px}.aor::before,.aor::after{content:"";flex:1;height:1px;background:var(--line)}
.asoc{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;min-height:44px}.asoc .btn{padding:9px 20px}
.asoc #fbbtn{height:40px;box-sizing:border-box;padding:0 22px;border:1px solid #1877f2;border-radius:999px;background:#fff;color:#1877f2;font:500 14px Roboto,Arial,sans-serif;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}.asoc #fbbtn:hover{background:#f0f6ff}
.aterms{margin:14px 0 0;font-size:12px;color:var(--mut);text-align:center}.aterms a{font-weight:600}
/* 2026-11-07 "Purchased on" pill on the Purchased tab cards */
.lcard .own{display:inline-flex;align-items:center;gap:6px;background:#e6f7ea;color:#1b8a3a;font-weight:700;font-size:12.5px;border-radius:999px;padding:5px 12px}
/* 2026-11-07 inline purchase dialog (master-layout/partials/paydlg) */
#paydlg{position:fixed;top:72px;left:50%;transform:translateX(-50%);margin:0;max-height:calc(100vh - 92px);overflow:auto;border:0;border-radius:26px;padding:26px 28px 24px;width:min(480px,94vw);box-shadow:0 30px 80px rgba(11,42,91,.4);color:var(--ink);font-family:Montserrat,system-ui,sans-serif}
#paydlg::backdrop{background:rgba(11,42,91,.55);backdrop-filter:blur(3px)}
.pdk{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--mut)}
.pds{display:flex;gap:14px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line)}.pds img{width:72px;height:72px;border-radius:14px;object-fit:cover;flex:none}
.pdt{flex:1;min-width:0}.pdt h2{margin:0;font-size:15.5px;line-height:1.3;color:var(--navy);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pdc{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px;font-size:12px;color:var(--mut)}
.pdp{text-align:right;flex:none}.pdp b{display:block;font-size:22px;color:var(--navy)}.pdp s{display:block;font-size:13px;color:var(--mut)}
.pdi{margin:12px 0 0;padding:10px 12px;background:var(--tint);border-radius:12px;font-size:12.5px;color:var(--mut);line-height:1.5}.pdi span+span::before{content:"\00b7";margin:0 8px}.pdi p{margin:4px 0 0}
#paydlg form{margin-top:16px}#paydlg label{display:block;font-size:13px;font-weight:700;color:var(--navy);margin:0 0 6px}
#card-element{border:1px solid var(--line);border-radius:12px;padding:14px}.StripeElement--focus{outline:3px solid rgba(53,182,236,.35);border-color:var(--blue)}
.pde{color:#c22;font-size:12.5px;margin:6px 0 0;min-height:0}.pde:empty{display:none}
#paydlg #paybtn,#paydlg #payfull{width:100%;justify-content:center;margin-top:16px}#paydlg [hidden]{display:none!important}
.pdl{border:0;background:none;padding:0;color:var(--blue-d);font:700 13px Montserrat,system-ui,sans-serif;cursor:pointer;text-decoration:underline;margin-bottom:12px}
.pdcp{display:flex;gap:8px;margin-bottom:6px}.pdcp input{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:500 14px Montserrat,system-ui,sans-serif}
.pdn{margin:0 0 12px;padding:8px 12px;border-radius:10px;font-size:13px;font-weight:600}.pdn.ok{background:#e6f7ea;color:#0e5c1a}.pdn.bad{background:#fdecec;color:#a11}
/* card brands next to the card label in the purchase dialog */
.pdh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.pdh label{margin:0!important}.pdlogos{display:flex;gap:5px;flex:none}.pdlogos svg{display:block}
/* 2026-11-07 mobile: AI assistant (Chatbase) bubble 30% smaller; items of mobile horizontal rails that are revealed on scroll (see data-lazy in the homepage script) */
@media(max-width:720px){
#chatbase-bubble-button{transform:scale(.7)!important;transform-origin:bottom right!important}
.lzh{display:none!important}
}
/* 2026-11-07 phones: clamped text blocks (see scripts2.blade.php) */
@media(max-width:720px){
.clmp:not(.open){max-height:var(--ch);overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.clmpbtn{display:inline-block;margin:6px 0 10px;border:1px solid var(--line);background:#fff;color:var(--blue-d);font:700 13px Montserrat,system-ui,sans-serif;border-radius:999px;padding:7px 16px;cursor:pointer}
footer .clmpbtn{background:transparent;color:#fff;border-color:rgba(255,255,255,.4);margin-top:2px}
}
/* 2026-11-07 mobile header: logo 10% smaller, logo and menu button on the same centre line */
@media(max-width:860px){
.logo img.full{height:34px}
header .wrap{align-items:center}
.logo,.burger{align-self:center}
}
@media(max-width:860px){
.logo img.full{position:relative;top:3px}
}
@media(max-width:720px){h2.sec{font-size:20px}}
/* 2026-11-07 mobile: a select is as wide as its longest option (long category names pushed the page wider); let it shrink to the row */
@media(max-width:720px){
.sfil label{max-width:100%;min-width:0}
.sfil select{min-width:0;max-width:100%;flex:1 1 auto;text-overflow:ellipsis}
.sfil label:nth-of-type(2),.sfil label:nth-of-type(3){flex:1 1 100%}
}
@media(max-width:720px){
.sfil select{flex:0 1 auto}
.sfil label:nth-of-type(2) select,.sfil label:nth-of-type(3) select{flex:1 1 auto}
}
/* 2026-11-07 mobile: the user menu (profile icon) is not part of the burger nav; the nav rule made every dropdown static, which pushed this one out of the header */
@media(max-width:860px){
details.me .menu{position:absolute;top:calc(100% + 8px);left:auto;right:0;min-width:190px;padding:8px;border:1px solid var(--line);box-shadow:0 14px 34px rgba(11,42,91,.16)}
}
/* 2026-11-07 phones: "create a tour" is secondary (the studio needs a computer) + the notice dialog */
.deskonly{display:none}
.cdlg{border:0;border-radius:20px;padding:22px 20px;max-width:min(92vw,380px);box-shadow:0 20px 60px rgba(11,42,91,.35);color:var(--ink)}
.cdlg::backdrop{background:rgba(8,24,54,.55)}
.cdlg h2{font-size:18px;color:var(--navy);margin:0 0 8px;line-height:1.3}
.cdlg p{font-size:14px;color:var(--mut);margin:0 0 14px}
.cdlg .cb{display:flex;flex-wrap:wrap;gap:8px}
.cdlg .cx{background:transparent;color:var(--mut);border-color:transparent}
.cdlg .cmsg{margin:12px 0 0;color:#0e5c1a;font-weight:600;word-break:break-all}
@media(max-width:720px){
.deskonly{display:block;flex-basis:100%;margin-top:10px;color:var(--mut);font-size:12.5px}
a.btn.g[href$="/tour/create"]{background:#fff;color:var(--ink);border-color:var(--line);box-shadow:none}
a.btn.g[href$="/tour/create"]:hover{background:var(--tint)}
}
.cdlg[open]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;width:min(92vw,380px)}

/* 2026-11-08 phones: the menu button stays at the far right when the logged-in avatar shows (avatar sits just left of it) */
@media(max-width:860px){header .wrap>.burger{order:9;margin-left:auto}header .wrap>details.me{order:8;margin-left:auto}header .wrap:has(>details.me)>.burger{margin-left:0}}
@media(max-width:860px){header .wrap>details.me>summary{padding:8px 0}header .wrap:has(>details.me)>.burger{margin-left:-4px}}
@media(max-width:860px){header .wrap>details.me>summary{gap:0}header .wrap>details.me .user-profile{margin:0!important}}
/* 2026-11-10 phones, logged out: orange "Sign up" in the bar (left of the menu button) + a sign up / log in block at the top of the opened menu */
.hsign,.mauth{display:none}
@media(max-width:860px){
.hsign{display:inline-flex;align-items:center;order:8;margin-left:auto;white-space:nowrap;background:none;border:2px solid #444a55;color:#444a55;font-weight:800;font-size:14px;padding:7px 16px;border-radius:999px}   /* 2026-11-10 outline style (was solid orange with white text) */
.hsign:hover{color:#444a55;background:#eef0f3;text-decoration:none}
header .wrap:has(>.hsign)>.burger{margin-left:0}
.mauth{display:block;text-align:center;padding:6px 0 14px;margin-bottom:6px;border-bottom:1px solid var(--line)}
nav.main .mauth a.msign{display:block;width:70%;max-width:240px;margin:0 auto;background:var(--orange);color:#fff;font-weight:800;font-size:15px;padding:10px;border-radius:999px;box-shadow:0 3px 10px rgba(245,154,35,.45)}
.mauth p{margin:10px 0 0;font-size:13.5px;color:var(--mut)}
.mauth .mlog{margin-top:8px;font-size:14px}
nav.main .mauth .mlog a{display:inline;padding:0;font-weight:800;color:var(--blue-d)}
}
@media(max-width:360px){.hsign{padding:8px 14px;font-size:13px}}
/* 2026-11-08 user menu: Purchased / Favorites / My tours with counts (same numbers as the account page tabs) */
details.me .menu{min-width:220px}
details.me .menu a.mi{display:flex;align-items:center;gap:9px}
details.me .menu a.mi .ti{width:17px;height:17px;color:var(--blue-d)}
details.me .menu a.mi small{margin-left:auto;background:var(--tint);color:var(--blue-d);border-radius:999px;padding:0 8px;font-size:12px;font-weight:700;line-height:20px;min-width:22px;text-align:center}
details.me .menu .sep{display:block;height:1px;background:var(--line);margin:6px 4px}
@media(max-width:860px){details.me .menu{min-width:230px}details.me .menu a{padding:12px 12px}}
/* 2026-11-10 phones: footer links were 15-18px tall (tap target minimum 24px) */
footer .fg a,footer .fleg a{display:inline-block;padding:3px 0}footer .tourcity-list{line-height:24px;row-gap:0}footer .clmpbtn{margin-top:8px}   /* 2026-11-10 all widths (the desktop audit flagged them too; was phones only). city links: a 24px row pitch keeps them tappable without changing the link boxes (the show-all clamp measures line-height) */
