/* Francis Jordan compat stylesheet - GENERATED, do not hand-edit.
   Source: clients/francis_jordan/site/css/site.css
   Regenerate: python clients/francis_jordan/wordpress/scripts/build_compat_css.py

   Selectors are prefixed with `body` so they outrank Elementor's own (0,1,1) rules.
   Header, nav, footer, buttons and form fields are deliberately absent - those are
   rebuilt with native Elementor widgets and must not be fought by ported CSS. */

:root { --ink: #1F2124; --near-black: #0E0E0E; --bone: #FAF9F6; --bone-deep: #F2EFEA; --line: #E3E1DC; --action: #1B4D8F; --action-dk: #14396B; --sand: #D4B896; --sage: #8B9A7E; --terracotta: #B4553C; --save: #2E7D52; --muted: #5C5F63; --s1: 0.5rem; --s2: 1rem; --s3: 1.5rem; --s4: 2rem; --s5: 3rem; --s6: 4rem; --s7: 6rem; --s8: 8rem; --wrap: 1240px; --wrap-narrow: 720px; --font-display: 'Chivo', 'Helvetica Neue', Arial, sans-serif; --font-body: 'Poppins', 'Helvetica Neue', Arial, sans-serif; --font-accent: 'Newsreader', Georgia, serif; --radius: 4px; --radius-lg: 20px; --header-h: 77px; --shadow-card: 0 1px 2px rgba(31,33,36,.04), 0 8px 24px rgba(31,33,36,.06); --shadow-lift: 0 2px 4px rgba(31,33,36,.06), 0 16px 40px rgba(31,33,36,.10); --ease: cubic-bezier(.22,.61,.36,1); }
*, *::before, *::after { box-sizing: border-box; }
body [hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + var(--s2)); }
body { margin: 0; background: var(--bone); color: var(--ink); font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.65; font-weight: 400; overflow-x: hidden; }
body img, body svg, body video { max-width: 100%; height: auto; display: block; }
body a { color: var(--action); text-decoration: none; }
body a:hover { text-decoration: underline; }
body :focus-visible { outline: 3px solid var(--action); outline-offset: 2px; }
body h1, body h2, body h3, body h4 { font-family: var(--font-display); font-weight: 600; line-height: 1.12; margin: 0 0 var(--s2); letter-spacing: -0.01em; }
body h1 { font-size: clamp(2rem, 5vw, 3.25rem); }
body h2 { font-size: clamp(1.6rem, 3.4vw, 2.4rem); }
body h3 { font-size: clamp(1.15rem, 2vw, 1.4rem); }
body p { margin: 0 0 var(--s2); }
body .display-caps { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.10em; font-weight: 600; }
body .eyebrow { font-family: var(--font-accent); font-style: italic; font-size: 0.95rem; color: var(--muted); letter-spacing: 0.01em; margin: 0 0 var(--s1); }
body .eyebrow-caps { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.72rem; font-weight: 500; color: var(--muted); margin: 0 0 var(--s2); }
body .lede { font-size: 1.15rem; color: var(--muted); }
body .wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--s3); }
body .wrap-narrow { width: 100%; max-width: var(--wrap-narrow); margin-inline: auto; padding-inline: var(--s3); }
body .section { padding-block: var(--s7); }
body .section--tight { padding-block: var(--s5); }
body .section--bone-deep { background: var(--bone-deep); }
body .section--dark { background: var(--near-black); }
body .section--dark .copy, body .section--dark .copy h2, body .section--dark .copy h3, body .section--dark .copy p, body .section--dark .copy .eyebrow { color: var(--bone); }
body .section--dark .copy .eyebrow, body .section--dark .copy .lede { color: #B9BABC; }
body .section-head { max-width: 46rem; margin-bottom: var(--s5); }
body .section-head--center { margin-inline: auto; text-align: center; }
body .btn-row { display: flex; flex-wrap: wrap; gap: var(--s2); flex-direction: row; }
body .site-header { position: sticky; top: 0; z-index: 100; background: rgba(250,249,246,.94); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
body .site-header__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); min-height: 76px; flex-direction: row; }
body .brand { display: flex; align-items: center; gap: .6rem; flex-shrink: 0; flex-direction: row; }
body .brand__mark { font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); line-height: 1.1; }
body .brand__mark span { display: block; font-size: 0.62rem; letter-spacing: 0.22em; color: var(--muted); font-weight: 500; }
body .brand:hover { text-decoration: none; }
body .brand__logo { height: 44px; width: auto; display: block; }
body .brand__logo--footer { height: 52px; margin-bottom: .85rem; }
body .popup__logo { height: 108px; width: auto; display: block; margin: 0 auto 1rem; }
body .faq__all { margin-top: var(--s3); font-family: var(--font-display); font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.1em; }
body .faq__all a { display: inline-block; padding: .75rem 0; min-height: 44px; }
body .areas-note { margin-top: var(--s3); color: var(--muted); font-size: 0.95rem; max-width: 34rem; }
body .section--bone-deep .areas-note { color: var(--muted); }
@media (max-width: 560px) {
  body .brand__logo { height: 36px; }
}
body .header__actions { display: flex; align-items: center; gap: var(--s2); flex-direction: row; }
body .header__phone { font-family: var(--font-display); font-weight: 600; font-size: 0.95rem; letter-spacing: 0.04em; color: var(--ink); white-space: nowrap; }
@media (max-width: 900px) {
  body .header__phone { font-size: 0.85rem; }
}
body .hero { position: relative; background: var(--near-black); color: var(--bone); overflow: hidden; }
body .hero__media { position: absolute; inset: 0; }
body .hero__media img { width: 100%; height: 100%; object-fit: cover; }
body .hero__scrim { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(14,14,14,.86) 0%, rgba(14,14,14,.62) 45%, rgba(14,14,14,.22) 100%); }
body .hero__inner { position: relative; padding-block: clamp(var(--s7), 14vh, var(--s8)); }
body .hero__copy { max-width: 40rem; }
body .hero h1 { color: var(--bone); }
body .hero__eyebrow { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.2em; font-size: 0.72rem; font-weight: 500; color: var(--sand); margin-bottom: var(--s2); }
body .hero__lede { color: #D8D6D2; font-size: 1.15rem; margin-bottom: var(--s4); max-width: 34rem; }
body .trust-strip { background: var(--bone-deep); border-block: 1px solid var(--line); }
body .trust-strip__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s3); padding-block: var(--s4); }
body .trust-item { text-align: center; }
body .trust-item__figure { font-family: var(--font-display); font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 700; color: var(--ink); line-height: 1; margin-bottom: .35rem; }
body .trust-item__label { font-size: 0.82rem; color: var(--muted); line-height: 1.4; }
@media (max-width: 780px) {
  body .trust-strip__grid { grid-template-columns: repeat(2, 1fr); gap: var(--s3) var(--s2); }
}
body .product-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s5) var(--s4); }
@media (max-width: 820px) {
  body .product-grid { grid-template-columns: 1fr; gap: var(--s4); }
}
body .product-card { display: flex; flex-direction: column; background: var(--bone); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; color: var(--ink); transition: box-shadow .25s var(--ease), transform .25s var(--ease); }
body .product-card:hover { box-shadow: var(--shadow-lift); transform: translateY(-3px); text-decoration: none; }
body .product-card__media { background: var(--bone-deep); aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; padding: var(--s3); flex: 0 0 auto; min-height: 0; flex-direction: row; }
body .product-card__media img { width: 100%; height: 100%; object-fit: contain; max-height: 100%; }
body .product-card__body { padding: var(--s3); display: flex; flex-direction: column; flex: 1; }
body .product-card__sku { font-family: var(--font-display); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--muted); margin-bottom: .5rem; }
body .product-card__name { font-size: 1.3rem; margin-bottom: var(--s1); color: var(--ink); }
body .product-card__desc { font-size: 0.95rem; color: var(--muted); margin-bottom: var(--s2); }
body .product-card__foot { margin-top: auto; }
body .product-card__cta { font-family: var(--font-display); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.13em; font-weight: 600; color: var(--action); }
body .chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: var(--s2); list-style: none; padding: 0; flex-direction: row; }
body .chip { font-family: var(--font-display); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; background: var(--bone-deep); border: 1px solid var(--line); color: var(--muted); padding: .32rem .6rem; border-radius: 100px; white-space: nowrap; }
body .chip--accent { background: rgba(212,184,150,.28); border-color: rgba(212,184,150,.6); color: #6B5333; }
body .pdp-hero { display: grid; grid-template-columns: 1.15fr 1fr; gap: var(--s6); align-items: start; }
@media (max-width: 980px) {
  body .pdp-hero { grid-template-columns: 1fr; gap: var(--s4); }
}
body .gallery__main { background: var(--bone-deep); border: 1px solid var(--line); border-radius: var(--radius); aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; padding: var(--s4); margin-bottom: var(--s2); flex-direction: row; }
body .gallery__main img { max-height: 100%; object-fit: contain; }
body .gallery__thumbs { display: flex; gap: var(--s1); flex-wrap: wrap; flex-direction: row; }
body .gallery__thumb { width: 84px; height: 68px; background: var(--bone-deep); border: 1px solid var(--line); border-radius: var(--radius); padding: .3rem; cursor: pointer; }
body .gallery__thumb img { width: 100%; height: 100%; object-fit: contain; }
body .gallery__thumb[aria-selected="true"] { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
body .pdp__sku { font-family: var(--font-display); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); margin-bottom: var(--s1); }
body .pdp__summary { font-size: 1.05rem; color: var(--muted); margin-bottom: var(--s3); }
body .offer-card { background: var(--bone-deep); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--s3); margin-bottom: var(--s3); }
body .offer-card__label { font-family: var(--font-display); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--muted); margin-bottom: .5rem; }
body .offer-card__figure { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--save); line-height: 1.1; }
body .offer-card__note { font-size: 0.85rem; color: var(--muted); margin-top: .5rem; }
body .spec-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
body .spec-table th, body .spec-table td { text-align: left; padding: .8rem 0; border-bottom: 1px solid var(--line); vertical-align: top; }
body .spec-table th { font-family: var(--font-display); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); font-weight: 600; width: 42%; }
body .spec-table td { white-space: pre-line; }
body .compare-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
body .compare-scroll:focus-visible { outline: 2px solid var(--action); outline-offset: 4px; }
body .compare { width: 100%; min-width: 680px; border-collapse: separate; border-spacing: 0; font-size: 0.95rem; line-height: 1.4; }
body .compare__corner { width: 14rem; background: transparent; border: 0; }
body .compare__head { font-family: var(--font-display); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; color: var(--muted); text-align: center; padding: .8rem var(--s2); vertical-align: bottom; border-bottom: 1px solid var(--line); }
body .compare__label { font-family: var(--font-display); font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; color: var(--ink); text-align: left; width: 14rem; padding: var(--s2) var(--s2) var(--s2) 0; border-bottom: 1px solid var(--line); vertical-align: middle; }
body .compare__cell { padding: var(--s2); vertical-align: top; color: var(--muted); border-bottom: 1px solid var(--line); text-align: center; }
body .compare__mark { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; margin: 0 auto .35rem; flex-direction: row; }
body .compare__mark--yes { background: rgba(46, 125, 82, .12); color: var(--save); }
body .compare__mark--no { background: rgba(180, 85, 60, .12); color: var(--terracotta); }
body .compare__mark--part { background: rgba(92, 95, 99, .10); color: var(--muted); }
body .compare__mark .icon { display: block; }
body .compare__text { display: block; }
body .compare__head.compare--us { color: var(--ink); background: rgba(212, 184, 150, .34); border-bottom-color: var(--sand); }
body .compare__cell.compare--us { color: var(--ink); background: rgba(212, 184, 150, .16); font-weight: 500; }
body .compare tbody tr:last-child .compare--us { border-bottom-color: var(--sand); }
body .compare__note { font-size: 0.85rem; color: var(--muted); margin-top: var(--s3); max-width: 46rem; }
@media (max-width: 820px) {
  body .compare, body .compare tbody, body .compare tr { display: block; }
  body .compare { min-width: 0; }
  body .compare thead { display: none; }
  body .compare tbody tr { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s2); padding-bottom: var(--s3); margin-bottom: var(--s3); border-bottom: 1px solid var(--line); }
  body .compare tbody tr:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
  body .compare__label { display: block; grid-column: 1 / -1; width: auto; padding: 0; border-bottom: 0; }
  body .compare__cell { display: block; padding: 0; border-bottom: 0; font-size: 0.86rem; text-align: center; }
  body .compare__cell.compare--us { background: transparent; }
  body .compare__cell::before { content: attr(data-col); display: block; font-family: var(--font-display); font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; color: var(--muted); margin-bottom: .45rem; min-height: 2.8em; }
  body .compare__cell.compare--us::before { color: var(--ink); }
}
body .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
body .feature-cols { columns: 2; column-gap: var(--s4); }
@media (max-width: 700px) {
  body .feature-cols { columns: 1; }
}
body .feature-list { list-style: none; padding: 0; margin: 0; }
body .feature-list li { position: relative; padding-left: 1.4rem; margin-bottom: .55rem; font-size: 0.95rem; break-inside: avoid; }
body .feature-list li::before { content: ""; position: absolute; left: 0; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: var(--sage); }
body .collection-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s4); }
@media (max-width: 820px) {
  body .collection-cards { grid-template-columns: 1fr; }
}
body .collection-card { position: relative; overflow: hidden; border-radius: var(--radius); min-height: 380px; display: flex; align-items: flex-end; color: var(--bone); background: var(--near-black); flex-direction: row; }
body .collection-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
body .collection-card:hover img { transform: scale(1.04); }
body .collection-card:hover { text-decoration: none; }
body .collection-card__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(14,14,14,.88) 0%, rgba(14,14,14,.34) 55%, rgba(14,14,14,.10) 100%); }
body .collection-card__body { position: relative; padding: var(--s4); width: 100%; }
body .collection-card__body h3 { color: var(--bone); margin-bottom: .35rem; }
body .collection-card__count { font-size: .88rem; color: #CFCDC9; }
body .steps { counter-reset: step; display: grid; gap: var(--s4); grid-template-columns: repeat(3, 1fr); }
@media (max-width: 860px) {
  body .steps { grid-template-columns: 1fr; }
}
body .step { counter-increment: step; }
body .step__num { font-family: var(--font-display); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--sand); margin-bottom: var(--s1); }
body .step__num::before { content: "Step " counter(step); }
body .step h3 { font-size: 1.15rem; }
body .form-note { font-size: 0.78rem; color: var(--muted); }
body .form-panel--dark { background: var(--near-black); padding: var(--s4); border-radius: var(--radius); }
body .form-panel--dark .field label { color: #B9BABC; }
body .form-panel--dark .field input, body .form-panel--dark .field select, body .form-panel--dark .field textarea { color: var(--bone); border-bottom-color: rgba(250,249,246,.32); }
body .form-panel--dark .field textarea { border-color: rgba(250,249,246,.32); }
body .form-panel--dark .consent label, body .form-panel--dark .form-note { color: #A9AAAC; }
body .form-panel--dark .field select { background-image: linear-gradient(45deg, transparent 50%, #A9AAAC 50%), linear-gradient(135deg, #A9AAAC 50%, transparent 50%); }
body .popup-overlay { position: fixed; inset: 0; z-index: 300; background: rgba(0,0,0,.75); display: flex; align-items: center; justify-content: center; padding: var(--s3); opacity: 0; visibility: hidden; transition: opacity .24s var(--ease), visibility .24s var(--ease); overflow-y: auto; flex-direction: row; }
body .popup-overlay[data-open="true"] { opacity: 1; visibility: visible; }
body .popup { position: relative; width: 100%; max-width: 925px; background: var(--bone); border-radius: var(--radius-lg); overflow: hidden; display: grid; grid-template-columns: 0.4fr 0.8fr; transform: translateY(10px) scale(.99); transition: transform .24s var(--ease); margin: auto; }
body .popup-overlay[data-open="true"] .popup { transform: none; }
@media (max-width: 780px) {
  body .popup { grid-template-columns: 1fr; }
}
body .popup__aside { background: var(--near-black); color: var(--bone); padding: var(--s4); display: flex; flex-direction: column; justify-content: center; gap: var(--s2); }
body .popup__aside .eyebrow-caps { color: var(--sand); }
body .popup__aside h2 { color: var(--bone); font-size: 1.45rem; }
body .popup__aside p { font-size: 0.88rem; color: #B9BABC; }
@media (max-width: 780px) {
  body .popup__aside { padding: var(--s3); }
  body .popup__aside p { display: none; }
}
body .popup__main { padding: var(--s4); }
@media (max-width: 780px) {
  body .popup__main { padding: var(--s3); }
}
body .popup__main h3 { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.08em; font-size: 1.35rem; }
body .popup__sub { font-family: var(--font-accent); font-style: italic; font-size: 1rem; color: var(--muted); max-width: 30rem; }
body .popup__close { position: absolute; top: .7rem; right: .7rem; z-index: 2; width: 38px; height: 38px; background: var(--bone); border: 1px solid var(--line); border-radius: var(--radius); cursor: pointer; font-size: 1.1rem; line-height: 1; color: var(--ink); display: flex; align-items: center; justify-content: center; flex-direction: row; }
body .popup__close:hover { background: var(--bone-deep); }
body .site-footer { background: var(--near-black); color: #B9BABC; padding-block: var(--s6) var(--s4); font-size: 0.92rem; }
body .site-footer a { color: var(--bone); }
body .footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: var(--s4); margin-bottom: var(--s5); }
@media (max-width: 900px) {
  body .footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  body .footer__grid { grid-template-columns: 1fr; }
}
body .footer__head { font-family: var(--font-display); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--bone); margin-bottom: var(--s2); font-weight: 600; }
body .footer__list { list-style: none; margin: 0; padding: 0; }
body .footer__list li { margin-bottom: .5rem; }
body .footer__brand .brand__mark { color: var(--bone); }
body .footer__brand .brand__mark span { color: #8A8B8D; }
body .footer__legal { border-top: 1px solid rgba(250,249,246,.14); padding-top: var(--s3); display: flex; flex-wrap: wrap; gap: var(--s1) var(--s3); justify-content: space-between; font-size: 0.78rem; color: #8A8B8D; flex-direction: row; }
body .footer__areas { font-size: 0.82rem; line-height: 1.7; color: #8A8B8D; }
body .breadcrumb { font-size: 0.8rem; color: var(--muted); padding-block: var(--s3) 0; }
body .breadcrumb a { color: var(--muted); }
body .breadcrumb span { margin-inline: .45rem; opacity: .6; }
body .prose { max-width: 42rem; }
body .prose h2 { margin-top: var(--s5); }
body .prose h3 { margin-top: var(--s4); }
body .prose ul { padding-left: 1.2rem; }
body .prose li { margin-bottom: .5rem; }
body .faq { border-top: 1px solid var(--line); }
body .faq__item { border-bottom: 1px solid var(--line); }
body .faq__q { width: 100%; text-align: left; background: none; border: 0; cursor: pointer; font-family: var(--font-display); font-size: 1.02rem; font-weight: 600; color: var(--ink); padding: var(--s3) 2.5rem var(--s3) 0; position: relative; }
body .faq__q::after { content: "+"; position: absolute; right: .4rem; top: 50%; transform: translateY(-50%); font-size: 1.4rem; font-weight: 400; color: var(--muted); }
body .faq__item[data-open="true"] .faq__q::after { content: "\2013"; }
body .faq__a { display: none; padding-bottom: var(--s3); color: var(--muted); max-width: 46rem; }
body .faq__item[data-open="true"] .faq__a { display: block; }
body .callout { border-left: 3px solid var(--sand); background: var(--bone-deep); padding: var(--s3); border-radius: 0 var(--radius) var(--radius) 0; }
body .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s6); align-items: center; }
@media (max-width: 900px) {
  body .two-col { grid-template-columns: 1fr; gap: var(--s4); }
}
body .media-frame { border-radius: var(--radius); overflow: hidden; background: var(--bone-deep); }
body .media-frame img { width: 100%; }
body .scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
body .placeholder-flag { background: rgba(180,85,60,.10); border: 1px dashed rgba(180,85,60,.5); color: #8A3D28; font-size: .78rem; padding: .2rem .5rem; border-radius: var(--radius); display: inline-block; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  html { scroll-behavior: auto; }
  body .collection-card:hover img { transform: none; }
}
body .header__actions .btn { white-space: nowrap; }
@media (max-width: 900px) {
  body .header__actions .btn { display: none; }
  body #book .two-col { display: flex; flex-direction: column; }
  body #book .form-panel--dark { order: -1; }
}
body .chips { max-width: 100%; }
@media (max-width: 560px) {
  body .spec-table th { width: 46%; }
  body .trust-strip__grid { gap: var(--s2); }
}
body .doc-links { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s3); flex-direction: row; }
body .doc-link { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-display); font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; border: 1px solid var(--line); border-radius: var(--radius); padding: .8rem 1.1rem; color: var(--ink); background: var(--bone); }
body .doc-link:hover { background: var(--bone-deep); text-decoration: none; }
body .callout { max-width: 46rem; }
body .form-panel--dark .field input, body .form-panel--dark .field select, body .form-panel--dark .field textarea { border-bottom-color: rgba(250,249,246,.62); }
body .form-panel--dark .field textarea { border-color: rgba(250,249,246,.62); }
body .form-panel--dark .field .req, body .popup__main .field .req { color: var(--sand); }
body .product-card__cta { color: var(--ink); }
body .product-card:hover .product-card__cta { color: var(--action); }
body .site-footer { background: #141416; border-top: 1px solid rgba(250,249,246,.10); }
body .doc-link { background: var(--bone-deep); border-color: rgba(212,184,150,.75); }
body .doc-link:hover { background: #EDE8E0; border-color: var(--sand); }
@media (max-width: 780px) {
  body .popup { max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); }
  body .popup__main { overflow-y: auto; overscroll-behavior: contain; }
  body .popup__close { position: absolute; top: .6rem; right: .6rem; }
}
body .trust-item__figure { font-size: clamp(1.05rem, 1.55vw, 1.28rem); line-height: 1.22; letter-spacing: -0.005em; margin-bottom: .5rem; text-wrap: balance; }
body .trust-item__label { font-size: 0.8rem; line-height: 1.5; max-width: 20rem; margin-inline: auto; }
body .trust-strip__grid { padding-block: var(--s5); align-items: start; }
body .areas-chips .chip { background: var(--bone); border-color: #CFCAC2; color: var(--ink); font-size: 0.76rem; letter-spacing: 0.04em; padding: .5rem .85rem; box-shadow: 0 1px 1px rgba(31,33,36,.03); }
body .areas-chips { gap: .55rem; }
body .areas-more { margin-top: 1.25rem; font-weight: 600; }
body .areas-chips .chip--link { display: inline-block; text-decoration: none; color: var(--ink); border-color: #BDB6AB; transition: background .15s ease, border-color .15s ease, transform .15s ease; }
body .areas-chips .chip--link:hover, body .areas-chips .chip--link:focus-visible { background: var(--sand, #D4B896); border-color: #A9906C; transform: translateY(-1px); }
@media (max-width: 780px) {
  body .trust-strip__grid { grid-template-columns: 1fr 1fr; gap: var(--s3) var(--s2); }
  body .trust-item { display: flex; flex-direction: column; }
  body .trust-item__figure { font-size: 0.95rem; min-height: 2.6em; display: flex; align-items: center; justify-content: center; flex-direction: row; }
  body .trust-item__label { font-size: 0.74rem; }
}
@media (max-width: 400px) {
  body .trust-item__figure { font-size: 0.9rem; }
}
body .swatch-group { margin-bottom: var(--s4); }
body .swatches { display: flex; flex-wrap: wrap; gap: var(--s2); list-style: none; padding: 0; margin: 0; flex-direction: row; }
body .swatch { width: 132px; }
body .swatch img { width: 132px; height: 92px; object-fit: cover; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bone); }
body .swatch span { display: block; margin-top: .45rem; font-family: var(--font-display); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
@media (max-width: 560px) {
  body .swatch, body .swatch img { width: 104px; }
  body .swatch img { height: 74px; }
}
body .icon { display: block; flex-shrink: 0; }
body .trust-item__mark { display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; margin: 0 auto var(--s2); border-radius: 50%; background: var(--bone); border: 1px solid rgba(212,184,150,.85); color: #6B5333; }
body .trust-strip { padding-top: var(--s1); }
@media (max-width: 780px) {
  body .trust-item__mark { width: 46px; height: 46px; margin-bottom: .6rem; }
  body .trust-item__mark .icon { width: 24px; height: 24px; }
}
body .callout--icon { display: grid; grid-template-columns: auto 1fr; gap: var(--s3); align-items: start; }
body .callout__mark { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: rgba(212,184,150,.22); border: 1px solid rgba(212,184,150,.7); color: #6B5333; }
@media (max-width: 560px) {
  body .callout--icon { grid-template-columns: 1fr; gap: var(--s2); }
}
body .step__mark { display: block; margin-bottom: .75rem; color: var(--sand); }
body .section--dark .step__mark { color: var(--sand); }
body .section:not(.section--dark) .step__mark { color: #6B5333; }
body .check-list { list-style: none; padding: 0; margin: 0; }
body .check-list li { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; margin-bottom: .7rem; font-size: 0.97rem; }
body .check-list .icon { color: var(--save); margin-top: .18em; }
body .copy .check-list li { color: inherit; }
body .doc-link { gap: .55rem; }
body .doc-link .icon { color: #6B5333; }
body .callout__body > :first-child { margin-top: 0; }
body .callout--icon .callout__body { min-width: 0; }
body .section--bg { position: relative; isolation: isolate; overflow: hidden; background: var(--near-black); }
body .section--bg > .wrap { position: relative; z-index: 2; }
body .section__media { position: absolute; inset: 0; z-index: 0; }
body .section__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
body .section__scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(14,14,14,.88) 0%, rgba(14,14,14,.72) 45%, rgba(14,14,14,.86) 100%), rgba(14,14,14,.34); }
body .section--bg .copy, body .section--bg .copy h2, body .section--bg .copy h3, body .section--bg .copy p { color: var(--bone); }
body .section--bg .copy .lede, body .section--bg .copy .eyebrow { color: #CFCDC9; }
body .section--bg .step__mark { color: var(--sand); }
@media (prefers-reduced-motion: no-preference) {
  body .section--bg .section__media img { transform: scale(1.02); }
}
@media (min-width: 901px) {
  body .two-col--reverse .copy { order: 2; }
  body .two-col--reverse .media-frame, body .two-col--reverse .feature-list { order: 1; }
}
body .quiz-panel { position: relative; width: 100%; max-width: 760px; margin: auto; background: var(--bone); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; max-height: calc(100vh - var(--s6)); max-height: calc(100dvh - var(--s6)); transform: translateY(10px) scale(.99); transition: transform .24s var(--ease); }
body .popup-overlay[data-open="true"] .quiz-panel { transform: none; }
body .quiz__head { background: var(--bone-deep); border-bottom: 1px solid var(--line); padding: var(--s4) var(--s4) var(--s3); flex-shrink: 0; }
body .quiz__head h2 { font-size: 1.5rem; margin-bottom: .35rem; }
body .quiz__sub { font-family: var(--font-accent); font-style: italic; font-size: 0.98rem; color: var(--muted); max-width: 34rem; }
@media (max-width: 620px) {
  body .quiz__head { padding: var(--s3) var(--s3) var(--s2); }
  body .quiz__head h2 { font-size: 1.2rem; }
  body .quiz__sub { display: none; }
}
body .quiz__progress { margin-top: var(--s3); }
body .quiz__bar { height: 4px; border-radius: 999px; background: rgba(31,33,36,.12); overflow: hidden; }
body .quiz__bar span { display: block; height: 100%; width: var(--pct, 0%); background: var(--action); transition: width .3s var(--ease); }
body .quiz__count { font-family: var(--font-display); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.13em; font-weight: 600; color: var(--muted); margin-top: .55rem; }
body .quiz__body { padding: var(--s4); overflow-y: auto; flex: 1 1 auto; }
@media (max-width: 620px) {
  body .quiz__body { padding: var(--s3); }
}
body .quiz__step { border: 0; margin: 0; padding: 0; min-width: 0; }
body .quiz__q { display: block; float: none; width: 100%; padding: 0; font-family: var(--font-display); font-weight: 600; font-size: 1.35rem; line-height: 1.3; color: var(--ink); margin-bottom: .5rem; }
@media (max-width: 620px) {
  body .quiz__q { font-size: 1.12rem; }
}
body .quiz__help { font-size: 0.88rem; color: var(--muted); max-width: 38rem; line-height: 1.6; }
body .quiz__options { display: flex; flex-direction: column; gap: .6rem; margin-top: var(--s3); }
body .quiz__option { position: relative; display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; background: var(--bone); border: 1px solid var(--line); border-radius: var(--radius); cursor: pointer; transition: border-color .16s var(--ease), background .16s var(--ease); color: var(--ink); font-size: 1rem; line-height: 1.4; flex-direction: row; }
body .quiz__option:hover { border-color: var(--ink); background: var(--bone-deep); }
body .quiz__option:focus-within { outline: 2px solid var(--action); outline-offset: 2px; }
body .quiz__option input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
body .quiz__option-tick { order: -1; flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--line); background: var(--bone); transition: border-color .16s var(--ease), box-shadow .16s var(--ease); }
body .quiz__option input:checked ~ .quiz__option-tick { border-color: var(--action); box-shadow: inset 0 0 0 5px var(--action); }
body .quiz__option input:checked ~ .quiz__option-text { font-weight: 600; }
body .quiz__option:has(input:checked) { border-color: var(--action); background: rgba(27,77,143,.05); }
body .quiz__foot { border-top: 1px solid var(--line); background: var(--bone-deep); padding: var(--s2) var(--s4); display: flex; gap: var(--s2); flex-shrink: 0; flex-direction: row; }
@media (max-width: 620px) {
  body .quiz__foot { padding: var(--s2) var(--s3); }
}
body .quiz__back { padding: .7rem 1.2rem; font-size: .72rem; }
body .quiz__foot:not(:has(.btn:not([hidden]))) { display: none; }
body .quiz__results h3 { font-family: var(--font-display); font-size: 1.35rem; margin-bottom: .4rem; }
body .quiz__results h3:focus { outline: none; }
body .quiz__results > div[data-quiz-cards] { margin-top: var(--s3); }
body .quiz-card { display: grid; grid-template-columns: 104px 1fr; gap: var(--s2); align-items: center; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bone); padding: .75rem; margin-bottom: .7rem; color: var(--ink); transition: border-color .16s var(--ease), box-shadow .16s var(--ease); }
body .quiz-card:hover { text-decoration: none; border-color: var(--ink); box-shadow: var(--shadow-card); }
body .quiz-card--top { grid-template-columns: 1fr; border-color: var(--ink); box-shadow: var(--shadow-card); padding: 0; overflow: hidden; margin-bottom: var(--s3); }
body .quiz-card--top .quiz-card__body { padding: var(--s3); }
body .quiz-card__media { background: var(--bone-deep); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; overflow: hidden; aspect-ratio: 4 / 3; flex-direction: row; }
body .quiz-card--top .quiz-card__media { border-radius: 0; aspect-ratio: 16 / 9; }
body .quiz-card__media img { width: 100%; height: 100%; object-fit: contain; }
body .quiz-card__rank { font-family: var(--font-display); font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.16em; font-weight: 600; color: var(--muted); margin-bottom: .3rem; }
body .quiz-card--top .quiz-card__rank { color: #6B5333; }
body .quiz-card__body h4 { font-family: var(--font-display); font-size: 1.02rem; line-height: 1.3; }
body .quiz-card--top .quiz-card__body h4 { font-size: 1.4rem; }
body .quiz-card__sku { font-size: 0.72rem; color: var(--muted); margin-top: .15rem; }
body .quiz-card__why { list-style: none; margin: .6rem 0 0; padding: 0; }
body .quiz-card__why li { position: relative; padding-left: 1rem; font-size: 0.86rem; line-height: 1.55; color: var(--muted); margin-bottom: .2rem; }
body .quiz-card__why li::before { content: ""; position: absolute; left: 0; top: .62em; width: 5px; height: 5px; border-radius: 50%; background: var(--sage); }
body .quiz-card__note { font-size: 0.78rem; color: #8A3D28; margin-top: .45rem; font-weight: 500; }
body .quiz-card__cta { display: inline-block; margin-top: .6rem; font-family: var(--font-display); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; color: var(--action); }
@media (max-width: 560px) {
  body .quiz-card, body .quiz-card--top { grid-template-columns: 1fr; gap: 0; padding: 0; overflow: hidden; }
  body .quiz-card__media, body .quiz-card--top .quiz-card__media { border-radius: 0; aspect-ratio: 4 / 3; }
  body .quiz-card__body, body .quiz-card--top .quiz-card__body { padding: var(--s3); }
  body .quiz-card__why li { font-size: 0.84rem; }
}
body .quiz__recap { font-size: 0.78rem; color: var(--muted); line-height: 1.6; padding: .7rem .9rem; background: var(--bone-deep); border-radius: var(--radius); margin-top: var(--s2); }
body .quiz__capture { margin-top: var(--s4); padding-top: var(--s3); border-top: 1px solid var(--line); }
body .quiz__capture h3 { font-size: 1.15rem; }
body .quiz__form { margin-top: var(--s3); }
body .quiz__book { margin-top: var(--s3); padding-top: var(--s3); border-top: 1px dashed var(--line); text-align: center; }
body .quiz__book p { font-size: 0.88rem; color: var(--muted); margin-bottom: .7rem; }
@media (max-width: 900px) {
  body .footer__list a, body .footer__areas a, body .areas-more a { display: inline-block; padding-block: .7rem; }
  body .footer__legal a { display: inline-flex; align-items: center; min-height: 44px; }
  body .footer__list li { margin-bottom: 0; }
  body .breadcrumb a { display: inline-block; padding-block: .55rem; min-height: 28px; }
  body .breadcrumb { padding-block: var(--s2) 0; }
  body .brand { padding-block: .5rem; }
  body .areas-chips .chip--link { min-height: 44px; display: inline-flex; align-items: center; }
}
body .popup__close { width: 44px; height: 44px; }
body .quiz__back { min-height: 44px; padding-block: .55rem; }
@media (max-width: 900px) {
  body .trust-item__label { font-size: 0.8rem; }
  body .chip { font-size: 0.75rem; }
  body .product-card__sku, body .pdp__sku, body .offer-card__label, body .footer__head, body .eyebrow-caps, body .hero__eyebrow, body .compare__head, body .spec-table th, body .doc-link, body .field label { font-size: 0.75rem; }
  body .compare__cell::before { font-size: 0.7rem; }
  body .quiz__count { font-size: 0.75rem; }
  body .swatch span { font-size: 0.75rem; }
}
body .brand__mark span { font-size: 0.68rem; }
@media (max-width: 900px) {
  body .brand__mark span { font-size: 0.7rem; letter-spacing: 0.18em; }
}
@media (hover: none) {
  body .btn:hover, body .product-card:hover, body .areas-chips .chip--link:hover { transform: none; }
  body .product-card:hover { box-shadow: none; }
  body .collection-card:hover img { transform: none; }
  body .quiz-card:hover { box-shadow: none; border-color: var(--line); }
  body .quiz__option:hover { background: var(--bone); border-color: var(--line); }
  body a:hover { text-decoration: none; }
}
body.is-locked { overflow: hidden; }
body .popup-overlay[data-open="true"] { overscroll-behavior: contain; }

/* ---------- bridge: Elementor widget wrappers ---------- */

/* NOTE: the `e_optimized_markup` experiment is ACTIVE on this install, which REMOVES the
   inner `.elementor-widget-container` div. Any selector written against that wrapper is a
   silent no-op here -- it is why the `p:last-child` re-scope below did nothing on its first
   attempt. Write bridge selectors against the widget element itself. */

/* Elementor containers ship a DEFAULT 10px padding on all four sides and a 20px gap.
   The ported components carry their own spacing, so those defaults are pure additive error
   that compounds through nesting: measured against the original, `.two-col` columns came out
   554px instead of 564, `.btn-row` 620 instead of 640, `.steps` 369 instead of 376 and every
   framed photo 30px narrower than its twin.

   Zeroing the DEFAULTS only. Elementor writes an explicit padding/gap as a per-element rule
   at (0,2,0), which still outranks this, so the header bar, footer and facet rows keep the
   spacing this build sets on them deliberately. */
body .e-con, body .e-con > .e-con-inner {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --padding-block-start: 0px; --padding-block-end: 0px;
  --padding-inline-start: 0px; --padding-inline-end: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
}

/* Photo cards: the image widget becomes the absolutely-positioned backdrop, and the
   caption is the only in-flow child so `align-items:flex-end` puts it at the bottom. */
body .collection-card > .elementor-widget-image,
body .product-card > .elementor-widget-image {
  position: absolute; inset: 0; z-index: 0; margin: 0; width: 100%; height: 100%;
}
body .collection-card > .elementor-widget-image > *,
body .product-card > .elementor-widget-image > * {
  height: 100%; margin: 0;
}
body .collection-card > .elementor-widget-image img,
body .product-card > .elementor-widget-image img {
  width: 100%; height: 100%; object-fit: cover;
}
/* Full-bleed section backdrops. `.hero__media` / `.section__media` are absolutely
   positioned and expect their <img> to fill them, but the image now sits inside an
   auto-height widget wrapper, so `height:100%` resolved against nothing and the photo
   rendered at its natural 1885x1257 instead of covering the hero. */
body .hero__media > .elementor-widget-image,
body .section__media > .elementor-widget-image {
  position: absolute; inset: 0; width: 100%; height: 100%; margin: 0;
}

/* `.media-frame` is NOT a backdrop -- it is an ordinary in-flow rounded frame beside body
   copy in a `.two-col`. It was briefly included in the rule above, which took its image out
   of flow and collapsed the frame to a thin strip. It only needs its image to fill the
   width; the frame takes its height from the image, exactly as in the original. */
body .media-frame > .elementor-widget-image { margin: 0; }
body .media-frame > .elementor-widget-image > * { margin: 0; line-height: 0; }
body .media-frame img { width: 100%; height: auto; display: block; }
body .hero__media > .elementor-widget-image > *,
body .section__media > .elementor-widget-image > * {
  height: 100%; margin: 0;
}
body .hero__media img,
body .section__media img { width: 100%; height: 100%; object-fit: cover; }

/* The hero is a block in the original; as an Elementor container it becomes a flex column.
   Pin the inner wrapper to full width so the copy column measures the same as the original. */
body .hero > .hero__inner,
body .section--bg > .wrap { width: 100%; }

body .collection-card { justify-content: flex-end; }
body .collection-card__body,
body .collection-card__scrim { z-index: 1; }

/* A Loop Grid carrying a ported grid class becomes a DOUBLE grid: the ported
   `.product-grid { display:grid; grid-template-columns: repeat(2,1fr) }` lands on the WIDGET
   wrapper, and Elementor's own `.elementor-loop-container` grid then nests inside one of its
   cells -- which split each 580px column three ways and rendered 193px cards.
   The class stays as a styling hook; the layout belongs to Elementor's loop container. */
body .elementor-widget-loop-grid.product-grid,
body .elementor-widget-loop-grid.product-grid > .elementor-widget-container { display: block; }

/* Elementor resets `.elementor-heading-title { margin: 0 }`, which removes the
   `margin: 0 0 var(--s2)` the source stylesheet puts on every h1-h4. That margin carries the
   rhythm of every section head, so restore it on the heading ELEMENT (not the widget
   wrapper, which double-counts it).

   Specificity is deliberately (0,1,0) -- the SAME as Elementor's reset, so this wins only by
   load order, and every per-class rule from the source still outranks it. At (0,3,0) it beat
   them all and forced `.product-card__name` to 16px when the source says 8px. */
/* The WP theme ships `body { letter-spacing: -0.1px }`, which the source stylesheet
   does not have. It is inherited by every text run on the site and it re-wrapped the
   footer disclaimer from four lines to three. Reset it: the ported `body` rule and the
   theme's are both (0,0,1), and this sheet loads last. */
body { letter-spacing: normal; }

/* Elementor's Loop Grid makes `.e-loop-item` the grid cell and nests the ported card
   inside it, so the cell stretches to the row height and the card does not. The first
   swim spa -- one line of copy shorter than its neighbours -- came out 673px inside a
   698px row. In the original the card IS the grid item and stretches for free. */
body .e-loop-item { display: flex; flex-direction: column; }
body .e-loop-item > .e-con { flex: 1 1 auto; }

/* The UA `[hidden] { display: none }` is (0,0,1) and loses to ANY ported display
   rule on the same element -- `body .callout` at (0,1,1) was enough to reveal the
   finder's empty-state callout on every page load. Restate it so state beats
   styling, which is the one place `!important` is the correct tool. */
body [hidden] { display: none !important; }

/* A ported paragraph's own bottom margin disappears when it becomes the only child of
   a Text Editor widget: it collapses into the wrapper, whose margin Elementor zeroes
   with `.e-con .elementor-widget:not(:last-child){margin-block-end:0}` at (0,3,0).
   The form note lost the 16px gap between it and the field grid. */
body .form-note.elementor-element.elementor-widget { margin-bottom: var(--s2); }

/* Field padding. Elementor's `input_size` control only offers size buckets and the
   default `elementor-size-sm` is 5px, where the source uses `.65rem 0` -- every field
   came out 65px against 72px. State the source's own value: (0,2,1) clears
   `.elementor-field-textual.elementor-size-sm` at (0,2,0). */
body [class*="form-panel"] .elementor-field-textual,
body [class*="form-panel"] select.elementor-field {
  padding: .65rem 0; }

/* Sticky header. The ported rule puts `position: sticky` on `.site-header`, but under
   Theme Builder that element is wrapped in `.elementor-location-header`, whose box is
   exactly the header's own height -- and a sticky element cannot travel outside its
   containing block, so it would scroll away immediately. In the original the header IS
   a body child. Move the stick to the WRAPPER, which is the body child here, and let
   `.site-header` keep the background, blur and border it already carries.
   This is why Elementor's own sticky uses `position: fixed` plus a cloned spacer; doing
   it this way keeps the original's mechanism and emits no clone. */
body .elementor-location-header { position: sticky; top: 0; z-index: 100; }
body .elementor-location-header .site-header { position: static; }

/* Elementor's acceptance field has NO styling controls of its own (checked: the Form
   widget registers none), so the TCPA consent paragraph inherited the 16px field
   typography and rendered 199px tall against the original's 112px. The source styles
   it through `.consent label` at 0.78rem/1.5, which is dropped because `consent`
   describes markup Elementor replaces -- so re-aim the same values at the widget's
   own markup, scoped to the panel so no other form is touched. */
body [class*="form-panel"] .elementor-field-type-acceptance label,
body [class*="form-panel"] .elementor-field-type-acceptance .elementor-field-option,
body [class*="form-panel"] .elementor-field-type-acceptance .elementor-field-subgroup,
body [class*="form-panel"] .elementor-field-type-acceptance .elementor-field-option label {
  font-size: 0.78rem !important; line-height: 1.5 !important; text-transform: none;
  letter-spacing: 0; font-family: var(--font-body); font-weight: 400; }

/* The finder facets are the one component whose CONTROL SHAPE differs from the
   original: it uses four labelled <select>s, and Elementor's Taxonomy Filter widget
   renders pill buttons -- this version exposes no dropdown display option. Forcing
   the original's four 280px columns makes it WORSE, not better: the pills wrap
   inside each column and the bar grows to 163px against the original's 70px. The
   single wrapping row Elementor produces (98px) is the honest shape for pills, so
   it is left alone and the divergence is recorded in NOTES.md for the client to
   decide on. `finder-facets` is in DROP_ROOTS, so nothing here styles it. */

/* Elementor containers are flex; the source's wrappers are plain block divs. Flex
   containers do not collapse margins, which is worth +48px on the hot-tubs prose block
   (the first h2's top margin stopped escaping its parent) and +16px in every dark CTA
   band (the lede's bottom margin stopped collapsing into the button row's top margin).
   Kept at (0,1,0): it ties with Elementor's own `.e-con { display: var(--display) }` and
   wins on load order, while every ported `display: flex|grid` rule is (0,1,1) and still
   beats it. Header and footer are native Elementor -- give them their own value back. */
.e-con { display: block; }
:where(.elementor-location-header, .elementor-location-footer) .e-con { display: var(--display, flex); }

/* The heading WRAPPER is the analogue of the original heading element: ported CLASS
   rules (`.product-card__name { margin-bottom: var(--s1) }`) land on the wrapper, so the
   wrapper is what has to carry margin. Zero the inner heading or the two stack, which is
   what made every product-card name 24px tall instead of 8px. Element-level rules from
   the source (`.prose h2 { margin-top: var(--s5) }`) are re-aimed at the wrapper by the
   generated alias block at the end of this file. */
body .elementor-widget-heading .elementor-heading-title { margin: 0; }
body .elementor-element.elementor-widget.elementor-widget-heading { margin: 0 0 var(--s2); }

/* The `p:last-child` trim, re-scoped. Two cases, because Elementor splits one block into
   many widgets:
     - the last paragraph of a MULTI-paragraph Text Editor, and
     - the last paragraph of the LAST widget in a container, which is the real equivalent of
       "the last paragraph of the block" in the original markup.
   A paragraph alone in a widget that is NOT last keeps its margin -- that margin is what
   separates it from the next widget. Missing the second case left every `.section-head`
   16px too tall and each `.step` 8px too tall. */
body .e-con > .elementor-widget:last-child p:last-child,
/* A BOXED container puts its children inside `.e-con-inner`, so the rule above misses
   them. That is what left the footer disclaimer -- an only-child paragraph in the last
   widget of the footer's boxed wrap -- carrying 16px the original never had. */
body .e-con-inner > .elementor-widget:last-child p:last-child,
body .prose > p:last-child,
body .faq__a > p:last-child { margin-bottom: 0; }

/* Elementor gives every widget a bottom margin from the Kit; the ported components space
   themselves, so zero it inside them and let the original rules decide. */
body .trust-item .elementor-widget:last-child,
body .collection-card__body .elementor-widget:last-child,
body .step .elementor-widget:last-child { margin-bottom: 0; }

/* The theme reset (`ul { list-style:none; padding:0 }`) outranks a plain `.prose ul`, so
   bullets vanish inside an Accordion answer. Target the widget's own wrapper. */
body .elementor-tab-content ul { list-style: disc; padding-left: 1.25rem; }
body .elementor-tab-content ol { list-style: decimal; padding-left: 1.25rem; }
body .elementor-tab-content li { margin-bottom: .35rem; }

/* widget margin companions: ported margins re-stated at a specificity
   that clears Elementor's own widget-spacing reset. GENERATED. */
body .eyebrow.elementor-element.elementor-widget, body .eyebrow.elementor-element.e-con { margin: 0 0 var(--s1); }
body .eyebrow-caps.elementor-element.elementor-widget, body .eyebrow-caps.elementor-element.e-con { margin: 0 0 var(--s2); }
body .wrap.elementor-element.elementor-widget, body .wrap.elementor-element.e-con { margin-inline: auto; }
body .wrap-narrow.elementor-element.elementor-widget, body .wrap-narrow.elementor-element.e-con { margin-inline: auto; }
body .section-head.elementor-element.elementor-widget, body .section-head.elementor-element.e-con { margin-bottom: var(--s5); }
body .section-head--center.elementor-element.elementor-widget, body .section-head--center.elementor-element.e-con { margin-inline: auto; }
body .btn-row.elementor-element.elementor-widget, body .btn-row.elementor-element.e-con { flex-wrap: wrap; }
body .brand.elementor-element.elementor-widget, body .brand.elementor-element.e-con { flex-shrink: 0; }
body .brand__logo--footer.elementor-element.elementor-widget, body .brand__logo--footer.elementor-element.e-con { margin-bottom: .85rem; }
body .popup__logo.elementor-element.elementor-widget, body .popup__logo.elementor-element.e-con { margin: 0 auto 1rem; }
body .faq__all.elementor-element.elementor-widget, body .faq__all.elementor-element.e-con { margin-top: var(--s3); }
body .areas-note.elementor-element.elementor-widget, body .areas-note.elementor-element.e-con { margin-top: var(--s3); }
body .hero__eyebrow.elementor-element.elementor-widget, body .hero__eyebrow.elementor-element.e-con { margin-bottom: var(--s2); }
body .hero__lede.elementor-element.elementor-widget, body .hero__lede.elementor-element.e-con { margin-bottom: var(--s4); }
body .trust-item__figure.elementor-element.elementor-widget, body .trust-item__figure.elementor-element.e-con { margin-bottom: .35rem; }
body .product-card.elementor-element.elementor-widget, body .product-card.elementor-element.e-con { flex-direction: column; }
body .product-card__media.elementor-element.elementor-widget, body .product-card__media.elementor-element.e-con { flex: 0 0 auto; }
body .product-card__body.elementor-element.elementor-widget, body .product-card__body.elementor-element.e-con { flex-direction: column; flex: 1; }
body .product-card__sku.elementor-element.elementor-widget, body .product-card__sku.elementor-element.e-con { margin-bottom: .5rem; }
body .product-card__name.elementor-element.elementor-widget, body .product-card__name.elementor-element.e-con { margin-bottom: var(--s1); }
body .product-card__desc.elementor-element.elementor-widget, body .product-card__desc.elementor-element.e-con { margin-bottom: var(--s2); }
body .product-card__foot.elementor-element.elementor-widget, body .product-card__foot.elementor-element.e-con { margin-top: auto; }
body .chips.elementor-element.elementor-widget, body .chips.elementor-element.e-con { flex-wrap: wrap; margin-bottom: var(--s2); }
body .gallery__main.elementor-element.elementor-widget, body .gallery__main.elementor-element.e-con { margin-bottom: var(--s2); }
body .gallery__thumbs.elementor-element.elementor-widget, body .gallery__thumbs.elementor-element.e-con { flex-wrap: wrap; }
body .pdp__sku.elementor-element.elementor-widget, body .pdp__sku.elementor-element.e-con { margin-bottom: var(--s1); }
body .pdp__summary.elementor-element.elementor-widget, body .pdp__summary.elementor-element.e-con { margin-bottom: var(--s3); }
body .offer-card.elementor-element.elementor-widget, body .offer-card.elementor-element.e-con { margin-bottom: var(--s3); }
body .offer-card__label.elementor-element.elementor-widget, body .offer-card__label.elementor-element.e-con { margin-bottom: .5rem; }
body .offer-card__note.elementor-element.elementor-widget, body .offer-card__note.elementor-element.e-con { margin-top: .5rem; }
body .compare__mark.elementor-element.elementor-widget, body .compare__mark.elementor-element.e-con { margin: 0 auto .35rem; }
body .compare__note.elementor-element.elementor-widget, body .compare__note.elementor-element.e-con { margin-top: var(--s3); }
body .sr-only.elementor-element.elementor-widget, body .sr-only.elementor-element.e-con { margin: -1px; }
body .feature-list.elementor-element.elementor-widget, body .feature-list.elementor-element.e-con { margin: 0; }
body .step__num.elementor-element.elementor-widget, body .step__num.elementor-element.e-con { margin-bottom: var(--s1); }
body .popup.elementor-element.elementor-widget, body .popup.elementor-element.e-con { margin: auto; }
body .popup__aside.elementor-element.elementor-widget, body .popup__aside.elementor-element.e-con { flex-direction: column; }
body .footer__grid.elementor-element.elementor-widget, body .footer__grid.elementor-element.e-con { margin-bottom: var(--s5); }
body .footer__head.elementor-element.elementor-widget, body .footer__head.elementor-element.e-con { margin-bottom: var(--s2); }
body .footer__list.elementor-element.elementor-widget, body .footer__list.elementor-element.e-con { margin: 0; }
body .footer__legal.elementor-element.elementor-widget, body .footer__legal.elementor-element.e-con { flex-wrap: wrap; }
@media (max-width: 900px) { body #book .two-col.elementor-element.elementor-widget, body #book .two-col.elementor-element.e-con { flex-direction: column; } }
body .doc-links.elementor-element.elementor-widget, body .doc-links.elementor-element.e-con { flex-wrap: wrap; margin-top: var(--s3); }
body .trust-item__figure.elementor-element.elementor-widget, body .trust-item__figure.elementor-element.e-con { margin-bottom: .5rem; }
body .trust-item__label.elementor-element.elementor-widget, body .trust-item__label.elementor-element.e-con { margin-inline: auto; }
body .areas-more.elementor-element.elementor-widget, body .areas-more.elementor-element.e-con { margin-top: 1.25rem; }
@media (max-width: 780px) { body .trust-item.elementor-element.elementor-widget, body .trust-item.elementor-element.e-con { flex-direction: column; } }
body .swatch-group.elementor-element.elementor-widget, body .swatch-group.elementor-element.e-con { margin-bottom: var(--s4); }
body .swatches.elementor-element.elementor-widget, body .swatches.elementor-element.e-con { flex-wrap: wrap; margin: 0; }
body .icon.elementor-element.elementor-widget, body .icon.elementor-element.e-con { flex-shrink: 0; }
body .trust-item__mark.elementor-element.elementor-widget, body .trust-item__mark.elementor-element.e-con { margin: 0 auto var(--s2); }
@media (max-width: 780px) { body .trust-item__mark.elementor-element.elementor-widget, body .trust-item__mark.elementor-element.e-con { margin-bottom: .6rem; } }
body .step__mark.elementor-element.elementor-widget, body .step__mark.elementor-element.e-con { margin-bottom: .75rem; }
body .check-list.elementor-element.elementor-widget, body .check-list.elementor-element.e-con { margin: 0; }
body .check-list .icon.elementor-element.elementor-widget, body .check-list .icon.elementor-element.e-con { margin-top: .18em; }
body .quiz-panel.elementor-element.elementor-widget, body .quiz-panel.elementor-element.e-con { margin: auto; flex-direction: column; }
body .quiz__head.elementor-element.elementor-widget, body .quiz__head.elementor-element.e-con { flex-shrink: 0; }
body .quiz__progress.elementor-element.elementor-widget, body .quiz__progress.elementor-element.e-con { margin-top: var(--s3); }
body .quiz__count.elementor-element.elementor-widget, body .quiz__count.elementor-element.e-con { margin-top: .55rem; }
body .quiz__body.elementor-element.elementor-widget, body .quiz__body.elementor-element.e-con { flex: 1 1 auto; }
body .quiz__step.elementor-element.elementor-widget, body .quiz__step.elementor-element.e-con { margin: 0; }
body .quiz__q.elementor-element.elementor-widget, body .quiz__q.elementor-element.e-con { margin-bottom: .5rem; }
body .quiz__options.elementor-element.elementor-widget, body .quiz__options.elementor-element.e-con { flex-direction: column; margin-top: var(--s3); }
body .quiz__option-tick.elementor-element.elementor-widget, body .quiz__option-tick.elementor-element.e-con { flex-shrink: 0; }
body .quiz__foot.elementor-element.elementor-widget, body .quiz__foot.elementor-element.e-con { flex-shrink: 0; }
body .quiz-card.elementor-element.elementor-widget, body .quiz-card.elementor-element.e-con { margin-bottom: .7rem; }
body .quiz-card--top.elementor-element.elementor-widget, body .quiz-card--top.elementor-element.e-con { margin-bottom: var(--s3); }
body .quiz-card__rank.elementor-element.elementor-widget, body .quiz-card__rank.elementor-element.e-con { margin-bottom: .3rem; }
body .quiz-card__sku.elementor-element.elementor-widget, body .quiz-card__sku.elementor-element.e-con { margin-top: .15rem; }
body .quiz-card__why.elementor-element.elementor-widget, body .quiz-card__why.elementor-element.e-con { margin: .6rem 0 0; }
body .quiz-card__note.elementor-element.elementor-widget, body .quiz-card__note.elementor-element.e-con { margin-top: .45rem; }
body .quiz-card__cta.elementor-element.elementor-widget, body .quiz-card__cta.elementor-element.e-con { margin-top: .6rem; }
body .quiz__recap.elementor-element.elementor-widget, body .quiz__recap.elementor-element.e-con { margin-top: var(--s2); }
body .quiz__capture.elementor-element.elementor-widget, body .quiz__capture.elementor-element.e-con { margin-top: var(--s4); }
body .quiz__form.elementor-element.elementor-widget, body .quiz__form.elementor-element.e-con { margin-top: var(--s3); }
body .quiz__book.elementor-element.elementor-widget, body .quiz__book.elementor-element.e-con { margin-top: var(--s3); }

/* image-widget fill: ancestors of a ported `img { height: 100% }`.
   GENERATED from the stylesheet, so a new media component cannot be missed. */
body .hero__media .elementor-widget-image, body .hero__media .elementor-widget-image > .elementor-widget-container, body .hero__media .elementor-widget-image figure, body .hero__media .elementor-widget-image .elementor-image { height: 100%; width: 100%; margin: 0; }
body .product-card__media .elementor-widget-image, body .product-card__media .elementor-widget-image > .elementor-widget-container, body .product-card__media .elementor-widget-image figure, body .product-card__media .elementor-widget-image .elementor-image { height: 100%; width: 100%; margin: 0; }
body .gallery__main .elementor-widget-image, body .gallery__main .elementor-widget-image > .elementor-widget-container, body .gallery__main .elementor-widget-image figure, body .gallery__main .elementor-widget-image .elementor-image { height: 100%; width: 100%; margin: 0; }
body .gallery__thumb .elementor-widget-image, body .gallery__thumb .elementor-widget-image > .elementor-widget-container, body .gallery__thumb .elementor-widget-image figure, body .gallery__thumb .elementor-widget-image .elementor-image { height: 100%; width: 100%; margin: 0; }
body .collection-card .elementor-widget-image, body .collection-card .elementor-widget-image > .elementor-widget-container, body .collection-card .elementor-widget-image figure, body .collection-card .elementor-widget-image .elementor-image { height: 100%; width: 100%; margin: 0; }
body .section__media .elementor-widget-image, body .section__media .elementor-widget-image > .elementor-widget-container, body .section__media .elementor-widget-image figure, body .section__media .elementor-widget-image .elementor-image { height: 100%; width: 100%; margin: 0; }
body .quiz-card__media .elementor-widget-image, body .quiz-card__media .elementor-widget-image > .elementor-widget-container, body .quiz-card__media .elementor-widget-image figure, body .quiz-card__media .elementor-widget-image .elementor-image { height: 100%; width: 100%; margin: 0; }

/* heading typography companions: ported class typography re-stated on the
   inner .elementor-heading-title, which a ported `body hN` rule sets directly.
   GENERATED. */
body .display-caps .elementor-heading-title { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.10em; font-weight: 600; }
body .eyebrow .elementor-heading-title { font-family: var(--font-accent); font-style: italic; font-size: 0.95rem; color: var(--muted); letter-spacing: 0.01em; }
body .eyebrow-caps .elementor-heading-title { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.72rem; font-weight: 500; color: var(--muted); }
body .lede .elementor-heading-title { font-size: 1.15rem; color: var(--muted); }
body .section--dark .copy .elementor-heading-title, body .section--dark .copy .eyebrow .elementor-heading-title { color: var(--bone); }
body .section--dark .copy .eyebrow .elementor-heading-title, body .section--dark .copy .lede .elementor-heading-title { color: #B9BABC; }
body .brand__mark .elementor-heading-title { font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); line-height: 1.1; }
body .faq__all .elementor-heading-title { font-family: var(--font-display); font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.1em; }
body .areas-note .elementor-heading-title { color: var(--muted); font-size: 0.95rem; }
body .section--bone-deep .areas-note .elementor-heading-title { color: var(--muted); }
body .header__phone .elementor-heading-title { font-family: var(--font-display); font-weight: 600; font-size: 0.95rem; letter-spacing: 0.04em; color: var(--ink); }
@media (max-width: 900px) { body .header__phone .elementor-heading-title { font-size: 0.85rem; } }
body .hero .elementor-heading-title { color: var(--bone); }
body .hero__eyebrow .elementor-heading-title { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.2em; font-size: 0.72rem; font-weight: 500; color: var(--sand); }
body .hero__lede .elementor-heading-title { color: #D8D6D2; font-size: 1.15rem; }
body .trust-item__figure .elementor-heading-title { font-family: var(--font-display); font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 700; color: var(--ink); line-height: 1; }
body .trust-item__label .elementor-heading-title { font-size: 0.82rem; color: var(--muted); line-height: 1.4; }
body .product-card .elementor-heading-title { color: var(--ink); }
body .product-card__sku .elementor-heading-title { font-family: var(--font-display); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--muted); }
body .product-card__name .elementor-heading-title { font-size: 1.3rem; color: var(--ink); }
body .product-card__desc .elementor-heading-title { font-size: 0.95rem; color: var(--muted); }
body .product-card__cta .elementor-heading-title { font-family: var(--font-display); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.13em; font-weight: 600; color: var(--action); }
body .chip .elementor-heading-title { font-family: var(--font-display); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
body .chip--accent .elementor-heading-title { color: #6B5333; }
body .pdp__sku .elementor-heading-title { font-family: var(--font-display); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
body .pdp__summary .elementor-heading-title { font-size: 1.05rem; color: var(--muted); }
body .offer-card__label .elementor-heading-title { font-family: var(--font-display); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--muted); }
body .offer-card__figure .elementor-heading-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--save); line-height: 1.1; }
body .offer-card__note .elementor-heading-title { font-size: 0.85rem; color: var(--muted); }
body .spec-table .elementor-heading-title { font-size: 0.95rem; }
body .compare .elementor-heading-title { font-size: 0.95rem; line-height: 1.4; }
body .compare__head .elementor-heading-title { font-family: var(--font-display); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; color: var(--muted); }
body .compare__label .elementor-heading-title { font-family: var(--font-display); font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; color: var(--ink); }
body .compare__cell .elementor-heading-title { color: var(--muted); }
body .compare__mark--yes .elementor-heading-title { color: var(--save); }
body .compare__mark--no .elementor-heading-title { color: var(--terracotta); }
body .compare__mark--part .elementor-heading-title { color: var(--muted); }
body .compare__head.compare--us .elementor-heading-title { color: var(--ink); }
body .compare__cell.compare--us .elementor-heading-title { color: var(--ink); font-weight: 500; }
body .compare__note .elementor-heading-title { font-size: 0.85rem; color: var(--muted); }
@media (max-width: 820px) { body .compare__cell .elementor-heading-title { font-size: 0.86rem; } }
body .collection-card .elementor-heading-title { color: var(--bone); }
body .collection-card__count .elementor-heading-title { font-size: .88rem; color: #CFCDC9; }
body .step__num .elementor-heading-title { font-family: var(--font-display); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--sand); }
body .form-note .elementor-heading-title { font-size: 0.78rem; color: var(--muted); }
body .form-panel--dark .form-note .elementor-heading-title { color: #A9AAAC; }
body .popup__aside .elementor-heading-title { color: var(--bone); }
body .popup__aside .eyebrow-caps .elementor-heading-title { color: var(--sand); }
body .popup__sub .elementor-heading-title { font-family: var(--font-accent); font-style: italic; font-size: 1rem; color: var(--muted); }
body .popup__close .elementor-heading-title { font-size: 1.1rem; line-height: 1; color: var(--ink); }
body .site-footer .elementor-heading-title { color: #B9BABC; font-size: 0.92rem; }
body .footer__head .elementor-heading-title { font-family: var(--font-display); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--bone); font-weight: 600; }
body .footer__brand .brand__mark .elementor-heading-title { color: var(--bone); }
body .footer__legal .elementor-heading-title { font-size: 0.78rem; color: #8A8B8D; }
body .footer__areas .elementor-heading-title { font-size: 0.82rem; line-height: 1.7; color: #8A8B8D; }
body .breadcrumb .elementor-heading-title { font-size: 0.8rem; color: var(--muted); }
body .faq__q .elementor-heading-title { font-family: var(--font-display); font-size: 1.02rem; font-weight: 600; color: var(--ink); }
body .faq__a .elementor-heading-title { color: var(--muted); }
body .placeholder-flag .elementor-heading-title { color: #8A3D28; font-size: .78rem; }
body .doc-link .elementor-heading-title { font-family: var(--font-display); font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; color: var(--ink); }
body .form-panel--dark .field .req .elementor-heading-title, body .popup__main .field .req .elementor-heading-title { color: var(--sand); }
body .product-card__cta .elementor-heading-title { color: var(--ink); }
body .product-card:hover .product-card__cta .elementor-heading-title { color: var(--action); }
body .trust-item__figure .elementor-heading-title { font-size: clamp(1.05rem, 1.55vw, 1.28rem); line-height: 1.22; letter-spacing: -0.005em; }
body .trust-item__label .elementor-heading-title { font-size: 0.8rem; line-height: 1.5; }
body .areas-chips .chip .elementor-heading-title { color: var(--ink); font-size: 0.76rem; letter-spacing: 0.04em; }
body .areas-more .elementor-heading-title { font-weight: 600; }
body .areas-chips .chip--link .elementor-heading-title { color: var(--ink); }
@media (max-width: 780px) { body .trust-item__figure .elementor-heading-title { font-size: 0.95rem; } }
@media (max-width: 780px) { body .trust-item__label .elementor-heading-title { font-size: 0.74rem; } }
@media (max-width: 400px) { body .trust-item__figure .elementor-heading-title { font-size: 0.9rem; } }
body .trust-item__mark .elementor-heading-title { color: #6B5333; }
body .callout__mark .elementor-heading-title { color: #6B5333; }
body .step__mark .elementor-heading-title { color: var(--sand); }
body .section--dark .step__mark .elementor-heading-title { color: var(--sand); }
body .section:not(.section--dark) .step__mark .elementor-heading-title { color: #6B5333; }
body .check-list .icon .elementor-heading-title { color: var(--save); }
body .doc-link .icon .elementor-heading-title { color: #6B5333; }
body .section--bg .copy .elementor-heading-title { color: var(--bone); }
body .section--bg .copy .lede .elementor-heading-title, body .section--bg .copy .eyebrow .elementor-heading-title { color: #CFCDC9; }
body .section--bg .step__mark .elementor-heading-title { color: var(--sand); }
body .quiz__sub .elementor-heading-title { font-family: var(--font-accent); font-style: italic; font-size: 0.98rem; color: var(--muted); }
body .quiz__count .elementor-heading-title { font-family: var(--font-display); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.13em; font-weight: 600; color: var(--muted); }
body .quiz__q .elementor-heading-title { font-family: var(--font-display); font-weight: 600; font-size: 1.35rem; line-height: 1.3; color: var(--ink); }
@media (max-width: 620px) { body .quiz__q .elementor-heading-title { font-size: 1.12rem; } }
body .quiz__help .elementor-heading-title { font-size: 0.88rem; color: var(--muted); line-height: 1.6; }
body .quiz__option .elementor-heading-title { color: var(--ink); font-size: 1rem; line-height: 1.4; }
body .quiz__option input:checked ~ .quiz__option-text .elementor-heading-title { font-weight: 600; }
body .quiz__back .elementor-heading-title { font-size: .72rem; }
body .quiz-card .elementor-heading-title { color: var(--ink); }
body .quiz-card__rank .elementor-heading-title { font-family: var(--font-display); font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.16em; font-weight: 600; color: var(--muted); }
body .quiz-card--top .quiz-card__rank .elementor-heading-title { color: #6B5333; }
body .quiz-card__sku .elementor-heading-title { font-size: 0.72rem; color: var(--muted); }
body .quiz-card__note .elementor-heading-title { font-size: 0.78rem; color: #8A3D28; font-weight: 500; }
body .quiz-card__cta .elementor-heading-title { font-family: var(--font-display); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; color: var(--action); }
body .quiz__recap .elementor-heading-title { font-size: 0.78rem; color: var(--muted); line-height: 1.6; }
@media (max-width: 900px) { body .trust-item__label .elementor-heading-title { font-size: 0.8rem; } }
@media (max-width: 900px) { body .chip .elementor-heading-title { font-size: 0.75rem; } }
@media (max-width: 900px) { body .product-card__sku .elementor-heading-title, body .pdp__sku .elementor-heading-title, body .offer-card__label .elementor-heading-title, body .footer__head .elementor-heading-title, body .eyebrow-caps .elementor-heading-title, body .hero__eyebrow .elementor-heading-title, body .compare__head .elementor-heading-title, body .doc-link .elementor-heading-title { font-size: 0.75rem; } }
@media (max-width: 900px) { body .quiz__count .elementor-heading-title { font-size: 0.75rem; } }

/* heading-margin aliases: element-level heading margins re-aimed at the
   Elementor heading wrapper. GENERATED. */
body .collection-card__body .elementor-widget-heading.elementor-element.elementor-widget:has(> h3) { margin-bottom: .35rem; }
body .prose .elementor-widget-heading.elementor-element.elementor-widget:has(> h2) { margin-top: var(--s5); }
body .prose .elementor-widget-heading.elementor-element.elementor-widget:has(> h3) { margin-top: var(--s4); }
body .quiz__head .elementor-widget-heading.elementor-element.elementor-widget:has(> h2) { margin-bottom: .35rem; }
body .quiz__results .elementor-widget-heading.elementor-element.elementor-widget:has(> h3) { margin-bottom: .4rem; }

/* Components dropped site-wide (Elementor owns them) but re-emitted
   scoped to the quiz modal, whose shell is raw HTML using the original
   class names. GENERATED. */
#spa-quiz .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; font-family: var(--font-display); font-size: 0.82rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; padding: 1.05rem 2rem; border: 1px solid transparent; border-radius: var(--radius); cursor: pointer; text-align: center; transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease); }
#spa-quiz .btn:hover { text-decoration: none; transform: translateY(-1px); }
#spa-quiz .btn--primary { background: var(--near-black); color: var(--bone); }
#spa-quiz .btn--primary:hover { background: var(--ink); }
#spa-quiz .btn--action { background: var(--action); color: #fff; }
#spa-quiz .btn--action:hover { background: var(--action-dk); }
#spa-quiz .btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
#spa-quiz .btn--ghost:hover { background: var(--ink); color: var(--bone); }
#spa-quiz .btn--ghost-light { background: transparent; color: var(--bone); border-color: rgba(250,249,246,.55); }
#spa-quiz .btn--ghost-light:hover { background: var(--bone); color: var(--ink); }
#spa-quiz .btn--block { width: 100%; }
#spa-quiz .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s2) var(--s3); }
@media (max-width: 620px) { #spa-quiz .form-grid { grid-template-columns: 1fr; } }
#spa-quiz .field { display: flex; flex-direction: column; }
#spa-quiz .field--full { grid-column: 1 / -1; }
#spa-quiz .field label { font-family: var(--font-display); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.13em; font-weight: 600; color: var(--muted); margin-bottom: .4rem; }
#spa-quiz .field .req { color: var(--terracotta); }
#spa-quiz .field input, #spa-quiz .field select, #spa-quiz .field textarea { font-family: var(--font-body); font-size: 1rem; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: .65rem 0; width: 100%; transition: border-color .2s var(--ease); }
#spa-quiz .field input:focus, #spa-quiz .field select:focus, #spa-quiz .field textarea:focus { outline: none; border-bottom-color: var(--action); border-bottom-width: 2px; }
#spa-quiz .field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 14px) 1.25rem, calc(100% - 9px) 1.25rem; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
#spa-quiz .field textarea { border: 1px solid var(--line); padding: .7rem; resize: vertical; min-height: 110px; }
#spa-quiz .consent { display: flex; gap: .7rem; align-items: flex-start; grid-column: 1 / -1; }
#spa-quiz .consent input { width: 24px; height: 24px; flex-shrink: 0; margin-top: .15rem; }
#spa-quiz .consent label { font-size: 0.78rem; line-height: 1.5; color: var(--muted); text-transform: none; letter-spacing: 0; font-family: var(--font-body); font-weight: 400; }
#spa-quiz .form-status { font-size: 0.9rem; padding: var(--s2); border-radius: var(--radius); margin-top: var(--s2); display: none; }
#spa-quiz .form-status[data-state="ok"] { display: block; background: rgba(46,125,82,.10); border: 1px solid rgba(46,125,82,.35); color: #1F5C3B; }
#spa-quiz .form-status[data-state="err"] { display: block; background: rgba(180,85,60,.10); border: 1px solid rgba(180,85,60,.35); color: #8A3D28; }
@media (max-width: 900px) { #spa-quiz .field input, #spa-quiz .field select, #spa-quiz .field textarea { padding-block: .85rem; } }
@media (max-width: 900px) { #spa-quiz .field select { background-position: calc(100% - 14px) 1.45rem, calc(100% - 9px) 1.45rem; } }
#spa-quiz .btn--sm { padding: .7rem 1.2rem; font-size: 0.72rem; }
@media (max-width: 900px) { #spa-quiz .btn--sm { min-height: 44px; font-size: 0.75rem; padding-block: .8rem; } }

/* Containers for components whose CSS is dropped (Elementor's widgets own
   them) have no ported display rule to re-assert, so they keep Elementor's
   own value rather than the block default. GENERATED from DROP_ROOTS. */
body .e-con.btn, body .e-con.consent, body .e-con.field, body .e-con.finder-facets, body .e-con.form-grid, body .e-con.form-row, body .e-con.form-status, body .e-con.nav, body .e-con.nav-toggle, body .e-con.skip-link { display: var(--display, flex); }
