/*!
 * Airband Theme — Premium Master Stylesheet  (BUILD r3 — safe edition)
 * --------------------------------------------------------------
 *  Build marker: r3-safe — change this to verify cache invalidation.
 *  If you see "BUILD r3 — safe edition" in DevTools → Sources, the
 *  latest CSS is live.
 * --------------------------------------------------------------
 *
 *  Modern, professional, responsive design system for the
 *  Airband Custom WordPress theme. Layers ON TOP of Bootstrap 5
 *  (loaded from CDN) and replaces the legacy wpr-usedcss.css
 *  inline snapshot + airband-theme-overrides.css completely.
 *
 *  ────────────────────────────────────────────────────────────
 *  CRITICAL OVERRIDES — these load FIRST and use !important +
 *  body-prefix so WP Rocket "Remove Unused CSS", CDN minifiers,
 *  and competing legacy rules cannot strip or outrank them.
 *  ────────────────────────────────────────────────────────────
 */

/* — Buttons (no matter what, orange wins) — */
body .btn.btn-brand,
body a.btn.btn-brand,
body .btn.check-postcode,
body a.btn.check-postcode,
body .btn.check-packages-btn,
body a.btn.check-packages-btn,
body .btn-brand {
	--bs-btn-color: #fff !important;
	--bs-btn-bg: #FF6B2C !important;
	--bs-btn-border-color: #FF6B2C !important;
	--bs-btn-hover-color: #fff !important;
	--bs-btn-hover-bg: #E85A1A !important;
	--bs-btn-hover-border-color: #E85A1A !important;
	background-color: #FF6B2C !important;
	background-image: linear-gradient(135deg, #FF6B2C 0%, #E85A1A 50%, #C4421A 100%) !important;
	color: #fff !important;
	border-color: transparent !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	box-shadow: 0 14px 36px rgba(255, 107, 44, 0.30) !important;
}
body .btn.btn-brand:hover,
body a.btn.btn-brand:hover,
body .btn.check-postcode:hover,
body .btn.check-packages-btn:hover {
	background-image: linear-gradient(135deg, #FF8A4C 0%, #FF6B2C 50%, #E85A1A 100%) !important;
	transform: translateY(-2px) !important;
}

/* — Postcode search submit icon — */
body .btn.search-submit,
body button.search-submit,
body .search-form .btn.search-submit {
	width: 48px !important;
	height: 48px !important;
	padding: 0 !important;
	background-color: #FF6B2C !important;
	background-image: linear-gradient(135deg, #FF6B2C 0%, #E85A1A 50%, #C4421A 100%) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 50% !important;
	box-shadow: 0 14px 36px rgba(255, 107, 44, 0.30) !important;
	flex-shrink: 0 !important;
}

/* — Postcode search form — single pill (not split) — */
body .coverage-form .search-form,
body .coverage-form-wrapper .search-form,
body .search-form.submit-icon {
	display: flex !important;
	align-items: center !important;
	gap: 0.5rem !important;
	width: 100% !important;
	max-width: 480px !important;
	background: #fff !important;
	border: 1.5px solid rgba(15, 23, 42, 0.08) !important;
	border-radius: 999px !important;
	padding: 6px 6px 6px 18px !important;
	box-shadow: 0 4px 12px rgba(7, 20, 46, 0.06) !important;
}
body .coverage-form .search-field,
body .coverage-form-wrapper .search-field,
body .search-form .search-field {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	height: 44px !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	font-size: 0.95rem !important;
}

/* — Hide "or change address" mid-block so the postcode area doesn't split — */
body .check-packages-wrapper > .check-packages-btn,
body .change-address {
	display: none !important;
}
body .js-check-packages-toggle.check-packages-search { display: block !important; }
body .js-check-packages-toggle.check-packages-search .change-address { display: none !important; }

/* — Submenus closed by default (critical for menu sanity) — */
body .primary-header__nav-primary .sub-menu,
body #menu-primary-nav .sub-menu,
body .secondary-header__nav-switch .sub-menu,
body ul.sub-menu:not(.always-show),
body li.menu-item-has-children > ul.sub-menu {
	display: none !important;
}
@media (min-width: 992px) {
	body .primary-header__nav-primary > li:hover > .sub-menu,
	body .primary-header__nav-primary > li:focus-within > .sub-menu,
	body #menu-primary-nav > li:hover > .sub-menu,
	body #menu-primary-nav > li:focus-within > .sub-menu,
	body .secondary-header__nav-switch > li:hover > .sub-menu,
	body .secondary-header__nav-switch > li:focus-within > .sub-menu {
		display: block !important;
	}
}

/* ────────────────────────────────────────────────────────────
 * END CRITICAL OVERRIDES. Full design system continues below.
 * ──────────────────────────────────────────────────────────── */

/*
 *  Inspired by travhawk.com — colour scheme + premium feel only.
 *  No layout, structure, sections or UI is copied.
 *
 *  Inspired by travhawk.com — colour scheme + premium feel only.
 *  No layout, structure, sections or UI is copied.
 *
 *  Architecture
 *   1.  Tokens (palette, surfaces, type, motion)
 *   2.  Reset & base typography
 *   3.  Container (1340 px) & section rhythm
 *   4.  Brand colour helpers (legacy class names re-themed)
 *   5.  Buttons (Bootstrap CSS-var overrides)
 *   6.  Forms
 *   7.  Header
 *   8.  Hero
 *   9.  Message banner
 *   10. Packages (tabs, cards, prices)
 *   11. Icon-boxes / Supercharge addons
 *   12. Fullwidth-rural / Future-of-broadband
 *   13. Standard-layout-section
 *   14. Trustpilot / reviews
 *   15. FAQ
 *   16. News / posts / KB widget
 *   17. Footer (CTA + main + mailing list + secondary)
 *   18. Page-template specific scopes
 *   19. Modals
 *   20. AOS / IO fallback
 *   21. Utilities
 *   22. Responsive
 *   23. Reduced motion + print
 * --------------------------------------------------------------
 */

/* =============================================================
   1. DESIGN TOKENS
   ============================================================= */
:root {
	/* — Brand palette — */
	--ab-navy-900:  #07142E;
	--ab-navy-800:  #0B1F3A;
	--ab-navy-700:  #112B5A;
	--ab-navy-600:  #1B3D7A;
	--ab-navy-500:  #2D5BA6;
	--ab-orange-700: #C4421A;
	--ab-orange-600: #E85A1A;
	--ab-orange-500: #FF6B2C;
	--ab-orange-400: #FF8A4C;
	--ab-orange-300: #FFB084;
	--ab-orange-100: #FFE7D7;
	--ab-orange-50:  #FFF5EE;
	--ab-gold:       #FFB13D;

	/* — Surfaces — */
	--ab-white:     #FFFFFF;
	--ab-surface-1: #F7F9FC;
	--ab-surface-2: #EEF2F8;
	--ab-surface-3: #E2E8F1;

	/* — Text — */
	--ab-text:           #0F172A;
	--ab-text-soft:      #1E293B;
	--ab-text-muted:     #5B6B82;
	--ab-text-faint:     #8896A8;
	--ab-text-on-dark:   #E6EDF8;
	--ab-text-on-dark-mid: rgba(230, 237, 248, 0.78);
	--ab-text-on-dark-low: rgba(230, 237, 248, 0.55);

	/* — Borders — */
	--ab-border:         rgba(15, 23, 42, 0.08);
	--ab-border-strong:  rgba(15, 23, 42, 0.16);
	--ab-border-on-dark: rgba(255, 255, 255, 0.16);

	/* — Shadows — */
	--ab-shadow-xs:   0 1px 2px  rgba(7, 20, 46, 0.06);
	--ab-shadow-sm:   0 4px 12px rgba(7, 20, 46, 0.06);
	--ab-shadow-md:   0 12px 32px rgba(7, 20, 46, 0.08);
	--ab-shadow-lg:   0 24px 60px rgba(7, 20, 46, 0.12);
	--ab-shadow-xl:   0 36px 80px rgba(7, 20, 46, 0.16);
	--ab-shadow-glow: 0 14px 36px rgba(255, 107, 44, 0.30);

	/* — Gradients — */
	--ab-grad-primary: linear-gradient(135deg, #FF6B2C 0%, #E85A1A 50%, #C4421A 100%);
	--ab-grad-primary-hover: linear-gradient(135deg, #FF8A4C 0%, #FF6B2C 50%, #E85A1A 100%);
	--ab-grad-cool:    linear-gradient(135deg, #112B5A 0%, #1B3D7A 100%);
	--ab-grad-hero:    linear-gradient(135deg, #07142E 0%, #0B1F3A 45%, #112B5A 100%);
	--ab-grad-glass:   linear-gradient(135deg, rgba(255,255,255,0.85), rgba(255,255,255,0.55));

	/* — Radii — */
	--ab-radius-sm:   10px;
	--ab-radius-md:   14px;
	--ab-radius-lg:   20px;
	--ab-radius-xl:   28px;
	--ab-radius-pill: 999px;

	/* — Spacing system — */
	--ab-space-section:    clamp(2.5rem, 5vw, 4.5rem);
	--ab-space-section-sm: clamp(1.75rem, 3.5vw, 3rem);
	--ab-container-max:    1340px;
	--ab-container-pad:    clamp(1rem, 2vw, 1.5rem);

	/* — Motion — */
	--ab-ease:        cubic-bezier(.22, .61, .36, 1);
	--ab-ease-spring: cubic-bezier(.34, 1.56, .64, 1);
	--ab-dur-fast:    180ms;
	--ab-dur:         260ms;
	--ab-dur-slow:    480ms;

	/* — Bootstrap CSS-var theme overrides (apply theme-wide to every BS component) — */
	--bs-primary:           var(--ab-orange-500);
	--bs-primary-rgb:       255, 107, 44;
	--bs-link-color:        var(--ab-orange-600);
	--bs-link-color-rgb:    232, 90, 26;
	--bs-link-hover-color:  var(--ab-orange-500);
	--bs-body-color:        var(--ab-text);
	--bs-body-bg:           var(--ab-surface-1);
	--bs-border-color:      var(--ab-border);
	--bs-border-radius:     var(--ab-radius-md);
	--bs-border-radius-lg:  var(--ab-radius-lg);
	--bs-border-radius-pill: var(--ab-radius-pill);
}

/* =============================================================
   2. RESET & BASE TYPOGRAPHY
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 1rem;
	line-height: 1.65;
	color: var(--ab-text);
	background: var(--ab-surface-1);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	letter-spacing: -0.005em;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--ab-orange-600); text-decoration: none; transition: color var(--ab-dur) var(--ab-ease); }
a:hover { color: var(--ab-orange-500); }
::selection { background: var(--ab-orange-500); color: #fff; }

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	margin: 0 0 .75rem;
	color: var(--ab-text);
	font-weight: 800;
	line-height: 1.18;
	letter-spacing: -0.018em;
}
h1, .h1 { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.1; }
h2, .h2 { font-size: clamp(1.625rem, 2.6vw, 2.25rem); line-height: 1.15; }
h3, .h3 { font-size: clamp(1.25rem, 1.6vw, 1.5rem); line-height: 1.25; font-weight: 700; }
h4, .h4 { font-size: 1.15rem; }
h5, .h5 { font-size: 1.05rem; }
h6, .h6 { font-size: 1rem; }

p { margin: 0 0 1rem; color: var(--ab-text-soft); line-height: 1.7; }
p.lead, .lead { font-size: clamp(1.05rem, 1.2vw, 1.18rem); color: var(--ab-text-muted); }

ul, ol { padding-left: 1.25rem; }
ul li, ol li { margin-bottom: .25rem; }

hr { border: 0; height: 1px; background: var(--ab-border); margin: 2rem 0; }


/* =============================================================
   3. CONTAINER  (project rule = 1340 px) & SECTION RHYTHM
   ============================================================= */
.container,
.container-fluid {
	width: 100%;
	margin-right: auto;
	margin-left: auto;
	padding-right: var(--ab-container-pad);
	padding-left: var(--ab-container-pad);
}
.container { max-width: var(--ab-container-max); }

@media (min-width: 1400px) {
	.container { max-width: var(--ab-container-max); }
}

.section,
section.section,
.standard-layout-section {
	padding-top: var(--ab-space-section);
	padding-bottom: var(--ab-space-section);
}
.section.section-sm,
.section.compact { padding-top: var(--ab-space-section-sm); padding-bottom: var(--ab-space-section-sm); }
.section + .section { margin-top: 0; }

/* =============================================================
   4. BRAND COLOUR HELPERS  (legacy class names re-themed)
   ============================================================= */
.bg-brand-off-white,
.has-background.bg-brand-off-white {
	background-color: var(--ab-surface-1) !important;
	background-image: none !important;
	color: var(--ab-text);
}
.bg-brand-blue,
.has-background.bg-brand-blue {
	background-color: var(--ab-navy-800) !important;
	background-image: var(--ab-grad-hero) !important;
	color: #fff !important;
}
.bg-brand-orange,
.has-background.bg-brand-orange {
	background-color: var(--ab-orange-500) !important;
	background-image: var(--ab-grad-primary) !important;
	color: #fff !important;
}
.bg-brand-yellow,
.has-background.bg-brand-yellow {
	background-color: var(--ab-orange-50) !important;
	background-image: linear-gradient(135deg, #FFF5EE, #FFE7D7) !important;
	color: var(--ab-text) !important;
}

.bg-brand-blue h1, .bg-brand-blue h2, .bg-brand-blue h3,
.bg-brand-blue h4, .bg-brand-blue h5, .bg-brand-blue h6,
.bg-brand-blue p,  .bg-brand-blue li, .bg-brand-blue strong,
.bg-brand-orange h1, .bg-brand-orange h2, .bg-brand-orange h3,
.bg-brand-orange h4, .bg-brand-orange h5, .bg-brand-orange h6,
.bg-brand-orange p,  .bg-brand-orange li, .bg-brand-orange strong { color: #fff !important; }
.bg-brand-blue a:not(.btn) { color: var(--ab-orange-300); }
.bg-brand-blue a:not(.btn):hover { color: #fff; }

/* SVG path helpers */
.path-brand-orange    { fill: var(--ab-orange-500); }
.path-brand-yellow    { fill: var(--ab-gold); }
.path-brand-lilac     { fill: var(--ab-orange-400); }
.path-brand-off-white { fill: var(--ab-surface-1); }

/* =============================================================
   5. BUTTONS
   ============================================================= */
.btn,
button.btn,
input[type="submit"].btn,
a.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .8rem 1.5rem;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.01em;
	border: 1.5px solid transparent;
	border-radius: var(--ab-radius-pill);
	cursor: pointer;
	user-select: none;
	text-decoration: none;
	transition: transform var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease),
				background var(--ab-dur) var(--ab-ease),
				color var(--ab-dur) var(--ab-ease),
				border-color var(--ab-dur) var(--ab-ease);
	will-change: transform;
}
.btn:focus-visible {
	outline: 3px solid rgba(255, 107, 44, 0.35);
	outline-offset: 2px;
}

/* Primary brand button — bootstrap CSS vars ALSO overridden so .btn-primary inherits */
.btn-brand,
.btn.btn-brand,
.btn.check-postcode,
.btn-primary,
.btn.btn-primary {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--ab-orange-500);
	--bs-btn-border-color: var(--ab-orange-500);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: var(--ab-orange-600);
	--bs-btn-hover-border-color: var(--ab-orange-600);
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: var(--ab-orange-700);
	--bs-btn-active-border-color: var(--ab-orange-700);
	background: var(--ab-grad-primary);
	color: #fff;
	border-color: transparent;
	box-shadow: var(--ab-shadow-glow);
}
.btn-brand:hover,
.btn.btn-brand:hover,
.btn.check-postcode:hover,
.btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 22px 48px rgba(255, 107, 44, 0.40);
	color: #fff;
	background: var(--ab-grad-primary-hover);
}
.btn-brand:active { transform: translateY(0); }

/* Secondary / outline button */
.btn-secondary,
.btn.btn-secondary,
.btn-outline,
.btn.btn-outline {
	--bs-btn-color: var(--ab-text);
	--bs-btn-bg: #fff;
	--bs-btn-border-color: var(--ab-border-strong);
	--bs-btn-hover-color: var(--ab-orange-500);
	--bs-btn-hover-bg: #fff;
	--bs-btn-hover-border-color: var(--ab-orange-500);
	background: #fff;
	color: var(--ab-text);
	border-color: var(--ab-border-strong);
	box-shadow: var(--ab-shadow-xs);
}
.btn-secondary:hover,
.btn.btn-secondary:hover {
	border-color: var(--ab-orange-500);
	color: var(--ab-orange-500);
	transform: translateY(-2px);
}
.btn-secondary.active,
.btn.btn-secondary.rounded-pill.active {
	background: var(--ab-text);
	border-color: var(--ab-text);
	color: #fff;
}

/* Legacy "check packages" yellow button → orange */
.btn.check-packages-btn,
a.btn.check-packages-btn,
.check-packages-btn {
	background: var(--ab-grad-primary);
	color: #fff;
	border-color: transparent;
	box-shadow: var(--ab-shadow-glow);
}

/* Postcode submit icon button */
.btn.search-submit,
button.search-submit,
.search-form .btn.search-submit {
	width: 48px;
	height: 48px;
	padding: 0;
	border-radius: 50%;
	background: var(--ab-grad-primary);
	color: #fff;
	border-color: transparent;
	box-shadow: var(--ab-shadow-glow);
}
.btn.search-submit:hover,
button.search-submit:hover { transform: scale(1.06); }

/* Buttons on dark / coloured banners */
.bg-brand-blue .btn-brand,
.bg-brand-orange .btn-brand,
.footer-mailinglist .btn-brand {
	background: #fff;
	color: var(--ab-text);
	box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}
.bg-brand-blue .btn-brand:hover,
.bg-brand-orange .btn-brand:hover {
	background: var(--ab-text);
	color: #fff;
}

/* =============================================================
   6. FORMS
   ============================================================= */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="url"],
input[type="password"],
textarea,
select,
.form-control {
	display: block;
	width: 100%;
	padding: .85rem 1rem;
	font-size: 0.98rem;
	line-height: 1.5;
	color: var(--ab-text);
	background: #fff;
	border: 1.5px solid var(--ab-border);
	border-radius: var(--ab-radius-md);
	box-shadow: var(--ab-shadow-xs);
	transition: border-color var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease);
}
input:focus,
textarea:focus,
select:focus,
.form-control:focus {
	outline: none;
	border-color: var(--ab-orange-500);
	box-shadow: 0 0 0 4px rgba(255, 107, 44, 0.16);
}
::placeholder { color: var(--ab-text-faint); opacity: 1; }
label { display: inline-block; margin-bottom: .35rem; font-weight: 600; color: var(--ab-text-soft); }

/* Coverage / postcode pill form */
.coverage-form,
.coverage-form-wrapper { transition: box-shadow var(--ab-dur) var(--ab-ease); }
.coverage-form .search-form,
.coverage-form-wrapper .search-form,
.search-form.submit-icon {
	display: flex;
	align-items: center;
	gap: .5rem;
	background: #fff;
	border: 1.5px solid var(--ab-border);
	border-radius: var(--ab-radius-pill);
	padding: 6px 6px 6px 18px;
	box-shadow: var(--ab-shadow-sm);
	transition: border-color var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease);
}
.coverage-form .search-form:focus-within,
.coverage-form-wrapper .search-form:focus-within,
.search-form.submit-icon:focus-within {
	border-color: var(--ab-orange-500);
	box-shadow: 0 0 0 4px rgba(255, 107, 44, 0.16), var(--ab-shadow-sm);
}
.coverage-form .search-field,
.coverage-form-wrapper .search-field,
.search-form .search-field {
	flex: 1 1 auto;
	min-width: 0;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	border-radius: 0;
}
.coverage-form .search-field:focus { box-shadow: none; border: 0; }


/* =============================================================
   7. HEADER  (premium, glass-blur, sticky-compact)
   ============================================================= */
#wrapper { overflow-x: hidden; }

.site-header,
#main-header {
	position: relative;
	background: rgba(255, 255, 255, 0.88);
	backdrop-filter: saturate(160%) blur(14px);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid var(--ab-border);
	box-shadow: 0 1px 0 rgba(7,20,46,0.02);
	transition: background var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease);
	z-index: 50;
}
body.is-scrolled .site-header,
body.is-scrolled #main-header {
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 8px 24px rgba(7, 20, 46, 0.08);
}

