/* =========================================================
   Astra Child — Soraya Letournel
   Brand palette pulled directly from sorayaletournel.com global tokens:
     --asc-primary    #0F4C5C   deep teal — workhorse color (buttons, headings)
     --asc-secondary  #C0DCDF   pale icy blue — button text on primary bg
     --asc-accent     #9A031E   wine/coral — appears on HOVER only
     --asc-text       #000000   body copy + black header bg
     --asc-cloud      #FEFFFFE0 near-white section bg (e.g., "Connect" section)
   Headings use Poppins 600 with 1.8px letter-spacing.
   Body uses Poppins. Bio "Aloha I'm Soraya" overrides to Montserrat 600 uppercase.
   ========================================================= */

:root {
	--asc-primary: #0F4C5C;
	--asc-primary-dark: #0a3641;
	--asc-secondary: #C0DCDF;
	--asc-accent: #9A031E;
	--asc-accent-dark: #6e0216;
	--asc-text: #000000;
	--asc-soft: #4a4a4a;
	--asc-cloud: rgba(254, 255, 255, 0.88);
	--asc-bone: #f5f1ea;
	--asc-sand: #e8dfcf;
	--asc-deep: #000000;        /* header / footer use solid black */
	--asc-overlay: rgba(0, 0, 0, 0.45);
	--asc-radius: 4px;
	--asc-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	--asc-font-display: 'Poppins', 'Helvetica Neue', sans-serif;
	--asc-font-body: 'Poppins', 'Helvetica Neue', sans-serif;
	--asc-font-alt: 'Montserrat', 'Helvetica Neue', sans-serif;
	--asc-container: 1200px;
	--asc-container-narrow: 820px;

	/* legacy aliases so any older selectors still resolve to the right color */
	--asc-coral: var(--asc-accent);
	--asc-coral-dark: var(--asc-accent-dark);
	--asc-ink: var(--asc-text);
}

html { scroll-behavior: smooth; }

body.wp-singular,
body {
	font-family: var(--asc-font-body);
	color: var(--asc-ink);
	background: #fff;
	line-height: 1.6;
	margin: 0;
}

h1, h2, h3, h4, h5 {
	font-family: var(--asc-font-display);
	font-weight: 600;
	letter-spacing: 1.8px;
	color: var(--asc-text);
	margin: 0 0 0.6em;
	line-height: 1.2em;
	text-transform: none;
}

a { color: var(--asc-primary); text-decoration: none; }
a:hover { color: var(--asc-accent); text-decoration: underline; }

img { max-width: 100%; height: auto; display: block; }

.asc-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
}
.asc-skip-link:focus {
	left: 1rem; top: 1rem;
	background: #fff; color: var(--asc-ink);
	padding: 0.5rem 0.75rem; z-index: 9999;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ---------- Buttons ----------
   Matches sorayaletournel.com global button:
     default  -> bg #0F4C5C teal, color #C0DCDF pale icy blue
     hover    -> bg #9A031E wine, color #C0DCDF
   The .asc-btn--ghost variant matches the section "Schedule a call" /
   "Search property" / "Sell property" outline buttons:
     default  -> transparent bg, teal text, 2px teal border
     hover    -> bg teal, white text
   The .asc-btn--header variant matches the header "Login" / "Let's Talk":
     default  -> black bg, white text, 1px teal border
     hover    -> bg teal, white text, white border
*/
.asc-btn {
	display: inline-block;
	font-family: var(--asc-font-display);
	font-weight: 500;
	font-size: 0.95rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.85rem 1.6rem;
	border-radius: var(--asc-radius);
	cursor: pointer;
	border: 1px solid transparent;
	transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease;
}
.asc-btn:hover,
.asc-btn:focus { text-decoration: none; outline: none; }

.asc-btn--primary {
	background: var(--asc-primary);
	color: var(--asc-secondary);
	border-color: var(--asc-primary);
}
.asc-btn--primary:hover,
.asc-btn--primary:focus {
	background: var(--asc-accent);
	color: var(--asc-secondary);
	border-color: var(--asc-accent);
}

.asc-btn--ghost {
	background: transparent;
	color: var(--asc-primary);
	border-width: 2px;
	border-color: var(--asc-primary);
}
.asc-btn--ghost:hover,
.asc-btn--ghost:focus {
	background: var(--asc-primary);
	color: #fff;
	border-color: var(--asc-primary);
}
/* When a ghost button sits on a dark hero/section, flip text to white. */
.asc-hero .asc-btn--ghost,
.asc-section--cta .asc-btn--ghost,
.asc-page-hero .asc-btn--ghost {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.85);
}
.asc-hero .asc-btn--ghost:hover,
.asc-hero .asc-btn--ghost:focus,
.asc-section--cta .asc-btn--ghost:hover,
.asc-section--cta .asc-btn--ghost:focus,
.asc-page-hero .asc-btn--ghost:hover,
.asc-page-hero .asc-btn--ghost:focus {
	background: #fff;
	color: var(--asc-primary);
	border-color: #fff;
}

.asc-btn--header {
	background: var(--asc-text);
	color: #fff;
	border: 1px solid var(--asc-primary);
}
.asc-btn--header:hover,
.asc-btn--header:focus {
	background: var(--asc-primary);
	color: #fff;
	border-color: #fff;
}

/* ---------- Header ---------- */
.asc-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--asc-deep);
	color: #fff;
}
.asc-header-inner {
	max-width: var(--asc-container);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	padding: 0.75rem 1.25rem;
}
.asc-site-logo { display: inline-flex; }
.asc-site-logo img {
	display: block;
	width: 220px;
	max-width: 100%;
	height: auto;
}

.asc-primary-nav { flex: 1 1 auto; }
.asc-menu {
	list-style: none;
	display: flex;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	justify-content: center;
}
.asc-menu li { position: relative; }
.asc-menu a, .asc-menu .menu-item > a {
	color: #fff;
	font-family: var(--asc-font-display);
	text-transform: capitalize;
	letter-spacing: 0;
	font-size: 19px;
	font-weight: 400;
	line-height: 1em;
	padding: 0.5rem 5px;
	display: inline-block;
	transition: color 180ms ease;
}
.asc-menu a:hover, .asc-menu a:focus { color: var(--asc-accent); text-decoration: none; }

/* Dropdown indicator: chevron-down on menu items that have a sub-menu.
   Rotates 180° when the dropdown is open (hover/focus-within).
   Using a Unicode glyph instead of a CSS border-triangle so parent-theme
   resets can't accidentally turn it into a box. */
.asc-menu .menu-item-has-children > a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}
.asc-menu .menu-item-has-children > a::after {
	content: "\025BE";                /* ▾ */
	display: inline-block;
	font-size: 0.7em;
	line-height: 1;
	color: currentColor;
	border: 0 !important;
	background: transparent !important;
	width: auto !important;
	height: auto !important;
	transform-origin: center 55%;
	transition: transform 200ms ease;
}
.asc-menu .menu-item-has-children:hover > a::after,
.asc-menu .menu-item-has-children:focus-within > a::after {
	transform: rotate(180deg);
}

