/* ==========================================================================
   Ageless by Reva — design system
   Warm-neutral, editorial: Fraunces (serif display) + Manrope (UI/body)
   ========================================================================== */

@font-face { font-family: "Fraunces"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("../fonts/fraunces-latin-opsz-normal.woff2") format("woff2-variations"), url("../fonts/fraunces-latin-opsz-normal.woff2") format("woff2"); }
@font-face { font-family: "Fraunces"; font-style: italic; font-display: swap; font-weight: 100 900; src: url("../fonts/fraunces-latin-opsz-italic.woff2") format("woff2-variations"), url("../fonts/fraunces-latin-opsz-italic.woff2") format("woff2"); }
@font-face { font-family: "Manrope"; font-style: normal; font-display: swap; font-weight: 200 800; src: url("../fonts/manrope-latin-wght-normal.woff2") format("woff2-variations"), url("../fonts/manrope-latin-wght-normal.woff2") format("woff2"); }

:root {
	--cream: #F6FCFA;
	--paper: #FFFFFF;
	--sand: #E4F7F2;
	--blush: #C9F3E8;
	--rose: #B0FAE9;
	--clay: #2FA88F;
	--clay-ink: #0E6B5C;
	--ink: #0B1F1C;
	--ink-2: #22332F;
	--muted: #4F625D;
	--line: rgba(11, 31, 28, .12);
	--dark: #0B1F1C;
	--dark-2: #14302B;

	--serif: "Fraunces", "Cormorant Garamond", Georgia, serif;
	--sans: "Manrope", "Helvetica Neue", Arial, sans-serif;

	--r-sm: 12px;
	--r: 22px;
	--r-lg: 32px;
	--pill: 999px;
	--shadow: 0 1px 2px rgba(11, 31, 28, .04), 0 12px 32px -12px rgba(11, 31, 28, .18);
	--ease: cubic-bezier(.2, .7, .2, 1);
	--wrap: 1240px;
	--gutter: clamp(16px, 4vw, 40px);
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body.abr {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
.abr *, .abr *::before, .abr *::after { box-sizing: border-box; }
.abr img { max-width: 100%; height: auto; display: block; }
.abr a { color: inherit; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 3px; }
.abr a:hover { color: var(--clay-ink); }
.abr :focus-visible { outline: 2px solid var(--clay); outline-offset: 3px; border-radius: 6px; }
.abr h1, .abr h2, .abr h3, .abr h4 {
	font-family: var(--serif);
	font-weight: 400;
	color: var(--ink);
	line-height: 1.08;
	letter-spacing: -.015em;
	margin: 0 0 .5em;
	font-variation-settings: "opsz" 120;
}
.abr h2 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.4rem); }
.abr h3, .abr .abr-h3 { font-size: clamp(1.3rem, 1.1rem + .6vw, 1.65rem); line-height: 1.2; }
.abr h1 em, .abr h2 em, .abr .abr-display em, .abr-logo__word em {
	font-style: italic;
	font-weight: 300;
	color: var(--clay-ink);
}
.abr p { margin: 0 0 1em; }
.abr ul, .abr ol { margin: 0; padding: 0; }
.abr address { font-style: normal; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.abr-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--ink); color: #fff; padding: 10px 16px; border-radius: var(--pill); }
.abr-skip:focus { left: 12px; color: #fff; }

.abr-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.abr-narrow { max-width: 1040px; }
.abr-main { display: block; }

/* ---------- Type helpers ---------- */
.abr-eyebrow {
	display: inline-flex; align-items: center; gap: .55em;
	font-family: var(--sans);
	font-size: .76rem; font-weight: 700;
	letter-spacing: .16em; text-transform: uppercase;
	color: var(--clay-ink);
	margin: 0 0 1rem;
}
.abr-eyebrow--light { color: var(--rose); }
.abr-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--clay); box-shadow: 0 0 0 4px color-mix(in srgb, var(--clay) 20%, transparent); }
.abr-display {
	font-size: clamp(2.6rem, 1.6rem + 4.4vw, 5.6rem) !important;
	line-height: .98 !important;
	letter-spacing: -.03em !important;
	font-variation-settings: "opsz" 144 !important;
	margin-bottom: .35em !important;
}
.abr-lead { font-size: clamp(1.08rem, 1rem + .35vw, 1.3rem); color: var(--ink-2); max-width: 38em; line-height: 1.55; }
.abr-link { font-weight: 700; color: var(--clay-ink); text-decoration: none; border-bottom: 1.5px solid currentColor; }

/* ---------- Buttons ---------- */
.abr-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: 52px; padding: 0 28px;
	border-radius: var(--pill);
	background: var(--ink); color: var(--cream) !important;
	font: 600 .98rem/1 var(--sans); letter-spacing: .01em;
	text-decoration: none; border: 1.5px solid var(--ink);
	transition: transform .25s var(--ease), background .25s, color .25s, box-shadow .25s;
	white-space: nowrap;
}
.abr-btn:hover { background: var(--clay-ink); border-color: var(--clay-ink); transform: translateY(-2px); box-shadow: var(--shadow); color: #fff !important; }
.abr-btn--sm { min-height: 42px; padding: 0 20px; font-size: .9rem; }
.abr-btn--ghost { background: transparent; color: var(--ink) !important; border-color: var(--line); }
.abr-btn--ghost:hover { background: var(--ink); color: var(--cream) !important; border-color: var(--ink); }
.abr-btn--light { background: var(--cream); color: var(--ink) !important; border-color: var(--cream); }
.abr-btn--light:hover { background: var(--rose); border-color: var(--rose); color: var(--ink) !important; }
.abr-btn--outline-light { background: transparent; color: var(--cream) !important; border-color: rgba(246, 252, 250, .35); }
.abr-btn--outline-light:hover { background: var(--cream); color: var(--ink) !important; border-color: var(--cream); }
.abr-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }

/* ---------- Top bar + header ---------- */
.abr-topbar { background: var(--dark); color: rgba(246, 252, 250, .78); font-size: .8rem; letter-spacing: .02em; }
.abr-topbar__inner { display: flex; gap: 12px; align-items: center; justify-content: center; min-height: 38px; flex-wrap: wrap; }
.abr-topbar__tel { color: var(--cream) !important; font-weight: 700; text-decoration: none; margin-left: auto; }
.abr-topbar__sep { opacity: .4; }

.abr-header {
	position: sticky; top: 0; z-index: 90;
	background: color-mix(in srgb, var(--cream) 82%, transparent);
	backdrop-filter: saturate(1.4) blur(14px);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color .3s, box-shadow .3s;
}
.admin-bar .abr-header { top: 32px; }
.abr-header.is-scrolled { border-bottom-color: var(--line); box-shadow: 0 8px 24px -18px rgba(11, 31, 28, .4); }
.abr-header__inner { display: flex; align-items: center; gap: 24px; min-height: 76px; }
.abr-logo { display: inline-flex; align-items: center; text-decoration: none; margin-right: auto; }
.abr-logo__img { max-height: 54px; width: auto; }
.abr-logo__word { font-family: var(--serif); font-size: 1.65rem; letter-spacing: -.02em; color: var(--ink); line-height: 1; }
.abr-logo__word em { font-size: .8em; }

