/* Homepage (design: "VoyageCrafter Home"). Tokens: navy #0B1B33, blue #1E5AA0, gold #C8A46A, pale gold #E4CFA5, cream #F7F3EC, muted #5B6577, ink #2C3A50 */
.hero-in, .show-in, .trust-in, .sec, .why-in, .reviews-head, .cta-in { max-width: 1320px; margin-left: auto; margin-right: auto; padding-left: clamp(20px, 4vw, 48px); padding-right: clamp(20px, 4vw, 48px); }
::-webkit-scrollbar { height: 0; width: 10px; }
.anchor { position: absolute; top: -70px; left: 0; width: 0; height: 0; }
.kicker { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: #8A6A30; font-weight: 700; }
.kicker-gold { color: #C8A46A; }
.stars { color: #C8A46A; letter-spacing: 2px; }
.link-more, .link-more:hover { font-weight: 700; font-size: 14px; color: #1E5AA0; }
h2 em, h3 em, h1 em { font-style: italic; }
@keyframes vcpulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes vcshimmer { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } }
@keyframes vcmarq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes vczoom { from { transform: scale(1.1); } to { transform: scale(1); } }

/* 01 Hero */
.hero { position: relative; min-height: 100vh; min-height: 100svh; overflow: hidden; background: #0B1B33; color: #fff; display: flex; align-items: flex-end; }
.hero-bg { position: absolute; inset: -8% 0 0 0; will-change: transform; }
.hero-media { position: absolute; inset: 0; background: linear-gradient(160deg,#16395E 0%,#0E2744 45%,#0B1B33 100%); animation: vczoom 22s ease-in-out infinite alternate; }
.hero-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(11,27,51,.55) 0%,rgba(11,27,51,.05) 30%,rgba(11,27,51,.25) 60%,rgba(11,27,51,.85) 100%); }
.hero-in { position: relative; width: 100%; padding-top: 140px; padding-bottom: clamp(40px, 7vh, 80px); }
.hero-pill { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.hero-pill span { width: 6px; height: 6px; border-radius: 50%; background: #C8A46A; flex-shrink: 0; }
.hero h1 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: clamp(37px, 6.07vw, 86px); line-height: 1.02; letter-spacing: -.02em; margin: 24px 0 20px; max-width: 14ch; text-wrap: balance; }
.hero h1 em { color: #E4CFA5; }
.hero-sub { font-size: clamp(15px, 1.15vw, 18px); line-height: 1.6; max-width: 52ch; margin: 0 0 40px; color: rgba(255,255,255,.88); text-wrap: pretty; }
.search { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 6px; padding: 8px; border-radius: 24px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.25); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); box-shadow: 0 30px 80px rgba(0,0,0,.25); max-width: 1080px; }
.search-f { display: flex; flex-direction: column; gap: 4px; padding: 12px 18px; border-radius: 16px; background: rgba(255,255,255,.96); color: #0B1B33; }
.search-f span { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8A6A30; }
.search-f select { border: 0; background: transparent; font-size: 14px; font-weight: 600; color: #0B1B33; padding: 2px 0; outline: none; cursor: pointer; width: 100%; }
.search-go { border: 0; cursor: pointer; border-radius: 16px; background: #0B1B33; color: #fff; font-size: 14px; font-weight: 700; padding: 18px 24px; transition: background .2s; }
.search-go:hover { background: #1E5AA0; }
.hero-ticks { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 20px; font-size: 13px; color: rgba(255,255,255,.85); }
.hero-custom, .hero-custom:hover { color: #fff; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; padding: 11px 20px; font-size: 13px; font-weight: 600; }
.hero-custom:hover { background: rgba(255,255,255,.12); }
.hero-film { position: absolute; z-index: 2; right: clamp(20px, 4vw, 48px); top: 116px; display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); background: rgba(11,27,51,.35); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.hero-film:hover { background: rgba(255,255,255,.18); }
@media (max-width: 600px) { .hero-film { top: 104px; padding: 8px 12px; } .hero-film [data-film-label] { display: none; } }

/* 03 Trust strip */
.trust { background: #fff; border-bottom: 1px solid #ECE6DB; }
.trust-in { padding-top: clamp(28px, 4vw, 48px); padding-bottom: clamp(28px, 4vw, 40px); display: flex; flex-direction: column; gap: 32px; }
.trust .stats { display: grid; grid-template-columns: repeat(var(--stat-columns, 4), minmax(0, 1fr)); align-items: start; gap: 28px; }
.trust .stats:has(.stat-rating) { grid-template-columns: minmax(0, 1.2fr) repeat(var(--support-columns, 3), minmax(0, 1fr)); }
.trust .stat { min-width: 0; display: flex; flex-direction: column; gap: 10px; padding: 12px 0 12px 28px; border-left: 1px solid #E8E3DA; }
.trust .stats:has(.stat-rating) > .stat:not(.stat-rating) { padding-top: 64px; }
.trust .stat-v { display: flex; align-items: center; gap: 16px; font-family: 'Playfair Display', serif; font-size: clamp(34px, 3.2vw, 42px); color: #0B1B33; line-height: 1.1; font-variant-numeric: tabular-nums; letter-spacing: -.025em; overflow-wrap: anywhere; }
.trust .stat-l { font-size: 13px; line-height: 1.6; color: #5B6577; max-width: 23ch; text-wrap: pretty; overflow-wrap: anywhere; }
.trust .stat-rating { order: -1; padding: 26px 28px; border: 0; border-radius: 16px; background: #0B1B33; gap: 14px; }
.trust .stat-rating:only-child { grid-column: 1 / -1; }
.trust .stat-rating .stat-v { color: #fff; font-size: 56px; }
.trust .stat-rating .stat-l { order: -1; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; color: #CFD6E0; }
.rating-detail { display: flex; flex-direction: column; gap: 7px; }
.rating-stars { position: relative; display: block; width: 92px; height: 16px; }
.rating-stars-base, .rating-stars-fill { display: flex; gap: 3px; width: 92px; color: #C8A46A; }
.rating-stars-base { opacity: .25; }
.rating-stars-fill { position: absolute; top: 0; left: 0; overflow: hidden; }
.rating-stars .ico { flex: 0 0 16px; }
.rating-scale { font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: 0; line-height: 1.4; color: #B9C3D2; }
.rating-link, .rating-link:hover { display: inline-flex; align-items: center; gap: 7px; min-height: 28px; font-size: 11px; font-weight: 500; color: #E4CFA5; }
.rating-link:hover { color: #fff; }
.rating-link:focus-visible { outline: 2px solid #E4CFA5; outline-offset: 4px; border-radius: 3px; }
.partners { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 20px 32px; padding-top: 24px; border-top: 1px solid #EFEAE2; }
.trust-in > .partners:first-child { padding-top: 0; border: 0; }
.partners-k { display: block; max-width: 14ch; font-size: 10px; font-weight: 600; line-height: 1.7; letter-spacing: .15em; text-transform: uppercase; color: #8A6A30; }
.partners-list { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; }
.partner-name { font-size: 14px; line-height: 1.4; font-weight: 600; color: #697381; letter-spacing: -.015em; overflow-wrap: anywhere; }
@media (max-width: 1099px) {
    .trust .stats { gap: 20px; }
    .trust .stat { padding-left: 20px; }
    .trust .stat-rating { padding: 24px 20px; }
    .trust .stat-rating .stat-v { font-size: 48px; gap: 12px; }
    .rating-stars, .rating-stars-base, .rating-stars-fill { width: 83px; }
    .rating-stars-base, .rating-stars-fill { gap: 2px; }
    .rating-stars .ico { flex-basis: 15px; width: 15px; }
}
@media (max-width: 899px) {
    .trust .stats { grid-template-columns: repeat(var(--stat-columns, 4), minmax(0, 1fr)); gap: 24px 20px; }
    .trust .stats:has(.stat-rating) { grid-template-columns: repeat(var(--support-columns, 3), minmax(0, 1fr)); }
    .trust .stat { padding: 0; border: 0; }
    .trust .stats:has(.stat-rating) > .stat:not(.stat-rating) { padding-top: 0; }
    .trust .stat-rating { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; gap: 6px 26px; padding: 24px 28px; }
    .trust .stat-rating .stat-v { display: contents; }
    .stat-rating .stat-v > span:first-child { grid-column: 1; grid-row: 1 / 4; align-self: center; font-size: 64px; }
    .stat-rating .stat-v > .ico { grid-column: 2; grid-row: 2; }
    .rating-detail { grid-column: 2; grid-row: 2; flex-direction: row; align-items: center; gap: 10px; }
    .rating-scale { white-space: nowrap; }
    .trust .stat-rating .stat-l { grid-column: 2; grid-row: 1; }
    .rating-link { grid-column: 2; grid-row: 3; }
    .partners { grid-template-columns: 1fr; gap: 16px; }
    .partners-k { max-width: none; }
    .partners-list { justify-content: flex-start; gap: 16px 28px; }
}
@media (max-width: 479px) {
    .trust-in { gap: 24px; }
    .trust .stats { gap: 24px 16px; }
    .trust .stat-v { font-size: 30px; }
    .trust .stat-l { font-size: 11px; line-height: 1.6; }
    .trust .stat-rating { padding: 20px; gap: 5px 20px; border-radius: 12px; }
    .stat-rating .stat-v > span:first-child { font-size: 58px; }
    .trust .stat-rating .stat-l { font-size: 9px; }
    .rating-detail { gap: 8px; flex-wrap: wrap; }
    .rating-scale { font-size: 10px; }
    .rating-link { font-size: 10px; }
    .partners { padding-top: 20px; }
    .partners-list { gap: 14px 22px; }
    .partner-name { font-size: 12px; }
}

/* Shared section rhythm */
.sec { position: relative; padding-top: clamp(72px, 9vw, 120px); scroll-margin-top: 70px; }
.sec-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 36px; }
.sec h2, .reviews h2 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: clamp(29px, 3.44vw, 45px); line-height: 1.08; margin: 14px 0 0; color: #0B1B33; }
.sec h2 em, .reviews h2 em { color: #1E5AA0; }

/* 02 Destinations slider (below the hero): active destination full-bleed, next ones as cards on the right */
.show { position: relative; overflow: hidden; background: #0B1B33; color: #fff; scroll-margin-top: 70px; }
.show-bgs, .show-bg { position: absolute; inset: 0; }
.show-bgs { z-index: 0; }
.show-shade, .show-in { z-index: 1; }
.show-bg { opacity: 0; transform: scale(1.08); transition: opacity .9s cubic-bezier(.4,0,.2,1) .1s, transform 6s cubic-bezier(.2,.7,.2,1); }
.show-bg.leaving { opacity: 1; z-index: 0; }
.show-bg.on { z-index: 1; }
.show-bg.on { opacity: 1; transform: scale(1); }
.show-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(11,27,51,.88) 0%, rgba(11,27,51,.55) 45%, rgba(11,27,51,.15) 75%, rgba(11,27,51,.35) 100%), linear-gradient(180deg, rgba(11,27,51,.25) 0%, rgba(11,27,51,0) 30%, rgba(11,27,51,.6) 100%); }
.show-in { position: relative; min-height: min(760px, 100svh); display: grid; grid-template-columns: 44px minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(20px, 3vw, 44px); align-items: center; padding-top: clamp(56px, 7vw, 88px); padding-bottom: clamp(48px, 6vw, 72px); }

.show-rail { position: relative; align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 44px; }
.show-rail-line { position: absolute; top: 12%; bottom: 22%; left: 50%; width: 1px; background: rgba(255,255,255,.28); }
.show-rail-dot { position: relative; width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.7); font-size: 0; color: transparent; transition: all .4s ease; }
.show-rail-dot.on { width: 30px; height: 30px; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.7); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); font-size: 11px; font-weight: 700; color: #fff; display: flex; align-items: center; justify-content: center; }
.show-count { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%) rotate(-90deg); transform-origin: center; font-size: 11px; font-weight: 700; letter-spacing: .12em; color: rgba(255,255,255,.6); white-space: nowrap; }
.show-count b { color: #fff; }

.show-copy { position: relative; display: flex; flex-direction: column; gap: 18px; min-width: 0; align-self: center; }
.show-stack { display: grid; }
.show-txt { grid-area: 1 / 1; display: flex; flex-direction: column; gap: 16px; visibility: hidden; }
.show-txt.on, .show-txt.out { visibility: visible; }
.show-txt.out { pointer-events: none; }
/* Reference transition: each line slides up out of a mask while the next destination's lines rise into it. */
.mask { overflow: hidden; padding: 4px 0; margin: -4px 0; }
.mask:last-child { padding-bottom: 22px; margin-bottom: -22px; }
.mask > * { will-change: transform; }
.show-txt .mask:nth-child(1) { --i: 0; }
.show-txt .mask:nth-child(2) { --i: 1; }
.show-txt .mask:nth-child(3) { --i: 2; }
.show-txt .mask:nth-child(4) { --i: 3; }
.show-txt .mask:nth-child(5) { --i: 4; }
.show-txt.out .mask > * { animation: maskOut .38s cubic-bezier(.6,0,.4,1) both; animation-delay: calc(var(--i) * 30ms); }
.show-txt.in .mask > * { animation: maskIn .7s cubic-bezier(.2,.75,.2,1) both; animation-delay: calc(460ms + var(--i) * 60ms); }
/* The outgoing destination is gone (moved up and faded) before the next one starts rising, so the two never overlap. */
@keyframes maskOut { from { transform: none; opacity: 1; } to { transform: translateY(calc(-110% - 26px)); opacity: 0; } }
@keyframes maskIn { from { transform: translateY(calc(110% + 26px)); opacity: 0; } to { transform: none; opacity: 1; } }
.show-txt.out { z-index: 0; }
.show-txt.in, .show-txt.on { z-index: 1; }
.show-tag { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: #E4CFA5; font-weight: 700; }
.show-name { font-family: Manrope, system-ui, sans-serif; font-weight: 800; text-transform: uppercase; font-size: clamp(35px, 5.25vw, 77px); line-height: .95; letter-spacing: -.01em; margin: 0; overflow-wrap: anywhere; }
.show-desc { font-size: 14px; line-height: 1.65; color: rgba(255,255,255,.82); margin: 0; max-width: 46ch; }
.show-facts { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.show-facts div { display: flex; flex-direction: column; gap: 2px; }
.show-facts span { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.show-facts strong { font-size: 14px; }
.show-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.show-explore, .show-explore:hover { display: inline-flex; align-items: center; gap: 14px; padding: 14px 22px; border-radius: 12px; background: #C8A46A; color: #0B1B33; font-weight: 700; font-size: 13px; box-shadow: 0 12px 30px rgba(0,0,0,.25); transition: background .2s, transform .2s; }
.show-explore:hover { background: #D4B37C; transform: translateY(-1px); }
.show-explore span { transition: transform .2s; }
.show-explore:hover span { transform: translateX(4px); }
.show-plan, .show-plan:hover { display: inline-flex; align-items: center; padding: 14px 22px; border-radius: 12px; border: 1px solid rgba(255,255,255,.45); color: #fff; font-weight: 700; font-size: 13px; }
.show-plan:hover { background: rgba(255,255,255,.12); }
.show-ghost { position: absolute; left: 0; bottom: calc(-1 * clamp(40px, 5vw, 64px)); transition: opacity .4s ease, transform .6s cubic-bezier(.2,.7,.2,1); font-family: Manrope, system-ui, sans-serif; font-weight: 800; font-size: clamp(24px, 2.46vw, 32px); text-transform: uppercase; color: rgba(255,255,255,.1); pointer-events: none; white-space: nowrap; }
.show-ghost.swap { opacity: 0; transform: translateY(12px); }

.show-side { display: flex; flex-direction: column; gap: 26px; min-width: 0; align-self: center; margin-right: calc(-1 * clamp(20px, 4vw, 48px)); }
.show-cards { position: relative; display: flex; gap: 16px; align-items: flex-start; overflow: hidden; padding: 4px 0 4px; }
.show-card-ghost { position: absolute; margin: 0; pointer-events: none; z-index: 2; }
.show-card { flex: 0 0 clamp(170px, 15vw, 210px); display: flex; flex-direction: column; gap: 10px; padding: 0; border: 0; background: none; color: #fff; text-align: left; cursor: pointer; margin-top: 26px; font: inherit; }
.show-card.first { flex-basis: clamp(200px, 18vw, 250px); margin-top: 0; }
.show-card-head { display: flex; flex-direction: column; gap: 6px; }
.show-card-head strong { font-size: 13px; font-weight: 700; text-shadow: 0 2px 10px rgba(0,0,0,.35); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.show-dots { display: flex; gap: 5px; }
.show-dots i { width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,.4); }
.show-dots i.on { background: #fff; }
.show-card-img { position: relative; display: block; height: clamp(220px, 20vw, 270px); border-radius: 14px; overflow: hidden; box-shadow: 0 24px 50px rgba(0,0,0,.35); transition: transform .4s ease, box-shadow .4s ease; }
.show-card.first .show-card-img { height: clamp(260px, 25vw, 330px); }
.show-card .ph { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.show-card:hover .show-card-img { transform: translateY(-4px); box-shadow: 0 30px 60px rgba(0,0,0,.45); }
.show-card:hover .ph { transform: scale(1.06); }
.show-card-go { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.92); color: #0B1B33; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; }
.show-card:focus-visible { outline: 2px solid #E4CFA5; outline-offset: 4px; border-radius: 14px; }
.show-nav { display: flex; align-items: center; gap: 10px; padding-right: clamp(20px, 4vw, 48px); }
.show-arrow { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4); background: rgba(255,255,255,.08); color: #fff; font-size: 14px; cursor: pointer; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); transition: background .2s, border-color .2s; }
.show-arrow:hover { background: #fff; color: #0B1B33; border-color: #fff; }
.show-progress { margin-left: auto; display: flex; align-items: center; gap: 12px; font-size: 11px; font-weight: 700; color: rgba(255,255,255,.7); }
.show-progress i { position: relative; width: clamp(80px, 10vw, 140px); height: 2px; background: rgba(255,255,255,.25); overflow: hidden; }
.show-progress b { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: #C8A46A; }
.show-progress b.run { animation: showBar var(--show-ms, 6500ms) linear forwards; }
@keyframes showBar { from { width: 0; } to { width: 100%; } }
.show.paused .show-progress b.run { animation-play-state: paused; }

/* 04 Featured packages */
#packages .sec-head { gap: 24px; margin-bottom: 32px; }
.tabs { display: flex; gap: 6px; padding: 6px; background: #fff; border: 1px solid #ECE6DB; border-radius: 999px; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.tabs button { border: 0; cursor: pointer; white-space: nowrap; padding: 10px 18px; border-radius: 999px; font-size: 13px; font-weight: 600; background: transparent; color: #2C3A50; transition: background .25s, color .25s; }
.tabs button.on { background: #0B1B33; color: #fff; }
.pk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.skel { border-radius: 22px; overflow: hidden; background: #fff; border: 1px solid #ECE6DB; }
.skel-img { height: 240px; background: linear-gradient(90deg,#EFEAE1 0,#F7F3EC 50%,#EFEAE1 100%); background-size: 800px 100%; animation: vcshimmer 1.2s linear infinite; }
.skel-body { padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.skel-body div { height: 12px; border-radius: 6px; background: #EFEAE1; }
.skel-body .skel-btn { height: 44px; width: 100%; border-radius: 12px; background: #F4F0E8; margin-top: 10px; }
.pk { display: flex; flex-direction: column; border-radius: 22px; overflow: hidden; background: #fff; border: 1px solid #ECE6DB; box-shadow: 0 10px 30px rgba(11,27,51,.05); transition: box-shadow .35s, transform .35s; }
.pk:hover { box-shadow: 0 26px 60px rgba(11,27,51,.14); transform: translateY(-4px); }
.pk-media { position: relative; height: 240px; overflow: hidden; }
.pk-track { position: absolute; inset: 0; display: flex; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.pk-slide { flex: 0 0 100%; height: 100%; position: relative; }
.pk-badge { position: absolute; top: 16px; left: 16px; white-space: nowrap; padding: 6px 12px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pk-dots { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 6px; pointer-events: none; }
.pk-dots span { width: 6px; height: 6px; border-radius: 6px; background: rgba(255,255,255,.95); opacity: .55; transition: width .3s, opacity .3s; }
.pk-dots span.on { width: 18px; opacity: 1; }
.pk-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255,255,255,.85); color: #0B1B33; cursor: pointer; font-size: 15px; }
.pk-arrow:hover { background: #fff; }
.pk-prev { left: 12px; }
.pk-next { right: 12px; }
.pk-body { padding: 22px 22px 20px; display: flex; flex-direction: column; gap: 14px; flex: 1; }
.pk-meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 4px 12px; font-size: 13px; color: #5B6577; }
.pk-where { font-weight: 600; white-space: nowrap; }
.pk-rate { display: flex; align-items: center; gap: 4px; white-space: nowrap; }
.pk-rate span { color: #C8A46A; }
.pk-rate strong { color: #0B1B33; }
.pk h3 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 22px; line-height: 1.2; margin: 0; color: #0B1B33; }
.pk-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pk-chips span { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: #2C3A50; padding: 6px 10px; border-radius: 999px; background: #F4F0E8; }
.pk-chips i { width: 5px; height: 5px; border-radius: 50%; background: #1E5AA0; flex-shrink: 0; }
.pk-price { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; padding-top: 14px; border-top: 1px solid #F0EBE1; margin-top: auto; }
.pk-price > div { display: flex; flex-direction: column; gap: 2px; }
.pk-from { font-size: 12px; color: #5B6577; }
.pk-from s { margin-left: 4px; }
.pk-amt { font-size: 22px; font-weight: 700; color: #0B1B33; letter-spacing: -.01em; }
.pk-amt span { font-size: 12px; font-weight: 500; color: #5B6577; letter-spacing: 0; }
.pk-save { font-size: 12px; font-weight: 700; color: #2F7A55; background: #E8F3EC; padding: 5px 9px; border-radius: 8px; white-space: nowrap; flex-shrink: 0; }
.pk-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pk-view, .pk-view:hover { text-align: center; padding: 13px; border-radius: 12px; border: 1px solid #CFC7B8; color: #0B1B33; font-weight: 700; font-size: 13px; }
.pk-view:hover { border-color: #0B1B33; }
.pk-cust, .pk-cust:hover { text-align: center; padding: 13px; border-radius: 12px; background: #0B1B33; color: #fff; font-weight: 700; font-size: 13px; }
.pk-cust:hover { background: #1E5AA0; }
.pk-note { font-size: 11px; color: #7E8796; text-align: center; }
.pk-made { display: flex; flex-direction: column; justify-content: space-between; gap: 24px; border-radius: 22px; padding: 32px; background: #0B1B33; color: #fff; min-height: 420px; }
.pk-made > div:first-child { display: flex; flex-direction: column; gap: 14px; }
.pk-made-k { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #C8A46A; font-weight: 700; }
.pk-made h3 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 28px; line-height: 1.15; margin: 0; }
.pk-made h3 em { color: #E4CFA5; }
.pk-made p { font-size: 14px; line-height: 1.65; color: rgba(255,255,255,.78); margin: 0; }
.pk-made-ticks { display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: rgba(255,255,255,.9); }
.pk-made-btn, .pk-made-btn:hover { text-align: center; padding: 15px; border-radius: 12px; background: #C8A46A; color: #0B1B33; font-weight: 700; font-size: 14px; }
.pk-made-btn:hover { background: #D4B37C; box-shadow: 0 10px 24px rgba(200,164,106,.3); }
.pk-all { display: flex; justify-content: center; margin-top: 40px; }
.pk-all a, .pk-all a:hover { padding: 14px 26px; border-radius: 999px; border: 1px solid #0B1B33; color: #0B1B33; font-weight: 700; font-size: 13px; }
.pk-all a:hover { background: #0B1B33; color: #fff; }

/* 05 Why choose us */
.why { scroll-margin-top: 70px; margin-top: clamp(72px, 9vw, 120px); background: #0B1B33; color: #fff; }
.why-in { padding-top: clamp(72px, 9vw, 120px); padding-bottom: clamp(72px, 9vw, 120px); }
.why-head { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 40px; align-items: end; margin-bottom: 56px; }
.why h2 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: clamp(29px, 3.44vw, 45px); line-height: 1.08; margin: 14px 0 0; }
.why h2 em { color: #E4CFA5; }
.why-head p { font-size: 15px; line-height: 1.7; color: rgba(255,255,255,.75); margin: 0; max-width: 48ch; }
.why-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, max(300px, calc((100% - 2px) / 3))), 1fr)); gap: 1px; background: rgba(255,255,255,.1); border-radius: 22px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); }
.why-card { background: #0B1B33; padding: 36px 32px; display: flex; flex-direction: column; gap: 14px; transition: background .3s; }
.why-card:hover { background: #12294A; }
/* Four across on wide screens (eight points = two even rows); a short last row stretches to fill. */
@media (min-width: 1100px) {
    .why-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .why-card { padding: 32px 28px; }
    .why-card:last-child:nth-child(4n+1) { grid-column: 1 / -1; }
    .why-card:last-child:nth-child(4n+2) { grid-column: span 3; }
    .why-card:last-child:nth-child(4n+3) { grid-column: span 2; }
}
@media (min-width: 980px) and (max-width: 1099px) {
    .why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .why-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
.why-n { width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(200,164,106,.5); display: flex; align-items: center; justify-content: center; color: #C8A46A; font-family: 'Playfair Display', serif; font-size: 17px; }
.why-card h3 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 22px; margin: 8px 0 0; }
.why-card p { font-size: 14px; line-height: 1.65; color: rgba(255,255,255,.72); margin: 0; }

/* Made-to-measure card: its own full row instead of an orphan cell */
@media (min-width: 600px) {
    .pk-made { grid-column: 1 / -1; min-height: 0; }
}
@media (min-width: 900px) {
    .pk-made { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) max-content; align-items: center; gap: 40px; padding: 36px 40px; }
    .pk-made-btn, .pk-made-btn:hover { padding: 16px 30px; white-space: nowrap; }
}
@media (min-width: 600px) and (max-width: 979px) {
    .why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .why-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* 06 How it works */
.how-head { text-align: center; margin: 0 auto 64px; max-width: 700px; }
.how { position: relative; }
.how-line { position: absolute; top: 31px; left: 12.5%; right: 12.5%; height: 1px; background: #E1D9CB; }
.how-line-on { height: 2px; background: #C8A46A; transform-origin: left center; }
.how-grid { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px 32px; }
.how-step { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.how-n { width: 62px; height: 62px; border-radius: 50%; background: #fff; border: 1px solid #E1D9CB; box-shadow: 0 10px 30px rgba(11,27,51,.08); display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 20px; color: #0B1B33; }
.how-step h3 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 20px; margin: 8px 0 0; color: #0B1B33; }
.how-step p { font-size: 14px; line-height: 1.6; color: #5B6577; margin: 0; max-width: 30ch; }

/* 07 Video testimonials */
.reel-section { scroll-margin-top: 100px; }
.reel-head { align-items: end; }
.reel-head p { color: #5B6577; font-size: 15px; line-height: 1.6; max-width: 42ch; margin: 18px 0 0; }
.reel-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.arrows { display: flex; gap: 10px; }
.arrow { width: 52px; height: 52px; border-radius: 50%; border: 1px solid #CFC7B8; background: #fff; color: #0B1B33; font-size: 18px; cursor: pointer; }
.arrow:hover { border-color: #0B1B33; }
.arrow:disabled { opacity: .4; cursor: default; }
.arrow-dark { border: 0; background: #0B1B33; color: #fff; }
.arrow-dark:hover { background: #1E5AA0; }
.reels { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 4px 0 18px; scrollbar-width: thin; scrollbar-color: #C8A46A transparent; }
.reel { flex: 0 0 clamp(230px, 22vw, 280px); aspect-ratio: 9 / 16; position: relative; border-radius: 22px; overflow: hidden; scroll-snap-align: start; border: 0; padding: 0; cursor: pointer; text-align: left; color: #fff; font: inherit; isolation: isolate; }
.reel:focus-visible { outline: 3px solid #1E5AA0; outline-offset: 3px; }
.reel > .ph { transition: transform .4s; }
.reel:hover > .ph { transform: scale(1.04); }
.reel-preview { pointer-events: none; }
.reel-tag { position: absolute; top: 16px; left: 16px; display: flex; align-items: center; gap: 6px; background: rgba(11,27,51,.5); padding: 7px 10px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; font-size: 10px; font-weight: 600; backdrop-filter: blur(8px); }
.reel-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(11,27,51,0) 50%,rgba(11,27,51,.85) 100%); }
.reel-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 66px; height: 66px; border-radius: 50%; border: 1px solid rgba(255,255,255,.5); background: rgba(255,255,255,.2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #fff; font-size: 18px; cursor: pointer; padding-left: 5px; }
.reel:hover .reel-play { background: rgba(255,255,255,.35); }
.reel-txt { position: absolute; left: 18px; right: 18px; bottom: 18px; color: #fff; pointer-events: none; display: flex; flex-direction: column; gap: 4px; }
.reel-txt .stars { color: #E4CFA5; font-size: 13px; }
.reel-txt strong { font-size: 15px; }
.reel-txt span:last-child { font-size: 13px; opacity: .85; }
.reel-txt .reel-watch { display: flex; align-items: center; gap: 8px; padding-top: 12px; margin-top: 10px; border-top: 1px solid rgba(255,255,255,.25); font-size: 11px; opacity: 1; }
.reel-demo-note { margin: 14px 0 0; font-size: 12px; line-height: 1.6; color: #5B6577; }
@media (max-width: 599px) { .reel { flex-basis: min(78vw, 290px); } .reel-actions { width: 100%; justify-content: space-between; gap: 12px; } .arrow { width: 44px; height: 44px; } }

/* 08 Written reviews (marquee) */
.reviews { scroll-margin-top: 70px; padding-top: clamp(72px, 9vw, 120px); overflow: hidden; }
.reviews-head { margin-bottom: 40px; display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; align-items: center; }
.reviews-head > div:not(.g-score) { display: flex; flex-direction: column; gap: 10px; }
.reviews h2 { margin: 0; }
.marq-track { display: flex; gap: 18px; width: max-content; padding: 4px 0 10px; animation: vcmarq var(--dur, 80s) linear infinite; }
.marq:hover .marq-track { animation-play-state: paused; }
.rv { width: 340px; flex-shrink: 0; background: #fff; border: 1px solid #ECE6DB; border-radius: 20px; padding: 22px 22px 20px; display: flex; flex-direction: column; gap: 12px; box-shadow: 0 8px 24px rgba(11,27,51,.04); }
.rv, .rv:hover { color: inherit; transition: border-color .25s, box-shadow .25s, transform .25s; }
a.rv:hover { border-color: #CFC7B8; box-shadow: 0 18px 44px rgba(11,27,51,.12); transform: translateY(-3px); }
.rv p { font-size: 14px; line-height: 1.65; color: #2C3A50; margin: 0; text-wrap: pretty; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.rv-who { display: flex; align-items: center; gap: 12px; }
.rv-init { width: 40px; height: 40px; border-radius: 50%; background: #1E5AA0; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; flex-shrink: 0; }
.rv-who > div { display: flex; flex-direction: column; min-width: 0; }
.rv-who strong { font-size: 14px; color: #0B1B33; }
.rv-who span { font-size: 12px; color: #5B6577; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-g { margin-left: auto; }
.rv-stars { font-size: 15px; letter-spacing: 2px; }
.rv-more { display: inline-flex; align-items: center; gap: 5px; margin-top: auto; padding-top: 4px; font-size: 12px; font-weight: 700; color: #1E5AA0; }
.g-score, .g-score:hover { display: inline-flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 18px; background: #fff; border: 1px solid #ECE6DB; color: #0B1B33; box-shadow: 0 10px 30px rgba(11,27,51,.06); transition: box-shadow .25s, transform .25s; }
a.g-score:hover { box-shadow: 0 18px 40px rgba(11,27,51,.12); transform: translateY(-2px); }
.g-score-v { font-family: 'Playfair Display', serif; font-size: 34px; line-height: 1; }
.g-score-meta { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: #5B6577; }
.g-score-meta .stars { font-size: 15px; letter-spacing: 2px; }
.g-score-go { width: 32px; height: 32px; border-radius: 50%; background: #F4EFE6; display: inline-flex; align-items: center; justify-content: center; margin-left: 4px; }
.reviews-foot { max-width: 1320px; margin: 24px auto 0; padding: 0 clamp(20px, 4vw, 48px); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; }
.reviews-write, .reviews-write:hover { font-size: 13px; font-weight: 600; color: #5B6577; text-decoration: underline; text-underline-offset: 3px; }
.reviews-write:hover { color: #0B1B33; }

/* 09 Traveller gallery */
.gallery { columns: 4; column-gap: 16px; }
.gal { display: block; break-inside: avoid; margin-bottom: 16px; position: relative; border-radius: 18px; overflow: hidden; }
.gal span { position: absolute; right: 12px; bottom: 12px; pointer-events: none; padding: 5px 10px; border-radius: 999px; background: rgba(11,27,51,.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #fff; font-size: 12px; font-weight: 600; }

/* 10 Seasonal offer */
.offer { position: relative; border-radius: 28px; overflow: hidden; background: #0B1B33; color: #fff; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.offer-txt { padding: clamp(32px, 5vw, 64px); display: flex; flex-direction: column; gap: 20px; position: relative; z-index: 1; }
.offer-k { display: flex; align-items: center; gap: 10px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: #C8A46A; font-weight: 700; }
.offer-k span { width: 8px; height: 8px; border-radius: 50%; background: #E26D5A; animation: vcpulse 1.6s ease-in-out infinite; }
.sec .offer h2 { font-size: clamp(29px, 3.28vw, 43px); margin: 0; color: #fff; }
.sec .offer h2 em { color: #E4CFA5; }
.offer-txt p { font-size: 15px; line-height: 1.65; color: rgba(255,255,255,.78); margin: 0; max-width: 44ch; }
.countdown { display: flex; gap: 10px; flex-wrap: wrap; }
.countdown div { min-width: 78px; padding: 14px 10px; border-radius: 16px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); text-align: center; display: flex; flex-direction: column; gap: 4px; }
.countdown span:first-child { font-family: 'Playfair Display', serif; font-size: 29px; line-height: 1; font-variant-numeric: tabular-nums; }
.countdown span:last-child { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.offer-cta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 6px; font-size: 13px; color: rgba(255,255,255,.7); }
.offer-cta strong { color: #fff; font-size: 15px; }
.offer-btn, .offer-btn:hover { background: #C8A46A; color: #0B1B33; font-weight: 700; font-size: 14px; padding: 16px 28px; border-radius: 999px; }
.offer-btn:hover { background: #D4B37C; }
.offer-img { position: relative; min-height: 360px; background: linear-gradient(160deg,#0F5A6E,#0B1B33); }

/* 11 Travel stories: a large lead story with its title over the photo, the rest as compact cards beside it */
.stories { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-auto-rows: 1fr; gap: 24px; }
.stories-solo { grid-template-columns: minmax(0, 1fr); }
.story, .story:hover { color: #0B1B33; }
.story-img { position: relative; overflow: hidden; }
.story-body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.story-meta { display: flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.story-cat { padding: 5px 10px; border-radius: 999px; background: #F1E7D3; color: #8A6A30; }
.story-meta .muted { color: #5B6577; }
.story h3 { font-family: 'Playfair Display', serif; font-weight: 500; line-height: 1.2; margin: 0; text-wrap: balance; }
.story p { font-size: 14px; line-height: 1.6; color: #5B6577; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.story-go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; font-size: 13px; font-weight: 700; color: #1E5AA0; }
.story-go .ico { transition: transform .25s; }
.story:hover .story-go .ico { transform: translateX(4px); }

.story-lead { grid-row: span 2; position: relative; display: flex; align-items: flex-end; min-height: 520px; border-radius: 26px; overflow: hidden; isolation: isolate; box-shadow: 0 24px 60px rgba(11,27,51,.14); }
.story-lead .story-img { position: absolute; inset: 0; z-index: -1; }
.story-lead .story-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,27,51,0) 30%, rgba(11,27,51,.35) 55%, rgba(11,27,51,.88) 100%); }
.story-lead .story-body { padding: clamp(24px, 3vw, 40px); gap: 14px; color: #fff; }
.story-lead .story-cat { background: rgba(255,255,255,.16); color: #fff; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.story-lead .story-meta .muted { color: rgba(255,255,255,.75); }
.story-lead h3 { font-size: clamp(26px, 2.6vw, 36px); color: #fff; }
.story-lead p { color: rgba(255,255,255,.82); font-size: 15px; max-width: 46ch; }
.story-lead .story-go { color: #E4CFA5; margin-top: 4px; }
.story.story-lead:hover h3 { color: #fff; }

.story-row { display: grid; grid-template-columns: minmax(0, 42%) minmax(0, 1fr); gap: 22px; align-items: stretch; padding: 14px; border-radius: 22px; background: #fff; border: 1px solid #ECE6DB; box-shadow: 0 10px 30px rgba(11,27,51,.05); }
.story-row .story-img { border-radius: 16px; min-height: 180px; }
.story-row .story-body { padding: 8px 8px 8px 0; }
.story-row h3 { font-size: 21px; }
.story-row:hover { border-color: #CFC7B8; box-shadow: 0 22px 50px rgba(11,27,51,.12); }

@media (max-width: 899px) {
    .stories { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
    .story-lead { grid-row: auto; min-height: 440px; }
}

/* 12 Final CTA + enquiry form */
.cta { scroll-margin-top: 70px; position: relative; margin-top: clamp(72px, 9vw, 120px); overflow: hidden; background: #0E2744; color: #fff; }
.cta-bg { position: absolute; inset: 0; }
.cta-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg,rgba(11,27,51,.88) 0%,rgba(11,27,51,.55) 55%,rgba(11,27,51,.3) 100%); }
.cta-in { position: relative; padding-top: clamp(72px, 9vw, 120px); padding-bottom: clamp(72px, 9vw, 120px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 56px; align-items: center; }
.cta-copy { display: flex; flex-direction: column; gap: 20px; }
.cta h2 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: clamp(32px, 4.1vw, 58px); line-height: 1.04; margin: 0; }
.cta h2 em { color: #E4CFA5; }
.cta-copy p { font-size: 16px; line-height: 1.65; color: rgba(255,255,255,.82); margin: 0; max-width: 44ch; }
.cta-ticks { display: flex; flex-direction: column; gap: 10px; font-size: 14px; color: rgba(255,255,255,.9); }
.cta-card { background: rgba(255,255,255,.96); color: #0B1B33; border-radius: 26px; padding: clamp(24px, 3vw, 36px); box-shadow: 0 40px 100px rgba(0,0,0,.35); }
.cta-done { padding: 40px 10px; text-align: center; display: flex; flex-direction: column; gap: 14px; align-items: center; }
.cta-done-tick { width: 64px; height: 64px; border-radius: 50%; background: #E8F3EC; color: #2F7A55; display: flex; align-items: center; justify-content: center; font-size: 24px; }
.cta-done h3 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 26px; margin: 0; }
.cta-done p { font-size: 14px; line-height: 1.6; color: #5B6577; margin: 0; max-width: 34ch; }
.cform { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cform h3 { grid-column: 1 / -1; font-family: 'Playfair Display', serif; font-weight: 500; font-size: 24px; margin: 0 0 4px; }
.cform .cform-full { grid-column: 1 / -1; }
.cform > div.cform-full:not(:has(*)) { display: none; }
.cform .form-errors, .cform .form-sent { margin: 0; }
.cform label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 700; color: #5B6577; min-width: 0; }
.cform input, .cform select { height: 50px; border: 1px solid #DCD4C6; border-radius: 12px; padding: 0 14px; font-size: 14px; color: #0B1B33; background: #fff; outline-color: #1E5AA0; width: 100%; }
.cform select { padding: 0 12px; }
.cform-go { grid-column: 1 / -1; border: 0; cursor: pointer; height: 56px; border-radius: 14px; background: #0B1B33; color: #fff; font-size: 15px; font-weight: 700; margin-top: 4px; }
.cform-go:hover { background: #1E5AA0; }
.cform-trust { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; font-size: 12px; color: #5B6577; }

/* Video lightbox */
.lb { position: fixed; inset: 0; z-index: 70; width: 100%; height: 100%; max-width: none; max-height: none; border: 0; margin: 0; background: rgba(6,14,28,.86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); align-items: center; justify-content: center; padding: 24px; }
.lb:not([open]) { display: none; }
.lb[open] { display: flex; }
.lb::backdrop { background: rgba(6,14,28,.6); }
body.reel-playing { overflow: hidden; }
.lb-box { position: relative; height: min(84vh, 760px); aspect-ratio: 9 / 16; max-width: 100%; border-radius: 24px; overflow: hidden; background: linear-gradient(160deg,#16395E,#0B1B33); box-shadow: 0 40px 120px rgba(0,0,0,.5); }
.lb-box video { background: #000; object-fit: contain; }
.lb-txt { position: absolute; left: 20px; right: 20px; bottom: 60px; color: #fff; pointer-events: none; display: flex; flex-direction: column; gap: 4px; }
.lb-txt .stars { color: #E4CFA5; }
.lb-label { font-size: 11px; color: #fff; align-self: flex-start; padding: 5px 8px; border-radius: 6px; background: rgba(11,27,51,.8); }
.lb-txt strong, .lb-txt span:last-child { text-shadow: 0 1px 6px #000; }
.lb-txt strong { font-size: 17px; }
.lb-txt span:last-child { font-size: 13px; opacity: .85; }
.lb-x { position: absolute; top: 24px; right: 24px; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.1); color: #fff; font-size: 17px; cursor: pointer; }

/* Breakpoints from the design: nav/floats < 1180, footer < 1100, how-it-works < 980, bento < 900, footer < 700, steps/gallery < 600 */
@media (max-width: 999px) {
    .gallery { columns: 3; }
}
@media (max-width: 979px) {
    .show-in { grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: start; min-height: 0; }
    .show-rail, .show-ghost { display: none; }
    .show-side { margin-right: calc(-1 * clamp(20px, 4vw, 48px)); }
    .show-cards { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .show-card, .show-card.first { flex-basis: min(46vw, 210px); margin-top: 0; scroll-snap-align: start; }
    .show-card-img, .show-card.first .show-card-img { height: min(60vw, 260px); }
}
@media (max-width: 979px) {
    .how-line { display: none; }
    .how-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
    .gallery { columns: 2; }
}
@media (prefers-reduced-motion: reduce) {
    .hero-media, .marq-track, .offer-k span, .show-txt .mask > * { animation: none !important; }
    .show-bg { transition: opacity .3s; transform: none; }
    .marq { overflow-x: auto; }
}

/* Icons */
.hero-ticks span, .pk-made-ticks span, .cta-ticks span, .cform-trust span, .link-more { display: inline-flex; align-items: center; gap: 7px; }
.hero-ticks .ico, .pk-made-ticks .ico, .cta-ticks .ico { color: #E4CFA5; }
.search-f > span { display: inline-flex; align-items: center; gap: 6px; }
.search-f > span .ico { color: #C8A46A; }
.show-explore span { display: inline-flex; }
.show-arrow { display: inline-flex; align-items: center; justify-content: center; }
.show-card-go .ico { width: 15px; height: 15px; }
.pk-arrow { display: inline-flex; align-items: center; justify-content: center; }
.pk-note { display: flex; align-items: center; justify-content: center; gap: 5px; }
.arrow { display: inline-flex; align-items: center; justify-content: center; }
.reel-play { display: flex; align-items: center; justify-content: center; padding-left: 3px; }
.cta-done-tick .ico { width: 28px; height: 28px; }
.cform-trust .ico { color: #2F7A55; }
.why-n .ico { color: #C8A46A; }
.how-n { position: relative; }
.how-n .ico { color: #1E5AA0; }
.how-n span { position: absolute; top: -4px; right: -4px; width: 22px; height: 22px; border-radius: 50%; background: #C8A46A; color: #0B1B33; font-family: Manrope, system-ui, sans-serif; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.hero-film .film-ico { display: inline-flex; }
.hero-film .film-play, .hero-film[aria-pressed="true"] .film-pause { display: none; }
.hero-film[aria-pressed="true"] .film-play { display: inline-block; }
.lb-x { display: inline-flex; align-items: center; justify-content: center; }

/* Phones: swipeable rows instead of very long stacks, compact search and cards */
@media (max-width: 599px) {
    .search { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 6px; border-radius: 20px; }
    .search-f { padding: 10px 12px; border-radius: 14px; min-width: 0; }
    .search-f span { font-size: 10px; letter-spacing: .06em; }
    .search-f select { font-size: 13px; }
    .search-go { grid-column: 1 / -1; padding: 15px 20px; border-radius: 14px; }
    .hero-sub { margin-bottom: 28px; }

    .pk-grid { display: flex; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
        margin-left: calc(-1 * clamp(20px, 4vw, 48px)); margin-right: calc(-1 * clamp(20px, 4vw, 48px));
        padding: 6px clamp(20px, 4vw, 48px) 22px; scroll-padding-left: clamp(20px, 4vw, 48px); }
    .pk-grid::-webkit-scrollbar { display: none; }
    .pk, .pk-made, .skel { flex: 0 0 86%; scroll-snap-align: start; }
    .pk:hover { transform: none; }
    .pk-made { min-height: 0; padding: 26px 22px; }
    .pk-media { height: 210px; }
    .pk-body { padding: 18px 18px 16px; gap: 12px; }
    .pk h3 { font-size: 20px; }
    .pk-chips span:nth-child(n+4) { display: none; }
    .pk-all { margin-top: 18px; }

    .why-head { margin-bottom: 32px; gap: 16px; }
    .why-card { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 6px 16px; padding: 22px 20px; }
    .why-n { width: 44px; height: 44px; grid-row: 1 / span 2; align-self: start; }
    .why-card h3 { margin: 0; font-size: 19px; }
    .why-card p { font-size: 13px; }

    .how-head { margin-bottom: 40px; }
    .how-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
    .how-step { gap: 10px; }
    .how-step h3 { font-size: 17px; margin-top: 4px; }
    .how-step p { font-size: 13px; }

    .countdown { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
    .countdown div { min-width: 0; padding: 12px 4px; border-radius: 14px; }
    .countdown span:first-child { font-size: 24px; }
    .countdown span:last-child { font-size: 9px; letter-spacing: .1em; }
    .offer-img { min-height: 220px; }
}
@media (max-width: 359px) {
    .how-grid { grid-template-columns: 1fr; }
    .search { grid-template-columns: 1fr; }
}

@media (max-width: 599px) {
    .story-lead { min-height: 400px; border-radius: 22px; }
    .story-row { grid-template-columns: 110px minmax(0, 1fr); gap: 14px; padding: 10px; border-radius: 18px; }
    .story-row .story-img { min-height: 110px; border-radius: 12px; }
    .story-row .story-body { padding: 4px 4px 4px 0; gap: 6px; }
    .story-row h3 { font-size: 17px; }
    .story-row p { display: none; }
    .g-score { width: 100%; }
}

/* Reviews on tablets and phones: a swipeable row (two cards on tablets, one on phones) that advances on its own, with dots */
.marq-dots { display: none; }
@media (max-width: 899px) {
    .marq { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
        padding: 4px clamp(20px, 4vw, 48px) 12px; scroll-padding-inline: clamp(20px, 4vw, 48px); }
    .marq::-webkit-scrollbar { display: none; }
    .marq-track { display: contents; animation: none; }
    .marq .rv[aria-hidden="true"] { display: none; }
    .marq .rv { width: auto; flex: 0 0 calc((100% - 14px) / 2); scroll-snap-align: start; }
    a.rv:hover { transform: none; }
    .marq-dots { display: flex; justify-content: center; gap: 8px; margin-top: 4px; }
    .marq-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 8px; background: #D9CFBE; cursor: pointer; transition: width .3s, background .3s; }
    .marq-dots button.on { width: 22px; background: #0B1B33; }
}
@media (max-width: 599px) {
    .marq .rv { flex-basis: 100%; }
}
