

@font-face {
  font-family: "Season Mix";
  src: url("assets/fonts/season-mix-regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Season Mix";
  src: url("assets/fonts/season-mix-medium.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Season Mix";
  src: url("assets/fonts/season-mix-semibold.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}

:root {
  
  --blue:            #1c4497;
  --blue-deep:       #12306e;
  --blue-bright:     #2a58bd;
  --blue-tint:       #eaeffb;
  --blue-hairline:   #d8e1f4;

  --field-border:    #2a4272;

  --cream:           #f7f3ed;
  --cream-deep:      #efe8dd;
  --paper:           #ffffff;

  --ink:             #16202e;   
  --body:            #2b3646;   
  --ink-soft:        #4a5769;   
  --ink-faint:       #626e80;

  --r-card:          30px;
  --r-pill:          999px;
  --r-panel:         16px;
  --r-field:         12px;

  --wrap:            1560px;
  --gutter:          clamp(20px, 4.6vw, 80px);

  --display:         "Season Mix", "Iowan Old Style", Georgia, serif;
  --ui:              "DM Sans", "Helvetica Neue", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--ui);
  font-optical-sizing: auto;
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

img, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, p, figure, ul { margin: 0; padding: 0; }
ul { list-style: none; }

:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 6px; }

.wrap {
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.skip {
  position: absolute; left: -9999px; top: 0; z-index: 99;
  background: var(--blue); color: #fff;
  padding: .8rem 1.2rem; border-radius: 0 0 10px 0; font-weight: 600;
}
.skip:focus { left: 0; }

.site-header { position: relative; z-index: 5; }

.utility {
  background: var(--blue-deep);
  color: rgba(255, 255, 255, .93);      
  font-size: .85rem;
}

.utility__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.25rem; min-height: 44px; flex-wrap: wrap;
}

.utility__right { display: flex; align-items: center; gap: clamp(.9rem, 2.2vw, 1.75rem); }

.utility__item {
  display: inline-flex; align-items: center; gap: .5rem;
  padding-block: .35rem; transition: color .18s ease;
}
.utility__item:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

.utility__flag {
  display: inline-flex; align-items: center;
  padding: .18rem .7rem;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: var(--r-pill);
  font-weight: 600; font-size: .78rem; letter-spacing: .02em; white-space: nowrap;
}

.ico, .btn__arrow, .btn__phone, .select-caret, .appt__done svg {
  fill: currentColor; stroke: none;
}
.ico { width: 15px; height: 15px; flex: none; }

.nav-bar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem; padding-block: clamp(.9rem, 1.8vw, 1.5rem);
}

.brand img { width: clamp(178px, 17vw, 226px); height: auto; }

.nav { display: flex; align-items: center; gap: clamp(1.1rem, 2.6vw, 2.5rem); }
.nav__list { display: flex; align-items: center; gap: clamp(1rem, 2.2vw, 2.1rem); }

.nav__link {
  position: relative; color: var(--ink-soft);
  font-weight: 500; font-size: .96rem; padding-block: .4rem;
  transition: color .18s ease; white-space: nowrap;
}
.nav__link::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: .05rem;
  height: 1.5px; background: var(--blue);
  transition: right .28s cubic-bezier(.4, 0, .2, 1);
}
.nav__link:hover { color: var(--blue); }
.nav__link:hover::after { right: 0; }
.nav__link.is-current { color: var(--ink); font-weight: 600; }
.nav__link.is-current::after { right: 0; }

.nav-toggle { position: absolute; opacity: 0; pointer-events: none; }
.nav-burger { display: none; }

.hero { position: relative; width: 100%; background: var(--cream); }

.hero__band {
  position: relative;
  display: flex;
  
  min-height: clamp(720px, 54vw, 900px);
  overflow: hidden;
  background: var(--cream-deep);
  isolation: isolate;
}

.hero__bg { position: absolute; inset: 0; z-index: 0; }

.hero__img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
}

.hero__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(90deg,
    rgba(247, 243, 237, .93) 0%,
    rgba(247, 243, 237, .93) 35%,
    rgba(247, 243, 237, .40) 43%,
    rgba(247, 243, 237, 0)   49%);
}

