/*
 * Readability layer for a 50+ audience. Loaded after index.css, so these rules win.
 * Same design language, bigger type, bigger targets, calmer secondary text.
 */
:root {
  --muted: #3b4a63;
  --nav-h: 120px;
  --maxw: 1180px;
}

body {
  font-size: 1.2rem;
  line-height: 1.72;
}

/* --- Header: taller bar, bigger links, bigger call to action --- */
.nav-bar {
  height: 94px;
  padding: 0 18px 0 30px;
  gap: 26px;
}
.nav-logo img {
  height: 64px;
  max-width: 290px;
}
.nav-links {
  gap: 4px;
}
.nav-links a {
  font-size: 1.14rem;
  padding: 14px 17px;
}
.nav-links .nav-cta .btn {
  padding: 19px 32px;
  font-size: 1.1rem;
}
.nav-toggle {
  width: 56px;
  height: 56px;
}

/* --- Buttons everywhere: easy to see and easy to hit --- */
.btn {
  font-size: 1.14rem;
  padding: 19px 34px;
  min-height: 60px;
  letter-spacing: 0;
}
.btn-primary,
.btn-sun,
.btn-gold {
  min-width: 210px;
}

/* --- Hero --- */
.hero {
  padding-top: calc(var(--nav-h) + 44px);
}
.hero-title {
  font-size: clamp(3rem, 5.4vw, 4.8rem);
  line-height: 1.02;
  max-width: 16ch;
}
.hero-sub {
  font-size: 1.34rem;
  line-height: 1.62;
  color: #fff;
  max-width: 46ch;
}
.hero-premium-kicker {
  font-size: 1.04rem;
  padding: 10px 20px;
}
.hero-badges span,
.hero-checks span {
  font-size: 1.06rem;
}
.hero-photo-control {
  width: 58px;
  height: 26px;
  border-bottom-width: 4px;
}
.hero-photo-picker {
  padding: 12px 20px;
}
.hero-photo-picker p {
  font-size: 1.06rem;
}

/* --- Headings and section intro copy --- */
.eyebrow {
  font-size: 1.04rem;
}
main section h2,
.section-head h2 {
  font-size: clamp(2.15rem, 3.2vw, 2.95rem);
  line-height: 1.14;
  letter-spacing: -0.02em;
}
main section h3 {
  font-size: 1.52rem;
  line-height: 1.24;
}
main section p,
.section-head p {
  font-size: 1.18rem;
  line-height: 1.62;
}

/* --- Cards and lists: the base sheet sets these per component, so match its weight --- */
main .service-card h3,
main .tool-card h3,
main .why-card h3,
main .scan-step h3 {
  font-size: 1.44rem;
  line-height: 1.3;
}
main .service-card p,
main .tool-card p,
main .why-card p,
main .scan-step p {
  font-size: 1.14rem;
  line-height: 1.6;
}
main .assurance-item {
  font-size: 1.14rem;
}
main .stat-strip {
  font-size: 1.14rem;
}

/* The static tab strip switched widgets that never load here; the White Label form replaces it. */
.hero-tabs {
  display: none !important;
}

/* --- Third-party widget: the readability layer must not restyle Travelpayouts' own controls --- */
.tp-widget,
#tpwl-search {
  font-size: 16px !important;
  line-height: 1.45 !important;
}
/* Anchor the widget's own language/currency chips inside the form instead of over the photo. */
#tpwl-search {
  position: relative;
  padding: 12px;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 24px 50px -24px rgba(3, 25, 94, 0.35);
}
main .tp-widget p,
main .tp-widget li,
main .tp-widget span,
main .tp-widget input,
main .tp-widget button,
main .tp-widget label,
main .tp-widget a,
main #tpwl-search p,
main #tpwl-search li,
main #tpwl-search span,
main #tpwl-search input,
main #tpwl-search button,
main #tpwl-search label,
main #tpwl-search a {
  font-size: 1em !important;
  line-height: 1.35 !important;
}

/* --- Destination grid --- */
.dest-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 18px;
  margin: 8px 0 30px;
}
.dest-card {
  display: flex;
  flex-direction: column;
  border: 1px solid #dbe3f1;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  background: #fff;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.dest-card:hover,
.dest-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(3, 25, 94, 0.13);
}
.dest-thumb img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  display: block;
}
.dest-body {
  padding: 14px 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.dest-body strong {
  font-size: 1.22rem;
  color: #03195e;
}
.dest-meta {
  font-size: 0.92rem;
  color: #5b6577;
}
.dest-tag {
  font-size: 1rem;
  color: #29395a;
  line-height: 1.45;
}
.cost-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 18px;
}
.cost-table th,
.cost-table td {
  text-align: left;
  padding: 12px 8px;
  border-bottom: 1px solid #e3e9f4;
  font-size: 1.08rem;
}
.cost-table th {
  font-weight: 600;
  color: #03195e;
}
.cost-table td {
  color: #29395a;
  white-space: nowrap;
}
.christmas-feature .eyebrow {
  color: var(--coral);
}
.christmas-feature h2 {
  margin-bottom: 10px;
}
.christmas-feature p {
  max-width: 720px;
  font-size: 1.16rem;
  line-height: 1.65;
  margin-bottom: 20px;
}

/* --- Cookie consent --- */
.cookie-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  background: #071a44;
  color: #fff;
  border-top: 3px solid var(--coral);
  box-shadow: 0 -10px 30px rgba(3, 25, 94, 0.35);
  padding: 18px 20px calc(18px + env(safe-area-inset-bottom));
  font-size: 1.02rem;
}
.cookie-inner {
  max-width: 1120px;
  margin: 0 auto;
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.cookie-inner p {
  margin: 0;
  max-width: 680px;
  line-height: 1.55;
}
.cookie-inner a {
  color: #ffd479;
  text-decoration: underline;
}
.cookie-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.cookie-actions .btn {
  min-height: 54px;
  padding: 0 26px;
}
.cookie-actions .btn-ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.55);
}
.consent-gate {
  padding: 18px 20px;
  border: 1px dashed #b9c8e4;
  border-radius: 14px;
  background: #f7f9ff;
  color: #0b1b3a;
}
.consent-gate p,
.consent-gate strong {
  color: #0b1b3a;
  margin: 0 0 14px;
  line-height: 1.55;
}
.consent-gate p:last-child {
  margin-bottom: 0;
}
.article-body {
  max-width: 860px;
}
.article-body h2 {
  margin: 44px 0 14px;
  font-size: clamp(1.7rem, 2.4vw, 2.15rem);
  line-height: 1.2;
}
.article-body h2:first-of-type {
  margin-top: 18px;
}
.article-body p {
  font-size: 1.16rem !important;
  line-height: 1.72 !important;
  margin: 0 0 16px;
}
.article-suite {
  padding-top: 8px;
}
.answer-first {
  background: #f4f7ff;
  border-left: 5px solid var(--royal);
  border-radius: 14px;
  padding: 20px 22px;
  font-size: 1.2rem !important;
  line-height: 1.65 !important;
  margin: 0 0 26px;
}
.article-updated {
  color: #5b6577;
  font-size: 0.95rem !important;
  margin: -12px 0 22px !important;
}
.article-list {
  margin: 0 0 22px;
  padding-left: 1.3em;
}
.article-list li {
  font-size: 1.14rem;
  line-height: 1.6;
  margin-bottom: 10px;
}
.article-cta {
  margin: 30px 0 8px !important;
}
.article-cta .btn {
  min-height: 60px;
}