/* — Slim top bar — */
.secondary-header {
	background: var(--ab-navy-900);
	color: var(--ab-text-on-dark);
	padding: 8px 0;
	font-size: 0.82rem;
}
.secondary-header * { color: var(--ab-text-on-dark-mid); }
.secondary-header a { color: var(--ab-text-on-dark-mid); text-decoration: none; }
.secondary-header a:hover { color: #fff; }
.secondary-header__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.secondary-header__nav-switch,
.secondary-header__nav-switch ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: inline-flex;
	gap: .25rem;
}
.secondary-header__nav-switch a {
	display: inline-block;
	padding: 5px 14px;
	border-radius: var(--ab-radius-pill);
	font-weight: 600;
	transition: background var(--ab-dur) var(--ab-ease), color var(--ab-dur) var(--ab-ease);
}
.secondary-header__nav-switch a:hover,
.secondary-header__nav-switch li.current-menu-item > a,
.secondary-header__nav-switch li.is-active > a {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
}
.secondary-header__right {
	display: inline-flex;
	gap: .85rem;
	align-items: center;
}
.secondary-header__right .separator {
	width: 1px; height: 14px;
	background: rgba(255, 255, 255, 0.18);
}
.secondary-header__trustpilot img {
	max-height: 20px;
	width: auto;
	filter: brightness(1.1);
}
.trustpilot-m { display: none; }