.hero__inner { position: relative; z-index: 1; display: flex; width: 100%; }

.hero__stack {
  display: flex; flex-direction: column; justify-content: center;
  width: 100%;
  padding-block: clamp(1.6rem, 3vw, 2.6rem);
}

.hero__copy { max-width: min(620px, 45vw); }

.eyebrow {
  color: var(--blue);              
  font-weight: 600; font-size: .82rem;
  letter-spacing: .16em; text-transform: uppercase;
  margin-bottom: clamp(.9rem, 1.6vw, 1.3rem);
}

.hero__title {
  font-family: var(--display);
  font-weight: 400; font-style: normal;
  font-size: clamp(2.3rem, 3.7vw, 3.2rem);
  line-height: 1.07;
  letter-spacing: -.015em;
  color: var(--ink);               
  text-wrap: balance;
}

.hero__accent {
  display: block;
  font-style: normal; font-weight: 600;
  color: var(--blue);
  letter-spacing: -.019em;
}

.hero__sub {
  margin-top: clamp(.9rem, 1.6vw, 1.25rem);
  color: var(--ink);               
  font-size: clamp(1.02rem, 1.15vw, 1.13rem);
  line-height: 1.62;
  text-wrap: pretty;
}

.cta-row {
  display: flex; flex-wrap: wrap; gap: .8rem;
  margin-top: clamp(1.2rem, 2vw, 1.6rem);
}

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 56px; padding: 0 1.75rem;
  border: 0; border-radius: var(--r-pill);
  font-family: var(--ui); font-weight: 600; font-size: 1rem;
  white-space: nowrap; cursor: pointer;
  transition: transform .2s cubic-bezier(.4, 0, .2, 1),
              box-shadow .24s ease, background-color .2s ease, color .2s ease;
}

