/* Collision North — shared theme
   Sections: foundations, header, hero, content, reviews, contact, footer,
   dialogs, responsive layouts, print. Keep this source readable and unminified. */

@font-face {
  font-family: 'PT Sans';
  src: url('../fonts/pt-sans-regular.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Titillium';
  src: url('../fonts/titillium-web-bold.woff2') format('woff2');
  font-weight: 700;
  font-display: swap;
}

:root {
  --blue: #4e6daa;
  --blue-dark: #345487;
  --navy: #172b46;
  --ink: #262e39;
  --muted: #606b79;
  --line: #dce3ec;
  --light: #f1f4f8;
  --gold: #aa7719;
  --width: 1160px;
  --radius: 7px;
  --shadow: 0 12px 32px rgb(23 43 70 / 8%);
  --image-radius: 18px;
  --image-glow:
    0 0 0 1px rgb(78 109 170 / 10%), 0 0 24px rgb(78 109 170 / 12%), 0 10px 28px rgb(23 43 70 / 9%);
}

/* Foundations */
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 24px;
}
body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font:
    17.5px/1.58 'PT Sans',
    Arial,
    sans-serif;
}
img,
svg,
video {
  max-width: 100%;
  height: auto;
}
picture {
  display: block;
}
/* Photos keep a soft blue halo; transparent brand artwork uses an alpha-aware shadow. */
img,
video {
  border-radius: var(--image-radius);
  box-shadow: var(--image-glow);
}
.mn-logo img,
.mn-footer-logo img,
.mn-appointment-brand img {
  border-radius: 0;
  box-shadow: none;
  filter: drop-shadow(0 2px 8px rgb(78 109 170 / 18%));
}
.mn-footer-logo img,
.mn-appointment-brand img {
  filter: drop-shadow(0 0 9px rgb(173 199 238 / 22%));
}
a {
  color: var(--blue-dark);
  text-underline-offset: 4px;
}
a:hover {
  color: #233f6d;
}
button {
  font: inherit;
}
button,
a,
summary {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: default;
}
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 3px solid #bc790c;
  outline-offset: 4px;
}
h1,
h2,
h3 {
  margin: 0 0 16px;
  font-family: 'Titillium', 'PT Sans', Arial, sans-serif;
  font-weight: 700;
  line-height: 1.2;
  text-wrap: balance;
}
h2 {
  color: var(--blue-dark);
  font-size: clamp(28px, 2.8vw, 34px);
}
h3 {
  color: var(--blue-dark);
  font-size: 23px;
}
p {
  margin: 0 0 18px;
}
ul {
  padding-left: 22px;
}
li {
  margin: 6px 0;
}
address {
  font-style: normal;
}
main:focus {
  outline: none;
}
[hidden] {
  display: none !important;
}
.mn-container {
  width: min(var(--width), calc(100% - 48px));
  margin-inline: auto;
}
.mn-eyebrow {
  margin-bottom: 11px;
  color: var(--blue-dark);
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 1.65px;
  text-transform: uppercase;
}
.mn-skip {
  position: absolute;
  z-index: 20;
  top: -90px;
  left: 20px;
  padding: 12px 20px;
  color: var(--ink);
  background: #fff;
  box-shadow: var(--shadow);
}
.mn-skip:focus {
  top: 12px;
}
.mn-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.mn-btn {
  display: inline-flex;
  min-height: 49px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1px solid var(--blue);
  border-radius: 4px;
  color: #fff;
  background: var(--blue);
  font-size: 16px;
  font-weight: bold;
  line-height: 1.35;
  text-decoration: none;
  transition:
    background-color 160ms,
    box-shadow 160ms;
}
.mn-btn:hover {
  color: #fff;
  background: var(--blue-dark);
  border-color: var(--blue-dark);
}
.mn-btn-white {
  color: var(--blue-dark);
  background: #fff;
  border-color: #fff;
}
.mn-btn-white:hover {
  color: var(--blue-dark);
  background: #eaf0f9;
  border-color: #eaf0f9;
}
.mn-btn-outline {
  color: var(--blue-dark);
  background: transparent;
}
.mn-text-link {
  display: inline-block;
  font-size: 16px;
  font-weight: bold;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.mn-centered {
  text-align: center;
}

/* Familiar brand header, with more deliberate proportions. */
.mn-header {
  background: #fff;
}
.mn-header-top {
  display: grid;
  grid-template-columns: 1fr 235px 1fr;
  align-items: center;
  gap: 28px;
  padding-block: 16px;
}
.mn-logo {
  display: block;
  text-align: center;
}
.mn-logo img {
  width: 184px;
  vertical-align: middle;
}
.mn-reputation {
  justify-self: start;
  color: var(--ink);
  line-height: 1.4;
  text-decoration: none;
}
.mn-reputation strong {
  display: block;
  color: var(--gold);
  font: 700 26px/1.4 'Titillium';
}
.mn-reputation .mn-stars {
  font-size: 22px;
  letter-spacing: 1px;
}
.mn-reputation small {
  display: block;
  font-size: 14px;
}
.mn-reputation > span:last-child {
  display: block;
  margin-top: 7px;
  color: var(--muted);
  font-size: 14px;
}
.mn-header-contact {
  text-align: right;
  font-size: 15px;
  line-height: 1.45;
}
.mn-header-contact > a {
  display: block;
  margin-bottom: 6px;
  color: var(--navy);
  font-size: 22px;
  font-weight: bold;
  text-decoration: none;
}
.mn-nav {
  color: #fff;
  background: var(--blue);
  border-bottom: 3px solid #38578b;
}
.mn-nav-inner {
  display: flex;
  min-height: 55px;
  align-items: center;
  justify-content: center;
}
.mn-nav-list {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
}
.mn-nav-list li {
  margin: 0;
}
.mn-nav-list a {
  display: block;
  padding: 15px 23px;
  color: #fff;
  font-size: 16px;
  text-decoration: none;
}
.mn-nav-list a:hover {
  background: rgb(255 255 255 / 10%);
}
.mn-nav-list a[aria-current='page'] {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 8px;
}
.mn-menu-toggle {
  display: none;
  min-height: 54px;
  align-items: center;
  gap: 10px;
  color: #fff;
  background: transparent;
  border: 0;
}
.mn-menu-icon {
  position: relative;
  display: block;
  width: 22px;
  height: 18px;
  border-block: 2px solid currentColor;
}
.mn-menu-icon::after {
  content: '';
  position: absolute;
  top: 6px;
  left: 0;
  width: 100%;
  border-top: 2px solid currentColor;
}
.mn-nav-call {
  display: none;
  color: #fff;
  font-weight: bold;
  text-decoration: none;
}

/* Image-led hero sections. */
.mn-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: 330px;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: var(--navy);
  border-radius: var(--image-radius);
  box-shadow: var(--image-glow);
  text-align: center;
}
.mn-hero-home {
  min-height: 500px;
}
.mn-hero-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  border-radius: var(--image-radius);
  object-fit: cover;
  box-shadow: none;
}
.mn-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: linear-gradient(90deg, #142434a8, #172b469e);
}
.mn-hero-content {
  width: min(870px, calc(100% - 48px));
  padding: 48px 0;
}
.mn-hero .mn-eyebrow {
  color: #e2eaf5;
}
.mn-hero h1 {
  margin-bottom: 18px;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.12;
}
.mn-hero p:not(.mn-eyebrow) {
  max-width: 720px;
  margin: 0 auto 24px;
  font-size: 20px;
  line-height: 1.5;
  text-wrap: pretty;
}
.mn-hero .mn-btn-white {
  box-shadow: 0 8px 24px rgb(0 0 0 / 12%);
}
.mn-hero-secondary {
  display: inline-flex;
  min-height: 49px;
  align-items: center;
  padding: 10px 8px;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  text-underline-offset: 6px;
}
.mn-hero-secondary:hover {
  color: #e2eaf5;
}
.mn-breadcrumb {
  display: flex;
  align-items: center;
  gap: 9px;
  padding-top: 22px;
  color: var(--muted);
  font-size: 13px;
}