.abr-nav { display: flex; align-items: center; gap: 8px; }
.abr-menu { display: flex; list-style: none; gap: 2px; align-items: center; }
.abr-menu > li { position: relative; list-style: none; }
.abr-menu a { display: block; padding: 10px 14px; border-radius: var(--pill); font-weight: 600; font-size: .95rem; text-decoration: none; color: var(--ink); }
.abr-menu > li > a:hover, .abr-menu > li.current-menu-item > a, .abr-menu > li.current-menu-ancestor > a { background: var(--sand); color: var(--ink); }
.abr-menu > li.menu-item-type-custom.current-menu-item > a { background: none; }
.abr-menu .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); opacity: .6; }
.abr-menu .sub-menu {
	position: absolute; top: calc(100% + 8px); left: 0; min-width: 260px;
	list-style: none; padding: 10px; background: var(--paper);
	border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .2s, transform .2s var(--ease), visibility .2s;
}
.abr-menu .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.abr-menu li:hover > .sub-menu, .abr-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.abr-menu .sub-menu a { border-radius: var(--r-sm); font-weight: 500; }
.abr-menu .sub-menu a:hover { background: var(--sand); }
.abr-nav__cta { display: none; }
.abr-burger { display: none; }

/* ---------- Hero ---------- */
.abr-hero { position: relative; padding: clamp(36px, 6vw, 88px) 0 clamp(40px, 6vw, 80px); overflow: hidden; }
.abr-hero::before {
	content: ""; position: absolute; inset: -20% -10% auto auto; width: 70vw; height: 70vw; max-width: 900px; max-height: 900px;
	background: radial-gradient(closest-side, color-mix(in srgb, var(--blush) 85%, transparent), transparent 70%);
	z-index: -1; pointer-events: none;
}
.abr-hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.abr-hero--inner .abr-display { font-size: clamp(2.4rem, 1.5rem + 3.6vw, 4.6rem) !important; }
.abr-hero--slim { padding-bottom: 24px; }
.abr-hero--slim .abr-display { max-width: 15em; font-size: clamp(2.4rem, 1.5rem + 3.6vw, 4.6rem) !important; }
.abr-hero__media { position: relative; }
.abr-proof { display: flex; flex-wrap: wrap; gap: 10px 22px; list-style: none; margin-top: 30px; font-size: .9rem; color: var(--muted); font-weight: 600; }
.abr-proof li { display: inline-flex; align-items: center; gap: 8px; }
.abr-proof li + li::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--rose); margin-right: 14px; }
.abr-stars { color: var(--clay); letter-spacing: 2px; }

.abr-arch {
	margin: 0; aspect-ratio: 4 / 5; border-radius: 999px 999px var(--r-lg) var(--r-lg);
	overflow: hidden; position: relative; background: var(--sand);
	box-shadow: 0 40px 80px -40px rgba(11, 31, 28, .35);
}
.abr-arch img { width: 100%; height: 100%; object-fit: cover; }
.abr-hero--inner .abr-arch, .abr-hero--home .abr-arch { max-width: 480px; margin-left: auto; }