/* — Primary header — */
.primary-header { padding: 14px 0; }
.primary-header__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: nowrap;
}
.primary-header__brand {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	flex-shrink: 0;
}
.primary-header__brand .logo,
.primary-header__brand .custom-logo-link {
	display: inline-block;
	line-height: 0;
}
.primary-header__brand .custom-logo,
.primary-header__brand img.no-lazy {
	max-height: 44px;
	width: auto;
}
.primary-header__logo-sticky { display: none; }
.coverage-form-wrapper.header-form {
	display: none; /* the inline little form lives in .primary-header__form on desktop */
}

/* Primary nav */
.primary-header__nav-primary-wrapper {
	flex: 1 1 auto;
}
.primary-header__nav-primary,
.menu-primary-nav-container,
.menu-primary-nav-container > ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .15rem;
	justify-content: center;
}
.primary-header__nav-primary > li,
#menu-primary-nav > li,
.menu-primary-nav-container > ul > li { list-style: none; margin: 0; padding: 0; }
.primary-header__nav-primary > li > a,
#menu-primary-nav > li > a,
.menu-primary-nav-container a {
	display: inline-flex;
	align-items: center;
	padding: .85rem 1rem;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--ab-text);
	text-decoration: none;
	border-radius: var(--ab-radius-pill);
	white-space: nowrap;
	transition: color var(--ab-dur) var(--ab-ease), background var(--ab-dur) var(--ab-ease);
}
.primary-header__nav-primary > li > a:hover,
.primary-header__nav-primary > li.current-menu-item > a,
.primary-header__nav-primary > li.current-menu-parent > a,
#menu-primary-nav > li > a:hover { color: var(--ab-orange-500); }

/* Hamburger (mobile) */
.primary-header__toggle {
	display: none;
	width: 44px; height: 44px;
	flex-direction: column;
	gap: 5px;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-md);
	cursor: pointer;
	transition: border-color var(--ab-dur) var(--ab-ease);
}
.primary-header__toggle:hover { border-color: var(--ab-orange-500); }
.primary-header__toggle span {
	display: block;
	width: 18px; height: 2px;
	background: var(--ab-text);
	border-radius: 2px;
	transition: all var(--ab-dur) var(--ab-ease);
}
.primary-header__toggle span:last-child { display: none; }

/* Header postcode form */
.primary-header__form {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	max-width: 380px;
	width: 100%;
}
.primary-header__form-inner { width: 100%; }
.primary-header__form .coverage-form,
.primary-header__form .coverage-form-wrapper { width: 100%; }
.primary-header__form .search-form { width: 100%; }
.primary-header__form .search-field {
	height: 38px;
	font-size: 0.92rem;
}
.primary-header__form .check-packages-wrapper { display: none; } /* hide the second check button — only show the input */


/* =============================================================
   8. HERO  (full-width banner with navy gradient + orange glow)
   ============================================================= */