.asc-menu .current-menu-item > a { color: #fff; position: relative; }
.asc-menu .current-menu-item > a::after {
	content: "";
	position: absolute;
	left: 5px; right: 5px; bottom: 0;
	height: 1px;
	background: #fff;
}

/* ---- Dropdown submenu ---- */
.asc-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: calc(100% + 12px);
	min-width: 240px;
	background: #fff;
	color: var(--asc-text);
	border-top: 3px solid var(--asc-accent);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, -8px);
	transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
	z-index: 60;
}
/* Invisible bridge so the cursor can cross the gap without losing hover. */
.asc-menu .sub-menu::before {
	content: "";
	position: absolute;
	top: -15px; left: 0; right: 0;
	height: 15px;
}
.asc-menu li:hover > .sub-menu,
.asc-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}
.asc-menu .sub-menu li { display: block; }
.asc-menu .sub-menu li + li { border-top: 1px solid #eee; }
.asc-menu .sub-menu a {
	display: block;
	padding: 0.85rem 1.25rem;
	color: var(--asc-text);
	font-family: var(--asc-font-display);
	font-size: 0.95rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	transition: background-color 160ms ease, color 160ms ease, padding-left 160ms ease;
}
.asc-menu .sub-menu a:hover,
.asc-menu .sub-menu a:focus {
	background: var(--asc-bone);
	color: var(--asc-accent);
	padding-left: 1.5rem;
}

.asc-header-cta { display: flex; gap: 0.9rem; align-items: center; }
.asc-header-cta .asc-btn { padding: 0.55rem 1.05rem; font-size: 0.78rem; }
/* Login panel styled as a button — matches .asc-btn--header.
   The BB widget renders its own anchors with inline color; the !important
   override pulls them back to white so the whole button reads consistently. */
.asc-header-login {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.78rem;
	font-weight: 500;
	cursor: default;
}
.asc-header-login a,
.asc-header-login a:visited {
	color: #fff !important;
	text-decoration: none;
}
.asc-header-login a:hover,
.asc-header-login a:focus {
	color: #fff !important;
	text-decoration: underline;
}
.asc-header-login .asc-bb-placeholder {
	font-size: 0.7rem;
	padding: 0.25rem 0.5rem;
	color: #fff;
	background: rgba(255,255,255,0.06);
	border-color: rgba(255,255,255,0.25);
}
/* Hover the whole pill: bg shifts to teal, border to white — same as
   .asc-btn--header. */
.asc-header-login:hover,
.asc-header-login:focus-within {
	background: var(--asc-primary);
	border-color: #fff;
}

.asc-nav-toggle {
	background: none;
	border: 0;
	display: none;
	cursor: pointer;
	padding: 0.4rem;
	flex-direction: column;
	gap: 4px;
}
.asc-nav-toggle__bar {
	display: block;
	width: 24px;
	height: 2px;
	background: #fff;
	transition: transform 200ms ease, opacity 200ms ease;
}

/* ---------- Hero ---------- */
.asc-hero {
	position: relative;
	min-height: 92vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	color: #fff;
	text-align: center;
}
.asc-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.asc-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.55) 100%);
	z-index: 1;
}
.asc-hero__content {
	position: relative;
	z-index: 2;
	max-width: 900px;
	padding: 4rem 1.5rem;
}
.asc-hero__title {
	font-family: var(--asc-font-display);
	font-size: 43px;
	font-weight: 600;
	letter-spacing: 1.8px;
	line-height: 1.2em;
	color: #fff;
	margin-bottom: 0.75rem;
	text-shadow: 0 0 10px rgba(0, 0, 0, 0.88);
	text-transform: none;
}
.asc-hero__tagline {
	font-family: var(--asc-font-display);
	font-size: 23px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.4;
	color: #fff;
	margin-bottom: 2.25rem;
	text-shadow: 0 0 10px rgba(0, 0, 0, 0.88);
}
/* Hero search — break out of the 900px .asc-hero__content cap so Buying Buddy
   has full hero width to render QuickSearch on a single line.
   position: relative + left:50% + translateX(-50%) centers it against the
   VIEWPORT, not the constrained parent. */