/* Hero video */
.abr-arch--video { background: #EAD3C6; }
.abr-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 45% 50%; }
.abr-arch--video::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(11, 31, 28, 0) 55%, rgba(11, 31, 28, .35) 100%); }
.abr-video-toggle {
	position: absolute; z-index: 3; right: 20px; bottom: 20px;
	width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .6);
	background: rgba(11, 31, 28, .45); backdrop-filter: blur(6px); cursor: pointer; display: grid; place-items: center; padding: 0;
	transition: background .25s;
}
.abr-video-toggle:hover { background: rgba(11, 31, 28, .7); }
.abr-video-toggle__icon { width: 12px; height: 14px; border-left: 4px solid #fff; border-right: 4px solid #fff; }
.abr-video-toggle[aria-pressed="true"] .abr-video-toggle__icon { width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 13px; border-color: transparent transparent transparent #fff; margin-left: 3px; }
.abr-hero--home .abr-chip { z-index: 4; }

/* Generated art (shown until a real photo is uploaded) */
.abr-art { position: absolute; inset: 0; overflow: hidden; background: linear-gradient(160deg, #F3DDD0 0%, #E7C3B0 45%, #C98F74 100%); }
.abr-art__orb { position: absolute; width: 75%; aspect-ratio: 1; border-radius: 50%; left: -10%; bottom: -12%; background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, .85), rgba(255, 255, 255, 0) 62%); filter: blur(2px); animation: abr-float 12s var(--ease) infinite alternate; }
.abr-art__orb--2 { width: 55%; left: auto; right: -12%; top: 8%; bottom: auto; background: radial-gradient(circle at 50% 50%, rgba(14, 107, 92, .35), rgba(14, 107, 92, 0) 65%); animation-duration: 15s; }
.abr-art__grain { position: absolute; inset: 0; opacity: .22; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E"); }
.abr-art--b, .abr-art--sculptra { background: linear-gradient(170deg, #EEE3D6 0%, #D9C2A7 50%, #A88A6B 100%); }
.abr-art--dysport { background: linear-gradient(170deg, #F1E6E1 0%, #D8BFC0 50%, #9C7B7F 100%); }
.abr-art--area { background: linear-gradient(180deg, #F6D9C2 0%, #E6A983 45%, #A35E44 80%, #5C3527 100%); }
.abr-art--area::after { content: ""; position: absolute; left: -5%; right: -5%; bottom: 0; height: 38%; background: #3A231B; clip-path: polygon(0 60%, 12% 35%, 22% 50%, 35% 18%, 48% 42%, 58% 28%, 70% 46%, 82% 22%, 100% 48%, 100% 100%, 0 100%); opacity: .85; }
@keyframes abr-float { to { transform: translate(8%, -6%) scale(1.06); } }

.abr-chip {
	position: absolute; padding: 10px 18px; border-radius: var(--pill);
	background: color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter: blur(8px);
	border: 1px solid var(--line); box-shadow: var(--shadow);
	font-family: var(--serif); font-size: 1.05rem; color: var(--ink);
	animation: abr-bob 6s ease-in-out infinite;
}
.abr-chip--1 { left: 0; top: 18%; }
.abr-chip--2 { right: -8px; top: 52%; animation-delay: -2s; }
.abr-chip--3 { left: 8%; bottom: 8%; animation-delay: -4s; }
@keyframes abr-bob { 50% { transform: translateY(-8px); } }

/* ---------- Breadcrumbs ---------- */
.abr-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; font-size: .85rem; color: var(--muted); margin-bottom: 22px; }
.abr-crumbs li + li::before { content: "/"; margin-right: 6px; opacity: .45; }
.abr-crumbs a { text-decoration: none; }
.abr-crumbs [aria-current] { color: var(--ink); font-weight: 600; }

/* ---------- Marquee ---------- */
.abr-marquee { overflow: hidden; border-block: 1px solid var(--line); background: var(--paper); padding: 18px 0; }
.abr-marquee__track { display: flex; gap: 28px; width: max-content; animation: abr-marquee 40s linear infinite; font-family: var(--serif); font-size: clamp(1.2rem, 1rem + 1vw, 1.8rem); font-style: italic; font-weight: 300; color: var(--ink-2); white-space: nowrap; }
.abr-marquee__dot { color: var(--clay); font-style: normal; font-size: .7em; align-self: center; }
@keyframes abr-marquee { to { transform: translateX(-50%); } }

/* ---------- Answer box (AEO) ---------- */
.abr-answer {
	margin: clamp(32px, 5vw, 56px) 0 12px;
	display: grid; grid-template-columns: 1.35fr 1fr; gap: 0;
	background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg);
	box-shadow: var(--shadow); overflow: hidden;
}
.abr-answer__body { padding: clamp(24px, 3.5vw, 40px); }
.abr-answer__text { font-size: 1.08rem; line-height: 1.7; color: var(--ink-2); margin: 0; }
.abr-facts { margin: 0; padding: clamp(20px, 3vw, 32px); background: var(--sand); display: grid; gap: 0; align-content: center; }
.abr-facts div { display: grid; grid-template-columns: 1fr 1.3fr; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.abr-facts div:last-child { border-bottom: 0; }
.abr-facts dt { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding-top: 3px; }
.abr-facts dd { margin: 0; font-weight: 600; font-size: .95rem; }
.abr-answer:not(:has(.abr-facts)) { grid-template-columns: 1fr; }
.abr-updated { font-size: .82rem; color: var(--muted); margin: 0 4px 0; }

/* ---------- Sections ---------- */
.abr-section { padding: clamp(56px, 8vw, 120px) 0; position: relative; }
.abr-section--tight { padding: clamp(32px, 4vw, 56px) 0; }
.abr-section--tight + .abr-section--tight { padding-top: 0; }
.abr-section--sand { background: var(--sand); }
.abr-section--dark { background: var(--dark); color: rgba(246, 252, 250, .82); }
.abr-section--dark h2, .abr-section--dark h3 { color: var(--cream); }
.abr-section__head { max-width: 760px; margin-bottom: clamp(32px, 4vw, 56px); }
.abr-section__head p:not(.abr-eyebrow) { color: var(--muted); font-size: 1.08rem; }
.abr-section--dark .abr-section__head p:not(.abr-eyebrow) { color: rgba(246, 252, 250, .7); }

/* ---------- Cards ---------- */
.abr-cards { display: grid; gap: 18px; }
.abr-cards--services { grid-template-columns: repeat(3, 1fr); }
.abr-cards--areas { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.abr-card {
	position: relative; display: flex; flex-direction: column; gap: 10px;
	padding: clamp(24px, 3vw, 36px); min-height: 300px;
	border-radius: var(--r-lg); text-decoration: none !important;
	background: var(--paper); border: 1px solid var(--line);
	transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .35s;
	overflow: hidden; isolation: isolate;
}
.abr-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(11, 31, 28, .35); color: inherit; }
.abr-card p { color: var(--muted); margin: 0; }
.abr-card__title { margin: 0 !important; font-size: clamp(1.7rem, 1.3rem + 1.2vw, 2.4rem) !important; }
.abr-card__num { font-family: var(--serif); font-style: italic; color: var(--clay-ink); font-size: 1rem; }
.abr-card__cat { font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-top: auto; }
.abr-card__more { margin-top: 14px; font-weight: 700; font-size: .92rem; display: inline-flex; gap: 8px; align-items: center; }
.abr-card__more span { transition: transform .3s var(--ease); }
.abr-card:hover .abr-card__more span { transform: translateX(5px); }
.abr-card--svc::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; z-index: -1; opacity: .7; transition: transform .6s var(--ease); }
.abr-card--restylane::after { background: radial-gradient(closest-side, var(--blush), transparent); }
.abr-card--sculptra::after { background: radial-gradient(closest-side, #E4D4BE, transparent); }
.abr-card--dysport::after { background: radial-gradient(closest-side, #E3D2D3, transparent); }
.abr-card--svc:hover::after { transform: scale(1.5); }
.abr-cards--services .abr-card:first-child { background: var(--ink); border-color: var(--ink); }
.abr-cards--services .abr-card:first-child .abr-card__title, .abr-cards--services .abr-card:first-child .abr-card__more { color: var(--cream); }
.abr-cards--services .abr-card:first-child p, .abr-cards--services .abr-card:first-child .abr-card__cat { color: rgba(246, 252, 250, .7); }
.abr-cards--services .abr-card:first-child .abr-card__num { color: var(--rose); }
.abr-cards--services .abr-card:first-child::after { opacity: .18; }
.abr-card--area { min-height: 240px; background: var(--paper); }
.abr-card--area .abr-card__title { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem) !important; }
.abr-card__pin { width: 38px; height: 38px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--blush); margin-bottom: 12px; position: relative; }
.abr-card__pin::after { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: var(--clay-ink); }

/* Card photos */
.abr-card__media { display: block; margin: calc(-1 * clamp(24px, 3vw, 36px)) calc(-1 * clamp(24px, 3vw, 36px)) 14px; aspect-ratio: 16 / 10; overflow: hidden; background: var(--sand); }
.abr-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.abr-card:hover .abr-card__media img { transform: scale(1.05); }
.abr-card--area .abr-card__media + .abr-card__pin { margin-top: -38px; position: relative; z-index: 1; border: 3px solid var(--paper); box-sizing: content-box; }
.abr-cards--services .abr-card:first-child .abr-card__media { opacity: .92; }

/* Inline + band photos */
.abr-inline { margin: 28px 0 0; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 3; max-width: 100%; }
.abr-inline img { width: 100%; height: 100%; object-fit: cover; }
.abr-band { margin: 0; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 21 / 8; max-width: 100%; }
.abr-band img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px) { .abr-band { aspect-ratio: 4 / 3; } }

/* ---------- Comparison table ---------- */
.abr-table-wrap { overflow-x: auto; border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--paper); -webkit-overflow-scrolling: touch; }
.abr-table { width: 100%; border-collapse: collapse; min-width: 680px; font-size: .97rem; margin: 0; }
.abr-table th, .abr-table td { padding: 18px 22px; text-align: left; border: 0; border-bottom: 1px solid var(--line); vertical-align: top; background: transparent; }
.abr-table thead th { font-family: var(--serif); font-weight: 400; font-size: 1.35rem; background: var(--paper); }
.abr-table tbody th { font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 700; width: 18%; }
.abr-table tbody tr:last-child th, .abr-table tbody tr:last-child td { border-bottom: 0; }
.abr-table tbody tr:hover td { background: color-mix(in srgb, var(--blush) 30%, transparent); }

/* ---------- Split / prose ---------- */
.abr-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.abr-split--text { align-items: start; grid-template-columns: .85fr 1.15fr; }
.abr-split__media .abr-arch { max-width: 460px; }
.abr-prose { font-size: 1.06rem; color: var(--ink-2); }
.abr-prose h2 { margin-top: 1.4em; }
.abr-prose h3 { margin-top: 1.6em; }
.abr-prose ul:not(.abr-pills), .abr-prose ol { padding-left: 1.2em; margin-bottom: 1em; }
.abr-prose--page { max-width: 760px; }
.abr-pills { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; }
.abr-pills li { padding: 9px 16px; border-radius: var(--pill); background: var(--paper); border: 1px solid var(--line); font-size: .92rem; font-weight: 600; }

/* ---------- Types grid ---------- */
.abr-types { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.abr-type { background: var(--paper); border-radius: var(--r); padding: 26px; border: 1px solid var(--line); transition: transform .3s var(--ease), box-shadow .3s; }
.abr-type:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.abr-type h3 { font-size: 1.35rem; margin: 14px 0 8px; }
.abr-type p { color: var(--muted); font-size: .96rem; margin: 0; }
.abr-type__tag { display: inline-block; padding: 5px 12px; border-radius: var(--pill); background: var(--blush); color: var(--clay-ink); font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

/* ---------- Steps ---------- */
.abr-steps { list-style: none; counter-reset: s; display: grid; gap: 14px; }
.abr-steps li { counter-increment: s; position: relative; padding: 22px 24px 22px 84px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); }
.abr-steps li::before { content: counter(s, decimal-leading-zero); position: absolute; left: 24px; top: 20px; font-family: var(--serif); font-style: italic; font-size: 1.7rem; color: var(--clay-ink); line-height: 1; }
.abr-steps h3 { font-size: 1.25rem; margin: 0 0 4px; }
.abr-steps p { margin: 0; color: var(--muted); }
.abr-steps--row { grid-template-columns: repeat(4, 1fr); }
.abr-steps--row li { background: var(--dark-2); border-color: rgba(246, 252, 250, .08); padding: 76px 24px 26px; }
.abr-steps--row li::before { top: 26px; color: var(--rose); font-size: 2rem; }
.abr-steps--row p { color: rgba(246, 252, 250, .7); }

/* ---------- Timeline ---------- */
.abr-timeline { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; position: relative; }
.abr-timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 13px; height: 1px; background: rgba(246, 252, 250, .2); }
.abr-timeline li { position: relative; padding: 44px 24px 0 0; }
.abr-timeline li::before { content: ""; position: absolute; left: 0; top: 6px; width: 15px; height: 15px; border-radius: 50%; background: var(--rose); box-shadow: 0 0 0 6px rgba(176, 250, 233, .18); }
.abr-timeline__when { display: block; font-family: var(--serif); font-size: 1.6rem; color: var(--cream); margin-bottom: 8px; }
.abr-timeline p { margin: 0; color: rgba(246, 252, 250, .72); }

/* ---------- Panels ---------- */
.abr-two { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.abr-panel { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(26px, 3.5vw, 44px); }
.abr-panel--blush { background: var(--blush); border-color: transparent; }
.abr-ticks { list-style: none; display: grid; gap: 12px; margin: 18px 0 26px; }
.abr-ticks li { position: relative; padding-left: 32px; }
.abr-ticks li::before { content: ""; position: absolute; left: 0; top: 5px; width: 18px; height: 18px; border-radius: 50%; background: var(--clay-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat; }
.abr-panel .abr-ticks:last-child { margin-bottom: 0; }

.abr-provider { display: flex; gap: 16px; align-items: flex-start; margin-top: 28px; padding: 20px; border-radius: var(--r); background: var(--sand); font-size: .95rem; color: var(--ink-2); }
.abr-provider p { margin: 0; }
.abr-provider__mono { flex: none; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--cream); font-family: var(--serif); font-style: italic; font-size: 1.5rem; }

/* ---------- FAQ ---------- */
.abr-faq__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.abr-faq__head { position: sticky; top: 120px; }
.abr-faq__head p:not(.abr-eyebrow) { color: var(--muted); }
.abr-faq__list { border-top: 1px solid var(--line); }
.abr-faq__item { border-bottom: 1px solid var(--line); }
.abr-faq__item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 0; }
.abr-faq__item summary::-webkit-details-marker { display: none; }
.abr-faq__item summary h3 { margin: 0; font-size: clamp(1.15rem, 1rem + .4vw, 1.4rem); }
.abr-faq__icon { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); position: relative; transition: background .25s, transform .35s var(--ease); }
.abr-faq__icon::before, .abr-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: var(--ink); transform: translate(-50%, -50%); }
.abr-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .3s var(--ease); }
.abr-faq__item[open] .abr-faq__icon { background: var(--ink); }
.abr-faq__item[open] .abr-faq__icon::before, .abr-faq__item[open] .abr-faq__icon::after { background: var(--cream); }
.abr-faq__item[open] .abr-faq__icon::after { transform: translate(-50%, -50%) rotate(0); }
.abr-faq__a { padding: 0 56px 24px 0; color: var(--ink-2); }
.abr-faq__a p { margin: 0; }

/* ---------- CTA band ---------- */
.abr-cta { padding: 0 0 clamp(56px, 8vw, 110px); }
.abr-cta__inner {
	position: relative; overflow: hidden; isolation: isolate;
	display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px; align-items: end;
	background: var(--dark); color: rgba(246, 252, 250, .78);
	border-radius: var(--r-lg); padding: clamp(32px, 6vw, 80px) !important;
	max-width: calc(var(--wrap) - 2 * var(--gutter));
}
.abr-cta__inner::before { content: ""; position: absolute; width: 520px; height: 520px; right: -140px; top: -220px; border-radius: 50%; background: radial-gradient(closest-side, rgba(176, 250, 233, .45), transparent); z-index: -1; }
.abr-cta h2 { color: var(--cream); margin-bottom: .3em; }
.abr-cta__inner p:not(.abr-eyebrow) { max-width: 34em; margin: 0; }
.abr-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
.abr-section + .abr-cta, .abr-faq + .abr-cta { padding-top: 0; }
.abr-section--sand + .abr-cta, .abr-section--dark + .abr-cta { padding-top: clamp(56px, 8vw, 110px); }

/* ---------- Map / address ---------- */
.abr-map { border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); aspect-ratio: 4 / 3.4; background: var(--sand); }
.abr-map--wide { aspect-ratio: 21 / 8; }
.abr-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.4) sepia(.15); }
.abr-address { margin: 18px 0 20px; line-height: 1.75; }
.abr-landmarks { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 24px; font-size: .9rem; }
.abr-landmarks > span:first-child { font-weight: 700; color: var(--muted); }
.abr-tag { padding: 5px 12px; border-radius: var(--pill); border: 1px solid var(--line); background: var(--paper); }
.abr-contact-list { list-style: none; display: grid; gap: 0; margin: 10px 0 26px; }
.abr-contact-list li { display: grid; grid-template-columns: 90px 1fr; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.abr-contact-list span { font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--muted); padding-top: 3px; }
.abr-contact-list a { font-weight: 600; }

/* ---------- Footer ---------- */
.abr-footer { background: var(--dark); color: rgba(246, 252, 250, .7); padding: clamp(48px, 7vw, 96px) 0 110px; font-size: .95rem; }
.abr-footer a { color: rgba(246, 252, 250, .86); text-decoration: none; }
.abr-footer a:hover { color: var(--rose); }
.abr-footer__big { font-family: var(--serif); font-size: clamp(3rem, 1rem + 9vw, 9.5rem); line-height: .9; letter-spacing: -.04em; color: var(--cream); margin-bottom: clamp(32px, 5vw, 64px); }
.abr-footer__big em { font-style: italic; font-weight: 300; color: var(--rose); font-size: .7em; }
.abr-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; padding-top: 40px; border-top: 1px solid rgba(246, 252, 250, .12); }
.abr-footer__h { font-family: var(--sans) !important; font-size: .74rem !important; letter-spacing: .16em; text-transform: uppercase; font-weight: 700 !important; color: var(--rose) !important; margin-bottom: 16px !important; }
.abr-footer ul { list-style: none; display: grid; gap: 10px; }
.abr-footer address { margin: 14px 0; line-height: 1.8; }
.abr-footer__legal { margin-top: 48px; padding-top: 24px; border-top: 1px solid rgba(246, 252, 250, .12); display: grid; grid-template-columns: auto 1fr; gap: 24px; font-size: .8rem; color: rgba(246, 252, 250, .5); }
.abr-footer__legal p { margin: 0; }
.abr-footer__legal p:last-child { text-align: right; }

.abr-float-cta { display: none; }

/* ---------- Editor content ---------- */
.abr-editor { padding-top: 0; }

/* ---------- Reveal on scroll ---------- */
.abr-js [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.abr-js [data-reveal].is-in { opacity: 1; transform: none; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
	.abr-types { grid-template-columns: repeat(2, 1fr); }
	.abr-steps--row { grid-template-columns: repeat(2, 1fr); }
	.abr-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 960px) {
	.abr-header__cta { display: none; }
	.abr-burger {
		display: inline-flex; flex-direction: column; justify-content: center; gap: 6px;
		width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--line); background: var(--paper); cursor: pointer; padding: 0 14px;
	}
	.abr-burger span[aria-hidden] { display: block; height: 1.5px; background: var(--ink); transition: transform .3s var(--ease); }
	.abr-burger[aria-expanded="true"] span[aria-hidden]:nth-of-type(2) { transform: translateY(3.75px) rotate(45deg); }
	.abr-burger[aria-expanded="true"] span[aria-hidden]:nth-of-type(3) { transform: translateY(-3.75px) rotate(-45deg); }
	.abr-nav {
		position: fixed; inset: 0; top: 0; z-index: -1; flex-direction: column; align-items: stretch; justify-content: flex-start;
		padding: 130px var(--gutter) 40px; background: var(--cream); overflow-y: auto;
		opacity: 0; visibility: hidden; transform: translateY(-12px); transition: opacity .3s, transform .3s var(--ease), visibility .3s;
	}
	.abr-nav.is-open { opacity: 1; visibility: visible; transform: none; }
	.abr-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.abr-menu > li { border-bottom: 1px solid var(--line); }
	.abr-menu > li > a { font-family: var(--serif); font-weight: 400; font-size: 1.7rem; padding: 14px 0; border-radius: 0; }
	.abr-menu > li > a:hover, .abr-menu > li.current-menu-ancestor > a, .abr-menu > li.current-menu-item > a { background: none; }
	.abr-menu .menu-item-has-children > a::after { display: none; }
	.abr-menu .sub-menu { position: static; opacity: 1; visibility: inherit; transform: none; box-shadow: none; border: 0; background: none; padding: 0 0 14px; min-width: 0; }
	.abr-menu .sub-menu a { padding: 8px 0; color: var(--muted); }
	.abr-nav__cta { display: inline-flex; margin-top: 28px; }
	.abr-header { z-index: 100; backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--cream); }
	body.abr-nav-open { overflow: hidden; }

	.abr-hero__grid, .abr-split, .abr-split--text, .abr-faq__grid, .abr-cta__inner, .abr-answer { grid-template-columns: 1fr; }
	.abr-hero__media { max-width: 420px; width: 100%; margin: 0 auto; }
	.abr-hero--inner .abr-arch, .abr-hero--home .abr-arch { margin: 0 auto; }
	.abr-cards--services, .abr-cards--areas { grid-template-columns: 1fr; }
	.abr-card { min-height: 0; }
	.abr-timeline { grid-template-columns: 1fr 1fr; row-gap: 32px; }
	.abr-timeline::before { display: none; }
	.abr-faq__head { position: static; }
	.abr-cta__actions { justify-content: flex-start; }
	.abr-two { grid-template-columns: 1fr; }
	.abr-map--wide { aspect-ratio: 4 / 3; }
}