.hero-section {
	position: relative;
	background-color: var(--ab-navy-800);
	background-image:
		radial-gradient(900px 500px at 90% -20%, rgba(255, 107, 44, 0.22), transparent 60%),
		radial-gradient(700px 400px at -10% 110%, rgba(45, 91, 166, 0.20), transparent 55%),
		var(--ab-grad-hero);
	color: #fff;
	overflow: hidden;
}
.hero-section .hero-section__main,
.hero-section .hero-section__main[style] {
	position: relative;
	background-color: transparent !important;
	background-image: none !important;
	padding-top: clamp(2.5rem, 6vw, 4.5rem);
	padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
	color: #fff;
	z-index: 1;
}
.hero-section__background {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: .18;
	pointer-events: none;
	mix-blend-mode: screen;
}
.hero-section__image-content-wrapper {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: center;
}
@media (min-width: 992px) {
	.hero-section__image-content-wrapper {
		grid-template-columns: 1.1fr 0.9fr;
	}
}
.hero-section__content-wrapper { color: #fff; }
.hero-section h1,
.hero-section h2,
.hero-section h3,
.hero-section .hero-section__content-wrapper h1,
.hero-section .hero-section__content-wrapper h2,
.hero-section .content h1,
.hero-section .content h2 { color: #fff; }
.hero-section h1,
.hero-section .hero-section__content-wrapper h1 {
	font-size: clamp(2.2rem, 3.6vw, 3.4rem);
	line-height: 1.08;
	margin-bottom: 1rem;
	font-weight: 800;
	text-wrap: balance;
}
.hero-section h1 strong,
.hero-section h1 em,
.hero-section .hero-section__content-wrapper h1 strong {
	background: linear-gradient(135deg, #FFB13D 0%, #FF6B2C 50%, #FF8A4C 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-style: normal;
}
.hero-section p,
.hero-section .hero-section__content-wrapper p {
	color: rgba(230, 237, 248, 0.86);
	font-size: clamp(1rem, 1.15vw, 1.15rem);
	max-width: 60ch;
	margin-bottom: 1rem;
}
.hero-section a:not(.btn) { color: var(--ab-orange-300); }
.hero-section a:not(.btn):hover { color: #fff; }

.hero-section .coverage-form,
.hero-section .coverage-form-wrapper {
	background: rgba(255,255,255,0.94);
	border-radius: var(--ab-radius-lg);
	padding: clamp(1rem, 2vw, 1.25rem);
	box-shadow: var(--ab-shadow-md);
	margin-top: 1.5rem;
}
.hero-section .coverage-form .search-form { background: #fff; }

.hero-section__image,
.hero-section__image-wrapper img {
	width: 100%;
	height: auto;
	border-radius: var(--ab-radius-lg);
	box-shadow: var(--ab-shadow-lg);
}

/* Countdown */
.countdown-timer .progress-circle { stroke: var(--ab-orange-500); }
.countdown-timer .text { color: #fff; }
.countdown-timer .text * { color: #fff; }

/* =============================================================
   9. MESSAGE BANNER (announcement strip)
   ============================================================= */
.message-banner,
.message-banner[style] {
	background-color: var(--ab-navy-800) !important;
	background-image: linear-gradient(135deg, #07142E, #112B5A) !important;
	color: #fff !important;
	padding: 14px 0;
	text-align: center;
	font-weight: 600;
}
.message-banner *, .message-banner a { color: #fff !important; }
.message-banner i,
.message-banner .fas { color: var(--ab-orange-400); margin-right: .35rem; }

/* =============================================================
   10. PACKAGES  (tabs, cards, prices)
   ============================================================= */
#packages-section,
.packages-section { background: var(--ab-surface-1); }

.packages-tagline { color: var(--ab-text-muted); margin-bottom: 1rem; }

.package-tabs,
#package-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	padding: .35rem;
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-pill);
	box-shadow: var(--ab-shadow-sm);
	list-style: none;
	margin: 0 auto 2rem;
	max-width: max-content;
}
.package-tabs .package-tab,
.package-tabs li,
#package-tabs li { list-style: none; margin: 0; padding: 0; }
.package-tabs .package-tab-button,
.package-tab-button,
#package-tabs button {
	padding: .6rem 1.2rem;
	background: transparent;
	border: 0;
	border-radius: var(--ab-radius-pill);
	font-weight: 700;
	font-size: 0.92rem;
	color: var(--ab-text-soft);
	cursor: pointer;
	transition: color var(--ab-dur) var(--ab-ease), background var(--ab-dur) var(--ab-ease);
}
.package-tabs .package-tab-button:hover,
.package-tab-button:hover { color: var(--ab-orange-500); }
.package-tabs .package-tab-button.active,
.package-tabs .package-tab-button.is-active,
.package-tab-button[aria-selected="true"],
.package-tabs .nav-link.active {
	background: var(--ab-grad-primary);
	color: #fff;
	box-shadow: var(--ab-shadow-glow);
}

.tab-content,
.package-tab-pane { padding-top: 1rem; }

.packages-list,
.package-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.packages-list > .package,
.package-row > .package { margin: 0; max-width: none; }

.package,
.package-card,
.js-package-card { position: relative; }
.package-content-container {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	padding: clamp(1.25rem, 2vw, 1.75rem);
	box-shadow: var(--ab-shadow-sm);
	overflow: hidden;
	transition: transform var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease),
				border-color var(--ab-dur) var(--ab-ease);
}
.package:hover .package-content-container,
.package-content-container:hover {
	transform: translateY(-4px);
	box-shadow: var(--ab-shadow-md);
	border-color: rgba(255, 107, 44, 0.32);
}

/* Featured */
.package.is-featured .package-content-container,
.package.featured .package-content-container,
.package--popular .package-content-container,
.package.recommended .package-content-container {
	background: linear-gradient(180deg, var(--ab-orange-50) 0%, #FFFFFF 60%);
	border-color: rgba(255, 107, 44, 0.45);
}
.package.is-featured .package-content-container::after,
.package.featured .package-content-container::after,
.package--popular .package-content-container::after {
	content: "Most Popular";
	position: absolute;
	top: 14px; right: 14px;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
	background: var(--ab-grad-primary);
	padding: 5px 10px;
	border-radius: var(--ab-radius-pill);
	box-shadow: var(--ab-shadow-glow);
	pointer-events: none;
	z-index: 2;
}

/* Package head/body */
.package-head-info-container {
	display: flex;
	flex-direction: column;
	gap: .85rem;
	margin-bottom: 1rem;
}
.package-icon { display: flex; justify-content: center; align-items: center; }
.package-icon img,
.package-icon svg {
	width: auto;
	max-width: 70%;
	max-height: 100px;
	transition: transform var(--ab-dur) var(--ab-ease);
}
.package:hover .package-icon img { transform: rotate(-3deg) scale(1.04); }

/* Speed numbers */
.fs-custom-1,
.js-selected-package-dls {
	font-size: clamp(2.4rem, 4vw, 3.4rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.025em;
	background: linear-gradient(135deg, var(--ab-navy-800), var(--ab-orange-500));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	display: block;
}
.text-supplementary,
.js-selected-package-usage {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--ab-text-muted);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Feature list */
.package-info {
	flex: 1 1 auto;
	list-style: none;
	padding: 0;
	margin: 1rem 0 0;
	display: flex;
	flex-direction: column;
	gap: .55rem;
}
.package-info li {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	color: var(--ab-text-soft);
	font-size: 0.95rem;
}
.package-info li::before {
	content: "";
	flex-shrink: 0;
	width: 18px; height: 18px;
	margin-top: 2px;
	background-color: rgba(255, 107, 44, 0.12);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23FF6B2C'%3E%3Cpath d='M13.854 3.646a.5.5 0 0 1 0 .708L6.207 12l-3.561-3.561a.5.5 0 1 1 .708-.708L6.207 10.586l7.146-7.146a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px;
	border-radius: 50%;
}

/* Pricing */
.package-price-container {
	display: flex;
	align-items: baseline;
	gap: .5rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px dashed var(--ab-border);
}
.price,
.js-selected-package-cost {
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: 800;
	color: var(--ab-text);
	letter-spacing: -0.015em;
}
.package-normal-price,
.js-selected-package-cost-was {
	color: var(--ab-text-faint);
	text-decoration: line-through;
	font-weight: 600;
	font-size: 0.95rem;
}
.package-promo-bar {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ab-orange-600);
	background: rgba(255, 107, 44, 0.10);
	padding: 4px 10px;
	border-radius: var(--ab-radius-pill);
}

.package-actions { margin-top: 1rem; }
.package-actions .btn { width: 100%; }


/* =============================================================
   11. ICON-BOXES  ("Supercharge your broadband" addons)
   ============================================================= */
.icon-boxes,
.icon-boxes.section { background: var(--ab-white); }
.icon-boxes__container {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
	list-style: none;
	margin: 0;
	padding: 0;
}
.icon-boxes__item-wrap {
	display: flex;
	height: 100%;
	margin: 0;
	padding: 0;
}
.icon-boxes__item,
.icon-boxes__item.big-text,
.icon-boxes__item.big-text.big-icon {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	padding: clamp(1.5rem, 2.5vw, 2rem);
	box-shadow: var(--ab-shadow-sm);
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	transition: transform var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease),
				border-color var(--ab-dur) var(--ab-ease);
}
.icon-boxes__item:hover,
.icon-boxes__item.big-text:hover {
	transform: translateY(-4px);
	border-color: rgba(255, 107, 44, 0.32);
	box-shadow: var(--ab-shadow-md);
}
.icon-boxes__item .icon-wrap,
.icon-boxes__item .icon-wrap[style] {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px; height: 64px;
	margin: 0 auto 1rem;
	color: var(--ab-orange-500) !important;
	background: linear-gradient(135deg, rgba(255, 107, 44, 0.10), rgba(255, 107, 44, 0.04));
	border-radius: var(--ab-radius-md);
	box-shadow: inset 0 0 0 1px rgba(255, 107, 44, 0.18);
}
.icon-boxes__item .icon-wrap img,
.icon-boxes__item .icon-wrap svg {
	width: auto;
	max-width: 36px;
	max-height: 36px;
	filter: drop-shadow(0 4px 8px rgba(255, 107, 44, 0.18));
}
.icon-boxes__inner { text-align: center; flex: 1; }
.icon-boxes__inner h3,
.icon-boxes__inner h3.h2 {
	margin: 0 0 .5rem;
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--ab-text);
	letter-spacing: -0.02em;
}
.icon-boxes__inner p {
	margin: 0 0 .5rem;
	color: var(--ab-text-muted);
	font-size: 0.95rem;
}
.icon-boxes__inner strong { color: var(--ab-orange-600); font-weight: 800; }

/* =============================================================
   12. FULLWIDTH-RURAL  ("The future of broadband")
   ============================================================= */
.fullwidth-rural-bb {
	position: relative;
	background-color: var(--ab-surface-1);
	background-image:
		radial-gradient(800px 500px at 100% 0%, rgba(255, 107, 44, 0.10), transparent 60%),
		radial-gradient(700px 500px at 0% 100%, rgba(45, 91, 166, 0.08), transparent 60%);
	border-radius: var(--ab-radius-xl);
	overflow: hidden;
	margin: clamp(1.5rem, 3vw, 3rem) 0;
}
.fullwidth-rural-bb__section { padding: clamp(2rem, 4vw, 4rem) 0; }
.fullwidth-rural-bb .container { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 992px) {
	.fullwidth-rural-bb .container {
		grid-template-columns: 1fr 1fr;
		align-items: center;
	}
}
.fullwidth-rural-bb .content { padding-right: 1rem; }
.fullwidth-rural-bb__title {
	color: var(--ab-text);
	font-weight: 800;
	margin: 0 0 1rem;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
}
.fullwidth-rural-bb__title strong {
	background: linear-gradient(135deg, var(--ab-navy-800), var(--ab-orange-500));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.fullwidth-rural-bb__text {
	color: var(--ab-text-muted);
	font-size: 1.05rem;
	max-width: 50ch;
}
.fullwidth-rural-bb__text a { color: var(--ab-orange-600); font-weight: 700; }
.fullwidth-rural-bb__graphic {
	position: relative;
	min-height: 300px;
	filter: drop-shadow(0 12px 24px rgba(7, 20, 46, 0.12));
}

/* =============================================================
   13. STANDARD-LAYOUT-SECTION (generic two-column / centered)
   ============================================================= */
.standard-layout-section { color: var(--ab-text); }
.standard-layout-section h2 {
	font-size: clamp(1.75rem, 2.6vw, 2.5rem);
	font-weight: 800;
	margin-bottom: 1rem;
}
.standard-layout-section__content > p { color: var(--ab-text-muted); font-size: 1.05rem; }

/* =============================================================
   14. TRUSTPILOT / TESTIMONIALS / REVIEWS
   ============================================================= */
.trustpilot-reviews-section,
#trustpilot-section { background: var(--ab-surface-1); }
.trustpilot-section__heading,
.trustpilot-reviews-section__heading {
	text-align: center;
	margin-bottom: 1rem;
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: 800;
}
.home-reviews-slider-wrap,
.home-reviews-slider-outer {
	position: relative;
	margin: 0 auto;
}
.home-reviews-slider { display: block; }
.home-review-card {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	padding: 1.75rem 1.5rem;
	box-shadow: var(--ab-shadow-sm);
	margin: .5rem;
	height: 100%;
	transition: transform var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease);
}
.home-review-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ab-shadow-md);
}
.home-review-card__top {
	display: flex;
	gap: .75rem;
	align-items: center;
	margin-bottom: .75rem;
}
.home-review-card__stars,
.home-review-card__verified-icon { color: #00b67a; font-weight: 700; letter-spacing: 1px; }
.home-review-card__title {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 .35rem;
	color: var(--ab-text);
}
.home-review-card__excerpt {
	color: var(--ab-text-muted);
	margin: 0 0 .5rem;
	font-size: 0.95rem;
}
.home-review-card__meta {
	color: var(--ab-text-faint);
	font-size: 0.85rem;
}
.home-reviews-footer {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1rem;
	margin-top: 1.5rem;
	flex-wrap: wrap;
}
.home-reviews-slider-arrow {
	width: 44px; height: 44px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--ab-border);
	box-shadow: var(--ab-shadow-sm);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform var(--ab-dur) var(--ab-ease),
				border-color var(--ab-dur) var(--ab-ease);
}
.home-reviews-slider-arrow:hover {
	transform: scale(1.06);
	border-color: var(--ab-orange-500);
}

/* =============================================================
   15. FAQ
   ============================================================= */
.faq-section { background: var(--ab-surface-1); }
.faq-section .accordion {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	max-width: 900px;
	margin: 0 auto;
}
.faq-section .accordion-item {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-md);
	overflow: hidden;
	transition: border-color var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease);
}
.faq-section .accordion-item:hover {
	border-color: rgba(255, 107, 44, 0.32);
	box-shadow: var(--ab-shadow-sm);
}
.faq-section .accordion-button {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.1rem 1.25rem;
	background: transparent;
	border: 0;
	font-weight: 700;
	font-size: 1rem;
	color: var(--ab-text);
	text-align: left;
	cursor: pointer;
}
.faq-section .accordion-button:not(.collapsed) {
	background: linear-gradient(90deg, rgba(255, 107, 44, 0.06), transparent);
	color: var(--ab-orange-600);
}
.faq-section .accordion-button::after {
	content: "";
	width: 16px; height: 16px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23FF6B2C'%3E%3Cpath d='M8 11.5a.75.75 0 0 1-.53-.22l-5-5a.75.75 0 1 1 1.06-1.06L8 9.69l4.47-4.47a.75.75 0 1 1 1.06 1.06l-5 5a.75.75 0 0 1-.53.22z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	transition: transform var(--ab-dur) var(--ab-ease);
}
.faq-section .accordion-button.collapsed::after { transform: rotate(-90deg); }
.faq-section .accordion-body {
	padding: 0 1.25rem 1.1rem;
	color: var(--ab-text-soft);
}