.footer-disclaimer {
  max-width: 900px;
  margin: 26px 0 0;
  padding: 18px 20px;
  border-left: 4px solid var(--coral);
  background: rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  font-size: 0.98rem;
  line-height: 1.6;
}
.footer-disclaimer a {
  color: #ffd479;
  text-decoration: underline;
}

.article-faq {
  margin-top: 8px;
  border-top: 1px solid var(--line);
}
.faq-row {
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
}
.faq-row summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 1.18rem;
  color: var(--navy);
  list-style: none;
}
.faq-row summary::-webkit-details-marker {
  display: none;
}
.faq-row summary::after {
  content: "+";
  float: right;
  font-size: 1.4rem;
  line-height: 1;
  color: var(--royal);
}
.faq-row[open] summary::after {
  content: "–";
}
.faq-row p {
  margin: 10px 0 0;
}

/* Travelpayouts boxes that never render should not leave an empty panel behind. */
.is-empty-widget {
  display: none !important;
}

/* --- Footer --- */
footer {
  font-size: 1.1rem;
}
.footer-top h4 {
  font-size: 1.18rem;
  margin-bottom: 12px;
}
.footer-top a {
  font-size: 1.1rem;
  line-height: 2.1;
}
.footer-disclosure p {
  font-size: 1.04rem;
  line-height: 1.66;
}
.footer-bottom {
  font-size: 1.02rem;
}

/* --- Body copy: the base sheet sets sizes per component, so lift every paragraph and list here --- */
main p,
main li,
main dd,
main dt {
  font-size: 1.16rem !important;
  line-height: 1.62 !important;
}
.hero-sub {
  font-size: 1.34rem !important;
}
.footer-top a,
.footer-bottom a,
.footer-disclosure p {
  font-size: 1.1rem !important;
  line-height: 1.7 !important;
}

/* --- Comfort: roomier logo, no tiny tap targets --- */
/* The brand lockup is 5:1; size it by height so it never squashes. */
.nav-logo img {
  height: 54px;
  width: auto;
  max-width: 100%;
}
img[src*="logo.png"] {
  object-fit: contain;
  object-position: left center;
}
a,
button {
  touch-action: manipulation;
}


/* Search tabs: bigger than the base sheet, still one row on wide screens */
.hero-tab {
  font-size: 0.94rem;
}

/* --- Narrower screens: keep the big feel without cutting any word --- */
@media (max-width: 1100px) {
  .nav-links a {
    font-size: 1.02rem;
    padding: 12px 12px;
  }
  .nav-logo img {
    height: 46px;
    width: auto;
    max-width: none;
  }
  .nav-links .nav-cta .btn {
    min-height: 54px;
    padding: 15px 24px;
    font-size: 1rem;
  }
}

@media (max-width: 760px) {
  .nav-logo img {
    height: 40px;
  }
  .hero-title {
    font-size: clamp(1.85rem, 8.4vw, 2.35rem);
    max-width: none;
  }
  .hero-sub {
    font-size: 1.1rem !important;
    max-width: 34ch;
  }
  main section h2 {
    font-size: clamp(1.7rem, 6.6vw, 2.1rem);
  }
  .btn {
    font-size: 1.04rem;
    padding: 16px 24px;
    min-height: 56px;
  }
  .hero-premium-kicker {
    font-size: 0.95rem;
  }
}

/* The full menu stops fitting once the links get bigger, so switch to the compact menu earlier. */
@media (max-width: 1000px) {
  .nav-bar-shell {
    position: relative;
  }
  .nav-toggle {
    display: block;
    margin-left: auto;
  }
  .nav-links {
    position: absolute;
    top: calc(100% + 6px);
    left: 14px;
    right: 14px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: 12px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 34px 70px -30px rgba(3, 25, 94, 0.5);
  }
  .nav-links.open {
    display: flex;
  }
  .nav-links a {
    font-size: 1.06rem;
    padding: 14px 16px;
  }
  .nav-links .nav-cta {
    margin-top: 6px;
  }
  .nav-links .nav-cta .btn {
    width: 100%;
  }
}

/* Six tabs in a hidden scroll strip is easy to miss: below tablet width they wrap and stay visible. */
@media (max-width: 1000px) {
  .hero-tabs {
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    padding: 8px;
    border-radius: 24px;
  }
  .hero-tab {
    font-size: 0.98rem;
    padding: 10px 14px;
  }
}


