/* Denison Hearing — site stylesheet.
   Values mirror the original Themeco Pro/Cornerstone design. Almost everything is in em/rem so the
   fluid root size (15px below 500px wide, 18px from 1000px) scales the whole layout like the original.
   Breakpoints (same as the original theme): xs <480, sm 480–766, md 767–978, lg 979–1199, xl ≥1200.

   Sections: 1 fonts · 2 tokens & base · 3 utilities · 4 header · 5 menus · 6 off-canvas · 7 footer
             8 components (rows, buttons, cards) · 9 page sections (see comments there) */

/* 1. Fonts ------------------------------------------------------------------------------------------ */
@font-face { font-family: "mundo-sans-std-black"; src: url(/fonts/mundo-sans-std-black.woff) format("woff"); font-weight: 400; font-style: normal; font-display: auto; }
@font-face { font-family: "Open Sans"; src: url(/fonts/open-sans.woff2) format("woff2"); font-weight: 300 800; font-style: normal; font-display: auto; }
@font-face { font-family: "Open Sans"; src: url(/fonts/open-sans-italic.woff2) format("woff2"); font-weight: 300 800; font-style: italic; font-display: auto; }
@font-face { font-family: "FontAwesomeBrands"; src: url(/fonts/fa-brands-400.woff2) format("woff2"); font-weight: normal; font-display: block; }
@font-face { font-family: "FontAwesomeRegular"; src: url(/fonts/fa-regular-400.woff2) format("woff2"); font-weight: 400; font-display: block; }
@font-face { font-family: "FontAwesome"; src: url(/fonts/fa-solid-900.woff2) format("woff2"); font-weight: 900; font-display: block; }

/* 2. Tokens & base -------------------------------------------------------------------------------- */
:root {
  --blue: #3696E5;
  --ink: #3D3C38;
  --gray-bar: #F3F3F3;
  --radius: 0.35em;
  --shadow: 0 0.15em 0.65em 0 rgba(0, 0, 0, 0.1);
  --font-head: "mundo-sans-std-black", sans-serif;
  --font-body: Tahoma, Geneva, Verdana, sans-serif;
  --font-open: "Open Sans", sans-serif;
}
html { font-size: 15px; -webkit-text-size-adjust: 100%; overflow-x: hidden; }
@media (min-width: 500px) { html { font-size: calc(15px + (18 - 15) * ((100vw - 500px) / (1000 - 500))); } }
@media (min-width: 1000px) { html { font-size: 18px; } }
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; overflow-x: hidden; font-family: var(--font-body); font-weight: 400; line-height: 1.8; color: #000; background: #fff; }
a { color: var(--blue); text-decoration: none; }
a:hover { color: rgba(28, 92, 156, 0.5); }
img { max-width: 100%; height: auto; vertical-align: middle; border: 0; }
p { margin: 0 0 2.15em; }
b, strong { font-weight: 700; }
ul, ol { padding: 0; margin: 0 0 2.15em 1.655em; }
ul ul, ul ol, ol ol, ol ul { margin-bottom: 0; }
h1, h2, h3, h4, h5, h6 { margin: 1.25em 0 0.2em; font-family: var(--font-head); font-weight: 400; text-transform: uppercase; color: var(--blue); text-rendering: optimizelegibility; }
h1 { margin-top: 1em; font-size: 400%; line-height: 1.1; }
h2 { font-size: 285.7%; line-height: 1.2; }
h3 { font-size: 228.5%; line-height: 1.3; }
h4, h5, h6 { margin-top: 1.75em; margin-bottom: 0.5em; line-height: 1.4; }
h4 { font-size: 171.4%; }
h5 { font-size: 150%; }
h6 { font-size: 100%; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; }
iframe { border: 0; border-radius: 0.35em; }
.page-home iframe { border-radius: 10px; } /* the original homepage alone rounded iframes by 10px */
main { display: block; font-size: 1.1rem; }

/* Font Awesome glyphs: <i class="fa-b|fa-o|fa-s" data-icon="&#xf39e;"> (b = brands, o = regular, s = solid) */
.fa-b, .fa-o, .fa-s { display: inline-flex; font-style: normal; font-weight: 400; text-decoration: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; }
.fa-b::before, .fa-o::before, .fa-s::before { content: attr(data-icon); line-height: 1; }
.fa-b { font-family: "FontAwesomeBrands"; }
.fa-o { font-family: "FontAwesomeRegular"; }
.fa-s { font-family: "FontAwesome"; font-weight: 900; }

