/* Homepage presentation; shared footer and other public templates stay independent. */
.home-discovery { background:var(--public-soft); }
.home-discovery .container { max-width:1440px; padding-inline:28px; }
.home-discovery { --header-height:82px; --header-height-mobile:64px; }
.home-discovery .header { height:82px; background:linear-gradient(110deg,#f4f9ffed,#e2f1ffed); border-bottom:1px solid #d6e7f7; box-shadow:0 2px 18px #13274708; }
.home-discovery .nav { height:82px; }
.home-discovery .nav { gap:24px; }
.home-discovery .nav .logo-img { width:210px; max-width:none; height:auto; }
.home-discovery .nav-links { gap:24px; }
.home-discovery .nav-links a { font-size:15px; font-weight:600; }
.home-discovery .search-box { padding:0 14px; background:#ffffffc9; border:1px solid #d6e7f7; border-radius:24px; }
.home-discovery .search-box input { width:220px; height:44px; padding:0; background:transparent; border:0; font-size:13px; }
.home-discovery .nav-follow { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid #2360ea; border-radius:24px; padding:10px 20px; min-height:44px; white-space:nowrap; font-size:14px; font-weight:650; color:white; background:#2263ed; box-shadow:0 4px 12px #2263ed20; }
.home-discovery .home-welcome.hero { position:relative; isolation:isolate; z-index:3; overflow:visible; background:#eaf4fa; padding:32px 0 22px; text-align:left; margin-top:82px; }
.home-discovery .home-welcome::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#eef6fcf0 0%,#eef6fc9c 35%,transparent 66%); }
.home-hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 24%; z-index:-2; }
.home-hero-art { display:contents; }
.home-hero-art--map .home-hero-image { width:min(100%,1440px); height:310px; left:50%; transform:translateX(-50%); object-fit:contain; object-position:right top; }
.home-discovery .home-welcome:has(.home-hero-art--map) { background:#eef6fc; }
.home-discovery .home-welcome .container { display:block; }
.home-discovery .hero-content { max-width:none; width:100%; }
.home-discovery .welcome-eyebrow { color:#476382; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.home-discovery .home-welcome h1 { max-width:600px; margin:12px 0; color:#15294b; font-size:clamp(36px,3.5vw,50px); line-height:1.08; letter-spacing:-.045em; font-weight:800; }
.home-discovery .home-welcome h1 .highlight { color:#2464d9; }
.home-discovery .home-welcome p { max-width:470px; font-size:15px; line-height:1.75; color:#3d5470; margin:0 0 8px; }
.home-discovery .home-welcome .hero-content>small { display:block; color:#4d6279; font-size:12px; }
.home-flight-search { margin-top:22px; padding:14px 18px 18px; background:var(--public-surface); border:1px solid var(--public-line); border-radius:16px; box-shadow:0 14px 40px #1b3c6712; }
.home-search-caption { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; color:var(--public-text); }
.home-search-caption>span { font-size:14px; font-weight:700; }
.home-search-caption i { color:var(--public-accent); margin-right:7px; }
.home-discovery .home-search-caption small { font-size:11px; color:var(--public-muted); margin:0; }
.home-search-fields { display:grid; grid-template-columns:1fr 1.15fr 1fr auto; gap:12px; align-items:end; }
.home-search-fields label { display:block; min-width:0; }
.home-search-fields label>span { display:block; margin-bottom:6px; font-size:11px; font-weight:650; color:var(--public-muted); }
.home-search-fields input,.home-search-fields select { display:block; width:100%; min-width:0; height:46px; padding:0 12px; border:1px solid var(--public-line); border-radius:9px; background:var(--public-soft); color:var(--public-text); font:inherit; font-size:14px; }
.home-search-fields button { min-height:46px; padding:12px 20px; border-radius:9px; font-size:13px; gap:18px; }
.home-route-field { position:relative; }
.home-route-options { position:absolute; z-index:50; top:calc(100% + 6px); left:0; width:100%; min-width:230px; max-height:280px; overflow-y:auto; overscroll-behavior:contain; padding:5px; border:1px solid var(--public-line); border-radius:12px; background:var(--public-surface); box-shadow:0 12px 30px #10213c26; }
.home-route-options[hidden] { display:none; }
.home-route-options [role=option] { padding:10px 12px; min-height:52px; border-radius:8px; cursor:pointer; color:var(--public-text); }
.home-route-options [role=option]:hover,.home-route-options [aria-selected=true] { background:var(--public-soft); outline:1px solid var(--public-line); }
.home-route-options strong { display:block; font-size:14px; }
.home-route-options span { display:block; font-size:11px; color:var(--public-muted); margin-top:2px; }
.route-option-message { padding:12px; color:var(--public-muted); font-size:12px; }
.home-search-fields :focus-visible,.home-discovery .nav-follow:focus-visible,.home-clear-filters:focus-visible { outline:3px solid var(--public-accent); outline-offset:3px; }
.home-discovery .filters-section { position:static; padding:16px 0; border-block:1px solid var(--public-line); background:var(--public-surface); }
.home-discovery .filters { gap:8px; }
.home-discovery .filter-btn { border-radius:24px; min-height:44px; font-size:12px; padding:9px 16px; }
.home-discovery .sort-options select { font-size:12px; min-height:44px; border-radius:10px; }
.home-discovery .deals-section { padding:36px 0 40px; scroll-margin-top:100px; }
.home-discovery .section-header { align-items:center; margin-bottom:24px; }
.home-section-kicker { display:block; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--public-muted); margin-bottom:8px; }
.home-discovery .deals-section .section-header h2 { font-size:clamp(22px,2.2vw,29px); letter-spacing:-.035em; margin:0 0 8px; }
.home-discovery #homeResultSummary { font-size:12px; color:var(--public-muted); margin:0; }
.home-clear-filters { margin:0 0 20px; padding:8px 12px; min-height:44px; background:var(--public-surface); color:var(--public-accent); border:1px solid var(--public-line); border-radius:9px; cursor:pointer; }
.home-clear-filters[hidden] { display:none; }
.home-deals-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; }
.home-deals-layout:has(>.home-placement-side) { grid-template-columns:minmax(0,1fr) 220px; }
.home-deals-main { min-width:0; }
.home-discovery #dealsGrid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.home-discovery #dealsGrid.deals-compact { grid-template-columns:minmax(0,1fr); }
.home-discovery .flight-offer { padding:0; gap:0; overflow:hidden; grid-template-columns:minmax(0,1fr); grid-template-areas:'photo' 'route' 'facts' 'purchase' 'bottom'; border-radius:16px; background:var(--public-surface); box-shadow:0 5px 18px #172e4d06; align-content:start; }
.home-discovery .fo-photo { grid-area:photo; display:block; width:100%; aspect-ratio:16/7; min-width:0; background:linear-gradient(140deg,#ccdef6,#c2e8df); overflow:hidden; }
.home-discovery .fo-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.home-discovery .fo-photo img[hidden] { display:none; }
.home-discovery .fo-photo-empty { display:grid; place-items:center; background:radial-gradient(ellipse at 20% 90%,#c9e5e6,transparent 65%),linear-gradient(130deg,#dceafb,#b7d0f1); }
.home-discovery .fo-photo-empty>span { color:#5b80b7; font-size:55px; font-weight:300; }
.home-discovery .flight-offer .fo-route { padding:10px 14px 8px; }
.home-discovery .flight-offer .fo-badges { position:absolute; left:12px; top:12px; padding:0; margin:0; max-width:calc(100% - 74px); }
.home-discovery .flight-offer .fo-badge { box-shadow:0 2px 6px #14233b12; }
.home-discovery .flight-offer .fo-save { top:10px; right:10px; background:#fffffff2; color:#233f65; border-color:#ffffff80; }
.home-discovery .flight-offer .fo-save.saved { color:#c6375b; background:#fff0f4; }
.home-discovery .flight-offer h3 { font-size:18px; gap:7px; line-height:1.3; }
.home-discovery .flight-offer .fo-country { display:inline; font-size:11px; margin:0; }
.home-discovery .flight-offer .fo-type { display:inline; font-size:10px; margin:0 0 0 8px; }
.home-discovery .flight-offer .fo-facts { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:7px 10px; margin:0; padding:0 14px 10px; border:0; }
.home-discovery .flight-offer .fo-facts>div { min-width:0; border:0; padding:0; }
.home-discovery .flight-offer .fo-months { grid-column:1/-1; }
.home-discovery .flight-offer dt { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.home-discovery .flight-offer dd { font-size:11px; line-height:1.5; flex-wrap:nowrap; align-items:center; }
.home-discovery .flight-offer .fo-months dd { align-items:flex-start; }
.home-discovery .flight-offer .fo-connection dd { white-space:normal; }
.home-discovery .flight-offer .fo-purchase { margin:0 14px; padding:9px 0; gap:12px; flex-direction:row; align-items:center; border-top:1px solid var(--public-line); }
.home-discovery .flight-offer .fo-price strong { font-size:26px; }
.home-discovery .flight-offer .fo-cta { min-height:44px; font-size:12px; padding:10px 14px; gap:10px; }
.home-discovery .flight-offer .fo-bottom { padding:0 14px 8px; gap:8px; flex-wrap:nowrap; }
.home-discovery .flight-offer .fo-icon { width:44px; height:44px; }
.home-discovery .flight-offer .fo-actions { gap:6px; }
.home-discovery .flight-offer .fo-updated { font-size:10px; }
.home-discovery .deals-compact .flight-offer { grid-template-columns:126px minmax(0,1.1fr) minmax(0,1fr) 210px; grid-template-areas:'photo route facts purchase' 'photo route facts bottom'; padding:14px; gap:8px 18px; align-items:center; }
.home-discovery .deals-compact .fo-photo { height:100%; min-height:142px; aspect-ratio:auto; border-radius:10px; }
.home-discovery .deals-compact .flight-offer .fo-route { padding:0; }
.home-discovery .deals-compact .flight-offer h3 { font-size:19px; }
.home-discovery .deals-compact .flight-offer .fo-badges { position:static; max-width:none; margin-bottom:8px; padding-right:0; }
.home-discovery .deals-compact .flight-offer .fo-save { top:20px; left:20px; right:auto; }
.home-discovery .deals-compact .flight-offer .fo-facts { padding:0; gap:10px; }
.home-discovery .deals-compact .flight-offer .fo-purchase { margin:0; padding:0; border:0; flex-wrap:wrap; }
.home-discovery .deals-compact .flight-offer .fo-bottom { padding:0; }
.home-placement { border:1px solid var(--public-line); border-radius:14px; padding:10px; background:var(--public-surface); min-width:0; overflow:hidden; }
.home-placement>.home-ad-label { display:block; color:var(--public-muted); font-size:10px; text-transform:uppercase; letter-spacing:.08em; margin:2px 2px 8px; }
.home-placement a { display:block; color:var(--public-text); font-size:12px; line-height:1.5; }
.home-placement img { width:100%; height:auto; border-radius:8px; display:block; }
.home-placement a>span { display:block; padding:10px 2px 2px; }
.home-placement-banner { margin-top:24px; }
[data-home-placement]:empty { display:none; }
.home-discovery .destinations-section { padding:24px 0 40px; }
.home-discovery .destinations-section .discovery-heading { margin-bottom:20px; }
.home-discovery .destinations-section .discovery-heading h2 { font-size:27px; margin-bottom:6px; }
.home-discovery .destinations-section .discovery-heading p { font-size:13px; }
.home-discovery .destinations-live { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px; }
.home-discovery .destination-live { display:block; padding:0; overflow:hidden; border:1px solid var(--public-line); border-radius:12px; background:var(--public-surface); }
.destination-photo { aspect-ratio:16/8; display:grid; place-items:center; background:linear-gradient(120deg,#cdddf6,#d6eee8); color:#547ab0; font-size:32px; }
.destination-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.destination-photo img[hidden] { display:none; }
.destination-copy { padding:12px; }
.home-discovery .destination-live h3 { font-size:16px; margin:0 0 5px; }
.home-discovery .destination-live p { font-size:11px; margin:0 0 6px; color:var(--public-muted); }
.home-discovery .destination-live strong { font-size:14px; color:var(--public-accent); }
.home-discovery .destination-live small { display:block; font-size:10px; font-weight:400; }
.destination-copy>span { display:block; font-size:11px; color:var(--public-muted); margin-top:8px; }
[data-theme=dark] .home-discovery .header { background:linear-gradient(110deg,#132039f5,#203956f5); border-color:#304561; }
[data-theme=dark] .home-discovery .search-box { background:#15243b; border-color:#304561; }
[data-theme=dark] .home-discovery .search-box input { color:#e3edff; }
[data-theme=dark] .destination-photo { background:linear-gradient(120deg,#263e61,#234a51); }
[data-theme=dark] .home-discovery .home-welcome.hero { background:#12253c; }
[data-theme=dark] .home-hero-art--map .home-hero-image { filter:invert(1) hue-rotate(180deg); mix-blend-mode:screen; opacity:.85; }
[data-theme=dark] .home-discovery .home-welcome::before { background:linear-gradient(90deg,#101e34f5,#14243cbd 45%,#14243c33); }
[data-theme=dark] .home-discovery .home-welcome h1 { color:#f1f6ff; }
[data-theme=dark] .home-discovery .home-welcome h1 .highlight { color:#92bcff; }
[data-theme=dark] .home-discovery .home-welcome p,[data-theme=dark] .home-discovery .home-welcome .hero-content>small,[data-theme=dark] .home-discovery .welcome-eyebrow { color:#c1d3e9; }
[data-theme=dark] .home-discovery .fo-photo-empty { background:linear-gradient(140deg,#263e61,#234a51); }
@media(min-width:1350px) { .home-discovery #dealsGrid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; } .home-deals-layout:has(>.home-placement-side) #dealsGrid:not(.deals-compact) { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1150px) {
 .home-discovery .nav { gap:16px; } .home-discovery .nav-links { gap:16px; } .home-discovery .search-box { display:none; }
 .home-deals-layout:has(>.home-placement-side) #dealsGrid:not(.deals-compact) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .home-discovery .deals-compact .flight-offer { grid-template-columns:96px minmax(0,1fr) minmax(0,1fr) 170px; gap:12px; }
 .home-discovery .deals-compact .flight-offer .fo-purchase { flex-direction:column; align-items:stretch; }
}
@media(max-width:900px) {
 .home-discovery #dealsGrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .home-deals-layout:has(>.home-placement-side) { grid-template-columns:minmax(0,1fr); }
 .home-placement-side { max-width:300px; justify-self:center; }
 .home-search-fields { grid-template-columns:1fr 1fr; }
 .home-discovery .home-welcome h1 { max-width:55%; }
 .home-discovery .home-welcome p { max-width:55%; }
 .home-discovery .deals-compact .flight-offer { grid-template-columns:86px minmax(0,1fr) minmax(0,1fr); grid-template-areas:'photo route facts' 'purchase purchase bottom'; padding:14px; gap:14px; }
 .home-discovery .deals-compact .flight-offer .fo-purchase { flex-direction:row; align-items:center; }
 .home-discovery .destinations-live { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .home-discovery .container { padding-inline:16px; }
 .home-discovery .header,.home-discovery .nav { height:64px; }
 .home-discovery .nav .logo-img { width:155px; }
 .home-discovery .nav-follow { display:none; }
 .home-discovery .home-welcome.hero { padding:22px 0 18px; margin-top:64px; }
 .home-discovery .home-welcome::before { background:linear-gradient(90deg,#eef6fcf5,#eef6fcb8 45%,#eef6fc33); }
 .home-hero-image { height:290px; object-position:65% center; }
 /* The map follows the copy so larger text cannot overlap its route endpoints. */
 .home-hero-art--map { display:block; position:relative; height:47vw; margin-inline:-16px; overflow:hidden; }
 .home-hero-art--map .home-hero-image { inset:auto 0 0; width:100%; height:auto; aspect-ratio:1; transform:none; object-fit:contain; z-index:0; }
 .home-discovery .home-welcome:has(.home-hero-art--map) h1,
 .home-discovery .home-welcome:has(.home-hero-art--map) p { max-width:95%; }
 .home-discovery .home-welcome:has(.home-hero-art--map) .home-flight-search { margin-top:0; }
 .home-discovery .welcome-eyebrow { font-size:9px; letter-spacing:.05em; }
 .home-discovery .home-welcome h1 { font-size:34px; max-width:85%; margin:14px 0; }
 .home-discovery .home-welcome p { max-width:88%; font-size:13px; line-height:1.65; }
 .home-discovery .home-welcome .hero-content>small { display:none; }
 .home-flight-search { padding:12px; margin-top:18px; border-radius:14px; }
 .home-search-caption { display:block; margin-bottom:12px; }
 .home-search-caption>span { font-size:13px; }
 .home-search-caption small { display:block; margin-top:4px; font-size:10px; }
 .home-search-fields { gap:12px 10px; }
 .home-search-fields input,.home-search-fields select { font-size:16px; padding:0 8px; }
 .home-search-fields button { font-size:12px; padding:10px 8px; gap:6px; }
 #homeToOptions { left:auto; right:0; }
 .home-discovery .destinations-live { grid-template-columns:repeat(6,160px); overflow-x:auto; padding-bottom:10px; scroll-snap-type:x proximity; }
 .home-discovery .destination-live { scroll-snap-align:start; }
 .home-discovery .filters-section>.container { gap:8px; }
 .home-discovery .deals-section { padding-top:24px; scroll-margin-top:80px; }
 .home-discovery .deals-section .section-header { align-items:flex-start; gap:16px; }
 .home-discovery .deals-section .section-header h2 { font-size:23px; }
 .home-discovery #dealsGrid { grid-template-columns:minmax(0,1fr); gap:18px; }
 .home-discovery .fo-photo { aspect-ratio:16/6; }
 .home-discovery .flight-offer h3 { font-size:20px; }
 .home-discovery .deals-compact .flight-offer { grid-template-columns:72px minmax(0,1fr); grid-template-areas:'photo route' 'facts facts' 'purchase purchase' 'bottom bottom'; gap:10px 12px; padding:12px; }
 .home-discovery .deals-compact .fo-photo { min-height:112px; }
 .home-discovery .deals-compact .flight-offer .fo-save { top:16px; left:16px; }
 .home-discovery .deals-compact .flight-offer h3 { font-size:18px; }
 .home-discovery .deals-compact .flight-offer .fo-country { margin-top:3px; }
 .home-discovery .deals-compact .flight-offer .fo-type { margin-top:3px; }
 .home-discovery .deals-compact .flight-offer .fo-facts { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:8px 12px; }
 .home-discovery .deals-compact .flight-offer .fo-months { grid-column:1/-1; }
 .home-discovery .deals-compact .flight-offer .fo-months dt { display:none; }
 .home-discovery .deals-compact .flight-offer .fo-purchase { border-top:1px solid var(--public-line); padding-top:10px; }
 .home-discovery .deals-compact .flight-offer .fo-price strong { font-size:25px; }
 .home-discovery .deals-compact .flight-offer .fo-bottom { margin-top:-3px; }
}
