/* Revision 9, page group: convert. Scoped to this group's templates. */
/* Insurance and financing, Book (with ?for=ortho and ?for=ped) and Contact.
   Every rule is scoped to one of these templates' body classes, so the home
   page is untouched. The shared system (revision-5.css) loads after this
   file: where a rule here has to win, it carries the body classes. */


/* ==========================================================================
   Book: no hero. The booking card first, the office beside it.
   ========================================================================== */

.page-template-template-booking .bk {
  --bk-l: var(--ortho); --bk-lt: #eee9f8; --bk-lt2: #f7f4fb;
  padding-block: clamp(1rem, 0.6rem + 2.2vw, 3rem) clamp(3rem, 2rem + 4vw, 6rem);
  background:
    radial-gradient(60rem 30rem at 88% -8%, rgba(70, 45, 136, 0.07), transparent 65%),
    radial-gradient(50rem 28rem at -12% 105%, rgba(11, 111, 125, 0.06), transparent 65%),
    var(--paper);
}
.page-template-template-booking .bk--ped { --bk-l: var(--ped); --bk-lt: #e5f5f6; --bk-lt2: #f2faf9; }
/* No lane chosen yet: the call, the pin and the Google link stay neutral, so
   nothing suggests one specialty before the visitor picks it. */
.page-template-template-booking .bk:not(.bk--ortho):not(.bk--ped) { --bk-l: var(--ink); --bk-lt: #eeecf2; --bk-lt2: #f6f5f8; }

/* One column (the office card under the booking card) until 80rem, where the
   booking card is wide enough for the two lanes side by side next to the
   office. The office card ends where its content ends; its photograph keeps
   one ratio at every width, whichever lane is shown. */
.page-template-template-booking .bk__grid { display: grid; gap: 1.25rem; align-items: start; }
@media (min-width: 80rem) {
  .page-template-template-booking .bk__grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(1.5rem, 2.4vw, 2.5rem); }
  .page-template-template-booking .bk-aside .bk-place__photo { aspect-ratio: 4 / 3; }
}

/* The card */
.page-template-template-booking .bk-card {
  display: grid; gap: clamp(1.6rem, 1.2rem + 1.2vw, 2.25rem); min-width: 0; overflow: visible;
  padding: clamp(1.35rem, 0.9rem + 2.2vw, 2.75rem);
  border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.5rem; background: #fff;
  box-shadow: 0 34px 80px -56px rgba(26, 18, 54, 0.55);
  scroll-margin-top: calc(var(--header-h, 63px) + 1rem);
}
.page-template-template-booking .bk-card__head { display: grid; gap: 0.7rem; }
.page-template-template-booking .bk-card__head h1 {
  max-width: 22ch; margin: 0; font-size: clamp(1.8rem, 1.25rem + 1.9vw, 2.75rem); line-height: 1.06; letter-spacing: -0.04em; text-wrap: balance;
}
/* The page title is the site's one H1 scale (revision-5.css, the hero H1). */
@media (min-width: 48rem) {
  .page-template-template-booking .bk-card__head h1 { max-width: 20ch; font-size: clamp(2.6rem, 4.2vw, 3.8rem); line-height: 1.03; letter-spacing: -0.045em; }
}
.page-template-template-booking .bk-card__for {
  justify-self: start; margin: 0 0 0.15rem; padding: 0.3rem 0.75rem; border-radius: 999px;
  background: var(--bk-lt2); color: var(--bk-l); font-size: 0.78rem; font-weight: 700;
}
.page-template-template-booking .bk-card__intro { max-width: 46ch; margin: 0; color: var(--body); font-size: var(--fs-lede); line-height: 1.55; text-wrap: pretty; }

/* The two steps */
.page-template-template-booking .bk-steps { display: grid; gap: clamp(1.5rem, 1.2rem + 1vw, 2rem); margin: 0; padding: 0; list-style: none; }
.page-template-template-booking .bk-step { margin: 0; padding: 0; }
.page-template-template-booking .bk-step::marker { content: none; }
.page-template-template-booking .bk-step__k {
  display: flex; align-items: center; gap: 0.7rem; margin: 0 0 1rem;
  color: var(--ink); font-family: var(--text); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.13em; line-height: 1.2; text-transform: uppercase;
}
.page-template-template-booking .bk-step__n {
  display: grid; place-items: center; flex: none; width: 1.7rem; height: 1.7rem; border-radius: 999px;
  background: var(--ink); color: #fff; font-size: 0.78rem; font-weight: 800; letter-spacing: 0;
}

/* Step 1: the two lanes */
.page-template-template-booking .bk-lanes { display: grid; gap: 0.75rem; }
@media (min-width: 40rem) { .page-template-template-booking .bk-lanes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; } }
.page-template-template-booking .bk-lane {
  --l: var(--ortho); --lt: #eee9f8; --lt2: #f7f4fb;
  position: relative; display: grid; grid-template-columns: 2.9rem minmax(0, 1fr); column-gap: 0.95rem; align-items: start;
  min-width: 0; padding: 1.15rem 1.15rem 1.05rem;
  border: 1.5px solid var(--line-soft, #e5e1ea); border-radius: 1.1rem; background: #fff; color: var(--ink); text-decoration: none;
  transition: border-color 0.2s ease, box-shadow 0.25s ease, transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1), background-color 0.2s ease;
}
.page-template-template-booking .bk-lane--ped { --l: var(--ped); --lt: #e5f5f6; --lt2: #f2faf9; }
.page-template-template-booking .bk-lane:hover { border-color: color-mix(in srgb, var(--l) 45%, #e5e1ea); box-shadow: 0 22px 40px -30px rgba(26, 18, 54, 0.45); transform: translateY(-2px); }
.page-template-template-booking .bk-lane:focus-visible { outline: 3px solid var(--l); outline-offset: 3px; }
.page-template-template-booking .bk-lane.is-selected { border-color: var(--l); background: var(--lt2); box-shadow: inset 0 0 0 1px var(--l); }
.page-template-template-booking .bk-lane__icon {
  display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border-radius: 0.85rem; background: var(--lt); color: var(--l);
}
.page-template-template-booking .bk-lane.is-selected .bk-lane__icon { background: var(--l); color: #fff; }
.page-template-template-booking .bk-lane__body { display: contents; }
.page-template-template-booking .bk-lane__title { grid-column: 2; align-self: end; padding-right: 2rem; font-family: var(--display); font-size: 1.14rem; font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; }
.page-template-template-booking .bk-lane__icon { grid-row: 1 / span 2; }
.page-template-template-booking .bk-lane__note { grid-column: 2; margin-top: 0.2rem; color: var(--body); font-size: 0.88rem; line-height: 1.45; }
.page-template-template-booking .bk-lane__who {
  grid-column: 1 / -1; display: grid; grid-template-columns: 2.9rem minmax(0, 1fr); align-items: center; column-gap: 0.95rem; min-width: 0; margin-top: 0.95rem; padding-top: 0.85rem;
  border-top: 1px solid color-mix(in srgb, var(--l) 14%, #ece8f1); color: var(--l); font-size: 0.82rem; font-weight: 700; line-height: 1.3;
}
/* The portraits sit in the icon's column (two overlapping fill it exactly,
   one is centred), so the names start where the lane title starts in both
   lanes. */
.page-template-template-booking .bk-lane__faces { display: flex; justify-content: center; min-width: 0; }
.page-template-template-booking .bk-lane__face {
  display: block; flex: none; width: 1.8rem; height: 1.8rem; overflow: hidden; border: 2px solid #fff; border-radius: 999px; background: var(--lt);
  box-shadow: 0 2px 6px -2px rgba(26, 18, 54, 0.35);
}
.page-template-template-booking .bk-lane__face + .bk-lane__face { margin-left: -0.7rem; }
.page-template-template-booking .bk-lane__face img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.page-template-template-booking .bk-lane__check {
  position: absolute; top: 1.1rem; right: 1.1rem; display: grid; place-items: center; width: 1.45rem; height: 1.45rem;
  border: 1.5px solid #d9d3e3; border-radius: 999px; background: #fff; color: transparent; transition: all 0.2s ease;
}
.page-template-template-booking .bk-lane__check svg { width: 0.8rem; height: 0.8rem; }
.page-template-template-booking .bk-lane.is-selected .bk-lane__check { border-color: var(--l); background: var(--l); color: #fff; }

@media (max-width: 39.99rem) {
  .page-template-template-booking .bk-lane { grid-template-columns: 2.6rem minmax(0, 1fr); column-gap: 0.8rem; padding: 0.95rem 0.95rem 0.9rem; }
  .page-template-template-booking .bk-lane__icon { width: 2.6rem; height: 2.6rem; border-radius: 0.75rem; }
  .page-template-template-booking .bk-lane__title { font-size: 1.06rem; }
  .page-template-template-booking .bk-lane__note { font-size: 0.84rem; line-height: 1.4; }
  .page-template-template-booking .bk-lane__who { grid-template-columns: 2.6rem minmax(0, 1fr); column-gap: 0.8rem; margin-top: 0.75rem; padding-top: 0.7rem; }
  .page-template-template-booking .bk-lane__face { width: 1.7rem; height: 1.7rem; }
  .page-template-template-booking .bk-lane__face + .bk-lane__face { margin-left: -0.8rem; }
  .page-template-template-booking .bk-lane__check { top: 0.95rem; right: 0.95rem; }
}

/* Step 2: the call */
.page-template-template-booking .bk-call { display: flex; flex-wrap: wrap; align-items: center; gap: 0.9rem 1.5rem; }
.page-template-template-booking .bk-call__btn { min-width: min(100%, 21rem); justify-content: flex-start; }
@media (max-width: 39.99rem) { .page-template-template-booking .bk-call__btn { width: 100%; } }
.page-template-template-booking .bk-call__hours { display: flex; align-items: center; gap: 0.5rem; margin: 0; color: var(--body-strong, #3c3450); font-size: 0.88rem; font-weight: 600; line-height: 1.4; }
.page-template-template-booking .bk-call__hours svg { flex: none; color: var(--bk-l); }
.page-template-template-booking .bk-card__note { margin: 0.85rem 0 0; color: var(--body); font-size: 0.86rem; line-height: 1.5; }

/* The first visit, once a lane is chosen */
.page-template-template-booking .bk-visit { display: grid; gap: 1rem; }
.page-template-template-booking .bk-visit__col { --bk-l: inherit; padding: 1.2rem 1.35rem 1.3rem; border-radius: 1.1rem; background: var(--bk-lt2); }
.page-template-template-booking .bk-visit--both .bk-visit__col--ortho { --bk-l: var(--ortho); --bk-lt2: #f7f4fb; }
.page-template-template-booking .bk-visit--both .bk-visit__col--ped { --bk-l: var(--ped); --bk-lt2: #f2faf9; }
@media (min-width: 40rem) { .page-template-template-booking .bk-visit--both { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.page-template-template-booking .bk-visit__k { margin: 0 0 0.85rem; color: var(--bk-l); font-family: var(--text); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.13em; line-height: 1.2; text-transform: uppercase; }
.page-template-template-booking .bk-visit__list { display: grid; gap: 0.65rem; margin: 0; padding: 0; list-style: none; }
.page-template-template-booking .bk-visit__list li { display: flex; align-items: flex-start; gap: 0.6rem; margin: 0; color: var(--ink); font-size: 0.92rem; font-weight: 600; line-height: 1.4; }
.page-template-template-booking .bk-visit__ic { display: grid; place-items: center; flex: none; width: 1.3rem; height: 1.3rem; margin-top: 0.05rem; border-radius: 999px; background: var(--bk-l); color: #fff; }
.page-template-template-booking .bk-visit__ic svg { width: 0.72rem; height: 0.72rem; }
@media (min-width: 48rem) { .page-template-template-booking .bk-visit:not(.bk-visit--both) .bk-visit__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } }

.page-template-template-booking .bk-card__foot { display: grid; gap: 0.9rem; padding-top: clamp(1.35rem, 1rem + 1vw, 1.75rem); border-top: 1px solid var(--line-soft, #e5e1ea); }
.page-template-template-booking .bk-card__privacy { margin: 0; color: var(--muted, #6b6478); font-size: 0.8rem; line-height: 1.5; }

/* The Google rating as one row under the steps: the "G", the score, the
   count and the link (the word "Google" is in the count's link and in the
   visually hidden source label). */
.page-template-template-booking .bk-trust.gbadge--card {
  display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 0.35rem 1rem; width: 100%; max-width: none;
  padding: 0.95rem 1.2rem; border-radius: 1rem; background: var(--paper); box-shadow: none;
}
.page-template-template-booking .bk-trust .gbadge__top { font-size: 0.86rem; }
.page-template-template-booking .bk-trust .gbadge__src { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.page-template-template-booking .bk-trust .gbadge__score { gap: 0.55rem; }
.page-template-template-booking .bk-trust .gbadge__num { font-size: 1.6rem; }
.page-template-template-booking .bk-trust .gbadge__count { font-size: 0.8rem; }
.page-template-template-booking .bk-trust .gbadge__biz { display: none; }
.page-template-template-booking .bk-trust .gbadge__cta { justify-self: end; color: var(--bk-l); font-size: 0.84rem; }
.page-template-template-booking .bk-trust .gbadge__cta .go-link__ic { background: var(--bk-lt); }
a.bk-trust.gbadge--card:hover { border-color: #d6cfe2; }
@media (max-width: 47.99rem) {
  .page-template-template-booking .bk-trust.gbadge--card { grid-template-columns: auto minmax(0, 1fr); gap: 0.5rem 0.8rem; padding: 1rem 1.05rem; }
  .page-template-template-booking .bk-trust .gbadge__count { grid-column: 2; margin-top: -0.35rem; }
  .page-template-template-booking .bk-trust .gbadge__cta { grid-column: 1 / -1; justify-self: start; }
}


/* The office, beside the card */
.page-template-template-booking .bk-aside { display: grid; gap: 1rem; min-width: 0; }
.page-template-template-booking .bk-place {
  min-width: 0; overflow: hidden; border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.5rem; background: #fff;
  box-shadow: 0 30px 70px -56px rgba(26, 18, 54, 0.5);
}
.page-template-template-booking .bk-place__photo { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--mist); }
.page-template-template-booking .bk-place__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 30% 55%; transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.page-template-template-booking a.bk-place__photo:hover img { transform: scale(1.03); }
.page-template-template-booking .bk-place__map {
  position: absolute; bottom: 0.85rem; left: 0.85rem; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 0.85rem;
  border-radius: 999px; background: rgba(255, 255, 255, 0.95); color: var(--ink); font-size: 0.82rem; font-weight: 700;
  box-shadow: 0 10px 24px -12px rgba(26, 18, 54, 0.5);
}
.page-template-template-booking .bk-place__map svg { color: var(--bk-l); }
.page-template-template-booking .bk-place__body { padding: 1.35rem 1.45rem 1.5rem; }
.page-template-template-booking .bk-place__k { margin: 0; color: var(--muted, #6b6478); font-family: var(--text); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.13em; line-height: 1.2; text-transform: uppercase; }
.page-template-template-booking .bk-place__name { margin: 0.55rem 0 0; color: var(--ink); font-family: var(--display); font-size: 1.15rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.02em; }
.page-template-template-booking .bk-place__addr { margin: 0.2rem 0 0; color: var(--body-strong, #3c3450); font-size: 0.95rem; line-height: 1.45; }
.page-template-template-booking .bk-place__note { margin: 0.2rem 0 0; color: var(--body); font-size: 0.84rem; line-height: 1.45; }
.page-template-template-booking .bk-place .cdet { margin-top: 1.15rem; padding-top: 1.15rem; border-top: 1px solid var(--line-soft, #e5e1ea); }
/* Tablet and small desktop: the office card under the booking card, the
   photograph as a banner at one fixed ratio, then two columns: the office
   and its numbers, and the opening hours. */
@media (min-width: 48rem) and (max-width: 79.99rem) {
  .page-template-template-booking .bk-place__photo { aspect-ratio: 5 / 2; }
  .page-template-template-booking .bk-place__photo img { object-position: 30% 50%; }
  .page-template-template-booking .bk-place__body {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto auto auto 1fr; align-items: start;
    column-gap: clamp(1.75rem, 4vw, 3.5rem); padding: clamp(1.5rem, 1rem + 1.2vw, 2.1rem) clamp(1.5rem, 1rem + 1.6vw, 2.4rem);
  }
  .page-template-template-booking .bk-place__body > :not(.cdet) { grid-column: 1; }
  .page-template-template-booking .bk-place .cdet { display: contents; }
  .page-template-template-booking .bk-place .cdet__item--hours { grid-column: 2; grid-row: 1 / -1; padding-left: clamp(1.75rem, 4vw, 3.5rem); border-left: 1px solid var(--line-soft, #e5e1ea); }
  .page-template-template-booking .bk-place .cdet__item--lines { grid-column: 1; grid-row: 5; margin-top: 1.15rem; padding-top: 1.15rem; border-top: 1px solid var(--line-soft, #e5e1ea); }
}


/* ==========================================================================
   Contact details (template-parts/components/contact-tiles.php), used on
   Contact and Book
   ========================================================================== */

:is(.page-template-template-booking, .page-template-template-contact) .cdet { display: grid; gap: 1.15rem; min-width: 0; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__k {
  margin: 0; color: var(--muted, #6b6478); font-family: var(--text); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.13em; line-height: 1.2; text-transform: uppercase;
}
:is(.page-template-template-booking, .page-template-template-contact) .cdet__hours { display: grid; gap: 0.1rem; margin: 0.65rem 0 0; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__hours > div {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 0.38rem 0; border-bottom: 1px dashed #ebe7f0;
  font-size: 0.9rem; line-height: 1.35;
}
:is(.page-template-template-booking, .page-template-template-contact) .cdet__hours > div:last-child { border-bottom: 0; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__hours dt { color: var(--ink); font-weight: 600; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__hours dd { margin: 0; color: var(--body-strong, #3c3450); font-variant-numeric: tabular-nums; text-align: right; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__hours .is-closed dd { color: var(--muted, #6b6478); }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__hnotes { display: grid; gap: 0.3rem; margin: 0.7rem 0 0; padding: 0; list-style: none; color: var(--body); font-size: 0.8rem; line-height: 1.45; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__hnotes li { position: relative; margin: 0; padding-left: 0.85rem; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__hnotes li::before { content: ""; position: absolute; top: 0.55em; left: 0; width: 0.3rem; height: 0.3rem; border-radius: 999px; background: #c9c2d6; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__lines { display: grid; gap: 0.15rem; margin: 0.65rem 0 0; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__lines > div { display: grid; grid-template-columns: 3.6rem minmax(0, 1fr); align-items: center; gap: 0.5rem; min-height: 2.1rem; font-size: 0.92rem; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__lines dt { color: var(--ink); font-weight: 700; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__lines dd { margin: 0; min-width: 0; overflow-wrap: anywhere; color: var(--body-strong, #3c3450); }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__lines a { color: var(--ink); font-weight: 600; text-decoration: none; }
:is(.page-template-template-booking, .page-template-template-contact) .cdet__lines a:hover { color: var(--ortho); }

/* The three ways to reach the office, as cards */
.page-template-template-contact .cdet--cards { gap: 1rem; }
@media (min-width: 48rem) { .page-template-template-contact .cdet--cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; } }
.page-template-template-contact .cdet--cards > .cdet__item {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 0.4rem; min-width: 0;
  padding: clamp(1.35rem, 1rem + 1vw, 1.9rem); border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.35rem; background: #fff;
  box-shadow: 0 24px 50px -40px rgba(26, 18, 54, 0.45);
}
.page-template-template-contact .cdet--cards .cdet__icon {
  display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 0.65rem; border-radius: 0.9rem; background: #eee9f8; color: var(--ortho);
}
.page-template-template-contact .cdet--cards .cdet__item--email .cdet__icon { background: #e5f5f6; color: var(--ped); }
.page-template-template-contact .cdet--cards .cdet__v {
  margin: 0.1rem 0 0; color: var(--ink); font-family: var(--display); font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.45rem); font-weight: 700; line-height: 1.25;
  letter-spacing: -0.02em; overflow-wrap: anywhere; text-decoration: none;
}
.page-template-template-contact .cdet--cards a.cdet__v:hover { color: var(--ortho); }
/* Side by side, every value holds two lines (the address takes both), so
   the three notes start on one line. */
@media (min-width: 48rem) { .page-template-template-contact .cdet--cards .cdet__v { min-height: 2.5em; } }
.page-template-template-contact .cdet--cards .cdet__note { text-wrap: pretty; }
.page-template-template-contact .cdet--cards .cdet__note { margin: 0.35rem 0 0; color: var(--body); font-size: 0.88rem; line-height: 1.5; }
.page-template-template-contact .cdet__fax { display: block; margin-top: 0.3rem; color: var(--body-strong, #3c3450); font-weight: 600; }
@media (max-width: 47.99rem) {
  .page-template-template-contact .cdet--cards { gap: 0.75rem; }
  .page-template-template-contact .cdet--cards > .cdet__item { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); column-gap: 0.95rem; row-gap: 0.15rem; padding: 1.1rem 1.15rem; }
  .page-template-template-contact .cdet--cards .cdet__icon { grid-row: 1 / span 3; width: 2.75rem; height: 2.75rem; margin: 0; border-radius: 0.8rem; }
  .page-template-template-contact .cdet--cards .cdet__v { font-size: 1.15rem; }
  .page-template-template-contact .cdet--cards .cdet__note { margin-top: 0.2rem; font-size: 0.84rem; }
}


/* ==========================================================================
   Contact
   ========================================================================== */

/* The building in the arch: the sign and the entrance, not the sky. */
.page-template-template-contact.premium-inner .ihero__visual .ihero__art img { object-position: 28% 60%; }

.page-template-template-contact .contact-hub .sect-head,
.page-template-template-contact .contact-find .sect-head { margin-bottom: clamp(1.75rem, 1.4rem + 1.2vw, 2.75rem); }
.page-template-template-contact .contact-find__go { flex: none; }

.page-template-template-contact .contact-find__grid { display: grid; gap: 1.25rem; }
@media (min-width: 64rem) { .page-template-template-contact .contact-find__grid { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 1.5rem; align-items: stretch; } }

.page-template-template-contact .contact-map {
  display: flex; flex-direction: column; min-width: 0; overflow: hidden;
  border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.5rem; background: #fff; box-shadow: 0 30px 70px -56px rgba(26, 18, 54, 0.5);
}
.page-template-template-contact .contact-map__frame { position: relative; flex: 1; min-height: 20rem; background: #eef0f3; }
@media (min-width: 64rem) { .page-template-template-contact .contact-map__frame { min-height: 26rem; } }
.page-template-template-contact .contact-map__frame iframe { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; border: 0; }
/* While the map loads: a quiet street grid with the pin in the middle. */
.page-template-template-contact .contact-map__frame {
  background:
    radial-gradient(circle at 50% 50%, rgba(70, 45, 136, 0.08), transparent 16rem),
    repeating-linear-gradient(0deg, transparent 0 46px, rgba(26, 18, 54, 0.05) 46px 48px),
    repeating-linear-gradient(90deg, transparent 0 46px, rgba(26, 18, 54, 0.05) 46px 48px),
    #f1f2f5;
}
.page-template-template-contact .contact-map__ph {
  position: absolute; top: 50%; left: 50%; display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 999px;
  background: #fff; color: var(--ortho); box-shadow: 0 16px 30px -14px rgba(26, 18, 54, 0.55), 0 0 0 10px rgba(70, 45, 136, 0.08); transform: translate(-50%, -50%);
}
.page-template-template-contact .contact-map__bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.9rem 1rem; padding: 1.1rem 1.35rem; border-top: 1px solid var(--line-soft, #e5e1ea);
}
.page-template-template-contact .contact-map__pin { display: grid; place-items: center; flex: none; width: 2.75rem; height: 2.75rem; border-radius: 0.85rem; background: #eee9f8; color: var(--ortho); }
.page-template-template-contact .contact-map__addr { display: grid; flex: 1 1 14rem; gap: 0.1rem; min-width: 0; line-height: 1.35; }
.page-template-template-contact .contact-map__addr strong { color: var(--ink); font-family: var(--display); font-size: 1.05rem; font-weight: 700; letter-spacing: -0.015em; }
.page-template-template-contact .contact-map__addr span { color: var(--body-strong, #3c3450); font-size: 0.92rem; }
.page-template-template-contact .contact-map__btn { flex: none; }

.page-template-template-contact .contact-find__side { display: grid; gap: 1.25rem; align-content: start; min-width: 0; }
.page-template-template-contact .contact-hours { padding: clamp(1.35rem, 1rem + 1vw, 1.75rem); border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.35rem; background: #fff; box-shadow: 0 24px 50px -40px rgba(26, 18, 54, 0.45); }
.page-template-template-contact .contact-find__side .gbadge--card { max-width: none; }
@media (min-width: 48rem) and (max-width: 63.99rem) {
  .page-template-template-contact .contact-find__side { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  /* Beside the taller hours card, the Google card spreads its rows over the
     shared height instead of leaving a gap at one end. */
  .page-template-template-contact .contact-find__side .gbadge--card { justify-content: space-between; }
}

@media (max-width: 47.99rem) {
  .page-template-template-contact .contact-map__btn { width: 100%; justify-content: center; }
}


/* ==========================================================================
   Insurance and financing
   ========================================================================== */

/* The two cards from the home insurance summary. */
.page-template-template-insurance .ins-plans .card__body > h3,
.page-template-template-insurance .ins-plans .fold-head > h3 {
  margin: 0; font-size: clamp(1.4rem, 1.15rem + 0.9vw, 1.85rem); line-height: 1.12; letter-spacing: -0.028em;
}
.page-template-template-insurance .ins-plans .pay-card__title { color: #fff; }
.page-template-template-insurance .ins-plans .card__fold > .carriers { margin: 1rem 0 0; }
.page-template-template-insurance .ins-plans .fold-panel .credential-source { margin: 0; }
.page-template-template-insurance .ins-plans .ins-card__acts { display: grid; justify-items: start; gap: 0.6rem; margin-top: auto; padding-top: 0.5rem; }
.page-template-template-insurance .ins-plans .ins-card__acts .btn { min-height: 52px; padding-inline: 1.5rem; }
.page-template-template-insurance .ins-plans .book-cta__note { font-size: var(--fs-sm); color: var(--body); text-wrap: pretty; }
.page-template-template-insurance .sect-head .lede { text-wrap: pretty; }

/* Each way to pay: the home card's rows (its titles are one level down here). */
.page-template-template-insurance .pay-list__item h4 {
  margin: 0; font-family: var(--display); font-size: 1.12rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.015em; color: #fff;
}

.page-template-template-insurance .faqpage__nav h2 { font-size: var(--fs-h3); line-height: 1.12; }
.page-template-template-insurance .faqpage__nav h2 + p { margin-top: 0.75rem; }

@media (max-width: 47.99rem) {
  .page-template-template-insurance .ins-plans .fold-head > h3 { font-size: 1.35rem; }
  .page-template-template-insurance .pay-list__item .fold-head { min-height: 44px; }
  .page-template-template-insurance .pay-list__item .fold-head > h4 { font-size: 1.02rem; }
  .page-template-template-insurance .ins-plans .ins-card__acts { justify-items: stretch; }
  .page-template-template-insurance .ins-plans .ins-card__acts .btn { width: 100%; }
  /* The helper line repeats the button on a phone. */
  .page-template-template-insurance .ins-plans .book-cta__note { display: none; }

  /* The questions column: heading, then the phone line and the button. */
  .page-template-template-insurance .faqpage__nav { display: block; }
  .page-template-template-insurance .faqpage__nav .inline-cta .btn { width: 100%; }
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
  /* Tablet: side by side, the carriers card ran ragged and its phone button
     broke over two lines, so the two cards stack until the desktop layout. */
  .page-template-template-insurance .ins-plans .ins-summary__grid { grid-template-columns: 1fr; }
}