.btn--primary { background: var(--blue); color: #fff; }   
.btn--primary:hover {
  background: var(--blue-bright); transform: translateY(-2px);
}

.btn--ghost {
  background: rgba(255, 255, 255, .82);
  color: var(--blue);
  border: 1.5px solid rgba(28, 68, 151, .3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.btn--ghost:hover {
  background: #fff; border-color: var(--blue);
  transform: translateY(-2px);
}

.btn--sm { min-height: 46px; padding: 0 1.25rem; font-size: .93rem; }
.btn--block { width: 100%; }

.btn__arrow {
  width: 17px; height: 17px; flex: none;
  transition: transform .24s cubic-bezier(.4, 0, .2, 1);
}
.btn--primary:hover .btn__arrow { transform: translateX(4px); }

.btn__phone { width: 17px; height: 17px; flex: none; }

.trust {
  display: flex; align-items: stretch; flex-wrap: wrap;
  row-gap: .6rem;
  margin-top: clamp(1.1rem, 2vw, 1.6rem);
}

.trust__item {
  display: flex; align-items: center; gap: .5rem;
  padding-inline: clamp(.65rem, 1.3vw, 1.05rem);
}
.trust__item:first-child { padding-left: 0; }
.trust__item:last-child  { padding-right: 0; }
.trust__item + .trust__item { border-left: 1px solid rgba(28, 68, 151, .24); }

.trust__text { display: flex; flex-direction: column; line-height: 1.2; }

.trust__text strong {
  font-size: .77rem; font-weight: 700; letter-spacing: -.008em;
  color: var(--ink);
  white-space: nowrap;
}
.trust__text > span {
  margin-top: .1rem;
  font-size: .655rem; font-weight: 500; letter-spacing: .002em;
  
  color: var(--ink);
  white-space: nowrap;
}

.laurel { width: 14px; height: 35px; flex: none; color: var(--blue); }
.laurel--r { transform: scaleX(-1); }

.trust__ico { width: 19px; height: 19px; flex: none; color: var(--blue); fill: currentColor; }

.trust__stars { font-size: .6rem; letter-spacing: .04em; line-height: 1; flex: none; }

.leadform {
  margin-top: clamp(1.1rem, 2vw, 1.5rem);
  scroll-margin-top: 90px;
}

.fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .5rem;
}

.f--submit { align-self: end; }

.f label {
  display: block; margin-bottom: .2rem;
  font-size: .585rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--ink);
}

.f input,
.f select {
  width: 100%;
  height: 38px;
  padding: 0 .65rem;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(12px) saturate(1.2);
  -webkit-backdrop-filter: blur(12px) saturate(1.2);
  color: var(--ink);
  font-family: var(--ui); font-size: .84rem; line-height: 1.3;
  border: 1.5px solid var(--field-border);
  border-radius: 10px;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.f input:hover,
.f select:hover { border-color: var(--blue-bright); background: rgba(255, 255, 255, .97); }

.f input:focus,
.f select:focus {
  outline: none;
  background: #fff;
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(28, 68, 151, .22);
}
.f :is(input, select):focus-visible { outline: none; }

.select-wrap { position: relative; }
.select-wrap select { appearance: none; -webkit-appearance: none; padding-right: 1.9rem; cursor: pointer; }

.select-caret {
  position: absolute; right: .6rem; top: 50%;
  width: 13px; height: 13px; margin-top: -6.5px;
  pointer-events: none;
  color: var(--ink);
}

.f--submit .btn { height: 38px; min-height: 38px; padding: 0 .85rem; font-size: .82rem; gap: .4rem; }

.fields__consent {
  grid-column: 1 / -1;
  margin-top: -.05rem;
  color: var(--ink);              
  font-size: .66rem; line-height: 1.35;
}

.appt__done {
  display: flex; align-items: center; gap: .65rem;
  padding: .85rem 1rem;
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1.5px solid var(--blue);
  border-radius: var(--r-panel);
  color: var(--ink); font-size: .92rem; font-weight: 500;
}
.appt__done svg { width: 20px; height: 20px; flex: none; color: var(--blue); }

@media (min-width: 1024px) { .cta-jump { display: none; } }

.reveal {
  opacity: 0; transform: translateY(18px);
  animation: rise .82s cubic-bezier(.22, .68, .3, 1) forwards;
  animation-delay: var(--d, 0s);
}
@keyframes rise { to { opacity: 1; transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { animation: none; opacity: 1; transform: none; }
  * { transition-duration: .01ms !important; }
}

@media (max-width: 1180px) {
  .nav__list { gap: 1.05rem; }
  .nav__link { font-size: .9rem; }
}

@media (max-width: 1023px) {
  .nav-burger {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 46px; height: 46px; padding: 0 11px;
    border: 1px solid var(--field-border); border-radius: 12px;
    background: var(--paper); cursor: pointer; order: 3;
  }
  .nav-burger span {
    height: 2px; width: 100%; background: var(--blue); border-radius: 2px;
    transition: transform .26s ease, opacity .2s ease;
  }

  .nav {
    order: 4; flex-basis: 100%; flex-direction: column; align-items: stretch;
    gap: .35rem; display: none;
    padding: .9rem 0 .3rem;
    border-top: 1px solid var(--blue-hairline); margin-top: .9rem;
  }
  .nav-toggle:checked ~ .nav { display: flex; }

  .nav-toggle:checked ~ .nav-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle:checked ~ .nav-burger span:nth-child(2) { opacity: 0; }
  .nav-toggle:checked ~ .nav-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__link { display: block; padding: .8rem .2rem; font-size: 1.02rem; }
  .nav__link::after { display: none; }
  .nav__cta { margin-top: .6rem; align-self: flex-start; }
  .nav-bar { flex-wrap: wrap; }

  .hero__band {
    flex-direction: column;
    min-height: 0;
    overflow: visible;
    background: var(--cream);
  }

  .hero__bg {
    position: relative; inset: auto;
    height: clamp(250px, 38svh, 380px);
    overflow: hidden;
  }
  
  .hero__img { object-position: 70% 30%; }
  .hero__scrim { background: none; }

  .hero__inner { position: static; }

  .hero__stack {
    justify-content: flex-start;
    padding-block: clamp(1.7rem, 5vw, 2.4rem) clamp(1.4rem, 4vw, 2rem);
  }
  .hero__copy { max-width: 42rem; }

  .btn--ghost { background: var(--paper); }

  .leadform { margin-top: clamp(1.5rem, 4.5vw, 2.1rem); }

  .fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
  .f--submit { grid-column: span 2; }

  .f label { font-size: .68rem; margin-bottom: .3rem; }
  .f input, .f select {
    height: 52px; font-size: 1rem; border-radius: 12px;
    background: var(--paper);
    backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  .f--submit .btn { height: 54px; min-height: 54px; font-size: 1rem; }

  .trust__text > span, .fields__consent { opacity: 1; color: var(--ink-soft); }
  .select-caret { color: var(--ink-soft); }
}

@media (max-width: 640px) {
  body { font-size: 16px; }

  .hero__title { font-size: clamp(2.2rem, 8.8vw, 2.85rem); }
  .hero__accent { font-size: .97em; }

  .cta-row { flex-direction: column; align-items: stretch; }
  .btn { width: 100%; min-height: 58px; font-size: 1.02rem; }

  .trust { flex-direction: column; align-items: stretch; row-gap: 0; }
  .trust__item { padding-inline: 0; padding-block: .85rem; }
  .trust__item:first-child { padding-top: 0; }
  .trust__item + .trust__item {
    border-left: 0;
    border-top: 1px solid rgba(28, 68, 151, .2);
  }
  .trust__text strong, .trust__text > span { white-space: normal; }

  .utility__addr { display: none; }
  .utility__inner { justify-content: center; }
  .utility__right { width: 100%; justify-content: center; }

  .fields { grid-template-columns: minmax(0, 1fr); }
  .f--submit { grid-column: span 1; }
  .f input, .f select { height: 54px; font-size: 1rem; }
}

h3, blockquote, address, ol { margin: 0; padding: 0; }
address { font-style: normal; }

.appt__done[hidden] { display: none; }

.sec { position: relative; padding-block: clamp(3.6rem, 7vw, 6.8rem); }
.sec--tight     { padding-block: clamp(3rem, 5.4vw, 4.8rem); }
.sec--cream     { background: var(--cream); }
.sec--creamdeep { background: var(--cream-deep); }
.sec--paper     { background: var(--paper); }
.sec--tint      { background: var(--blue-tint); }
.sec--deep      { background: var(--blue-deep); }

.sec__split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 4.4vw, 5rem);
  align-items: center;
}
.sec__split--figure-first   { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.sec__split--wide-first     { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.sec__split--narrow-figure  { grid-template-columns: minmax(0, .62fr) minmax(0, 1.38fr); }

.sec__title {
  font-family: var(--display);
  font-weight: 400; font-style: normal;
  font-size: clamp(1.85rem, 3.1vw, 2.85rem);
  line-height: 1.12; letter-spacing: -.014em;
  color: var(--ink);
  text-wrap: balance;
}
.sec__title--big { font-size: clamp(2.05rem, 3.6vw, 3.15rem); margin-top: .65rem; }

.sec__lead {
  margin-top: clamp(.9rem, 1.6vw, 1.2rem);
  max-width: 58ch;
  font-size: clamp(1rem, 1.1vw, 1.1rem);
  line-height: 1.64;
  color: var(--ink);
  text-wrap: pretty;
}
.sec__lead--centred { margin-inline: auto; max-width: 66ch; }

.sec__note {
  margin-top: .7rem;
  font-size: .82rem; font-weight: 500; letter-spacing: .02em;
  color: var(--ink-soft);
}

.sec__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: clamp(1.4rem, 2.4vw, 2rem); }

.centred { text-align: center; max-width: 76ch; margin-inline: auto; }
.centred--narrow { max-width: 64ch; }

.link {
  color: var(--blue); font-weight: 600;
  text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px;
  transition: color .18s ease;
}
.link:hover { color: var(--blue-bright); }

.figure { margin: 0; overflow: hidden; border-radius: var(--r-card); background: var(--cream-deep); }
.figure picture { display: block; height: 100%; }
.figure img { width: 100%; height: 100%; object-fit: cover; }

.figure--tall     { aspect-ratio: 4 / 5; }        
.figure--wide     { aspect-ratio: 6 / 5; }        
.figure--square   { aspect-ratio: 1 / 1; }        
.figure--portrait { aspect-ratio: 2585 / 3852; }  

.srv { margin-top: clamp(1.4rem, 2.4vw, 2rem); border-top: 1px solid var(--blue-hairline); }

.srv__row {
  display: grid; grid-template-columns: 24px minmax(0, 1fr);
  gap: .95rem; align-items: start;
  padding-block: clamp(.85rem, 1.5vw, 1.1rem);
  border-bottom: 1px solid var(--blue-hairline);
}
.srv__ico { width: 22px; height: 22px; margin-top: .2rem; flex: none; color: var(--blue); fill: currentColor; stroke: none; }

.srv__name {
  font-family: var(--display); font-weight: 400; font-style: normal;
  font-size: clamp(1.06rem, 1.35vw, 1.22rem); line-height: 1.25;
  letter-spacing: -.008em; color: var(--ink);
}
.srv__note { margin-top: .22rem; font-size: .92rem; line-height: 1.5; color: var(--ink-soft); }

.award { display: flex; align-items: center; justify-content: center; gap: .75rem; color: var(--blue); }
.laurel--lg { width: 20px; height: 50px; }

.award__text {
  font-family: var(--ui); font-weight: 700; font-size: .76rem;
  letter-spacing: .18em; text-transform: uppercase; color: var(--blue);
}

.assoc {
  margin-top: clamp(2.6rem, 4.6vw, 4rem);
  padding-block: clamp(1.5rem, 2.6vw, 2.2rem);
  border-block: 1px solid var(--blue-hairline);
}
.assoc__label {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  margin-bottom: clamp(1.1rem, 2vw, 1.6rem);
  font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink-soft);
}
.assoc__seal { width: 15px; height: 15px; flex: none; color: var(--blue); fill: currentColor; stroke: none; }

.assoc__row {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: clamp(1.5rem, 3.2vw, 3rem);
}
.assoc__mark { transition: transform .24s cubic-bezier(.4, 0, .2, 1); }
.assoc__row li:hover .assoc__mark { transform: translateY(-2px); }

.marks { margin-top: clamp(1.2rem, 2vw, 1.6rem); }

.marks__row {
  display: grid; grid-template-columns: 22px minmax(0, 1fr);
  gap: .85rem; align-items: start;
  padding-block: .85rem;
  border-top: 1px solid var(--blue-hairline);
}
.marks__row:last-child { border-bottom: 1px solid var(--blue-hairline); }
.marks__ico { width: 20px; height: 20px; margin-top: .18rem; flex: none; color: var(--blue); fill: currentColor; stroke: none; }
.marks__name { font-family: var(--ui); font-weight: 700; font-size: .95rem; letter-spacing: -.005em; color: var(--ink); }
.marks__note { margin-top: .12rem; font-size: .9rem; line-height: 1.5; color: var(--ink-soft); }

.bilingual {
  display: grid; grid-template-columns: 22px minmax(0, 1fr);
  gap: .8rem; align-items: start;
  margin-top: clamp(1.3rem, 2.2vw, 1.8rem);
  padding-top: clamp(1.1rem, 2vw, 1.4rem);
  border-top: 1px solid rgba(28, 68, 151, .22);
  font-size: .98rem; line-height: 1.55; color: var(--ink);
}
.bilingual__ico { width: 20px; height: 20px; margin-top: .2rem; flex: none; color: var(--blue); fill: currentColor; stroke: none; }
.bilingual strong { font-weight: 700; color: var(--blue); }

.famfig { position: relative; align-self: center; }

.badge {
  position: absolute;
  left: clamp(.85rem, 2vw, 1.5rem);
  bottom: clamp(.85rem, 2vw, 1.5rem);
  max-width: min(70%, 19rem);
  padding: clamp(.85rem, 1.6vw, 1.15rem) clamp(1rem, 1.9vw, 1.4rem);
  background: var(--paper);
  border: 1px solid rgba(28, 68, 151, .3);
  border-radius: var(--r-panel);
}
.badge__stat {
  display: block;
  font-family: var(--display); font-weight: 600; font-style: normal;
  font-size: clamp(1.5rem, 2.3vw, 1.95rem); line-height: 1.08;
  letter-spacing: -.018em; color: var(--blue);
}
.badge__note {
  display: block; margin-top: .35rem;
  font-size: .82rem; line-height: 1.4; color: var(--ink);
}

.sec--deep .eyebrow    { color: var(--blue-hairline); }
.sec--deep .sec__title { color: #fff; }
.sec--deep .sec__lead  { color: rgba(255, 255, 255, .93); }

.sec--deep :focus-visible,
.site-footer :focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

.emerg {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 4.4vw, 4.5rem);
  align-items: center;
}

.emerg__copy  { grid-column: 1; grid-row: 1; }

.emerg .figure { grid-column: 2; grid-row: 1; align-self: center; }

.emerg__call {
  margin-top: clamp(1.5rem, 2.8vw, 2.2rem);
  padding-top: clamp(1.3rem, 2.4vw, 1.9rem);
  border-top: 1px solid rgba(255, 255, 255, .28);
}
.emerg__act {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: clamp(.9rem, 1.8vw, 1.4rem);
  margin-top: clamp(1.1rem, 2vw, 1.5rem);
}

.emerg__ico { width: 17px; height: 17px; flex: none; color: var(--blue-hairline); fill: currentColor; stroke: none; }
.emerg__label {
  display: flex; align-items: center; gap: .55rem;
  font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--blue-hairline);                       
}

.tel-big {
  display: inline-flex; align-items: center; gap: .55rem;
  margin-top: .55rem;
  font-family: var(--display); font-weight: 500; font-style: normal;
  font-size: clamp(1.7rem, 3.1vw, 2.5rem); line-height: 1.1;
  letter-spacing: -.02em; color: #fff;                
  transition: color .2s ease;
}
.tel-big__ico { width: .62em; height: .62em; flex: none; color: var(--blue-hairline); fill: currentColor; stroke: none; }
.tel-big:hover { color: var(--blue-hairline); }

.btn--light { background: #fff; color: var(--blue-deep); }   
.btn--light:hover { background: var(--blue-tint); transform: translateY(-2px); }

.emerg__flag { font-size: .78rem; font-weight: 600; color: rgba(255, 255, 255, .93); }

.quote {
  margin-top: clamp(1.5rem, 2.6vw, 2.1rem);
  padding-top: clamp(1.2rem, 2vw, 1.5rem);
  border-top: 1px solid var(--blue-hairline);
}

.stars { display: flex; gap: .18rem; }
.stars svg { width: 15px; height: 15px; color: var(--blue); fill: currentColor; stroke: none; }

.quote__link { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.quote__link:hover { color: var(--blue-bright); }

.sec__more { margin-top: clamp(1.4rem, 2.4vw, 2rem); }
.sec__more .link { display: inline-flex; align-items: center; gap: .5rem; }
.sec__more-ico { width: 16px; height: 16px; fill: currentColor; stroke: none; transition: transform .24s cubic-bezier(.4, 0, .2, 1); }
.sec__more .link:hover .sec__more-ico { transform: translateX(4px); }

.quiet__item .stars { margin-bottom: .7rem; }

.quote blockquote p {
  margin-top: .7rem;
  font-family: var(--display); font-weight: 400; font-style: normal;
  font-size: clamp(1.08rem, 1.55vw, 1.35rem); line-height: 1.45;
  letter-spacing: -.008em; color: var(--ink); text-wrap: pretty;
}
.quote__cite {
  margin-top: .85rem;
  font-family: var(--ui); font-size: .72rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; color: var(--blue);
}

.quiet {
  margin-top: clamp(2.2rem, 4vw, 3.2rem);
  padding-top: clamp(1.4rem, 2.4vw, 1.9rem);
  border-top: 1px solid var(--blue-hairline);
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.6rem, 3.2vw, 3rem);
}
.quiet__item blockquote p { font-size: .95rem; line-height: 1.6; color: var(--ink); }
.quiet__cite {
  margin-top: .7rem;
  font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--blue);
}

.comfort {
  margin-top: clamp(1.4rem, 2.4vw, 2rem);
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.1rem, 2.2vw, 1.7rem) clamp(1.5rem, 3vw, 2.6rem);
}
.comfort__item { padding-top: .95rem; border-top: 1px solid var(--blue-hairline); }
.comfort__ico { width: 22px; height: 22px; color: var(--blue); fill: currentColor; stroke: none; }
.comfort__name { margin-top: .6rem; font-family: var(--ui); font-weight: 700; font-size: .94rem; color: var(--ink); }
.comfort__note { margin-top: .18rem; font-size: .88rem; line-height: 1.5; color: var(--ink-soft); }

