/*
Theme Name: LuggageSorted Child
Theme URI: https://www.luggagesorted.com
Description: LuggageSorted child theme for Astra
Author: LuggageSorted
Template: astra
Version: 1.0.0
Text Domain: luggagesorted-child
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Oswald:wght@600;700&display=swap');

/* ── Body ─────────────────────────────────────── */

body {
	/* Astra's main.min.css sets body{background:#fff} — !important ensures we win */
	background-color: #f6f3f1 !important;
}

/* ── Header — background ──────────────────────── */

/* Astra's builder generates:
     .ast-primary-header-bar { background-color: var(--ast-global-color-primary, var(--ast-global-color-4)) }
   where --ast-global-color-4 defaults to #FFFFFF (white) in the global palette.
   Override the variable on the header elements so the var() chain resolves to
   navy, and keep the !important declaration as a belt-and-suspenders fallback. */
.site-header,
.main-header-bar-wrap,
.main-header-bar,
.ast-primary-header-bar,
#masthead {
	--ast-global-color-4: #02163b;
	--ast-global-color-primary: #02163b;
	background-color: #02163b !important;
}

/* ── Header — logo ────────────────────────────── */

.luggagesorted-site-logo {
	height: 32px;
	width: auto;
	display: block;
}

/* ── Header — site title (text fallback) ─────── */

.main-header-bar .ast-site-identity .site-title a,
.main-header-bar .ast-site-identity .site-title a:hover,
.main-header-bar .site-title a,
#masthead .site-title a {
	color: #fff !important;
}

/* ── Header — navigation links ───────────────── */

/* Covers desktop nav (.ast-builder-menu-1 is Astra's exact selector) */
.main-header-bar .menu-link,
.ast-builder-menu-1 .menu-item > .menu-link,
.ast-builder-menu-1 .menu-item > a,
#masthead .menu-link {
	color: #fff !important;
}

.main-header-bar .menu-link:hover,
.ast-builder-menu-1 .menu-item:hover > .menu-link,
.ast-builder-menu-1 .menu-item:hover > a {
	color: rgba(255, 255, 255, 0.9) !important;
	text-decoration: underline;
	text-decoration-color: #ffc107;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

/* Mobile nav — header bar background */
#ast-mobile-header,
#ast-mobile-header .main-header-bar,
#ast-mobile-header .main-header-bar-wrap {
	background-color: #02163b !important;
}

/* Mobile nav — popup panel: navy background, matching the header bar */
.ast-mobile-header-content {
	background-color: #02163b !important;
}

/* Mobile nav — all text white on navy.
   Covers: link text (.menu-link), submenu expand/collapse chevrons
   (.ast-menu-toggle), and any label text (.mobile-menu).
   Astra's dynamic CSS uses specificity up to 4 classes without !important,
   so !important here wins regardless of Customizer-generated rules. */
#ast-mobile-header .menu-link,
#ast-mobile-header .ast-menu-toggle,
.ast-builder-menu-mobile .menu-link,
.ast-builder-menu-mobile .ast-menu-toggle,
.ast-mobile-header-content .menu-link,
.ast-mobile-header-content .ast-menu-toggle,
.ast-mobile-header-content .mobile-menu {
	color: #fff !important;
}