.asc-hero__search {
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	width: 90vw;
	max-width: 1500px;
	color: var(--asc-ink);
	background: transparent;
	padding: 0;
	border-radius: 0;
	box-shadow: none;
}
.asc-hero__search .asc-bb-placeholder { background: #fff; }   /* only shows during setup */

.asc-hero-fallback-form { display: flex; gap: 0.5rem; }
.asc-hero-fallback-form__input {
	flex: 1;
	padding: 0.75rem 1rem;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 1rem;
}
.asc-hero-fallback-form__btn {
	padding: 0 1.25rem;
	min-width: 56px;
	height: 52px;
	border-radius: 6px;
	border: 0;
	background: var(--asc-primary);
	color: #fff;
	cursor: pointer;
	font-size: 1.25rem;
	transition: background-color 200ms ease;
}
.asc-hero-fallback-form__btn:hover { background: var(--asc-accent); }

/* ---------- Sections ---------- */
.asc-section {
	padding: 5rem 1.5rem;
}
.asc-section--connect { background: #EBEBEB; }
.asc-section--bio { background: #fff; }
.asc-section--reviews { background: var(--asc-bone); }
/* Cards section: the splash lives on its own layer (::before) so we can
   apply opacity directly to it without affecting the cards on top. Adjust
   --asc-splash-opacity below to dial the watercolor up or down. */
.asc-section--cards {
	position: relative;
	background-color: #fff;
	padding: 4rem 6%;
	--asc-splash-opacity: 0.6;
}
.asc-section--cards::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("../media/bg-splash.webp");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	opacity: var(--asc-splash-opacity);
	pointer-events: none;
	z-index: 0;
}
.asc-section--cards > .asc-section__inner {
	position: relative;
	z-index: 1;
}
.asc-section--featured { background: var(--asc-bone); }
.asc-section--articles { background: #fff; }
.asc-section--cta { background: var(--asc-text); color: #fff; text-align: center; }
.asc-section--cta .asc-section__title { color: #fff; }
.asc-section--page { padding: 4rem 1.5rem; }

.asc-section__inner {
	max-width: var(--asc-container);
	margin: 0 auto;
	text-align: center;
}
.asc-section__inner--narrow {
	max-width: var(--asc-container-narrow);
	text-align: left;
}
.asc-section__eyebrow {
	font-family: var(--asc-font-display);
	font-size: 0.9rem;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	color: var(--asc-coral);
	font-weight: 500;
	margin-bottom: 0.5rem;
}
.asc-section__title {
	font-family: var(--asc-font-display);
	font-size: 43px;
	font-weight: 600;
	letter-spacing: 4px;
	line-height: 1.2em;
	color: var(--asc-primary);
	margin-bottom: 1rem;
	text-transform: uppercase;
}
.asc-section--cta .asc-section__title { color: #fff; }
/* "Connect with Soraya" — the only h2 that stays title case in the original */
.asc-section--connect .asc-section__title {
	text-transform: none;
	letter-spacing: 1.8px;
}
/* Bio "Aloha, I'm Soraya" — Montserrat uppercase */
.asc-section--bio .asc-section__title {
	font-family: var(--asc-font-alt);
	color: var(--asc-primary);
}
.asc-section__title--small {
	font-size: 1.5rem;
	letter-spacing: 0.5px;
}
.asc-section__lead {
	font-size: 1.15rem;
	max-width: 640px;
	margin: 0 auto 1.75rem;
	color: var(--asc-soft);
}
.asc-section__copy {
	max-width: 800px;
	margin: 0 auto;
	font-size: 1.05rem;
	line-height: 1.8;
	color: var(--asc-soft);
}
.asc-section__copy p { margin: 0 0 1.25rem; }
.asc-section__copy strong { color: var(--asc-ink); }

/* ---------- Cards section (Buyers / Sellers / Referrals) ----------
   3 alternating rows: text + image, with text-left and text-right variants.
   The section sits on the soft watercolor splash (bg-cards.png) with a light
   white wash for legibility. */
.asc-cards {
	display: flex;
	flex-direction: column;
	gap: 0;
	text-align: left;
}
.asc-card {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;   /* let text + image fill row height equally */
	gap: 0;                 /* text and image touch in the middle */
	padding: 0;
	background: transparent;
}
.asc-card__text {
	background: transparent;
	padding: 3.5rem clamp(1.5rem, 4vw, 4rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.asc-card__image {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 360px;
	max-height: 520px;
	object-fit: cover;
	border-radius: 0;     /* corners stay square so rows touch cleanly */
}
.asc-card__title {
	font-family: var(--asc-font-display);
	font-size: 43px;
	font-weight: 600;
	letter-spacing: 4px;
	line-height: 1.2em;
	color: var(--asc-primary);
	text-transform: uppercase;
	margin: 0 0 1rem;
}
.asc-card__copy {
	margin: 0 0 1.5rem;
	color: var(--asc-text);
	font-size: 1.05rem;
	line-height: 1.6;
}
/* text-left places text first in source; default grid order works. */
.asc-card--text-left .asc-card__text { order: 0; }
.asc-card--text-left .asc-card__image { order: 1; }
/* text-right needs the image first visually (source order: image -> text). */
.asc-card--text-right .asc-card__image { order: 0; }
.asc-card--text-right .asc-card__text { order: 1; }

/* ---------- Articles ---------- */
.asc-articles-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
	text-align: left;
	margin-top: 2rem;
}
.asc-article-card {
	background: transparent;
	border: 0;
	display: flex;
	flex-direction: column;
	transition: transform 250ms ease;
}
.asc-article-card:hover { transform: translateY(-3px); }
.asc-article-card__thumb-link {
	display: block;
	overflow: hidden;
	border-radius: 14px;
	box-shadow: 0 6px 18px rgba(15, 76, 92, 0.08);
}
.asc-article-card__thumb {
	width: 100%;
	height: auto;
	aspect-ratio: 16/9;
	object-fit: cover;
	border-radius: 14px;
	transition: transform 500ms ease;
}
.asc-article-card:hover .asc-article-card__thumb { transform: scale(1.04); }
.asc-article-card__thumb--empty {
	display: block;
	width: 100%;
	aspect-ratio: 16/9;
	background: var(--asc-sand);
}
.asc-article-card__body { padding: 1rem 0.25rem 0; flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; }
.asc-article-card__title {
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.35;
	margin: 0.75rem 0 0.5rem;
	text-align: center;
	letter-spacing: 0;
	text-transform: none;
}
.asc-article-card__title a { color: var(--asc-primary); }
.asc-article-card__title a:hover { color: var(--asc-primary-dark); }
.asc-article-card__meta { font-size: 0.8rem; color: var(--asc-soft); margin-bottom: 0.5rem; text-align: center; }
.asc-article-card__excerpt {
	color: var(--asc-text);
	flex: 1 1 auto;
	text-align: center;
	font-size: 0.9rem;
	line-height: 1.55;
	margin: 0 0 0.75rem;
}
.asc-article-card__more {
	font-family: var(--asc-font-display);
	color: var(--asc-primary);
	text-transform: none;
	font-size: 0.95rem;
	letter-spacing: 0;
	margin-top: 1rem;
	text-align: center;
	font-weight: 500;
}
.asc-article-card__more:hover { color: var(--asc-primary-dark); text-decoration: underline; }

/* ---------- Page hero (interior pages) ---------- */
.asc-page-hero {
	background: var(--asc-deep);
	color: #fff;
	text-align: center;
	padding: 6rem 1.5rem 4rem;
}
.asc-page-hero__inner { max-width: 900px; margin: 0 auto; }
.asc-page-hero__title {
	font-size: clamp(2rem, 4vw, 3.4rem);
	font-weight: 300;
	margin-bottom: 0.75rem;
	color: #fff;
}
.asc-page-hero__subtitle {
	font-family: var(--asc-font-display);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-size: 0.9rem;
	color: rgba(255,255,255,0.85);
	margin-bottom: 1.5rem;
}

/* Steps (Buy page) */
.asc-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 2rem; }
.asc-step { background: var(--asc-bone); padding: 2rem; border-radius: 8px; text-align: left; }
.asc-step__num {
	font-family: var(--asc-font-display);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--asc-coral);
	font-weight: 600;
	font-size: 0.85rem;
}
.asc-step__title { font-size: 1.5rem; margin: 0.5rem 0 0.75rem; }
.asc-step__copy { color: var(--asc-soft); margin-bottom: 1rem; }

/* Case studies (Sell page) */
.asc-case { padding: 1.5rem 0; border-bottom: 1px solid var(--asc-sand); text-align: left; }
.asc-case:last-child { border-bottom: 0; }
.asc-case__title { font-size: 1.25rem; margin-bottom: 0.5rem; }
.asc-case__copy { color: var(--asc-soft); margin: 0; }

/* Contact grid */
.asc-contact-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3rem; text-align: left; }
.asc-contact-list { list-style: none; padding: 0; margin: 1.5rem 0 0; }
.asc-contact-list li { padding: 0.5rem 0; border-bottom: 1px dashed var(--asc-sand); }
.asc-contact-list strong { display: inline-block; min-width: 80px; }

/* ---------- Contact page (3-card layout over palms bg) ---------- */
.asc-contact {
	position: relative;
	min-height: 80vh;
	padding: clamp(4rem, 9vw, 7rem) 1.5rem;
	color: #fff;
	background-color: #1a2a36;
	background-image: url("../media/bg-contact-palms.jpg");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow: hidden;
}
.asc-contact__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 76, 92, 0.6) 0%, rgba(10, 30, 40, 0.75) 100%);
	pointer-events: none;
}
.asc-contact__inner {
	position: relative;
	max-width: 1100px;
	margin: 0 auto;
	text-align: center;
}
.asc-contact__head { margin-bottom: 3rem; }
.asc-contact__title {
	font-family: var(--asc-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 600;
	color: #fff;
	letter-spacing: 4px;
	text-transform: uppercase;
	margin: 0 0 0.75rem;
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}
.asc-contact__sub {
	font-family: var(--asc-font-display);
	font-size: 1.15rem;
	color: rgba(255, 255, 255, 0.92);
	max-width: 640px;
	margin: 0 auto;
	line-height: 1.5;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

.asc-contact__cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
	margin-bottom: 3rem;
}
.asc-contact-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding: 2.5rem 1.5rem;
	background: rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 8px;
	color: #fff;
	text-decoration: none;
	transition: background-color 250ms ease, border-color 250ms ease, transform 250ms ease, box-shadow 250ms ease;
}
.asc-contact-card:hover,
.asc-contact-card:focus {
	background: rgba(255, 255, 255, 0.95);
	border-color: #fff;
	color: var(--asc-primary);
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
	text-decoration: none;
}
.asc-contact-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	transition: background-color 250ms ease, color 250ms ease;
}
.asc-contact-card:hover .asc-contact-card__icon,
.asc-contact-card:focus .asc-contact-card__icon {
	background: var(--asc-primary);
	color: #fff;
}
.asc-contact-card__label {
	font-family: var(--asc-font-display);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: inherit;
	margin-top: 0.5rem;
}
.asc-contact-card__value {
	font-family: var(--asc-font-display);
	font-size: 1.05rem;
	color: inherit;
	opacity: 0.9;
	line-height: 1.4;
	text-align: center;
}