/* Shared page rhythm and photo-led service cards. */
.mn-section,
.mn-page-intro {
  padding-block: 58px;
}
.mn-section-alt {
  background: var(--light);
  border-block: 1px solid #e5eaf1;
}
.mn-section-heading {
  max-width: 760px;
  margin: 0 auto 30px;
  text-align: center;
}
.mn-section-heading p:not(.mn-eyebrow) {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 17px;
}
.mn-heading-row {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin-bottom: 28px;
}
.mn-heading-row h2 {
  margin-bottom: 0;
}
.mn-heading-row .mn-btn {
  flex-shrink: 0;
}
.mn-grid {
  display: grid;
  gap: 24px;
}
.mn-grid-3,
.mn-service-grid,
.mn-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 25px;
}
.mn-grid-2,
.mn-two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 42px;
  align-items: center;
}
.mn-card,
.mn-service-card,
.mn-detail-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}
.mn-service-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--image-radius);
  box-shadow: var(--image-glow);
}
.mn-card-photo {
  position: relative;
  overflow: hidden;
  margin: 10px 10px 0;
  border-radius: calc(var(--image-radius) - 6px);
  box-shadow: 0 0 18px rgb(78 109 170 / 14%);
}
.mn-card-photo > picture {
  border-radius: inherit;
}
.mn-card-photo img {
  display: block;
  width: 100%;
  height: 195px;
  border-radius: inherit;
  object-fit: cover;
  box-shadow: none;
}
.mn-card-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: start;
  padding: 25px;
}
.mn-card-content h3 {
  margin-bottom: 13px;
  font-size: 24px;
}
.mn-card-content p {
  margin-bottom: 20px;
  color: var(--muted);
  font-size: 16.5px;
}
.mn-card-content .mn-text-link {
  margin-top: auto;
  padding-top: 5px;
}
.mn-detail-card {
  display: flex;
  flex-direction: column;
  align-items: start;
  padding: 26px;
  border-top: 3px solid var(--blue);
}
.mn-detail-card h3 {
  font-size: 22px;
}
.mn-detail-card p {
  font-size: 16px;
  color: var(--muted);
}
.mn-detail-card .mn-text-link {
  margin-top: auto;
  padding-top: 8px;
}
.mn-detail-card p:last-child {
  margin-bottom: 0;
}
.mn-split-feature,
.mn-story-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 46px;
  align-items: center;
}
.mn-feature-photo {
  min-width: 0;
  overflow: hidden;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  background: #fff;
  box-shadow: var(--image-glow);
}
.mn-feature-photo > picture,
.mn-story-visual > picture {
  overflow: hidden;
  border-radius: calc(var(--image-radius) - 6px);
}
.mn-feature-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: inherit;
  object-fit: cover;
  box-shadow: none;
}
.mn-feature-photo figcaption {
  padding: 12px 6px 2px;
  color: var(--muted);
  font-size: 13px;
}
.mn-feature-copy h2,
.mn-story-grid .mn-copy h2 {
  max-width: 23ch;
}
.mn-copy p:last-child,
.mn-feature-copy p:last-child {
  margin-bottom: 0;
}
.mn-feature-copy > h3,
.mn-copy > h3 {
  margin-top: 25px;
  font-size: 22px;
}
.mn-service-list,
.mn-feature-list {
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
}
.mn-service-list li,
.mn-feature-list li {
  position: relative;
  margin: 0;
  padding: 9px 0 9px 27px;
  border-bottom: 1px solid var(--line);
  font-size: 16px;
}
.mn-service-list li::before,
.mn-feature-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--blue);
  font-weight: bold;
}
.mn-panel,
.mn-visit-card {
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}
.mn-panel h3,
.mn-visit-card h3 {
  font-size: 24px;
}
.mn-visit-card {
  border-top: 4px solid var(--blue);
}
.mn-visit-card .mn-hours {
  margin-bottom: 18px;
}
.mn-visit-card address {
  margin-bottom: 17px;
  font-size: 18px;
}
.mn-visit-card p {
  font-size: 16px;
}
.mn-support-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 30px 34px;
  border-radius: var(--radius);
  color: #dce6f3;
  background: var(--navy);
}
.mn-support-panel h2,
.mn-support-panel h3,
.mn-support-panel .mn-eyebrow {
  color: #fff;
}
.mn-support-panel h2,
.mn-support-panel h3 {
  margin-bottom: 9px;
  font-size: 27px;
}
.mn-support-panel p {
  max-width: 66ch;
  margin-bottom: 0;
  font-size: 16px;
}
.mn-support-panel > .mn-btn {
  flex-shrink: 0;
}
.mn-support-panel a:not(.mn-btn) {
  color: #fff;
}