/* Mobile nav — hover: links and chevrons */
.ast-mobile-header-content .menu-item:hover > .menu-link,
.ast-mobile-header-content .menu-item:hover > .ast-menu-toggle,
.ast-builder-menu-mobile .menu-item:hover > .menu-link,
.ast-builder-menu-mobile .menu-item:hover > .ast-menu-toggle {
	color: rgba(255, 255, 255, 0.85) !important;
	text-decoration: underline;
	text-decoration-color: #ffc107;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

/* Mobile nav — active / current page
   Bold + yellow underline distinguishes active from plain white links. */
.ast-mobile-header-content .menu-item.current-menu-item > .menu-link,
.ast-mobile-header-content .menu-item.current-menu-ancestor > .menu-link,
.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-item > .menu-link,
.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-ancestor > .menu-link {
	color: #fff !important;
	font-weight: 700 !important;
	text-decoration: underline !important;
	text-decoration-color: #ffc107 !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 4px !important;
}

/* Active chevron — keep white, not whatever active colour Astra injects */
.ast-mobile-header-content .menu-item.current-menu-item > .ast-menu-toggle,
.ast-mobile-header-content .menu-item.current-menu-ancestor > .ast-menu-toggle,
.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-item > .ast-menu-toggle,
.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-ancestor > .ast-menu-toggle {
	color: #fff !important;
}

/* Mobile nav — row dividers: subtle white at 12% opacity on navy */
.ast-mobile-header-content .menu-item {
	border-bottom-color: rgba(255, 255, 255, 0.12) !important;
}

/* ── Hamburger toggle icon ───────────────────────────────────────────────────
   Astra's dynamic CSS sets `fill` directly on the .ast-mobile-svg element
   (not `color`), so we must target `fill` to change the icon colour.
   The wrapper selector matches the data-section attribute Astra puts on the
   trigger component div. Size is also overridden here so it wins over
   the inline dynamic value. */
[data-section="section-header-mobile-trigger"] .ast-mobile-svg {
	fill: #ffc107 !important;
	width: 28px !important;
	height: 28px !important;
}

/* ── Nav — font & text style ─────────────────────────────────────────────── */

.main-header-menu .menu-item a,
.main-header-menu .menu-item {
	font-family: 'Oswald', sans-serif;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.85rem;
	padding: 0.4rem 0.8rem;
}

/* ── Nav — Book Now pill button ────────────────── */

 .main-header-menu .menu-item a[href*="/book"] {
	background: #ffc107;
	color: #02163b !important;
	padding: 0.35rem 1.2rem;
	border-radius: 999px;
	line-height: 1.4;
	transition: background 0.2s;
}
.main-header-menu .menu-item a[href*="/book"]:hover {
	background: #e0a800;
  color: #02163b !important;
}
.ast-desktop .ast-primary-header-bar .main-header-menu > .menu-item:has(a[href*="/book"]) {
	line-height: normal !important;
}
.ast-desktop .ast-primary-header-bar .main-header-menu > .menu-item a[href*="/book"] {
	line-height: normal !important;
	padding: 0.35rem 1.2rem !important;
}

.ast-desktop:not(:has(.ast-header-sticked)) .ast-primary-header-bar .main-header-menu > .menu-item {
    line-height: 0px;
}


/* ── Nav — dropdown submenus ───────────────────── */

.main-header-menu .sub-menu {
	background: #02163b;
	border: none;
	border-radius: 8px;
	padding: 0.5rem 0;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
.main-header-menu .sub-menu .menu-item a {
	color: rgba(255, 255, 255, 0.85) !important;
	font-family: 'Oswald', sans-serif;
	font-weight: 600;
	letter-spacing: 0.08em;
	font-size: 0.8rem;
	padding: 0.6rem 1.2rem;
}
.main-header-menu .sub-menu .menu-item a:hover {
	color: #ffc107 !important;
	background: rgba(255, 255, 255, 0.05);
}

/* ── Nav — cart icon ───────────────────────────── */

.ls-nav-cart {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	font-family: 'Oswald', sans-serif;
	font-weight: 600;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	color: #fff;
	text-decoration: none !important;
	margin-left: -2.5rem !important;
}
.ls-nav-cart:hover {
	color: #ffc107 !important;
}
.ls-nav-cart__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #ffc107;
	color: #02163b;
	font-size: 0.7rem;
	font-weight: 700;
	line-height: 1;
	min-width: 18px;
	height: 18px;
	border-radius: 999px;
	padding: 0 4px;
}

/* ── WooCommerce buttons ─────────────────────────
   Astra sets button bg/border via --ast-global-color-0 (#046bd2).
   Override it for WC contexts, then apply hard values with !important
   as a fallback for anything that doesn't inherit the variable.
*/

.woocommerce-page {
	--ast-global-color-0: #02163b;
	--ast-global-color-1: #031d4e;
}

/* ── WooCommerce buttons — classic cart & checkout */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit,
.woocommerce #payment #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	background-color: #02163b !important;
	color: #fff !important;
	border-color: #02163b !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit:hover,
.woocommerce #payment #place_order:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background-color: #031d4e !important;
	color: #fff !important;
	border-color: #031d4e !important;
}