.asc-contact__office {
	margin-top: 2rem;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.95rem;
	line-height: 1.6;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.4);
}
.asc-contact__office strong { color: #fff; }

@media (max-width: 880px) {
	.asc-contact__cards { grid-template-columns: 1fr; gap: 1rem; }
	.asc-contact-card { padding: 1.75rem 1.25rem; flex-direction: row; text-align: left; }
	.asc-contact-card__icon { width: 56px; height: 56px; flex-shrink: 0; }
	.asc-contact-card__label { margin-top: 0; }
	.asc-contact-card__value { text-align: left; }
}

.asc-form { display: grid; gap: 1rem; }
.asc-form__label { display: block; }
.asc-form__label > span { display: block; font-weight: 500; margin-bottom: 0.25rem; font-size: 0.9rem; }
.asc-form__label input,
.asc-form__label textarea {
	width: 100%; padding: 0.75rem 0.9rem;
	border: 1px solid var(--asc-sand);
	border-radius: 6px; font: inherit;
	background: #fff;
}
.asc-form__note { font-size: 0.8rem; color: var(--asc-soft); }

/* Video embed */
.asc-video-embed { aspect-ratio: 16/9; margin: 1.5rem 0 2rem; }
.asc-video-embed iframe { width: 100%; height: 100%; border: 0; border-radius: 8px; }

/* ---------- Buying Buddy placeholder ---------- */
.asc-bb-placeholder {
	border: 2px dashed var(--asc-coral);
	background: #fff8f9;
	color: var(--asc-ink);
	padding: 1.25rem 1.5rem;
	border-radius: 8px;
	text-align: left;
	font-size: 0.95rem;
}
.asc-bb-placeholder code {
	display: inline-block;
	padding: 2px 6px;
	background: #fff;
	border: 1px solid var(--asc-sand);
	border-radius: 4px;
	font-size: 0.85em;
	margin-top: 0.25rem;
}
.asc-bb-placeholder small { color: var(--asc-soft); }
.asc-bb-featured { margin-top: 3rem; }

/* ---------- Footer ---------- */
.asc-site-footer {
	background: var(--asc-deep);
	color: #cfcfcf;
	padding: 3rem 1.5rem 2rem;
}
.asc-footer-inner {
	max-width: var(--asc-container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 1.5rem;
	align-items: center;
	text-align: center;
}
.asc-footer-meta a { color: #cfcfcf; }
.asc-footer-meta a:hover { color: #fff; }
.asc-footer-actions {
	display: flex;
	justify-content: center;
	gap: 0.75rem;
}
.asc-icon-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 4px;
	background: #fff;
	color: var(--asc-primary);
	transition: background-color 200ms ease, color 200ms ease;
}
.asc-icon-link:hover {
	background: var(--asc-primary);
	color: #fff;
}
.asc-footer-logo img { margin: 0 auto; max-width: 180px; height: auto; }

/* ---------- Popup ---------- */
.asc-popup {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: none;
	align-items: center;
	justify-content: center;
}
.asc-popup.is-open { display: flex; }
.asc-popup__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.65); }
.asc-popup__panel {
	position: relative;
	background: #fff;
	color: var(--asc-ink);
	width: min(560px, 92vw);
	max-height: 90vh;
	overflow: auto;
	border-radius: 10px;
	padding: 2rem;
	box-shadow: 0 30px 80px rgba(0,0,0,0.35);
}
.asc-popup__close {
	position: absolute;
	top: 0.75rem;
	right: 1rem;
	background: none;
	border: 0;
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
	color: var(--asc-ink);
}
.asc-popup__title { margin-top: 0; }

/* ---------- Lead-capture popup (prequalify + intake) ---------- */
.asc-lead-popup__panel {
	width: min(560px, 92vw);
	padding: 2.5rem 2.25rem 2rem;
	background: #fff;
	border-radius: 6px;
}
.asc-lead-popup__title {
	font-family: var(--asc-font-display);
	font-size: clamp(1.5rem, 2.6vw, 1.85rem);
	font-weight: 700;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 0.35rem;
}
.asc-lead-popup__sub {
	font-family: var(--asc-font-display);
	font-size: 1rem;
	color: var(--asc-soft);
	line-height: 1.5;
	margin: 0 0 1.75rem;
}

/* Form */
.asc-lead-form { display: flex; flex-direction: column; gap: 0.85rem; }
.asc-lead-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.85rem;
}
.asc-lead-form__field { display: block; }
.asc-lead-form__field input {
	width: 100%;
	padding: 0.9rem 1rem;
	border: 1px solid var(--asc-sand);
	border-radius: 4px;
	font: 400 1rem var(--asc-font-display);
	color: var(--asc-text);
	background: #fff;
	transition: border-color 180ms ease, box-shadow 180ms ease;
}
.asc-lead-form__field input:focus {
	outline: none;
	border-color: var(--asc-primary);
	box-shadow: 0 0 0 3px rgba(15, 76, 92, 0.15);
}
.asc-lead-form__field input::placeholder { color: #9b9b9b; }
.asc-lead-form__honeypot {
	position: absolute !important;
	left: -9999px;
	width: 1px; height: 1px; opacity: 0;
}

.asc-lead-form__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 0.75rem;
}
.asc-lead-form__status {
	flex: 1 1 auto;
	font-size: 0.9rem;
	color: var(--asc-soft);
	min-height: 1.2em;
}
.asc-lead-form__status.is-success { color: var(--asc-primary); }
.asc-lead-form__status.is-error   { color: var(--asc-accent); }
.asc-lead-form__status.is-loading { color: var(--asc-soft); }
.asc-lead-form__submit {
	flex: 0 0 auto;
	border-radius: 999px;
	padding: 0.85rem 1.5rem;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--asc-primary);
	color: #fff;
	border: 0;
	cursor: pointer;
	font-weight: 500;
}
.asc-lead-form__submit:hover,
.asc-lead-form__submit:focus {
	background: var(--asc-accent);
	color: #fff;
}
.asc-lead-form__submit:disabled { opacity: 0.6; cursor: wait; }
.asc-lead-form__arrow { font-size: 1.1em; line-height: 1; }
.asc-lead-form.is-submitted .asc-lead-form__row,
.asc-lead-form.is-submitted .asc-lead-form__submit { display: none; }

@media (max-width: 540px) {
	.asc-lead-popup__panel { padding: 2rem 1.5rem 1.5rem; }
	.asc-lead-form__row { grid-template-columns: 1fr; }
	.asc-lead-form__footer { flex-direction: column; align-items: stretch; }
	.asc-lead-form__submit { justify-content: center; }
}

/* ---------- SELL PAGE ----------
   Hero (title + sub + 2-col video/calendly + footer) ->
   "What's My Home Worth?" CTA (over palm bg) ->
   Soraya bio (over palm bg) ->
   3 case-study rows ->
   Past Clients reviews
*/

.asc-sell-hero {
	background: #fff;
	padding: 4rem 1.5rem 3rem;
}
.asc-sell-hero__inner {
	max-width: 1280px;
	margin: 0 auto;
	text-align: center;
}
.asc-sell-hero__title {
	font-family: var(--asc-font-display);
	font-size: clamp(1.6rem, 3.4vw, 2.4rem);
	font-weight: 700;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.25;
	margin: 0 0 1rem;
}
/* Hand-drawn-marker underline on "Top 1% Realtor" */
.asc-sell-hero__underline {
	position: relative;
	display: inline-block;
	white-space: nowrap;
}
.asc-sell-hero__underline::after {
	content: "";
	position: absolute;
	left: -2px; right: -2px;
	bottom: -2px;
	height: 6px;
	background: var(--asc-accent);
	border-radius: 4px 50% 4px 50%;
	transform: skewX(-3deg);
	opacity: 0.85;
}
.asc-sell-hero__sub {
	font-family: var(--asc-font-display);
	font-size: 1.1rem;
	color: var(--asc-soft);
	margin: 0 0 2rem;
}

.asc-sell-hero__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	max-width: 1100px;
	margin: 0 auto 2.5rem;
	text-align: left;
}
.asc-sell-hero__video {
	position: relative;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: 6px;
	overflow: hidden;
}
.asc-sell-hero__video iframe {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	border: 0;
}
.asc-sell-hero__calendly {
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
	min-height: 560px;
}
.asc-sell-hero__calendly .calendly-inline-widget {
	width: 100%;
}

.asc-sell-hero__footer {
	font-family: var(--asc-font-display);
	font-size: 1.4rem;
	color: var(--asc-text);
	line-height: 1.5;
}
.asc-sell-hero__footer-line { margin: 0 0 0.25rem; }
/* Hand-drawn-circle on "no hassle" */
.asc-sell-hero__circle {
	position: relative;
	display: inline-block;
	font-weight: 700;
	padding: 0 0.4em;
}
.asc-sell-hero__circle::before {
	content: "";
	position: absolute;
	inset: -0.1em -0.05em;
	border: 2px solid var(--asc-accent);
	border-radius: 50%;
	transform: rotate(-2deg);
	pointer-events: none;
	opacity: 0.85;
}