/* =============================================================
   16. NEWS / POSTS / KB widget
   ============================================================= */
.airband-news-card,
.news-card,
article.post,
article.airband_press_release,
article.airband_case_study,
.kb-card {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	overflow: hidden;
	transition: transform var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease);
}
.airband-news-card:hover,
.news-card:hover,
article.post:hover { transform: translateY(-4px); box-shadow: var(--ab-shadow-md); }
.airband-news-card img,
.news-card img,
article.post img.attachment-post-thumbnail {
	width: 100%;
	height: auto;
	transition: transform var(--ab-dur-slow) var(--ab-ease);
	border-top-left-radius: var(--ab-radius-lg);
	border-top-right-radius: var(--ab-radius-lg);
}
.airband-news-card:hover img,
.news-card:hover img { transform: scale(1.04); }

/* KB widget — bullet list, NEVER pills */
.hkb_widget_articles,
.widget_hkb_articles,
.widget-container.hkb_widget_articles {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}
.hkb_widget_articles ul,
.widget_hkb_articles ul {
	list-style: none;
	padding: 0;
	margin: 0 0 1rem;
	display: flex;
	flex-direction: column;
	gap: .15rem;
}
.hkb_widget_articles li,
.widget_hkb_articles li,
.news-list li {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
	list-style: none;
}
.news-list { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-direction: column; gap: .15rem; }
.hkb-widget__entry-title,
.footer-cta__news-item {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .4rem 0;
	color: var(--ab-text);
	font-weight: 500;
	font-size: 0.95rem;
	text-decoration: none;
	transition: color var(--ab-dur) var(--ab-ease), transform var(--ab-dur) var(--ab-ease);
}
.hkb-widget__entry-title::before,
.footer-cta__news-item::before {
	content: "";
	flex-shrink: 0;
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--ab-orange-500);
}
.hkb-widget__entry-title:hover,
.footer-cta__news-item:hover {
	color: var(--ab-orange-600);
	transform: translateX(3px);
}
.hkb-widget__entry-title > svg,
.hkb-widget__entry-title > i,
.hkb-widget__entry-title > img,
.footer-cta__news-item > svg,
.footer-cta__news-item > i,
.footer-cta__news-item > img { display: none; }

/* =============================================================
   17. FOOTER
   ============================================================= */
#footer,
.footer-main,
.site-footer,
#colophon {
	position: relative;
	background-color: var(--ab-navy-900);
	background-image: var(--ab-grad-hero);
	color: var(--ab-text-on-dark);
	overflow: hidden;
}
#footer::before,
.footer-main::before {
	content: "";
	position: absolute;
	left: -120px; bottom: -120px;
	width: 360px; height: 360px;
	background: radial-gradient(circle, rgba(255, 107, 44, 0.18), transparent 70%);
	pointer-events: none;
	z-index: 0;
}
#footer > *,
.footer-main > * { position: relative; z-index: 1; }

#footer a,
.footer-main a,
.footer-secondary a,
.footer-wrap.navbar-nav a {
	color: var(--ab-text-on-dark-mid);
	text-decoration: none;
	transition: color var(--ab-dur) var(--ab-ease), transform var(--ab-dur) var(--ab-ease);
}
#footer a:hover,
.footer-main a:hover,
.footer-secondary a:hover { color: var(--ab-orange-400); }

/* — Footer headings — */
.footer-cta .h5.heading,
.footer-cta p.h5.heading,
.h5.heading,
p.h5.heading {
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 1rem;
	line-height: 1.2;
}
.footer-cta .h5.heading,
.footer-cta p.h5.heading,
.bg-brand-off-white .h5.heading { color: var(--ab-text); }
.footer-mailinglist .h5.heading {
	font-size: clamp(1.4rem, 2.2vw, 1.8rem);
	text-transform: none;
	letter-spacing: -0.01em;
}
#footer .footer-heading,
.footer-main .footer-heading {
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 1rem;
}

/* — Footer-main column menus — */
.menu-footer-column-1-container,
.menu-footer-column-2-container,
.menu-footer-column-3-container,
.menu-footer-column-4-container { margin: 0; padding: 0; }
.menu-footer-column-1-container ul,
.menu-footer-column-2-container ul,
.menu-footer-column-3-container ul,
.menu-footer-column-4-container ul,
.footer-wrap.navbar-nav {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .15rem;
}
.menu-footer-column-1-container li,
.menu-footer-column-2-container li,
.menu-footer-column-3-container li,
.menu-footer-column-4-container li,
.footer-wrap.navbar-nav li {
	margin: 0; padding: 0; list-style: none;
}
.menu-footer-column-1-container a,
.menu-footer-column-2-container a,
.menu-footer-column-3-container a,
.menu-footer-column-4-container a,
.footer-wrap.navbar-nav a {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .35rem 0;
	font-weight: 500;
	font-size: 0.95rem;
	color: var(--ab-text-on-dark-mid);
}
.menu-footer-column-1-container a:hover,
.menu-footer-column-2-container a:hover,
.menu-footer-column-3-container a:hover,
.menu-footer-column-4-container a:hover,
.footer-wrap.navbar-nav a:hover {
	color: var(--ab-orange-400);
	transform: translateX(3px);
}