/* A contrasting story section, with a contained detailing offer. */
.mn-shop-story {
  color: #dfe7f2;
  background: var(--navy);
}
.mn-shop-story .mn-story-grid {
  grid-template-columns: 0.95fr 1.05fr;
}
.mn-shop-story h2 {
  max-width: 24ch;
  color: #fff;
}
.mn-shop-story .mn-eyebrow {
  color: #b4c8e7;
}
.mn-shop-story p {
  max-width: 51ch;
}
.mn-shop-story .mn-text-link {
  color: #fff;
}
.mn-value-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 22px 0;
  padding: 0;
  list-style: none;
}
.mn-value-list li {
  margin: 0;
  padding: 7px 11px;
  border: 1px solid #60728e;
  border-radius: 3px;
  color: #f0f4fa;
  font-size: 13px;
}
.mn-story-visual {
  overflow: hidden;
  margin: 0;
  padding: 10px;
  border: 1px solid #6c7e98;
  border-radius: var(--image-radius);
  background: #fff;
  box-shadow: var(--image-glow);
}
.mn-story-visual img {
  display: block;
  width: 100%;
  height: 290px;
  border-radius: inherit;
  object-fit: cover;
  box-shadow: none;
}
.mn-offer-caption {
  padding: 23px 17px 13px;
  color: var(--ink);
  background: #fff;
}
.mn-offer-caption .mn-eyebrow {
  margin-bottom: 5px;
  color: var(--blue-dark);
  font-size: 11px;
}
.mn-offer-caption h3 {
  margin-bottom: 9px;
  color: var(--blue-dark);
  font-size: 26px;
}
.mn-offer-caption p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 16px;
}
.mn-video-panel {
  position: relative;
  display: block;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  aspect-ratio: 16 / 9;
  background: var(--navy);
  box-shadow: var(--image-glow);
}
.mn-video-panel img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  box-shadow: none;
  opacity: 0.62;
}
.mn-video-button {
  position: absolute;
  inset: 0;
  display: grid;
  width: 100%;
  place-content: center;
  gap: 12px;
  color: #fff;
  background: transparent;
  border: 0;
  font-size: 18px;
  font-weight: bold;
}
.mn-play {
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  margin: auto;
  padding-left: 4px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: rgb(23 43 70 / 55%);
  font-size: 24px;
}