/* "What's My Home Worth?" strip ------------------------------------------- */
.asc-sell-valuation {
	position: relative;
	background-color: #1a2a36;
	background-image: url("../media/bg-valuation.jpg");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: 5rem 1.5rem;
	text-align: center;
	color: #fff;
}
.asc-sell-valuation::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(15, 76, 92, 0.35);
	pointer-events: none;
}
.asc-sell-valuation__inner {
	position: relative;
	max-width: 900px;
	margin: 0 auto;
}
.asc-sell-valuation__title {
	font-family: var(--asc-font-display);
	font-size: clamp(2rem, 4vw, 2.8rem);
	font-weight: 700;
	color: #fff;
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 1rem;
	text-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
.asc-sell-valuation__copy {
	font-size: 1.05rem;
	line-height: 1.65;
	color: #fff;
	margin: 0 0 1.5rem;
	text-shadow: 0 1px 6px rgba(0,0,0,0.4);
}
.asc-sell-valuation__btn {
	background: var(--asc-text);
	border-color: var(--asc-text);
	color: #fff;
	padding: 0.85rem 1.6rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}
.asc-sell-valuation__btn:hover,
.asc-sell-valuation__btn:focus {
	background: var(--asc-accent);
	border-color: var(--asc-accent);
	color: #fff;
}
.asc-btn__arrows { font-size: 1.1em; line-height: 1; }

/* Soraya bio (sell page) -------------------------------------------------- */
.asc-sell-bio {
	background-color: #fff;
	background-image: url("../media/bg-palms.png");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: 5rem 1.5rem;
	position: relative;
}
.asc-sell-bio::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.7);
	pointer-events: none;
}
.asc-sell-bio__inner {
	position: relative;
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 320px minmax(0, 1fr);
	gap: 3rem;
	align-items: start;
}
.asc-sell-bio__photo img {
	width: 100%;
	max-width: 320px;
	height: auto;
	display: block;
}
.asc-sell-bio__name {
	font-family: var(--asc-font-display);
	font-size: 1.9rem;
	font-weight: 600;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 1.25rem;
}
.asc-sell-bio__copy p {
	color: var(--asc-text);
	font-size: 1rem;
	line-height: 1.7;
	margin: 0 0 1.1rem;
}
.asc-sell-bio__copy strong { color: var(--asc-text); }

/* Case studies ------------------------------------------------------------ */
.asc-sell-cases {
	background: #EBEBEB;
	padding: 5rem 1.5rem;
}
.asc-sell-cases__inner {
	max-width: 1200px;
	margin: 0 auto;
}
.asc-sell-cases__title {
	font-family: var(--asc-font-display);
	font-size: clamp(2rem, 4vw, 2.8rem);
	font-weight: 700;
	text-align: center;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 3rem;
}
.asc-sell-case {
	display: grid;
	grid-template-columns: 460px minmax(0, 1fr);
	gap: 3rem;
	align-items: center;
	margin-bottom: 3rem;
}

.asc-sell-case__media {
	position: relative;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: 6px;
	overflow: hidden;
	padding: 0;
	border: 0;
	display: block;
	width: 100%;
}
button.asc-sell-case__media {
	cursor: pointer;
	font: inherit;
	color: inherit;
}
.asc-sell-case__media iframe,
.asc-sell-case__media img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	border: 0;
	transition: transform 500ms ease;
}
.asc-sell-case__media--play:hover img { transform: scale(1.04); }

/* Play-button overlay on cases that have a video */
.asc-sell-case__play {
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	color: var(--asc-text);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
	transition: background-color 220ms ease, color 220ms ease, transform 220ms ease;
	pointer-events: none;       /* clicks pass through to the parent button */
}
.asc-sell-case__play svg { margin-left: 4px; }   /* visually center the play triangle */
.asc-sell-case__media--play:hover .asc-sell-case__play,
.asc-sell-case__media--play:focus .asc-sell-case__play {
	background: var(--asc-accent);
	color: #fff;
	transform: translate(-50%, -50%) scale(1.08);
}
.asc-sell-case__name {
	font-family: var(--asc-font-display);
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	font-weight: 700;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 1rem;
	line-height: 1.3;
}
.asc-sell-case__copy {
	color: var(--asc-text);
	font-size: 0.98rem;
	line-height: 1.65;
	margin: 0;
}
.asc-sell-case__copy strong { color: var(--asc-text); }

/* Sell page responsive ---------------------------------------------------- */
@media (max-width: 900px) {
	.asc-sell-hero__grid { grid-template-columns: 1fr; }
	.asc-sell-bio__inner {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		text-align: center;
	}
	.asc-sell-bio__photo img { margin: 0 auto; max-width: 240px; }
	.asc-sell-case {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
	.asc-sell-hero__footer { font-size: 1.15rem; }
}

/* ---------- LEGAL PAGES (Terms + Privacy) ---------- */
.asc-section--legal { padding: 4rem 1.5rem; background: #fff; }
.asc-legal__header {
	text-align: center;
	border-bottom: 1px solid var(--asc-sand);
	padding-bottom: 1.5rem;
	margin-bottom: 2rem;
}
.asc-legal__title {
	font-family: var(--asc-font-display);
	font-size: clamp(1.8rem, 3.6vw, 2.4rem);
	font-weight: 700;
	color: var(--asc-primary);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0 0 0.5rem;
}
.asc-legal__effective {
	color: var(--asc-soft);
	font-size: 0.95rem;
	margin: 0;
}
.asc-legal__body { color: var(--asc-text); font-size: 1rem; line-height: 1.7; }
.asc-legal__body h2 {
	font-family: var(--asc-font-display);
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 2rem 0 0.75rem;
}
.asc-legal__body h3 {
	font-family: var(--asc-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--asc-primary);
	letter-spacing: 0;
	text-transform: none;
	margin: 1.5rem 0 0.5rem;
}
.asc-legal__body p { margin: 0 0 1rem; }
.asc-legal__body ul { padding-left: 1.5rem; margin: 0 0 1rem; }
.asc-legal__body ul li { margin-bottom: 0.4rem; }
.asc-legal__body a { color: var(--asc-primary); text-decoration: underline; }
.asc-legal__body a:hover { color: var(--asc-accent); }
.asc-legal__contact {
	background: var(--asc-bone);
	padding: 1.25rem 1.5rem;
	border-radius: 6px;
	font-style: normal;
	line-height: 1.7;
}

/* ---------- REFERRALS PAGE ---------- */

/* Hero: photo background with title above and a poster-button below that
   opens the referrals video in a popup. */
.asc-referrals-hero {
	position: relative;
	min-height: 80vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #2a3e4a;
	background-image: url("../media/bg-referrals.png");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: 5rem 1.5rem;
	overflow: hidden;
}
.asc-referrals-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 76, 92, 0.35) 0%, rgba(10, 30, 40, 0.55) 100%);
	pointer-events: none;
}
.asc-referrals-hero__inner {
	position: relative;
	max-width: 920px;
	margin: 0 auto;
	text-align: center;
	color: #fff;
}
.asc-referrals-hero__title {
	font-family: var(--asc-font-display);
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	font-weight: 600;
	color: #fff;
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 2rem;
	text-shadow: 0 2px 14px rgba(0,0,0,0.45);
}
.asc-referrals-hero__underline {
	position: relative;
	display: inline-block;
	white-space: nowrap;
}
.asc-referrals-hero__underline::after {
	content: "";
	position: absolute;
	left: -2px; right: -2px;
	bottom: -2px;
	height: 4px;
	background: #c5a45d;
	border-radius: 4px 50% 4px 50%;
	transform: skewX(-3deg);
	opacity: 0.95;
}
.asc-referrals-hero__video {
	position: relative;
	display: block;
	width: min(720px, 100%);
	margin: 0 auto 1.25rem;
	aspect-ratio: 16 / 9;
	background: #000;
	border: 0;
	border-radius: 8px;
	overflow: hidden;
	cursor: pointer;
	padding: 0;
	box-shadow: 0 22px 50px rgba(0, 0, 0, 0.45);
	transition: transform 250ms ease;
}
.asc-referrals-hero__video img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 600ms ease;
}
.asc-referrals-hero__video:hover img { transform: scale(1.04); }
.asc-referrals-hero__play {
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 88px;
	border-radius: 50%;
	background: rgba(255, 0, 0, 0.92);    /* YouTube-style red */
	color: #fff;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
	transition: background-color 220ms ease, transform 220ms ease;
}
.asc-referrals-hero__play svg { margin-left: 4px; }
.asc-referrals-hero__video:hover .asc-referrals-hero__play {
	transform: translate(-50%, -50%) scale(1.06);
}
.asc-referrals-hero__sub {
	font-family: var(--asc-font-display);
	font-style: italic;
	font-size: 1.25rem;
	color: #fff;
	margin: 1rem 0 0;
	text-shadow: 0 2px 10px rgba(0,0,0,0.4);
}