.orgs {
  margin-top: clamp(1.8rem, 3.2vw, 2.6rem);
  padding-block: 1.3rem;
  border-block: 1px solid var(--blue-hairline);
  display: flex; flex-wrap: nowrap; justify-content: center;
  gap: clamp(.9rem, 2.8vw, 2.6rem);
  max-width: 76rem; margin-inline: auto;
}
.orgs li {
  display: flex; align-items: center; gap: .42rem;
  font-family: var(--display); font-weight: 400;
  font-size: clamp(.92rem, 1.14vw, 1.08rem); color: var(--ink);
  white-space: nowrap;
}
.laurel--sm { width: .52em; height: 1.3em; flex: none; color: var(--blue); }

.nap { margin-top: clamp(1.4rem, 2.4vw, 2rem); }
.nap__row {
  display: grid; grid-template-columns: 22px minmax(0, 1fr);
  gap: .9rem; align-items: start;
  padding-block: .95rem;
  border-top: 1px solid var(--blue-hairline);
}
.nap__row:last-child { border-bottom: 1px solid var(--blue-hairline); }
.nap__ico { width: 20px; height: 20px; margin-top: .22rem; flex: none; color: var(--blue); fill: currentColor; stroke: none; }
.nap__label { font-size: .63rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); }
.nap__value { margin-top: .22rem; font-size: 1.02rem; font-weight: 500; color: var(--ink); }
.nap__sub { margin-top: .15rem; font-size: .85rem; line-height: 1.5; color: var(--ink-soft); }