/* ── WooCommerce buttons — block cart & checkout  */

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button.contained,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button {
	background-color: #02163b !important;
	color: #fff !important;
	border-color: #02163b !important;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-button.contained:hover,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button:hover {
	background-color: #031d4e !important;
	color: #fff !important;
	border-color: #031d4e !important;
}

/* ── WooCommerce cart / checkout / order confirmation — card styling ── */

/* Shared card look — cart, checkout, and order-confirmation/order-details
   panels all read as the same rounded, bordered card. */
.woocommerce-cart-form,
.cart-collaterals .cart_totals,
.cart-collaterals .cross-sells,
.woocommerce table.shop_table,
.wc-block-cart__main .wp-block-woocommerce-cart-items-block,
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-order-details,
.woocommerce-customer-details,
.wp-block-woocommerce-checkout-shipping-address-block,
.wp-block-woocommerce-checkout-billing-address-block,
.wp-block-woocommerce-checkout-order-summary-block {
	background: #fff;
	border: 1px solid var(--ast-border-color);
	padding: 16px;
	box-shadow: 0 1px 4px rgba(2, 22, 59, 0.06);
	border-radius: 12px;
	overflow: hidden;
	margin-top: 2em;
}

.woocommerce-cart table.shop_table td.product-name {    
  font-weight: 800;
}

/* In the two-column checkout layout, #customer_details sits beside
   #order_review_heading + #order_review. The latter pair has no top margin
   (the heading sits flush at the top of its column), so drop the shared
   block's margin-top here too — otherwise #customer_details sits lower and
   the two cards' tops don't line up. */
.woocommerce-checkout #customer_details {
	margin-top: 0;
}

/* table.shop_table sits nested directly inside several of the cards above
   (cart_totals, #order_review, .woocommerce-order-details) — strip its own
   border/radius there so we don't get a card-within-a-card. The cart's main
   line-items table (inside .woocommerce-cart-form) needs the same fix. */
.woocommerce-cart-form table.shop_table,
.cart-collaterals .cart_totals table.shop_table,
.woocommerce-checkout #order_review table.shop_table,
.woocommerce-order-details table.shop_table {
	border: none;
	border-radius: 12px;
	overflow: visible;
	box-shadow: none;
	padding: 0;
	margin-top: 0;
}

.woocommerce-cart .cart-collaterals .cart_totals, 
.woocommerce-cart .cart-collaterals .cross-sells {
		border-radius: 12px;

}

.woocommerce-page.woocommerce-checkout .woocommerce-order h2.woocommerce-column__title, 
.woocommerce-page.woocommerce-checkout .woocommerce-order h2.woocommerce-order-details__title, 
.woocommerce.woocommerce-checkout .woocommerce-order h2.woocommerce-column__title, 
.woocommerce.woocommerce-checkout .woocommerce-order h2.woocommerce-order-details__title {
    border-width: 0;
}


.woocommerce-error, .woocommerce-info, .woocommerce-message {
    background-color: rgb(255 255 255);
}

/* Card title bars — flush with the top of the card they head up.
   The cards above have 16px padding, which would otherwise inset the title
   bar from the edges — negative margins cancel that out so the bar spans
   the full width and its top corners meet the card's rounded corners. */
.cart-collaterals .cart_totals > h2,
.cart-collaterals .cross-sells > h2,
.woocommerce-order-details__title,
.woocommerce-column__title {
	border: none; /* Astra's own woocommerce.css puts a border on these — doubles up against the card's outer border */
	border-radius: 12px 12px 0 0;
	background: var(--ast-border-color);
	padding: 12px 16px;
	margin: -16px -16px 16px;
}

/* "Your order" heading is a sibling that sits above #order_review rather
   than inside it — fuse the two into a single card: the heading gets the
   rounded top, the box below loses its top radius/margin so they meet flush. */