/* Intro paragraph on dark background */
.asc-referrals-intro {
	background: #f7f7f7;
	padding: 4rem 1.5rem;
}
.asc-referrals-intro__inner {
	max-width: 1100px;
	margin: 0 auto;
	text-align: left;
}
.asc-referrals-intro__lead {
	font-family: var(--asc-font-display);
	font-size: clamp(1.15rem, 1.8vw, 1.5rem);
	font-weight: 600;
	line-height: 1.45;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 1.25rem;
}
.asc-referrals-intro__lead .asc-accent-word { color: var(--asc-accent); }
.asc-referrals-intro__body {
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--asc-soft);
	margin: 0;
}

/* Accordion — native <details>/<summary> styled */
.asc-referrals-accordion {
	background: #f7f7f7;
	padding: 0 1.5rem 4rem;
}
.asc-referrals-accordion__inner {
	max-width: 1100px;
	margin: 0 auto;
}
.asc-acc {
	background: #fff;
	border: 1px solid var(--asc-sand);
	border-radius: 8px;
	margin-bottom: 1rem;
	overflow: hidden;
}
.asc-acc__head {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	font-family: var(--asc-font-display);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--asc-primary);
	transition: background-color 200ms ease;
}
.asc-acc__head::-webkit-details-marker { display: none; }
.asc-acc__head:hover { background: var(--asc-bone); }
.asc-acc__title { flex: 1 1 auto; }
.asc-acc__toggle {
	flex: 0 0 auto;
	width: 28px; height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	font-weight: 300;
	line-height: 1;
	color: var(--asc-accent);
	transition: transform 220ms ease;
}
.asc-acc[open] .asc-acc__toggle { transform: rotate(45deg); }
.asc-acc__body {
	padding: 0 1.5rem 1.5rem;
	color: var(--asc-text);
	font-size: 1rem;
	line-height: 1.65;
}
.asc-acc__body ul {
	list-style: disc;
	padding-left: 1.5rem;
	margin: 0;
}
.asc-acc__body ul ul {
	list-style: circle;
	margin: 0.5rem 0 1rem;
}
.asc-acc__body li { margin-bottom: 0.5rem; }
.asc-acc__body--form { padding-bottom: 2rem; }
.asc-referral-form__heading {
	font-family: var(--asc-font-display);
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--asc-text);
	margin: 0 0 0.5rem;
	text-transform: none;
	letter-spacing: 0;
}
.asc-referral-form__intro {
	color: var(--asc-soft);
	font-size: 0.95rem;
	margin: 0 0 1.25rem;
}
/* Notes textarea spans both columns of the lead form grid. */
.asc-lead-form__field--full { grid-column: 1 / -1; }
.asc-lead-form__field textarea {
	width: 100%;
	padding: 0.9rem 1rem;
	border: 1px solid var(--asc-sand);
	border-radius: 4px;
	font: 400 1rem var(--asc-font-display);
	color: var(--asc-text);
	background: #fff;
	resize: vertical;
	min-height: 110px;
	transition: border-color 180ms ease, box-shadow 180ms ease;
}
.asc-lead-form__field textarea:focus {
	outline: none;
	border-color: var(--asc-primary);
	box-shadow: 0 0 0 3px rgba(15, 76, 92, 0.15);
}

/* Ready to Connect CTA */
.asc-referrals-cta {
	background: var(--asc-bone);
	padding: 4rem 1.5rem;
	text-align: center;
}
.asc-referrals-cta__inner {
	max-width: 820px;
	margin: 0 auto;
}
.asc-referrals-cta__title {
	font-family: var(--asc-font-display);
	font-size: clamp(1.4rem, 2.4vw, 1.75rem);
	font-weight: 700;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 1rem;
}
.asc-referrals-cta p {
	color: var(--asc-text);
	font-size: 1rem;
	line-height: 1.65;
	margin: 0 0 1rem;
}
.asc-referrals-cta .asc-btn--primary {
	margin-top: 0.5rem;
}

@media (max-width: 640px) {
	.asc-referrals-hero { min-height: 70vh; padding: 3rem 1.25rem; }
	.asc-referrals-hero__play { width: 64px; height: 64px; }
	.asc-referrals-hero__sub { font-size: 1rem; }
	.asc-acc__head { padding: 1rem 1.25rem; font-size: 1.05rem; }
}

/* ---------- Video popup (Watch The Workshop) ---------- */
.asc-video-popup__panel {
	width: min(960px, 96vw);
	max-height: 92vh;
	padding: 0;
	background: #000;
	border-radius: 4px;
	overflow: visible;
	box-shadow: 0 30px 80px rgba(0,0,0,0.5);
}
.asc-video-popup__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
	overflow: hidden;
	border-radius: 4px;
}
.asc-video-popup__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.asc-video-popup__close {
	position: absolute;
	top: -2.25rem;
	right: 0;
	color: #fff;
	font-size: 2.25rem;
	z-index: 2;
}
.asc-video-popup__close:hover { color: var(--asc-accent); }

/* ---------- Pagination ---------- */
.asc-pagination { margin-top: 3rem; text-align: center; }
.asc-pagination .page-numbers {
	display: inline-block;
	padding: 0.5rem 0.85rem;
	margin: 0 0.15rem;
	border: 1px solid var(--asc-sand);
	border-radius: 4px;
	color: var(--asc-ink);
}
.asc-pagination .page-numbers.current { background: var(--asc-coral); color: #fff; border-color: var(--asc-coral); }

/* ---------- Blog shell: single + archive + search ----------
   Centered title row up top, then a 2-column grid: main content on the
   left, .asc-blog-sidebar (share / search / recent / Buy + Sell CTAs) on
   the right. Mobile collapses to a single column.
*/
.asc-blog-shell {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 1.5rem;
}
.asc-blog-shell__header {
	text-align: center;
	margin-bottom: 2.5rem;
}
.asc-blog-shell__header .asc-single__title,
.asc-blog-shell__header .asc-archive__title {
	font-family: var(--asc-font-display);
	font-size: clamp(1.8rem, 3.6vw, 2.8rem);
	font-weight: 600;
	color: var(--asc-text);
	letter-spacing: 0.5px;
	margin: 0 0 0.5rem;
	text-transform: none;
}
.asc-blog-shell__header .asc-archive__description {
	color: var(--asc-soft);
	max-width: 720px;
	margin: 0 auto;
}

.asc-blog-shell__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 2rem;
	align-items: start;
}
.asc-blog-shell__main { min-width: 0; }
.asc-blog-shell__main > .asc-single__meta {
	display: flex;
	gap: 0.5rem;
	color: var(--asc-soft);
	font-size: 0.95rem;
	margin-bottom: 1.5rem;
}
.asc-blog-shell__main .asc-single__thumb img {
	width: 100%;
	height: auto;
	border-radius: 4px;
	margin-bottom: 1.5rem;
}
.asc-blog-shell__main .asc-single__content {
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--asc-text);
}
.asc-blog-shell__main .asc-single__content p { margin: 0 0 1.25rem; }
.asc-blog-shell__main .asc-single__content h2,
.asc-blog-shell__main .asc-single__content h3 {
	color: var(--asc-primary);
	letter-spacing: 0.5px;
	margin: 1.5em 0 0.6em;
	text-transform: none;
}

