/* Bullet Travels – premium presentation */
:root { --bt-navy: #1D5C74; --bt-shadow: 0 18px 50px rgba(37,43,47,.14); }
body { -webkit-font-smoothing: antialiased; }
h1, h2, h3, .bt-hero-title { font-family: "League Spartan", "Manrope", sans-serif; }
.bt-i { flex: 0 0 auto; }

/* Top bar */
.bt-topbar { background: var(--bt-ink); color: #DCE6EB; font-size: 13px; }
.bt-topbar-in { max-width: 1240px; margin: 0 auto; padding: 8px 20px; display: flex; gap: 22px; align-items: center; flex-wrap: wrap; }
.bt-tb-item { display: inline-flex; align-items: center; gap: 7px; color: #DCE6EB !important; text-decoration: none !important; }
.bt-tb-item .bt-i { width: 15px; height: 15px; color: var(--bt-blue); }
a.bt-tb-item:hover { color: #fff !important; }
.bt-tb-sp { flex: 1; }
.bt-tb-ico { color: #DCE6EB !important; display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.07); }
.bt-tb-ico:hover { background: var(--bt-blue); color: var(--bt-ink) !important; }
.bt-tb-ico .bt-i { width: 14px; height: 14px; }
@media (max-width: 760px) { .bt-topbar-in { gap: 12px; padding: 7px 16px; } .bt-tb-item:not(:first-child):not([data-bt-wa]) { display: none; } .bt-tb-sp { display: none; } }

/* Sticky, slightly elevated header */
header.wp-block-template-part { position: sticky; top: 0; z-index: 50; box-shadow: 0 1px 0 rgba(37,43,47,.06); }
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 0; position: relative; } }

/* Buttons */
.bt-btn-lg { padding: .95em 1.7em !important; font-size: 1rem !important; }
.bt-btn-sand { background: var(--bt-sand) !important; color: var(--bt-ink) !important; }
.bt-btn-sand:hover { background: #f0c2ae !important; }
.bt-btn-light { background: #fff !important; color: var(--bt-ink) !important; }
.bt-badge { display: inline-block; background: var(--bt-sand); color: var(--bt-ink); font-weight: 700; font-size: .82rem; letter-spacing: .02em; padding: .35em .85em; border-radius: 6px; transform: rotate(-3deg); box-shadow: 0 6px 16px rgba(0,0,0,.15); }
.bt-illus { position: absolute; right: 10px; bottom: 10px; z-index: 3; background: rgba(37,43,47,.62); color: #fff; font-size: 10.5px; letter-spacing: .03em; padding: 3px 8px; border-radius: 999px; backdrop-filter: blur(4px); pointer-events: none; }

/* Hero slider */
.bt-hero2 { position: relative; height: clamp(520px, 78vh, 760px); overflow: hidden; background: var(--bt-ink); margin-top: 0 !important; }
.bt-slide { position: absolute; inset: 0; background: center / cover no-repeat; opacity: 0; transition: opacity 1s ease, transform 7s ease; transform: scale(1.06); }
.bt-slide.is-active { opacity: 1; transform: scale(1); z-index: 1; }
.bt-slide-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,26,30,.78) 0%, rgba(20,26,30,.45) 45%, rgba(20,26,30,.05) 80%), linear-gradient(0deg, rgba(20,26,30,.45), rgba(20,26,30,0) 40%); }
.bt-slide-in { position: relative; z-index: 2; max-width: 1240px; height: 100%; margin: 0 auto; padding: 0 20px 120px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; color: #fff; }
.bt-hero-title { font-size: clamp(2.8rem, 7vw, 5.4rem) !important; line-height: .98 !important; font-weight: 700 !important; letter-spacing: -.02em; margin: 18px 0 14px !important; color: #fff !important; max-width: 12ch; }
.bt-hero-text { font-size: clamp(1rem, 1.6vw, 1.2rem); max-width: 46ch; color: #EEF6FA; margin: 0 0 26px; }
.bt-hero-cta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.bt-hero-note { display: inline-flex; align-items: center; gap: 8px; font-size: .92rem; color: #DCE6EB; }
.bt-hero-note .bt-i { color: var(--bt-blue); }
.bt-slide .bt-illus { bottom: 130px; right: 24px; }
.bt-dots { position: absolute; z-index: 4; left: 50%; bottom: 96px; transform: translateX(-50%); display: flex; gap: 8px; }
.bt-dot { width: 34px; height: 5px; border-radius: 3px; border: 0; background: rgba(255,255,255,.45); cursor: pointer; padding: 0; }
.bt-dot.is-active { background: var(--bt-sand); }
.bt-dot:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* Floating search bar */
.bt-search { position: relative; z-index: 5; max-width: 1080px; margin: -58px auto 0 !important; background: #fff; border-radius: 16px; box-shadow: var(--bt-shadow); display: grid; grid-template-columns: 1.5fr 1fr .8fr auto; overflow: hidden; }
.bt-sf { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-right: 1px solid var(--bt-line); cursor: pointer; min-width: 0; }
.bt-sf-ico { color: var(--bt-deep); display: inline-flex; }
.bt-sf-ico .bt-i { width: 24px; height: 24px; }
.bt-sf-t { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.bt-sf-t small { font-size: .75rem; color: var(--bt-slate); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.bt-sf select, .bt-sf input { border: 0 !important; padding: 2px 0 !important; font: 600 1rem Manrope, sans-serif; color: var(--bt-ink); background: transparent; min-height: 0 !important; width: 100%; outline: none; box-shadow: none !important; }
.bt-sf:focus-within { background: var(--bt-mist); }
.bt-sf-btn { border: 0; background: var(--bt-ink); color: #fff; font: 700 1rem Manrope, sans-serif; padding: 0 28px; display: inline-flex; align-items: center; gap: 10px; cursor: pointer; min-height: 64px; }
.bt-sf-btn:hover { background: var(--bt-deep); }
.bt-sf-err { grid-column: 1 / -1; margin: 0; padding: 8px 20px; background: #FDE7EA; color: #A3162B; font-weight: 600; }
@media (max-width: 860px) { .bt-search { grid-template-columns: 1fr 1fr; margin: -40px 16px 0 !important; } .bt-sf:first-child { grid-column: 1 / -1; } .bt-sf { border-bottom: 1px solid var(--bt-line); } .bt-sf-btn { grid-column: 1 / -1; justify-content: center; } }

/* Section heads */
.bt-shead { margin: 0 auto 34px; max-width: 760px; }
.bt-shead-center { text-align: center; }
.bt-shead h2 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.05; margin: 14px 0 10px; letter-spacing: -.015em; }
.bt-shead p { color: var(--bt-slate); font-size: 1.05rem; margin: 0; }
.bt-spill { display: inline-block; background: #E4F1F7; color: var(--bt-deep); font-weight: 700; font-size: .85rem; padding: .45em 1em; border-radius: 6px; }
.bt-spill-dark { background: rgba(148,203,226,.18); color: var(--bt-blue); }

/* Photo cards */
.bt-pcards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.bt-pcard { position: relative; display: block; aspect-ratio: 3 / 4; border-radius: 16px; overflow: hidden; background: linear-gradient(135deg, var(--bt-blue), var(--bt-deep)); text-decoration: none !important; color: var(--bt-ink) !important; box-shadow: 0 10px 30px rgba(37,43,47,.10); }
.bt-pcard-img { position: absolute; inset: 0; background: center / cover no-repeat; transition: transform .6s ease; }
.bt-pcard:hover .bt-pcard-img { transform: scale(1.06); }
.bt-pcard-price { position: absolute; top: 14px; left: 14px; z-index: 2; background: rgba(255,255,255,.95); border-radius: 999px; padding: 6px 12px; font-size: .85rem; color: var(--bt-slate); }
.bt-pcard-price b { color: var(--bt-ink); font-size: 1rem; }
.bt-pcard .bt-illus { top: 14px; right: 14px; bottom: auto; }
.bt-pcard-box { position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 2; background: #fff; border-radius: 12px; padding: 16px 64px 16px 18px; display: flex; flex-direction: column; gap: 4px; transition: transform .3s ease; }
.bt-pcard:hover .bt-pcard-box { transform: translateY(-4px); }
.bt-pcard-cat { color: var(--bt-deep); font-size: .9rem; font-weight: 600; position: relative; padding-bottom: 6px; }
.bt-pcard-cat::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 2px; background: var(--bt-sand); }
.bt-pcard-title { font: 700 1.2rem/1.15 "League Spartan", sans-serif; }
.bt-pcard-go { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; border-radius: 50%; background: var(--bt-ink); color: #fff; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.bt-pcard:hover .bt-pcard-go { background: var(--bt-sand); color: var(--bt-ink); }
@media (max-width: 1100px) { .bt-pcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .bt-pcards { grid-template-columns: 1fr; } .bt-pcard { aspect-ratio: 4 / 4.2; } }

/* Why */
.bt-why { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.bt-why-media { position: relative; min-height: 520px; }
.bt-why-a, .bt-why-b { position: absolute; background: center / cover no-repeat var(--bt-mist); border-radius: 18px; box-shadow: var(--bt-shadow); overflow: hidden; }
.bt-why-a { left: 0; top: 0; width: 64%; height: 82%; }
.bt-why-b { right: 0; bottom: 0; width: 52%; height: 56%; border: 8px solid #fff; }
.bt-why-badge { position: absolute; left: 34%; bottom: 6%; background: #fff; border: 2px solid var(--bt-blue); border-radius: 14px; padding: 14px 18px; display: flex; gap: 10px; align-items: center; box-shadow: var(--bt-shadow); }
.bt-why-badge b { font: 700 1.6rem "League Spartan", sans-serif; color: var(--bt-deep); }
.bt-why-badge span { font-size: .85rem; color: var(--bt-slate); line-height: 1.2; }
.bt-why-copy h2 { font-size: clamp(2rem, 3.6vw, 2.8rem); line-height: 1.05; margin: 14px 0 22px; }
.bt-why-list { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 18px; }
.bt-why-list li { display: flex; gap: 16px; align-items: flex-start; }
.bt-why-ico { flex: 0 0 52px; height: 52px; border-radius: 50%; background: var(--bt-mist); color: var(--bt-deep); display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(37,43,47,.08); }
.bt-why-ico .bt-i { width: 24px; height: 24px; }
.bt-why-list b { display: block; font-size: 1.08rem; margin-bottom: 2px; }
.bt-why-list small { color: var(--bt-slate); font-size: .95rem; }
@media (max-width: 900px) { .bt-why { grid-template-columns: 1fr; gap: 30px; } .bt-why-media { min-height: 380px; } }

/* Dark band */
.bt-band { background: var(--bt-ink) radial-gradient(80% 120% at 100% 0%, rgba(29,92,116,.65), rgba(37,43,47,0) 60%); color: #fff; border-radius: 28px; padding: 64px 20px; margin-left: 16px !important; margin-right: 16px !important; width: auto !important; max-width: none !important; }
.bt-band-in { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 340px 1fr; gap: 48px; align-items: center; }
.bt-band-cats { background: #fff; border-radius: 18px; padding: 18px; display: grid; gap: 8px; }
.bt-band-k { color: var(--bt-slate); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; margin: 4px 6px 6px; }
.bt-band-cats a { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: 10px; background: var(--bt-mist); color: var(--bt-ink) !important; text-decoration: none !important; font-weight: 700; transition: background .2s, color .2s; }
.bt-band-cats a .bt-i { width: 22px; height: 22px; color: var(--bt-deep); }
.bt-band-cats a:hover, .bt-band-cats a:first-of-type { background: var(--bt-blue); }
.bt-band-copy h2 { color: #fff; font-size: clamp(2rem, 3.6vw, 2.8rem); line-height: 1.05; margin: 14px 0 24px; }
.bt-steps2 { list-style: none; counter-reset: s; padding: 0; margin: 0 0 30px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.bt-steps2 li { counter-increment: s; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 14px; padding: 18px; }
.bt-steps2 li::before { content: "0" counter(s); display: block; font: 700 1.8rem "League Spartan", sans-serif; color: var(--bt-sand); margin-bottom: 6px; }
.bt-steps2 b { display: block; font-size: 1.08rem; margin-bottom: 4px; }
.bt-steps2 span { color: #C9D6DD; font-size: .93rem; }
@media (max-width: 900px) { .bt-band-in { grid-template-columns: 1fr; } .bt-steps2 { grid-template-columns: 1fr; } .bt-band { padding: 44px 16px; } }

/* Mosaic */
.bt-mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 250px; gap: 20px; }
.bt-tile2 { position: relative; border-radius: 16px; overflow: hidden; background: center / cover no-repeat var(--bt-deep); color: #fff !important; text-decoration: none !important; display: flex; align-items: flex-end; padding: 22px; transition: transform .3s ease; }
.bt-tile2::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20,26,30,.8), rgba(20,26,30,0) 60%); }
.bt-tile2:hover { transform: translateY(-4px); }
.bt-tile2.wide { grid-column: span 2; }
.bt-tile2 .bt-illus { top: 12px; bottom: auto; }
.bt-tile2-t { position: relative; font: 700 1.5rem/1.1 "League Spartan", sans-serif; }
.bt-tile2-t small { display: block; font: 500 .95rem Manrope, sans-serif; color: var(--bt-blue); margin-bottom: 2px; }
.bt-tile2-promo { background: linear-gradient(135deg, #1D5C74, #252B2F); flex-direction: column; align-items: flex-start; justify-content: center; gap: 10px; }
.bt-tile2-promo::before { display: none; }
.bt-tile2-promo b { font: 700 1.5rem/1.1 "League Spartan", sans-serif; }
.bt-tile2-promo span:not(.bt-badge):not(.bt-btn) { color: #DCE6EB; font-size: .95rem; }
.bt-tile2-promo .bt-badge { transform: none; }
@media (max-width: 1000px) { .bt-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 220px; } }
@media (max-width: 560px) { .bt-mosaic { grid-template-columns: 1fr; } .bt-tile2.wide { grid-column: auto; } }

/* Whale band */
.bt-whale { position: relative; background: center / cover no-repeat #0E2A3A; color: #fff; padding: 110px 20px; overflow: hidden; }
.bt-whale-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,30,42,.88), rgba(10,30,42,.55) 55%, rgba(10,30,42,.35)); }
.bt-whale-in { position: relative; max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr 1fr; gap: 50px; align-items: center; }
.bt-whale-copy h2 { color: #fff; font-size: clamp(2.2rem, 4.4vw, 3.6rem); line-height: 1; margin: 14px 0 14px; }
.bt-whale-copy p { color: #DCE6EB; font-size: 1.08rem; max-width: 44ch; margin: 0 0 26px; }
.bt-whale-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bt-whale-tiles a { aspect-ratio: 1.25; background: rgba(29,92,116,.82); border: 1px solid rgba(148,203,226,.35); border-radius: 14px; color: #fff !important; text-decoration: none !important; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; font: 700 1.1rem "League Spartan", sans-serif; text-align: center; backdrop-filter: blur(3px); transition: background .2s, transform .2s; }
.bt-whale-tiles a .bt-i { width: 44px; height: 44px; stroke-width: 1.4; }
.bt-whale-tiles a:hover { background: var(--bt-sand); color: var(--bt-ink) !important; transform: translateY(-3px); }
.bt-whale .bt-illus { right: 0; bottom: -60px; }
@media (max-width: 900px) { .bt-whale-in { grid-template-columns: 1fr; } .bt-whale { padding: 70px 16px; } }

/* Features */
.bt-feat { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.bt-feat-c { background: #fff; border: 1px solid var(--bt-line); border-radius: 16px; padding: 26px; box-shadow: 0 6px 20px rgba(37,43,47,.05); transition: transform .2s, box-shadow .2s; }
.bt-feat-c:hover { transform: translateY(-3px); box-shadow: var(--bt-shadow); }
.bt-feat-c.is-hl { background: var(--bt-ink); color: #fff; border-color: var(--bt-ink); }
.bt-feat-c.is-hl h3 { color: #fff; } .bt-feat-c.is-hl p { color: #C9D6DD; }
.bt-feat-i { width: 52px; height: 52px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--bt-mist); color: var(--bt-deep); margin-bottom: 14px; }
.bt-feat-c.is-hl .bt-feat-i { background: rgba(148,203,226,.18); color: var(--bt-blue); }
.bt-feat-i .bt-i { width: 26px; height: 26px; }
.bt-feat-c h3 { margin: 0 0 6px; font-size: 1.2rem; }
.bt-feat-c p { margin: 0; color: var(--bt-slate); font-size: .95rem; }
@media (max-width: 900px) { .bt-feat { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .bt-feat { grid-template-columns: 1fr; } }

/* CTA */
.bt-cta2 { background: linear-gradient(120deg, #1D5C74, #252B2F); color: #fff; border-radius: 22px; padding: 44px 48px; display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; position: relative; overflow: hidden; }
.bt-cta2::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: rgba(226,171,148,.25); }
.bt-cta2 h2 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.4rem); margin: 12px 0 6px; }
.bt-cta2 p { color: #DCE6EB; margin: 0; }
.bt-cta2-btns { display: flex; gap: 12px; flex-wrap: wrap; position: relative; z-index: 1; }

/* Spacing for home sections */
.bt-home-sec { padding-top: clamp(56px, 8vw, 96px) !important; padding-bottom: 0 !important; }
.home .wp-block-post-content > *:last-child { margin-bottom: 70px; }

/* Partners / FAQ tidy */
.bt-partners .bt-partner { box-shadow: 0 6px 20px rgba(37,43,47,.06); }
.wp-block-details { border: 1px solid var(--bt-line); border-radius: 12px; padding: 14px 18px; margin-bottom: 10px !important; background: #fff; }
.wp-block-details summary { font-weight: 700; cursor: pointer; }

@media (prefers-reduced-motion: reduce) { .bt-slide, .bt-pcard-img, .bt-tile2, .bt-pcard-box { transition: none !important; } }
/* Full-bleed bands inside padded section groups */
.bt-home-sec > .bt-whale.alignfull { margin-left: -20px !important; margin-right: -20px !important; max-width: none !important; width: auto !important; }
.bt-home-sec > .bt-band.alignfull { max-width: none !important; }
.bt-tile2-promo .bt-btn { margin-top: 4px; }
@media (max-width: 520px) { header.wp-block-template-part .wp-block-buttons { display: none; } }
