/* Mini landing pages: a real image beside the message, not empty wallpaper. */
main .page-hero {
  background: var(--paper, #faf9f5) !important;
  color: var(--ink, #272578);
  padding: clamp(32px, 5vw, 68px) 0;
}
main .page-hero::before, main .page-hero::after { display: none; }
main .page-hero .page-hero-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(28px, 4vw, 64px);
  width: min(1180px, calc(100% - 64px));
  max-width: 1180px;
  margin: 0 auto;
  padding: 0;
}
main .page-hero .page-hero-copy { min-width: 0; width: auto; max-width: none; padding: 0; }
main .page-hero h1 { font-size: clamp(32px, 3.5vw, 52px); line-height: 1.12; max-width: 23ch; }
main .page-hero .lede { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.6; max-width: 54ch; }
main .page-hero .section-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.page-media { margin: 0; min-width: 0; }
main .page-media img {
  display: block; width: 100%; max-width: 100%; height: auto;
  aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: 16px;
  border: 1px solid color-mix(in srgb, var(--ink) 32%, transparent);
}
main .page-media figcaption { margin-top: 12px; color: inherit; font-size: 15px; line-height: 1.5; opacity: 1; }
.page-media-card { margin-bottom: 20px; }
.page-intro { display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 28px; align-items: center; margin-bottom: 32px; }
.page-intro > div { min-width: 0; }
.page-intro h1 { margin-top: 0; }
.page-intro .page-media img { aspect-ratio: 4 / 3; }
.page-intro .page-media figcaption { font-size: 14px; }
main .page-hero[data-page-kind="information"] .page-media { max-width: 360px; justify-self: end; }

/* Explicit colors include visited links. Separate photos from reading surfaces. */
main a:not(.btn):not([class*="card"]):not([class*="chip"]),
.guide-breadcrumbs a, .site-footer a { color: inherit; text-underline-offset: .2em; }
.guide-breadcrumbs {
  box-sizing: border-box; padding: 12px 18px; border-radius: 10px;
  background: var(--paper, #faf9f5); color: var(--ink, #272578);
  border: 1px solid color-mix(in srgb, var(--ink) 30%, transparent);
}
.guide-breadcrumbs a { font-weight: 650; }
.footer-utility-links, .footer-address { opacity: 1; }
main input::placeholder, main textarea::placeholder { color: currentColor !important; opacity: 1 !important; }
/* A form needs an uninterrupted reading surface, including over the slideshow. */
body.page-quote .quote-wizard-wrap { background: #faf9f5 !important; color: #272578; }
body.page-quote .quote-wizard-wrap::before { display: none; }
main .guide-section { background: var(--paper, #faf9f5) !important; color: var(--ink, #272578); }
main .guide-card {
  background: color-mix(in srgb, var(--paper) 94%, var(--ink));
  border-color: color-mix(in srgb, var(--ink) 32%, transparent);
}
main .guide-faq summary, main .guide-card a { color: inherit; }
main a:not(.btn):hover, .guide-breadcrumbs a:hover { text-decoration-thickness: 2px; }
.guide-theme-grid .guide-card { display: flex; flex-direction: column; }
.guide-theme-grid .guide-card > a:last-child { margin-top: auto; padding-top: 12px; }

/* Two calm, aligned rows. Secondary information never becomes a laptop banner. */
.site-header { --header-inset: 56px; }
.site-header .utility-bar { background: #171538 !important; color: #f1eff9; border-bottom: 1px solid #ffffff20; }
.site-header .utility-bar::before { display: none; }
.site-header .utility-bar > .sky-live { display: none; }
.site-header .utility-bar-inner, .site-header .header-shell {
  width: min(1280px, calc(100% - var(--header-inset)));
  margin-inline: auto;
}
.site-header .utility-bar-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "place live contact";
  align-items: center; gap: 8px 24px; min-height: 44px; padding-block: 0;
  font-size: 14px; letter-spacing: 0;
}
.site-header .utility-left { display: contents; }
.site-header .utility-place { grid-area: place; display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.site-header .utility-live { grid-area: live; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 12px; min-width: 0; }
.site-header .utility-right { grid-area: contact; flex-wrap: nowrap; gap: 20px; margin: 0; justify-content: flex-end; }
.site-header .utility-sep, .site-header .utility-coffee { display: none; }
.site-header .utility-holiday { font-size: 14px; font-weight: 500; color: #e1ddef; }
.site-header .utility-date, .site-header .utility-clock, .site-header .utility-weather { font-size: 14px; font-weight: 500; color: #e1ddef; }
.site-header .utility-address { font-size: 14px; font-weight: 500; min-height: 44px; }
.site-header .utility-love { font-family: var(--font-body); font-size: 14px; font-weight: 500; display: inline-flex; }
.site-header .utility-arch { display: none; }
.site-header .utility-phone {
  min-height: 44px; padding: 0; border: 0; border-radius: 0;
  background: none; box-shadow: none; color: #fff; font-size: 15px;
  font-weight: 650; letter-spacing: .01em;
}
.site-header .utility-phone-digits {
  background: none; -webkit-text-fill-color: currentColor; animation: none; color: inherit;
}
.site-header .utility-phone-icon { color: inherit; width: 14px; height: 14px; }
.site-header .utility-phone:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-header .header-row, .site-header .header-row:has(.brand-place-setting) {
  min-height: 80px; padding-block: 10px; gap: 24px; box-sizing: border-box;
}
.site-header .brand { flex: 0 1 auto; }
.site-header .brand-place { padding: 0; }
.site-header .brand-logo-plate { width: 54px; height: 54px; border-color: #e7e4f3; box-shadow: none; }
.site-header .brand-name { line-height: 1.2; }
.site-header .nav-link { opacity: 1; letter-spacing: .025em; }
/* Painted ink must follow the phase too, including WebKit text-fill. */
.site-header .brand-name, .site-header .header-row > .nav .nav-link,
.site-header .nav-mobile .nav-link {
  color: inherit !important; -webkit-text-fill-color: currentColor !important;
  background: none !important; background-clip: border-box;
  -webkit-background-clip: border-box; text-shadow: none; animation: none;
}
.site-header .nav > a.btn.btn-nav, .site-header .header-quote {
  min-height: 44px; padding: 10px 18px; border: 1px solid #e7e4f3;
  background: #272578; color: #fff; box-shadow: none; font-size: 16px; line-height: 1.3;
}
.site-header .header-quote { display: none; align-self: center; margin-left: auto; white-space: nowrap; }
.site-header .nav-toggle { width: 44px; height: 44px; }
@media (max-width: 1439px) {
  .site-header .utility-family, .site-header .utility-date { display: none; }
}
@media (min-width: 1100px) {
  .site-header .header-row:has(.brand-place-setting) > .nav { display: flex; gap: 24px; padding-left: 0; flex: 0 0 auto; }
  .site-header .header-row > .nav .nav-link { font-size: 1rem; letter-spacing: .025em; }
  .site-header .header-row > .nav-toggle, .site-header .nav-mobile { display: none !important; }
}
@media (max-width: 1099px) {
  .site-header { --header-inset: 40px; }
  .site-header .utility-holiday { display: none; }
  .site-header .header-row > .nav { display: none; }
  .site-header .header-quote { display: inline-flex; }
  .site-header .header-row > .nav-toggle { display: inline-grid !important; }
  .site-header .nav-mobile:not([hidden]) { display: flex !important; }
}
@media (max-width: 959px) {
  .site-header .utility-address { display: none; }
}
@media (max-width: 639px) {
  .site-header { --header-inset: 32px; }
  .site-header .utility-bar-inner { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "place contact"; gap: 12px; min-height: 40px; }
  .site-header .utility-live { display: none; }
  .site-header .utility-phone { min-height: 40px; font-size: 14px; }
  .site-header .header-row, .site-header .header-row:has(.brand-place-setting) { min-height: 72px; gap: 12px; }
  .site-header .brand-logo-plate { width: 42px; height: 42px; }
  .site-header .brand.brand-with-wordmark .brand-name { font-size: clamp(14px, 3.5vw, 19px); letter-spacing: .025em; }
  .site-header .header-quote { display: none; }
}
@media (max-width: 759px) {
  main .page-hero .page-hero-inner { grid-template-columns: minmax(0, 1fr); width: calc(100% - 32px); gap: 28px; }
  main .page-hero h1 { font-size: clamp(30px, 7vw, 42px); }
  main .page-hero .page-media { width: 100%; max-width: none; }
  .page-intro { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .page-intro .page-media { width: min(100%, 380px); }
  .page-intro .page-media img { aspect-ratio: 2 / 1; }
}
@media print {
  main .page-hero, main .guide-section, main .guide-card { background: #fff !important; color: #111; }
}