.findus {
  padding: clamp(1.6rem, 3vw, 2.4rem);
  border: 1px solid rgba(28, 68, 151, .22);
  border-radius: var(--r-card);
  background: var(--cream);
  text-align: center;
}

.findus__map {
  aspect-ratio: 4 / 3;
  margin-bottom: clamp(1.2rem, 2.2vw, 1.7rem);
  border: 1px solid var(--blue-hairline);
  border-radius: var(--r-panel);
  overflow: hidden;
  background: var(--cream-deep);
}
.findus__map iframe { display: block; width: 100%; height: 100%; border: 0; }

.findus__addr {
  font-family: var(--display); font-weight: 400; font-style: normal;
  font-size: clamp(1.2rem, 1.7vw, 1.5rem); line-height: 1.3; color: var(--ink);
}
.findus__marks { margin-top: clamp(1rem, 1.8vw, 1.3rem); border-top: 1px solid var(--blue-hairline); }
.findus__marks li {
  padding-block: .72rem;
  border-bottom: 1px solid var(--blue-hairline);
  font-size: .9rem; line-height: 1.5; color: var(--ink-soft);
}
.findus .btn { margin-top: clamp(1.2rem, 2.2vw, 1.6rem); }

.site-footer {
  background: var(--blue-deep);
  color: rgba(255, 255, 255, .93);
  padding-top: clamp(2.8rem, 5vw, 4.4rem);
}