/* Customer reviews: stable author footers, full text on the reviews page. */
.mn-review-stage {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 38px;
  align-items: center;
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}
.mn-review-stage .mn-review-heading {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 20px;
  margin: 0;
}
.mn-review-stage .mn-rating {
  width: 100%;
  padding: 26px;
  border-radius: 5px;
  background: var(--light);
}
.mn-rating strong {
  color: var(--blue-dark);
  font: 700 45px/1.2 'Titillium';
}
.mn-rating .mn-stars {
  color: var(--gold);
  font-size: 24px;
}
.mn-rating p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 14px;
}
.mn-reviews-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 23px;
}
.mn-review-preview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 23px;
}
.mn-review {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 26px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--blue);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 6px 18px rgb(23 43 70 / 4%);
}
.mn-review p {
  font-size: 16px;
}
.mn-review .mn-stars {
  margin-bottom: 13px;
  color: var(--gold);
  font-size: 22px;
  letter-spacing: 1px;
}
.mn-review-quote {
  margin: 0 0 20px;
}
.mn-review-quote p:last-child {
  margin-bottom: 0;
}
.mn-review-author {
  margin: auto 0 3px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  font-size: 17px;
  font-weight: bold;
}
.mn-review-date {
  margin: 0;
  color: var(--muted);
  font-size: 13px !important;
}
.mn-review-preview .mn-review-quote {
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mn-review-note {
  margin: 18px 0;
  color: var(--muted);
  font-size: 13px;
}
.mn-review-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 26px;
}
.mn-filter {
  min-height: 43px;
  padding: 9px 18px;
  border: 1px solid #becbdc;
  border-radius: 4px;
  color: var(--ink);
  background: #fff;
  font-size: 15px;
}
.mn-filter[aria-pressed='true'] {
  color: #fff;
  background: var(--blue);
  border-color: var(--blue);
}
.mn-review-more {
  margin-top: 27px;
  text-align: center;
}

