/* City pages (CityPageGenerator.js), guide pages (SeoPageGenerator.js), index and country pages (HubPageGenerator.js). Prefix lx-. Barlow text, Playfair titles, brand blue #3F8BA3, paper #F5F4F0. */
.lx { --ink:#0B1C21; --ink-2:#3a4b51; --mut:#66767b; --acc:#3F8BA3; --acc-d:#2F6F84; --acc-l:#7fc3d6; --paper:#F5F4F0; --card:#fff;
      --line:rgba(11,28,33,.1); --dark:#0C1417; --r:16px; --gut:clamp(20px,4vw,48px);
      font-family:Barlow,'Helvetica Neue',Arial,sans-serif; color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased; }
.lx *, .lx *::before, .lx *::after { box-sizing:border-box; }
.lx a { color:inherit; }
.lx h1, .lx h2, .lx h3 { font-family:'Playfair Display',Georgia,serif; font-weight:400; line-height:1.12; margin:0; color:inherit; }
.lx h1 em, .lx h2 em { font-style:italic; color:var(--acc); }
.lx p { margin:0; }
.lx-kicker { font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--acc-d); margin-bottom:.8rem !important; }

/* hero */
.lx-hero { position:relative; min-height:min(88vh,760px); display:flex; align-items:flex-end; color:#fff; overflow:hidden; background:var(--dark); }
.lx-hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.04); animation:lx-zoom 18s ease-out forwards; }
@keyframes lx-zoom { to { transform:scale(1); } }
.lx-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,20,23,.55) 0%,rgba(12,20,23,.15) 60%,rgba(12,20,23,0) 100%),linear-gradient(180deg,rgba(12,20,23,.2) 0%,rgba(12,20,23,.3) 40%,rgba(12,20,23,.92) 100%); }
.lx-hero-in { position:relative; z-index:1; width:100%; max-width:1180px; margin:0 auto; padding:120px var(--gut) 44px; }
.lx-crumbs { text-shadow:0 1px 8px rgba(0,0,0,.4); display:flex; gap:.5rem; flex-wrap:wrap; font-size:.85rem; opacity:.85; margin-bottom:1.4rem; }
.lx-crumbs a { text-decoration:none; border-bottom:1px solid rgba(255,255,255,.35); }
.lx-crumbs a:hover { border-color:#fff; }
.lx-crumbs b { font-weight:600; }
.lx-eyebrow { font-size:.8rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#fff; opacity:.85; margin-bottom:.9rem !important; }
.lx-hero h1 { font-size:clamp(2.6rem,6.4vw,5.2rem); max-width:13ch; }
.lx-hero h1 em { display:block; font-size:.5em; color:#fff; opacity:.92; margin-top:.5rem; }
.lx-lead { max-width:58ch; font-size:clamp(1.02rem,1.4vw,1.18rem); line-height:1.6; margin-top:1.3rem !important; color:rgba(255,255,255,.9); }
.lx-hero-actions { display:flex; flex-wrap:wrap; gap:14px 22px; align-items:center; margin-top:2rem; }
.lx-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); max-width:620px; margin:2.4rem 0 0; border-top:1px solid rgba(255,255,255,.2); }
.lx-stats div { padding:1rem 0 0; }
.lx-stats dt { font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; opacity:.7; }
.lx-stats dd { margin:.2rem 0 0; font-family:'Playfair Display',Georgia,serif; font-size:clamp(1.6rem,3vw,2.2rem); }

/* players */
.lx-play { display:inline-flex; align-items:center; gap:12px; border:0; background:none; color:inherit; font:inherit; cursor:pointer; padding:0; text-align:left; }
.lx-play-ring { --p:0; position:relative; flex:none; width:52px; height:52px; border-radius:50%; display:grid; place-items:center;
  background:conic-gradient(var(--acc) calc(var(--p)*1%), rgba(255,255,255,.22) 0); transition:transform .2s; }
.lx-play-ring::before { content:""; position:absolute; inset:3px; border-radius:50%; background:#fff; }
.lx-play-ring svg { position:relative; width:20px; height:20px; fill:var(--ink); }
.lx-play .i-pause { display:none; }
.lx-play.is-playing .i-play { display:none; }
.lx-play.is-playing .i-pause { display:inline; }
.lx-play:hover .lx-play-ring { transform:scale(1.06); }
.lx-play-txt { display:flex; flex-direction:column; line-height:1.25; }
.lx-play-txt b { font-weight:600; font-size:.98rem; }
.lx-play-txt small { font-size:.8rem; opacity:.75; max-width:32ch; }
.lx-play.is-broken { opacity:.45; pointer-events:none; }
.lx-play-hero .lx-play-ring { width:60px; height:60px; }
.lx-play-sm { margin:.2rem 0 1rem; color:var(--ink); }
.lx-play-sm .lx-play-ring { width:40px; height:40px; background:conic-gradient(var(--acc) calc(var(--p)*1%), rgba(11,28,33,.12) 0); }
.lx-play-sm .lx-play-ring::before { background:var(--ink); }
.lx-play-sm .lx-play-ring svg { fill:#fff; width:15px; height:15px; }
.lx-play-sm b { font-size:.88rem; }

/* timeline under every play button (added by city-page.js) */
.lx-player { display:flex; flex-direction:column; gap:6px; min-width:0; }
.lx-player .lx-play-sm { margin-bottom:0; }
.lx-tl { --ring:40px; display:flex; align-items:center; gap:10px; padding-left:calc(var(--ring) + 12px); max-width:360px; margin-bottom:1rem; }
.lx-player-hero .lx-tl { --ring:60px; margin-bottom:0; max-width:none; }
.lx-tl-bar { position:relative; flex:1; min-width:110px; height:4px; border-radius:99px; background:rgba(11,28,33,.14); cursor:pointer; touch-action:none; }
.lx-tl-bar::before { content:""; position:absolute; inset:-9px 0; }
.lx-tl-bar i { position:absolute; left:0; top:0; bottom:0; width:0; border-radius:inherit; background:var(--acc); }
.lx-tl-bar i::after { content:""; position:absolute; right:-6px; top:50%; width:12px; height:12px; margin-top:-6px; border-radius:50%; background:var(--acc); transform:scale(0); transition:transform .15s; }
.lx-tl-bar:hover i::after, .lx-tl.is-drag i::after, .lx-play.is-playing + .lx-tl i::after { transform:scale(1); }
.lx-tl-bar:focus-visible { outline:2px solid var(--acc); outline-offset:6px; }
.lx-tl-t { flex:none; font-size:.78rem; font-variant-numeric:tabular-nums; color:var(--mut); }
.lx-hero .lx-tl-bar { background:rgba(255,255,255,.25); }
.lx-hero .lx-tl-bar i, .lx-hero .lx-tl-bar i::after { background:#fff; }
.lx-hero .lx-tl-t { color:rgba(255,255,255,.8); }
.lx-tl.is-broken { opacity:.45; pointer-events:none; }

/* store buttons */
.lx-stores { display:flex; flex-wrap:wrap; gap:10px; }
.lx-store { display:inline-flex; align-items:center; gap:9px; padding:9px 16px 9px 13px; border-radius:12px; background:#fff; color:var(--ink) !important; text-decoration:none; border:1px solid #fff; transition:transform .15s; }
.lx-store:hover { transform:translateY(-2px); }
.lx-store svg { width:22px; height:22px; }
.lx-store span { display:flex; flex-direction:column; line-height:1.05; font-weight:600; font-size:1rem; }
.lx-store small { font-size:.62rem; font-weight:500; opacity:.75; }
.lx-store-ghost { background:transparent; color:#fff !important; border-color:rgba(255,255,255,.5); }
.lx-store-dark { background:var(--ink); color:#fff !important; border-color:var(--ink); }
.lx-store-dark.lx-store-ghost { background:transparent; color:var(--ink) !important; border-color:rgba(11,28,33,.3); }

/* jump nav */
.lx-jump { position:sticky; top:73px; z-index:20; display:flex; gap:6px; overflow-x:auto; padding:10px max(var(--gut), calc((100% - 1180px) / 2)); background:rgba(255,255,255,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); scrollbar-width:none; }
.lx-jump::-webkit-scrollbar { display:none; }
.lx-jump a { flex:none; text-decoration:none; font-size:.88rem; font-weight:500; padding:6px 13px; border-radius:99px; color:var(--ink-2); }
.lx-jump a:hover, .lx-jump a.is-on { background:var(--paper); color:var(--ink); }

/* sections */
.lx-sec { padding:clamp(64px,9vw,112px) var(--gut); scroll-margin-top:120px; background:#fff; }
.lx .lx-sec > * { max-width:1180px; margin-left:auto; margin-right:auto; }
.lx-sec-paper { background:var(--paper); }
.lx-sec-dark { background:var(--dark); color:#fff; }
.lx-sec-dark .lx-kicker { color:var(--acc-l); }
.lx-sec-dark h2 em { color:var(--acc-l); }
.lx-head { margin-bottom:clamp(28px,4vw,48px); }
.lx-head h2 { font-size:clamp(2rem,4vw,3.1rem); max-width:24ch; }
.lx-head > p:not(.lx-kicker) { max-width:60ch; margin-top:1rem; color:var(--ink-2); font-size:1.06rem; line-height:1.6; }
.lx-sec-dark .lx-head > p:not(.lx-kicker) { color:rgba(255,255,255,.75); }

/* cards */
.lx-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:22px; }
.lx-grid-big { grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.lx-card { display:flex; flex-direction:column; background:var(--card); border-radius:var(--r); overflow:hidden; border:1px solid var(--line); transition:transform .25s, box-shadow .25s; }
.lx-card:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(11,28,33,.1); }
.lx-card-img { display:block; aspect-ratio:16/10; overflow:hidden; background:#dfe6e8; }
.lx-card-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s; }
.lx-card:hover .lx-card-img img { transform:scale(1.05); }
.lx-card-big .lx-card-img { aspect-ratio:4/3; }
.lx-card-body { display:flex; flex-direction:column; flex:1; padding:18px 20px 18px; }
.lx-card-meta { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; font-size:.78rem; color:var(--mut); margin-bottom:.55rem; }
.lx-tag { font-size:.7rem; font-weight:600; letter-spacing:.04em; padding:3px 8px; border-radius:99px; text-decoration:none; }
.lx-tag-lang { background:var(--paper); color:var(--ink-2); }
.lx-tag-partner { background:rgba(63,139,163,.12); color:var(--acc-d); }
.lx-card h3 { font-size:1.28rem; margin-bottom:.5rem; }
.lx-card-big h3 { font-size:1.5rem; }
.lx-card h3 a { text-decoration:none; }
.lx-card h3 a:hover { color:var(--acc-d); }
.lx-card-body > p { font-size:.94rem; line-height:1.55; color:var(--ink-2); margin-bottom:1rem; }
.lx-card-foot { margin-top:auto; display:flex; justify-content:space-between; align-items:center; gap:10px; padding-top:12px; border-top:1px solid var(--line); }
.lx-langs { display:flex; flex-wrap:wrap; gap:4px; }
.lx-langs a { font-size:.68rem; font-weight:600; letter-spacing:.05em; text-decoration:none; padding:3px 6px; border-radius:6px; border:1px solid var(--line); color:var(--ink-2); }
.lx-langs a:hover { border-color:var(--acc); color:var(--acc-d); }
.lx-open { flex:none; font-size:.88rem; font-weight:600; text-decoration:none; color:var(--acc-d) !important; }
.lx-open:hover span { margin-left:3px; }

/* filters */
.lx-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:2rem; }
.lx-filters button { font:inherit; font-size:.9rem; font-weight:500; padding:8px 15px; border-radius:99px; border:1px solid rgba(11,28,33,.18); background:#fff; color:var(--ink-2); cursor:pointer; transition:background .2s, color .2s; }
.lx-filters button small { opacity:.6; margin-left:2px; }
.lx-filters button:hover { border-color:var(--ink); }
.lx-filters button.is-on { background:var(--ink); border-color:var(--ink); color:#fff; }
.lx-group-title { font-size:1.5rem !important; margin:2.6rem auto 1.2rem !important; padding-top:1.4rem; border-top:1px solid var(--line); }
.lx-group-title:first-of-type { margin-top:0 !important; border-top:0; padding-top:0; }
.lx-filtered .lx-group-title { display:none; }
[hidden] { display:none !important; }

/* areas */
.lx-areas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.lx-area { border-radius:var(--r); background:var(--paper); overflow:hidden; display:flex; flex-direction:column; }
.lx-area.has-img { grid-row:span 2; }
.lx-area img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.lx-area-body { padding:22px 22px 24px; }
.lx-area h3 { font-size:1.45rem; margin-bottom:.6rem; }
.lx-area p { font-size:.95rem; line-height:1.6; color:var(--ink-2); }
.lx-area ul { list-style:none; margin:1rem 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.lx-area li a { font-size:.92rem; font-weight:600; color:var(--acc-d); text-decoration:none; }
.lx-area li a::before { content:"▸ "; color:var(--acc); }
.lx-area li a:hover { text-decoration:underline; }

/* plan */
.lx-days { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.lx-day { border:1px solid rgba(255,255,255,.14); border-radius:var(--r); padding:24px; background:rgba(255,255,255,.03); }
.lx-day > span { font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--acc-l); }
.lx-day h3 { font-size:1.6rem; margin:.4rem 0 1rem; }
.lx-day ol { margin:0; padding-left:1.2rem; display:flex; flex-direction:column; gap:.7rem; }
.lx-day li a { color:#fff; font-weight:600; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.3); }
.lx-day li a:hover { border-color:var(--acc-l); }
.lx-day li small { display:block; color:rgba(255,255,255,.6); font-size:.85rem; }
.lx-daytrip { margin-top:22px !important; color:rgba(255,255,255,.8); }
.lx-daytrip a { color:var(--acc-l); font-weight:600; text-decoration:none; }
.lx-tips { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:44px !important; padding-top:36px; border-top:1px solid rgba(255,255,255,.14); }
.lx-tip h3 { font-family:Barlow,'Helvetica Neue',Arial,sans-serif !important; font-weight:600 !important; font-size:1rem; margin-bottom:.4rem; }
.lx-tip p { font-size:.92rem; line-height:1.55; color:rgba(255,255,255,.7); }

/* timeline */
.lx-timeline { list-style:none; padding:0; margin:0 auto; position:relative; }
.lx-timeline::before { content:""; position:absolute; left:150px; top:8px; bottom:8px; width:1px; background:var(--line); }
.lx-timeline li { display:grid; grid-template-columns:150px 1fr; gap:0 36px; padding:0 0 34px; position:relative; }
.lx-timeline li::after { content:""; position:absolute; left:145px; top:12px; width:11px; height:11px; border-radius:50%; background:#fff; border:2px solid var(--acc); }
.lx-year { font-family:'Playfair Display',Georgia,serif; font-size:1.5rem; color:var(--acc-d); line-height:1.2; }
.lx-timeline h3 { font-size:1.35rem; margin-bottom:.35rem; }
.lx-timeline p { color:var(--ink-2); line-height:1.6; max-width:62ch; }
.lx-tl-link { display:inline-block; margin-top:.5rem; font-size:.9rem; font-weight:600; color:var(--acc-d) !important; text-decoration:none; }
.lx-tl-link:hover { text-decoration:underline; }

/* faq */
.lx-faq { display:grid; grid-template-columns:1fr 1fr; gap:12px 22px; align-items:start; }
.lx-faq-item { background:#fff; border-radius:14px; border:1px solid var(--line); padding:0 20px; }
.lx-faq-item summary { cursor:pointer; list-style:none; padding:18px 28px 18px 0; font-weight:600; font-size:1.02rem; position:relative; }
.lx-faq-item summary::-webkit-details-marker { display:none; }
.lx-faq-item summary::after { content:"+"; position:absolute; right:0; top:14px; font-size:1.4rem; font-weight:300; color:var(--acc); transition:transform .2s; }
.lx-faq-item[open] summary::after { transform:rotate(45deg); }
.lx-faq-item p { padding:0 0 18px; color:var(--ink-2); line-height:1.6; }

/* cta + b2b */
.lx-cta { padding:clamp(64px,9vw,104px) var(--gut); text-align:center; background:linear-gradient(180deg,#fff,var(--paper)); }
.lx-cta-in { max-width:640px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:1.1rem; }
.lx-cta h2 { font-size:clamp(2.2rem,4.6vw,3.4rem); }
.lx-cta p { color:var(--ink-2); font-size:1.08rem; }
.lx-b2b { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:24px 40px; max-width:1180px; margin:0 auto clamp(56px,7vw,88px); padding:34px clamp(24px,4vw,44px); border-radius:22px; background:var(--dark); color:#fff; width:calc(100% - 2*var(--gut)); }
.lx-b2b .lx-kicker { color:var(--acc-l); }
.lx-b2b h2 { font-size:clamp(1.5rem,2.6vw,2rem); margin-bottom:.5rem; }
.lx-b2b p:not(.lx-kicker) { color:rgba(255,255,255,.72); max-width:56ch; line-height:1.55; }
.lx-b2b-links { display:flex; flex-wrap:wrap; gap:10px; }
.lx-btn, .lx-btn-ghost { display:inline-block; padding:12px 20px; border-radius:99px; font-weight:600; text-decoration:none; font-size:.95rem; }
.lx-btn { background:var(--acc); color:#fff !important; }
.lx-btn:hover { background:var(--acc-d); }
.lx-btn-ghost { border:1px solid rgba(255,255,255,.35); color:#fff !important; }
.lx-btn-ghost:hover { border-color:#fff; }

/* guide pages (SeoPageGenerator.js) */
.lx img { max-width:100%; }
.lx-hero-guide { min-height:min(46vh,420px); }
.lx-hero-guide .lx-hero-in { padding-top:84px; padding-bottom:28px; }
.lx-hero-guide h1 { font-size:clamp(2.2rem,4.8vw,3.8rem); max-width:18ch; }
.lx-hero-guide .lx-lead { margin-top:.9rem !important; }
.lx-hero-guide .lx-hero-actions { margin-top:1.4rem; }
.lx-hero-guide .lx-stats { margin-top:1.6rem; }
.lx-hero-guide .lx-stats div { padding-top:.7rem; }
.lx-hero-guide .lx-stats dd { font-size:clamp(1.3rem,2.2vw,1.7rem); }
.lx-g-date { font-size:clamp(1.25rem,2.2vw,1.6rem) !important; line-height:1.2; }
.lx-g-first { display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(28px,4vw,56px); align-items:start; }
.lx-g-first.has-img { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
.lx-g-text h2 { font-size:clamp(2rem,3.6vw,2.8rem); }
.lx-g-sub { font-family:'Playfair Display',Georgia,serif; font-style:italic; font-size:1.2rem; color:var(--acc-d); margin:.5rem 0 1.4rem !important; }
.lx-g-body { margin-top:.6rem; padding-top:1.4rem; border-top:1px solid var(--line); max-width:64ch; }
.lx-g-body p { font-size:1.08rem; line-height:1.75; color:var(--ink-2); }
.lx-g-body p + p { margin-top:1.1em; }
.lx-g-body p:first-child::first-letter { float:left; font-family:'Playfair Display',Georgia,serif; font-size:3.4em; line-height:.9; padding:.06em .1em 0 0; color:var(--acc-d); }
.lx-g-photo { margin:0; position:sticky; top:100px; border-radius:var(--r); overflow:hidden; background:#dfe6e8; box-shadow:0 24px 60px rgba(11,28,33,.12); }
.lx-g-photo img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; }
.lx-time { font-variant-numeric:tabular-nums; }

.lx-g-route { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:clamp(28px,5vw,72px); align-items:start; }
.lx-g-route .lx-head { position:sticky; top:110px; margin-bottom:0; }
.lx-stops { list-style:none; margin:0; padding:0; counter-reset:none; }
.lx-stops li { display:grid; grid-template-columns:48px 1fr; gap:18px; padding:18px 0; border-top:1px solid var(--line); }
.lx-stops li:last-child { border-bottom:1px solid var(--line); }
.lx-stop-n { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-family:'Playfair Display',Georgia,serif; font-size:1.1rem; color:var(--acc-d); border:1px solid rgba(63,139,163,.4); background:#fff; }
.lx-stops li.is-open .lx-stop-n { background:var(--acc); border-color:var(--acc); color:#fff; }
.lx-stops h3 { font-size:1.28rem; margin-top:.35rem; }
.lx-stops p { font-size:.94rem; color:var(--mut); margin-top:.25rem !important; }
.lx-stop-link { display:inline-block; margin-top:.45rem; font-size:.88rem; font-weight:600; color:var(--acc-d) !important; text-decoration:none; }
.lx-stop-link:hover { text-decoration:underline; }
.lx-unlock { grid-column:2; display:flex; flex-direction:column; gap:14px; padding:26px 28px; border-radius:var(--r); background:var(--dark); color:#fff; }
.lx-unlock h3 { font-size:1.6rem; }
.lx-unlock p { color:rgba(255,255,255,.72); line-height:1.55; margin-top:.4rem !important; }
.lx-unlock .lx-store-dark { background:#fff; color:var(--ink) !important; border-color:#fff; }
.lx-unlock .lx-store-dark.lx-store-ghost { background:transparent; color:#fff !important; border-color:rgba(255,255,255,.5); }
.lx-maps { align-self:flex-start; font-size:.92rem; font-weight:600; color:var(--acc-l) !important; text-decoration:none; }
.lx-maps:hover { text-decoration:underline; }
.lx-g-city { margin-top:32px !important; text-align:center; }
.lx-guide .lx-sec:not(.lx-sec-paper) .lx-card, .lx-hub .lx-sec:not(.lx-sec-paper) .lx-card { background:var(--paper); border-color:rgba(11,28,33,.06); }
.lx-guide .lx-sec:not(.lx-sec-paper) .lx-card-foot, .lx-hub .lx-sec:not(.lx-sec-paper) .lx-card-foot { border-top-color:rgba(11,28,33,.12); }
.lx-guide .lx-card, .lx-guide .lx-faq-item, .lx-hub .lx-card, .lx-hub .lx-faq-item { box-shadow:0 1px 2px rgba(11,28,33,.05), 0 8px 24px rgba(11,28,33,.06); }
.lx-guide .lx-faq-item, .lx-hub .lx-faq-item { border-color:rgba(11,28,33,.08); }
/* parts only some guide pages have */
.lx-g-text h2 em { display:block; font-size:.55em; margin-top:.4rem; }
.lx-g-more summary { cursor:pointer; list-style:none; display:inline-block; font-weight:600; color:var(--acc-d); margin:1.1rem 0; }
.lx-g-more summary::-webkit-details-marker { display:none; }
.lx-g-more summary::after { content:" ↓"; }
.lx-g-more[open] summary { display:none; }
.lx-stop-tag { font-family:'Playfair Display',Georgia,serif; font-style:italic; color:var(--acc-d) !important; font-size:.98rem !important; }
.lx-stops .lx-stop-tag ~ p:not(.lx-stop-link) { color:var(--ink-2); line-height:1.6; max-width:62ch; }
.lx-guide #more .lx-grid { grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); }

/* index and country pages (HubPageGenerator.js) */
.lx-hero-hub { min-height:min(64vh,560px); }
.lx-hero-hub .lx-hero-in { padding-top:100px; padding-bottom:36px; }
.lx-hero-hub h1 { font-size:clamp(2.5rem,5.6vw,4.6rem); max-width:16ch; }
.lx-search { margin-top:1.8rem; max-width:560px; }
/* the index hero is light: near-white with dark text, the globe drawn in lines */
.lx-hero-globe { min-height:min(80vh,700px); background:#FAFAF7; color:var(--ink); border-bottom:1px solid var(--line); }
.lx-hero-globe::after { background:linear-gradient(90deg,rgba(250,250,247,.92) 0%,rgba(250,250,247,.6) 42%,rgba(250,250,247,0) 62%); pointer-events:none; }
.lx-hero-globe .lx-eyebrow { color:var(--acc-d); opacity:1; }
.lx-hero-globe h1 em { color:var(--acc); opacity:1; }
.lx-hero-globe .lx-lead { color:var(--ink-2); }
.lx-hero-globe .lx-stats { border-top-color:var(--line); }
.lx-hero-globe .lx-search-box { border:1px solid rgba(11,28,33,.14); box-shadow:0 10px 30px rgba(11,28,33,.08); }
.lx-hero-globe .lx-search-box:focus-within { box-shadow:0 0 0 3px rgba(63,139,163,.35), 0 10px 30px rgba(11,28,33,.08); }
.lx-hero-globe .lx-hero-in { pointer-events:none; }
.lx-hero-globe .lx-hero-in > * { pointer-events:auto; }
.lx-hero.is-searching { min-height:0; }
.lx-hero.is-searching .lx-stats { display:none; }
/* big and centred behind the hero text */
.lx-globe { --gs:min(1400px, 96vw); position:absolute; top:50%; right:50%; width:var(--gs); aspect-ratio:1; transform:translate(50%, -50%); }
.lx-globe canvas { display:block; width:100%; height:100%; cursor:grab; touch-action:pan-y; animation:lx-globe-in 1.6s cubic-bezier(.2,.7,.2,1) both; }
.lx-globe canvas.is-drag { cursor:grabbing; }
@keyframes lx-globe-in { from { opacity:0; transform:scale(.92); } }
.lx-globe-label { position:absolute; left:0; top:0; z-index:2; display:flex; flex-direction:column; gap:1px; padding:8px 13px; border-radius:12px; background:#00A6C8; border:0; color:var(--ink) !important; box-shadow:0 6px 18px rgba(11,28,33,.12); text-decoration:none; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .35s; }
.lx-globe-label.is-on { opacity:1; pointer-events:auto; }
.lx-globe-label b { font-family:'Playfair Display',Georgia,serif; font-weight:400; font-size:1.08rem; }
.lx-globe-label span { font-size:.76rem; color:var(--ink); opacity:.8; }
.lx-search-box { display:flex; align-items:center; gap:12px; height:58px; padding:0 20px; border-radius:99px; background:#fff; color:var(--ink); box-shadow:0 18px 40px rgba(0,0,0,.28); cursor:text; }
.lx-search-box:focus-within { box-shadow:0 0 0 3px var(--acc-l), 0 18px 40px rgba(0,0,0,.28); }
.lx-search-box svg { flex:none; width:22px; height:22px; color:var(--mut); }
.lx-search-box input { flex:1; min-width:0; height:100%; border:0; outline:0; background:none; font:inherit; font-size:1.05rem; color:var(--ink); }
.lx-search-box input::placeholder { color:var(--mut); }
.lx-results-sec { padding-top:clamp(40px,6vw,64px); padding-bottom:clamp(40px,6vw,64px); }
.lx-places { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px; }
.lx-place { position:relative; display:block; height:clamp(260px,28vw,360px); border-radius:20px; overflow:hidden; background:var(--dark); color:#fff !important; text-decoration:none; isolation:isolate; }
.lx-place img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.lx-place::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(12,20,23,0) 30%,rgba(12,20,23,.88) 100%); }
.lx-place:hover img { transform:scale(1.05); }
.lx-place-in { position:absolute; left:0; right:0; bottom:0; display:flex; flex-direction:column; gap:4px; padding:22px 24px; }
.lx-place-kicker { font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--acc-l); }
.lx-place strong { font-family:'Playfair Display',Georgia,serif; font-weight:400; font-size:clamp(1.8rem,2.8vw,2.5rem); line-height:1.08; }
.lx-place-more { font-size:.94rem; color:rgba(255,255,255,.85); }
.lx-place-more span { display:inline-block; transition:transform .2s; }
.lx-place:hover .lx-place-more span { transform:translateX(4px); }
.lx-countries { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:20px; }
.lx-country { display:flex; flex-direction:column; background:#fff; border:1px solid rgba(11,28,33,.08); border-radius:var(--r); overflow:hidden; box-shadow:0 1px 2px rgba(11,28,33,.05), 0 8px 24px rgba(11,28,33,.06); transition:transform .25s, box-shadow .25s; }
.lx-country:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(11,28,33,.1); }
.lx-country-img { display:block; aspect-ratio:16/9; overflow:hidden; background:#dfe6e8; }
.lx-country-img img { display:block; width:100%; height:100%; object-fit:cover; }
.lx-country-body { flex:1; display:flex; flex-direction:column; gap:8px; padding:18px 20px 20px; }
.lx-country h3 { font-size:1.55rem; }
.lx-country h3 a { text-decoration:none; }
.lx-country h3 a:hover { color:var(--acc-d); }
.lx-country p { font-size:.9rem; color:var(--mut); }
.lx-chips { display:flex; flex-wrap:wrap; gap:6px; }
.lx-chips a { font-size:.82rem; font-weight:600; padding:5px 11px; border-radius:99px; background:rgba(63,139,163,.12); color:var(--acc-d) !important; text-decoration:none; }
.lx-chips a:hover { background:var(--acc); color:#fff !important; }
.lx-country .lx-open { margin-top:auto; padding-top:6px; }
.lx .lx-group-head { scroll-margin-top:120px; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; margin-top:44px; margin-bottom:16px; padding-top:22px; border-top:1px solid var(--line); }
.lx .lx-head + .lx-group-head, .lx .lx-filters + .lx-group-head { margin-top:0; padding-top:0; border-top:0; }
.lx-group-head h3 { font-size:1.6rem; }
.lx-group-head h3 a { text-decoration:none; }
.lx-group-head h3 a:hover { color:var(--acc-d); }
.lx-group-head > span { font-size:.9rem; color:var(--mut); }
.lx-group-head .lx-open { margin-left:auto; }
.lx-filtered .lx-group-head { margin-top:0; padding-top:0; border-top:0; }

/* phone bar */
.lx-bar { display:none; }
@media (max-width:760px) {
  .lx-bar { display:flex; position:fixed; left:12px; right:12px; bottom:12px; z-index:40; justify-content:space-between; align-items:center; gap:10px; padding:10px 10px 10px 18px; border-radius:99px; background:var(--ink); color:#fff; box-shadow:0 10px 30px rgba(0,0,0,.25); transform:translateY(140%); transition:transform .3s; }
  .lx-bar.is-on { transform:none; }
  .lx-bar span { font-size:.88rem; }
  .lx-bar a { background:var(--acc); color:#fff !important; text-decoration:none; font-weight:600; font-size:.9rem; padding:9px 16px; border-radius:99px; }
  .lx-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lx-areas, .lx-days, .lx-faq { grid-template-columns:1fr; }
  .lx-tips { grid-template-columns:1fr 1fr; }
  .lx-area.has-img { grid-row:auto; }
  .lx-timeline::before { left:6px; }
  .lx-timeline li { grid-template-columns:1fr; padding-left:30px; }
  .lx-timeline li::after { left:1px; }
  .lx-jump { top:64px; }
  .lx-g-first.has-img, .lx-g-route { grid-template-columns:minmax(0,1fr); }
  .lx-g-photo, .lx-g-route .lx-head { position:static; }
  .lx-g-photo { order:-1; }
  .lx-g-photo img { aspect-ratio:4/3; }
  .lx-unlock { grid-column:auto; padding:22px; }
  .lx-stops li { grid-template-columns:40px 1fr; gap:14px; }
  .lx-guide #more .lx-grid { grid-template-columns:1fr; gap:12px; }
  .lx-guide #more .lx-card { flex-direction:row; }
  .lx-guide #more .lx-card-img { flex:none; width:112px; aspect-ratio:auto; }
  .lx-guide #more .lx-card-body { padding:14px 16px; }
  .lx-guide #more .lx-card h3 { font-size:1.12rem; }
  .lx-places { grid-template-columns:1fr; }
  .lx-place { height:240px; }
  .lx-group-head .lx-open { margin-left:0; flex-basis:100%; }
  .lx-search-box { height:52px; }
  .lx-hero-globe { min-height:0; align-items:flex-start; }
  .lx-hero-globe .lx-hero-in { padding-top:330px; }
  /* phones: a big globe, cropped by the screen, behind the top of the hero */
  .lx-globe { --gs:656px; top:-98px; right:50%; width:var(--gs); transform:translateX(50%); }
  .lx-hero-globe::after { background:linear-gradient(180deg,rgba(250,250,247,0) 0%,rgba(250,250,247,0) 280px,rgba(250,250,247,.85) 400px); }
}
@media (min-width:761px) and (max-width:1020px) {
  .lx-g-first.has-img, .lx-g-route { grid-template-columns:minmax(0,1fr); }
  .lx-g-photo, .lx-g-route .lx-head { position:static; }
  .lx-g-photo img { aspect-ratio:16/10; }
  .lx-unlock { grid-column:auto; }
}
@media (min-width:761px) and (max-width:1020px) {
  .lx-areas { grid-template-columns:1fr 1fr; }
  .lx-tips { grid-template-columns:1fr 1fr; }
}