@media (max-width: 640px) {
	body.abr { font-size: 16px; }
	.abr-topbar__inner { justify-content: center; }
	.abr-topbar__inner > span { display: none; }
	.abr-topbar__tel { margin: 0; }
	.abr-header__inner { min-height: 66px; }
	.abr-logo__word { font-size: 1.4rem; }
	.abr-types, .abr-steps--row, .abr-timeline { grid-template-columns: 1fr; }
	.abr-footer__grid { grid-template-columns: 1fr; }
	.abr-footer__legal { grid-template-columns: 1fr; }
	.abr-footer__legal p:last-child { text-align: left; }
	.abr-actions .abr-btn { flex: 1 1 100%; }
	.abr-chip { font-size: .9rem; padding: 8px 14px; }
	.abr-proof { flex-direction: column; gap: 6px; }
	.abr-hero--home { padding-top: 20px; }
	.abr-hero--home .abr-hero__media { order: -1; max-width: none; }
	.abr-hero--home .abr-arch { aspect-ratio: 1 / 1; border-radius: 999px 999px var(--r) var(--r); }
	.abr-hero--home .abr-chip--2 { display: none; }
	.abr-proof li + li::before { display: none; }
	.abr-chip--2 { right: 0; }
	.abr-faq__a { padding-right: 0; }
	.abr-facts div { grid-template-columns: 1fr; gap: 2px; }
	.abr-contact-list li { grid-template-columns: 1fr; gap: 2px; }
	.abr-steps li { padding-left: 70px; }
	.abr-float-cta {
		display: flex; position: fixed; z-index: 80; left: 16px; right: 16px; bottom: 14px;
		justify-content: center; align-items: center; min-height: 54px; border-radius: var(--pill);
		background: var(--ink); color: var(--cream) !important; font-weight: 700; text-decoration: none;
		box-shadow: 0 16px 40px -12px rgba(11, 31, 28, .55);
		transform: translateY(140%); transition: transform .4s var(--ease);
	}
	.abr-float-cta.is-visible { transform: none; }
}

