/*
 * Purisify theme styles: a black-and-white design.
 * Every class name is the same as in the earlier (green) version, so the PHP templates,
 * the booking / quote forms (assets/js/main.js) and the language switch work unchanged.
 * 1. Tokens and base
 * 2. Header, hero, sections and components
 * 3. Forms, footer, language switch, price lists
 */

/* =====================================================================
   1. Tokens and base
   ===================================================================== */

:root {
	--black: #0A0A0A;          /* text, buttons, dark surfaces */
	--ink: #262626;            /* body text */
	--muted: #5C5C5C;          /* secondary text: 6.6:1 on white */
	--subtle: #8A8A8A;         /* decorative only, never for text on white */
	--line: #E6E6E6;
	--line-strong: #CFCFCF;
	--tint: #F5F5F4;           /* alternate section background */
	--tint-2: #EDEDEC;
	--white: #fff;
	--on-dark: rgba(255,255,255,.92);
	--on-dark-muted: rgba(255,255,255,.64);
	--on-dark-line: rgba(255,255,255,.16);
	--danger: #B42318;         /* errors stay red: people need to see them */

	/* Dark surfaces: a stormy graphite sky (hero, CTA, "why us" panel, footer). */
	--storm: linear-gradient(180deg, #23262B 0%, #17191D 38%, #0E0F12 70%, #0A0A0A 100%);
	--clouds:
		radial-gradient(38% 26% at 72% 14%, rgba(176,182,192,.30), transparent 70%),
		radial-gradient(30% 20% at 34% 6%, rgba(150,156,166,.24), transparent 70%),
		radial-gradient(42% 28% at 94% 40%, rgba(128,134,144,.20), transparent 70%),
		radial-gradient(34% 22% at 8% 30%, rgba(118,124,134,.16), transparent 70%),
		radial-gradient(50% 24% at 52% 52%, rgba(90,95,104,.14), transparent 70%);

	/* Older names, kept so anything still reading them gets the new colours. */
	--navy: var(--black);
	--green: var(--black);
	--green-btn: var(--black);
	--green-btn-hover: #2E2E2E;
	--green-text: var(--black);
	--green-50: var(--tint);
	--green-100: var(--tint-2);
	--brand-deep: var(--black);

	--radius-lg: 20px;
	--radius: 14px;
	--radius-sm: 10px;
	--shadow: 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06);
	--shadow-lg: 0 2px 4px rgba(0,0,0,.04), 0 24px 56px rgba(0,0,0,.12);
	--wrap: 1240px;
	--font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--header-h: 76px;
	--ease: cubic-bezier(.2,.7,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; font-family: var(--font); font-size: 1.0625rem; line-height: 1.65; color: var(--ink); background: var(--white); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--black); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--muted); }