/* — Footer CTA card (light cream above main footer) — */
.footer-cta,
.footer-cta.bg-brand-off-white {
	background-color: #fff !important;
	background-image: linear-gradient(135deg, #FFFFFF, #FFF5EE) !important;
	color: var(--ab-text) !important;
	border-radius: var(--ab-radius-xl);
	border: 1px solid var(--ab-border);
	box-shadow: var(--ab-shadow-md);
	padding: clamp(1.5rem, 4vw, 3rem) !important;
}
.footer-cta h2, .footer-cta h3, .footer-cta p,
.footer-cta.bg-brand-off-white h2,
.footer-cta.bg-brand-off-white h3,
.footer-cta.bg-brand-off-white p { color: var(--ab-text) !important; }
.footer-cta a { color: var(--ab-text); }
.footer-cta .col-lg-4,
.footer-cta .col-lg-3 { padding-top: 0; padding-bottom: 0; }
.footer-cta .btn.btn-brand,
.footer-cta a.btn.btn-brand {
	margin-top: 1rem;
	padding: .7rem 1.4rem;
	font-size: 0.95rem;
}
.footer-cta .btn.btn-brand:hover {
	background: var(--ab-grad-cool);
	color: #fff;
}

/* — Footer mailing list (dark) — */
.footer-mailinglist,
.footer-mailinglist.bg-brand-blue {
	background-color: var(--ab-navy-800) !important;
	background-image: var(--ab-grad-cool) !important;
	color: #fff !important;
	border-radius: var(--ab-radius-xl);
	padding: clamp(1.5rem, 4vw, 3rem) !important;
	box-shadow: var(--ab-shadow-md);
}
.footer-mailinglist h2,
.footer-mailinglist h3,
.footer-mailinglist p { color: #fff !important; }
.footer-mailinglist .container {
	max-width: 720px;
	text-align: center;
}
.mailing-form {
	display: flex;
	gap: .5rem;
	align-items: center;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--ab-radius-pill);
	padding: 6px 6px 6px 18px;
	max-width: 520px;
	margin: 0 auto;
}
.mailing-form input,
.mailing-form input[type="email"] {
	flex: 1;
	background: transparent;
	border: 0;
	box-shadow: none;
	color: #fff;
	padding: 0;
	height: 44px;
	font-size: .95rem;
}
.mailing-form input::placeholder { color: rgba(255, 255, 255, 0.6); }
.mailing-submit,
.mailing-form button[type="submit"] {
	background: var(--ab-grad-primary);
	color: #fff;
	border: 0;
	border-radius: var(--ab-radius-pill);
	padding: 10px 18px;
	font-weight: 700;
	box-shadow: var(--ab-shadow-glow);
	cursor: pointer;
	transition: transform var(--ab-dur) var(--ab-ease);
}
.mailing-submit:hover { transform: translateY(-2px); }

/* — Social icons — */
.social-list {
	display: inline-flex;
	flex-wrap: wrap;
	gap: .55rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.social-list li {
	margin: 0;
	padding: 0;
	list-style: none;
}
.social-list .btn,
.social-list li > a,
.social-list a.btn,
.social-list a.btn.btn-brand {
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	padding: 0 !important;
	border-radius: 50% !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.10);
	background-image: none;
	border: 1px solid rgba(255, 255, 255, 0.22);
	color: #fff !important;
	box-shadow: none !important;
	transition: transform var(--ab-dur) var(--ab-ease),
				background var(--ab-dur) var(--ab-ease),
				border-color var(--ab-dur) var(--ab-ease);
}
.social-list .btn:hover,
.social-list li > a:hover {
	transform: translateY(-3px);
	background: var(--ab-orange-500);
	background-image: var(--ab-grad-primary);
	border-color: var(--ab-orange-500);
	color: #fff;
}
.social-list .btn i,
.social-list .btn svg,
.social-list .btn svg path,
.social-list .btn .twitter-x-icon path { color: #fff !important; fill: #fff !important; }
.footer-cta .social-list .btn,
.bg-brand-off-white .social-list .btn {
	background: var(--ab-navy-800);
	border-color: var(--ab-navy-800);
}
.footer-cta .social-list .btn:hover {
	background: var(--ab-orange-500);
	background-image: var(--ab-grad-primary);
	border-color: var(--ab-orange-500);
}

/* — Footer secondary (legal / colophon) — */
.footer-secondary {
	color: var(--ab-text-on-dark-low);
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding: 1.25rem 0;
	font-size: .875rem;
	margin-top: 2rem;
}
.footer-secondary .btn,
.footer-secondary a.btn {
	background: var(--ab-grad-primary);
	color: #fff;
	border-color: transparent;
	box-shadow: var(--ab-shadow-glow);
}
.footer-main { padding: clamp(2rem, 4vw, 3.5rem) 0; }


/* =============================================================
   18. PAGE-TEMPLATE SPECIFIC SCOPES
   ============================================================= */

/* — Broadband for You — */
.airband-page-broadband-for-you .bfy-hero,
.airband-page-broadband-for-you [class*="bfy-hero"] {
	background-color: var(--ab-navy-800);
	background-image: var(--ab-grad-hero);
	color: #fff;
	padding: clamp(3rem, 6vw, 5rem) 0;
	border-radius: 0 0 var(--ab-radius-xl) var(--ab-radius-xl);
	margin-bottom: 2rem;
}
.airband-page-broadband-for-you .bfy-hero h1,
.airband-page-broadband-for-you .bfy-hero p,
.airband-page-broadband-for-you .bfy-hero h2 { color: #fff; }
.airband-page-broadband-for-you .bfy-pillars [class*="pillar"],
.airband-page-broadband-for-you .bfy-pillars .pillar-card,
.airband-page-broadband-for-you .bfy-pillars .pillar {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	padding: 1.5rem;
	box-shadow: var(--ab-shadow-sm);
	transition: transform var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease);
}
.airband-page-broadband-for-you .bfy-pillars .pillar:hover {
	transform: translateY(-4px);
	box-shadow: var(--ab-shadow-md);
}
.airband-page-broadband-for-you .bfy-faq { background: var(--ab-surface-1); }

/* — About Premium — */
.airband-page-about-premium .abp-section-head__title,
.airband-page-about-premium [class*="abp-"][class*="title"] {
	color: var(--ab-text);
	font-weight: 800;
}
.airband-page-about-premium .abp-section-head__title strong {
	background: linear-gradient(135deg, var(--ab-navy-800), var(--ab-orange-500));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.airband-page-about-premium [class*="abp-card"],
.airband-page-about-premium [class*="abp-stat"],
.airband-page-about-premium [class*="abp-tile"],
.airband-page-about-premium [class*="abp-feature"] {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	padding: 1.5rem;
	box-shadow: var(--ab-shadow-sm);
}

/* — Contact Premium — */
.airband-page-contact-premium .acp-main-section { background: var(--ab-surface-1); }
.airband-page-contact-premium [class*="acp-card"],
.airband-page-contact-premium [class*="acp-tile"],
.airband-page-contact-premium [class*="acp-block"],
.airband-page-contact-premium .wpcf7-form,
.airband-page-contact-premium form {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	padding: clamp(1.25rem, 2vw, 2rem);
	box-shadow: var(--ab-shadow-md);
}
.airband-page-contact-premium .wpcf7 input[type="submit"] {
	background: var(--ab-grad-primary);
	color: #fff;
	border: 0;
	border-radius: var(--ab-radius-pill);
	padding: .85rem 1.6rem;
	font-weight: 700;
	box-shadow: var(--ab-shadow-glow);
}

/* — Broadband Packages landing — */
.airband-page-broadband-packages .section { background: #fff; }
.airband-page-broadband-packages .section + .section { background: var(--ab-surface-1); }

/* — Coverage Checker — */
body.page-template-template-broadband-coverage-checker #coverage-map-section,
.coverage-intro-band {
	border-radius: var(--ab-radius-lg);
	overflow: hidden;
}

/* — Fibre Package Landing — */
.airband-page-fibre-package [class*="fpl-card"],
.airband-page-fibre-package [class*="fpl-feature"],
.airband-page-fibre-package [class*="fpl-tile"],
.airband-page-fibre-package [class*="fpl-pillar"] {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	padding: 1.5rem;
	box-shadow: var(--ab-shadow-sm);
	transition: transform var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease);
}
.airband-page-fibre-package [class*="fpl-card"]:hover,
.airband-page-fibre-package [class*="fpl-feature"]:hover {
	transform: translateY(-4px);
	box-shadow: var(--ab-shadow-md);
}

/* — Nokia Beacon G6 — */
.airband-page-nokia-beacon-g6 [class*="nokia-hero"] {
	background-color: var(--ab-navy-800);
	background-image: var(--ab-grad-hero);
	color: #fff;
	padding: clamp(3rem, 6vw, 5rem) 0;
}
.airband-page-nokia-beacon-g6 [class*="nokia-hero"] h1,
.airband-page-nokia-beacon-g6 [class*="nokia-hero"] h2,
.airband-page-nokia-beacon-g6 [class*="nokia-hero"] p { color: #fff; }
.airband-page-nokia-beacon-g6 [class*="nokia-card"],
.airband-page-nokia-beacon-g6 [class*="nokia-feature"],
.airband-page-nokia-beacon-g6 [class*="nokia-spec"] {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	padding: 1.5rem;
	box-shadow: var(--ab-shadow-sm);
}

/* — Technology Hub — */
.airband-page-technology-hub [class*="tech-hero"] {
	background-color: var(--ab-navy-800);
	background-image: var(--ab-grad-hero);
	color: #fff;
	padding: clamp(3rem, 6vw, 5rem) 0;
}
.airband-page-technology-hub [class*="tech-hero"] h1,
.airband-page-technology-hub [class*="tech-hero"] h2,
.airband-page-technology-hub [class*="tech-hero"] p { color: #fff; }
.airband-page-technology-hub [class*="tech-card"],
.airband-page-technology-hub [class*="tech-tile"],
.airband-page-technology-hub [class*="tech-feature"] {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	padding: 1.5rem;
	box-shadow: var(--ab-shadow-sm);
	transition: transform var(--ab-dur) var(--ab-ease),
				box-shadow var(--ab-dur) var(--ab-ease);
}
.airband-page-technology-hub [class*="tech-card"]:hover {
	transform: translateY(-4px);
	box-shadow: var(--ab-shadow-md);
}

/* — Location / Rural — */
body.page-template-template-location-rural .hero-section {
	background-color: var(--ab-navy-800);
	background-image: var(--ab-grad-hero);
	color: #fff;
}

/* — News Hub — */
body.page-template-template-news-hub article.post {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	box-shadow: var(--ab-shadow-sm);
}

/* =============================================================
   19. MODALS  (Trustpilot / postcode / availability)
   ============================================================= */
.modal-content {
	border: 0;
	border-radius: var(--ab-radius-lg);
	box-shadow: var(--ab-shadow-lg);
	overflow: hidden;
}
.modal-header { border-bottom: 1px solid var(--ab-border); padding: 1rem 1.25rem; }
.modal-footer { border-top: 1px solid var(--ab-border); padding: 1rem 1.25rem; }
.modal-body  { padding: 1.25rem; }
.modal .btn-close {
	background-color: var(--ab-surface-2);
	border: 0;
	border-radius: 50%;
	width: 32px; height: 32px;
	opacity: 1;
	transition: background var(--ab-dur) var(--ab-ease);
}
.modal .btn-close:hover { background-color: var(--ab-orange-100); }
.trustpilot-reviews-modal__star--full { color: #00b67a; }

/* =============================================================
   20. AOS  (animate-on-scroll defaults)
   ============================================================= */
[data-aos] { will-change: transform, opacity; }
[data-aos="fade-up"]    { transform: translateY(20px); opacity: 0; }
[data-aos="fade-up"].aos-animate    { transform: none; opacity: 1; }
[data-aos="zoom-in"]    { transform: scale(.98); opacity: 0; }
[data-aos="zoom-in"].aos-animate    { transform: none; opacity: 1; }
[data-aos="fade-right"] { transform: translateX(-18px); opacity: 0; }
[data-aos="fade-right"].aos-animate { transform: none; opacity: 1; }
[data-aos="fade-left"]  { transform: translateX(18px); opacity: 0; }
[data-aos="fade-left"].aos-animate  { transform: none; opacity: 1; }

/* IntersectionObserver fallback */
.ab-reveal {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 700ms var(--ab-ease),
				transform 700ms var(--ab-ease);
}
.ab-reveal.is-revealed { opacity: 1; transform: none; }

/* =============================================================
   21. UTILITIES
   ============================================================= */
.ab-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: 5px 14px;
	background: rgba(255, 107, 44, 0.10);
	color: var(--ab-orange-600);
	font-weight: 700;
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: var(--ab-radius-pill);
}
.ab-card {
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-lg);
	box-shadow: var(--ab-shadow-sm);
	padding: 1.5rem;
}
.ab-divider { height: 1px; background: var(--ab-border); margin: 2rem 0; }


/* =============================================================
   22. RESPONSIVE
   ============================================================= */
@media (max-width: 1199px) {
	.primary-header__nav-primary > li > a {
		padding: .8rem .85rem;
		font-size: 0.92rem;
	}
}

@media (max-width: 991px) {
	/* Mobile hamburger */
	.primary-header__toggle { display: inline-flex; }
	.primary-header__nav-primary-wrapper {
		flex-basis: 100%;
		display: none;
		order: 99;
		padding-top: 1rem;
	}
	body.menu-open .primary-header__nav-primary-wrapper { display: block; }
	.primary-header__nav-primary,
	.menu-primary-nav-container > ul {
		flex-direction: column;
		align-items: stretch;
	}
	.primary-header__nav-primary > li > a,
	#menu-primary-nav > li > a {
		display: block;
		padding: .9rem 1rem;
		border-radius: var(--ab-radius-md);
	}
	.primary-header__form { display: none; }
	.coverage-form-wrapper.header-form { display: none; }
}

@media (max-width: 767px) {
	.secondary-header { display: none; }
	.trustpilot-m {
		display: flex;
		justify-content: center;
		padding: 8px 0;
		background: var(--ab-navy-900);
	}
	.trustpilot-m img { max-height: 18px; filter: brightness(1.1); }
	.section,
	section.section,
	.standard-layout-section {
		padding-top: var(--ab-space-section-sm);
		padding-bottom: var(--ab-space-section-sm);
	}
	.hero-section h1,
	.hero-section .hero-section__content-wrapper h1 {
		font-size: clamp(1.8rem, 6vw, 2.4rem);
	}
	.hero-section__image-content-wrapper { grid-template-columns: 1fr; }
	.fullwidth-rural-bb .container { grid-template-columns: 1fr; }
	.fullwidth-rural-bb__graphic { min-height: 200px; }
	#footer .row > [class*="col-"],
	.footer-main .row > [class*="col-"] { margin-bottom: 1.5rem; }
}

@media (max-width: 480px) {
	.btn { padding: .7rem 1.2rem; font-size: 0.92rem; }
	.package-content-container { padding: 1.25rem; }
	.icon-boxes__item { padding: 1.25rem; }
}

/* =============================================================
   23. REDUCED MOTION + PRINT
   ============================================================= */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	[data-aos],
	.ab-reveal { transform: none !important; opacity: 1 !important; }
}

@media print {
	.site-header,
	#footer,
	.footer-main,
	.secondary-header,
	.trustpilot-m { display: none !important; }
	* { box-shadow: none !important; background: #fff !important; color: #000 !important; }
}

/* =============================================================
   24. SENIOR-LEVEL POLISH
   --------------------------------------------------------------
   The refinements that take the design from "clean" to "premium":
   refined type scale, glass cards, consistent grid heights,
   premium mobile menu, hover micro-interactions, accent strokes.
   ============================================================= */

/* — 24.1  Polished font stack — */
:root {
	--ab-font:
		"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
		Roboto, "Helvetica Neue", Arial, sans-serif;
	--ab-font-display:
		"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
		Roboto, "Helvetica Neue", Arial, sans-serif;
}
body { font-family: var(--ab-font); }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: var(--ab-font-display); }

/* Refined type scale */
h1, .h1 { font-size: clamp(2.1rem, 3.4vw, 3.1rem); font-weight: 800; }
h2, .h2 { font-size: clamp(1.65rem, 2.5vw, 2.25rem); font-weight: 800; }
h3, .h3 { font-size: clamp(1.2rem, 1.5vw, 1.45rem); font-weight: 700; }

/* — 24.2  Subtle heading underline accent on sections — */
.section h2:not(.no-accent)::after,
.standard-layout-section__content h2:not(.no-accent)::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin: .85rem 0 1.25rem;
	background: var(--ab-grad-primary);
	border-radius: 999px;
	box-shadow: 0 4px 12px rgba(255, 107, 44, 0.30);
}
.section h2.text-center::after,
.section .text-center h2::after,
[class*="trustpilot-section__heading"]::after {
	margin-left: auto;
	margin-right: auto;
}

/* — 24.3  Hero CTA group polish + floating glass form — */
.hero-section .hero-section__content-wrapper .content > .btn,
.hero-section .hero-section__content-wrapper > .btn {
	margin-top: 1rem;
	margin-right: .5rem;
	padding: .95rem 1.75rem;
	font-size: 1rem;
}
.hero-section .coverage-form,
.hero-section .coverage-form-wrapper {
	position: relative;
	background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.92));
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.6);
	margin-top: 1.5rem;
}
.hero-section .coverage-form::before {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(255, 107, 44, 0.35), rgba(45, 91, 166, 0.25));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	padding: 1px;
	pointer-events: none;
	z-index: 0;
}
.hero-section .coverage-form > * { position: relative; z-index: 1; }