.foot {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
  gap: clamp(1.8rem, 3.4vw, 3.4rem);
  padding-bottom: clamp(2rem, 3.6vw, 3rem);
}

.foot__brand img { width: clamp(180px, 15vw, 216px); height: auto; }
.foot__line { margin-top: 1.05rem; max-width: 34ch; font-size: .95rem; line-height: 1.6; color: rgba(255, 255, 255, .93); }

.foot__head {
  margin-bottom: .95rem;
  font-family: var(--ui); font-size: .68rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--blue-hairline);
}

.foot__list li + li { margin-top: .55rem; }
.foot__list a, .foot__nap a, .foot__mini a { color: rgba(255, 255, 255, .93); transition: color .18s ease; }
.foot__list a:hover, .foot__nap a:hover, .foot__mini a:hover {
  color: #fff; text-decoration: underline; text-underline-offset: 3px;
}

.foot__nap { font-size: .95rem; line-height: 1.75; color: rgba(255, 255, 255, .93); }
.foot__hours { margin-top: .75rem; font-size: .86rem; color: var(--blue-hairline); }

.foot__social { display: flex; gap: .6rem; }
.foot__social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  border: 1px solid rgba(255, 255, 255, .32); border-radius: var(--r-pill);
  color: #fff;
  transition: background-color .2s ease, transform .2s cubic-bezier(.4, 0, .2, 1);
}
.foot__social a:hover { background: rgba(255, 255, 255, .14); transform: translateY(-2px); }
.foot__social svg { width: 19px; height: 19px; fill: currentColor; stroke: none; }