h1, h2, h3, h4 { color: var(--black); line-height: 1.08; margin: 0 0 .5em; font-weight: 700; letter-spacing: -.035em; text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 6vw, 4.75rem); }
h2 { font-size: clamp(2rem, 4vw, 3.25rem); }
h3 { font-size: 1.25rem; letter-spacing: -.015em; line-height: 1.25; }
p { margin: 0 0 1em; }
::selection { background: var(--black); color: #fff; }
:focus-visible { outline: 2px solid var(--black); outline-offset: 3px; border-radius: 4px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 10px; left: 10px; z-index: 1000; background: var(--black); color: #fff; padding: 10px 16px; clip: auto; width: auto; height: auto; }
[hidden] { display: none !important; }

.wrap { width: min(100% - 40px, var(--wrap)); margin-inline: auto; }
.section { padding-block: clamp(72px, 10vw, 128px); }
.section--tint { background: var(--tint); }
.section--tight { padding-block: clamp(40px, 6vw, 72px); }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--black); margin-bottom: 1.1rem; }
.eyebrow::before { content: ""; width: 8px; height: 8px; background: currentColor; border-radius: 50%; }
.section-head { max-width: 720px; margin-bottom: clamp(36px, 5vw, 64px); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head--center .eyebrow { justify-content: center; }
.section-head p, .lead { color: var(--muted); font-size: 1.1875rem; text-wrap: pretty; }
.center-cta { text-align: center; margin-top: 48px; }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 28px; border-radius: 999px; font: 600 .9375rem/1 var(--font); letter-spacing: .005em; text-decoration: none; border: 1.5px solid transparent; cursor: pointer; white-space: nowrap; transition: background .2s, color .2s, border-color .2s, transform .2s var(--ease); }
.btn svg { width: 19px; height: 19px; flex: none; }
.btn:active { transform: scale(.98); }
.btn--primary, .btn--dark { background: var(--black); color: #fff; border-color: var(--black); }
.btn--primary:hover, .btn--dark:hover { background: #2E2E2E; border-color: #2E2E2E; color: #fff; }
.btn--outline { border-color: var(--line-strong); color: var(--black); background: #fff; }
.btn--outline:hover { border-color: var(--black); color: var(--black); }
.btn--ghost { border-color: rgba(255,255,255,.4); color: #fff; background: transparent; }
.btn--ghost:hover { background: #fff; border-color: #fff; color: var(--black); }
.btn--white { background: #fff; color: var(--black); border-color: #fff; }
.btn--white:hover { background: transparent; color: #fff; border-color: #fff; }
.btn--sm { min-height: 44px; padding: 0 20px; font-size: .875rem; }
.btn--block { width: 100%; }
.link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; color: var(--black); border-bottom: 1.5px solid var(--black); padding-bottom: 2px; }
.link-arrow svg { width: 18px; height: 18px; transition: transform .2s var(--ease); }
.link-arrow:hover { color: var(--black); }
.link-arrow:hover svg { transform: translateX(4px); }

/* =====================================================================
   2. Header, hero, sections
   ===================================================================== */

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.9); backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid var(--line); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }
.header-inner { display: flex; align-items: center; gap: 16px; min-height: var(--header-h); }
.brand { display: flex; align-items: center; text-decoration: none; flex: none; margin-right: auto; }
.brand .brand__logo { display: block; width: auto; height: 42px; max-height: none; }
.site-footer .brand .brand__logo { height: 48px; }
@media (max-width: 420px) { .brand .brand__logo { height: 32px; } }
.primary-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; }
.primary-nav li > a { display: block; padding: 10px 12px; color: var(--ink); font-weight: 500; font-size: .9375rem; text-decoration: none; border-radius: 999px; white-space: nowrap; transition: background .15s, color .15s; }
.primary-nav li > a:hover { background: var(--tint); color: var(--black); }
.primary-nav .current-menu-item > a, .primary-nav .current_page_item > a, .primary-nav .current-menu-ancestor > a { color: var(--black); font-weight: 700; background: var(--tint); }
.primary-nav .sub-menu { display: none; }
.header-phone { display: none; align-items: center; gap: 8px; font-weight: 600; font-size: .9375rem; color: var(--black); text-decoration: none; white-space: nowrap; flex: none; }
.header-phone svg { width: 17px; height: 17px; }
.header-cta { white-space: nowrap; flex: none; }
.nav-toggle { display: none; flex: none; width: 46px; height: 46px; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; color: var(--black); cursor: pointer; align-items: center; justify-content: center; }
.nav-toggle svg { width: 22px; height: 22px; }
@media (min-width: 1024px) and (max-width: 1180px) { .primary-nav li > a { padding: 10px 8px; font-size: .875rem; } .header-cta { padding: 0 16px; } }
@media (max-width: 1023px) {
	.site-header { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; }
	.nav-toggle { display: inline-flex; }
	.header-cta { display: none; }
	.primary-nav { position: fixed; inset: var(--header-h) 0 0 0; background: #fff; padding: 12px 20px 120px; overflow-y: auto; transform: translateX(100%); visibility: hidden; transition: transform .3s var(--ease), visibility .3s; }
	.admin-bar .primary-nav { top: calc(var(--header-h) + 46px); }
	.primary-nav.is-open { transform: none; visibility: visible; }
	.primary-nav ul { flex-direction: column; gap: 0; }
	.primary-nav li > a { font-size: 1.5rem; font-weight: 600; letter-spacing: -.02em; padding: 16px 2px; border-bottom: 1px solid var(--line); border-radius: 0; }
	.primary-nav li > a:hover, .primary-nav .current-menu-item > a, .primary-nav .current_page_item > a { background: transparent; }
	.primary-nav .mobile-nav-cta { margin-top: 28px; display: grid; gap: 12px; }
	body.nav-open { overflow: hidden; }
}
@media (min-width: 1024px) { .primary-nav .mobile-nav-cta { display: none; } .brand { margin-right: 0; } .primary-nav { margin-inline: auto; } }
@media (min-width: 560px) and (max-width: 1023px) { .header-cta { display: inline-flex; min-height: 44px; padding: 0 18px; font-size: .8125rem; } }

/* ---------- Hero ---------- */
.hero { position: relative; color: #fff; isolation: isolate; overflow: hidden; background: var(--storm); }
/* A fine grid gives the black panel depth without any colour. */
/* Storm-cloud sky: soft grey clouds drift slowly over a graphite gradient, with a pale glow near the ground. */
.hero::after { content: ""; position: absolute; inset: -15%; z-index: -1; pointer-events: none; background: var(--clouds); filter: blur(24px); animation: cgta-clouds 26s ease-in-out infinite alternate; }
.hero.hero--noimg::before { display: block; z-index: -1; background: radial-gradient(60% 18% at 62% 100%, rgba(235,238,242,.16), transparent 70%), radial-gradient(28% 6% at 70% 92%, rgba(255,255,255,.14), transparent 70%), linear-gradient(180deg, rgba(10,10,10,0) 55%, rgba(10,10,10,.55) 100%); }
@keyframes cgta-clouds {
	0%   { transform: translate3d(0, 0, 0) scale(1); opacity: .9; }
	50%  { transform: translate3d(-4%, 2%, 0) scale(1.06); opacity: 1; }
	100% { transform: translate3d(3%, -2%, 0) scale(1.03); opacity: .85; }
}
.hero__media { position: absolute; top: 0; right: 0; bottom: 0; width: 60%; z-index: -2; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 30%; filter: grayscale(1) contrast(1.05); }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--black) 0%, var(--black) 38%, rgba(10,10,10,.85) 50%, rgba(10,10,10,.2) 75%, rgba(10,10,10,0) 100%); }
.hero__grid { display: grid; gap: 40px; align-items: center; }
.hero__inner { padding-block: clamp(80px, 12vw, 160px); max-width: 680px; }
.hero .eyebrow { color: #fff; border: 1px solid var(--on-dark-line); padding: 8px 14px; border-radius: 999px; }
.hero .eyebrow::before { width: 6px; height: 6px; }
.hero h1 { color: #fff; margin-bottom: 24px; line-height: 1.02; letter-spacing: -.045em; }
.hero h1 .hl { color: transparent; -webkit-text-stroke: 1.5px #fff; }
@supports not (-webkit-text-stroke: 1px #fff) { .hero h1 .hl { color: #fff; text-decoration: underline; text-decoration-thickness: 3px; } }
.hero__text { font-size: 1.1875rem; max-width: 520px; color: var(--on-dark-muted); margin-bottom: 36px; text-wrap: pretty; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 48px; }
.hero__ctas .btn--primary { background: #fff; color: var(--black); border-color: #fff; }
.hero__ctas .btn--primary:hover { background: #E5E5E5; border-color: #E5E5E5; color: var(--black); }
.hero .btn--ghost svg { width: 18px; height: 18px; }
.hero :focus-visible { outline-color: #fff; }
.trust-row { list-style: none; margin: 0; padding: 28px 0 0; display: flex; flex-wrap: wrap; gap: 14px 32px; border-top: 1px solid var(--on-dark-line); }
.trust-row li { display: flex; align-items: center; gap: 10px; font-size: .9375rem; font-weight: 500; line-height: 1.3; color: var(--on-dark); }
.trust-row svg { width: 20px; height: 20px; color: #fff; flex: none; }
@media (max-width: 767px) {
	.hero__media { width: 100%; opacity: .4; }
	.hero::before { background: linear-gradient(180deg, rgba(10,10,10,.7) 0%, rgba(10,10,10,.96) 100%); }
	.hero__ctas .btn { flex: 1 1 100%; }
	.trust-row { flex-direction: column; }
}

/* Hero without a photo: a white house outline and floating cards. */
.hero__art { display: none; }
@media (min-width: 1024px) {
	.hero--noimg .hero__grid { grid-template-columns: 1.15fr 1fr; gap: 56px; }
	.hero__art { display: block; position: relative; min-height: 480px; }
}
.hero__house { position: absolute; inset: 6% 8%; border-radius: 32px; border: 1px solid var(--on-dark-line); background: radial-gradient(80% 80% at 50% 40%, rgba(255,255,255,.07), rgba(255,255,255,0)); display: grid; place-items: center; }
.hero__house svg { width: 56%; height: auto; color: rgba(255,255,255,.85); }
.hero__card { position: absolute; display: flex; align-items: center; gap: 14px; padding: 14px 20px 14px 14px; background: #fff; color: var(--black); border-radius: 16px; box-shadow: 0 20px 50px rgba(0,0,0,.45); max-width: 290px; }
.hero__card .icon-badge { width: 44px; height: 44px; border-radius: 12px; background: var(--black); color: #fff; }
.hero__card .icon-badge svg { width: 20px; height: 20px; }
.hero__card strong { display: block; font-size: .9688rem; line-height: 1.25; }
.hero__card div span { display: block; font-size: .8438rem; color: var(--muted); line-height: 1.35; }
.hero__card--a { top: 2%; left: 0; }
.hero__card--b { top: 40%; right: 0; }
.hero__card--c { bottom: 3%; left: 6%; }
@media (prefers-reduced-motion: no-preference) {
	.hero__card { animation: cgta-float 7s ease-in-out infinite; }
	.hero__card--b { animation-delay: -2.3s; }
	.hero__card--c { animation-delay: -4.6s; }
	@keyframes cgta-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
}

/* ---------- Quick nav under the hero ---------- */
.quicknav { background: #fff; border-bottom: 1px solid var(--line); }
.quicknav ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); }
.quicknav li + li { border-left: 1px solid var(--line); }
.quicknav a { height: 100%; display: flex; flex-direction: column; align-items: flex-start; text-align: left; padding: 32px 24px; text-decoration: none; color: inherit; transition: background .2s; }
.quicknav a:hover { background: var(--tint); }
.quicknav .icon-badge { margin-bottom: 18px; }
.quicknav strong { color: var(--black); font-size: 1.0625rem; margin-bottom: 4px; letter-spacing: -.01em; }
.quicknav span.desc { color: var(--muted); font-size: .9375rem; line-height: 1.45; }
@media (max-width: 1023px) {
	.quicknav ul { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
	.quicknav li { flex: 0 0 46%; scroll-snap-align: start; }
	.quicknav a { padding: 24px 20px; }
}
@media (max-width: 560px) { .quicknav li { flex-basis: 70%; } }

.icon-badge { width: 56px; height: 56px; border-radius: 14px; background: var(--tint); color: var(--black); display: inline-grid; place-items: center; flex: none; border: 1px solid var(--line); }
.icon-badge svg { width: 26px; height: 26px; }
.quicknav a:hover .icon-badge, .benefit:hover .icon-badge { background: var(--black); border-color: var(--black); color: #fff; }
.icon-badge { transition: background .2s, color .2s, border-color .2s; }

/* ---------- Service cards ---------- */
.services-split { display: grid; gap: 40px; }
@media (min-width: 1024px) { .services-split { grid-template-columns: 4fr 7fr; gap: 64px; align-items: start; } .services-split .section-head { position: sticky; top: calc(var(--header-h) + 32px); } }
.card-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.card-grid--2 { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.card-grid--3 { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.svc-card { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: var(--black); min-height: 280px; display: flex; align-items: flex-end; color: #fff; text-decoration: none; transition: transform .3s var(--ease); }
.svc-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: transform .6s var(--ease); }
.svc-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,0) 30%, rgba(10,10,10,.88) 100%); }
.svc-card:hover { transform: translateY(-4px); color: #fff; }
.svc-card:hover img { transform: scale(1.05); }
.svc-card__body { position: relative; z-index: 1; padding: 24px; display: flex; gap: 12px; align-items: flex-end; width: 100%; }
.svc-card__body > span { display: block; }
.svc-card__body svg { width: 28px; height: 28px; flex: none; color: #fff; }
.svc-card h3 { display: block; color: #fff; margin: 0; font-size: 1.1875rem; }
.svc-card__price { display: block; font-size: .875rem; color: rgba(255,255,255,.75); font-weight: 600; margin-top: 4px; }
.svc-card--noimg { background: var(--clouds), var(--storm); }

.svc-list-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; transition: border-color .25s, transform .3s var(--ease); }
.svc-list-card:hover { border-color: var(--black); transform: translateY(-4px); }
.svc-list-card__img { aspect-ratio: 4 / 3; background: var(--tint); overflow: hidden; }
.svc-list-card__img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: transform .6s var(--ease); }
.svc-list-card:hover .svc-list-card__img img { transform: scale(1.04); }
.svc-list-card__img--none { background: var(--black); }
.svc-list-card__body { padding: 26px; display: flex; flex-direction: column; flex: 1; }
.svc-list-card__body .icon-badge { margin-top: -54px; margin-bottom: 16px; border: 4px solid #fff; width: 62px; height: 62px; background: var(--black); color: #fff; position: relative; }
.svc-list-card p { color: var(--muted); }
.svc-list-card h2.h3, .svc-list-card h3 { font-size: 1.25rem; letter-spacing: -.015em; margin-bottom: .4em; }
.svc-list-card h2.h3 a, .svc-list-card h3 a { color: inherit; text-decoration: none; }
.svc-list-card h2.h3 a:hover, .svc-list-card h3 a:hover { text-decoration: underline; }
.svc-list-card__foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid var(--line); }
.price-tag { font-weight: 700; color: var(--black); font-size: 1.125rem; }
.price-tag small { display: block; font-weight: 600; color: var(--muted); font-size: .6875rem; text-transform: uppercase; letter-spacing: .1em; }

.svc-photo { border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 32px; aspect-ratio: 16 / 9; background: var(--tint); }
.svc-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.h-sub { font-size: clamp(1.4rem, 2.4vw, 1.75rem); margin-top: 1.6em; }

/* ---------- Why choose us ---------- */
.why { display: grid; gap: 48px; align-items: center; }
@media (min-width: 1024px) { .why { grid-template-columns: 5fr 7fr; gap: 72px; } }
.why > *, .book-split > *, .two-col > *, .services-split > * { min-width: 0; }
.why--noimg { grid-template-columns: 1fr !important; }
.why--noimg .benefits { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.why__img { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4 / 5; background: var(--tint-2); }
.why__img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.why__panel { border-radius: var(--radius-lg); background: var(--clouds), var(--storm); color: #fff; padding: 44px; position: relative; overflow: hidden; min-height: 420px; display: flex; flex-direction: column; justify-content: flex-end; }
.why__big { font-size: clamp(4rem, 9vw, 7rem); font-weight: 700; line-height: .9; color: #fff; letter-spacing: -.06em; }
.why__panel p { font-size: 1.125rem; color: var(--on-dark-muted); margin: 16px 0 0; max-width: 340px; }
.why__deco { position: absolute; right: -30px; top: -20px; width: 280px; color: rgba(255,255,255,.12); }
.why__deco svg { width: 100%; height: auto; }
.benefits { display: grid; gap: 0; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-top: 8px; border-top: 1px solid var(--line-strong); }
.benefit { display: flex; gap: 16px; padding: 22px 16px 22px 0; border-bottom: 1px solid var(--line-strong); }
.benefit .icon-badge { width: 46px; height: 46px; border-radius: 12px; }
.benefit .icon-badge svg { width: 22px; height: 22px; }
.benefit h3 { font-size: 1.0625rem; margin-bottom: 4px; }
.benefit p { font-size: .9688rem; color: var(--muted); margin: 0; }

/* ---------- How it works ---------- */
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); border-top: 1px solid var(--black); }
.step { position: relative; padding: 28px 28px 32px 0; }
@media (min-width: 768px) { .step + .step { padding-left: 28px; border-left: 1px solid var(--line); } }
@media (max-width: 767px) { .step { border-bottom: 1px solid var(--line); } }
.step__num { display: block; font-size: .8125rem; font-weight: 700; letter-spacing: .14em; color: var(--muted); margin-bottom: 48px; }
.step__num::before { content: "— "; }
.step h3 { font-size: 1.375rem; margin-bottom: 8px; }
.step p { color: var(--muted); margin: 0; }

/* ---------- Before / after ---------- */
.ba-grid { display: grid; gap: 28px; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.ba { margin: 0; }
.ba__frame { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; background: var(--line); --pos: 50%; user-select: none; }
.ba__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.ba__after { clip-path: inset(0 0 0 var(--pos)); }
.ba__handle { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: #fff; pointer-events: none; }
.ba__handle::after { content: "‹ ›"; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--black); font-weight: 700; display: grid; place-items: center; box-shadow: var(--shadow); }
.ba__range { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
.ba__range:focus-visible + .ba__handle::after { outline: 2px solid var(--black); outline-offset: 2px; }
.ba__tag { position: absolute; top: 12px; padding: 4px 10px; border-radius: 6px; background: rgba(10,10,10,.8); color: #fff; font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; pointer-events: none; }
.ba__tag--before { left: 12px; } .ba__tag--after { right: 12px; }
.ba figcaption { padding-top: 14px; }
.ba figcaption strong { color: var(--black); display: block; }
.ba figcaption span { color: var(--muted); font-size: .9375rem; }

/* ---------- Areas ---------- */
.areas { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; list-style: none; margin: 0; padding: 0; }
.areas a, .areas--static span { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; background: #fff; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--black); font-weight: 500; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
.areas a:hover { background: var(--black); border-color: var(--black); color: #fff; }
.areas svg { width: 18px; height: 18px; flex: none; }
.areas-note { text-align: center; color: var(--muted); margin: 36px auto 0; max-width: 620px; }

/* ---------- Testimonials ---------- */
.reviews { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.review { position: relative; margin: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 30px; display: flex; flex-direction: column; transition: border-color .25s; }
.review:hover { border-color: var(--black); }
.stars { display: flex; gap: 2px; color: var(--black); margin-bottom: 16px; }
.stars svg { width: 18px; height: 18px; }
.review blockquote { margin: 0 0 24px; font-size: 1.0625rem; color: var(--ink); line-height: 1.6; }
.review figcaption { margin-top: auto; display: flex; align-items: center; gap: 14px; }
.review figcaption img, .avatar-fallback { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.review figcaption img { filter: grayscale(1); }
.avatar-fallback { background: var(--black); color: #fff; display: grid; place-items: center; font-weight: 700; }
.review cite { font-style: normal; font-weight: 700; color: var(--black); display: block; }
.review figcaption span { font-size: .875rem; color: var(--muted); }

/* ---------- CTA band ---------- */
.cta-band { background: var(--storm); color: #fff; border-radius: 28px; padding: clamp(40px, 7vw, 88px); display: grid; gap: 32px; align-items: center; position: relative; overflow: hidden; isolation: isolate; }
.cta-band::after { content: ""; position: absolute; inset: -20%; z-index: -1; pointer-events: none; background: var(--clouds); filter: blur(20px); animation: cgta-clouds 22s ease-in-out infinite alternate; }
@media (min-width: 900px) { .cta-band { grid-template-columns: 1.4fr 1fr; } }
.cta-band h2 { color: #fff; margin-bottom: 10px; }
.cta-band p { font-size: 1.125rem; margin: 0; color: var(--on-dark-muted); }
.cta-band__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
@media (min-width: 900px) { .cta-band__actions { justify-content: flex-end; } }
.cta-band__phone { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-weight: 600; font-size: 1.1875rem; text-decoration: none; min-height: 52px; }
.cta-band__phone:hover { color: var(--on-dark-muted); }
.cta-band__phone svg { width: 22px; height: 22px; }
.cta-band :focus-visible { outline-color: #fff; }

/* ---------- FAQ ---------- */
.faq { max-width: 880px; margin-inline: auto; border-top: 1px solid var(--black); }
.faq details { border-bottom: 1px solid var(--line-strong); }
.faq summary { list-style: none; cursor: pointer; padding: 24px 56px 24px 0; position: relative; font-weight: 600; font-size: 1.1875rem; letter-spacing: -.01em; color: var(--black); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before, .faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 16px; height: 1.5px; background: var(--black); transition: transform .25s var(--ease); }
.faq summary::after { transform: rotate(90deg); }
.faq details[open] summary::after { transform: rotate(0); }
.faq .faq__a { padding: 0 56px 26px 0; color: var(--muted); }
.faq .faq__a > :last-child { margin-bottom: 0; }

/* ---------- Page header / content ---------- */
.page-hero { background: var(--tint); padding-block: clamp(56px, 8vw, 104px); border-bottom: 1px solid var(--line); }
.page-hero h1 { font-size: clamp(2.25rem, 5vw, 3.75rem); margin-bottom: 14px; }
.page-hero p { font-size: 1.1875rem; color: var(--muted); max-width: 680px; margin: 0; }
.breadcrumbs { font-size: .8125rem; margin-bottom: 20px; color: var(--muted); letter-spacing: .02em; }
.breadcrumbs a { color: var(--muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--black); text-decoration: underline; }
.entry { max-width: 780px; }
.entry > * + * { margin-top: 1em; }
.entry h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-top: 1.6em; }
.entry h2:first-child { margin-top: 0; }
.entry h3 { margin-top: 1.4em; }
.entry a { font-weight: 600; }
.entry ul li::marker { color: var(--black); }
.entry img { border-radius: var(--radius); }
.alignwide { max-width: var(--wrap); }
.alignfull { width: 100vw; margin-left: calc(50% - 50vw); max-width: none; }
.wp-block-button__link { background: var(--black); color: #fff; border-radius: 999px; font-weight: 600; }

.two-col { display: grid; gap: 48px; }
@media (min-width: 1024px) { .two-col { grid-template-columns: 1.6fr 1fr; gap: 64px; align-items: start; } .two-col aside { position: sticky; top: calc(var(--header-h) + 24px); } .two-col--even { grid-template-columns: 1fr 1.25fr; } }
.two-col aside { display: grid; gap: 20px; }
.two-col--even .form-shell { max-width: none; margin: 0; }
.panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 30px; }
.panel h2, .panel h3 { font-size: 1.25rem; }
.panel--tint { background: var(--tint); border-color: var(--tint); }
.panel .hint { color: var(--muted); font-size: .9375rem; }
.panel .btn { margin-top: 4px; }
.panel__call { text-align: center; color: var(--muted); margin: 14px 0 0; }
.panel__call a { font-weight: 700; }
.features { list-style: none; padding: 0; margin: 0 0 1em; display: grid; gap: 10px; }
@media (min-width: 640px) { .features--2 { grid-template-columns: 1fr 1fr; gap: 12px 28px; } }
.features li { display: flex; gap: 10px; align-items: flex-start; }
.features svg { width: 20px; height: 20px; color: var(--black); flex: none; margin-top: 3px; }
.price-big { font-size: 2.5rem; font-weight: 700; letter-spacing: -.03em; color: var(--black); line-height: 1.1; margin-bottom: 10px; }
.price-big small { display: block; font-size: .6875rem; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 4px; }

.info-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.info-list li { display: flex; gap: 14px; }
.info-list .icon-badge { width: 44px; height: 44px; border-radius: 12px; }
.info-list .icon-badge svg { width: 20px; height: 20px; }
.info-list strong { display: block; color: var(--black); }
.info-list a { color: var(--ink); }
.map-embed { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 16 / 9; margin-top: 32px; }
.map-embed iframe { width: 100%; height: 100%; border: 0; filter: grayscale(1); }

.team { display: grid; gap: 28px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.member { text-align: center; }
.member__img { aspect-ratio: 1; border-radius: var(--radius-lg); overflow: hidden; background: var(--tint-2); margin-bottom: 16px; }
.member__img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.member h3 { margin-bottom: 2px; }
.member__role { color: var(--muted); font-weight: 600; font-size: .875rem; display: block; margin-bottom: 8px; text-transform: uppercase; letter-spacing: .1em; }
.member p { color: var(--muted); font-size: .9688rem; }

/* =====================================================================
   3. Forms, footer, language switch, price lists
   ===================================================================== */

/* ---------- Forms ---------- */
.form-shell { max-width: 820px; margin-inline: auto; }
.qform { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: clamp(24px, 5vw, 48px); }
.qform fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.qform legend { font-size: 1.5rem; font-weight: 700; letter-spacing: -.025em; color: var(--black); margin-bottom: 22px; padding: 0; }
.js .qform fieldset[data-step]:not(.is-active) { display: none; }
.no-js .qform fieldset + fieldset { margin-top: 36px; }
.qprogress { margin-bottom: 28px; }
.qprogress__bar { height: 3px; background: var(--line); border-radius: 3px; overflow: hidden; }
.qprogress__bar span { display: block; height: 100%; width: 0; background: var(--black); transition: width .35s var(--ease); }
.qprogress__label { font-size: .75rem; color: var(--muted); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-top: 10px; }
.no-js .qprogress { display: none; }
.qform--book .qprogress { margin-bottom: 22px; }
.frow { display: grid; gap: 18px; grid-template-columns: 1fr; margin-bottom: 18px; }
@media (min-width: 640px) { .frow--2 { grid-template-columns: 1fr 1fr; } .frow--3 { grid-template-columns: repeat(3, 1fr); } .frow--addr { grid-template-columns: 2fr 1fr; } }
.frow-span { display: block; }
.frow-span[hidden], [data-rooms-field][hidden] { display: none; }
.field label, .field .label { display: block; font-weight: 600; color: var(--black); font-size: .9063rem; margin-bottom: 7px; }
.field .req { color: var(--danger); }
.field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=date], .field input[type=number], .field select, .field textarea { width: 100%; min-height: 52px; padding: 12px 16px; font: 500 1rem var(--font); color: var(--black); background: #fff; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); transition: border-color .15s, box-shadow .15s; }
.field textarea { min-height: 130px; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--subtle); }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--black); outline: 0; box-shadow: 0 0 0 3px rgba(10,10,10,.12); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--danger); }
.field .err { color: var(--danger); font-size: .875rem; margin-top: 6px; display: none; }
.field.has-error .err, .book-pick.has-error .err { display: block; }
.field .hint { color: var(--muted); font-size: .875rem; margin-top: 6px; }
.choices { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); border: 0; padding: 0; margin: 0 0 18px; }
.choice, .chip { position: relative; }
.choice input, .chip input { position: absolute; opacity: 0; inset: 0; }
.choice span { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 56px; padding: 10px 14px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); font-weight: 600; color: var(--black); background: #fff; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.choice span:hover, .chip span:hover { border-color: var(--black); }
.choice input:checked + span, .chip input:checked + span { background: var(--black); border-color: var(--black); color: #fff; }
.chip input:checked + span small { color: rgba(255,255,255,.75); }
.choice input:focus-visible + span, .chip input:focus-visible + span { outline: 2px solid var(--black); outline-offset: 2px; }
.qnav { display: flex; justify-content: space-between; gap: 12px; margin-top: 28px; }
.qnav .btn--next, .qnav button[type=submit] { margin-left: auto; }
.no-js .qnav .btn--prev, .no-js .qnav .btn--next { display: none; }
.qform .btn[disabled] { opacity: .5; cursor: wait; }
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.notice { padding: 18px 22px; border-radius: var(--radius-sm); margin-bottom: 24px; font-weight: 600; }
.notice--ok { background: var(--tint); border: 1px solid var(--black); color: var(--black); }
.notice--err { background: #FEF3F2; border: 1px solid #F04438; color: #7A271A; }
.success-card { text-align: center; padding: clamp(32px, 6vw, 64px); }
.success-card .icon-badge { width: 80px; height: 80px; margin-bottom: 20px; border-radius: 50%; background: var(--black); color: #fff; }
.success-card .icon-badge svg { width: 36px; height: 36px; }
.form-foot { text-align: center; margin: 16px 0 0; }

/* ---------- Fast booking ---------- */
.book-split { display: grid; gap: 40px; align-items: start; }
@media (min-width: 1024px) { .book-split { grid-template-columns: 5fr 7fr; gap: 72px; } .book-intro { position: sticky; top: calc(var(--header-h) + 32px); } }
.book-steps { list-style: none; margin: 28px 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--line-strong); }
.book-steps li { display: flex; gap: 16px; align-items: flex-start; padding: 18px 0; border-bottom: 1px solid var(--line-strong); }
.book-steps .icon-badge { width: 44px; height: 44px; border-radius: 12px; background: var(--black); color: #fff; border-color: var(--black); }
.book-steps .icon-badge svg { width: 20px; height: 20px; }
.book-steps strong { display: block; color: var(--black); }
.book-steps li > span:last-child { color: var(--muted); font-size: .9688rem; line-height: 1.5; }
.book-alt { color: var(--muted); font-size: .9688rem; }
.book-est { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 12px; margin-top: 18px; padding: 18px 20px; border-radius: var(--radius-sm); background: var(--tint); border: 1px solid var(--line); }
.book-est span { font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.book-est strong { font-size: 1.5rem; letter-spacing: -.02em; color: var(--black); grid-row: span 2; text-align: right; }
.book-est small { color: var(--muted); font-size: .8125rem; }
[data-slot-msg]:empty { display: none; }

/* ---------- Booking: day & time chips ---------- */
.book-pick { margin-top: 18px; }
.day-chips, .time-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.day-chips { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; -webkit-overflow-scrolling: touch; }
.day-chips .hint, .time-chips .hint { margin: 0; color: var(--muted); font-size: .9375rem; }
.chip { flex: none; scroll-snap-align: start; }
.chip span { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 16px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); font-weight: 600; color: var(--black); background: #fff; cursor: pointer; white-space: nowrap; transition: border-color .15s, background .15s, color .15s; }
.chip--day span { flex-direction: column; min-width: 76px; line-height: 1.2; }
.chip--day small { font-size: .6875rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.chip--more span { border-style: dashed; }

/* ---------- Footer ---------- */
.site-footer { background: radial-gradient(60% 50% at 80% 0%, rgba(150,156,166,.14), transparent 70%), linear-gradient(180deg, #17191D 0%, #0A0A0A 60%); color: var(--on-dark-muted); padding-top: clamp(64px, 8vw, 96px); }
.footer-grid { display: grid; gap: 40px; grid-template-columns: 1fr; padding-bottom: 56px; }
@media (min-width: 720px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; } }
.site-footer h2 { color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 20px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.site-footer a { color: var(--on-dark-muted); text-decoration: none; transition: color .15s; }
.site-footer a:hover { color: #fff; }
.site-footer .btn--primary { background: #fff; color: var(--black); border-color: #fff; }
.site-footer .btn--primary:hover { background: transparent; color: #fff; }
.site-footer :focus-visible { outline-color: #fff; }
.footer-about p { margin-top: 20px; max-width: 320px; }
.footer-contact li { display: flex; gap: 10px; }
.footer-contact span { color: var(--on-dark-muted); }
.footer-contact svg { width: 18px; height: 18px; color: #fff; flex: none; margin-top: 4px; }
.footer-cta { margin: 22px 0 0; }
.socials { display: flex; gap: 10px; margin-top: 22px; }
.socials a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--on-dark-line); display: grid; place-items: center; }
.socials a:hover { background: #fff; border-color: #fff; color: var(--black); }
.socials svg { width: 20px; height: 20px; }
.footer-bottom { border-top: 1px solid var(--on-dark-line); padding-block: 24px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: .875rem; color: rgba(255,255,255,.5); }
.footer-bottom ul { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.legal-line a { text-decoration: underline; }

/* ---------- Mobile sticky bar ---------- */
.mobile-bar { display: none; }
@media (max-width: 1023px) {
	.mobile-bar { display: grid; grid-template-columns: 1fr 1.3fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: rgba(255,255,255,.96); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--line); padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); gap: 8px; }
	.mobile-bar .btn { min-height: 48px; padding: 0 12px; font-size: .8125rem; }
	.mobile-bar--3 { grid-template-columns: 1fr 1fr 1.25fr; }
	.mobile-bar--3 .btn { padding: 0 8px; font-size: .75rem; gap: 6px; }
	.mobile-bar--3 .btn svg { width: 16px; height: 16px; }
	/* "Free Quote" is the outlined one here, so the black "Book Now" stands out. */
	.mobile-bar--3 .btn--primary { background: #fff; color: var(--black); border-color: var(--line-strong); }
	body { padding-bottom: 72px; }
}

/* ---------- Misc ---------- */
.pagination { display: flex; gap: 8px; justify-content: center; margin-top: 48px; }
.pagination .page-numbers { min-width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 999px; text-decoration: none; color: var(--black); font-weight: 600; }
.pagination .current { background: var(--black); border-color: var(--black); color: #fff; }
.post-list { display: grid; gap: 28px; }
.empty-state { padding: 40px; text-align: center; border: 1.5px dashed var(--line-strong); border-radius: var(--radius-lg); color: var(--muted); }
@media (prefers-reduced-motion: reduce) {
	.svc-card:hover, .svc-list-card:hover, .btn:active { transform: none; }
}

/* ---------- Language switch ---------- */
.cgta-i18n-wait body { visibility: hidden; }
.lang-switch { position: relative; display: inline-flex; align-items: center; flex: none; color: var(--black); }
.lang-switch svg { position: absolute; left: 12px; width: 17px; height: 17px; color: var(--black); pointer-events: none; }
.lang-switch select { appearance: none; -webkit-appearance: none; min-height: 44px; padding: 0 30px 0 36px; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%230A0A0A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") right 12px center / 10px no-repeat; font: 500 .875rem var(--font); color: var(--black); cursor: pointer; max-width: 150px; }
.lang-switch select:hover { border-color: var(--black); }
.lang-switch select:focus-visible { outline: 2px solid var(--black); outline-offset: 2px; }
@media (max-width: 1023px) { .lang-switch select { max-width: 132px; padding-right: 26px; } }
@media (max-width: 420px) { .lang-switch select { max-width: 122px; padding: 0 24px 0 34px; font-size: .8125rem; } }
@media (min-width: 1024px) and (max-width: 1279px) { .lang-switch select { max-width: 124px; } }

/* Other languages run longer than English: give the menu room before anything wraps or is cut off. */
@media (min-width: 1024px) { .header-inner { flex-wrap: nowrap; } .primary-nav { min-width: 0; } }
@media (min-width: 1500px) { .header-phone { display: inline-flex; } }
@media (min-width: 1024px) {
	html:not([lang^="en"]) .primary-nav li > a { padding: 10px 9px; font-size: .875rem; }
	html:not([lang^="en"]) .header-cta { padding: 0 16px; font-size: .8125rem; }
	html:not([lang^="en"]) .header-phone { display: none; }
}
@media (min-width: 1024px) and (max-width: 1399px) { html:not([lang^="en"]) .header-cta { display: none; } }
@media (min-width: 1024px) and (max-width: 1179px) { html:not([lang^="en"]) .primary-nav li > a { padding: 10px 6px; font-size: .8125rem; } }
@media (min-width: 1700px) { html:not([lang^="en"]) .header-phone { display: inline-flex; } }
@media (max-width: 1023px) { .header-inner { gap: 10px; } .header-inner .brand { order: 1; margin-right: auto; } .lang-switch { order: 2; } .header-cta { order: 3; } .nav-toggle { order: 4; } }
@media (min-width: 560px) and (max-width: 1023px) { html:not([lang^="en"]) .header-cta { display: none; } }

/* ---------- Price lists ---------- */
.price-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.price-table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.price-table th { text-align: left; font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 700; padding: 12px 18px; background: var(--tint); border-bottom: 1px solid var(--line); }
.price-table td { padding: 14px 18px; border-bottom: 1px solid var(--line); color: var(--black); vertical-align: middle; }
.price-table tr:last-child td { border-bottom: 0; }
.price-table td:nth-child(2) { color: var(--muted); white-space: nowrap; }
.price-table td:last-child, .price-table th:last-child { text-align: right; white-space: nowrap; }
.price-table td strong { color: var(--black); font-size: 1.0625rem; }
.entry + .h-sub, .features + .h-sub { margin-top: 1.6em; }
.price-table-wrap + .hint { margin-top: 12px; color: var(--muted); font-size: .9375rem; }
.extras { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden; }
.extras li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 18px; border-bottom: 1px solid var(--line); color: var(--black); }
.extras li:last-child { border-bottom: 0; }
.extras strong { color: var(--black); white-space: nowrap; }
@media (min-width: 720px) { .two-col .extras { grid-template-columns: 1fr 1fr; } .two-col .extras li:nth-last-child(2):nth-child(odd) { border-bottom: 0; } .two-col .extras li:nth-child(odd) { border-right: 1px solid var(--line); } }
.price-grid { display: grid; gap: 24px; align-items: start; }
@media (min-width: 900px) { .price-grid { grid-template-columns: 1fr 1fr; } }
.price-card h2 { font-size: 1.375rem; margin-bottom: 16px; }
.price-card h2 a { color: inherit; text-decoration: none; }
.price-card h2 a:hover { text-decoration: underline; }
.price-card .price-table-wrap, .price-card .extras { margin-bottom: 14px; }
.price-card > p:last-child { margin: 0; }