/* — 24.4  Trustpilot / Reviews section: centered, framed, refined — */
.trustpilot-reviews-section .container,
#trustpilot-section .container { max-width: 1140px; }
.trustpilot-section__heading,
.trustpilot-reviews-section__heading {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}
.home-reviews-slider-wrap { padding: 0 1rem; }
.home-reviews-summary {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	color: var(--ab-text-muted);
	font-weight: 600;
}

/* — 24.5  Package grid — consistent card heights & breathing room — */
.packages-list,
.package-row { gap: clamp(1rem, 1.5vw, 1.75rem); }
.package,
.package-card { display: flex; height: 100%; }
.package > .package-content-container,
.package-card > .package-content-container,
.js-package-card { width: 100%; }

/* — 24.6  Mobile menu — slide-in drawer (premium overlay) — */
@media (max-width: 991px) {
	.primary-header__nav-primary-wrapper {
		position: fixed;
		top: 0; right: 0;
		width: min(380px, 88vw);
		height: 100vh;
		background: #fff;
		padding: 5rem 1.5rem 2rem;
		box-shadow: -24px 0 60px rgba(7, 20, 46, 0.16);
		display: flex !important;
		flex-direction: column;
		transform: translateX(100%);
		transition: transform .35s var(--ab-ease);
		z-index: 100;
		overflow-y: auto;
	}
	body.menu-open .primary-header__nav-primary-wrapper {
		transform: translateX(0);
	}
	body.menu-open::after {
		content: "";
		position: fixed;
		inset: 0;
		background: rgba(7, 20, 46, 0.45);
		backdrop-filter: blur(4px);
		-webkit-backdrop-filter: blur(4px);
		z-index: 99;
		animation: ab-fade-in .35s var(--ab-ease) forwards;
	}
	@keyframes ab-fade-in {
		from { opacity: 0; }
		to   { opacity: 1; }
	}
	body.menu-open { overflow: hidden; }
	.primary-header__nav-primary > li > a,
	#menu-primary-nav > li > a {
		padding: 1rem 1.25rem !important;
		font-size: 1rem !important;
		border-bottom: 1px solid var(--ab-border);
		border-radius: 0 !important;
	}
	.primary-header__nav-primary > li:last-child > a { border-bottom: 0; }
	/* Premium hamburger animation */
	body.menu-open .primary-header__toggle span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}
	body.menu-open .primary-header__toggle span:nth-child(2) {
		opacity: 0;
	}
	body.menu-open .primary-header__toggle span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}
	.primary-header__toggle {
		position: relative;
		z-index: 101;
	}
}

/* — 24.7  Buttons — refined micro-interactions — */
.btn { position: relative; overflow: hidden; }
.btn::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,0.25), transparent 60%);
	opacity: 0;
	transition: opacity var(--ab-dur) var(--ab-ease);
	pointer-events: none;
}
.btn:hover::before { opacity: 1; }
.btn > * { position: relative; z-index: 1; }

/* — 24.8  Card universal hover lift + glow stroke — */
.package-content-container,
.icon-boxes__item,
.home-review-card,
.airband-news-card,
.news-card,
article.post {
	position: relative;
}
.package-content-container::before,
.icon-boxes__item::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(255, 107, 44, 0), rgba(255, 107, 44, 0));
	pointer-events: none;
	transition: background var(--ab-dur) var(--ab-ease);
}
.package-content-container:hover::before,
.package:hover .package-content-container::before,
.icon-boxes__item:hover::before {
	background: linear-gradient(135deg, rgba(255, 107, 44, 0.04), rgba(45, 91, 166, 0.02));
}

/* — 24.9  Footer columns — 5-up grid that flexes — */
@media (min-width: 992px) {
	.footer-main .row {
		display: grid !important;
		grid-template-columns: 1.2fr 1fr 1fr 1fr 1fr;
		gap: 2rem;
	}
	.footer-main .row > [class*="col-"] {
		flex: none !important;
		max-width: none !important;
		width: auto !important;
	}
}

/* — 24.10  Trustpilot bar in top header — refined contrast — */
.secondary-header { font-size: .82rem; letter-spacing: 0.01em; }
.secondary-header .secondary-header__nav { min-height: 26px; }

/* — 24.11  Sticky header — subtle shrink on scroll — */
body.is-scrolled .primary-header { padding-top: 10px; padding-bottom: 10px; }

/* — 24.12  Mobile-only "trustpilot-m" strip — */
.trustpilot-m {
	background: var(--ab-navy-900);
	padding: 8px 0;
	text-align: center;
}
.trustpilot-m a { display: inline-block; }
.trustpilot-m img { max-height: 18px; width: auto; }