form #order_review_heading:not(.elementor-widget-woocommerce-checkout-page #order_review_heading) {
	border: none;
	border-radius: 12px 12px 0 0;
	background: var(--ast-border-color);
	padding: 12px 16px;
	margin: 0;
}
.woocommerce-checkout #order_review:not(.elementor-widget-woocommerce-checkout-page #order_review) {
	margin-top: 0;
	border-radius: 0 0 12px 12px;
}

/* Order confirmation — the booking detail block ("Booking #169" + status
   badge) ships with its own bordered box (WC Bookings' frontend.css sets
   border + padding + radius on .wc-booking-summary). Strip that so the
   date/time read as plain inline text under the product name instead of a
   nested card. */
.wc-booking-summary {
	border: none;
	border-radius: 0;
	padding: 0;
	margin: 4px 0 0;
}

.wc-booking-summary .wc-booking-summary-number .status-paid {
    background-color: #031d4e;
}

/* ── Cart / checkout — layout spacing ──────────── */

/* Vertical breathing room above / below the full cart and checkout blocks */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	padding-top: 24px;
	padding-bottom: 24px;
}

/* Bottom margin so each card doesn't sit flush against the next element */
.wc-block-cart__main .wp-block-woocommerce-cart-items-block,
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-fields-block,
.wp-block-woocommerce-checkout-order-summary-block {
	margin-bottom: 24px;
}

/* ── Checkout order summary — collapse inner WC border ── */

/* WC's checkout.css puts a second border on .checkout-order-summary-block-fill
   (the direct child of our card), creating a double-box. Neutralise it. */
.wp-block-woocommerce-checkout-order-summary-block .checkout-order-summary-block-fill {
	border: none !important;
	border-radius: 0;
	background: transparent;
}

/* ── Cart — hide quantity column ── */
/* .actions is NOT hidden here — it contains the coupon input field. */

.woocommerce-cart .cart .quantity,
.woocommerce-cart .cart thead .product-quantity,
.woocommerce-cart .cart .product-quantity {
	display: none !important;
}

.woocommerce-order .product-quantity,
.woocommerce-checkout .product-quantity {
	display: none !important;
}

/* ── Cart table row spacing ───────────────────── */

/* Classic cart */
.woocommerce table.shop_table tbody tr td {
	padding: 16px 12px;
}

.woocommerce table.shop_table thead th {
	padding: 12px 12px;
}

/* Block cart line items */
.wc-block-cart-items__row {
	padding-top: 16px;
	padding-bottom: 16px;
}

.wc-block-cart-item__image,
.wc-block-cart-item__product,
.wc-block-cart-item__quantity,
.wc-block-cart-item__total {
	padding-top: 8px;
	padding-bottom: 8px;
}

/* ── AffiliateWP — card & button styling ──────── */

/* Cards (dashboard tiles, link generator, etc.) — overrides plugin's
   faint border + commented-out radius, and the --compact variant's 0.25rem */
.affwp-card {
	background: #fff !important;
	border-radius: 12px !important;
	border: 1px solid #e4e0dd !important;
	box-shadow: none;
}

/* Dashboard navigation tabs */
#affwp-affiliate-dashboard #affwp-affiliate-dashboard-tabs li a,
.affwp-affiliate-dashboard-tab {
	color: #02163b;
}
#affwp-affiliate-dashboard #affwp-affiliate-dashboard-tabs li a:hover {
	color: #031d4e;
	text-decoration: underline;
}

/* Buttons — dashboard area + login/register/opt-in forms (.affwp-form) */
#affwp-affiliate-dashboard .button,
#affwp-affiliate-dashboard .button-primary,
.affwp-form .button,
.affwp-form .button-primary {
	background-color: #02163b !important;
	border-color: #02163b !important;
	border-radius: 10px !important;
	color: #fff !important;
	white-space: nowrap !important;
	min-width: max-content !important;
}

#affwp-affiliate-dashboard .button:hover,
#affwp-affiliate-dashboard .button-primary:hover,
.affwp-form .button:hover,
.affwp-form .button-primary:hover {
	background-color: #031d4e !important;
	border-color: #031d4e !important;
}

/* ── Homepage ──────────────────────────────────── */

