/*
 * Public site polish layer (design pass 1).
 * Linked last in the public <head> by includes/layout.php, so it only
 * overrides look and feel. Narrow, class-scoped fixes; no layout logic.
 */
html body{background-color:#fff!important}

/* A carousel holding a single tour: show it as one wide feature card, not a lone tile beside empty space */
@media (min-width:900px){
  .tp-carousel-track>.tp-product-card:only-child{flex-direction:row!important;width:100%!important;max-width:880px!important;min-width:0!important;flex:0 1 880px!important}
  .tp-carousel-track>.tp-product-card:only-child>.tp-prod-media{flex:0 0 46%!important;width:46%!important;min-height:300px}
  .tp-carousel-track>.tp-product-card:only-child>.tp-prod-media img{height:100%!important;object-fit:cover}
  .tp-carousel-track>.tp-product-card:only-child>.tp-prod-bottom{flex:1 1 auto!important;width:auto!important;display:flex;flex-direction:column;justify-content:center;padding:24px 28px!important}
}

/* /tours: white filter field, and a soft edge on the style strip so it reads as scrollable */
.tvc-filter-sec .tvc-input-styled{background:#fff!important;border:1px solid #e2e8f0!important;border-radius:10px!important}
@media (min-width:900px){.tvc-filter-sec .tvc-input-styled{font-size:14px!important;height:44px}}
.tvc-vibe-strip{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 56px),transparent);padding-right:48px}

/* Primary buttons: one dark colour site-wide, matching card "Book Now".
   Page sheets (home-v2.css etc.) load after this file with !important, so these
   selectors carry extra specificity to win regardless of load order. */
html body .tp-search-submit,html body .tvc-omni-btn,html body .td-nav-quick-btn{background:#111a2c!important;background-image:none!important;color:#fff!important;border-color:transparent!important;box-shadow:0 4px 12px rgba(15,23,42,.18)!important}
html body .tp-search-submit:hover,html body .tvc-omni-btn:hover,html body .td-nav-quick-btn:hover{background:#1e293b!important}
.tp-search-submit:focus-visible,.tvc-omni-btn:focus-visible,.td-nav-quick-btn:focus-visible{outline:2px solid #111a2c;outline-offset:2px}

/* Trip finder wizard: photo cards (Where rows, Who 2x2 tiles, dest avatar chips).
   Only applies to elements carrying .has-img, so the text-only markup is unchanged. */
html body .tf-grid-where{grid-template-columns:1fr!important}
html body .tf-opt.has-img{flex-direction:row!important;align-items:center!important;gap:12px!important;min-height:0!important;padding:8px 14px 8px 8px!important;border:1px solid #E2E8F0!important;border-radius:12px!important;background:#fff!important}
html body .tf-opt.has-img>img{width:56px;height:56px;flex:0 0 56px;border-radius:9px;object-fit:cover;display:block}
html body .tf-opt.has-img>span{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;gap:2px!important;flex:1 1 auto!important;min-width:0;margin:0!important;padding:0!important;text-align:left!important}
html body .tf-opt.has-img{justify-content:flex-start!important;text-align:left!important;width:100%!important;line-height:1.25!important}
html body .tf-opt.has-img>img{margin:0!important;align-self:center!important}
html body .tf-opt.has-img b,html body .tf-opt.has-img small{display:block!important;margin:0!important;line-height:1.3!important;text-align:left!important}
html body .tf-opt.has-img b{font-size:15px}
html body .tf-grid-who{grid-template-columns:1fr 1fr!important;gap:10px!important}
html body .tf-grid-who .tf-opt.has-img{flex-direction:column!important;align-items:stretch!important;gap:0!important;padding:0!important;overflow:hidden}
html body .tf-grid-who .tf-opt.has-img>img{width:100%;height:auto;flex:none;aspect-ratio:4/3;border-radius:0}
html body .tf-grid-who .tf-opt.has-img>span,html body .tf-grid-who .tf-opt.has-img>div{display:flex!important;flex-direction:column!important;justify-content:flex-start!important;gap:1px!important;flex:none!important;padding:8px 10px 10px!important;text-align:left}
html body .tf-grid-who .tf-opt.has-img>img{align-self:stretch!important}
html body .tf-grid-who .tf-opt.has-img small{font-size:12px}
html body .tf-opt.has-img:hover,html body .tf-opt.has-img:focus-visible,html body .tf-opt.has-img.is-on{border-color:#0F766E!important;background:#F0FDFA!important;box-shadow:inset 0 0 0 1px #0F766E}
html body .tf-chip.has-img{display:inline-flex;align-items:center;gap:8px;padding:4px 14px 4px 4px!important;border-color:#E2E8F0}
html body .tf-chip.has-img>img{width:32px;height:32px;border-radius:50%;object-fit:cover;display:block}

/* Trip finder: Days step (trip length) - 2x2 compact tiles matching the Who photo tiles */
html body .tf-grid-len{grid-template-columns:1fr 1fr!important;gap:10px!important}
html body .tf-opt.tf-len{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:0!important;min-height:96px!important;padding:14px!important;border:1px solid #E2E8F0!important;border-radius:12px!important;background:#fff!important;text-align:left!important;line-height:1.2!important}
html body .tf-opt.tf-len b{font-size:26px!important;font-weight:800!important;letter-spacing:-.02em;line-height:1.05!important;color:#0F172A;margin:0!important}
html body .tf-opt.tf-len i{font-style:normal;font-size:13px;font-weight:600;color:#0F172A;margin:2px 0 6px}
html body .tf-opt.tf-len small{font-size:12px!important;color:#64748B!important;margin:0!important;line-height:1.3!important}
html body .tf-opt.tf-len:hover,html body .tf-opt.tf-len:focus-visible,html body .tf-opt.tf-len.is-on{border-color:#0F766E!important;background:#F0FDFA!important;box-shadow:inset 0 0 0 1px #0F766E}
html body .tf-opt.tf-len.is-on b{color:#0F766E}