/* Contact: direct phone and visit information. */
.mn-contact-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 32px;
  align-items: stretch;
}
.mn-contact-details {
  display: grid;
  gap: 24px;
}
.mn-contact-card {
  min-width: 0;
  padding: 27px;
}
.mn-contact-card.mn-support-panel {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 0;
}
.mn-contact-card.mn-support-panel .mn-btn {
  margin-top: auto;
}
.mn-contact-card.mn-support-panel p {
  margin-bottom: 20px;
}
.mn-contact-card h2 {
  margin-bottom: 13px;
  font-size: 27px;
}
.mn-contact-card h3 {
  margin-top: 23px;
  font-size: 21px;
}
.mn-contact-card .mn-btn {
  width: 100%;
}
.mn-contact-card address {
  font-size: 18px;
}
.mn-hours {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 9px 18px;
  margin: 0;
  font-size: 15px;
}
.mn-hours dt,
.mn-hours dd {
  margin: 0;
}
.mn-map-section {
  padding-bottom: 48px;
}
.mn-map {
  display: block;
  width: 100%;
  height: 330px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--light);
}

/* Shared call invitation and a more substantial footer. */
.mn-cta {
  padding-block: 31px;
  color: #fff;
  background: var(--blue);
  border-top: 1px solid #748fc0;
}
.mn-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.mn-cta h2 {
  margin-bottom: 7px;
  color: #fff;
  font-size: 29px;
}
.mn-cta p {
  margin: 0;
  color: #e9eff8;
  font-size: 16px;
}
.mn-cta .mn-buttons {
  flex-shrink: 0;
}
.mn-cta .mn-btn-outline {
  color: #fff;
  border-color: #d0dbed;
}
.mn-cta .mn-btn-outline:hover {
  background: rgb(255 255 255 / 10%);
}
.mn-footer {
  color: #d6e0ed;
  background: var(--navy);
  border-bottom: 5px solid var(--blue);
}
.mn-footer-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1.1fr 1fr;
  gap: 35px;
  padding-block: 38px;
}
.mn-footer-logo {
  display: block;
  width: 170px;
  margin-bottom: 17px;
}
.mn-footer-logo img {
  display: block;
}
.mn-footer h2 {
  margin-bottom: 17px;
  color: #fff;
  font-size: 21px;
}
.mn-footer p,
.mn-footer address,
.mn-footer a,
.mn-footer dl {
  font-size: 14px;
  line-height: 1.65;
}
.mn-footer a {
  color: #e6edf7;
}
.mn-footer a:hover {
  color: #fff;
}
.mn-footer .mn-brand-text {
  max-width: 245px;
  margin: 0;
  color: #c2cedf;
}
.mn-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}
.mn-footer-links li {
  margin: 7px 0;
}
.mn-footer-links a {
  text-decoration: none;
}
.mn-footer-contact a {
  display: inline-block;
  overflow-wrap: anywhere;
}
.mn-footer-contact .mn-phone {
  margin-bottom: 8px;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
}
.mn-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-block: 19px;
  border-top: 1px solid #455671;
  color: #bdcadc;
  font-size: 12px;
}
.mn-footer-bottom p {
  margin: 0;
  font-size: 12px;
}
.mn-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}
.mn-legal-links a {
  font-size: 12px;
}
.mn-registration {
  margin: 14px 0 0;
  color: #b8c7da;
  font-size: 11px !important;
}
.mn-mobile-actions {
  display: none;
}

