/*--------------------------------------------------------------
  SkyMarket.uk — brand stylesheet (BuddyBoss child)
  Loaded after the parent theme (priority 9999) with filemtime() versioning.
  Sections:
    1. Design tokens (CSS variables)
    2. Base / typography
    3. Buttons
    4. Layout helpers (container, sections)
    5. Badges
    6. Header
    7. Footer
    8. Homepage
    9. Listing card (reusable)
   10. Archive / search, single listing, seller dashboard, member profile
--------------------------------------------------------------*/

/* ============================================================
   0. CUSTOM PAGES — kill the parent theme's default title/thumbnail
   Every page below renders its own hero/title inside a [shortcode], but
   the parent's content.php still renders entry-header + entry-media above
   it regardless, producing a duplicate title (and a giant blank box if the
   page happens to have a featured image). One rule, every custom page,
   so a newly added page can't slip through this again.
   ============================================================ */
body.skm-page-news .entry-header, body.skm-page-news .entry-media,
body.skm-page-services .entry-header, body.skm-page-services .entry-media,
body.skm-page-advertise .entry-header, body.skm-page-advertise .entry-media,
body.skm-page-about .entry-header, body.skm-page-about .entry-media,
body.skm-page-privacy .entry-header, body.skm-page-privacy .entry-media,
body.skm-page-terms .entry-header, body.skm-page-terms .entry-media,
body.skm-page-contact .entry-header, body.skm-page-contact .entry-media,
body.skm-page-list-aircraft .entry-media,
body.skm-page-listings .entry-header, body.skm-page-listings .entry-media,
body.skm-page-dashboard .entry-header, body.skm-page-dashboard .entry-media,
body.skm-page-my-listings .entry-header, body.skm-page-my-listings .entry-media,
body.skm-page-map .entry-header, body.skm-page-map .entry-media,
body.skm-page-search-alerts .entry-header, body.skm-page-search-alerts .entry-media,
body.skm-page-saved-listings .entry-header, body.skm-page-saved-listings .entry-media,
body.skm-page-listing-analytics .entry-header, body.skm-page-listing-analytics .entry-media,
body.skm-page-account-settings .entry-header, body.skm-page-account-settings .entry-media,
body.skm-page-list-service .entry-header, body.skm-page-list-service .entry-media,
body.skm-page-billing .entry-header, body.skm-page-billing .entry-media {
	display: none !important;
}

/* #primary/.content-area carries a default 30px padding-top on top of
   #content's own 76px sticky-header offset — a 106px gap above any
   full-bleed hero, confirmed live on /listings/ and /syndicates/. These
   three pages were also missing the #content/.container/.bb-grid part
   of the full-bleed override every other custom page already has (see
   skm-page-list-aircraft below for the reference pattern) — without it
   the navy search/hero bar sits inside the theme's centered max-width
   container instead of running edge to edge like the mockup. */
body.skm-page-listings #content.site-content,
body.skm-page-syndicates #content.site-content,
body.skm-page-category-landing #content.site-content { padding: 0; }
body.skm-page-listings #content .container,
body.skm-page-syndicates #content .container,
body.skm-page-category-landing #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-listings .bb-grid.site-content-grid,
body.skm-page-syndicates .bb-grid.site-content-grid,
body.skm-page-category-landing .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-listings #primary, body.skm-page-listings .content-area,
body.skm-page-syndicates #primary, body.skm-page-syndicates .content-area,
body.skm-page-category-landing #primary, body.skm-page-category-landing .content-area {
	width: 100%; max-width: none; margin: 0; padding: 0; float: none;
}

/* ============================================================
   1. DESIGN TOKENS  — mirror theme.json; single source of truth
   Palette locked to the supplied brand logo + mockups.
   ============================================================ */
:root {
	/* Brand */
	--skm-navy: #0D1F33;       /* hero / dark sections */
	--skm-navy-2: #162840;     /* stats strip / secondary dark */
	--skm-blue: #2B7FE0;       /* primary: buttons, links, accents */
	--skm-blue-hover: #2456CC;
	--skm-blue-soft: #B5D4F4;  /* light text on blue */

	/* Surfaces */
	--skm-white: #ffffff;
	--skm-bg: #ffffff;         /* page background */
	--skm-surface: #F5F7FA;    /* light cards / sections */
	--skm-surface-2: #F7F8FA;  /* category pills */
	--skm-border: #E2E6EA;     /* hairline borders */
	--skm-border-2: #E8ECF0;

	/* Text */
	--skm-text-heading: #0F172A;
	--skm-text: #374151;
	--skm-text-muted: #6B7280;
	--skm-text-faint: #8A9BAC; /* card meta */
	--skm-text-onnavy: #8FA8C0;

	/* Status */
	--skm-success: #1D9E75;    /* Share / Verified */
	--skm-badge-dark: #1F2937; /* For sale */
	--skm-amber: #D97706;      /* Expiring */

	/* Type */
	--skm-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--skm-h1: clamp(32px, 5vw, 48px);
	--skm-h2: clamp(22px, 3vw, 28px);
	--skm-card-title: 18px;
	--skm-body: 16px;
	--skm-small: 13px;
	--skm-label: 12px;

	/* Layout */
	--skm-container: 1200px;
	--skm-section-pad: clamp(40px, 6vw, 80px);
	--skm-radius: 12px;
	--skm-radius-sm: 8px;
	--skm-radius-pill: 999px;

	/* Elevation */
	--skm-shadow-card: 0 1px 2px rgba(13,31,51,.04), 0 4px 16px rgba(13,31,51,.06);
	--skm-shadow-pop: 0 8px 28px rgba(13,31,51,.14);

	/* Header height (used for sticky offset) */
	--skm-header-h: 64px;
}

/* ============================================================
   2. BASE / TYPOGRAPHY
   Scoped lightly so we enhance — not fight — BuddyBoss defaults.
   ============================================================ */
body {
	font-family: var(--skm-font);
	color: var(--skm-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.skm h1, .skm h2, .skm h3, .skm h4,
.skm-page h1, .skm-page h2, .skm-page h3, .skm-page h4 {
	color: var(--skm-text-heading);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

/* Section eyebrow / labels */
.skm-eyebrow,
.skm-label {
	font-size: var(--skm-label);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--skm-text-muted);
}

/* ============================================================
   3. BUTTONS
   ============================================================ */
.skm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--skm-font);
	font-size: var(--skm-small);
	font-weight: 600;
	line-height: 1;
	padding: 11px 18px;
	border-radius: var(--skm-radius-sm);
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .05s ease;
	white-space: nowrap;
}
.skm-btn:active { transform: translateY(1px); }

.skm-btn--primary { background: var(--skm-blue); color: #fff; border-color: var(--skm-blue); }
.skm-btn--primary:hover { background: var(--skm-blue-hover); border-color: var(--skm-blue-hover); color: #fff; }

.skm-btn--outline { background: #fff; color: var(--skm-text-heading); border-color: var(--skm-border); }
.skm-btn--outline:hover { border-color: var(--skm-blue); color: var(--skm-blue); }

.skm-btn--ghost { background: transparent; color: var(--skm-text); border-color: transparent; }
.skm-btn--ghost:hover { color: var(--skm-blue); }

.skm-btn--white { background: #fff; color: var(--skm-blue); border-color: #fff; }
.skm-btn--white:hover { background: var(--skm-surface); color: var(--skm-blue-hover); }

.skm-btn--ghost-white, .skm-btn--ghost-white:hover { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,.4) !important; }
.skm-btn--ghost-white:hover { border-color: #fff !important; }

.skm-btn--lg { padding: 13px 24px; font-size: 14px; }
.skm-btn--block { width: 100%; }

/* ============================================================
   4. LAYOUT HELPERS
   ============================================================ */
.skm-container {
	width: 100%;
	max-width: var(--skm-container);
	margin-inline: auto;
	padding-inline: 24px;
}
.skm-section { padding-block: var(--skm-section-pad); }
.skm-section--tight { padding-block: clamp(28px, 4vw, 44px); }
.skm-section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
	scroll-margin-top: 90px;
}
.skm-section-head h2 { font-size: var(--skm-h2); }
.skm-faq-heading { font-size: var(--skm-h2); font-weight: 600; color: var(--skm-text-heading); padding-top: clamp(28px, 4vw, 44px); padding-bottom: 0; margin-bottom: 8px; }
.skm-link-more { color: var(--skm-blue); font-size: var(--skm-small); font-weight: 500; text-decoration: none; }
.skm-link-more:hover { color: var(--skm-blue-hover); }

/* ============================================================
   5. BADGES (listing cards + detail)
   ============================================================ */
.skm-badge {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .66px;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: 6px;
	line-height: 1.4;
}
.skm-badge--featured { background: var(--skm-blue); color: #fff; }
.skm-badge--sale { background: var(--skm-navy); color: #fff; }
.skm-badge--wanted { background: var(--skm-amber); color: rgb(255, 255, 255); }
.skm-ld__titlerow .skm-badge { display: block; width: fit-content; margin-bottom: 8px; }
.skm-badge--share { background: var(--skm-success); color: #fff; }
.skm-badge--verified { background: rgba(29,158,117,.12); color: var(--skm-success); }
.skm-badge--live { background: rgba(29,158,117,.12); color: var(--skm-success); }
.skm-badge--expiring { background: rgba(217,119,6,.12); color: var(--skm-amber); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	* { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ============================================================
   6. HEADER  — restyle BuddyBoss native header to the mockup
   Targets parent classes: .site-header--bb, .site-header-container,
   #site-logo, #site-navigation, #header-aside.
   ============================================================ */
.site-header.site-header--bb {
	background: var(--skm-white);
	border-bottom: 1px solid var(--skm-border);
	box-shadow: none;
	position: sticky;
	top: 0;
	z-index: 999;
}
.site-header-container.default-header {
	max-width: var(--skm-container);
	margin-inline: auto;
	min-height: var(--skm-header-h);
	display: flex;
	align-items: center;
	gap: 20px;
	padding-inline: 24px;
}
#masthead .site-header-container { max-width: 1400px; }
/* Hide the BuddyPanel side-toggle on desktop — marketplace header has no left hamburger */
.site-header-container .bb-toggle-panel { display: none; }

/* Logo */
#site-logo.site-branding { margin: 0; flex: 0 0 auto; }
#site-logo .site-title { margin: 0; line-height: 0; }
.skm-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.skm-logo__box { width: 38px; height: 38px; background: var(--skm-blue); border-radius: 9px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.skm-logo__box svg { width: 22px; height: 22px; }
.skm-logo__name { font-size: 20px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.3px; line-height: 1; }
.skm-logo__name span { color: var(--skm-blue); }

/* Primary nav — centered between logo and aside */
#site-navigation.main-navigation { flex: 1 1 auto; display: flex; justify-content: center; }
#site-navigation .primary-menu { display: flex; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
#site-navigation .primary-menu > li { margin: 0; }
/* Browsers draw their own focus ring (blue halo/glow) on click/keyboard
   focus by default — visible in some browsers (Safari) but not others
   (Chrome), which is why it showed up for the client but not in testing
   here. Suppress everywhere a click could leave focus behind. */
#site-navigation .primary-menu a,
#site-navigation .primary-menu a *,
#site-navigation .primary-menu > li {
	-webkit-tap-highlight-color: transparent;
}
#site-navigation .primary-menu a:focus,
#site-navigation .primary-menu a:focus-visible,
#site-navigation .primary-menu a:active,
#site-navigation .primary-menu a *:focus,
#site-navigation .primary-menu a *:focus-visible,
#site-navigation .primary-menu > li:focus,
#site-navigation .primary-menu > li:focus-within,
#header-aside a:focus,
#header-aside a:focus-visible,
#header-aside button:focus,
#header-aside button:focus-visible,
.skm-archive__side a:focus, .skm-archive__side a:focus-visible,
.skm-archive__side button:focus, .skm-archive__side button:focus-visible,
.skm-archive__side input:focus, .skm-archive__side input:focus-visible,
.skm-archive__side .facetwp-checkbox:focus, .skm-archive__side .facetwp-radio:focus,
.skm-archive__results select:focus, .skm-archive__results select:focus-visible,
.skm-archive__results button:focus, .skm-archive__results button:focus-visible,
.skm-archive__results a:focus, .skm-archive__results a:focus-visible,
.skm-archive__chips a:focus, .skm-archive__chips a:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}
#site-navigation .primary-menu > li > a {
	font-size: 14px;
	font-weight: 500;
	color: var(--skm-text);
	text-decoration: none;
	padding: 8px 10px !important;
	border-radius: 8px;
	background: transparent !important;
	transition: color .15s ease, background-color .15s ease;
}
#site-navigation .primary-menu > li > a:hover {
	color: var(--skm-blue);
	background: none !important;
}
#site-navigation .primary-menu > li.current-menu-item > a,
#site-navigation .primary-menu > li.current-menu-ancestor > a,
#site-navigation .primary-menu > li.current-menu-parent > a {
	color: var(--skm-blue);
	background: none !important;
	font-weight: 500;
	border-bottom: none !important;
}
#site-navigation .primary-menu > li.current-menu-item > a:hover,
#site-navigation .primary-menu > li.current-menu-ancestor > a:hover,
#site-navigation .primary-menu > li.current-menu-parent > a:hover {
	background: none !important;
}
#site-navigation .primary-menu > li > a::before,
#site-navigation .primary-menu > li > a:hover::before,
#site-navigation .primary-menu > li.current-menu-item > a::before,
#site-navigation .primary-menu > li.current-menu-ancestor > a::before,
#site-navigation .primary-menu > li.current-menu-parent > a::before {
	background: none !important;
	background-color: transparent !important;
}
/* Mockup nav has no dropdown caret — BuddyBoss centers one absolutely on top
   of the link text (left:0;right:0;margin:auto), which collides with short
   labels like "Browse". Suppress it; the submenu still opens on hover.
   BuddyBoss separately draws a bb-icons glyph via ::after on the <li>
   itself (not the <a>) for items with children — a different pseudo-element,
   and that glyph reads as a stray checkmark at this size. Suppress both and
   draw our own small CSS chevron after the link text instead, consistently
   sized regardless of icon-font rendering. */
#site-navigation .primary-menu .menu-item-has-children > a:before,
#site-navigation .primary-menu .menu-item-has-children > a i,
#site-navigation .primary-menu .menu-item-has-children > a > span:not(:first-child) {
	display: none !important;
}
#site-navigation .primary-menu .menu-item-has-children::after {
	content: none !important;
}
#site-navigation .primary-menu .menu-item-has-children > a {
	display: inline-flex !important; align-items: center; gap: 5px;
}
#site-navigation .primary-menu .menu-item-has-children > a::after {
	content: "" !important; display: inline-block !important; width: 6px; height: 6px; flex-shrink: 0;
	border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translate(-1px,-1px); opacity: .6; margin-left: 1px;
}
#site-navigation .primary-menu .ab-submenu { padding: 8px 0; }
#site-navigation .primary-menu .ab-submenu .bb-sub-menu .menu-item > a {
	padding: 9px 18px; font-size: 13px; color: var(--skm-text); white-space: nowrap;
}
#site-navigation .primary-menu .ab-submenu .bb-sub-menu .menu-item > a:hover { color: var(--skm-blue); background: var(--skm-surface); }

/* Right-side actions */
#header-aside.header-aside { flex: 0 0 auto; }
#header-aside .header-aside-inner { display: flex; align-items: center; gap: 6px; }


/* Reuse BuddyBoss native logged-out buttons, restyled to brand */
#header-aside .bb-header-buttons { display: flex; align-items: center; gap: 10px; margin: 0; }
#header-aside .bb-header-buttons .signin-button.button {
	background: none !important; color: var(--skm-text-heading) !important;
	border: none !important; box-shadow: none !important;
	border-radius: 0; padding: 8px 12px !important; font-size: 15px !important; font-weight: 500 !important; line-height: 1;
	text-transform: none; min-height: 0;
}
#header-aside .bb-header-buttons .signin-button.button:hover { color: var(--skm-blue) !important; }
/* Register button — .signup is the <a> itself */
#header-aside .bb-header-buttons .signup,
#header-aside .bb-header-buttons .signup:visited {
	display: inline-flex !important; align-items: center;
	background: var(--skm-blue) !important; color: #fff !important;
	border: none !important; border-radius: 8px !important;
	padding: 9px 16px !important;
	font-size: 14px !important; font-weight: 500 !important; line-height: 1;
	text-decoration: none; white-space: nowrap;
	transition: background-color .15s ease;
}
#header-aside .bb-header-buttons .signup:hover { background: var(--skm-blue-hover) !important; color: #fff !important; }

/* Injected "List aircraft" CTA (added by custom.js into .header-aside-inner) */
.skm-list-cta {
	display: inline-flex; align-items: center; gap: 6px;
	background: var(--skm-blue); color: #fff;
	border: none;
	border-radius: 8px;
	margin-left: 8px;
	padding: 9px 16px !important; font-size: 14px; font-weight: 500; line-height: 1;
	text-decoration: none; white-space: nowrap;
	transition: background-color .15s ease;
}
.skm-list-cta:hover { background: var(--skm-blue-hover); color: #fff; }
/* BuddyBoss core: `.header-aside-inner > :last-child { padding-right: 0 }`
   — sensible when the last item is an icon flush to the edge, but this
   button is text and becomes :last-child in the logged-out state (no
   avatar after it), so the !important above is required to win. */

/* Header actions — reorder native BuddyBoss elements via `order` */
.skm-tier-badge-wrap { display: none !important; }
#header-aside .cart-wrap { display: none !important; }
#header-aside .header-aside-inner > .header-search-link { order: 0; }
#header-aside .header-aside-inner > .bb-separator:not(.skm-tier-sep) { order: 2; width: 1px !important; height: 20px !important; background: var(--skm-border) !important; margin: 0 4px !important; }
#header-aside .header-aside-inner > .notification-wrap:not(.messages-wrap):not(.cart-wrap) { order: 3; }
#header-aside .header-aside-inner > .messages-wrap { order: 5; }
#header-aside .header-aside-inner > .bb-separator.skm-divider-after-messages { order: 6 !important; }
#header-aside .header-aside-inner > .skm-list-cta { order: 7; }
#header-aside .header-aside-inner > .user-wrap { order: 8; }

/* Icon buttons — bordered with white bg (matching mockup) */
#header-aside .notification-link,
#header-aside .header-search-link {
	width: 36px !important; height: 36px !important; border-radius: 8px !important;
	border: 1px solid #E2E6EA !important; background: #fff !important;
	display: flex !important; align-items: center; justify-content: center;
	position: relative; transition: background-color .12s, border-color .12s;
}
#header-aside .notification-link i,
#header-aside .header-search-link i { font-size: 18px !important; color: rgba(13,31,51,.55) !important; }
#header-aside .header-search-link svg { width: 16px; height: 16px; color: rgba(13,31,51,.55); display: block; }
#header-aside .notification-link:hover,
#header-aside .header-search-link:hover { background: #F5F7FA !important; border-color: #D0D7E0 !important; }
#header-aside .notification-link:hover i,
#header-aside .header-search-link:hover i,
#header-aside .header-search-link:hover svg { color: var(--skm-text-heading) !important; }
#header-aside .notification-link .count {
	position: absolute; top: -5px; right: -6px; min-width: 16px; height: 16px;
	padding: 0 3px; border-radius: 8px; background: var(--skm-blue); color: #fff;
	font-size: 9px; font-weight: 700; line-height: 16px; text-align: center;
	border: 1.5px solid #fff; display: flex; align-items: center; justify-content: center;
}
/* Hide the search icon on desktop — inline search bar replaces it */
@media (min-width: 993px) {
	#header-aside .header-search-link { display: none !important; }
	#header-aside .header-aside-inner > .bb-separator:first-of-type { display: none !important; }
}

/* Inline header search bar — injected between nav and #header-aside */
.skm-header-search {
	flex: 1 1 160px; max-width: 360px; min-width: 140px; margin: 0 0 0 auto;
	display: flex; align-items: center; gap: 8px;
	border: 1px solid #E2E6EA; border-radius: 22px;
	background: #F5F7FA; padding: 0 14px;
	transition: border-color .15s, box-shadow .15s, background .15s;
}
.skm-header-search:focus-within {
	border-color: var(--skm-blue);
	box-shadow: 0 0 0 3px rgba(43,127,224,.1);
	background: #fff;
}
.skm-header-search input {
	flex: 1; min-width: 0; border: none; background: transparent; outline: none;
	font-size: 13px; color: var(--skm-text-heading); padding: 9px 0;
	font-family: inherit;
}
.skm-header-search input::placeholder { color: rgba(13,31,51,.38); font-size: 13px; }
.skm-header-search svg { flex-shrink: 0; color: rgba(13,31,51,.38); }
@media (max-width: 992px) { .skm-header-search { display: none; } }

/* Avatar trigger — bordered pill matching mockup */
#header-aside .header-aside-inner > .user-wrap { flex-shrink: 0; align-self: center; }
/* BuddyBoss applies its own generic hover background to the .user-wrap
   menu-item wrapper (never targeted before — only .user-link, the pill
   itself, was styled), showing as a grey halo around the white pill on
   hover. Flagged by Helen/client as unwanted. Reset explicitly. */
#header-aside .header-aside-inner > .user-wrap:hover,
#header-aside .header-aside-inner > .user-wrap:focus,
#header-aside .header-aside-inner > .user-wrap.hover { background: transparent !important; }
/* Same root cause already fixed once for #site-navigation (see the
   tap-highlight comment above that block) never got applied to this pill —
   on a touch device, tapping it shows the browser's own default grey
   tap-highlight overlay, which reads exactly like a "grey halo" in a
   screenshot. Also strip any focus ring for the same reason. */
#header-aside .user-wrap,
#header-aside .user-wrap *,
#header-aside .user-wrap .user-link {
	-webkit-tap-highlight-color: transparent;
}
#header-aside .user-wrap .user-link:focus,
#header-aside .user-wrap .user-link:focus-visible,
#header-aside .user-wrap .user-link:active { background: #fff !important; outline: none !important; box-shadow: none !important; }
#header-aside .user-wrap .user-link {
	display: flex !important; align-items: center; gap: 8px;
	padding: 5px 12px 5px 5px !important;
	border: 1px solid #E2E6EA !important; border-radius: 999px !important;
	background: #fff !important; transition: background-color .12s;
	white-space: nowrap; height: auto !important;
}
/* Real root cause of the recurring "grey halo on hover" reports, finally
   found live: BuddyBoss renders a generic ::before hover-indicator behind
   every nav menu link (absolute-positioned, background #F2F4F5, z-index:-1,
   7px corners, and — critically — inset well past this link's own edges:
   -15px left / -5px right / 22px top / -24px bottom). All the fixes tried
   before this (resetting .user-wrap's own hover background, tap-highlight-
   color) never touched this pseudo-element at all, which is exactly why the
   halo kept surviving every prior round. Only shows on real mouse hover,
   never at rest — matches every past report of it being hover-only. */
#header-aside .user-wrap .user-link::before { background: transparent !important; }
/* Root cause finally isolated via live DevTools forced-:hover inspection
   with the client plus direct elementFromPoint pixel sampling: the "grey
   halo" was never a background/box-shadow bug (both confirmed transparent
   on the real element in every state, hover included) and wasn't actually
   hover-specific either — it was present with zero mouse interaction too.
   It was this pill's own permanent 1px border (#E2E6EA), which on a fully
   rounded (border-radius:999px) shape against a near-white header reads as
   a soft grey halo rather than a crisp line. Client's call: remove the
   border entirely rather than keep chasing a hover state that never
   existed. */
#header-aside .user-wrap .user-link:hover { background: #fff !important; }
#header-aside .user-wrap .user-link:hover .user-name { color: var(--skm-blue); }
#header-aside .user-wrap .user-link > img,
#header-aside .user-wrap .user-link .avatar { width: 34px !important; height: 34px !important; border-radius: 50% !important; order: 1; flex-shrink: 0; object-fit: cover; }
#header-aside .user-wrap .user-link .user-name {
	font-size: 13.5px !important; font-weight: 700 !important; color: var(--skm-text-heading); order: 2;
	white-space: nowrap; overflow: visible !important; text-overflow: unset !important; max-width: none !important;
	line-height: 1.2;
}
#header-aside .user-wrap .user-link i { order: 3; font-size: 11px !important; color: rgba(13,31,51,.45); margin-left: 2px; }
#header-aside .user-wrap .user-link::after { display: none; }
#header-aside .user-wrap .user-link .skm-user-info { display: flex; flex-direction: column; justify-content: center; line-height: 1; order: 2; gap: 2px; }
#header-aside .user-wrap .user-link .skm-user-info .user-name { order: 0; }
#header-aside .user-wrap .user-link .skm-pill-tier {
	font-size: 11px; font-weight: 500; color: rgba(13,31,51,.55); white-space: nowrap; order: 1;
	display: flex; align-items: center; gap: 3px;
}
#header-aside .user-wrap .user-link .skm-pill-tier img.emoji { width: 13px !important; height: 13px !important; margin: 0 !important; }

/* BuddyBoss's header-profile-menu.php template is unconditional — it always
   prints its full default item set (Profile/Account/Timeline/Notifications/
   Messages/Connections/Groups/Log Out) regardless of any custom menu, so our
   real skm-acct-item list (skymarket-header-polish.php) was rendering
   stacked underneath it instead of replacing it. Hide the native baseline by
   its stable IDs, scoped to the front-end header dropdown only — leaves the
   real #wpadminbar admin toolbar (which reuses the same IDs) untouched. */
#header-aside #wp-admin-bar-my-account-xprofile,
#header-aside #wp-admin-bar-my-account-settings,
#header-aside #wp-admin-bar-my-account-activity,
#header-aside #wp-admin-bar-my-account-notifications,
#header-aside #wp-admin-bar-my-account-messages,
#header-aside #wp-admin-bar-my-account-friends,
#header-aside #wp-admin-bar-my-account-groups,
#header-aside .logout-link {
	display: none !important;
}

/* ============================================================
   7. FOOTER  — custom simple footer (child template-parts/footer.php)
   ============================================================ */
.skm-footer {
	background: var(--skm-navy);
	color: #fff;
}
.skm-footer__inner {
	max-width: var(--skm-container);
	margin-inline: auto;
	padding: 28px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}
.skm-footer__logo { font-size: 17px; font-weight: 700; color: #fff; text-decoration: none; display: flex; align-items: center; gap: 10px; }
.skm-footer__logo-name > span { color: var(--skm-blue); margin-left: 2px; }
.skm-footer__logo-box { width: 30px; height: 30px; background: var(--skm-blue); border-radius: 7px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.skm-footer__logo-box svg { width: 17px; height: 17px; }
.skm-footer__nav { display: flex; gap: 22px; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.skm-footer__nav a { color: #8FA8C0; font-size: 13px; text-decoration: none; transition: color .15s ease; }
.skm-footer__nav a:hover { color: #fff; }
.skm-footer__copy { color: #5A7A95; font-size: 12px; }

@media (max-width: 880px) {
	.skm-footer__inner { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* ============================================================
   HEADER — MOBILE
   BuddyBoss renders a separate mobile header (header-mobile.php) below
   its breakpoint; we just keep our desktop nav from cramping.
   ============================================================ */
/* BuddyBoss swaps to its own .bb-mobile-header at <=767px — that bar has
   its own hamburger+logo+search, so the full desktop header (incl. logo,
   icon cluster, sign-in) must hide entirely below that point, not just the
   center nav-links, or both bars render stacked on top of each other. */
@media (max-width: 767px) {
	.site-header-container.default-header { display: none !important; }
}
/* Sign in/out link injected by mobileAccountLink() — the mobile slide-out
   panel otherwise has no account access at all (no sign-in for guests, no
   sign-out for logged-in users). */
.skm-mobile-account-item { border-top: 1px solid var(--skm-border-2); margin-top: 8px; padding-top: 8px; }
.skm-mobile-account-item__danger { color: #C0392B !important; }
@media (min-width: 768px) and (max-width: 1024px) {
	#site-navigation.main-navigation { display: none; }
	.site-header-container.default-header { gap: 12px; }
	.skm-list-cta { padding: 8px 12px; }
}
@media (max-width: 1080px) {
	#site-navigation .primary-menu { gap: 0; }
	.site-header-container.default-header { gap: 14px; }
}

/* ============================================================
   8. HOMEPAGE  (front-page.php → .skm-home)
   ============================================================ */
/* Let the homepage break out of BuddyBoss's constrained content grid */
body.home #content.site-content { padding: 0; }
body.home #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.home .bb-grid.site-content-grid { display: block; margin: 0; }
body.home #primary, body.home .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
.skm-home { background: var(--skm-bg); }
/* Bulletproof full-bleed for dark/blue bands — escapes BuddyBoss's constrained
   .container/.site-content-grid wrapper regardless of its max-width. */
.skm-hero, .skm-stats, .skm-cta {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
/* Browse + Featured keep page-width but lose the wrapper's side gutter */
.skm-cats, .skm-feat {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* --- Hero --- */
.skm-hero { background: var(--skm-navy); text-align: center; padding: clamp(44px,6vw,64px) 0 clamp(40px,5vw,56px); }
.skm-hero__eye { font-size: 11px; font-weight: 500; letter-spacing: 3px; color: var(--skm-blue); text-transform: uppercase; margin-bottom: 16px; }
/* parent-scoped to beat the base `.skm h1` heading colour rule */
.skm-hero .skm-hero__title { font-size: var(--skm-h1); font-weight: 700; color: #fff; line-height: 1.15; letter-spacing: -1px; margin-bottom: 12px; }
.skm-hero .skm-hero__title span { color: var(--skm-blue); }
.skm-hero__sub { font-size: 15px; color: var(--skm-text-onnavy); font-weight: 300; margin-bottom: 32px; }
.skm-hero__search {
	background: #fff; border-radius: var(--skm-radius);
	padding: 6px 6px 6px 16px; display: flex; align-items: center; gap: 8px;
	max-width: 640px; margin: 0 auto; box-shadow: var(--skm-shadow-pop);
}
.skm-hero__search select, .skm-hero__search input {
	border: none; outline: none; font-size: 13px; color: var(--skm-text);
	font-family: var(--skm-font); background: transparent; padding: 8px 4px;
}
.skm-hero__search input { flex: 1; min-width: 0; }
.skm-hero__search input::placeholder { color: #A0B0C0; }
.skm-hero__sdiv { width: 1px; height: 24px; background: var(--skm-border); flex: 0 0 auto; }
.skm-hero__sbtn { padding: 10px 20px; }

/* --- Stats --- */
.skm-stats { background: var(--skm-navy-2); }
.skm-stats__inner { max-width: var(--skm-container); margin-inline: auto; display: flex; justify-content: center; gap: clamp(24px,5vw,48px); padding: 16px 24px; flex-wrap: wrap; }
.skm-stat { text-align: center; }
.skm-stat__n { font-size: 18px; font-weight: 700; color: #fff; }
.skm-stat__l { font-size: 11px; color: var(--skm-text-onnavy); margin-top: 2px; }
.skm-stat__note { font-size: 9px; font-style: italic; opacity: .7; }

/* --- Browse by type --- */
.skm-cats { background: #fff; padding: 28px 0; border-bottom: 1px solid var(--skm-border-2); }
.skm-cats__lbl { margin-bottom: 16px; }
.skm-cat-grid { display: grid; grid-template-columns: repeat(8, 1fr); gap: 8px; }
.skm-cpill { background: var(--skm-surface-2); border: 1px solid var(--skm-border); border-radius: 10px; padding: 16px 8px; text-align: center; text-decoration: none; display: block; transition: border-color .15s ease, transform .05s ease; }
.skm-cpill:hover { border-color: var(--cpill-fg, var(--skm-blue)); transform: translateY(-1px); }
.skm-cpill__icon { display: flex; align-items: center; justify-content: center; margin-bottom: 10px; color: var(--skm-blue); }
.skm-cpill__icon svg { width: 28px; height: 28px; display: block; }
.skm-cpill:hover .skm-cpill__icon { color: var(--skm-navy); }
.skm-cpill__label { font-size: 11px; color: var(--skm-text); display: block; }

/* --- Featured listings --- */
.skm-feat { padding: 32px 0 40px; }
.skm-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.skm-card { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); overflow: hidden; text-decoration: none; display: block; transition: box-shadow .15s ease, transform .05s ease; }
.skm-card:hover { box-shadow: var(--skm-shadow-card); transform: translateY(-2px); }
.skm-card__img { height: 160px; display: flex; align-items: center; justify-content: center; position: relative; }
.skm-card__ghost { opacity: .08; }
.skm-card__img .skm-badge { position: absolute; top: 10px; left: 10px; }
.skm-card__body { padding: 14px; }
.skm-card__title { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 3px; }
.skm-card__sub { font-size: 11px; color: var(--skm-text-faint); margin-bottom: 10px; }
.skm-card__price { font-size: 17px; font-weight: 700; color: var(--skm-blue); }
.skm-card__info { display: flex; align-items: center; gap: 10px; margin-top: 6px; flex-wrap: wrap; }
.skm-card__loc, .skm-card__seller { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--skm-text-faint); }
.skm-card__loc svg, .skm-card__seller svg { flex-shrink: 0; color: #A0B0C0; }
.skm-card__meta { display: flex; gap: 12px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #F0F2F4; flex-wrap: wrap; }
.skm-card__meta span { font-size: 10px; color: var(--skm-navy); background: #EEF3FA; border-radius: 10px; padding: 3px 8px; }

/* --- CTA --- */
.skm-cta { background: var(--skm-blue); }
.skm-cta__inner { width: 100%; max-width: var(--skm-container); margin-inline: auto; padding: 32px clamp(24px, 6vw, 72px); display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.skm-cta h2 { font-size: 20px; font-weight: 700; color: #fff; }
.skm-cta p { font-size: 13px; color: var(--skm-blue-soft); margin-top: 4px; }

/* --- Homepage responsive --- */
@media (max-width: 900px) {
	.skm-cat-grid { grid-template-columns: repeat(4, 1fr); }
	.skm-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.skm-hero__search { flex-wrap: wrap; padding: 12px; gap: 6px; }
	.skm-hero__search select, .skm-hero__search input { width: 100%; padding: 10px 8px; border: 1px solid var(--skm-border); border-radius: 8px; }
	.skm-hero__sdiv { display: none; }
	.skm-hero__sbtn { width: 100%; }
	.skm-cat-grid { grid-template-columns: repeat(2, 1fr); }
	.skm-cards { grid-template-columns: 1fr; }
	.skm-cta__inner { flex-direction: column; align-items: flex-start; }
}

/* Single listing */
/* Safety net after a real overflow bug on this page pushed the whole
   viewport wider than the screen on mobile — belt-and-braces so any
   future long text value can't do the same again. */
body.skm-single-advert { overflow-x: hidden; }
body.skm-single-advert #content.site-content { padding-top: 0; }
body.skm-single-advert #content .container { max-width: none; width: 100%; padding: 0; }
body.skm-single-advert .bb-grid.site-content-grid { display: block; }
body.skm-single-advert #primary, body.skm-single-advert .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
body.skm-single-advert .entry-content-wrap { padding: 0 !important; margin: 0 !important; }
body.skm-single-advert .entry-content { margin: 0 !important; }
body.skm-single-advert .sidebar, body.skm-single-advert #secondary { display: none; }
/* Parent theme renders its own featured-image figure + entry-title above
   the_content — my custom template already has its own gallery + title,
   so hide the parent's default ones to stop the duplicate. */
body.skm-single-advert .entry-media,
body.skm-single-advert .entry-header { display: none; }

.skm-ld { max-width: var(--skm-container); margin-inline: auto; padding: 24px; display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.skm-ld > .skm-ld__similar-title, .skm-ld > .skm-ld__similar { flex: 0 0 100%; width: 100%; }
.skm-ld > .skm-ld__similar-title { margin-top: 8px; }
.skm-ld__main { flex: 1; min-width: 0; }
.skm-ld__paused-notice { display: flex; align-items: center; gap: 8px; background: #F5F7FA; border: 1px solid var(--skm-border); border-radius: 8px; padding: 12px 14px; font-size: 13px; color: #5A6A7A; margin-bottom: 14px; }
.skm-ld__paused-notice svg { flex-shrink: 0; }
.skm-ld__paused-notice a { color: var(--skm-blue); font-weight: 600; text-decoration: none; }
.skm-ld__hero { background: #E4EAF2; border-radius: var(--skm-radius); height: 360px; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; overflow: hidden; }
.skm-ld__hero-img { width: 100%; height: 100%; object-fit: cover; }
.skm-ld__ghost { opacity: .07; }
.skm-ld__thumbs { display: flex; gap: 8px; margin-bottom: 24px; flex-wrap: wrap; }
.skm-ld__thumb { width: 72px; height: 54px; border-radius: 8px; border: 1px solid var(--skm-border); overflow: hidden; padding: 0; cursor: pointer; background: #EEF2F7; }
.skm-ld__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.skm-ld__thumb.is-active { border: 2px solid var(--skm-blue); }
.skm-ld__title { font-size: 24px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.5px; margin-bottom: 6px; }
.skm-ld__sub { font-size: 13px; color: #7A8A9A; margin-bottom: 16px; }
.skm-ld__price { font-size: 28px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 24px; }
/* Redesigned per mockup_single_listing.dc.html's "SHARE BAR — icon circles
   with labels" section — replaces the old bordered-pill row (client said
   it "wasn't working as we want"). Circular colored icon + label stacked
   underneath, transparent background until hover, Report pushed to the
   far right via margin-left:auto on that one item. */
.skm-ld__share { display: flex; align-items: center; gap: 4px; padding: 14px 0; margin-bottom: 22px; border-top: 1px solid #F0F2F4; border-bottom: 1px solid #F0F2F4; }
.skm-ld__share-label { font-size: 11px; font-weight: 600; color: rgba(13,31,51,.35); text-transform: uppercase; letter-spacing: .08em; margin-right: 8px; flex-shrink: 0; }
.skm-share-btn,
.skm-share-btn:focus,
.skm-share-btn:active { display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 10px 14px; border: none !important; background: transparent !important; border-radius: 10px; cursor: pointer; font-family: var(--skm-font); font-size: inherit; line-height: inherit; text-decoration: none; transition: background .12s; }
.skm-share-btn:hover { background: #F5F7FA !important; }
.skm-share-btn__icon { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.skm-share-btn__label { font-size: 11px; font-weight: 500; color: rgba(13,31,51,.55); white-space: nowrap; }
.skm-share-btn.is-copied .skm-share-btn__icon { background: #E8F8EE !important; }
.skm-share-btn.is-copied .skm-share-btn__label { color: #1F8A5B !important; }
.skm-share-btn--report { margin-left: auto; }
.skm-share-btn--report:hover { background: #FEF5F5 !important; }
.skm-share-btn--report .skm-share-btn__label { color: #C0392B; }
@media (max-width: 600px) {
	.skm-ld__share { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }
	.skm-share-btn { padding: 8px 10px; }
}

.skm-ld__specs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 24px; }
.skm-spec { background: var(--skm-surface-2); border: 1px solid var(--skm-border-2); border-radius: 10px; padding: 14px; }
.skm-spec__lbl { font-size: 9px; font-weight: 600; letter-spacing: 1.5px; color: #A0B0C0; text-transform: uppercase; margin-bottom: 4px; }
.skm-spec__val { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); }
.skm-spec__chk { color: var(--skm-success); }
.skm-ld__desc-title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 8px; }
.skm-ld__desc { font-size: 14px; color: #5A6A7A; line-height: 1.7; }
.skm-ld__desc p { margin-bottom: 12px; }
.skm-ld__videos { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-top: 24px; }
.skm-ld__video { width: 100%; aspect-ratio: 16/9; border-radius: 10px; border: none; background: #0D1F33; }

.skm-ld__side { width: 280px; min-width: 280px; }
.skm-side-card { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 20px; margin-bottom: 14px; }
.skm-side-card__lbl { font-size: 11px; font-weight: 600; letter-spacing: 1px; color: #A0B0C0; text-transform: uppercase; margin-bottom: 10px; }
.skm-seller { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.skm-seller__avatar { width: 44px; height: 44px; border-radius: 50%; background: #E6F1FB; display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; color: #185FA5; overflow: hidden; flex: 0 0 auto; }
.skm-seller__avatar img { width: 100%; height: 100%; border-radius: 50%; }
.skm-seller__name { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); }
.skm-seller__meta { font-size: 11px; color: var(--skm-text-faint); margin-top: 2px; }
.skm-seller__verified { font-size: 11px; color: var(--skm-success); margin-top: 3px; }
.skm-seller__stats { display: flex; align-items: center; gap: 16px; margin-top: 14px; padding: 10px; background: var(--skm-surface); border-radius: 8px; }
.skm-seller__stats-div { width: 1px; align-self: stretch; background: var(--skm-border); }
.skm-seller__stat { flex: 1; text-align: center; }
.skm-seller__stat p { font-size: 16px; font-weight: 700; color: var(--skm-text-heading); margin: 0; }
.skm-seller__stat span { font-size: 10px; color: rgba(13,31,51,.45); }
.skm-seller__profile-link, .skm-seller__profile-link:hover, .skm-seller__profile-link:focus { display: block; text-align: center; font-size: 13px; font-weight: 500; color: var(--skm-blue) !important; margin-top: 14px; }
.skm-seller__profile-link:hover, .skm-seller__profile-link:focus { text-decoration: underline; }
.skm-side-btn { display: block; width: 100%; text-align: center; border: none; border-radius: 8px; padding: 11px; font-size: 13px; font-weight: 500; cursor: pointer; font-family: var(--skm-font); margin-bottom: 8px; text-decoration: none; }
.skm-side-btn--primary, .skm-side-btn--primary:hover, .skm-side-btn--primary:focus { background: var(--skm-blue) !important; color: #fff !important; }
.skm-side-btn--primary:hover, .skm-side-btn--primary:focus { background: var(--skm-blue-hover) !important; }
.skm-side-btn--ghost, .skm-side-btn--ghost:hover, .skm-side-btn--ghost:focus { background: #fff !important; color: var(--skm-text-heading) !important; border: 1px solid var(--skm-border) !important; }
.skm-side-btn--ghost:hover, .skm-side-btn--ghost:focus { border-color: var(--skm-blue) !important; color: var(--skm-blue) !important; }
.skm-contact-reveal:empty { display: none; }
.skm-contact-reveal { margin-top: 6px; font-size: 13px; color: var(--skm-text); }
.skm-ref { list-style: none; margin: 0; padding: 0; }
.skm-ref li { font-size: 12px; color: #5A6A7A; padding: 7px 0; border-bottom: 1px solid #F0F2F4; display: flex; justify-content: space-between; }
.skm-ref li:last-child { border: none; }
.skm-ref li span { font-weight: 500; color: var(--skm-text-heading); }

.skm-contact-out { margin-top: 6px; padding: 10px 12px; background: var(--skm-surface); border-radius: 8px; font-size: 13px; color: var(--skm-text); }
.skm-contact-out[hidden] { display: none; }
.skm-side-btn.is-saved { color: var(--skm-blue); border-color: var(--skm-blue); }

/* Breadcrumb */
.skm-ld__crumbs { max-width: var(--skm-container); margin-inline: auto; padding: 13px 24px; display: flex; align-items: center; gap: 7px; font-size: 12px; color: rgba(13,31,51,.45); background: #fff; border-bottom: 1px solid var(--skm-border); }
.skm-ld__crumbs a { color: rgba(13,31,51,.45); }
.skm-ld__crumbs a:hover { color: var(--skm-blue) !important; }
.skm-ld__crumbs svg { width: 11px; height: 11px; flex-shrink: 0; opacity: .5; }
.skm-ld__crumbs span { color: var(--skm-text-heading); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Hero gallery extras */
.skm-ld__hero { position: relative; }
.skm-ld__hero-badge { position: absolute; top: 12px; left: 12px; background: var(--skm-blue); color: #fff !important; font-size: 10px; font-weight: 700; padding: 3px 9px; border-radius: 4px; letter-spacing: .04em; }
.skm-ld__hero-arrow, .skm-ld__hero-arrow:hover, .skm-ld__hero-arrow:focus { position: absolute; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; background: rgba(255,255,255,.9) !important; border: 1px solid rgba(13,31,51,.08) !important; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.1); color: #0D1F33 !important; }
.skm-ld__hero-arrow:hover, .skm-ld__hero-arrow:focus { background: #fff !important; }
.skm-ld__hero-arrow svg { width: 15px; height: 15px; flex-shrink: 0; }
.skm-ld__hero-arrow--prev { left: 14px; }
.skm-ld__hero-arrow--next { right: 14px; }
.skm-ld__hero-counter { position: absolute; bottom: 14px; right: 14px; background: rgba(13,31,51,.6); color: #fff; font-size: 11px; font-weight: 500; padding: 4px 10px; border-radius: 5px; }

/* Title row + price/views/saves */
.skm-ld__titlerow { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.skm-ld__titleprice { text-align: right; flex-shrink: 0; }
.skm-ld__titleprice .skm-ld__price { margin: 0 0 2px; }
.skm-ld__stats { font-size: 11px; color: rgba(13,31,51,.4); margin: 0; }
.skm-ld__verified-pill { display: inline-block; margin-left: 8px; font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; padding: 3px 8px; border-radius: 6px; background: rgba(31,138,91,.1); color: var(--skm-success); vertical-align: middle; }

/* Generic white card wrapper (spec table / description / location) */
.skm-ld__card { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 20px 22px; margin-bottom: 16px; }
.skm-ld__card--flush { padding: 0; overflow: hidden; }
.skm-ld__card-title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 14px; }
/* Real mobile bug found live: flex children default to min-width:auto,
   which refuses to shrink below its own content's natural width — a long
   value like "Schleicher ASK-21 two-seat glider" forced this row (and the
   whole page along with it, since nothing above constrains it) wider than
   the viewport on a real phone, cutting off Technical Specification, the
   Share bar, and everything else on the page, not just this row. */
.skm-spec-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #F0F2F4; font-size: 13px; }
.skm-spec-row p { margin: 0; min-width: 0; overflow-wrap: break-word; }
.skm-spec-row:last-child { border-bottom: none; }
.skm-spec-row p:first-child { color: rgba(13,31,51,.5); flex-shrink: 0; }
.skm-spec-row p:last-child { font-weight: 500; color: var(--skm-text-heading); text-align: right; }
.skm-spec-row__ok { color: var(--skm-success) !important; font-weight: 600 !important; }

/* Location card */
.skm-ld__loc-head { padding: 14px 18px; border-bottom: 1px solid #F0F2F4; }
.skm-ld__loc-head .skm-ld__card-title { margin: 0 0 1px; }
.skm-ld__loc-sub { font-size: 11px; color: rgba(13,31,51,.45); margin: 0; }
.skm-ld__locmap { height: 180px; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.skm-ld__locmap-fallback { position: absolute; inset: 0; background: linear-gradient(145deg,#D6E8F0,#E2EDF5 50%,#D6E8F0); }
.skm-ld__leaflet { position: absolute; inset: 0; z-index: 0; }
.skm-ld__leaflet .leaflet-control-zoom { display: none; }
.skm-ld__locpin { position: relative; z-index: 1; background: #fff; border-radius: 10px; padding: 11px 15px; box-shadow: 0 2px 12px rgba(13,31,51,.15); display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--skm-text-heading); }
.skm-ld__locpin-dot { width: 30px; height: 30px; border-radius: 50%; background: var(--skm-blue); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.skm-ld__locpin-dot svg { width: 13px; height: 13px; flex-shrink: 0; }
.skm-ld__locmap-link, .skm-ld__locmap-link:hover, .skm-ld__locmap-link:focus { position: absolute; bottom: 12px; right: 12px; font-size: 12px; font-weight: 500; color: var(--skm-blue) !important; background: #fff !important; border: 1px solid rgba(43,127,224,.3) !important; border-radius: 6px; padding: 5px 11px; }
.skm-ld__locmap-link:hover, .skm-ld__locmap-link:focus { background: rgba(43,127,224,.05) !important; }

/* Similar aircraft */
.skm-ld__similar-title { font-size: 16px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 14px; }
.skm-ld__similar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.skm-ld__similar-card, .skm-ld__similar-card:hover { display: block; background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; overflow: hidden; color: inherit !important; }
.skm-ld__similar-card:hover { box-shadow: 0 2px 12px rgba(13,31,51,.08); }
.skm-ld__similar-img { height: 110px; background: var(--skm-surface-2); display: flex; align-items: center; justify-content: center; }
.skm-ld__similar-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.skm-ld__similar-img svg { opacity: .12; width: 46px; height: 46px; }
.skm-ld__similar-body { padding: 11px; }
.skm-ld__similar-name { font-size: 12px; font-weight: 600; color: var(--skm-text-heading); margin: 0 0 2px; }
.skm-ld__similar-sub { font-size: 10px; color: rgba(13,31,51,.45); margin: 0 0 6px; }
.skm-ld__similar-price { font-size: 15px; font-weight: 700; color: var(--skm-text-heading); margin: 0; }

/* Sidebar price + CTA card */
.skm-side-card--cta { padding: 20px; }
.skm-cta__pricerow { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; gap: 12px; }
.skm-cta__price { font-size: 25px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.03em; margin: 0; }
.skm-cta__drop { font-size: 11px; color: var(--skm-success); margin: 3px 0 0; font-weight: 500; }
.skm-cta__heart { width: 36px; height: 36px; border-radius: 8px; border: 1px solid var(--skm-border) !important; background: #fff !important; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; font-size: 16px; color: rgba(13,31,51,.4) !important; line-height: 1; }
.skm-cta__heart.is-saved { color: #C0392B !important; }
/* Real bug found live: :hover and .is-saved shared the exact same red
   styling here. Real devices don't un-hover after a tap, so on touchscreens
   this made the button look permanently "saved" (or ambiguous — genuinely
   saved and just-tapped-but-nothing-happened were visually identical) after
   any tap, reported as "looks odd" + "not working" since there was no
   reliable way to tell the two states apart. Scoping :hover to devices that
   actually support it fixes both. */
@media (hover: hover) {
	.skm-cta__heart:hover, .skm-cta__heart:focus { border-color: #C0392B !important; }
}
.skm-cta__msgwrap { margin-bottom: 8px; }
.skm-cta__textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 13px; color: var(--skm-text-heading); resize: none; line-height: 1.5; background: var(--skm-surface); font-family: var(--skm-font); margin-bottom: 8px; }
.skm-cta__textarea:focus { outline: none; border-color: var(--skm-blue) !important; }
.skm-cta__send:disabled { opacity: .6; cursor: default; }
.skm-cta__msgresult { margin-top: 8px; padding: 10px 12px; background: var(--skm-surface); border-radius: 8px; font-size: 13px; color: var(--skm-text); }
.skm-cta__msgresult a { color: var(--skm-blue); font-weight: 500; }
.skm-cta__msgresult[hidden] { display: none; }

/* Safety note */
.skm-ld__safety { background: #FDF4E7; border: 1px solid rgba(229,193,122,.5); border-radius: 10px; padding: 14px 16px; display: flex; gap: 10px; }
.skm-ld__safety svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; }
.skm-ld__safety p { font-size: 12px; color: #6B3E0E; line-height: 1.6; margin: 0; }
.skm-ld__safety a { color: #854F0B; font-weight: 500; }
.skm-ld__safety a:hover { text-decoration: underline; }

@media (max-width: 900px) {
	/* Real bug found live: .skm-ld's align-items:flex-start (needed on
	   desktop so the two side-by-side columns don't stretch to match each
	   other's height) also controls the CROSS-axis once flex-direction
	   flips to column here — meaning it governs WIDTH instead of height on
	   mobile. .skm-ld__side already got width:100% to counteract that;
	   .skm-ld__main never did, so it was shrink-wrapping to its widest
	   descendant's content width (the Share row, ~449px) instead of the
	   container's actual width, pushing Share icons and Technical
	   specification rows off the right edge of the screen. */
	.skm-ld { flex-direction: column; }
	.skm-ld__main { width: 100%; }
	.skm-ld__side { width: 100%; min-width: 0; }
	.skm-ld__specs { grid-template-columns: repeat(2, 1fr); }
	.skm-ld__hero { height: 260px; }
	.skm-ld__similar { grid-template-columns: 1fr; }
	.skm-ld__titlerow { flex-direction: column; }
	.skm-ld__titleprice { text-align: left; }
}

/* Search / archive — navy full-bleed search bar (mockup_listings.dc.html) */
.skm-archive__searchbar-navy { background: var(--skm-navy); padding: 20px 24px 18px; }
.skm-archive__searchbar-inner { max-width: var(--skm-container); margin-inline: auto; display: flex; align-items: center; gap: 12px; position: relative; }
.skm-archive__searchbar-inner .facetwp-facet { flex: 1; min-width: 0; position: relative; }
/* FacetWP wraps the keyword input in .facetwp-input-wrap, which has no
   explicit width of its own (auto-width inline-block) — width:100% on
   just the input is circular against an auto-width parent, confirmed
   live (stayed 240px regardless of how wide the flex:1 ancestor was).
   Force both the wrapper and the input to actually fill the bar. */
.skm-archive__searchbar-inner .facetwp-facet,
.skm-archive__searchbar-inner .facetwp-input-wrap { display: block !important; width: 100% !important; }
/* FacetWP's own default CSS puts a small search icon at the right edge
   of the input — mockup_listings.dc.html has it on the left, 14px in,
   with the input text padded clear of it. Override with our own icon
   instead of fighting FacetWP's background-image with !important. */
.skm-archive__searchbar-inner .facetwp-facet input {
	width: 100% !important; padding-left: 42px !important; background-position: 14px center !important; background-repeat: no-repeat !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(13,31,51,0.4)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
}
/* Real bug found live on mobile: FacetWP renders its own real <i
   class="facetwp-icon"> element inside .facetwp-input-wrap (not just a
   background-image, an actual DOM node) — invisible at desktop width but
   exposed and clipped past the input's right edge once the bar narrows
   enough. We already render our own left-side search icon below; hide
   FacetWP's native one outright instead of fighting it. */
.skm-archive .facetwp-icon { display: none !important; }
.skm-archive .facetwp-facet-keyword::before {
	content: ""; position: absolute; left: 14px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%);
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(13,31,51,0.4)' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
	pointer-events: none;
}
/* Real bug found live: the left search icon was rendered via a ::before
   pseudo-element on the OUTER .facetwp-facet-keyword wrapper, but the real
   <input> (a normal sibling deeper in the DOM, not the pseudo's own
   element) paints on top of it in the same stacking context with its own
   opaque white background — so the icon was always fully hidden behind
   the input, never actually visible at any width. Put the icon on the
   input's own background instead (single element, no stacking conflict)
   rather than fighting DOM paint order. */
.skm-archive .facetwp-facet-keyword input[type="text"] {
	width: 100%; padding: 11px 16px 11px 42px !important; border: none !important; border-radius: 8px !important; font-size: 15px !important; color: var(--skm-text-heading); font-family: var(--skm-font);
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(13,31,51,0.4)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat 14px center !important;
}
.skm-save-search-btn { flex-shrink: 0; display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 8px; padding: 11px 18px; font-size: 14px; font-weight: 500; color: rgba(255,255,255,.7); cursor: pointer; font-family: var(--skm-font); white-space: nowrap; transition: all .15s ease; }
.skm-save-search-btn:hover, .skm-save-search-btn.is-saved { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.2); }
.skm-save-search-msg { flex-shrink: 0; font-size: 12px; white-space: nowrap; color: #fff; }
.skm-save-search-form { position: absolute; top: 100%; right: 0; margin-top: 8px; background: #fff; border: 1px solid var(--skm-border); border-radius: 8px; padding: 10px; display: flex; gap: 8px; box-shadow: var(--skm-shadow-pop); z-index: 20; }
.skm-save-search-input { border: 1px solid var(--skm-border); border-radius: 6px; padding: 8px 10px; font-size: 13px; font-family: var(--skm-font); width: 220px; }
.skm-save-search-confirm { background: var(--skm-blue); color: #fff; border: none; border-radius: 6px; padding: 8px 14px; font-size: 13px; font-weight: 600; cursor: pointer; font-family: var(--skm-font); white-space: nowrap; }
.skm-save-search-confirm:hover { background: var(--skm-blue-hover); }

/* Search alerts page */
body.skm-page-search-alerts #content.site-content,
body.skm-page-saved-listings #content.site-content { padding: 0; }
body.skm-page-search-alerts #content .container,
body.skm-page-saved-listings #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-search-alerts .bb-grid.site-content-grid,
body.skm-page-saved-listings .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-search-alerts #primary, body.skm-page-search-alerts .content-area,
body.skm-page-saved-listings #primary, body.skm-page-saved-listings .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
.skm-alerts__hero { background: var(--skm-navy); padding: 56px 24px 48px; text-align: center; }
.skm-alerts__hero h1 { font-size: 32px; font-weight: 700; color: #fff; letter-spacing: -.5px; margin-bottom: 10px; }
.skm-alerts__hero p { font-size: 14px; color: #7A9AB5; }
.skm-alerts__hero p a { color: var(--skm-blue-soft); }
.skm-alerts__body { padding-block: 32px; max-width: 760px; }
.skm-alert-row { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 16px 20px; margin-bottom: 12px; }
.skm-alert-row__info { flex: 1; min-width: 0; }
.skm-alert-row__label { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 2px; }
.skm-alert-row__meta { font-size: 12px; color: var(--skm-text-faint); }
.skm-alert-row__view { font-size: 13px; color: var(--skm-blue); text-decoration: none; font-weight: 500; flex-shrink: 0; }
.skm-alert-row__delete { background: none; border: none; color: #C0392B; font-size: 13px; cursor: pointer; font-family: var(--skm-font); flex-shrink: 0; }
@media (max-width: 640px) {
	/* Real bug found live on a real phone: "Save this search" ran off the
	   right edge of the screen. This rule already existed to fix exactly
	   that, but targeted a class name (.skm-archive__searchbar) that
	   doesn't exist anywhere in the markup — the real wrapper is
	   .skm-archive__searchbar-inner — so it silently never matched. */
	.skm-archive__searchbar-inner { flex-wrap: wrap; row-gap: 10px; }
	.skm-archive__searchbar-inner .facetwp-facet { flex-basis: 100%; }
	.skm-save-search-btn { flex: 1; justify-content: center; }
	.skm-alert-row { flex-wrap: wrap; }
}

/* Map view page */
body.skm-page-map #content.site-content { padding: 0; }
body.skm-page-map #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-map .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-map #primary, body.skm-page-map .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
.skm-map-page__hero { background: var(--skm-navy); padding: 40px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.skm-map-page__hero h1 { font-size: 28px; font-weight: 700; color: #fff !important; letter-spacing: -.5px; margin-bottom: 8px; }
.skm-map-page__hero p { font-size: 14px; color: #7A9AB5; }
.skm-map-page__listview { display: flex; align-items: center; gap: 7px; padding: 9px 16px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); border-radius: 8px; font-size: 13px; font-weight: 500; color: #fff !important; flex-shrink: 0; }
.skm-map-page__listview:hover { background: rgba(255,255,255,.16) !important; color: #fff !important; }
.skm-map-page__body { display: grid; grid-template-columns: 280px 1fr; gap: 0; align-items: stretch; min-height: calc(100vh - 152px); }
.skm-map-page__body .skm-archive__side { position: static; height: auto; max-height: calc(100vh - 152px); overflow-y: auto; border: none; border-right: 1px solid var(--skm-border); border-radius: 0; }
.skm-map-page__main { min-width: 0; height: 100%; }
.skm-map-page__map { width: 100%; height: 100%; z-index: 0; }
@media (max-width: 900px) {
	.skm-map-page__body { grid-template-columns: 1fr; min-height: auto; }
	.skm-map-page__body .skm-archive__side { max-height: none; border-right: none; border-bottom: 1px solid var(--skm-border); }
	.skm-map-page__mapwrap { min-height: 480px; }
}

/* Map view filters (mockup_listings_map) */
.skm-map-page__resultsmeta { font-size: 12px; font-weight: 400; color: rgba(13,31,51,.45); }
.skm-map-page__catcheck { display: flex !important; align-items: center; justify-content: space-between; gap: 8px; }
.skm-map-page__catcount { font-size: 11px; color: rgba(13,31,51,.35); flex-shrink: 0; }
.skm-map-page__radiuspills { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 8px; }
.skm-map-page__pill { padding: 4px 10px; border: 1px solid var(--skm-border); border-radius: 20px; font-size: 11px; color: rgba(13,31,51,.6); background: #fff; cursor: pointer; display: inline-flex; align-items: center; }
.skm-map-page__pill input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.skm-map-page__pill:hover { border-color: var(--skm-blue) !important; }
.skm-map-page__pill.is-active { border-color: var(--skm-blue) !important; color: var(--skm-blue) !important; background: rgba(43,127,224,.06) !important; }

.skm-map-page__mapwrap { position: relative; height: 100%; min-height: calc(100vh - 152px); border-radius: 0; border: none; overflow: hidden; }
.skm-map-page__countchip { position: absolute; top: 16px; left: 50%; transform: translateX(-50%); background: #fff; border: 1px solid var(--skm-border); border-radius: 20px; padding: 7px 16px; box-shadow: 0 2px 8px rgba(13,31,51,.1); font-size: 13px; font-weight: 500; color: var(--skm-text-heading); z-index: 5; white-space: nowrap; }
.skm-map-page__tiletoggle { position: absolute; top: 16px; right: 16px; display: flex; background: #fff; border: 1px solid var(--skm-border); border-radius: 7px; overflow: hidden; box-shadow: 0 1px 4px rgba(13,31,51,.1); z-index: 5; }
.skm-map-page__tiletoggle button { padding: 6px 14px; font-size: 12px; font-weight: 400; color: rgba(13,31,51,.6); background: #fff !important; border: none; cursor: pointer; border-left: 1px solid var(--skm-border); }
.skm-map-page__tiletoggle button:first-child { border-left: none; }
.skm-map-page__tiletoggle button.is-active { background: var(--skm-navy) !important; color: #fff !important; font-weight: 600; }
.skm-map-page__tiletoggle button:hover:not(.is-active) { background: var(--skm-surface) !important; }
.skm-map-page__legend { position: absolute; bottom: 24px; left: 352px; background: #fff; border: 1px solid var(--skm-border); border-radius: 8px; padding: 10px 14px; box-shadow: 0 1px 4px rgba(13,31,51,.08); z-index: 5; }
.skm-map-page__legend-title { font-size: 10px; font-weight: 600; color: rgba(13,31,51,.4); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 7px; }
.skm-map-page__legend-row { display: flex; align-items: center; gap: 7px; font-size: 11px; color: rgba(13,31,51,.6); margin-bottom: 5px; }
.skm-map-page__legend-row:last-child { margin-bottom: 0; }
.skm-map-page__legend-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 7px; font-weight: 700; color: #fff; }
@media (max-width: 900px) {
	.skm-map-page__legend { display: none; }
}
/* Real gap found via audit: count chip is horizontally centered while the
   tile toggle is right-anchored — on desktop-width maps there's room for
   both, but on a phone-width map (~360px) the centered chip's right edge
   overlaps the toggle's left edge, clipping "3 listings in view" behind it. */
@media (max-width: 640px) {
	.skm-map-page__countchip { left: 12px; transform: none; }
}

.skm-map-page__card { position: absolute; bottom: 24px; left: 16px; width: 320px; max-width: calc(100% - 32px); background: #fff; border-radius: 12px; box-shadow: 0 4px 20px rgba(13,31,51,.18); overflow: hidden; z-index: 6; }
.skm-map-page__card-img { width: 100%; height: 90px; background: linear-gradient(135deg,#ECF1F8,#E0E8F4); background-size: cover; background-position: center; }
.skm-map-page__card-badge { position: absolute; top: 7px; left: 7px; background: var(--skm-blue); color: #fff; font-size: 9px; font-weight: 700; padding: 2px 7px; border-radius: 3px; }
.skm-map-page__card-close { position: absolute; top: 8px; right: 8px; width: 22px; height: 22px; border-radius: 50%; background: rgba(13,31,51,.08) !important; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 13px; color: rgba(13,31,51,.5) !important; }
.skm-map-page__card-close:hover { background: rgba(13,31,51,.15) !important; }
.skm-map-page__card-body { padding: 12px 14px; }
.skm-map-page__card-title { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.skm-map-page__card-meta { font-size: 11px; color: rgba(13,31,51,.45); margin-bottom: 2px; }
.skm-map-page__card-row { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; }
.skm-map-page__card-price { font-size: 16px; font-weight: 700; color: var(--skm-text-heading); }
.skm-map-page__card-btn { font-size: 12px; font-weight: 500; color: #fff !important; background: var(--skm-blue) !important; padding: 5px 12px; border-radius: 6px; }
.skm-map-page__card-btn:hover { background: var(--skm-blue-hover) !important; color: #fff !important; }
.skm-map-page__card-foot { padding: 8px 14px; border-top: 1px solid #F0F2F4; background: var(--skm-surface); font-size: 11px; color: rgba(13,31,51,.5); }

.skm-map-pin__dot { width: 22px; height: 22px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(13,31,51,.3); display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; color: #fff; }
.marker-cluster-small div, .marker-cluster-medium div, .marker-cluster-large div { background-color: rgba(43,127,224,.75) !important; }
.marker-cluster-small, .marker-cluster-medium, .marker-cluster-large { background-color: rgba(43,127,224,.35) !important; }
.marker-cluster span { color: #fff !important; font-weight: 700 !important; }

/* Listing analytics page */
body.skm-page-listing-analytics #content.site-content { padding: 0; }
body.skm-page-listing-analytics #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-listing-analytics .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-listing-analytics #primary, body.skm-page-listing-analytics .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
.skm-analytics__hero { background: var(--skm-navy); padding: 56px 24px 48px; text-align: center; }
.skm-analytics__hero h1 { font-size: 32px; font-weight: 700; color: #fff; letter-spacing: -.5px; margin-bottom: 10px; }
.skm-analytics__hero p { font-size: 14px; color: #7A9AB5; }
.skm-analytics__body { padding-block: 32px; max-width: 760px; }
.skm-analytics__summary { display: flex; gap: 14px; margin-bottom: 28px; }
.skm-analytics__summary .skm-metric { flex: 1; }
.skm-analytics__table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); overflow: hidden; }
/* Real gap found via audit: a real <table>, no overflow handling and no
   wrap on the "Listing" column's title link — a long real aircraft title
   (these run long: "Schleicher ASK-21 two-seat glider", etc.) would force
   the table wider than the viewport on mobile with nowhere to scroll. */
@media (max-width: 640px) {
	.skm-analytics__table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.skm-analytics__table td:first-child { max-width: 180px; overflow-wrap: break-word; }
}
.skm-analytics__table th { text-align: left; font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--skm-text-faint); padding: 12px 16px; border-bottom: 1px solid var(--skm-border); background: var(--skm-surface); }
.skm-analytics__table td { padding: 14px 16px; font-size: 14px; color: var(--skm-text); border-bottom: 1px solid #F0F2F4; }
.skm-analytics__table tr:last-child td { border-bottom: none; }
.skm-analytics__table td a { color: var(--skm-text-heading); font-weight: 500; text-decoration: none; }
.skm-analytics__table td a:hover { color: var(--skm-blue); }
.skm-analytics__expired { font-size: 10px; color: var(--skm-amber); font-weight: 600; text-transform: uppercase; }
@media (max-width: 640px) {
	.skm-analytics__summary { flex-wrap: wrap; }
}
.skm-archive__body { display: grid; grid-template-columns: 268px 1fr; gap: 28px; align-items: flex-start; padding-block: 32px; }

/* Sidebar filter panel */
.skm-archive__side { position: sticky; top: 72px; background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; overflow: hidden; padding: 0; }
.skm-archive__side-head { padding: 16px 20px; border-bottom: 1px solid var(--skm-border); display: flex; align-items: center; justify-content: space-between; }
.skm-archive__side-head p { margin: 0; font-size: 14px; font-weight: 600; color: var(--skm-text-heading); }
.skm-clear-filters { background: none !important; border: none; font-size: 13px; color: var(--skm-blue); cursor: pointer; font-weight: 500; font-family: var(--skm-font); }
.skm-clear-filters:hover, .skm-clear-filters:focus { background: none !important; color: var(--skm-blue-hover) !important; }
.skm-facet { padding: 16px 20px; border-bottom: 1px solid var(--skm-border); margin-bottom: 0; }
.skm-facet--last { border-bottom: none; }
.skm-facet__title { font-size: 11px; font-weight: 600; letter-spacing: .09em; color: rgba(13,31,51,.35); text-transform: uppercase; margin-bottom: 12px; }
.skm-eyebrow--icon, .skm-facet__title--icon { display: inline-flex; align-items: center; gap: 6px; }
.skm-eyebrow__icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 6px; background: rgba(43,127,224,.08); flex-shrink: 0; }
/* Year facet (FacetWP number_range) — native output is two stacked <input>s
   plus an <input type=button value="Go">; lay out as a 2-col grid with a
   full-width "Apply" button matching the mockup (the "Go" text itself is
   hardcoded by FacetWP and gets renamed via JS in custom.js). */
.skm-archive__side .facetwp-facet-year,
.skm-archive__side .facetwp-facet-hours,
.skm-archive__side .facetwp-facet-smoh,
.skm-archive__side .facetwp-facet-seats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 8px; }
.skm-archive__side .facetwp-number { padding: 8px 10px; border: 1px solid var(--skm-border); border-radius: 6px; font-size: 13px; color: var(--skm-text-heading); background: #fff; font-family: var(--skm-font); width: 100%; box-sizing: border-box; }
.skm-archive__side .facetwp-submit {
	grid-column: 1 / -1; margin-top: 2px; width: 100%; padding: 9px;
	background: var(--skm-surface) !important; border: 1px solid var(--skm-border) !important;
	border-radius: 7px; font-size: 13px; font-weight: 500; color: var(--skm-text-heading) !important;
	cursor: pointer; font-family: var(--skm-font); transition: background .12s;
	-webkit-appearance: none !important; appearance: none !important; box-shadow: none !important;
}
.skm-archive__side .facetwp-submit:hover,
.skm-archive__side .facetwp-submit:focus,
.skm-archive__side .facetwp-submit:active { background: var(--skm-border) !important; color: var(--skm-text-heading) !important; box-shadow: none !important; outline: none !important; }
/* FacetWP's slider facet (Max Price) ships its own default reset button —
   solid dark-blue gradient with a box-shadow, real class confirmed against
   the plugin source (includes/facets/slider.php: facetwp-slider-reset) —
   never styled by us, so it was always showing that raw default rather
   than a regression. Matched to the same neutral/bordered look as the
   Year facet's Apply button above for visual consistency across facets. */
.skm-archive__side .facetwp-slider-reset {
	width: 100% !important; margin-top: 8px !important; padding: 9px !important;
	background: var(--skm-surface) !important; background-image: none !important;
	border: 1px solid var(--skm-border) !important; border-radius: 7px !important;
	box-shadow: none !important; font-size: 13px !important; font-weight: 500 !important;
	color: var(--skm-text-heading) !important; font-family: var(--skm-font) !important;
	transition: background .12s !important;
	-webkit-appearance: none !important; appearance: none !important;
}
.skm-archive__side .facetwp-slider-reset:hover,
.skm-archive__side .facetwp-slider-reset:focus,
.skm-archive__side .facetwp-slider-reset:active { background: var(--skm-border) !important; box-shadow: none !important; outline: none !important; }
.skm-archive .facetwp-facet { margin: 0; }
/* FacetWP draws its checkbox/radio indicator as a background-image on this
   div itself (not a real <input>), positioned left/vcenter at 14x14 — it
   needs padding-left to clear the text, not a flex gap (gap does nothing
   for a background-image, so without this padding the indicator renders
   underneath the first letter of the label). */
.skm-archive__side .facetwp-checkbox, .skm-archive__side .facetwp-radio { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #3D5166; margin-bottom: 8px; cursor: pointer; padding: 0 0 0 22px !important; background-position: left center !important; }
.skm-archive__side .facetwp-checkbox:last-child, .skm-archive__side .facetwp-radio:last-child { margin-bottom: 0; }
.skm-archive__side .facetwp-checkbox:hover, .skm-archive__side .facetwp-radio:hover { color: var(--skm-text-heading); }
.skm-archive__side .facetwp-counter { margin-left: auto; font-size: 12px; color: rgba(13,31,51,.35); }
.skm-archive .facetwp-search, .skm-archive .facetwp-search-wrap { width: 100%; }
.skm-archive__side .facetwp-search-wrap input { width: 100%; border: 1px solid var(--skm-border); border-radius: 6px; padding: 8px 10px; font-family: var(--skm-font); font-size: 13px; }
.skm-archive .facetwp-slider-wrap .noUi-connect { background: var(--skm-blue) !important; }
.skm-archive .facetwp-slider-wrap .noUi-handle { border-color: var(--skm-blue) !important; }
/* A pre-existing, older duplicate .facetwp-slider-reset rule used to live
   here (solid blue fill + navy hover) — same selector specificity as the
   real fix above, but declared later in the cascade so it silently won on
   the background property (border still came from the fix above, only
   background lost — confirmed live via computed-style inspection).
   Flagged by the client as an inconsistent button color. Removed outright
   rather than left to fight the real styled version above. */

/* Results header — count, active-filter chips, sort, view toggle */
.skm-archive__results { min-width: 0; }
.skm-archive__meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; gap: 12px; flex-wrap: wrap; }
.skm-archive__meta-left { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.skm-archive__meta-right { display: flex; align-items: center; gap: 10px; }
.skm-archive__count { display: inline-flex; align-items: baseline; gap: 4px; white-space: nowrap; font-size: 15px; color: var(--skm-text-heading); }
.skm-archive__count strong { font-weight: 600; }
.skm-archive__count-label { color: rgba(13,31,51,.5); }
.skm-archive__chips { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.skm-archive__chips .facetwp-selections { display: flex; gap: 6px; flex-wrap: wrap; }
.skm-archive__chips .facetwp-selection-value, .skm-archive__chips .facetwp-selection { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; background: rgba(43,127,224,.08); border: 1px solid rgba(43,127,224,.2); border-radius: 20px; font-size: 12px; font-weight: 500; color: var(--skm-blue); text-decoration: none; cursor: pointer; }
.skm-archive__chips .facetwp-selection-value::after, .skm-archive__chips .facetwp-selection::after { content: "×"; margin-left: 5px; font-size: 14px; line-height: 1; }
.skm-archive select.facetwp-sort { padding: 8px 32px 8px 12px; border: 1px solid var(--skm-border); border-radius: 7px; font-size: 13px; color: var(--skm-text-heading); background: #fff; cursor: pointer; font-family: var(--skm-font); }
.skm-view-toggle { display: flex; border: 1px solid var(--skm-border); border-radius: 7px; overflow: hidden; }
.skm-view-btn { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border: none; background: #fff; cursor: pointer; color: rgba(13,31,51,.45); transition: background .12s; }
.skm-view-btn + .skm-view-btn { border-left: 1px solid var(--skm-border); }
/* Separate pill, not merged into the list/grid toggle group — matches
   mockup_listings.dc.html exactly (icon + "Map view" text, own border). */
.skm-mapview-btn { display: flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--skm-border) !important; border-radius: 7px; font-size: 13px; font-weight: 500; color: rgba(13,31,51,.6) !important; background: #fff !important; }
.skm-mapview-btn:hover { border-color: var(--skm-blue) !important; color: var(--skm-blue) !important; }
.skm-view-btn.is-active { background: var(--skm-navy); color: #fff; }

/* Card rows */
.skm-row { background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; display: flex; margin-bottom: 12px; overflow: hidden; transition: box-shadow .15s, transform .15s; }
.skm-row:hover { box-shadow: 0 6px 24px rgba(13,31,51,.1); transform: translateY(-1px); }
.skm-row__img { width: 212px; min-width: 212px; background: #F0F2F5; display: flex; align-items: center; justify-content: center; position: relative; }
.skm-row__img .skm-card__ghost { opacity: 1; }
.skm-row__type-badge { position: absolute; top: 10px; left: 10px; background: #fff; border: 1px solid var(--skm-border); padding: 3px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; color: #3D5166; }
.skm-row__corner-badge { position: absolute; top: 10px; right: 10px; padding: 3px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; color: #fff; }
.skm-row__corner-badge--share { background: #7C3AED; }
.skm-row__corner-badge--new { background: #1F8A5B; }
.skm-row__info { flex: 1; min-width: 0; padding: 18px 22px; display: flex; flex-direction: column; justify-content: space-between; }
.skm-row__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 5px; }
.skm-row__title { font-size: 16px; font-weight: 600; color: var(--skm-text-heading); text-decoration: none; line-height: 1.3; }
.skm-row__title:hover { color: var(--skm-blue); }
.skm-row__loc { flex-shrink: 0; font-size: 12px; color: rgba(13,31,51,.4); padding-top: 2px; }
.skm-row__sub { font-size: 13px; color: rgba(13,31,51,.45); margin-bottom: 12px; }
.skm-row__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.skm-tag { font-size: 12px; padding: 4px 10px; border-radius: 5px; background: var(--skm-surface); color: #3D5166; border: 1px solid var(--skm-border); }
.skm-tag--arc { background: rgba(43,127,224,.06); color: var(--skm-blue); border-color: rgba(43,127,224,.18); font-weight: 500; }
.skm-row__bottom { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--skm-surface); }
.skm-row__price { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.02em; }
.skm-row__share { font-size: 13px; font-weight: 400; color: rgba(13,31,51,.4); }
.skm-row__cta { display: flex; align-items: center; gap: 8px; }
.skm-row__save { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--skm-border); border-radius: 7px; background: #fff; cursor: pointer; color: rgba(13,31,51,.4); transition: border-color .12s, color .12s; }
.skm-row__save svg { width: 15px; height: 15px; flex-shrink: 0; }
.skm-view-btn svg { width: 14px; height: 14px; flex-shrink: 0; }
/* Real bug found live: same as .skm-cta__heart above — this shared the
   exact same red styling as :hover, so on real touchscreens a tap left it
   permanently looking "saved" whether the save actually succeeded or not. */
@media (hover: hover) {
	.skm-row__save:hover { border-color: #C0392B; color: #C0392B; }
}
.skm-row__save.is-saved { border-color: #C0392B; color: #C0392B; }
.skm-row__save.is-saved svg { fill: #C0392B; }
.skm-row__view { padding: 8px 18px; background: var(--skm-blue); border-radius: 7px; font-size: 13px; font-weight: 500; color: #fff; text-decoration: none; transition: background .12s; }
.skm-row__view:hover { background: var(--skm-blue-hover); color: #fff; }
.skm-noresults { color: var(--skm-text-muted); padding: 24px 0; }
.skm-noresults { text-align: center; padding: 48px 24px; }
.skm-noresults__title { font-size: 18px; font-weight: 700; color: var(--skm-navy); margin: 0 0 8px; }
.skm-noresults__body { font-size: var(--skm-small); color: var(--skm-text-muted); max-width: 440px; margin: 0 auto 20px; line-height: 1.5; }
.skm-noresults__cta { margin: 0 auto; }

/* Syndicates landing page (mockup_syndicate_landing) + category landing
   pages (mockup_category_landing) reuse the same .skm-syn__* classes —
   same hero/sidebar/results shape, different filters underneath. */
body.skm-page-syndicates .entry-header,
body.skm-page-category-landing .entry-header { display: none; }
.skm-syn__pricegrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.skm-syn__minilabel { display: block; font-size: 10px; color: rgba(13,31,51,.5); margin-bottom: 4px; }
.skm-syn__hero { background: var(--skm-navy); padding: 28px 0 24px; }
.skm-syn__crumb { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.skm-syn__crumb a { font-size: 12px; color: rgba(255,255,255,0.45); }
.skm-syn__crumb a:hover { color: rgba(255,255,255,0.75); }
.skm-syn__crumb span { font-size: 12px; color: rgba(255,255,255,0.7); }
.skm-syn__hero-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.skm-syn__title { font-size: 26px; font-weight: 700; color: #fff !important; letter-spacing: -0.02em; margin-bottom: 6px; }
.skm-syn__sub { font-size: 14px; color: rgba(255,255,255,0.5); }
.skm-syn__searchbar { display: flex; background: #fff; border-radius: 10px; overflow: hidden; flex: 1; max-width: 480px; min-width: 280px; }
.skm-syn__searchbar input[type="text"] { flex: 1; min-width: 0; padding: 11px 14px; border: none; font-size: 14px; color: var(--skm-text-heading); }
.skm-syn__searchbar select { padding: 11px 12px; border: none; border-left: 1px solid var(--skm-border); font-size: 13px; color: var(--skm-text-muted); background: #fff; cursor: pointer; }
.skm-syn__searchbar button { padding: 11px 18px; background: var(--skm-blue); color: #fff; border: none; font-size: 14px; font-weight: 500; cursor: pointer; white-space: nowrap; }
.skm-syn__searchbar button:hover { background: var(--skm-blue-hover); }
.skm-syn__check { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--skm-text-heading); cursor: pointer; margin-bottom: 8px; }
.skm-syn__check:last-child { margin-bottom: 0; }
.skm-syn__check input { accent-color: var(--skm-blue); width: 14px; height: 14px; }
.skm-syn__input { width: 100%; padding: 8px 12px; border: 1px solid var(--skm-border); border-radius: 7px; font-size: 13px; color: var(--skm-text-heading); margin-bottom: 10px; }
.skm-syn__filterbtn, .skm-syn__filterbtn:hover, .skm-syn__filterbtn:focus, .skm-syn__filterbtn:active { width: 100%; padding: 9px; border: 1px solid var(--skm-border) !important; border-radius: 7px; font-size: 13px; font-weight: 500; color: var(--skm-text-heading) !important; cursor: pointer; font-family: var(--skm-font); }
.skm-syn__filterbtn { background: var(--skm-surface) !important; }
.skm-syn__filterbtn:hover, .skm-syn__filterbtn:focus { background: var(--skm-border) !important; }
.skm-syn__intro { background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; padding: 14px 18px; margin-bottom: 18px; }
.skm-syn__intro p { font-size: 13px; color: var(--skm-text-muted); line-height: 1.7; }
.skm-syn__cta { margin-top: 28px; background: var(--skm-navy); border-radius: 12px; padding: 26px 30px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.skm-syn__cta-title { font-size: 16px; font-weight: 600; color: #fff; margin-bottom: 4px; }
.skm-syn__cta-sub { font-size: 13px; color: rgba(255,255,255,0.5); }
@media (max-width: 900px) {
	.skm-syn__hero-row { flex-direction: column; align-items: stretch; }
	.skm-syn__searchbar { max-width: none; }
	.skm-syn__cta { flex-direction: column; align-items: flex-start; }
}

/* Grid view */
.skm-archive__results.is-grid .facetwp-template { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.skm-archive__results.is-grid .skm-row { flex-direction: column; margin-bottom: 0; }
.skm-archive__results.is-grid .skm-row__img { width: 100%; min-width: 0; height: 160px; }
/* .skm-adzone-wrap sits inside .facetwp-template (the same container that
   becomes the grid) so it can host a real ad banner above the results —
   skymarket_ad_zone() echoes nothing at all when no campaign is eligible
   (confirmed in skymarket-ad-platform.php: `if ( ! $ad ) { return; }`), so
   the wrapper div is genuinely :empty in that case, but CSS grid still
   gives it its own cell, showing as a blank box before the first real
   listing — flagged by Helen. Drop it from grid flow when actually empty;
   when a real ad IS running, span it full-width like a banner instead of
   squeezing it into one narrow listing-sized cell.
   */
.skm-archive__results.is-grid .skm-adzone-wrap:empty { display: none; }
.skm-archive__results.is-grid .skm-adzone-wrap:not(:empty) { grid-column: 1 / -1; }

@media (max-width: 900px) {
	.skm-archive__body { grid-template-columns: 1fr; }
	.skm-archive__side { position: static; }
	.skm-row { flex-direction: column; }
	.skm-row__img { width: 100%; height: 160px; }
	.skm-archive__results.is-grid .facetwp-template { grid-template-columns: 1fr; }
	.skm-view-toggle { display: none; }
	.skm-archive__side-head { justify-content: flex-start; gap: 10px; flex-wrap: wrap; }
	.skm-archive__side-head .skm-mapview-btn { margin-left: auto; }
}

@media (max-width: 480px) {
	/* Sort dropdown + list/grid toggle + Map view link were squeezing into
	   one unwrapped flex row on iPhone-width viewports, misaligning against
	   each other — flagged by Helen. Let the row wrap onto two lines
	   instead of forcing everything to shrink into misalignment. */
	.skm-archive__meta-right { flex-wrap: wrap; row-gap: 8px; }
	.skm-mapview-btn { padding: 8px 12px; font-size: 12px; }
}

/* Submission form */
.adverts-form.adverts-form-aligned { max-width: 720px; margin: 0 auto; }
.adverts-form .adverts-control-group { margin-bottom: 16px; }
.adverts-form label { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); }
.adverts-form input[type="text"], .adverts-form input[type="email"], .adverts-form input[type="tel"], .adverts-form input[type="number"], .adverts-form select, .adverts-form textarea {
	width: 100%; border: 1px solid var(--skm-border); border-radius: 8px; padding: 10px 12px;
	font-family: var(--skm-font); font-size: 14px; color: var(--skm-text); background: #fff;
}
.adverts-form input[type="text"]:focus, .adverts-form input[type="email"]:focus, .adverts-form input[type="tel"]:focus, .adverts-form select:focus, .adverts-form textarea:focus {
	border-color: var(--skm-blue); outline: none; box-shadow: 0 0 0 3px rgba(43,127,224,.12);
}
.adverts-form .adverts-field-header { margin: 28px 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--skm-border); font-size: 15px; font-weight: 700; color: var(--skm-text-heading); }

/**
 * Category multiselect — WPAdverts' own widget, real bug found live: it
 * ships with zero styling from us (it's a div-based fake input, not a
 * real <input>, so the generic .adverts-form input skin above never
 * touched it) and no flex layout, so the checkbox and label text stacked
 * instead of sitting side by side. Brought in line with the rest of the
 * wizard's field skin (same border/radius/padding/focus pattern used
 * throughout .adverts-form).
 */
/**
 * Real bug found live: adding position:relative here broke the dropdown
 * entirely. Its parent .adverts-control-group has overflow:hidden (a
 * WPAdverts float-clearfix), and without a closer positioned ancestor the
 * options panel's containing block was .site-main way up the tree —
 * outside that overflow:hidden box, so it escaped the clip. Giving the
 * holder position:relative made it the new (closer) containing block,
 * which sits INSIDE the clipped box, so the panel silently got clipped
 * to zero visible height. No position rule needed here at all — leave
 * default static and let it resolve the same way it always did.
 */
.adverts-multiselect-input {
	width: 100% !important; border: 1px solid var(--skm-border); border-radius: 8px;
	padding: 10px 12px; font-family: var(--skm-font); font-size: 14px; color: var(--skm-text);
	background: #fff; cursor: pointer; box-sizing: border-box;
}
.adverts-multiselect-input:focus { border-color: var(--skm-blue); outline: none; box-shadow: 0 0 0 3px rgba(43,127,224,.12); }
.adverts-multiselect-options {
	background: #fff; border: 1px solid var(--skm-border); border-radius: 10px;
	box-shadow: 0 8px 24px rgba(13,31,51,.10); padding: 6px; margin-top: 4px;
	max-height: 280px; overflow-y: auto; z-index: 20;
}
.adverts-multiselect-options label {
	display: flex !important; align-items: center; gap: 8px; padding: 7px 10px;
	border-radius: 6px; font-size: 13px; font-weight: 400; color: var(--skm-text); cursor: pointer;
}
.adverts-multiselect-options label:hover { background: var(--skm-surface); }
.adverts-multiselect-options input[type="checkbox"] {
	width: 15px; height: 15px; accent-color: var(--skm-blue); flex-shrink: 0; margin: 0;
}
.adverts-multiselect-options .adverts-option-depth-0 { font-weight: 600; color: var(--skm-text-heading); margin-top: 6px; }
.adverts-multiselect-options .adverts-option-depth-0:first-child { margin-top: 0; }
.adverts-multiselect-options .adverts-option-depth-1 { padding-left: 28px; }
.adverts-multiselect-options .adverts-option-depth-2 { padding-left: 44px; }
.adverts-form .adverts-field-actions .adverts-button,
.adverts-form .adverts-field-actions input[type="submit"],
.adverts-form button[type="submit"] {
	background: var(--skm-blue); color: #fff; border: none; border-radius: 8px;
	padding: 12px 26px; font-size: 14px; font-weight: 600; font-family: var(--skm-font); cursor: pointer;
}
.adverts-form .adverts-field-actions .adverts-button:hover,
.adverts-form button[type="submit"]:hover { background: var(--skm-blue-hover); }

/* Member profile additions */
.skm-bp-badges { margin-top: 6px; }
.skm-bp-badge { display: inline-block; font-size: 10px; font-weight: 500; padding: 3px 10px; border-radius: 5px; }
.skm-bp-badge--verified { background: #E1F5EE; color: #0F6E56; }
.skm-bp-body { display: flex; gap: 20px; align-items: flex-start; max-width: var(--skm-container); margin-inline: auto; padding: 0 24px; }
.skm-bp-left { width: 240px; min-width: 240px; }
.skm-bp-right { flex: 1; min-width: 0; }
.skm-bp-widget { background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; padding: 16px; margin-bottom: 14px; }
.skm-bp-widget__title { font-size: 10px; font-weight: 600; letter-spacing: 1.5px; color: #A0B0C0; text-transform: uppercase; margin-bottom: 12px; }
.skm-bp-stat-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #F0F2F4; font-size: 12px; }
.skm-bp-stat-row:last-child { border: none; }
.skm-bp-stat-row span { color: var(--skm-text); }
.skm-bp-stat-row strong { color: var(--skm-text-heading); }
.skm-bp-mini-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.skm-bp-mini { background: var(--skm-surface-2); border: 1px solid var(--skm-border-2); border-radius: 8px; padding: 12px; text-decoration: none; display: block; }
.skm-bp-mini__title { font-size: 12px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 3px; }
.skm-bp-mini__price { font-size: 15px; font-weight: 700; color: var(--skm-blue); margin-bottom: 3px; }
.skm-bp-mini__sub { font-size: 10px; color: var(--skm-text-faint); }
@media (max-width: 900px) {
	.skm-bp-body { flex-direction: column; }
	.skm-bp-left { width: 100%; min-width: 0; }
}

/* List aircraft submission form */
body.skm-page-list-aircraft #content.site-content { padding: 0; }
body.skm-page-list-aircraft #content .container { max-width: none; width: 100%; padding: 24px; margin: 0; }
body.skm-page-list-aircraft .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-list-aircraft #primary, body.skm-page-list-aircraft .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }

/* List aircraft — redesign (mockup_list_aircraft): wizard starts right at the
   progress bar, no page-title card above it, matches mockup exactly. */
body.skm-page-list-aircraft .entry-header { display: none; }

/* --------------------------------------------------------------------------
   Preview + Thank-you screens — WPAdverts' own real two-step preview-then-
   publish flow (kept as-is per the established decision earlier this build,
   not skipped), but its raw templates/single.php + templates/add-save.php
   output was completely unstyled (plain browser submit buttons, default
   flash banner). Restyled in place — confirmed exact real classes by
   reading the plugin's own template files via FTP rather than guessing.
   -------------------------------------------------------------------------- */

body.skm-page-list-aircraft .wpadverts-single { max-width: 640px; margin: 40px auto; background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; padding: 32px; }
body.skm-page-list-aircraft .wpadverts-single .adverts-single-box { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid var(--skm-border-2); margin-bottom: 20px; }
body.skm-page-list-aircraft .adverts-single-author { display: flex; align-items: center; gap: 12px; }
body.skm-page-list-aircraft .adverts-single-author-avatar img { border-radius: 50%; }
body.skm-page-list-aircraft .adverts-single-author-name { font-size: 13px; color: var(--skm-text-faint); line-height: 1.5; }
body.skm-page-list-aircraft .adverts-single-author-name strong { color: var(--skm-text-heading); }
body.skm-page-list-aircraft .adverts-price-box { font-size: 22px !important; font-weight: 700 !important; color: var(--skm-blue) !important; background: none !important; padding: 0 !important; }
body.skm-page-list-aircraft .adverts-single-grid-details { margin-bottom: 20px; }
body.skm-page-list-aircraft .adverts-single-grid-details .adverts-grid-row { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid #F0F2F4; font-size: 14px; }
body.skm-page-list-aircraft .adverts-single-grid-details .adverts-col-30 { width: 140px; flex-shrink: 0; color: var(--skm-text-faint); display: flex; align-items: center; gap: 8px; }
body.skm-page-list-aircraft .adverts-single-grid-details .adverts-col-65 { color: var(--skm-text-heading); }
body.skm-page-list-aircraft .adverts-round-icon { display: none; }
body.skm-page-list-aircraft .adverts-content { font-size: 14px; line-height: 1.7; color: var(--skm-text); margin-bottom: 20px; }
body.skm-page-list-aircraft .wpadverts-single hr { display: none; }
body.skm-page-list-aircraft .wpadverts-single + hr { display: none; }

body.skm-page-list-aircraft .entry-content:has(.wpadverts-single) { text-align: center; }
body.skm-page-list-aircraft form input.adverts-cancel-unload[type="submit"] {
	font-size: 14px !important; font-weight: 500; padding: 12px 24px; border-radius: 8px; cursor: pointer;
	background: var(--skm-surface); border: 1px solid var(--skm-border); color: var(--skm-text-heading); margin: 0 8px 0 0;
}
body.skm-page-list-aircraft form:last-of-type input.adverts-cancel-unload[type="submit"] {
	background: var(--skm-blue); border-color: var(--skm-blue); color: #fff;
}
body.skm-page-list-aircraft form:last-of-type input.adverts-cancel-unload[type="submit"]:hover { background: var(--skm-blue-hover); }
body.skm-page-list-aircraft form:first-of-type input.adverts-cancel-unload[type="submit"]:hover { border-color: var(--skm-blue); color: var(--skm-blue); }

body.skm-page-list-aircraft .adverts-flash-messages {
	max-width: 640px; margin: 40px auto 0; border-radius: 10px; padding: 18px 22px; display: flex; align-items: center; gap: 12px; font-size: 14px;
}
body.skm-page-list-aircraft .adverts-flash-info { background: #E6F6EE; color: #0F6E56; }
body.skm-page-list-aircraft .adverts-flash-error { background: #FDECEC; color: #B3261E; }
body.skm-page-list-aircraft .adverts-flash-single { display: flex; align-items: center; gap: 10px; }
body.skm-page-list-aircraft .adverts-flash-message-icon { width: 22px; height: 22px; border-radius: 50%; background: rgba(0,0,0,.08); flex-shrink: 0; }
body.skm-page-list-aircraft .adverts-flash-message-text a { color: inherit; font-weight: 600; text-decoration: underline; }
body.skm-page-list-aircraft .adverts-flash-messages + div { max-width: 640px; margin: 0 auto; padding: 0 22px; }

/*
 * Real bug (Nauman, 3 Aug 2026): the raw WPAdverts native confirmation page
 * (templates/add-preview.php) still flashes for ~1-2s before
 * skmAutoAdvancePreviewStep() in custom.js can auto-submit it — JS only
 * runs after the browser has already painted the unstyled page. Pure-CSS
 * mask covers it the instant the page paints, before any JS executes, so
 * the raw form/preview is never actually visible — the auto-submit then
 * fires underneath and navigates on. :has() unsupported = graceful
 * fallback to the pre-fix flash, not breakage.
 */
body.skm-page-list-aircraft:has(input[name="_adverts_action"][value="save"])::before {
	content: ""; position: fixed; inset: 0; background: #fff; z-index: 999998;
}
body.skm-page-list-aircraft:has(input[name="_adverts_action"][value="save"])::after {
	content: ""; position: fixed; top: 50%; left: 50%; width: 40px; height: 40px;
	margin: -20px 0 0 -20px; border: 3px solid #E5E9EE; border-top-color: var(--skm-blue);
	border-radius: 50%; z-index: 999999; animation: skm-publish-spin .8s linear infinite;
}
@keyframes skm-publish-spin { to { transform: rotate(360deg); } }

/* ===== List Aircraft step wizard (Module 2) ===== */
.skm-law [hidden] { display: none !important; }
.skm-law { max-width: var(--skm-container); margin: 0 auto 40px; }
.skm-law__contact-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }

/* Progress bar: full bleed sticky bar, matches mockup, not a boxed card */
.skm-law__progress-outer { background: #fff; border-bottom: 1px solid var(--skm-border); position: sticky; top: 64px; z-index: 99; padding: 14px 0; margin: 0 calc(50% - 50vw); width: 100vw; max-width: 100vw; }
.skm-law__progress { display: flex; align-items: center; max-width: var(--skm-container); margin: 0 auto; padding: 0 24px; }
.skm-law__pstep { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.skm-law__pcircle { width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--skm-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 12px; font-weight: 700; color: var(--skm-text-faint); transition: all .15s; }
.skm-law__pcircle.is-active { background: var(--skm-blue); border-color: var(--skm-blue); color: #fff; }
.skm-law__pcircle.is-done { background: #1F8A5B; border-color: #1F8A5B; color: #fff; }
.skm-law__plabel { font-size: 13px; color: var(--skm-text-faint); font-weight: 400; white-space: nowrap; }
.skm-law__plabel.is-active { color: var(--skm-text-heading); font-weight: 600; }
.skm-law__pline { flex: 1; height: 1px; background: var(--skm-border); min-width: 32px; max-width: 80px; margin: 0 16px; }
.skm-law__pline.is-done { background: #1F8A5B; }

.skm-law__grid { display: grid; grid-template-columns: 1fr 296px; gap: 28px; align-items: start; margin-top: 28px; }
.skm-law__card { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 28px 32px; }
.skm-law__card + .skm-law__card { margin-top: 16px; }
.skm-law__stepnum { font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--skm-text-faint); margin-bottom: 14px; }
.skm-law__steptitle { font-size: 18px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 6px; }
.skm-law__stepdesc { font-size: 13px; color: var(--skm-text-muted); line-height: 1.55; margin-bottom: 24px; }

/* Step 1: registration */
.skm-law__reg-row { display: flex; gap: 10px; margin-bottom: 12px; }
.skm-law__reginput { width: 180px; padding: 11px 14px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 20px; font-weight: 600; color: var(--skm-text-heading); letter-spacing: .06em; text-transform: uppercase; }
.skm-law__reginput:focus { outline: none; border-color: var(--skm-blue); box-shadow: 0 0 0 3px rgba(43,127,224,.12); }
.skm-law__lookupbtn { padding: 11px 22px; background: var(--skm-blue); color: #fff; border: none; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; }
.skm-law__lookupbtn:hover { background: #1a6fd0; }
.skm-law__idle-note { font-size: 12px; color: var(--skm-text-faint); margin-top: 4px; }
.skm-law__idle-note a { color: var(--skm-blue); }
.skm-law__idle-note a:hover { text-decoration: underline; }
.skm-law__manuallink { color: var(--skm-blue); }
.skm-law__reg-state:empty { display: none; }

/* Step 1: listing type buckets */
.skm-law__bucket-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.skm-law__bucket-card { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; text-align: left; background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; padding: 18px 16px; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.skm-law__bucket-card:hover, .skm-law__bucket-card:focus { background: #fff !important; border-color: var(--skm-blue); box-shadow: 0 0 0 3px rgba(43,127,224,.08); }
.skm-law__bucket-card:hover .skm-law__bucket-label, .skm-law__bucket-card:focus .skm-law__bucket-label { color: var(--skm-text-heading); }
.skm-law__bucket-card:hover .skm-law__bucket-desc, .skm-law__bucket-card:focus .skm-law__bucket-desc { color: var(--skm-text-muted); }
.skm-law__bucket-card:hover .skm-law__bucket-icon, .skm-law__bucket-card:focus .skm-law__bucket-icon { color: var(--skm-blue); }
.skm-law__bucket-icon { color: var(--skm-blue); }
.skm-law__bucket-label { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); }
.skm-law__bucket-desc { font-size: 12px; color: var(--skm-text-muted); line-height: 1.4; }
.skm-law__bucket-back { background: none; border: none; padding: 0; margin-bottom: 14px; color: var(--skm-blue); font-size: 13px; font-weight: 500; cursor: pointer; }
.skm-law__bucket-back:hover { text-decoration: underline; }
@media (max-width: 640px) {
	.skm-law__bucket-grid { grid-template-columns: 1fr 1fr; }
}

.skm-law__loadingbox { text-align: center; padding: 40px 0 10px; }
.skm-law__spinner { width: 28px; height: 28px; border-radius: 50%; border: 3px solid var(--skm-border); border-top-color: var(--skm-blue); animation: skmLawSpin 0.8s linear infinite; margin: 0 auto 16px; }
@keyframes skmLawSpin { to { transform: rotate(360deg); } }
.skm-law__loading-title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 4px; }
.skm-law__loading-sub { font-size: 12px; color: var(--skm-text-faint); }

.skm-law__notfound { background: #FDF4E7; border: 1px solid #E5C17A; border-radius: 8px; padding: 16px 18px; margin-top: 10px; }
.skm-law__notfound-head { display: flex; align-items: center; gap: 8px; color: #854F0B; margin-bottom: 8px; }
.skm-law__notfound-title { font-size: 13px; font-weight: 600; margin: 0; }
.skm-law__notfound-msg { font-size: 12px; color: #6B3E0E; line-height: 1.6; margin: 0 0 12px; }
.skm-law__notfound-actions { display: flex; gap: 8px; }
.skm-law__retrybtn { padding: 7px 14px; border: 1px solid #E5C17A; border-radius: 7px; font-size: 12px; color: #854F0B; background: #fff; cursor: pointer; }
.skm-law__manualbtn { padding: 7px 14px; background: var(--skm-blue); color: #fff; border: none; border-radius: 7px; font-size: 12px; font-weight: 500; cursor: pointer; }

.skm-law__found { background: rgba(31,138,91,.05); border: 1.5px solid rgba(31,138,91,.2); border-radius: 8px; padding: 18px 20px; margin-top: 10px; }
.skm-law__found-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.skm-law__found-icon { width: 36px; height: 36px; border-radius: 50%; background: #1F8A5B; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 16px; }
.skm-law__found-label { font-size: 10px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: #1F8A5B; margin: 0 0 2px; }
.skm-law__found-name { font-size: 17px; font-weight: 700; color: var(--skm-text-heading); margin: 0; }
.skm-law__found-tags { display: flex; gap: 6px; margin-bottom: 16px; }
.skm-law__found-tags span { font-size: 11px; font-weight: 500; padding: 3px 10px; border-radius: 5px; background: #fff; border: 1px solid #D0D7E0; color: var(--skm-text-heading); }
.skm-law__confirmbtn { width: 100%; padding: 12px; background: var(--skm-blue); color: #fff; border: none; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; }
.skm-law__confirmbtn:hover { background: #1a6fd0; }

/* Aircraft confirmed strip (step 2, shown after a real lookup match) */
.skm-law__aircraft-strip[hidden] { display: none; }
.skm-law__aircraft-strip { display: flex; align-items: center; gap: 10px; background: var(--skm-surface); border: 1px solid var(--skm-border); border-radius: 8px; padding: 10px 14px; margin-bottom: 24px; font-size: 13px; }
.skm-law__strip-check { width: 18px; height: 18px; border-radius: 50%; background: #1F8A5B; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 10px; }
.skm-law__strip-name { font-weight: 500; color: var(--skm-text-heading); }
.skm-law__strip-meta { color: var(--skm-text-faint); }
.skm-law__strip-change { margin-left: auto; color: var(--skm-blue); font-size: 12px; }
.skm-law__strip-change:hover { text-decoration: underline; }

/* Step 2/3: native WPAdverts field groups re-skinned inside the grid.
   Grid, not flex-wrap — flex-wrap let rows go ragged because native field
   groups have uneven internal heights (some have help text, some don't),
   so two "half" fields side by side didn't line up. Grid keeps both
   columns' rows aligned regardless of individual field height. */
/* WPAdverts core CSS lays fields out label-left/input-right (label
   display:inline-block;width:30%, input/wrapper float:left;width:60%) for
   classic horizontal forms. That's why the Price field's label sat beside
   its £ box instead of above it — text inputs looked fine by accident
   (our width:100% rule forces a block-level line break regardless), but
   anything wrapped in an extra div (price prefix box, segmented control)
   kept the float and broke. Normalize every field in the wizard to a
   plain stacked label-above-input layout, full stop. */
.skm-law .adverts-control-group label { display: block !important; width: auto !important; float: none !important; margin: 0 0 8px; }
.skm-law .adverts-control-group input,
.skm-law .adverts-control-group select,
.skm-law .adverts-control-group textarea,
.skm-law .adverts-control-group > div { float: none !important; width: 100% !important; }

/**
 * Real bug found live: the two rules just above (same specificity, later
 * in the file) were beating the category-checklist styling — every
 * checkbox got stretched to width:100% and every option label forced back
 * to display:block, undoing the flex row layout. Same selector weight,
 * placed after, so these win the tie.
 */
.skm-law .adverts-control-group.adverts-field-select label.adverts-option-depth-0,
.skm-law .adverts-control-group.adverts-field-select label.adverts-option-depth-1,
.skm-law .adverts-control-group.adverts-field-select label.adverts-option-depth-2 {
	display: flex !important; align-items: center; width: auto !important; margin: 0;
}
.skm-law .adverts-control-group.adverts-field-select .adverts-multiselect-options input[type="checkbox"] {
	width: 15px !important; flex-shrink: 0;
}
.skm-law .adverts-control-group.adverts-field-select .adverts-multiselect-input { width: 100% !important; }

.skm-law__fieldgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; align-items: start; }
.skm-law__fieldgrid:not(:last-child) { margin-bottom: 20px; }
.skm-law__fieldgrid .adverts-control-group { margin: 0; min-width: 0; }
.skm-law__fieldgrid .skm-la__field--full,
.skm-law__fieldgrid .adverts-field-name-gallery,
.skm-law__fieldgrid .adverts-field-name-post_content { grid-column: 1 / -1; }

/* Listing type is a real adverts_field_radio now (was a <select> driven by
   JS-built segmented buttons) — styled generically below as pill buttons,
   already full width via the existing .skm-la__field--full rules above. */
.adverts-form-input-group-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.adverts-form-input-group-radio > div { flex: 1 1 calc(50% - 4px); min-width: 120px; }
.adverts-form-input-group-radio label,
.skm-law .adverts-control-group.adverts-field-radio .adverts-form-input-group-radio label { display: flex !important; align-items: center; justify-content: center; gap: 6px; padding: 10px 4px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 13px; white-space: nowrap; color: var(--skm-text); cursor: pointer; }
/* Generic form-control CSS elsewhere forces input{width:100%}, which (since
   flex-shrink:0 keeps it from shrinking back down) blows this radio circle
   up to ~70px wide and shoves the label text toward the pill's right edge
   instead of sitting next to the circle. */
.adverts-form-input-group-radio input[type="radio"] { flex-shrink: 0; width: 16px !important; height: 16px !important; }
.adverts-form-input-group-radio input[type="radio"] { accent-color: var(--skm-blue); margin: 0; }
.adverts-form-input-group-radio label:has(input:checked) { border-color: var(--skm-blue); background: rgba(43,127,224,0.06); color: var(--skm-blue); font-weight: 500; }

/* Listing type pills in the wizard — real spec from mockup_list_aircraft.dc.html
   (intrinsic-width pills in a row, navy active state), distinct from Edit
   Listing's equal-width grid which has its own separate mockup. Same
   selector specificity as the generic rules above, placed after them, so
   it wins for this context without needing extra !important stacking. */
.skm-law .adverts-control-group.adverts-field-radio .adverts-form-input-group-radio > div { flex: 0 0 auto !important; min-width: 0 !important; }
.skm-law .adverts-control-group.adverts-field-radio .adverts-form-input-group-radio label { padding: 9px 20px !important; font-size: 14px !important; font-weight: 400 !important; border-color: var(--skm-border) !important; background: #fff !important; color: var(--skm-text) !important; }
.skm-law .adverts-control-group.adverts-field-radio .adverts-form-input-group-radio label:has(input:checked) { background: #0D1F33 !important; border-color: #0D1F33 !important; color: #fff !important; font-weight: 500 !important; }
.skm-law .adverts-control-group.adverts-field-radio .adverts-form-input-group-radio label:hover { border-color: #0D1F33 !important; }
/* Real bug found in QA (8 July): the pill label's `display: flex !important`
   above beats the browser's default [hidden]{display:none} rule, so the
   Share/Wanted options (hidden via JS for the Aircraft bucket, see
   skmLawWireBuckets in custom.js) rendered anyway despite hidden=true.
   Explicit [hidden] override, more specific than the rule it's beating. */
.skm-law .adverts-control-group.adverts-field-radio .adverts-form-input-group-radio label[hidden] { display: none !important; }

/* Price prefix + price-on-request */
.skm-law__pricewrap { margin-bottom: 20px; }
.skm-law__price-native { max-width: 320px; }
.skm-law__price-prefixwrap { display: flex; border: 1px solid var(--skm-border); border-radius: 8px; overflow: hidden; }
.skm-law__price-prefix { padding: 11px 14px; background: var(--skm-surface); border-right: 1px solid var(--skm-border); font-size: 15px; font-weight: 600; color: var(--skm-text-muted); display: flex; align-items: center; }
.skm-law__price-prefixwrap input { border: none !important; flex: 1; }
.skm-law__poa-row { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; color: var(--skm-text-muted); cursor: pointer; }

/* Step 3: video upload (visual only, no backend persistence yet) */
.skm-law__video-head label { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); }
.skm-law__optional { font-size: 11px; font-weight: 500; padding: 2px 8px; border-radius: 20px; background: #EEF5FD; color: #185FA5; border: 1px solid #B5D4F4; margin-left: 8px; }
.skm-law__video-hint { font-size: 12px; color: var(--skm-text-muted); line-height: 1.5; margin: 6px 0 14px; }
.skm-law__video-slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 12px; }
.skm-law__video-slot { aspect-ratio: 16/9; background: var(--skm-surface); border: 1.5px dashed #D0D7E0; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: var(--skm-text-faint); font-size: 11px; cursor: pointer; padding: 6px; text-align: center; }
.skm-law__video-slot:hover { border-color: var(--skm-blue); background: #EEF5FD; }
.skm-law__video-slot[data-skm-vstate="done"] { border-style: solid; border-color: var(--skm-border); background: #fff; cursor: default; position: relative; color: var(--skm-text-heading); }
.skm-law__video-slot[data-skm-vstate="done"]:hover { border-color: var(--skm-border); background: #fff; }
.skm-law__video-filename { font-size: 11px; word-break: break-all; max-width: 100%; padding: 0 4px; }
.skm-law__video-remove { position: absolute; top: 4px; right: 4px; width: 20px; height: 20px; border-radius: 50%; border: none; background: rgba(13,31,51,0.75); color: #fff; font-size: 14px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.skm-law__video-spinner { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--skm-border); border-top-color: var(--skm-blue); animation: skmLawSpin 0.8s linear infinite; }
.skm-law__video-or { font-size: 12px; color: var(--skm-text-muted); margin-bottom: 8px; }
.skm-law__video-link { display: flex; gap: 8px; }
.skm-law__video-link input { flex: 1; padding: 9px 12px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 13px; }
.skm-law__video-link button { padding: 0 16px; background: var(--skm-navy); color: #fff; border: none; border-radius: 8px; font-size: 13px; }
.skm-law__video-note { font-size: 11px; color: var(--skm-text-faint); margin-top: 8px; font-style: italic; }

/* Description card: decorative B/I/list toolbar sits flush above the
   textarea so they read as one bordered box, matching the mockup. Not
   wired to do anything — post_content stays plain-text (see note above
   skmLawWireSteps on the TinyMCE iframe issue), this is visual only. */
.skm-law__req { color: #C0392B; }
.skm-law__gallery-error { font-size: 13px; color: #C0392B; margin: 8px 0 0; }
.skm-law__desc-hint { font-size: 13px; color: var(--skm-text-faint); line-height: 1.55; margin: 6px 0 14px; }
/* Real bug found in QA (8 July): same WPAdverts leftover-width leak as the
   gallery box and labels — a bare div inside .adverts-control-group picks
   up its ~65% width rule since it's not an input/select/textarea, so the
   toolbar's right border cut off short of the textarea's real edge below
   it. box-sizing:border-box needed too or the 1px border pushes 1px past
   the textarea's border-box width. */
.skm-law__desc-toolbar { display: flex; align-items: center; gap: 2px; background: var(--skm-surface); border: 1px solid var(--skm-border); border-bottom: none; border-radius: 8px 8px 0 0; padding: 7px 10px; width: 100% !important; box-sizing: border-box !important; }
.skm-law__desc-toolbar button { width: 28px; height: 28px; border: none; background: none; border-radius: 4px; font-size: 13px; color: var(--skm-text-heading); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.skm-law__desc-toolbar button:hover { background: var(--skm-border) !important; }
.skm-law__desc-toolbar button svg { width: 14px; height: 14px; flex-shrink: 0; }
.skm-law__desc-toolbar-div { width: 1px; height: 16px; background: var(--skm-border); margin: 0 4px; }
.skm-law__fieldgrid .adverts-field-name-post_content textarea,
.skm-edit__card-body .adverts-field-name-post_content textarea { border-radius: 0 0 8px 8px !important; border-top: 1px solid var(--skm-border) !important; }
.skm-law__desc-counter { font-size: 12px; color: var(--skm-text-faint); margin: 6px 0 0; text-align: right; }

/* Step 4: review summary */
.skm-law__review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 16px; }
.skm-law__review-label { font-size: 11px; font-weight: 600; color: var(--skm-text-faint); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }
.skm-law__review-value { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); }
.skm-law__review-sub { font-size: 12px; color: var(--skm-text-faint); margin-top: 2px; }
.skm-law__review-sub.is-warning { color: #C0392B; }
.skm-law__review-edit { padding: 6px 12px; border: 1px solid rgba(43,127,224,.3); border-radius: 6px; background: #fff; color: var(--skm-blue); font-size: 12px; cursor: pointer; }

/* Step 4: package cards */
.skm-law__packages { display: flex; flex-direction: column; gap: 14px; }
.skm-law__pkg-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.skm-law__pkg-card { position: relative; border: 2px solid var(--skm-border); border-radius: var(--skm-radius); padding: 22px; background: #fff !important; cursor: pointer; text-align: left; font-family: inherit; display: flex; flex-direction: column; color: inherit; }
.skm-law__pkg-card.is-selected { border-color: var(--skm-blue); background: rgba(43,127,224,.03) !important; }
/* Same BuddyBoss button:hover bleed as the Back button (#1057) — without
   this, hovering anywhere on the card fills it dark and the name/price
   text (which sets its own dark color) goes invisible. Cards aren't
   meant to have a hover effect at all per the mockup. */
.skm-law__pkg-card:hover { background: #fff !important; color: inherit !important; }
.skm-law__pkg-card.is-selected:hover { background: rgba(43,127,224,.03) !important; }
.skm-law__pkg-name { font-size: 12px; font-weight: 600; color: var(--skm-text-faint); margin-bottom: 6px; }
.skm-law__pkg-card.is-featured .skm-law__pkg-name { color: var(--skm-blue); }
.skm-law__pkg-cost { font-size: 28px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.03em; margin-bottom: 16px; }
.skm-law__pkg-badge { position: absolute; top: -11px; left: 50%; transform: translateX(-50%); background: var(--skm-blue); color: #fff; font-size: 10px; font-weight: 700; padding: 3px 14px; border-radius: 20px; white-space: nowrap; }
.skm-law__pkg-features { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.skm-law__pkg-features li { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--skm-text-heading); }
.skm-law__pkg-tick { width: 15px; height: 15px; border-radius: 50%; background: #1F8A5B; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 9px; }
.skm-law__pkg-choosebtn { margin-top: auto; display: block; width: 100%; padding: 10px; border: 1px solid var(--skm-border); border-radius: 7px; font-size: 13px; font-weight: 500; color: var(--skm-text-heading); text-align: center; background: #fff; }
.skm-law__pkg-card.is-selected .skm-law__pkg-choosebtn { background: var(--skm-blue); color: #fff; border-color: var(--skm-blue); }
.skm-law__native-package select,
.skm-law__native-package input[type="radio"] { position: absolute !important; opacity: 0 !important; pointer-events: none !important; height: 1px !important; width: 1px !important; }
/* Native "Listing *" label was invisible before the label-normalize fix
   above (#993) forced display:block on every field label in the wizard —
   redundant here since the package cards already represent this field. */
.skm-law .adverts-control-group.skm-law__native-package > label { display: none !important; }

/* Nav + submit */
.skm-law__nav { display: flex; align-items: center; justify-content: space-between; background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 16px 24px; margin-top: 16px; }
.skm-law__back { padding: 10px 20px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 14px; font-weight: 500; color: var(--skm-text-heading); background: #fff !important; cursor: pointer; }
/* !important needed — BuddyBoss parent theme's generic button:hover rule fills
   solid blue and beats this on specificity/source order otherwise. */
.skm-law__back:hover { background: #fff !important; border-color: var(--skm-blue) !important; color: var(--skm-blue) !important; }
.skm-law__next { margin-left: auto; padding: 10px 22px; background: var(--skm-blue); color: #fff; border: none; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; }
.skm-law__next:hover { background: #1a6fd0; }
.skm-law__draftbtn { padding: 10px 20px; border: 1.5px solid rgba(43,127,224,0.3); border-radius: 8px; font-size: 14px; font-weight: 500; color: var(--skm-blue); background: #fff !important; cursor: pointer; }
/*
 * Real bug (Nauman screenshot, 4 Aug 2026): this hover rule only ever reset
 * background, never color — same BuddyBoss generic button:hover (fills
 * solid blue, sets white text) that .skm-law__back:hover above already has
 * to fight off was leaking through here too, just invisibly: white text on
 * this rule's near-white hover background = unreadable "Save as draft".
 */
.skm-law__draftbtn:hover { background: rgba(43,127,224,0.05) !important; color: var(--skm-blue) !important; }
.skm-law__draftbtn:disabled { opacity: .6; cursor: default; }
/* Lives in the nav row next to Back (see custom.js), not a full-width
   block under the package cards — matches the mockup's compact pill CTA
   that changes label dynamically ("Publish for free" / "Continue to
   payment — £29") instead of looking like a generic browser button. */
/* WPAdverts core gives .adverts-field-actions a top border + padding as
   a section separator — wrong now that this sits inline in the nav row. */
.skm-law__submitwrap { display: none; margin-left: auto; margin-top: 0 !important; padding-top: 0 !important; border-top: none !important; }
/* WPAdverts renders this submit button with its own inline
   style="font-size:1.2em" — inline style beats any non-!important CSS
   rule regardless of specificity, hence !important on every property
   here, not just color (which already needed it for the same reason as
   the Back button / package cards above).
   Real bug (Nauman screenshot, 4 Aug 2026 — confirmed live via CSSOM
   inspection): this button also carries WPAdverts' own ".adverts-button"
   class, and wpadverts-frontend.css sets color:#444 !important on that
   class with the exact same specificity as the un-prefixed selector below
   — a tie the plugin's stylesheet won purely because it's enqueued after
   ours, leaving the text dark grey on blue all the time (not a hover or
   viewport thing). Prefixing with body.skm-page-list-aircraft adds one
   more specificity point so this rule always wins outright regardless of
   enqueue order. */
body.skm-page-list-aircraft .skm-law__submitwrap input[type="submit"] {
	width: auto !important; padding: 10px 22px !important; background: var(--skm-blue) !important; color: #fff !important; border: none !important;
	border-radius: 8px !important; font-size: 14px !important; font-weight: 500 !important; cursor: pointer; font-family: inherit !important; height: auto !important; line-height: 1.4 !important;
}
body.skm-page-list-aircraft .skm-law__submitwrap input[type="submit"]:hover { background: #1a6fd0 !important; color: #fff !important; }

.skm-law__sidebar { position: sticky; top: 84px; display: flex; flex-direction: column; gap: 12px; }
.skm-law__progresscard { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 16px 18px; }
.skm-law__progresscard-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: var(--skm-text-faint); margin-bottom: 12px; }
.skm-law__prow { display: flex; align-items: flex-start; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--skm-surface); }
.skm-law__prow:last-child { border-bottom: none; padding-bottom: 0; }
.skm-law__pdot { width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--skm-border); display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; color: var(--skm-text-faint); flex-shrink: 0; margin-top: 1px; }
.skm-law__pdot.is-active { background: var(--skm-blue); border-color: var(--skm-blue); color: #fff; }
.skm-law__pdot.is-done { background: #1F8A5B; border-color: #1F8A5B; color: #fff; }
.skm-law__prowtext { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.skm-law__prowlabel { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); }
.skm-law__prowvalue { font-size: 11px; color: var(--skm-text-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.skm-law__tip { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 16px 18px; }
.skm-law__tip-head { display: flex; align-items: center; gap: 8px; color: var(--skm-blue); margin-bottom: 10px; }
.skm-law__tip-head p { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: var(--skm-text-faint); margin: 0; }
.skm-law__tip-text { font-size: 12px; color: var(--skm-text-muted); line-height: 1.55; margin: 0; }

.skm-law__ginfo { background: #EEF5FD; border: 1px solid #B5D4F4; border-radius: 10px; padding: 14px 16px; display: flex; gap: 10px; }
.skm-law__ginfo svg { color: var(--skm-blue); flex-shrink: 0; margin-top: 1px; }
.skm-law__ginfo p { font-size: 12px; color: var(--skm-text-heading); line-height: 1.6; margin: 0; }

/* ---- Step 5: Preview listing (mockup_listing_preview.dc.html) ---- */
/* Hiding the sidebar alone leaves its 296px column track reserved on
   .skm-law__grid (grid-template-columns doesn't collapse just because the
   item in it is display:none), pushing all the preview content left with a
   dead empty strip on the right instead of actually centering it. Collapse
   the outer grid to one column here so .skm-law__main takes the full width. */
.skm-law--preview-step .skm-law__sidebar { display: none; }
.skm-law--preview-step .skm-law__grid { grid-template-columns: 1fr; }

/* Real request from Helen (12 Aug 2026): preview should be a popup they can
 * close to keep editing, not a dead-end final step. Reuses the existing
 * .skm-law--preview-step toggle (already flipped by render() when
 * current === TOTAL) purely as a CSS hook — no JS step-flow changes needed,
 * so Back/Publish/Save-as-draft keep working exactly as already tested. */
.skm-law--preview-step::before {
	content: '';
	position: fixed;
	inset: 0;
	background: rgba(15,23,42,.6);
	z-index: 9998;
}
.skm-law--preview-step .skm-law__grid {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 48px 20px 96px;
	overflow-y: auto;
}
.skm-law--preview-step .skm-law__main {
	background: #fff;
	border-radius: 12px;
	max-width: 720px;
	width: 100%;
	padding: 28px 28px 12px;
	box-shadow: 0 24px 64px rgba(0,0,0,.35);
	position: relative;
}
.skm-law--preview-step .skm-law__nav {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10000;
	max-width: 720px;
	margin: 0 auto;
	border-radius: 12px 12px 0 0;
	box-shadow: 0 -8px 24px rgba(0,0,0,.15);
}
.skm-law__preview-close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1px solid var(--skm-border);
	background: #fff;
	color: var(--skm-text-faint);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}
.skm-law__preview-close:hover {
	background: #EEF5FD;
	color: var(--skm-blue);
}
.skm-law__preview-head { text-align: center; margin-bottom: 24px; }
.skm-law__preview-icon { width: 52px; height: 52px; border-radius: 50%; background: #EEF5FD; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
.skm-law__preview-head .skm-law__steptitle { margin-bottom: 6px; }
.skm-law__preview-head .skm-law__stepdesc { max-width: 480px; margin: 0 auto; }
.skm-law__preview-grid { display: grid; grid-template-columns: 1fr 320px; gap: 24px; align-items: start; }
.skm-law__preview-cardwrap:empty { display: none; }
.skm-law__preview-banner { display: flex; align-items: center; gap: 8px; background: #FDF4E7; border: 1px solid #E5C17A; border-radius: 8px; padding: 10px 16px; margin-bottom: 16px; }
.skm-law__preview-banner svg { flex-shrink: 0; }
.skm-law__preview-banner p { font-size: 13px; color: #854F0B; font-weight: 500; margin: 0; }

.skm-law__preview-gallerybox { height: 360px; border-radius: var(--skm-radius); background: linear-gradient(135deg,#ECF1F8,#E0E8F4); display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.skm-law__preview-gallerybox img { width: 100%; height: 100%; object-fit: cover; }
.skm-law__preview-photocount { position: absolute; bottom: 14px; right: 14px; background: rgba(13,31,51,0.6); color: #fff; font-size: 12px; font-weight: 500; padding: 4px 10px; border-radius: 5px; }

.skm-law__preview-titlerow { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--skm-surface-2); }
.skm-law__preview-title { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.02em; margin-bottom: 6px; }
.skm-law__preview-subrow { font-size: 13px; color: var(--skm-text-faint); display: flex; gap: 6px; flex-wrap: wrap; }
.skm-law__preview-dot { color: rgba(13,31,51,0.25); }
.skm-law__preview-pricebox { text-align: right; flex-shrink: 0; }
.skm-law__preview-price { font-size: 26px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.03em; }
.skm-law__preview-pricesub { font-size: 11px; color: var(--skm-text-faint); margin-top: 2px; }

.skm-law__preview-sellerrow { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--skm-surface-2); }
.skm-law__preview-avatar { width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0; object-fit: cover; }
.skm-law__preview-sellername { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); }
.skm-law__preview-sellerdate { font-size: 11px; color: var(--skm-text-faint); }

.skm-law__preview-desc { font-size: 14px; color: var(--skm-text); line-height: 1.75; margin-bottom: 16px; white-space: pre-wrap; }
.skm-law__preview-desc--empty { color: var(--skm-text-faint); font-style: italic; }
.skm-law__preview-spec { border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 16px 18px; margin-bottom: 16px; }
.skm-law__preview-spec .skm-law__preview-sidelabel { margin-bottom: 8px; }
.skm-law__preview-specrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--skm-surface-2); font-size: 13px; }
.skm-law__preview-specrow:last-child { border-bottom: none; }
.skm-law__preview-specrow span { color: var(--skm-text-faint); }
.skm-law__preview-specrow strong { color: var(--skm-text-heading); font-weight: 600; }

.skm-law__preview-contactbtn { display: flex; align-items: center; gap: 8px; width: 100%; padding: 12px 16px; border: 1px solid var(--skm-border); border-radius: 8px; background: var(--skm-surface); cursor: pointer; font-size: 14px; font-weight: 500; color: var(--skm-text-heading); justify-content: space-between; }
.skm-law__preview-contactbtn:hover { background: #EEF5FD; border-color: var(--skm-blue); }
.skm-law__preview-contactpanel { margin-top: 10px; background: #EEF5FD; border: 1px solid #B5D4F4; border-radius: 8px; padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.skm-law__preview-contactpanel p { font-size: 14px; font-weight: 500; color: var(--skm-text-heading); margin: 0; }

.skm-law__preview-sidecaption { font-size: 11px; color: var(--skm-text-faint); font-style: italic; margin: 0 0 2px; }
.skm-law__preview-side { display: flex; flex-direction: column; gap: 12px; }
.skm-law__preview-sidelabel { font-size: 12px; font-weight: 600; color: var(--skm-text-faint); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.skm-law__preview-checklist,
.skm-law__preview-pkgcard,
.skm-law__preview-tip { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 16px 18px; }
.skm-law__preview-checkrow { display: flex; align-items: center; gap: 10px; padding: 5px 0; }
.skm-law__preview-checkrow p { font-size: 13px; color: var(--skm-text-heading); margin: 0; }
.skm-law__preview-checklistnote { color: var(--skm-text-faint); }
.skm-law__preview-checkdot { width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--skm-border); display: flex; align-items: center; justify-content: center; font-size: 10px; color: #fff; flex-shrink: 0; }
.skm-law__preview-checkdot.is-done { background: #1F8A5B; border-color: #1F8A5B; }
.skm-law__preview-pkgname { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); }
.skm-law__preview-tip { background: #EEF5FD; border-color: #B5D4F4; display: flex; gap: 9px; }
.skm-law__preview-tip svg { flex-shrink: 0; margin-top: 1px; }
.skm-law__preview-tip p { font-size: 12px; color: var(--skm-text-heading); line-height: 1.65; margin: 0; }

@media (max-width: 900px) {
	.skm-law__grid { grid-template-columns: 1fr; }
	.skm-law__sidebar { display: none; }
	.skm-law__preview-grid { grid-template-columns: 1fr; }
	.skm-law__progress { overflow-x: auto; }
	.skm-law__plabel { display: none; }
	.skm-law__pkg-cards { grid-template-columns: 1fr; }
	.skm-law__reg-row { flex-direction: column; }
	.skm-law__reginput { width: 100%; }
	.skm-law__review-grid { grid-template-columns: 1fr; }
	.skm-law__video-slots { grid-template-columns: repeat(2, 1fr); }
}

/* Phone: stack every field, pin nav to bottom like the mobile mockup's
   fixed action bar — matches mockup_list_aircraft_mobile.dc.html */
@media (max-width: 640px) {
	.skm-law__fieldgrid { grid-template-columns: 1fr; }
	.skm-law__card { padding: 20px; }
	.skm-law { padding-bottom: 76px; }
	.skm-law__nav {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
		border: none; border-top: 1px solid var(--skm-border); border-radius: 0;
		margin-top: 0; padding: 12px 16px;
		box-shadow: 0 -2px 10px rgba(13,31,51,0.05);
		background: #fff;
	}
	.skm-law__back { flex: 0 0 72px; }
	.skm-law__next,
	.skm-law__submitwrap { flex: 1; margin-left: 0; }
	.skm-law__submitwrap input[type="submit"] { width: 100% !important; }
}
/*
 * Real bug (Nauman screenshot, 4 Aug 2026): the mobile fixed-bottom nav bar
 * above was only ever built for 2 buttons (Back + Next/Publish) — the
 * Preview step has 3 (Back + "Save as draft" + "Publish listing for free"),
 * and "Save as draft" never got a mobile size rule. On a phone-width screen
 * the three buttons overflowed the fixed bar's bounds and pushed Publish
 * off the visible strip — looked like its text had vanished. Stack Back +
 * Save as draft on one row and give Publish its own full-width row below,
 * so all three stay fully visible and tappable.
 */
@media (max-width: 640px) {
	.skm-law--preview-step .skm-law__nav { flex-wrap: wrap; gap: 10px; left: 20px; right: 20px; bottom: 16px; border-top: none; border-radius: 12px; box-shadow: 0 8px 24px rgba(13,31,51,0.18); }
	.skm-law--preview-step .skm-law__back,
	.skm-law--preview-step .skm-law__draftbtn { flex: 1 1 auto; }
	.skm-law--preview-step .skm-law__submitwrap { flex: 1 1 100%; margin-left: 0; }
	.skm-law--preview-step .skm-law__submitwrap input[type="submit"] { width: 100% !important; }
}
/* Real bug found live: the site-wide logged-in bottom nav (Dashboard/
   Browse/Post/Messages/Account, z-index:9999) and the wizard's own Back/
   Next bar are both position:fixed;bottom:0 — the global nav, added to
   the site later than this wizard, was sitting on top and completely
   hiding the wizard's navigation controls with no way to move to the
   next step. The wizard is a focused, linear task; showing Dashboard/
   Browse/Messages shortcuts mid-flow is clutter anyway, so hide the
   global bar here and let the wizard's own bar have the full width. */
body.skm-page-list-aircraft .skm-bottom-nav { display: none !important; }
@media (max-width: 767px) {
	body.skm-page-list-aircraft.logged-in { padding-bottom: 0 !important; }
	/* Same reasoning — would otherwise sit right on top of the wizard's
	   own Next/Submit button in the same bottom-right corner. */
	body.skm-page-list-aircraft .skm-back-to-top { display: none !important; }
}

.skm-la__layout { display: flex; gap: 32px; align-items: flex-start; max-width: 880px; margin: 0 auto 40px; }
.skm-la__sidebar { width: 220px; min-width: 220px; position: sticky; top: 84px; display: flex; flex-direction: column; gap: 4px; }
.skm-la__toc-label { font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--skm-text-faint); margin-bottom: 12px; padding-left: 14px; }
.skm-la__toc-link { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--skm-text-muted); font-weight: 400; padding: 8px 12px 8px 14px; border-left: 2px solid transparent; border-radius: 0 6px 6px 0; text-decoration: none; }
.skm-la__toc-link:hover { background: var(--skm-surface-2); }
.skm-la__toc-link.is-active { color: var(--skm-blue); font-weight: 500; border-left-color: var(--skm-blue); background: rgba(43,127,224,.05); }
.skm-la__toc-num { flex-shrink: 0; width: 20px; height: 20px; background: var(--skm-border); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; color: var(--skm-text-faint); }
.skm-la__toc-link.is-active .skm-la__toc-num { background: var(--skm-blue); color: #fff; }

.skm-la__tip { margin-top: 16px; background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; padding: 16px; }
.skm-la__tip-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.skm-la__tip-head svg { width: 14px; height: 14px; color: var(--skm-blue); flex-shrink: 0; }
.skm-la__tip-head p { font-size: 12px; font-weight: 600; color: var(--skm-text-heading); margin: 0; }
.skm-la__tip-text { font-size: 12px; line-height: 1.6; color: var(--skm-text-faint); }

.skm-la__main { flex: 1; min-width: 0; }
.skm-la__main .adverts-form.adverts-form-aligned { max-width: none; margin: 0; display: flex; flex-direction: column; gap: 20px; }

.skm-la__card { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 32px; }
.skm-la__card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--skm-border); }
.skm-la__card-num { width: 26px; height: 26px; background: var(--skm-blue); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 12px; font-weight: 600; color: #fff; }
.skm-la__card-head h2 { font-size: 16px; font-weight: 600; color: var(--skm-text-heading); margin: 0; }

.skm-la__card-body { display: block; }
.skm-la__card-body .adverts-control-group { margin-bottom: 16px; }
.skm-la__card-body .adverts-control-group:last-child { margin-bottom: 0; }

.skm-la__card-body--contact, .skm-la__card-body--aircraft { display: flex; flex-wrap: wrap; gap: 20px; }
.skm-la__card-body--contact .adverts-control-group, .skm-la__card-body--aircraft .adverts-control-group { margin-bottom: 0; flex: 1 1 calc(50% - 10px); min-width: 0; }
.skm-la__card-body .skm-la__field--full { flex: 1 1 100% !important; }
.skm-la__card-body .skm-la__field--third { flex: 1 1 calc(33.333% - 14px) !important; }

.skm-la__card-body--spec { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.skm-la__card-body--spec .adverts-control-group { margin-bottom: 0; }
.skm-la__card-body--spec .skm-la__field--full { grid-column: 1 / -1; }
.skm-la__subgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.skm-la__subgrid .adverts-control-group { margin-bottom: 0; }

.skm-la__actions { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 24px 32px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.skm-la__actions-note { font-size: 13px; color: var(--skm-text-faint); margin: 0; }
.skm-la__actions .adverts-control-group.adverts-field-actions { margin: 0 !important; padding: 0 !important; border-top: none !important; }
.adverts-form fieldset { border: none; margin: 0; padding: 0; }
.skm-la__actions input[type="submit"].adverts-button { background: var(--skm-blue) !important; color: #fff !important; border: none !important; border-radius: 8px !important; padding: 11px 24px !important; height: auto !important; line-height: 1 !important; font-size: 14px !important; font-weight: 600 !important; font-family: var(--skm-font) !important; cursor: pointer; }
.skm-la__actions input[type="submit"].adverts-button:hover { background: var(--skm-blue-hover) !important; }

@media (max-width: 900px) {
	.skm-la__layout { flex-direction: column; }
	.skm-la__sidebar { width: 100%; min-width: 0; position: static; flex-direction: row; flex-wrap: wrap; align-items: center; }
	.skm-la__toc-label { display: none; }
	.skm-la__tip { flex: 1 1 100%; margin-top: 8px; }
	.skm-la__card-body--contact .adverts-control-group,
	.skm-la__card-body--aircraft .adverts-control-group,
	.skm-la__card-body .skm-la__field--third { flex: 1 1 100% !important; }
	.skm-la__card-body--spec, .skm-la__subgrid { grid-template-columns: 1fr; }
	.skm-la__card { padding: 24px; }
}

/* Seller dashboard + My Listings */
body.skm-page-dashboard #content.site-content, body.skm-page-my-listings #content.site-content,
body.skm-page-account-settings #content.site-content { padding: 0; }
body.skm-page-dashboard #content .container, body.skm-page-my-listings #content .container,
body.skm-page-account-settings #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-dashboard .bb-grid.site-content-grid, body.skm-page-my-listings .bb-grid.site-content-grid,
body.skm-page-account-settings .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-dashboard #primary, body.skm-page-dashboard .content-area,
body.skm-page-my-listings #primary, body.skm-page-my-listings .content-area,
body.skm-page-account-settings #primary, body.skm-page-account-settings .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
body.skm-page-account-settings .entry-content { padding: 0 !important; max-width: none !important; }

/* About / Privacy / Terms / Contact — marketing pages v2 */
body.skm-page-about #content.site-content,
body.skm-page-privacy #content.site-content,
body.skm-page-terms #content.site-content,
body.skm-page-contact #content.site-content { padding: 0; }
body.skm-page-about #content .container,
body.skm-page-privacy #content .container,
body.skm-page-terms #content .container,
body.skm-page-contact #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-about .bb-grid.site-content-grid,
body.skm-page-privacy .bb-grid.site-content-grid,
body.skm-page-terms .bb-grid.site-content-grid,
body.skm-page-contact .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-about #primary, body.skm-page-about .content-area,
body.skm-page-privacy #primary, body.skm-page-privacy .content-area,
body.skm-page-terms #primary, body.skm-page-terms .content-area,
body.skm-page-contact #primary, body.skm-page-contact .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
body.page-template-default .skm-dash, .skm-dash { background: var(--skm-surface); }

/* Flex wrapper — sidebar + main with gap and breathing room */
.skm-dash__body {
	display: flex; gap: 28px; max-width: var(--skm-container);
	margin-inline: auto; align-items: flex-start;
	padding: 36px 0 80px;
}

/* Sidebar — transparent bg, two separate white cards inside */
.skm-dash__side {
	width: 220px; min-width: 220px; flex-shrink: 0;
	background: transparent; border: none; padding: 0;
	min-height: 0;
	display: flex; flex-direction: column; gap: 8px;
	position: sticky; top: 88px; align-self: flex-start;
}

/* User block card */
.skm-dash__user {
	background: #fff; border: 1px solid var(--skm-border);
	border-radius: 12px; padding: 20px; text-align: center;
	border-bottom: none; margin-bottom: 0;
}

/* Nav card */
.skm-dash__nav {
	background: #fff; border: 1px solid var(--skm-border);
	border-radius: 12px; overflow: hidden;
	display: flex; flex-direction: column;
}
.skm-dash__nav a {
	display: flex; align-items: center; gap: 10px;
	padding: 11px 14px; font-size: 13px; color: var(--skm-text);
	text-decoration: none; border-bottom: 1px solid #F0F2F4;
}
.skm-dash__nav a:last-child { border-bottom: none; }
.skm-dash__nav a.is-active { background: #EEF5FD; color: var(--skm-blue); font-weight: 500; }
.skm-dash__nav a:hover { color: var(--skm-blue) !important; background: #F8F9FA; }
.skm-dash__nav-icon { width: 15px; height: 15px; flex-shrink: 0; display: inline-flex; }
.skm-dash__nav-icon svg { width: 15px; height: 15px; }

/* Main content */
.skm-dash__main { flex: 1; min-width: 0; padding: 0 0 0 0; }
.skm-dash__greet { font-size: 20px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 4px; }
.skm-dash__sub { font-size: 13px; color: #7A8A9A; margin-bottom: 24px; }
.skm-dash__metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 28px; }
.skm-metric { background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; padding: 16px; }
.skm-metric__lbl { font-size: 11px; color: var(--skm-text-faint); margin-bottom: 5px; }
.skm-metric__val { font-size: 24px; font-weight: 700; color: var(--skm-text-heading); }
.skm-metric__chg { font-size: 11px; color: var(--skm-success); margin-top: 3px; }
.skm-metric__chg--muted { color: var(--skm-text-faint); }
.skm-dash .skm-section-head h2 { font-size: 15px; font-weight: 600; }
.skm-dash__listings .adverts-grid { display: flex; flex-direction: column; gap: 10px; }
.skm-dash__listings .advert-manage-item {
	position: relative;
	background: #fff; border: 1px solid var(--skm-border); border-radius: 10px;
	display: flex; align-items: center; gap: 14px; padding: 14px 110px 14px 16px;
}
.skm-dash__listings .advert-img { width: 64px; height: 50px; min-width: 64px; background: var(--skm-surface-2); border-radius: 8px; overflow: hidden; }
.skm-dash__listings .advert-img img { width: 100%; height: 100%; object-fit: cover; }
.skm-dash__listings .advert-post-title { flex: 1; min-width: 0; }
.skm-dash__listings .adverts-manage-link { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.skm-dash__listings .advert-post-title strong { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); }
.skm-dash__listings .adverts-manage-info { display: inline-flex; align-items: baseline; gap: 8px; order: 1; }
.skm-dash__listings .adverts-manage-price { font-weight: 600; color: var(--skm-text-heading); }
.skm-ml-meta-line { display: block; flex-basis: 100%; font-size: 11px; color: var(--skm-text-faint); order: 3; }
.skm-ml-stat { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.skm-ml-views { font-size: 11px; color: var(--skm-text-faint); display: flex; align-items: center; gap: 4px; white-space: nowrap; }
.skm-dash__listings .adverts-manage-actions-wrap { display: flex; align-items: center; gap: 6px; margin-top: 8px; }
.skm-dash__listings .adverts-manage-action {
	font-size: 11px; padding: 4px 10px; border-radius: 6px; border: 1px solid var(--skm-border);
	background: #fff; color: var(--skm-text); text-decoration: none; white-space: nowrap;
}
.skm-dash__listings .adverts-manage-action:not(.adverts-manage-delete-confirm) {
	display: inline-flex; align-items: center; gap: 4px; line-height: 1;
}
.skm-dash__listings .adverts-manage-action:hover { border-color: var(--skm-blue); color: var(--skm-blue); }
.skm-dash__listings .adverts-manage-action-delete { color: #E24B4A; }
.skm-msgs { background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; overflow: hidden; }
.skm-msg { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid #F0F2F4; text-decoration: none; }
.skm-msg:last-child { border: none; }
.skm-msg__av { width: 36px; height: 36px; border-radius: 50%; background: #E6F1FB; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; color: #185FA5; flex: 0 0 auto; }
.skm-msg__body { flex: 1; min-width: 0; }
.skm-msg__from { display: block; font-size: 13px; font-weight: 600; color: var(--skm-text-heading); }
.skm-msg__preview { display: block; font-size: 11px; color: var(--skm-text-faint); margin-top: 2px; }
.skm-msg__time { font-size: 11px; color: #A0B0C0; display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.skm-msg__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--skm-blue); display: inline-block; }
@media (max-width: 900px) {
	/* Real bug found live: 0 horizontal padding here meant cards, buttons,
	   and tab bars sat flush against the actual screen edge on phones —
	   nothing was overflowing, there was just no gutter at all. */
	.skm-dash__body { flex-direction: column; padding: 24px 16px 60px; gap: 16px; }
	.skm-dash__side { width: 100%; min-width: 0; position: static; }
	.skm-dash__nav { flex-direction: row; overflow-x: auto; border-radius: 10px; }
	.skm-dash__nav a { border-bottom: none; border-right: 1px solid #F0F2F4; white-space: nowrap; }
	.skm-dash__nav a:last-child { border-right: none; }
	body.skm-page-billing .skm-dash { flex-direction: column; padding: 24px 16px 60px; gap: 16px; }
	.skm-dash__metrics { grid-template-columns: repeat(2, 1fr); }
	.skm-dash__listings .advert-manage-item { flex-wrap: wrap; padding-right: 16px; }
	.skm-ml-stat { position: static; transform: none; flex-direction: row; align-items: center; margin-top: 8px; width: 100%; justify-content: space-between; }
}

/* Saved Listings page (Module 4) */
.skm-saved__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.skm-saved__filters { display: flex; gap: 8px; }
.skm-saved__filters select { padding: 8px 12px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 13px; color: var(--skm-text-heading); background: #fff; cursor: pointer; }
.skm-saved__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.skm-saved-card { position: relative; }
.skm-saved-card .skm-card { margin: 0; }
.skm-saved-card__remove {
	position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; border-radius: 50%;
	background: rgba(255,255,255,.92); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center;
	color: #C0392B; z-index: 2; padding: 0;
}
.skm-saved-card__remove:hover { background: #fff; }
.skm-saved-card__drop {
	position: absolute; bottom: 86px; right: 10px; font-size: 10px; font-weight: 600; padding: 3px 8px; border-radius: 5px;
	background: rgba(31,138,91,.92); color: #fff; z-index: 2;
}
.skm-card--removed { opacity: .65; }
.skm-badge--removed { background: rgba(13,31,51,.45); color: #fff; }
.skm-saved-card__similar { display: block; font-size: 12px; color: var(--skm-text-faint); margin-top: 6px; text-decoration: none; }
.skm-saved-card--removed .skm-saved-card__remove { color: var(--skm-text-faint); }
@media (max-width: 1100px) { .skm-saved__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) { .skm-saved__grid { grid-template-columns: 1fr; } .skm-saved__head { flex-direction: column; } }

/* Search Alerts page (Module 4) */
.skm-alerts__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.skm-alerts__new {
	display: inline-flex; align-items: center; gap: 7px; background: var(--skm-blue); color: #fff; border-radius: 8px;
	padding: 10px 18px; font-size: 14px; font-weight: 500; text-decoration: none; white-space: nowrap;
}
.skm-alerts__new:hover { background: #1a6fd0; }
.skm-alerts__list { display: flex; flex-direction: column; gap: 14px; max-width: 760px; }
.skm-alert-row { background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; padding: 18px 22px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.skm-alert-row.is-paused { opacity: .7; }
.skm-alert-row__info { flex: 1; min-width: 0; }
.skm-alert-row__top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.skm-alert-row__top h3 { font-size: 15px; font-weight: 600; color: var(--skm-text-heading); margin: 0; }
.skm-alert-row__status { font-size: 10px; font-weight: 600; padding: 3px 8px; border-radius: 5px; background: rgba(13,31,51,.06); color: var(--skm-text-faint); }
.skm-alert-row__status.is-active { background: rgba(31,138,91,.1); color: var(--skm-success); }
.skm-alert-row__newmatch { font-size: 10px; font-weight: 600; padding: 3px 8px; border-radius: 5px; background: #EEF5FD; color: #185FA5; }
.skm-alert-row__chips { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.skm-alert-row__chips span { font-size: 12px; color: var(--skm-text); background: var(--skm-surface); border: 1px solid var(--skm-border); border-radius: 5px; padding: 3px 9px; }
.skm-alert-row__meta { font-size: 12px; color: var(--skm-text-faint); margin: 0; }
.skm-alert-row__actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.skm-alert-row__view { font-size: 12px; font-weight: 500; color: var(--skm-blue); padding: 7px 14px; border: 1px solid rgba(43,127,224,.3); border-radius: 7px; text-decoration: none; white-space: nowrap; }
.skm-alert-row__view:hover { background: rgba(43,127,224,.05); }
.skm-alert-row__toggle { width: 40px; height: 22px; border-radius: 11px; background: #D0D7E0; border: none; cursor: pointer; position: relative; flex-shrink: 0; padding: 0; }
.skm-alert-row__toggle span { position: absolute; left: 3px; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: left .15s ease; }
.skm-alert-row__toggle.is-on { background: var(--skm-blue); }
.skm-alert-row__toggle.is-on span { left: 21px; }
.skm-alert-row__delete { width: 30px; height: 30px; border: 1px solid var(--skm-border); border-radius: 7px; background: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--skm-text-faint); flex-shrink: 0; padding: 0; }
.skm-alert-row__delete:hover { background: #FEF5F5; border-color: rgba(192,57,43,.3); color: #C0392B; }
.skm-alerts__cta { background: #fff; border: 2px dashed var(--skm-border); border-radius: 12px; padding: 28px 24px; text-align: center; }
.skm-alerts__cta:hover { border-color: var(--skm-blue); background: #F7F9FF; }
.skm-alerts__cta-icon { width: 40px; height: 40px; background: #EEF5FD; border-radius: 10px; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; color: var(--skm-blue); }
.skm-alerts__cta-title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 4px; }
.skm-alerts__cta-sub { font-size: 13px; color: var(--skm-text-faint); margin-bottom: 16px; }
.skm-alerts__cta-btn { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--skm-blue); padding: 9px 18px; border: 1px solid rgba(43,127,224,.35); border-radius: 8px; text-decoration: none; }
.skm-alerts__cta-btn:hover { background: rgba(43,127,224,.05); }
@media (max-width: 700px) {
	.skm-alert-row { flex-direction: column; }
	.skm-alert-row__actions { width: 100%; justify-content: space-between; }
}

/* Messages (Module 4) — restyle of BuddyBoss's own real Nouveau messaging
   app (.bp-messages-* DOM), not a rebuild. Left/right bubble alignment is
   added by skmMessagesLayout() in custom.js, which tags each message with
   .skm-msg-mine / .skm-msg-theirs by comparing its real sender id
   (data-bb-hp-profile) against the logged-in user — BB's default template
   has no such distinction, every message renders in one flat column. */
body.my-messages #item-header { display: none; }
/* The flex:1 chain below only stretches the message app down to the footer
   if something up the tree actually establishes full-viewport height first —
   nothing in the theme's own markup does that here, so anchor it explicitly. */
body.my-messages .site { min-height: 100vh; display: flex; flex-direction: column; }
body.my-messages #content.site-content { padding: 0; flex: 1; display: flex; flex-direction: column; }
body.my-messages #content .container { max-width: none; width: 100%; padding: 0; margin: 0; flex: 1; display: flex; flex-direction: column; }
body.my-messages .bb-grid.site-content-grid { display: block; margin: 0; flex: 1; }
body.my-messages #primary, body.my-messages .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; flex: 1; display: flex; flex-direction: column; }
/* article.bp_members and #buddypress were display:block/flex-grow:0 — that
   broke the chain here: .content-area got stretched to full available height
   by ITS OWN parent, but never passed any of that height down to its one
   child (flex-grow:0 doesn't ask for extra space), leaving the gap between
   the message app and the footer that only shows up on taller viewports. */
body.my-messages article.bp_members, body.my-messages #buddypress { flex: 1; display: flex; flex-direction: column; min-height: 0; }
body.my-messages .bp-wrap.bp-fullwidth-wrap { max-width: none; padding: 0; flex: 1; display: flex; flex-direction: column; }
body.my-messages .bb-profile-grid { margin: 0; width: 100%; max-width: none; flex: 1; display: flex; flex-direction: column; }
body.my-messages .item-body, body.my-messages .item-body-inner,
body.my-messages .messages-wrapper, body.my-messages .messages-screen { flex: 1; display: flex; flex-direction: column; }
/* BuddyBoss's own #buddypress rule hard-caps this at 1200px regardless of the
   full-bleed overrides above — that's what left the dead right-hand gap. */
body.my-messages #buddypress { max-width: none !important; width: 100% !important; }

.bp-messages-container { flex: 1 !important; min-height: 560px; }
.bp-messages-nav-panel { background: #fff !important; }
.bp-messages-nav-panel .bp-messages-search-form input,
.bp-messages-nav-panel input[type="text"] {
	border: 1px solid var(--skm-border) !important; border-radius: 8px !important; background: var(--skm-surface) !important;
}
.bp-messages-nav-panel input[type="text"]:focus { border-color: var(--skm-blue) !important; }
.bp-messages-threads-list { border-left: 3px solid transparent !important; }
.bp-messages-threads-list:hover { background: var(--skm-surface) !important; }
.bp-messages-threads-list.bp-messages-unread,
.bp-messages-threads-list.unread { border-left-color: var(--skm-blue) !important; }

.bp-messages-content { background: #fff !important; }
.bp-single-message-wrap { display: flex !important; gap: 10px; padding: 6px 0; }
.bp-avatar-wrap img { border-radius: 50% !important; }
.skm-msg-mine .bp-single-message-wrap { flex-direction: row-reverse !important; justify-content: flex-end !important; width: 100% !important; }
.skm-msg-mine .message-metadata { flex-direction: row-reverse !important; text-align: right !important; justify-content: flex-end !important; }
/* Scoped to .bp-single-message-content specifically — .bp-message-content-wrap
   is reused by BB for the live reply composer too (different ancestor,
   .message-box), and an unscoped rule here was squashing the composer down
   to a narrow inline-block box instead of just sizing message bubbles. */
.skm-msg-mine .bp-single-message-content .bp-message-content-wrap { background: var(--skm-blue) !important; border-radius: 12px 12px 2px 12px !important; }
.skm-msg-mine .bp-single-message-content .bp-message-content-wrap p { color: #fff !important; }
.skm-msg-theirs .bp-single-message-content .bp-message-content-wrap { background: var(--skm-surface) !important; border: 1px solid var(--skm-border) !important; border-radius: 12px 12px 12px 2px !important; }
.bp-single-message-content .bp-message-content-wrap { padding: 10px 14px !important; max-width: 72% !important; display: inline-block !important; margin: 0 !important; float: none !important; }
.skm-msg-mine .bp-single-message-content .bp-message-content-wrap { align-self: flex-end !important; }
.skm-msg-theirs .bp-single-message-content .bp-message-content-wrap { align-self: flex-start !important; }
.skm-msg-mine .bp-single-message-content { display: flex !important; flex-direction: column !important; align-items: flex-end !important; }
.bp-single-message-content .bp-message-content-wrap p { font-size: 14px !important; line-height: 1.55 !important; color: var(--skm-text-heading) !important; margin: 0 !important; }

/* Real listing-context header bar (replaces the default buyer-avatar/name
   row when this thread carries a listing link — see skm_thread_listing_context
   AJAX in skymarket-engagement.php for the real title/price/region lookup).
   .skm-has-listing on .message-thread-header hides the native row instead of
   stacking both, since the mockup shows the listing, not the buyer, up top. */
/* Everything else in this header (avatar/name/actions) is now empty once the
   listing-context bar replaces it — hide the whole row rather than leave its
   padding behind as dead space. */
.message-thread-header.skm-has-listing .single-message-thread-header { display: none !important; }
.skm-msg-listing-header {
	display: flex; align-items: center; gap: 14px; padding: 14px 24px; border-bottom: 1px solid var(--skm-border); background: #fff;
}
.skm-msg-listing-header__main { display: flex; align-items: center; gap: 14px; flex: 1; min-width: 0; }
.skm-msg-listing-header__actions { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
/* Real back-to-inbox link, relocated here from the now-hidden native header
   (see skm_thread_listing_context handling in custom.js) — only meaningful
   on mobile's single-pane thread view; desktop's two-pane layout never
   needed it, same breakpoint as its own pre-existing colour rule below. */
.skm-msg-listing-header .bp-back-to-thread-list { display: none; flex-shrink: 0; }
@media (max-width: 900px) {
	/* BuddyBoss's own native rule sets order:1 on this link (meant for its
	   original spot in the old header), which here pushed it AFTER the
	   icon/text instead of leading them despite being first in the DOM —
	   force it back to the front. */
	.skm-msg-listing-header .bp-back-to-thread-list { display: flex; align-items: center; font-size: 20px; order: -1; margin-left: 0; }
}
.skm-msg-listing-header__icon {
	width: 44px; height: 36px; flex-shrink: 0; background: var(--skm-surface-2, #ECF1F8); border-radius: 6px;
	display: flex; align-items: center; justify-content: center; color: var(--skm-navy); opacity: .5;
}
.skm-msg-listing-header__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.skm-msg-listing-header__text strong,
.skm-msg-listing-header__text span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.skm-msg-listing-header__text strong { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); }
.skm-msg-listing-header__text span { font-size: 12px; color: rgba(13,31,51,.45); }
.skm-msg-listing-header__view {
	font-size: 12px; font-weight: 500; color: var(--skm-blue); padding: 7px 14px; border: 1px solid rgba(43,127,224,.3);
	border-radius: 7px; text-decoration: none; flex-shrink: 0; white-space: nowrap;
}
.skm-msg-listing-header__view:hover { background: rgba(43,127,224,.05); }
.skm-msg-listing-header .skm-msg-presence { margin-left: 0; flex-shrink: 0; }
/* Mobile: real bug found live — icon/title/view-link/presence pill as 4
   flat flex children squeezed the title (flex:1, auto basis) down to a
   sliver once the two fixed-width action items claimed room, wrapping it
   one word per line. Stack the two groups (icon+title, then actions) onto
   their own full-width rows instead, and force title/subtitle to a single
   truncated line so neither can wrap vertically again regardless of width. */
@media (max-width: 640px) {
	.skm-msg-listing-header { flex-wrap: wrap; row-gap: 10px; padding: 12px 16px; }
	.skm-msg-listing-header__main { flex-basis: 100%; }
	.skm-msg-listing-header__actions { flex-basis: 100%; justify-content: space-between; }
}

/* Real composer is a medium-editor contenteditable div, not a <textarea> —
   the earlier .bp-messages-content textarea rule never matched anything. */
.message-box .bp-message-content-wrap { max-width: none !important; display: block !important; padding: 0 !important; }
.message-box .medium-editor-element {
	min-height: 92px !important; padding: 12px 14px !important; font-size: 14px !important; line-height: 1.5 !important;
	border: 1px solid var(--skm-border) !important; border-radius: 10px !important; background: var(--skm-surface) !important;
}
.message-box .medium-editor-element:focus { border-color: var(--skm-blue) !important; }
#send_reply_button, #message-reply-new-submit input[type="submit"] {
	background: var(--skm-blue) !important; border-color: var(--skm-blue) !important; border-radius: 8px !important; color: #fff !important;
	padding-right: 34px !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='22' y1='2' x2='11' y2='13'/%3E%3Cpolygon points='22 2 15 22 11 13 2 9 22 2'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 12px center !important;
}
#send_reply_button:hover { background-color: #1a6fd0 !important; }
.bp-message-content_foot_note { display: none !important; }
/* Redundant with the left thread-list's own "..." menu (mark unread/archive/
   delete) once the listing-context header pushed this one into its own
   orphaned row with nothing else in it. */
.single-message-thread-header .actions { display: none !important; }
#compose-action-personal-li { display: none !important; }
#compose-personal-li { display: none !important; }

/* Messages empty state — left panel (real native markup, relabelled text only) */
.no-message-wrap { display: flex !important; flex-direction: column; align-items: center; text-align: center; padding: 32px 24px !important; }
.no-message-wrap .bb-icon-comments-slash {
	width: 56px; height: 56px; border-radius: 50%; background: #EEF5FD; color: var(--skm-blue);
	display: flex !important; align-items: center; justify-content: center; font-size: 22px !important; margin-bottom: 14px;
}
.no-message-content h3 { font-size: 13px !important; font-weight: 600 !important; color: var(--skm-text-heading) !important; margin-bottom: 6px !important; }
.no-message-content p { font-size: 12px !important; color: rgba(13,31,51,.45) !important; line-height: 1.6 !important; }

/* Messages empty state — right panel (genuinely missing from BB, built fresh
   by buildEmptyMessagesState() in custom.js, only shown when the user has
   never had a single real conversation) */
.bp-messages-content:has(.skm-msg-empty-main) { display: flex !important; align-items: center; justify-content: center; background: var(--skm-surface) !important; }
.skm-msg-empty-main { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 60px 40px; max-width: 460px; margin: 0 auto; }
.skm-msg-empty-main__icon {
	width: 96px; height: 96px; border-radius: 50%; background: #EEF5FD; color: var(--skm-blue);
	display: flex; align-items: center; justify-content: center; margin-bottom: 24px;
}
.skm-msg-empty-main h2 { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.02em; margin-bottom: 10px; }
.skm-msg-empty-main p { font-size: 15px; color: rgba(13,31,51,.5); line-height: 1.65; margin-bottom: 0; }
.skm-msg-empty-main__ctas { display: flex; flex-direction: column; gap: 12px; width: 100%; max-width: 360px; margin: 28px 0 0; }
.skm-msg-empty-main__primary {
	display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 13px 24px;
	background: var(--skm-blue); color: #fff; border-radius: 10px; font-size: 15px; font-weight: 500; text-decoration: none;
}
.skm-msg-empty-main__primary:hover { background: #1a6fd0; }
.skm-msg-empty-main__secondary {
	display: flex; align-items: center; justify-content: center; width: 100%; padding: 13px 24px;
	border: 1px solid var(--skm-border); background: #fff; color: var(--skm-text-heading); border-radius: 10px;
	font-size: 15px; font-weight: 500; text-decoration: none;
}
.skm-msg-empty-main__secondary:hover { border-color: var(--skm-blue); color: var(--skm-blue); }
.skm-msg-empty-main__note { font-size: 12px !important; color: rgba(13,31,51,.35) !important; margin-top: 20px !important; }

/* Nav-panel "Messages" tab restyled as a real page title + real unread
   count + a link back to the dashboard, both injected by skmMessagesLayout()
   in custom.js since BB's own tab markup has neither. */
/* Positioned absolutely rather than as a flex sibling — BB nests the title
   tab, compose icon, and "..." menu across more wrapper levels than is safe
   to assume, so floating the dashboard link in the corner is more robust
   than fighting that structure to get it onto the same flex row. */
.bp-messages-nav-panel { position: relative; }
.skm-msg-dashlink { position: absolute; top: 24px; right: 18px; z-index: 5; white-space: nowrap; }
#inbox { font-size: 15px !important; font-weight: 600 !important; color: var(--skm-text-heading) !important; }
.skm-msg-count {
	display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; margin-left: 6px;
	font-size: 11px; font-weight: 600; padding: 0 5px; border-radius: 10px; background: var(--skm-blue); color: #fff;
}
.skm-msg-dashlink { font-size: 11px; color: rgba(13,31,51,.4); text-decoration: none; }
.skm-msg-dashlink:hover { color: var(--skm-blue); }

/* Real thread header (.single-message-thread-header) — avatar/name/date
   already real, just brand the presence pill and tidy spacing. */
.single-message-thread-header { padding: 14px 24px !important; align-items: center !important; }
.thread-participants { margin: 0 !important; }
.participants-name { font-size: 14px !important; font-weight: 600 !important; color: var(--skm-text-heading) !important; }
.thread-date { font-size: 12px !important; color: rgba(13,31,51,.45) !important; }
.skm-msg-presence {
	margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 8px;
	background: var(--skm-surface); font-size: 12px; color: rgba(13,31,51,.5);
}
.skm-msg-presence.is-online { color: #1F8A5B; }
.skm-msg-presence.is-online::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #1F8A5B; display: inline-block; }

/* Real per-thread listing subtitle in the left conversation list — addThreadSubtitles() in custom.js */
.skm-thread-listing { font-size: 11px; color: rgba(13,31,51,.5); margin: 2px 0; }

@media (max-width: 900px) {
	.bp-back-to-thread-list { color: var(--skm-blue) !important; }
}

/* Featured upgrade action on dashboard listing rows */
.skm-upgrade-action { color: #B8860B !important; border-color: #F0DCA0 !important; background: #FFF8E8 !important; }
.skm-upgrade-action:hover { border-color: #B8860B !important; color: #8A6300 !important; }
.skm-is-featured { color: var(--skm-blue) !important; border: none !important; background: transparent !important; cursor: default; }

/* Marketing pages: contact form + page hero spacing */
.skm-page-hero { padding-top: 8px; }
.skm-contact-form { display: flex; flex-direction: column; gap: 14px; max-width: 480px; }
.skm-contact-form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 500; color: var(--skm-text-heading); }
.skm-contact-form input, .skm-contact-form textarea {
	border: 1px solid var(--skm-border); border-radius: 8px; padding: 10px 12px;
	font-family: var(--skm-font); font-size: 14px; color: var(--skm-text);
}
.skm-contact-form input:focus, .skm-contact-form textarea:focus { border-color: var(--skm-blue); outline: none; box-shadow: 0 0 0 3px rgba(43,127,224,.12); }
.skm-contact-form button { align-self: flex-start; }
.skm-contact-success { background: #E1F5EE; color: #0F6E56; padding: 14px 16px; border-radius: 8px; font-size: 14px; }
.skm-contact-error { background: #FDECEC; color: #B3261E; padding: 10px 14px; border-radius: 8px; font-size: 13px; }

/* News */
body.skm-page-news #content.site-content { padding: 0; }
body.skm-page-news #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-news .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-news #primary, body.skm-page-news .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
.skm-news__hero { background: var(--skm-navy); padding: 44px 24px; text-align: center; }
.skm-news__hero h1 { font-size: 32px; font-weight: 700; color: #fff; letter-spacing: -.5px; margin-bottom: 10px; }
.skm-news__hero p { font-size: 14px; color: #7A9AB5; }
.skm-news__tabs { background: #fff; padding: 16px 24px; border-bottom: 1px solid var(--skm-border-2); display: flex; gap: 8px; flex-wrap: wrap; max-width: var(--skm-container); margin-inline: auto; }
.skm-ntab { font-size: 12px; padding: 6px 16px; border-radius: 8px; border: 1px solid var(--skm-border); background: #fff; color: var(--skm-text); text-decoration: none; }
.skm-ntab.is-active { background: var(--skm-blue); color: #fff; border-color: var(--skm-blue); }
.skm-news__body { display: flex; padding: 24px 24px; gap: 24px; max-width: var(--skm-container); margin-inline: auto; }
.skm-news__main { flex: 1; min-width: 0; }
.skm-news__side { width: 220px; min-width: 220px; }
.skm-news-featured { display: block; background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); overflow: hidden; margin-bottom: 20px; text-decoration: none; }
.skm-news-feat__img { height: 200px; background: var(--skm-navy); display: flex; align-items: center; justify-content: center; position: relative; color: #fff; }
.skm-news-feat__badge { position: absolute; top: 14px; left: 14px; background: var(--skm-blue); color: #fff; font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 6px; }
.skm-news-feat__body { padding: 16px 20px; }
.skm-news-feat__cat { font-size: 11px; font-weight: 600; letter-spacing: 1.5px; color: var(--skm-blue); text-transform: uppercase; margin-bottom: 8px; }
.skm-news-feat__title { font-size: 18px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 8px; line-height: 1.4; letter-spacing: -.3px; }
.skm-news-feat__meta { font-size: 12px; color: var(--skm-text-faint); }
.skm-news__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 24px; }
.skm-news-card { display: block; background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); overflow: hidden; text-decoration: none; }
.skm-news-card__img { height: 110px; display: flex; align-items: center; justify-content: center; color: var(--skm-navy); }
.skm-news-card__body { padding: 12px 14px; }
.skm-news-card__cat { font-size: 10px; font-weight: 600; letter-spacing: 1.5px; color: var(--skm-blue); text-transform: uppercase; margin-bottom: 5px; }
.skm-news-card__title { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); line-height: 1.4; margin-bottom: 5px; }
.skm-news-card__meta { font-size: 11px; color: var(--skm-text-faint); }
.skm-news-list-item { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid #F0F2F4; text-decoration: none; }
.skm-news-list-item:last-child { border: none; }
.skm-news-list-img { width: 72px; height: 56px; border-radius: 8px; flex-shrink: 0; }
.skm-news-list-cat { font-size: 10px; font-weight: 600; letter-spacing: 1.5px; color: var(--skm-blue); text-transform: uppercase; margin-bottom: 4px; }
.skm-news-list-title { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); line-height: 1.4; margin-bottom: 4px; }
.skm-news-list-meta { font-size: 11px; color: var(--skm-text-faint); }
.skm-news__ghost { opacity: .07; }
.skm-side-widget { margin-bottom: 24px; }
.skm-side-widget__title { font-size: 11px; font-weight: 600; letter-spacing: 1.5px; color: #A0B0C0; text-transform: uppercase; margin-bottom: 14px; }
.skm-pop-item { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; text-decoration: none; }
.skm-pop-num { font-size: 20px; font-weight: 700; color: var(--skm-border); min-width: 24px; }
.skm-pop-title { font-size: 12px; color: var(--skm-text-heading); line-height: 1.4; }
.skm-nl-box { background: var(--skm-surface-2); border-radius: 10px; padding: 14px; }
.skm-nl-box p { font-size: 12px; color: var(--skm-text); margin-bottom: 12px; line-height: 1.5; }
.skm-nl-input { width: 100%; border: 1px solid var(--skm-border); border-radius: 7px; padding: 8px 12px; font-size: 12px; font-family: var(--skm-font); outline: none; margin-bottom: 8px; box-sizing: border-box; }
.skm-nl-btn { width: 100%; background: var(--skm-blue); color: #fff; border: none; border-radius: 7px; padding: 8px; font-size: 12px; font-weight: 500; cursor: pointer; font-family: var(--skm-font); }
.skm-nl-btn:hover { background: var(--skm-blue-hover); }
.skm-nl-msg { font-size: 12px; margin-top: 8px; }
.skm-cat-list { display: flex; flex-direction: column; gap: 6px; }
.skm-cat-list a { font-size: 12px; color: var(--skm-blue); text-decoration: none; display: flex; justify-content: space-between; }
.skm-cat-list a span { color: #A0B0C0; }
@media (max-width: 900px) {
	.skm-news__body { flex-direction: column; }
	.skm-news__side { width: 100%; min-width: 0; }
	.skm-news__grid { grid-template-columns: 1fr; }
}

/* Services directory */
body.skm-page-services #content.site-content { padding: 0; }
body.skm-page-services #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-services .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-services #primary, body.skm-page-services .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }

/* List service submission form (same full-bleed treatment as Services directory) */
body.skm-page-list-service #content.site-content { padding: 0; }
body.skm-page-list-service #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-list-service .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-list-service #primary, body.skm-page-list-service .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
.skm-svc__hero { background: var(--skm-navy); padding: 56px 24px 48px; text-align: center; }
.skm-svc__eye { font-size: 11px; font-weight: 500; letter-spacing: 3px; color: var(--skm-blue); text-transform: uppercase; margin-bottom: 14px; }
.skm-svc__hero h1 { font-size: 34px; font-weight: 700; color: #fff; line-height: 1.2; letter-spacing: -.5px; margin-bottom: 12px; }
.skm-svc__sub { font-size: 14px; color: #7A9AB5; margin-bottom: 32px; }
.skm-svc__provider-cta { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; margin: -18px 0 26px; }
.skm-svc__provider-cta-text { font-size: 14px; color: #A9C2D6; }
.skm-svc__provider-cta-btn { box-shadow: 0 4px 14px rgba(0,0,0,.2); }
@media (max-width: 480px) { .skm-svc__provider-cta { flex-direction: column; gap: 10px; } }
.skm-svc__sbar { background: #fff; border-radius: 10px; padding: 5px 5px 5px 16px; display: flex; align-items: center; gap: 8px; max-width: 540px; margin: 0 auto; }
.skm-svc-submit__hero { background: var(--skm-navy); padding: 56px 24px 40px; text-align: center; }
.skm-svc-submit__hero h1 { font-size: 30px; font-weight: 700; color: #fff; line-height: 1.2; letter-spacing: -.5px; margin-bottom: 10px; }
.skm-svc-submit__hero p { font-size: 14px; color: #7A9AB5; }
.skm-svc-submit__hero .skm-eyebrow { color: var(--skm-blue); }
.skm-svc-submit__login { padding: 60px 24px; text-align: center; font-size: 15px; }
.skm-svc-submit__body { padding: 40px 24px 64px; max-width: 560px; margin-inline: auto; }
.skm-svc-submit__form { display: flex; flex-direction: column; gap: 16px; }
.skm-svc-submit__form label { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); display: flex; flex-direction: column; gap: 6px; }
.skm-svc-submit__form input, .skm-svc-submit__form select { border: 1px solid var(--skm-border); border-radius: 8px; padding: 10px 12px; font-size: 14px; font-family: var(--skm-font); color: var(--skm-text); background: #fff; }
.skm-svc-submit__form input:focus, .skm-svc-submit__form select:focus { border-color: var(--skm-blue); outline: none; }
.skm-svc-submit__form button { margin-top: 8px; }
.skm-svc-submit__form input[type="file"] { border: 1px dashed var(--skm-border); border-radius: 8px; padding: 10px 12px; font-size: 13px; background: var(--skm-surface-2); }
.skm-svc-submit__hint { font-size: 11px; font-weight: 400; color: var(--skm-text-faint); }
.skm-svc-submit__sponsor { flex-direction: row !important; align-items: flex-start; gap: 10px; background: #FFF8E6; border: 1px solid #F0D890; border-radius: 10px; padding: 12px 14px; }
.skm-svc-submit__sponsor input[type="checkbox"] { width: 16px; height: 16px; margin-top: 2px; flex-shrink: 0; accent-color: var(--skm-blue); }
.skm-svc-submit__sponsor > span { display: flex; flex-direction: column; gap: 3px; }
.skm-svc-submit__sponsor strong { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); }
.skm-svc-card--sponsored { border-color: #F0D890; background: linear-gradient(0deg, #FFFDF6, #FFFDF6); box-shadow: 0 0 0 1px #F0D890; }
.skm-svc-card__sponsor-badge { display: inline-block; align-self: flex-start; font-size: 10px; font-weight: 700; letter-spacing: 0.02em; color: #8A6D1D; background: #FFF1C2; border: 1px solid #F0D890; border-radius: 6px; padding: 2px 7px; margin-bottom: 8px; }
.skm-svc-card__avatar.skm-svc-card__avatar--logo { width: auto; min-width: 50px; max-width: 140px; padding: 4px 8px; overflow: hidden; background: #fff; }
.skm-svc-card__avatar--logo img { width: auto; height: 100%; max-width: 100%; object-fit: contain; border-radius: 4px; }
.skm-svc__sbar select { border: none; outline: none; font-size: 13px; color: var(--skm-text); font-family: var(--skm-font); background: transparent; padding: 8px 4px; flex: 1; }
.skm-svc__cats { background: #fff; padding: 24px 24px; border-bottom: 1px solid var(--skm-border-2); max-width: var(--skm-container); margin-inline: auto; }
.skm-svc__cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.skm-svc-cpill { background: var(--skm-surface-2); border: 1px solid var(--skm-border); border-radius: 10px; padding: 16px 14px; display: flex; flex-direction: column; gap: 2px; text-decoration: none; }
.skm-svc-cpill:hover { border-color: var(--skm-blue); }
.skm-svc-cpill__name { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); }
.skm-svc-cpill__count { font-size: 11px; color: var(--skm-text-faint); }
.skm-svc__body { display: flex; padding: 20px 24px; gap: 24px; align-items: flex-start; }
.skm-svc__side { width: 268px; min-width: 268px; background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 20px; }
.skm-svc__results { flex: 1; min-width: 0; }
.skm-svc-card { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 16px 18px; margin-bottom: 12px; display: flex; gap: 16px; align-items: flex-start; }
.skm-svc-card__avatar { width: 50px; height: 50px; border-radius: 10px; background: #E6F1FB; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 14px; font-weight: 700; color: #185FA5; }
.skm-svc-card__info { flex: 1; min-width: 0; }
.skm-svc-card__title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 3px; }
.skm-svc-card__sub { font-size: 12px; color: var(--skm-text-faint); margin-bottom: 10px; }
.skm-svc-card__tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.skm-svc-tag { font-size: 11px; padding: 3px 10px; border-radius: 5px; background: #E6F1FB; color: #0C447C; border: 1px solid #B5D4F4; }
.skm-svc-tag--green { background: #E1F5EE; color: #085041; border-color: #9FE1CB; }
.skm-svc-card__stars { font-size: 12px; color: var(--skm-text); }
.skm-svc-card__stars span { color: #BA7517; }
.skm-svc-card__r { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; min-width: 90px; }
.skm-svc-card__loc { font-size: 11px; color: var(--skm-text-faint); }
/* Filters toggle: hidden on desktop, shown collapsed on mobile so the
   facet sidebar (Category / Region / Approval type) doesn't push the
   actual listings off the first screen. */
.skm-svc__filters-toggle { display: none; }

@media (max-width: 900px) {
	.skm-svc__cat-grid { grid-template-columns: repeat(2, 1fr); }
	.skm-svc__body { flex-direction: column; }
	.skm-svc__filters-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 14px 16px; font-size: 15px; font-weight: 600; color: var(--skm-text-heading); font-family: var(--skm-font); margin-bottom: 12px; cursor: pointer; }
	.skm-svc__filters-toggle-chevron { transition: transform .15s ease; flex-shrink: 0; color: var(--skm-text-faint); }
	.skm-svc__filters-toggle.is-open .skm-svc__filters-toggle-chevron { transform: rotate(180deg); }
	.skm-svc__side { display: none; width: 100%; margin-bottom: 20px; }
	.skm-svc__side.is-open { display: block; }
	.skm-svc-card { flex-direction: column; }
	.skm-svc-card__r { flex-direction: row; align-items: center; width: 100%; justify-content: space-between; }
}

/* Advertise (rich sales page) */
body.skm-page-advertise #content.site-content { padding: 0; }
body.skm-page-advertise #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-advertise .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-advertise #primary, body.skm-page-advertise .content-area { width: 100%; max-width: none; margin: 0; padding: 0; float: none; }
.skm-adv__hero { background: var(--skm-navy); padding: 56px 24px 48px; text-align: center; }
.skm-adv__hero h1 { font-size: 36px; font-weight: 700; color: #fff; letter-spacing: -1px; margin-bottom: 12px; }
.skm-adv__hero p { font-size: 15px; color: #7A9AB5; max-width: 560px; margin: 0 auto 36px; line-height: 1.6; }
.skm-adv__hero-stats { display: flex; justify-content: center; gap: 48px; flex-wrap: wrap; }
.skm-adv-stat__n { font-size: 24px; font-weight: 700; color: #fff; }
.skm-adv-stat__l { font-size: 11px; color: #5A7A95; margin-top: 3px; letter-spacing: .5px; }
.skm-adv-stat__note { font-size: 10px; color: #3F6A8A; font-style: italic; }
.skm-adv__why, .skm-adv__packages { padding: 36px 24px; background: #fff; max-width: var(--skm-container); margin-inline: auto; }
.skm-adv__why { border-bottom: 1px solid var(--skm-border-2); }
.skm-adv__why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.skm-adv-why-card { background: var(--skm-surface-2); border-radius: var(--skm-radius); padding: 20px; }
.skm-adv-why-icon { width: 40px; height: 40px; background: #E6F1FB; border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; color: var(--skm-blue); }
.skm-adv-why-icon svg { width: 20px; height: 20px; }
.skm-adv-why-title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 6px; }
.skm-adv-why-desc { font-size: 12px; color: var(--skm-text); line-height: 1.6; }
.skm-adv__pack-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.skm-sell-packages { padding: 32px 24px; background: var(--skm-surface); margin-bottom: 24px; }
.skm-sell-packages__grid { grid-template-columns: repeat(2, 1fr); max-width: 640px; margin-inline: auto; }
.skm-sell-packages__note { text-align: center; font-size: 13px; color: var(--skm-text-faint); margin-top: 16px; max-width: 640px; margin-inline: auto; }
.skm-adv-pack { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 22px; position: relative; }
.skm-adv-pack--featured { border: 2px solid var(--skm-blue); }
.skm-adv-pack__badge { position: absolute; top: -1px; left: 50%; transform: translateX(-50%); background: var(--skm-blue); color: #fff; font-size: 10px; font-weight: 600; padding: 4px 14px; border-radius: 0 0 8px 8px; white-space: nowrap; }
.skm-adv-pack__name { font-size: 11px; font-weight: 600; letter-spacing: 2px; color: #A0B0C0; text-transform: uppercase; margin-bottom: 8px; }
.skm-adv-pack__price { font-size: 28px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 4px; letter-spacing: -.5px; }
.skm-adv-pack__period { font-size: 12px; color: var(--skm-text-faint); }
.skm-adv-pack__div { border-top: 1px solid var(--skm-border-2); margin: 16px 0; }
.skm-adv-feat-list { list-style: none; margin: 0 0 20px; padding: 0; }
.skm-adv-feat-list li { font-size: 12px; color: var(--skm-text-heading); padding: 5px 0; display: flex; align-items: flex-start; gap: 8px; }
.skm-adv-feat-list .ck { color: var(--skm-success); font-size: 14px; flex-shrink: 0; }
.skm-adv-pack__btn { display: block; width: 100%; text-align: center; border: 1px solid var(--skm-blue); border-radius: 8px; padding: 10px; font-size: 13px; font-weight: 500; font-family: var(--skm-font); background: #fff; color: var(--skm-blue); text-decoration: none; box-sizing: border-box; }
.skm-adv-pack__btn--primary { background: var(--skm-blue); color: #fff; }
.skm-adv-pack__btn:hover { background: var(--skm-blue-hover); color: #fff; border-color: var(--skm-blue-hover); }
.skm-adv__formats { padding: 36px 24px; background: var(--skm-surface); }
.skm-adv__formats-eyebrow { max-width: var(--skm-container); margin-inline: auto; }
.skm-adv__format-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; max-width: var(--skm-container); margin-inline: auto; }
.skm-adv-format-card { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 18px; display: flex; gap: 14px; align-items: flex-start; }
.skm-adv-format-icon { width: 46px; height: 46px; border-radius: 10px; background: #E6F1FB; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--skm-blue); }
.skm-adv-format-icon svg { width: 22px; height: 22px; }
.skm-adv-format-title { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 4px; }
.skm-adv-format-desc { font-size: 12px; color: var(--skm-text); line-height: 1.5; }
.skm-adv-format-size { font-size: 11px; color: var(--skm-blue); margin-top: 5px; font-weight: 500; }
.skm-adv__cta { background: var(--skm-blue); padding: 40px 24px; text-align: center; }
.skm-adv__cta h2 { font-size: 24px; font-weight: 700; color: #fff; margin-bottom: 10px; letter-spacing: -.5px; }
.skm-adv__cta p { font-size: 14px; color: var(--skm-blue-soft); margin-bottom: 24px; }
.skm-adv__cta-btns { display: flex; justify-content: center; gap: 12px; }
@media (max-width: 900px) {
	.skm-adv__why-grid, .skm-adv__pack-grid, .skm-adv__format-grid { grid-template-columns: 1fr; }
	.skm-adv__hero-stats { gap: 28px; }
}

/* Profile dropdown — pixel-matched to mockup_header_variants.dc.html
   Desktop Logged In: 240px panel, header (avatar+name+email+tier), icon items, red sign-out. */
#header-aside .user-wrap .sub-menu:has(.skm-dd-item) {
	width: 240px !important; min-width: 0 !important; max-width: none !important;
	border: 1px solid var(--skm-border); border-radius: 12px !important;
	box-shadow: 0 8px 32px rgba(13,31,51,.14); overflow: hidden; top: calc(100% + 8px) !important;
	padding-top: 0 !important;
}
#header-aside .user-wrap .sub-menu:has(.skm-dd-item) .wrapper { padding: 0 !important; }
#header-aside .user-wrap .sub-menu .user-link { display: none !important; }

/* Dropdown header block */
.skm-dd-head { list-style: none; padding: 14px 16px; border-bottom: 1px solid #F0F2F4; }
.skm-dd-head__row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.skm-dd-head__avatar { width: 38px !important; height: 38px !important; border-radius: 50% !important; flex-shrink: 0; object-fit: cover; }
.skm-dd-head__name { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin: 0 !important; }
.skm-dd-head__email { font-size: 11px; color: rgba(13,31,51,.45); margin: 2px 0 0 !important; }
.skm-dd-tier { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 600; padding: 3px 9px; border-radius: 5px; background: #EEF5FD; color: #185FA5; border: 1px solid #B5D4F4; }

/* Dropdown nav items */
.skm-dd-item { display: flex !important; align-items: center; justify-content: space-between; text-decoration: none; padding: 10px 16px; font-size: 14px; color: #0D1F33; border-bottom: 1px solid #F5F7FA; transition: background .1s; width: 100%; box-sizing: border-box; }
.skm-dd-item:last-child, li:last-child .skm-dd-item { border-bottom: none !important; }
.skm-dd-item:hover { background: #F5F7FA !important; }
.skm-dd-item__left { display: flex; align-items: center; gap: 10px; }
.skm-dd-item__left svg { color: #5A6A7A; flex-shrink: 0; }
.skm-dd-badge { display: inline-flex; align-items: center; justify-content: center; line-height: 1; font-size: 10px; font-weight: 700; background: var(--skm-blue); color: #fff; padding: 4px 7px; border-radius: 10px; }
.skm-dd-item--danger, .skm-dd-item--danger:visited { color: #C0392B !important; font-weight: 500; }
.skm-dd-item--danger:hover { color: #A93226 !important; background: #FEF5F5 !important; }
.skm-dd-item--danger .skm-dd-item__left svg { color: #C0392B; }

/* Keep old .skm-acct-* classes for any legacy references */
.skm-dd-tier-tag { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 5px; background: #EEF5FD; color: #185FA5; margin-top: 4px; }

/* Browse submenu (native BuddyBoss submenu walker) */
#site-navigation .primary-menu .sub-menu { min-width: 220px; }
#site-navigation .primary-menu .sub-menu a { font-size: 13px; }

/* Browse mega-menu (mockup_listings.dc.html) — custom.js (browseMegaMenu)
   rebuilds the real WP nav menu items into this layout at runtime: left
   col "Browse by type" 2x4 icon grid, right col "Browse" + "Services"
   groups separated by a vertical divider. DOM rebuild rather than CSS-only
   for the same reason as before — full control beats fighting BuddyBoss's
   own rule priority. */
/* Browse mega — redesigned per mockup_header_variants.dc.html's "Browse
   dropdown — open state" section: flat 3-group row, no columns-grid, no
   dark promo panel (client/Helen flagged the old boxed 3-col + navy promo
   as messy). Positioned by JS same as before. */
#site-navigation .primary-menu .ab-submenu:has(.skm-browse-mega) {
	min-width: 0 !important; max-width: none !important;
	width: max-content !important;
	padding: 0 !important; background: #fff !important;
	border: 1px solid #E2E6EA !important; border-radius: 12px !important;
	box-shadow: 0 8px 32px rgba(13,31,51,.14) !important;
	overflow: hidden !important;
	/* Parent theme's own .ab-submenu is a flex container that vertically
	   centers its child by default — with the old, taller 3-column+promo
	   design this was invisible (content filled the box), but the new
	   flatter design is shorter, so the centering showed up as a large
	   dead gap above the eyebrow labels. Force top alignment. Also let
	   the box size to its actual content (max-content) instead of the
	   fixed 660px JS used to force — that fixed width was wider than the
	   real content, and with no justify-content set the leftover slack
	   all piled up after the last group, reading as uneven right padding
	   on Quick Views specifically. */
	display: flex !important; align-items: flex-start !important; justify-content: flex-start !important;
}
.skm-browse-mega { display: flex; gap: 32px; padding: 20px 24px; }
.skm-browse-mega__group { min-width: 180px; }
.skm-browse-mega__group--views { min-width: 160px; }
.skm-browse-mega__group + .skm-browse-mega__divider { width: 1px; background: #F0F2F4; flex-shrink: 0; align-self: stretch; }
.skm-browse-mega__eyebrow {
	font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	color: rgba(13,31,51,.35); margin: 0 0 8px 4px; padding: 0;
}
.skm-browse-mega__eyebrow--second { margin-top: 16px; }
.skm-browse-mega__col { list-style: none; margin: 0; padding: 0; background: transparent !important; display: flex; flex-direction: column; gap: 1px; }
#site-navigation .primary-menu .skm-browse-mega .menu-item { list-style: none; height: auto !important; min-height: 0 !important; }
#site-navigation .primary-menu .skm-browse-mega .menu-item > a { height: auto !important; min-height: 0 !important; line-height: 1.3 !important; }
.skm-browse-mega .menu-item > a {
	display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 7px;
	font-size: 13px; font-weight: 500; color: var(--skm-text-heading); white-space: nowrap; text-decoration: none;
	background: transparent !important;
}
.skm-browse-mega .menu-item > a:hover { background: #F5F7FA !important; color: var(--skm-text-heading); }
.skm-browse-mega__icon {
	width: 26px; height: 26px; border-radius: 6px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
}
.skm-browse-mega__icon svg { display: block; }
.skm-browse-mega__count { margin-left: auto; font-size: 11px; color: rgba(13,31,51,.35); }
/* Quick views group — plain colored icon, no icon-box background, no count */
.skm-browse-mega__group--views .menu-item > a { color: var(--skm-blue) !important; }
.skm-browse-mega__group--views .menu-item > a:hover { background: rgba(43,127,224,.06) !important; }
.skm-browse-mega__group--views .skm-browse-mega__plain-icon { flex-shrink: 0; }
@media (max-width: 900px) {
	.skm-browse-mega { flex-wrap: wrap; }
}

/* Marketing page redesign — icon grids, trust strip, legal TOC, contact split */
.skm-mkt-wide { max-width: var(--skm-container); margin-inline: auto; padding-inline: 24px; position: relative; }
.skm-mkt-center { text-align: center; }

.skm-mkt-icon-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.skm-mkt-icon-card {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px;
	background: var(--skm-surface-2); border: 1px solid var(--skm-border); border-radius: var(--skm-radius);
	padding: 22px 16px;
}
.skm-mkt-icon-card__icon { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; color: var(--skm-blue); margin-bottom: 4px; }
.skm-mkt-icon-card__icon svg { width: 28px; height: 28px; }
.skm-mkt-icon-card__label { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); }
.skm-mkt-icon-card__desc { font-size: 11px; color: var(--skm-text-faint); line-height: 1.4; }

.skm-mkt-trust { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: start; padding-block: var(--skm-section-pad); border-top: 1px solid var(--skm-border-2); }
.skm-mkt-trust__badges { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.skm-mkt-trust__badges li { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--skm-text); }
.skm-mkt-trust__badges svg { width: 20px; height: 20px; color: var(--skm-success); flex-shrink: 0; margin-top: 1px; }

.skm-legal { display: flex; gap: 40px; align-items: flex-start; }
.skm-legal__toc { width: 200px; min-width: 200px; position: sticky; top: 84px; }
.skm-legal__toc-label { font-size: 11px; font-weight: 600; letter-spacing: 1.5px; color: var(--skm-text-faint); text-transform: uppercase; margin-bottom: 12px; }
.skm-legal__toc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; border-left: 2px solid var(--skm-border); }
.skm-legal__toc a { font-size: 13px; color: var(--skm-text); text-decoration: none; padding-left: 14px; display: block; }
.skm-legal__toc a:hover { color: var(--skm-blue); }
.skm-legal__body { flex: 1; min-width: 0; }
.skm-legal__section { padding-block: 22px; border-bottom: 1px solid var(--skm-border-2); scroll-margin-top: 90px; }
.skm-legal__section:last-child { border-bottom: none; }
.skm-legal__section h2 { font-size: 18px; margin-bottom: 10px; }

.skm-mkt-contact { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: start; }
.skm-mkt-contact__side { background: var(--skm-surface-2); border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 24px; }
.skm-mkt-contact__side h3 { font-size: 13px; font-weight: 600; letter-spacing: .5px; color: var(--skm-text-faint); text-transform: uppercase; margin-bottom: 16px; }
.skm-mkt-contact__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.skm-mkt-contact__list li { display: flex; align-items: flex-start; gap: 12px; font-size: 13px; color: var(--skm-text); line-height: 1.5; }
.skm-mkt-contact__list svg { width: 20px; height: 20px; color: var(--skm-blue); flex-shrink: 0; margin-top: 1px; }
.skm-mkt-contact__list strong { color: var(--skm-text-heading); }

@media (max-width: 900px) {
	.skm-mkt-icon-grid { grid-template-columns: repeat(2, 1fr); }
	.skm-mkt-trust { grid-template-columns: 1fr; }
	.skm-legal { flex-direction: column; }
	.skm-legal__toc { position: static; width: 100%; min-width: 0; }
	.skm-mkt-contact { grid-template-columns: 1fr; }
}

/* Dashboard listing row — Live/Expiring badge + meta line (mockup_04 fidelity) */
.skm-ml-badge { display: inline-block; font-size: 10px; font-weight: 500; padding: 3px 8px; border-radius: 5px; margin-top: 4px; }
.skm-ml-badge--live { background: #E1F5EE; color: #0F6E56; }
.skm-ml-badge--expiring { background: #FAEEDA; color: #854F0B; }
.skm-ml-meta { display: inline-block; font-size: 11px; color: var(--skm-text-faint); margin-left: 8px; }

/* ============================================================
   Marketing page redesign v2 — About / Privacy / Terms / Contact
   ============================================================ */
.skm-mkt-center { text-align: center; }

/* Full-bleed section backgrounds */
.skm-mkt-section--navy { background: var(--skm-navy); padding-top: 88px !important; padding-bottom: 80px !important; }
.skm-mkt-section--navy h1, .skm-mkt-section--navy p { color: rgba(255,255,255,0.85); }
.skm-mkt-section--navy h1 { color: #fff; font-size: 48px; }
.skm-mkt-section--navy .skm-eyebrow { color: var(--skm-blue); }
.skm-mkt-section--navy p { max-width: 560px; margin-inline: auto; font-weight: 300; }
body.skm-page-contact .skm-mkt-section--navy { padding-top: 64px !important; padding-bottom: 60px !important; }
body.skm-page-privacy .skm-mkt-section--navy, body.skm-page-terms .skm-mkt-section--navy { padding-top: 56px !important; padding-bottom: 52px !important; }
body.skm-page-privacy .skm-mkt-section--navy h1, body.skm-page-terms .skm-mkt-section--navy h1 { font-size: 44px; }
body.skm-page-privacy .skm-mkt-section--navy p, body.skm-page-terms .skm-mkt-section--navy p { max-width: none; margin-inline: 0; }
.skm-mkt-section--surface { padding-top: 80px !important; padding-bottom: 80px !important; position: relative; z-index: 0; }
.skm-mkt-section--surface::before {
	content: "";
	position: absolute;
	top: 0; bottom: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	background: var(--skm-surface);
	border-top: 1px solid var(--skm-border);
	border-bottom: 1px solid var(--skm-border);
	z-index: -1;
}
.skm-mkt-section--plain { padding-top: 88px !important; padding-bottom: 88px !important; }
.skm-mkt-section--contact-form { padding-top: 72px !important; padding-bottom: 96px !important; }
.skm-mkt-section--legal-body { padding-top: 64px !important; padding-bottom: 96px !important; }
.skm-mkt-datestamp { font-size: 13px; color: rgba(255,255,255,0.4) !important; font-weight: 400; max-width: none !important; margin: 0 !important; }

/* About — story 2-col + quote card */
.skm-mkt-story { display: grid; grid-template-columns: 1fr 1fr; gap: 88px; align-items: start; }
.skm-mkt-story__text p { font-size: 15px; line-height: 1.8; color: var(--skm-text); margin-bottom: 14px; }
.skm-mkt-quote { background: var(--skm-surface); border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 36px; }
.skm-mkt-quote__mark { font-size: 44px; font-weight: 700; color: var(--skm-blue); line-height: 0.7; margin-bottom: 16px; }
.skm-mkt-quote__text { font-size: 15px; font-weight: 300; color: var(--skm-text-heading); line-height: 1.7; margin-bottom: 24px; }
.skm-mkt-quote__attr { display: flex; align-items: center; gap: 12px; padding-top: 20px; border-top: 1px solid var(--skm-border); }
.skm-mkt-quote__avatar { width: 36px; height: 36px; background: var(--skm-blue); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; }
.skm-mkt-quote__avatar svg { width: 16px; height: 16px; }
.skm-mkt-quote__name { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); }
.skm-mkt-quote__role { font-size: 12px; color: var(--skm-text-faint); margin-top: 2px; }

/* Feature grids (4-up "find it all", 3-up "trust") */
.skm-mkt-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.skm-mkt-feature-grid--3 { grid-template-columns: repeat(3, 1fr); gap: 40px; }
.skm-mkt-feature { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 28px 24px; }
.skm-mkt-feature-grid--3 .skm-mkt-feature { background: transparent; border: none; padding: 0; }
.skm-mkt-feature h3 { font-size: 17px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 9px; }
.skm-mkt-feature p { font-size: 14px; line-height: 1.65; color: var(--skm-text); }
.skm-mkt-icon-box { background: rgba(43,127,224,0.08); border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; color: var(--skm-blue); }
.skm-mkt-icon-box svg { width: 55%; height: 55%; }

/* Legal pages v2 — sticky scroll-spy TOC */
.skm-legal2__intro { font-size: 16px; line-height: 1.8; color: var(--skm-text); max-width: 680px; margin-bottom: 56px; }
.skm-legal2 { display: flex; gap: 72px; align-items: flex-start; }
.skm-legal2__toc { width: 232px; min-width: 232px; position: sticky; top: 88px; }
.skm-legal2__toc-label { font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--skm-text-faint); margin-bottom: 14px; }
.skm-legal2__toc-links { display: flex; flex-direction: column; }
.skm-legal2__toc-links a { font-size: 14px; color: var(--skm-text-muted); font-weight: 400; padding: 8px 12px 8px 14px; border-left: 2px solid transparent; text-decoration: none; line-height: 1.4; }
.skm-legal2__toc-links a.is-active { color: var(--skm-blue); font-weight: 500; border-left-color: var(--skm-blue); }
.skm-legal2__toc-links a:hover { color: var(--skm-text-heading); }
.skm-legal2__body { flex: 1; min-width: 0; max-width: 680px; }
.skm-legal2__section { margin-bottom: 52px; scroll-margin-top: 88px; }
.skm-legal2__section:last-child { margin-bottom: 0; }
.skm-legal2__section h2 { font-size: 21px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--skm-border); }
.skm-legal2__section p { font-size: 15px; line-height: 1.8; color: var(--skm-text); margin-bottom: 12px; }
.skm-legal2__section p:last-child { margin-bottom: 0; }
.skm-legal2__section a { color: var(--skm-blue); font-weight: 500; }
.skm-legal2__section a:hover { text-decoration: underline; }

.skm-mkt-info-card { padding: 16px 20px; background: var(--skm-surface); border-radius: 8px; border-left: 3px solid var(--skm-border); margin-bottom: 10px; }
.skm-mkt-info-card__title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 5px; }
.skm-mkt-info-card__desc { font-size: 14px; line-height: 1.65; color: var(--skm-text); }

.skm-mkt-checklist { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.skm-mkt-checklist__row { display: flex; gap: 14px; align-items: flex-start; }
.skm-mkt-checklist__icon { flex-shrink: 0; margin-top: 4px; width: 20px; height: 20px; background: rgba(43,127,224,0.1); border-radius: 4px; display: flex; align-items: center; justify-content: center; color: var(--skm-blue); }
.skm-mkt-checklist__icon svg { width: 10px; height: 10px; }
.skm-mkt-checklist__dot { flex-shrink: 0; margin-top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--skm-blue); }
.skm-mkt-checklist__row p { font-size: 15px; line-height: 1.7; color: var(--skm-text); margin: 0; }
.skm-mkt-checklist__tag { color: var(--skm-text-faint); font-size: 13px; }

.skm-mkt-cookie { padding: 16px 20px; background: var(--skm-surface); border-radius: 8px; margin-bottom: 10px; }
.skm-mkt-cookie__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.skm-mkt-cookie__title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin: 0; }
.skm-mkt-cookie__desc { font-size: 14px; line-height: 1.65; color: var(--skm-text); margin: 0; }
.skm-mkt-badge { font-size: 11px; font-weight: 600; letter-spacing: .03em; padding: 2px 8px; border-radius: 4px; }
.skm-mkt-badge--always { color: var(--skm-text-heading); background: var(--skm-border); }
.skm-mkt-badge--optional { color: #1F8A5B; background: rgba(31,138,91,0.1); }

.skm-mkt-rights { display: flex; flex-direction: column; gap: 0; margin-bottom: 16px; }
.skm-mkt-rights__row { display: flex; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--skm-surface); }
.skm-mkt-rights__row:last-child { border-bottom: none; }
.skm-mkt-rights__label { flex-shrink: 0; width: 120px; font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin: 0; }
.skm-mkt-rights__desc { font-size: 14px; line-height: 1.65; color: var(--skm-text); margin: 0; }

.skm-mkt-callout { padding: 16px 20px; background: rgba(43,127,224,0.05); border-radius: 8px; border-left: 3px solid var(--skm-blue); margin-bottom: 20px; font-size: 14px; line-height: 1.65; color: var(--skm-text-heading); font-weight: 500; }

/* Contact v2 — two column with side panel + callout */
.skm-mkt-contact2 { display: grid; grid-template-columns: 1fr 380px; gap: 80px; align-items: start; }
.skm-mkt-contact2__side { display: flex; flex-direction: column; gap: 16px; }
.skm-mkt-contact2__panel { background: var(--skm-surface); border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 32px; }
.skm-mkt-contact2__panel h3 { font-size: 16px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 28px; }
.skm-mkt-contact2__row { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 24px; }
.skm-mkt-contact2__row:last-child { margin-bottom: 0; }
.skm-mkt-contact2__row .skm-mkt-icon-box { margin-bottom: 0; flex-shrink: 0; }
.skm-mkt-contact2__label { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--skm-text-faint); margin-bottom: 4px; }
.skm-mkt-contact2__row a { font-size: 14px; font-weight: 500; color: var(--skm-blue); }
.skm-mkt-contact2__row p { font-size: 14px; color: var(--skm-text-heading); margin: 0; }
.skm-mkt-contact2__callout { background: var(--skm-navy); border-radius: var(--skm-radius); padding: 28px 32px; }
.skm-mkt-contact2__callout-title { font-size: 13px; font-weight: 500; color: rgba(255,255,255,0.65); margin-bottom: 6px; }
.skm-mkt-contact2__callout p:not(.skm-mkt-contact2__callout-title) { font-size: 13px; line-height: 1.6; color: rgba(255,255,255,0.45); }
.skm-mkt-contact2__success { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 40px; background: var(--skm-surface); border: 1px solid var(--skm-border); border-radius: var(--skm-radius); }
.skm-mkt-contact2__success-icon { width: 48px; height: 48px; background: var(--skm-blue); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; }
.skm-mkt-contact2__success-icon svg { width: 22px; height: 22px; }
.skm-mkt-contact2__success h3 { font-size: 20px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 8px; }
.skm-mkt-contact2__success p { font-size: 15px; line-height: 1.7; color: var(--skm-text); }

/* Contact form fields restyle */
.skm-contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.skm-contact-form__footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 4px; }
.skm-contact-form__consent { font-size: 13px; color: var(--skm-text-faint); line-height: 1.5; max-width: 340px; margin: 0; }
.skm-contact-form__consent a { color: var(--skm-blue); }

@media (max-width: 900px) {
	.skm-mkt-story { grid-template-columns: 1fr; gap: 40px; }
	.skm-mkt-feature-grid { grid-template-columns: repeat(2, 1fr); }
	.skm-mkt-feature-grid--3 { grid-template-columns: 1fr; gap: 28px; }
	.skm-legal2 { flex-direction: column; gap: 32px; }
	.skm-legal2__toc { position: static; width: 100%; min-width: 0; }
	.skm-legal2__toc-links { flex-direction: row; flex-wrap: wrap; gap: 8px; }
	.skm-legal2__toc-links a { border-left: none; border-bottom: 2px solid transparent; padding: 6px 10px; }
	.skm-legal2__toc-links a.is-active { border-bottom-color: var(--skm-blue); }
	.skm-mkt-contact2 { grid-template-columns: 1fr; gap: 32px; }
	.skm-contact-form__row { grid-template-columns: 1fr; }
	.skm-contact-form__footer { flex-direction: column; align-items: stretch; gap: 12px; }
	.skm-mkt-section--navy h1 { font-size: 32px; }
}

/* ============================================================
   JET BROKER PAGE
   ============================================================ */
body.skm-page-jet-broker #content.site-content { padding: 0; }
body.skm-page-jet-broker #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-jet-broker .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-jet-broker #primary, body.skm-page-jet-broker .content-area { width: 100%; max-width: none; margin: 0; padding: 0 !important; float: none; }
body.skm-page-jet-broker .entry-content-wrap { padding: 0 !important; margin: 0 !important; }
body.skm-page-jet-broker .entry-content { margin: 0 !important; }
body.skm-page-jet-broker .entry-header, body.skm-page-jet-broker .entry-media { display: none; }

.skm-jet__eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--skm-blue); margin-bottom: 10px; }
.skm-jet__h2 { font-size: 30px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.03em; margin-bottom: 16px; }
.skm-jet__h2--white { color: #fff !important; font-size: 32px; line-height: 1.2; }

/* Hero */
.skm-jet__hero { background: var(--skm-navy); padding: 64px 0 56px; position: relative; overflow: hidden; }
.skm-jet__hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(43,127,224,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(43,127,224,.05) 1px,transparent 1px); background-size: 60px 60px; pointer-events: none; }
.skm-jet__hero-inner { max-width: 680px; position: relative; }
.skm-jet__badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(43,127,224,.15); border: 1px solid rgba(43,127,224,.3); border-radius: 20px; padding: 5px 14px; margin-bottom: 24px; }
.skm-jet__badge-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--skm-blue); }
.skm-jet__badge { font-size: 12px; font-weight: 600; color: #7EB8F0; letter-spacing: .08em; text-transform: uppercase; }
.skm-jet__h1 { font-size: 44px; font-weight: 700; color: #fff !important; letter-spacing: -.04em; line-height: 1.1; margin-bottom: 20px; }
.skm-jet__lede { font-size: 17px; color: rgba(255,255,255,.55); line-height: 1.65; margin-bottom: 32px; max-width: 580px; }
.skm-jet__hero-ctas { display: flex; gap: 12px; align-items: center; }
.skm-jet__btn-primary, .skm-jet__btn-primary:hover, .skm-jet__btn-primary:focus { display: inline-flex; align-items: center; gap: 8px; background: var(--skm-blue) !important; color: #fff !important; border-radius: 9px; padding: 13px 26px; font-size: 15px; font-weight: 600; }
.skm-jet__btn-primary:hover, .skm-jet__btn-primary:focus { background: var(--skm-blue-hover) !important; }
.skm-jet__btn-ghost, .skm-jet__btn-ghost:hover, .skm-jet__btn-ghost:focus { font-size: 15px; font-weight: 500; color: rgba(255,255,255,.6) !important; }
.skm-jet__btn-ghost:hover, .skm-jet__btn-ghost:focus { color: #fff !important; }

/* Aircraft types strip */
.skm-jet__types { background: #fff; border-bottom: 1px solid var(--skm-border); padding: 24px 0; }
.skm-jet__types-inner { display: flex; align-items: center; gap: 16px; }
.skm-jet__types-lbl { font-size: 13px; font-weight: 500; color: rgba(13,31,51,.45); flex-shrink: 0; }
.skm-jet__types-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.skm-jet__pill { font-size: 13px; font-weight: 500; padding: 5px 14px; border-radius: 20px; background: var(--skm-surface); border: 1px solid var(--skm-border); color: var(--skm-text-heading); }
.skm-jet__pill--accent { background: rgba(43,127,224,.06); border-color: rgba(43,127,224,.2); color: var(--skm-blue); }

/* How it works */
.skm-jet__how { padding: 60px 0 52px; }
.skm-jet__how-head { text-align: center; margin-bottom: 48px; }
.skm-jet__how-head .skm-jet__eyebrow { text-align: center; }
/* Real bug found live: this was a bare `.skm-jet__h2.skm-jet__h2` selector
   (double-class specificity hack) with no ancestor scope, so it centered
   EVERY .skm-jet__h2 on the page — including "Tell us about your aircraft"
   in the unrelated Get Started section below, which should stay left-
   aligned like its eyebrow/paragraph siblings. Scope it to this section. */
.skm-jet__how-head .skm-jet__h2 { text-align: center; margin: 0 auto 12px; }
.skm-jet__how-sub { font-size: 16px; color: rgba(13,31,51,.5); max-width: 520px; margin: 0 auto; line-height: 1.65; }
.skm-jet__steps { display: grid; grid-template-columns: repeat(5,1fr); gap: 0; position: relative; }
.skm-jet__steps-line { position: absolute; top: 28px; left: 10%; right: 10%; height: 2px; background: linear-gradient(90deg,var(--skm-border),var(--skm-blue) 50%,var(--skm-border)); z-index: 0; }
.skm-jet__step { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 16px; position: relative; z-index: 1; }
.skm-jet__step-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--skm-navy); border: 3px solid var(--skm-blue); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; flex-shrink: 0; color: var(--skm-blue); }
.skm-jet__step--last .skm-jet__step-icon { background: var(--skm-blue); }
.skm-jet__step-title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 6px; }
.skm-jet__step-desc { font-size: 13px; color: rgba(13,31,51,.5); line-height: 1.6; }

/* Fee structure */
.skm-jet__fees { background: #fff; border-top: 1px solid var(--skm-border); border-bottom: 1px solid var(--skm-border); padding: 52px 0; }
.skm-jet__fees-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.skm-jet__fees-copy { font-size: 15px; color: rgba(13,31,51,.55); line-height: 1.7; margin-bottom: 24px; }
.skm-jet__fees-list { list-style: none; display: flex; flex-direction: column; gap: 14px; }
.skm-jet__fees-list li { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--skm-text-heading); }
.skm-jet__check { width: 22px; height: 22px; border-radius: 50%; background: var(--skm-success); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #fff; }
.skm-jet__feecard { background: var(--skm-navy); border-radius: 16px; padding: 32px 36px; }
.skm-jet__feecard-lbl { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.4); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 20px; }
.skm-jet__feecard-rows { display: flex; flex-direction: column; gap: 18px; margin-bottom: 28px; }
.skm-jet__feecard-row { display: flex; align-items: center; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.skm-jet__feecard-row--last { padding-bottom: 0; border-bottom: none; }
.skm-jet__feecard-tier { font-size: 14px; font-weight: 500; color: #fff; margin-bottom: 3px; }
.skm-jet__feecard-note { font-size: 12px; color: rgba(255,255,255,.4); }
.skm-jet__feecard-pct { font-size: 24px; font-weight: 700; color: var(--skm-blue); letter-spacing: -.02em; }
.skm-jet__feecard-note-box { background: rgba(43,127,224,.15); border: 1px solid rgba(43,127,224,.3); border-radius: 8px; padding: 13px 16px; font-size: 13px; color: rgba(255,255,255,.65); line-height: 1.6; }

/* Enquiry */
.skm-jet__enquiry { background: var(--skm-navy); padding: 60px 0; }
.skm-jet__enquiry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.skm-jet__enquiry-copy { font-size: 15px; color: rgba(255,255,255,.5); line-height: 1.7; margin-bottom: 28px; }
.skm-jet__contact-row { display: flex; gap: 12px; align-items: flex-start; }
.skm-jet__contact-icon { width: 36px; height: 36px; border-radius: 8px; background: rgba(43,127,224,.2); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; color: var(--skm-blue); }
.skm-jet__contact-title { font-size: 14px; font-weight: 500; color: #fff; margin-bottom: 3px; }
.skm-jet__contact-sub { font-size: 13px; color: rgba(255,255,255,.45); }
.skm-jet__formcard { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 14px; padding: 28px; }
.skm-jet__form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.skm-jet__form-row label, .skm-jet__form-field, .skm-jet__form-lbl { display: block; font-size: 12px; font-weight: 500; color: rgba(255,255,255,.55) !important; margin-bottom: 16px; }
.skm-jet__form-row label { margin-bottom: 0; }
.skm-jet__form-row input, .skm-jet__form-field textarea {
	display: block; width: 100%; margin-top: 7px; padding: 11px 14px; border: 1px solid rgba(255,255,255,.15); border-radius: 8px; background: rgba(255,255,255,.07); font-size: 14px; color: #fff; font-family: var(--skm-font);
}
.skm-jet__form-field textarea { resize: none; line-height: 1.55; }
.skm-jet__form-row input::placeholder, .skm-jet__form-field textarea::placeholder { color: rgba(255,255,255,.35); }
.skm-jet__form-row input:focus, .skm-jet__form-field textarea:focus { outline: none; border-color: var(--skm-blue) !important; box-shadow: 0 0 0 3px rgba(43,127,224,.1); }
.skm-jet__optional { font-weight: 400; color: rgba(255,255,255,.3); }
.skm-jet__roles { display: flex; gap: 8px; margin-top: 7px; }
.skm-jet__role { position: relative; flex: 1; margin: 0; }
.skm-jet__role input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.skm-jet__role span { display: block; text-align: center; padding: 10px 0; border: 1px solid rgba(255,255,255,.15); border-radius: 8px; font-size: 13px; font-weight: 400; color: rgba(255,255,255,.5); cursor: pointer; }
.skm-jet__role input:checked + span { border-color: var(--skm-blue); background: rgba(43,127,224,.2); color: #fff; font-weight: 500; }
.skm-jet__role:hover span { border-color: rgba(255,255,255,.4); }
.skm-jet__submit, .skm-jet__submit:hover, .skm-jet__submit:focus { display: block; width: 100%; padding: 13px; background: var(--skm-blue) !important; color: #fff !important; border: none; border-radius: 9px; font-size: 15px; font-weight: 600; cursor: pointer; margin-top: 4px; }
.skm-jet__submit:hover, .skm-jet__submit:focus { background: var(--skm-blue-hover) !important; }
.skm-jet__form-consent { font-size: 11px; color: rgba(255,255,255,.3); margin-top: 12px; text-align: center; line-height: 1.6; }
.skm-jet__form-consent a { color: rgba(255,255,255,.45); }
.skm-jet__form-consent a:hover { color: rgba(255,255,255,.7); }
.skm-jet__form-error { background: rgba(192,57,43,.15); border: 1px solid rgba(192,57,43,.3); color: #F0B4AC; padding: 10px 14px; border-radius: 8px; font-size: 13px; margin-bottom: 16px; }
.skm-jet__form-success { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 20px; }
.skm-jet__form-success-icon { width: 44px; height: 44px; background: var(--skm-blue); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; }
.skm-jet__form-success h3 { font-size: 18px; font-weight: 600; color: #fff; }
.skm-jet__form-success p { font-size: 14px; color: rgba(255,255,255,.6); line-height: 1.6; }

@media (max-width: 900px) {
	.skm-jet__h1 { font-size: 32px; }
	.skm-jet__steps { grid-template-columns: 1fr; gap: 28px; }
	.skm-jet__steps-line { display: none; }
	.skm-jet__fees-grid, .skm-jet__enquiry-grid { grid-template-columns: 1fr; }
	.skm-jet__form-row { grid-template-columns: 1fr; }
	.skm-jet__types-inner { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* ============================================================
   ADVERTISER DASHBOARD (demo preview)
   ============================================================ */
body.skm-page-advertiser-dashboard #content.site-content { padding: 0; }
body.skm-page-advertiser-dashboard #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-advertiser-dashboard .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-advertiser-dashboard #primary, body.skm-page-advertiser-dashboard .content-area { width: 100%; max-width: none; margin: 0; padding: 0 !important; float: none; }
body.skm-page-advertiser-dashboard .entry-content-wrap { padding: 0 !important; margin: 0 !important; }
body.skm-page-advertiser-dashboard .entry-content { margin: 0 !important; }
body.skm-page-advertiser-dashboard .entry-header, body.skm-page-advertiser-dashboard .entry-media { display: none; }

.skm-addash__demo-banner { display: flex; align-items: flex-start; gap: 10px; background: #FDF4E7; border-bottom: 1px solid rgba(229,193,122,.5); padding: 12px 24px; }
.skm-addash__demo-banner svg { flex-shrink: 0; margin-top: 2px; }
.skm-addash__demo-banner p { font-size: 13px; color: #6B3E0E; line-height: 1.5; max-width: var(--skm-container); margin: 0 auto; }

.skm-addash__topnav { background: var(--skm-navy); border-bottom: 1px solid rgba(255,255,255,.1); }
.skm-addash__topnav-inner { height: 56px; display: flex; align-items: center; justify-content: space-between; }
.skm-addash__tabs { display: flex; gap: 4px; }
.skm-addash__tab { padding: 8px 14px; font-size: 14px; font-weight: 400; color: rgba(255,255,255,.55); border-radius: 6px; }
.skm-addash__tab.is-active { font-weight: 500; color: #fff; background: rgba(255,255,255,.1); }
.skm-addash__topnav-right { display: flex; align-items: center; gap: 10px; }
.skm-addash__account { display: flex; align-items: center; gap: 6px; padding: 7px 14px; border: 1px solid rgba(255,255,255,.2); border-radius: 7px; background: transparent; color: rgba(255,255,255,.7); font-size: 13px; }
.skm-addash__topnav-right a { font-size: 13px; color: rgba(255,255,255,.5); }
.skm-addash__topnav-right a:hover { color: rgba(255,255,255,.8); }
/* Real bug found via audit: no wrap on this row, and the account name
   (real display_name, unbounded length — "Nauman Shahid" already wraps
   onto 2 lines at 375px) squeezes against the tabs and back link with
   nowhere to go. */
@media (max-width: 640px) {
	.skm-addash__topnav-inner { height: auto; flex-wrap: wrap; padding: 10px 0; gap: 8px; }
	.skm-addash__account { max-width: 140px !important; overflow: hidden !important; text-overflow: ellipsis; white-space: nowrap; display: inline-block !important; }
}

.skm-addash__body { padding: 28px 0 72px; }
.skm-addash__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; flex-wrap: wrap; gap: 12px; }
.skm-addash__head h1 { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.02em; margin-bottom: 4px; }
.skm-addash__head p { font-size: 13px; color: rgba(13,31,51,.45); }
.skm-addash__head-right { display: flex; align-items: center; gap: 10px; }
.skm-addash__range { display: flex; background: #fff; border: 1px solid var(--skm-border); border-radius: 8px; overflow: hidden; }
.skm-addash__range a, .skm-addash__range a:hover { display: block; padding: 8px 14px; font-size: 13px; font-weight: 400; color: rgba(13,31,51,.5) !important; border: none; background: transparent !important; }
.skm-addash__range a.is-active, .skm-addash__range a.is-active:hover { font-weight: 600; color: #fff !important; background: var(--skm-navy) !important; }
.skm-addash__newcampaign, .skm-addash__newcampaign:hover { display: flex; align-items: center; gap: 6px; background: var(--skm-blue) !important; color: #fff !important; border-radius: 8px; padding: 9px 18px; font-size: 13px; font-weight: 500; }
.skm-addash__newcampaign:hover { background: var(--skm-blue-hover) !important; }
.skm-addash__empty { background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; padding: 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 24px; }
.skm-addash__empty p { font-size: 14px; color: var(--skm-text-heading); max-width: 480px; }
.skm-addash__audnote { font-size: 11px; color: rgba(13,31,51,.4); line-height: 1.5; margin-top: 14px; padding-top: 14px; border-top: 1px solid #F0F2F4; }

/* ============================================================
   AD ZONES (real ad-serving placements)
   ============================================================ */
.skm-adzone-wrap { margin-bottom: 20px; }
.skm-adzone { display: block; text-decoration: none; position: relative; }
.skm-adzone__tag { display: inline-block; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: rgba(13,31,51,.4); margin-bottom: 6px; }

.skm-adzone--banner { background: var(--skm-surface); border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 14px 18px; }
.skm-adzone--banner img { width: 100%; max-height: 110px; object-fit: cover; border-radius: 8px; display: block; }
.skm-adzone__headline { display: block; font-size: 15px; font-weight: 600; color: var(--skm-text-heading); }

.skm-adzone--featured { background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 14px; }
.skm-adzone--featured .skm-adzone__tag { display: block; }
.skm-adzone__img { width: 100%; height: 100px; border-radius: 8px; background-size: cover; background-position: center; background-color: var(--skm-surface-2); margin-bottom: 10px; }
.skm-adzone__title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 3px; }
.skm-adzone__body { font-size: 12px; color: rgba(13,31,51,.5); }

.skm-adzone--takeover { background: var(--skm-navy); border-radius: 14px; overflow: hidden; display: flex; align-items: center; min-height: 140px; position: relative; }
.skm-adzone--takeover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.skm-adzone__copy { position: relative; padding: 28px 32px; z-index: 1; }
.skm-adzone__copy .skm-adzone__tag { color: #7EB8F0; }
.skm-adzone__copy h3 { font-size: 22px; font-weight: 700; color: #fff !important; letter-spacing: -.02em; margin-bottom: 6px; }
.skm-adzone__copy p { font-size: 14px; color: rgba(255,255,255,.6); }

/* New campaign submission form */
body.skm-page-new-ad-campaign .entry-header, body.skm-page-new-ad-campaign .entry-media { display: none; }
body.skm-page-new-ad-campaign #content.site-content { padding: 0; }
body.skm-page-new-ad-campaign #content .container { max-width: none; width: 100%; padding: 0; margin: 0; }
body.skm-page-new-ad-campaign .bb-grid.site-content-grid { display: block; margin: 0; }
body.skm-page-new-ad-campaign #primary, body.skm-page-new-ad-campaign .content-area { width: 100%; max-width: none; margin: 0; padding: 0 !important; float: none; }
body.skm-page-new-ad-campaign .entry-content-wrap { padding: 0 !important; margin: 0 !important; }
body.skm-page-new-ad-campaign .entry-content { margin: 0 !important; }
body.skm-page-new-ad-campaign #content,
body.skm-page-new-ad-campaign #primary,
body.skm-page-new-ad-campaign .content-area,
body.skm-page-new-ad-campaign article,
body.skm-page-new-ad-campaign .entry-content,
body.skm-page-new-ad-campaign .entry-content-wrap { background: var(--skm-surface) !important; }
body.skm-page-new-ad-campaign #content,
body.skm-page-new-ad-campaign #content .container,
body.skm-page-new-ad-campaign .bb-grid.site-content-grid,
body.skm-page-new-ad-campaign .content-area,
body.skm-page-new-ad-campaign .site-main,
body.skm-page-new-ad-campaign article,
body.skm-page-new-ad-campaign .entry-content { display: flex !important; flex-direction: column; }
body.skm-page-new-ad-campaign #content .container,
body.skm-page-new-ad-campaign .bb-grid.site-content-grid,
body.skm-page-new-ad-campaign .content-area,
body.skm-page-new-ad-campaign .site-main,
body.skm-page-new-ad-campaign article,
body.skm-page-new-ad-campaign .entry-content,
body.skm-page-new-ad-campaign .skm-newcamp-page { flex: 1 1 auto !important; min-height: 0; }

.skm-newcamp-page { background: var(--skm-surface); padding: 48px 24px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; }
.skm-newcamp__card { max-width: 640px; margin-inline: auto; background: #fff; border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 36px 40px; box-shadow: var(--skm-shadow-card); }
.skm-newcamp__card--narrow { max-width: 480px; text-align: center; }
.skm-newcamp__icon { width: 48px; height: 48px; border-radius: 12px; background: rgba(43,127,224,.1); color: var(--skm-blue); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.skm-newcamp__card--narrow .skm-newcamp__icon { margin-inline: auto; }
.skm-newcamp__icon--locked { background: rgba(13,31,51,.06); color: var(--skm-navy); }
.skm-newcamp__card h1 { font-size: 24px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 14px; letter-spacing: -.02em; }
.skm-newcamp__tierbar { margin-bottom: 18px; }
.skm-newcamp__sub { font-size: 14px; color: rgba(13,31,51,.5); margin-bottom: 24px; line-height: 1.6; }
.skm-newcamp__sub a { color: var(--skm-blue); font-weight: 500; }
.skm-newcamp__empty { padding-top: 6px; }
.skm-newcamp__empty .skm-newcamp__icon { margin-inline: auto; margin-bottom: 16px; }

.skm-newcamp__form { display: flex; flex-direction: column; gap: 16px; text-align: left; }
.skm-newcamp__section { padding-bottom: 20px; margin-bottom: 4px; border-bottom: 1px solid #F0F2F4; display: flex; flex-direction: column; gap: 16px; }
.skm-newcamp__section--last { border-bottom: none; padding-bottom: 0; }
.skm-newcamp__section-label { font-size: 11px; font-weight: 600; color: rgba(13,31,51,.4); text-transform: uppercase; letter-spacing: .07em; margin: -4px 0 2px; }
.skm-newcamp__form label { display: block; font-size: 13px; font-weight: 500; color: var(--skm-text-heading); }
.skm-newcamp__form input, .skm-newcamp__form select, .skm-newcamp__form textarea {
	display: block; width: 100%; margin-top: 6px; padding: 10px 12px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 14px; color: var(--skm-text-heading); background: #fff; font-family: var(--skm-font);
}
.skm-newcamp__form input:focus, .skm-newcamp__form select:focus, .skm-newcamp__form textarea:focus { outline: none; border-color: var(--skm-blue); box-shadow: 0 0 0 3px rgba(43,127,224,.1); }
.skm-newcamp__form textarea { resize: none; }
.skm-newcamp__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.skm-newcamp__checks { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; }
.skm-newcamp__checks label { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 400; }
.skm-newcamp__success { text-align: center; padding: 40px 20px; }
.skm-newcamp__success h2 { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 10px; }
.skm-newcamp__success p { font-size: 14px; color: rgba(13,31,51,.55); margin-bottom: 20px; }
@media (max-width: 700px) {
	.skm-newcamp__row { grid-template-columns: 1fr; }
	.skm-newcamp__card { padding: 28px 24px; }
}

.skm-addash__stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-bottom: 20px; }
.skm-addash__stat { background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; padding: 20px; }
.skm-addash__stat-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.skm-addash__stat-icon { width: 34px; height: 34px; background: #EEF5FD; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--skm-blue); }
.skm-addash__delta { font-size: 11px; font-weight: 500; padding: 2px 8px; border-radius: 10px; background: rgba(31,138,91,.08); color: var(--skm-success); display: flex; align-items: center; gap: 3px; }
.skm-addash__delta svg { width: 8px; height: 8px; }
.skm-addash__delta--neutral { background: rgba(13,31,51,.05); color: rgba(13,31,51,.45); }
.skm-addash__stat-n { font-size: 28px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.03em; margin-bottom: 2px; }
.skm-addash__stat-l { font-size: 12px; color: rgba(13,31,51,.45); }
.skm-addash__stat-l span { color: rgba(13,31,51,.3); }

.skm-addash__charts { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; margin-bottom: 20px; }
.skm-addash__card { background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; padding: 20px 22px; }
.skm-addash__card h2 { font-size: 15px; font-weight: 600; color: var(--skm-text-heading); }
.skm-addash__card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.skm-addash__card-head p { font-size: 12px; color: rgba(13,31,51,.45); margin-top: 2px; }
.skm-addash__metricselect { display: flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--skm-border); border-radius: 7px; font-size: 12px; color: var(--skm-text-heading); background: #fff; }
.skm-addash__bars { display: flex; align-items: flex-end; gap: 8px; height: 150px; }
.skm-addash__bars-y { display: flex; flex-direction: column; justify-content: space-between; height: 100%; padding-bottom: 16px; flex-shrink: 0; font-size: 10px; color: rgba(13,31,51,.35); }
.skm-addash__bars-track { flex: 1; display: flex; align-items: flex-end; gap: 3px; height: 100%; }
.skm-addash__barcol { display: flex; flex-direction: column; align-items: center; flex: 1; height: 100%; justify-content: flex-end; gap: 3px; }
.skm-addash__bar { width: 100%; border-radius: 3px 3px 0 0; background: #B5D4F4; position: relative; }
.skm-addash__bar.is-today { background: var(--skm-blue); }
.skm-addash__bar-val { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 10px; font-weight: 600; color: var(--skm-blue); margin-bottom: 4px; }
.skm-addash__bar-lbl { font-size: 8px; color: rgba(13,31,51,.35); }
.skm-addash__card-sub { font-size: 12px; color: rgba(13,31,51,.45); margin-bottom: 18px; }
.skm-addash__donutrow { display: flex; align-items: center; gap: 20px; margin-bottom: 18px; }
.skm-addash__donut { width: 80px; height: 80px; border-radius: 50%; background: conic-gradient(#2B7FE0 0% 42%,#1F8A5B 42% 68%,#854F0B 68% 82%,#E2E6EA 82% 100%); flex-shrink: 0; position: relative; }
.skm-addash__donut-hole { position: absolute; inset: 14px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; }
.skm-addash__donut-hole span { font-size: 11px; font-weight: 700; color: var(--skm-text-heading); }
.skm-addash__donut-legend { display: flex; flex-direction: column; gap: 8px; }
.skm-addash__donut-legend div { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--skm-text-heading); }
.skm-addash__donut-legend b { color: rgba(13,31,51,.45); font-weight: 400; margin-left: 3px; }
.skm-addash__dot { width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0; }
.skm-addash__regions-lbl { font-size: 12px; font-weight: 600; color: rgba(13,31,51,.5); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.skm-addash__regions { display: flex; flex-direction: column; gap: 7px; }
.skm-addash__regions > div { display: flex; align-items: center; gap: 8px; }
.skm-addash__regions p { font-size: 12px; color: var(--skm-text-heading); width: 100px; flex-shrink: 0; margin: 0; }
.skm-addash__regionbar { flex: 1; height: 6px; background: #EEF5FD; border-radius: 3px; }
.skm-addash__regionbar div { height: 100%; background: var(--skm-blue); border-radius: 3px; }
.skm-addash__regions span { font-size: 12px; color: rgba(13,31,51,.5); width: 30px; text-align: right; flex-shrink: 0; }

.skm-addash__campaigns { padding: 0; overflow: hidden; margin-bottom: 24px; }
.skm-addash__campaigns-head { padding: 18px 24px 14px; border-bottom: 1px solid #F0F2F4; display: flex; align-items: center; justify-content: space-between; }
.skm-addash__viewall { font-size: 13px; font-weight: 500; color: var(--skm-blue); }
.skm-addash__row { display: grid; grid-template-columns: 1.6fr 110px 100px 80px 80px 90px 110px; gap: 14px; align-items: center; padding: 14px 24px; border-bottom: 1px solid #F5F7FA; }
.skm-addash__row--head { padding: 10px 24px; border-bottom: 1px solid var(--skm-border); background: var(--skm-surface); }
.skm-addash__row--head p { font-size: 11px; font-weight: 600; color: rgba(13,31,51,.45); text-transform: uppercase; letter-spacing: .05em; margin: 0; white-space: nowrap; }
.skm-addash__row.is-paused { opacity: .65; }
.skm-addash__row p { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); margin: 0; }
.skm-addash__camp-name { margin-bottom: 2px !important; }
.skm-addash__camp-meta { font-size: 11px !important; font-weight: 400 !important; color: rgba(13,31,51,.4) !important; }
.skm-addash__format { font-size: 11px; font-weight: 500; padding: 3px 8px; border-radius: 5px; background: #EEF5FD; color: #185FA5; width: fit-content; }
.skm-addash__row.is-paused .skm-addash__format { background: #F0F2F4; color: rgba(13,31,51,.5); }
.skm-addash__ctr { font-weight: 600 !important; color: var(--skm-success) !important; }
.skm-addash__row.is-paused .skm-addash__ctr { color: rgba(13,31,51,.6) !important; }
.skm-addash__spend { font-weight: 600 !important; }
.skm-addash__status { font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 5px; width: fit-content; }
.skm-addash__status--live { background: rgba(31,138,91,.1); color: var(--skm-success); }
.skm-addash__status--paused, .skm-addash__status--ended { background: rgba(13,31,51,.06); color: rgba(13,31,51,.5); }
.skm-addash__tierbar { background: rgba(43,127,224,.06); border: 1px solid rgba(43,127,224,.2); border-radius: 8px; padding: 10px 16px; font-size: 13px; color: var(--skm-text-heading); margin-bottom: 20px; }
.skm-addash__tierbar--none { background: #FDF4E7; border-color: rgba(229,193,122,.5); color: #6B3E0E; }
.skm-addash__tierbar a { color: var(--skm-blue); font-weight: 500; }
.skm-addash__tierbar--none a { color: #854F0B; }

.skm-addash__cta { background: var(--skm-navy); border-radius: 12px; padding: 26px 30px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.skm-addash__cta-title { font-size: 16px; font-weight: 600; color: #fff; margin-bottom: 6px; }
.skm-addash__cta-sub { font-size: 13px; color: rgba(255,255,255,.5); max-width: 560px; }
.skm-addash__cta-btns { display: flex; gap: 10px; flex-shrink: 0; }
.skm-addash__btn-ghost, .skm-addash__btn-ghost:hover { padding: 11px 22px; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; font-size: 14px; font-weight: 500; color: rgba(255,255,255,.7) !important; }
.skm-addash__btn-ghost:hover { border-color: rgba(255,255,255,.4); color: #fff !important; }
.skm-addash__btn-primary, .skm-addash__btn-primary:hover { display: flex; align-items: center; gap: 8px; background: var(--skm-blue) !important; color: #fff !important; border-radius: 8px; padding: 11px 22px; font-size: 14px; font-weight: 500; }
.skm-addash__btn-primary:hover { background: var(--skm-blue-hover) !important; }

@media (max-width: 1000px) {
	.skm-addash__stats { grid-template-columns: repeat(2,1fr); }
	.skm-addash__charts { grid-template-columns: 1fr; }
	.skm-addash__row, .skm-addash__row--head { grid-template-columns: 1.5fr 90px 70px 70px 70px 80px 90px; gap: 8px; padding: 12px 16px; }
	.skm-addash__cta { flex-direction: column; align-items: flex-start; }
}
/* Real bug found via audit: even the 1000px-narrowed grid above is still
   ~470px of fixed columns plus the flexible campaign-name column — never
   collapses further, and nothing wraps the rows in overflow-x:auto (unlike
   .skm-billing__table-wrap, which handles the identical situation
   correctly). Rows clip on real phones instead of scrolling. */
@media (max-width: 640px) {
	.skm-addash__campaigns { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.skm-addash__row, .skm-addash__row--head { min-width: 640px; }
}

/* ==========================================================================
   MODULE 1 — Sign up / Sign in / Forgot / Reset / Sign out / Onboarding
   wp-login.php screens (login, lostpassword, resetpass, loggedout): real
   BuddyBoss split-screen system, restyled + per-screen content swapped.
   ========================================================================== */

body.login { background: var(--skm-surface) !important; }
body.login #login { padding-top: 0; }

/* The uploaded Custom Logo image bundles a tagline strip below the icon —
   and the icon's own bottom edge overlaps the tagline's vertical band in
   the source SVG, so no clean crop (clip-path or overflow) can isolate
   icon+wordmark without also clipping the icon. Replaced the <img> outright
   via JS with the real .skm-logo markup (same icon/text as the site
   header) instead of fighting the bundled asset — see
   inc/skymarket-auth-pages.php skymarket_replace_login_logo(). */
.bs-cs-login-logo, .bs-cs-login-title { display: none !important; }
a.skm-logo { display: flex !important; height: auto !important; width: auto !important; overflow: visible !important; background-image: none !important; }
.skm-real-logo { display: flex !important; align-items: center; gap: 10px; }
/* Mobile header logo — was BuddyBoss's own separate, smaller "Mobile Logo"
   Customizer image, now the same real .skm-logo markup desktop uses.
   Sized up (not just matched) per explicit request — a phone screen is
   viewed much closer than a desktop monitor, so the same literal pixel
   size as desktop reads smaller in practice. */
.mobile-logo-wrapper a.skm-logo .skm-logo__box { width: 40px !important; height: 40px !important; }
.mobile-logo-wrapper a.skm-logo .skm-logo__box svg { width: 23px !important; height: 23px !important; }
.mobile-logo-wrapper a.skm-logo .skm-logo__name { font-size: 21px !important; }

/* Brand-blue everywhere on the login screens, not BuddyBoss's default --bb-primary-button-* blue */
body.login #wp-submit,
body.login .skm-auth-card__btn--primary,
body.login .skm-onboarding__btn:not(.skm-onboarding__btn--ghost) { background: var(--skm-blue) !important; border-color: var(--skm-blue) !important; }
body.login #wp-submit:hover { background: var(--skm-blue-hover) !important; border-color: var(--skm-blue-hover) !important; }
body.login a, body.login .login-heading span a { color: var(--skm-blue); }
body.login .bs-sign-in, body.login p#nav a, body.login p#backtoblog a { color: var(--skm-text-muted); }
body.login .login-heading h2 { color: var(--skm-text-heading); font-weight: 700; letter-spacing: -.02em; font-size: 32px !important; line-height: 1.15 !important; }

/* Split hero panel (left rail) — solid navy, no photo, decorative circles, only on the plain sign-in screen */
.login-split { background: var(--skm-navy) !important; background-image: none !important; overflow: hidden; position: relative; }
.login-split::before, .login-split::after { content: ''; position: absolute; border-radius: 50%; background: rgba(255,255,255,.04); }
.login-split::before { width: 420px; height: 420px; right: -160px; top: -120px; }
.login-split::after { width: 320px; height: 320px; left: -120px; bottom: -100px; }
.login-split .split-overlay { display: none; }
.login-split__entry { position: relative; z-index: 1; }
.login-split__entry h1 { font-size: 30px; font-weight: 700; letter-spacing: -.02em; line-height: 1.25; margin-bottom: 14px; }
.login-split__entry p { font-size: 15px; color: rgba(255,255,255,.6); line-height: 1.6; max-width: 360px; }

/* Login left panel: login-specific heading block */
.skm-login__hd { position: relative; z-index: 1; }
.skm-login__hd-eyebrow { font-size: 11px !important; font-weight: 600 !important; letter-spacing: .12em; text-transform: uppercase; color: #2B7FE0 !important; margin-bottom: 14px !important; max-width: none !important; }
.skm-login__hd-h2 { font-size: 28px !important; font-weight: 700 !important; color: #fff !important; line-height: 1.22 !important; letter-spacing: -.02em; margin-bottom: 14px !important; }
.skm-login__hd-sub { font-size: 14px !important; font-weight: 300 !important; color: rgba(255,255,255,.5) !important; line-height: 1.65 !important; max-width: none !important; margin: 0 !important; }

.skm-login-feats { position: relative; z-index: 1; margin-top: 32px !important; display: flex; flex-direction: column; gap: 16px; max-width: none; }
.skm-login-feat { display: flex; gap: 14px; align-items: center; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); border-radius: 10px; padding: 16px 18px; }
.skm-login-feat__icon { width: 36px; height: 36px; flex-shrink: 0; background: rgba(43,127,224,.2); border-radius: 9px; display: flex; align-items: center; justify-content: center; }
.skm-login-feat .skm-login-feat__title { font-size: 13px !important; font-weight: 600 !important; color: rgba(255,255,255,.85) !important; margin: 0 0 2px !important; max-width: none !important; line-height: 1.3 !important; }
.skm-login-feat .skm-login-feat__desc { font-size: 12px !important; color: rgba(255,255,255,.4) !important; line-height: 1.4 !important; max-width: none !important; margin: 0 !important; }
.skm-login-feat strong { display: block; font-size: 13px !important; font-weight: 600 !important; color: rgba(255,255,255,.85) !important; margin-bottom: 2px !important; }
.skm-login-feat span:last-child { font-size: 12px !important; color: rgba(255,255,255,.4) !important; line-height: 1.4 !important; }
/* Prevent .login-split__entry p from bleeding into feature cards */
.skm-login-feats p { font-size: inherit !important; color: inherit !important; max-width: none !important; line-height: inherit !important; }

/* Auth nav bar (login + register pages) */
.skm-auth-nav { background: #fff; border-bottom: 1px solid #E2E6EA; height: 64px; display: flex; align-items: center; flex-shrink: 0; position: relative; z-index: 10; }
.skm-auth-nav__inner { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 40px; display: flex; align-items: center; justify-content: space-between; }
@media (max-width: 600px) {
    .skm-auth-nav__inner { padding: 0 20px; }
    .skm-auth-nav__hint { display: none !important; }
    .skm-auth-nav__cta { font-size: 13px; padding: 6px 14px; white-space: nowrap; }
}
.skm-auth-nav__logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.skm-auth-nav__logo-icon { width: 30px; height: 30px; background: #2B7FE0; border-radius: 6px; display: flex; align-items: center; justify-content: center; }
.skm-auth-nav__logo-text { font-size: 16px; font-weight: 600; color: #0D1F33; letter-spacing: -.01em; }
.skm-auth-nav__logo-text span { color: #2B7FE0; }
.skm-auth-nav__right { display: flex; align-items: center; gap: 10px; }
.skm-auth-nav__hint { font-size: 14px; color: rgba(13,31,51,.45); white-space: nowrap; }
.skm-auth-nav__cta { font-size: 14px; font-weight: 500; color: #2B7FE0; padding: 7px 16px; border: 1px solid rgba(43,127,224,.35); border-radius: 8px; text-decoration: none; transition: all .12s; }
.skm-auth-nav__cta:hover { background: rgba(43,127,224,.06); border-color: rgba(43,127,224,.5); }

/* "or sign in/up with email" divider */
.skm-auth-divider { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; }
.skm-auth-divider::before, .skm-auth-divider::after { content: ''; flex: 1; height: 1px; background: #E2E6EA; }
.skm-auth-divider span { font-size: 12px; color: rgba(13,31,51,.38); font-weight: 500; white-space: nowrap; }

/* Login form right panel overrides */
body.login-action-login #user_label,
body.login-action-login #pass_label { display: block !important; font-size: 13px !important; font-weight: 500 !important; color: #0D1F33 !important; margin-bottom: 7px !important; position: relative !important; height: auto !important; }
body.login-action-login #user_label .screen-reader-text,
body.login-action-login #pass_label .screen-reader-text { position: static !important; width: auto !important; height: auto !important; overflow: visible !important; clip: auto !important; clip-path: none !important; margin: 0 !important; padding: 0 !important; white-space: normal !important; display: inline !important; }
body.login-action-login #loginform .input { padding: 10px 14px !important; border: 1px solid #E2E6EA !important; border-radius: 8px !important; font-size: 15px !important; color: #0D1F33 !important; width: 100% !important; box-sizing: border-box !important; }
body.login-action-login .login-remember label { font-size: 13px; color: rgba(13,31,51,.55); }
body.login-action-login #wp-submit { border-radius: 8px !important; font-size: 15px !important; font-weight: 500 !important; padding: 12px !important; line-height: 1.2 !important; height: auto !important; }
body.login-action-login .login-heading > span { display: none !important; }
body.login-action-login p#nav,
body.login-action-login p#backtoblog { display: none !important; }
/* Hide BuddyBoss label-switch icon (bb-icons ::after in password label) */
body.login-action-login .label-switch { display: none !important; }
/* Remove any BuddyBoss background-image icons on inputs */
body.login-action-login #loginform .input { background-image: none !important; }
/* Hide bb-icons ::before on labels and .wp-pwd — all absolutely positioned at left:10px inside input fields */
body.login-action-login #user_label::before,
body.login-action-login #pass_label::before,
body.login-action-login .wp-pwd::before { display: none !important; content: none !important; }
/* Gap between Google button and divider */
body.login-action-login .skm-auth-divider { margin-top: 20px !important; }
/* Hide WordPress privacy-policy link BuddyBoss renders in login footer */
body.login-action-login .privacy-policy-page-link { display: none !important; }
.skm-login-footer-link { font-size: 13px; text-align: center; color: rgba(13,31,51,.4); margin-top: 20px; }
.skm-login-footer-link a { color: #2B7FE0; font-weight: 500; text-decoration: none; }
.skm-login-footer-link a:hover { text-decoration: underline; }
.skm-login-subtitle { font-size: 14px !important; color: rgba(13,31,51,.5) !important; margin: -6px 0 24px !important; max-width: none !important; }

/* Nav bar already carries the logo — the form-panel copy is a redundant duplicate */
body.login-action-login .skm-fresh-logo,
body.skm-page-register .skm-fresh-logo { display: none !important; }

/* Register: hide BuddyBoss native heading/logo/legal, fix button */
body.skm-page-register img.bb-logo { display: none !important; }
body.skm-page-register .entry-header { display: none !important; }
body.skm-page-register p.register-privacy-info { display: none !important; }
body.skm-page-register #signup_submit { line-height: 1.2 !important; height: auto !important; }
/* BuddyBoss JS re-hides both sections after our wp_footer script; CSS !important wins over inline style (no !important) */
body.skm-page-register #basic-details-section,
body.skm-page-register #profile-details-section { display: block !important; }

/* Register: injected heading block */
.skm-reg-heading { margin-bottom: 24px; }
.skm-reg-h1 { font-size: 26px !important; font-weight: 700 !important; color: #0D1F33 !important; letter-spacing: -.02em; line-height: 1.2 !important; margin-bottom: 8px !important; }

/* Register: "Free forever..." sub text */
.skm-auth-reg-sub { font-size: 15px; color: rgba(13,31,51,.45); margin: -2px 0 28px !important; }

/* Centered single-card mode: forgot password / reset password / just-logged-out — hide the split panel entirely.
   !important required: parent theme's "body.login.login-split-page .login-split{display:flex}" (3 classes) and
   core's "#login{width:320px}" (ID) both out-specify a plain class override, same bug class as elsewhere this build. */
body.login-action-lostpassword .login-split,
body.login-action-resetpass .login-split,
body.login-action-rp .login-split,
body.skm-loggedout .login-split,
body.skm-checkemail .login-split { display: none !important; }
body.login-action-lostpassword #login,
body.login-action-resetpass #login,
body.login-action-rp #login,
body.skm-loggedout #login,
body.skm-checkemail #login { position: static !important; left: auto !important; top: auto !important; transform: none !important; width: 100% !important; max-width: 440px !important; height: auto !important; min-height: 0 !important; margin: 64px auto !important; background: #fff; border: 1px solid var(--skm-border); border-radius: 16px; padding: 44px 40px !important; box-shadow: 0 1px 2px rgba(13,31,51,.04); display: block !important; }
body.login-action-lostpassword h1.wp-login-logo, body.login-action-resetpass h1.wp-login-logo, body.skm-loggedout h1.wp-login-logo, body.skm-checkemail h1.wp-login-logo { display: none; }
body.login-action-lostpassword #user_login,
body.login-action-resetpass input,
body.login-action-rp input,
body.login-action-lostpassword #wp-submit,
body.login-action-resetpass #wp-submit,
body.login-action-rp #wp-submit { width: 100% !important; box-sizing: border-box; }

/* Google sign-in only makes sense on the actual sign-in screen, not forgot/reset/logged-out */
body.login-action-lostpassword .googlesitekit-sign-in-with-google__frontend-output-button,
body.login-action-resetpass .googlesitekit-sign-in-with-google__frontend-output-button,
body.login-action-rp .googlesitekit-sign-in-with-google__frontend-output-button,
body.skm-loggedout .googlesitekit-sign-in-with-google__frontend-output-button,
body.skm-checkemail .googlesitekit-sign-in-with-google__frontend-output-button { display: none !important; }

.skm-auth-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--skm-navy); display: flex; align-items: center; justify-content: center; margin-bottom: 24px; }

/* Activation page (/activate/{key}/) — real front-end page, not wp-login.php,
   so it needs its own centered-card treatment rather than reusing the
   body.login-action-* selectors above (which target a different DOM). Same
   visual language as the lostpassword/resetpass utility cards. */
/* Real bug found live: hiding .login-split left its flex sibling
   (.content-area, the other half of .bb-grid.site-content-grid's 2-column
   flex row) still locked to 50% width — our centered card was centering
   correctly within THAT half only, not the full page, leaving a dead blank
   half and reading as "off-centre" overall. Same single-column collapse
   already used for every other app-style page in this theme. */
body.skm-page-activate .bb-grid.site-content-grid { display: block !important; margin: 0 !important; }
body.skm-page-activate #primary.content-area { width: 100% !important; max-width: none !important; margin-left: 0 !important; float: none !important; justify-content: center !important; }
body.skm-page-activate #main.site-main { display: flex !important; justify-content: center !important; width: 100% !important; }
body.skm-page-activate article.bp_activate { width: auto !important; max-width: none !important; margin: 0 !important; }
body.skm-page-activate .login-split { display: none !important; }
body.skm-page-activate .activate-section-logo { display: none !important; }
body.skm-page-activate .entry-content { max-width: 440px; margin: 64px auto; padding: 44px 40px; background: #fff; border: 1px solid var(--skm-border); border-radius: 16px; box-shadow: 0 1px 2px rgba(13,31,51,.04); }
body.skm-page-activate #buddypress.buddypress-wrap { max-width: none; }
body.skm-page-activate .skm-auth-icon { margin-left: 0; }
body.skm-page-activate #activation-form { margin-top: 4px; }
.skm-auth-label { display: block; font-size: 13px; font-weight: 500; color: var(--skm-text-heading); margin-bottom: 7px; }
.skm-auth-input { width: 100%; box-sizing: border-box; padding: 10px 14px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 15px; color: var(--skm-text-heading); margin-bottom: 16px; }
.skm-auth-input:focus { outline: none; border-color: var(--skm-blue); }
body.skm-page-activate .skm-auth-card__btn--primary { border: none; cursor: pointer; font-family: inherit; }

/* Real design gap found live: BuddyPress's own error/feedback notices
   (wrong activation key, "account not activated" on sign-in, etc.) had no
   styling anywhere on this site's auth screens — raw red-on-white default
   WP/BP markup. Same red used for the Report button elsewhere in this
   build (#C0392B), not a fabricated new colour. */
#login div.error,
#login .bp-feedback.error,
body.skm-page-activate .entry-content div.error {
	background: #FDF0EF !important; border: 1px solid rgba(192,57,43,.25) !important; color: #C0392B !important;
	border-radius: 10px !important; padding: 14px 16px !important; font-size: 13px !important; line-height: 1.6 !important; margin-bottom: 20px !important;
}
#login div.error a, body.skm-page-activate .entry-content div.error a { color: #C0392B !important; font-weight: 600; text-decoration: underline; }
#login div.error p, body.skm-page-activate .entry-content div.error p { margin: 0 0 6px; }
#login div.error p:last-child, body.skm-page-activate .entry-content div.error p:last-child { margin-bottom: 0; }
.skm-auth-heading { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 10px !important; }
/* WP core's native #login-message keeps its own notice-info blue
   background even after our .skm-auth-card__sub class swap on the <p>
   inside it — clashed badly (dark text on blue). Neutralise the wrapper. */
body.skm-checkemail #login-message { background: none !important; border: none !important; padding: 0 !important; margin: 0 !important; }
body.skm-checkemail #login-message a { color: var(--skm-blue) !important; font-weight: 600; }
body.skm-checkemail #login { text-align: center; }
body.skm-checkemail .skm-auth-icon { margin-left: auto; margin-right: auto; }
body.login-action-lostpassword .notice.message,
body.login-action-resetpass .notice.message,
body.login-action-rp .notice.message { font-size: 14px; color: var(--skm-text-muted); background: none !important; border: none !important; padding: 0 0 24px !important; margin: 0 !important; }
body.login-action-lostpassword .notice.message p,
body.login-action-resetpass .notice.message p,
body.login-action-rp .notice.message p { margin: 0; }

/* Real "Email address" label exists in WP's own markup (#user_label_lost)
   but ships with the screen-reader-text class, same invisible-label bug
   already fixed on the sign-in screen (#user_label/#pass_label above) —
   just never extended to this screen. Flagged during a pixel-perfect pass
   against mockup_forgot_password.dc.html. Same fix, reused. */
body.login-action-lostpassword #user_label_lost { display: block !important; font-size: 13px !important; font-weight: 500 !important; color: #0D1F33 !important; margin-bottom: 7px !important; position: relative !important; height: auto !important; }
body.login-action-lostpassword #user_label_lost .screen-reader-text { position: static !important; width: auto !important; height: auto !important; overflow: visible !important; clip: auto !important; clip-path: none !important; margin: 0 !important; padding: 0 !important; white-space: normal !important; display: inline !important; }

/* Mockup puts the logo in its own thin top bar above the centered card,
   not inside the card itself (where skymarket_replace_login_logo() leaves
   it by default, since that's where the native anchor sits in this
   template). New bar built in PHP below; hide the in-card logo once it's
   in place so it doesn't show twice. */
body.login-action-lostpassword .skm-fresh-logo,
body.login-action-resetpass .skm-fresh-logo,
body.login-action-rp .skm-fresh-logo { display: none !important; }
.skm-auth-utility-nav { background: #fff; border-bottom: 1px solid var(--skm-border); padding: 18px 32px; }
.skm-auth-utility-nav .skm-auth-nav__logo { display: inline-flex; }

/* "You've been signed out" replacement card */
body.skm-loggedout #loginform,
body.skm-loggedout #login-message,
body.skm-loggedout .login-heading,
body.skm-loggedout .privacy-policy-page-link,
body.skm-loggedout p#nav { display: none !important; }
.skm-auth-card { text-align: center; }
/* Thank-you confirmation on /list-aircraft/ — same centred white-card chrome
   as the wp-login Forgot/Reset password screens (those get it for free from
   body-class rules on #login; this page has no #login to borrow from). */
.skm-listing-success { max-width: 440px; margin: 64px auto; background: #fff; border: 1px solid var(--skm-border); border-radius: 16px; padding: 44px 40px; box-shadow: 0 1px 2px rgba(13,31,51,.04); }
.skm-auth-card__icon--brand { width: 64px; height: 64px; border-radius: 16px; background: var(--skm-blue); display: flex; align-items: center; justify-content: center; margin: 0 auto 24px; }
.skm-auth-card h1 { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 10px; }
.skm-auth-card__sub { font-size: 14px; color: var(--skm-text-muted); line-height: 1.6; margin-bottom: 12px; }
.skm-auth-card__signedas { font-size: 13px; color: var(--skm-text-faint); margin-bottom: 24px; }
.skm-auth-card__btn { display: block; width: 100%; padding: 12px; border-radius: 8px; font-size: 14px; font-weight: 500; text-align: center; text-decoration: none; margin-bottom: 10px; }
.skm-auth-card__btn--primary { background: var(--skm-blue); color: #fff !important; }
.skm-auth-card__btn--primary:hover { background: var(--skm-blue-hover); }
.skm-auth-card__btn--ghost { background: var(--skm-surface); color: var(--skm-text-heading) !important; border: 1px solid var(--skm-border); }
.skm-auth-card__footlinks { margin-top: 18px; font-size: 13px; color: var(--skm-text-faint); }
.skm-auth-card__footlinks a { color: var(--skm-text-faint); }

/* Pending-moderation submitted page — matches mockup_listing_submitted.dc.html
   (minus the fabricated G-INFO check and the unverifiable "2 hours" promise). */
.skm-submitted { max-width: 680px; margin: 56px auto; }
.skm-submitted__top { text-align: center; margin-bottom: 28px; }
.skm-submitted__icon { width: 80px; height: 80px; border-radius: 50%; background: rgba(31,138,91,0.1); display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; }
.skm-submitted__eyebrow { font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #1F8A5B; margin-bottom: 10px; }
.skm-submitted__top h1 { font-size: 32px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -0.02em; line-height: 1.2; margin-bottom: 14px; }
.skm-submitted__sub { font-size: 16px; color: var(--skm-text-muted); line-height: 1.65; max-width: 480px; margin: 0 auto; }

.skm-submitted__card { background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; padding: 24px 28px; margin-bottom: 24px; }
.skm-submitted__card-label { font-size: 13px; font-weight: 600; color: var(--skm-text-muted); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 18px; }

.skm-submitted__steps { display: flex; flex-direction: column; }
.skm-submitted__step { display: flex; gap: 16px; padding-bottom: 22px; position: relative; }
.skm-submitted__step:last-child { padding-bottom: 0; }
.skm-submitted__step:not(:last-child)::before { content: ''; position: absolute; left: 13px; top: 28px; bottom: 0; width: 2px; background: var(--skm-border); }
.skm-submitted__dot { width: 28px; height: 28px; border-radius: 50%; background: var(--skm-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 12px; font-weight: 600; color: var(--skm-text-faint); }
.skm-submitted__step.is-done .skm-submitted__dot { background: #1F8A5B; }
.skm-submitted__step.is-current .skm-submitted__dot { background: var(--skm-blue); }
.skm-submitted__dot-inner { width: 8px; height: 8px; border-radius: 50%; background: #fff; }
.skm-submitted__step-title { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin-bottom: 3px; }
.skm-submitted__step.is-done .skm-submitted__step-title { color: #1F8A5B; }
.skm-submitted__step:not(.is-done):not(.is-current) .skm-submitted__step-title { font-weight: 500; color: var(--skm-text-muted); }
.skm-submitted__step-sub { font-size: 13px; color: var(--skm-text-faint); }

.skm-submitted__tips { display: flex; flex-direction: column; gap: 14px; }
.skm-submitted__tip { display: flex; align-items: center; gap: 14px; padding: 14px; background: var(--skm-surface); border-radius: 8px; }
.skm-submitted__tip-icon { width: 36px; height: 36px; border-radius: 8px; background: #EEF5FD; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.skm-submitted__tip-body { flex: 1; min-width: 0; }
.skm-submitted__tip-title { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); margin-bottom: 2px; }
.skm-submitted__tip-sub { font-size: 12px; color: var(--skm-text-faint); }
.skm-submitted__tip-link { font-size: 12px; font-weight: 500; color: var(--skm-blue); white-space: nowrap; text-decoration: none; }
.skm-submitted__tip-link:hover { text-decoration: underline; }

.skm-submitted__cta { display: flex; gap: 12px; justify-content: center; }
.skm-submitted__btn { display: inline-flex; align-items: center; gap: 8px; border-radius: 8px; padding: 12px 28px; font-size: 15px; font-weight: 500; text-decoration: none; }
.skm-submitted__btn--primary { background: var(--skm-blue); color: #fff !important; }
.skm-submitted__btn--primary:hover { background: var(--skm-blue-hover); }
.skm-submitted__btn--ghost { border: 1px solid var(--skm-border); color: var(--skm-text-heading) !important; }
.skm-submitted__btn--ghost:hover { border-color: var(--skm-blue); color: var(--skm-blue) !important; }

@media (max-width: 700px) {
	.skm-submitted__cta { flex-direction: column; }
	.skm-submitted__tip { flex-wrap: wrap; }
}

/* Password strength meter — thin line, matches mockup_reset_password */
body.login #pass-strength-result { border-radius: 3px; height: 4px; margin-top: 10px; font-size: 0; line-height: 0; padding: 0; border: none !important; background: var(--skm-border); }
body.login #pass-strength-result.short, body.login #pass-strength-result.bad { background: var(--skm-danger, #DB222A); }
body.login #pass-strength-result.good { background: #ED9615; }
body.login #pass-strength-result.strong { background: #14B550; }

@media (max-width: 900px) {
	.login-split { display: none !important; }
	#login { width: 100%; max-width: 440px; margin: 40px auto; }
}

/* --------------------------------------------------------------------------
   Register page (/register/) — BuddyBoss already renders the SAME native
   .login-split panel here as on wp-login.php (confirmed live, same
   .container > .bb-grid > [.login-split, .content-area] structure, .login-split
   fixed-positioned at 50vw, .content-area offset by margin-left). Reused
   rather than duplicated — see inc/skymarket-auth-pages.php. Only the form
   column needs real styling; the rail's own CSS already exists above
   (.login-split, .login-split__entry, .skm-auth-rail__* card/list/stats).
   -------------------------------------------------------------------------- */

body.skm-page-register #masthead,
body.skm-page-register .sticky-header-wrap { display: none !important; }
body.skm-page-register .entry-header, body.skm-page-register .entry-media { display: none; }
body.skm-page-register #content.site-content { padding-top: 0; }
body.skm-page-register .content-area { padding: 0 !important; }
body.skm-page-register .entry-content-wrap { padding: 0 !important; }
body.skm-page-register .entry-content { max-width: 420px; margin: 0 auto; padding: 64px 24px; }
/* Nav bar inside register page content wrapper */
body.skm-page-register .skm-auth-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 999; }
body.skm-page-register .content-area { padding-top: 0 !important; }
body.skm-page-register .entry-content { padding-top: 80px; }
/* Left rail layout: flex column with gap matching mockup */
body.skm-page-register .login-split__entry { display: flex; flex-direction: column; gap: 36px; padding: 52px 48px; justify-content: center; }
body.skm-page-register .entry-content > h1:first-child,
body.skm-page-register .entry-content .page-title { font-size: 24px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 6px !important; }
body.skm-page-register .skm-auth-google { margin-bottom: 20px; }
body.skm-page-register #signup-form label { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); display: block; margin-bottom: 6px; }
body.skm-page-register #signup-form label[for="skm-terms"] { display: inline !important; margin: 0 !important; padding: 0 !important; font-size: 13px !important; font-weight: 400 !important; color: rgba(13,31,51,.55) !important; line-height: 1.5 !important; vertical-align: middle; }
body.skm-page-register #signup-form input[type="text"],
body.skm-page-register #signup-form input[type="email"],
body.skm-page-register #signup-form input[type="password"] { width: 100% !important; padding: 11px 14px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 14px; margin-bottom: 16px; box-sizing: border-box; }
body.skm-page-register #signup_submit { width: 100%; background: var(--skm-blue) !important; color: #fff !important; border: none !important; border-radius: 8px; padding: 13px !important; font-size: 15px; font-weight: 500; cursor: pointer; }
body.skm-page-register #signup_submit:hover { background: var(--skm-blue-hover) !important; }

.login-split__entry .skm-auth-rail__eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #2B7FE0 !important; margin-bottom: 16px !important; position: relative; z-index: 1; }
.login-split__entry .skm-auth-rail__headline { font-size: 26px; font-weight: 700; color: #fff; line-height: 1.2; letter-spacing: -.02em; margin: 0 0 12px !important; position: relative; z-index: 1; }
.login-split__entry .skm-auth-rail__subtext { font-size: 14px; color: rgba(255,255,255,.5); line-height: 1.6; margin: 0 0 28px !important; position: relative; z-index: 1; }
.login-split__entry .skm-auth-rail__list { display: flex; flex-direction: column; gap: 12px; margin: 0 0 24px !important; position: relative; z-index: 1; max-width: none; }
.login-split__entry .skm-auth-rail__item { display: flex; align-items: center; gap: 12px; font-size: 14px; color: rgba(255,255,255,.72); line-height: 1.4; }
.login-split__entry .skm-auth-rail__check { flex-shrink: 0; width: 28px; height: 28px; border-radius: 7px; background: rgba(43,127,224,.18); display: flex; align-items: center; justify-content: center; }
.login-split__entry .skm-auth-rail__testimonial { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); border-radius: 10px; padding: 18px 20px; position: relative; z-index: 1; max-width: none; }
.login-split__entry .skm-auth-rail__testimonial p { font-size: 13px; font-weight: 300; color: rgba(255,255,255,.6); line-height: 1.68; margin: 0 0 14px !important; }
.login-split__entry .skm-auth-rail__testimonial-author { display: flex; align-items: center; gap: 10px; }
.login-split__entry .skm-auth-rail__testimonial-avatar { width: 30px; height: 30px; background: #2B7FE0; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 11px; font-weight: 700; color: #fff; }
.login-split__entry .skm-auth-rail__testimonial-name { font-size: 12px; font-weight: 600; color: rgba(255,255,255,.85); }
.login-split__entry .skm-auth-rail__testimonial-loc { font-size: 11px; color: rgba(255,255,255,.35); margin-top: 1px; }
.login-split__entry .skm-auth-rail__stats { display: flex; gap: 28px; position: relative; z-index: 1; margin-top: 24px !important; }
.login-split__entry .skm-auth-rail__stats strong { display: block; font-size: 20px; font-weight: 700; color: #fff; letter-spacing: -.02em; }
.login-split__entry .skm-auth-rail__stats span { font-size: 11px; color: rgba(255,255,255,.38); margin-top: 2px; display: block; }

.skm-reg-footer-link { font-size: 14px; text-align: center; color: rgba(13,31,51,.45); margin-top: 16px !important; }
.skm-reg-footer-link a { color: #2B7FE0; font-weight: 500; text-decoration: none; }
.skm-reg-footer-link a:hover { text-decoration: underline; }
body.skm-page-register #signup-form ::placeholder { color: rgba(13,31,51,.28); }

@media (max-width: 900px) {
	body.skm-page-register .login-split { display: none !important; }
	body.skm-page-register .content-area { margin-left: 0 !important; width: 100% !important; }
}

/* --------------------------------------------------------------------------
   Onboarding (/onboarding/) — new real page + shortcode
   -------------------------------------------------------------------------- */

body.skm-page-onboarding .entry-header, body.skm-page-onboarding .entry-media { display: none; }
body.skm-page-onboarding #content.site-content { padding-top: 0; }
body.skm-page-onboarding #content,
body.skm-page-onboarding #content .container,
body.skm-page-onboarding .bb-grid.site-content-grid,
body.skm-page-onboarding .content-area,
body.skm-page-onboarding .site-main,
body.skm-page-onboarding article,
body.skm-page-onboarding .entry-content,
body.skm-page-onboarding .skm-onboarding { display: flex !important; flex-direction: column; }
body.skm-page-onboarding #content .container,
body.skm-page-onboarding .bb-grid.site-content-grid,
body.skm-page-onboarding .content-area,
body.skm-page-onboarding .site-main,
body.skm-page-onboarding article,
body.skm-page-onboarding .entry-content,
body.skm-page-onboarding .skm-onboarding { flex: 1 1 auto !important; min-height: 0; max-width: none !important; }
body.skm-page-onboarding #content,
body.skm-page-onboarding #primary,
body.skm-page-onboarding .content-area,
body.skm-page-onboarding article,
body.skm-page-onboarding .entry-content,
body.skm-page-onboarding .entry-content-wrap { background: var(--skm-surface) !important; }

.skm-onboarding__topnav { display: flex; justify-content: flex-end; padding: 20px 24px 0; }
.skm-onboarding__skip { font-size: 14px; color: var(--skm-text-faint); }
.skm-onboarding__skip:hover { color: var(--skm-text-heading); }
.skm-onboarding__center { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px 20px 60px; }
.skm-onboarding__dots { display: flex; gap: 8px; margin-bottom: 28px; }
.skm-onboarding__dots span { width: 8px; height: 8px; border-radius: 50%; background: var(--skm-border); transition: all .2s; }
.skm-onboarding__dots span.is-active { width: 22px; border-radius: 4px; background: var(--skm-blue); }

.skm-onboarding__step { width: 100%; max-width: 480px; background: #fff; border: 1px solid var(--skm-border); border-radius: 16px; padding: 40px; text-align: center; }
.skm-onboarding__step h1 { font-size: 24px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.02em; margin-bottom: 10px; }
.skm-onboarding__step > p { font-size: 14px; color: var(--skm-text-muted); line-height: 1.6; margin-bottom: 28px; }
.skm-onboarding__icon { width: 64px; height: 64px; border-radius: 50%; background: rgba(43,127,224,.08); display: flex; align-items: center; justify-content: center; margin: 0 auto 22px; }
.skm-onboarding__icon--done { background: #1F8A5B; }

.skm-onboarding__btn { width: 100%; padding: 13px; background: var(--skm-blue); border: none; border-radius: 8px; font-size: 15px; font-weight: 500; color: #fff; cursor: pointer; }
.skm-onboarding__btn:hover { background: var(--skm-blue-hover); }
.skm-onboarding__btn:disabled { opacity: .45; cursor: not-allowed; }
.skm-onboarding__btn--ghost { background: var(--skm-surface); color: var(--skm-text-heading); border: 1px solid var(--skm-border); }
.skm-onboarding__btn--ghost:hover { background: var(--skm-border); }
.skm-onboarding__ctas { display: flex; flex-direction: column; gap: 10px; }
.skm-onboarding__footnote { font-size: 12px; color: var(--skm-text-faint); margin-top: 16px !important; }

.skm-onboarding__h2 { text-align: left; font-size: 20px; }
#skm-ob-step2 { text-align: left; }
#skm-ob-step2 .skm-onboarding__lede { text-align: left; }
.skm-onboarding__choices { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.skm-onboarding__choice { display: flex; align-items: center; gap: 16px; padding: 16px 18px; border: 1px solid var(--skm-border); border-radius: 10px; background: #fff; cursor: pointer; text-align: left; width: 100%; transition: border-color .12s, background .12s; }
.skm-onboarding__choice:hover { border-color: rgba(43,127,224,.4); background: rgba(43,127,224,.02); }
.skm-onboarding__choice.is-selected { border-color: var(--skm-blue); background: rgba(43,127,224,.04); }
.skm-onboarding__choice-ic { width: 40px; height: 40px; background: rgba(43,127,224,.08); border-radius: 9px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.skm-onboarding__choice-txt { flex: 1; font-size: 14px; color: var(--skm-text); line-height: 1.4; }
.skm-onboarding__choice-txt strong { font-size: 15px; color: var(--skm-text-heading); }
.skm-onboarding__choice-radio { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--skm-border); flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.skm-onboarding__choice.is-selected .skm-onboarding__choice-radio { border-color: var(--skm-blue); }
.skm-onboarding__choice.is-selected .skm-onboarding__choice-radio::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--skm-blue); }

@media (max-width: 600px) {
	.skm-onboarding__step { padding: 28px 22px; }
}

/* ==========================================================================
   MODULE 3 — Dashboard / My Listings / shared sidebar shell
   ========================================================================== */

/* Sidebar: user card + nav counts + upgrade card (new, on top of the
   existing .skm-dash__side/__nav rules above) */
/* User block (inside its own card — card styling set on .skm-dash__user above in the main block) */
.skm-dash__avatar { border-radius: 50% !important; width: 52px !important; height: 52px !important; margin: 0 auto 10px !important; display: block !important; }
.skm-dash__user-name { font-size: 14px; font-weight: 600; color: var(--skm-text-heading); margin: 0 0 2px !important; }
.skm-dash__user-email { font-size: 11px; color: rgba(13,31,51,.4); margin: 0 0 8px !important; word-break: break-word; }
.skm-dash__tier-badge { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 600; color: #185FA5; background: #EEF5FD; border: 1px solid #B5D4F4; border-radius: 5px; padding: 3px 8px; line-height: 1.2; }
.skm-dash__tier-badge img, .skm-dash__tier-badge svg { width: 11px !important; height: 11px !important; }

/* Nav counts */
.skm-dash__nav-count { margin-left: auto; background: var(--skm-blue); color: #fff; font-size: 10px; font-weight: 600; border-radius: 9px; min-width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }

/* Upgrade card — no margin needed, gap on parent handles spacing */
.skm-dash__upgrade { margin: 0; background: var(--skm-navy); border-radius: 12px; padding: 18px 16px; }
.skm-dash__upgrade-title { font-size: 12px; font-weight: 600; color: #fff; margin-bottom: 4px; }
.skm-dash__upgrade-sub { font-size: 11px; color: rgba(255,255,255,.4); line-height: 1.6; margin-bottom: 14px; }
.skm-dash__upgrade-btn { display: block; text-align: center; background: var(--skm-blue); color: #fff !important; font-size: 12px; font-weight: 600; border-radius: 7px; padding: 9px 12px; text-decoration: none; }
.skm-dash__upgrade-btn:hover { background: var(--skm-blue-hover) !important; }

/* Dashboard greeting + stat cards */
.skm-dash__greet-emoji { font-size: 18px; }
.skm-dash__sub { font-size: 13px; color: var(--skm-text-faint); margin-bottom: 22px; }
.skm-dash__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 24px; }
.skm-dash__stat { background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; padding: 16px; }
.skm-dash__stat-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; min-height: 28px; }
.skm-dash__stat-icon { width: 28px; height: 28px; border-radius: 7px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.skm-dash__stat-icon--blue { background: #EEF5FD; color: var(--skm-blue); }
.skm-dash__stat-icon--red { background: #FDECEC; color: #E0524F; }
.skm-dash__stat-icon--green { background: #E6F6EE; color: #1F8A5B; }
.skm-dash__stat-chg { font-size: 11px; font-weight: 500; padding: 3px 7px; border-radius: 5px; white-space: nowrap; }
.skm-dash__stat-chg.is-up { background: #E6F6EE; color: #1F8A5B; }
.skm-dash__stat-chg.is-down { background: #FDECEC; color: #E0524F; }
.skm-dash__stat-val { font-size: 26px; font-weight: 700; color: var(--skm-text-heading); line-height: 1; margin-bottom: 6px; }
.skm-dash__stat-lbl { font-size: 12px; color: var(--skm-text-faint); }

/* Dashboard My Listings / Messages preview cards */
.skm-dash__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.skm-dash__card { background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; padding: 18px; }
.skm-dash__card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.skm-dash__card-head h2 { font-size: 15px; font-weight: 700; color: var(--skm-text-heading); margin: 0; display: inline-flex; align-items: center; gap: 6px; }
.skm-dash__card-head a { font-size: 12px; color: var(--skm-blue); text-decoration: none; }
.skm-dash__card-badge { background: var(--skm-blue); color: #fff; font-size: 10px; font-weight: 600; border-radius: 8px; min-width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; }
.skm-dash__listing-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #F0F2F4; }
.skm-dash__listing-row:last-of-type { border-bottom: none; }
.skm-dash__listing-thumb { width: 40px; height: 40px; border-radius: 7px; background: var(--skm-surface); display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; }
.skm-dash__listing-thumb img { width: 100%; height: 100%; object-fit: cover; }
.skm-dash__listing-body { flex: 1; min-width: 0; }
.skm-dash__listing-body a { font-size: 13px; font-weight: 600; color: var(--skm-text-heading); text-decoration: none; display: block; }
.skm-dash__listing-body a:hover { color: var(--skm-blue); }
.skm-dash__listing-body p { font-size: 12px; color: var(--skm-text-faint); margin: 2px 0 0; }
.skm-dash__expiring { color: #E0524F; }
.skm-dash__listing-status { font-size: 11px; font-weight: 500; color: #1F8A5B; white-space: nowrap; flex-shrink: 0; }
.skm-dash__live-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #1F8A5B; margin-right: 3px; }
.skm-dash__add-link { display: block; margin-top: 10px; font-size: 13px; color: var(--skm-blue); text-decoration: none; }

@media (max-width: 900px) {
	.skm-dash__stats { grid-template-columns: repeat(2, 1fr); }
	.skm-dash__cards { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   My Listings page (/my-listings/)
   -------------------------------------------------------------------------- */

.skm-ml__head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 22px; gap: 16px; }
.skm-ml__tabs { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.skm-ml__tab { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--skm-text); background: #fff; border: 1px solid var(--skm-border); border-radius: 7px; padding: 8px 14px; text-decoration: none; }
.skm-ml__tab span { font-size: 11px; color: var(--skm-text-faint); }
.skm-ml__tab.is-active { background: var(--skm-navy); color: #fff; border-color: var(--skm-navy); }
.skm-ml__tab.is-active span { color: rgba(255,255,255,.6); }
.skm-ml__tab:not(.is-active):hover { border-color: var(--skm-blue); color: var(--skm-blue); }

.skm-ml__table-wrap { background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; overflow: hidden; }
/* Header and row zones use the SAME fixed widths so they actually line up —
   LISTING grows, STATUS/VIEWS/PRICE are fixed-width, ACTIONS hugs content. */
.skm-ml__table-head { display: flex; align-items: center; gap: 16px; padding: 12px 18px; background: var(--skm-surface); border-bottom: 1px solid var(--skm-border); font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--skm-text-faint); }
.skm-ml__col-listing { flex: 1; min-width: 0; }
.skm-ml__col-status { width: 96px; flex-shrink: 0; }
.skm-ml__col-views { width: 70px; flex-shrink: 0; }
.skm-ml__col-price { width: 90px; flex-shrink: 0; }
.skm-ml__col-actions { width: 280px; flex-shrink: 0; text-align: right; }

/* Real WPAdverts row markup only has 3 direct children (.advert-img,
   .advert-post-title, .adverts-manage-actions-wrap) — no separate
   Status/Views/Price column elements exist to grid-place. The status/
   views/price pieces are pulled out of .advert-post-title's inline flow
   and given the SAME fixed widths as the header columns above, via
   order + flex-basis, so they visually land under the right label. */
.skm-ml__table-wrap .adverts-grid { display: flex; flex-direction: column; }
.skm-ml__table-wrap .advert-manage-item { display: flex; align-items: flex-start; gap: 16px; padding: 16px 18px; border-bottom: 1px solid #F0F2F4; }
.skm-ml__table-wrap .advert-manage-item:last-child { border-bottom: none; }
/* Real WPAdverts thumbnail — adverts_get_main_image() already renders a real
   <img> when a photo exists; an empty div (no fallback markup) when it
   doesn't, since WPAdverts has no placeholder concept of its own. The
   :empty rule below adds one real fallback (a plane glyph, same idea as the
   mockup's icon-in-a-tinted-box), not a fabricated photo. */
.skm-ml__table-wrap .advert-img { position: relative !important; top: auto !important; left: auto !important; order: 0; width: 56px !important; height: 42px !important; flex: 0 0 56px; border-radius: 6px; overflow: hidden; background: #ECF1F8; }
.skm-ml__table-wrap .advert-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.skm-ml__table-wrap .advert-img:empty { display: flex; align-items: center; justify-content: center; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8C4D4' stroke-width='2'%3E%3Cpath d='M22 2L11 13'/%3E%3Cpath d='M22 2L15 22l-4-9-9-4 19-7z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
/* WPAdverts' own CSS reserves margin-left:110px on these two for the
   thumbnail (.advert-item-col-1 .advert-post-title, .advert-published —
   confirmed via the live wpadverts-frontend.css) — our thumbnail above uses
   real flex gap instead of relying on that reserved margin, so it's
   cancelled the same as before. */
.skm-ml__table-wrap .advert-post-title,
.skm-ml__table-wrap .adverts-manage-actions-wrap { margin-left: 0 !important; }
.skm-ml__table-wrap .advert-post-title { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; }
.skm-ml__table-wrap .adverts-manage-link { display: contents; }
.skm-ml__table-wrap .advert-link-wraps { order: 1; flex: 1; min-width: 0; font-size: 14px; font-weight: 600; color: var(--skm-text-heading); text-decoration: none; display: block; line-height: 1.4; }
.skm-ml__table-wrap .advert-link-wraps:hover { color: var(--skm-blue); }
.skm-ml__table-wrap .skm-ml-meta-line { order: 5; width: 100%; font-size: 12px; color: var(--skm-text-faint); margin-top: 4px; }
.skm-ml__table-wrap .skm-ml-meta-line--warn { color: #C0392B; font-weight: 500; }
.skm-ml__table-wrap .skm-ml-meta-line--muted { color: var(--skm-text-faint); }
.skm-ml__table-wrap .adverts-inline-icon { display: none; }

.skm-ml__table-wrap .skm-ml-status { order: 2; width: 96px; flex: 0 0 96px; display: flex; align-items: center; gap: 8px; padding-top: 1px; }
.skm-ml-toggle { position: relative; display: inline-block; width: 32px; height: 18px; cursor: pointer; flex-shrink: 0; }
.skm-ml-toggle__input { position: absolute; opacity: 0; width: 0; height: 0; }
.skm-ml-toggle__track { position: absolute; inset: 0; background: var(--skm-border); border-radius: 9px; transition: background .15s; }
.skm-ml-toggle__track::after { content: ''; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; background: #fff; border-radius: 50%; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.skm-ml-toggle__input:checked + .skm-ml-toggle__track { background: #1F8A5B; }
.skm-ml-toggle__input:checked + .skm-ml-toggle__track::after { transform: translateX(14px); }
.skm-ml-toggle__input:disabled + .skm-ml-toggle__track { opacity: .5; cursor: not-allowed; }
.skm-ml-status__label { font-size: 12px; font-weight: 500; color: var(--skm-text); display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.skm-ml-status__label::before { content: ''; width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.skm-ml-status__label--green::before { background: #1F8A5B; }
.skm-ml-status__label--amber::before { background: #ED9615; }
.skm-ml-status__label--red::before { background: #E0524F; }
.skm-ml-status__label--grey::before { background: #94A3B8; }

.skm-ml__table-wrap .skm-ml-views-col { order: 3; width: 70px; flex: 0 0 70px; font-size: 13px; color: var(--skm-text); padding-top: 1px; }
.skm-ml__table-wrap .adverts-manage-info { order: 4; width: 90px; flex: 0 0 90px; display: block; font-size: 14px; font-weight: 600; color: var(--skm-text-heading); padding-top: 1px; }
.skm-ml__table-wrap .adverts-manage-date { display: block; font-weight: 400; color: var(--skm-text-faint); font-size: 11px; margin-top: 2px; }

.skm-ml__table-wrap .adverts-manage-actions-wrap { width: 280px; flex: 0 0 280px; display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-shrink: 0; position: relative; }
.skm-ml__table-wrap .adverts-manage-action { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 500; border: 1px solid var(--skm-border); border-radius: 6px; padding: 6px 10px; text-decoration: none; color: var(--skm-text); white-space: nowrap; }
.skm-ml__table-wrap .adverts-manage-action .adverts-icon-pencil-squared,
.skm-ml__table-wrap .adverts-manage-action .adverts-icon-eye,
.skm-ml__table-wrap .adverts-manage-action .adverts-icon-trash-1,
.skm-ml__table-wrap .adverts-manage-action .adverts-icon-menu { display: none; }
.skm-ml__table-wrap a.adverts-manage-action:hover { border-color: var(--skm-blue); color: var(--skm-blue); }
.skm-ml__table-wrap .skm-upgrade-action { color: #B8860B; border-color: #F0DFAE; }
.skm-ml__table-wrap .skm-is-featured { color: #B8860B; border: none; padding: 6px 4px; }
.skm-ml__table-wrap .skm-renew-action { color: #E0524F; border-color: #F6C7C5; }
.skm-ml__table-wrap .adverts-manage-action-delete { color: #E0524F; }
.skm-ml__table-wrap .adverts-manage-action-more { padding: 6px 8px; }
/* Real bug found via audit: this was position:absolute inside two ancestors
   with overflow:hidden (native .adverts-manage-actions-wrap, plus our own
   .skm-ml__table-wrap — needed elsewhere for rounded card corners) — the
   menu genuinely opened (is-open class applied) but was invisible, entirely
   clipped by those ancestors. position:fixed with JS-computed coordinates
   (see myListingsActions() in custom.js) escapes both regardless of any
   ancestor's overflow setting. */
.skm-ml__table-wrap .adverts-manage-actions-more { display: none; flex-direction: column; gap: 4px; position: fixed; background: #fff; border: 1px solid var(--skm-border); border-radius: 8px; padding: 6px; box-shadow: 0 4px 12px rgba(13,31,51,.1); z-index: 999; min-width: 120px; }
.skm-ml__table-wrap .adverts-manage-actions-more.is-open { display: flex; }
.skm-ml__table-wrap .adverts-manage-actions-more .adverts-manage-action { border: none; justify-content: flex-start; }
.skm-ml__table-wrap .adverts-manage-delete-confirm { display: none; }

/* Real WP paginate_links() output (WPAdverts' own .adverts-pagination),
   only rendered at all once there are more listings than fit one page. */
.adverts-pagination { display: flex; justify-content: flex-end; gap: 6px; margin-top: 20px; }
.adverts-pagination .page-numbers { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 1px solid var(--skm-border); border-radius: 7px; background: #fff; font-size: 13px; color: var(--skm-text-faint); text-decoration: none; }
.adverts-pagination a.page-numbers:hover { border-color: var(--skm-blue); color: var(--skm-blue); }
.adverts-pagination .page-numbers.current { border-color: var(--skm-blue); background: var(--skm-blue); color: #fff; font-weight: 600; }
.adverts-pagination .page-numbers.dots { border: none; background: none; width: auto; }

@media (max-width: 900px) {
	.skm-ml__table-head { display: none; }
	.skm-ml__table-wrap .advert-manage-item { grid-template-columns: 1fr; }
	.skm-ml__table-wrap .adverts-manage-actions-wrap { grid-column: 1; flex-wrap: wrap; margin-top: 8px; }
}

/* Empty state */
.skm-ml__empty { background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; padding: 56px 40px; text-align: center; }
.skm-ml__empty-icon { width: 72px; height: 72px; border-radius: 50%; background: rgba(43,127,224,.08); display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; }
.skm-ml__empty h2 { font-size: 20px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 10px; }
.skm-ml__empty p { font-size: 14px; color: var(--skm-text-faint); max-width: 480px; margin: 0 auto 20px; line-height: 1.6; }
.skm-ml__empty-checks { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; margin-bottom: 24px; font-size: 13px; color: var(--skm-text); }
.skm-ml__empty-checks span { display: inline-flex; align-items: center; gap: 6px; }
.skm-ml__empty-cta { display: inline-flex; }
.skm-ml__empty-foot { font-size: 12px; color: var(--skm-text-faint); margin-top: 14px !important; }

/* --------------------------------------------------------------------------
   Edit Listing (/my-listings/?advert_id=X) — real WPAdverts edit form,
   reorganised by editListingLayout() in custom.js into section cards +
   sticky nav + real stats/danger-zone sidebar (skymarket_edit_listing_sidebar()
   in inc/skymarket-my-listings.php).
   -------------------------------------------------------------------------- */

body.skm-page-my-listings p:has(> a.adverts-button) { display: none; }

/* WPAdverts' own .adverts-form-aligned caps at 720px and .skm-ml__table-wrap
   (shared with the My Listings table) hides overflow — both silently break
   the edit layout: the grid's 1fr column collapses to ~170px, and overflow
   hidden kills position:sticky on the nav/sidebar. Scoped via :has() so the
   My Listings table itself is untouched. */
.skm-ml__table-wrap:has(.skm-edit__layout) { background: none; border: none; border-radius: 0; overflow: visible; }
.skm-ml__table-wrap:has(.skm-edit__layout) .adverts-form.adverts-form-aligned { max-width: none; margin: 0; }

/* Page header — breadcrumb / h1 / status pill / meta / save-state / preview. */
.skm-edit__pagehead { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 24px; margin-bottom: 12px; border-bottom: 1px solid var(--skm-border); }
.skm-edit__crumb { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.skm-edit__crumb a { font-size: 12px; color: rgba(13,31,51,0.45); text-decoration: none; }
.skm-edit__crumb a:hover { color: var(--skm-blue); }
.skm-edit__crumb-sep { font-size: 12px; color: rgba(13,31,51,0.25); }
.skm-edit__crumb-current { font-size: 12px; color: rgba(13,31,51,0.6); }
.skm-edit__h1 { font-size: 20px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -0.01em; }
.skm-edit__meta { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.skm-edit__status-pill { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 5px; }
.skm-edit__meta-line { font-size: 12px; color: rgba(13,31,51,0.4); }
.skm-edit__pagehead-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.skm-edit__savestate { display: flex; align-items: center; gap: 6px; }
.skm-edit__savestate-label { font-size: 12px; color: rgba(13,31,51,0.4); }
.skm-edit__savestate[data-state="unsaved"] .skm-edit__savestate-label { color: #ED9615; }
.skm-edit__preview-btn { font-size: 12px; font-weight: 500; color: var(--skm-blue); padding: 6px 12px; border: 1px solid rgba(43,127,224,0.3); border-radius: 6px; text-decoration: none; }
.skm-edit__preview-btn:hover { background: rgba(43,127,224,0.05); }

.skm-edit__layout { display: grid; grid-template-columns: 220px 1fr; gap: 40px; align-items: start; }

/* Nav — bare list on the page background (not a card), matching the mockup;
   the stats card below it is the only thing with white-card chrome. */
.skm-edit__nav { display: flex; flex-direction: column; gap: 4px; position: sticky; top: 90px; }
.skm-edit__nav-label { font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(13,31,51,0.35); margin-bottom: 8px; padding-left: 14px; }
.skm-edit__nav a { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 400; color: rgba(13,31,51,0.5); padding: 8px 12px 8px 14px; border-left: 2px solid transparent; border-radius: 0 6px 6px 0; text-decoration: none; }
.skm-edit__nav a:hover { background: rgba(13,31,51,0.04); }
.skm-edit__nav a.is-active { color: var(--skm-blue); font-weight: 500; border-left-color: var(--skm-blue); background: rgba(43,127,224,0.05); }
.skm-edit__nav-check { width: 20px; height: 20px; border-radius: 50%; background: #1F8A5B; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.skm-edit__nav .skm-edit__stats { margin-top: 16px; }

.skm-edit__main { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.skm-edit__card { background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; padding: 28px 32px; }
.skm-edit__card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; padding-bottom: 18px; border-bottom: 1px solid var(--skm-border); }
.skm-edit__card-check { width: 26px; height: 26px; border-radius: 50%; background: #1F8A5B; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.skm-edit__card-head h2 { font-size: 16px; font-weight: 600; color: var(--skm-text-heading); margin: 0; }
.skm-edit__postingas { margin-left: auto; font-size: 12px; color: rgba(13,31,51,0.4); white-space: nowrap; }
.skm-edit__postingas strong { color: var(--skm-text-heading); font-weight: 500; }
.skm-edit__postingas a { color: var(--skm-blue); text-decoration: none; }
.skm-edit__postingas a:hover { text-decoration: underline; }

/* 6-col base grid — every field gets an explicit span (full=6/half=3/third=2)
   so each section can mix row widths (mockup: Contact details is 2-up then a
   half-width phone row; The aircraft is full/2-up/3-up; Technical spec is a
   plain 2-up flow) without needing a different grid per section. */
.skm-edit__card-body { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; }
.skm-edit__card-body .adverts-control-group { margin: 0 !important; grid-column: span 3; }
.skm-edit__card-body .skm-span-6 { grid-column: span 6 !important; }
.skm-edit__card-body .skm-span-2 { grid-column: span 2 !important; }
/* Real bug found in QA (8 July): WPAdverts' own default label CSS sets
   width: 30% (its native label-left/input-right two-column layout) — this
   rule never touched width, so that 30% survived the cascade and wrapped
   "Contact Person", "Phone Number", "Based at (ICAO)" etc onto 2-3 lines
   even with plenty of room in the actual grid column. */
.skm-edit__card-body label { width: 100% !important; font-size: 13px; font-weight: 500; color: var(--skm-text-heading); display: block; margin-bottom: 7px !important; float: none !important; }
.skm-edit__card-body input[type="text"], .skm-edit__card-body input[type="email"], .skm-edit__card-body input[type="tel"],
.skm-edit__card-body select, .skm-edit__card-body textarea { width: 100% !important; margin: 0 !important; padding: 10px 14px !important; border: 1px solid var(--skm-border) !important; border-radius: 8px !important; font-size: 15px !important; color: var(--skm-text-heading); box-sizing: border-box; float: none !important; }
.skm-edit__card-body textarea { min-height: 140px; }
/* Real bug found in QA (8 July): WPAdverts' own upload widget CSS floats
   .adverts-plupload-upload-ui left at a fixed ~65% width (its default
   admin-ish layout) — the gallery group itself correctly spans the full
   card width (skm-span-6), but this inner div never got a matching
   override, so the actual dropzone sat narrow with dead space beside it,
   inconsistent with the full-width Description/Video fields right below
   it. Same class of leak as the label width fix above. Applies in both
   Edit Listing and the List Aircraft wizard, neither had an override. */
.skm-edit__card-body .adverts-plupload-upload-ui,
.skm-law__fieldgrid .adverts-plupload-upload-ui { width: 100% !important; float: none !important; padding-left: 0 !important; }
/* Real bug found in QA (8 July): clicking the gallery box didn't open a
   file picker. Root cause: WPAdverts hides the fallback "browse files"
   button by default (relies on drag-drop as the only path), and Plupload
   sizes its actual invisible <input type="file"> shim to match that
   button's rendered box — a 0x0 hidden button means a 0x0 unclickable
   shim, on both this screen and the wizard, confirmed identical on both
   pre-existing (not caused by the width/float fixes above). Restoring the
   button gives Plupload a real box to size the shim against. */
.adverts-plupload-upload-ui p:has(.adverts-plupload-browse-button) { display: block !important; margin-top: 10px !important; }
.skm-edit__nestgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; grid-column: span 3; }
.skm-edit__nestgrid .adverts-control-group { grid-column: auto !important; }

.skm-edit__footer { display: flex; align-items: center; justify-content: space-between; background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; padding: 22px 32px; position: sticky; bottom: 16px; }
.skm-edit__footer-copy { flex: 1; min-width: 0; font-size: 13px; color: rgba(13,31,51,0.4); }
.skm-edit__footer-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.skm-edit__footer-discard { display: inline-flex; align-items: center; white-space: nowrap; font-size: 14px; font-weight: 500; color: var(--skm-text-heading); padding: 10px 20px; border: 1px solid var(--skm-border); border-radius: 8px; text-decoration: none; }
.skm-edit__footer-discard:hover { border-color: var(--skm-blue); color: var(--skm-blue); }
.skm-edit__footer-submit .adverts-control-group { margin: 0 !important; }
.skm-edit__footer-submit input[type="submit"] { background: var(--skm-blue) !important; color: #fff !important; border: none !important; border-radius: 8px !important; padding: 10px 22px !important; font-size: 14px !important; font-weight: 500 !important; cursor: pointer; }
.skm-edit__footer-submit input[type="submit"]:hover { background: var(--skm-blue-hover) !important; }
.skm-edit__footer .adverts-moderation-notice { display: none; }

.skm-edit__stats { background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; padding: 14px 16px; }
.skm-edit__stats-label { font-size: 11px; font-weight: 600; color: rgba(13,31,51,0.4); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 10px; }
.skm-edit__stats-list { display: flex; flex-direction: column; gap: 8px; }
.skm-edit__stat-row { display: flex; justify-content: space-between; }
.skm-edit__stat-row .skm-edit__stat-lbl { font-size: 12px; color: rgba(13,31,51,0.5); }
.skm-edit__stat-row .skm-edit__stat-val { font-size: 12px; font-weight: 600; color: var(--skm-text-heading); }

.skm-edit__danger { background: #fff; border: 1px solid rgba(192,57,43,0.25); border-radius: 12px; padding: 24px 32px; }
.skm-edit__danger-title { font-size: 14px; font-weight: 600; color: #C0392B; margin: 0 0 8px; }
.skm-edit__danger-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.skm-edit__danger-copy { flex: 1; min-width: 0; }
.skm-edit__danger-sub-title { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); margin: 0 0 4px; }
.skm-edit__danger-sub { font-size: 13px; color: rgba(13,31,51,0.5); line-height: 1.5; max-width: 480px; margin: 0; }
.skm-edit__danger-btn { flex-shrink: 0; display: inline-flex; align-items: center; padding: 9px 18px; border: 1px solid #C0392B; border-radius: 8px; font-size: 13px; font-weight: 500; color: #C0392B !important; background: #fff; text-decoration: none; white-space: nowrap; }
.skm-edit__danger-btn:hover { background: #FEF5F5; }

@media (max-width: 1100px) {
	.skm-edit__pagehead { flex-direction: column; align-items: flex-start; gap: 12px; }
	.skm-edit__layout { grid-template-columns: 1fr; }
	.skm-edit__nav { position: static; }
	.skm-edit__card { padding: 20px; }
	.skm-edit__card-body { grid-template-columns: repeat(2, 1fr); }
	.skm-edit__card-body .adverts-control-group { grid-column: span 1 !important; }
	.skm-edit__card-body .skm-span-6 { grid-column: span 2 !important; }
	.skm-edit__nestgrid { grid-template-columns: 1fr 1fr; grid-column: span 1; }
	.skm-edit__danger-row { flex-direction: column; align-items: flex-start; }
	.skm-edit__footer { flex-direction: column; align-items: flex-start; gap: 12px; }
}


/* ===================================================================
   MODULE 6 — CHECKOUT & BILLING
   =================================================================== */

/* ------ Full-bleed shell reset (same pattern as other custom pages) ------ */
body.skm-page-cart #primary,
body.skm-page-checkout #primary,
body.skm-page-order-received #primary,
body.skm-page-billing #primary { padding-top: 28px !important; }
body.skm-page-cart #content.site-content,
body.skm-page-checkout #content.site-content,
body.skm-page-order-received #content.site-content,
body.skm-page-billing #content.site-content { padding: 0 !important; }
body.skm-page-cart #content .container,
body.skm-page-checkout #content .container,
body.skm-page-order-received #content .container,
body.skm-page-billing #content .container { max-width: none !important; padding: 0 !important; margin: 0 !important; }
body.skm-page-cart .bb-grid.site-content-grid,
body.skm-page-checkout .bb-grid.site-content-grid,
body.skm-page-order-received .bb-grid.site-content-grid,
body.skm-page-billing .bb-grid.site-content-grid { display: block !important; margin: 0 !important; }
body.skm-page-billing #primary,
body.skm-page-billing .content-area { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; float: none !important; }
body.skm-page-cart .entry-header,
body.skm-page-checkout .entry-header,
body.skm-page-order-received .entry-header,
body.skm-page-billing .entry-header { display: none !important; }
body.skm-page-cart .entry-content,
body.skm-page-checkout .entry-content,
body.skm-page-order-received .entry-content { padding: 0 !important; max-width: none !important; }

/* ------ Shared WC page wrapper ------ */
body.skm-page-cart .woocommerce,
body.skm-page-checkout .woocommerce,
body.skm-page-order-received .woocommerce { max-width: 1100px; margin: 0 auto; padding: 0 24px 60px; }

/* ------ Progress bar ------ */
.skm-checkout-progress {
	display: flex; align-items: center; padding: 12px 24px 28px;
	max-width: 1100px; margin: 0 auto;
}
.skm-checkout-progress__step {
	display: flex; align-items: center; gap: 8px; text-decoration: none;
	font-size: 13px; font-weight: 500; color: rgba(13,31,51,.35);
}
.skm-checkout-progress__step.is-active { color: var(--skm-text-heading); font-weight: 600; }
.skm-checkout-progress__step.is-done   { color: var(--skm-blue); }
.skm-checkout-progress__num {
	width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	font-size: 11px; font-weight: 700; border: 1.5px solid currentColor; flex-shrink: 0;
}
.skm-checkout-progress__step.is-active .skm-checkout-progress__num { background: var(--skm-blue); border-color: var(--skm-blue); color: #fff; }
.skm-checkout-progress__step.is-done   .skm-checkout-progress__num { background: var(--skm-blue); border-color: var(--skm-blue); color: #fff; }
.skm-checkout-progress__line { flex: 1; height: 1px; background: var(--skm-border); margin: 0 12px; }
.skm-checkout-progress__line.is-done   { background: var(--skm-blue); }

/* ------ Cart page layout ------ */
/* Two-column grid: left=cards, right=order-summary */
body.skm-page-cart .woocommerce { display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: start; }
body.skm-page-cart .woocommerce > .woocommerce-notices-wrapper,
body.skm-page-cart .woocommerce > .woocommerce-message,
body.skm-page-cart .woocommerce > .woocommerce-error,
body.skm-page-cart .woocommerce > .woocommerce-info { grid-column: 1 / -1; }
/* JS hides native form after rebuilding cards */
body.skm-page-cart .woocommerce-cart-form[hidden] { display: none !important; }
body.skm-page-cart .skm-cart-left { min-width: 0; }
/* Heading */
body.skm-page-cart .skm-cart-breadcrumb { font-size: 13px; color: rgba(13,31,51,.5); margin-bottom: 14px; }
body.skm-page-cart .skm-cart-breadcrumb a { color: rgba(13,31,51,.5); text-decoration: none; }
body.skm-page-cart .skm-cart-breadcrumb a:hover { color: var(--skm-blue); }
body.skm-page-cart .skm-cart-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 20px; }
body.skm-page-cart .skm-cart-title { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); margin: 0; }
body.skm-page-cart .skm-cart-count { font-size: 14px; color: rgba(13,31,51,.45); }
/* Cards */
body.skm-page-cart .skm-cart-cards { display: flex; flex-direction: column; gap: 12px; }
body.skm-page-cart .skm-cart-card { display: flex; gap: 16px; background: #fff; border: 1px solid var(--skm-border); border-radius: 14px; padding: 20px; align-items: flex-start; }
body.skm-page-cart .skm-cart-card__icon { width: 44px; min-width: 44px; height: 44px; background: rgba(43,127,224,.1); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--skm-blue); }
body.skm-page-cart .skm-cart-card__body { flex: 1; min-width: 0; }
body.skm-page-cart .skm-cart-card__top { display: flex; gap: 16px; align-items: flex-start; }
body.skm-page-cart .skm-cart-card__info { flex: 1; min-width: 0; }
body.skm-page-cart .skm-cart-card__aside { text-align: right; flex-shrink: 0; }
body.skm-page-cart .skm-cart-card__name { font-size: 15px; font-weight: 600; color: var(--skm-text-heading); margin: 0 0 3px; }
body.skm-page-cart .skm-cart-card__dur { font-size: 13px; color: rgba(13,31,51,.45); margin: 0 0 6px; }
body.skm-page-cart .skm-cart-card__desc { font-size: 13px; color: rgba(13,31,51,.6); margin: 0 0 10px; line-height: 1.5; }
body.skm-page-cart .skm-cart-card__badge { display: inline-flex; align-items: center; background: rgba(43,127,224,.08); color: var(--skm-blue); font-size: 12px; font-weight: 500; padding: 3px 10px; border-radius: 20px; }
body.skm-page-cart .skm-cart-card__price { font-size: 18px; font-weight: 700; color: var(--skm-text-heading); margin: 0 0 8px; white-space: nowrap; }
body.skm-page-cart .skm-cart-card__price .woocommerce-Price-amount { font-size: inherit; color: inherit; font-weight: inherit; }
body.skm-page-cart .skm-cart-card__rm { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: rgba(13,31,51,.4); text-decoration: none; white-space: nowrap; }
body.skm-page-cart .skm-cart-card__rm:hover { color: #C0392B; }
/* Back link */
body.skm-page-cart .skm-cart-back { display: inline-flex; align-items: center; gap: 7px; margin-top: 20px; font-size: 13px; color: rgba(13,31,51,.4); text-decoration: none; }
body.skm-page-cart .skm-cart-back:hover { color: var(--skm-blue); }
/* Order summary (right column) */
body.skm-page-cart .cart-collaterals { position: sticky; top: 100px; }
body.skm-page-cart .cart_totals { background: #fff; border: 1px solid var(--skm-border); border-radius: 14px; padding: 24px; }
body.skm-page-cart .cart_totals h2 { display: block !important; font-size: 15px; font-weight: 700; color: var(--skm-text-heading); margin: 0 0 18px; }
body.skm-page-cart .cart_totals table { width: 100%; border: none; }
body.skm-page-cart .cart_totals table th,
body.skm-page-cart .cart_totals table td { border: none; padding: 5px 0; font-size: 13px; }
body.skm-page-cart .cart_totals table th { color: rgba(13,31,51,.65); font-weight: 400; }
body.skm-page-cart .cart_totals table { width: 100% !important; table-layout: fixed !important; }
body.skm-page-cart .cart_totals table th { width: 68%; }
body.skm-page-cart .cart_totals table td { font-weight: 500; color: var(--skm-text-heading); text-align: right !important; white-space: nowrap; }
body.skm-page-cart .skm-summary-item th { font-size: 13px; color: rgba(13,31,51,.7); text-transform: none !important; }
body.skm-page-cart .skm-summary-item td .woocommerce-Price-amount { font-weight: 500; }
body.skm-page-cart .skm-summary-sub th,
body.skm-page-cart .skm-summary-sub td { border-top: 1px solid var(--skm-border); padding-top: 12px; color: rgba(13,31,51,.5); text-transform: none !important; }
body.skm-page-cart .order-total th,
body.skm-page-cart .order-total td { font-size: 15px; font-weight: 700; border-top: 1px solid var(--skm-border); padding-top: 12px; text-transform: none !important; }
/* Proceed button */
body.skm-page-cart .wc-proceed-to-checkout { margin-top: 16px; }
body.skm-page-cart .wc-proceed-to-checkout .checkout-button {
	display: flex !important; width: 100%; align-items: center !important; justify-content: center !important;
	height: auto !important; min-height: 0 !important; padding: 14px 24px !important; line-height: 1.2 !important;
	background: var(--skm-blue) !important; color: #fff !important; border-radius: 10px !important;
	font-size: 15px !important; font-weight: 600 !important; text-decoration: none; border: none !important;
	box-sizing: border-box !important;
}
body.skm-page-cart .wc-proceed-to-checkout .checkout-button:hover { background: #1a6fd4 !important; }
body.skm-page-cart .skm-cart-trust { font-size: 11px; color: rgba(13,31,51,.4); text-align: center; margin: 10px 0 0; }
/* Hide Stripe express checkout (GPay/Apple Pay) on cart — not in design */
body.skm-page-cart #wc-stripe-express-checkout-element,
body.skm-page-cart #wc-stripe-payment-request-button,
body.skm-page-cart .wc-stripe-product-checkout-container,
body.skm-page-cart .wc-stripe-cart-checkout-container,
body.skm-page-cart .wc-stripe-cart-page { display: none !important; }
/* Coupon accordion */
body.skm-page-cart .skm-coupon-acc { border-top: 1px solid var(--skm-border); margin-top: 20px; padding-top: 16px; }
body.skm-page-cart .skm-coupon-acc__toggle { width: 100%; background: none; border: none; display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: 500; color: rgba(13,31,51,.65); cursor: pointer; padding: 0; }
body.skm-page-cart .skm-coupon-acc__toggle svg { transition: transform .2s; }
body.skm-page-cart .skm-coupon-acc__toggle.is-open svg { transform: rotate(180deg); }
body.skm-page-cart .skm-coupon-acc__body { padding-top: 12px; }
body.skm-page-cart .skm-coupon-row { display: flex; gap: 8px; }
body.skm-page-cart .skm-coupon-input { flex: 1; padding: 10px 14px; border: 1px solid var(--skm-border); border-radius: 8px; font-size: 13px; outline: none; }
body.skm-page-cart .skm-coupon-input:focus { border-color: var(--skm-blue); }
body.skm-page-cart .skm-coupon-btn { padding: 10px 16px; background: var(--skm-surface, #f5f7fa); border: 1px solid var(--skm-border); border-radius: 8px; font-size: 13px; font-weight: 500; cursor: pointer; color: var(--skm-text-heading); }
/* Empty cart */
body.skm-page-cart .woocommerce-info { display: none !important; }

/* ------ Checkout page ------ */
/* Grid on the form itself — #customer_details and #order_review are its direct children */
/* BB checkout column layout */
body.skm-page-checkout form.woocommerce-checkout { display: block !important; }
body.skm-page-checkout .bb-wc-co { display: flex !important; gap: 32px; align-items: flex-start; }
body.skm-page-checkout .bb-wc-col:first-child { flex: 1; min-width: 0; }
body.skm-page-checkout .bb-wc-col:last-child { width: 360px; flex-shrink: 0; display: flex; flex-direction: column; gap: 16px; position: sticky; top: 100px; }
/* Cards */
body.skm-page-checkout .skm-co-card { background: #fff; border: 1px solid var(--skm-border); border-radius: 14px; padding: 24px; margin-bottom: 20px; }
body.skm-page-checkout .bb-wc-col:last-child .skm-co-card { margin-bottom: 0; }
/* Section heads */
body.skm-page-checkout .skm-co-head { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
body.skm-page-checkout .skm-co-head--payment { justify-content: space-between; }
body.skm-page-checkout .skm-co-head__left { display: flex; align-items: center; gap: 10px; }
body.skm-page-checkout .skm-co-num { width: 28px; height: 28px; background: var(--skm-blue); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex-shrink: 0; }
body.skm-page-checkout .skm-co-title { font-size: 17px; font-weight: 700; color: var(--skm-text-heading); margin: 0; }
body.skm-page-checkout .skm-co-secure { font-size: 12px; color: rgba(13,31,51,.45); display: flex; align-items: center; gap: 5px; }
/* Hide WC heads + elements we replaced */
body.skm-page-checkout #order_review_heading,
body.skm-page-checkout .woocommerce-billing-fields > h3 { display: none !important; }
body.skm-page-checkout .woocommerce-form-coupon-toggle[hidden],
body.skm-page-checkout #billing_country_field[hidden],
body.skm-page-checkout #order_review[hidden],
body.skm-page-checkout .woocommerce-checkout-review-order-table[hidden] { display: none !important; }
/* Billing fields */
body.skm-page-checkout .woocommerce-billing-fields .form-row { margin-bottom: 14px; }
body.skm-page-checkout .woocommerce-billing-fields label,
body.skm-page-checkout #billing_postcode_field label { font-size: 13px; font-weight: 500; color: rgba(13,31,51,.7); display: block; margin-bottom: 5px; }
body.skm-page-checkout .skm-co-lbl-note { font-weight: 400; color: rgba(13,31,51,.4); }
body.skm-page-checkout .woocommerce-billing-fields input[type="text"],
body.skm-page-checkout .woocommerce-billing-fields input[type="email"],
body.skm-page-checkout .woocommerce-billing-fields input[type="tel"],
body.skm-page-checkout #billing_postcode_field input[type="text"] { width: 100%; padding: 10px 14px; border: 1.5px solid var(--skm-border); border-radius: 8px; font-size: 14px; color: var(--skm-text-heading); background: #fff; box-sizing: border-box; }
body.skm-page-checkout .woocommerce-billing-fields input:focus,
body.skm-page-checkout #billing_postcode_field input:focus { border-color: var(--skm-blue) !important; outline: none; box-shadow: 0 0 0 3px rgba(43,127,224,.12) !important; }
body.skm-page-checkout .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
body.skm-page-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
body.skm-page-checkout #billing_postcode_field { margin-bottom: 14px; }
/* Payment tabs */
body.skm-page-checkout #payment ul.payment_methods { display: flex; gap: 10px; list-style: none; padding: 0; margin: 0 0 20px; border: none; background: none; }
body.skm-page-checkout #payment ul.payment_methods li { flex: 1; border: none; border-radius: 0; padding: 0; cursor: default; display: block; }
body.skm-page-checkout #payment ul.payment_methods li input[type="radio"] { display: none; }
body.skm-page-checkout #payment ul.payment_methods li > label { display: none; }
body.skm-page-checkout #payment ul.payment_methods li label img { height: 20px; width: auto; opacity: .7; }
/* Payment box (Stripe field area) */
body.skm-page-checkout #payment .payment_box { border: none; background: none; padding: 0; margin: 0; }
body.skm-page-checkout #payment .payment_box::before { display: none; }
body.skm-page-checkout #payment .payment_box > fieldset:not(#wc-stripe-upe-form) { display: none; }
body.skm-page-checkout #payment .woocommerce-checkout-payment { background: none; border: none; }
/* Place order button */
body.skm-page-checkout #place_order { display: flex !important; width: 100%; align-items: center !important; justify-content: center !important; height: auto !important; min-height: 0 !important; padding: 14px 24px !important; line-height: 1.2 !important; background: var(--skm-blue) !important; color: #fff !important; border-radius: 10px !important; font-size: 15px !important; font-weight: 600 !important; border: none !important; cursor: pointer; margin-top: 20px; box-sizing: border-box !important; }
body.skm-page-checkout #place_order:hover { background: #1a6fd4 !important; }
body.skm-page-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 12px; color: rgba(13,31,51,.5); margin-top: 10px; }
/* Custom order summary */
body.skm-page-checkout .skm-co-sum-title { font-size: 16px; font-weight: 700; color: var(--skm-text-heading); margin: 0 0 16px; }
body.skm-page-checkout .skm-co-sum-lines { margin-bottom: 4px; }
body.skm-page-checkout .skm-co-sr { display: flex; justify-content: space-between; align-items: baseline; padding: 5px 0; font-size: 13px; }
body.skm-page-checkout .skm-co-sr__n { flex: 1; padding-right: 12px; color: var(--skm-text-heading); }
body.skm-page-checkout .skm-co-sr__p { flex-shrink: 0; font-weight: 500; }
body.skm-page-checkout .skm-co-sum-sep { border-top: 1px solid var(--skm-border); margin: 12px 0; }
body.skm-page-checkout .skm-co-sr--light { color: rgba(13,31,51,.6); }
body.skm-page-checkout .skm-co-sr--total { color: var(--skm-text-heading); font-weight: 700; font-size: 15px; padding-top: 12px; border-top: 1px solid var(--skm-border); margin-top: 6px; }
body.skm-page-checkout .skm-co-vat-note { font-size: 11px; color: rgba(13,31,51,.4); text-align: right; margin: 2px 0 0; }
/* WHAT HAPPENS NEXT */
body.skm-page-checkout .skm-co-next-title { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(13,31,51,.4); margin: 0 0 14px; }
body.skm-page-checkout .skm-co-next-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
body.skm-page-checkout .skm-co-next-list li { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: rgba(13,31,51,.75); line-height: 1.45; }
body.skm-page-checkout .skm-co-next-list li svg { flex-shrink: 0; margin-top: 1px; color: var(--skm-blue); }
/* Trust badges */
body.skm-page-checkout .skm-co-badges { display: flex; gap: 18px; padding: 0 4px; }
body.skm-page-checkout .skm-co-badges span { display: flex; align-items: center; gap: 5px; font-size: 12px; color: rgba(13,31,51,.45); }

/* ------ Order Confirmation ------ */
/* Hide WC native thank-you content — our card replaces it */
body.skm-page-order-received .woocommerce-notice,
body.skm-page-order-received .woocommerce-order-overview,
body.skm-page-order-received .woocommerce-order-details,
body.skm-page-order-received .woocommerce-customer-details { display: none !important; }

/* ------ Order confirmation two-column layout ------ */
body.skm-page-order-received .woocommerce { max-width: 1100px !important; }
body.skm-page-order-received .woocommerce-thankyou-order-received { display: none !important; }
body.skm-page-order-received .bb-wc-thankyou { display: none !important; }
body.skm-page-order-received .woocommerce-order-end { display: none !important; }
body.skm-page-order-received .woocommerce-order > *:not(.skm-order-confirmation) { display: none !important; }
body.skm-page-order-received .skm-order-confirmation { display: flex !important; }

.skm-order-confirmation { display: flex; gap: 48px; align-items: flex-start; padding: 40px 0 80px; }
.skm-order-confirmation__left { flex: 1; min-width: 0; }
.skm-order-confirmation__right { width: 340px; flex-shrink: 0; }

/* Left: icon */
.skm-order-confirmation__icon-wrap {
	width: 44px; height: 44px; border-radius: 50%; background: #1F8A5B;
	display: inline-flex; align-items: center; justify-content: center; margin-bottom: 16px;
}
/* Left: label */
.skm-order-confirmation__label { font-size: 12px; font-weight: 700; letter-spacing: .08em; color: #1F8A5B; margin: 0 0 10px; text-transform: uppercase; }
/* Left: heading */
.skm-order-confirmation__title { font-size: 32px; font-weight: 700; color: var(--skm-text-heading); margin: 0 0 12px; line-height: 1.2; }
/* Left: sub */
.skm-order-confirmation__sub { font-size: 15px; color: rgba(13,31,51,.55); margin: 0 0 28px; }
/* Left: benefits */
.skm-order-confirmation__benefits { list-style: none; padding: 0; margin: 0 0 32px; }
.skm-order-confirmation__benefits li {
	padding: 8px 0; font-size: 15px; color: rgba(13,31,51,.75);
	display: flex; align-items: center; gap: 10px;
}
.skm-order-confirmation__benefits li::before {
	content: ""; display: inline-block; flex-shrink: 0;
	width: 20px; height: 20px; border-radius: 50%; background: #1F8A5B;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-size: 12px; background-repeat: no-repeat; background-position: center;
}
/* Left: actions */
.skm-order-confirmation__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* Right: dark card */
.skm-order-confirmation__right {
	background: var(--skm-navy); border-radius: 16px; padding: 28px;
	color: rgba(255,255,255,.75);
}
.skm-order-confirmation__summary-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.skm-order-confirmation__summary-title { font-size: 15px; font-weight: 600; color: #fff; margin: 0; }
.skm-order-confirmation__paid-badge {
	font-size: 11px; font-weight: 700; background: #1F8A5B; color: #fff;
	padding: 2px 8px; border-radius: 20px; letter-spacing: .04em;
}
.skm-order-confirmation__summary-ref { font-size: 12px; color: rgba(255,255,255,.4); margin: 0 0 20px; }
.skm-order-confirmation__rows { border-top: 1px solid rgba(255,255,255,.1); }
.skm-order-confirmation__row {
	display: flex; justify-content: space-between; padding: 11px 0;
	font-size: 14px; border-bottom: 1px solid rgba(255,255,255,.1);
}
.skm-order-confirmation__row span:first-child { color: rgba(255,255,255,.45); }
.skm-order-confirmation__row span:last-child  { font-weight: 500; color: #fff; }
.skm-order-confirmation__row--total { border-bottom: none; padding-top: 16px; }
.skm-order-confirmation__row--total span { font-size: 18px; font-weight: 700; color: #fff; }
.skm-order-confirmation__receipt-link {
	display: flex; align-items: center; gap: 6px; margin-top: 20px;
	padding-top: 18px; border-top: 1px solid rgba(255,255,255,.1);
	font-size: 13px; color: rgba(255,255,255,.6); text-decoration: none;
}
.skm-order-confirmation__receipt-link:hover { color: #fff; }

/* Responsive */
@media (max-width: 768px) {
	.skm-order-confirmation { flex-direction: column; }
	.skm-order-confirmation__right { width: 100%; }
	.skm-order-confirmation__title { font-size: 24px; }
}

/* ------ Billing History page ------ */
body.skm-page-billing .entry-content { padding: 0 !important; max-width: none !important; }
/* Billing: .skm-dash is the outer flex container (sidebar + body), not skm-dash__body */
body.skm-page-billing .skm-dash {
	display: flex; align-items: flex-start; gap: 28px;
	padding: 36px 0 80px;
	max-width: var(--skm-container); margin-inline: auto;
}
body.skm-page-billing .skm-dash__body { flex: 1; display: block !important; padding: 0; min-width: 0; background: transparent; max-width: none !important; margin: 0 !important; }
/* Override the general skm-dash__body padding for billing */
body.skm-page-billing .skm-dash > .skm-dash__body { padding: 0 !important; }

/* Page head */
.skm-billing__head { margin-bottom: 24px; }
.skm-billing__title { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -0.02em; margin: 0 0 4px; }
.skm-billing__sub   { font-size: 13px; color: rgba(13,31,51,.45); margin: 0; }

/* Plan card — dark navy per mockup */
.skm-billing__plan {
	background: #0D1F33; border-radius: 12px;
	padding: 24px 28px; display: flex; align-items: center; justify-content: space-between;
	gap: 24px; margin-bottom: 20px; flex-wrap: wrap;
}
.skm-billing__plan--free { background: #fff; border: 1px solid var(--skm-border); }
.skm-billing__plan-left { flex: 1; min-width: 0; }
.skm-billing__plan-badges { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; flex-wrap: wrap; }
.skm-billing__plan-tier .skm-tier-badge,
.skm-billing__plan-tier { display: inline-flex !important; align-items: center; gap: 3px; font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 6px; background: #EEF5FD !important; color: #185FA5 !important; border: 1px solid #B5D4F4; }
.skm-billing__plan-status { font-size: 11px; font-weight: 500; padding: 3px 8px; border-radius: 5px; background: rgba(31,138,91,.25); color: #4ADE80; }
.skm-billing__plan-price { font-size: 20px; font-weight: 700; color: #fff; margin: 0 0 4px; }
.skm-billing__plan-meta { font-size: 13px; color: rgba(255,255,255,.5); margin: 0; }
.skm-billing__plan-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.skm-billing__plan-btn { padding: 9px 18px; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; font-size: 13px; font-weight: 500; color: rgba(255,255,255,.7) !important; background: transparent; text-decoration: none !important; white-space: nowrap; }
.skm-billing__plan-btn:hover { border-color: rgba(255,255,255,.4) !important; color: #fff !important; }
.skm-billing__plan-cancel { padding: 9px 18px; border: 1px solid rgba(255,255,255,.12); border-radius: 8px; font-size: 13px; font-weight: 500; color: rgba(255,255,255,.45) !important; background: transparent; text-decoration: none !important; white-space: nowrap; }
.skm-billing__plan-cancel:hover { color: rgba(255,255,255,.7) !important; }

/* Payment card */
.skm-billing__card-row {
	background: #fff; border: 1px solid var(--skm-border); border-radius: 12px;
	padding: 20px 24px; display: flex; align-items: center; gap: 16px; margin-bottom: 20px;
}
.skm-billing__card-icon { flex-shrink: 0; }
.skm-billing__card-info { flex: 1; min-width: 0; }
.skm-billing__card-label { font-size: 14px; font-weight: 500; color: var(--skm-text-heading); margin: 0 0 2px; }
.skm-billing__card-exp   { font-size: 12px; color: rgba(13,31,51,.45); margin: 0; }

/* History table card */
.skm-billing__table-wrap { background: #fff; border: 1px solid var(--skm-border); border-radius: 12px; overflow: hidden; }
.skm-billing__table-hd { padding: 18px 24px 14px; border-bottom: 1px solid #F0F2F4; display: flex; align-items: center; justify-content: space-between; }
.skm-billing__history-title { font-size: 15px; font-weight: 600; color: var(--skm-text-heading); margin: 0; }
.skm-billing__export { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; color: var(--skm-blue) !important; padding: 6px 12px; border: 1px solid rgba(43,127,224,.3); border-radius: 6px; background: #fff; text-decoration: none !important; }
.skm-billing__export:hover { background: rgba(43,127,224,.05) !important; }
.skm-billing__empty { font-size: 14px; color: rgba(13,31,51,.4); padding: 32px 24px; text-align: center; margin: 0; }

/* Table */
.skm-billing__table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.skm-billing__table thead th {
	padding: 10px 24px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
	color: rgba(13,31,51,.45); background: #F5F7FA; text-align: left; border-bottom: 1px solid #E2E6EA;
}
.skm-billing__table thead th:nth-child(1) { width: 130px; }
.skm-billing__table thead th:nth-child(3) { width: 110px; }
.skm-billing__table thead th:nth-child(4) { width: 120px; }
.skm-billing__table thead th:nth-child(5) { width: 110px; }
.skm-billing__table tbody tr:hover { background: #FAFBFC; }
.skm-billing__table tbody td { padding: 14px 24px; border-bottom: 1px solid #F5F7FA; font-size: 13px; vertical-align: middle; }
.skm-billing__table tbody tr:last-child td { border-bottom: none; }
.skm-billing__td-date { color: rgba(13,31,51,.6); white-space: nowrap; }
.skm-billing__td-amount { font-weight: 600; color: var(--skm-text-heading); }
.skm-billing__desc { display: block; font-size: 13px; font-weight: 500; color: var(--skm-text-heading); margin-bottom: 2px; }
.skm-billing__inv-num { display: block; font-size: 11px; color: rgba(13,31,51,.4); }
.skm-billing__status { display: inline-block; padding: 3px 9px; border-radius: 5px; font-size: 11px; font-weight: 600; }
.skm-billing__status.is-completed  { background: rgba(31,138,91,.1);  color: #1F8A5B; }
.skm-billing__status.is-refunded   { background: rgba(13,31,51,.06);  color: rgba(13,31,51,.5); }
.skm-billing__status.is-processing { background: rgba(43,127,224,.1); color: var(--skm-blue); }
.skm-billing__dl { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--skm-blue) !important; text-decoration: none !important; }
.skm-billing__dl:hover { text-decoration: underline !important; }

/* Cart trust text injected below proceed-to-checkout */
.skm-cart-trust { font-size: 11px; color: rgba(13,31,51,.4); text-align: center; margin-top: 10px; }

/* Responsive */
@media (max-width: 900px) {
	body.skm-page-cart .woocommerce { grid-template-columns: 1fr; }
	/* Real bug found via audit: this rule targeted form.woocommerce-checkout's
	   grid-template-columns, but that element is display:block !important
	   (line 3894) — never a grid, so the property was always inert. The
	   real flex row that needs collapsing is .bb-wc-co, with its sticky
	   360px sidebar column, which had no mobile override at all. */
	body.skm-page-checkout .bb-wc-co { flex-direction: column; }
	body.skm-page-checkout .bb-wc-col:last-child { width: 100%; position: static; top: auto; }
	body.skm-page-cart .cart-collaterals,
	body.skm-page-checkout #order_review { position: static; }
	body.skm-page-billing .skm-dash { flex-direction: column; }
	body.skm-page-billing .skm-dash__body { padding: 24px 20px 60px; }
	.skm-billing__plan { flex-direction: column; align-items: flex-start; gap: 16px; }
	.skm-billing__plan-actions { flex-wrap: wrap; }
	.skm-billing__table-wrap { overflow-x: auto; }
	.skm-billing__table { min-width: 500px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   MOBILE HEADER — ≤767px
   Logged-out: pill + custom hamburger + search bar + right-slide drawer
   Logged-in:  icon trio on right + bottom nav (no hamburger)
═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {

/* ── Shared mobile header base ─────────────────────────────────────────── */
.bb-mobile-header {
	height: 52px !important; padding: 0 16px !important;
	display: flex !important; align-items: center !important;
	justify-content: space-between !important;
	background: #fff !important; border-bottom: 1px solid #E2E6EA !important;
}
/* Real bug found live: .mobile-logo-wrapper carries its own 15px left/right
   padding on top of .bb-mobile-header's 16px, pushing the logo ~31px in from
   the edge instead of sitting flush after the header's own padding. */
.mobile-logo-wrapper { flex: none !important; padding: 0 !important; }
.mobile-logo-wrapper .bb-mobile-logo { height: 22px !important; width: auto !important; max-width: 140px !important; }

/* Right icon group (both states) */
.skm-mob-right { display: flex; align-items: center; gap: 8px; }

/* Bordered icon buttons (logged-in) */
.skm-mob-icon-btn {
	width: 34px; height: 34px; border-radius: 8px;
	border: 1px solid #E2E6EA; background: #fff;
	display: flex; align-items: center; justify-content: center;
	cursor: pointer; position: relative; padding: 0; flex-shrink: 0;
}
.skm-mob-icon-btn:hover { border-color: #C8D0D9; }

/* Notification dot */
.skm-mob-dot {
	position: absolute; top: 7px; right: 7px;
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--skm-blue); border: 1.5px solid #fff;
}

/* Avatar circle */
.skm-mob-avatar {
	width: 34px; height: 34px; border-radius: 50%;
	background: var(--skm-blue); border: 2px solid #EEF5FD;
	display: flex; align-items: center; justify-content: center;
	font-size: 11px; font-weight: 700; color: #fff;
	cursor: pointer; text-decoration: none; flex-shrink: 0;
}

/* "List aircraft" pill (logged-out) */
.skm-mob-list-pill {
	display: inline-flex; align-items: center; gap: 3px;
	background: var(--skm-blue); color: #fff;
	height: 36px; border-radius: 20px; padding: 0 12px;
	font-size: 12px; font-weight: 500; text-decoration: none; white-space: nowrap;
}
.skm-mob-list-pill:hover { background: var(--skm-blue-hover); color: #fff; }
.skm-mob-list-pill svg { flex-shrink: 0; }

/* Custom hamburger (logged-out) */
.skm-mob-burger {
	width: 36px; height: 36px; border-radius: 8px;
	border: 1px solid #E2E6EA; background: #fff;
	display: flex; flex-direction: column; align-items: center;
	justify-content: center; gap: 4px; cursor: pointer; padding: 0;
}
.skm-mob-burger span {
	display: block; width: 16px; height: 1.5px;
	background: #0D1F33; border-radius: 1px;
}
.skm-mob-burger span.s { width: 11px; margin-left: -5px; }

/* ── Persistent search bar (logged-out) ────────────────────────────────── */
.skm-mob-search-bar {
	padding: 10px 16px; background: #fff;
	border-bottom: 1px solid #E2E6EA;
}
.skm-mob-search-bar__inner {
	display: flex; align-items: center; gap: 8px;
	background: #F5F7FA; border: 1px solid #E2E6EA;
	border-radius: 9px; padding: 0 12px;
}
.skm-mob-search-bar__inner input {
	flex: 1; padding: 9px 0; border: none; background: transparent;
	font-size: 14px; color: var(--skm-text-heading); outline: none;
	font-family: inherit;
}

/* ── Custom right-slide drawer (logged-out) ────────────────────────────── */
.skm-mob-drawer { position: fixed; inset: 0; z-index: 99999; pointer-events: none; }
.skm-mob-drawer.is-open { pointer-events: auto; }

.skm-mob-drawer__overlay {
	position: absolute; inset: 0; background: rgba(13,31,51,0.4);
	opacity: 0; transition: opacity .25s;
}
.skm-mob-drawer.is-open .skm-mob-drawer__overlay { opacity: 1; }

.skm-mob-drawer__panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: 80%;
	max-width: 320px; background: #fff; display: flex; flex-direction: column;
	box-shadow: -4px 0 24px rgba(13,31,51,.2);
	transform: translateX(100%); transition: transform .25s cubic-bezier(.4,0,.2,1);
}
.skm-mob-drawer.is-open .skm-mob-drawer__panel { transform: translateX(0); }

.skm-mob-drawer__head {
	padding: 14px 16px; border-bottom: 1px solid #F0F2F4;
	display: flex; align-items: center; justify-content: space-between; flex-shrink: 0;
}
.skm-mob-drawer__head p { font-size: 14px; font-weight: 600; color: #0D1F33; margin: 0; }
.skm-mob-drawer__close {
	width: 28px; height: 28px; border-radius: 6px;
	border: 1px solid #E2E6EA; background: #fff;
	font-size: 16px; color: rgba(13,31,51,.5); cursor: pointer;
	display: flex; align-items: center; justify-content: center; line-height: 1;
}

.skm-mob-drawer__search {
	padding: 10px 14px; border-bottom: 1px solid #F0F2F4;
	display: flex; align-items: center; gap: 7px; flex-shrink: 0;
	background: #F5F7FA; border-radius: 8px; margin: 10px 14px 0;
}
.skm-mob-drawer__search input {
	flex: 1; padding: 7px 0; border: none; background: transparent;
	font-size: 13px; color: #0D1F33; outline: none; font-family: inherit;
}

.skm-mob-drawer__nav { flex: 1; overflow-y: auto; padding-top: 4px; }
.skm-mob-drawer__link {
	display: flex; align-items: center; justify-content: space-between;
	padding: 15px 20px; font-size: 15px; font-weight: 500; color: #0D1F33;
	border-bottom: 1px solid #F0F2F4; text-decoration: none;
}
.skm-mob-drawer__link:hover { background: #F5F7FA; color: #0D1F33; }
.skm-mob-drawer__link:last-child { border-bottom: none; }

.skm-mob-drawer__foot {
	padding: 12px 14px; border-top: 1px solid #E2E6EA;
	display: flex; flex-direction: column; gap: 8px; flex-shrink: 0;
}
.skm-mob-drawer__signin {
	display: block; text-align: center; padding: 11px;
	border: 1.5px solid #D0D7E0; border-radius: 8px;
	font-size: 14px; font-weight: 500; color: #0D1F33; text-decoration: none;
}
.skm-mob-drawer__signin:hover { background: #F5F7FA; color: #0D1F33; }
.skm-mob-drawer__register {
	display: block; text-align: center; padding: 11px;
	background: var(--skm-blue); border-radius: 8px;
	font-size: 14px; font-weight: 500; color: #fff; text-decoration: none;
}
.skm-mob-drawer__register:hover { background: var(--skm-blue-hover); color: #fff; }

/* ── Bottom navigation (logged-in) ────────────────────────────────────── */
.skm-bottom-nav {
	position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999;
	height: 64px; background: #fff; border-top: 1px solid #E2E6EA;
	display: flex; align-items: center;
}
.skm-bnav-item {
	flex: 1; display: flex; flex-direction: column;
	align-items: center; justify-content: center; gap: 3px;
	text-decoration: none; color: rgba(13,31,51,.4);
	font-size: 10px; font-weight: 500; padding: 6px 4px;
	-webkit-tap-highlight-color: transparent;
}
.skm-bnav-item svg { color: rgba(13,31,51,.4); }
.skm-bnav-item.is-active { color: var(--skm-blue); }
.skm-bnav-item.is-active svg { color: var(--skm-blue); stroke: var(--skm-blue); }
.skm-bnav-item span { white-space: nowrap; }

/* FAB center button */
.skm-bnav-fab { flex: none; width: 64px; }
.skm-bnav-fab__btn {
	width: 50px; height: 50px; border-radius: 50%;
	background: var(--skm-blue); display: flex; align-items: center; justify-content: center;
	box-shadow: 0 3px 12px rgba(43,127,224,.45); margin-top: -18px;
}

/* Messages badge */
.skm-bnav-msg-wrap { position: relative; display: inline-flex; }
.skm-bnav-badge {
	position: absolute; top: -4px; right: -6px;
	min-width: 14px; height: 14px; border-radius: 7px;
	background: var(--skm-blue); color: #fff;
	font-size: 8px; font-weight: 700; line-height: 1;
	display: flex; align-items: center; justify-content: center;
	padding: 0 3px; border: 1.5px solid #fff;
}

/* Account avatar in bottom nav */
.skm-bnav-avatar {
	width: 22px; height: 22px; border-radius: 50%;
	background: #E0EBFF; display: flex; align-items: center; justify-content: center;
	font-size: 9px; font-weight: 700; color: var(--skm-blue);
}
.skm-bnav-item.is-active .skm-bnav-avatar { background: var(--skm-blue); color: #fff; }

/* Push page content above bottom nav */
.logged-in body,
body.logged-in { padding-bottom: 64px !important; }

/* ── Full-screen search overlay (logged-in) ────────────────────────────── */
.skm-mob-srch-ov {
	position: fixed; inset: 0; z-index: 99999; background: #fff;
	display: none; flex-direction: column;
}
.skm-mob-srch-ov.is-open { display: flex; }
.skm-mob-srch-ov__bar {
	display: flex; align-items: center; gap: 10px;
	padding: 12px 16px; border-bottom: 1px solid #E2E6EA; flex-shrink: 0;
}
.skm-mob-srch-ov__bar input {
	flex: 1; border: none; outline: none; font-size: 16px;
	color: var(--skm-text-heading); font-family: inherit;
}
.skm-mob-srch-ov__close {
	font-size: 20px; color: rgba(13,31,51,.4); background: none;
	border: none; cursor: pointer; padding: 4px; line-height: 1;
}

/* Hide BuddyBoss default mobile hamburger menu overlay on logged-in */
.logged-in .bb-mobile-header-wrapper .bb-left-panel-icon-wrap { display: none !important; }
/* Reinforce desktop nav hidden, mobile wrapper visible */
.site-header-container { display: none !important; }
.bb-mobile-header-wrapper { display: block !important; }

} /* end @media (max-width: 767px) */

/* ═══════════════════════════════════════════════════════════════════════════
   MODULE 7a — Account Settings
   ═══════════════════════════════════════════════════════════════════════════ */

.skm-acct-main { padding: 28px 32px; }
.skm-acct-page-head { margin-bottom: 24px; }
.skm-acct-title { font-size: 22px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -0.02em; margin: 0 0 4px; }
.skm-acct-sub { font-size: 13px; color: rgba(13,31,51,.45); }

/* Tab bar */
.skm-acct-tabs { display: flex; gap: 0; border-bottom: 2px solid #E2E6EA; margin-bottom: 24px; }
.skm-acct-tab { padding: 10px 18px; font-size: 14px; font-weight: 400; color: rgba(13,31,51,.55); border: none; background: transparent !important; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; font-family: inherit; transition: color .15s; box-shadow: none !important; outline: none !important; border-radius: 0 !important; }
.skm-acct-tab:hover { color: var(--skm-text-heading) !important; background: transparent !important; }
.skm-acct-tab:focus { background: transparent !important; box-shadow: none !important; }
.skm-acct-tab:active { background: transparent !important; }
.skm-acct-tab.is-active { color: var(--skm-blue) !important; font-weight: 500; border-bottom-color: var(--skm-blue) !important; background: transparent !important; }
.skm-acct-tab--danger, .skm-acct-tab--danger:hover, .skm-acct-tab--danger:focus { color: #C0392B !important; background: transparent !important; }
.skm-acct-tab--danger.is-active { border-bottom-color: #C0392B !important; background: transparent !important; }

/* Panels */
.skm-acct-panel { display: none; flex-direction: column; gap: 20px; }
.skm-acct-panel.is-active { display: flex; }

/* Cards */
.skm-acct-card { background: #fff; border: 1px solid #E2E6EA; border-radius: 12px; padding: 28px 32px; }
.skm-acct-card__title { font-size: 15px; font-weight: 600; color: var(--skm-text-heading); padding-bottom: 16px; border-bottom: 1px solid #F0F2F4; margin: 0 0 20px; }
.skm-acct-card__desc { font-size: 13px; color: rgba(13,31,51,.5); line-height: 1.55; margin-bottom: 20px; }

/* Grids */
.skm-acct-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.skm-acct-field--full { grid-column: 1 / -1; }

/* Fields */
.skm-acct-field { display: flex; flex-direction: column; gap: 7px; }
.skm-acct-field label { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); }
.skm-acct-field__note { font-size: 12px; font-weight: 400; color: rgba(13,31,51,.4); }
.skm-acct-field input,
.skm-acct-field textarea,
.skm-acct-pass-form input { width: 100%; padding: 10px 14px; border: 1px solid #E2E6EA; border-radius: 8px; font-size: 15px; color: var(--skm-text-heading); font-family: inherit; background: #fff; transition: border-color .15s, box-shadow .15s; }
.skm-acct-field input:focus,
.skm-acct-field textarea:focus,
.skm-acct-pass-form input:focus { outline: none; border-color: var(--skm-blue) !important; box-shadow: 0 0 0 3px rgba(43,127,224,.1); }
.skm-acct-field textarea { resize: vertical; line-height: 1.55; }
.skm-acct-char-count { font-size: 12px; color: rgba(13,31,51,.4); margin: 0; }
.skm-acct-section-label { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); margin-bottom: 16px; }

/* Avatar row */
.skm-acct-avatar-row { display: flex; align-items: center; gap: 24px; margin-bottom: 28px; }
.skm-acct-avatar { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
.skm-acct-avatar-label { font-size: 14px; font-weight: 500; color: var(--skm-text-heading); margin-bottom: 4px; }
.skm-acct-avatar-hint { font-size: 12px; color: rgba(13,31,51,.45); margin-bottom: 10px; }
.skm-acct-avatar-btns { display: flex; gap: 8px; }

/* Buttons */
.skm-acct-btn { display: inline-flex; align-items: center; justify-content: center; font-family: inherit; font-size: 14px; font-weight: 500; border-radius: 8px; padding: 9px 20px; cursor: pointer; transition: background .15s, border-color .15s, color .15s; border: none; }
.skm-acct-btn--primary { background: var(--skm-blue); color: #fff; }
.skm-acct-btn--primary:hover { background: #1a6fd0 !important; }
.skm-acct-btn--outline { font-size: 12px; padding: 6px 14px; border: 1px solid rgba(43,127,224,.3); color: var(--skm-blue); background: #fff; border-radius: 6px; }
.skm-acct-btn--outline:hover { background: rgba(43,127,224,.05) !important; }
.skm-acct-btn--ghost-sm { font-size: 12px; padding: 6px 14px; border: 1px solid #E2E6EA; color: rgba(13,31,51,.5); background: #fff; border-radius: 6px; }
.skm-acct-btn--ghost-sm:hover { background: #F5F7FA !important; }
.skm-acct-btn--dark { background: #0D1F33; color: #fff; font-size: 12px; padding: 7px 14px; border-radius: 6px; }
.skm-acct-btn--dark:hover { background: #162640 !important; }
.skm-acct-btn--dark:disabled { opacity: .5; cursor: not-allowed; }
.skm-acct-btn--outline-blue { font-size: 12px; padding: 7px 14px; border: 1px solid rgba(24,119,242,.3); color: #1877F2; background: #fff; border-radius: 6px; }
.skm-acct-btn--outline-blue:disabled { opacity: .5; cursor: not-allowed; }
.skm-acct-btn--danger-outline { font-size: 13px; font-weight: 500; color: #C0392B; border: 1px solid rgba(192,57,43,.2); background: #fff; border-radius: 7px; padding: 8px 16px; font-family: inherit; cursor: pointer; }
.skm-acct-btn--danger-outline:hover { background: #FEF5F5 !important; }
.skm-acct-btn--delete { background: #C0392B; color: #fff; padding: 11px 20px; white-space: nowrap; font-size: 14px; }
.skm-acct-btn--delete:disabled { opacity: .4; cursor: not-allowed; }
.skm-acct-btn--delete:not(:disabled):hover { background: #a93226 !important; }

/* Save bar */
.skm-acct-save-bar { background: #fff; border: 1px solid #E2E6EA; border-radius: 12px; padding: 18px 32px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.skm-acct-save-bar__note { font-size: 13px; color: rgba(13,31,51,.4); }
.skm-acct-save-bar__btns { display: flex; gap: 10px; }

/* Feedback */
.skm-acct-feedback { font-size: 13px; margin-top: 10px; min-height: 20px; }
.skm-acct-feedback.is-ok  { color: #1F8A5B; }
.skm-acct-feedback.is-err { color: #C0392B; }

/* Email section */
.skm-acct-current-email { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; background: #F5F7FA; border-radius: 8px; margin-bottom: 20px; }
.skm-acct-current-email__addr { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); }
.skm-acct-current-email__meta { font-size: 12px; color: rgba(13,31,51,.45); margin-top: 2px; }

/* Password section */
.skm-acct-pass-form { display: flex; flex-direction: column; gap: 16px; max-width: 460px; margin-bottom: 16px; }
.skm-acct-pass-reset { font-size: 12px; color: rgba(13,31,51,.4); margin-top: 10px; }
.skm-acct-pass-reset a { color: var(--skm-blue); }

/* Password strength bar */
.skm-pass-strength { margin-top: 8px; }
.skm-pass-strength__track { height: 3px; border-radius: 2px; background: #E2E6EA; overflow: hidden; margin-bottom: 4px; }
.skm-pass-strength__fill { height: 100%; border-radius: 2px; transition: width .25s, background .25s; width: 0; }
.skm-pass-strength__lbl { font-size: 11px; }

/* 2FA */
.skm-acct-2fa-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }

/* Toggle switch */
.skm-acct-toggle { width: 40px; height: 22px; border-radius: 11px; background: #D0D7E0; position: relative; cursor: pointer; flex-shrink: 0; border: none; transition: background .2s; }
.skm-acct-toggle::after { content: ''; position: absolute; left: 2px; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.15); transition: left .2s; }
.skm-acct-toggle.is-on { background: var(--skm-blue); }
.skm-acct-toggle.is-on::after { left: calc(100% - 20px); }

/* Sessions */
.skm-acct-session { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid #F5F7FA; }
.skm-acct-session:last-of-type { border-bottom: none; }
.skm-acct-session__icon { width: 34px; height: 34px; border-radius: 8px; background: #F5F7FA; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #5A6A7A; }
.skm-acct-session__icon.is-current { background: #EEF5FD; color: var(--skm-blue); }
.skm-acct-session__info { flex: 1; min-width: 0; }
.skm-acct-session__ua { font-size: 13px; font-weight: 500; color: var(--skm-text-heading); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.skm-acct-session__meta { font-size: 12px; color: rgba(13,31,51,.45); margin-top: 2px; }
.skm-acct-session__badge { font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 5px; background: rgba(31,138,91,.1); color: #1F8A5B; white-space: nowrap; }
.skm-acct-btn-revoke { font-size: 12px; font-weight: 500; color: #C0392B; padding: 6px 12px; border: 1px solid rgba(192,57,43,.2); border-radius: 6px; background: #fff; cursor: pointer; font-family: inherit; white-space: nowrap; }
.skm-acct-btn-revoke:hover { background: #FEF5F5 !important; }
.skm-acct-sessions-footer { margin-top: 16px; padding-top: 16px; border-top: 1px solid #E2E6EA; }

/* Notifications */
.skm-acct-notif-row { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid #F5F7FA; gap: 16px; }
.skm-acct-notif-row:last-child { border-bottom: none; }
.skm-acct-notif-row__label { font-size: 14px; font-weight: 500; color: var(--skm-text-heading); margin-bottom: 2px; }
.skm-acct-notif-row__sub { font-size: 12px; color: rgba(13,31,51,.45); }

/* Segmented control (digest freq) */
.skm-acct-segmented { display: flex; gap: 0; background: #F5F7FA; border: 1px solid #E2E6EA; border-radius: 8px; padding: 4px; width: fit-content; }
.skm-acct-seg-btn { padding: 7px 18px; border-radius: 6px; font-size: 13px; font-weight: 400; color: rgba(13,31,51,.6); border: none; background: transparent; cursor: pointer; font-family: inherit; transition: background .15s; }
.skm-acct-seg-btn.is-active { background: #fff; color: var(--skm-text-heading); font-weight: 500; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.skm-acct-push-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.skm-acct-push-row .skm-acct-card__title { border: none; padding: 0; margin-bottom: 4px; }

/* Linked accounts */
.skm-acct-provider { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border: 1px solid #E2E6EA; border-radius: 10px; margin-bottom: 12px; }
.skm-acct-provider:last-of-type { margin-bottom: 0; }
.skm-acct-provider__left { display: flex; align-items: center; gap: 14px; }
.skm-acct-provider__name { font-size: 14px; font-weight: 500; color: var(--skm-text-heading); margin-bottom: 2px; }
.skm-acct-provider__meta { font-size: 12px; color: rgba(13,31,51,.5); }

/* Danger banner (delete) */
.skm-acct-danger-banner { background: #FEF5F5; border: 1px solid rgba(192,57,43,.2); border-radius: 12px; padding: 20px 24px; display: flex; gap: 14px; align-items: flex-start; }
.skm-acct-danger-banner__title { font-size: 14px; font-weight: 600; color: #C0392B; margin-bottom: 8px; }
.skm-acct-danger-banner__list { font-size: 13px; color: #6B3E0E; line-height: 1.7; padding-left: 16px; }
.skm-acct-delete-row { display: flex; gap: 12px; align-items: center; max-width: 460px; }
.skm-acct-delete-row input { flex: 1; padding: 11px 14px; border: 1.5px solid rgba(192,57,43,.3); border-radius: 8px; font-size: 15px; color: var(--skm-text-heading); font-family: inherit; }
.skm-acct-delete-row input:focus { outline: none; border-color: #C0392B !important; box-shadow: 0 0 0 3px rgba(192,57,43,.1); }

/* Real bug found live on a real phone: "Last name" field ran off the right
   edge of the screen — .skm-acct-grid-2's 2-column grid had no mobile
   override anywhere, same recurring pattern as every other un-collapsed
   grid found this session. Swept the rest of this module for the same
   space-between/fixed-gap flex-row pattern while in here rather than
   waiting to be told about each one individually. */
@media (max-width: 640px) {
	.skm-acct-main { padding: 20px 16px; }
	.skm-acct-card { padding: 20px; }
	.skm-acct-grid-2 { grid-template-columns: 1fr; gap: 16px; }
	/* 5 tabs (Profile / Login & Security / Notifications / Linked Accounts /
	   Delete Account) in a plain flex row with no wrap and no scroll —
	   overflows at real phone widths. Same horizontal-scroll pattern
	   already used for the Dashboard/My Listings tab strips. */
	.skm-acct-tabs { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }
	.skm-acct-tab { white-space: nowrap; flex-shrink: 0; }
	.skm-acct-avatar-row { flex-wrap: wrap; gap: 14px; }
	.skm-acct-save-bar { flex-wrap: wrap; padding: 16px 20px; }
	.skm-acct-2fa-row,
	.skm-acct-push-row,
	.skm-acct-notif-row { flex-wrap: wrap; }
	.skm-acct-provider { flex-wrap: wrap; padding: 16px; }
	.skm-acct-delete-row { flex-wrap: wrap; }
	.skm-acct-delete-row input { width: 100%; }
	.skm-acct-current-email { flex-wrap: wrap; gap: 10px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   MODULE 7b — Seller Public Profile
   ═══════════════════════════════════════════════════════════════════════════ */

/* Breadcrumb */
.skm-seller-breadcrumb { background: #fff; border-bottom: 1px solid #E2E6EA; }
.skm-seller-breadcrumb .skm-container { display: flex; align-items: center; gap: 8px; padding-top: 12px; padding-bottom: 12px; }
.skm-seller-breadcrumb a, .skm-seller-breadcrumb span { font-size: 12px; color: rgba(13,31,51,.45); text-decoration: none; }
.skm-seller-breadcrumb a:hover { color: var(--skm-blue) !important; }
.skm-seller-breadcrumb__active { font-weight: 500; color: var(--skm-text-heading) !important; }

/* Profile header */
.skm-seller-header { background: #fff; border-bottom: 1px solid #E2E6EA; padding: 40px 0; }
.skm-seller-header__inner { display: flex; align-items: flex-start; gap: 32px; }

/* Avatar */
.skm-seller-header__avatar { flex-shrink: 0; }
.skm-seller-header__avatar img { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; }
.skm-seller-header__initials { width: 88px; height: 88px; border-radius: 50%; background: var(--skm-blue); display: flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 700; color: #fff; }

/* Info */
.skm-seller-header__info { flex: 1; min-width: 0; }
.skm-seller-header__name-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.skm-seller-header__name { font-size: 24px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -0.02em; margin: 0; }
.skm-seller-header__bio { font-size: 14px; color: rgba(13,31,51,.55); line-height: 1.5; margin-bottom: 12px; }
.skm-seller-header__meta { display: flex; align-items: center; gap: 6px; }
.skm-seller-header__meta span { font-size: 12px; color: rgba(13,31,51,.45); }

/* Badges */
.skm-seller-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 5px; }
.skm-seller-badge--verified { background: rgba(31,138,91,.1); color: #1F8A5B; border: 1px solid rgba(31,138,91,.2); }
.skm-seller-tier { font-size: 11px; font-weight: 600; }

/* Stats + CTA */
.skm-seller-header__right { display: flex; flex-direction: column; align-items: flex-end; gap: 16px; flex-shrink: 0; }
.skm-seller-stats { display: flex; gap: 24px; align-items: center; }
.skm-seller-stat { text-align: center; }
.skm-seller-stat__val { display: block; font-size: 22px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -0.02em; }
.skm-seller-stat__val--green { color: #1F8A5B; }
.skm-seller-stat__lbl { display: block; font-size: 11px; color: rgba(13,31,51,.45); margin-top: 2px; }
.skm-seller-stat__div { width: 1px; height: 36px; background: #E2E6EA; }
.skm-seller-msg-btn { display: flex; align-items: center; gap: 8px; background: var(--skm-blue); color: #fff !important; border-radius: 8px; padding: 11px 22px; font-size: 14px; font-weight: 500; text-decoration: none; transition: background .15s; }
.skm-seller-msg-btn:hover { background: #1a6fd0 !important; }
.skm-seller-msg-btn--danger { background: none; border: 1px solid var(--skm-border); color: #C0392B !important; }
.skm-seller-msg-btn--danger:hover { background: #FEF5F5 !important; border-color: #F0C4C1; }

/* Same class of bug as the single-listing page: .skm-seller-header__inner
   never had a mobile stacking rule at all. Avatar (flex-shrink:0) and
   .skm-seller-header__right (flex-shrink:0, holds 3 stats + a button) both
   refuse to shrink, so .skm-seller-header__info was the only flexible
   part — it got squeezed toward zero width, wrapping "Member since June
   2026" one word per line, while __right's un-shrinkable content ran off
   the right edge ("Verified" cut off). Stack everything into one column
   on mobile instead of fighting a row layout that was only ever designed
   for desktop width. */
@media (max-width: 700px) {
	.skm-seller-header__inner { flex-direction: column; align-items: flex-start; gap: 20px; }
	.skm-seller-header__right { align-items: flex-start; width: 100%; }
	.skm-seller-stats { flex-wrap: wrap; row-gap: 12px; }
	.skm-seller-msg-btn { width: 100%; justify-content: center; }
}

/* Listings section */
.skm-seller-listings { padding: 40px 0 80px; }
.skm-seller-listings__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.skm-seller-listings__title { font-size: 18px; font-weight: 600; color: var(--skm-text-heading); margin: 0; }
.skm-seller-listings__count { font-size: 14px; font-weight: 400; color: rgba(13,31,51,.45); margin-left: 6px; }
.skm-seller-empty { padding: 40px; text-align: center; color: rgba(13,31,51,.45); font-size: 14px; }

/* 3-col grid (reuse or define if not already) */
.skm-grid--3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 700px) {
	.skm-grid--3 { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}

/* Custom 404 — built to match mockup_404.dc.html. Replaces BuddyBoss's own
   generic parent-theme 404.php (big "404" numerals, scattered shapes,
   "Looks like you got lost!"), which is what was actually live despite
   this being marked done in the Phase 2 tracker — this child theme never
   had its own 404.php override until this pass. */
body.error404 { background: var(--skm-surface); }
/* Same recurring 106px header-gap bug documented above (#primary/
   .content-area's default 30px padding-top stacked on #content's 76px
   sticky-header offset) — flagged by the client on this page too. */
body.error404 #content.site-content,
body.error404 .content-area { padding-top: 0 !important; }

/* Same 76px (#content) + 30px (.content-area) stacked header-gap bug, on the
   blog archive/category listing, single blog post and BuddyBoss Notifications
   page — none of these had been through this fix yet. Unlike error404 these
   keep a real sidebar/heading right under the header, so a small deliberate
   gap (not a full flush-zero) reads better here. */
body.archive.category #content.site-content,
body.single-post #content.site-content,
body.notifications #content.site-content { padding-top: 0 !important; }
body.archive.category .content-area,
body.single-post .content-area,
body.notifications .content-area { padding-top: 24px !important; }

.skm-404__plane { transform-origin: -13px 20px; animation: skm404Float 3.2s ease-in-out infinite; }
.skm-404__trail { stroke-dasharray: 5 6; animation: skm404Trail 1.4s linear infinite; }
@keyframes skm404Float {
	0%, 100% { transform: translate(122px, 26px) rotate(-38deg) translateY(0); }
	50% { transform: translate(122px, 26px) rotate(-34deg) translateY(-6px); }
}
@keyframes skm404Trail { to { stroke-dashoffset: -22; } }
@media (prefers-reduced-motion: reduce) {
	.skm-404__plane, .skm-404__trail { animation: none; }
}
.skm-404__wrap { max-width: 620px; margin: 0 auto; padding: 64px 20px 96px; text-align: center; }
.skm-404__art { width: 320px; height: 230px; margin: 0 auto 32px; background: #E8F1FC; border-radius: 20px; display: flex; align-items: center; justify-content: center; }
.skm-404__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--skm-blue); margin: 0 0 12px; }
.skm-404__title { font-size: 28px; font-weight: 700; color: var(--skm-text-heading); letter-spacing: -.01em; line-height: 1.3; margin: 0 0 16px; }
.skm-404__sub { font-size: 15px; color: var(--skm-text-muted); line-height: 1.6; max-width: 460px; margin: 0 auto 32px; }
.skm-404__search { display: flex; align-items: stretch; gap: 10px; max-width: 480px; margin: 0 auto 24px; }
.skm-404__search-icon { position: absolute; margin: 13px 0 0 14px; color: rgba(13,31,51,.35); pointer-events: none; }
.skm-404__search { position: relative; background: #fff; border: 1px solid var(--skm-border); border-radius: 10px; padding: 4px; }
.skm-404__search input { flex: 1; border: none; outline: none; padding: 10px 14px 10px 38px; font-size: 14px; font-family: var(--skm-font); color: var(--skm-text-heading); background: transparent; }
.skm-404__search input::placeholder { color: rgba(13,31,51,.35); }
.skm-404__search button { border: none; background: var(--skm-blue); color: #fff; font-weight: 600; font-size: 14px; padding: 0 22px; border-radius: 7px; cursor: pointer; font-family: var(--skm-font); }
.skm-404__search button:hover { background: var(--skm-blue-hover); }
.skm-404__actions { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }
.skm-404__btn { display: inline-flex; align-items: center; gap: 7px; padding: 10px 18px; border-radius: 8px; font-size: 14px; font-weight: 500; text-decoration: none; border: 1px solid var(--skm-border); color: var(--skm-text-heading); background: #fff; }
.skm-404__btn:hover { border-color: var(--skm-blue); color: var(--skm-blue); }
.skm-404__btn--primary { border-color: rgba(43,127,224,.35); color: var(--skm-blue); }
.skm-404__btn--primary:hover { background: rgba(43,127,224,.06); }
@media (max-width: 600px) {
	.skm-404__art { width: 260px; height: 190px; }
	.skm-404__title { font-size: 22px; }
	.skm-404__search { flex-direction: column; }
	.skm-404__actions { flex-direction: column; align-items: stretch; }
}

/* Forgot password — left-align the whole card (client request; parent
   theme centers #login's content by default, matches mockup_forgot_
   password.dc.html which is left-aligned throughout except the "Back to
   sign in" link, deliberately left centered) and drop the Terms &
   Conditions / Privacy Policy links entirely — not part of the mockup and
   client wants them gone on this screen specifically. */
/* #login's own text-align:left is inherited by children — inheritance is
   the weakest link in the cascade, so it loses outright to any rule that
   matches the child element directly (confirmed live: the parent
   BuddyBoss theme sets its own centered text-align straight on the h1/
   .notice.message/label elements themselves, not on an ancestor, so
   inheriting from #login was never going to beat that). Target each
   element directly instead. */
body.login-action-lostpassword #login,
body.login-action-lostpassword .skm-auth-heading,
body.login-action-lostpassword .notice.message,
body.login-action-lostpassword #user_label_lost { text-align: left !important; }
body.login-action-lostpassword .skm-auth-icon { margin-left: 0 !important; }
body.login-action-lostpassword .bs-sign-in { display: block; text-align: center; }
body.login-action-lostpassword .privacy-policy-page-link { display: none !important; }

/* Site-wide return-to-top button. */
.skm-back-to-top {
	position: fixed; right: 24px; bottom: 24px; z-index: 999;
	width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--skm-border);
	background: #fff; color: var(--skm-text-heading); box-shadow: 0 4px 16px rgba(13,31,51,.15);
	display: flex; align-items: center; justify-content: center; cursor: pointer;
	opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: opacity .18s, transform .18s, visibility .18s, background .12s, color .12s;
	-webkit-tap-highlight-color: transparent;
	-webkit-touch-callout: none;
	will-change: transform;
	-webkit-backface-visibility: hidden;
}
.skm-back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
/* Same recurring bug fixed several times elsewhere in this build — inline
   width/height HTML attributes on an SVG get zeroed by BuddyBoss's global
   SVG reset unless explicitly re-set in CSS, collapsing the icon down to
   a barely-visible dot. */
.skm-back-to-top svg { width: 24px !important; height: 24px !important; flex-shrink: 0; }
@media (pointer: fine) {
	/* Only apply hover styling on devices with a precise pointer (mouse/
	   trackpad). iOS Safari has a long-documented bug where `(hover:
	   hover)` incorrectly evaluates true on touchscreens too, so that
	   media feature alone does not reliably exclude touch - `pointer:
	   fine` is the correct, iOS-safe check. Without this, tapping the
	   button makes WebKit apply :hover and it sticks until the next tap
	   elsewhere, which looked like the button going blue/white and
	   staying that way. */
	.skm-back-to-top:hover { background: var(--skm-blue); color: #fff; border-color: var(--skm-blue); }
	.skm-back-to-top:hover svg { fill: #fff; }
}
/* Avoid the default browser focus ring flashing blue after a tap -
   keep it (visibly) only for real keyboard/assistive-tech focus. */
/* The parent theme applies its own generic focus background/outline
   to all buttons - on iOS a tap gives the button real DOM focus, so
   that background was showing through as an unwanted colour flash.
   Force this button back to its normal look on any focus, and only
   add a visible ring for genuine keyboard/assistive-tech focus. */
.skm-back-to-top:focus, .skm-back-to-top:focus-visible {
	background: #fff !important;
	color: var(--skm-text-heading) !important;
	border-color: var(--skm-border) !important;
	outline: none;
}
.skm-back-to-top:focus svg, .skm-back-to-top:focus-visible svg { fill: var(--skm-blue) !important; }
.skm-back-to-top:focus-visible {
	outline: 2px solid var(--skm-blue) !important;
	outline-offset: 2px;
}
/* Belt-and-braces: also force the normal look for :active, in case
   iOS leaves the pressed-state stuck despite the touchstart fix above
   (see custom.js) for -webkit-tap-highlight-color: transparent. */
.skm-back-to-top:active {
	background: #fff !important;
	color: var(--skm-text-heading) !important;
	border-color: var(--skm-border) !important;
}
.skm-back-to-top:active svg { fill: var(--skm-blue) !important; }
@media (prefers-reduced-motion: reduce) {
	/* No flight animation plays for these users (see launchPlane() in
	   custom.js) - also stop the small idle bob so the button sits still
	   rather than continuing to wobble while the page scrolls to top. */
	.skm-back-to-top.is-visible .skm-plane-icon-wrap { animation: none; }
}
@media (max-width: 767px) {
	.skm-back-to-top { right: 16px; bottom: 80px; } /* clears the mobile bottom nav bar */
}
/* Little plane icon inside the back-to-top button — idles with a gentle
   taxi/flight bob while visible, then "takes off" (rotates, climbs and
   fades) on click, echoing the smooth-scroll-to-top it triggers. */
.skm-plane-icon-wrap {
	display: inline-block;
	line-height: 0;
	-webkit-tap-highlight-color: transparent;
}
.skm-back-to-top.is-visible .skm-plane-icon-wrap {
	animation: skm-plane-bob 2.6s ease-in-out infinite;
}
@keyframes skm-plane-bob {
	0%, 100% { transform: translateY(0) rotate(-6deg); }
	50% { transform: translateY(-3px) rotate(-2deg); }
}
.skm-back-to-top.is-launching { opacity: 1 !important; visibility: visible !important; z-index: 2147483647 !important; }

.skm-back-to-top.is-launching .skm-plane-icon-wrap {
	animation: skm-plane-shoot-up 2.2s cubic-bezier(.3,.6,.35,1) forwards;
	will-change: transform, opacity;
	transform: translateZ(0);
	-webkit-transform: translateZ(0);
}
/* Force a fixed, high-contrast icon colour during flight instead of relying
   on :hover (which never applies on touch/iOS anyway) - otherwise a white
   icon over a white page background is invisible until it crosses the blue
   header, and on touch devices it never gets a contrasting colour at all. */
.skm-back-to-top.is-launching svg {
	fill: var(--skm-text-heading) !important;
	filter: drop-shadow(0 0 3px rgba(255,255,255,.9)) drop-shadow(0 2px 4px rgba(13,31,51,.35));
}
/* The flying icon is cloned onto <body> as its own position:fixed
   element (see launchPlane() in custom.js) rather than animated as a
   descendant of the fixed back-to-top button - iOS Safari has a bug
   where a transform-animated child of a position:fixed ancestor moves
   in layout (getBoundingClientRect) but never repaints on screen. */
.skm-plane-flyer {
	position: fixed;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	z-index: 2147483647;
	line-height: 0;
}
.skm-plane-flyer svg {
	width: 24px !important;
	height: 24px !important;
	fill: var(--skm-text-heading) !important;
	filter: drop-shadow(0 0 3px rgba(255,255,255,.9)) drop-shadow(0 2px 4px rgba(13,31,51,.35));
}
.skm-plane-flyer.is-flying {
	animation: skm-plane-shoot-up 2.2s cubic-bezier(.3,.6,.35,1) forwards;
}
@keyframes skm-plane-shoot-up {
	0% { transform: translate3d(0, 0, 0) rotate(-6deg) scale(1); opacity: 1; }
	30% { transform: translate3d(-6px, calc(var(--skm-fly-dist, 600px) * -0.30), 0) rotate(-4deg) scale(1.05); opacity: 1; }
	55% { transform: translate3d(6px, calc(var(--skm-fly-dist, 600px) * -0.55), 0) rotate(-8deg) scale(.85); opacity: 1; }
	78% { transform: translate3d(80px, calc(var(--skm-fly-dist, 600px) * -0.78), 0) rotate(-34deg) scale(.55); opacity: .9; }
	100% { transform: translate3d(240px, calc(var(--skm-fly-dist, 600px) * -1.05), 0) rotate(-58deg) scale(.2); opacity: 0; }
}


.skm-plane-trail {
	position: fixed;
	width: 5px; height: 5px;
	margin: -2.5px 0 0 -2.5px;
	border-radius: 50%;
	background: rgba(43,127,224,.5);
	pointer-events: none;
	z-index: 99998;
	animation: skm-plane-trail-fade .8s ease-out forwards;
}
@keyframes skm-plane-trail-fade {
	0% { opacity: .5; transform: scale(1); }
	100% { opacity: 0; transform: scale(.25); }
}

/*
 * Header overflow fix (12 Aug 2026, Helen): the top-right account/search/
 * notification cluster (.header-aside-inner) has flex-shrink:0, so it never
 * compresses - between roughly 1024px and 1366px viewport width (very
 * common laptop window sizes) it silently overflows past the header
 * container and gets visually clipped (no scrollbar), cutting off the
 * account name/avatar. .skm-header-search and .skm-list-cta are our own
 * custom additions on top of BuddyBoss's stock header, which is why the
 * theme's own breakpoints (mobile nav only below 1024px) never accounted
 * for the extra width they need. Verified via direct viewport testing that
 * this fully resolves the clipping from 1025px up through the point where
 * the full header already fits natively (~1366px+).
 */
@media (max-width: 1400px) {
	.user-name { display: none; }
	.user-link { gap: 0; }
	.skm-header-search { display: none; }
	.header-aside .user-wrap.user-wrap-container { margin-left: 2px; }
	.skm-list-cta { padding-left: 10px; padding-right: 10px; gap: 4px; }
}
@media (max-width: 1099px) {
	.notification-wrap, .messages-wrap { display: none !important; }
}


/* -----------------------------------------------------------------------
   Service provider detail page (single-skm_service.php) + gallery links
   on the directory cards (12 Aug 2026, Helen): providers previously only
   ever appeared as a small card with no page of their own; this gives
   each one a proper contained page (like a single advert) with an
   optional photo gallery, fed by the multi-photo upload on the
   submission form.
   ----------------------------------------------------------------------- */
.skm-svc-card__avatar-link, .skm-svc-card__title-link { color: inherit; text-decoration: none; }
.skm-svc-card__title-link:hover { color: var(--skm-blue); text-decoration: underline; }

.skm-svc-detail { padding: 32px 24px 64px; }
.skm-svc-detail__crumb { font-size: 12px; color: var(--skm-text-faint); margin-bottom: 20px; }
.skm-svc-detail__crumb a { color: var(--skm-text-faint); }
.skm-svc-detail__crumb a:hover { color: var(--skm-blue); }

.skm-svc-detail__head { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 28px; padding-bottom: 28px; border-bottom: 1px solid var(--skm-border); }
.skm-svc-detail__avatar { width: 84px; height: 84px; border-radius: 14px; background: #E6F1FB; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 26px; font-weight: 700; color: #185FA5; overflow: hidden; }
.skm-svc-detail__avatar.skm-svc-detail__avatar--logo { width: auto; min-width: 84px; max-width: 240px; padding: 8px 14px; background: #fff; }
.skm-svc-detail__avatar--logo img { width: auto; height: 100%; max-width: 100%; object-fit: contain; }
.skm-svc-detail__headinfo { flex: 1; min-width: 0; }
.skm-svc-detail__headinfo h1 { font-size: 24px; font-weight: 700; color: var(--skm-text-heading); margin: 4px 0 6px; }
.skm-svc-detail__sub { font-size: 14px; color: var(--skm-text-muted); margin-bottom: 10px; }

.skm-svc-detail__body { display: flex; gap: 32px; align-items: flex-start; }
.skm-svc-detail__main { flex: 1; min-width: 0; }
.skm-svc-detail__side { width: 280px; flex-shrink: 0; }

.skm-svc-detail__gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin-bottom: 24px; }
.skm-svc-detail__gallery-item { display: block; border-radius: var(--skm-radius-sm); overflow: hidden; border: 1px solid var(--skm-border); aspect-ratio: 4 / 3; cursor: zoom-in; }
.skm-svc-detail__gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .15s ease; }
.skm-svc-detail__gallery-item:hover img { transform: scale(1.04); }

.skm-svc-detail__facts { display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: var(--skm-text-muted); }

.skm-svc-detail__card { background: var(--skm-surface); border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 20px; position: sticky; top: 96px; }
.skm-svc-detail__card h2 { font-size: 15px; font-weight: 700; color: var(--skm-text-heading); margin-bottom: 14px; }
.skm-svc-detail__enquire { width: 100%; margin-bottom: 12px; }
.skm-svc-detail__safety { font-size: 11px; color: var(--skm-text-faint); line-height: 1.5; margin: 0; }

.skm-svc-detail__back { margin-top: 32px; font-size: 13px; }
.skm-svc-detail__back a { color: var(--skm-text-muted); }
.skm-svc-detail__back a:hover { color: var(--skm-blue); }

.skm-svc-lightbox { position: fixed; inset: 0; background: rgba(13,31,51,.92); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 40px; }
.skm-svc-lightbox[hidden] { display: none; }
.skm-svc-lightbox img { max-width: 100%; max-height: 100%; border-radius: 6px; }
.skm-svc-lightbox__close { position: absolute; top: 20px; right: 24px; background: none; border: none; color: #fff; font-size: 32px; line-height: 1; cursor: pointer; }

@media (max-width: 780px) {
	.skm-svc-detail__body { flex-direction: column; }
	.skm-svc-detail__side { width: 100%; }
	.skm-svc-detail__card { position: static; }
	.skm-svc-detail__head { flex-direction: column; align-items: flex-start; }
}

/* ===================================================================
   11. Mobile filters collapse (Browse listings) + FAQ accordion
   Added 15 Aug 2026 -- Helen: make filters collapse on mobile so
   listings are visible without scrolling, and make the Rank Math
   FAQ block a proper clickable accordion instead of an unstyled,
   always-open list.
   =================================================================== */

@media (max-width: 900px) {
	.skm-archive__side-head p {
		cursor: pointer;
		position: relative;
		padding-right: 22px;
		user-select: none;
	}
	.skm-archive__side-head p::after {
		content: "";
		position: absolute;
		right: 2px;
		top: 50%;
		width: 8px;
		height: 8px;
		border-right: 2px solid var(--skm-text-muted);
		border-bottom: 2px solid var(--skm-text-muted);
		transform: translateY(-65%) rotate(45deg);
		transition: transform .2s ease;
	}
	.skm-archive__side.is-open .skm-archive__side-head p::after {
		transform: translateY(-35%) rotate(-135deg);
	}
	.skm-archive__side .skm-facet {
		display: none;
	}
	.skm-archive__side.is-open .skm-facet {
		display: block;
	}
}

/* FAQ accordion (Rank Math FAQ blocks, e.g. on Browse listings) */
.rank-math-block .rank-math-list-item {
	border: 1px solid var(--skm-border);
	border-radius: 12px;
	margin-bottom: 12px;
	overflow: hidden;
	background: var(--skm-white);
	transition: border-color .15s ease;
}
.rank-math-block .rank-math-list-item:hover {
	border-color: var(--skm-border-2);
}
.rank-math-block .rank-math-question {
	margin: 0;
	padding: 18px 44px 18px 20px;
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--skm-text-heading);
	cursor: pointer;
	position: relative;
	user-select: none;
}
.rank-math-block .rank-math-question:hover {
	background: var(--skm-surface);
}
.rank-math-block .rank-math-question:focus-visible {
	outline: 2px solid var(--skm-blue);
	outline-offset: -2px;
}
.rank-math-block .rank-math-question::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--skm-text-muted);
	border-bottom: 2px solid var(--skm-text-muted);
	transform: translateY(-70%) rotate(45deg);
	transition: transform .2s ease;
}
.rank-math-block .rank-math-list-item.is-open .rank-math-question::after {
	transform: translateY(-30%) rotate(-135deg);
}
.rank-math-block .rank-math-answer {
	display: none;
	padding: 0 20px 18px;
	color: var(--skm-text);
	line-height: 1.6;
}
.rank-math-block .rank-math-list-item.is-open .rank-math-answer {
	display: block;
}

/* ===================================================================
   12. Mobile: remove redundant global search icon on Browse listings
   Added 15 Aug 2026 -- Helen: tapping the header search icon opened
   a second, duplicate search box on top of the page's own FacetWP
   search bar. The listings page already has dedicated search, so
   the global mobile search trigger is redundant here specifically.
   =================================================================== */
@media (max-width: 767px) {
	body.skm-page-listings .skm-mob-search-btn {
		display: none !important;
	}

 body.skm-page-listings .skm-mob-search-bar {
  display: none !important;
 }
}


/* Market values page + Aircraft of the Week (18 Aug 2026) */
.skm-mv__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin-bottom: 28px; }
.skm-mv__card { background: var(--skm-white); border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 18px; box-shadow: var(--skm-shadow-card); }
.skm-mv__cat { font-weight: 600; font-size: var(--skm-card-title); color: var(--skm-text-heading); margin-bottom: 4px; }
.skm-mv__count { font-size: var(--skm-small); color: var(--skm-text-muted); margin-bottom: 12px; }
.skm-mv__stat { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0; border-top: 1px solid var(--skm-border-2); font-size: var(--skm-small); }
.skm-mv__stat span { color: var(--skm-text-muted); }
.skm-mv__stat strong { color: var(--skm-text-heading); font-weight: 600; }
.skm-mv__empty { color: var(--skm-text-muted); font-size: var(--skm-small); }
.skm-mv__section { margin: 28px 0; }
.skm-mv__section-title { font-size: var(--skm-h2); color: var(--skm-text-heading); margin-bottom: 12px; }
.skm-mv__changes { background: var(--skm-white); border: 1px solid var(--skm-border); border-radius: var(--skm-radius); overflow: hidden; }
.skm-mv__change-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--skm-border-2); text-decoration: none; color: inherit; }
.skm-mv__change-row:last-child { border-bottom: none; }
.skm-mv__change-row:hover { background: var(--skm-surface); }
.skm-mv__change-title { font-weight: 500; color: var(--skm-text-heading); }
.skm-mv__change-prices { display: flex; align-items: center; gap: 6px; font-size: var(--skm-small); color: var(--skm-text-muted); white-space: nowrap; }
.skm-mv__change-badge { margin-left: 6px; padding: 2px 8px; border-radius: var(--skm-radius-pill); font-size: 11px; font-weight: 600; background: var(--skm-surface-2); color: var(--skm-text-muted); }
.skm-mv__change-badge--down { background: rgba(29,158,117,.12); color: var(--skm-success); }
.skm-mv__footnote { margin-top: 24px; font-size: var(--skm-small); color: var(--skm-text-muted); }
.skm-mv__footnote a { color: var(--skm-blue); }
.skm-mv__empty-cta { background: var(--skm-surface); border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 24px; text-align: center; margin-bottom: 20px; }
.skm-mv__empty-cta p { margin: 0 0 12px; color: var(--skm-text); }
.skm-mv__empty-cta .skm-syn__filterbtn { background: var(--skm-blue); color: #fff; padding: 10px 20px; border-radius: var(--skm-radius-sm); font-weight: 600; }
.skm-mv__empty-cta .skm-syn__filterbtn:hover { background: var(--skm-blue-hover); }
.skm-aotw { border: 1px solid var(--skm-border); border-radius: var(--skm-radius); padding: 16px; background: var(--skm-white); }
.skm-aotw__label { font-size: var(--skm-label); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--skm-blue); margin-bottom: 10px; }


/* ==========================================================
   Mark-as-sold / pause reason modal + Sold status (added 18 Aug)
   ========================================================== */
.skm-ml-status__label--blue::before { background: var(--skm-blue); }

.skm-edit__danger-btn--primary {
	border-color: var(--skm-blue);
	color: var(--skm-white) !important;
	background: var(--skm-blue);
}
.skm-edit__danger-btn--primary:hover { background: var(--skm-blue-hover); border-color: var(--skm-blue-hover); }

.skm-renew-action--used {
	display: inline-flex;
	align-items: center;
	padding: 6px 0;
	font-size: 13px;
	color: var(--skm-text-muted);
	white-space: nowrap;
	cursor: default;
}

.skm-reason-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 100000;
	padding: 20px;
}
.skm-reason-modal {
	background: var(--skm-white);
	border-radius: var(--skm-radius);
	max-width: 420px;
	width: 100%;
	padding: 24px;
	box-shadow: 0 20px 60px rgba(15, 23, 42, 0.25);
}
.skm-reason-modal__title {
	font-size: 18px;
	font-weight: 600;
	color: var(--skm-text-heading);
	margin: 0 0 6px;
}
.skm-reason-modal__sub {
	font-size: 14px;
	color: var(--skm-text-muted);
	margin: 0 0 18px;
}
.skm-reason-modal__option {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid var(--skm-border);
	border-radius: var(--skm-radius-sm);
	margin-bottom: 8px;
	font-size: 14px;
	color: var(--skm-text-heading);
	cursor: pointer;
}
.skm-reason-modal__option:has(input:checked) {
	border-color: var(--skm-blue);
	background: var(--skm-surface);
}
.skm-reason-modal__option input { margin: 0; }
.skm-reason-modal__note {
	width: 100%;
	box-sizing: border-box;
	margin-top: 8px;
	padding: 10px 12px;
	border: 1px solid var(--skm-border);
	border-radius: var(--skm-radius-sm);
	font-size: 14px;
	font-family: inherit;
	resize: vertical;
	min-height: 64px;
}
.skm-reason-modal__actions {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 18px;
}
.skm-reason-modal__cancel,
.skm-reason-modal__confirm {
	padding: 9px 18px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	border: 1px solid var(--skm-border);
	background: var(--skm-white);
	color: var(--skm-text-heading);
}
.skm-reason-modal__confirm {
	border-color: var(--skm-blue);
	background: var(--skm-blue);
	color: var(--skm-white);
}
.skm-reason-modal__confirm:hover { background: var(--skm-blue-hover); border-color: var(--skm-blue-hover); }
.skm-reason-modal__cancel:hover { background: var(--skm-surface); }

.skm-sold-banner {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	border-radius: var(--skm-radius-sm);
	background: var(--skm-surface);
	border: 1px solid var(--skm-border);
	color: var(--skm-text-heading);
	font-size: 14px;
	font-weight: 500;
	margin-bottom: 16px;
}
.skm-sold-banner__badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--skm-blue);
	color: var(--skm-white);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

/* Distance sort banner (postcode prompt + geolocate) */
.skm-distance-banner {
	display: none;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 16px;
	padding: 14px 16px;
	background: var(--skm-surface);
	border: 1px solid var(--skm-border);
	border-radius: var(--skm-radius-sm);
}
.skm-distance-banner.is-visible {
	display: flex;
}
.skm-distance-banner__text {
	flex: 1 1 240px;
	font-size: 14px;
	color: var(--skm-text-heading);
}
.skm-distance-banner__form {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	margin: 0;
}
.skm-distance-banner__input {
	width: 140px;
	padding: 8px 10px;
	border: 1px solid var(--skm-border);
	border-radius: var(--skm-radius-sm);
	font-size: 14px;
	background: var(--skm-white);
	color: var(--skm-text-heading);
}
.skm-distance-banner__input:focus {
	outline: none;
	border-color: var(--skm-blue);
}
.skm-distance-banner__actions {
	display: flex;
	align-items: center;
	gap: 8px;
}
.skm-distance-banner__btn {
	padding: 8px 16px;
	border: none;
	border-radius: var(--skm-radius-sm);
	background: var(--skm-blue);
	color: var(--skm-white);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.15s ease;
}
.skm-distance-banner__btn:hover {
	background: var(--skm-blue-hover);
}
.skm-distance-banner__geolocate {
	padding: 8px 14px;
	border: 1px solid var(--skm-border);
	border-radius: var(--skm-radius-sm);
	background: var(--skm-white);
	color: var(--skm-blue);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.skm-distance-banner__geolocate:hover {
	background: var(--skm-surface-2);
	border-color: var(--skm-blue-soft);
}
.skm-distance-banner__geolocate:disabled {
	opacity: 0.6;
	cursor: default;
}
.skm-distance-banner--error {
	border-color: #E8ACAC;
	background: #FBEEEE;
}
@media (max-width: 640px) {
	.skm-distance-banner {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}
	.skm-distance-banner__text {
		flex: none;
	}
	.skm-distance-banner__form {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}
	.skm-distance-banner__input {
		width: auto;
	}
	.skm-distance-banner__actions {
		gap: 8px;
	}
	.skm-distance-banner__btn,
	.skm-distance-banner__geolocate {
		flex: 1 1 0;
		text-align: center;
		padding-left: 10px;
		padding-right: 10px;
	}
}

/* ============================================================
   8b. HOMEPAGE MOTION  (pairs with skmHomeMotion() in custom.js)
   html.skm-anim is added by an inline <head> script (functions.php)
   only when GSAP will load and reduced-motion is off. An element is
   hidden ONLY until its entrance tween starts (.is-in) — no class,
   nothing hidden; JS error, watchdog removes the class. Never hide
   anything here with display:none or visibility (breaks measurement).
   ============================================================ */
html.skm-anim body.home .skm-hero__eye:not(.is-in),
html.skm-anim body.home .skm-hero__title:not(.is-in),
html.skm-anim body.home .skm-hero__sub:not(.is-in),
html.skm-anim body.home .skm-hero__search:not(.is-in),
html.skm-anim body.home .skm-stat:not(.is-in),
html.skm-anim body.home .skm-cats__lbl:not(.is-in),
html.skm-anim body.home .skm-cat-grid .skm-cpill:not(.is-in),
html.skm-anim body.home .skm-feat .skm-section-head:not(.is-in),
html.skm-anim body.home .skm-feat .skm-card:not(.is-in),
html.skm-anim body.home .skm-seo-copy h2:not(.is-in),
html.skm-anim body.home .skm-seo-copy p:not(.is-in),
html.skm-anim body.home .skm-explore h2:not(.is-in),
html.skm-anim body.home .skm-explore__card:not(.is-in),
html.skm-anim body.home .skm-cta__inner > :not(.is-in) { opacity: 0; }

/* GSAP owns transform/opacity on these while on homepage. Strip CSS
   transitions on those props and the CSS hover translate (which the
   GSAP lift replaces). Border/shadow/color hovers stay in CSS. */
html.skm-anim body.home .skm-cat-grid .skm-cpill { transition: border-color .15s ease; }
html.skm-anim body.home .skm-cat-grid .skm-cpill:hover { transform: none; }
html.skm-anim body.home .skm-feat .skm-card { transition: box-shadow .15s ease; }
html.skm-anim body.home .skm-feat .skm-card:hover { transform: none; }
html.skm-anim body.home .skm-hero__search .skm-btn,
html.skm-anim body.home .skm-cta .skm-btn { transition-property: background-color, border-color, color, box-shadow; }

/* Hero backdrop. Layer sits behind .skm-container; extra vertical bleed
   so the parallax never exposes an edge. GSAP animates transforms. */
body.home .skm-hero { position: relative; overflow: hidden; isolation: isolate; }
body.home .skm-hero > .skm-container { position: relative; z-index: 1; }
.skm-hero__bg { position: absolute; top: -25%; right: 0; bottom: -25%; left: 0; z-index: 0; pointer-events: none; }
.skm-hero__grid {
	position: absolute; top: 0; right: 0; bottom: 0; left: 0;
	background-image: radial-gradient(rgba(255,255,255,.085) 1px, transparent 1.2px);
	background-size: 26px 26px;
	-webkit-mask-image: radial-gradient(ellipse 70% 80% at 50% 45%, #000 20%, transparent 72%);
	        mask-image: radial-gradient(ellipse 70% 80% at 50% 45%, #000 20%, transparent 72%);
}
.skm-hero__glow {
	position: absolute; left: 0; right: 0; top: 14%; margin-inline: auto;
	width: min(78vw, 860px); aspect-ratio: 1 / 1;
	background: radial-gradient(closest-side, rgba(43,127,224,.28), rgba(43,127,224,.10) 45%, rgba(43,127,224,0) 72%);
	filter: blur(18px);
}
@media (max-width: 767px) {
	.skm-hero__glow { width: 120vw; top: -4%; filter: blur(14px); }
}

/* Hero title masked-line reveal. JS restructures h1 into two .skm-hero__mask
   blocks each holding a .skm-hero__line. Padding/negative-margin keeps
   descenders ("y" in "your") out of the overflow clip. */
.skm-hero .skm-hero__title .skm-hero__mask { display: block; overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; color: inherit; }
.skm-hero .skm-hero__title .skm-hero__line { display: block; color: inherit; }
.skm-hero .skm-hero__title .skm-hero__line--accent { color: var(--skm-blue, #2B7FE0); }

/* Count-up digits must not jitter horizontally */
.skm-stat__n { font-variant-numeric: tabular-nums; }

/* Header elevation on scroll — class flipped by skmHeaderScrollState() */
.site-header.site-header--bb { transition: box-shadow .25s ease, border-color .25s ease; }
.site-header.site-header--bb.is-scrolled { box-shadow: 0 6px 20px rgba(13,31,51,.08); border-bottom-color: rgba(226,230,234,.55); }

/* Optional flight path SVG */
.skm-hero__flight { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; }
