:root {
  color-scheme: light;
  --ink: #102f3a;
  --body: #38545b;
  --accent: #075e9e;
  --mint: #dff4ed;
  --line: #d5e4e2;
  --green: #08743f;
  --surface: #f2f8f6;
  --radius: 1.15rem;
  --font: "Segoe UI", system-ui, sans-serif;
  --header-offset: 7.5rem;
  font-family: var(--font);
  color: var(--ink);
  background: #fff;
  line-height: 1.55;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-offset); }
body, h1, h2, h3, p, figure { margin: 0; }
a { color: inherit; }
button, input, select { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
img { display: block; max-width: 100%; }
::selection { background: #bee9d9; color: var(--ink); }
:focus-visible { outline: 3px solid #076baf; outline-offset: 4px; }

.container { width: min(100% - 3rem, 76rem); margin-inline: auto; }
.symbols { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 1.2em; height: 1.2em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.icon--wa { width: 1.65rem; height: 1.65rem; padding: .16rem; border-radius: 50%; color: #086140; background: #d9f4e6; }
.skip-link { position: fixed; top: .5rem; left: .5rem; z-index: 10; transform: translateY(-150%); padding: .65rem 1rem; background: #fff; }
.skip-link:focus { transform: none; }

.site-header { position: sticky; top: 0; z-index: 5; background: #fff; border-bottom: 1px solid var(--line); }
.top-line { background: #f5f9f8; color: var(--body); font-size: .79rem; }
.top-inner, .nav-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.top-inner { min-height: 2rem; }
.top-inner span, .top-inner a { display: inline-flex; align-items: center; gap: .35rem; }
.top-inner a { color: #0a653d; text-decoration: none; font-weight: 700; }
.top-inner .icon--wa { width: 1.35rem; height: 1.35rem; padding: .13rem; }
.nav-row { position: relative; min-height: 4.35rem; }
.brand { display: inline-flex; align-items: center; gap: .55rem; color: #0b4784; text-decoration: none; flex: 0 0 auto; }
.brand-mark { width: 3.25rem; height: 2.65rem; background: url("assets/referencia-marca.webp") no-repeat -2.8rem -.55rem / 54rem auto; }
.brand strong { display: block; font-size: .99rem; font-weight: 820; letter-spacing: -.045em; line-height: 1; }
.brand b { color: #047cb4; }
.brand small { display: block; color: #46646b; font-size: .55rem; letter-spacing: .13em; margin-top: .24rem; }
.nav-links { display: flex; align-items: center; justify-content: center; gap: clamp(1rem, 3vw, 2.25rem); }
.nav-links a { color: var(--body); font-size: .9rem; font-weight: 650; text-decoration: none; }
.nav-links a:hover, .nav-links a[aria-current="location"] { color: var(--accent); text-decoration: underline; text-underline-offset: .3em; }
.menu-toggle { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; background: #fff; border: 1px solid var(--line); border-radius: .65rem; color: var(--ink); }
.menu-toggle .icon { width: 1.5rem; height: 1.5rem; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 2.9rem; padding: .65rem 1rem; border: 1px solid transparent; border-radius: .6rem; background: var(--accent); color: #fff; text-decoration: none; font-weight: 700; line-height: 1.25; transition: background-color .2s, box-shadow .2s; }
.button:hover { background: #064a7d; box-shadow: 0 .35rem 1rem #08364a21; }
.button:disabled { opacity: .65; cursor: default; box-shadow: none; }
.button--wa { background: var(--green); }
.button--wa:hover { background: #075d36; }
.button--wa .icon--wa { width: 1.95rem; height: 1.95rem; padding: .19rem; color: #fff; background: rgb(255 255 255 / .14); }
.button--nav { font-size: .875rem; min-height: 2.7rem; }
.text-link, .inline-button { color: #075978; text-decoration: underline; text-underline-offset: .24em; font-weight: 690; }
.text-link { display: inline-flex; align-items: center; gap: .35rem; }
.inline-button { background: none; border: 0; padding: .125rem .2rem; }

h1, h2, h3 { line-height: 1.1; }
h1, h2 { letter-spacing: -.045em; text-wrap: balance; }
h1 { font-size: clamp(2.55rem, 5.15vw, 4.65rem); font-weight: 780; }
h2 { font-size: clamp(1.95rem, 3.2vw, 3rem); }
h3 { font-size: 1.22rem; letter-spacing: -.022em; }
p { color: var(--body); }
.eyebrow { color: #086253; font-weight: 780; font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow + h2 { margin-top: .55rem; }

.hero {
  --hero-artwork: url("assets/banner-refractiva.jpg");
  --hero-navy: #081d3b;
  padding-bottom: clamp(1.85rem, 5vw, 4.2rem);
  overflow: hidden;
  color: var(--hero-navy);
  background: linear-gradient(145deg, #f8fbff 7%, #e9f5ff 55%, #d0eafb);
}
.hero-scene {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(2rem, 5vw, 4.05rem) clamp(1.8rem, 4.6vw, 4rem);
  background: linear-gradient(112deg, #f7fbff 27%, #d7edff 66%, #a0d0f4);
}
.hero-scene .container { width: min(100% - clamp(2rem, 12.8vw, 9rem), 76rem); }
.hero-scene::after { content: ""; position: absolute; z-index: -1; inset: auto 0 0; height: 22%; background: linear-gradient(transparent, #e7f4fd); }
.hero-visual {
  position: absolute;
  z-index: -2;
  top: 0;
  right: 0;
  width: min(49%, 44rem);
  aspect-ratio: 483 / 952;
  /* Show the portrait area of the supplied artwork. */
  background: var(--hero-artwork) no-repeat right 26.41% / 224.84% 152.1%;
  mask-image: linear-gradient(90deg, transparent, #000 17%);
}
.hero-wave { position: absolute; z-index: -1; right: 0; bottom: 0; width: 62%; height: clamp(6rem, 22vw, 18rem); }
.hero-copy { display: grid; gap: clamp(1rem, 2.4vw, 1.9rem); justify-items: start; width: min(56%, 37rem); }
.hero-heading { width: 100%; }
.hero .eyebrow { color: var(--hero-navy); font-size: clamp(.78rem, 2vw, 1.36rem); letter-spacing: .15em; }
.hero .eyebrow::after { content: ""; display: block; width: clamp(4.5rem, 14vw, 9rem); height: .32rem; margin-top: .38rem; border-radius: 99px; background: linear-gradient(90deg, #077fae, transparent); }
.hero h1 { margin-top: clamp(.75rem, 2.5vw, 1.65rem); font-size: clamp(2.2rem, 7.4vw, 5.35rem); font-style: italic; font-weight: 780; line-height: .99; text-wrap: wrap; }
.hero h1 span { display: block; }
.hero h1 em { display: block; margin-top: .06em; color: #0966a7; font-size: .84em; font-style: inherit; }
.hero-rays, .hero-swoosh { display: inline-block; fill: none; stroke: #1386be; stroke-linecap: round; stroke-width: 5; }
.hero-rays { width: .58em; height: .66em; vertical-align: top; }
.hero-swoosh { width: clamp(2.5rem, 16vw, 12.4rem); height: .43em; vertical-align: baseline; }
.hero-description { max-width: 31ch; color: var(--hero-navy); font-size: clamp(1rem, 2vw, 1.44rem); line-height: 1.36; }
.hero-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; max-width: 33rem; padding: 0; margin: 0; list-style: none; }
.hero-benefits li { display: grid; gap: .4rem; justify-items: center; align-content: start; padding-inline: .52rem; text-align: center; font-size: clamp(.79rem, 1.65vw, 1.14rem); line-height: 1.24; }
.hero-benefits li + li { border-left: 1px solid #9ebbd1; }
.hero-benefits .icon { width: clamp(1.7rem, 4.8vw, 3.2rem); height: clamp(1.7rem, 4.8vw, 3.2rem); color: #0b639c; stroke-width: 1.35; }
.hero-cta { justify-content: space-between; width: 100%; max-width: 33rem; min-height: clamp(3.1rem, 6.4vw, 4.55rem); padding-inline: clamp(.7rem, 3vw, 2rem); border-radius: clamp(.66rem, 1.6vw, 1rem); background: linear-gradient(#0871b9, #00467b); font-size: clamp(.95rem, 2vw, 1.55rem); }
.hero-cta:hover { background: linear-gradient(#0963a3, #003962); }
.hero-cta .icon { width: 1.36em; height: 1.36em; }
.hero-proof {
  display: grid;
  grid-template-columns: auto auto auto;
  align-items: center;
  justify-content: center;
  gap: clamp(.52rem, 2.6vw, 2.25rem);
  width: min(100% - clamp(2rem, 10.3vw, 8rem), 68rem);
  margin-top: clamp(.35rem, 1.4vw, 1rem);
  padding: clamp(.75rem, 2.55vw, 2rem) clamp(.65rem, 3.8vw, 2.5rem);
  border: 2px solid #dbfcff;
  border-radius: clamp(1.35rem, 7vw, 4.75rem);
  background: linear-gradient(112deg, #0879bc, #00467d 45%, #008eaa 75%, #02b2b4);
  box-shadow: inset 0 0 1.55rem #57ecff8a, 0 .8rem 2rem #008aba57, 0 0 1rem #b3fff9;
  color: #fff;
  text-shadow: 0 .17em .33em #00274e60;
}
.hero-emblem {
  width: clamp(2.55rem, 14vw, 10rem);
  aspect-ratio: 194 / 134;
  background: var(--hero-artwork) no-repeat 10.54% 85.08% / 559.79% 1080.6%;
  mask-image: radial-gradient(ellipse 71% 71%, #000 61%, transparent 100%);
}
.hero-proof strong { padding-left: clamp(.46rem, 2vw, 1.45rem); border-left: 1px solid #75e6f7; font-size: clamp(1.75rem, 9.6vw, 7.05rem); font-weight: 850; letter-spacing: -.045em; line-height: 1; white-space: nowrap; }
.hero-proof-label { max-width: 11.5ch; font-size: clamp(.56rem, 2.6vw, 1.95rem); font-weight: 800; letter-spacing: .075em; line-height: 1.13; text-transform: uppercase; }
.review-figure img { width: 100%; height: 100%; object-fit: cover; }

.trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(100% - 3rem, 76rem); margin: 0 auto; padding: 1rem 0; list-style: none; }
.trust li { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: 0 .5rem; text-align: center; font-weight: 650; font-size: .9rem; }
.trust li + li { border-left: 1px solid var(--line); }
.trust .icon { color: #087464; width: 1.35rem; height: 1.35rem; }

.booking { padding-block: clamp(1.4rem, 3vw, 2.5rem); background: var(--mint); }
.booking-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.38fr); align-items: center; gap: clamp(1rem, 4vw, 3rem); }
.booking-copy h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
.booking-copy p:not(.eyebrow) { margin: .65rem 0 .9rem; max-width: 29rem; }
.booking-copy .text-link { color: #086140; }
.booking-form { display: grid; gap: .55rem; }
.fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: .75rem; }
.fields label { display: grid; gap: .3rem; font-size: .85rem; font-weight: 690; }
.fields input:not([type="checkbox"]), .fields select { display: block; width: 100%; min-height: 2.85rem; border: 1px solid #91b2af; border-radius: .55rem; background: #fff; color: var(--ink); padding: .5rem .7rem; font-size: 1rem; font-weight: 450; }
.fields select:invalid { color: #47626a; }
.fields .branch-select {
  appearance: none;
  padding-inline: .85rem 2.45rem;
  border-color: #8fafa9;
  border-radius: .72rem;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a7060' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right .8rem center / 1.15rem no-repeat;
  box-shadow: 0 1px 2px #123e4910;
  cursor: pointer;
}
.fields .branch-select:hover { border-color: #0a7060; }

@supports (appearance: base-select) and selector(::picker(select)) {
  .fields .branch-select, .fields .branch-select::picker(select) { appearance: base-select; }
  .fields .branch-select { display: flex; align-items: center; gap: .65rem; padding-inline: .85rem; background-image: none; }
  .branch-select::picker-icon {
    content: "";
    width: .5rem;
    height: .5rem;
    margin-inline: auto .3rem;
    border-right: 2px solid #0a7060;
    border-bottom: 2px solid #0a7060;
    transform: none;
    rotate: 45deg;
    transition: rotate .2s;
  }
  .branch-select:open { border-color: #0a7060; }
  .branch-select:open::picker-icon { rotate: 225deg; }
  .fields .branch-select::picker(select) {
    margin-block-start: .32rem;
    padding: .23rem;
    border: 1px solid #b8d3ce;
    border-radius: .78rem;
    background: #fff;
    color: var(--ink);
    box-shadow: 0 .5rem 1.35rem #102f3a24;
  }
  .branch-select option { min-height: 2.75rem; padding: .6rem .7rem; font-size: .94rem; font-weight: 650; cursor: pointer; }
  .branch-select option:disabled { display: none; }
  .branch-select option:not(:disabled) + option { border-top: 1px solid var(--line); }
  .branch-select option:is(:hover, :focus-visible) { background: #edf8f5; }
  .branch-select option:focus-visible { outline-offset: -3px; }
  .branch-select option:checked { color: #08594b; background: #e0f3ed; }
  .branch-select option::checkmark { order: 1; margin-inline-start: auto; color: #086140; }
}

@supports (position-anchor: --branch-picker) and selector(::picker(select)) {
  .fields .branch-select { anchor-name: --branch-picker; }
  .fields .branch-select::picker(select) {
    position-anchor: --branch-picker;
    position-area: none;
    inset: auto;
    top: anchor(bottom);
    left: anchor(left);
    width: anchor-size(width);
    position-try-order: normal;
    position-try-fallbacks: flip-block;
  }
}
.fields .submit { grid-column: 2; grid-row: 2; width: 100%; }
.consent { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: .5rem; font-size: .83rem; }
.consent input { margin: .28rem 0 0; width: 1.05rem; height: 1.05rem; flex: 0 0 auto; accent-color: var(--accent); }
.consent label { display: inline; font-weight: 520; }
.form-note { font-size: .8rem; }
.form-result { padding: .7rem .85rem; border: 1px solid #9ac6bb; border-radius: .55rem; background: #f6fcfa; }
.form-result p { margin-bottom: .25rem; }

.section { padding-block: clamp(2.5rem, 6.3vw, 5.2rem); }
.review-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(1.45rem, 4.5vw, 4rem); }
.review-figure { aspect-ratio: 1.47; overflow: hidden; border-radius: var(--radius); background: var(--surface); }
.review-list, .steps { list-style: none; padding: 0; counter-reset: item; }
.review-list { margin: 1.2rem 0 0; }
.review-list li, .steps li { counter-increment: item; }
.review-list li { display: grid; grid-template-columns: auto 1fr; gap: .75rem; border-top: 1px solid var(--line); padding-block: .8rem; }
.review-list li::before, .steps li::before { content: counter(item, decimal-leading-zero); color: #0a7264; font-size: 1.23rem; font-weight: 780; line-height: 1.15; }
.review-list p, .steps p { margin-top: .3rem; }
.testimonials { background: #123e49; color: #fff; }
.testimonials .eyebrow { color: #a4e4d4; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.45rem; }
.testimonial-card { display: flex; flex-direction: column; gap: .85rem; padding: clamp(1.05rem, 2.4vw, 1.55rem); border: 1px solid #58818a; border-radius: var(--radius); background: #1a4a55; }
.testimonial-card .rating { color: #ffd782; font-size: 1rem; letter-spacing: .12em; }
.testimonial-card blockquote { flex: 1; margin: 0; }
.testimonial-card p { color: #f0fafa; font-size: 1.05rem; }
.testimonial-card figcaption { display: flex; align-items: center; gap: .6rem; }
.review-initials { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; border-radius: 50%; background: #d8f2ec; color: #15544d; font-weight: 800; font-size: .78rem; }
.testimonial-card time { display: block; color: #d0e5e7; font-size: .79rem; }
.testimonials .testimonial-source { margin-top: 1.15rem; color: #c1f0e2; }
.testimonials :focus-visible { outline-color: #a4e4d4; }
.process { background: #f0f7fb; }
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1.45rem 0 0; }
.steps li { padding: 1.15rem; border: 1px solid #d6e5ee; border-radius: var(--radius); background: #fff; }
.steps li::before { display: block; margin-bottom: .7rem; }
.insurance { padding: 62px 2rem 38px; }
.insurance > .container { width: min(100%, 94rem); }
.insurance h2 { max-width: 1000px; padding: 12px 0 12px 32px; border-left: 4px solid #50a9dd; color: #2c73b4; font-size: 24px; line-height: 1.4; font-weight: 700; letter-spacing: 0; text-transform: uppercase; text-wrap: initial; }
.insurance-carousel { position: relative; margin-top: 64px; }
.insurance-window { padding-bottom: 24px; }
.insurance-track { align-items: center; height: auto; margin: 0; padding: 0; list-style: none; }
.insurance-track .swiper-slide { min-width: 0; height: auto; padding: 10px 20px; border-radius: 8px; background: #fff; box-shadow: 0 16px 28px rgba(146, 194, 238, .15); text-align: center; }
.insurance-track img { display: inline-block; width: 180px; max-width: 100%; height: auto; }
.insurance-carousel .insurance-dots { position: static; display: flex; min-height: 24px; align-items: center; justify-content: center; }
.insurance-carousel .swiper-pagination-bullet { flex: 0 0 auto; width: 10px; height: 10px; margin: 0 6px; padding: 0; border: 0; background: #ecf6fb; opacity: 1; }
.insurance-carousel .swiper-pagination-bullet-active { width: 52px; border-radius: 20px; background: #50a9dd; }
.insurance-pause { position: absolute; z-index: 1; right: 0; bottom: 0; min-height: 2.1rem; width: 2.1rem; border: 1px solid #b9d7e8; border-radius: 50%; background: #fff; color: #2c73b4; }
.insurance-pause:not(:focus-visible) { width: 1px; height: 1px; min-height: 0; padding: 0; overflow: hidden; clip-path: inset(50%); }
.insurance-note { margin: 1rem auto 0; max-width: 82rem; text-align: center; }
.insurance-window:not(.swiper-initialized) .insurance-track { display: flex; gap: 25px; overflow-x: auto; scroll-snap-type: x mandatory; }
.insurance-window:not(.swiper-initialized) .swiper-slide { width: calc((100% - 100px) / 5); scroll-snap-align: start; }
.locations { background: #f8fafb; }
.location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.45rem; }
.location-card { display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: start; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1rem, 2.5vw, 1.5rem); }
.location-card > .icon { width: 1.55rem; height: 1.55rem; color: #0a7060; }
.location-card p { margin-block: .25rem .5rem; }
.map-link { color: #285768; text-underline-offset: .2em; white-space: nowrap; font-size: .86rem; }
.faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 1.5rem; }
.questions { border-top: 1px solid var(--line); }
.questions details { border-bottom: 1px solid var(--line); }
.questions summary { display: flex; justify-content: space-between; align-items: center; gap: .55rem; padding: 1rem .15rem; font-weight: 720; cursor: pointer; list-style: none; }
.questions summary::-webkit-details-marker { display: none; }
.questions summary .icon { color: #0a7060; transition: transform .2s; }
.questions details[open] summary .icon { transform: rotate(45deg); }
.questions details p { padding: 0 .15rem 1rem; }

.closing { background: #e2f0f9; padding-block: clamp(1.4rem, 4vw, 2.7rem); }
.closing-inner, .footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.closing h2 { font-size: clamp(1.6rem, 3vw, 2.45rem); max-width: 46rem; }
.site-footer { padding-block: 1.25rem; border-top: 1px solid var(--line); }
.footer-inner { flex-wrap: wrap; font-size: .88rem; }
.footer-inner > small { color: var(--body); }
.floating-wa { position: fixed; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 3; border-radius: 99px; box-shadow: 0 .35rem 1rem #08364a40; }
.floating-wa .icon--wa { width: 2.1rem; height: 2.1rem; }
.privacy-dialog { width: min(31rem, calc(100% - 2rem)); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem; color: var(--ink); }
.privacy-dialog h2 { font-size: 1.55rem; }
.privacy-dialog p { margin: .75rem 0 1rem; }
.privacy-dialog::backdrop { background: #102f3a88; }

@media (min-width: 75rem) {
  .hero-scene { padding-block: 2.65rem 2.1rem; }
  .hero-copy { gap: 1.35rem; }
  .hero h1 { font-size: clamp(4rem, 5.5vw, 5.1rem); }
  .hero-description { max-width: 37ch; }
}

@media (max-width: 58rem) {
  .container, .trust { width: calc(100% - 2.25rem); }
  .location-card { grid-template-columns: auto 1fr; }
  .location-card .map-link { grid-column: 2; }
}

@media (max-width: 43rem) {
  :root { --header-offset: 6.6rem; }
  .container, .trust { width: calc(100% - 2rem); }
  .top-inner { min-height: 1.8rem; font-size: .72rem; }
  .nav-row { min-height: 3.7rem; gap: .45rem; flex-wrap: wrap; }
  .brand { gap: .35rem; }
  .brand-mark { width: 2.7rem; height: 2.2rem; background-size: 45rem auto; background-position: -2.32rem -.45rem; }
  .brand strong { font-size: .9rem; }
  .brand small { font-size: .5rem; }
  .nav-links { flex-wrap: wrap; justify-content: flex-start; }
  .nav-row.is-enhanced .nav-links { display: none; }
  .nav-row.is-enhanced .nav-links.is-open { position: absolute; display: grid; align-items: start; gap: 0; top: 100%; right: 0; width: min(16rem, 100%); padding: .35rem; border: 1px solid var(--line); border-radius: .6rem; background: #fff; box-shadow: 0 6px 18px #102f3a20; }
  .nav-links.is-open a { padding: .6rem .7rem; }
  .button--nav { margin-left: auto; font-size: .76rem; padding: .45rem .55rem; min-height: 2.45rem; }
  .button--nav .icon { display: none; }
  .menu-toggle { width: 2.45rem; height: 2.45rem; }
  .booking-grid, .review-grid, .faq-grid, .testimonial-grid, .location-grid, .steps { grid-template-columns: minmax(0, 1fr); }
  .hero-scene { padding-block: 1.4rem 1.45rem; }
  .hero-scene .container, .hero-proof { width: calc(100% - 2rem); }
  .hero-scene::after { height: 48%; }
  .hero-visual { width: 58%; mask-image: linear-gradient(90deg, transparent, #000 20%), linear-gradient(#000 45%, transparent 92%); mask-composite: intersect; }
  .hero-wave { width: 85%; opacity: .56; }
  .hero-copy { width: 100%; gap: .95rem; }
  .hero-heading { width: 66%; min-height: clamp(8.7rem, 41vw, 16rem); }
  .hero .eyebrow { font-size: clamp(.62rem, 2.45vw, .97rem); }
  .hero .eyebrow::after { height: .22rem; }
  .hero h1 { font-size: clamp(1.63rem, 7.55vw, 3.55rem); }
  .hero-rays { width: .45em; }
  .hero-description { max-width: min(35ch, 100%); padding-right: .25rem; }
  .hero-benefits, .hero-cta { max-width: 25rem; }
  .trust { gap: .25rem; }
  .trust li { display: grid; justify-items: center; align-content: start; gap: .3rem; padding-inline: .15rem; font-size: .74rem; }
  .review-figure { aspect-ratio: 1.7; }
  .closing-inner { align-items: flex-start; flex-direction: column; }
  .site-footer { padding-bottom: 4.5rem; }
}

@media (max-width: 25rem) {
  .fields { grid-template-columns: minmax(0, 1fr); }
  .fields .submit { grid-column: 1; grid-row: auto; }
  .top-inner span { display: none; }
  .top-inner { justify-content: flex-end; }
}

@media (max-width: 1023px) {
  .insurance { padding: 60px 1.5rem; }
  .insurance h2 { font-size: 20px; }
  .insurance-carousel { margin-top: 48px; }
  .insurance-window:not(.swiper-initialized) .swiper-slide { width: calc((100% - 50px) / 3); }
}

@media (max-width: 766px) {
  .insurance { padding: 50px 1rem; }
  .insurance h2 { padding-left: 14px; font-size: 18px; }
  .insurance-window:not(.swiper-initialized) .insurance-track { gap: 12px; }
  .insurance-window:not(.swiper-initialized) .swiper-slide { width: calc((100% - 12px) / 2); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
  .branch-select::picker-icon { transition: none; }
}