.foot__flag { margin-top: 1.05rem; font-size: .78rem; font-weight: 600; color: rgba(255, 255, 255, .93); }

.foot__bar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: .8rem; padding-block: 1.15rem;
  border-top: 1px solid rgba(255, 255, 255, .18);
  font-size: .82rem; color: rgba(255, 255, 255, .8);   
}
.foot__mini { display: flex; gap: 1.2rem; }

.js-rise [data-rise] {
  opacity: 0; transform: translateY(16px);
  transition: opacity .68s cubic-bezier(.22, .68, .3, 1),
              transform .68s cubic-bezier(.22, .68, .3, 1);
  transition-delay: var(--d, 0s);
}
.js-rise [data-rise].is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .js-rise [data-rise] { opacity: 1; transform: none; transition: none; }
}

.utility__act {
  padding: .2rem .78rem;
  border: 1px solid rgba(255, 255, 255, .45);
  border-radius: var(--r-pill);
  font-weight: 600; font-size: .78rem; white-space: nowrap;
  transition: background-color .2s ease, color .18s ease;
}
.utility__act:hover { background: rgba(255, 255, 255, .12); text-decoration: none; }
.utility__act .ico { width: 14px; height: 14px; }

.nav__util { display: none; }

@media (max-width: 1023px) {
  .sec { padding-block: clamp(2.9rem, 6.2vw, 4.2rem); }

  .sec__split,
  .sec__split--figure-first,
  .sec__split--wide-first,
  .sec__split--narrow-figure,
  .emerg {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(1.8rem, 4.5vw, 2.6rem);
  }
  
  .sec__split .figure, .famfig { order: -1; }
  
  .emerg__copy, .emerg .figure { grid-column: auto; grid-row: auto; }

  .sec__lead { max-width: 62ch; }

  .quiet   { grid-template-columns: minmax(0, 1fr); }
  .comfort { grid-template-columns: minmax(0, 1fr); }
  .foot    { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .emerg__act { width: 100%; }         

  .orgs { flex-wrap: wrap; flex-direction: column; align-items: center; gap: 0; }
  .orgs li { padding-block: .78rem; white-space: normal; }
  .orgs li + li { border-top: 1px solid rgba(28, 68, 151, .24); align-self: stretch; justify-content: center; }

  .utility__act { display: none; }
  .nav__util { display: block; }
  .nav__util .nav__link { display: inline-flex; align-items: center; gap: .55rem; }
}

@media (max-width: 640px) {
  .sec__title      { font-size: clamp(1.75rem, 7.4vw, 2.3rem); }
  .sec__title--big { font-size: clamp(1.9rem, 8vw, 2.5rem); }

  .assoc__row { gap: 1.4rem 1.8rem; }

  .foot { grid-template-columns: minmax(0, 1fr); }
  .foot__social a { width: 52px; height: 52px; }

  .findus__ring--c { display: none; }
  .findus__map { height: 160px; }

  .foot__bar { justify-content: flex-start; }
}