:root {
  --ls-navy:        #02163b;
  --ls-cream:       #f6f3f1;
  --ls-yellow:      #ffc107;
  --ls-yellow-dark: #e0a800;
}

.ls-page {
  font-family: 'Inter', sans-serif;
  color: var(--ls-navy);
  background: var(--ls-cream);
}
.ls-page *, .ls-page *::before, .ls-page *::after {
  box-sizing: border-box;
}
.ls-page p {
  margin-bottom: 10px;
}

.ls-hero {
  background: var(--ls-cream);
  padding: 3rem;
}
.ls-hero__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 56px;
}
.ls-hero__headline {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 5rem;
  line-height: 1.0;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--ls-navy);
  margin: 0 0 20px;
}
.ls-hero__headline-accent {
  color: var(--ls-yellow-dark);
}
.ls-hero__rule {
  width: 56px;
  height: 4px;
  background: var(--ls-yellow);
  border: none;
  margin: 0 0 24px;
}
.ls-hero__lede {
  font-size: 1.2rem;
  font-weight: 500;
  color: #3a3a3a;
  line-height: 1.5;
  max-width: 340px;
  margin: 0;
}
.ls-hero__cta {
  display: inline-block;
  margin-top: 1.2rem;
    background: #ffc107;
    color: #031d4e;
    font-family: 'Oswald', sans-serif;
    font-weight: 600;
    font-size: 1rem;
    padding: 18px 46px;
    border-radius: 12px;
  text-decoration: none !important;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  transition: background 0.18s ease;
}
.ls-hero__cta:hover {
  background: #031d4e;
  color: #fff;
  text-decoration: none !important;
}
.ls-hero__image img {
  width: 100%;
  max-width: 330px;
  height: auto;
  display: block;
}

.ls-pricing {
  background: var(--ls-navy);
  padding: 72px 24px;
}
.ls-pricing__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.ls-pricing__heading {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  color: #fff;
  text-align: center;
  margin: 0 0 48px;
}
.ls-pricing__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.ls-pricing__card {
  background: #052f61;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 12px;
  padding: 32px 20px 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
  text-decoration: none !important;
  color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ls-pricing__card:hover {
  transform: scale(1.03);
  box-shadow: 0 8px 32px rgba(255, 193, 7, 0.18);
}
.ls-pricing__card-icon {
  width: 100px;
  height: 100px;
  margin-bottom: 4px;
}
.price-card-divider {
  width: 40px;
  height: 2px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 1px;
}
.ls-pricing__card-size {
  font-family: 'Oswald', sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.ls-pricing__card-price {
  font-family: 'Oswald', sans-serif;
  font-size: 2.125rem;
  font-weight: 700;
  color: var(--ls-yellow);
  line-height: 1;
}
.ls-pricing__card-subtitle {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.45;
}

.ls-location {
  background: var(--ls-cream);
  padding: 80px 24px;
}
.ls-location__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.ls-location__map-link {
  display: block;
  border-radius: 12px;
  overflow: hidden;
  line-height: 0;
  box-shadow: 0 4px 20px rgba(2, 22, 59, 0.13);
  transition: box-shadow 0.18s ease;
}
.ls-location__map-link:hover {
  box-shadow: 0 6px 28px rgba(2, 22, 59, 0.2);
}
.ls-location__map-link img {
  width: 100%;
  height: auto;
  display: block;
}
.ls-location__map-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  background: var(--ls-navy);
  color: #fff;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 0.9375rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 14px 20px;
  border-radius: 6px;
  text-decoration: none !important;
  transition: background 0.18s ease;
}
.ls-location__map-btn:hover {
  background: #031d4e;
  color: #fff;
}
.ls-location__tube-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.ls-location__tube-icon {
  width: 48px;
  height: auto;
  flex-shrink: 0;
}
.ls-location__tube-text {
  font-size: 1.4rem;
  font-weight: 400;
  color: #3a3a3a;
  line-height: 1.4;
}
.ls-location__rule {
  width: 48px;
  height: 3px;
  background: var(--ls-yellow);
  border: none;
  margin: 0 0 20px;
}
.ls-location__info-heading {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ls-navy);
  line-height: 1.1;
  margin: 0 0 16px;
}
.ls-location__address {
  font-size: 1.0625rem;
  color: #3a3a3a;
  margin: 0 0 10px;
  line-height: 1.5;
  text-decoration: underline;
  text-decoration-color: var(--ls-yellow);
  text-underline-offset: 4px;
}
.ls-location__hours {
  font-size: 0.9375rem;
  color: #5a5a5a;
  margin: 0;
}

