.alb-full{
  position:relative;
  width:100%;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box;
  isolation:isolate;
  overflow:visible!important;
  color:var(--alb-text,#14233a);
}
.alb-full *{box-sizing:border-box}
.alb-full::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:0;
  bottom:0;
  left:50%;
  width:100vw;
  width:100dvw;
  transform:translateX(-50%);
  pointer-events:none;
}
.alb-soft-section::before{background:var(--alb-section-bg,#f5f7fa)}
.alb-white-section::before,.alb-promo-section::before{background:#fff}
.alb-inner{
  width:min(calc(100% - 40px),var(--alb-max,1360px));
  max-width:var(--alb-max,1360px)!important;
  margin:0 auto!important;
}
/* Unified vertical rhythm: tighter than v1.1.1 to reduce empty gaps between homepage blocks. */
.alb-white-section,.alb-soft-section{padding:44px 0 48px}
.alb-promo-section{padding:40px 0 44px}
.alb-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
.alb-section-head h2{margin:0;color:var(--alb-text,#14233a);font:inherit;font-size:clamp(28px,2.3vw,40px);line-height:1.08;font-weight:750}
.alb-section-head a,.alb-section-head a:visited{color:var(--alb-text,#14233a)!important;font-weight:700;text-decoration:none;white-space:nowrap}
.alb-section-head a span{margin-left:6px}

/* Main promo: deliberately larger than card sections, no shadow. */
.alb-promo{
  display:grid;
  grid-template-columns:minmax(340px,42%) 1fr;
  min-height:420px;
  border-radius:var(--alb-radius,22px);
  overflow:hidden;
  text-decoration:none!important;
  background-color:#dce6f5;
  background-position:center;
  background-size:cover;
  color:#fff!important;
  box-shadow:0 10px 30px rgba(26,48,78,.10)!important;
  position:relative;
}
.alb-promo:visited{color:#fff!important}
.alb-promo-copy{
  padding:52px 50px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:linear-gradient(90deg,var(--alb-promo-overlay-start,rgba(23,63,131,.92)) 0%,var(--alb-promo-overlay-end,rgba(23,63,131,0)) 100%);
  min-width:0;
  position:relative;
  z-index:1;
}
/* Clean gradient transition: no perforation and no ticket cut-outs. */
.alb-promo-copy::before,
.alb-promo-copy::after,
.alb-promo-spacer::before{display:none!important;content:none!important}
.alb-promo-spacer{min-height:420px;position:relative}
.alb-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:800;opacity:.82;margin-bottom:12px}
.alb-promo h2{font:inherit;font-size:clamp(32px,3vw,52px);line-height:1.03;margin:0 0 16px;color:#fff!important;font-weight:780}
.alb-promo p{font-size:17px;line-height:1.5;margin:0 0 28px;color:rgba(255,255,255,.92)!important;max-width:560px}
.alb-promo-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:auto}
.alb-button{display:inline-flex;align-items:center;gap:10px;padding:12px 17px;border-radius:12px;font-weight:750}
.alb-button-light{background:#fff;color:var(--alb-primary-dark,#173f83)!important}
.alb-promo-price{font-size:30px;font-weight:800;white-space:nowrap;color:#fff!important}
.alb-promo-price small{font-size:13px;font-weight:600;opacity:.82}

.alb-carousel-wrap{position:relative}
.alb-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 12px}
.alb-carousel::-webkit-scrollbar{display:none}
.alb-route-grid{grid-auto-columns:minmax(275px,calc((100% - 60px)/4))}
.alb-offer-grid,.alb-airport-grid{grid-auto-columns:minmax(260px,calc((100% - 60px)/4))}
.alb-card,.alb-card:visited{
  scroll-snap-align:start;
  background:#fff;
  border-radius:var(--alb-radius,22px);
  overflow:hidden;
  text-decoration:none!important;
  color:var(--alb-text,#14233a)!important;
  box-shadow:0 14px 36px rgba(26,48,78,.08),0 3px 10px rgba(26,48,78,.04);
  border:1px solid rgba(75,96,122,.08);
  transition:transform .18s ease,box-shadow .18s ease;
}
.alb-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(26,48,78,.11),0 5px 14px rgba(26,48,78,.05)}
.alb-card-image{height:190px;background:#dfe7f1 center/cover no-repeat;position:relative}
.alb-badge{
  position:absolute;left:14px;top:14px;
  background:var(--alb-primary,#2458ad);
  color:#fff!important;
  padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800
}
.alb-card-body{padding:20px}
.alb-card h3{font:inherit;font-size:22px;line-height:1.15;margin:4px 0 8px;color:var(--alb-text,#14233a)!important;font-weight:760}
.alb-card p{margin:0;color:var(--alb-muted,#66758a)!important;font-size:15px;line-height:1.45}
.alb-route-codes{font-size:13px;font-weight:800;color:var(--alb-muted,#66758a)!important;letter-spacing:.04em}
.alb-price{margin-top:24px;font-size:25px;font-weight:800;color:var(--alb-text,#14233a)!important}
.alb-price small{font-size:13px;font-weight:600;color:var(--alb-muted,#66758a)!important}
.alb-iata{display:inline-block;font-size:12px;font-weight:800;color:var(--alb-primary,#2458ad)!important;border:1px solid rgba(36,88,173,.25);border-radius:8px;padding:4px 7px}
.alb-offer-image{height:160px;background:#dfe7f1 center/cover no-repeat}
.alb-inline-price{margin-top:16px;color:var(--alb-text,#14233a)!important;font-size:20px;font-weight:800}
.alb-arrow{position:absolute;z-index:3;top:45%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid #d7e0eb;background:#fff;color:var(--alb-text,#14233a);font-size:28px;line-height:1;box-shadow:0 6px 18px rgba(20,35,58,.10);cursor:pointer}
.alb-prev{left:-20px}.alb-next{right:-20px}
.alb-airline-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.alb-airline-card{display:flex;align-items:center;gap:18px;padding:22px}
.alb-airline-logo{width:72px;height:72px;flex:0 0 72px;border-radius:18px;background:#f4f6f9;display:grid;place-items:center;overflow:hidden}
.alb-airline-logo img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center}
.alb-airline-logo span{font-size:26px;font-weight:800;color:var(--alb-primary,#2458ad)}
.alb-airline-card h3{margin:0 0 5px;font-size:19px}
.alb-airline-card p{font-size:14px}
.alb-faq-inner{max-width:min(var(--alb-max,1360px),980px)!important}
.alb-faq-list{display:grid;gap:12px}
.alb-faq-item{background:#fff;border-radius:16px;border:1px solid rgba(75,96,122,.10);box-shadow:0 12px 28px rgba(26,48,78,.06),0 3px 10px rgba(26,48,78,.03);overflow:hidden}
.alb-faq-item summary{list-style:none;cursor:pointer;padding:20px 22px;font-weight:750;color:var(--alb-text,#14233a);display:flex;align-items:center;justify-content:space-between;gap:20px}
.alb-faq-item summary::-webkit-details-marker{display:none}
.alb-faq-item summary span{font-size:24px;color:var(--alb-primary,#2458ad);transition:transform .2s}
.alb-faq-item[open] summary span{transform:rotate(45deg)}
.alb-faq-answer{padding:0 22px 22px;color:var(--alb-muted,#66758a);line-height:1.6}
.alb-faq-answer p:last-child{margin-bottom:0}

@media(max-width:1050px){
  .alb-route-grid,.alb-offer-grid,.alb-airport-grid{grid-auto-columns:minmax(270px,calc((100% - 40px)/3))}
  .alb-airline-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .alb-promo{grid-template-columns:1fr 48%;min-height:380px}
  .alb-promo-copy{padding:40px}
  .alb-promo-spacer{min-height:380px}
}
@media(max-width:720px){
  .alb-white-section,.alb-soft-section{padding:30px 0 34px}
  .alb-promo-section{padding:26px 0 30px;overflow:hidden!important}
  .alb-inner{width:min(calc(100% - 28px),var(--alb-max,1360px))}
  .alb-section-head{align-items:center;margin-bottom:16px}
  .alb-section-head h2{font-size:28px}
  .alb-section-head a{font-size:13px}

  /* Mobile promo: stay fully inside the viewport and be 20% taller. */
  .alb-promo{
    grid-template-columns:minmax(0,1fr) 92px;
    min-height:432px;
    width:100%;
    max-width:100%!important;
    background-position:center;
    overflow:hidden;
  }
  .alb-promo-copy{
    padding:34px 24px;
    min-height:432px;
  }
  .alb-promo-spacer{
    display:block;
    min-height:432px;
  }
  .alb-promo-copy::before,
  .alb-promo-copy::after,
  .alb-promo-spacer::before{
    display:none!important;
    content:none!important;
  }
  .alb-promo h2{font-size:32px}
  .alb-promo p{font-size:15px}
  .alb-promo-bottom{align-items:flex-end}
  .alb-promo-price{font-size:24px}
  .alb-carousel{grid-auto-columns:minmax(78vw,1fr);gap:14px;padding-bottom:10px}
  .alb-card-image{height:180px}
  .alb-arrow{display:none}
  .alb-airline-grid{grid-template-columns:1fr;gap:12px}
  .alb-airline-card{padding:16px}
  .alb-airline-logo{width:60px;height:60px;flex-basis:60px}
  .alb-faq-item summary{padding:18px}
  .alb-faq-answer{padding:0 18px 18px}
}

/* Airport-based offers: 4 fixed origin cards, visually distinct from popular routes. */
.alb-airport-offers-section{padding-top:48px;padding-bottom:52px}
.alb-airport-offers-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
  align-items:stretch;
}
.alb-airport-offer-card{
  min-width:0;
  background:#fff;
  border:1px solid rgba(75,96,122,.10);
  border-radius:var(--alb-radius,22px);
  overflow:hidden;
  box-shadow:0 16px 38px rgba(26,48,78,.08),0 4px 12px rgba(26,48,78,.04);
  display:flex;
  flex-direction:column;
}
.alb-airport-offer-image{
  position:relative;
  min-height:210px;
  background-color:#dfe7f1;
  background-position:center;
  background-size:cover;
  display:flex;
  align-items:flex-end;
  padding:22px 20px;
  overflow:hidden;
}
.alb-airport-offer-image::after{
  content:"";
  position:absolute;
  inset:35% 0 0;
  background:linear-gradient(to bottom,rgba(20,35,58,0),rgba(20,35,58,.68));
  pointer-events:none;
}
.alb-airport-offer-title{
  position:relative;
  z-index:1;
  color:#fff;
  font-size:clamp(20px,1.45vw,26px);
  line-height:1.12;
  font-weight:760;
  text-shadow:0 1px 8px rgba(0,0,0,.18);
}
.alb-airport-offer-list{display:flex;flex-direction:column;flex:1}
.alb-airport-offer-route,
.alb-airport-offer-route:visited{
  min-height:84px;
  padding:15px 18px;
  border-bottom:1px solid rgba(75,96,122,.13);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  color:var(--alb-text,#14233a)!important;
  text-decoration:none!important;
  background:#fff;
  transition:background .15s ease;
}
.alb-airport-offer-route:hover{background:var(--alb-section-bg,#f5f7fa)}
.alb-airport-route-name{min-width:0;display:flex;flex-direction:column;gap:2px}
.alb-airport-route-name small{
  color:var(--alb-muted,#66758a)!important;
  font-size:13px;
  line-height:1.2;
  font-weight:600;
}
.alb-airport-route-name strong{
  color:var(--alb-text,#14233a)!important;
  font-size:19px;
  line-height:1.18;
  font-weight:760;
  overflow-wrap:anywhere;
}
.alb-airport-route-price{flex:0 0 auto;display:flex;align-items:baseline;gap:5px;white-space:nowrap;color:var(--alb-text,#14233a)!important}
.alb-airport-route-price small{font-size:12px;color:var(--alb-muted,#66758a)!important;font-weight:650}
.alb-airport-route-price b{font-size:21px;line-height:1;font-weight:800;color:var(--alb-primary,#2458ad)!important}
.alb-airport-offer-footer{padding:16px 18px 18px;margin-top:auto;background:#fff}
.alb-airport-offer-footer a,
.alb-airport-offer-footer a:visited{
  min-height:48px;
  border:1.5px solid var(--alb-primary,#2458ad);
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:var(--alb-primary-dark,#173f83)!important;
  text-decoration:none!important;
  font-weight:750;
}
.alb-airport-offer-footer a:hover{background:var(--alb-primary,#2458ad);color:#fff!important}

@media(max-width:1180px){
  .alb-airport-offers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .alb-airport-offer-image{min-height:230px}
}
@media(max-width:720px){
  .alb-airport-offers-section{padding-top:32px;padding-bottom:36px}
  .alb-airport-offers-grid{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(84vw,1fr);
    grid-template-columns:none;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    padding:2px 2px 18px;
  }
  .alb-airport-offers-grid::-webkit-scrollbar{display:none}
  .alb-airport-offer-card{scroll-snap-align:start}
  .alb-airport-offer-image{min-height:190px;padding:18px}
  .alb-airport-offer-route{min-height:78px;padding:13px 16px}
  .alb-airport-route-name strong{font-size:18px}
  .alb-airport-route-price b{font-size:20px}
}