@media (max-width: 782px) { .admin-bar .abr-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .abr-header { top: 0; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.abr-js [data-reveal] { opacity: 1; transform: none; }
}

/* ==========================================================================
   Media art direction v1.3 — layered hero compositions, unified color grade,
   framed cards, mosaics and reveal-on-scroll.
   ========================================================================== */

/* Unified warm grade so mixed stock photos read as one shoot */
.abr-photo { position: relative; isolation: isolate; }
.abr-photo img, .abr-photo video { filter: saturate(.9) contrast(1.04) brightness(1.02); }
.abr-photo::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
	background: linear-gradient(160deg, rgba(201, 243, 232, .22), rgba(47, 168, 143, .10) 55%, rgba(11, 31, 28, .18));
	mix-blend-mode: soft-light;
}

/* Hero stage: arch + offset outline frame + overlapping inset + badges */
.abr-stage { position: relative; width: 100%; max-width: 500px; margin-left: auto; padding: 0 0 48px 48px; }
.abr-stage .abr-arch { margin: 0; max-width: none; position: relative; z-index: 1; box-shadow: 0 50px 90px -45px rgba(11, 31, 28, .55); }
.abr-stage__frame {
	position: absolute; z-index: 0; top: -18px; right: -18px; bottom: 66px; left: 66px;
	border: 1.5px solid color-mix(in srgb, var(--clay) 55%, transparent);
	border-radius: 999px 999px var(--r-lg) var(--r-lg);
}
.abr-stage::before {
	content: ""; position: absolute; z-index: 0; width: 70%; aspect-ratio: 1; left: -6%; top: 22%;
	background: radial-gradient(closest-side, color-mix(in srgb, var(--blush) 90%, transparent), transparent);
	filter: blur(6px);
}
.abr-stage__inset {
	position: absolute; z-index: 3; left: 0; bottom: 0; width: 44%; aspect-ratio: 4 / 5; margin: 0;
	border-radius: var(--r-lg); overflow: hidden; border: 6px solid var(--paper);
	box-shadow: 0 30px 60px -28px rgba(11, 31, 28, .55);
	transform: rotate(-4deg);
	transition: transform .6s var(--ease);
}
.abr-stage:hover .abr-stage__inset { transform: rotate(-1deg) translateY(-6px); }
.abr-stage__inset img { width: 100%; height: 100%; object-fit: cover; }
.abr-stage__inset figcaption {
	position: absolute; z-index: 2; left: 10px; right: 10px; bottom: 10px; text-align: center;
	padding: 6px 10px; border-radius: var(--pill); background: rgba(255, 255, 255, .9); backdrop-filter: blur(6px);
	font: 700 .7rem/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink);
}