/* ---------- Winter 2026-27 pages ---------- */
.filter-bar{margin:1.4rem 0 1.1rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-soft)}
.filter-label{display:block;font-weight:600;font-size:.95rem;margin-bottom:.15rem}
.chip-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.55rem 0 .1rem}
.chip{appearance:none;border:1px solid rgba(3,25,94,.2);background:#fff;color:var(--ink);border-radius:999px;padding:.5rem .95rem;font:inherit;font-size:.9rem;line-height:1.2;cursor:pointer}
.chip:hover{border-color:rgba(3,25,94,.45)}
.chip:focus-visible{outline:2px solid var(--royal);outline-offset:2px}
.chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff}
.filter-count{margin:.55rem 0 0;font-size:.88rem;color:var(--muted)}
.filter-empty{margin:1rem 0;padding:1rem 1.1rem;border:1px dashed rgba(3,25,94,.28);border-radius:12px;font-size:.95rem}
.temp-chart{display:grid;gap:.6rem;margin:1.1rem 0 1.6rem}
.temp-row{display:grid;grid-template-columns:minmax(140px,1fr) 2.4fr auto;align-items:center;gap:.8rem;font-size:.95rem}
.temp-bar{display:block;height:14px;border-radius:999px;background:linear-gradient(90deg,var(--sky),var(--coral))}
.temp-val{font-variant-numeric:tabular-nums;font-weight:600;min-width:3.2rem;text-align:right}
.temp-note{font-size:.86rem;color:var(--muted);margin-top:-.6rem}
.price-note{font-size:.88rem;color:var(--muted);border-left:3px solid var(--amber);padding-left:.85rem;margin:1rem 0 1.3rem}
.aff-note{font-size:.85rem;color:var(--muted);margin:.9rem 0 0}
.winter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin:1.2rem 0 1.8rem}
.winter-card{display:block;padding:1.1rem 1.2rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;text-decoration:none;color:inherit;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.winter-card strong{display:block;font-size:1.02rem;margin-bottom:.3rem}
.winter-card span{display:block;font-size:.92rem;color:var(--muted);line-height:1.5}
.winter-card:hover{transform:translateY(-2px);border-color:rgba(3,25,94,.3);box-shadow:var(--shadow-sm)}
.footer-trust{display:flex;flex-wrap:wrap;gap:.45rem 1.4rem;padding:1.1rem 0 0;font-size:.85rem;color:rgba(255,255,255,.72)}
.footer-trust strong{color:#fff;font-weight:600;margin-right:.3rem}
@media (max-width:640px){
  .temp-row{grid-template-columns:1fr auto;grid-template-areas:"name val" "bar bar";row-gap:.35rem}
  .temp-name{grid-area:name}.temp-bar{grid-area:bar}.temp-val{grid-area:val}
}

/* Winter featured row on the home page */
.winter-suite .winter-featured{margin:1.6rem 0 2.2rem}
.winter-pick .dest-meta{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:var(--coral-deep)}
.winter-pick strong{font-size:1.08rem;line-height:1.3}
.winter-pick .dest-tag{font-size:.93rem;color:var(--muted)}
.winter-subhead{margin:0 0 1rem;font-size:1.15rem}

/* Home: winter guides in a 3 + 3 grid, larger cards */
.winter-suite .winter-guides{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.winter-suite .winter-guides .winter-card{padding:1.45rem 1.5rem}
.winter-suite .winter-guides .winter-card strong{font-size:1.16rem;margin-bottom:.45rem}
.winter-suite .winter-guides .winter-card span{font-size:.96rem;line-height:1.55}
@media (max-width:960px){.winter-suite .winter-guides{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.winter-suite .winter-guides{grid-template-columns:1fr}}

/* Home winter guides — one identity per card (2026 look) */
.winter-suite .winter-guides .winter-card{
  position:relative;overflow:hidden;isolation:isolate;
  border:1px solid var(--w-edge,#e1e9f3);border-radius:20px;
  background:var(--w-bg,#fff);
  padding:1.5rem 1.5rem 1.6rem;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.winter-suite .winter-guides .winter-card::before{
  content:"";position:absolute;inset:0 0 auto 0;height:6px;background:var(--w-grad);z-index:1;
}
.winter-suite .winter-guides .winter-card::after{
  content:"";position:absolute;right:-70px;top:-70px;width:200px;height:200px;border-radius:50%;
  background:var(--w-glow);pointer-events:none;z-index:-1;
}
.winter-suite .winter-guides .winter-card:hover{
  transform:translateY(-5px);border-color:var(--w-edge);box-shadow:0 26px 46px -30px rgba(3,25,94,.5);
}
.winter-suite .winter-guides .w-chip{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:14px;margin-bottom:.95rem;
  background:var(--w-chip,#eef4fb);color:var(--w-ico,#0156e4);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
}
.winter-suite .winter-guides .w-chip svg{width:23px;height:23px}
.winter-suite .winter-guides .winter-card strong{color:var(--w-title,#03195e);position:relative}
.winter-suite .winter-guides .winter-card > span:last-child{color:var(--w-text,#53617a);position:relative}
.winter-suite .winter-guides .winter-card.wc-aurora strong{color:#fff}
.winter-suite .winter-guides .winter-card.wc-aurora > span:last-child{color:rgba(255,255,255,.8)}

.wc-sun{--w-grad:linear-gradient(90deg,#fd9e2e,#fb4f53);--w-bg:linear-gradient(180deg,#fff9f0,#fff 62%);--w-glow:radial-gradient(circle at 72% 18%,#ffe3bb,transparent 68%);--w-chip:#fff1d6;--w-ico:#c06a05;--w-edge:#f7dcb9}
.wc-xmas{--w-grad:linear-gradient(90deg,#fb4f53,#b92333);--w-bg:linear-gradient(180deg,#fff4f4,#fff 62%);--w-glow:radial-gradient(circle at 72% 18%,#ffd9da,transparent 68%);--w-chip:#ffe3e3;--w-ico:#b92333;--w-edge:#f7cbcc}
.wc-ski{--w-grad:linear-gradient(90deg,#01c7f5,#0156e4);--w-bg:linear-gradient(180deg,#f3fcff,#fff 62%);--w-glow:radial-gradient(circle at 72% 18%,#d4f3fd,transparent 68%);--w-chip:#e3f8ff;--w-ico:#0169a8;--w-edge:#c7eaf9}
.wc-aurora{--w-grad:linear-gradient(90deg,#01c7f5,#fb4f53);--w-bg:radial-gradient(ellipse at 12% 0%,#0c2f74 0%,#03195e 46%,#01103a 100%);--w-glow:radial-gradient(circle at 82% 0%,rgba(1,199,245,.42),transparent 62%);--w-chip:rgba(255,255,255,.15);--w-ico:#93e9ff;--w-edge:rgba(1,199,245,.45)}
.wc-uk{--w-grad:linear-gradient(90deg,#0156e4,#01c7f5);--w-bg:linear-gradient(180deg,#f5f9ff,#fff 62%);--w-glow:radial-gradient(circle at 72% 18%,#dce9ff,transparent 68%);--w-chip:#e9f1ff;--w-ico:#1b4fb8;--w-edge:#d0ddf8}
.wc-sea{--w-grad:linear-gradient(90deg,#0177aa,#01c7f5);--w-bg:linear-gradient(180deg,#f1fcff,#fff 62%);--w-glow:radial-gradient(circle at 72% 18%,#ccf2fb,transparent 68%);--w-chip:#e1f9ff;--w-ico:#026fa0;--w-edge:#c6eaf6}

/* Home winter guides — photo cards with the text inside */
.winter-suite .winter-guides .winter-card.has-photo{
  position:relative;display:block;padding:0;border:0;border-radius:20px;overflow:hidden;
  background:#03195e;min-height:300px;box-shadow:0 18px 34px -28px rgba(3,25,94,.6);
}
.winter-suite .winter-guides .winter-card.has-photo::before{
  inset:0 0 auto 0;height:6px;background:var(--w-grad);z-index:3;
}
.winter-suite .winter-guides .winter-card.has-photo::after{display:none}
.w-card-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  transition:transform .6s cubic-bezier(.2,.7,.3,1);
}
.winter-suite .winter-guides .winter-card.has-photo:hover .w-card-img{transform:scale(1.06)}
.w-card-body{
  position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:300px;padding:1.35rem 1.4rem 1.45rem;
  background:linear-gradient(180deg,rgba(2,15,45,0) 26%,rgba(2,15,45,.42) 52%,rgba(2,15,45,.86) 78%,rgba(2,15,45,.95) 100%);
}
.w-card-body .w-chip{
  background:rgba(255,255,255,.17);color:#fff;margin-bottom:.75rem;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);backdrop-filter:blur(6px);
}
.w-card-body strong{color:#fff;font-size:1.14rem;line-height:1.3;margin-bottom:.3rem;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.w-card-body > span:last-child{color:rgba(255,255,255,.9);font-size:.93rem;line-height:1.5}
.winter-suite .winter-guides .winter-card.has-photo:hover{transform:translateY(-5px);box-shadow:0 30px 52px -30px rgba(3,25,94,.7)}
.w-credits{font-size:.76rem;line-height:1.65;color:var(--muted);margin:.45rem 0 0;max-width:88ch}
@media (max-width:620px){.w-card-body{min-height:250px}}

/* Photo card overrides (must beat the tinted-card rules above) */
.winter-suite .winter-guides .winter-card.has-photo{min-height:300px}
.winter-suite .winter-guides .winter-card.has-photo .w-card-body{min-height:300px}
.winter-suite .winter-guides .winter-card.has-photo .w-card-body .w-chip{
  background:rgba(255,255,255,.18);color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.32);backdrop-filter:blur(6px);
}
.winter-suite .winter-guides .winter-card.has-photo .w-card-body strong{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.45)}
.winter-suite .winter-guides .winter-card.has-photo .w-card-body > span:last-child{color:rgba(255,255,255,.9)}
@media (max-width:620px){
  .winter-suite .winter-guides .winter-card.has-photo,
  .winter-suite .winter-guides .winter-card.has-photo .w-card-body{min-height:250px}
}

/* Photo cards: stronger scrim + text pinned to the bottom */
.winter-suite .winter-guides .winter-card.has-photo .w-card-body{
  display:flex;flex-direction:column;justify-content:flex-end;
  background:linear-gradient(180deg,rgba(2,15,45,0) 0%,rgba(2,15,45,.28) 40%,rgba(2,15,45,.78) 64%,rgba(2,15,45,.95) 84%,rgba(2,15,45,.98) 100%);
}

/* Show more of the photo: lighter scrim, taller cards */
.winter-suite .winter-guides .winter-card.has-photo,
.winter-suite .winter-guides .winter-card.has-photo .w-card-body{min-height:340px}
.winter-suite .winter-guides .winter-card.has-photo .w-card-body{
  background:linear-gradient(180deg,rgba(2,15,45,0) 0%,rgba(2,15,45,.08) 30%,rgba(2,15,45,.52) 56%,rgba(2,15,45,.86) 78%,rgba(2,15,45,.96) 100%);
  padding:1.4rem 1.45rem 1.5rem;
}
@media (max-width:620px){
  .winter-suite .winter-guides .winter-card.has-photo,
  .winter-suite .winter-guides .winter-card.has-photo .w-card-body{min-height:280px}
}

/* Chip as a floating badge, better photo crops */
.winter-suite .winter-guides .winter-card.has-photo .w-card-body{justify-content:flex-end}
.winter-suite .winter-guides .winter-card.has-photo .w-card-body .w-chip{
  position:absolute;top:1.1rem;left:1.2rem;margin:0;
}
.wc-xmas .w-card-img{object-position:center 42%}
.wc-uk .w-card-img{object-position:center 68%}
.wc-sea .w-card-img{object-position:center 58%}

/* UK card now uses a landscape fell photo */
.wc-uk .w-card-img{object-position:center 45%}

/* Hub: A-Z index */
.az-index{list-style:none;padding:0;margin:1.2rem 0 2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.55rem 1.4rem}
.az-index li{margin:0}
.az-index a{display:inline-block;padding:.3rem 0;color:var(--navy);text-decoration:none;border-bottom:1px solid rgba(15,32,66,.14)}
.az-index a:hover{border-bottom-color:var(--coral);color:var(--coral)}

/* London attractions: hub cards + home picks */
.attr-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:1.6rem 0 2rem}
.attr-card{padding:26px 24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:10px}
.attr-card h3{margin:0;font-size:1.22rem}
.attr-meta{display:flex;flex-wrap:wrap;gap:6px;margin:0;font-family:var(--font-ui);font-size:.78rem;font-weight:600;color:var(--royal)}
.attr-meta span{padding:3px 10px;border-radius:999px;background:var(--mist)}
.attr-card p{margin:0;font-size:.95rem;color:var(--text)}
.attr-tip{color:var(--muted)!important;font-size:.9rem!important}
.attr-cta{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-weight:700;font-size:.9rem;color:var(--navy);border-bottom:2px solid var(--amber);align-self:flex-start}
.attr-cta:hover{color:var(--coral)}
.attr-picks{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:26px 0 30px}
.attr-pick{display:flex;flex-direction:column;gap:6px;padding:22px 20px;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--line);color:inherit;transition:transform .18s ease,box-shadow .22s ease}
.attr-pick:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:inherit}
.attr-pick strong{font-family:var(--font-head);font-size:1.05rem;color:var(--ink);line-height:1.2}
.attr-pick-meta{font-family:var(--font-ui);font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--coral-deep)}
.attr-pick-tip{font-size:.86rem;color:var(--muted);line-height:1.45}
@media (max-width: 900px){.attr-grid{grid-template-columns:1fr}.attr-picks{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 560px){.attr-picks{grid-template-columns:1fr}.attr-card{padding:22px 18px}}

/* Tiqets discovery widget: the embed ships without a height, so browsers fell
   back to the 150px default and the cards were cut off. Heights measured against
   the widget itself at each of its layout breaks. */
#search-widget{width:100%;max-width:100%}
#search-widget iframe{display:block;width:100%;height:500px;border:0;border-radius:var(--radius);background:#fff}
@media (max-width:1100px){#search-widget iframe{height:1030px}}
@media (max-width:620px){#search-widget iframe{height:880px}}
@media (max-width:460px){#search-widget iframe{height:790px}}

/* Winter hub: comparison tables inside article bodies */
.article-table{width:100%;border-collapse:collapse;margin:0 0 26px;font-size:.98rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.article-table th,.article-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top}
.article-table thead th{background:var(--mist);font-family:var(--font-ui);font-size:.8rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--royal)}
.article-table tbody th{font-weight:700;color:var(--ink);width:36%}
.article-table tr:last-child th,.article-table tr:last-child td{border-bottom:0}
@media (max-width:640px){.article-table{display:block;overflow-x:auto}.article-table th,.article-table td{padding:10px 12px;font-size:.9rem}}

/* Winter hub: filter bar and deal cards */
.filter-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 8px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-soft)}
.filter-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.filter-field label{font-family:var(--font-ui);font-size:.78rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.filter-field select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-family:var(--font-ui);font-size:.92rem;color:var(--ink)}
.filter-note{grid-column:1 / -1;margin:2px 0 0;font-size:.88rem;color:var(--muted)}
.deal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0 30px}
.deal-card{display:flex;flex-direction:column;gap:8px;padding:22px 20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm)}
.deal-card[hidden]{display:none}
.deal-meta{font-family:var(--font-ui);font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--coral-deep)}
.deal-card h3{margin:0;font-size:1.12rem}
.deal-facts{display:grid;gap:4px;margin:2px 0 6px}
.deal-facts div{display:flex;justify-content:space-between;gap:10px;font-size:.86rem;border-bottom:1px dotted var(--line-soft);padding-bottom:4px}
.deal-facts dt{color:var(--muted)}
.deal-facts dd{margin:0;font-weight:600;color:var(--ink);text-align:right}
.deal-price{margin:0 0 10px;font-size:.86rem;color:var(--muted)}
.deal-card .btn{margin-top:auto;width:100%}
@media (max-width:1000px){.deal-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:860px){.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.deal-grid{grid-template-columns:1fr}.filter-bar{grid-template-columns:1fr;padding:16px}}

/* Winter hub: chips, airport cards and the deal alerts band */
.section-foot{margin:28px 0 0}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.chip{display:inline-flex;align-items:center;padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:#fff;font-family:var(--font-ui);font-size:.88rem;font-weight:600;color:var(--ink);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}
.chip:hover{border-color:var(--blue)}
.chip.is-active{background:var(--navy);border-color:var(--navy);color:#fff}
#deals-airports .feature,.grid .feature{text-decoration:none;color:inherit}
#deals-airports .feature:hover,.grid a.feature:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
[data-chip-cards] .feature[hidden]{display:none}
.alert-band{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;padding:44px 44px;border-radius:var(--radius-xl);background:radial-gradient(ellipse 60% 80% at 100% 0%,rgba(251,79,83,.32),transparent 64%),linear-gradient(160deg,var(--navy) 0%,var(--navy-900) 100%);color:#ffffffd6}
.alert-band h2{color:#fff;margin:0 0 10px}
.alert-band p{margin:0;color:#ffffffcf;max-width:46ch}
.alert-form{display:flex;flex-direction:column;gap:10px}
.alert-form input{padding:15px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:#ffffff1a;color:#fff;font-family:var(--font-ui);font-size:.95rem}
.alert-form input::placeholder{color:#ffffffa6}
.alert-form .btn{width:100%}
.alert-note{margin:0;font-size:.8rem;color:#ffffffa6!important}
@media (max-width:860px){.alert-band{grid-template-columns:1fr;gap:24px;padding:34px 26px}}

/* Home: compact services strip */
.section-lead{max-width:62ch;margin:0 0 24px;color:var(--muted)}
.service-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.service-link{display:flex;flex-direction:column;gap:2px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:inherit;transition:transform .16s ease,box-shadow .2s ease,border-color .2s ease}
.service-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--blue);color:inherit}
.service-link strong{font-family:var(--font-ui);font-size:.98rem;color:var(--ink)}
.service-link span{font-size:.82rem;color:var(--muted)}
@media (max-width:900px){.service-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.service-strip{grid-template-columns:1fr}}

/* Video embed: poster first, YouTube only after a click */
.video-embed{margin:30px 0 34px;max-width:760px}
.video-poster{position:relative;display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#0f1b2a;cursor:pointer;aspect-ratio:16/9}
.video-poster img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease,opacity .35s ease}
.video-poster:hover img,.video-poster:focus-visible img{transform:scale(1.02);opacity:.94}
.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 8px 28px rgba(8,18,30,.35)}
.video-play::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-42%,-50%);border-style:solid;border-width:15px 0 15px 25px;border-color:transparent transparent transparent #10233a}
.video-badge{position:absolute;left:14px;bottom:14px;padding:6px 11px;border-radius:999px;background:rgba(10,20,32,.8);color:#fff;font-family:var(--font-ui);font-size:.74rem;font-weight:600;letter-spacing:.02em}
.video-embed figcaption{margin-top:11px;font-size:.86rem;line-height:1.55;color:var(--muted)}
.video-frame{position:relative;aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#000}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Weather comparison: icons, tinted cells, readable rows */
.wx{width:17px;height:17px;flex:0 0 17px;vertical-align:-3px;margin-right:.35rem}
.wx-sun{color:#f2a33c}
.wx-partly{color:#e0a63b}
.wx-rain{color:#6b8ea3}
.article-table td.t-cold{background:#eef2f5;color:#425462}
.article-table td.t-mild{background:#fdf4e4}
.article-table td.t-warm{background:#fdf0d9;font-weight:600}
.article-table td.t-hot{background:#fbe6c4;font-weight:700}
.article-table th .wx{vertical-align:-2px}
.feels td{font-size:.9rem}
.temp-row .temp-bar.bar-cold{background:linear-gradient(90deg,#93a7b6,#6b8ea3)}
.temp-row .temp-bar.bar-mild{background:linear-gradient(90deg,#f7d08a,#efb04f)}
.temp-row .temp-bar.bar-warm{background:linear-gradient(90deg,#f8c46a,var(--coral))}
.temp-name{display:flex;align-items:center}

/* Route comparison table on destination pages */
.route-table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:.97rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.route-table thead th{background:var(--mist);font-family:var(--font-ui);font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--royal);text-align:left;padding:10px 14px;border-bottom:1px solid var(--line)}
.route-table th,.route-table td{padding:11px 14px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:middle}
.route-table tbody tr:last-child td{border-bottom:0}
.route-table td{color:var(--text);white-space:normal}
.route-table td:first-child a{font-weight:600}
.route-table tbody tr:hover{background:var(--bg-soft)}
@media (max-width:560px){.route-table{display:block;overflow-x:auto}.route-table th,.route-table td{padding:9px 11px;font-size:.88rem;white-space:nowrap}}

/* Long call-to-action labels must not push the viewport sideways on phones */
@media (max-width:560px){
  .btn{white-space:normal;text-align:center;max-width:100%}
  .section-foot,.signoff-actions{max-width:100%}
  .section-foot .btn{display:inline-flex;width:auto}
}

/* Press and media */
.press-lede{max-width:74ch}
.press-lede h2{margin-top:0}
.press-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 28px;margin:0 0 24px}
.press-top{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin:0 0 16px}
.press-kicker{margin:0;font-family:var(--font-ui);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--royal)}
.press-copy{display:inline-flex;align-items:center;gap:8px;background:var(--royal);color:#fff;border:0;border-radius:999px;padding:12px 22px;font-family:var(--font-ui);font-size:.95rem;font-weight:700;line-height:1;cursor:pointer;transition:background .15s ease}
.press-copy:hover{background:#0a1f4d}
.press-copy:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.press-copy.is-copied{background:#0f7a4f}
.press-release h2{margin-top:0;font-size:1.5rem}
.press-release h3{margin-top:26px}
.press-release p{margin:0 0 14px}
.press-release ul{margin:0 0 14px;padding-left:22px}
.press-release li{margin-bottom:8px}
.press-meta{font-family:var(--font-ui);font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.press-rules{list-style:none;padding:0;margin:0;display:grid;gap:12px;max-width:74ch}
.press-rules li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;margin:0}
.press-rules svg{margin-top:5px;color:var(--royal)}
.press-table{width:100%;border-collapse:collapse;font-size:1rem}
.press-table th,.press-table td{border-bottom:1px solid var(--line-soft);padding:11px 12px;text-align:left;vertical-align:top}
.press-table tr:last-child th,.press-table tr:last-child td{border-bottom:0}
.press-table th{width:32%;font-family:var(--font-ui);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.press-contact{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.press-note{color:var(--muted);font-size:.95rem}
@media (max-width:560px){.press-card{padding:20px 18px}.press-table th{width:40%}.press-top{justify-content:flex-start}}
.press-scroll{overflow-x:auto;margin:0 0 12px}
.press-table-wide{min-width:760px;font-size:.95rem}
.press-table-wide thead th{background:var(--mist);color:var(--royal);font-family:var(--font-ui);font-size:.76rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;width:auto;border-bottom:1px solid var(--line)}
.press-table-wide th[scope="row"]{width:auto;font-family:inherit;font-size:1rem;font-weight:700;letter-spacing:0;text-transform:none;color:var(--text)}
.press-fine{font-size:.9rem;color:var(--muted);margin:0 0 18px}
.press-ends{font-family:var(--font-ui);font-weight:700;letter-spacing:.14em;margin:22px 0 6px}
@media (max-width:560px){.press-copy{padding:14px 20px;font-size:1rem}}

/* Christmas markets feature: centred column with room to breathe */
.christmas-feature .container{max-width:860px;text-align:center}
.christmas-feature .eyebrow{justify-content:center}
.christmas-feature h2{margin-left:auto;margin-right:auto;max-width:24ch}
.christmas-feature p{margin-left:auto;margin-right:auto}
.christmas-feature .signoff-actions{justify-content:center;margin:0 0 26px}
.christmas-feature .container>p:last-child{margin:26px auto 0;font-size:1.02rem;color:var(--muted)}
.christmas-feature .container>p:last-child a{font-weight:600;border-bottom:1px solid rgba(1,86,228,.35);padding-bottom:1px}
@media (max-width:560px){.christmas-feature .signoff-actions{margin-bottom:22px}.christmas-feature .container>p:last-child{margin-top:22px}}

/* Footer credit */
.footer-credit{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;color:#ffffffc7}
.footer-credit:hover{color:#fff}
.footer-credit:hover span{text-decoration:underline}
.footer-credit .fb-flag{flex:0 0 auto;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.28)}
@media (max-width:560px){.footer-credit{font-size:.8rem}}
.footer-credit:hover{text-decoration:underline;text-underline-offset:2px}

/* Festive nav call to action */
.btn-festive{background:linear-gradient(120deg,#0b5d3b,#137a4c);color:#fff;border-color:#0b5d3b;box-shadow:0 14px 28px -14px rgba(11,93,59,.8)}
.btn-festive:hover{background:linear-gradient(120deg,#0e6f47,#158a56);color:#fff}
.btn-festive svg{color:#ffd76a;flex:0 0 auto}
.nav-links .nav-cta .btn-festive{background:linear-gradient(120deg,#0b5d3b,#137a4c);color:#fff}
.nav-links .nav-cta .btn-festive:hover{background:linear-gradient(120deg,#0e6f47,#158a56);color:#fff}

/* Service disclaimer reads at the same size as the affiliate disclosure box */
.footer-disclaimer{font-size:1.1rem;line-height:1.7}

/* At a glance: page summary for readers and assistants */
.glance{padding:0 0 64px}
.glance-card{max-width:860px;margin:0 auto;padding:22px 26px;border:1px solid var(--line);border-left:4px solid var(--royal);border-radius:var(--radius-sm);background:var(--bg-soft)}
.glance-card h2{margin:0 0 8px;font-size:1.12rem;letter-spacing:0;color:var(--ink)}
.glance-lede{margin:0 0 10px;font-size:1rem !important;line-height:1.6 !important;color:var(--text)}
.glance-list{margin:0 0 12px;padding-left:18px;display:grid;gap:4px}
.glance-list li{font-size:.95rem !important;line-height:1.5 !important;color:var(--text)}
.glance-meta{margin:0;font-size:.84rem !important;color:var(--muted)}
.glance-meta a{color:var(--royal)}
@media (max-width:560px){.glance{padding-bottom:40px}.glance-card{padding:18px 16px}}

/* Footer disclosures: one width, one size, matched corners */
.footer-disclosure,
.footer-disclaimer{max-width:none;margin:0;padding:18px 22px;border-radius:14px}
.footer-disclosure{margin-bottom:14px}
.footer-disclosure p,
.footer-disclaimer{font-size:1rem !important;line-height:1.65 !important}
@media (max-width:560px){.footer-disclosure,.footer-disclaimer{padding:16px 18px}}

/* Trust band: partners compared, contract holder, how we earn */
.trust-band{background:#fff;padding-top:12px}
.trust-head{max-width:760px;margin:0 auto 38px;text-align:center}
.trust-head p{margin:0;color:var(--muted)}
.brand-row{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:12px;margin:0 0 40px;padding:0}
.brand-row li{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:138px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft)}
.brand-word{font-family:var(--font-head);font-size:1.2rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.1}
.brand-tag{font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.trust-card{padding:26px 24px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-sm)}
.trust-card h3{margin:0 0 10px;font-size:1.18rem;line-height:1.2}
.trust-card p{margin:0 0 12px;font-size:1rem !important;line-height:1.62 !important;color:var(--text)}
.trust-card p:last-child{margin-bottom:0}
.trust-card a{display:inline-block;font-weight:700;font-size:.95rem;color:var(--navy);border-bottom:2px solid var(--amber)}
.trust-facts{margin:28px 0 0;text-align:center;font-size:.9rem !important;color:var(--muted)}
@media (max-width:860px){
  .trust-grid{grid-template-columns:1fr}
  .brand-row{gap:10px;margin-bottom:30px}
  .brand-row li{min-width:calc(50% - 5px);flex:1 1 calc(50% - 5px);padding:14px}
  .brand-word{font-size:1.08rem}
}
.search-dock{display:none}
@media (max-width:860px){
  .search-dock{position:fixed;left:12px;right:12px;bottom:12px;z-index:110;display:flex;gap:10px;padding:10px;border-radius:18px;background:rgba(3,25,94,.97);box-shadow:0 18px 40px -18px rgba(2,17,63,.75);transform:translateY(150%);visibility:hidden;transition:transform .28s ease,visibility .28s ease}
  .search-dock.is-visible{transform:none;visibility:visible}
  .search-dock .btn{flex:1 1 0;min-height:48px;padding:12px 14px;font-size:.95rem}
  body.has-search-dock{padding-bottom:84px}
}
@media (max-width:860px) and (prefers-reduced-motion:reduce){.search-dock{transition:none}}
@media (max-width:860px){.brand-row li:last-child{flex:1 1 100%}}

/* Contextual CTAs inside guides */
.cta-inline{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:22px 0 30px;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:var(--bg-soft)}
.cta-inline .btn{min-height:54px}
.cta-inline-note{flex:1 1 100%;margin:0;font-size:.86rem !important;line-height:1.4 !important;color:var(--muted)}
.time-scale{flex:1 1 100%;display:flex;align-items:center;gap:12px;margin:0 0 6px;font-size:.88rem !important;color:var(--muted)}
.time-scale-value{min-width:62px;font-weight:800;color:var(--ink)}
.time-scale-track{position:relative;flex:1;height:8px;border-radius:999px;background:var(--line);overflow:hidden}
.time-scale-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--sky),var(--royal))}
.time-scale-note{font-weight:600}
#search{scroll-margin-top:calc(var(--nav-h) + 12px)}

/* App-like mobile: bigger targets, less empty space */
@media (max-width:860px){
  .section{padding:56px 0}
  .cta-inline .btn{min-height:58px}
  .search-dock{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .search-dock .btn{min-height:56px;font-size:1rem}
  body.has-search-dock{padding-bottom:96px}
}
@media (max-width:560px){
  .section{padding:42px 0}
  .cta-inline{flex-direction:column;align-items:stretch;padding:16px}
  .cta-inline .btn{width:100%}
}

/* Affiliate disclosure at the point of search */
.hero-disclosure{max-width:700px;margin:14px auto 0;text-align:center;font-size:.92rem;line-height:1.5;color:#ffffffd9}
.hero-disclosure a{color:#fff;text-decoration:underline;text-underline-offset:2px}
@media (min-width:1080px){.hero-disclosure{margin-left:0;text-align:left}}
.hero-disclosure{font-size:.9rem !important;line-height:1.5 !important}
@media (max-width:560px){.hero-disclosure{font-size:.82rem !important;text-align:left;max-width:34ch;margin-top:10px}}

/* Press & media band before the footer */
.press-band{background:var(--mist);border-top:1px solid var(--line);padding:60px 0}
.press-band-head{max-width:660px;margin:0 auto 28px;text-align:center}
.press-band-head h2{margin-bottom:10px;font-size:clamp(1.6rem,2.6vw,2.2rem)}
.press-band-head p{margin:0;color:var(--muted)}
.press-band-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:960px;margin:0 auto}
.press-band-card{display:block;padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:#fff;color:inherit}
.press-band-card strong{display:block;margin-bottom:4px;font-family:var(--font-ui);font-size:1rem;color:var(--ink)}
.press-band-card span{display:block;font-size:.92rem;line-height:1.5;color:var(--muted)}
.press-band-card:hover{border-color:var(--royal);color:inherit}
@media (max-width:860px){.press-band{padding:40px 0}.press-band-grid{grid-template-columns:1fr}}

/* Third contextual CTA: the destination guide, as a quiet text link */
.cta-inline-guide{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-weight:700;font-size:.95rem;color:var(--navy);border-bottom:2px solid var(--amber);padding-bottom:1px}
.cta-inline-guide:hover{color:var(--royal)}
@media (max-width:560px){.cta-inline-guide{align-self:flex-start;margin-top:2px}}
@media (max-width:560px){.cta-inline-guide{padding:10px 0;min-height:44px;margin-top:0}}

/* Citable opening summary */
.cite-line{margin:-14px 0 26px;font-size:.8rem !important;line-height:1.5 !important;color:var(--muted)}
.cite-line .cite-url{font-family:var(--font-ui);font-weight:600;color:var(--text);word-break:break-all}
.article-body .cite-line{font-size:.8rem !important;line-height:1.5 !important;margin:-14px 0 26px}
.article-body .cite-line .cite-url{font-size:.95em}
.article-body .cite-line{margin:-6px 0 26px}

/* Quick category strip (home) */
.quick-cats{background:#fff;padding:20px 0 8px;border-bottom:1px solid var(--line-soft)}
.quick-cats ul{list-style:none;display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin:0;padding:0}
.quick-cats a{display:flex;flex-direction:column;align-items:center;gap:9px;padding:10px 6px;border-radius:14px;font-family:var(--font-ui);font-weight:700;font-size:.86rem;line-height:1.25;text-align:center;color:var(--ink)}
.quick-cats a:hover{background:var(--bg-soft);color:var(--navy)}
.qc-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--mist);color:var(--royal)}
.quick-cats li:nth-child(2n) .qc-ic{background:var(--lagoon-soft);color:#0177aa}
.quick-cats li:nth-child(3n) .qc-ic{background:var(--shell);color:var(--coral-deep)}
@media (max-width:860px){
  .quick-cats{padding:14px 0 4px}
  .quick-cats ul{display:flex;overflow-x:auto;gap:10px;padding-bottom:8px;scroll-snap-type:x mandatory;scrollbar-width:none}
  .quick-cats ul::-webkit-scrollbar{display:none}
  .quick-cats li{flex:0 0 auto;scroll-snap-align:start}
  .quick-cats a{font-size:.8rem;padding:8px 6px;min-width:86px}
  .qc-ic{width:48px;height:48px}
}

/* Application email, revealed in the browser */
.email-reveal{font:inherit;font-weight:700;color:var(--royal);background:none;border:0;border-bottom:2px solid var(--amber);padding:0 0 1px;cursor:pointer}
.email-live{font-weight:700;color:var(--royal);word-break:break-all}

/* Airline logos in the Compared with strip */
.brand-row li{min-width:150px}
.brand-logo{display:block;height:26px;width:auto;max-width:100%;object-fit:contain}
@media (max-width:860px){.brand-row li{min-width:calc(50% - 5px)}.brand-logo{height:23px}}


/* Fixed header is 114–126 px tall: give anchored headings more clearance */
.article-body h2[id]{scroll-margin-top:140px}
@media (max-width:860px){.article-body h2[id]{scroll-margin-top:130px}}

/* Flight search widget anchor also clears the fixed header */
#tpwl-search{scroll-margin-top:140px}
@media (max-width:860px){#tpwl-search{scroll-margin-top:130px}}

/* Weekend cost calculator */
.calc-card{margin:28px 0 34px;padding:26px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#fff,var(--bg-soft));box-shadow:var(--shadow-sm)}
.calc-form{display:grid;grid-template-columns:1fr 160px;gap:16px}
.calc-field label{display:block;margin-bottom:6px;font-family:var(--font-ui);font-size:.86rem;font-weight:700;color:var(--ink)}
.calc-field select{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font:inherit;color:var(--ink)}
.calc-result{margin:22px 0;padding:24px 26px;border-radius:18px;color:#fff;background:radial-gradient(ellipse 60% 80% at 100% 100%,rgba(251,79,83,.35),transparent 60%),linear-gradient(150deg,var(--navy),var(--navy-700))}
.calc-label,.calc-per{margin:0;color:#ffffffc9;font-size:.92rem}
.calc-range{margin:4px 0 2px;font-family:var(--font-head);font-size:clamp(2rem,4vw,2.75rem);font-weight:800;line-height:1.05;color:#fff}
.calc-table-wrap{overflow-x:auto}
.calc-table{width:100%;border-collapse:collapse;font-size:.93rem}
.calc-table th,.calc-table td{padding:11px 12px;border-bottom:1px solid var(--line-soft);text-align:left}
.calc-table thead th{font-family:var(--font-ui);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--mist)}
.calc-table tbody th{font-weight:600;color:var(--ink)}
.calc-table td:not(:first-child){white-space:nowrap}
.calc-table tfoot th,.calc-table tfoot td{font-weight:700;color:var(--ink);background:var(--shell);border-bottom:0}
.calc-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.calc-note{margin:14px 0 0;font-size:.82rem;line-height:1.5;color:var(--muted)}
.calc-links{margin:10px 0 0;font-size:.9rem}
@media (max-width:640px){.calc-card{padding:18px}.calc-form{grid-template-columns:1fr}.calc-result{padding:20px}.calc-table th,.calc-table td{padding:9px 8px;font-size:.86rem}}

/* Comparisons */
.compare-scroll{margin:26px 0;border:1px solid var(--line);border-radius:18px;overflow-x:auto}
.compare-table{width:100%;min-width:560px;border-collapse:collapse;font-size:.95rem}
.compare-table th,.compare-table td{padding:13px 16px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}
.compare-table thead th{background:var(--mist);font-family:var(--font-ui);font-size:.88rem;color:var(--ink)}
.compare-table tbody th{font-weight:600;color:var(--ink)}
.compare-table tbody tr:last-child th,.compare-table tbody tr:last-child td{border-bottom:0}
.compare-table .is-total{background:var(--shell)}
.compare-table .is-total th,.compare-table .is-total td{font-weight:700}
.compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.compare-tile{display:flex;flex-direction:column;gap:10px;padding:26px 24px;border:1px solid var(--line);border-radius:22px;background:#fff;color:var(--ink);box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .25s ease}
.compare-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:var(--ink)}
.compare-tile-kicker{font-family:var(--font-ui);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--coral-deep)}
.compare-tile h2{margin:0;font-size:1.4rem}
.compare-tile p{margin:0;font-size:.94rem;color:var(--muted)}
.compare-tile-link{margin-top:auto;font-family:var(--font-ui);font-weight:700;font-size:.9rem;color:var(--royal)}
.compare-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0 30px}
.compare-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;font-family:var(--font-ui);font-weight:600;font-size:.9rem;color:var(--ink)}
.compare-card:hover{border-color:var(--blue);color:var(--ink)}
.compare-more{margin-top:26px;font-size:.92rem;color:var(--muted)}
@media (max-width:860px){.compare-grid{grid-template-columns:1fr}.compare-cards{grid-template-columns:1fr}}

/* Mid-article next-step block */
.midlink{margin:36px 0;padding:22px 24px;border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:16px;background:linear-gradient(180deg,#fff,var(--shell))}
.midlink-kicker{margin:0 0 4px;font-family:var(--font-ui);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--coral-deep)}
.midlink h3{margin:0 0 14px;font-size:1.15rem}
.midlink ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.midlink li{display:grid;gap:2px}
.midlink a{font-family:var(--font-ui);font-weight:700;font-size:.95rem}
.midlink li span{font-size:.88rem;line-height:1.5;color:var(--muted)}

/* The site's 1.16rem !important paragraph rule would flatten these components */
.article-body .calc-label,
.article-body .calc-per{font-size:.92rem !important;line-height:1.5 !important}
.article-body .calc-range{font-size:clamp(2rem,4vw,2.75rem) !important;line-height:1.05 !important}
.article-body .calc-note{font-size:.82rem !important;line-height:1.5 !important}
.article-body .calc-links{font-size:.9rem !important;line-height:1.6 !important}
.article-body .midlink-kicker{font-size:.76rem !important;line-height:1.4 !important}
.article-body .midlink li span{font-size:.88rem !important;line-height:1.5 !important}
.article-body .compare-more{font-size:.92rem !important;line-height:1.6 !important}

/* Reading progress + sticky section index */
:root{--head-h:126px;--toc-h:48px;--toc-safe-h:84px}
@media (max-width:860px){:root{--head-h:114px;--toc-h:44px;--toc-safe-h:58px}}
.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:140;pointer-events:none}
.reading-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--sky),var(--royal) 45%,var(--amber) 75%,var(--coral))}
.page-toc{position:sticky;top:var(--head-h);z-index:95;background:#fff;border-bottom:1px solid var(--line-soft);box-shadow:0 10px 24px -22px rgba(3,25,94,.35)}
.page-toc-inner{display:flex;align-items:center;gap:12px;height:var(--toc-h);max-width:var(--maxw);margin:0 auto;padding:0 24px;overflow:hidden}
.page-toc-label{flex:0 0 auto;font-family:var(--font-ui);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.page-toc ul{display:flex;align-items:center;gap:2px;flex:1;min-width:0;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth}
.page-toc ul::-webkit-scrollbar{display:none}
.page-toc a{display:block;padding:6px 11px;border-radius:999px;font-family:var(--font-ui);font-size:.82rem;font-weight:600;color:var(--muted);white-space:nowrap;text-decoration:none}
.page-toc a:hover{background:var(--bg-soft);color:var(--navy)}
.page-toc a.is-active{background:var(--mist);color:var(--navy)}
.page-toc-top{flex:0 0 auto;font-family:var(--font-ui);font-size:.78rem;font-weight:700;color:var(--royal);white-space:nowrap}
.has-toc :is(section[id], h2[id]){scroll-margin-top:calc(var(--head-h) + var(--toc-real-h, var(--toc-safe-h)) + 14px)}
@media (max-width:860px){.page-toc-inner{padding:0 16px;gap:6px}.page-toc-label,.page-toc-top{display:none}.page-toc a{font-size:.78rem;padding:6px 9px}}

/* Desktop: wrap every section link so no label is clipped */
@media (min-width:1025px){
  .page-toc-inner{height:auto;min-height:var(--toc-h);flex-wrap:wrap;padding:6px 24px;gap:4px 10px}
  .page-toc ul{flex-wrap:wrap;overflow:visible;row-gap:2px}
  .page-toc a{font-size:.8rem;padding:5px 9px}
}

/* Tablet/mobile: native dropdown instead of a clipped chip strip */
.page-toc-select{display:none}
@media (max-width:1024px){
  .page-toc ul{display:none}
  .page-toc-label,.page-toc-top{display:none}
  .page-toc-select{display:block;flex:1;min-width:0;height:32px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:999px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%230b2b6b' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 10px center;background-size:10px 6px;color:var(--navy);font-family:var(--font-ui);font-size:.8rem;font-weight:600;appearance:none;cursor:pointer}
}

/* Desktop menu: centred labels in individually coloured pills */
@media (min-width:1001px){
  .nav-links-group > ul{gap:2px}
  .nav-links-group > ul > li{display:flex}
  .nav-links-group > ul > li > a{
    display:flex;align-items:center;justify-content:center;
    min-height:44px;padding:10px 9px;font-size:.98rem;line-height:1.15;
    white-space:nowrap;text-align:center;border-radius:12px;
  }
  .nav-links-group > ul > li:nth-child(1) > a{background:#e6f6fe}
  .nav-links-group > ul > li:nth-child(2) > a{background:#fdeaea}
  .nav-links-group > ul > li:nth-child(3) > a{background:#e9efff}
  .nav-links-group > ul > li:nth-child(4) > a{background:#e8f7ec}
  .nav-links-group > ul > li:nth-child(5) > a{background:#fff3de}
  .nav-links-group > ul > li:nth-child(6) > a{background:#e3f7f5}
  .nav-links-group > ul > li:nth-child(7) > a{background:#f2ecfc}
  .nav-links-group > ul > li:nth-child(1) > a:hover{background:#cdecfb}
  .nav-links-group > ul > li:nth-child(2) > a:hover{background:#fbdada}
  .nav-links-group > ul > li:nth-child(3) > a:hover{background:#d8e4fe}
  .nav-links-group > ul > li:nth-child(4) > a:hover{background:#d4f0dc}
  .nav-links-group > ul > li:nth-child(5) > a:hover{background:#ffe8c6}
  .nav-links-group > ul > li:nth-child(6) > a:hover{background:#cef0ec}
  .nav-links-group > ul > li:nth-child(7) > a:hover{background:#e6dbfa}
  .nav-links .nav-cta .btn{padding:15px 22px;font-size:1rem;min-height:50px}
}

/* Hidden Gems for you: a gold corner tab on the menu, a normal item in the mobile dropdown */
.nav-bar{position:relative}
.nav-hidden-gems{list-style:none}
.nav-hidden-gems a{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid #ecd6a8;border-radius:999px;background:linear-gradient(120deg,#fff4dc,#ffe8bd);color:#5a3a00;font-family:var(--font-ui);font-size:.78rem;font-weight:700;line-height:1.2;white-space:nowrap;text-decoration:none;box-shadow:0 8px 16px -10px rgba(90,58,0,.55)}
.nav-hidden-gems a:hover{background:#ffe3ad;color:#3f2800}
.nav-hidden-gems svg{flex:0 0 auto}
@media (min-width:1001px){
  .nav-hidden-gems{position:absolute;top:-13px;right:18px;margin:0;z-index:6}
}
@media (max-width:1000px){
  .nav-hidden-gems{margin-top:6px}
  .nav-hidden-gems a{display:flex;width:100%;justify-content:center;padding:13px 16px;border-radius:14px;font-size:.95rem}
}

/* Hidden Gems article: keep the in-page CTA clear of the fixed header */
#guide{scroll-margin-top:calc(var(--head-h) + 16px)}

/* Hidden Gems article: readable market lists without changing other pages */
.article-body .gem-list{list-style:disc outside;padding-left:1.45em}
.article-body .gem-list li{padding-left:.15em;margin-bottom:14px}
.article-body .gem-list li::marker{color:var(--royal)}
.article-body .gem-list li strong{font-weight:700;color:var(--navy)}

/* Hidden Gems hub: two guide cards */
.gem-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:34px}
.gem-hub-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;color:inherit;box-shadow:var(--shadow-sm);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.gem-hub-card:hover{transform:translateY(-4px);border-color:var(--mist-line);box-shadow:var(--shadow);color:inherit}
.gem-hub-card:focus-visible{outline:2px solid var(--royal);outline-offset:4px}
.gem-hub-card figure{margin:0;aspect-ratio:16 / 9;overflow:hidden;background:var(--mist)}
.gem-hub-card figure img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.gem-hub-card:hover figure img{transform:scale(1.03)}
.gem-hub-card-body{display:flex;flex:1;flex-direction:column;padding:26px 26px 24px}
.gem-hub-card-body .eyebrow{margin-bottom:8px;font-size:.8rem}
.gem-hub-card h3{font-size:1.45rem;line-height:1.12;margin-bottom:10px}
.gem-hub-card p{margin:0 0 20px;color:var(--muted);font-size:.97rem;line-height:1.6}
.gem-hub-link{margin-top:auto;font-family:var(--font-ui);font-weight:700;font-size:.92rem;color:var(--royal)}
@media (max-width:760px){.gem-hub-grid{grid-template-columns:1fr;gap:18px;margin-top:24px}.gem-hub-card-body{padding:22px 20px 20px}.gem-hub-card h3{font-size:1.3rem}}