/* Blog index next to the sidebar stays 3-up for a fuller grid feel. */
.asc-articles-grid--with-sidebar {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

/* Full-width blog index variant — used on home.php / archive.php / search.php
   (no sidebar there; sidebar only appears on single.php). */
.asc-articles-grid--full {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem;
}

/* Full-width blog page shell (no sidebar). */
.asc-blog-wide {
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 1.5rem;
}
.asc-blog-wide__header {
	text-align: center;
	margin-bottom: 2rem;
}
.asc-blog-wide__title {
	font-family: var(--asc-font-display);
	font-size: clamp(1.4rem, 2.4vw, 2rem);
	font-weight: 400;
	color: var(--asc-text);
	letter-spacing: 6px;
	text-transform: uppercase;
	margin: 0;
}
.asc-blog-wide__description {
	color: var(--asc-soft);
	max-width: 720px;
	margin: 0.75rem auto 0;
	font-size: 0.95rem;
}

/* Big centered search bar above the post grid */
.asc-blog-search {
	display: flex;
	align-items: stretch;
	max-width: 1100px;
	margin: 0 auto 2.5rem;
	border: 1px solid var(--asc-sand);
	border-radius: 0;
	background: #fff;
	overflow: hidden;
}
.asc-blog-search__input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.95rem 1.25rem;
	border: 0;
	background: transparent;
	font: 400 1rem/1.4 var(--asc-font-display);
	color: var(--asc-text);
}
.asc-blog-search__input:focus { outline: none; }
.asc-blog-search__input::placeholder { color: #999; }
.asc-blog-search__submit {
	flex: 0 0 auto;
	width: 64px;
	border: 0;
	background: var(--asc-text);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 200ms ease;
}
.asc-blog-search__submit:hover { background: var(--asc-primary); }
.asc-blog-search__icon {
	font-size: 1.25rem;
	line-height: 1;
	display: inline-block;
}

/* ---------- Sidebar blocks ---------- */
.asc-blog-sidebar {
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}
.asc-sidebar-block {
	background: #fff;
	border: 1px solid var(--asc-sand);
	border-radius: 6px;
	padding: 1.25rem 1.25rem;
}
.asc-sidebar-block__title {
	font-family: var(--asc-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.5px;
	color: var(--asc-primary);
	text-transform: uppercase;
	margin: 0 0 1rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid var(--asc-sand);
}

/* Share */
.asc-sidebar-share {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	background: var(--asc-text);
	border-color: var(--asc-text);
	color: #fff;
}
.asc-sidebar-share__label {
	font-family: var(--asc-font-display);
	letter-spacing: 1px;
	font-size: 0.95rem;
}
.asc-sidebar-share__icons {
	display: inline-flex;
	gap: 0.5rem;
}
.asc-sidebar-share__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	transition: background-color 200ms ease, color 200ms ease;
}
.asc-sidebar-share__icon:hover,
.asc-sidebar-share__icon:focus {
	background: var(--asc-primary);
	color: #fff;
	text-decoration: none;
}

/* Search */
.asc-sidebar-search__form {
	display: flex;
	align-items: stretch;
}
.asc-sidebar-search__input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--asc-sand);
	border-right: 0;
	border-radius: 4px 0 0 4px;
	font: inherit;
	background: #fff;
}
.asc-sidebar-search__input:focus {
	outline: none;
	border-color: var(--asc-primary);
}
.asc-sidebar-search__submit {
	flex: 0 0 auto;
	border: 0;
	background: var(--asc-text);
	color: #fff;
	padding: 0 0.85rem;
	border-radius: 0 4px 4px 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 200ms ease;
}
.asc-sidebar-search__submit:hover { background: var(--asc-primary); }

/* Recent posts */
.asc-sidebar-recent__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.asc-sidebar-recent__item {
	display: grid;
	grid-template-columns: 90px 1fr;
	gap: 0.75rem;
}
.asc-sidebar-recent__thumb-link { display: block; }
.asc-sidebar-recent__thumb {
	width: 90px;
	height: 70px;
	object-fit: cover;
	border-radius: 4px;
	display: block;
}
.asc-sidebar-recent__thumb--empty { background: var(--asc-sand); }
.asc-sidebar-recent__title {
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 0.25rem;
	letter-spacing: 0;
	text-transform: none;
}
.asc-sidebar-recent__title a {
	color: var(--asc-text);
	text-decoration: none;
}
.asc-sidebar-recent__title a:hover { color: var(--asc-accent); }
.asc-sidebar-recent__date {
	display: block;
	font-size: 0.78rem;
	color: var(--asc-soft);
	margin-bottom: 0.25rem;
}
.asc-sidebar-recent__excerpt {
	font-size: 0.85rem;
	color: var(--asc-soft);
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* CTA blocks */
.asc-sidebar-cta {
	text-align: center;
}
.asc-sidebar-cta--buy {
	background: var(--asc-primary);
	border-color: var(--asc-primary);
	color: #fff;
}
.asc-sidebar-cta--buy .asc-sidebar-cta__title { color: #fff; }
.asc-sidebar-cta--buy .asc-sidebar-cta__copy { color: rgba(255, 255, 255, 0.85); }
.asc-sidebar-cta--buy .asc-btn--primary {
	background: #fff;
	color: var(--asc-primary);
	border-color: #fff;
}
.asc-sidebar-cta--buy .asc-btn--primary:hover {
	background: var(--asc-accent);
	color: #fff;
	border-color: var(--asc-accent);
}
.asc-sidebar-cta--sell { background: var(--asc-bone); }
.asc-sidebar-cta__title {
	font-family: var(--asc-font-display);
	font-size: 1.1rem;
	font-weight: 600;
	letter-spacing: 0.5px;
	margin: 0 0 0.5rem;
	text-transform: none;
}
.asc-sidebar-cta__copy {
	font-size: 0.9rem;
	margin: 0 0 1rem;
	color: var(--asc-soft);
	line-height: 1.5;
}
.asc-sidebar-cta__btn {
	width: 100%;
	display: inline-block;
}

.asc-blog-empty {
	padding: 2rem 1rem;
	color: var(--asc-soft);
	text-align: center;
}

/* ---------- BUY PAGE ----------
   Hero with search + CTA -> Carnegie quote -> Soraya bio -> 5-step
   buyer journey (alternating Step N label + body block) -> reviews -> CTA.
*/

/* Pill button variant — rounded with optional leading icon.
   Default: white bg with a thin dark border (matches the buy-page journey
   buttons on the gray sections). Override inside .asc-buy-hero for a
   solid white pill on the dark video background. */
.asc-btn--pill {
	border-radius: 999px;
	background: #fff;
	color: var(--asc-text);
	border: 1.5px solid var(--asc-text);
	padding: 0.85rem 1.75rem;
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	font-weight: 500;
}
.asc-btn--pill:hover,
.asc-btn--pill:focus {
	background: var(--asc-primary);
	color: #fff;
	border-color: var(--asc-primary);
}
/* Hero variant — pill sits over a dark/video background, so drop the border
   so it reads as a clean white CTA. */
.asc-buy-hero .asc-btn--pill {
	background: #fff;
	color: var(--asc-text);
	border-color: #fff;
}
.asc-buy-hero .asc-btn--pill:hover,
.asc-buy-hero .asc-btn--pill:focus {
	background: var(--asc-primary);
	color: #fff;
	border-color: var(--asc-primary);
}
.asc-btn__icon { font-size: 1rem; line-height: 1; display: inline-block; }

/* Hero --------------------------------------------------------------------- */
.asc-buy-hero {
	position: relative;
	min-height: 92vh;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: var(--asc-text);
	overflow: hidden;
	background-color: #0b141e;       /* fallback while the YouTube iframe loads */
	padding: 6rem 1.5rem 5rem;
}
/* YouTube background video — sized to always cover the hero, regardless of
   viewport aspect, by using both width/height (vw-based) and min-width/min-height
   (vh-based) to enforce the 16:9 ratio in both directions. pointer-events:none
   keeps clicks from reaching the iframe's player controls. */
.asc-buy-hero__video {
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 0;
	pointer-events: none;
}
.asc-buy-hero__video iframe,
.asc-buy-hero__videoEl {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	min-width: 100%;
	min-height: 100%;
	transform: translate(-50%, -50%);
	object-fit: cover;
	border: 0;
}
.asc-buy-hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.45);
	z-index: 1;
}
.asc-buy-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 900px;
}
.asc-buy-hero__title {
	font-family: var(--asc-font-display);
	font-size: clamp(2rem, 4.5vw, 3.5rem);
	font-weight: 700;
	color: var(--asc-text);
	letter-spacing: 0;
	line-height: 1.15;
	margin: 0 0 1.5rem;
	text-transform: none;
}
/* Match the home hero: break out of the .asc-buy-hero__inner 900px cap
   so Buying Buddy renders QuickSearch on a single line, full viewport width. */