/* Rotating circular badge */
.abr-orbit { position: absolute; z-index: 4; top: 8%; left: 6px; width: 118px; height: 118px; border-radius: 50%; background: var(--ink); color: var(--cream); display: grid; place-items: center; box-shadow: 0 18px 40px -16px rgba(11, 31, 28, .6); }
.abr-orbit svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: abr-spin 22s linear infinite; }
.abr-orbit text { fill: currentColor; font: 700 9.6px var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.abr-orbit__core { font-family: var(--serif); font-size: 1.6rem; color: var(--rose); }
@keyframes abr-spin { to { transform: rotate(360deg); } }

/* Glass fact card */
.abr-float {
	position: absolute; z-index: 4; left: 0; bottom: 18%;
	display: grid; gap: 2px; padding: 16px 22px; border-radius: var(--r);
	background: rgba(255, 255, 255, .86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, .6); box-shadow: 0 24px 50px -24px rgba(11, 31, 28, .5);
	animation: abr-bob 7s ease-in-out infinite;
}
.abr-float__label { font: 700 .68rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.abr-float__value { font-family: var(--serif); font-size: 1.55rem; line-height: 1.1; color: var(--ink); }
.abr-stage .abr-stage__inset ~ .abr-float { left: auto; right: -14px; bottom: 30%; }

/* Hero video: slow push-in, vignette, now-playing pill */
.abr-arch--video video { animation: abr-pushin 18s ease-in-out infinite alternate; transform-origin: 45% 55%; }
@keyframes abr-pushin { from { transform: scale(1.02); } to { transform: scale(1.12); } }
.abr-arch--video::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: radial-gradient(120% 90% at 50% 40%, transparent 55%, rgba(11, 31, 28, .35)); }
.abr-nowplaying {
	position: absolute; z-index: 3; left: 50%; top: 22px; transform: translateX(-50%); white-space: nowrap;
	display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: var(--pill);
	background: rgba(11, 31, 28, .5); backdrop-filter: blur(8px); color: #fff;
	font: 700 .7rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase;
}
.abr-nowplaying__dot { width: 7px; height: 7px; border-radius: 50%; background: #ff6b5a; box-shadow: 0 0 0 0 rgba(255, 107, 90, .7); animation: abr-pulse 1.8s infinite; }
@keyframes abr-pulse { 70% { box-shadow: 0 0 0 8px rgba(255, 107, 90, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 107, 90, 0); } }
.abr-video-toggle { z-index: 4; }

/* Framed cards with chip on photo */
.abr-card__media { margin: calc(-1 * clamp(24px, 3vw, 36px) + 10px) calc(-1 * clamp(24px, 3vw, 36px) + 10px) 16px; border-radius: calc(var(--r-lg) - 8px); aspect-ratio: 5 / 4; }
.abr-card__media::after { background: linear-gradient(180deg, transparent 45%, rgba(11, 31, 28, .45)), linear-gradient(160deg, rgba(201, 243, 232, .2), rgba(47, 168, 143, .1)); mix-blend-mode: normal; }
.abr-card__media img { transition: transform 1.1s var(--ease), filter .6s; }
.abr-card:hover .abr-card__media img { transform: scale(1.07); filter: saturate(1) contrast(1.06); }
.abr-card__chip {
	position: absolute; z-index: 2; left: 12px; bottom: 12px; padding: 6px 12px; border-radius: var(--pill);
	background: rgba(255, 255, 255, .9); backdrop-filter: blur(6px); color: var(--ink);
	font: 700 .66rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase;
}
.abr-card--svc .abr-card__cat { display: none; }
.abr-card--area .abr-card__media + .abr-card__pin { display: none; }

/* Mosaic (hubs + contact) */
.abr-mosaic { display: grid; grid-template-columns: 1.7fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; height: clamp(320px, 42vw, 520px); }
.abr-mosaic figure { margin: 0; border-radius: var(--r-lg); overflow: hidden; }
.abr-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.abr-mosaic figure:hover img { transform: scale(1.05); }
.abr-mosaic__main { grid-row: 1 / 3; }
.abr-mosaic__side--1 { border-radius: var(--r-lg) var(--r-lg) var(--r-lg) 120px !important; }
.abr-mosaic__side--2 { border-radius: 120px var(--r-lg) var(--r-lg) var(--r-lg) !important; }
.abr-mosaic__cap {
	position: absolute; z-index: 2; left: 20px; bottom: 20px; padding: 10px 18px; border-radius: var(--pill);
	background: rgba(255, 255, 255, .9); backdrop-filter: blur(8px);
	font-family: var(--serif); font-style: italic; font-size: 1.1rem; color: var(--ink);
}

/* Reveal: images unmask as they scroll in (only when JS is running) */
.abr-js [data-reveal-img] { clip-path: inset(8% 8% 8% 8% round 40px); transition: clip-path 1.2s var(--ease); }
.abr-js [data-reveal-img] img { transform: scale(1.12); transition: transform 1.6s var(--ease); }
.abr-js [data-reveal-img].is-shown { clip-path: inset(0 0 0 0 round 0); }
.abr-js [data-reveal-img].is-shown img { transform: none; }
.abr-js .abr-arch[data-reveal-img].is-shown { clip-path: none; }

@media (max-width: 960px) {
	.abr-stage { max-width: 440px; margin: 0 auto; padding: 0 0 36px 36px; }
	.abr-mosaic { height: auto; grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
	.abr-mosaic__main { grid-column: 1 / 3; grid-row: auto; aspect-ratio: 4 / 3; }
	.abr-mosaic__side--1, .abr-mosaic__side--2 { aspect-ratio: 1; }
}
@media (max-width: 640px) {
	.abr-hero--home .abr-stage { padding: 0 0 28px 28px; }
	.abr-hero--home .abr-arch { aspect-ratio: 4 / 4.4; }
	.abr-stage__inset { width: 38%; border-width: 4px; }
	.abr-orbit { width: 88px; height: 88px; top: 4%; }
	.abr-orbit text { font-size: 9.6px; }
	.abr-stage__frame { top: -10px; right: -10px; bottom: 46px; left: 46px; }
	.abr-float { padding: 12px 16px; }
	.abr-float__value { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
	.abr-js [data-reveal-img] { clip-path: none !important; }
	.abr-js [data-reveal-img] img { transform: none !important; }
}
/* Keep the scaled video clipped to the arch shape (Chrome video-layer fix) */
.abr-arch--video { clip-path: inset(0 round 999px 999px var(--r-lg) var(--r-lg)); -webkit-mask-image: -webkit-radial-gradient(white, black); }
.abr-stage .abr-stage__inset ~ .abr-float { right: -10px; bottom: auto; top: 14%; }
.abr-stage__inset figcaption { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 640px) {
	.abr-nowplaying { display: none; }
	.abr-stage__inset figcaption { font-size: .6rem; padding: 5px 8px; left: 6px; right: 6px; bottom: 6px; }
	.abr-stage .abr-stage__inset ~ .abr-float { right: -4px; top: 8%; }
}

/* ==========================================================================
   v1.4 — Sharp editorial media: square corners + thin offset line frame
   (replaces the arch / rounded photo shapes site-wide)
   ========================================================================== */
.abr-arch,
.abr-stage .abr-arch,
.abr-hero--home .abr-arch,
.abr-hero--inner .abr-arch,
.abr-split__media .abr-arch { border-radius: 0 !important; }
.abr-arch--video { clip-path: inset(0) !important; -webkit-mask-image: none; }

.abr-stage__frame { border-radius: 0; border: 1px solid var(--ink); opacity: .55; top: -20px; right: -20px; bottom: 68px; left: 68px; }
.abr-stage::before { border-radius: 0; }
.abr-stage__inset { border-radius: 0; transform: none; border: 8px solid var(--paper); }
.abr-stage:hover .abr-stage__inset { transform: translateY(-6px); }
.abr-stage__inset figcaption { border-radius: 0; left: 0; right: 0; bottom: 0; background: var(--ink); color: var(--cream); padding: 8px 10px; }
.abr-float { border-radius: 0; border-left: 3px solid var(--clay); }
.abr-nowplaying { border-radius: 0; left: 18px; transform: none; top: 18px; }
.abr-video-toggle { border-radius: 0; }

/* Cards: square photos inside crisp cards */
.abr-card { border-radius: 4px; }
.abr-card__media { border-radius: 0; margin: calc(-1 * clamp(24px, 3vw, 36px)) calc(-1 * clamp(24px, 3vw, 36px)) 18px; }
.abr-card__chip { border-radius: 0; }

/* Mosaic, inline photos, bands, maps */
.abr-mosaic figure,
.abr-mosaic__side--1,
.abr-mosaic__side--2 { border-radius: 0 !important; }
.abr-mosaic__cap { border-radius: 0; }
.abr-mosaic { position: relative; }
.abr-mosaic::after { content: ""; position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--ink); opacity: .35; z-index: -1; pointer-events: none; }
.abr-inline, .abr-band, .abr-map { border-radius: 0; }

/* Reveal mask without rounded corners */
.abr-js [data-reveal-img] { clip-path: inset(6% 6% 6% 6%); }
.abr-js [data-reveal-img].is-shown { clip-path: inset(0); }

@media (max-width: 640px) {
	.abr-stage__frame { top: -10px; right: -10px; bottom: 46px; left: 46px; }
	.abr-stage__inset { border-width: 5px; }
	.abr-mosaic::after { inset: 8px -8px -8px 8px; }
}

/* Calendly booking section (Contact page) */
.abr-book { background: var(--sand); }
.abr-book__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(28px, 5vw, 72px); align-items: start; }
.abr-book__head { position: sticky; top: 120px; }
.abr-book__head p:not(.abr-eyebrow) { color: var(--muted); }
.abr-book__alt { font-size: .95rem; }
.abr-book__alt a { font-weight: 700; color: var(--clay-ink); }
.abr-book__widget { background: var(--paper); border: 1px solid var(--line); box-shadow: 0 40px 80px -50px rgba(11, 31, 28, .5); position: relative; }
.abr-book__widget::after { content: ""; position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--ink); opacity: .3; z-index: -1; pointer-events: none; }
.abr-book__widget .calendly-inline-widget { width: 100%; }

/* "Your injector" card on Contact */
.abr-injector { display: grid; grid-template-columns: 180px 1fr; gap: 24px; align-items: center; }
.abr-injector__photo { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border: 6px solid var(--paper); box-shadow: 0 24px 50px -28px rgba(11, 31, 28, .5); }
.abr-injector__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.abr-injector .abr-h3 { margin-bottom: .3em; }

/* Keep Reva's face in frame wherever her photo is cropped */
img.abr-img-about { object-position: 50% 22%; }

@media (max-width: 960px) {
	.abr-book__grid { grid-template-columns: 1fr; }
	.abr-book__head { position: static; }
	.abr-book__widget::after { display: none; }
}
@media (max-width: 640px) {
	.abr-injector { grid-template-columns: 1fr; }
	.abr-injector__photo { max-width: 220px; }
}

/* ==========================================================================
   v1.7 — Brand colours from the Ageless by Reva logo
   Mint #B0FAE9 · Ink #0B1F1C · White. Mint is used as a surface/highlight
   (never as text on white); deep teal #0E6B5C carries accent text for contrast.
   ========================================================================== */
:root { --mint: #B0FAE9; --mint-deep: #7FE6CF; }
body.abr { background: var(--cream); }
.abr-logo__img { max-height: 54px; width: auto; }
.abr-header .abr-logo__img { height: 50px; }

/* Buttons: ink, with mint hover (logo pairing) */
.abr-btn:hover { background: var(--mint); border-color: var(--mint); color: var(--ink) !important; }
.abr-btn--ghost { border-color: rgba(11, 31, 28, .2); }
.abr-btn--ghost:hover { background: var(--ink); color: #fff !important; border-color: var(--ink); }
.abr-btn--light { background: var(--ink); color: #fff !important; border-color: var(--ink); }
.abr-btn--light:hover { background: #fff; color: var(--ink) !important; border-color: #fff; }
.abr-btn--outline-light { color: var(--ink) !important; border-color: rgba(11, 31, 28, .35); }
.abr-btn--outline-light:hover { background: var(--ink); color: #fff !important; border-color: var(--ink); }
.abr-menu > li > a:hover, .abr-menu > li.current-menu-item > a, .abr-menu > li.current-menu-ancestor > a { background: var(--mint); }
.abr-menu > li.menu-item-type-custom.current-menu-item > a { background: none; }

/* Mint highlights */
.abr-dot { background: var(--clay); box-shadow: 0 0 0 4px rgba(176, 250, 233, .7); }
.abr-hero::before { background: radial-gradient(closest-side, rgba(176, 250, 233, .55), transparent 70%); }
.abr-stage::before { background: radial-gradient(closest-side, rgba(176, 250, 233, .8), transparent); }
.abr-photo::after { background: linear-gradient(160deg, rgba(176, 250, 233, .10), rgba(255, 255, 255, 0) 55%, rgba(11, 31, 28, .12)); }
.abr-marquee { background: var(--mint); border-color: transparent; }
.abr-marquee__track { color: var(--ink); }
.abr-marquee__dot { color: var(--ink); }
.abr-type__tag { background: var(--mint); color: var(--ink); }
.abr-panel--blush { background: var(--mint); }
.abr-provider { background: var(--sand); }
.abr-provider__mono { background: var(--ink); color: var(--mint); }
.abr-faq__item[open] .abr-faq__icon { background: var(--mint); border-color: var(--mint); }
.abr-faq__item[open] .abr-faq__icon::before, .abr-faq__item[open] .abr-faq__icon::after { background: var(--ink); }
.abr-float { border-left-color: var(--mint-deep); }
.abr-card__pin { background: var(--mint); }
.abr-card__pin::after { background: var(--ink); }
.abr-table tbody tr:hover td { background: rgba(176, 250, 233, .25); }

/* First service card: ink with mint accents */
.abr-cards--services .abr-card:first-child .abr-card__num { color: var(--mint); }

/* Dark sections: deep ink with mint accents */
.abr-section--dark { background: var(--dark); }
.abr-eyebrow--light { color: var(--mint); }
.abr-steps--row li::before, .abr-timeline li::before { color: var(--mint); }
.abr-timeline li::before { background: var(--mint); box-shadow: 0 0 0 6px rgba(176, 250, 233, .18); }

/* CTA band = the logo itself: ink on mint */
.abr-cta__inner { background: var(--mint); color: var(--ink-2); }
.abr-cta__inner::before { background: radial-gradient(closest-side, rgba(255, 255, 255, .7), transparent); }
.abr-cta h2, .abr-cta .abr-eyebrow { color: var(--ink) !important; }
.abr-cta h2 em { color: var(--clay-ink); }

/* Footer: ink with white logo + mint headings */
.abr-footer { background: var(--dark); }
.abr-footer__logo { display: block; width: min(380px, 70%); height: auto; margin-bottom: clamp(32px, 5vw, 56px); opacity: .95; }
.abr-footer__h { color: var(--mint) !important; }
.abr-footer a:hover { color: var(--mint); }

/* Booking section + nowplaying dot */
.abr-book { background: var(--sand); }
.abr-nowplaying__dot { background: var(--mint); box-shadow: 0 0 0 0 rgba(176, 250, 233, .8); }
@keyframes abr-pulse { 70% { box-shadow: 0 0 0 8px rgba(176, 250, 233, 0); } 100% { box-shadow: 0 0 0 0 rgba(176, 250, 233, 0); } }
.abr-float-cta { background: var(--ink); }
.abr-topbar { background: var(--ink); }
.abr-topbar__tel { color: var(--mint) !important; }

/* =========================================================================
   v1.8 — Elementor: Ageless widgets render full-bleed, edge to edge.
   ====================================================================== */
.e-con.abr-el-row,
.e-con:has(> [data-widget_type^="abr-"]),
.e-con:has(> .e-con-inner > [data-widget_type^="abr-"]) {
	--padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
	--gap: 0px; --row-gap: 0px; --column-gap: 0px;
	--content-width: 100%; --width: 100%;
	padding: 0; max-width: none;
}
.e-con:has(> .e-con-inner > [data-widget_type^="abr-"]) > .e-con-inner { max-width: none; padding: 0; gap: 0; }
.elementor-widget[data-widget_type^="abr-"] { width: 100%; max-width: 100%; margin: 0; --container-widget-width: 100%; }
.elementor-widget[data-widget_type^="abr-"] > .elementor-widget-container { margin: 0; padding: 0; }
.abr .elementor-widget[data-widget_type^="abr-"] img { border: 0; border-radius: 0; box-shadow: none; max-width: 100%; }
.abr .elementor-widget[data-widget_type^="abr-"] .abr-photo img,
.abr .elementor-widget[data-widget_type^="abr-"] .abr-injector__photo img { height: 100%; }
/* Inside the Elementor editor: show everything (no scroll reveals). */
.elementor-editor-active [data-reveal-img] { clip-path: none !important; }
.elementor-editor-active [data-reveal-img] img { transform: none !important; }
.elementor-editor-active [data-reveal],
.elementor-editor-active .abr-section__head,
.elementor-editor-active .abr-card,
.elementor-editor-active .abr-type,
.elementor-editor-active .abr-steps li,
.elementor-editor-active .abr-timeline li,
.elementor-editor-active .abr-panel,
.elementor-editor-active .abr-answer { opacity: 1 !important; transform: none !important; }
/* Sibling spacing rules, across Elementor containers. */
.e-con:has(> * > .abr-section--tight) + .e-con > * > .abr-section--tight { padding-top: 0; }
.e-con:has(> * > .abr-section) + .e-con > * > .abr-cta { padding-top: 0; }
.e-con:has(> * > .abr-section--sand) + .e-con > * > .abr-cta,
.e-con:has(> * > .abr-section--dark) + .e-con > * > .abr-cta { padding-top: clamp(56px, 8vw, 110px); }
.abr-el-row:has(.abr-section--tight) + .abr-el-row .abr-section--tight { padding-top: 0; }
.abr-el-row:has(.abr-section) + .abr-el-row .abr-cta { padding-top: 0; }
.abr-el-row:has(.abr-section--sand) + .abr-el-row .abr-cta,
.abr-el-row:has(.abr-section--dark) + .abr-el-row .abr-cta { padding-top: clamp(56px, 8vw, 110px); }
/* Older Elementor sections/columns: no gutters. */
.elementor-section.abr-el-row > .elementor-container { max-width: none; }
.elementor-section.abr-el-row .elementor-column > .elementor-widget-wrap { padding: 0 !important; }
.elementor-section.abr-el-row .elementor-widget:not(:last-child) { margin-bottom: 0; }

/* =========================================================================
   v1.9 — Opening hours list, four treatment cards.
   ====================================================================== */
.abr-hours { margin: 14px 0 22px; max-width: 360px; font-size: .95rem; }
.abr-hours > div { display: flex; justify-content: space-between; gap: 18px; padding: 7px 0; border-bottom: 1px solid var(--line); }
.abr-hours > div:last-child { border-bottom: 0; }
.abr-hours dt { font-weight: 600; color: var(--ink); }
.abr-hours dd { margin: 0; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.abr-hours .is-closed dd { color: var(--muted); }
.abr-hours .is-today dt, .abr-hours .is-today dd { color: var(--clay-ink); font-weight: 700; }
.abr-contact-list .abr-hours { margin: 0; width: 100%; }
.abr-hours--footer { margin: 10px 0 0; max-width: 300px; font-size: .88rem; }
.abr-hours--footer > div { padding: 5px 0; border-color: rgba(255, 255, 255, .12); }
.abr-hours--footer dt { color: inherit; font-weight: 600; }
.abr-hours--footer dd, .abr-hours--footer .is-closed dd { color: inherit; opacity: .75; }
.abr-hours--footer .is-today dt, .abr-hours--footer .is-today dd { color: var(--mint); opacity: 1; }
.abr-cards--services:has(> .abr-card:nth-child(4)) { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1180px) { .abr-cards--services:has(> .abr-card:nth-child(4)) { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .abr-cards--services:has(> .abr-card:nth-child(4)) { grid-template-columns: 1fr; } }