/* Dialogs: homepage call or dismissal; video remains visitor-initiated. */
.mn-dialog {
  width: min(920px, calc(100% - 28px));
  max-height: calc(100svh - 28px);
  overflow: auto;
  padding: 16px;
  border: 0;
  border-radius: var(--image-radius);
  color: #fff;
  background: var(--navy);
  box-shadow: 0 25px 100px rgb(0 0 0 / 35%);
}
.mn-dialog::backdrop {
  background: rgb(10 22 40 / 72%);
}
.mn-dialog video {
  display: block;
  width: 100%;
  max-height: 75svh;
}
.mn-dialog-close {
  display: block;
  margin: 0 0 12px auto;
  padding: 6px 14px;
  border: 1px solid #8092ac;
  border-radius: 4px;
  color: #fff;
  background: transparent;
}
.mn-appointment {
  width: min(440px, calc(100% - 32px));
  max-height: calc(100svh - 32px);
  padding: 0;
  color: var(--ink);
  background: #fff;
  text-align: center;
}
.mn-appointment-visual {
  position: relative;
  height: 158px;
  overflow: hidden;
  margin: 10px 10px 0;
  border-radius: calc(var(--image-radius) - 6px);
  background: var(--navy);
  box-shadow: var(--image-glow);
}
.mn-appointment-visual > img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  box-shadow: none;
  opacity: 0.38;
}
.mn-appointment-brand {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}
.mn-appointment-brand img {
  display: block;
  width: 166px;
}
.mn-appointment-body {
  padding: 26px 30px 16px;
}
.mn-appointment h2 {
  margin-bottom: 11px;
  color: var(--blue-dark);
  font-size: 29px;
}
.mn-appointment p {
  margin-bottom: 23px;
  color: var(--muted);
  font-size: 16px;
}
.mn-appointment-call {
  width: 100%;
  min-height: 51px;
  font-size: 17px;
}
.mn-appointment-call svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.mn-dismiss {
  display: block;
  min-height: 46px;
  width: 100%;
  margin-top: 9px;
  padding: 10px;
  border: 0;
  color: var(--muted);
  background: transparent;
  font-size: 15px;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.mn-dismiss:hover {
  color: var(--blue-dark);
}

/* Utility pages share the same visual language without decorative clutter. */
.mn-utility-page {
  background: var(--light);
}
.mn-prose {
  max-width: 860px;
  margin-inline: auto;
  padding: 38px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}
.mn-prose h1 {
  color: var(--blue-dark);
  font-size: 38px;
}
.mn-prose h2 {
  margin-top: 30px;
  font-size: 26px;
}
.mn-prose p:last-child {
  margin-bottom: 0;
}

/* Responsive layouts */
@media (min-width: 1000px) {
  .mn-hero-home .mn-hero-image {
    object-position: center 55%;
  }
}
@media (max-width: 1050px) {
  .mn-nav-list a {
    padding-inline: 16px;
  }
  .mn-header-top {
    grid-template-columns: 1fr 205px 1fr;
    gap: 20px;
  }
  .mn-split-feature,
  .mn-story-grid {
    gap: 30px;
  }
  .mn-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
  }
  .mn-footer .mn-brand-text {
    max-width: 310px;
  }
  .mn-cta-inner {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 21px;
  }
  .mn-card-content {
    padding: 21px;
  }
  .mn-card-photo img {
    height: 170px;
  }
}
@media (max-width: 767px) {
  body {
    padding-bottom: 76px;
    font-size: 17px;
  }
  .mn-container {
    width: calc(100% - 36px);
  }
  .mn-header-top {
    grid-template-columns: 1fr;
    gap: 0;
    padding-block: 12px;
  }
  .mn-logo img {
    width: 153px;
  }
  .mn-reputation,
  .mn-header-contact {
    display: none;
  }
  .mn-nav-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    min-height: 54px;
  }
  .mn-menu-toggle {
    display: flex;
    justify-self: start;
  }
  .mn-nav-call {
    display: block;
    font-size: 16px;
  }
  .mn-nav-list {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 8px 0 15px;
    align-items: stretch;
  }
  .mn-nav-list li {
    width: 100%;
  }
  .mn-nav-list a {
    padding: 12px 10px;
    font-size: 16px;
  }
  .mn-nav-list[data-collapsed='true'] {
    display: none;
  }
  .mn-hero {
    min-height: 300px;
  }
  .mn-hero-home {
    min-height: 450px;
  }
  .mn-hero-content {
    width: calc(100% - 38px);
    padding-block: 39px;
  }
  .mn-hero h1 {
    font-size: clamp(31px, 7vw, 42px);
  }
  .mn-hero p:not(.mn-eyebrow) {
    font-size: 18px;
  }
  .mn-hero-home .mn-hero-image {
    object-position: 60% center;
  }
  .mn-section,
  .mn-page-intro {
    padding-block: 43px;
  }
  .mn-section-heading {
    margin-bottom: 25px;
  }
  .mn-heading-row {
    flex-direction: column;
    align-items: start;
    gap: 18px;
  }
  .mn-grid-2,
  .mn-two-col,
  .mn-split-feature,
  .mn-story-grid,
  .mn-shop-story .mn-story-grid,
  .mn-contact-grid,
  .mn-review-stage {
    grid-template-columns: minmax(0, 1fr);
    gap: 27px;
  }
  .mn-grid-3,
  .mn-service-grid,
  .mn-detail-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 23px;
  }
  .mn-card-photo img {
    height: auto;
    aspect-ratio: 16 / 9;
  }
  .mn-card-content {
    padding: 24px;
  }
  .mn-card-content p {
    margin-bottom: 17px;
  }
  .mn-feature-photo img {
    aspect-ratio: 16 / 10;
  }
  .mn-feature-copy h2,
  .mn-story-grid .mn-copy h2 {
    max-width: 25ch;
  }
  .mn-panel,
  .mn-visit-card,
  .mn-detail-card {
    padding: 25px;
  }
  .mn-support-panel {
    flex-direction: column;
    align-items: start;
    gap: 21px;
    padding: 26px;
  }
  .mn-support-panel > .mn-btn {
    width: 100%;
  }
  .mn-story-visual img {
    height: auto;
    aspect-ratio: 16 / 10;
  }
  .mn-offer-caption {
    padding: 23px 13px 13px;
  }
  .mn-review-stage {
    padding: 25px;
  }
  .mn-review-stage .mn-rating {
    padding: 22px;
  }
  .mn-review-preview,
  .mn-reviews-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
  .mn-review {
    padding: 24px;
  }
  .mn-contact-grid {
    gap: 27px;
  }
  .mn-contact-card {
    padding: 25px;
  }
  .mn-map {
    height: 270px;
  }
  .mn-map-section {
    padding-bottom: 36px;
  }
  .mn-breadcrumb {
    padding-top: 18px;
    font-size: 13px;
  }
  .mn-cta {
    padding-block: 28px;
  }
  .mn-cta h2 {
    font-size: 28px;
  }
  .mn-cta .mn-buttons {
    width: 100%;
  }
  .mn-cta .mn-btn {
    flex: 1;
  }
  .mn-footer-grid {
    gap: 28px;
    padding-block: 34px;
  }
  .mn-footer-bottom {
    flex-direction: column;
    align-items: start;
    gap: 13px;
    padding-block: 20px;
  }
  .mn-mobile-actions {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    border-top: 1px solid #ccd5e2;
    background: #fff;
    box-shadow: 0 -3px 15px rgb(23 43 70 / 8%);
  }
  .mn-mobile-actions .mn-btn {
    min-height: 44px;
    padding: 10px 9px;
    font-size: 15px;
  }
  .mn-prose {
    padding: 26px;
  }
  .mn-prose h1 {
    font-size: 32px;
  }
}
@media (max-width: 430px) {
  .mn-hero .mn-buttons {
    flex-direction: column;
    gap: 5px;
  }
  .mn-hero .mn-btn {
    width: 100%;
  }
  .mn-hero-secondary {
    justify-content: center;
    min-height: 43px;
  }
  .mn-footer-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 25px;
  }
  .mn-footer-brand {
    display: flex;
    align-items: center;
    gap: 20px;
  }
  .mn-footer-logo {
    width: 127px;
    flex-shrink: 0;
    margin-bottom: 0;
  }
  .mn-footer .mn-brand-text {
    font-size: 13px;
  }
  .mn-cta .mn-buttons {
    flex-direction: column;
  }
  .mn-filter {
    padding: 9px 12px;
    font-size: 14px;
  }
  .mn-appointment-body {
    padding: 23px 22px 12px;
  }
  .mn-appointment h2 {
    font-size: 27px;
  }
}
@media (max-height: 580px) and (orientation: landscape) {
  .mn-appointment-visual {
    display: none;
  }
  .mn-appointment-body {
    padding: 20px 26px 10px;
  }
  .mn-appointment h2 {
    font-size: 25px;
  }
  .mn-appointment p {
    margin-bottom: 15px;
  }
  .mn-dismiss {
    margin-top: 4px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}
@media print {
  body {
    padding: 0;
    font-size: 12pt;
  }
  .mn-nav,
  .mn-mobile-actions,
  .mn-buttons,
  .mn-review-controls,
  .mn-review-more,
  .mn-video-button,
  .mn-dialog,
  .mn-map {
    display: none;
  }
  .mn-hero {
    min-height: 0;
    color: #000;
    background: #fff;
  }
  .mn-hero-image,
  .mn-hero::after {
    display: none;
  }
  .mn-section,
  .mn-page-intro {
    padding-block: 20px;
  }
  .mn-shop-story,
  .mn-support-panel,
  .mn-footer {
    color: #000;
    background: #fff;
  }
  .mn-shop-story h2,
  .mn-support-panel h2,
  .mn-footer h2 {
    color: #000;
  }
  .mn-prose {
    border: 0;
    padding: 0;
  }
}