.asc-buy-hero__search {
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	width: 90vw;
	max-width: 1500px;
	margin: 0 auto 1.5rem;
	color: var(--asc-ink);
	background: transparent;
}
.asc-buy-hero__intro {
	font-size: 1rem;
	line-height: 1.6;
	color: var(--asc-text);
	margin: 0 auto 1.75rem;
	max-width: 720px;
}
.asc-buy-hero__chevron {
	position: absolute;
	left: 50%;
	bottom: 1.25rem;
	transform: translateX(-50%);
	font-size: 2.5rem;
	color: var(--asc-text);
	text-decoration: none;
	line-height: 1;
	opacity: 0.7;
	transition: opacity 200ms ease, transform 200ms ease;
}
.asc-buy-hero__chevron:hover {
	opacity: 1;
	transform: translate(-50%, 4px);
}

/* Carnegie quote ----------------------------------------------------------- */
.asc-buy-quote {
	background: #EBEBEB;
	padding: 4rem 1.5rem 2.5rem;
	text-align: center;
}
.asc-buy-quote__inner {
	max-width: 820px;
	margin: 0 auto;
}
.asc-buy-quote__text {
	font-family: var(--asc-font-display);
	font-size: clamp(1.3rem, 2.4vw, 1.9rem);
	font-weight: 500;
	line-height: 1.4;
	color: var(--asc-text);
	margin: 0 0 1rem;
	font-style: normal;
}
.asc-buy-quote__cite {
	display: block;
	font-style: italic;
	color: var(--asc-soft);
	font-size: 1rem;
}

/* Soraya bio --------------------------------------------------------------- */
.asc-buy-bio {
	background: #EBEBEB;
	padding: 1.5rem 1.5rem 4.5rem;
}
.asc-buy-bio__inner {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 320px minmax(0, 1fr);
	gap: 3rem;
	align-items: start;
}
.asc-buy-bio__photo img {
	width: 100%;
	max-width: 320px;
	height: auto;
	display: block;
	border-radius: 0;
}
.asc-buy-bio__name {
	font-family: var(--asc-font-display);
	font-size: 1.9rem;
	font-weight: 600;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 0 0 1.25rem;
}
.asc-buy-bio__copy p {
	color: var(--asc-text);
	font-size: 1rem;
	line-height: 1.7;
	margin: 0 0 1.1rem;
}

/* Buyer journey ------------------------------------------------------------ */
.asc-buy-journey {
	background: #EBEBEB;
	padding: 1rem 1.5rem 5rem;
}
.asc-buy-journey__head {
	max-width: 1100px;
	margin: 0 auto 3rem;
	text-align: center;
}
.asc-buy-journey__title {
	font-family: var(--asc-font-display);
	font-size: clamp(1.8rem, 3.6vw, 2.6rem);
	font-weight: 700;
	color: var(--asc-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 0;
}
.asc-buy-steps {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 3.5rem;
}
.asc-buy-step {
	display: grid;
	grid-template-columns: 320px minmax(0, 1fr);
	gap: 3rem;
	align-items: start;
}
.asc-buy-step__label {
	text-align: left;
}
.asc-buy-step__num {
	display: block;
	font-family: var(--asc-font-display);
	font-size: clamp(2.4rem, 4vw, 3rem);
	font-weight: 800;
	color: var(--asc-text);
	letter-spacing: 0;
	line-height: 1;
	margin-bottom: 0.6rem;
	text-transform: none;
}
.asc-buy-step__name {
	font-family: var(--asc-font-display);
	font-size: 1.6rem;
	font-weight: 400;
	color: var(--asc-soft);
	letter-spacing: 0;
	text-transform: none;
	margin: 0;
}
.asc-buy-step__body p {
	color: var(--asc-text);
	font-size: 1rem;
	line-height: 1.65;
	margin: 0 0 1.25rem;
}

/* Responsive collapse for the buy page ------------------------------------- */
@media (max-width: 900px) {
	.asc-buy-bio__inner,
	.asc-buy-step {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
	.asc-buy-bio__photo img {
		max-width: 240px;
		margin: 0 auto;
	}
	.asc-buy-journey__head { margin-bottom: 2rem; }
	.asc-buy-steps { gap: 2.5rem; }
	.asc-buy-step__name { font-size: 1.3rem; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
	.asc-card { grid-template-columns: 1fr; gap: 1.5rem; padding: 2rem 1rem; }
	/* On mobile every row stacks image-on-top, text-below for consistency. */
	.asc-card--text-left .asc-card__image,
	.asc-card--text-right .asc-card__image { order: 0; }
	.asc-card--text-left .asc-card__text,
	.asc-card--text-right .asc-card__text { order: 1; }
	.asc-articles-grid { grid-template-columns: 1fr 1fr; }
	.asc-articles-grid--with-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asc-articles-grid--full { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asc-contact-grid { grid-template-columns: 1fr; }
	.asc-footer-inner { grid-template-columns: 1fr; }

	/* Collapse the blog shell to a single column; sidebar moves below content. */
	.asc-blog-shell__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}

@media (max-width: 767px) {
	.asc-articles-grid,
	.asc-articles-grid--with-sidebar,
	.asc-articles-grid--full { grid-template-columns: 1fr; }

	.asc-blog-wide__title { letter-spacing: 4px; }
	.asc-blog-search { margin-bottom: 1.75rem; }

	.asc-site-logo img { width: 180px; }
	.asc-primary-nav { order: 3; flex: 0 0 100%; }
	.asc-nav-toggle { display: flex; align-self: flex-end; }
	.asc-menu {
		display: none;
		flex-direction: column;
		gap: 0;
		background: var(--asc-deep);
		padding: 0.5rem 0 1rem;
		border-top: 1px solid rgba(255,255,255,0.1);
	}
	.asc-menu.is-open { display: flex; }
	.asc-menu a { padding: 0.75rem 1rem; }
	.asc-menu .sub-menu { position: static; box-shadow: none; padding-left: 1rem; }
	.asc-header-cta .asc-btn { padding: 0.5rem 0.85rem; }

	.asc-hero { min-height: 80vh; }
	.asc-hero__title { font-size: 2.4rem; }
	.asc-section { padding: 3.5rem 1.25rem; }
	.asc-hero-fallback-form { flex-direction: column; }
}