/* 3. Utilities ------------------------------------------------------------------------------------ */
.sr-only { position: absolute !important; top: 0; left: 0; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; top: 0; left: 0; z-index: 100000; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { width: auto; height: auto; margin: 0; padding: 0.5em 1em; clip: auto; background: #fff; }
@media (max-width: 978px) { .lg-up { display: none !important; } }
@media (min-width: 979px) { .lg-down { display: none !important; } }

/* Hidden text that keeps its natural position (used where the original did not pin it to the corner). */
.sr-only.static { top: auto; left: auto; }

/* 4. Header ---------------------------------------------------------------------------------------- */
.site-header { position: relative; z-index: 9999; }
.bar { position: relative; display: flex; justify-content: center; }
.bar-inner { display: flex; width: calc(100% - 2em); max-width: 1200px; }

/* 4a. Top bar: social buttons + book appointment */
.bar-top { padding: 1em 0; background: var(--blue); }
.bar-top .bar-inner { justify-content: space-between; align-items: center; }
@media (max-width: 978px) { .bar-top .bar-inner { justify-content: center; } }
.social-top { display: flex; justify-content: center; align-items: center; }
@media (max-width: 978px) { .social-top { flex-grow: 1; } }
.social-btn { position: relative; display: flex; justify-content: center; align-items: center; min-width: 2.75em; min-height: 2em; margin: 0 0.25em; padding: 0.35em; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); overflow: hidden; color: var(--blue); }
.social-btn .fa-b { margin: 5px; font-size: 1.5em; line-height: 1; }
.social-btn:hover { background: rgba(255, 255, 255, 0.5); box-shadow: none; color: #fff; }
.btn-header-book { flex: 0 0 auto; width: max-content; display: flex; flex-direction: row-reverse; justify-content: center; align-items: center; flex-wrap: wrap; font-size: 1.05em; line-height: 1.8; padding: 0.5em 1em; border-radius: var(--radius); background: #fff; color: var(--blue); }
.btn-header-book .btn-text { text-align: center; margin: 5px; font-size: 0.9em; font-weight: 600; line-height: 1; letter-spacing: 0.05em; margin-right: calc(5px - 0.05em); text-transform: uppercase; }
.btn-header-book .btn-icon { margin: 5px; font-size: 1.25em; line-height: 1; }
.btn-header-book:hover { background: var(--ink); color: #fff; }

/* 4b. Brand bar: mountains background, logo, contact cards */
.bar-brand { padding: 1em 0; background: url(/wp-content/uploads/2023/03/Mountains.webp) 50% 50% / cover; }
.bar-brand::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.13); }
.bar-brand .bar-inner { position: relative; flex-wrap: wrap; justify-content: center; align-items: center; align-content: center; }
@media (max-width: 978px) { .bar-brand .bar-inner { flex-direction: column; } }
@media (max-width: 479px) { .bar-brand .bar-inner { align-items: flex-start; align-content: flex-start; } }
.brand-logo-wrap { display: flex; justify-content: space-between; align-items: center; flex: 0 1 auto; }
@media (max-width: 978px) { .brand-logo-wrap { justify-content: center; text-align: center; } }
.brand-logo { display: block; max-width: 325px; margin-right: 2em; border: 6px solid #606060; border-radius: 0.5em; background: #fff; box-shadow: var(--shadow); line-height: 1; }
@media (max-width: 1199px) { .brand-logo { max-width: 350px; margin-right: 0; } }
.brand-logo img { display: block; border-radius: 0.5em; }
.contact-cards { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; align-content: center; flex: 1 0 auto; font-size: 0.95em; text-align: right; }
@media (max-width: 1199px) { .contact-cards { justify-content: center; } }
.contact-card { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; max-width: 225px; padding: 0.25em; border-radius: var(--radius); background: rgba(255, 255, 255, 0.9); overflow: hidden; }
.contact-card-wide { max-width: 300px; }
@media (max-width: 1199px) { .contact-card { margin: 0.5em; } }
.contact-card .contact-text, .oc-card .contact-text { display: block; margin: 5px; }
.contact-card .contact-label { display: block; margin: 0 -0.1em 0.35em 0; font-size: 0.9em; font-weight: 700; line-height: 1.3; letter-spacing: 0.1em; text-align: center; text-transform: uppercase; color: var(--blue); }
.contact-card .contact-value { display: block; font-size: 0.85em; font-weight: 700; line-height: 1; text-align: center; color: var(--ink); }
.contact-card:hover .contact-value { color: var(--blue); }

/* 4c. Nav bar: inline menu (≥979px) or burger (≤978px) */
.bar-nav { background: var(--gray-bar); }
.bar-nav .bar-inner { flex-direction: column; justify-content: center; align-items: stretch; }
.menu { display: flex; justify-content: center; align-items: center; align-self: stretch; margin: 0; padding: 0; list-style: none; font-size: 1.1em; line-height: 1.8; }
.menu > li { position: relative; display: flex; justify-content: center; align-items: center; flex: 1 0 auto; }
.menu-link { text-align: start; display: flex; justify-content: center; align-items: center; flex: 1 0 auto; height: 75px; padding: 0.5em 1em; overflow: hidden; color: var(--ink); }
.menu-link span { display: block; margin: 5px; font-size: 0.8em; font-weight: 700; line-height: 1; letter-spacing: 0.02em; margin-right: calc(5px - 0.02em); text-transform: uppercase; }
.menu-link:hover, .has-dropdown:hover > .menu-link, .has-dropdown:focus-within > .menu-link { color: var(--blue); }
.menu-toggle { display: flex; justify-content: center; align-items: center; height: 65px; width: 100%; color: #000; }
.menu-toggle:hover { color: var(--blue); }
.burger { position: relative; display: block; width: 10em; margin: 3em 0; font-size: 3px; height: 1em; }
.burger span { position: absolute; left: 0; right: 0; top: 0; height: 1em; background: currentColor; }
.burger span:first-child { transform: translate3d(0, -3em, 0); }
.burger span:last-child { transform: translate3d(0, 3em, 0); }

/* 5. Dropdowns (desktop) -------------------------------------------------------------------------- */
.dropdown { position: absolute; top: 100%; left: 0; z-index: 9999; display: none; width: auto; min-width: 14em; margin: 0; padding: 0; list-style: none; font-size: 16px; line-height: 1.8; border-radius: var(--radius); background: var(--blue); box-shadow: 0 0.15em 0.65em 0 rgba(0, 0, 0, 0.18); }
.has-dropdown:hover > .dropdown, .has-dropdown:focus-within > .dropdown, .has-dropdown.is-open > .dropdown { display: block; }
.dropdown li { display: block; }
.dropdown a { display: flex; align-items: center; padding: 4px; border-radius: var(--radius); color: #fff; }
.dropdown a span { margin: 5px auto 5px 5px; font-family: var(--font-open); font-size: 0.9em; font-weight: 700; line-height: 1; letter-spacing: 0.05em; text-transform: uppercase; }
.dropdown a:hover { background: #fff; color: var(--ink); }

/* 6. Off-canvas menu (≤978px) --------------------------------------------------------------------- */
.offcanvas { position: fixed; inset: 0; z-index: 99999998; overflow: hidden; font-size: 16px; line-height: 1.8; }
.offcanvas[hidden] { display: none; }
.offcanvas-bg { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.75); }
.offcanvas-panel { position: absolute; top: 0; right: 0; bottom: 0; display: block; width: 100%; max-width: 24em; padding: 2em; background: #fff; box-shadow: 0 0 2em 0 rgba(0, 0, 0, 0.25); overflow: auto; }
.offcanvas-close { position: absolute; top: 0; right: 0; z-index: 3; width: 2em; height: 2em; font-size: 1em; line-height: 1; color: rgba(0, 0, 0, 0.5); }
.offcanvas-close:hover, .offcanvas-close:focus-visible { color: #000; }
.offcanvas-close svg { display: block; width: 1em; height: 1em; margin: auto; fill: currentColor; }
.offcanvas-logo { display: block; width: fit-content; max-width: 400px; margin: 0 0 1em; border: 6px solid #606060; border-radius: 0.5em; background: #fff; box-shadow: var(--shadow); line-height: 1; }
@media (min-width: 767px) and (max-width: 1199px) { .offcanvas-logo { max-width: 350px; } }
@media (max-width: 766px) { .offcanvas-logo { max-width: none; } }
.offcanvas-logo img { display: block; border-radius: 0.5em; }
.layers { position: relative; flex: 1 0 auto; min-height: 300px; }
.layer { position: absolute; top: 0; left: 0; right: 0; margin: 0; padding: 0; list-style: none; overflow: hidden; pointer-events: none; }
.layer.is-current { position: relative; pointer-events: auto; }
.layer .layer-link { opacity: 0; transform: translate(25px, 0); transition: opacity 0.5s, transform 0.5s; }
.layer.is-current .layer-link { opacity: 1; transform: none; }
.layer-link { display: flex; align-items: flex-start; width: 100%; padding: calc(0.5em + 5px); border-radius: 0.25em; font-size: 1em; line-height: 1; text-align: left; color: #000; }
.layer-link:hover { color: var(--blue); }
.layer-arrow { margin: 0 0 0 auto; padding-left: 10px; font-size: 1em; line-height: 1; color: #000; }
.offcanvas-contact { display: flex; flex-wrap: wrap; justify-content: flex-end; flex: 1 0 auto; align-content: flex-start; gap: 10px; margin-top: 10px; text-align: right; }
.oc-card { display: flex; flex-direction: column; justify-content: center; align-items: center; flex: 0 1 100%; padding: 0.25em 1em; border-radius: var(--radius); background: rgba(224, 224, 224, 0.5); }
.oc-card:hover { background: var(--blue); }
.oc-card .contact-label { display: block; margin: 0 -0.15em 0.35em 0; font-size: 0.9em; font-weight: 700; line-height: 1; letter-spacing: 0.15em; text-align: center; text-transform: uppercase; color: var(--blue); }
.oc-card:hover .contact-label { color: #fff; }
.oc-card .contact-value { display: block; font-size: 0.9em; font-weight: 600; line-height: 1; text-align: center; color: var(--ink); }
.oc-book { display: flex; flex-direction: row-reverse; flex-wrap: wrap; justify-content: center; align-items: center; flex: 0 1 100%; padding: 0.5em 0.85em; border-radius: var(--radius); background: var(--blue); color: #fff; }
@media (max-width: 479px) { .oc-book { flex-direction: column; } }
.oc-book .fa-o { margin: 5px; font-size: 1.25em; line-height: 1; }
.oc-book span { margin: 5px; margin-right: calc(5px - 0.15em); font-size: 0.9em; font-weight: 600; line-height: 1; letter-spacing: 0.15em; text-transform: uppercase; }
.oc-book:hover { background: var(--ink); color: var(--blue); }

/* 7. Footer --------------------------------------------------------------------------------------- */
.footer-main { display: flex; justify-content: center; padding: 0 0 1em; background: #fff; }
.footer-inner { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; width: 95%; max-width: 1200px; }
.footer-map { position: relative; width: 100%; padding-bottom: 350px; font-size: 16px; border-radius: 0.35em; background: #fff; }
.footer-map iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.footer-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; width: 100%; margin-top: -3em; }
.footer-social { position: relative; display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; flex: 0 1 100%; max-width: calc(0.5 * (100% + 1rem)); padding: 1em; border-radius: var(--radius) var(--radius) 0 0; background: #fff; }
@media (min-width: 480px) and (max-width: 766px) { .footer-social { padding-left: 0.5em; padding-right: 0.5em; } }
@media (max-width: 479px) { .footer-social { max-width: calc(0.6 * (100% + 1rem)); padding: 0.5em 0 1em; } }
.footer-social-link { position: relative; display: flex; justify-content: center; align-items: center; height: 2.5em; margin: 0 5px; }
.footer-social-link .fa-b { margin: 5px; font-size: 1.2em; line-height: 1; color: var(--ink); }
.footer-social-link.footer-social-lg .fa-b { font-size: 1.4em; }
.footer-social-link:hover .fa-b { color: var(--blue); }
.footer-info { display: flex; flex-wrap: wrap; row-gap: 1rem; flex: 0 1 100%; text-align: center; }
@media (max-width: 1199px) { .footer-info { font-size: 0.9em; } }
.info-item { position: relative; display: block; flex: 1 1 25%; font-family: var(--font-head); text-transform: uppercase; color: var(--blue); }
@media (max-width: 978px) { .info-item { flex-basis: 100%; } }
.info-label { display: block; font-size: 1.125em; line-height: 1; letter-spacing: 0.15em; margin-right: -0.15em; }
.info-value { display: block; margin-top: 0.1em; font-family: var(--font-open); font-size: 1em; font-weight: 400; line-height: 1.4; text-transform: none; color: var(--ink); }

.footer-bottom { display: flex; justify-content: center; padding: 1em 0; font-size: 16px; line-height: 1.8; background: var(--ink); }
.footer-bottom-inner { display: flex; flex-direction: column; align-items: center; width: 88%; max-width: 1200px; }
.service-area { width: 100%; margin: 0; font-family: var(--font-open); font-size: 0.85em; line-height: 1.4; text-align: center; text-transform: uppercase; color: #fff; }
.footer-credits { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; margin-top: 1em; }
.copyright { margin: 0.4em 2em 0 0; font-family: var(--font-open); font-size: 0.9em; font-weight: 300; line-height: 1; text-transform: uppercase; color: #fff; }
@media (max-width: 479px) { .copyright { margin-right: 0; } }

/* 8. Components ----------------------------------------------------------------------------------- */
/* Page sections sit inside <main> (font-size 1.1rem, like the original .entry-content).
   Most original sections shrink their text to 0.9em below 979px: add .section-scale for that. */
.section { position: relative; }
@media (max-width: 978px) { .section-scale { font-size: 0.9em; } }
.container { width: 95%; max-width: 1200px; margin: 0 auto; }

/* Rows: flex rows with a gap. Columns: .col-50 (half) .col-100 (full) .col-25 etc.
   .stack-lg/.stack-md/.stack-sm/.stack-xs make every column full width at ≤1199/≤978/≤766/≤479. */
.row { --gap: 1rem; display: flex; flex-wrap: wrap; gap: var(--gap); }
.row.reverse { flex-direction: row-reverse; }
.row > * { flex: 0 1 100%; max-width: 100%; min-width: 0; }
.row > .col-50 { flex-basis: calc(50% - var(--gap) / 2); }
.row > .col-25 { flex-basis: calc(25% - var(--gap) * 3 / 4); }
.row > .col-33 { flex-basis: calc(33.333% - var(--gap) * 2 / 3); }
.row > .col-75 { flex-basis: calc(75% - var(--gap) / 4); }
@media (max-width: 1199px) { .stack-lg > * { flex-basis: 100% !important; } }
@media (max-width: 978px) { .stack-md > * { flex-basis: 100% !important; } }
@media (max-width: 766px) { .stack-sm > * { flex-basis: 100% !important; } }
@media (max-width: 479px) { .stack-xs > * { flex-basis: 100% !important; } }
.col-flex { display: flex; flex-direction: column; flex-wrap: wrap; justify-content: center; }
.col-center { align-items: center; align-content: center; }
.col-start { align-items: flex-start; align-content: flex-start; }

/* Image wrapper (like the original .x-image): inline-block that does not add a text strut below. */
.img { display: inline-block; line-height: 1; vertical-align: middle; }
.img img { display: block; }

/* Headlines: Mundo, uppercase, blue. Sizes are set per use with font-size (em of the section). */
.headline { margin: 0; font-family: var(--font-head); font-weight: 400; line-height: 1.2; text-transform: uppercase; color: var(--blue); }
.headline.bold { font-weight: 700; }
.text-open { font-family: var(--font-open); line-height: 1.6; }
.text-open > :first-child { margin-top: 0; }
.text-open > :last-child { margin-bottom: 0; }

/* Photo card: a column whose background is a photo, with buttons pinned to the bottom.
   Set the photo with style="--photo: url(...); --pos: 50% 40%". */
.photo-card { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; align-content: flex-end; min-height: 500px; padding: 1vh 1vh 3vh; font-size: 0.9em; border-radius: var(--radius); background: var(--photo) var(--pos, 50% 50%) / cover no-repeat; }
@media (max-width: 479px) { .photo-card.pad-xs { padding: 1vh 1em 1em; } }

/* Button pair (Learn More + Book Appointment): 45.63% / 54.37%, stacked below 1200px. */
.btn-pair { --gap: 10px; display: flex; flex-wrap: wrap; gap: var(--gap); width: 100%; }
.btn-pair > :nth-child(odd) { flex: 0 1 calc(45.63% - var(--gap) / 2); }
.btn-pair > :nth-child(even) { flex: 0 1 calc(54.37% - var(--gap) / 2); }
@media (max-width: 1199px) { .btn-pair { --gap: 5px; } .btn-pair > * { flex-basis: 100% !important; } }

/* Buttons: text + long-arrow icon on the right (icon on top below 480px). */
.btn { display: flex; flex-direction: row-reverse; flex-wrap: wrap; justify-content: center; align-items: center; align-content: center; width: 100%; padding: 0.5em 0.85em; border-radius: var(--radius); line-height: 1.8; }
.btn .fa-o { margin: 5px; font-size: 1.25em; line-height: 1; }
.btn .btn-label { margin: 5px; margin-right: calc(5px - 0.15em); font-size: 0.9em; font-weight: 600; line-height: 1; letter-spacing: 0.15em; text-align: center; text-transform: uppercase; }
@media (max-width: 479px) { .btn { flex-direction: column; } }
.btn-light { background: rgba(255, 255, 255, 0.9); color: var(--blue); }
.btn-light:hover { background: var(--blue); color: #fff; }
/* The label and icon carry the white, like the original (the anchor itself keeps the link colour). */
.btn-blue { background: var(--blue); color: var(--blue); }
.btn-blue .btn-label, .btn-blue .fa-o { color: #fff; }
.btn-blue:hover { background: var(--ink); }
.btn-blue:hover .fa-o { color: var(--blue); }
.btn-inline { display: inline-flex; width: auto; }

/* 9. Page sections -------------------------------------------------------------------------------- */

/* Home (/): intro, treatment, reviews */
.home-intro { padding: 45px 0 65px; }
@media (max-width: 978px) { .home-intro { padding-top: 25px; } }
.home-intro .intro-title-wrap { margin-bottom: 1em; }
.home-intro .intro-title-sm-wrap { padding-bottom: 1em; }
.home-intro .intro-title { font-size: 2.5em; font-weight: 700; text-align: center; }
.home-intro .intro-title-sm { font-size: 2.5em; text-align: center; }
@media (max-width: 766px) { .home-intro .intro-title-sm { font-size: 2em; } }
.award-main { display: block; width: 375px; padding: 10px 0; font-size: 1.75em; line-height: 1; }
.award-main img { display: block; width: 100%; }
.awards { --gap: 20px; width: 95%; max-width: 1200px; margin: 0 auto; justify-content: center; align-items: center; text-align: center; }
.awards > * { flex-basis: calc(50% - 10px); }
@media (max-width: 479px) { .awards > * { flex-basis: 100%; } }
.awards .img { padding: 10px 0; font-size: 1.75em; }
.home-treatment { padding: 10px 0 5em; background: rgba(240, 240, 240, 0.78); }
.home-treatment .row { --gap: 2rem; }
.home-treatment .treatment-title { font-size: 2em; font-weight: 700; }
/* "What our patients say": second row of the intro section (reviews carousel partial + link to /testimonials/). */
.home-reviews-row { display: flex; flex-direction: column; gap: 20px; }
.home-reviews-title-wrap { margin: 55px 0 0 20px; }
.home-reviews-title { font-size: 2em; font-weight: 700; line-height: 1.2; text-align: center; }
.home-reviews-body { text-align: center; }
.reviews-cq { container-type: inline-size; } /* the carousel's layout follows its own width (container queries) */
.home-reviews-btn { margin: 0 auto 0.5em; }
@media (max-width: 479px) { .home-reviews-btn { flex-direction: column; } }

/* Blog post (/blog/<slug>/): image column + title, date, category pills, content box, author box, tag pills */
.post-section { padding: 65px 0; font-size: 1rem; }
.post-section .row { --gap: 2rem; }
.post-thumb { max-width: 350px; border-radius: 10px; box-shadow: 0 0.15em 0.65em 0 rgba(0, 0, 0, 0.12); }
.post-thumb img { border-radius: 10px; }
.post-title { font-size: 2em; }
.post-date { font-family: var(--font-open); font-weight: 700; line-height: 1.6; text-transform: uppercase; }
.pills { display: flex; flex-wrap: wrap; gap: 0.8em 0.64em; margin: 1em 0 0; padding: 0; list-style: none; font-size: 0.8em; }
.pills.pills-tags { margin-top: 2em; }
.pill { display: inline-flex; justify-content: center; align-items: baseline; padding: 0.8em 1.25em; border-radius: 100em; font-weight: 700; line-height: 1.45; text-transform: capitalize; color: var(--ink); }
.pill-outline { border: 1px solid #E0E0E0; background: #fff; }
.pill-outline:hover { border-color: var(--blue); background: var(--blue); color: #fff; }
.pill-gray { background: var(--gray-bar); }
.pill-gray:hover { background: rgba(0, 0, 0, 0.11); color: var(--blue); }
.post-box { margin-top: 1em; padding: 1em 1em 0; border-radius: 10px; background: rgba(0, 0, 0, 0.03); }
.post-box-inner { padding: 0 0 2em; }
.author-box { margin-top: 2em; transition: transform 500ms cubic-bezier(0.68, -0.55, 0.265, 1.55); }
.author-box:hover { transform: translate(0, -4px); }
.author-card { display: flex; align-items: flex-start; margin-left: 26px; padding: 1.953em 1.953em 1.953em 0; border-radius: 1rem; background: rgba(0, 0, 0, 0.06); transition: background-color 500ms; }
.author-card:hover { background: rgba(0, 0, 0, 0.11); }
.author-photo { flex: 0 0 auto; width: 100px; height: 100px; margin: 0 1.25em 0 -26px; overflow: hidden; border: 2px solid #fff; border-radius: 99em; box-shadow: 0 0.55em 1.15em 0 rgba(0, 0, 0, 0.16); transform-origin: 0% 100%; transition: transform 500ms cubic-bezier(0.68, -0.55, 0.265, 1.55); }
.author-box:hover .author-photo { transform: rotateZ(-7deg); }
.author-photo img { display: block; }
.author-name { margin: 0; font-family: var(--font-head); font-size: 1.25em; font-weight: 700; line-height: 1.2; text-transform: none; color: #000; }
.author-bio { margin: 0.409em 0 0; font-family: var(--font-head); line-height: 1.6; color: rgba(0, 0, 0, 0.66); }
@media (max-width: 766px) { .author-card { flex-direction: column; margin-left: 0; padding-left: 2em; } .author-photo { margin: 0 0 1em; } }

/* Post body (content migrated from WordPress blocks). Base size 1.1rem like the original .entry-content. */
.post-body { display: flow-root; font-size: 1.1rem; } /* flow-root = the original clearfix: keeps floats and a trailing caption margin inside */
.post-body.post-body > :first-child { margin-top: 0; } /* doubled class: must beat the block rules below regardless of order */
.post-body.post-body > :last-child { margin-bottom: 0; }
.post-body p, .post-body td { line-height: 1.4em; } /* em (not a ratio): inline children like <code> inherit the pixel value, as in the original */
.post-body th { line-height: 1.3; }
.post-body h2 { font-size: 1.5em; line-height: 1.2; }
.post-body h3 { font-size: 1.35em; line-height: 1.3; }
.post-body h4 { font-size: 171.4%; line-height: 1.4; }
.post-body code { padding: 0.243em 0.386em; font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Courier New", monospace; font-size: 0.875em; color: #333; background-color: #e4e4e4; }
.post-body figure { margin: 0 0 1em; }
.post-body figcaption { margin: 0.5em 0 1em; font-size: 13px; text-align: center; color: #555; }
.post-body .wp-block-image img { box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom; }
.post-body .wp-block-image.aligncenter, .post-body .has-text-align-center { text-align: center; }
.post-body .wp-block-image .aligncenter, .post-body .wp-block-image .alignleft, .post-body .wp-block-image .alignright, .post-body .wp-block-image.aligncenter, .post-body .wp-block-image.alignleft, .post-body .wp-block-image.alignright { display: table; }
.post-body .wp-block-image .aligncenter > figcaption, .post-body .wp-block-image .alignleft > figcaption, .post-body .wp-block-image.aligncenter > figcaption, .post-body .wp-block-image.alignleft > figcaption { display: table-caption; caption-side: bottom; }
.post-body .wp-block-image .alignleft { float: left; margin: 0.5em 1em 0.5em 0; }
.post-body .wp-block-image .aligncenter { margin-left: auto; margin-right: auto; }
.post-body .wp-block-image figure { margin: 0; }
.post-body .alignleft { float: left; margin: 0.35em 2.15em 0.35em 0; }
.post-body .aligncenter { clear: both; display: block; margin: 0 auto 2.15em; }
.post-body hr, .post-body .wp-block-separator { height: 0; margin: 2.15em auto; border: none; border-bottom: 2px solid; }
.post-body .wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width: 100px; }
.post-body .wp-block-embed { margin: 0 0 1em; overflow-wrap: break-word; }
.post-body .wp-block-embed__wrapper { position: relative; }
/* Theme video rules, verbatim in effect: the figure itself is a 16:9 box that clips; 4:3 embeds get a taller inner box. */
.post-body .x-resp-embed, .post-body .is-type-video { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.post-body .wp-embed-aspect-5-3 .x-resp-embed { padding-bottom: 60%; }
.post-body .wp-embed-aspect-4-4 .x-resp-embed { padding-bottom: 80%; }
.post-body .wp-embed-aspect-4-3 .x-resp-embed { padding-bottom: 75%; }
.post-body .wp-embed-aspect-3-2 .x-resp-embed { padding-bottom: 66.67%; }
.post-body .x-resp-embed iframe { position: absolute; top: 0; left: 0; display: block; width: 100%; height: 100%; margin: 0; }
.post-body .wp-block-table { margin: 0 0 1em; overflow-x: auto; }
.post-body .wp-block-table table { border-collapse: collapse; width: 100%; }
.post-body .wp-block-table td, .post-body .wp-block-table th { border: 1px solid; padding: 0.5em; word-break: normal; }

/* Blog listings (/blogs-about-hearing-loss/, /blog/category/*, /blog/tag/*, and their /page/N/): hero, cards, pagination, CTA.
   Deliberate improvement over the original: below 767px the original squeezed 3 cards into the row
   (clipped titles); here cards stack full width (see harness/accepted.json). */
/* Page hero (title on the misty-mountain photo) — used by content pages and blog listings. */
@media (max-width: 978px) { .page-hero { padding-top: 2em; font-size: 0.9em; } }
.page-hero .container { border-radius: var(--radius); background: linear-gradient(rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.04)), url(/wp-content/uploads/2022/06/bigstock-Big-Snowy-Mountain-In-The-Fog-454061867-copy.jpg) 50% 50% / cover no-repeat; }
.page-hero-inner { display: flex; flex-direction: column; flex-wrap: wrap; justify-content: center; align-items: center; align-content: center; min-height: 30vh; }
.page-title-wrap { margin-top: 0.5em; }
@media (max-width: 479px) { .page-title-wrap { font-size: 0.9em; } }
.page-title { font-size: 2em; line-height: 1; letter-spacing: 0.15em; margin-right: -0.15em; text-align: center; color: #fff; }
.listing { padding: 3em 0; overflow: hidden; font-size: 1rem; }
.cards { --gap: 1.5rem; row-gap: 2rem; }
.cards > .card { flex-basis: calc(33.33% - var(--gap) * 2 / 3); }
@media (max-width: 766px) { .cards > .card { flex-basis: 100%; } }
.card { position: relative; isolation: isolate; display: flex; flex-direction: column; flex-wrap: wrap; justify-content: flex-start; align-items: stretch; align-content: stretch; overflow: hidden; border: 1px solid var(--gray-bar); border-radius: 10px; background: #fff; transition: transform 500ms; }
.card:hover { transform: translate(0, -5px); }
.card-media { position: relative; z-index: -1; flex: 0 0 auto; min-height: 230px; max-height: 280px; margin: 0; padding: 0 0 50%; background: #fff; }
.card-media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.card-body { position: relative; z-index: 1; display: flex; flex-direction: column; flex-wrap: wrap; flex-grow: 1; justify-content: flex-start; align-items: stretch; align-content: stretch; padding: 2rem; }
.card-date { margin: 0 0 0.64em; font-size: 1rem; line-height: 1; letter-spacing: 0.085em; text-transform: uppercase; color: #606060; }
.card-title-wrap { max-width: 18em; margin: 0 0 2rem; font-size: 1.5625rem; }
.card-title { margin: 0; font-family: var(--font-head); font-size: 1em; font-weight: 300; line-height: 1.1; text-transform: none; color: var(--ink); }
.card-more { display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: baseline; margin-top: auto; font-family: var(--font-head); text-transform: uppercase; color: var(--ink); }
.card-more .fa-o { font-size: 1em; line-height: 1; }
.card-more span { flex: 1 1 auto; line-height: 0.8; letter-spacing: 0.085em; margin-right: -0.085em; }
.card:hover .card-more .fa-o { color: var(--blue); }
.pagination { display: flex; align-items: center; margin-top: 65px; }
.pagination-inner { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center; flex: 1 1 0%; margin: 0 -6px -6px 0; }
.page-numbers { text-align: center; display: flex; justify-content: center; align-items: center; min-width: 3em; min-height: 3em; margin: 0 6px 6px 0; border-radius: 100em; line-height: 1; color: var(--ink); background: var(--gray-bar); }
a.page-numbers:hover { color: #fff; background: var(--blue); }
.page-numbers.current { color: var(--blue); background: #fff; box-shadow: 0 0.65em 1.25em 0 rgba(0, 0, 0, 0.18); }
.page-numbers.dots { color: var(--gray-bar); }
/* "Have questions? Reach out today!" call-to-action (partial cta.html) */
.cta-inner { padding-bottom: 2em; }
.cta .headline { font-size: 1.8em; }
.cta .btn { width: auto; margin-top: 1em; }
@media (max-width: 978px) { .cta { font-size: 0.9em; } }
@media (max-width: 479px) { .cta .btn { min-width: 100%; } }
/* Blog listings sit outside the original .entry-content, so their base size is 1rem, not 1.1rem. */
.blog-listing main { font-size: 1rem; }

/* 404 */
.notfound { padding: 65px 0; font-size: 1rem; }
.notfound-text { max-width: 690px; margin: 0 auto; text-align: center; }

/* Financing (/financing/): CareCredit locator in a bordered box */
.financing { padding: 3em 0; }
.financing-box { border: 1px solid #E0E0E0; border-radius: var(--radius); }
.financing iframe { width: 100%; max-width: 100%; border-radius: var(--radius); }

/* Hero with a button under the title (/contact-us/ and others) */
.hero-with-button { padding-bottom: 2em; }
.hero-btn { margin-top: 1em; }

/* Contact (/contact-us/): info row + JotForm */
.contact-main { padding-bottom: 2em; }
.contact-info { display: flex; flex-wrap: wrap; row-gap: 1rem; text-align: center; }
.contact-info .info-item { flex: 1 1 25%; }
@media (max-width: 978px) { .contact-info .info-item { flex-basis: 100%; } }
.contact-info .info-label { font-size: 1.125em; line-height: 1.5; letter-spacing: 0; margin-right: 0; }
.contact-info .info-label p { margin: 0; }
.contact-info .info-value { margin-top: 0.1em; font-size: 0.9em; }
.contact-form { margin-top: 2em; text-align: center; }
.form-title { font-size: 2em; color: var(--ink); }
@media (max-width: 479px) { .contact-form .form-title-wrap { font-size: 0.9em; } }
.form-embed { font-family: var(--font-open); font-size: 0.9em; font-weight: 300; line-height: 1.6; }
.form-embed iframe { max-width: 100%; border-radius: var(--radius); }

/* Book an appointment (/contact-us/book-an-appointment/): Calendly iframe */
.booking { padding-bottom: 2em; }
.booking-widget { min-width: 320px; height: 630px; line-height: 1.4; }
.booking-widget iframe { display: block; width: 100%; height: 100%; max-width: 100%; border-radius: var(--radius); }

/* Forms (/forms/): two download buttons */
.forms { padding: 3em 0 5em; }
.downloads { --gap: 2rem; row-gap: 0.25rem; justify-content: center; }
.download-btn { display: flex; flex-direction: column; flex-wrap: wrap; justify-content: center; align-items: center; align-content: center; min-width: 100%; margin-bottom: 0.5em; padding: 0.75em 0.85em; border-radius: var(--radius); background: #E0E0E0; line-height: 1.8; }
.download-btn:hover { background: var(--ink); }
.download-btn .fa-o { margin: 5px; font-size: 1.25em; line-height: 1; color: var(--blue); }
.download-text { display: block; margin: 5px; }
.download-title { display: block; margin-right: -0.15em; font-size: 0.9em; font-weight: 600; line-height: 1; letter-spacing: 0.15em; text-align: center; text-transform: uppercase; color: var(--blue); }
.download-sub { display: block; margin: 0.35em -0.1em 0 0; font-size: 0.75em; font-weight: 600; line-height: 1; letter-spacing: 0.1em; text-align: center; text-transform: uppercase; color: #000; }
.download-btn:hover .download-sub { color: rgba(255, 255, 255, 0.32); }

/* Accordion (<details class="acc-item" name="group">): one open at a time, caret rotates when open. */
.acc-item { display: flex; flex-direction: column; overflow: hidden; background: #fff; }
.acc-item + .acc-item { margin-top: 25px; }
.acc-header { display: flex; align-items: center; padding: 0 0 0 4px; font-weight: 600; line-height: 1.3; text-align: left; color: var(--ink); background: #fff; cursor: pointer; list-style: none; }
.acc-header::-webkit-details-marker { display: none; }
.acc-item[open] > .acc-header { color: var(--blue); }
.acc-indicator { display: flex; justify-content: center; align-items: center; line-height: 1; transition: transform 300ms; }
.acc-item[open] .acc-indicator { transform: rotate(90deg); }
.acc-title { display: block; flex: 1 0 0%; margin-left: 0.5em; }
.acc-content { position: relative; z-index: 1; padding: 5px 20px 20px; font-family: var(--font-open); line-height: 1.6; }
.acc-content > :last-child { margin-bottom: 0; }

/* FAQ (/frequently-asked-questions/) */
.faq { padding: 3em 0; }

/* Section intro heading pulled up by 1em (Hearing Aid Brands and similar) */
.intro-head { margin: -1em 0 1em; text-align: left; }
.intro-head .headline { font-size: 1.8em; }
@media (max-width: 1199px) { .brands-intro .intro-head .headline { font-size: 1.6em; } }

/* Hearing Aid Brands (/hearing-aid-brands/) */
.brands-intro { padding: 3em 0 2em; text-align: center; }
.brands-intro .text-open { text-align: left; }
.brands { padding-bottom: 3em; }
.brands-panel { display: flex; flex-direction: column; flex-wrap: wrap; justify-content: center; align-items: center; align-content: center; padding: 2em 1em; border-radius: 10px; background: var(--gray-bar); }
.brand-grid { width: 100%; }
.brand-card { padding: 0 1em 1em; border-radius: 10px; background: #fff; text-align: center; }
.brand-img { max-width: 250px; }
.brand-img-sm { max-width: 200px; }
.brand-img.pad-y { padding: 1em 0; }
.brand-img.pad-logo { padding: 2em 1em 1.5em; }
.brand-name { font-size: 0.9em; color: var(--ink); }

/* Videos (/how-to-videos/): YouTube playlists as thumbnail grids (was the YotuWP plugin) + pop-up player */
.videos { padding: 3em 0; }
.playlists { display: flex; flex-direction: column; gap: 65px; }
.playlist-tinted { padding: 25px; border-radius: var(--radius); background: rgba(96, 96, 96, 0.1); }
.playlist-title { margin: 0; font-size: 171.4%; line-height: 1.4; }
.playlist-body { margin-top: -2em; padding-top: 30px; font-family: var(--font-open); line-height: 1.6; }
.video-grid { display: flex; flex-wrap: wrap; width: 100%; margin: 0; padding: 20px 0 0; list-style: none; text-align: center; }
.video-grid li { width: 32.66%; margin: 0 1% 20px 0; padding: 0; text-align: left; }
.video-grid li:nth-child(3n) { margin-right: 0; }
@media (min-width: 480px) and (max-width: 1169px) { .video-grid li { width: 48%; margin-right: 4%; } .video-grid li:nth-child(3n) { margin-right: 4%; } .video-grid li:nth-child(2n) { margin-right: 0; } }
@media (max-width: 479px) { .video-grid li { width: 100%; margin-right: 0; } }
.video { position: relative; display: block; color: #767676; }
.video-thumb { position: relative; display: block; padding-bottom: 55.7%; overflow: hidden; }
.video-thumb img { position: absolute; top: 50%; left: 0; display: block; width: 100%; transform: translateY(-50%); }
.video-title { position: absolute; bottom: 0; left: 0; z-index: 10; max-width: 94%; margin: 11.75px; padding: 6px; overflow: hidden; border-radius: 2px; font-size: 13px; font-weight: 500; line-height: 12px; white-space: nowrap; text-overflow: ellipsis; color: #fff; background: rgba(0, 0, 0, 0.54); }
.video-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.8); }
.video-modal[hidden] { display: none; }
.video-modal-frame { width: min(90vw, 960px); aspect-ratio: 16 / 9; }
.video-modal-frame iframe { display: block; width: 100%; height: 100%; border-radius: 0; }
.video-modal-close { position: absolute; top: 20px; right: 20px; width: 40px; height: 40px; font-size: 36px; line-height: 1; color: #fff; }

/* Thank you (/thank-you/, blank layout) */
.thanks-top { background: #fff; }
.thanks-top .container { display: flex; align-items: center; text-align: left; }
.thanks { padding: 65px 0; background: #fff; }
.thanks-title-wrap { margin-bottom: 1em; }
.thanks-title { font-size: 3.5em; font-weight: 700; line-height: 1.4; text-align: center; text-transform: none; color: #000; }
.thanks-text { margin-bottom: 1em; font-size: 1.6em; line-height: 1.5; text-align: center; }
.thanks-text p { margin: 0; }
.thanks-col { max-width: 100%; }
@media (min-width: 767px) and (max-width: 978px) { .thanks-col { width: calc(0.6666 * (100% + 20px) - 20px); } }
@media (max-width: 766px) { .thanks-top .container { justify-content: center; text-align: center; } }
@media (min-width: 480px) and (max-width: 766px) { .thanks-title { font-size: 2.25em; } }
@media (max-width: 479px) { .thanks-title { font-size: 1.75em; } .thanks-text { font-size: 1.25em; } }
/* The booking page hero has no extra top padding on small screens (unlike other heroes). */
@media (max-width: 978px) { .page-hero.hero-no-pad { padding-top: 0; } }

/* Download pages (/download/<slug>/, from src/data/downloads.json): the original WordPress Download Manager layout */
.download-page { width: 95%; max-width: 1200px; margin: 35px auto; }
.download-entry .entry-header::after { content: ""; display: table; clear: both; }
.nav-articles { float: right; margin-left: 35px; }
.nav-articles a { display: block; width: 38px; height: 42px; border: 1px solid var(--blue); background: #fff; line-height: 42px; text-align: center; }
.nav-articles .fa-s { font-size: 1em; }
.entry-title { margin: 0; font-size: 200%; line-height: 1.1; }
@media (max-width: 479px) { .entry-title { font-size: 200%; } }
.p-meta { margin: 1em 0 0; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 0.75em; }
.p-meta > span:not(:last-child)::after { content: "/"; padding: 0 0.45em; }
.download-content { display: flex; flex-wrap: wrap; margin: 17.5px -15px 0; }
.download-col-info { flex: 0 0 41.667%; max-width: 100%; padding: 0 15px; }
.download-col-title { flex: 0 0 58.333%; max-width: 100%; padding: 0 15px; }
@media (max-width: 767px) { .download-col-info, .download-col-title { flex-basis: 100%; } }
.download-col-title h1 { margin: 0; font-size: 2.25rem; font-weight: 600; line-height: 1.3; }
.download-button-area { margin-bottom: 18px; }
.download-button { display: inline-flex; justify-content: center; align-items: center; min-height: 38px; padding: 9px 18px; border: 1px solid #4a8eff; border-radius: 4px; font-size: 0.875rem; font-weight: 500; line-height: 1; text-align: center; color: #fff; background: #4a8eff; }
.download-button:hover { color: #fff; background: #2f7bff; }
.download-facts { display: flex; flex-direction: column; margin: 0 0 9px 1.655em; padding: 0; list-style: none; border-radius: 8px; }
.download-facts li { display: flex; justify-content: space-between; align-items: center; padding: 13.5px 18px; border: 1px solid #e2e8f0; margin-top: -1px; background: #fff; color: #1e293b; }
.download-facts li:first-child { margin-top: 0; border-radius: 8px 8px 0 0; }
.download-facts li:last-child { border-radius: 0 0 8px 8px; }
.download-facts .badge { display: block; padding: 0.35em 0.65em; border-radius: 4px; font-size: 0.825rem; text-align: center; font-weight: 600; line-height: 1; white-space: nowrap; color: #fff; background: #4a8eff; }


/* WordPress gallery block (verbatim from WordPress core; used by one post: /blog/audiology-best-practices/) */
.blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 1em 1em 0;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-right:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-right:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-right:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-right:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-right:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-right:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-right:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-right:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-right:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-right:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{bottom:0;left:0;max-height:100%;position:absolute;right:0}.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{backdrop-filter:blur(3px);content:"";height:100%;-webkit-mask-image:linear-gradient(0deg,#000 20%,transparent);mask-image:linear-gradient(0deg,#000 20%,transparent);max-height:3em;pointer-events:none}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{box-sizing:border-box;color:#fff;font-size:13px;margin:0;overflow:auto;padding:1em;text-align:center;text-shadow:0 0 1.5px #000}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{height:12px;width:12px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{background-color:transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.8)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{scrollbar-color:hsla(0,0%,100%,.8) transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{will-change:transform}@media (hover:none){.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:hsla(0,0%,100%,.8) transparent}}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.4),transparent)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative;text-shadow:none}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border:before,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded:before{content:none}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center}
.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:hsla(0,0%,100%,.65)}
.wp-block-gallery-1{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}
body .is-layout-flex{display: flex;}
.is-layout-flex{flex-wrap: wrap;align-items: center;}
.is-layout-flex > :is(*, div){margin: 0;}
:where(.wp-block-gallery.is-layout-flex) { gap: var(--wp--style--gallery-gap-default, var(--gallery-block--gutter-size, var(--wp--style--block-gap, 0.5em))); }

/* Emoji rendered as Twemoji images, like WordPress did (tools/migrate.mjs converts them) */
img.emoji { display: inline !important; width: 1em !important; height: 1em !important; margin: 0 0.07em !important; padding: 0 !important; border: none !important; box-shadow: none !important; vertical-align: -0.1em !important; background: none !important; }
/* A post without tags still has the (empty) tag row, as in the original: it keeps the same spacing. */
.pills:empty { padding: 1px 0; }
.post-body .wp-block-image { margin: 0 0 1em; }
.post-body th, .post-body td { text-align: left; }
.post-body .wp-block-table .has-fixed-layout { table-layout: fixed; width: 100%; }
.post-body .wp-block-table .has-fixed-layout td, .post-body .wp-block-table .has-fixed-layout th { word-break: break-word; }
/* Theme table defaults (inside posts) */
.post-body table { width: 100%; margin-bottom: 2.15em; border-spacing: 0; border-collapse: collapse; }
.post-body table th, .post-body table td { padding: 0.5em 0.625em; vertical-align: middle; }
.post-body table th { font-weight: 700; line-height: 1.3; }
.post-body table td { line-height: 1.4; }
/* Section of the current page in the desktop menu (set by build.mjs, like WordPress current-menu-ancestor) */
.has-dropdown.is-current-ancestor > .menu-link { color: var(--blue); }
.pagination-empty { padding: 1px 0; }
/* Parallax layer created by site.js for [data-parallax-bg] elements */
.has-parallax { position: relative; overflow: hidden; isolation: isolate; background-image: none !important; }
.parallax-layer { position: absolute; top: 0; bottom: 0; right: 0; z-index: -1; width: 125%; pointer-events: none; }

/* Testimonials (/testimonials/) — generated by src/generators/testimonials.mjs */
/* Grey panel right under the hero: heading, rating line, carousel, "Had a great visit?" + Google review button.
   Unlike other sections it is not scaled down below 979px (it sat in the hero's row on the original). */
.testimonials-panel-wrap { font-size: 1.1rem; }
.testimonials-panel { border-top-left-radius: 0; border-top-right-radius: 0; }
.testimonials-h2-wrap { margin-bottom: 1em; }
.testimonials-h2 { font-size: 1.8em; line-height: 1.2; text-align: center; }
@media (max-width: 1199px) { .testimonials-h2 { font-size: 1.6em; } }
.testimonials-lead { margin-bottom: 2em; font-family: var(--font-open); line-height: 1.6; text-align: center; }
.testimonials-lead p { margin: 0; }
/* The original offsets this button by a fixed 400px (centred-looking on desktop/tablet, off-screen on phones). */
.google-review-btn { position: relative; display: inline-flex; justify-content: center; align-items: center; margin-left: 400px; padding: 0.575em 0.85em; border-radius: var(--radius); background: var(--blue); box-shadow: 0 0.15em 0.65em #fff; }
.google-review-btn span:first-child { display: block; margin: 5px; line-height: 1; text-align: center; color: #fff; }
.google-review-btn:hover span:first-child { color: rgba(255, 255, 255, 0.5); }
@media (max-width: 766px) { .google-review-btn { display: flex; width: fit-content; margin: 0 auto; } }
.testimonials-form { padding: 3em 0 2em; text-align: center; }
.review-form-box { padding: 1em; border-radius: var(--radius); background: rgba(0, 0, 0, 0.03); }
.review-form-box iframe { display: block; max-width: 100%; border-radius: var(--radius); }
.reviews-panel { container-type: inline-size; padding: 2em; border-radius: var(--radius); background: var(--gray-bar); } /* container for the widget queries below */
@media (max-width: 766px) { .reviews-panel { padding: 1em; } }
.reviews-widget { display: flex; align-items: flex-start; margin-bottom: 15px; font-size: 14px; line-height: 1.4; text-align: left; }
.reviews-summary { flex: 0 0 245px; max-width: 245px; margin: 53px 20px 0; font-size: 15px; line-height: 1.45; text-align: center; }
.reviews-rating { display: block; margin-bottom: 6px; font-size: 24px; font-weight: 600; line-height: 1.4; }
.reviews-summary-stars { display: block; margin-bottom: 5px; line-height: 0; white-space: nowrap; }
.summary-star { width: 30px; height: 30px; margin: 0 1px; }
.reviews-count { line-height: 1.4; }
.reviews-count span { display: inline-block; margin-bottom: 3px; white-space: nowrap; }
.reviews-count strong { font-weight: 600; }
.reviews-source { margin-top: 5px; }
.reviews-source img { display: block; max-width: 120px; margin: 0 auto; }
.reviews-carousel { position: relative; flex: 0 0 calc(100% - 285px); max-width: calc(100% - 285px); }
.reviews-track-wrap, .reviews-carousel { overflow: visible; }
.reviews-track { display: flex; margin: 0 8px; padding: 5px 0 1px; overflow: clip; } /* clip: cannot be scrolled by scrollIntoView */
.review-slide { flex: 0 0 33.333%; max-width: 33.333%; padding: 0 8px; transition: transform 400ms; }
.review-card { position: relative; padding: 20px; border-radius: 12px; background: #f4f4f4; }
.review-head { position: relative; display: flex; }
.review-platform { position: absolute; top: 0; right: 0; }
.review-avatar { flex: 0 0 auto; width: 40px; height: 40px; margin-right: 15px; border-radius: 50%; }
.review-who { display: flex; flex-direction: column; justify-content: center; flex: 1 1 0%; min-width: 0; white-space: nowrap; }
.review-name { overflow: hidden; padding-right: 25px; font-size: 15px; font-weight: 600; line-height: 1.4; text-overflow: ellipsis; }
.review-date { font-size: 13px; color: #6b6b6b; }
.review-stars { display: block; margin: 11px 0; line-height: 17px; white-space: nowrap; }
.review-star { width: 17px; height: 17px; margin-right: 1px; vertical-align: top; }
.review-verified { display: inline-block; width: 15px; height: 15px; margin-left: 7px; vertical-align: top; margin-top: 2px; background: url(/img/reviews/verified.svg) center / contain no-repeat; }
.review-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; font-size: 15px; line-height: 1.45; white-space: pre-wrap; }
.review-card.is-expanded .review-text { display: block; -webkit-line-clamp: unset; }
.review-more { display: block; padding-top: 8px; opacity: 0; }
.review-card.has-more .review-more { opacity: 1; }
.review-more-btn { opacity: 0.5; font-size: 13.5px; line-height: 1.4; text-align: left; }
.carousel-btn { position: absolute; top: 50%; z-index: 2; width: 30px; height: 30px; margin-top: -15px; border-radius: 50%; background: #fff; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); }
.carousel-btn::after { content: ""; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; border: solid #222; border-width: 2px 2px 0 0; transform: translate(-65%, -50%) rotate(45deg); }
.carousel-prev::after { transform: translate(-35%, -50%) rotate(-135deg); }
.carousel-next { right: 2px; }
.carousel-prev { left: 2px; }
.carousel-btn[hidden] { display: none; }
@container (max-width: 900px) { .review-slide { flex-basis: 100%; max-width: 100%; } }
@container (max-width: 500px) {
  .reviews-widget { flex-wrap: wrap; align-items: center; }
  .reviews-summary { flex-basis: 100%; max-width: 100%; margin: 0 0 30px; }
  .reviews-carousel { flex-basis: 100%; max-width: 100%; margin-bottom: 30px; }
  .reviews-track { margin: 0 -8px; }
}
.carousel-progress { display: none; position: relative; width: 150px; height: 3px; margin: 20px auto; border-radius: 3px; background: #bdbdbd; }
/* "Verified by Trustindex" badge under the cards; its disclaimer shows on hover/focus. */
.reviews-verified-row { margin: 12px 28px 0; font-size: 12px; line-height: 1.4; text-align: right; }
@container (max-width: 500px) { .reviews-verified-row { text-align: center; } }
.reviews-verified-by { position: relative; display: inline-block; padding: 4px 14px; border-radius: 3px; background: rgb(21, 115, 81); font-weight: 600; color: #fff; }
.reviews-info-icon { position: relative; top: 2px; display: inline-block; width: 13px; height: 13px; background: #fff; -webkit-mask: url(/img/reviews/info.svg) no-repeat center / contain; mask: url(/img/reviews/info.svg) no-repeat center / contain; }
.reviews-disclaimer { position: absolute; bottom: calc(100% + 15px); right: -7px; z-index: 5; width: 320px; max-width: 585px; padding: 12px 24px; border: 1px solid #000; border-radius: 6px; background: #fff; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); font-size: 14px; font-weight: 400; color: #000; text-align: left; opacity: 0; visibility: hidden; transition: opacity 0.3s; }
.reviews-verified-by:hover .reviews-disclaimer, .reviews-verified-by:focus-within .reviews-disclaimer { opacity: 1; visibility: visible; }
.reviews-disclaimer a { color: inherit; text-decoration: underline; }
.carousel-progress span { position: absolute; top: 0; left: 0; height: 100%; width: 10%; border-radius: 3px; background: #555; transition: left 400ms; }
@container (max-width: 500px) { .carousel-btn { display: none !important; } .carousel-progress { display: block; } }

/* Extra column width used by the About page (two-thirds, with the row gap accounted for) */
.row > .col-66 { flex-basis: calc(66.66% - var(--gap) / 3); }

/* Text-style toggle buttons ("Watch a Tour of Our Office", "Read More") */
.text-toggle { text-align: inherit; display: inline-flex; justify-content: center; align-items: center; line-height: 1.8; color: var(--ink); }
.text-toggle .fa-s, .text-toggle .fa-o { margin: 5px 5px 5px 0; font-size: 1.25em; line-height: 1; color: var(--blue); }
.text-toggle span { margin: 5px 5px 5px 5px; margin-right: calc(5px - 0.15em); font-size: 0.9em; font-weight: 600; line-height: 1; letter-spacing: 0.15em; text-transform: uppercase; }
.text-toggle:hover span { color: var(--blue); }
.btn-bordered { border: 1px solid var(--blue); margin: 0 0 0.5em; }
.btn-gray { background: #E0E0E0; color: var(--blue); border-color: #fff; }
.btn-gray .btn-label { color: var(--ink); }
.btn-gray:hover { background: var(--blue); }
.btn-gray:hover .btn-label { color: #fff; }
@media (max-width: 479px) { .btn-bordered { min-width: 100%; } }

/* About (/about-us-audiologist/) */
.about-h2-wrap { margin-bottom: 1em; }
.about-h2 { font-size: 1.8em; }
.about-mission { padding: 3em 0; }
.about-mission-row { --gap: 2rem; justify-content: center; }
.about-mission-text { justify-content: flex-start; align-items: flex-start; }
@media (max-width: 978px) { .about-mission-text { align-items: center; align-content: center; text-align: center; } }
.tour-toggle { margin-top: 1.5em; background: transparent; }
.about-video-frame { position: relative; width: 500px; max-width: 100%; padding-bottom: 500px; font-size: 16px; border-radius: 10px; background: #fff; }
.about-video-frame video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; border-radius: 10px; }
.about-difference { padding-bottom: 3em; }
.difference-box { display: flex; flex-direction: column; flex-wrap: wrap; align-items: flex-start; padding: 2em; border-radius: var(--radius); background: var(--gray-bar); }
.difference-text { margin-bottom: 1em; }
.about-bio { padding: 3em 0 8em; background: var(--gray-bar); }
.bio-row { --gap: 2rem; }
.bio-photo { display: block; line-height: 1; }
.bio-photo img { display: block; width: 100%; }
.bio-text { justify-content: center; align-items: flex-start; }
@media (max-width: 978px) { .bio-text { align-items: center; align-content: center; text-align: center; } }
.bio-sub-wrap { margin-bottom: 1em; }
.bio-sub { font-size: 1.4em; color: rgb(113, 191, 255); }
@media (max-width: 1199px) { .bio-text .about-h2 { font-size: 1.4em; } .bio-sub { font-size: 1.2em; } }
.read-more-toggle { flex-direction: row-reverse; margin-top: 1em; background: transparent; }
.read-more-toggle .fa-o { margin: 5px 5px 5px 5px; }
.read-more-toggle span { margin-left: 0; }
.about-why { padding: 65px 0; }
.about-photos { --gap: 1rem; margin-top: -9em; }
.about-photo { flex: 1 1 calc(33.33% - var(--gap) * 2 / 3) !important; min-height: 50vh; border-radius: var(--radius); background: var(--photo) var(--pos, center) / cover no-repeat; }
@media (max-width: 1199px) { .about-photo { min-height: 40vh; } }
@media (max-width: 766px) { .about-photo { flex-basis: 100% !important; } }
.why-block { display: flex; flex-wrap: wrap; align-items: center; padding-top: 45px; }
@media (max-width: 766px) { .why-block { padding-top: 2rem; } }
.why-title-wrap { width: 100%; }
.why-title { font-size: 2.5em; }
.why-text { width: 100%; padding-bottom: 1em; }
.why-learn { margin-right: 1em; }
@media (max-width: 766px) { .why-learn { margin-right: 0; } .about-why .btn-bordered { margin-bottom: 0; } }

/* Modal (video pop-up) and side panel (biography): opened by [data-open="id"], closed by [data-dismiss] or Escape */
.modal, .side-panel { position: fixed; inset: 0; z-index: 99999999; }
.modal[hidden], .side-panel[hidden] { display: none; }
.modal-bg, .side-panel-bg { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.75); }
.modal { display: flex; align-items: center; justify-content: center; padding: 0 2em; font-size: 16px; }
.modal-content { position: relative; width: 100%; max-width: 38em; border-radius: 10px; background: #fff; box-shadow: 0 0.15em 2em 0 rgba(0, 0, 0, 0.25); overflow: hidden; }
.modal-content video { display: block; width: 100%; aspect-ratio: 16 / 9; }
.modal-close { position: absolute; top: 0; right: 0; z-index: 2; width: 2em; height: 2em; color: rgba(255, 255, 255, 0.5); }
.modal-close:hover, .modal-close:focus-visible { color: #fff; }
.modal-close svg, .side-panel .offcanvas-close svg { display: block; width: 1em; height: 1em; margin: auto; fill: currentColor; }
.side-panel { font-size: 16px; line-height: 1.8; }
.side-panel-content { position: absolute; top: 0; right: 0; bottom: 0; width: 100%; max-width: 36em; padding: 2em; overflow: auto; background: #fff; box-shadow: 0 0 2em 0 rgba(0, 0, 0, 0.25); }
@media (min-width: 767px) and (max-width: 978px) { .side-panel-content { max-width: 75%; } }
@media (max-width: 766px) { .side-panel-content { max-width: 100%; } }
@media (max-width: 479px) { .side-panel { font-size: 14px; } }
.bio-panel-photo img { display: block; border-radius: 10px; }
.bio-panel-name { margin-top: 1em; font-size: 1.6em; }
.bio-panel-sub { margin: 0 0 1em; font-size: 1.3em; color: rgb(113, 191, 255); }
@media (max-width: 766px) { .sm-hide { display: none !important; } }
@media (max-width: 978px) { .center-md { align-items: center; align-content: center; text-align: center; } }
@media (max-width: 978px) { .bio-photo-col { align-items: center; align-content: center; } }
@media (min-width: 767px) and (max-width: 978px) { .bio-photo { max-width: 300px; } }
@media (max-width: 766px) { .bio-photo { max-width: 350px; } }
/* Poster image over the mission video (like the original player); hidden once the video plays */
.video-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 10px; pointer-events: none; }
.video-playing .video-poster { display: none; }

/* Hearing Loss (/hearing-loss-education/) and similar content pages */
.hl-intro { padding: 3em 0 2em; text-align: center; }
.hl-intro .container { text-align: left; }
.hl-intro-head { margin: -1em 0 1em; }
.hl-intro-head .headline { margin: -1px 0 1px; font-size: 2em; }
.hl-main { padding-bottom: 3em; }
.hl-row { --gap: 2rem; }
.hl-row + .hl-row { margin-top: 2em; }
.row > .col-100 { flex-basis: 100%; }
/* Tall photo column with a button at the bottom: 50vh of photo above the button */
.tall-photo { position: relative; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; align-content: flex-end; padding: 50vh 2em 2em; border-radius: var(--radius); background: var(--photo) var(--pos, 50% 40%) / cover no-repeat; }
.tall-photo.photo-contain { background-size: contain; }
@media (max-width: 479px) { .tall-photo { padding: 50vh 1em 1em; } }
.btn-mb { margin-bottom: 0.5em; }
.acc-inline { width: 100%; margin: 1em 0; }
.symptoms-panel { padding: 2em; border-radius: 10px; background: var(--gray-bar); }
@media (max-width: 766px) { .symptoms-panel { padding-left: 1em; padding-right: 1em; } }
@media (max-width: 1199px) { .hl-main .about-h2, .svc-main .about-h2 { font-size: 1.6em; } }
/* Tinnitus (/tinnitus/): intro section, then the shared .hl-main layout */
.tin-intro { margin: -1px 0 1px; padding: 3em 0 0; }
.page-tinnitus .hl-main { padding-top: 2em; }
.tall-photo.tall-photo-40 { padding-top: 40vh; }
/* Services (/services-best-practices/): intro, then alternating photo/text rows (data: src/data/services.json) */
.svc-intro { margin: -1px 0 1px; padding: 3em 0 2em; }
.svc-main { padding: 0 0 3em; }
.svc-row { --gap: 2rem; }
.svc-row + .svc-row { margin-top: 3em; }
.svc-reverse { flex-direction: row-reverse; }
.svc-row[style] > .svc-photo { flex-basis: calc(var(--split-a) - var(--gap) / 2); }
.svc-row[style] > .svc-text { flex-basis: calc(var(--split-b) - var(--gap) / 2); }
@media (max-width: 1199px) { .svc-row[style] > * { flex-basis: calc(50% - var(--gap) / 2); } }
.svc-text { flex-direction: column; justify-content: center; align-items: flex-start; }
.svc-panel-name { margin-top: 0; }
/* Hearing aid overview (/hearing-aid-overview/): reuses the services rows; adds the grey "styles" panel with 4 cards */
.hao-main .svc-row + .hao-styles, .hao-styles + .svc-row { margin-top: 2em; }
.hao-bordered { border: 1px solid #E0E0E0; }
.hao-styles { padding: 2em 1em; border-radius: 10px; background: #F3F3F3; text-align: center; }
.hao-styles .about-h2-wrap { margin-bottom: 1em; }
.hao-cards { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2em; }
.hao-card { flex: 0 0 calc(25% - 0.75rem); padding: 0 1em 1em; border-radius: 10px; background: #fff; }
@media (max-width: 978px) { .hao-card { flex-basis: calc(50% - 0.5rem); } }
@media (max-width: 479px) { .hao-card { flex-basis: 100%; } }
.hao-card .img img { display: block; width: 100%; height: auto; }
.hao-card-name { font-size: 0.9em; line-height: 1.2; color: #3D3C38; }
.hao-more { flex-direction: column; min-width: 100%; margin-top: 0.5em; background: transparent; }
.hao-more span { margin-right: calc(5px - 0.15em); color: #3D3C38; }
.hao-more .fa-o { margin: 5px; }
.hao-panel-img img { display: block; }
.hao-pull-up { margin-top: -1em; }
.hao-styles .about-h2 { display: inline-block; }
/* Ad landing pages (/trial/, /30-day-trial/; src/generators/landing.mjs). Own look: Tahoma body, black
   headline font, orange call buttons. Sizes are em of the section font (1.1rem), as on the original. */
.lp { position: relative; font-size: 1.1rem; font-family: Tahoma, Geneva, Verdana, sans-serif; line-height: 1.8; color: #000; }
.lp p { margin: 0; }
.lp img { display: block; max-width: 100%; height: auto; }
.lp-row { display: flex; flex-wrap: wrap; align-items: stretch; }
.lp-row > * { flex: 0 1 calc(100% - 20px); margin: 10px; min-width: 0; }
.lp .container.lp-row { width: calc(95% + 20px); max-width: 1220px; margin-top: -10px; margin-bottom: -10px; }
.lp-h { margin: 0; font-family: var(--font-head); font-weight: 700; color: #000; text-transform: none; letter-spacing: 0; }
.lp-hw { margin-bottom: 1em; }
.lp-h1 { font-size: 2.75em; line-height: 1.2; color: #fff; }
.lp-h2 { font-size: 2.5em; line-height: 1.4; }
.lp-h4 { font-size: 1.75em; line-height: 1; color: #fff; text-align: center; }
.lp-center { text-align: center; }
.lp-big { margin-bottom: 1em; font-size: 1.6em; line-height: 1.5; }
.lp-bold { font-weight: 700; }
.lp-med { margin-bottom: 1em; font-size: 1.2em; line-height: 1.5; }
.lp-call { display: inline-flex; align-items: center; justify-content: center; padding: 0.575em 0.85em; border-radius: 0.35em; box-shadow: 0 0.15em 0.65em 0 rgba(0, 0, 0, 0.25); background: #F25C1F; text-decoration: none; }
.lp-call span { display: block; margin: 5px; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 1.5em; font-weight: 700; line-height: 1; color: #fff; }
/* main-1: logo + call button */
.lp-top { padding: 1em 0; background: #fff; }
.lp-top-row { align-items: center; }
.lp-top-logo { flex-basis: calc(66.66% - 20px); }
.lp-top-call { flex-basis: calc(33.33% - 20px); text-align: right; }
.lp-top-logo .img, .lp-bio-photo .img, .lp-offer-arrow .img { display: inline-block; vertical-align: top; }
/* main-2: photo with a translucent blue headline box */
.lp-hero { padding: 100px 0; background: url(/wp-content/uploads/2024/07/cover-photo-2.webp) 50% 10% / cover no-repeat; }
.lp-hero-box { max-width: 600px; padding: 1em; border: 1px solid #fff; border-radius: 0.35em; box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.3); background: rgba(54, 150, 229, 0.7); }
/* main-3: offer text, arrow, claim form */
.lp-offer { padding: 65px 0; background: #fff; }
.lp-offer-row { align-items: flex-start; }
.lp-offer-text { flex-basis: calc(50% - 20px); }
.lp-offer-arrow { flex-basis: calc(15% - 20px); }
.lp-offer-arrow .img { margin-top: 150px; }
.lp-claim { flex-basis: calc(35% - 20px); padding: 1em 1em 1.25em; border-radius: 0.35em; background: rgb(54, 150, 229); }
.lp-claim-head { display: flex; margin-bottom: 2em; padding-top: 10px; }
.lp-claim-head h4 { flex: 1; margin-bottom: -20px; }
.lp-claim iframe { display: block; width: 100%; border: 0; border-radius: 0.35em; }
/* main-4: audiologist */
.lp-bio { padding: 65px 0; background: rgb(233, 233, 233); }
.lp-bio-photo { flex-basis: calc(25% - 20px); }
.lp-bio-photo .img { margin-bottom: 0.5em; }
.lp-bio-photo img { border-radius: 0.35em; }
.lp-bio-text { flex-basis: calc(75% - 20px); }
.lp-name { font-size: 1.25em; font-style: italic; line-height: 1.4; text-align: center; }
/* main-5: award badges */
.lp-awards { padding: 65px 0; background: #fff; }
.lp-awards-row { justify-content: center; align-items: center; text-align: center; }
.lp-awards-row > * { flex-basis: calc(33.33% - 20px); }
.lp-award { display: inline-block; max-width: 100%; padding: 10px 0; vertical-align: top; }
.lp-award-300 { max-width: 300px; }
.lp-award img { margin: 0 auto; }
/* main-6: map + Google reviews over the mountains */
.lp-local { padding: 65px 0; background: linear-gradient(rgba(92, 171, 203, 0.46), rgba(92, 171, 203, 0.46)), url(/wp-content/uploads/2022/07/bigstock-Colorado-Rocky-Mountains-Sceni-395-2000px.jpg) 50% 50% / cover no-repeat; }
.lp-local .container:first-child { margin-bottom: 0; }
.lp-local-row > * { flex-basis: calc(50% - 20px); }
.lp-map { height: 340px; border-radius: 5.6px; overflow: hidden; background: #fff; }
.lp-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.lp-review { padding: 1.5em; border-radius: 0.35em; background: #fff; }
.lp-g, .lp-stars { display: inline-block; line-height: 1; vertical-align: baseline; }
.lp-g { margin-right: 1em; }
.lp-g img, .lp-stars img { display: inline-block; }
.lp-quote { margin-bottom: 1em; font-size: 1.1em; line-height: 1.5; }
.lp-who { font-size: 1.1em; line-height: 1.5; }
/* main-7 + main-8: closing call to action, copyright */
.lp-cta { padding: 20px 0; background: rgb(54, 150, 229); }
.lp-cta-col { display: flex; flex-direction: column; align-items: center; text-align: center; }
.lp-cta .lp-h2 { color: #fff; }
.lp-foot { padding: 1em 0; }
.lp-foot p { font-size: 1.2em; line-height: 1.8; text-align: center; }
@media (max-width: 978px) {
  .lp-top-logo, .lp-top-call { flex-basis: calc(50% - 20px); }
  .lp-hero-box { max-width: 500px; }
  .lp-h1 { font-size: 2.5em; }
  .lp-offer-text, .lp-claim { flex-basis: calc(100% - 20px); }
  .lp-offer-arrow { display: none; }
  .lp-bio-photo { flex-basis: calc(33.33% - 20px); }
  .lp-bio-text { flex-basis: calc(66.66% - 20px); }
}
@media (max-width: 766px) {
  .lp .container.lp-top-row { margin-top: 0; margin-bottom: 0; }
  .lp-top-row > * { flex-basis: calc(100% - 20px); margin-top: 0; margin-bottom: 0; text-align: center; }
  .lp-top-logo .img { margin-bottom: 1em; }
  .lp-hero-box { max-width: 400px; }
  .lp-h1 { font-size: 2em; }
  .lp-h2 { font-size: 1.75em; }
  .lp-big, .lp-med, .lp-quote, .lp-who { font-size: 1.25em; }
  .lp-bio-photo, .lp-bio-text, .lp-awards-row > *, .lp-local-row > * { flex-basis: calc(100% - 20px); }
}
/* Original pinned the first review card to its row height and the last to 325px on phones. */
.lp-local-row > :nth-child(2) .lp-review { height: 100%; }
@media (max-width: 766px) { .lp-local-row > :last-child .lp-review { height: 325px; } }
/* /30-day-trial/'s longer headline is set 20% smaller than /trial/'s. */
.lp-h1.lp-h1-long { font-size: 2.2em; }
@media (max-width: 978px) { .lp-h1.lp-h1-long { font-size: 2em; } }
@media (max-width: 766px) { .lp-h1.lp-h1-long { font-size: 1.6em; } }
/* "Call or Text" outlined button beside Book Appointment in the CTA banner (added to the original 2026-10). */
.cta .cta-call { margin-left: 2.5em; padding: 0.8em 0.5em; border: 2.5px solid var(--blue); background: #fff; font-size: 0.85em; }
.cta .cta-call .btn-label { color: var(--blue); }
.cta .cta-call:hover .btn-label { color: var(--ink); }