.ls-partners {
  background: #ffc107;
  margin: 0 auto;
  /*border-radius: 12px;*/
  /* max-width: 1100px!important; */
  align-content: center;
  padding: 1.8rem 2.5rem;
  border:1px solid rgba(0,0,0,0.2)
}
.ls-partners__inner {
  max-width: 1100px !important;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.ls-partners__eyebrow {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.5rem;
  letter-spacing: 0.01rem;
  text-transform: uppercase;
  color: var(--ls-navy);
  margin: 0 0 0.3rem;
}
.ls-partners__text {
  font-size: 1rem;
  color: var(--ls-navy);
  margin: 0;
}
.ls-partners__link {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #ffffff;
  text-decoration: none !important;
  white-space: nowrap;
  background: var(--ls-navy);
  padding: 10px 20px;
  border-radius: 10px;
}
.ls-partners__link:hover {
  background: #ffffff;
  color: var(--ls-navy);
}
@media (max-width: 640px) {
  .ls-partners {
    margin: 1.5rem 1rem;
  }
  .ls-partners__inner {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}

.ls-footer {
  background: var(--ls-navy);
  padding: 32px 24px;
}
.ls-footer__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.ls-footer__address,
.ls-footer__phone,
.ls-footer__copy,
.ls-footer__links
{
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}
.ls-footer__phone a {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
}
.ls-footer__phone a:hover {
  color: #ffc107;
}
.ls-footer__copy {
  color: rgba(255, 255, 255, 0.5);
}
.ls-footer__links a  {
  color: rgba(255, 255, 255, 0.5);
}
.ls-footer__links a:hover  {
  color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 768px) {
  .ls-hero {
    padding: 48px 20px;
  }
  .ls-hero__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ls-hero__image {
    order: -1;
    max-width: 320px;
    margin: 0 auto;
    width: 100%;
  }
  .ls-pricing {
    padding: 52px 20px;
  }
  .ls-pricing__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .ls-location {
    padding: 52px 20px;
  }
  .ls-location__inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .ls-footer__inner {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
  }
}

/* ── Page builder template — remove article padding */
.ast-single-post.ast-page-builder-template .site-main > article { padding: 0 !important; }

/* ── Homepage — hide Astra's default footer ────── */
body.home .site-footer { display: none !important; }

body .site-footer { display: none !important; }

/* ── Cart — hide redundant "Update cart" button ── */
button[name="update_cart"] { display: none !important; }

/* ── Global headings + legends — Oswald ─────────── */
h1, h2, h3, h4, h5, h6, legend, .ls-footer {
    font-family: 'Oswald', sans-serif;
}

/* ── AffiliateWP forms — yellow card treatment ───── */
.affwp-login-form,
.affwp-register-form,
.affwp-custom-link-generator,
.affwp-card.affwp-affiliate-link {
    background: rgba(255, 193, 7, 0.86)!important;
    padding: 20px 20px;
    border-radius: 12px;
}

body .affwp-form .affwp-register-form {max-width: 900px!important;}


.affwp-register-form input[type="submit"] { margin-bottom: 1.5rem; }
.affwp-register-form legend,
.affwp-login-form legend { padding-left: 0; }


.affwp-form legend {
    font-size: 110%;
    margin-bottom: 1em;
    margin: 0 auto;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.affwp-login-form input[type="text"],
.affwp-login-form input[type="email"],
.affwp-login-form input[type="password"],
.affwp-login-form input[type="url"],
.affwp-login-form select,
.affwp-login-form textarea,
.affwp-register-form input[type="text"],
.affwp-register-form input[type="email"],
.affwp-register-form input[type="password"],
.affwp-register-form input[type="url"],
.affwp-register-form select,
.affwp-register-form textarea,
.affwp-custom-link-generator input[type="text"],
.affwp-custom-link-generator input[type="email"],
.affwp-custom-link-generator input[type="url"],
.affwp-custom-link-generator select,
.affwp-custom-link-generator textarea {
    background: #ffffff;
    border: none;
    border-radius: 6px;
}

#affwp-custom-link-generator, #affwp-custom-links-table {display: none;}

/* ── Partners page — page-builder template overrides ── */
.ast-page-builder-template .entry-content .affwp-register {
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.ast-page-builder-template .entry-content .lsp-hero__inner,
.ast-page-builder-template .entry-content .lsp-steps__inner,
.ast-page-builder-template .entry-content .lsp-register-intro__inner {
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ── Partners page — registration form wrapper ───── */
.page-id-16 .affwp-register {
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 2rem !important;
    box-sizing: border-box !important;
}

/* ── Partners page — inner container override ────── */
.lsp-hero__inner,
.lsp-steps__inner,
.lsp-register-intro__inner {
    max-width: 900px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* ── Partners page ──────────────────────────────────────────────────────── */

/* Hero */
.lsp-hero {
  background: #f6f3f1;
  padding: 4rem 2rem 3rem;
}
.lsp-hero__inner {
  max-width: 900px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
  box-sizing: border-box;
}
.lsp-hero__eyebrow {
  font-family: 'Oswald', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #e0a800;
  margin: 0 0 1rem;
}
.lsp-hero__headline {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(2.8rem, 7vw, 4.5rem);
  font-weight: 700;
  color: #02163b;
  line-height: 1.05;
  margin: 0 0 1.25rem;
}
.lsp-hero__intro {
  font-family: 'Inter', sans-serif;
  font-size: 1.1rem;
  line-height: 1.65;
  color: #3a3a3a;
  max-width: 600px;
  margin: 0 0 2rem;
}
.lsp-hero__ctas {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  align-items: center;
}
.lsp-hero__cta-primary {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: #02163b;
  color: #fff !important;
  padding: 0.75rem 1.75rem;
  border-radius: 999px;
  text-decoration: none !important;
  display: inline-block;
  transition: background 0.2s;
}
.lsp-hero__cta-primary:hover {
  background: #0a2a5e;
}
.lsp-hero__cta-secondary {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: transparent;
  color: #02163b !important;
  border: 2px solid #02163b;
  padding: 0.7rem 1.75rem;
  border-radius: 999px;
  text-decoration: none !important;
  display: inline-block;
  transition: background 0.2s, color 0.2s;
}
.lsp-hero__cta-secondary:hover {
  background: #02163b;
  color: #fff !important;
}

/* Steps */
.lsp-steps {
  background: #02163b;
  padding: 4rem 2rem;
}
.lsp-steps__inner {
  max-width: 900px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}
.lsp-step__number {
  font-family: 'Oswald', sans-serif;
  font-size: 3rem;
  font-weight: 700;
  color: #ffc107;
  line-height: 1;
  margin: 0 0 0.75rem;
}
.lsp-step__heading {
  font-family: 'Oswald', sans-serif;
  font-size: 1.2rem;
  font-weight: 600;
  color: #fff;
  margin: 0 0 0.75rem;
}
.lsp-step__body {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
}

/* Registration intro */
.lsp-register-intro {
  background: #f6f3f1;
  padding: 3rem 2rem 2rem;
  text-align: center;
}
.lsp-register-intro__inner {
  max-width: 900px;
  margin: 0 auto;
}
.lsp-register-intro__heading {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  font-weight: 700;
  color: #02163b;
  margin: 0 0 0.75rem;
}
.lsp-register-intro__subtext {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: #666;
  margin: 0;
}

/* Mobile */
@media (max-width: 640px) {
  .lsp-steps__inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .lsp-hero__ctas {
    flex-direction: column;
    align-items: stretch;
  }
  .lsp-hero__cta-primary,
  .lsp-hero__cta-secondary {
    text-align: center;
  }
}