/* — 24.13  Form labels & error states — */
.form-control.is-invalid,
input.is-invalid,
input[aria-invalid="true"] {
	border-color: #DC2626 !important;
	box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.12) !important;
}
.invalid-feedback,
.wpcf7-not-valid-tip {
	color: #DC2626;
	font-size: 0.85rem;
	margin-top: .25rem;
	display: block;
}
.wpcf7-response-output {
	border-radius: var(--ab-radius-md);
	padding: .75rem 1rem;
	border: 0;
}
.wpcf7 form.invalid .wpcf7-response-output { background: rgba(220, 38, 38, 0.08); color: #B91C1C; }
.wpcf7 form.sent .wpcf7-response-output { background: rgba(16, 185, 129, 0.10); color: #047857; }

/* — 24.14  Tabs (Bootstrap nav-tabs) re-themed — */
.nav-tabs {
	border-bottom: 1px solid var(--ab-border);
	gap: .25rem;
}
.nav-tabs .nav-link {
	color: var(--ab-text-muted);
	font-weight: 700;
	border: 0;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	padding: .75rem 1rem;
	background: transparent;
}
.nav-tabs .nav-link:hover { color: var(--ab-orange-500); }
.nav-tabs .nav-link.active {
	color: var(--ab-orange-600);
	border-bottom-color: var(--ab-orange-500);
	background: transparent;
}

/* — 24.15  Tables — clean modern look — */
table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-md);
	overflow: hidden;
}
table th {
	background: var(--ab-surface-2);
	color: var(--ab-text);
	font-weight: 700;
	text-align: left;
	padding: .85rem 1rem;
	border-bottom: 1px solid var(--ab-border);
}
table td {
	padding: .85rem 1rem;
	border-bottom: 1px solid var(--ab-border);
	color: var(--ab-text-soft);
}
table tr:last-child td { border-bottom: 0; }

/* — 24.16  Blockquote — */
blockquote {
	margin: 1.5rem 0;
	padding: 1.25rem 1.5rem;
	background: var(--ab-orange-50);
	border-left: 4px solid var(--ab-orange-500);
	border-radius: 0 var(--ab-radius-md) var(--ab-radius-md) 0;
	color: var(--ab-text-soft);
	font-style: italic;
}

/* — 24.17  Pagination — */
.pagination,
.page-numbers,
.nav-links {
	display: inline-flex;
	gap: .35rem;
	list-style: none;
	padding: 0;
	margin: 2rem 0 0;
}
.page-numbers a,
.page-numbers span,
.pagination a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 .85rem;
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius-md);
	color: var(--ab-text);
	font-weight: 700;
	text-decoration: none;
	transition: all var(--ab-dur) var(--ab-ease);
}
.page-numbers a:hover,
.pagination a:hover {
	border-color: var(--ab-orange-500);
	color: var(--ab-orange-500);
	transform: translateY(-2px);
}
.page-numbers.current,
.page-numbers .current {
	background: var(--ab-grad-primary);
	color: #fff;
	border-color: transparent;
	box-shadow: var(--ab-shadow-glow);
}

/* — 24.18  Skip-link / a11y — */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--ab-orange-500);
	color: #fff;
	padding: .5rem 1rem;
	z-index: 999;
	border-radius: 0 0 var(--ab-radius-md) 0;
}
.skip-link:focus { left: 0; }

/* — 24.19  Hero countdown chip — refined — */
.hero-section__countdown-placeholder,
.hero-section .countdown-timer {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	padding: 1rem 1.25rem;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--ab-radius-lg);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

/* — 24.20  Fine-tune section vertical rhythm — */
.section.icon-boxes { background: var(--ab-white); }
.section + .section.bg-brand-off-white,
.section.bg-brand-off-white + .section { /* prevent same-bg sections touching */ }

/* — 24.21  Smooth fade-in on first paint — */
@keyframes ab-page-fade {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: none; }
}
main#content > .section:first-of-type,
.site-content > .section:first-of-type {
	animation: ab-page-fade 700ms var(--ab-ease) both;
}

/* — 24.22  Print refinements — */
@media print {
	.hero-section { background: #fff !important; color: #000 !important; }
	.hero-section h1 { color: #000 !important; }
	.btn { display: none !important; }
}

/* =============================================================
   25. NAVIGATION SUBMENUS  (hide-by-default; reveal on hover)
   --------------------------------------------------------------
   Replaces the closed-state rules that used to live in
   wpr-usedcss.css. Covers both WordPress default .sub-menu
   and MaxMegaMenu .mega-sub-menu.
   ============================================================= */

/* — 25.1  Hide all submenus by default — */
.primary-header__nav-primary .sub-menu,
.primary-header__nav-primary .mega-sub-menu,
#menu-primary-nav .sub-menu,
.menu-primary-nav-container .sub-menu,
.menu-primary-nav-container .mega-sub-menu,
.secondary-header__nav-switch .sub-menu,
.secondary-header__nav-switch .mega-sub-menu,
nav ul.sub-menu,
ul.sub-menu,
li.menu-item-has-children > ul.sub-menu,
li.mega-menu-item > ul.mega-sub-menu {
	display: none;
}

/* — 25.2  Position relatively on parent items — */
.primary-header__nav-primary > li,
#menu-primary-nav > li,
.menu-primary-nav-container > ul > li,
.secondary-header__nav-switch > li {
	position: relative;
}

/* — 25.3  Primary nav dropdown — reveal on hover/focus — */
@media (min-width: 992px) {
	.primary-header__nav-primary > li:hover > .sub-menu,
	.primary-header__nav-primary > li:focus-within > .sub-menu,
	#menu-primary-nav > li:hover > .sub-menu,
	#menu-primary-nav > li:focus-within > .sub-menu,
	.menu-primary-nav-container > ul > li:hover > .sub-menu,
	.menu-primary-nav-container > ul > li:focus-within > .sub-menu {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 240px;
		background: #fff;
		border: 1px solid var(--ab-border);
		border-radius: var(--ab-radius-md);
		box-shadow: var(--ab-shadow-md);
		padding: .5rem;
		margin: .5rem 0 0;
		list-style: none;
		z-index: 100;
		animation: ab-submenu-in 220ms var(--ab-ease);
	}
	@keyframes ab-submenu-in {
		from { opacity: 0; transform: translateY(-6px); }
		to   { opacity: 1; transform: none; }
	}
	.primary-header__nav-primary .sub-menu li,
	#menu-primary-nav .sub-menu li,
	.menu-primary-nav-container .sub-menu li { list-style: none; margin: 0; padding: 0; }
	.primary-header__nav-primary .sub-menu a,
	#menu-primary-nav .sub-menu a,
	.menu-primary-nav-container .sub-menu a {
		display: block;
		padding: .6rem .85rem;
		color: var(--ab-text);
		font-weight: 500;
		font-size: 0.93rem;
		border-radius: var(--ab-radius-sm);
		text-decoration: none;
		transition: background var(--ab-dur) var(--ab-ease),
					color var(--ab-dur) var(--ab-ease);
	}
	.primary-header__nav-primary .sub-menu a:hover,
	#menu-primary-nav .sub-menu a:hover,
	.menu-primary-nav-container .sub-menu a:hover {
		background: var(--ab-orange-50);
		color: var(--ab-orange-600);
	}

	/* — Secondary header dropdown (Locations / News) — */
	.secondary-header__nav-switch > li:hover > .sub-menu,
	.secondary-header__nav-switch > li:focus-within > .sub-menu {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 200px;
		background: #fff;
		border: 1px solid var(--ab-border);
		border-radius: var(--ab-radius-md);
		box-shadow: var(--ab-shadow-md);
		padding: .5rem;
		margin: .5rem 0 0;
		list-style: none;
		z-index: 100;
	}
	.secondary-header__nav-switch .sub-menu li { list-style: none; margin: 0; padding: 0; }
	.secondary-header__nav-switch .sub-menu a {
		display: block;
		padding: .55rem .85rem;
		color: var(--ab-text) !important;
		font-weight: 500;
		font-size: 0.9rem;
		border-radius: var(--ab-radius-sm);
		text-decoration: none;
		transition: background var(--ab-dur) var(--ab-ease),
					color var(--ab-dur) var(--ab-ease);
	}
	.secondary-header__nav-switch .sub-menu a:hover {
		background: var(--ab-orange-50);
		color: var(--ab-orange-600) !important;
	}
}

/* — 25.4  Mobile menu — submenus as inline accordion (open on tap) — */
@media (max-width: 991px) {
	.primary-header__nav-primary > li.menu-item-has-children > a::after,
	#menu-primary-nav > li.menu-item-has-children > a::after {
		content: "▾";
		margin-left: auto;
		opacity: .5;
		transition: transform var(--ab-dur) var(--ab-ease);
	}
	.primary-header__nav-primary > li.menu-item-has-children > a {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	.primary-header__nav-primary > li.menu-item-has-children:hover > a::after,
	.primary-header__nav-primary > li.menu-item-has-children:focus-within > a::after {
		transform: rotate(180deg);
	}
	.primary-header__nav-primary > li:hover > .sub-menu,
	.primary-header__nav-primary > li:focus-within > .sub-menu,
	#menu-primary-nav > li:hover > .sub-menu,
	#menu-primary-nav > li:focus-within > .sub-menu {
		display: block;
		padding: 0 0 0 1rem;
		margin: 0;
		list-style: none;
		border-left: 2px solid var(--ab-border);
	}
	.primary-header__nav-primary .sub-menu li,
	#menu-primary-nav .sub-menu li { list-style: none; margin: 0; padding: 0; }
	.primary-header__nav-primary .sub-menu a {
		display: block;
		padding: .55rem .75rem;
		color: var(--ab-text-soft);
		font-size: 0.92rem;
		text-decoration: none;
	}
	.primary-header__nav-primary .sub-menu a:hover {
		color: var(--ab-orange-500);
	}
}

/* — 25.5  MaxMegaMenu — if the plugin is active, let it own the layout
       but ensure our colour palette wins — */
.mega-menu-wrap .mega-menu-link,
.mega-menu-wrap .mega-sub-menu .mega-menu-link {
	font-family: inherit !important;
}
.mega-menu-wrap .mega-sub-menu a:hover {
	color: var(--ab-orange-500) !important;
}

/* — 25.6  Guard: hide any stray submenu still showing at page load — */
body:not(.menu-open) .primary-header__nav-primary > li > .sub-menu:not(:hover):not(:focus-within),
body:not(.menu-open) .secondary-header__nav-switch > li > .sub-menu:not(:hover):not(:focus-within) {
	/* No-op safety; the rules above already hide them, but if a 3rd-party plugin
	   tries to force them visible, this provides a final layer. */
}
