/* Fair Deal Transfers – public website styles (Bootstrap 5 + brand layer) */
:root {
  --fd-navy: #0E2F56;
  --fd-navy-2: #17406E;
  --fd-navy-3: #2A5283;
  --fd-ink: #13202A;
  --fd-muted: #56626B;
  --fd-teal: #14B3A6;
  --fd-teal-dark: #0A7A72;
  --fd-teal-soft: #E3F4F2;
  --fd-teal-light: #7FE0D6;
  --fd-bg: #F4F5F2;
  --fd-line: #E3E6E1;
  --fd-input: #D5DAD3;
  --bs-body-font-family: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-body-color: var(--fd-ink);
  --bs-body-bg: var(--fd-bg);
  --bs-link-color: var(--fd-teal-dark);
  --bs-link-color-rgb: 10, 122, 114;
  --bs-link-hover-color: #075A54;
  --bs-border-radius: .65rem;
}
body { background: var(--fd-bg); color: var(--fd-ink); }
.font-display, h1, h2, .h1, .h2 { font-family: 'Bricolage Grotesque', var(--bs-body-font-family); letter-spacing: -0.025em; }
h1, h2 { font-weight: 800; }
.eyebrow { font-size: .8rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fd-teal-dark); }
.text-muted-fd { color: var(--fd-muted) !important; }
.bg-navy { background: var(--fd-navy) !important; color: #fff; }
.bg-teal-soft { background: var(--fd-teal-soft) !important; }
.text-teal { color: var(--fd-teal-dark) !important; }
.text-teal-light { color: var(--fd-teal-light) !important; }

/* Buttons */
.btn { font-weight: 600; border-radius: .7rem; padding: .7rem 1.25rem; }
.btn-lg { padding: .9rem 1.6rem; }
.btn-teal { background: var(--fd-teal); border-color: var(--fd-teal); color: var(--fd-navy); }
.btn-teal:hover, .btn-teal:focus { background: #0FA195; border-color: #0FA195; color: var(--fd-navy); }
.btn-navy { background: var(--fd-navy); border-color: var(--fd-navy); color: #fff; }
.btn-navy:hover, .btn-navy:focus { background: var(--fd-navy-2); border-color: var(--fd-navy-2); color: #fff; }
.btn-ghost-light { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.45); color: #fff; }
.btn-ghost-light:hover { background: rgba(255,255,255,.22); color: #fff; }
.form-control, .form-select { border-color: var(--fd-input); background-color: #FAFBF9; min-height: 50px; border-radius: .65rem; }
.form-control:focus, .form-select:focus { border-color: var(--fd-teal); box-shadow: 0 0 0 .2rem rgba(20,179,166,.2); }
.form-label { font-size: .85rem; font-weight: 600; color: #3A4650; margin-bottom: .35rem; }

/* Top bar + header */
.topbar { background: var(--fd-navy); color: #C9D4DA; font-size: .875rem; position: relative; z-index: 1035; } /* above the sticky header so the region menu isn't hidden behind it */
.topbar a { color: #fff; text-decoration: none; }
.region-btn { min-height: 36px; border: 1px solid var(--fd-navy-3); border-radius: 999px; background: var(--fd-navy-2); color: #fff; font-size: .8rem; font-weight: 600; padding: .25rem .75rem .25rem .3rem; }
.region-btn:hover, .region-btn:focus, .region-btn.show { background: var(--fd-navy-3); color: #fff; }
.region-code { background: var(--fd-teal); color: var(--fd-navy); border-radius: 999px; font-size: .7rem; font-weight: 700; padding: .15rem .45rem; margin-right: .35rem; }
.region-menu { z-index: 1040; max-width: calc(100vw - 2rem); min-width: 270px; border: 0; border-radius: .9rem; box-shadow: 0 20px 40px -12px rgba(14,47,86,.4); padding: .4rem; }
.region-menu .dropdown-item { border-radius: .6rem; padding: .55rem .7rem; display: flex; align-items: center; gap: .7rem; }
.region-menu .dropdown-item.active, .region-menu .dropdown-item:active { background: var(--fd-teal-soft); color: var(--fd-ink); }
.region-badge { width: 34px; height: 26px; border-radius: 6px; background: #EEF0EC; color: var(--fd-navy); font-size: .75rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.active .region-badge { background: var(--fd-navy); color: #fff; }
.site-header { background: #fff; border-bottom: 1px solid var(--fd-line); }
.site-header .nav-link { color: var(--fd-ink); font-weight: 500; }
.site-header .nav-link:hover { color: var(--fd-teal-dark); }
.brand-logo { height: 46px; width: auto; }

/* Hero slider */
.hero { position: relative; min-height: 620px; background: var(--fd-navy); color: #fff; overflow: hidden; }
.hero .carousel, .hero .carousel-inner, .hero .carousel-item { height: 620px; }
.hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.hero-bg.ph-1 { background-image: linear-gradient(160deg, #4E7A99 0%, #7FA3B8 38%, #C9B48E 62%, #3B4E5C 63%, #26323B 100%); }
.hero-bg.ph-2 { background-image: linear-gradient(170deg, #6E95AE 0%, #A9C3CF 45%, #5E7E5A 46%, #2F4A3A 100%); }
.hero-bg.ph-3 { background-image: linear-gradient(150deg, #2B2F3A 0%, #4C4A56 40%, #B79A78 70%, #E7D7BF 100%); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,26,48,.92) 0%, rgba(9,26,48,.70) 42%, rgba(9,26,48,.10) 78%); }
.hero-content { position: relative; padding-top: 88px; }
.hero h1 { font-size: clamp(2.4rem, 5vw, 4.1rem); line-height: 1.02; max-width: 680px; }
.hero p.lead { color: #E4EAED; max-width: 560px; }
.hero-tag { display: inline-block; background: var(--fd-teal); color: var(--fd-navy); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .45rem .85rem; border-radius: 999px; }
.hero-controls { position: absolute; left: 0; right: 0; bottom: 118px; z-index: 3; }
.hero-arrow { width: 48px; height: 48px; border-radius: 999px; border: 1px solid rgba(255,255,255,.5); background: rgba(9,26,48,.4); color: #fff; }
.hero .carousel-indicators { position: static; margin: 0 0 0 .5rem; gap: .5rem; }
.hero .carousel-indicators [data-bs-target] { width: 10px; height: 10px; border-radius: 999px; border: 0; background: rgba(255,255,255,.55); opacity: 1; margin: 0; transition: width .2s; }
.hero .carousel-indicators .active { width: 34px; background: var(--fd-teal); }

/* Quote bar */
.quote-bar { margin-top: -84px; position: relative; z-index: 5; }
.quote-card { background: #fff; border-radius: 1.25rem; padding: 1.4rem 1.5rem; box-shadow: 0 30px 60px -24px rgba(9,26,48,.45); }
.trip-tabs { background: #EEF0EC; padding: 4px; border-radius: .8rem; display: inline-flex; gap: 4px; flex-wrap: wrap; }
.trip-tabs .btn { padding: .5rem 1rem; border-radius: .6rem; border: 0; color: var(--fd-muted); background: transparent; }
.trip-tabs .btn-check:checked + .btn { background: #fff; color: var(--fd-ink); box-shadow: 0 1px 3px rgba(0,0,0,.12); }

/* Sections */
.section { padding: 88px 0 40px; }
.section-title { font-size: clamp(2rem, 3.4vw, 2.75rem); line-height: 1.08; }
.trust-item { border-left: 3px solid var(--fd-teal); padding-left: .9rem; }
.photo-tile { position: relative; overflow: hidden; border-radius: 1.4rem; display: flex; align-items: flex-end; min-height: 260px; text-decoration: none; color: #fff; height: 100%; }
.photo-tile .bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .4s; }
.photo-tile:hover .bg { transform: scale(1.04); }
.photo-tile .shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,26,48,.9) 0%, rgba(9,26,48,.25) 60%, rgba(9,26,48,0) 100%); }
.photo-tile .body { position: relative; padding: 1.6rem; }
.photo-tile h3 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 1.75rem; }
.photo-tile .more { color: var(--fd-teal-light); font-weight: 700; }
.ph-a { background-image: linear-gradient(160deg, #4E7A99 0%, #7FA3B8 38%, #C9B48E 62%, #3B4E5C 63%, #26323B 100%); }
.ph-b { background-image: linear-gradient(150deg, #2B2F3A 0%, #4C4A56 40%, #B79A78 70%, #E7D7BF 100%); }
.ph-c { background-image: linear-gradient(165deg, #1F2A36 0%, #3C5468 50%, #7D8F9C 100%); }
.ph-d { background-image: linear-gradient(175deg, #8FAFC4 0%, #CFDCE3 50%, #6D8C9E 51%, #30495B 100%); }
.wide-banner { position: relative; overflow: hidden; min-height: 460px; display: flex; align-items: center; color: #fff; }
.wide-banner .bg { position: absolute; inset: 0; background-image: linear-gradient(170deg, #6E95AE 0%, #A9C3CF 45%, #5E7E5A 46%, #2F4A3A 100%); background-size: cover; background-position: center; }
.wide-banner .shade { position: absolute; inset: 0; background: linear-gradient(270deg, rgba(9,26,48,.92) 0%, rgba(9,26,48,.65) 45%, rgba(9,26,48,.05) 80%); }
.card-fd { background: #fff; border: 1px solid var(--fd-line); border-radius: 1.1rem; }
.airport-card { overflow: hidden; text-decoration: none; color: var(--fd-ink); display: flex; flex-direction: column; height: 100%; transition: box-shadow .2s, transform .2s; }
.airport-card:hover { box-shadow: 0 16px 30px -18px rgba(14,47,86,.45); transform: translateY(-2px); color: var(--fd-ink); }
.airport-card .img { height: 170px; background-size: cover; background-position: center; position: relative; }
.code-chip { position: absolute; left: 12px; top: 12px; background: var(--fd-navy); color: #fff; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; padding: .3rem .6rem; border-radius: .5rem; }
.fleet-img { height: 160px; background: linear-gradient(180deg, #EEF2F1 0%, #DCE3E0 100%); background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.faq .accordion-button { font-weight: 600; font-size: 1.05rem; }
.faq .accordion-button:not(.collapsed) { background: var(--fd-teal-soft); color: var(--fd-ink); box-shadow: none; }
.faq .accordion-item { border: 1px solid var(--fd-line); border-radius: .9rem !important; overflow: hidden; margin-bottom: .75rem; }
.cta-band { position: relative; overflow: hidden; color: #fff; background: linear-gradient(165deg, #1F2A36 0%, #3C5468 50%, #7D8F9C 100%); background-size: cover; background-position: center; }
.cta-band::before { content: ''; position: absolute; inset: 0; background: rgba(9,26,48,.78); }
.cta-band > * { position: relative; }

/* Footer */
.site-footer { background: var(--fd-navy); color: #A9B8C0; }
.site-footer a { color: #A9B8C0; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.site-footer h6 { color: #fff; font-weight: 600; }
.footer-logo { background: #fff; border-radius: .8rem; padding: .6rem .85rem; display: inline-flex; }
.footer-logo img { height: 38px; }
.footer-bottom { border-top: 1px solid #24497A; font-size: .8rem; }

/* Inner pages */
.page-head { background: var(--fd-navy); color: #fff; padding: 56px 0 72px; }
.page-head .lead { color: #C9D4DA; }
.content-body { font-size: 1.05rem; line-height: 1.7; }
.status-steps { display: flex; justify-content: space-between; position: relative; }
.status-steps::before { content: ''; position: absolute; left: 20px; right: 20px; top: 11px; height: 3px; background: var(--fd-input); }
.status-steps .step { position: relative; text-align: center; font-size: .8rem; color: var(--fd-muted); flex: 1; }
.status-steps .dot { width: 24px; height: 24px; border-radius: 999px; background: var(--fd-input); display: block; margin: 0 auto .35rem; }
.status-steps .done .dot { background: var(--fd-teal); }
.status-steps .current .dot { background: #fff; border: 5px solid var(--fd-teal); }
.status-steps .current { color: var(--fd-ink); font-weight: 700; }
.price-hero { background: var(--fd-navy); color: #fff; border-radius: 1.25rem; }
.price-hero .amount { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 3rem; line-height: 1; }
.plate { border: 2px solid var(--fd-navy); border-radius: .5rem; padding: .25rem .5rem; font-weight: 700; letter-spacing: .05em; font-size: .85rem; background: #fff; }
.avatar { width: 56px; height: 56px; border-radius: 999px; object-fit: cover; background: #DCE3E0; display: inline-flex; align-items: center; justify-content: center; color: var(--fd-navy); font-weight: 700; }
#live-map { height: 320px; border-radius: 1rem; }

/* Mobile action bar */
.mobile-actions { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; background: #fff; border-top: 1px solid var(--fd-line); padding: .6rem 1rem 1rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
@media (max-width: 991.98px) {
  body { padding-bottom: 80px; }
  .hero, .hero .carousel, .hero .carousel-inner, .hero .carousel-item { min-height: 560px; height: 560px; }
  .hero-content { padding-top: 56px; }
  .hero-controls { bottom: 100px; }
}
@media (min-width: 992px) { .mobile-actions { display: none; } }
.mobile-actions .btn { padding: .65rem .4rem; white-space: nowrap; }
