:root {
  --ink: #191612;
  --muted: #6c655d;
  --paper: #f8f4ee;
  --ivory: #fffdfa;
  --line: #ded3c5;
  --champagne: #b89567;
  --rose: #7d3d48;
  --soft-rose: #eadadc;
  --sage: #7d9183;
  --image-radius: 7px;
  --lo-plum: #6f234b;
  --lo-plum-dark: #4c1431;
  --lo-pink: #f7e8ea;
  --lo-blush: #fff7f5;
  --lo-card: rgba(255, 255, 255, 0.82);
  --lo-shadow: 0 18px 52px rgba(76, 20, 49, 0.1);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: clip;
  background:
    radial-gradient(circle at 86% 8%, rgba(247, 213, 219, 0.42), transparent 28%),
    linear-gradient(180deg, #fffaf8 0%, #fbf1ef 56%, #fffaf8 100%);
  color: #2d1b25;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  min-height: 78px;
  padding: 16px clamp(18px, 4vw, 56px);
  border-bottom: 1px solid rgba(25, 22, 18, 0.12);
  background: rgba(248, 244, 238, 0.82);
  backdrop-filter: blur(20px) saturate(1.08);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 210px;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--ink);
  border-radius: 50%;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 20px;
  font-weight: 600;
}

.brand strong,
.site-footer strong {
  display: block;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 23px;
  font-weight: 600;
  line-height: 1;
}

.brand em {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  font-style: normal;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.site-nav {
  display: flex;
  justify-content: center;
  gap: clamp(12px, 1.7vw, 28px);
  color: #3f3932;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nav-item {
  position: relative;
}

.site-nav a {
  display: inline-flex;
  padding: 10px 0;
  border-bottom: 1px solid transparent;
}

.site-nav a:hover {
  border-color: var(--champagne);
}

.nav-item.has-menu > a::after {
  content: "";
  width: 5px;
  height: 5px;
  margin: 6px 0 0 7px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}

.nav-item > a {
  white-space: nowrap;
}

.nav-dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 30;
  display: grid;
  min-width: 260px;
  padding: 12px;
  background: rgba(255, 253, 250, 0.96);
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  box-shadow: 0 18px 45px rgba(25, 22, 18, 0.12);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -4px);
  transition: opacity 160ms ease, transform 160ms ease;
}

.nav-dropdown a {
  display: block;
  padding: 11px 12px;
  border-bottom: 1px solid rgba(222, 211, 197, 0.72);
  color: var(--ink);
  font-size: 11px;
  letter-spacing: 0.05em;
  line-height: 1.3;
  text-transform: none;
}

.nav-dropdown a:last-child {
  border-bottom: 0;
}

.nav-item:hover .nav-dropdown,
.nav-item:focus-within .nav-dropdown,
.nav-item.is-menu-open .nav-dropdown {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.nav-dropdown span {
  display: none;
}

@media (min-width: 1181px) {
  .nav-item {
    position: static;
  }

  .site-nav a {
    position: relative;
    z-index: 2;
  }

  .nav-dropdown {
    top: 100%;
    right: 0;
    left: 0;
    z-index: 1;
    grid-template-columns: repeat(4, minmax(180px, 1fr));
    gap: 10px;
    width: 100%;
    min-width: 0;
    padding: 16px clamp(22px, 5vw, 70px) 18px;
    background: rgba(248, 244, 238, 0.94);
    border-width: 1px 0;
    border-radius: 0;
    box-shadow: 0 22px 54px rgba(25, 22, 18, 0.12);
    backdrop-filter: blur(22px) saturate(1.1);
    transform: translateY(-8px);
  }

  .nav-dropdown::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255, 253, 250, 0.72), rgba(248, 244, 238, 0.86));
  }

  .nav-dropdown::after {
    content: "";
    position: absolute;
    top: -26px;
    right: 0;
    left: 0;
    height: 26px;
    background: transparent;
  }

  .nav-dropdown a {
    position: relative;
    z-index: 1;
    display: grid;
    align-content: start;
    min-height: 74px;
    padding: 14px 15px;
    border: 1px solid rgba(222, 211, 197, 0.72);
    border-radius: var(--image-radius);
    background: rgba(255, 253, 250, 0.66);
    box-shadow: 0 10px 28px rgba(25, 22, 18, 0.05);
    font-size: 11px;
    letter-spacing: 0.04em;
    line-height: 1.18;
    transition: background 160ms ease, border 160ms ease, transform 160ms ease;
  }

  .nav-dropdown a:first-child {
    min-height: 74px;
    background: rgba(255, 253, 250, 0.78);
  }

  .nav-dropdown a:hover {
    border-color: rgba(184, 149, 103, 0.74);
    background: rgba(255, 253, 250, 0.88);
    transform: translateY(-2px);
  }

  .nav-dropdown span {
    display: block;
    margin-top: 7px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.15;
    text-transform: none;
  }

  .nav-item:hover .nav-dropdown,
  .nav-item:focus-within .nav-dropdown,
  .nav-item.is-menu-open .nav-dropdown {
    transform: translateY(0);
  }
}

.announcement-banner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  max-width: 1720px;
  margin: 0 auto;
  padding: 9px clamp(18px, 5vw, 70px);
  border-bottom: 1px solid rgba(184, 149, 103, 0.36);
  background: linear-gradient(90deg, #2a201d, #513039 52%, #7d3d48);
  box-shadow: inset 0 1px rgba(255, 253, 250, 0.08);
}

.announcement-banner span,
.announcement-banner a {
  color: #e7c99b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.announcement-banner p {
  margin: 0;
  color: #fffdfa;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 12.5px;
  font-weight: 650;
  letter-spacing: 0.01em;
  line-height: 1.35;
}

.announcement-banner a {
  justify-self: end;
  border-bottom: 1px solid rgba(231, 201, 155, 0.72);
}

@media (max-width: 760px) {
  .announcement-banner {
    grid-template-columns: 1fr;
    gap: 4px;
    padding-block: 8px;
  }

  .announcement-banner p {
    font-size: 12px;
    line-height: 1.45;
  }

  .announcement-banner a {
    justify-self: start;
  }
}

/* menu69: lock Products overview hero back to the stable compact landing layout. */
main > section.products-hero.products-hero-refined {
  position: relative;
  display: grid;
  grid-template-columns: minmax(520px, 0.46fr) minmax(0, 0.54fr);
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 392px !important;
  margin: 0;
  padding: 48px max(44px, calc((100vw - 1240px) / 2)) 46px;
  gap: 42px;
  overflow: visible;
}

main > section.products-hero.products-hero-refined > div {
  position: relative;
  z-index: 2;
  max-width: 590px;
}

main > section.products-hero.products-hero-refined .products-hero-media {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 1;
  width: min(54vw, 740px);
  height: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: 0;
}

main > section.products-hero.products-hero-refined .products-hero-media img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  object-position: 50% 48%;
  transform: scale(1.02);
  filter: saturate(1.04) contrast(1.01) brightness(1.02);
  mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.12) 9%, rgba(0, 0, 0, 0.62) 22%, #000 42%, #000 100%),
    linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.54) 8%, #000 18%, #000 78%, rgba(0, 0, 0, 0.54) 90%, transparent 100%);
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.12) 9%, rgba(0, 0, 0, 0.62) 22%, #000 42%, #000 100%),
    linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.54) 8%, #000 18%, #000 78%, rgba(0, 0, 0, 0.54) 90%, transparent 100%);
}

main > section.products-hero.products-hero-refined .products-hero-card {
  position: absolute;
  right: max(44px, calc((100vw - 1240px) / 2));
  bottom: 38px;
  z-index: 2;
  width: min(315px, 36vw);
  padding: 22px 24px;
}

main > section.product-journey-strip {
  box-sizing: border-box;
  width: min(1240px, calc(100% - 88px));
  min-height: 122px;
  margin: -28px auto 0;
  padding: 0 30px !important;
}

@media (min-width: 981px) and (max-width: 1240px) {
  main > section.products-hero.products-hero-refined {
    grid-template-columns: minmax(420px, 0.48fr) minmax(0, 0.52fr);
    min-height: 398px !important;
    padding-right: 44px;
    padding-left: 44px;
  }

  main > section.products-hero.products-hero-refined > div {
    max-width: 470px;
  }

  main > section.products-hero.products-hero-refined h1 {
    max-width: 470px;
    font-size: clamp(46px, 4.2vw, 56px);
  }

  main > section.products-hero.products-hero-refined .hero-text {
    max-width: 410px;
  }

  main > section.products-hero.products-hero-refined .products-hero-media {
    width: min(48vw, 600px);
  }

  main > section.products-hero.products-hero-refined .products-hero-card {
    right: 44px;
    bottom: 32px;
    width: min(286px, 32vw);
    padding: 20px 22px;
  }
}

@media (max-width: 980px) {
  main > section.products-hero.products-hero-refined {
    grid-template-columns: 1fr;
    min-height: 0 !important;
    padding: 42px 24px 38px;
  }

  main > section.products-hero.products-hero-refined .products-hero-media {
    position: relative;
    inset: auto;
    width: 100%;
    height: 300px;
    margin-top: 22px;
    border-radius: 18px;
  }

  main > section.products-hero.products-hero-refined .products-hero-card {
    right: 18px;
    bottom: 20px;
    width: min(315px, calc(100% - 36px));
  }

  main > section.product-journey-strip {
    width: min(100% - 44px, 760px);
    margin-top: -18px;
    padding: 0 22px !important;
  }
}

@media (max-width: 760px) {
  main > section.products-hero.products-hero-refined {
    padding-top: 34px;
  }

  main > section.products-hero.products-hero-refined h1 {
    font-size: 40px;
    line-height: 1;
  }

  main > section.products-hero.products-hero-refined .products-hero-media {
    height: auto;
    overflow: visible;
  }

  main > section.products-hero.products-hero-refined .products-hero-media img {
    display: block;
    height: 250px;
  }

  main > section.products-hero.products-hero-refined .products-hero-card {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    margin-top: -28px;
  }
}

/* menu72: align decision-page intro and product cards to one centered axis. */
.subpage-main.template-decision .decision-hub {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  padding-right: 0;
  padding-left: 0;
}

.subpage-main.template-decision .decision-hub .section-intro,
.subpage-main.template-decision .decision-card-grid {
  width: min(1114px, calc(100% - 120px));
  margin-right: auto;
  margin-left: auto;
}

.subpage-main.template-decision .decision-hub .section-intro {
  display: grid;
  justify-items: center;
}

.subpage-main.template-decision .decision-hub .section-intro h2 {
  max-width: 760px;
}

@media (max-width: 980px) {
  .subpage-main.template-decision .decision-hub .section-intro,
  .subpage-main.template-decision .decision-card-grid {
    width: min(100% - 44px, 760px);
  }
}

@media (max-width: 760px) {
  .subpage-main.template-decision .decision-hub .section-intro,
  .subpage-main.template-decision .decision-card-grid {
    width: min(100% - 28px, 560px);
  }
}

.header-cta,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--ink);
  border-radius: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: background 160ms ease, color 160ms ease, border 160ms ease;
}

.header-cta {
  min-width: 172px;
  white-space: nowrap;
}

.header-cta,
.button.primary {
  background: var(--ink);
  color: var(--ivory);
}

.button.secondary {
  background: var(--ivory);
}

.button.ghost {
  border-color: transparent;
  color: var(--rose);
}

.header-cta:hover,
.button.primary:hover {
  background: var(--rose);
  border-color: var(--rose);
}

.button.secondary:hover {
  border-color: var(--champagne);
  color: var(--rose);
}

.menu-toggle {
  display: none;
}

.hero {
  display: grid;
  grid-template-columns: minmax(360px, 0.88fr) minmax(460px, 1.12fr);
  align-items: center;
  max-width: 1720px;
  min-height: min(900px, calc(100svh - 78px));
  margin: 0 auto;
  border-bottom: 1px solid var(--line);
}

.hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(44px, 6vw, 86px) clamp(24px, 5vw, 74px);
}

.eyebrow {
  margin: 0 0 18px;
  color: var(--rose);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  line-height: 0.98;
}

h1 {
  max-width: 700px;
  margin-bottom: 28px;
  font-size: clamp(54px, 6.2vw, 96px);
}

h2 {
  margin-bottom: 22px;
  font-size: clamp(40px, 5vw, 76px);
}

h3 {
  margin-bottom: 10px;
  font-size: 15px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.hero-text {
  max-width: 580px;
  margin-bottom: 34px;
  color: #4d463e;
  font-size: clamp(16px, 1.35vw, 20px);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 42px;
}

.trust-panel {
  display: grid;
  gap: 8px;
  max-width: 520px;
  margin: 0 0 28px;
  padding: 18px 20px;
  border-left: 2px solid var(--champagne);
  background: rgba(255, 253, 250, 0.62);
  backdrop-filter: blur(12px) saturate(1.05);
}

.trust-panel span {
  color: var(--rose);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.trust-panel strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(24px, 2.2vw, 34px);
  font-weight: 500;
  line-height: 1.08;
}

.hero-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 180px));
  gap: 26px;
  margin: auto 0 0;
  padding-top: 40px;
  border-top: 1px solid var(--line);
}

.hero-meta dt {
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.hero-meta dd {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
}

.hero-media {
  position: relative;
  align-self: center;
  margin: clamp(18px, 2vw, 32px);
  height: clamp(500px, 62svh, 660px);
  min-height: 0;
  background: #d8cdc0;
  border-radius: var(--image-radius);
  overflow: hidden;
}

.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
}

.media-note {
  position: absolute;
  right: clamp(18px, 4vw, 50px);
  top: clamp(18px, 3vw, 42px);
  bottom: auto;
  width: min(235px, calc(100% - 36px));
  padding: 16px 18px;
  background: rgba(255, 253, 250, 0.62);
  border: 1px solid rgba(255, 253, 250, 0.52);
  border-radius: var(--image-radius);
  box-shadow: 0 12px 34px rgba(25, 22, 18, 0.08);
  backdrop-filter: blur(14px) saturate(1.08);
}

.media-note span {
  color: var(--champagne);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 34px;
}

.media-note p {
  margin: 6px 0 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

section:not(.hero, .announcement-banner) {
  padding: clamp(62px, 8vw, 112px) clamp(18px, 5vw, 70px);
}

.section-intro,
.location-lead {
  max-width: 760px;
  margin-bottom: 36px;
}

.services,
.support-pathways,
.government-support,
.appointment,
.locations,
.editorial,
.enquiry,
.catalog-section,
.pricing-section,
.portal-roadmap,
.merchandising-strip,
.pricing-notes,
.login-page,
.map-section,
.subpage-highlights,
.subpage-details,
.source-info,
.menu-index {
  max-width: 1720px;
  margin-right: auto;
  margin-left: auto;
}

.service-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.support-pathways {
  padding-top: clamp(46px, 6vw, 82px) !important;
  padding-bottom: clamp(50px, 6vw, 86px) !important;
  border-top: 1px solid rgba(222, 211, 197, 0.72);
  border-bottom: 1px solid rgba(222, 211, 197, 0.72);
  background: linear-gradient(180deg, rgba(255, 253, 250, 0.72), rgba(241, 232, 222, 0.56));
}

.pathway-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.pathway-card {
  display: grid;
  align-content: start;
  min-height: 270px;
  padding: clamp(22px, 2.6vw, 34px);
  border: 1px solid rgba(25, 22, 18, 0.1);
  border-radius: var(--image-radius);
  background: rgba(255, 253, 250, 0.78);
  box-shadow: 0 18px 50px rgba(25, 22, 18, 0.05);
  transition: border 160ms ease, transform 160ms ease, background 160ms ease;
}

.pathway-card:hover {
  border-color: rgba(184, 149, 103, 0.72);
  background: var(--ivory);
  transform: translateY(-2px);
}

.pathway-card span {
  color: var(--champagne);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 34px;
  line-height: 1;
}

.pathway-card h3 {
  margin: 22px 0 12px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(29px, 2.6vw, 42px);
  font-weight: 500;
  line-height: 1.02;
  text-transform: none;
}

.pathway-card p {
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.55;
}

.pathway-card em {
  align-self: end;
  margin-top: auto;
  color: var(--rose);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.government-support {
  display: grid;
  grid-template-columns: minmax(260px, 0.58fr) minmax(0, 1.42fr);
  gap: clamp(20px, 3vw, 46px);
  align-items: center;
  padding-top: clamp(34px, 4vw, 58px) !important;
  padding-bottom: clamp(34px, 4vw, 58px) !important;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background:
    linear-gradient(135deg, rgba(42, 32, 29, 0.96), rgba(81, 48, 57, 0.94)),
    var(--ink);
  color: var(--ivory);
}

.support-lead {
  position: relative;
}

.government-support .eyebrow {
  color: #e7c99b;
}

.government-support h2 {
  max-width: 480px;
  color: var(--ivory);
  font-size: clamp(34px, 3.6vw, 58px);
}

.government-support p {
  color: rgba(255, 253, 250, 0.76);
}

.support-lead p:not(.eyebrow) {
  max-width: 380px;
  font-size: 15px;
  line-height: 1.55;
}

.support-lead .button {
  width: fit-content;
  margin-top: 18px;
  border-color: rgba(255, 253, 250, 0.68);
  background: transparent;
  color: var(--ivory);
}

.support-program-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.support-program-card {
  display: grid;
  align-content: start;
  min-height: 184px;
  padding: clamp(16px, 1.65vw, 22px);
  border: 1px solid rgba(231, 201, 155, 0.24);
  border-radius: var(--image-radius);
  background: rgba(255, 253, 250, 0.08);
  box-shadow: 0 22px 55px rgba(12, 10, 8, 0.16);
  transition: background 160ms ease, border 160ms ease, transform 160ms ease;
}

.support-program-card:hover {
  border-color: rgba(231, 201, 155, 0.54);
  background: rgba(255, 253, 250, 0.13);
  transform: translateY(-2px);
}

.support-program-card.featured {
  grid-row: auto;
  min-height: 184px;
  background:
    linear-gradient(180deg, rgba(255, 253, 250, 0.14), rgba(255, 253, 250, 0.08)),
    rgba(125, 61, 72, 0.24);
}

.support-program-card span,
.support-program-card em {
  color: #e7c99b;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.support-program-card strong {
  display: block;
  margin: 12px 0 8px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(27px, 2vw, 36px);
  font-weight: 500;
  line-height: 1.02;
}

.support-program-card p {
  max-width: 240px;
  margin-bottom: 14px;
  font-size: 13px;
  line-height: 1.42;
}

.support-program-card em {
  align-self: end;
  margin-top: auto;
}

.service-card {
  display: flex;
  flex-direction: column;
  min-height: 430px;
  padding: 26px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--ivory);
}

.service-card.large {
  grid-column: span 2;
  background: #ece3d8;
}

.visual-card {
  padding: 0;
  overflow: hidden;
}

.visual-card img {
  width: calc(100% - 24px);
  margin: 12px;
  height: 205px;
  border-radius: var(--image-radius);
  object-fit: cover;
  filter: saturate(0.92) contrast(0.98);
}

.service-card.large img {
  width: calc(100% - 24px);
  height: 310px;
  min-height: 0;
  object-fit: cover;
  object-position: center 34%;
}

.service-card.image-card img {
  object-position: center 38%;
}

.visual-card:nth-of-type(3) img {
  object-position: center 18%;
}

.visual-card:nth-of-type(5) img {
  object-position: 36% center;
}

.visual-card:nth-of-type(6) img {
  object-position: center center;
}

.visual-card:nth-of-type(7) img {
  object-position: center 28%;
}

.visual-card span,
.visual-card strong,
.visual-card em {
  margin-right: 26px;
  margin-left: 26px;
}

.visual-card span {
  margin-top: 22px;
}

.service-card span {
  display: block;
  margin-bottom: 28px;
  color: var(--rose);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.service-card strong {
  display: block;
  max-width: 430px;
  margin-bottom: 22px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 500;
  line-height: 1.02;
}

.service-card em {
  margin-top: auto;
}

.visual-card em {
  padding-bottom: 26px;
}

.service-card em,
.link-row a,
.quick-contact a,
.location-list a {
  color: var(--rose);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.appointment {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(28px, 5vw, 74px);
  background: #f1e8de;
  color: var(--ink);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.appointment .eyebrow {
  color: var(--rose);
}

.appointment h2 {
  max-width: 620px;
}

.appointment > div > p:not(.eyebrow) {
  max-width: 460px;
  color: var(--muted);
  font-size: 18px;
}

.steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.steps li {
  display: grid;
  grid-template-columns: 48px 1fr;
  align-content: start;
  gap: 18px;
  min-height: 0;
  padding: 22px 24px;
  border: 1px solid rgba(25, 22, 18, 0.1);
  background: rgba(255, 253, 250, 0.64);
  border-radius: var(--image-radius);
}

.steps span {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(25, 22, 18, 0.18);
  border-radius: 50%;
  color: var(--rose);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 25px;
  line-height: 1;
}

.steps p {
  grid-column: 2;
  margin-bottom: 0;
  color: var(--muted);
  font-size: 15px;
}

.steps h3 {
  margin-bottom: 6px;
  font-size: 14px;
}

.locations {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: clamp(32px, 6vw, 80px);
  background: var(--ivory);
}

.location-lead p:not(.eyebrow) {
  color: var(--muted);
  font-size: 17px;
}

.location-button {
  width: fit-content;
  margin-top: 18px;
}

.location-list {
  border-top: 1px solid var(--line);
}

.location-list article {
  display: grid;
  grid-template-columns: 0.9fr 1.15fr auto;
  gap: 20px;
  align-items: start;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}

.location-list p {
  margin-bottom: 0;
  color: var(--muted);
}

.editorial {
  display: grid;
  grid-template-columns: minmax(260px, 0.82fr) minmax(0, 1.18fr);
  gap: clamp(28px, 6vw, 76px);
  align-items: center;
}

.editorial img {
  width: 100%;
  aspect-ratio: 1.15;
  border-radius: var(--image-radius);
  object-fit: cover;
  background: var(--soft-rose);
}

.editorial p:not(.eyebrow) {
  max-width: 620px;
  color: var(--muted);
  font-size: 18px;
}

.subpage-hero {
  display: grid;
  grid-template-columns: minmax(360px, 0.9fr) minmax(460px, 1.1fr);
  gap: clamp(32px, 5vw, 74px);
  align-items: center;
  max-width: 1720px;
  min-height: min(720px, calc(100svh - 78px));
  margin: 0 auto;
  padding: clamp(38px, 5vw, 68px) clamp(24px, 5vw, 74px);
  border-bottom: 1px solid var(--line);
}

.subpage-hero h1 {
  max-width: 660px;
  font-size: clamp(46px, 5.2vw, 82px);
  line-height: 1;
}

.subpage-hero img {
  width: 100%;
  height: clamp(380px, 42svh, 540px);
  min-height: 0;
  object-fit: cover;
  object-position: center center;
  border-radius: var(--image-radius);
  background: #efe8df;
}

.subpage-hero.location-hero {
  align-items: start;
}

.subpage-hero.location-hero > img,
.subpage-hero.location-hero > .location-hero-map {
  margin-top: clamp(8px, 1.4vw, 18px);
}

.subpage-hero img.image-contain {
  object-fit: contain;
  padding: clamp(18px, 3vw, 42px);
}

.subpage-hero img.image-location,
.subpage-hero img.image-contact {
  background: #efe3d6;
  object-position: center center;
}

.subpage-hero img.image-contact {
  height: clamp(420px, 24vw, 700px);
  object-position: center 52%;
}

.subpage-hero img.image-lymph {
  object-fit: cover;
  object-position: center 42%;
}

.subpage-hero img.image-editorial {
  object-fit: cover;
  object-position: center center;
  padding: 0;
}

.subpage-hero img.image-product-frame {
  object-fit: contain;
  padding: clamp(18px, 3vw, 40px);
  background:
    linear-gradient(135deg, rgba(255, 253, 250, 0.72), rgba(232, 221, 209, 0.74)),
    #efe8df;
}

.subpage-hero img.image-faqs {
  object-position: center 38%;
}

.subpage-hero img.image-new-zealand {
  object-position: center 52%;
}

.subpage-hero img.image-reimbursement {
  object-position: center 50%;
}

.subpage-hero img.image-location {
  object-position: center 38%;
}

.subpage-layout-product .subpage-hero {
  grid-template-columns: minmax(420px, 1.05fr) minmax(420px, 0.95fr);
  align-items: end;
  min-height: min(700px, calc(100svh - 78px));
  background:
    linear-gradient(180deg, rgba(255, 253, 250, 0.38), rgba(232, 221, 209, 0.34)),
    var(--paper);
}

.subpage-layout-product .subpage-hero img,
.subpage-layout-product .hero-slider {
  height: clamp(400px, 46svh, 560px);
}

.subpage-layout-product .subpage-highlights {
  justify-content: center;
  border-bottom: 1px solid var(--line);
}

.subpage-layout-product .subpage-details {
  background: #eee4d8;
}

.subpage-layout-forms .subpage-hero {
  grid-template-columns: minmax(320px, 0.74fr) minmax(520px, 1.26fr);
  min-height: min(640px, calc(100svh - 78px));
  background: #efe8df;
}

.subpage-layout-forms .subpage-hero h1 {
  max-width: 560px;
  font-size: clamp(42px, 4.5vw, 70px);
}

.subpage-layout-forms .subpage-hero img {
  height: clamp(340px, 38svh, 470px);
  object-fit: contain;
  padding: clamp(18px, 3vw, 38px);
  background:
    linear-gradient(135deg, rgba(255, 253, 250, 0.7), rgba(232, 221, 209, 0.7)),
    #f6efe7;
}

.subpage-layout-forms .subpage-highlights {
  justify-content: flex-start;
  background: #f6efe7;
}

.subpage-layout-forms .detail-list article {
  background: rgba(255, 253, 250, 0.64);
}

.subpage-layout-support .subpage-hero {
  grid-template-columns: minmax(340px, 0.82fr) minmax(480px, 1.18fr);
  min-height: min(620px, calc(100svh - 78px));
  background:
    linear-gradient(135deg, rgba(42, 32, 29, 0.96), rgba(81, 48, 57, 0.94)),
    var(--ink);
  color: var(--ivory);
}

.subpage-layout-support .subpage-hero h1,
.subpage-layout-support .subpage-hero .eyebrow {
  color: var(--ivory);
}

.subpage-layout-support .subpage-hero .hero-text {
  color: rgba(255, 253, 250, 0.76);
}

.subpage-layout-support .subpage-hero img {
  height: clamp(330px, 36svh, 470px);
  filter: saturate(0.9) contrast(0.96);
}

.subpage-layout-support .button.secondary,
.subpage-layout-support .button.ghost {
  border-color: rgba(255, 253, 250, 0.36);
  color: var(--ivory);
}

.subpage-layout-support .subpage-highlights {
  background: var(--ink);
  border-bottom: 1px solid rgba(255, 253, 250, 0.14);
}

.subpage-layout-support .subpage-highlights span {
  border-color: rgba(231, 201, 155, 0.36);
  background: rgba(255, 253, 250, 0.08);
  color: #e7c99b;
}

.subpage-layout-support .subpage-details {
  background: #f1e8de;
}

.subpage-layout-resource .subpage-hero,
.subpage-layout-contact .subpage-hero {
  grid-template-columns: minmax(320px, 0.86fr) minmax(480px, 1.14fr);
  min-height: min(560px, calc(100svh - 78px));
}

.subpage-layout-resource .subpage-hero img,
.subpage-layout-contact .subpage-hero img {
  height: clamp(340px, 34svh, 470px);
}

.subpage-layout-contact .subpage-hero {
  background: #f1e8de;
}

.subpage-layout-contact .subpage-highlights {
  display: none;
}

.location-hero-map {
  position: relative;
  width: 100%;
  height: clamp(420px, 48svh, 600px);
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border-radius: var(--image-radius);
  background: #efe3d6;
}

.location-hero-map img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.location-hero-map figcaption {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.hero-map-label {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  width: max-content;
  padding: 7px 10px;
  color: #17130f;
  background: rgba(255, 253, 250, 0.72);
  border: 1px solid rgba(202, 168, 119, 0.42);
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(25, 22, 18, 0.08);
  backdrop-filter: blur(12px) saturate(1.08);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  transform: translate(-50%, -50%);
}

.hero-map-label::before {
  content: "";
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  margin-right: 7px;
  border-radius: 50%;
  background: var(--champagne);
}

.hero-map-label-cbd {
  left: 31%;
  top: 69%;
}

.hero-map-label-stives {
  left: 48%;
  top: 26%;
}

.hero-map-label-chatswood {
  left: 66%;
  top: 45%;
}

.hero-slider {
  position: relative;
  width: 100%;
  height: clamp(420px, 48svh, 600px);
  min-height: 0;
  overflow: hidden;
  border-radius: var(--image-radius);
  background:
    linear-gradient(90deg, rgba(248, 244, 238, 0.92), rgba(232, 221, 209, 0.7)),
    #e8ddd1;
}

.slider-track {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr;
}

.hero-slider img {
  grid-area: 1 / 1;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: clamp(10px, 1.4vw, 20px);
  object-fit: contain;
  object-position: center center;
  background: transparent;
  opacity: 0;
  transform: scale(1.018);
  transition: opacity 360ms ease, transform 700ms ease;
}

.hero-slider img.is-active {
  opacity: 1;
  transform: scale(1);
}

.slider-controls {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  color: var(--ink);
}

.slider-controls button {
  position: absolute;
  top: 50%;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(25, 22, 18, 0.18);
  background: rgba(248, 244, 238, 0.58);
  color: var(--ink);
  font: 400 24px/1 "Cormorant Garamond", Georgia, serif;
  cursor: pointer;
  pointer-events: auto;
  transform: translateY(-50%);
  transition: background 180ms ease, transform 180ms ease;
}

.slider-controls button:hover {
  background: rgba(248, 244, 238, 0.86);
  transform: translateY(-50%) scale(1.04);
}

.slider-controls button[data-slider-prev] {
  left: 18px;
}

.slider-controls button[data-slider-next] {
  right: 18px;
}

.slider-controls span {
  position: absolute;
  left: 50%;
  bottom: 20px;
  min-width: 64px;
  text-align: center;
  color: rgba(25, 22, 18, 0.62);
  font: 700 11px/1 "Plus Jakarta Sans", "Inter", sans-serif;
  letter-spacing: 0.12em;
  transform: translateX(-50%);
}

.subpage-details {
  background: var(--ivory);
}

.subpage-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 0 !important;
  padding-bottom: clamp(28px, 4vw, 44px) !important;
  background: var(--paper);
}

.subpage-highlights span {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid rgba(184, 149, 103, 0.36);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.72);
  color: var(--rose);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.catalog-section,
.pricing-section,
.portal-roadmap,
.source-info {
  background: var(--ivory);
}

.menu-index {
  background: #f1e8de;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.menu-index-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(25, 22, 18, 0.12);
  border-left: 1px solid rgba(25, 22, 18, 0.12);
}

.menu-index-grid article {
  min-height: 260px;
  padding: 26px;
  background: rgba(255, 253, 250, 0.58);
  border-right: 1px solid rgba(25, 22, 18, 0.12);
  border-bottom: 1px solid rgba(25, 22, 18, 0.12);
}

.menu-index-grid h3 {
  margin-bottom: 22px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(25px, 2vw, 36px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.04;
  text-transform: none;
}

.menu-index-grid a {
  display: block;
  padding: 11px 0;
  border-top: 1px solid rgba(25, 22, 18, 0.1);
  color: #4d463e;
  font-size: 13px;
  font-weight: 700;
}

.menu-index-grid a:hover {
  color: var(--rose);
}

.catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.product-index-section {
  background: #f6efe7;
}

.product-index-layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.42fr) minmax(0, 1.58fr);
  gap: clamp(22px, 4vw, 58px);
  align-items: start;
}

.product-access-panel {
  position: sticky;
  top: 112px;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  background: var(--ivory);
}

.product-access-panel h3 {
  margin: 12px 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(34px, 3vw, 48px);
  font-weight: 500;
  line-height: 1;
  text-transform: none;
}

.product-access-panel p:not(.eyebrow) {
  color: var(--muted);
  font-size: 15px;
}

.product-directory {
  display: grid;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: var(--ivory);
}

.product-directory-row {
  display: grid;
  grid-template-columns: minmax(190px, 0.85fr) minmax(280px, 1.35fr) minmax(118px, 0.42fr);
  min-height: 86px;
  color: var(--ink);
  border-bottom: 1px solid var(--line);
}

.product-directory-row > * {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 18px 22px;
  border-right: 1px solid var(--line);
}

.product-directory-head {
  min-height: 48px;
  background: #eee4d8;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-directory-row strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(24px, 2vw, 32px);
  font-weight: 500;
  line-height: 1.05;
}

.product-directory-row span {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}

.product-directory-row em {
  color: var(--rose);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.product-directory a.product-directory-row {
  transition: background 160ms ease;
}

.product-directory a.product-directory-row:hover {
  background: rgba(241, 232, 222, 0.56);
}

.source-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.source-grid article {
  min-height: 150px;
  padding: 22px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(255, 253, 250, 0.72);
}

.source-grid h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(22px, 1.8vw, 30px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.08;
  text-transform: none;
}

.source-grid p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.catalog-card {
  display: flex;
  flex-direction: column;
  min-height: 520px;
  padding: 20px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--ivory);
}

.catalog-card img,
.placeholder-frame {
  width: 100%;
  height: 250px;
  margin-bottom: 22px;
  border-radius: var(--image-radius);
  object-fit: cover;
  background: #efe8df;
}

.catalog-card:nth-child(2) img,
.catalog-card:nth-child(5) img {
  object-position: center 48%;
}

.catalog-card span {
  color: var(--rose);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.catalog-card h3 {
  margin: 18px 0 12px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(26px, 2.5vw, 36px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.05;
  text-transform: none;
}

.catalog-card p {
  color: var(--muted);
}

.catalog-card small {
  display: block;
  margin: 16px 0 0;
  color: var(--rose);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.catalog-card a {
  margin-top: auto;
  color: var(--rose);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.catalog-placeholder {
  background: #f1e8de;
}

.placeholder-frame {
  display: grid;
  place-items: center;
  border: 1px dashed rgba(25, 22, 18, 0.24);
  color: var(--champagne);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 72px;
  line-height: 1;
}

.merchandising-strip,
.pricing-notes,
.login-page {
  display: grid;
  grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
  gap: clamp(30px, 6vw, 78px);
  align-items: start;
  background: #f1e8de;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.price-table {
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: var(--ivory);
}

.price-row {
  display: grid;
  grid-template-columns: minmax(180px, 0.9fr) minmax(260px, 1.35fr) minmax(160px, 0.75fr);
  border-bottom: 1px solid var(--line);
}

.price-row > * {
  margin: 0;
  padding: 22px 24px;
  border-right: 1px solid var(--line);
}

.price-row span:first-child {
  color: var(--ink);
  font-weight: 800;
}

.price-row span:nth-child(2) {
  color: var(--muted);
}

.price-row strong {
  color: var(--rose);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.locked-price {
  color: var(--rose);
}

.price-lock-note {
  max-width: 390px;
}

.price-row-head {
  background: #f1e8de;
}

.price-row-head span {
  color: var(--rose) !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.pricing-notes article {
  min-height: 380px;
  padding: clamp(24px, 4vw, 44px);
  border: 1px solid var(--line);
  background: rgba(255, 253, 250, 0.72);
}

.pricing-notes p:not(.eyebrow),
.login-copy p:not(.eyebrow),
.login-card p {
  color: var(--muted);
}

.login-page {
  min-height: calc(100svh - 78px);
}

.login-card {
  display: grid;
  gap: 18px;
  width: min(100%, 560px);
  padding: clamp(26px, 4vw, 48px);
  border: 1px solid var(--line);
  background: var(--ivory);
}

.login-card label {
  display: grid;
  gap: 9px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.login-card .full {
  width: 100%;
}

.login-card > a {
  color: var(--rose);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.detail-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.detail-list article {
  min-height: 168px;
  padding: 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.detail-list span {
  display: block;
  margin-bottom: 18px;
  color: var(--champagne);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 34px;
  line-height: 1;
}

.detail-list p {
  color: var(--muted);
  max-width: 280px;
  font-size: 14px;
  line-height: 1.5;
}

.subpage-layout-product .detail-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  border: 0;
}

.subpage-layout-product .detail-list article {
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  background: rgba(255, 253, 250, 0.72);
}

.subpage-layout-forms .detail-list {
  grid-template-columns: minmax(240px, 0.8fr) minmax(240px, 1fr) minmax(240px, 0.8fr);
  gap: 0;
}

.subpage-layout-support .detail-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  border: 0;
}

.subpage-layout-support .detail-list article {
  min-height: 142px;
  border: 1px solid rgba(25, 22, 18, 0.12);
  border-radius: var(--image-radius);
  background: var(--ivory);
}

.subpage-layout-resource .source-info,
.subpage-layout-contact .source-info {
  background: #f6efe7;
}

.map-section {
  padding-top: clamp(40px, 6vw, 76px) !important;
}

.map-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.map-card {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 520px;
  border: 1px solid var(--line);
  background: var(--ivory);
}

.map-card iframe,
.map-preview,
.map-preview-img {
  width: calc(100% - 24px);
  height: 260px;
  margin: 12px;
  border-radius: var(--image-radius);
}

.map-preview-img {
  object-fit: cover;
  border: 1px solid rgba(25, 22, 18, 0.08);
  background: #f4ede4;
}

.map-card iframe {
  border: 0;
  filter: saturate(0.8) contrast(0.96);
}

.map-preview {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(25, 22, 18, 0.08);
  background:
    linear-gradient(90deg, transparent 0 18%, rgba(155, 128, 103, 0.16) 18% 18.6%, transparent 18.6% 37%, rgba(155, 128, 103, 0.13) 37% 37.5%, transparent 37.5% 58%, rgba(155, 128, 103, 0.12) 58% 58.5%, transparent 58.5% 78%, rgba(155, 128, 103, 0.13) 78% 78.5%, transparent 78.5%),
    linear-gradient(0deg, transparent 0 18%, rgba(155, 128, 103, 0.15) 18% 18.6%, transparent 18.6% 40%, rgba(155, 128, 103, 0.12) 40% 40.5%, transparent 40.5% 63%, rgba(155, 128, 103, 0.13) 63% 63.5%, transparent 63.5% 82%, rgba(155, 128, 103, 0.14) 82% 82.5%, transparent 82.5%),
    #f3eadf;
}

.map-road {
  position: absolute;
  display: block;
  height: 4px;
  border-radius: 999px;
  background: rgba(126, 95, 72, 0.5);
  transform-origin: center;
}

.map-road.primary {
  left: -8%;
  top: 58%;
  width: 118%;
  transform: rotate(-12deg);
}

.map-road.secondary {
  left: 12%;
  top: 32%;
  width: 86%;
  background: rgba(184, 149, 103, 0.42);
  transform: rotate(8deg);
}

.map-road.third {
  left: 4%;
  top: 74%;
  width: 72%;
  height: 2px;
  background: rgba(126, 95, 72, 0.24);
  transform: rotate(18deg);
}

.map-pin {
  position: absolute;
  left: var(--pin-x, 50%);
  top: var(--pin-y, 48%);
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(255, 253, 250, 0.46);
  border-radius: 50%;
  background: var(--ink);
  color: var(--ivory);
  font-family: "Plus Jakarta Sans", "Inter", sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1;
  text-align: center;
  transform: translate(-50%, -50%);
  box-shadow: 0 16px 34px rgba(25, 22, 18, 0.18);
}

.map-pin::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -7px;
  width: 13px;
  height: 13px;
  background: var(--ink);
  transform: translateX(-50%) rotate(45deg);
}

.map-label {
  position: absolute;
  left: calc(var(--pin-x, 50%) + 42px);
  top: calc(var(--pin-y, 48%) - 4px);
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.map-preview-cbd {
  --pin-x: 56%;
  --pin-y: 48%;
}

.map-preview-stives {
  --pin-x: 42%;
  --pin-y: 42%;
}

.map-preview-chatswood {
  --pin-x: 62%;
  --pin-y: 56%;
}

.map-card > div:not(.map-preview) {
  padding: 12px 24px 24px;
}

.map-card h3 {
  font-size: 13px;
}

.map-card p {
  color: var(--muted);
}

.map-card .button {
  margin: 0 24px 24px;
}

.link-row,
.quick-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 28px;
  margin-top: 30px;
}

.enquiry {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(30px, 6vw, 78px);
  background: #eee4d8;
  border-top: 1px solid var(--line);
}

.enquiry-copy p:not(.eyebrow) {
  color: var(--muted);
  font-size: 17px;
}

.contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-content: start;
  padding: clamp(22px, 4vw, 42px);
  background: var(--ivory);
  border: 1px solid var(--line);
}

.contact-form label {
  display: grid;
  gap: 9px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.contact-form .full {
  grid-column: 1 / -1;
}

input,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  font: inherit;
  padding: 14px 14px;
}

input:focus,
textarea:focus {
  outline: 1px solid var(--champagne);
  border-color: var(--champagne);
}

textarea {
  resize: vertical;
}

.site-footer {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 30px;
  padding: 42px clamp(18px, 5vw, 70px);
  background: var(--ink);
  color: var(--ivory);
}

.site-footer p {
  margin: 10px 0 0;
  color: #cfc4b8;
}

.site-footer nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 13px 24px;
}

.site-footer a {
  color: #dbc8ae;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.home-trust-strip,
.home-final-cta,
.decision-hub,
.comparison-section,
.browse-panel,
.fit-guidance,
.related-strip,
.solution-layout,
.funding-note-panel,
.process-flow,
.process-notes,
.template-cta-panel,
.faq-accordion,
.policy-layout,
.resource-cards {
  max-width: 1720px;
  margin-right: auto;
  margin-left: auto;
}

.home-trust-strip {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(28px, 5vw, 74px);
  align-items: start;
  background: var(--ivory);
  border-bottom: 1px solid var(--line);
}

.home-trust-strip h2 {
  max-width: 620px;
}

.trust-strip-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.trust-strip-grid article {
  min-height: 180px;
  padding: clamp(20px, 2.4vw, 30px);
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  background: #f6efe7;
}

.trust-strip-grid span,
.template-cta-panel .eyebrow {
  display: block;
  margin-bottom: 18px;
  color: var(--rose);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.trust-strip-grid strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(27px, 2.3vw, 38px);
  font-weight: 500;
  line-height: 1.04;
}

.pathway-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.pathway-card {
  min-height: 240px;
}

.pathway-card p {
  max-width: 300px;
}

.home-support-compact {
  grid-template-columns: minmax(250px, 0.52fr) minmax(0, 1.48fr);
}

.home-support-compact .support-program-card {
  min-height: 154px;
}

.home-support-compact .support-program-card strong {
  font-size: clamp(23px, 1.8vw, 31px);
}

.home-next-step {
  background: var(--paper);
}

.home-final-cta {
  display: grid;
  justify-items: start;
  padding-top: clamp(52px, 7vw, 96px) !important;
  padding-bottom: clamp(52px, 7vw, 96px) !important;
  border-top: 1px solid var(--line);
  background: #f1e8de;
}

.home-final-cta h2 {
  max-width: 760px;
}

.template-hero {
  min-height: min(500px, calc(100svh - 64px));
}

.template-hero h1 {
  font-size: clamp(42px, 4.2vw, 68px);
}

.template-hero .hero-text {
  max-width: 540px;
  margin-bottom: 26px;
}

.template-decision .template-hero {
  grid-template-columns: minmax(330px, 0.72fr) minmax(520px, 1.28fr);
  min-height: min(420px, calc(100svh - 64px));
  padding-top: clamp(24px, 3vw, 42px);
  padding-bottom: clamp(24px, 3vw, 42px);
  background: linear-gradient(180deg, rgba(255, 253, 250, 0.55), rgba(241, 232, 222, 0.45));
}

.template-decision .template-hero h1 {
  max-width: 620px;
  font-size: clamp(36px, 3.35vw, 54px);
}

.template-decision .template-hero img {
  height: clamp(240px, 27svh, 330px);
}

.decision-hub {
  background: var(--ivory);
}

.decision-hub .section-intro h2 {
  max-width: 780px;
  font-size: clamp(36px, 4vw, 62px);
}

.decision-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.decision-card-grid a {
  display: grid;
  align-content: start;
  min-height: 260px;
  padding: clamp(20px, 2.5vw, 32px);
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  background: #f8f4ee;
  transition: transform 160ms ease, border 160ms ease, background 160ms ease;
}

.decision-card-grid a:hover {
  border-color: rgba(184, 149, 103, 0.72);
  background: var(--ivory);
  transform: translateY(-2px);
}

.decision-card-grid span,
.decision-card-grid em,
.related-strip a {
  color: var(--rose);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.decision-card-grid strong {
  display: block;
  margin: 18px 0 12px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(28px, 2.4vw, 40px);
  font-weight: 500;
  line-height: 1.04;
}

.decision-card-grid p {
  color: var(--muted);
}

.decision-card-grid em {
  margin-top: auto;
}

.comparison-section {
  background: #f1e8de;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.comparison-table {
  display: grid;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: var(--ivory);
}

.comparison-table div {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr 1fr;
  border-bottom: 1px solid var(--line);
}

.comparison-table span {
  padding: 18px 22px;
  border-right: 1px solid var(--line);
  color: var(--muted);
  font-size: 14px;
}

.comparison-table span:first-child {
  color: var(--ink);
  font-weight: 800;
}

.template-browse .template-hero {
  grid-template-columns: minmax(360px, 0.86fr) minmax(500px, 1.14fr);
  align-items: end;
  min-height: min(430px, calc(100svh - 64px));
}

.template-browse .template-hero img,
.template-browse .hero-slider {
  height: clamp(240px, 29svh, 360px);
}

.browse-panel {
  background: #eee4d8;
}

.browse-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 28px;
}

.browse-chips a {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  padding: 0 14px;
  border: 1px solid rgba(184, 149, 103, 0.42);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.62);
  color: var(--rose);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.family-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.family-grid article,
.solution-blocks article,
.process-notes article,
.resource-cards article {
  min-height: 170px;
  padding: clamp(20px, 2.3vw, 30px);
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  background: rgba(255, 253, 250, 0.72);
}

.family-grid span {
  color: var(--champagne);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 34px;
  line-height: 1;
}

.family-grid h3,
.solution-blocks h3,
.process-notes h3,
.resource-cards h3 {
  margin-top: 16px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(25px, 2.1vw, 34px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.05;
  text-transform: none;
}

.family-grid p,
.solution-blocks p,
.process-notes p,
.resource-cards p {
  color: var(--muted);
}

.fit-guidance {
  display: grid;
  grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(28px, 5vw, 74px);
  background: var(--ivory);
}

.fit-guidance > div p:not(.eyebrow) {
  max-width: 520px;
  color: var(--muted);
  font-size: 17px;
}

.fit-guidance ul {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fit-guidance li {
  display: grid;
  grid-template-columns: minmax(170px, 0.48fr) minmax(0, 1fr);
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.fit-guidance strong {
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.fit-guidance span {
  color: var(--muted);
}

.related-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 28px;
  padding-top: 28px !important;
  padding-bottom: 28px !important;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #f8f4ee;
}

.template-solution .template-hero {
  background: #f1e8de;
}

.template-solution .template-hero img {
  height: clamp(340px, 36svh, 480px);
  object-position: center 45%;
}

.solution-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(28px, 5vw, 70px);
  background: var(--ivory);
}

.solution-checklist {
  position: sticky;
  top: 116px;
  align-self: start;
}

.solution-checklist ul {
  display: grid;
  gap: 12px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.solution-checklist li {
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
}

.solution-blocks,
.process-notes,
.resource-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.funding-note-panel,
.template-cta-panel {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto;
  gap: 24px;
  align-items: center;
  background: linear-gradient(135deg, rgba(42, 32, 29, 0.96), rgba(81, 48, 57, 0.94));
  color: var(--ivory);
}

.funding-note-panel h2,
.template-cta-panel h2 {
  color: var(--ivory);
  font-size: clamp(34px, 3.5vw, 56px);
}

.funding-note-panel p,
.template-cta-panel p {
  max-width: 620px;
  color: rgba(255, 253, 250, 0.76);
}

.process-flow {
  background: var(--ivory);
}

.process-flow ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.process-flow li {
  display: grid;
  align-content: start;
  min-height: 190px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  background: #f8f4ee;
}

.process-flow li span {
  width: 34px;
  height: 34px;
  margin-bottom: 28px;
  border-radius: 50%;
  border: 1px solid rgba(184, 149, 103, 0.62);
  background: rgba(184, 149, 103, 0.14);
}

.process-flow li strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(27px, 2.1vw, 36px);
  font-weight: 500;
  line-height: 1.04;
}

.process-notes {
  background: #f1e8de;
}

.template-cta-panel.compact {
  padding-top: clamp(42px, 5vw, 70px) !important;
  padding-bottom: clamp(42px, 5vw, 70px) !important;
}

.faq-accordion {
  display: grid;
  gap: 12px;
  background: var(--ivory);
}

.faq-accordion details {
  border: 1px solid var(--line);
  border-radius: var(--image-radius);
  background: #f8f4ee;
}

.faq-accordion summary {
  cursor: pointer;
  padding: 22px 24px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(25px, 2vw, 34px);
  line-height: 1.05;
}

.faq-accordion p {
  max-width: 820px;
  margin: 0;
  padding: 0 24px 24px;
  color: var(--muted);
}

.faq-support-intro {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  gap: 26px;
  align-items: center;
  max-width: 1270px;
  margin: 0 auto;
  padding: 28px clamp(30px, 6vw, 88px) 4px;
}

.faq-support-intro h2 {
  margin: 4px 0 8px;
  color: var(--lo-plum-dark);
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.05;
}

.faq-support-intro p:not(.eyebrow) {
  max-width: 540px;
  margin: 0;
  color: #5f5360;
  font-size: 15px;
  line-height: 1.55;
}

.faq-topic-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.faq-topic-pills a {
  padding: 10px 14px;
  border: 1px solid rgba(111, 35, 75, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.66);
  color: var(--lo-plum);
  font-size: 12px;
  font-weight: 800;
}

.policy-layout {
  display: grid;
  grid-template-columns: minmax(180px, 0.32fr) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 74px);
  background: var(--ivory);
}

.policy-layout aside {
  position: sticky;
  top: 116px;
  display: grid;
  align-self: start;
  border-top: 1px solid var(--line);
}

.policy-layout aside a {
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  color: var(--rose);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.policy-layout article {
  padding-bottom: 36px;
  border-bottom: 1px solid var(--line);
}

.policy-layout article + article {
  padding-top: 36px;
}

.policy-layout p {
  max-width: 840px;
  color: var(--muted);
  font-size: 17px;
}

.resource-cards {
  background: #f1e8de;
}

/* Reference UI system: soft blush editorial layout with plum controls. */
.site-header {
  min-height: 64px;
  padding: 10px clamp(18px, 5.5vw, 86px);
  background: rgba(255, 250, 248, 0.88);
  border-bottom: 1px solid rgba(111, 35, 75, 0.14);
  box-shadow: 0 8px 30px rgba(76, 20, 49, 0.04);
}

.brand {
  min-width: 230px;
  gap: 9px;
}

.brand-mark {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 0;
  background: url("assets/lo-flower.svg") center / contain no-repeat;
  color: transparent;
  font-size: 0;
}

.brand strong,
.site-footer strong {
  color: var(--lo-plum-dark);
  font-size: 30px;
  letter-spacing: -0.01em;
}

.brand em {
  display: none;
}

.site-nav {
  gap: clamp(18px, 2.4vw, 44px);
  color: #342932;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.site-nav a {
  min-height: 44px;
  align-items: center;
  padding: 0;
  border-bottom: 2px solid transparent;
}

.site-nav a:hover,
.site-nav a.is-active {
  border-color: var(--lo-plum);
  color: var(--lo-plum);
}

.nav-item.has-menu > a::after {
  margin-top: 0;
}

.header-cta,
.button {
  min-height: 42px;
  padding: 0 22px;
  border-color: var(--lo-plum);
  border-radius: 12px;
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}

.header-cta,
.button.primary {
  background: var(--lo-plum);
  border-color: var(--lo-plum);
  color: #fff;
  box-shadow: 0 10px 24px rgba(111, 35, 75, 0.18);
}

.header-cta::before,
.button.primary::before,
.lo-bottom-cta .button::before {
  content: "";
  width: 16px;
  height: 16px;
  margin-right: 9px;
  border: 1.7px solid currentColor;
  border-radius: 4px;
  box-shadow: inset 0 5px 0 rgba(255, 255, 255, 0.18);
}

.button.secondary {
  background: rgba(255, 255, 255, 0.78);
  color: var(--lo-plum);
}

.button.ghost {
  color: var(--lo-plum);
}

.eyebrow {
  color: #bb6571;
  font-size: 13px;
  letter-spacing: 0.08em;
}

h1,
h2 {
  color: var(--lo-plum-dark);
}

h1 {
  font-size: clamp(46px, 4.5vw, 78px);
}

h2 {
  font-size: clamp(32px, 3.4vw, 54px);
}

section:not(.hero, .announcement-banner) {
  padding: clamp(36px, 5vw, 76px) clamp(18px, 5.5vw, 86px);
}

.announcement-banner {
  background: linear-gradient(90deg, #6d2447, #8d3559);
}

.hero,
.subpage-hero,
.template-hero,
.product-hero {
  position: relative;
  overflow: hidden;
  max-width: 100%;
  min-height: min(500px, calc(100svh - 64px));
  padding: clamp(30px, 4.2vw, 56px) clamp(18px, 5.5vw, 86px);
  border-bottom: 0;
  background:
    radial-gradient(circle at 68% 18%, rgba(247, 213, 219, 0.64), transparent 18%),
    linear-gradient(100deg, rgba(255, 250, 248, 0.98) 0 46%, rgba(255, 244, 241, 0.72) 64%, rgba(255, 250, 248, 0.9) 100%);
}

.hero-copy {
  padding: 0;
}

.hero-media,
.subpage-hero > img,
.template-hero > img,
.hero-slider,
.location-hero-map {
  border-radius: 14px;
  box-shadow: var(--lo-shadow);
}

.hero-media {
  height: clamp(430px, 56svh, 640px);
  background: transparent;
}

.hero-media img,
.subpage-hero > img,
.template-hero > img {
  filter: saturate(1.02) contrast(1.01);
}

.trust-panel {
  border: 1px solid rgba(111, 35, 75, 0.08);
  border-left: 0;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 12px 32px rgba(76, 20, 49, 0.05);
}

.trust-panel span {
  color: var(--lo-plum);
}

.trust-panel strong {
  color: var(--lo-plum-dark);
  font-size: clamp(22px, 1.8vw, 30px);
}

.support-pathways,
.decision-hub,
.browse-panel,
.process-flow,
.faq-accordion,
.resource-cards,
.product-index-section {
  background: transparent;
}

.pathway-card,
.decision-card-grid a,
.family-grid article,
.support-program-card,
.product-directory,
.product-access-panel,
.catalog-card,
.faq-accordion details,
.resource-cards article,
.process-flow li,
.process-notes article,
.solution-blocks article,
.map-card {
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 18px;
  background: var(--lo-card);
  box-shadow: var(--lo-shadow);
  backdrop-filter: blur(18px) saturate(1.04);
}

.pathway-card h3,
.decision-card-grid strong,
.family-grid h3,
.source-grid h3,
.resource-cards h3,
.process-notes h3 {
  color: var(--lo-plum-dark);
}

.pathway-card span,
.family-grid span,
.detail-list span {
  color: #c46f7b;
}

.pathway-card em,
.decision-card-grid em,
.related-strip a,
.service-card em,
.link-row a,
.quick-contact a,
.location-list a {
  color: var(--lo-plum);
  letter-spacing: 0.03em;
  text-transform: none;
}

.pathway-card:hover,
.decision-card-grid a:hover,
.family-grid article:hover,
.product-directory a.product-directory-row:hover {
  border-color: rgba(111, 35, 75, 0.28);
  transform: translateY(-2px);
}

.decision-card-grid {
  display: flex;
  overflow-x: auto;
  padding-bottom: 8px;
  scroll-snap-type: x mandatory;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
}

.decision-card-grid a {
  flex: 0 0 min(330px, 82vw);
  min-height: 360px;
  overflow: hidden;
  padding: 0;
  scroll-snap-align: start;
}

.decision-card-grid a > div {
  min-height: 134px;
  padding: 26px 28px 14px;
}

.decision-card-grid img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  object-position: center;
}

.decision-card-grid em {
  padding: 15px 28px 22px;
}

.comparison-section,
.fit-guidance,
.solution-layout,
.process-notes,
.policy-layout,
.locations,
.editorial,
.home-trust-strip {
  border-top: 0;
  border-bottom: 0;
  background: transparent;
}

.comparison-table,
.product-directory {
  overflow: hidden;
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: var(--lo-shadow);
}

.comparison-table div,
.product-directory-row {
  border-color: rgba(111, 35, 75, 0.1);
}

.comparison-table span,
.product-directory-row > * {
  border-color: rgba(111, 35, 75, 0.1);
}

.browse-chips a {
  border-color: rgba(111, 35, 75, 0.14);
  background: #fff;
  color: var(--lo-plum);
}

.browse-chips a:first-child,
.browse-chips a:hover {
  background: var(--lo-plum);
  color: #fff;
}

.family-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.family-grid article a {
  margin-top: auto;
  color: var(--lo-plum);
  font-size: 13px;
  font-weight: 800;
}

.lo-trust-band {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  max-width: calc(1720px - 120px);
  margin: clamp(8px, 2vw, 22px) auto;
  padding: 18px 22px !important;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.76);
  box-shadow: var(--lo-shadow);
}

.lo-trust-band article {
  position: relative;
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  align-items: center;
  padding: 6px 22px;
}

.lo-trust-band article + article {
  border-left: 1px solid rgba(111, 35, 75, 0.12);
}

.lo-trust-band article::before {
  content: "";
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background:
    url("assets/lo-flower.svg") center / 24px 24px no-repeat,
    #fae9ec;
}

.lo-trust-band span {
  display: block;
  color: var(--lo-plum-dark);
  font-weight: 800;
}

.lo-trust-band p {
  margin: 2px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.template-cta-panel,
.funding-note-panel,
.lo-bottom-cta {
  max-width: calc(1720px - 120px);
  margin: clamp(12px, 2vw, 28px) auto clamp(40px, 5vw, 78px);
  border-radius: 18px;
  border: 0;
  background:
    radial-gradient(circle at 12% 50%, rgba(255, 255, 255, 0.12), transparent 24%),
    linear-gradient(110deg, var(--lo-plum-dark), #8b2f58);
  box-shadow: 0 18px 45px rgba(76, 20, 49, 0.2);
}

.lo-bottom-cta {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
  padding: clamp(22px, 3vw, 34px) clamp(24px, 5vw, 76px) !important;
  color: #fff;
}

.lo-bottom-cta h2,
.template-cta-panel h2,
.funding-note-panel h2 {
  margin-bottom: 4px;
  color: #fff;
  font-size: clamp(27px, 2.3vw, 40px);
}

.lo-bottom-cta p {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
}

.lo-bottom-cta .button,
.template-cta-panel .button,
.funding-note-panel .button {
  background: #fff;
  border-color: #fff;
  color: var(--lo-plum);
  box-shadow: none;
}

.template-solution .template-hero,
.template-process .template-hero,
.template-resource .template-hero,
.template-contact .template-hero {
  background:
    radial-gradient(circle at 72% 24%, rgba(247, 213, 219, 0.7), transparent 18%),
    linear-gradient(100deg, rgba(255, 250, 248, 0.98) 0 48%, rgba(255, 240, 237, 0.82) 100%);
}

.process-flow ol {
  position: relative;
  gap: 16px;
}

.process-flow li {
  text-align: center;
}

.process-flow li span {
  display: grid;
  place-self: center;
  place-items: center;
  background: #fae9ec;
}

.process-flow li span::after {
  color: var(--lo-plum);
  font-weight: 800;
}

.site-footer {
  background: #fffaf8;
  color: var(--lo-plum-dark);
  border-top: 1px solid rgba(111, 35, 75, 0.12);
}

.site-footer p,
.site-footer a {
  color: #7d6170;
}

.product-index-layout {
  grid-template-columns: 1fr;
}

.product-access-panel {
  position: static;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
}

/* menu39: closer 1:1 reproduction of the supplied Leila O'Toole UI boards. */
body {
  background:
    radial-gradient(circle at 76% 10%, rgba(255, 229, 226, 0.78), transparent 25%),
    linear-gradient(180deg, #fffaf8 0%, #fff7f5 58%, #fffaf8 100%);
}

main {
  max-width: 1440px;
  margin: 0 auto;
}

.home-page main {
  max-width: none;
}

.site-header {
  min-height: 64px;
  padding: 0 clamp(24px, 6vw, 88px);
  background: rgba(255, 250, 248, 0.94);
}

.brand strong {
  font-size: 31px;
}

.site-nav {
  font-size: 15px;
  gap: clamp(22px, 3vw, 52px);
}

.header-cta {
  min-height: 44px;
  padding-inline: 26px;
  border-radius: 15px;
}

.announcement-banner {
  display: none;
}

.hero {
  grid-template-columns: 0.94fr 1.06fr;
  align-items: center;
  min-height: 282px;
  padding: 30px clamp(30px, 6vw, 88px) 22px;
  background:
    radial-gradient(circle at 69% 19%, rgba(246, 202, 206, 0.78), transparent 13%),
    linear-gradient(90deg, rgba(255, 250, 248, 0.99) 0 43%, rgba(255, 246, 242, 0.9) 65%, rgba(255, 250, 248, 0.96) 100%);
}

.hero-copy {
  max-width: 560px;
}

.hero .eyebrow {
  margin-bottom: 10px;
  font-size: 13px;
  color: #c46070;
}

.hero h1 {
  max-width: 680px;
  margin-bottom: 12px;
  color: var(--lo-plum-dark);
  font-size: clamp(40px, 4.05vw, 58px);
  line-height: 0.96;
}

.hero-text {
  max-width: 470px;
  margin-bottom: 18px;
  font-size: 15px;
  line-height: 1.55;
}

.hero-actions {
  gap: 12px;
  margin-bottom: 0;
}

.hero-media {
  height: 256px;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}

.hero-media img {
  object-fit: cover;
  object-position: center 50%;
  border-radius: 0;
  mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 100%);
}

.support-pathways {
  position: relative;
  z-index: 2;
  max-width: 1270px;
  margin-top: -4px;
  padding: 0 0 0 !important;
  border: 0;
  background: transparent;
}

.support-pathways .section-intro {
  max-width: none;
  margin: 0 0 14px;
  text-align: center;
}

.support-pathways h2 {
  margin: 0;
  font-size: 21px;
  line-height: 1.2;
}

.pathway-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.pathway-card {
  min-height: 134px;
  padding: 24px 26px 22px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.86);
}

.pathway-card span {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background:
    url("assets/lo-flower.svg") center / 25px 25px no-repeat,
    #fae8eb;
}

.pathway-card h3 {
  margin: 16px 0 7px;
  font-size: 17px;
  line-height: 1.1;
}

.pathway-card p {
  max-width: none;
  margin-bottom: 14px;
  font-size: 13px;
  line-height: 1.35;
}

.pathway-card em {
  font-size: 12px;
}

.home-trust-strip {
  max-width: 1270px;
  display: block;
  padding: 18px 0 0 !important;
}

.trust-strip-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: var(--lo-shadow);
}

.trust-strip-grid article {
  display: grid;
  grid-template-columns: 54px 1fr;
  align-items: center;
  min-height: 78px;
  padding: 12px 28px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.trust-strip-grid article + article {
  border-left: 1px solid rgba(111, 35, 75, 0.12);
}

.trust-strip-grid article::before {
  content: "";
  width: 44px;
  height: 44px;
  grid-row: 1 / span 2;
  border-radius: 50%;
  background:
    url("assets/lo-flower.svg") center / 22px 22px no-repeat,
    #fae8eb;
}

.trust-strip-grid span {
  margin: 0 0 2px;
  color: #3f2936;
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
}

.trust-strip-grid strong {
  color: var(--muted);
  font-family: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.25;
}

.government-support,
.editorial {
  display: none;
}

.locations {
  max-width: 1270px;
  display: block;
  padding-top: 22px !important;
  padding-bottom: 22px !important;
}

.location-lead {
  max-width: none;
  margin-bottom: 10px;
  text-align: center;
}

.location-lead h2 {
  margin-bottom: 4px;
  font-size: 21px;
}

.location-lead p {
  margin-bottom: 0;
  font-size: 12px !important;
}

.location-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  border: 0;
}

.location-list article {
  display: block;
  min-height: 60px;
  padding: 13px 18px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.76);
  text-align: center;
}

.location-list h3 {
  margin: 0 0 4px;
  color: var(--lo-plum-dark);
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}

.location-list p {
  color: var(--muted);
  font-size: 10.5px;
}

.home-view-all {
  display: block;
  margin-top: 10px;
  color: var(--lo-plum);
  font-size: 12px;
  font-weight: 800;
  text-align: right;
}

.home-final-cta {
  max-width: 1270px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  min-height: 92px;
  margin: 0 auto 28px;
  padding: 22px 54px !important;
  border-radius: 16px;
  background:
    radial-gradient(circle at 11% 52%, rgba(255, 255, 255, 0.1), transparent 17%),
    linear-gradient(100deg, #6b2348, #8a2f58);
  box-shadow: 0 18px 45px rgba(76, 20, 49, 0.18);
}

.home-final-cta h2 {
  margin: 0 0 4px;
  color: #fff;
  font-size: 25px;
}

.home-final-cta p {
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
}

.home-final-cta .hero-actions {
  justify-self: end;
}

.home-final-cta .button {
  background: #fff;
  border-color: #fff;
  color: var(--lo-plum);
}

.products-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(360px, 0.8fr) minmax(520px, 1.2fr);
  align-items: center;
  min-height: 282px;
  padding: 36px clamp(30px, 6vw, 88px) 26px;
  overflow: hidden;
  background:
    radial-gradient(circle at 74% 22%, rgba(246, 198, 205, 0.68), transparent 13%),
    linear-gradient(90deg, rgba(255, 250, 248, 0.99) 0 41%, rgba(255, 243, 240, 0.82) 100%);
}

.products-hero > div {
  position: relative;
  z-index: 2;
  max-width: 560px;
}

.products-hero .eyebrow {
  margin-bottom: 10px;
  color: #c46070;
  font-size: 13px;
}

.products-hero h1 {
  margin: 0 0 13px;
  color: var(--lo-plum-dark);
  font-size: clamp(42px, 4.1vw, 58px);
  line-height: 0.96;
}

.products-hero .hero-text {
  max-width: 430px;
  margin: 0;
  color: #5f5360;
}

.products-hero img {
  width: 100%;
  height: 245px;
  object-fit: cover;
  object-position: center 50%;
  border-radius: 0;
  mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 100%);
}

.products-directory-card {
  max-width: 860px;
  margin: 0 auto 16px;
  padding: 14px 18px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--lo-shadow);
}

.products-directory-row {
  display: grid;
  grid-template-columns: 1.15fr 1.1fr 1.55fr 0.52fr;
  gap: 24px;
  align-items: center;
  min-height: 44px;
  padding: 10px 14px;
  color: #3e2934;
  text-decoration: none;
  border-bottom: 1px solid rgba(111, 35, 75, 0.1);
}

.products-directory-row:last-child {
  border-bottom: 0;
}

.products-directory-head {
  min-height: 34px;
  color: #9a536b;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.products-directory-row strong {
  color: var(--lo-plum-dark);
  font-size: 14px;
}

.products-directory-row span {
  color: #5f5360;
  font-size: 13px;
  line-height: 1.35;
}

.products-directory-row em {
  color: var(--lo-plum);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  text-align: right;
}

.products-directory-row:hover {
  background: #fff7f7;
  border-radius: 10px;
}

.product-trust-band {
  margin-top: 14px;
  margin-bottom: 16px;
}

.product-final-cta {
  margin-bottom: 34px;
}

/* menu39: enforce the supplied mockup proportions over the older redesign rules. */
section.products-hero {
  min-height: 300px;
  padding: 34px clamp(30px, 6vw, 88px) 18px;
}

section.products-hero img {
  height: 246px;
}

.products-directory-card {
  margin-top: -12px;
}

.subpage-main .template-hero {
  min-height: 318px;
  padding: 34px clamp(30px, 6vw, 88px) 28px;
  grid-template-columns: minmax(360px, 0.82fr) minmax(520px, 1.18fr);
  background:
    radial-gradient(circle at 74% 21%, rgba(246, 198, 205, 0.68), transparent 13%),
    linear-gradient(90deg, rgba(255, 250, 248, 0.99) 0 42%, rgba(255, 243, 240, 0.82) 100%);
}

.subpage-main .template-hero > div {
  max-width: 560px;
}

.subpage-main .template-hero h1 {
  margin-bottom: 12px;
  color: var(--lo-plum-dark);
  font-size: clamp(42px, 4vw, 58px);
  line-height: 0.98;
}

.subpage-main .template-hero .hero-text {
  max-width: 460px;
  margin-bottom: 18px;
  color: #5f5360;
  font-size: 15px;
}

.subpage-main .template-hero > img,
.subpage-main .hero-slider {
  height: 246px;
  border-radius: 0;
  box-shadow: none;
  mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 100%);
}

.subpage-main .template-hero > img {
  object-fit: cover;
  object-position: center;
}

.subpage-main.template-resource .template-hero > img {
  border-radius: 18px;
  box-shadow: 0 18px 46px rgba(76, 20, 49, 0.08);
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.82) 18%, #000 42%, #000 100%);
}

.subpage-main.template-resource .template-hero > img.image-faqs {
  object-position: center 42%;
}

.subpage-main .template-hero .button.ghost {
  display: none;
}

.subpage-main.template-decision .template-hero {
  min-height: 326px;
  grid-template-columns: minmax(520px, 0.92fr) minmax(520px, 1.08fr);
}

.subpage-main.template-decision .template-hero > div {
  max-width: 650px;
}

.subpage-main.template-decision .template-hero h1 {
  max-width: 650px;
  font-size: clamp(38px, 3.45vw, 50px);
}

.subpage-main .decision-hub,
.subpage-main .browse-panel,
.subpage-main .comparison-section,
.subpage-main .fit-guidance,
.subpage-main .solution-layout,
.subpage-main .process-flow,
.subpage-main .process-notes,
.subpage-main .resource-cards,
.subpage-main .faq-accordion,
.subpage-main .policy-layout {
  max-width: 1270px;
  padding-top: 26px;
  padding-bottom: 18px;
}

.subpage-main .decision-hub .section-intro,
.subpage-main .process-flow .section-intro {
  margin-bottom: 18px;
  text-align: center;
}

.subpage-main .decision-hub .section-intro h2,
.subpage-main .process-flow .section-intro h2 {
  max-width: 720px;
  margin-inline: auto;
  font-size: clamp(28px, 3vw, 42px);
}

.subpage-main .decision-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  overflow: visible;
}

.subpage-main .decision-card-grid a {
  min-height: 306px;
  flex: initial;
  border-radius: 16px;
}

.subpage-main .decision-card-grid a {
  position: relative;
  overflow: hidden;
  border-color: rgba(111, 35, 75, 0.12);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 14px 38px rgba(76, 20, 49, 0.06);
}

.subpage-main .decision-card-grid a::after {
  content: "Product range";
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 6px 9px;
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  color: var(--lo-plum);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.subpage-main .decision-card-grid a:hover {
  border-color: rgba(111, 35, 75, 0.24);
  box-shadow: 0 20px 46px rgba(76, 20, 49, 0.095);
}

.subpage-main .decision-card-grid a > div {
  min-height: 126px;
  padding: 20px 22px 12px;
}

.subpage-main .decision-card-grid strong {
  font-size: 20px;
  line-height: 1.05;
}

.subpage-main .decision-card-grid p {
  font-size: 13px;
  line-height: 1.35;
}

.subpage-main .decision-card-grid img {
  height: 150px;
}

.subpage-main .comparison-section {
  padding-top: 0;
}

.subpage-main .comparison-table {
  max-width: 1270px;
  margin: 0 auto;
}

.subpage-main .lo-trust-band {
  max-width: 1270px;
}

.subpage-main .lo-bottom-cta,
.subpage-main .template-cta-panel,
.subpage-main .funding-note-panel {
  max-width: 1270px;
  margin-top: 16px;
}

main .subpage-hero.location-hero {
  min-height: 360px;
  grid-template-columns: minmax(430px, 0.84fr) minmax(560px, 1.16fr);
  align-items: center;
  padding: 34px clamp(30px, 6vw, 88px) 26px;
  background:
    radial-gradient(circle at 74% 21%, rgba(246, 198, 205, 0.68), transparent 13%),
    linear-gradient(90deg, rgba(255, 250, 248, 0.99) 0 42%, rgba(255, 243, 240, 0.82) 100%);
}

main .subpage-hero.location-hero h1 {
  max-width: 560px;
  font-size: clamp(38px, 3.6vw, 54px);
  line-height: 0.98;
}

main .subpage-hero.location-hero .hero-text {
  max-width: 490px;
  margin-bottom: 14px;
  font-size: 14px;
}

main .subpage-hero.location-hero .trust-panel {
  max-width: 520px;
  padding: 16px 18px;
  margin-bottom: 14px;
}

main .subpage-hero.location-hero .trust-panel strong {
  font-size: 20px;
  line-height: 1.08;
}

main .subpage-hero.location-hero > .location-hero-map {
  height: 292px;
  margin-top: 0;
  border-radius: 16px;
  box-shadow: var(--lo-shadow);
}

main .map-section {
  max-width: 1270px;
  padding-top: 28px;
}

/* reference-style locations page */
.location-reference {
  background:
    radial-gradient(circle at 76% 8%, rgba(247, 216, 220, 0.58), transparent 22%),
    linear-gradient(180deg, #fffaf8 0%, #fff3f1 48%, #fffaf8 100%);
}

.site-nav a[href="locations.html"] {
  color: var(--lo-plum);
  border-color: var(--lo-plum);
}

.location-reference .location-reference-hero {
  max-width: 1440px;
  min-height: 620px;
  padding: 76px clamp(28px, 8vw, 132px) 60px;
  border-bottom: 1px solid rgba(111, 35, 75, 0.1);
  box-shadow: none;
}

.location-reference .location-hero-copy {
  display: grid;
  justify-items: start;
  max-width: 570px;
}

.location-reference .eyebrow {
  color: #a14662;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.location-reference .location-reference-hero h1 {
  max-width: 560px;
  margin: 10px 0 22px;
  color: var(--lo-plum);
  font-size: clamp(46px, 4.4vw, 68px);
  line-height: 1.02;
}

.location-reference .location-reference-hero .hero-text {
  max-width: 548px;
  margin: 0 0 36px;
  color: #3a2d34;
  font-size: 16px;
  line-height: 1.75;
}

.location-trust-card {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 18px;
  align-items: center;
  width: min(100%, 535px);
  margin-bottom: 34px;
  padding: 24px 28px;
  border: 1px solid rgba(111, 35, 75, 0.08);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 18px 46px rgba(111, 35, 75, 0.07);
}

.location-trust-card span:not(.location-icon) {
  display: block;
  margin-bottom: 7px;
  color: var(--lo-plum);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.location-trust-card strong {
  color: #33252d;
  font-size: 14px;
  line-height: 1.55;
}

.location-reference .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}

.location-reference .button {
  min-height: 54px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
}

.location-reference .button.primary {
  background: linear-gradient(180deg, #8a1f5a 0%, #701445 100%);
  color: #fff;
  box-shadow: 0 10px 26px rgba(111, 35, 75, 0.18);
}

.location-reference .hero-actions .button.primary {
  line-height: 1.15;
}

.location-reference .button.secondary {
  border-color: rgba(111, 35, 75, 0.78);
  background: rgba(255, 255, 255, 0.55);
  color: var(--lo-plum);
}

.location-reference .location-hero-map {
  position: relative;
  height: 500px;
  min-height: 500px;
  overflow: visible;
  border-radius: 16px;
  box-shadow: none;
}

.location-reference .location-hero-map img {
  width: 100%;
  height: 100%;
  border-radius: 16px;
  object-fit: cover;
  object-position: 50% 42%;
  filter: saturate(0.88) sepia(0.08);
}

.hero-care-card {
  position: absolute;
  inset: auto -50px 66px auto;
  right: -50px;
  bottom: 66px;
  display: grid;
  gap: 26px;
  width: min(330px, 45%);
  padding: 42px 34px;
  border: 1px solid rgba(111, 35, 75, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 22px 58px rgba(111, 35, 75, 0.12);
  pointer-events: auto;
}

.care-row {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 18px;
  color: #3b2c34;
  font-size: 14px;
  line-height: 1.45;
}

.care-row strong {
  display: block;
  margin-bottom: 4px;
  color: #271821;
  font-size: 15px;
}

.location-icon {
  display: inline-block;
  width: 26px;
  height: 26px;
  background: var(--location-icon) center / contain no-repeat;
}

.icon-bag { --location-icon: url("assets/icons/icon-since-1953-heart.svg"); }
.icon-lock { --location-icon: url("assets/icons/icon-private-fitting-lock.svg"); }
.icon-heart { --location-icon: url("assets/icons/icon-specialist-advice-person.svg"); }
.icon-calendar { --location-icon: url("assets/icons/icon-calendar-booking.svg"); }
.icon-pin { --location-icon: url("assets/icons/icon-location-pin.svg"); }
.icon-clock { --location-icon: url("assets/icons/icon-check-circle.svg"); }

.location-reference .location-card-section {
  max-width: 1320px;
  padding: 68px clamp(24px, 6vw, 112px) 76px;
}

.location-section-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: end;
  margin-bottom: 34px;
}

.location-section-head h2 {
  margin: 8px 0 12px;
  color: var(--lo-plum);
  font-size: clamp(42px, 4vw, 58px);
  line-height: 1;
}

.location-section-head p:not(.eyebrow) {
  max-width: 760px;
  margin: 0;
  color: #4b4047;
  font-size: 15px;
}

.compact-contact {
  white-space: nowrap;
}

.location-list-detailed {
  display: grid;
  gap: 12px;
}

.location-detail-card {
  display: grid;
  grid-template-columns: minmax(260px, 420px) minmax(320px, 1fr) minmax(235px, 315px);
  gap: 42px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(111, 35, 75, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 16px 46px rgba(111, 35, 75, 0.06);
}

.location-detail-card .map-preview-img {
  width: 100%;
  height: 248px;
  border-radius: 8px;
  object-fit: cover;
  filter: saturate(0.96) contrast(0.98);
}

.location-detail-card .location-map-frame {
  display: block;
  border: 1px solid rgba(25, 22, 18, 0.08);
  background: #f4ede4;
}

.location-detail-main {
  display: grid;
  gap: 20px;
  min-width: 0;
}

.location-detail-main h3,
.location-help-panel h3 {
  margin: 0;
  color: var(--lo-plum);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 31px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: none;
}

.location-detail-main p {
  position: relative;
  margin: 0;
  padding-left: 38px;
  color: #3a3036;
  font-size: 15px;
  line-height: 1.5;
}

.location-detail-main p .location-icon {
  position: absolute;
  top: 1px;
  left: 0;
  width: 22px;
  height: 22px;
}

.location-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 8px;
}

.location-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 8px;
  background: #fff0f0;
  color: #5a3446;
  font-size: 13px;
  font-weight: 600;
}

.location-detail-actions {
  display: grid;
  gap: 20px;
  padding-left: 44px;
  border-left: 1px solid rgba(111, 35, 75, 0.14);
  color: var(--lo-plum);
  font-size: 15px;
  font-weight: 800;
}

.location-detail-actions > a:not(.button) {
  position: relative;
  padding-left: 32px;
}

.location-detail-actions > a:not(.button)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1px;
  width: 20px;
  height: 20px;
  background: url("assets/icons/icon-phone.svg") center / contain no-repeat;
}

.location-detail-actions > a[href^="sms"]::before {
  background-image: url("assets/icons/icon-email.svg");
}

.location-detail-actions .button {
  justify-content: center;
  width: 100%;
  margin-top: 10px;
}

.location-detail-actions .direction-link {
  margin-top: 4px;
  padding-left: 0;
}

.location-detail-actions .direction-link::before {
  display: none;
}

.location-detail-actions .direction-link::after {
  content: " ->";
  margin-left: 8px;
}

.location-help-panel {
  display: grid;
  grid-template-columns: 58px minmax(260px, 1fr) auto auto;
  gap: 24px;
  align-items: center;
  margin-top: 44px;
  padding: 34px 44px;
  border-radius: 14px;
  background:
    radial-gradient(circle at 6% 50%, rgba(255, 255, 255, 0.9), transparent 20%),
    linear-gradient(90deg, #fff0f1 0%, #ffe6e7 100%);
}

.location-help-panel > .location-icon {
  width: 52px;
  height: 52px;
  padding: 12px;
  border-radius: 999px;
  background-color: #fff;
  background-size: 28px 28px;
  box-shadow: 0 13px 26px rgba(111, 35, 75, 0.13);
}

.location-help-panel p {
  max-width: 520px;
  margin: 8px 0 0;
  color: #382b33;
  font-size: 15px;
}

@media (max-width: 1180px) {
  .location-reference .location-reference-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .location-reference .location-hero-map {
    width: 100%;
    height: 470px;
  }

  .hero-care-card {
    right: 24px;
    width: min(340px, calc(100% - 48px));
  }

  .location-detail-card {
    grid-template-columns: 320px 1fr;
    gap: 28px;
  }

  .location-detail-actions {
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: center;
    padding: 22px 0 0;
    border-top: 1px solid rgba(111, 35, 75, 0.14);
    border-left: 0;
  }

  .location-detail-actions .button {
    margin-top: 0;
  }

  .location-help-panel {
    grid-template-columns: 58px 1fr;
  }
}

@media (max-width: 760px) {
  .location-reference .location-reference-hero,
  .location-reference .location-card-section {
    padding-right: 18px;
    padding-left: 18px;
  }

  .location-reference .location-reference-hero h1 {
    font-size: 42px;
  }

  .location-reference .hero-actions,
  .location-section-head,
  .location-detail-card,
  .location-detail-actions,
  .location-help-panel {
    grid-template-columns: 1fr;
  }

  .location-reference .hero-actions {
    display: grid;
    width: 100%;
  }

  .location-reference .location-hero-map {
    height: auto;
    min-height: 0;
  }

  .location-reference .location-hero-map img {
    height: 330px;
  }

  .hero-care-card {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    margin-top: -34px;
    padding: 28px 24px;
  }

  .compact-contact {
    width: 100%;
  }

  .location-detail-card {
    padding: 12px;
  }

  .location-detail-card .map-preview-img {
    height: 220px;
  }

  .location-detail-actions {
    gap: 16px;
  }

  .location-detail-actions > a:not(.button) {
    min-height: 24px;
  }

  .location-help-panel {
    justify-items: start;
    padding: 28px 24px;
  }

  .location-help-panel .button {
    width: 100%;
  }
}

/* menu39: use supplied Leila icon assets instead of repeated placeholder flowers. */
.brand-mark {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 0;
  background: url("assets/icons/icon-flower-line.svg") center / contain no-repeat;
  color: transparent;
  font-size: 0;
}

.header-cta::before,
.button.primary::before,
.lo-bottom-cta .button::before,
.home-final-cta .button::before {
  border: 0;
  border-radius: 0;
  background: url("assets/icons/icon-calendar-booking.svg") center / contain no-repeat;
  box-shadow: none;
}

.button.secondary[href^="sms"]::before,
.button.secondary[href*="member-login"]::before {
  background-image: url("assets/icons/icon-phone.svg");
}

.pathway-card span,
.trust-strip-grid article::before,
.lo-trust-band article::before {
  background-color: transparent;
  background-size: contain;
}

.pathway-card:nth-child(1) span {
  background-image: url("assets/icons/icon-calendar-booking.svg");
}

.pathway-card:nth-child(2) span {
  background-image: url("assets/icons/icon-full-prostheses.svg");
}

.pathway-card:nth-child(3) span {
  background-image: url("assets/icons/icon-radiation-soft.svg");
}

.pathway-card:nth-child(4) span {
  background-image: url("assets/icons/icon-since-1953-heart.svg");
}

.trust-strip-grid article:nth-child(1)::before,
.lo-trust-band article:nth-child(1)::before {
  background-image: url("assets/icons/icon-private-fitting-lock.svg");
}

.trust-strip-grid article:nth-child(2)::before,
.lo-trust-band article:nth-child(2)::before {
  background-image: url("assets/icons/icon-since-1953-heart.svg");
}

.trust-strip-grid article:nth-child(3)::before,
.lo-trust-band article:nth-child(3)::before {
  background-image: url("assets/icons/icon-specialist-advice-person.svg");
}

.trust-strip-grid article:nth-child(4)::before,
.lo-trust-band article:nth-child(4)::before {
  background-image: url("assets/icons/icon-reimbursement-document.svg");
}

.subpage-main .decision-card-grid a > div {
  position: relative;
}

.subpage-main .decision-card-grid a > div::before,
.family-grid article::before,
.resource-cards article::before,
.process-notes article::before,
.solution-blocks article::before {
  content: "";
  display: block;
  width: 52px;
  height: 52px;
  margin-bottom: 14px;
  background: url("assets/icons/icon-check-circle.svg") center / contain no-repeat;
}

.subpage-main .decision-card-grid a:nth-child(1) > div::before,
.family-grid article:nth-child(1)::before {
  background-image: url("assets/icons/icon-full-prostheses.svg");
}

.subpage-main .decision-card-grid a:nth-child(2) > div::before,
.family-grid article:nth-child(2)::before {
  background-image: url("assets/icons/icon-partial-form.svg");
}

.subpage-main .decision-card-grid a:nth-child(3) > div::before,
.family-grid article:nth-child(3)::before {
  background-image: url("assets/icons/icon-swim-waves.svg");
}

.subpage-main .decision-card-grid a:nth-child(4) > div::before,
.family-grid article:nth-child(4)::before {
  background-image: url("assets/icons/icon-reimbursement-document.svg");
}

.template-solution .solution-blocks article:nth-child(1)::before,
.template-solution .process-notes article:nth-child(1)::before,
.template-solution .resource-cards article:nth-child(1)::before {
  background-image: url("assets/icons/icon-compression-support.svg");
}

.template-process .process-notes article:nth-child(1)::before,
.template-process .resource-cards article:nth-child(1)::before {
  background-image: url("assets/icons/icon-reimbursement-document.svg");
}

.template-contact .quick-contact a:first-child::before {
  background-image: url("assets/icons/icon-phone.svg");
}

.template-contact .quick-contact a:last-child::before {
  background-image: url("assets/icons/icon-email.svg");
}

.home-final-cta::before,
.lo-bottom-cta::before {
  content: "";
  position: absolute;
  left: 34px;
  bottom: -18px;
  width: 142px;
  height: 142px;
  opacity: 0.18;
  background: url("assets/icons/icon-flower-line.svg") center / contain no-repeat;
  pointer-events: none;
}

.home-final-cta,
.lo-bottom-cta {
  position: relative;
  overflow: hidden;
}

/* menu39: reference-style full mega menu with grouped submenu assets. */
@media (min-width: 1181px) {
  .nav-dropdown.is-mega {
    display: block;
    left: 50%;
    right: auto;
    width: min(1180px, calc(100vw - 32px));
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(111, 35, 75, 0.11);
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 18px 46px rgba(69, 38, 52, 0.14);
    backdrop-filter: none;
    transform: translate(-50%, -8px);
  }

  .nav-item:hover .nav-dropdown.is-mega,
  .nav-item:focus-within .nav-dropdown.is-mega,
  .nav-item.is-menu-open .nav-dropdown.is-mega {
    transform: translate(-50%, 0);
  }

  .nav-dropdown.is-mega::before,
  .nav-dropdown.is-mega::after {
    display: none;
  }
}

.mega-menu {
  display: grid;
  grid-template-columns: 1fr 1.12fr 1.08fr 0.95fr 0.82fr 220px;
  width: 100%;
  min-height: 196px;
  padding: 24px 28px 22px;
}

.mega-column {
  position: relative;
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 0 20px;
}

.mega-column + .mega-column {
  border-left: 1px solid rgba(111, 35, 75, 0.12);
}

.mega-column img {
  width: 30px;
  height: 30px;
  margin-bottom: 7px;
}

.mega-column h3 {
  margin: 0 0 6px;
  color: #2f1d28;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.nav-dropdown.is-mega .mega-column a {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #3d3038;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.35;
}

.nav-dropdown.is-mega .mega-column a:hover {
  color: var(--lo-plum);
  transform: none;
}

.nav-dropdown.is-mega .mega-column a.mega-sub {
  position: relative;
  padding-left: 12px;
  color: #5f4e59;
}

.nav-dropdown.is-mega .mega-column a.mega-sub::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 0.58em;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #c65f78;
}

.nav-dropdown.is-mega .mega-column a.mega-emphasis {
  margin-top: 5px;
  color: #c65f78;
}

.mega-promo {
  display: grid !important;
  align-content: center !important;
  min-height: 162px !important;
  padding: 24px 24px !important;
  overflow: hidden;
  border: 0 !important;
  border-radius: 8px !important;
  background:
    linear-gradient(90deg, rgba(255, 250, 248, 0.93) 0 42%, rgba(255, 250, 248, 0.3) 72%, rgba(255, 250, 248, 0.08) 100%),
    url("assets/photo-soft-bra-flower.png") 64% 48% / cover no-repeat !important;
  box-shadow: inset 0 0 0 1px rgba(111, 35, 75, 0.08) !important;
  color: var(--lo-plum-dark) !important;
  text-decoration: none;
}

.mega-promo span {
  display: block !important;
  max-width: 162px;
  color: var(--lo-plum-dark) !important;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 21px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.04 !important;
}

.mega-promo em {
  margin-top: 14px;
  color: var(--lo-plum);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.mega-promo em::after {
  content: " ->";
}

.site-nav {
  gap: clamp(16px, 1.8vw, 30px);
}

@media (max-width: 1180px) {
  .site-header.is-open .nav-dropdown.is-mega {
    padding: 8px 0 12px;
  }

  .site-header.is-open .nav-dropdown.is-mega .mega-menu {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    min-height: 0;
    padding: 0 0 0 16px;
  }

  .site-header.is-open .nav-dropdown.is-mega .mega-column {
    gap: 8px;
    padding: 0;
    border-left: 0;
  }

  .site-header.is-open .nav-dropdown.is-mega .mega-column img {
    display: none;
  }

  .site-header.is-open .nav-dropdown.is-mega .mega-column h3 {
    margin-top: 12px;
  }

  .site-header.is-open .nav-dropdown.is-mega .mega-column a {
    padding: 8px 0;
    border-bottom: 1px solid rgba(222, 211, 197, 0.62);
  }

  .site-header.is-open .nav-dropdown.is-mega .mega-promo {
    min-height: 120px !important;
    margin-top: 10px;
  }
}

@media (max-width: 1180px) {
  .site-header {
    grid-template-columns: auto auto;
  }

  .menu-toggle {
    display: inline-grid;
    justify-self: end;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 11px;
    border: 1px solid var(--line);
    background: var(--ivory);
  }

  .menu-toggle span {
    display: block;
    height: 2px;
    background: var(--ink);
  }

  .site-nav,
  .header-cta {
    display: none;
  }

  .site-header.is-open .site-nav {
    display: grid;
    grid-column: 1 / -1;
    justify-content: stretch;
    gap: 0;
    padding-top: 12px;
    border-top: 1px solid var(--line);
  }

  .site-header.is-open .site-nav a {
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
  }

  .site-header.is-open .nav-item {
    display: grid;
  }

  .site-header.is-open .nav-item.has-menu > a::after {
    display: none;
  }

  .site-header.is-open .nav-dropdown {
    position: static;
    display: grid;
    min-width: 0;
    padding: 0 0 8px 16px;
    border: 0;
    box-shadow: none;
    background: transparent;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .site-header.is-open .nav-dropdown a {
    padding: 10px 0;
    color: var(--muted);
    font-size: 11px;
    border-bottom: 1px solid rgba(222, 211, 197, 0.62);
  }
}

@media (max-width: 1080px) {
  .site-header {
    grid-template-columns: auto auto;
  }

  .menu-toggle {
    display: inline-grid;
    justify-self: end;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 11px;
    border: 1px solid var(--line);
    background: var(--ivory);
  }

  .menu-toggle span {
    display: block;
    height: 2px;
    background: var(--ink);
  }

  .site-nav,
  .header-cta {
    display: none;
  }

  .site-header.is-open .site-nav {
    display: grid;
    grid-column: 1 / -1;
    justify-content: stretch;
    gap: 0;
    padding-top: 12px;
    border-top: 1px solid var(--line);
  }

  .site-header.is-open .site-nav a {
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
  }

  .site-header.is-open .nav-item {
    display: grid;
  }

  .site-header.is-open .nav-item.has-menu > a::after {
    display: none;
  }

  .site-header.is-open .nav-dropdown {
    position: static;
    display: grid;
    min-width: 0;
    padding: 0 0 8px 16px;
    border: 0;
    box-shadow: none;
    background: transparent;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .site-header.is-open .nav-dropdown a {
    padding: 10px 0;
    color: var(--muted);
    font-size: 11px;
    border-bottom: 1px solid rgba(222, 211, 197, 0.62);
  }

  .hero,
  .subpage-hero,
  .government-support,
  .home-trust-strip,
  .appointment,
  .locations,
  .editorial,
  .enquiry,
  .fit-guidance,
  .solution-layout,
  .funding-note-panel,
  .template-cta-panel,
  .policy-layout,
  .merchandising-strip,
  .pricing-notes,
  .login-page,
  .site-footer {
    grid-template-columns: 1fr;
    max-width: none;
  }

  .subpage-layout-product .subpage-hero,
  .subpage-layout-forms .subpage-hero,
  .subpage-layout-support .subpage-hero,
  .subpage-layout-resource .subpage-hero,
  .subpage-layout-contact .subpage-hero {
    grid-template-columns: 1fr;
  }

  .template-decision .template-hero,
  .template-browse .template-hero {
    grid-template-columns: 1fr;
  }

  .hero-media {
    height: 460px;
    min-height: 0;
    order: -1;
  }

  .service-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .pathway-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .trust-strip-grid,
  .decision-card-grid,
  .family-grid,
  .process-flow ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .solution-checklist,
  .policy-layout aside {
    position: static;
  }

  .support-lead {
    position: static;
  }

  .support-program-card.featured {
    grid-row: auto;
    min-height: 250px;
  }

  .catalog-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .product-index-layout {
    grid-template-columns: 1fr;
  }

  .product-access-panel {
    position: static;
  }

  .product-directory-row {
    grid-template-columns: 1fr;
  }

  .product-directory-row > * {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .menu-index-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .source-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .solution-blocks,
  .process-notes,
  .resource-cards {
    grid-template-columns: 1fr;
  }

  .steps {
    grid-template-columns: 1fr;
  }

  .steps li {
    min-height: 0;
  }

  .detail-list {
    grid-template-columns: 1fr;
  }

  .subpage-layout-product .detail-list,
  .subpage-layout-forms .detail-list,
  .subpage-layout-support .detail-list {
    grid-template-columns: 1fr;
  }

  .price-row {
    grid-template-columns: 1fr;
  }

  .price-row > * {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .price-row > *:last-child {
    border-bottom: 0;
  }

  .map-grid {
    grid-template-columns: 1fr;
  }

  .service-card.large {
    grid-column: span 2;
  }

  .service-card.large img {
    height: 280px;
    min-height: 0;
  }
}

@media (max-width: 680px) {
  .brand {
    min-width: 0;
  }

  .brand strong {
    font-size: 20px;
  }

  .hero {
    min-height: 0;
  }

  .hero-copy {
    padding-top: 42px;
  }

  h1 {
    font-size: 54px;
  }

  h2 {
    font-size: 40px;
  }

  .hero-actions,
  .hero-meta,
  .link-row,
  .quick-contact {
    grid-template-columns: 1fr;
  }

  .button,
  .hero-actions a {
    width: 100%;
  }

  .service-grid,
  .pathway-grid,
  .trust-strip-grid,
  .decision-card-grid,
  .family-grid,
  .process-flow ol,
  .support-program-grid,
  .catalog-grid,
  .menu-index-grid,
  .source-grid,
  .contact-form {
    grid-template-columns: 1fr;
  }

  .comparison-table div,
  .fit-guidance li {
    grid-template-columns: 1fr;
  }

  .comparison-table span,
  .fit-guidance li > * {
    border-right: 0;
  }

  .funding-note-panel,
  .template-cta-panel {
    justify-items: start;
  }

  .lo-trust-band {
    grid-template-columns: 1fr;
    max-width: none;
    margin-right: 18px;
    margin-left: 18px;
  }

  .lo-trust-band article {
    padding: 12px 4px;
  }

  .lo-trust-band article + article {
    border-top: 1px solid rgba(111, 35, 75, 0.12);
    border-left: 0;
  }

  .subpage-hero img,
  .hero-slider {
    height: 360px;
    min-height: 0;
  }

  .service-card.large {
    grid-column: auto;
  }

  .visual-card img,
  .service-card.large img {
    height: 230px;
  }

  .location-list article {
    grid-template-columns: 1fr;
  }

  .steps li {
    grid-template-columns: 34px 1fr;
    gap: 16px;
  }

  .site-footer nav {
    justify-content: flex-start;
  }

  .login-page {
    overflow: hidden;
  }

  .login-page > *,
  .login-card {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

  .map-card .button {
    width: calc(100% - 48px);
  }
}

/* Care Account login refinement */
.care-login-shell {
  grid-template-columns: minmax(260px, 0.78fr) minmax(420px, 0.86fr);
  gap: clamp(26px, 5vw, 70px);
  align-items: start;
  min-height: auto;
  padding-top: clamp(34px, 5vw, 58px);
  padding-bottom: clamp(34px, 6vw, 72px);
  transform: none;
}

.care-benefit-card {
  min-height: 500px;
  padding: clamp(28px, 4.4vw, 54px);
}

.care-benefit-card h1 {
  max-width: 430px;
  font-size: clamp(34px, 4.2vw, 56px);
  line-height: 1.04;
}

.care-login-card {
  width: min(100%, 640px);
  justify-self: end;
  margin-top: clamp(34px, 5vw, 70px);
  padding: clamp(30px, 4.2vw, 50px);
}

.care-login-page-body .site-nav a:not(.is-active) {
  border-bottom-color: transparent;
}

.care-login-page-body .site-nav a[href="locations.html"]:not(.is-active),
.care-login-page-body .site-nav a[href="products.html"]:not(.is-active) {
  color: #3f3932;
  border-color: transparent !important;
}

.care-login-page-body .site-nav a.is-active {
  border-bottom-color: var(--champagne);
  color: #6f234b;
}

.care-login-intro {
  margin: -8px 0 4px;
  color: #6d625c;
  font-size: 14px;
}

@media (max-width: 1080px) {
  .care-login-shell {
    transform: none;
  }

  .care-login-card {
    justify-self: stretch;
  }
}

@media (max-width: 680px) {
  .care-login-shell {
    padding-top: 16px;
  }

  .care-benefit-card h1 {
    font-size: 38px;
  }
}

/* Appointment contact details: prevent long emails from escaping the card. */
.appointment-member-card dl {
  min-width: 0;
}

.appointment-member-card dl div {
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
}

.appointment-member-card dd {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (min-width: 1180px) {
  .appointment-member-card dl div {
    grid-template-columns: minmax(0, 120px) minmax(0, 1fr);
  }
}

/* Care Account dashboard member-home refinement */
.dashboard-main {
  padding: clamp(30px, 4vw, 58px);
}

.dashboard-titlebar {
  align-items: flex-end;
  margin-bottom: 24px;
}

.dashboard-titlebar h1 {
  font-size: clamp(52px, 5vw, 78px);
}

.dashboard-titlebar p:not(.eyebrow) {
  font-size: 15px;
}

.dashboard-quick-actions,
.dashboard-action-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-end;
}

.dashboard-summary-grid {
  display: grid;
  grid-template-columns: minmax(340px, 1.35fr) minmax(250px, 0.85fr) minmax(250px, 0.85fr);
  gap: 18px;
  align-items: stretch;
  margin-bottom: 20px;
}

.dashboard-summary-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 14px;
  padding: 24px;
}

.dashboard-summary-card .care-card-head {
  margin-bottom: 2px;
}

.dashboard-summary-card h2,
.dashboard-recent-care h2,
.dashboard-action-band h2 {
  margin: 0;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
}

.dashboard-summary-card h2 {
  font-size: 27px;
}

.dashboard-allowance-card {
  background:
    linear-gradient(135deg, rgba(255, 253, 250, 0.97), rgba(250, 236, 233, 0.76)),
    radial-gradient(circle at 92% 12%, rgba(217, 143, 149, 0.14), transparent 35%);
  box-shadow: 0 22px 58px rgba(76, 20, 49, 0.1);
}

.dashboard-allowance-date,
.dashboard-saved-count,
.dashboard-appointment-date {
  display: grid;
  gap: 4px;
}

.dashboard-allowance-date span,
.dashboard-summary-meta span,
.dashboard-history-feature span,
.dashboard-saved-count span {
  color: #8c7568;
  font-size: 12px;
  font-weight: 760;
}

.dashboard-allowance-date strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(34px, 3vw, 46px);
  font-weight: 600;
  line-height: 1;
}

.dashboard-summary-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.dashboard-summary-meta div {
  display: grid;
  gap: 3px;
  padding-top: 12px;
  border-top: 1px solid rgba(198, 171, 144, 0.34);
}

.dashboard-summary-meta strong {
  color: #2a1e1e;
  font-size: 13px;
}

.dashboard-appointment-card {
  border-color: rgba(198, 171, 144, 0.62);
}

.dashboard-appointment-date {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  width: fit-content;
  padding: 12px 14px;
  border-radius: 8px;
  background: #fff6ef;
}

.dashboard-appointment-date strong {
  color: #4c1431;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 54px;
  font-weight: 600;
  line-height: 0.85;
}

.dashboard-appointment-date span {
  color: #6f4616;
  font-size: 13px;
  font-weight: 760;
}

.dashboard-appointment-card p,
.dashboard-action-band p,
.dashboard-history-feature p,
.dashboard-history-grid li {
  color: #625852;
  font-size: 14px;
}

.dashboard-saved-count {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.dashboard-saved-count strong {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #f5e1df;
  color: #4c1431;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 36px;
  line-height: 1;
}

.dashboard-saved-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: auto;
}

.dashboard-saved-items img {
  width: 100%;
  aspect-ratio: 1.25;
  border-radius: 7px;
  object-fit: cover;
  background: #f7eee7;
}

.dashboard-recent-care {
  margin-bottom: 20px;
  padding: 26px;
}

.dashboard-recent-care h2 {
  font-size: 34px;
}

.dashboard-history-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 0.8fr)) minmax(260px, 1fr);
  gap: 18px;
  align-items: start;
}

.dashboard-history-feature {
  min-height: 126px;
  padding: 18px;
  border: 1px solid rgba(198, 171, 144, 0.34);
  border-radius: 8px;
  background: rgba(255, 249, 243, 0.66);
}

.dashboard-history-feature strong {
  display: block;
  margin: 5px 0 8px;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 27px;
  font-weight: 600;
  line-height: 1.05;
}

.dashboard-history-feature p {
  margin: 0;
}

.dashboard-history-grid ul {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dashboard-history-grid li {
  padding: 0 0 12px;
  border-bottom: 1px solid rgba(198, 171, 144, 0.34);
}

.dashboard-history-grid li span {
  display: block;
  margin-bottom: 3px;
  color: #7d3d48;
  font-size: 12px;
  font-weight: 800;
}

.dashboard-action-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: clamp(24px, 3vw, 34px);
  background:
    linear-gradient(135deg, rgba(255, 253, 250, 0.96), rgba(248, 234, 212, 0.58)),
    radial-gradient(circle at 96% 20%, rgba(217, 143, 149, 0.14), transparent 34%);
}

.dashboard-action-band h2 {
  font-size: 36px;
}

.dashboard-action-band p {
  max-width: 720px;
  margin: 8px 0 0;
}

@media (max-width: 1180px) {
  .dashboard-summary-grid,
  .dashboard-history-grid,
  .dashboard-action-band {
    grid-template-columns: 1fr;
  }

  .dashboard-action-buttons,
  .dashboard-quick-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 680px) {
  .dashboard-main {
    padding: 22px;
  }

  .dashboard-titlebar {
    align-items: flex-start;
  }

  .dashboard-quick-actions,
  .dashboard-action-buttons,
  .dashboard-quick-actions .button,
  .dashboard-action-buttons .button {
    width: 100%;
  }

  .dashboard-summary-meta,
  .dashboard-saved-items {
    grid-template-columns: 1fr;
  }
}

/* Final auth-page positioning override: keep login content close to the header. */
main.care-auth-page > .care-login-shell {
  margin-top: -110px;
  padding-top: 24px;
}

main.care-auth-page .care-login-card {
  margin-top: -18px;
}

.invite-register-shell {
  grid-template-columns: minmax(260px, 0.74fr) minmax(430px, 0.9fr);
}

.invite-benefit-card h1 {
  max-width: 420px;
}

.invite-register-card {
  margin-top: -34px !important;
}

.invite-form-message {
  margin: -2px 0 0;
  padding: 11px 13px;
  border: 1px solid rgba(198, 171, 144, 0.48);
  border-radius: 6px;
  background: #fff8f3;
  color: #6d625c;
  font-size: 13px;
}

.invite-form-message.is-error {
  border-color: rgba(125, 61, 72, 0.34);
  background: #f8e6e6;
  color: #7d3d48;
}

.invite-form-message.is-success {
  border-color: rgba(125, 145, 131, 0.42);
  background: #edf3ee;
  color: #4f765a;
}

.invite-back-link {
  justify-self: center;
  margin-top: -2px;
}

/* Invite-only activation page matching Care Account access reference */
.invite-access-main {
  padding: clamp(56px, 6vw, 76px) 0 62px;
}

.invite-access-shell {
  display: grid;
  grid-template-columns: minmax(460px, 1.05fr) minmax(390px, 0.84fr);
  gap: 28px;
  width: min(100% - 64px, 1240px);
  margin: 0 auto;
  align-items: stretch;
}

.invite-access-hero,
.invite-activation-card {
  border: 1px solid rgba(198, 171, 144, 0.46);
  border-radius: 8px;
  background: rgba(255, 253, 250, 0.88);
  box-shadow: 0 18px 52px rgba(76, 20, 49, 0.08);
}

.invite-access-hero {
  min-height: 690px;
  padding: clamp(42px, 5vw, 62px);
  background:
    linear-gradient(90deg, rgba(255, 253, 250, 0.96) 0 48%, rgba(255, 253, 250, 0.58) 66%, rgba(255, 253, 250, 0.12)),
    url("assets/editorial-consultation.png") 64% center / cover no-repeat;
}

.invite-access-hero h1 {
  max-width: 520px;
  margin: 22px 0 22px;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(44px, 5vw, 64px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.04;
}

.invite-access-hero > p:not(.eyebrow) {
  max-width: 410px;
  color: #5f5751;
  font-size: 16px;
}

.invite-access-hero .care-benefits {
  gap: 22px;
  margin-top: 34px;
}

.invite-access-hero .care-benefits li {
  font-size: 14px;
}

.invite-access-hero .care-privacy-note {
  margin-top: 58px;
}

.invite-activation-card {
  display: grid;
  align-content: start;
  padding: clamp(42px, 5vw, 58px);
}

.invite-step-panel {
  display: grid;
  gap: 18px;
}

.invite-step-panel[hidden] {
  display: none;
}

.invite-step-panel h2 {
  margin: 0;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(38px, 4vw, 52px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.08;
}

.invite-step-panel > p:not(.eyebrow):not(.invite-step-label):not(.invite-form-message),
.invite-help-links p {
  margin: 0;
  color: #5f5751;
  font-size: 15px;
}

.invite-step-panel hr {
  width: 100%;
  height: 1px;
  margin: 12px 0 8px;
  border: 0;
  background: rgba(198, 171, 144, 0.44);
}

.invite-step-label {
  margin: 0;
  color: #c05269;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.invite-step-panel label {
  display: grid;
  gap: 10px;
  color: #3f3932;
  font-size: 14px;
  font-weight: 760;
}

.invite-input-wrap {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  min-height: 60px;
  padding: 0 16px;
  border: 1px solid rgba(198, 171, 144, 0.72);
  border-radius: 8px;
  background: #fffdf9;
}

.invite-input-wrap span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin-right: 10px;
  border-radius: 7px;
  background: #f8e6e6;
  color: #c05269;
}

.invite-input-wrap input,
.invite-step-panel input {
  width: 100%;
  min-height: 52px;
  border: 0;
  background: transparent;
  color: #281e1d;
  font: inherit;
  outline: 0;
}

.invite-step-panel[data-invite-step="details"] input {
  padding: 0 14px;
  border: 1px solid rgba(198, 171, 144, 0.58);
  border-radius: 7px;
  background: #fffdf9;
}

.invite-activation-card .button.primary {
  min-height: 58px;
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(111, 35, 75, 0.18);
}

.invite-help-links {
  display: grid;
  gap: 28px;
  margin-top: 30px;
  padding-top: 28px;
  border-top: 1px solid rgba(198, 171, 144, 0.44);
}

.invite-help-links > div {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.invite-help-links > div > span,
.invite-footer-help > span {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #f8e6e6;
  color: #c05269;
  font-size: 17px;
}

.invite-help-links a {
  color: #7d3d48;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.invite-access-footer {
  grid-template-columns: minmax(230px, 0.8fr) minmax(420px, 1.3fr) minmax(260px, 0.8fr);
  align-items: center;
}

.invite-footer-help {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: center;
  padding: 26px;
  border: 1px solid rgba(198, 171, 144, 0.38);
  border-radius: 8px;
  background: rgba(255, 248, 246, 0.74);
}

.invite-footer-help h3 {
  margin: 0 0 4px;
  color: #6d625c;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.invite-footer-help p {
  margin: 0;
  color: #5f5751;
  font-size: 14px;
}

.invite-footer-help strong {
  color: #9a1f58;
  font-size: 16px;
}

@media (max-width: 1080px) {
  .invite-access-shell,
  .invite-access-footer {
    grid-template-columns: 1fr;
  }

  .invite-access-hero {
    min-height: 520px;
  }
}

@media (max-width: 680px) {
  .invite-access-main {
    padding-top: 28px;
  }

  .invite-access-shell {
    width: min(100% - 22px, 560px);
  }

  .invite-access-hero,
  .invite-activation-card {
    padding: 26px;
  }

  .invite-access-hero {
    min-height: 0;
    background:
      linear-gradient(180deg, rgba(255, 253, 250, 0.96), rgba(255, 253, 250, 0.78)),
      url("assets/editorial-consultation.png") center / cover no-repeat;
  }

  .invite-access-hero h1 {
    font-size: 38px;
  }
}

/* Unified Care Account activation panel */
.invite-access-main {
  padding: clamp(54px, 5.5vw, 72px) 0 58px;
}

.invite-unified-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(390px, 0.78fr);
  width: min(100% - 64px, 1320px);
  min-height: 700px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(198, 171, 144, 0.52);
  border-radius: 18px;
  background:
    linear-gradient(90deg, rgba(255, 253, 250, 0.2), rgba(255, 253, 250, 0.96) 54%, rgba(255, 253, 250, 0.98)),
    #fffdf9;
  box-shadow: 0 24px 70px rgba(76, 20, 49, 0.1);
}

.invite-unified-panel::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 60%;
  background:
    linear-gradient(90deg, rgba(255, 253, 250, 0.68) 0%, rgba(255, 253, 250, 0.86) 52%, rgba(255, 253, 250, 0.98) 100%),
    url("assets/editorial-consultation.png") 42% center / cover no-repeat;
  opacity: 0.78;
}

.invite-unified-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 12% 10%, rgba(255, 255, 255, 0.64), transparent 28%),
    linear-gradient(90deg, transparent 0 48%, rgba(255, 253, 250, 0.82) 62%, #fffdf9 100%);
}

.invite-unified-intro,
.invite-unified-form,
.invite-unified-divider {
  position: relative;
  z-index: 1;
}

.invite-unified-intro {
  display: grid;
  align-content: center;
  padding: clamp(46px, 6vw, 76px) clamp(40px, 7vw, 94px);
}

.invite-unified-intro h1 {
  max-width: 560px;
  margin: 22px 0 24px;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(44px, 5.2vw, 68px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.04;
}

.invite-unified-intro > p:not(.eyebrow) {
  max-width: 500px;
  margin: 0;
  color: #5f5751;
  font-size: 17px;
  line-height: 1.65;
}

.invite-unified-intro .care-benefits {
  gap: 22px;
  margin: 38px 0 0;
}

.invite-unified-intro .care-benefits li {
  gap: 18px;
  font-size: 15px;
}

.invite-unified-intro .care-privacy-note {
  max-width: 430px;
  margin-top: 60px;
  padding-left: 48px;
  color: #4f4742;
}

.invite-unified-divider {
  position: absolute;
  top: 96px;
  bottom: 96px;
  left: 57.4%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(198, 171, 144, 0.5) 14%, rgba(198, 171, 144, 0.5) 86%, transparent);
}

.invite-unified-divider span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(255, 253, 250, 0.92);
  color: rgba(217, 143, 149, 0.6);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 18px;
  transform: translate(-50%, -50%);
}

.invite-unified-form {
  display: grid;
  align-content: center;
  padding: clamp(42px, 5vw, 70px) clamp(42px, 5vw, 68px);
  background: transparent;
}

.invite-unified-form .invite-step-panel h2 {
  max-width: 360px;
  font-size: clamp(40px, 4vw, 56px);
}

.invite-unified-form .invite-step-panel > p:not(.eyebrow):not(.invite-step-label):not(.invite-form-message) {
  max-width: 360px;
  line-height: 1.6;
}

.invite-unified-form .invite-step-panel hr {
  margin: 18px 0 6px;
}

.invite-unified-form .invite-step-label {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: center;
  text-align: center;
}

.invite-unified-form .invite-step-label::before,
.invite-unified-form .invite-step-label::after {
  content: "";
  height: 1px;
  background: rgba(198, 171, 144, 0.42);
}

.invite-unified-form .invite-input-wrap {
  min-height: 58px;
  border-radius: 7px;
}

.invite-matched-client {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(198, 171, 144, 0.46);
  border-radius: 8px;
  background: rgba(255, 248, 245, 0.74);
}

.invite-matched-client div {
  display: grid;
  grid-template-columns: minmax(120px, 0.42fr) minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 13px 15px;
  border-bottom: 1px solid rgba(198, 171, 144, 0.34);
}

.invite-matched-client div:last-child {
  border-bottom: 0;
}

.invite-matched-client span {
  color: #7c6f68;
  font-size: 12px;
  font-weight: 750;
}

.invite-matched-client strong {
  min-width: 0;
  color: #2d2025;
  font-size: 14px;
  overflow-wrap: anywhere;
}

.invite-unified-form .button.primary {
  min-height: 58px;
  border-radius: 8px;
}

.invite-unified-form [data-invite-continue]::after {
  content: "→";
  margin-left: 14px;
  font-size: 22px;
  line-height: 1;
}

.invite-unified-form .invite-form-message:empty {
  display: none;
}

.invite-unified-form .invite-help-links {
  margin-top: 34px;
  padding-top: 28px;
  border-top: 1px solid rgba(198, 171, 144, 0.36);
}

.invite-access-footer {
  margin-top: 0;
}

@media (max-width: 1080px) {
  .invite-unified-panel {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .invite-unified-panel::before {
    width: 100%;
    height: 46%;
  }

  .invite-unified-panel::after {
    background: linear-gradient(180deg, rgba(255, 253, 250, 0.66) 0%, rgba(255, 253, 250, 0.94) 45%, #fffdf9 100%);
  }

  .invite-unified-divider {
    display: none;
  }

  .invite-unified-intro {
    min-height: 470px;
    align-content: end;
  }

  .invite-unified-form {
    padding-top: 28px;
  }
}

@media (max-width: 680px) {
  .invite-access-main {
    padding-top: 24px;
  }

  .invite-unified-panel {
    width: min(100% - 22px, 560px);
    border-radius: 12px;
  }

  .invite-unified-intro,
  .invite-unified-form {
    padding: 28px;
  }

  .invite-matched-client div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .invite-unified-intro {
    min-height: 0;
  }

  .invite-unified-intro h1,
  .invite-unified-form .invite-step-panel h2 {
    font-size: 38px;
  }
}

@media (max-width: 1080px) {
  main.care-auth-page > .care-login-shell {
    margin-top: 0;
  }
}

/* Unified Care Account login panel */
.login-access-main {
  padding: clamp(46px, 5.2vw, 68px) 0 58px;
}

.login-unified-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(390px, 0.82fr);
  width: min(100% - 64px, 1240px);
  min-height: 660px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(198, 171, 144, 0.52);
  border-radius: 18px;
  background:
    linear-gradient(90deg, rgba(255, 253, 250, 0.18), rgba(255, 253, 250, 0.95) 55%, rgba(255, 253, 250, 0.99)),
    #fffdf9;
  box-shadow: 0 24px 70px rgba(76, 20, 49, 0.1);
}

.login-unified-panel::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 58%;
  background:
    linear-gradient(90deg, rgba(255, 253, 250, 0.66) 0%, rgba(255, 253, 250, 0.86) 54%, rgba(255, 253, 250, 0.98) 100%),
    url("assets/editorial-consultation.png") 38% center / cover no-repeat;
  opacity: 0.8;
}

.login-unified-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 11% 12%, rgba(255, 255, 255, 0.62), transparent 28%),
    linear-gradient(90deg, transparent 0 47%, rgba(255, 253, 250, 0.84) 62%, #fffdf9 100%);
}

.login-unified-intro,
.login-unified-form,
.login-unified-divider {
  position: relative;
  z-index: 1;
}

.login-unified-intro {
  display: grid;
  align-content: center;
  padding: clamp(46px, 6vw, 74px) clamp(40px, 7vw, 88px);
}

.login-unified-intro h1 {
  max-width: 540px;
  margin: 22px 0 24px;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(40px, 4.1vw, 56px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.08;
}

.login-unified-intro > p:not(.eyebrow) {
  max-width: 500px;
  margin: 0;
  color: #5f5751;
  font-size: 17px;
  line-height: 1.65;
}

.login-unified-intro .care-benefits {
  gap: 22px;
  margin: 38px 0 0;
}

.login-unified-intro .care-benefits li {
  gap: 18px;
  font-size: 15px;
}

.login-unified-intro .care-privacy-note {
  max-width: 420px;
  margin-top: 58px;
  padding-left: 48px;
  color: #4f4742;
}

.login-unified-divider {
  position: absolute;
  top: 86px;
  bottom: 86px;
  left: 56.5%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(198, 171, 144, 0.5) 14%, rgba(198, 171, 144, 0.5) 86%, transparent);
}

.login-unified-divider span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(255, 253, 250, 0.92);
  color: rgba(217, 143, 149, 0.6);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 18px;
  transform: translate(-50%, -50%);
}

.care-login-card.login-unified-form {
  display: grid;
  align-content: center;
  gap: 18px;
  width: auto;
  max-width: none;
  margin: 0;
  padding: clamp(42px, 5vw, 70px) clamp(42px, 5vw, 68px);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.login-unified-form h2 {
  max-width: 360px;
  margin: 0;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(40px, 4vw, 56px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.08;
}

.login-unified-form .care-login-intro {
  max-width: 380px;
  margin: 0 0 8px;
  color: #5f5751;
  line-height: 1.6;
}

.care-login-message {
  display: none;
  margin: -2px 0 0;
  padding: 11px 13px;
  border: 1px solid rgba(198, 171, 144, 0.48);
  border-radius: 7px;
  background: #fff8f3;
  color: #6d625c;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}

.care-login-message.is-visible {
  display: block;
}

.care-login-message.is-error {
  border-color: rgba(125, 61, 72, 0.34);
  background: #f8e6e6;
  color: #7d3d48;
}

.care-login-message.is-success {
  border-color: rgba(125, 145, 131, 0.42);
  background: #edf3ee;
  color: #4f765a;
}

.login-unified-form label {
  color: #3f3932;
  font-size: 14px;
  font-weight: 760;
}

.login-unified-form input[type="email"],
.login-unified-form input[type="password"] {
  min-height: 58px;
  border-color: rgba(198, 171, 144, 0.72);
  border-radius: 7px;
  background: #fffdf9;
}

.login-unified-form input.is-invalid {
  border-color: rgba(125, 61, 72, 0.72);
  box-shadow: 0 0 0 3px rgba(125, 61, 72, 0.1);
}

.login-unified-form .button.primary {
  min-height: 58px;
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(111, 35, 75, 0.18);
}

.login-unified-form .button.primary::before {
  content: none;
}

.login-unified-form .care-divider {
  margin: 12px 0 0;
}

.login-unified-form .care-text-link {
  justify-self: center;
  color: #7d3d48;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 1080px) {
  .login-unified-panel {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .login-unified-panel::before {
    width: 100%;
    height: 46%;
  }

  .login-unified-panel::after {
    background: linear-gradient(180deg, rgba(255, 253, 250, 0.66) 0%, rgba(255, 253, 250, 0.94) 45%, #fffdf9 100%);
  }

  .login-unified-divider {
    display: none;
  }

  .login-unified-intro {
    min-height: 430px;
    align-content: end;
  }

  .care-login-card.login-unified-form {
    padding-top: 28px;
  }
}

@media (max-width: 680px) {
  .login-access-main {
    padding-top: 24px;
  }

  .login-unified-panel {
    width: min(100% - 22px, 560px);
    border-radius: 12px;
  }

  .login-unified-intro,
  .care-login-card.login-unified-form {
    padding: 28px;
  }

  .login-unified-intro {
    min-height: 0;
  }

  .login-unified-intro h1,
  .login-unified-form h2 {
    font-size: 38px;
  }
}

/* Care Account appointments concierge refinement */
.care-app {
  grid-template-columns: 220px minmax(0, 1fr);
}

.care-sidebar {
  width: 220px;
  padding-inline: 16px;
}

.appointment-main {
  padding: clamp(30px, 4vw, 58px);
}

.appointment-titlebar {
  margin-bottom: 22px;
}

.appointment-titlebar h1 {
  font-size: clamp(52px, 5vw, 78px);
}

.appointment-titlebar p:not(.eyebrow) {
  max-width: 660px;
  font-size: 15px;
}

.appointment-hero-card {
  display: grid;
  grid-template-columns: minmax(160px, 0.3fr) minmax(0, 1fr) auto;
  gap: clamp(22px, 4vw, 48px);
  align-items: center;
  margin-bottom: 28px;
  padding: clamp(28px, 4vw, 46px);
  background:
    linear-gradient(135deg, rgba(255, 253, 250, 0.96), rgba(250, 236, 233, 0.72)),
    radial-gradient(circle at 92% 18%, rgba(217, 143, 149, 0.16), transparent 32%);
  box-shadow: 0 24px 68px rgba(76, 20, 49, 0.12);
}

.appointment-hero-date {
  display: grid;
  place-items: center;
  min-height: 190px;
  padding: 24px 22px;
  border: 1px solid rgba(198, 171, 144, 0.46);
  border-radius: 8px;
  background: #fff9f3;
  color: #4c1431;
  text-align: center;
}

.appointment-hero-date strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(82px, 8vw, 128px);
  font-weight: 600;
  line-height: 0.78;
}

.appointment-hero-date span {
  margin-top: 10px;
  color: #6d4c35;
  font-size: 15px;
  font-weight: 760;
  line-height: 1.45;
}

.appointment-hero-copy h2 {
  margin: 0 0 18px;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(42px, 5vw, 72px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 0.96;
}

.appointment-hero-copy dl {
  display: grid;
  gap: 12px;
  margin: 0;
}

.appointment-hero-copy dl div {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 18px;
}

.appointment-hero-copy dt,
.appointment-hero-copy dd {
  margin: 0;
}

.appointment-hero-copy dt {
  color: #9a6f51;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.appointment-hero-copy dd {
  color: #332825;
  font-size: 16px;
}

.appointment-hero-actions {
  display: grid;
  gap: 14px;
  justify-items: end;
}

.appointment-hero-actions .button.secondary {
  border-color: #7d3d48;
  color: #7d3d48;
}

.appointment-concierge-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
  gap: clamp(22px, 3vw, 34px);
  align-items: start;
}

.appointment-support-column {
  display: grid;
  gap: 18px;
}

.appointment-support-column .care-card {
  box-shadow: 0 12px 36px rgba(76, 20, 49, 0.06);
}

.appointment-preferences ul,
.appointment-checklist {
  padding: 0;
  list-style: none;
}

.appointment-preferences li,
.appointment-checklist li {
  position: relative;
  padding-left: 32px;
  color: #574d48;
  font-size: 14px;
}

.appointment-preferences li::before {
  content: "";
  position: absolute;
  top: 0.55em;
  left: 8px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #d98f95;
}

.appointment-checklist li::before {
  content: "";
  position: absolute;
  top: 0.18em;
  left: 0;
  width: 19px;
  height: 19px;
  border: 1px solid #d8bca0;
  border-radius: 5px;
  background: #fff9f3;
}

.appointment-checklist li::after {
  content: "";
  position: absolute;
  top: 0.43em;
  left: 6px;
  width: 7px;
  height: 4px;
  border-bottom: 2px solid #7d3d48;
  border-left: 2px solid #7d3d48;
  transform: rotate(-45deg);
}

.appointment-member-card {
  padding: 22px;
}

.appointment-member-card dl div {
  grid-template-columns: 128px minmax(0, 1fr);
}

.appointment-request-form {
  position: sticky;
  top: 24px;
  grid-template-columns: 1fr;
  gap: 15px;
  padding: 26px;
  background:
    linear-gradient(180deg, rgba(255, 253, 250, 0.96), rgba(255, 248, 246, 0.92));
  box-shadow: 0 22px 58px rgba(76, 20, 49, 0.1);
}

.appointment-request-form > div,
.appointment-notes-field,
.appointment-request-form button {
  grid-column: auto;
}

.appointment-request-form h2 {
  font-size: 34px;
  line-height: 1;
}

.appointment-request-form .button.primary {
  width: 100%;
  margin-top: 4px;
}

@media (max-width: 1080px) {
  .care-app {
    grid-template-columns: 1fr;
  }

  .care-sidebar {
    width: auto;
  }

  .appointment-hero-card,
  .appointment-concierge-grid {
    grid-template-columns: 1fr;
  }

  .appointment-hero-actions {
    justify-items: start;
  }

  .appointment-request-form {
    position: relative;
    top: auto;
  }
}

@media (max-width: 680px) {
  .appointment-main {
    padding: 22px;
  }

  .appointment-titlebar h1 {
    font-size: 48px;
  }

  .appointment-hero-card {
    padding: 22px;
  }

  .appointment-hero-date {
    min-height: 150px;
  }

  .appointment-hero-copy dl div,
  .appointment-member-card dl div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

/* menu39 final mobile correction: one compact mega section opens at a time. */
@media (max-width: 1180px) {
  .site-header.is-open .nav-dropdown,
  .site-header.is-open .nav-dropdown.is-mega {
    display: none !important;
  }

  .site-header.is-open .nav-item.is-menu-open .nav-dropdown,
  .site-header.is-open .nav-item.is-menu-open .nav-dropdown.is-mega {
    display: grid !important;
  }

  .site-header.is-open .nav-item.is-menu-open .nav-dropdown.is-mega .mega-menu {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px 18px;
    padding: 4px 0 12px 10px;
  }

  .site-header.is-open .nav-item.is-menu-open .nav-dropdown.is-mega .mega-column {
    gap: 4px;
  }

  .site-header.is-open .nav-item.is-menu-open .nav-dropdown.is-mega .mega-column h3 {
    margin: 8px 0 2px;
    font-size: 10px;
  }

  .site-header.is-open .nav-item.is-menu-open .nav-dropdown.is-mega .mega-column a {
    padding: 5px 0;
    font-size: 10px;
    line-height: 1.25;
  }

  .site-header.is-open .nav-item.is-menu-open .nav-dropdown.is-mega .mega-promo {
    grid-column: 1 / -1;
    min-height: 92px !important;
    margin-top: 4px;
  }
}

@media (max-width: 520px) {
  .site-header.is-open .nav-item.is-menu-open .nav-dropdown.is-mega .mega-menu {
    grid-template-columns: 1fr;
  }
}

/* menu39: contextual top navigation menus show only the selected section. */
@media (min-width: 1181px) {
  .site-nav .nav-item.has-menu {
    position: relative;
  }

  .nav-dropdown.is-mega.is-contextual {
    left: 50%;
    width: min(620px, calc(100vw - 32px));
    transform: translate(-50%, -8px);
  }

  .nav-item:hover .nav-dropdown.is-mega.is-contextual,
  .nav-item:focus-within .nav-dropdown.is-mega.is-contextual,
  .nav-item.is-menu-open .nav-dropdown.is-mega.is-contextual {
    transform: translate(-50%, 0);
  }

  .site-nav .nav-item.has-menu:nth-last-child(-n+2) .nav-dropdown.is-mega.is-contextual {
    right: 0;
    left: auto;
    transform: translateY(-8px);
  }

  .site-nav .nav-item.has-menu:nth-last-child(-n+2):hover .nav-dropdown.is-mega.is-contextual,
  .site-nav .nav-item.has-menu:nth-last-child(-n+2):focus-within .nav-dropdown.is-mega.is-contextual,
  .site-nav .nav-item.has-menu:nth-last-child(-n+2).is-menu-open .nav-dropdown.is-mega.is-contextual {
    transform: translateY(0);
  }

  .mega-menu-current {
    grid-template-columns: minmax(260px, 1fr) 220px;
    min-height: 188px;
  }

  .mega-menu-current .mega-column {
    padding: 0 22px 0 0;
  }

  .mega-menu-current .mega-promo {
    min-height: 156px !important;
  }
}

/* menu39: prevent a clicked-but-focused desktop menu from lingering under the next hover. */
@media (min-width: 1181px) {
  .site-nav .nav-item.has-menu:not(:hover):not(.is-menu-open) > .nav-dropdown.is-mega.is-contextual {
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translate(-50%, -8px) !important;
  }

  .site-nav .nav-item.has-menu:nth-last-child(-n+2):not(:hover):not(.is-menu-open) > .nav-dropdown.is-mega.is-contextual {
    transform: translateY(-8px) !important;
  }
}

/* menu39: while choosing a submenu, show only the hovered/open top-level underline. */
@media (min-width: 1181px) {
  .site-header.has-open-menu .site-nav > .nav-item > a.is-active {
    border-color: transparent;
    color: #342932;
  }

  .site-header.has-open-menu .site-nav > .nav-item:hover > a,
  .site-header.has-open-menu .site-nav > .nav-item.is-menu-open > a {
    border-color: var(--lo-plum);
    color: var(--lo-plum);
  }
}

/* menu39: premium homepage refinement for a calmer boutique editorial feel. */
body {
  background:
    radial-gradient(circle at 82% 7%, rgba(247, 218, 222, 0.46), transparent 28%),
    radial-gradient(circle at 12% 30%, rgba(255, 246, 242, 0.72), transparent 22%),
    linear-gradient(180deg, #fffaf7 0%, #f9f1ec 46%, #fffaf7 100%);
}

.hero {
  grid-template-columns: minmax(360px, 0.78fr) minmax(520px, 1.22fr);
  max-width: 1720px;
  min-height: 625px;
  padding: clamp(44px, 4.4vw, 58px) clamp(28px, 6vw, 92px) clamp(132px, 10vw, 172px);
  border-bottom: 0;
  background:
    radial-gradient(circle at 68% 32%, rgba(255, 222, 226, 0.52), transparent 24%),
    linear-gradient(90deg, rgba(255, 250, 247, 0.98) 0 36%, rgba(255, 245, 242, 0.78) 62%, rgba(255, 250, 247, 0) 100%);
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 250, 247, 1) 0 34%, rgba(255, 250, 247, 0.72) 48%, rgba(255, 250, 247, 0.04) 68%, rgba(255, 250, 247, 0.1) 100%),
    radial-gradient(circle at 79% 24%, rgba(255, 255, 255, 0.34), transparent 16%);
  z-index: 1;
}

.hero-copy {
  position: relative;
  z-index: 2;
  align-self: start;
  max-width: 505px;
  padding-top: clamp(26px, 2.1vw, 32px);
}

.hero .eyebrow {
  margin-bottom: 13px;
  color: #a84b62;
  font-size: 12px;
  letter-spacing: 0.13em;
}

.hero h1 {
  max-width: 760px;
  margin-bottom: 18px;
  font-size: clamp(46px, 4.65vw, 68px);
  line-height: 1.01;
  letter-spacing: -0.012em;
}

.hero h1 span {
  display: block;
  white-space: nowrap;
}

.hero-text {
  max-width: 410px;
  margin-bottom: 28px;
  color: #5d5551;
  font-size: 16px;
  line-height: 1.62;
}

.hero-actions {
  gap: 14px;
}

.hero-media {
  position: absolute;
  inset: 32px 0 auto auto;
  width: min(66vw, 900px);
  height: calc(100% - 44px);
  min-height: 0;
  overflow: hidden;
  border-radius: 0 0 0 34px;
  background: transparent;
  box-shadow: none;
  isolation: isolate;
}

.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, #fffaf7 0 13%, rgba(255, 250, 247, 0.82) 25%, rgba(255, 250, 247, 0.08) 48%, rgba(255, 250, 247, 0.18) 100%),
    linear-gradient(180deg, rgba(255, 250, 247, 0.62) 0%, transparent 20%, transparent 72%, rgba(255, 250, 247, 0.8) 100%),
    radial-gradient(circle at 50% 50%, transparent 42%, rgba(255, 250, 247, 0.28) 100%);
  z-index: 2;
}

.hero-media img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  object-position: 62% 50%;
  filter: saturate(1.03) contrast(1.01) brightness(1.03);
  transform: scale(1.012);
  mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.28) 13%, rgba(0, 0, 0, 0.92) 34%, #000 82%, rgba(0, 0, 0, 0.52) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.52) 0%, #000 18%, #000 78%, rgba(0, 0, 0, 0.36) 100%);
  mask-composite: intersect;
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.28) 13%, rgba(0, 0, 0, 0.92) 34%, #000 82%, rgba(0, 0, 0, 0.52) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.52) 0%, #000 18%, #000 78%, rgba(0, 0, 0, 0.36) 100%);
  -webkit-mask-composite: source-in;
}

.support-pathways {
  position: relative;
  z-index: 4;
  max-width: 1120px;
  margin-top: clamp(-154px, -8vw, -112px);
  padding-top: 0 !important;
  padding-bottom: 28px !important;
}

.support-pathways .section-intro {
  margin-bottom: 18px;
}

.support-pathways h2 {
  color: var(--lo-plum-dark);
  font-size: 22px;
  line-height: 1.08;
  text-shadow: 0 1px 0 rgba(255, 250, 247, 0.65);
}

.pathway-grid {
  gap: 14px;
}

.pathway-card {
  position: relative;
  min-height: 162px;
  overflow: hidden;
  padding: 17px 18px 70px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.84);
  box-shadow: 0 16px 48px rgba(76, 20, 49, 0.11);
  backdrop-filter: blur(14px);
}

.pathway-card::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 62px;
  background: var(--card-image) center / cover no-repeat;
  opacity: 0.88;
}

.pathway-card:nth-child(1) {
  --card-image: url("assets/pathway-after-surgery.png");
}

.pathway-card:nth-child(2) {
  --card-image: url("assets/photo-breast-form-flower.png");
}

.pathway-card:nth-child(3) {
  --card-image: url("assets/photo-soft-bra-flower.png");
}

.pathway-card:nth-child(4) {
  --card-image: url("assets/photo-swim-form-pool.png");
}

.pathway-card span {
  width: 31px;
  height: 31px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  background-color: #fae9eb;
  background-size: 17px 17px;
  opacity: 0.94;
}

.pathway-card h3 {
  margin: 10px 0 5px;
  font-size: 16px;
  line-height: 1.08;
}

.pathway-card p {
  max-width: 240px;
  color: #655c57;
  font-size: 11.5px;
  line-height: 1.36;
}

.pathway-card em {
  position: relative;
  z-index: 1;
  color: var(--lo-plum);
  font-size: 11px;
  letter-spacing: 0.04em;
}

.pathway-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 48px rgba(76, 20, 49, 0.1);
}

.trust-strip-grid {
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 16px 46px rgba(76, 20, 49, 0.065);
}

.trust-strip-grid article::before,
.lo-trust-band article::before {
  width: 34px;
  height: 34px;
  background-size: 18px 18px;
  opacity: 0.86;
}

.trust-strip-grid article {
  grid-template-columns: 44px 1fr;
  min-height: 72px;
  padding: 12px 24px;
}

.home-final-cta {
  min-height: 138px;
  margin-bottom: 72px;
  padding: 34px clamp(28px, 5vw, 68px) !important;
  border-radius: 20px;
  background:
    linear-gradient(100deg, rgba(76, 20, 49, 0.98), rgba(122, 44, 82, 0.98) 58%, rgba(143, 58, 91, 0.96)),
    radial-gradient(circle at 16% 50%, rgba(255, 255, 255, 0.16), transparent 18%);
  box-shadow: 0 24px 58px rgba(76, 20, 49, 0.2);
}

.home-final-cta::before {
  width: 230px;
  height: 160px;
  right: auto;
  bottom: -36px;
  left: 34px;
  opacity: 0.16;
  background-size: contain;
}

.home-final-cta h2 {
  font-size: clamp(27px, 2.5vw, 38px);
  line-height: 1.02;
}

.home-final-cta p {
  max-width: 430px;
  font-size: 15px;
  line-height: 1.55;
}

.site-footer {
  margin-top: 0;
}

.subpage-main.template-process .template-hero.reimbursement-hero {
  position: relative;
  width: min(1270px, calc(100% - 56px));
  max-width: 1270px;
  min-height: 348px;
  grid-template-columns: minmax(360px, 0.56fr) minmax(0, 0.44fr);
  align-items: center;
  gap: clamp(18px, 3vw, 42px);
  margin-right: auto;
  margin-left: auto;
  padding-top: clamp(26px, 3vw, 40px);
  padding-bottom: clamp(22px, 2.5vw, 32px);
  padding-left: clamp(42px, 5vw, 72px);
  background:
    linear-gradient(90deg, #fffaf8 0 43%, rgba(255, 245, 242, 0.84) 64%, rgba(247, 232, 234, 0.72) 100%),
    radial-gradient(circle at 70% 18%, rgba(247, 213, 219, 0.38), transparent 17%);
}

.subpage-main.template-process .template-hero.reimbursement-hero > div {
  position: relative;
  z-index: 2;
}

.subpage-main.template-process .template-hero.reimbursement-hero > img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  width: min(58%, 760px);
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  object-position: 58% 48%;
  opacity: 1;
  filter: saturate(1.03) contrast(1.03) brightness(1.02);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.68) 15%, #000 30%, #000 100%);
}

.subpage-main.template-process .template-hero.reimbursement-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, #fffaf8 0 39%, rgba(255, 250, 248, 0.66) 48%, rgba(255, 250, 248, 0.14) 60%, transparent 74%),
    linear-gradient(180deg, transparent 0 86%, #fffaf8 100%);
}

.subpage-main .reimbursement-guide {
  width: min(1270px, calc(100% - 56px));
  max-width: 1270px;
  margin-right: auto;
  margin-left: auto;
  padding-top: clamp(18px, 2.6vw, 30px);
  padding-bottom: clamp(24px, 3vw, 34px);
}

.subpage-main .reimbursement-guide .section-intro {
  margin-bottom: clamp(20px, 2.6vw, 28px);
}

.subpage-main .reimbursement-guide .section-intro .eyebrow {
  margin-bottom: 8px;
}

.process-flow ol.reimbursement-timeline {
  counter-reset: rebate-step;
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 28px 0 0;
  list-style: none;
}

.process-flow ol.reimbursement-timeline::before {
  content: "";
  position: absolute;
  top: 46px;
  right: 8%;
  left: 8%;
  height: 2px;
  background: linear-gradient(90deg, rgba(111, 35, 75, 0.18), rgba(184, 149, 103, 0.72), rgba(111, 35, 75, 0.18));
}

.subpage-main .process-flow .reimbursement-timeline li {
  position: relative;
  display: grid;
  min-height: 0;
  padding: 0 clamp(10px, 1.5vw, 22px);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
  backdrop-filter: none;
}

.subpage-main .process-flow .reimbursement-timeline li span {
  z-index: 1;
  display: grid;
  width: 38px;
  height: 38px;
  margin: 0 auto 20px;
  place-items: center;
  border: 1px solid rgba(111, 35, 75, 0.32);
  border-radius: 50%;
  background: #fffdfa;
  color: var(--lo-plum);
  font-size: 13px;
  font-weight: 800;
  box-shadow: 0 8px 24px rgba(76, 20, 49, 0.1);
}

.process-flow .reimbursement-timeline li span::after {
  content: none;
}

.subpage-main .process-flow .reimbursement-timeline li strong {
  margin: 0 auto 10px;
  max-width: 170px;
  color: var(--lo-plum-dark);
  font-family: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1.25;
}

.reimbursement-timeline p {
  margin: 0 auto;
  max-width: 190px;
  color: #665a62;
  font-size: 13px;
  line-height: 1.5;
}

.reimbursement-practical {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
  gap: clamp(20px, 3vw, 34px);
  width: min(1270px, calc(100% - 56px));
  max-width: 1270px;
  margin-right: auto;
  margin-left: auto;
  padding-top: 16px;
  padding-bottom: 22px;
}

.reimbursement-checklist,
.important-notes {
  border: 1px solid rgba(111, 35, 75, 0.14);
  border-radius: 18px;
}

.reimbursement-checklist {
  padding: clamp(26px, 3vw, 38px);
  background: rgba(255, 253, 250, 0.72);
}

.reimbursement-checklist h2,
.important-notes h2 {
  margin-bottom: 20px;
  color: var(--lo-plum-dark);
  font-size: clamp(28px, 2.8vw, 42px);
}

.reimbursement-checklist ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.reimbursement-checklist li {
  position: relative;
  min-height: 42px;
  padding: 10px 0 10px 34px;
  border-bottom: 1px solid rgba(111, 35, 75, 0.1);
  color: #3c3038;
  font-weight: 650;
}

.reimbursement-checklist li::before {
  content: "";
  position: absolute;
  top: 12px;
  left: 0;
  width: 18px;
  height: 18px;
  border: 1px solid rgba(111, 35, 75, 0.34);
  border-radius: 5px;
  background: #fffdfa;
}

.reimbursement-checklist li::after {
  content: "";
  position: absolute;
  top: 16px;
  left: 5px;
  width: 8px;
  height: 5px;
  border-left: 2px solid var(--lo-plum);
  border-bottom: 2px solid var(--lo-plum);
  transform: rotate(-45deg);
}

.important-notes {
  padding: clamp(26px, 3vw, 38px);
  background:
    radial-gradient(circle at 82% 12%, rgba(255, 255, 255, 0.14), transparent 20%),
    linear-gradient(135deg, #7c2b55, #4c1431);
  color: #fffdfa;
  box-shadow: 0 24px 58px rgba(76, 20, 49, 0.22);
}

.important-notes .eyebrow,
.important-notes h2 {
  color: #fffdfa;
}

.important-notes p:not(.eyebrow) {
  margin: 0;
  color: rgba(255, 253, 250, 0.82);
  font-size: 15px;
  line-height: 1.62;
}

.important-notes .rebate-amount {
  display: inline-grid;
  place-items: center;
  min-width: 82px;
  margin: 0 4px;
  padding: 4px 12px 6px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 31px;
  font-weight: 700;
  line-height: 1;
  vertical-align: middle;
  box-shadow: 0 12px 28px rgba(76, 20, 49, 0.18);
}

.important-notes p + p {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 253, 250, 0.18);
}

.subpage-main .reimbursement-cta {
  margin-top: 10px;
  background: linear-gradient(100deg, rgba(255, 253, 250, 0.86), rgba(250, 233, 236, 0.88));
  color: var(--lo-plum-dark);
}

.subpage-main .reimbursement-cta h2 {
  color: var(--lo-plum-dark);
}

.subpage-main .reimbursement-cta p {
  color: #665a62;
}

@media (max-width: 1180px) {
  .hero {
    grid-template-columns: 1fr;
    min-height: 0;
    padding-top: 32px;
    padding-bottom: 44px;
  }

  .hero-media {
    position: absolute;
    inset: 38px 0 auto auto;
    order: -1;
    width: min(100vw, 560px);
    height: 360px;
    margin: 0;
    border-radius: 0;
  }

  .hero-media::after {
    background:
      linear-gradient(90deg, #fffaf7 0 16%, rgba(255, 250, 247, 0.7) 34%, rgba(255, 250, 247, 0.06) 66%),
      linear-gradient(180deg, transparent 0 58%, #fffaf7 94%);
  }

  .hero-copy {
    padding-top: 315px;
  }

  .support-pathways {
    margin-top: 0;
    padding-top: 22px !important;
  }

  .subpage-main.template-process .template-hero.reimbursement-hero {
    width: min(100% - 36px, 760px);
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 18px;
    padding-top: 22px;
    padding-bottom: 18px;
    padding-right: clamp(22px, 5vw, 42px);
    padding-left: clamp(22px, 5vw, 42px);
  }

  .subpage-main.template-process .template-hero.reimbursement-hero > img {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    width: 100%;
    height: clamp(190px, 34vw, 240px);
    mask-image: linear-gradient(180deg, #000 0 72%, transparent 100%);
  }

  .subpage-main.template-process .template-hero.reimbursement-hero::after {
    background: linear-gradient(180deg, transparent 0 62%, #fffaf8 100%);
  }

  .subpage-main .reimbursement-guide {
    width: min(100% - 36px, 760px);
    padding-top: 18px;
    padding-bottom: 22px;
  }

  .subpage-main .reimbursement-guide .section-intro {
    margin-bottom: 24px;
  }

  .process-flow ol.reimbursement-timeline {
    grid-template-columns: 1fr;
    gap: 16px;
    padding-top: 0;
  }

  .process-flow ol.reimbursement-timeline::before {
    top: 0;
    bottom: 0;
    left: 19px;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, rgba(111, 35, 75, 0.18), rgba(184, 149, 103, 0.72), rgba(111, 35, 75, 0.18));
  }

  .subpage-main .process-flow .reimbursement-timeline li {
    grid-template-columns: 38px 1fr;
    grid-template-rows: auto auto;
    column-gap: 16px;
    row-gap: 5px;
    padding: 0;
    text-align: left;
  }

  .subpage-main .process-flow .reimbursement-timeline li span {
    grid-row: 1 / span 2;
    margin: 0;
  }

  .subpage-main .process-flow .reimbursement-timeline li strong {
    grid-column: 2;
    max-width: none;
    margin-inline: 0;
  }

  .reimbursement-timeline p {
    max-width: none;
    grid-column: 2;
    margin: 0;
  }

  .reimbursement-practical {
    width: min(100% - 36px, 760px);
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .hero h1 span {
    display: inline;
    white-space: normal;
  }

  .hero h1 {
    font-size: 44px;
    line-height: 1.02;
  }

  .hero-media {
    width: 100vw;
    height: 300px;
  }

  .pathway-card {
    min-height: 188px;
    padding-bottom: 86px;
  }

  .pathway-card::after {
    height: 78px;
  }

  .home-final-cta {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-bottom: 44px;
  }

  .home-final-cta .hero-actions {
    justify-self: stretch;
  }

  .subpage-main.template-process .template-hero.reimbursement-hero > img {
    height: 180px;
  }

  .subpage-main .reimbursement-guide {
    padding-top: 16px;
    padding-bottom: 24px;
  }

  .subpage-main .reimbursement-guide .section-intro {
    margin-bottom: 22px;
  }

  .subpage-main .process-flow .reimbursement-timeline li {
    column-gap: 14px;
  }

  .reimbursement-practical {
    padding-top: 8px;
  }

  .reimbursement-checklist ul {
    grid-template-columns: 1fr;
  }

  .reimbursement-checklist,
  .important-notes {
    border-radius: 14px;
  }
}

/* menu39: visible product browsing with member-only pricing and support specialty layouts. */
.products-hero-refined {
  min-height: 360px !important;
}

.products-hero-refined .hero-actions {
  margin-top: 22px;
}

.public-product-showcase,
.swim-product-page,
.category-product-page,
.support-specialty-page,
.nz-specialty-page,
.donation-specialty-page,
.contact-reference-page,
.contact-bottom-panels,
.premium-help-strip {
  max-width: 1270px;
  margin: 0 auto;
  padding: clamp(24px, 3.8vw, 54px) clamp(22px, 5vw, 46px);
}

.public-product-showcase .section-intro,
.product-browse-head {
  margin-bottom: 24px;
}

.public-product-showcase .section-intro h2,
.product-browse-head h2,
.category-intro-card h2,
.support-specialty-page h2,
.nz-specialty-page h2,
.donation-specialty-page h2,
.contact-reference-page h1 {
  color: var(--lo-plum-dark);
  line-height: 1.02;
}

.product-category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.product-category-card,
.product-card,
.category-intro-card,
.support-card-grid article,
.funding-media-card,
.contact-method-grid a,
.contact-card-form,
.contact-bottom-panels article {
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 16px 42px rgba(76, 20, 49, 0.065);
}

.product-category-card {
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  min-height: 368px;
  overflow: hidden;
  color: #342932;
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.product-category-card:hover {
  transform: translateY(-3px);
  border-color: rgba(111, 35, 75, 0.24);
  box-shadow: 0 22px 54px rgba(76, 20, 49, 0.105);
}

.product-category-media {
  position: relative;
  min-height: 220px;
  background: linear-gradient(135deg, #fff8f8, #f8eaec);
}

.product-category-media img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  transition: transform 220ms ease;
}

.product-category-card:hover .product-category-media img {
  transform: scale(1.025);
}

.product-category-media > span,
.product-card span,
.category-intro-card .eyebrow,
.product-browse-head .eyebrow {
  color: #9a536b;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-category-media > span {
  position: absolute;
  left: 16px;
  bottom: 14px;
  max-width: calc(100% - 32px);
  margin: 0;
  padding: 8px 11px;
  border: 1px solid rgba(111, 35, 75, 0.13);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--lo-plum-dark);
  backdrop-filter: blur(10px);
}

.product-category-card h3 {
  margin: 20px 22px 8px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.04;
  text-transform: none;
}

.product-category-card p {
  margin: 0 22px 14px;
  color: #655c57;
  font-size: 14px;
  line-height: 1.45;
}

.product-category-card em,
.product-card strong {
  align-self: end;
  margin: 0 22px 22px;
  color: var(--lo-plum);
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-category-card em::after {
  content: " ->";
}

.product-category-card.reserved {
  min-height: 368px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(255, 242, 244, 0.88)),
    radial-gradient(circle at 78% 18%, rgba(144, 54, 91, 0.1), transparent 28%);
}

.product-category-card.reserved .product-category-media {
  display: grid;
  place-items: center;
  min-height: 220px;
  margin: 0;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.62), rgba(255, 238, 241, 0.72)),
    radial-gradient(circle at 50% 45%, rgba(144, 54, 91, 0.13), transparent 34%);
}

.product-category-card.reserved .product-category-media::before {
  content: "+";
  display: grid;
  place-items: center;
  width: calc(100% - 44px);
  height: 174px;
  border: 1px dashed rgba(111, 35, 75, 0.2);
  border-radius: 12px;
  color: #b78993;
  font-size: 40px;
}

.product-category-card.reserved .product-category-media > span {
  right: auto;
}

.swim-product-page {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 22px;
}

.product-filter-panel {
  position: sticky;
  top: 86px;
  align-self: start;
  padding: 22px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 14px 34px rgba(76, 20, 49, 0.055);
}

.product-filter-panel div + div {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(111, 35, 75, 0.1);
}

.product-filter-panel strong {
  display: block;
  margin-bottom: 10px;
  color: var(--lo-plum-dark);
  font-size: 13px;
}

.product-filter-panel label {
  display: grid;
  grid-template-columns: 16px 1fr;
  align-items: center;
  gap: 9px;
  margin: 8px 0;
  color: #5f5360;
  font-size: 13px;
}

.product-filter-panel input {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: var(--lo-plum);
}

.colour-dots {
  display: flex;
  gap: 10px;
}

.colour-dots i {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #101014;
}

.colour-dots i:nth-child(2) { background: #1d3354; }
.colour-dots i:nth-child(3) { background: #efe3dc; }
.colour-dots i:nth-child(4) { background: #d88ca0; }

.product-browse-head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
}

.product-browse-head h2 {
  max-width: 600px;
  margin: 7px 0 0;
  font-size: clamp(30px, 3vw, 44px);
}

.product-browse-head a {
  color: var(--lo-plum);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.product-card {
  overflow: hidden;
}

.product-card img {
  width: 100%;
  height: 210px;
  object-fit: cover;
  background: #f5ece8;
}

.product-card div {
  display: grid;
  min-height: 170px;
  padding-bottom: 20px;
}

.product-card span {
  margin: 18px 20px 0;
}

.product-card h3 {
  margin: 10px 20px 6px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.04;
  text-transform: none;
}

.product-card p,
.product-card em {
  margin: 0 20px 12px;
  color: #645954;
  font-size: 13px;
  line-height: 1.4;
}

.product-card em {
  font-style: normal;
}

.product-card strong {
  margin: 0 20px;
}

.category-product-page {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 22px;
}

.product-listing-page {
  grid-template-columns: 238px 1fr;
  align-items: start;
  padding-top: clamp(18px, 2.6vw, 34px);
}

.category-filter-panel {
  background: rgba(255, 255, 255, 0.88);
}

.category-filter-panel a {
  color: var(--lo-plum);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.catalogue-head {
  align-items: start;
  margin-bottom: 12px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(111, 35, 75, 0.1);
}

.catalogue-head h2 {
  max-width: 720px;
}

.catalogue-head p:not(.eyebrow) {
  max-width: 560px;
  margin: 8px 0 0;
  color: #655c57;
  font-size: 14px;
  line-height: 1.5;
}

.sort-control {
  display: grid;
  gap: 7px;
  min-width: 170px;
  color: #8b5266;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.sort-control select {
  width: 100%;
  min-height: 40px;
  padding: 0 34px 0 13px;
  border: 1px solid rgba(111, 35, 75, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--lo-plum-dark);
  font: 700 13px/1 "Plus Jakarta Sans", "Inter", sans-serif;
}

.listing-status {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 16px;
  color: #8a6d76;
  font-size: 12px;
  font-weight: 800;
}

.listing-status span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
}

.product-list-grid.compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.product-list-grid .product-card img {
  height: 176px;
}

.product-list-grid .product-card div {
  min-height: 214px;
}

.product-meta-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 4px 20px 14px;
  padding: 0;
  list-style: none;
}

.product-meta-list li {
  padding: 5px 8px;
  border: 1px solid rgba(111, 35, 75, 0.11);
  border-radius: 999px;
  background: rgba(252, 241, 243, 0.72);
  color: #745c64;
  font-size: 11px;
  font-weight: 750;
}

.product-card-fitting {
  margin: 10px 20px 0;
  color: var(--lo-plum);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.product-card-media-link {
  display: block;
  text-decoration: none;
}

.product-card-detail {
  width: fit-content;
  margin: 4px 20px 0;
  color: var(--lo-plum);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.product-card-detail::after {
  content: " ->";
}

.product-detail-hero {
  display: grid;
  grid-template-columns: minmax(420px, 0.95fr) minmax(420px, 1.05fr);
  gap: clamp(28px, 4vw, 56px);
  width: min(1270px, calc(100% - 88px));
  margin: 0 auto;
  padding: clamp(40px, 4.6vw, 62px) 0 clamp(24px, 3.4vw, 40px);
  align-items: center;
}

.product-detail-copy {
  max-width: 520px;
}

.breadcrumb-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  margin-bottom: 24px;
  padding: 7px 11px 7px 8px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.58);
  color: #875569;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: 0 8px 22px rgba(76, 20, 49, 0.035);
}

.breadcrumb-link::before {
  content: "←";
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: rgba(247, 224, 229, 0.9);
  color: var(--lo-plum);
  font-size: 15px;
  line-height: 1;
  transform: translateY(-1px);
}

.breadcrumb-link + .eyebrow {
  margin-top: 0;
}

.product-detail-copy h1 {
  max-width: 560px;
  margin: 0 0 14px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(52px, 5vw, 72px);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 0.96;
}

.product-detail-copy > p:not(.eyebrow) {
  max-width: 460px;
  margin: 0 0 18px;
  color: #5f5360;
  font-size: 17px;
  line-height: 1.55;
}

.product-detail-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 20px;
}

.product-detail-tags span {
  padding: 8px 11px;
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #745c64;
  font-size: 12px;
  font-weight: 750;
}

.product-detail-gallery {
  margin: 0;
}

.product-detail-media {
  min-height: clamp(330px, 31vw, 450px);
  display: grid;
  place-items: center;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 24px;
  background:
    radial-gradient(circle at 50% 32%, rgba(255, 255, 255, 0.94), rgba(251, 239, 239, 0.78) 62%, rgba(244, 224, 228, 0.9));
  box-shadow: 0 20px 54px rgba(76, 20, 49, 0.075);
  overflow: hidden;
}

.product-detail-media img {
  width: 100%;
  height: 100%;
  max-height: 450px;
  padding: clamp(14px, 2.2vw, 28px);
  object-fit: contain;
  object-position: center;
  mix-blend-mode: multiply;
}

.product-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.product-gallery-thumbs button {
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 7px;
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
  color: #765866;
  cursor: default;
  box-shadow: 0 10px 26px rgba(76, 20, 49, 0.045);
}

.product-gallery-thumbs button.is-active {
  border-color: rgba(111, 35, 75, 0.34);
  background: rgba(255, 249, 248, 0.96);
}

.product-gallery-thumbs img {
  width: 100%;
  height: 62px;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.product-detail-price-link {
  display: inline-flex;
  margin-top: 12px;
  color: var(--lo-plum);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.product-detail-price-link[aria-disabled="true"] {
  padding: 8px 12px;
  border: 1px solid rgba(111, 35, 75, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  color: var(--lo-plum-dark);
  cursor: default;
}

.product-quick-actions a[aria-disabled="true"] {
  pointer-events: none;
}

.product-detail-hero .button.save-for-fitting,
.product-fitting-list-panel .button.save-for-fitting {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 176px;
  min-height: 44px;
  margin: 0;
  padding: 0 20px;
  border-radius: 12px;
  white-space: nowrap;
}

.product-fitting-list-panel .button.save-for-fitting {
  min-width: 190px;
}

.product-quick-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  max-width: 620px;
  margin-top: 20px;
}

.product-quick-actions a {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.7);
  color: #634554;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.25;
  text-decoration: none;
}

.product-quick-actions span {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: rgba(247, 224, 229, 0.86);
  color: var(--lo-plum);
  font-size: 13px;
}

.product-detail-panels {
  display: grid;
  grid-template-columns: 1.25fr 0.9fr 0.95fr;
  gap: 18px;
  width: min(1270px, calc(100% - 88px));
  margin: 0 auto 28px;
  align-items: stretch;
}

.product-detail-panels article {
  min-height: 260px;
  padding: clamp(24px, 2.8vw, 32px);
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 18px 46px rgba(76, 20, 49, 0.06);
}

.product-detail-panels h2 {
  margin: 0 0 12px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.04;
}

.product-detail-panels p,
.product-detail-panels li {
  color: #62585e;
  font-size: 14px;
  line-height: 1.55;
}

.product-detail-panels ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.product-detail-panels .benefit-list {
  margin-top: 18px;
}

.product-detail-panels li::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 9px;
  border-radius: 999px;
  background: #b95e7b;
}

.product-price-panel {
  background: linear-gradient(145deg, #7b1f52, #9b3f68) !important;
}

.product-price-panel .eyebrow,
.product-price-panel h2,
.product-price-panel p,
.product-price-panel a {
  color: #fff8f7;
}

.product-price-panel a {
  display: inline-flex;
  margin-top: 12px;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.product-fitting-list-panel,
.product-guidance-strip,
.related-products-detail {
  width: min(1270px, calc(100% - 88px));
  margin: 0 auto 28px;
}

.product-fitting-list-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 32px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 20px;
  background:
    linear-gradient(135deg, rgba(255, 250, 249, 0.96), rgba(255, 237, 241, 0.82)),
    radial-gradient(circle at 12% 50%, rgba(144, 54, 91, 0.1), transparent 26%);
  box-shadow: 0 18px 46px rgba(76, 20, 49, 0.055);
}

.product-fitting-list-panel h2 {
  margin: 4px 0 8px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.02;
}

.product-fitting-list-panel p:not(.eyebrow) {
  max-width: 650px;
  margin: 0;
  color: #67585f;
  font-size: 14px;
  line-height: 1.55;
}

.product-guidance-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.76);
}

.product-guidance-strip article {
  display: grid;
  grid-template-columns: 34px 1fr;
  column-gap: 12px;
  padding: 20px;
}

.product-guidance-strip article + article {
  border-left: 1px solid rgba(111, 35, 75, 0.1);
}

.product-guidance-strip span {
  display: grid;
  grid-row: span 2;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(247, 224, 229, 0.84);
  color: var(--lo-plum);
  font-size: 13px;
}

.product-guidance-strip strong {
  color: var(--lo-plum-dark);
  font-size: 13px;
}

.product-guidance-strip p {
  margin: 5px 0 0;
  color: #655b60;
  font-size: 12px;
  line-height: 1.45;
}

.related-products-detail {
  margin-top: 36px;
}

.related-products-detail .section-intro {
  margin-bottom: 18px;
}

.related-products-detail .section-intro h2 {
  margin: 4px 0 0;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.02;
}

.related-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.related-product-grid article {
  overflow: hidden;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 30px rgba(76, 20, 49, 0.045);
}

.related-product-grid img {
  width: 100%;
  height: 150px;
  padding: 10px;
  object-fit: contain;
  background:
    radial-gradient(circle at 50% 36%, rgba(255, 255, 255, 0.96), rgba(248, 236, 232, 0.88));
  mix-blend-mode: multiply;
}

.related-product-grid div {
  padding: 16px;
}

.related-product-grid span {
  color: #9a536b;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.related-product-grid h3 {
  margin: 8px 0 12px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 22px;
  line-height: 1.04;
}

.related-product-grid a {
  color: var(--lo-plum);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  .product-detail-hero,
  .product-detail-panels,
  .product-fitting-list-panel,
  .product-guidance-strip,
  .related-products-detail {
    width: min(100% - 40px, 760px);
    grid-template-columns: 1fr;
  }

  .product-detail-hero {
    padding-top: 34px;
  }

  .product-detail-media {
    min-height: 360px;
  }

  .product-quick-actions,
  .related-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-fitting-list-panel {
    align-items: start;
    flex-direction: column;
  }

  .product-guidance-strip article + article {
    border-left: 0;
    border-top: 1px solid rgba(111, 35, 75, 0.1);
  }
}

@media (max-width: 620px) {
  .product-detail-hero,
  .product-detail-panels,
  .product-fitting-list-panel,
  .product-guidance-strip,
  .related-products-detail {
    width: min(100% - 28px, 560px);
  }

  .product-detail-copy h1 {
    font-size: 46px;
  }

  .product-detail-media {
    min-height: 360px;
    border-radius: 18px;
  }

  .product-gallery-thumbs,
  .product-quick-actions,
  .related-product-grid {
    grid-template-columns: 1fr;
  }

  .product-detail-panels article {
    min-height: 0;
  }

  .product-fitting-list-panel {
    padding: 22px;
  }
}

.category-intro-card {
  align-self: start;
  padding: 30px;
  position: sticky;
  top: 86px;
}

.category-intro-card .eyebrow {
  margin: 0 0 14px;
}

.category-intro-card h2 {
  margin: 0 0 14px;
  font-size: clamp(30px, 3.2vw, 46px);
}

.category-intro-card p {
  margin-bottom: 22px;
  color: #5f5360;
  line-height: 1.55;
}

.product-card-grid.compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.product-card-grid.product-list-grid.compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.product-card-grid.compact .product-card img {
  height: 185px;
}

.product-card-grid.product-list-grid.compact .product-card img {
  height: 176px;
}

.specialty-lymph-hero,
.nz-specialty-hero,
.donation-specialty-hero {
  min-height: 360px !important;
}

.subpage-main.template-process .template-hero.nz-specialty-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(340px, 0.58fr) minmax(0, 0.42fr);
  width: min(1270px, calc(100% - 56px));
  max-width: 1270px;
  min-height: 380px !important;
  margin: 28px auto 0;
  padding: clamp(34px, 4vw, 58px) clamp(38px, 5vw, 70px);
  overflow: hidden;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 18px;
  background: #fffaf8;
  box-shadow: 0 18px 48px rgba(76, 20, 49, 0.08);
}

.subpage-main.template-process .template-hero.nz-specialty-hero > div {
  position: relative;
  z-index: 2;
  max-width: 455px;
}

.subpage-main.template-process .template-hero.nz-specialty-hero > img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  border-radius: 0 !important;
  object-fit: cover;
  object-position: 64% 48%;
  filter: saturate(1.02) contrast(1.02) brightness(1.03);
  mask-image: none !important;
  box-shadow: none !important;
}

.subpage-main.template-process .template-hero.nz-specialty-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 250, 248, 0.98) 0 33%, rgba(255, 250, 248, 0.78) 43%, rgba(255, 250, 248, 0.16) 60%, transparent 78%),
    linear-gradient(180deg, rgba(255, 250, 248, 0.1) 0%, rgba(255, 250, 248, 0.2) 100%);
}

.subpage-main.template-process .template-hero.nz-specialty-hero h1 {
  max-width: 440px;
  font-size: clamp(36px, 3vw, 50px);
  line-height: 1.02;
}

.subpage-main.template-process .template-hero.nz-specialty-hero .hero-text {
  max-width: 360px;
  color: #574e55;
}

.subpage-main .template-hero.specialty-lymph-hero > img {
  justify-self: end;
  width: calc(100% + clamp(30px, 6vw, 88px));
  margin-right: calc(clamp(30px, 6vw, 88px) * -1);
}

.support-specialty-page,
.nz-specialty-page,
.donation-specialty-page {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 24px;
  align-items: stretch;
}

.support-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.support-card-grid article {
  padding: 24px;
}

.support-card-grid article span {
  display: block;
  width: 42px;
  height: 42px;
  margin-bottom: 18px;
  border-radius: 50%;
  background: url("assets/icons/icon-check-circle.svg") center / 22px 22px no-repeat #fae8eb;
}

.support-card-grid article h3 {
  margin: 0 0 10px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 19px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.support-card-grid article p {
  margin: 0;
  color: #635954;
  font-size: 13px;
  line-height: 1.45;
}

.funding-media-card {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 20px;
  align-items: center;
  margin-top: 18px;
  padding: 28px 28px 26px;
  overflow: hidden;
  border-color: rgba(111, 35, 75, 0.22);
  background:
    linear-gradient(90deg, rgba(255, 245, 247, 0.96), rgba(255, 255, 255, 0.92) 58%),
    radial-gradient(circle at 8% 20%, rgba(250, 225, 231, 0.98), transparent 30%);
  box-shadow: 0 22px 54px rgba(76, 20, 49, 0.1);
}

.funding-media-card::before {
  content: "";
  position: absolute;
  top: 22px;
  bottom: 22px;
  left: 0;
  width: 5px;
  border-radius: 0 999px 999px 0;
  background: linear-gradient(180deg, #7c214f, #c65f75);
}

.funding-media-card::after {
  content: "Funding may apply";
  position: absolute;
  top: 20px;
  right: 28px;
  z-index: 2;
  padding: 7px 11px;
  border: 1px solid rgba(111, 35, 75, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--lo-plum);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.funding-media-card h3 {
  max-width: 520px;
  margin: 8px 0 16px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(27px, 2.35vw, 36px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.02;
  text-transform: none;
}

.funding-media-card h3::first-letter {
  color: #8a2f58;
}

.funding-media-card img {
  width: 100%;
  height: 170px;
  border-radius: 12px;
  object-fit: cover;
  box-shadow: 0 14px 32px rgba(76, 20, 49, 0.1);
}

.funding-media-card a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--lo-plum);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.funding-media-card a::after {
  content: "->";
}

.plum-support-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: 16px;
  padding: 30px;
  overflow: hidden;
  border-radius: 18px;
  background:
    linear-gradient(145deg, rgba(84, 26, 57, 0.98), rgba(136, 48, 89, 0.96)),
    radial-gradient(circle at 100% 100%, rgba(255,255,255,0.16), transparent 38%);
  color: #fff;
  box-shadow: 0 22px 52px rgba(76, 20, 49, 0.18);
}

.plum-support-card::after {
  content: "";
  position: absolute;
  right: -34px;
  bottom: -48px;
  width: 170px;
  height: 170px;
  opacity: 0.18;
  background: url("assets/icons/icon-flower-line.svg") center / contain no-repeat;
}

.plum-support-card h2 {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #fff;
  font-size: 26px;
}

.plum-support-card p,
.plum-support-card a {
  position: relative;
  z-index: 1;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  line-height: 1.45;
  text-decoration: none;
}

.plum-support-card a {
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.plum-support-card strong {
  color: #fff;
}

.nz-flow ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding: 0;
  margin: 18px 0 0;
  list-style: none;
}

.nz-flow li {
  min-height: 172px;
  padding: 22px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.88);
}

.nz-flow li span,
.donation-steps article span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: #f6dfe4;
  color: var(--lo-plum);
  font-weight: 900;
}

.nz-flow li strong,
.donation-steps article strong {
  display: block;
  margin-bottom: 8px;
  color: var(--lo-plum-dark);
  font-size: 15px;
}

.nz-flow li p,
.donation-steps article p {
  margin: 0;
  color: #635954;
  font-size: 12px;
  line-height: 1.45;
}

.donation-specialty-page {
  grid-template-columns: 1fr 260px;
}

.donation-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin-top: 18px;
  padding: 24px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
}

.donation-steps .eyebrow {
  grid-column: 1 / -1;
}

.donation-steps article {
  padding: 12px 18px;
}

.donation-steps article + article {
  border-left: 1px solid rgba(111, 35, 75, 0.1);
}

.contact-reference-page {
  position: relative;
  display: grid;
  grid-template-columns: minmax(500px, 0.92fr) minmax(520px, 1.08fr);
  gap: clamp(34px, 4.6vw, 64px);
  align-items: center;
  overflow: hidden;
  margin-top: 0;
  scroll-margin-top: 92px;
  padding-top: clamp(42px, 4.5vw, 64px);
  padding-bottom: clamp(34px, 4vw, 52px);
  background:
    linear-gradient(90deg, rgba(255, 250, 247, 0.98) 0 40%, rgba(255, 250, 247, 0.58) 58%, rgba(255, 250, 247, 0.14) 100%),
    radial-gradient(circle at 7% 14%, rgba(247, 216, 222, 0.2), transparent 24%),
    linear-gradient(180deg, #fffaf6 0%, #f8eee9 100%);
}

.contact-reference-page::before {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  width: min(56vw, 790px);
  background:
    linear-gradient(90deg, #fffaf6 0%, rgba(255, 250, 246, 0.52) 18%, rgba(255, 250, 246, 0.02) 56%),
    url("assets/photo-soft-bra-flower.png") center right / cover no-repeat;
  opacity: 0.78;
  pointer-events: none;
}

.contact-reference-copy {
  position: relative;
  z-index: 1;
  padding-top: 0;
}

.contact-reference-page h1 {
  max-width: 640px;
  margin: 0 0 18px;
  font-size: clamp(48px, 4.4vw, 60px);
  letter-spacing: 0;
}

.contact-reference-copy > p:not(.eyebrow) {
  position: relative;
  max-width: 430px;
  margin: 0;
  padding-top: 18px;
  color: #5f5360;
  font-size: 15px;
  line-height: 1.65;
}

.contact-reference-copy > p:not(.eyebrow)::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 42px;
  height: 2px;
  background: #c56f83;
}

.contact-options {
  display: grid;
  gap: 12px;
  max-width: 510px;
  margin-top: 26px;
}

.contact-option {
  position: relative;
  display: grid;
  grid-template-columns: 48px 1fr 18px;
  align-items: center;
  gap: 16px;
  min-height: 66px;
  padding: 12px 18px;
  border: 1px solid rgba(111, 35, 75, 0.09);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
  color: #342932;
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(76, 20, 49, 0.035);
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.contact-option::after {
  content: ">";
  color: var(--lo-plum);
  font-size: 18px;
  line-height: 1;
  opacity: 0.78;
}

.contact-option:hover {
  transform: translateY(-2px);
  border-color: rgba(111, 35, 75, 0.18);
  background: rgba(255, 255, 255, 0.9);
}

.contact-option:focus-visible,
.contact-card-form input:focus-visible,
.contact-card-form textarea:focus-visible,
.contact-consent input:focus-visible {
  outline: 2px solid rgba(125, 31, 82, 0.36);
  outline-offset: 3px;
}

.contact-option-icon {
  position: relative;
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  border-radius: 50%;
  background: linear-gradient(145deg, #7d1f52, #5b173c);
  box-shadow: 0 8px 18px rgba(91, 23, 60, 0.18);
}

.contact-option-icon::before {
  content: "";
  width: 22px;
  height: 22px;
  background: #fff;
  mask: var(--contact-icon) center / contain no-repeat;
}

.icon-call { --contact-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M6.6 2.8c.5-.2 1.1-.1 1.5.3l2.4 2.8c.4.5.5 1.1.2 1.6L9.6 9.7c1 1.9 2.6 3.5 4.5 4.5l2.2-1.1c.6-.3 1.2-.2 1.7.2l2.8 2.4c.4.4.6 1 .3 1.5-.8 1.9-2.1 3-3.8 3C9.1 20.8 3.2 14.9 3.2 6.7c0-1.7 1.1-3 3.4-3.9Zm.5 1.8C5.6 5.4 5 6.1 5 6.7c0 7.2 5.8 13 13 13 .6 0 1.3-.6 1.9-1.9l-2.7-2.3-2.5 1.2c-.3.1-.5.1-.8 0-2.7-1.2-4.8-3.3-6-6-.1-.3-.1-.6 0-.8L9.2 7.4 7.1 4.6Z'/%3E%3C/svg%3E"); }
.icon-sms { --contact-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M5.5 5.5A3.5 3.5 0 0 1 9 2h6a3.5 3.5 0 0 1 3.5 3.5v5A3.5 3.5 0 0 1 15 14H9.2l-4.1 3.2A1 1 0 0 1 3.5 16V5.5Zm3.5-2A2 2 0 0 0 7 5.5v8.4l2.2-1.7c.2-.1.4-.2.6-.2H15a2 2 0 0 0 2-2v-4.5a2 2 0 0 0-2-2H9Zm0 4.3a1.1 1.1 0 1 1 0 2.2 1.1 1.1 0 0 1 0-2.2Zm4 0a1.1 1.1 0 1 1 0 2.2 1.1 1.1 0 0 1 0-2.2Zm4 0a1.1 1.1 0 1 1 0 2.2 1.1 1.1 0 0 1 0-2.2Z'/%3E%3C/svg%3E"); }
.icon-email { --contact-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4.5 5h15A2.5 2.5 0 0 1 22 7.5v9A2.5 2.5 0 0 1 19.5 19h-15A2.5 2.5 0 0 1 2 16.5v-9A2.5 2.5 0 0 1 4.5 5Zm0 2c-.2 0-.4.1-.5.2l8 5.2 8-5.2a.8.8 0 0 0-.5-.2h-15ZM20 9.1l-7.5 4.8a1 1 0 0 1-1.1 0L4 9.1v7.4c0 .3.2.5.5.5h15c.3 0 .5-.2.5-.5V9.1Z'/%3E%3C/svg%3E"); }
.icon-location { --contact-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 2.5A7.5 7.5 0 0 1 19.5 10c0 5.2-6.6 11-6.9 11.2a1 1 0 0 1-1.3 0c-.3-.2-6.9-6-6.9-11.2A7.5 7.5 0 0 1 12 2.5Zm0 2A5.5 5.5 0 0 0 6.5 10c0 3.2 3.6 7.2 5.5 9.1 1.9-1.9 5.5-5.9 5.5-9.1A5.5 5.5 0 0 0 12 4.5Zm0 3.2a2.8 2.8 0 1 1 0 5.6 2.8 2.8 0 0 1 0-5.6Zm0 2a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6Z'/%3E%3C/svg%3E"); }
.icon-hours { --contact-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 2.8a9.2 9.2 0 1 1 0 18.4 9.2 9.2 0 0 1 0-18.4Zm0 2a7.2 7.2 0 1 0 0 14.4 7.2 7.2 0 0 0 0-14.4Zm1 2.7v4.1l2.8 2.1-1.2 1.6-3.4-2.6a1 1 0 0 1-.4-.8V7.5H13Z'/%3E%3C/svg%3E"); }

.contact-option strong {
  display: block;
  color: var(--lo-plum-dark);
  font-size: 15px;
  line-height: 1.2;
}

.contact-option em {
  display: block;
  margin-top: 4px;
  color: #6b615c;
  font-size: 13px;
  font-style: normal;
}

.contact-hours {
  display: grid;
  grid-template-columns: 40px minmax(104px, auto) 1fr;
  align-items: center;
  gap: 3px 14px;
  min-height: 58px;
  padding: 10px 16px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.48);
  color: #62555d;
}

.contact-hours .contact-option-icon {
  width: 34px;
  height: 34px;
  background: #f8e6e8;
  box-shadow: none;
}

.contact-hours .contact-option-icon::before {
  width: 18px;
  height: 18px;
  background: var(--lo-plum);
}

.contact-hours strong {
  grid-row: span 2;
  color: var(--lo-plum-dark);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}

.contact-hours > span:not(.contact-option-icon) {
  grid-column: 3;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  color: #62555d;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
}

.contact-hours > span:not(.contact-option-icon) em {
  color: #4d4248;
  font-weight: 600;
  font-style: normal;
}

.contact-form-scene {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  min-height: 0;
}

.contact-form-scene > img {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 0;
  width: min(48%, 360px);
  height: 100%;
  object-fit: cover;
  object-position: 63% center;
  border-radius: 0 26px 26px 0;
  opacity: 0.42;
  filter: saturate(1.12) brightness(1.02);
}

.contact-form-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: 26px;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.92) 0 58%, rgba(255, 255, 255, 0.38) 100%),
    radial-gradient(circle at 88% 15%, rgba(247, 216, 222, 0.28), transparent 26%);
  pointer-events: none;
}

.contact-card-form {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  width: min(100%, 560px);
  min-height: 0;
  padding: clamp(28px, 3.3vw, 42px);
  border: 1px solid rgba(111, 35, 75, 0.09);
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 18px 54px rgba(76, 20, 49, 0.065);
  backdrop-filter: blur(8px);
  scroll-margin-top: 110px;
}

.contact-card-form.is-attention {
  animation: contactFormAttention 1200ms ease;
}

@keyframes contactFormAttention {
  0% {
    box-shadow: 0 18px 54px rgba(76, 20, 49, 0.065), 0 0 0 0 rgba(125, 31, 82, 0);
  }
  22% {
    border-color: rgba(125, 31, 82, 0.34);
    box-shadow: 0 20px 58px rgba(76, 20, 49, 0.09), 0 0 0 6px rgba(125, 31, 82, 0.1);
  }
  100% {
    box-shadow: 0 18px 54px rgba(76, 20, 49, 0.065), 0 0 0 0 rgba(125, 31, 82, 0);
  }
}

.contact-card-form h2 {
  grid-column: 1 / -1;
  margin: 0 0 8px;
  color: var(--lo-plum-dark);
  font-size: 29px;
  line-height: 1.05;
}

.fitting-form-note {
  grid-column: 1 / -1;
  max-width: 460px;
  margin: -2px 0 2px;
  color: #6b5e66;
  font-size: 13px;
  line-height: 1.5;
}

.fitting-fields {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 2px;
  padding: 16px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 18px;
  background: rgba(255, 247, 245, 0.72);
}

.fitting-fields[hidden],
.fitting-form-note[hidden] {
  display: none;
}

.fitting-fields legend {
  padding: 0 6px;
  color: #9a536b;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.contact-card-form label {
  display: grid;
  gap: 0;
}

.contact-card-form label > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.contact-card-form input,
.contact-card-form textarea,
.contact-card-form select {
  min-height: 56px;
  border: 1px solid rgba(111, 35, 75, 0.13);
  border-radius: 9px;
  background: rgba(255, 252, 250, 0.7);
  color: #342932;
  font-size: 14px;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.contact-card-form input:focus,
.contact-card-form textarea:focus,
.contact-card-form select:focus {
  border-color: rgba(111, 35, 75, 0.34);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 0 0 4px rgba(111, 35, 75, 0.07);
  outline: none;
}

.contact-card-form input::placeholder,
.contact-card-form textarea::placeholder {
  color: #7f727b;
}

.contact-card-form select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--lo-plum) 50%),
    linear-gradient(135deg, var(--lo-plum) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 13px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  color: #7f727b;
}

.contact-card-form select:valid {
  color: #342932;
}

.contact-card-form textarea {
  min-height: 180px;
}

.contact-consent {
  grid-column: 1 / -1;
  display: flex !important;
  align-items: center;
  gap: 10px !important;
  margin-top: -2px;
  color: #74666d;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.contact-consent input {
  width: 14px;
  height: 14px;
  min-height: 14px;
  margin: 0;
  accent-color: var(--lo-plum);
}

.contact-consent span {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
}

.contact-consent a {
  color: var(--lo-plum);
  font-weight: 700;
}

.contact-card-form .button {
  grid-column: 1 / -1;
  justify-self: start;
  min-height: 50px;
  padding: 13px 26px;
  border-radius: 18px;
  background: linear-gradient(135deg, #862358, #651942);
  font-size: 13px;
  box-shadow: 0 14px 28px rgba(101, 25, 66, 0.18);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.contact-card-form .button:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(101, 25, 66, 0.22);
}

.contact-card-form .button::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23ffffff' d='M20.8 3.2a1 1 0 0 1 .2 1L14.7 20a1 1 0 0 1-1.9.1l-2.3-6.5-6.5-2.3a1 1 0 0 1 .1-1.9l15.7-6.3a1 1 0 0 1 1 .1ZM7.3 10.4l3.8 1.3 5.4-5.4-9.2 3.7Zm4 2.5 1.3 3.8 3.7-9.2-5 5.4Z'/%3E%3C/svg%3E") !important;
}

.contact-bottom-panels {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 72px minmax(0, 1fr);
  align-items: center;
  gap: clamp(14px, 2.6vw, 30px);
  margin-top: 0;
  padding-top: 22px;
  padding-bottom: 22px;
  border-top: 1px solid rgba(111, 35, 75, 0.11);
  border-bottom: 1px solid rgba(111, 35, 75, 0.08);
  background:
    radial-gradient(circle at 50% 70%, rgba(247, 216, 222, 0.26), transparent 30%),
    linear-gradient(180deg, #fff7f5 0%, #fffaf8 100%);
}

.contact-bottom-panels article {
  display: grid;
  grid-template-columns: 56px 1fr;
  align-items: center;
  gap: 16px;
  min-height: 112px;
  padding: 12px 16px;
  border-color: transparent;
  border-radius: 22px;
  background: transparent;
  box-shadow: none;
}

.contact-cta-icon {
  grid-row: 1 / span 4;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(111, 35, 75, 0.22);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
}

.contact-cta-icon::before {
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  margin: 11px auto 0;
  background: var(--lo-plum);
  mask: var(--cta-icon) center / contain no-repeat;
}

.contact-cta-fitting .contact-cta-icon { --cta-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 3a2.8 2.8 0 0 0-2.8 2.8h2A.8.8 0 1 1 12 6.6a1 1 0 0 0-1 1v1.2L3.7 13A2.2 2.2 0 0 0 5 17.1h14a2.2 2.2 0 0 0 1.1-4.1L13 8.8V8.2a2.8 2.8 0 0 0-1-5.2Zm0 10.3 7.1 4.1c.2.1.1.3-.1.3H5c-.2 0-.3-.2-.1-.3l7.1-4.1Z'/%3E%3C/svg%3E"); }
.contact-cta-location .contact-cta-icon { --cta-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 10.2 12 4l8 6.2V20a1 1 0 0 1-1 1h-5v-6h-4v6H5a1 1 0 0 1-1-1v-9.8Zm2 .9V19h2v-6h8v6h2v-7.9l-6-4.7-6 4.7Z'/%3E%3C/svg%3E"); }

.contact-bottom-panels h2 {
  max-width: 360px;
  margin: 2px 0 4px;
  color: var(--lo-plum-dark);
  font-size: 22px;
  line-height: 1.12;
}

.contact-bottom-panels .eyebrow {
  margin: 0;
}

.contact-bottom-panels article > p:not(.eyebrow) {
  max-width: 360px;
  margin: 0 0 10px;
  color: #5f5360;
  font-size: 13px;
  line-height: 1.38;
}

.contact-bottom-panels .button {
  justify-self: start;
  min-height: 38px;
  padding: 9px 16px;
  border-radius: 10px;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.contact-bottom-panels .fitting-toggle-button {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding-right: 14px;
}

.contact-bottom-panels .fitting-toggle-button::after {
  content: "";
  width: 8px;
  height: 8px;
  margin-left: 2px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 180ms ease;
}

.contact-bottom-panels .fitting-toggle-button[aria-expanded="true"]::after {
  transform: translateY(2px) rotate(225deg);
}

.contact-bottom-panels .button:hover {
  transform: translateY(-2px);
}

.contact-cta-divider {
  position: relative;
  display: grid;
  place-items: center;
  height: 88px;
}

.contact-cta-divider::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(111, 35, 75, 0.14);
}

.contact-cta-divider::after {
  content: "";
  position: relative;
  width: 46px;
  height: 46px;
  background: url("assets/lo-flower.svg") center / contain no-repeat rgba(255, 247, 245, 0.92);
  opacity: 0.45;
}

.premium-help-strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  margin-top: 10px;
  margin-bottom: 10px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 14px 34px rgba(76, 20, 49, 0.055);
}

.premium-help-strip h2 {
  margin: 4px 0 0;
  color: var(--lo-plum-dark);
  font-size: 28px;
}

.swim-product-hero > img,
.product-family-hero > img,
.specialty-lymph-hero > img,
.nz-specialty-hero > img,
.donation-specialty-hero > img {
  border-radius: 18px !important;
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.75) 18%, #000 38%) !important;
  box-shadow: 0 18px 46px rgba(76, 20, 49, 0.09) !important;
}

@media (max-width: 1080px) {
  .subpage-main .template-hero.specialty-lymph-hero > img {
    width: 100%;
    margin-right: 0;
  }

  .product-category-grid,
  .product-card-grid,
  .product-card-grid.compact,
  .support-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .swim-product-page,
  .category-product-page,
  .support-specialty-page,
  .nz-specialty-page,
  .donation-specialty-page,
  .contact-reference-page {
    grid-template-columns: 1fr;
  }

  .product-filter-panel,
  .category-intro-card {
    position: static;
  }

  .nz-flow ol,
  .donation-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contact-hours {
    grid-template-columns: 40px 1fr;
  }

  .contact-hours .contact-option-icon {
    grid-row: 1 / span 3;
    align-self: start;
  }

  .contact-hours strong,
  .contact-hours > span:not(.contact-option-icon) {
    grid-column: 2;
  }

  .contact-hours strong {
    grid-row: auto;
  }

  .contact-hours > span:not(.contact-option-icon) {
    justify-content: flex-start;
  }
}

@media (max-width: 680px) {
  .product-category-grid,
  .product-card-grid,
  .product-card-grid.compact,
  .support-card-grid,
  .nz-flow ol,
  .donation-steps,
  .contact-bottom-panels {
    grid-template-columns: 1fr;
  }

  .funding-media-card {
    grid-template-columns: 1fr;
    padding: 26px 22px 22px;
  }

  .funding-media-card::after {
    position: static;
    justify-self: start;
    order: -1;
    margin-bottom: 4px;
  }

  .funding-media-card h3 {
    font-size: 29px;
  }

  .premium-help-strip {
    display: grid;
  }

  .contact-reference-page,
  .contact-bottom-panels {
    padding-left: 22px;
    padding-right: 22px;
  }

  .contact-reference-page h1 {
    font-size: 40px;
  }

  .contact-options {
    max-width: none;
  }

  .contact-option {
    grid-template-columns: 44px 1fr 16px;
    gap: 13px;
    padding: 12px 14px;
  }

  .contact-option-icon {
    width: 40px;
    height: 40px;
  }

  .contact-hours {
    grid-template-columns: 44px 1fr;
    gap: 6px;
  }

  .contact-hours .contact-option-icon {
    grid-row: 1;
    align-self: start;
  }

  .contact-hours strong {
    grid-row: auto;
  }

  .contact-hours > span:not(.contact-option-icon) {
    grid-column: 2;
    justify-content: flex-start;
  }

  .contact-form-scene {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .contact-form-scene > img {
    width: 46%;
    height: calc(100% - 20px);
    opacity: 0.45;
  }

  .contact-card-form {
    grid-template-columns: 1fr;
    width: 100%;
    padding: 24px 22px;
  }

  .fitting-fields {
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .contact-card-form h2 {
    font-size: 25px;
  }

  .contact-card-form textarea {
    min-height: 150px;
  }

  .contact-bottom-panels {
    gap: 8px;
    padding-top: 26px;
    padding-bottom: 26px;
  }

  .contact-bottom-panels article {
    grid-template-columns: 54px 1fr;
    min-height: 0;
    padding: 18px 0;
  }

  .contact-cta-icon {
    width: 50px;
    height: 50px;
  }

  .contact-cta-icon::before {
    width: 27px;
    height: 27px;
    margin-top: 11px;
  }

  .contact-cta-divider {
    height: 34px;
  }

  .contact-cta-divider::before {
    left: 0;
    right: 0;
    top: 50%;
    bottom: auto;
    width: auto;
    height: 1px;
  }

  .contact-cta-divider::after {
    width: 42px;
    height: 42px;
  }

  .contact-bottom-panels .button {
    width: auto;
  }
}

/* menu39: swimwear hero slider uses image-first cover composition. */
.swim-product-hero .hero-slider {
  overflow: hidden;
  border-radius: 18px !important;
  background: transparent;
  box-shadow: 0 18px 46px rgba(76, 20, 49, 0.09) !important;
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.75) 18%, #000 38%) !important;
}

.swim-product-hero .hero-slider img {
  padding: 0;
  object-fit: cover;
  object-position: center;
}

.swim-product-hero .slider-controls span {
  display: none;
}

.swim-product-hero .slider-controls button {
  width: 40px;
  height: 40px;
  border-color: rgba(111, 35, 75, 0.12);
  background: rgba(255, 250, 247, 0.88);
  color: var(--lo-plum-dark);
  box-shadow: 0 10px 22px rgba(76, 20, 49, 0.08);
}

/* menu39: make the swimwear hero media adapt to the hero instead of sitting as a small fixed banner. */
.subpage-main.template-browse .template-hero.swim-product-hero {
  grid-template-columns: minmax(330px, 0.68fr) minmax(560px, 1.32fr);
  align-items: center;
  min-height: clamp(360px, 29vw, 470px);
  padding-top: clamp(42px, 4vw, 68px);
  padding-bottom: clamp(42px, 4vw, 68px);
}

.subpage-main.template-browse .template-hero.swim-product-hero > div {
  max-width: 510px;
}

.subpage-main.template-browse .template-hero.swim-product-hero .hero-slider {
  width: 100%;
  height: auto !important;
  min-height: clamp(270px, 22vw, 390px);
  aspect-ratio: 16 / 7.4;
  justify-self: stretch;
}

.subpage-main.template-browse .template-hero.swim-product-hero .hero-slider img {
  height: 100%;
}

@media (max-width: 1080px) {
  .subpage-main.template-browse .template-hero.swim-product-hero {
    grid-template-columns: 1fr;
  }

  .subpage-main.template-browse .template-hero.swim-product-hero .hero-slider {
    min-height: 300px;
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 680px) {
  .subpage-main.template-browse .template-hero.swim-product-hero .hero-slider {
    min-height: 240px;
    aspect-ratio: 4 / 3;
  }
}

/* menu39: compact premium homepage rhythm. */
body {
  background:
    radial-gradient(circle at 82% 7%, rgba(247, 218, 222, 0.4), transparent 26%),
    radial-gradient(circle at 12% 30%, rgba(255, 246, 242, 0.64), transparent 20%),
    linear-gradient(180deg, #fffaf7 0%, #fbf2ee 48%, #fffaf8 100%);
}

main > .hero,
main > .support-pathways,
main > .home-trust-strip,
main > .locations,
main > .home-final-cta {
  width: min(100% - 48px, 1270px);
}

main > .hero {
  position: relative;
  grid-template-columns: minmax(470px, 0.78fr) minmax(560px, 1.22fr);
  min-height: 548px;
  margin: 0 auto;
  padding: clamp(70px, 5.8vw, 92px) 0 116px;
  overflow: visible;
  background:
    radial-gradient(circle at 72% 18%, rgba(255, 222, 226, 0.48), transparent 20%),
    linear-gradient(90deg, #fffaf7 0 38%, #fff5f2 62%, #fffaf7 100%);
}

main > .hero::before {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(255, 250, 247, 1) 0 33%, rgba(255, 250, 247, 0.74) 48%, rgba(255, 250, 247, 0.05) 67%, rgba(255, 250, 247, 0.08) 100%),
    linear-gradient(180deg, rgba(255, 250, 247, 0.18) 0%, transparent 42%, rgba(255, 250, 247, 0.28) 100%);
}

main > .hero .hero-copy {
  max-width: 650px;
  padding-top: 0;
}

main > .hero h1 {
  max-width: 720px;
  margin-bottom: 16px;
  font-size: clamp(54px, 5vw, 74px);
  line-height: 0.98;
  letter-spacing: 0;
}

main > .hero h1 span {
  display: block;
  white-space: nowrap;
}

main > .hero .hero-text {
  max-width: 460px;
  margin-bottom: 22px;
  font-size: 16px;
  line-height: 1.55;
}

main > .hero .hero-media {
  inset: 0 0 auto auto;
  width: min(68vw, 930px);
  height: 548px;
  border-radius: 0 0 0 28px;
}

main > .hero .hero-media::after {
  background:
    linear-gradient(90deg, #fffaf7 0 12%, rgba(255, 250, 247, 0.76) 25%, rgba(255, 250, 247, 0.08) 48%, rgba(255, 250, 247, 0.06) 100%),
    linear-gradient(180deg, rgba(255, 250, 247, 0.34) 0%, transparent 21%, transparent 80%, rgba(255, 250, 247, 0.66) 100%);
}

main > .hero .hero-media img {
  object-position: 58% 45%;
  filter: saturate(1.04) contrast(1.01) brightness(1.02);
  transform: scale(1.035);
  mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.36) 12%, rgba(0, 0, 0, 0.95) 31%, #000 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.68) 0%, #000 12%, #000 88%, rgba(0, 0, 0, 0.54) 100%);
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.36) 12%, rgba(0, 0, 0, 0.95) 31%, #000 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.68) 0%, #000 12%, #000 88%, rgba(0, 0, 0, 0.54) 100%);
}

main > .support-pathways {
  max-width: 1270px;
  margin: -76px auto 0;
  padding: 0 0 22px !important;
}

main > .support-pathways .section-intro {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
  margin-bottom: 14px;
}

main > .support-pathways .section-intro::before,
main > .support-pathways .section-intro::after {
  content: "";
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(111, 35, 75, 0.16));
}

main > .support-pathways .section-intro::after {
  background: linear-gradient(90deg, rgba(111, 35, 75, 0.16), transparent);
}

main > .support-pathways h2 {
  font-size: clamp(22px, 2vw, 28px);
}

main > .support-pathways .pathway-grid {
  gap: 16px;
}

main > .support-pathways .pathway-card {
  min-height: 172px;
  padding: 16px 20px 76px;
  border-color: rgba(111, 35, 75, 0.12);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 18px 46px rgba(76, 20, 49, 0.09);
}

main > .support-pathways .pathway-card::after {
  height: 68px;
  opacity: 0.94;
}

main > .support-pathways .pathway-card span {
  width: 32px;
  height: 32px;
  background-size: 17px 17px;
}

main > .support-pathways .pathway-card h3 {
  margin: 12px 0 5px;
  font-size: 18px;
}

main > .support-pathways .pathway-card p {
  max-width: 210px;
  margin-bottom: 11px;
  font-size: 12.5px;
}

main > .home-trust-strip {
  max-width: 1270px;
  margin: 0 auto;
  padding: 2px 0 0 !important;
}

main > .home-trust-strip .trust-strip-grid {
  border-radius: 12px;
  box-shadow: 0 12px 36px rgba(76, 20, 49, 0.055);
}

main > .home-trust-strip .trust-strip-grid article {
  grid-template-columns: 42px 1fr;
  min-height: 66px;
  padding: 10px 24px;
}

main > .home-trust-strip .trust-strip-grid article::before {
  width: 31px;
  height: 31px;
  background-size: 17px 17px;
}

main > .home-trust-strip .trust-strip-grid span {
  font-size: 13px;
}

main > .home-trust-strip .trust-strip-grid strong {
  font-size: 11.5px;
}

main > .locations {
  max-width: 1270px;
  margin: 0 auto;
  padding-top: 24px !important;
  padding-bottom: 26px !important;
}

main > .locations .location-lead {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
}

main > .locations .location-lead::before,
main > .locations .location-lead::after {
  content: "";
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(111, 35, 75, 0.14));
}

main > .locations .location-lead::after {
  background: linear-gradient(90deg, rgba(111, 35, 75, 0.14), transparent);
}

main > .locations .location-lead h2 {
  margin: 0;
  font-size: 21px;
}

main > .locations .location-lead p {
  display: none;
}

main > .locations .location-list {
  gap: 14px;
}

main > .locations .location-list article {
  min-height: 70px;
  padding: 14px 16px;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.66);
}

main > .locations .location-list article::before {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  margin: 0 auto 7px;
  background: url("assets/icons/icon-location-pin.svg") center / contain no-repeat;
}

main > .locations .location-list h3 {
  font-size: 13px;
}

main > .locations .home-view-all {
  margin-top: 9px;
  padding-right: 2px;
}

main > .locations .home-view-all::after {
  content: " ->";
}

main > .home-final-cta {
  max-width: 1270px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 132px;
  margin: 0 auto 42px;
  padding: 26px clamp(34px, 5vw, 72px) !important;
  border-radius: 15px;
  overflow: hidden;
}

main > .home-final-cta h2,
main > .home-final-cta p {
  grid-column: 1;
}

main > .home-final-cta .hero-actions {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
}

@media (max-width: 1180px) {
  main > .hero,
  main > .support-pathways,
  main > .home-trust-strip,
  main > .locations,
  main > .home-final-cta {
    width: min(100% - 36px, 760px);
  }

  main > .hero {
    grid-template-columns: 1fr;
    min-height: 0;
    padding-top: 34px;
    padding-bottom: 34px;
  }

  main > .hero .hero-media {
    position: relative;
    inset: auto;
    order: 2;
    width: 100%;
    height: clamp(230px, 42vw, 340px);
    margin-top: 22px;
    border-radius: 16px;
  }

  main > .hero .hero-media::after {
    background:
      linear-gradient(90deg, rgba(255, 250, 247, 0.28), transparent 38%),
      linear-gradient(180deg, transparent 0 72%, rgba(255, 250, 247, 0.56) 100%);
  }

  main > .hero .hero-copy {
    max-width: 680px;
    padding-top: 0;
  }

  main > .support-pathways {
    margin-top: -10px;
    padding-bottom: 20px !important;
  }

  main > .support-pathways .pathway-grid,
  main > .home-trust-strip .trust-strip-grid,
  main > .locations .location-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  main > .home-trust-strip .trust-strip-grid article:nth-child(odd) {
    border-left: 0;
  }

  main > .home-trust-strip .trust-strip-grid article:nth-child(n+3) {
    border-top: 1px solid rgba(111, 35, 75, 0.12);
  }
}

@media (max-width: 680px) {
  main > .hero,
  main > .support-pathways,
  main > .home-trust-strip,
  main > .locations,
  main > .home-final-cta {
    width: min(100% - 28px, 420px);
  }

  main > .hero {
    padding-top: 28px;
    padding-bottom: 24px;
  }

  main > .hero h1 {
    font-size: clamp(42px, 12vw, 50px);
  }

  main > .hero h1 span {
    display: inline;
    white-space: normal;
  }

  main > .hero .hero-text {
    margin-bottom: 20px;
  }

  main > .hero .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  main > .hero .hero-media {
    height: 235px;
  }

  main > .support-pathways {
    margin-top: 0;
  }

  main > .support-pathways .section-intro,
  main > .locations .location-lead {
    grid-template-columns: 1fr;
    gap: 0;
    text-align: left;
  }

  main > .support-pathways .section-intro::before,
  main > .support-pathways .section-intro::after,
  main > .locations .location-lead::before,
  main > .locations .location-lead::after {
    display: none;
  }

  main > .support-pathways .pathway-grid,
  main > .home-trust-strip .trust-strip-grid,
  main > .locations .location-list {
    grid-template-columns: 1fr;
  }

  main > .support-pathways .pathway-card {
    min-height: 188px;
    padding-bottom: 86px;
  }

  main > .support-pathways .pathway-card::after {
    height: 78px;
  }

  main > .home-trust-strip .trust-strip-grid article,
  main > .home-trust-strip .trust-strip-grid article + article {
    border-left: 0;
    border-top: 1px solid rgba(111, 35, 75, 0.12);
  }

  main > .home-trust-strip .trust-strip-grid article:first-child {
    border-top: 0;
  }

  main > .locations {
    padding-top: 22px !important;
  }

  main > .locations .home-view-all {
    text-align: left;
  }

  main > .home-final-cta {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 16px;
    padding: 26px 24px !important;
  }

  main > .home-final-cta .hero-actions,
  main > .home-final-cta .button {
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
    width: 100%;
  }
}

/* Keep resource hero media consistent with the softer card language used elsewhere. */
.subpage-main.template-resource .template-hero > img {
  border-radius: 18px !important;
  box-shadow: 0 18px 46px rgba(76, 20, 49, 0.08) !important;
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.22) 0%, rgba(0, 0, 0, 0.84) 18%, #000 42%, #000 100%) !important;
}

.subpage-main.template-resource .faq-support-intro {
  padding-top: 30px;
  padding-bottom: 8px;
}

.subpage-main.template-resource .faq-accordion {
  display: grid;
  gap: 14px;
  padding-top: 14px;
  padding-bottom: 28px;
}

.subpage-main.template-resource .faq-accordion details {
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 34px rgba(76, 20, 49, 0.055);
}

.subpage-main.template-resource .faq-accordion summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px 16px;
  color: var(--lo-plum-dark);
  font-size: clamp(22px, 1.8vw, 28px);
  list-style: none;
}

.subpage-main.template-resource .faq-accordion summary::marker {
  content: "";
}

.subpage-main.template-resource .faq-accordion summary::-webkit-details-marker {
  display: none;
}

.subpage-main.template-resource .faq-accordion summary::after {
  content: "+";
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  margin-left: auto;
  border: 1px solid rgba(111, 35, 75, 0.16);
  border-radius: 50%;
  background: rgba(248, 230, 232, 0.68);
  color: var(--lo-plum);
  font-family: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 19px;
  font-weight: 650;
  line-height: 1;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.subpage-main.template-resource .faq-accordion details[open] summary::after {
  content: "−";
  border-color: rgba(111, 35, 75, 0.24);
  background: rgba(111, 35, 75, 0.1);
  transform: rotate(180deg);
}

.subpage-main.template-resource .faq-accordion summary:hover::after {
  border-color: rgba(111, 35, 75, 0.28);
  background: rgba(248, 230, 232, 0.92);
}

.subpage-main.template-resource .faq-accordion p {
  max-width: 920px;
  padding: 0 24px 22px 48px;
  color: #5f5360;
  font-size: 15px;
  line-height: 1.62;
}

@media (max-width: 760px) {
  .faq-support-intro {
    grid-template-columns: 1fr;
    padding-right: 22px;
    padding-left: 22px;
  }

  .faq-topic-pills {
    justify-content: flex-start;
  }

  .subpage-main.template-resource .faq-accordion p {
    padding-left: 24px;
  }
}

/* menu40: products page member pricing is part of browsing, not a product card. */
.products-hero-refined {
  min-height: 386px !important;
}

.products-hero-refined .hero-text {
  max-width: 440px;
}

.member-hero-note {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 14px 0 0;
  color: #655c57;
  font-size: 12px;
  line-height: 1.35;
}

.member-hero-note::before {
  content: "";
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  background: url("assets/icons/icon-private-fitting-lock.svg") center / contain no-repeat;
}

.public-product-showcase {
  padding-bottom: 24px;
}

.product-category-card {
  grid-template-rows: auto auto 1fr auto;
}

.product-category-actions {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: end;
  gap: 8px 14px;
  margin: 0 22px 22px;
}

.view-range-link,
.member-price-state,
.member-price-value,
.save-for-fitting,
.member-price-note {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.view-range-link {
  color: var(--lo-plum);
  text-transform: uppercase;
}

.view-range-link::after {
  content: " ->";
}

.member-price-state,
.member-price-value {
  justify-self: end;
  color: #5f5360;
  text-align: right;
}

.member-price-state {
  position: relative;
  max-width: 150px;
  padding-left: 22px;
  text-transform: none;
}

.member-price-state::before,
.member-price-value::before {
  content: "";
  position: absolute;
  width: 15px;
  height: 15px;
  background: url("assets/icons/icon-private-fitting-lock.svg") center / contain no-repeat;
}

.member-price-state::before {
  top: 1px;
  left: 0;
}

.member-price-value {
  position: relative;
  padding-left: 22px;
  color: var(--lo-plum-dark);
}

.member-price-value::before {
  top: 1px;
  left: 0;
}

.member-price-note {
  grid-column: 2;
  justify-self: end;
  max-width: 150px;
  color: #756a65;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.25;
  text-align: right;
}

.save-for-fitting {
  justify-self: end;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--lo-plum);
  cursor: pointer;
  text-transform: uppercase;
}

.save-for-fitting.is-saved {
  color: #6a5c63;
}

.member-pricing-module,
.product-how-it-works {
  width: min(100% - 48px, 1270px);
  margin: 0 auto;
}

.member-pricing-module {
  display: grid;
  grid-template-columns: 86px minmax(260px, 1fr) minmax(340px, 0.9fr) auto;
  align-items: center;
  gap: 28px;
  padding: 28px 34px;
  border: 1px solid rgba(111, 35, 75, 0.14);
  border-radius: 18px;
  background:
    radial-gradient(circle at 5% 50%, rgba(250, 232, 235, 0.92), transparent 18%),
    rgba(255, 255, 255, 0.72);
  box-shadow: 0 16px 42px rgba(76, 20, 49, 0.055);
}

.member-pricing-module.is-active {
  border-color: rgba(111, 35, 75, 0.24);
  background:
    radial-gradient(circle at 5% 50%, rgba(250, 232, 235, 0.96), transparent 18%),
    rgba(255, 255, 255, 0.86);
}

.member-pricing-lock {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background:
    url("assets/icons/icon-private-fitting-lock.svg") center / 32px 32px no-repeat,
    #fae1e7;
}

.member-pricing-module h2 {
  margin: 0 0 8px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 27px;
  font-weight: 600;
  line-height: 1.06;
}

.member-pricing-module p {
  margin: 0;
  color: #635954;
  font-size: 13px;
  line-height: 1.45;
}

.member-pricing-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-left: 1px solid rgba(111, 35, 75, 0.14);
}

.member-pricing-steps article {
  padding: 0 24px;
}

.member-pricing-steps article + article {
  border-left: 1px solid rgba(111, 35, 75, 0.14);
}

.member-pricing-steps span {
  display: block;
  width: 28px;
  height: 28px;
  margin-bottom: 10px;
  border-radius: 50%;
  background: url("assets/icons/icon-check-circle.svg") center / 18px 18px no-repeat #fff;
}

.member-pricing-steps strong {
  display: block;
  margin-bottom: 4px;
  color: var(--lo-plum-dark);
  font-size: 12px;
}

.member-pricing-actions {
  display: grid;
  gap: 10px;
  justify-items: center;
}

.member-pricing-actions > a:not(.button) {
  color: var(--lo-plum);
  font-size: 11px;
  font-weight: 800;
  text-decoration: underline;
}

.member-pricing-module.is-active .member-pricing-actions > a:not(.button) {
  display: none;
}

.product-how-it-works {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 42px;
  padding: 38px 0 44px;
}

.product-how-it-works h2 {
  margin: 0;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 34px;
  font-weight: 600;
  line-height: 1.02;
}

.product-how-it-works ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.product-how-it-works li {
  position: relative;
  padding-top: 48px;
}

.product-how-it-works li + li::before {
  content: "";
  position: absolute;
  top: 18px;
  right: calc(50% + 24px);
  width: calc(100% - 48px);
  border-top: 1px dashed rgba(111, 35, 75, 0.28);
}

.product-how-it-works li > span {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #fae1e7;
  color: var(--lo-plum-dark);
  font-weight: 800;
}

.product-how-it-works strong {
  display: block;
  margin-bottom: 5px;
  color: var(--lo-plum-dark);
  font-size: 13px;
}

.product-how-it-works p {
  margin: 0;
  color: #655c57;
  font-size: 12px;
  line-height: 1.4;
}

.product-final-cta {
  margin-top: 0;
}

.product-card strong a {
  color: var(--lo-plum);
}

.product-card .save-for-fitting {
  display: block;
  margin-top: 10px;
  justify-self: start;
  text-align: left;
}

@media (max-width: 1080px) {
  .member-pricing-module {
    grid-template-columns: 70px 1fr;
  }

  .member-pricing-steps,
  .member-pricing-actions {
    grid-column: 1 / -1;
  }

  .product-how-it-works {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .product-how-it-works ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .member-hero-note {
    align-items: flex-start;
  }

  .product-category-actions {
    grid-template-columns: 1fr;
  }

  .member-price-state,
  .member-price-value,
  .member-price-note,
  .save-for-fitting {
    justify-self: start;
    text-align: left;
  }

  .member-price-note {
    grid-column: 1;
  }

  .member-pricing-module,
  .product-how-it-works {
    width: min(100% - 36px, 760px);
  }

  .member-pricing-module {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 24px;
  }

  .member-pricing-steps {
    grid-template-columns: 1fr;
    border-left: 0;
  }

  .member-pricing-steps article {
    padding: 16px 0;
  }

  .member-pricing-steps article + article {
    border-top: 1px solid rgba(111, 35, 75, 0.14);
    border-left: 0;
  }

  .product-how-it-works ol {
    grid-template-columns: 1fr;
  }

  .product-how-it-works li + li::before {
    display: none;
  }
}

.product-category-card[data-product-href] {
  cursor: pointer;
}

.product-category-card[data-product-href]:focus-visible {
  outline: 2px solid rgba(111, 35, 75, 0.36);
  outline-offset: 3px;
  transform: translateY(-3px);
  border-color: rgba(111, 35, 75, 0.24);
  box-shadow: 0 22px 54px rgba(76, 20, 49, 0.105);
}

.product-category-card[data-product-href]:focus-visible .product-category-media img {
  transform: scale(1.025);
}

/* final location page overrides: keep the reference layout ahead of older exported rules */
.location-reference .location-reference-hero {
  grid-template-columns: minmax(430px, 0.82fr) minmax(560px, 1.18fr);
  overflow: visible;
}

.location-reference .location-hero-map {
  position: relative;
  display: block;
  overflow: visible;
}

.location-reference .location-hero-map .hero-care-card {
  inset: auto -50px 66px auto;
  width: min(330px, 45%);
  height: auto;
  margin: 0;
}

.location-reference .location-detail-main h3,
.location-reference .location-help-panel h3 {
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 1180px) {
  .location-reference .location-reference-hero {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  main.location-reference .subpage-hero.location-reference-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
    overflow: hidden;
  }

  .location-reference .location-hero-copy,
  .location-reference .location-hero-map,
  .location-reference .location-card-section,
  .location-reference .location-section-head,
  .location-reference .location-detail-card,
  .location-reference .location-detail-main,
  .location-reference .location-detail-actions,
  .location-reference .location-help-panel {
    min-width: 0;
    max-width: 100%;
  }

  main.location-reference .subpage-hero.location-reference-hero > .location-hero-map {
    width: 100%;
    height: auto;
    min-height: 0;
    order: 2;
  }

  main.location-reference .subpage-hero.location-reference-hero > .location-hero-map img {
    width: 100%;
    height: 330px;
  }

  main.location-reference .subpage-hero.location-reference-hero > .location-hero-map .hero-care-card {
    position: relative;
    inset: auto;
    width: 100%;
    margin: -30px 0 0;
  }
}

/* products page hero: match the homepage/location media-card treatment */
section.products-hero.products-hero-refined {
  grid-template-columns: minmax(390px, 0.82fr) minmax(560px, 1.18fr);
  gap: clamp(34px, 5vw, 72px);
  min-height: 510px;
  padding: 54px clamp(30px, 6vw, 88px) 42px;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(111, 35, 75, 0.1);
  background:
    radial-gradient(circle at 82% 20%, rgba(247, 216, 222, 0.44), transparent 22%),
    linear-gradient(90deg, rgba(255, 250, 248, 0.99) 0 38%, rgba(255, 243, 240, 0.58) 62%, rgba(255, 250, 248, 0.2) 100%);
}

section.products-hero.products-hero-refined::before {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 0;
  width: min(68vw, 960px);
  background:
    linear-gradient(90deg, #fffaf8 0%, rgba(255, 250, 248, 0.72) 19%, rgba(255, 250, 248, 0.1) 48%, rgba(255, 250, 248, 0.22) 100%),
    radial-gradient(circle at 74% 18%, rgba(255, 231, 235, 0.34), transparent 30%);
  pointer-events: none;
}

section.products-hero.products-hero-refined > div {
  position: relative;
  z-index: 2;
  max-width: 560px;
}

section.products-hero.products-hero-refined h1 {
  max-width: 560px;
  font-size: clamp(48px, 4.5vw, 68px);
  line-height: 0.98;
}

.products-hero-media {
  position: absolute;
  inset: -34px -34px -34px auto;
  z-index: 1;
  width: min(72vw, 1010px);
  height: calc(100% + 68px);
  margin: 0;
  overflow: hidden;
  border-radius: 0;
}

section.products-hero.products-hero-refined .products-hero-media img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  object-position: 54% 48%;
  transform: scale(1.08);
  mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.12) 9%, rgba(0, 0, 0, 0.62) 22%, #000 42%, #000 100%),
    linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.54) 8%, #000 18%, #000 78%, rgba(0, 0, 0, 0.54) 90%, transparent 100%);
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.12) 9%, rgba(0, 0, 0, 0.62) 22%, #000 42%, #000 100%),
    linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.54) 8%, #000 18%, #000 78%, rgba(0, 0, 0, 0.54) 90%, transparent 100%);
  box-shadow: none;
  filter: saturate(1.04) contrast(1.01) brightness(1.02);
}

.products-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255, 250, 248, 0.92) 0%, rgba(255, 250, 248, 0.42) 18%, rgba(255, 250, 248, 0.04) 45%, rgba(255, 250, 248, 0.16) 100%),
    linear-gradient(180deg, rgba(255, 250, 248, 0.86) 0%, rgba(255, 250, 248, 0.2) 13%, transparent 34%, transparent 68%, rgba(255, 250, 248, 0.56) 100%);
  pointer-events: none;
}

.products-hero-card {
  position: absolute;
  right: clamp(48px, 6vw, 104px);
  bottom: 70px;
  z-index: 2;
  display: grid;
  gap: 8px;
  width: min(330px, 42%);
  padding: 28px 30px;
  border: 1px solid rgba(111, 35, 75, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 22px 54px rgba(111, 35, 75, 0.1);
  backdrop-filter: blur(12px);
  color: #33252d;
}

.products-hero-card span {
  color: var(--lo-plum);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.products-hero-card strong {
  font-size: 15px;
  line-height: 1.45;
}

@media (max-width: 980px) {
  section.products-hero.products-hero-refined {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .products-hero-media {
    position: relative;
    inset: auto;
    width: 100%;
    height: 360px;
    margin-top: 22px;
    border-radius: 18px;
  }

  section.products-hero.products-hero-refined .products-hero-media img {
    transform: scale(1.03);
  }

  .products-hero-card {
    right: 18px;
    bottom: 24px;
  }
}

@media (max-width: 680px) {
  section.products-hero.products-hero-refined {
    padding-right: 24px;
    padding-left: 24px;
  }

  section.products-hero.products-hero-refined h1 {
    font-size: 42px;
  }

  .products-hero-media {
    height: 300px;
  }

  section.products-hero.products-hero-refined .products-hero-media img {
    height: 300px;
    mask-image: linear-gradient(180deg, #000 0 82%, rgba(0, 0, 0, 0.72) 100%);
    -webkit-mask-image: linear-gradient(180deg, #000 0 82%, rgba(0, 0, 0, 0.72) 100%);
  }

  .products-hero-card {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    margin-top: -28px;
  }
}

/* locations premium visit-page refinement */
main.location-reference .subpage-hero.location-reference-hero {
  background:
    radial-gradient(circle at 78% 14%, rgba(244, 219, 222, 0.42), transparent 27%),
    linear-gradient(180deg, #fffaf8 0%, #fff6f3 100%);
}

main.location-reference .location-hero-map {
  border-radius: 18px;
}

main.location-reference .location-hero-map img {
  border-radius: 18px;
  object-position: 50% 48%;
  filter: saturate(0.88) contrast(0.96) sepia(0.05);
  box-shadow: 0 22px 58px rgba(111, 35, 75, 0.085);
}

main.location-reference .location-hero-map .hero-care-card {
  gap: 18px;
  width: min(304px, 42%);
  padding: 30px 28px;
  border-color: rgba(255, 255, 255, 0.72);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 44px rgba(86, 42, 58, 0.085);
  backdrop-filter: blur(18px) saturate(1.08);
}

main.location-reference .care-row {
  grid-template-columns: 24px 1fr;
  gap: 14px;
  font-size: 13px;
  line-height: 1.42;
}

main.location-reference .care-row .location-icon {
  width: 19px;
  height: 19px;
  opacity: 0.78;
}

main.location-reference .care-row strong {
  margin-bottom: 3px;
  font-size: 14px;
}

main.location-reference .location-trust-card {
  border-color: rgba(111, 35, 75, 0.065);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 14px 34px rgba(111, 35, 75, 0.055);
  backdrop-filter: blur(10px);
}

main.location-reference .button.secondary {
  border-color: rgba(111, 35, 75, 0.18);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(255, 247, 246, 0.74));
  color: #7a2450;
  box-shadow: 0 12px 30px rgba(111, 35, 75, 0.055);
}

main.location-reference .hero-actions .button.secondary {
  border-color: rgba(111, 35, 75, 0.24);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 240, 241, 0.76));
}

main.location-reference .location-card-section {
  background:
    linear-gradient(180deg, rgba(255, 247, 245, 0.94) 0%, #fffaf8 42%, rgba(255, 247, 245, 0.88) 100%);
}

main.location-reference .location-detail-card {
  border-color: rgba(111, 35, 75, 0.06);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 16px 42px rgba(111, 35, 75, 0.045);
}

main.location-reference .location-detail-card:first-child {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.92), rgba(255, 250, 249, 0.9));
}

main.location-reference .location-detail-card .map-preview-img {
  border: 1px solid rgba(111, 35, 75, 0.055);
  background: #f7efe7;
  filter: saturate(0.72) contrast(0.9) sepia(0.12) opacity(0.9);
}

main.location-reference .location-profile-title {
  margin: -12px 0 -2px;
  padding-left: 0;
  color: #8a3158;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

main.location-reference .location-profile-title::before {
  display: none;
}

main.location-reference .location-tags span {
  min-height: 34px;
  border: 1px solid rgba(111, 35, 75, 0.045);
  background: rgba(255, 241, 241, 0.72);
  color: #6b394f;
  font-size: 12px;
}

main.location-reference .location-detail-actions .button.primary,
main.location-reference .location-help-panel .button.primary {
  box-shadow: 0 14px 32px rgba(111, 35, 75, 0.13);
}

main.location-reference .location-help-panel {
  background:
    radial-gradient(circle at 7% 48%, rgba(255, 255, 255, 0.92), transparent 21%),
    linear-gradient(90deg, rgba(255, 242, 243, 0.86) 0%, rgba(255, 231, 233, 0.72) 100%);
  box-shadow: 0 18px 42px rgba(111, 35, 75, 0.055);
}

@media (max-width: 1180px) {
  main.location-reference .location-hero-map .hero-care-card {
    width: min(320px, calc(100% - 48px));
  }
}

@media (max-width: 760px) {
  main.location-reference .location-hero-map .hero-care-card {
    width: 100%;
    padding: 26px 24px;
  }
}

@media (max-width: 1080px) {
  .subpage-main.template-process .template-hero.nz-specialty-hero {
    grid-template-columns: 1fr;
    width: min(100% - 36px, 760px);
    min-height: 0 !important;
    padding: 30px 28px 0;
  }

  .subpage-main.template-process .template-hero.nz-specialty-hero > div {
    max-width: 520px;
  }

  .subpage-main.template-process .template-hero.nz-specialty-hero > img {
    position: relative;
    inset: auto;
    width: calc(100% + 56px);
    height: clamp(230px, 36vw, 320px);
    margin: 8px -28px 0;
    object-position: 65% 50%;
    mask-image: linear-gradient(180deg, #000 0 76%, transparent 100%) !important;
  }

  .subpage-main.template-process .template-hero.nz-specialty-hero::after {
    background: linear-gradient(180deg, rgba(255, 250, 248, 0.96) 0 52%, rgba(255, 250, 248, 0.2) 74%, transparent 100%);
  }
}

@media (max-width: 680px) {
  .subpage-main.template-process .template-hero.nz-specialty-hero {
    padding: 26px 22px 0;
  }

  .subpage-main.template-process .template-hero.nz-specialty-hero > img {
    width: calc(100% + 44px);
    height: 220px;
    margin-right: -22px;
    margin-left: -22px;
  }
}

/* menu41: product listing pages */
.product-listing-page .product-filter-panel {
  min-width: 0;
}

@media (max-width: 1080px) {
  .product-card-grid.product-list-grid.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Care Account experience */
.care-auth-page,
.care-body {
  background:
    linear-gradient(135deg, rgba(255, 253, 250, 0.94), rgba(250, 241, 235, 0.9)),
    radial-gradient(circle at 12% 20%, rgba(226, 186, 178, 0.22), transparent 28%);
}

.care-login-shell {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 0.7fr);
  gap: clamp(28px, 6vw, 88px);
  align-items: center;
  width: min(100% - 32px, 1180px);
  min-height: calc(100svh - 78px);
  margin: 0 auto;
  padding: clamp(34px, 7vw, 86px) 0;
}

.care-benefit-card,
.care-login-card,
.care-card,
.saved-style-card,
.history-list article,
.care-help-strip {
  border: 1px solid rgba(198, 171, 144, 0.46);
  border-radius: 8px;
  background: rgba(255, 253, 250, 0.82);
  box-shadow: 0 18px 48px rgba(76, 20, 49, 0.08);
}

.care-benefit-card {
  min-height: 560px;
  padding: clamp(30px, 5vw, 62px);
  background:
    linear-gradient(90deg, rgba(255, 253, 250, 0.92) 0 54%, rgba(255, 253, 250, 0.45)),
    url("assets/editorial-consultation.png") right center / cover no-repeat;
}

.care-benefit-card h1,
.care-login-card h2,
.care-main h1,
.care-card h2,
.saved-style-card h2,
.history-list h2,
.admin-form h2,
.admin-soon-list h2 {
  margin: 0;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.04;
}

.care-benefit-card h1 {
  max-width: 520px;
  font-size: clamp(46px, 6vw, 82px);
}

.care-benefit-card p {
  max-width: 430px;
  color: #5f5751;
}

.care-benefits {
  display: grid;
  gap: 16px;
  margin: 34px 0;
  padding: 0;
  list-style: none;
}

.care-benefits li {
  display: flex;
  align-items: center;
  gap: 13px;
  color: #3b302f;
  font-size: 14px;
  font-weight: 650;
}

.care-benefits span,
.care-icon {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #f4dfe0;
  color: #bb6a70;
  font-size: 17px;
}

.care-privacy-note {
  margin-top: 52px;
  padding-left: 48px;
  font-size: 13px;
}

.care-login-card {
  display: grid;
  gap: 18px;
  padding: clamp(28px, 4vw, 44px);
  background: rgba(255, 253, 250, 0.94);
}

.care-login-card h2 {
  font-size: 34px;
}

.care-login-card label,
.allowance-editor label,
.admin-form label {
  display: grid;
  gap: 8px;
  color: #564e49;
  font-size: 12px;
  font-weight: 750;
}

.care-login-card input,
.allowance-editor input,
.allowance-editor select,
.admin-form input,
.admin-form select,
.admin-form textarea {
  width: 100%;
  min-height: 44px;
  padding: 11px 13px;
  border: 1px solid rgba(198, 171, 144, 0.58);
  border-radius: 6px;
  background: #fffdf9;
  color: #281e1d;
  font: inherit;
}

.admin-form textarea {
  min-height: 82px;
  resize: vertical;
}

.care-form-row,
.care-actions,
.care-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.care-check {
  display: inline-flex !important;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 8px !important;
  font-weight: 500 !important;
}

.care-check input {
  width: 15px;
  min-height: 15px;
}

.care-form-row a,
.text-link,
.care-actions > a:not(.button),
.care-help-strip a {
  color: #7d3d48;
  font-size: 13px;
  font-weight: 750;
}

.care-divider {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 12px;
  align-items: center;
  color: #786f68;
  font-size: 12px;
}

.care-divider::before,
.care-divider::after {
  content: "";
  height: 1px;
  background: rgba(198, 171, 144, 0.44);
}

.care-app {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  width: min(100% - 32px, 1480px);
  min-height: calc(100svh - 32px);
  margin: 16px auto;
  overflow: hidden;
  border: 1px solid rgba(198, 171, 144, 0.46);
  border-radius: 8px;
  background: rgba(255, 253, 250, 0.68);
}

.care-sidebar {
  padding: 28px 20px;
  border-right: 1px solid rgba(198, 171, 144, 0.38);
  background: rgba(255, 250, 246, 0.8);
}

.care-side-brand {
  display: grid;
  gap: 6px;
  margin-bottom: 30px;
}

.care-side-brand .brand-mark {
  border-color: #d98f95;
  color: #bd7178;
}

.care-side-brand strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 27px;
  line-height: 1;
}

.care-side-brand em {
  color: #8a8079;
  font-size: 10px;
  font-style: normal;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.care-sidebar nav {
  display: grid;
  gap: 8px;
}

.care-sidebar nav a {
  padding: 12px 14px;
  border-radius: 7px;
  color: #4b4340;
  font-size: 13px;
  font-weight: 650;
}

.care-sidebar nav a.is-active,
.care-sidebar nav a:hover {
  background: #f8e6e6;
  color: #7d3d48;
}

.care-main {
  min-width: 0;
  padding: clamp(24px, 4vw, 48px);
}

.care-topbar {
  margin-bottom: 28px;
}

.care-topbar h1 {
  font-size: clamp(40px, 4vw, 64px);
}

.care-topbar p:not(.eyebrow) {
  margin: 6px 0 0;
  color: #6d625c;
}

.care-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.9fr);
  gap: 20px;
}

.care-card {
  padding: 24px;
}

.care-card-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}

.care-card h2 {
  font-size: 28px;
}

.allowance-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 20px 0;
}

.allowance-metrics div,
.history-preview div {
  display: grid;
  gap: 5px;
}

.allowance-metrics span,
.history-preview span,
.care-small,
.care-disclaimer,
.saved-style-card p,
.history-list p,
.history-list li,
.care-help-strip,
.admin-soon-list span {
  color: #6d625c;
  font-size: 13px;
}

.allowance-metrics strong,
.history-preview strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 24px;
  font-weight: 600;
}

.status-pill {
  display: inline-flex;
  width: fit-content;
  margin: 4px 0 14px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #f8ead4;
  color: #936018;
  font-size: 13px;
  font-weight: 750;
}

.status-pill.is-available,
.allowance-table em.is-available,
.admin-soon-list b.is-available {
  background: #e8f0e5;
  color: #4f765a;
}

.status-pill.is-missing,
.allowance-table em.is-missing,
.admin-soon-list b.is-missing {
  background: #f1e7e3;
  color: #8b554b;
}

.saved-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  align-items: center;
}

.saved-strip img,
.history-preview img {
  width: 100%;
  height: 72px;
  border-radius: 7px;
  object-fit: cover;
  background: #f7eee7;
}

.saved-strip strong {
  display: grid;
  place-items: center;
  height: 72px;
  border-radius: 50%;
  background: #f5e8e5;
  color: #2a1e1e;
  font-size: 22px;
}

.saved-strip strong span {
  font-size: 10px;
}

.history-preview {
  position: relative;
  min-height: 190px;
}

.history-preview img {
  position: absolute;
  right: 24px;
  bottom: 24px;
  width: 150px;
  height: 98px;
}

.next-step-card {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(130px, 0.55fr);
  gap: 18px;
  overflow: hidden;
}

.next-step-card img {
  width: 100%;
  height: 100%;
  min-height: 190px;
  border-radius: 7px;
  object-fit: cover;
}

.allowance-editor {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

.allowance-editor output {
  grid-column: 1 / -1;
  padding: 13px 14px;
  border-radius: 7px;
  background: #f8ead4;
  color: #6f4616;
  font-weight: 750;
}

.allowance-table {
  display: grid;
  gap: 0;
}

.allowance-table article,
.admin-soon-list article {
  display: grid;
  grid-template-columns: 74px 1fr 1.1fr 0.85fr 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid rgba(198, 171, 144, 0.34);
}

.allowance-table article:last-child,
.admin-soon-list article:last-child {
  border-bottom: 0;
}

.allowance-table img {
  width: 74px;
  height: 74px;
  border-radius: 7px;
  object-fit: cover;
}

.allowance-table em,
.admin-soon-list b {
  justify-self: end;
  padding: 7px 11px;
  border-radius: 999px;
  background: #f8ead4;
  color: #936018;
  font-size: 12px;
  font-style: normal;
  font-weight: 750;
}

.care-disclaimer {
  margin: 18px 0 0;
}

.saved-style-list,
.history-list,
.admin-form,
.admin-soon-list,
.admin-invite-card,
.admin-invite-form,
.admin-invite-list {
  display: grid;
  gap: 14px;
}

.saved-style-card {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  padding: 18px;
}

.saved-style-card img {
  width: 108px;
  height: 92px;
  border-radius: 7px;
  object-fit: cover;
}

.saved-style-card h2,
.history-list h2 {
  font-size: 25px;
}

.saved-style-card > div:last-child {
  display: grid;
  gap: 10px;
  justify-items: end;
}

.saved-style-card button {
  border: 0;
  background: transparent;
  color: #4f4742;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.care-help-strip {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-top: 20px;
  padding: 18px 22px;
}

.history-list article {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr) minmax(180px, 0.8fr) auto;
  gap: 22px;
  align-items: start;
  padding: 22px;
}

.history-list time {
  display: grid;
  justify-items: center;
  color: #6d625c;
  font-size: 12px;
}

.history-list time strong {
  color: #2a1e1e;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 34px;
  line-height: 0.9;
}

.history-list ul {
  margin: 0;
  padding-left: 18px;
}

.history-list article > div:last-child {
  display: grid;
  gap: 10px;
}

.admin-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(360px, 0.8fr);
  gap: 20px;
  align-items: start;
}

.admin-console-topbar {
  align-items: flex-start;
}

.admin-console-app {
  grid-template-columns: 240px minmax(0, 1fr);
  max-width: 1540px;
  background: rgba(255, 253, 250, 0.78);
}

.admin-console-sidebar {
  position: sticky;
  top: 16px;
  align-self: start;
  min-height: calc(100svh - 32px);
  background:
    linear-gradient(180deg, rgba(255, 250, 247, 0.94), rgba(255, 246, 243, 0.8));
}

.admin-console-sidebar .care-side-brand {
  margin-bottom: 24px;
}

.admin-console-sidebar nav {
  gap: 6px;
}

.admin-console-sidebar nav a {
  display: flex;
  align-items: center;
  min-height: 40px;
  border: 1px solid transparent;
}

.admin-console-sidebar nav a[href^="#"]::before {
  content: "";
  width: 7px;
  height: 7px;
  margin-right: 9px;
  border-radius: 50%;
  background: rgba(111, 35, 75, 0.28);
}

.admin-console-sidebar nav a.is-active,
.admin-console-sidebar nav a:hover {
  border-color: rgba(111, 35, 75, 0.08);
}

.admin-section-label {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.56fr);
  gap: 20px;
  align-items: end;
  padding: 18px 2px 4px;
  border-bottom: 1px solid rgba(198, 171, 144, 0.34);
  scroll-margin-top: 28px;
}

.admin-section-label h2 {
  margin: 2px 0 0;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(30px, 3vw, 44px);
  font-weight: 600;
  line-height: 1.02;
}

.admin-section-label span {
  color: #6d625c;
  font-size: 13px;
  line-height: 1.45;
}

.admin-stats-grid,
.admin-console-grid {
  display: grid;
  gap: 18px;
}

.admin-stats-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 20px;
}

.admin-stats-grid article {
  padding: 18px 20px;
  border: 1px solid rgba(198, 171, 144, 0.42);
  border-radius: 12px;
  background: rgba(255, 253, 250, 0.78);
  box-shadow: 0 14px 34px rgba(76, 20, 49, 0.055);
}

.admin-stats-grid span,
.admin-stats-grid em {
  display: block;
  color: #6d625c;
  font-size: 12px;
  font-style: normal;
  font-weight: 750;
}

.admin-stats-grid strong {
  display: block;
  margin: 6px 0 2px;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 42px;
  line-height: 0.95;
}

.admin-console-grid {
  grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1.08fr);
  align-items: start;
}

.admin-access-card,
.admin-member-panel,
.admin-media-card,
.admin-banner-card,
.admin-invite-card {
  grid-column: 1 / -1;
}

.admin-current-role {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 10px;
  background: #fff8f5;
}

.admin-current-role span,
.admin-current-role em {
  color: #6d625c;
  font-size: 13px;
  font-style: normal;
}

.admin-current-role strong {
  padding: 7px 12px;
  border-radius: 999px;
  background: #7d3d48;
  color: #fffdf9;
  font-size: 12px;
}

.admin-staff-form {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr) 180px auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 18px;
}

.admin-staff-form label {
  display: grid;
  gap: 8px;
  color: #564e49;
  font-size: 12px;
  font-weight: 750;
}

.admin-staff-form input,
.admin-staff-form select {
  width: 100%;
  min-height: 44px;
  padding: 11px 13px;
  border: 1px solid rgba(198, 171, 144, 0.58);
  border-radius: 6px;
  background: #fffdf9;
  color: #281e1d;
  font: inherit;
}

.admin-role-ladder {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.admin-role-ladder article {
  min-height: 118px;
  padding: 14px;
  border: 1px solid rgba(198, 171, 144, 0.34);
  border-radius: 10px;
  background: rgba(255, 253, 250, 0.7);
}

.admin-role-ladder strong,
.admin-role-ladder span {
  display: block;
}

.admin-role-ladder strong {
  color: #25161d;
  font-size: 14px;
}

.admin-role-ladder span {
  margin-top: 8px;
  color: #6d625c;
  font-size: 12px;
  line-height: 1.45;
}

.admin-staff-list {
  display: grid;
  gap: 10px;
}

.admin-staff-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid rgba(198, 171, 144, 0.34);
  border-radius: 10px;
  background: rgba(255, 253, 250, 0.74);
}

.admin-staff-row strong,
.admin-staff-row span {
  display: block;
}

.admin-staff-row span,
.admin-staff-row em {
  color: #6d625c;
  font-size: 12px;
  font-style: normal;
}

.admin-staff-row b {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f1e7e3;
  color: #8b554b;
  font-size: 12px;
}

.admin-staff-row b.is-owner,
.admin-staff-row b.is-admin {
  background: #eadfe6;
  color: #6f234b;
}

.admin-staff-row b.is-manager {
  background: #e8f0e5;
  color: #4f765a;
}

.admin-staff-row b.is-staff {
  background: #f8ead4;
  color: #936018;
}

.admin-staff-row b.is-viewer {
  background: #f1e7e3;
  color: #8b554b;
}

.admin-member-tools {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: 12px;
  margin-bottom: 6px;
}

.admin-member-tools label,
.admin-record-form label,
.admin-claim-form label,
.admin-media-controls label,
.admin-banner-form label,
.admin-invite-form label {
  display: grid;
  gap: 8px;
  color: #564e49;
  font-size: 12px;
  font-weight: 750;
}

.admin-member-tools input,
.admin-member-tools select,
.admin-record-form input,
.admin-record-form select,
.admin-record-form textarea,
.admin-claim-form input,
.admin-claim-form select,
.admin-claim-form textarea,
.admin-media-controls input,
.admin-media-controls select,
.admin-banner-form input,
.admin-banner-form textarea {
  width: 100%;
  min-height: 44px;
  padding: 11px 13px;
  border: 1px solid rgba(198, 171, 144, 0.58);
  border-radius: 6px;
  background: #fffdf9;
  color: #281e1d;
  font: inherit;
}

.admin-record-form textarea,
.admin-claim-form textarea,
.admin-banner-form textarea {
  min-height: 86px;
  resize: vertical;
}

.admin-member-list {
  display: grid;
  gap: 10px;
}

.admin-member-row {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) auto minmax(170px, auto);
  gap: 14px;
  align-items: center;
  width: 100%;
  padding: 14px 16px;
  border: 1px solid rgba(198, 171, 144, 0.38);
  border-radius: 10px;
  background: rgba(255, 253, 250, 0.72);
  color: #352a2c;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.admin-member-row.is-selected {
  border-color: rgba(111, 35, 75, 0.28);
  background: #fff7f5;
  box-shadow: inset 3px 0 0 var(--lo-plum);
}

.admin-member-row strong,
.admin-member-row em {
  display: block;
}

.admin-member-row em,
.admin-member-row small {
  color: #6d625c;
  font-size: 12px;
  font-style: normal;
}

.admin-member-row b {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f1e7e3;
  color: #8b554b;
  font-size: 12px;
  text-transform: capitalize;
}

.admin-member-row b.is-active {
  background: #e8f0e5;
  color: #4f765a;
}

.admin-member-row b.is-invited {
  background: #f8ead4;
  color: #936018;
}

.admin-record-form,
.admin-claim-form,
.admin-banner-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.admin-full-field,
.admin-record-form button,
.admin-claim-form output,
.admin-claim-form button,
.admin-banner-form button {
  grid-column: 1 / -1;
}

.admin-claim-form output {
  padding: 13px 14px;
  border-radius: 8px;
  background: #f8ead4;
  color: #6f4616;
  font-weight: 750;
}

.admin-health-list {
  display: grid;
  gap: 12px;
}

.admin-health-list article {
  padding: 14px 16px;
  border: 1px solid rgba(198, 171, 144, 0.34);
  border-radius: 10px;
  background: rgba(255, 248, 245, 0.64);
}

.admin-health-list strong,
.admin-health-list span,
.admin-health-list em {
  display: block;
}

.admin-health-list span {
  margin-top: 4px;
  color: #7d3d48;
  font-size: 13px;
  font-weight: 800;
}

.admin-health-list em {
  margin-top: 4px;
  color: #6d625c;
  font-size: 13px;
  font-style: normal;
}

.admin-form h2,
.admin-soon-list h2,
.admin-invite-card h2 {
  font-size: 30px;
}

.admin-invite-form {
  grid-template-columns: repeat(4, minmax(150px, 1fr)) auto;
  align-items: end;
}

.admin-invite-form label {
  display: grid;
  gap: 8px;
  color: #564e49;
  font-size: 12px;
  font-weight: 750;
}

.admin-invite-form input,
.admin-invite-form select {
  width: 100%;
  min-height: 44px;
  padding: 11px 13px;
  border: 1px solid rgba(198, 171, 144, 0.58);
  border-radius: 6px;
  background: #fffdf9;
  color: #281e1d;
  font: inherit;
}

.admin-invite-output {
  min-height: 0;
  color: #7d3d48;
  font-size: 13px;
  font-weight: 800;
}

.admin-invite-list {
  gap: 0;
  border-top: 1px solid rgba(198, 171, 144, 0.34);
}

.admin-invite-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(150px, auto) minmax(120px, auto) auto;
  gap: 16px;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid rgba(198, 171, 144, 0.34);
}

.admin-invite-row strong,
.admin-invite-row span {
  display: block;
}

.admin-invite-row span,
.admin-invite-row em {
  color: #6d625c;
  font-size: 13px;
  font-style: normal;
}

.admin-invite-row code {
  width: fit-content;
  padding: 8px 10px;
  border: 1px solid rgba(111, 35, 75, 0.14);
  border-radius: 8px;
  background: #fff8f5;
  color: #7d3d48;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.admin-invite-row b {
  justify-self: end;
  padding: 7px 11px;
  border-radius: 999px;
  background: #f8ead4;
  color: #936018;
  font-size: 12px;
  font-style: normal;
  font-weight: 750;
  text-transform: capitalize;
}

.admin-invite-row b.is-active {
  background: #e8f0e5;
  color: #4f765a;
}

.admin-invite-row b.is-used,
.admin-invite-row b.is-expired {
  background: #f1e7e3;
  color: #8b554b;
}

@media (max-width: 980px) {
  .admin-stats-grid,
  .admin-console-grid,
  .admin-media-layout,
  .admin-role-ladder {
    grid-template-columns: 1fr;
  }

  .admin-member-tools,
  .admin-staff-form,
  .admin-staff-row,
  .admin-record-form,
  .admin-claim-form,
  .admin-banner-form,
  .admin-member-row {
    grid-template-columns: 1fr;
  }

  .admin-invite-form,
  .admin-invite-row {
    grid-template-columns: 1fr;
  }

  .admin-invite-row b {
    justify-self: start;
  }
}

.admin-soon-list article {
  grid-template-columns: 1fr 1fr auto auto;
}

.admin-media-layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.95fr) minmax(280px, 1fr);
  gap: 20px;
  align-items: start;
}

.admin-image-preview {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 11;
  overflow: hidden;
  border: 1px dashed rgba(111, 35, 75, 0.22);
  border-radius: 14px;
  background: #fff8f5;
}

.admin-image-preview.is-dragging {
  border-color: rgba(111, 35, 75, 0.6);
  background: #f8e6e6;
}

.admin-image-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 120ms ease, object-position 120ms ease;
}

.admin-media-controls {
  display: grid;
  gap: 14px;
}

.admin-media-controls input[type="range"] {
  padding-inline: 0;
}

.admin-banner-preview {
  min-height: 230px;
  margin-bottom: 16px;
  padding: clamp(28px, 4vw, 46px);
  border: 1px solid rgba(198, 171, 144, 0.44);
  border-radius: 16px;
  background:
    linear-gradient(90deg, rgba(255, 253, 250, 0.92), rgba(255, 253, 250, 0.56)),
    url("assets/photo-soft-bra-flower.png") center / cover no-repeat;
  box-shadow: 0 16px 38px rgba(76, 20, 49, 0.07);
}

.admin-banner-preview h3 {
  max-width: 560px;
  margin: 10px 0 12px;
  color: #25161d;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(34px, 3.2vw, 52px);
  font-weight: 600;
  line-height: 1.02;
}

.admin-banner-preview p:not(.eyebrow) {
  max-width: 480px;
  color: #5f5751;
}

.appointment-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  gap: 20px;
  align-items: start;
}

.appointment-member-card dl {
  display: grid;
  gap: 14px;
  margin: 0 0 22px;
}

.appointment-member-card dl div {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(198, 171, 144, 0.34);
}

.appointment-member-card dt,
.appointment-member-card dd {
  margin: 0;
}

.appointment-member-card dt,
.next-appointment-card p,
.appointment-preferences li,
.appointment-prep-card li {
  color: #6d625c;
  font-size: 13px;
}

.appointment-member-card dd {
  color: #2a1e1e;
  font-size: 14px;
  font-weight: 700;
}

.appointment-date-block {
  display: inline-grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: center;
  margin-bottom: 14px;
  padding: 14px 18px;
  border-radius: 8px;
  background: #f8ead4;
  color: #6f4616;
}

.appointment-date-block strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 46px;
  line-height: 0.9;
}

.appointment-preferences ul,
.appointment-prep-card ul {
  display: grid;
  gap: 12px;
  margin: 0;
  padding-left: 18px;
}

.appointment-request-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.appointment-request-form > div,
.appointment-notes-field,
.appointment-request-form button {
  grid-column: 1 / -1;
}

.appointment-request-form h2 {
  font-size: 30px;
}

.appointment-request-form label {
  display: grid;
  gap: 8px;
  color: #564e49;
  font-size: 12px;
  font-weight: 750;
}

.appointment-request-form input,
.appointment-request-form select,
.appointment-request-form textarea {
  width: 100%;
  min-height: 44px;
  padding: 11px 13px;
  border: 1px solid rgba(198, 171, 144, 0.58);
  border-radius: 6px;
  background: #fffdf9;
  color: #281e1d;
  font: inherit;
}

.appointment-request-form textarea {
  min-height: 110px;
  resize: vertical;
}

.save-for-fitting {
  border-radius: 6px;
}

.product-card .save-for-fitting,
.product-category-card .save-for-fitting {
  width: fit-content;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid #d98f95;
  background: #fff8f7;
  color: #7d3d48;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

@media (max-width: 1080px) {
  .care-login-shell,
  .care-app,
  .care-dashboard-grid,
  .admin-grid,
  .appointment-grid {
    grid-template-columns: 1fr;
  }

  .care-app {
    width: min(100% - 20px, 780px);
  }

  .care-sidebar {
    border-right: 0;
    border-bottom: 1px solid rgba(198, 171, 144, 0.38);
  }

  .care-sidebar nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .allowance-editor,
  .allowance-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .allowance-table article,
  .history-list article,
  .saved-style-card,
  .admin-soon-list article,
  .appointment-request-form {
    grid-template-columns: 1fr;
  }

  .allowance-table em,
  .admin-soon-list b,
  .saved-style-card > div:last-child {
    justify-self: start;
    justify-items: start;
  }
}

@media (max-width: 680px) {
  .care-login-shell {
    width: min(100% - 20px, 560px);
    padding: 20px 0 34px;
  }

  .care-benefit-card {
    min-height: 0;
    padding: 28px;
    background:
      linear-gradient(180deg, rgba(255, 253, 250, 0.96), rgba(255, 253, 250, 0.78)),
      url("assets/editorial-consultation.png") center / cover no-repeat;
  }

  .care-benefit-card h1 {
    font-size: 43px;
  }

  .care-form-row,
  .care-topbar,
  .care-help-strip {
    align-items: flex-start;
    flex-direction: column;
  }

  .care-main {
    padding: 20px;
  }

  .care-sidebar nav,
  .allowance-editor,
  .allowance-metrics,
  .next-step-card,
  .saved-strip {
    grid-template-columns: 1fr;
  }

  .history-preview img {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    margin-top: 14px;
  }
}

@media (max-width: 680px) {
  .product-card-grid.product-list-grid.compact {
    grid-template-columns: 1fr;
  }

  .catalogue-head,
  .listing-status {
    display: grid;
  }

  .sort-control {
    min-width: 0;
  }
}

/* menu48: premium fitting-led product range entrance */
.public-product-showcase {
  padding-top: clamp(18px, 2.6vw, 34px);
}

.public-product-showcase .section-intro {
  display: grid;
  gap: 8px;
  max-width: 820px;
  margin-bottom: 18px;
}

.public-product-showcase .section-intro h2 {
  margin-bottom: 0;
}

.product-grid-transition,
.product-grid-note {
  max-width: 620px;
  margin: 0;
  color: #655c57;
  font-size: 14px;
  line-height: 1.55;
}

.product-grid-note {
  margin-top: 18px;
  color: #7a626c;
  font-size: 13px;
}

.product-category-card {
  min-height: 360px;
  border-color: rgba(111, 35, 75, 0.11);
  border-radius: 16px;
}

.product-category-media {
  min-height: 232px;
}

.product-category-media img {
  height: 232px;
  filter: saturate(0.98) contrast(1.01) brightness(1.02);
}

.product-category-media > span {
  padding: 8px 12px;
  border-color: rgba(111, 35, 75, 0.18);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 8px 20px rgba(76, 20, 49, 0.08);
  color: var(--lo-plum);
  letter-spacing: 0.13em;
}

.product-category-actions {
  grid-template-columns: max-content max-content;
  justify-content: space-between;
  align-items: center;
  min-height: 30px;
}

.member-price-state,
.save-for-fitting {
  justify-self: end;
  text-align: right;
}

.product-category-card .save-for-fitting {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: var(--lo-plum);
}

.member-price-note,
.member-price-value {
  display: none !important;
}

/* menu48: responsive fitting for the real Leila O'Toole product photo library. */
.product-category-media {
  background:
    radial-gradient(circle at 50% 20%, rgba(255, 255, 255, 0.92), rgba(251, 239, 239, 0.72) 58%, rgba(244, 226, 229, 0.86));
}

.product-category-media img[src*="leila-products"],
.product-card img[src*="leila-products"] {
  object-fit: contain !important;
  object-position: center !important;
  mix-blend-mode: multiply;
  background:
    radial-gradient(circle at 50% 36%, rgba(255, 255, 255, 0.92), rgba(250, 238, 236, 0.8) 60%, rgba(242, 224, 226, 0.84));
}

.product-category-media img[src*="leila-products"] {
  padding: 16px 18px 20px;
}

.product-card img[src*="leila-products"] {
  height: 238px;
  padding: 16px;
  filter: saturate(0.99) contrast(1.01);
}

.product-list-grid .product-card img[src*="leila-products"],
.product-card-grid.product-list-grid.compact .product-card img[src*="leila-products"] {
  height: 226px;
}

.swim-product-page .product-card img[src*="leila-products"] {
  height: 268px;
  padding: 12px;
}

.swim-product-page .product-card img[src*="leila-swim-products"] {
  height: 286px;
  padding: 14px;
  object-fit: contain !important;
  object-position: center !important;
  background:
    radial-gradient(circle at 50% 38%, rgba(255, 255, 255, 0.98), rgba(250, 241, 236, 0.9) 62%, rgba(241, 226, 220, 0.9));
  filter: saturate(0.98) contrast(1.01);
}

.subpage-main .template-hero > img[src*="leila-products"],
.subpage-main .template-hero .hero-slider img[src*="leila-products"] {
  object-fit: cover !important;
  object-position: center !important;
  padding: 0;
  background: transparent;
  mix-blend-mode: normal;
}

.subpage-main.template-browse .template-hero.swim-product-hero .hero-slider img[src*="leila-products"] {
  object-fit: cover !important;
  object-position: center 38% !important;
  padding: clamp(12px, 2vw, 26px);
  mix-blend-mode: normal;
}

.subpage-main.template-browse .template-hero.swim-product-hero .hero-slider img[src*="sunflaircaribbean"] {
  padding: 0;
}

@media (max-width: 900px) {
  .product-card img[src*="leila-products"],
  .product-list-grid .product-card img[src*="leila-products"],
  .product-card-grid.product-list-grid.compact .product-card img[src*="leila-products"],
  .swim-product-page .product-card img[src*="leila-products"],
  .swim-product-page .product-card img[src*="leila-swim-products"] {
    height: 220px;
  }
}

.product-fitting-strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  width: min(1270px, calc(100% - 88px));
  min-height: 72px;
  margin: 0 auto 26px;
  padding: 16px 24px;
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 14px 34px rgba(76, 20, 49, 0.055);
}

.product-fitting-strip p {
  margin: 0;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 24px;
  line-height: 1.15;
}

.product-fitting-strip a {
  flex: 0 0 auto;
  color: var(--lo-plum);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  .product-fitting-strip {
    width: min(100% - 44px, 760px);
  }
}

@media (max-width: 680px) {
  .product-category-actions,
  .product-fitting-strip {
    display: grid;
  }

  .member-price-state,
  .save-for-fitting {
    justify-self: start;
    text-align: left;
  }

  .product-fitting-strip p {
    font-size: 22px;
  }
}

/* menu52: refined fitting-led Products overview */
.hero-tertiary-link {
  display: inline-flex;
  margin-top: 14px;
  color: var(--lo-plum);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0.02em;
  text-decoration: none;
}

.hero-tertiary-link::after {
  content: " ->";
  margin-left: 6px;
}

.product-journey-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: min(1270px, calc(100% - 88px));
  margin: -34px auto 20px;
  padding: 0;
  position: relative;
  z-index: 5;
  border: 1px solid rgba(111, 35, 75, 0.13);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 18px 48px rgba(76, 20, 49, 0.075);
  backdrop-filter: blur(14px);
}

.product-journey-strip article {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 10px 13px;
  align-items: center;
  min-height: 92px;
  padding: 18px 22px;
}

.product-journey-strip article + article {
  border-left: 1px solid rgba(111, 35, 75, 0.12);
}

.product-journey-strip span {
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #f8dfe6;
  color: var(--lo-plum-dark);
  font-weight: 900;
}

.product-journey-strip strong {
  color: var(--lo-plum-dark);
  font-size: 13px;
  line-height: 1.2;
}

.product-journey-strip p {
  margin: 0;
  color: #655c57;
  font-size: 12px;
  line-height: 1.35;
}

.public-product-showcase {
  padding-top: clamp(18px, 2.2vw, 30px);
}

.product-category-grid {
  gap: 16px;
}

.product-category-card {
  grid-template-columns: 1fr;
  grid-template-rows: 178px auto 1fr 52px;
  min-height: 350px;
  overflow: hidden;
}

.product-category-media {
  grid-row: auto;
  min-height: 178px;
}

.product-category-media img,
.product-category-media img[src*="leila-products"] {
  width: 100%;
  height: 178px;
  min-height: 178px;
  padding: 0;
  object-fit: cover !important;
  mix-blend-mode: normal;
  background: #f8ecec;
}

.product-category-media > span {
  left: 12px;
  bottom: 12px;
  padding: 7px 10px;
  font-size: 10px;
}

.product-category-card h3 {
  margin: 18px 20px 7px;
  font-size: 24px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.product-category-card p {
  margin: 0 20px 12px;
  font-size: 13px;
  line-height: 1.45;
  min-height: auto;
}

.product-category-actions {
  align-self: end;
  margin: 0;
  padding: 0 20px;
  border-top: 1px solid rgba(111, 35, 75, 0.08);
  background: rgba(255, 250, 248, 0.72);
}

.view-range-link {
  display: inline-flex;
  align-items: center;
  min-height: 52px;
  text-transform: none;
}

.member-price-state,
.product-category-card .save-for-fitting {
  display: inline-flex;
  align-items: center;
  min-height: 52px;
  font-size: 10px;
  line-height: 1.15;
}

.member-price-state::before {
  top: 18px;
}

.member-pricing-module {
  grid-template-columns: minmax(250px, 0.86fr) minmax(0, 1.45fr) auto;
  gap: 26px;
  padding: 30px 38px;
}

.member-pricing-lock {
  display: none;
}

.member-pricing-steps {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-left: 1px solid rgba(111, 35, 75, 0.12);
}

.member-pricing-steps article {
  padding: 0 18px;
}

.popular-styles-strip {
  width: min(1270px, calc(100% - 48px));
  margin: 24px auto 18px;
  padding: 0;
}

.popular-styles-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  margin-bottom: 12px;
}

.popular-styles-head h2 {
  margin: 0;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 28px;
  line-height: 1;
}

.popular-styles-head a,
.popular-style-row a {
  color: var(--lo-plum);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.03em;
  text-decoration: none;
}

.popular-styles-head a::after,
.popular-style-row a:first-of-type::after {
  content: " ->";
}

.popular-style-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.popular-style-row article {
  display: grid;
  grid-template-columns: 42% 1fr;
  overflow: hidden;
  min-height: 150px;
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
}

.popular-style-row img {
  width: 100%;
  height: 100%;
  min-height: 150px;
  object-fit: contain;
  padding: 12px;
  background: radial-gradient(circle at 50% 38%, #fff, #f7e8e8 68%);
  mix-blend-mode: multiply;
}

.popular-style-row div {
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 14px 14px 14px 12px;
}

.popular-style-row h3 {
  margin: 0;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 17px;
  line-height: 1.08;
  text-transform: none;
  letter-spacing: 0;
}

.popular-style-row p {
  margin: 0;
  color: #655c57;
  font-size: 12px;
  line-height: 1.35;
}

.popular-style-row .popular-save-link,
.popular-style-row a.member-price-link:last-child {
  font-size: 11px;
}

.popular-style-row a.member-price-link:last-child {
  color: #7d6870;
}

@media (max-width: 1080px) {
  .product-journey-strip,
  .popular-style-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-journey-strip article:nth-child(3) {
    border-left: 0;
    border-top: 1px solid rgba(111, 35, 75, 0.12);
  }

  .product-journey-strip article:nth-child(4) {
    border-top: 1px solid rgba(111, 35, 75, 0.12);
  }

  .member-pricing-module {
    grid-template-columns: 1fr;
  }

  .member-pricing-steps {
    border-left: 0;
  }
}

@media (max-width: 760px) {
  .product-journey-strip,
  .popular-style-row {
    grid-template-columns: 1fr;
    width: min(100% - 36px, 760px);
  }

  .product-journey-strip article + article {
    border-left: 0;
    border-top: 1px solid rgba(111, 35, 75, 0.12);
  }

  .product-category-card,
  .popular-style-row article {
    grid-template-columns: 1fr;
  }

  .product-category-card {
    grid-template-rows: 220px auto 1fr auto;
  }

  .product-category-media img,
  .product-category-media img[src*="leila-products"] {
    height: 220px;
    min-height: 220px;
  }

  .member-pricing-steps {
    grid-template-columns: 1fr;
  }

  .member-pricing-steps article {
    padding: 14px 0;
  }

  .member-pricing-steps article + article {
    border-left: 0;
    border-top: 1px solid rgba(111, 35, 75, 0.12);
  }
}

/* menu55: tighter Products page vertical rhythm */
section.products-hero.products-hero-refined {
  display: grid;
  grid-template-columns: minmax(520px, 0.46fr) minmax(0, 0.54fr);
  align-items: center;
  box-sizing: border-box;
  min-height: 392px !important;
  padding: 48px max(44px, calc((100vw - 1240px) / 2)) 46px;
  gap: 42px;
}

section.products-hero.products-hero-refined > div {
  max-width: 590px;
}

section.products-hero.products-hero-refined h1 {
  max-width: 585px;
  margin-bottom: 14px;
  font-size: clamp(54px, 4.1vw, 64px);
  line-height: 0.98;
}

section.products-hero.products-hero-refined .hero-text {
  max-width: 450px;
  margin-bottom: 18px;
  line-height: 1.5;
}

section.products-hero.products-hero-refined .hero-actions {
  gap: 14px;
  margin-top: 0;
}

section.products-hero.products-hero-refined .hero-tertiary-link {
  margin-top: 15px;
}

section.products-hero.products-hero-refined .member-hero-note {
  margin-top: 10px;
}

.products-hero-media {
  inset: 0 0 0 auto;
  width: min(54vw, 740px);
  height: 100%;
}

section.products-hero.products-hero-refined .products-hero-media img {
  transform: scale(1.02);
  object-position: 50% 48%;
}

.products-hero-card {
  right: max(44px, calc((100vw - 1240px) / 2));
  bottom: 38px;
  width: min(315px, 36vw);
  padding: 22px 24px;
}

section.product-journey-strip {
  box-sizing: border-box;
  width: min(1240px, calc(100% - 88px));
  min-height: 122px;
  margin: -28px auto 0;
  padding: 0 30px !important;
}

section.product-journey-strip article {
  min-height: 120px;
  padding: 22px 0;
}

.product-journey-strip article + article {
  margin-left: 24px;
  padding-left: 24px;
}

.product-journey-strip span {
  width: 44px;
  height: 44px;
}

section.public-product-showcase {
  padding-top: 62px !important;
}

.public-product-showcase .section-intro {
  gap: 0;
  margin-bottom: 22px;
}

.public-product-showcase .section-intro .eyebrow {
  margin-bottom: 16px;
}

.public-product-showcase .section-intro h2 {
  margin: 0 0 12px;
}

.product-grid-transition {
  max-width: 560px;
}

@media (max-width: 980px) {
  section.products-hero.products-hero-refined {
    grid-template-columns: 1fr;
    min-height: 0 !important;
    padding: 42px 24px 38px;
  }

  .products-hero-media {
    position: relative;
    inset: auto;
    width: 100%;
    height: 300px;
    margin-top: 22px;
    border-radius: 18px;
  }

  .products-hero-card {
    right: 18px;
    bottom: 20px;
    width: min(315px, calc(100% - 36px));
  }

  .product-journey-strip {
    width: min(100% - 44px, 760px);
    margin-top: -18px;
    padding: 0 22px !important;
  }

  .product-journey-strip article + article {
    margin-left: 0;
    padding-left: 22px;
  }

  .public-product-showcase {
    padding-top: 52px;
  }
}

@media (max-width: 760px) {
  section.products-hero.products-hero-refined {
    padding-top: 34px;
  }

  section.products-hero.products-hero-refined h1 {
    font-size: 40px;
    line-height: 1;
  }

  .products-hero-media {
    height: 250px;
  }

  section.product-journey-strip {
    min-height: 0;
    padding: 0 !important;
  }

  section.product-journey-strip article {
    grid-template-columns: 34px 1fr;
    gap: 6px 12px;
    min-height: 76px;
    padding: 13px 18px;
  }

  .product-journey-strip article + article {
    padding-left: 18px;
  }

  .product-journey-strip span {
    width: 34px;
    height: 34px;
    font-size: 12px;
  }

  .product-journey-strip strong {
    font-size: 12px;
  }

  .product-journey-strip p {
    font-size: 11px;
  }

  .public-product-showcase {
    padding-top: 44px;
  }
}

/* menu48: fuller boutique footer with history, contact and social cues. */
.site-footer {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(360px, 1.35fr) minmax(220px, 0.75fr);
  gap: clamp(28px, 4vw, 58px);
  max-width: none;
  margin-top: 0;
  padding: clamp(42px, 5vw, 72px) clamp(28px, 7vw, 112px) clamp(30px, 4vw, 48px);
  border-top: 1px solid rgba(111, 35, 75, 0.12);
  background:
    radial-gradient(circle at 9% 0%, rgba(247, 218, 222, 0.38), transparent 22%),
    linear-gradient(180deg, #fffaf8 0%, #fbf1ee 100%);
  color: var(--lo-plum-dark);
}

.site-footer strong {
  display: block;
  margin-bottom: 5px;
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(27px, 2.2vw, 38px);
  font-weight: 600;
  line-height: 1;
}

.site-footer .footer-brand > span {
  display: block;
  margin-bottom: 18px;
  color: #8d6a78;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.site-footer p {
  max-width: 360px;
  margin: 0;
  color: #7a6670;
  font-size: 15px;
  line-height: 1.62;
}

.footer-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 22px;
}

.footer-badges span {
  padding: 8px 11px;
  border: 1px solid rgba(111, 35, 75, 0.13);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.66);
  color: var(--lo-plum);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-footer nav.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(22px, 3vw, 42px);
  justify-content: stretch;
}

.site-footer h3 {
  margin: 0 0 14px;
  color: var(--lo-plum-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.site-footer a {
  display: block;
  width: fit-content;
  color: #715967;
  font-size: 14px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.35;
  text-transform: none;
}

.site-footer a + a {
  margin-top: 10px;
}

.site-footer a:hover {
  color: var(--lo-plum);
}

.footer-contact {
  justify-self: end;
  min-width: 210px;
  padding: 20px;
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 18px 48px rgba(76, 20, 49, 0.06);
}

.footer-contact p {
  margin-top: 22px;
  color: #9a7d89;
  font-size: 12px;
  line-height: 1.45;
}

@media (max-width: 980px) {
  .site-footer {
    grid-template-columns: 1fr;
  }

  .site-footer nav.footer-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .footer-contact {
    justify-self: stretch;
  }
}

@media (max-width: 680px) {
  .site-footer {
    padding: 36px 24px 30px;
  }

  .site-footer nav.footer-nav {
    grid-template-columns: 1fr;
  }
}

/* menu48: premium guided scenario cards on the homepage. */
main > .support-pathways {
  margin-top: clamp(-130px, -7vw, -96px);
  padding-bottom: 22px !important;
}

main > .support-pathways .section-intro {
  margin-bottom: 12px;
}

main > .support-pathways h2 {
  font-size: clamp(22px, 1.8vw, 26px);
}

main > .support-pathways .pathway-grid {
  align-items: stretch;
  gap: clamp(14px, 1.3vw, 18px);
}

main > .support-pathways .pathway-card {
  display: grid;
  grid-template-rows: auto auto auto 1fr 112px;
  min-height: 258px;
  padding: 16px 19px 0;
  border-color: rgba(111, 35, 75, 0.12);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 252, 249, 0.9) 100%);
  box-shadow: 0 16px 42px rgba(76, 20, 49, 0.08);
  backdrop-filter: blur(14px);
}

main > .support-pathways .pathway-card::after {
  position: relative;
  grid-row: 5;
  right: auto;
  bottom: auto;
  left: auto;
  width: calc(100% + 38px);
  height: 112px;
  margin: 8px -19px 0;
  border-radius: 0 0 17px 17px;
  background-position: center;
  background-size: cover;
  opacity: 0.96;
}

main > .support-pathways .pathway-card:nth-child(1) {
  border-color: rgba(156, 89, 72, 0.24);
  background:
    linear-gradient(180deg, rgba(255, 248, 246, 0.98) 0%, rgba(255, 252, 249, 0.92) 100%);
  box-shadow:
    0 20px 52px rgba(111, 35, 75, 0.12),
    inset 0 0 0 1px rgba(255, 255, 255, 0.62);
}

main > .support-pathways .pathway-card:nth-child(1)::before {
  content: "Start here";
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 2;
  padding: 6px 9px;
  border: 1px solid rgba(111, 35, 75, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  color: var(--lo-plum);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

main > .support-pathways .pathway-card:nth-child(1)::after {
  height: 122px;
  margin-top: 6px;
  background-position: center 54%;
}

main > .support-pathways .pathway-card:nth-child(2)::after {
  background-position: 52% 56%;
}

main > .support-pathways .pathway-card:nth-child(3)::after {
  background-position: 56% 50%;
}

main > .support-pathways .pathway-card:nth-child(4)::after {
  background-position: 50% 52%;
}

main > .support-pathways .pathway-card span {
  width: 42px;
  height: 42px;
  border-color: rgba(111, 35, 75, 0.12);
  background-size: 19px 19px;
}

main > .support-pathways .pathway-card h3 {
  margin-top: 10px;
  margin-bottom: 6px;
  font-size: 18px;
}

main > .support-pathways .pathway-card p {
  max-width: 230px;
  min-height: 34px;
  font-size: 12.4px;
  line-height: 1.42;
}

main > .support-pathways .pathway-card em {
  align-self: end;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  color: var(--lo-plum);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.03em;
}

main > .support-pathways .pathway-card em::after {
  content: "→";
  font-size: 13px;
  line-height: 1;
  transform: translateY(-1px);
}

@media (max-width: 1180px) {
  main > .support-pathways {
    margin-top: 0;
  }
}

@media (max-width: 680px) {
  main > .support-pathways .pathway-card {
    grid-template-rows: auto auto auto 1fr 96px;
    min-height: 236px;
  }

  main > .support-pathways .pathway-card::after,
  main > .support-pathways .pathway-card:nth-child(1)::after {
    height: 96px;
  }
}

/* menu48: refined boutique header and footer typography. */
.site-header {
  min-height: 68px;
  padding: 10px clamp(20px, 5.6vw, 92px);
  gap: 16px;
  border-bottom: 1px solid rgba(111, 35, 75, 0.08);
  background: rgba(255, 250, 247, 0.74);
  box-shadow: 0 8px 26px rgba(76, 20, 49, 0.035);
  backdrop-filter: blur(22px) saturate(1.08);
  -webkit-backdrop-filter: blur(22px) saturate(1.08);
}

.brand {
  min-width: 185px;
}

.brand strong {
  color: #541637;
  font-size: clamp(27px, 1.9vw, 32px);
  font-weight: 600;
  letter-spacing: -0.012em;
}

.site-nav {
  gap: clamp(8px, 1vw, 18px);
  color: #2f2630;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: none;
}

.site-nav > .nav-item > a {
  position: relative;
  min-height: 42px;
  padding: 0;
  border-bottom: 0 !important;
  color: #2f2630;
}

.site-nav > .nav-item > a::before {
  content: "";
  position: absolute;
  right: 20%;
  bottom: 2px;
  left: 20%;
  height: 1.5px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(111, 35, 75, 0), rgba(111, 35, 75, 0.9), rgba(169, 91, 120, 0));
  opacity: 0;
  transform: scaleX(0.72);
  transform-origin: center;
  transition: opacity 160ms ease, transform 160ms ease;
}

.site-nav > .nav-item > a:hover,
.site-nav > .nav-item > a.is-active {
  color: #64193f;
}

.site-nav > .nav-item > a:hover::before,
.site-nav > .nav-item > a.is-active::before {
  opacity: 1;
  transform: scaleX(1);
}

.site-header.has-open-menu .site-nav > .nav-item > a.is-active {
  color: #2f2630;
}

.site-header.has-open-menu .site-nav > .nav-item > a.is-active::before {
  opacity: 0;
}

.site-header.has-open-menu .site-nav > .nav-item:hover > a,
.site-header.has-open-menu .site-nav > .nav-item.is-menu-open > a {
  color: #64193f;
}

.site-header.has-open-menu .site-nav > .nav-item:hover > a::before,
.site-header.has-open-menu .site-nav > .nav-item.is-menu-open > a::before {
  opacity: 1;
  transform: scaleX(1);
}

.nav-item.has-menu > a::after {
  width: 4px;
  height: 4px;
  margin: 1px 0 0 6px;
  border-width: 0 1px 1px 0;
  opacity: 0.62;
}

.header-cta {
  min-height: 43px;
  padding: 0 20px;
  border: 1px solid rgba(111, 35, 75, 0.22);
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgba(139, 40, 89, 0.98), rgba(103, 25, 64, 0.98));
  color: #fffaf8;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.002em;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 10px 24px rgba(111, 35, 75, 0.14);
}

.header-cta:hover {
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    0 14px 28px rgba(111, 35, 75, 0.17);
}

.site-nav a[href="locations.html"]:not(.is-active) {
  color: #2f2630;
}

.site-nav a[href="locations.html"]:not(.is-active)::before {
  opacity: 0;
}

.home-page .header-cta {
  min-width: 154px;
  padding-inline: 16px;
}

.hero-guidance-note {
  position: relative;
  max-width: 500px;
  margin: 16px 0 0;
  padding: 12px 16px 12px 42px;
  border: 1px solid rgba(111, 35, 75, 0.1);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.72);
  color: #715967;
  box-shadow: 0 12px 30px rgba(76, 20, 49, 0.045);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
}

.hero-guidance-note::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 16px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, #7d214f 0 2px, transparent 2.5px),
    rgba(126, 33, 82, 0.1);
  box-shadow: 0 0 0 5px rgba(126, 33, 82, 0.06);
  transform: translateY(-50%);
}

.header-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.account-icon-link {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  border: 1px solid rgba(111, 35, 75, 0.22);
  border-radius: 50%;
  background: rgba(255, 253, 250, 0.82);
  color: var(--lo-plum);
  box-shadow: 0 10px 28px rgba(76, 20, 49, 0.08);
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.account-icon-link span {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1.7px solid currentColor;
  border-radius: 50%;
  font-size: 0;
  position: relative;
}

.account-icon-link span::before,
.account-icon-link span::after {
  content: "";
  position: absolute;
  left: 50%;
  border: 1.7px solid currentColor;
  transform: translateX(-50%);
}

.account-icon-link span::before {
  top: 4px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: transparent;
}

.account-icon-link span::after {
  bottom: 4px;
  width: 11px;
  height: 6px;
  border-top-left-radius: 999px;
  border-top-right-radius: 999px;
  border-bottom: 0;
}

.account-icon-link:hover {
  border-color: rgba(111, 35, 75, 0.5);
  background: #fff7f5;
  transform: translateY(-1px);
}

@media (max-width: 1180px) {
  .site-header {
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
  }

  .brand {
    min-width: 0;
  }

  .header-actions {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }

  .header-actions .header-cta {
    display: none;
  }

  .account-icon-link {
    width: 42px;
    height: 42px;
    box-shadow: none;
  }

  .menu-toggle {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }

  .site-nav {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .site-header {
    gap: 10px;
    padding-inline: 18px;
  }

  .brand strong {
    font-size: 24px;
  }

  .account-icon-link,
  .menu-toggle {
    width: 38px;
    height: 38px;
  }
}

.site-footer {
  grid-template-columns: minmax(260px, 0.86fr) minmax(420px, 1.24fr) minmax(210px, 0.66fr);
  align-items: start;
  gap: clamp(34px, 4.8vw, 72px);
  max-width: 100%;
  padding: clamp(48px, 5.2vw, 76px) max(clamp(28px, 7vw, 112px), calc((100vw - 1440px) / 2 + 56px)) 0;
  background:
    radial-gradient(circle at 10% 0%, rgba(244, 211, 216, 0.36), transparent 24%),
    radial-gradient(circle at 90% 14%, rgba(255, 255, 255, 0.7), transparent 26%),
    linear-gradient(180deg, #fffaf8 0%, #fbf0ed 100%);
}

.site-footer strong {
  margin-bottom: 4px;
  color: #541637;
  font-size: clamp(28px, 2vw, 36px);
  font-weight: 600;
  letter-spacing: -0.012em;
}

.site-footer .footer-brand > span {
  margin-bottom: 16px;
  color: #8c6276;
  font-size: 10.5px;
  font-weight: 650;
  letter-spacing: 0.16em;
}

.site-footer p {
  color: #786873;
  font-size: 14px;
  line-height: 1.75;
}

.footer-badges span {
  color: #75425b;
  font-size: 10.5px;
  font-weight: 650;
  letter-spacing: 0.12em;
}

.site-footer h3 {
  margin-bottom: 12px;
  color: #8a5c72;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.15em;
}

.site-footer a {
  color: #6e6069;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.85;
}

.site-footer a + a {
  margin-top: 3px;
}

.footer-contact {
  padding: 19px 20px;
  border-color: rgba(111, 35, 75, 0.1);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.5);
  box-shadow: 0 12px 32px rgba(76, 20, 49, 0.045);
}

.footer-legal {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-top: clamp(34px, 4vw, 56px);
  padding: 18px 0 22px;
  border-top: 1px solid rgba(111, 35, 75, 0.09);
  color: #9b858f;
  font-size: 12px;
  line-height: 1.5;
}

@media (max-width: 980px) {
  .site-footer {
    grid-template-columns: 1fr;
    padding-right: 28px;
    padding-left: 28px;
  }

  .footer-legal {
    flex-direction: column;
  }
}

/* Mastectomy Bras & Tops specialist catalogue */
.page-mastectomy-bras-tops {
  background:
    radial-gradient(circle at 88% 10%, rgba(244, 218, 221, 0.46), transparent 28%),
    linear-gradient(180deg, #fffaf6 0%, #fff8f3 48%, #fffaf7 100%);
}

.subpage-main.template-browse .template-hero.mastectomy-boutique-hero {
  position: relative;
  grid-template-columns: minmax(320px, 0.72fr) minmax(560px, 1.28fr);
  gap: clamp(26px, 4vw, 64px);
  width: 100%;
  max-width: none;
  min-height: clamp(390px, 36vw, 510px);
  margin: 0;
  padding: clamp(52px, 6vw, 88px) max(7vw, calc((100vw - 1280px) / 2)) clamp(46px, 5vw, 72px);
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(90deg, #fffaf6 0%, rgba(255, 250, 246, 0.98) 31%, rgba(255, 250, 246, 0.68) 48%, rgba(255, 244, 239, 0.28) 100%),
    radial-gradient(circle at 78% 34%, rgba(144, 54, 91, 0.1), transparent 34%);
  box-shadow: none;
}

.subpage-main.template-browse .template-hero.mastectomy-boutique-hero > div {
  position: relative;
  z-index: 2;
  max-width: 440px;
}

.subpage-main.template-browse .template-hero.mastectomy-boutique-hero h1 {
  max-width: 430px;
  color: var(--lo-plum);
  font-size: clamp(42px, 4.8vw, 68px);
  line-height: 0.98;
}

.subpage-main.template-browse .template-hero.mastectomy-boutique-hero h1::after {
  content: "";
  display: block;
  width: 52px;
  height: 1.5px;
  margin-top: 24px;
  background: linear-gradient(90deg, #9d2f66, rgba(157, 47, 102, 0));
}

.subpage-main.template-browse .template-hero.mastectomy-boutique-hero .hero-text {
  max-width: 360px;
  color: #5f5550;
  font-size: 15px;
  line-height: 1.55;
}

.subpage-main.template-browse .template-hero.mastectomy-boutique-hero > img {
  position: absolute;
  inset: 0 0 0 35%;
  width: 65%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.2) 12%, #000 28%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.2) 12%, #000 28%);
}

.subpage-main.template-browse .template-hero.mastectomy-boutique-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 250, 246, 0.99) 0%, rgba(255, 250, 246, 0.82) 34%, rgba(255, 250, 246, 0.08) 64%),
    linear-gradient(180deg, transparent 72%, rgba(255, 248, 243, 0.86) 100%);
}

.page-mastectomy-bras-tops .mastectomy-product-listing {
  grid-template-columns: 230px minmax(0, 1fr);
  width: min(1280px, calc(100% - 72px));
  max-width: none;
  margin: 0 auto;
  padding: clamp(28px, 4vw, 48px) 0;
}

.mastectomy-product-listing .minimal-filter-panel {
  border-color: rgba(111, 35, 75, 0.08);
  background: rgba(255, 255, 255, 0.68);
  box-shadow: 0 16px 46px rgba(76, 20, 49, 0.045);
}

.mastectomy-product-listing .minimal-filter-panel div + div {
  margin-top: 18px;
  padding-top: 16px;
}

.mastectomy-product-listing .catalogue-head {
  margin-bottom: 14px;
  border-bottom: 0;
}

.mastectomy-product-listing .catalogue-head h2 {
  color: var(--lo-plum);
  font-size: clamp(34px, 3.6vw, 52px);
}

.mastectomy-product-listing .catalogue-head p:not(.eyebrow) {
  max-width: 440px;
}

.catalogue-pill-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 18px;
}

.catalogue-pill-filters a {
  min-width: 108px;
  padding: 10px 18px;
  border: 1px solid rgba(111, 35, 75, 0.16);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
  color: #4d3140;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
}

.catalogue-pill-filters a.is-active {
  border-color: rgba(124, 26, 79, 0.55);
  color: var(--lo-plum);
  box-shadow: inset 0 0 0 1px rgba(124, 26, 79, 0.08);
}

.mastectomy-product-listing .listing-status {
  justify-content: flex-start;
  margin-bottom: 18px;
  color: #786970;
}

.mastectomy-product-listing .product-list-grid.compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.mastectomy-product-listing .product-card {
  display: grid;
  grid-template-rows: 250px auto;
  min-height: 0;
  border-color: rgba(111, 35, 75, 0.105);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.84);
  box-shadow: 0 18px 54px rgba(76, 20, 49, 0.055);
}

.page-mastectomy-bras-tops .mastectomy-product-listing .product-card-media-link {
  display: grid;
  place-items: center;
  min-height: 250px;
  background:
    radial-gradient(circle at 50% 48%, rgba(247, 226, 222, 0.72), transparent 58%),
    linear-gradient(135deg, #fffaf6, #fbf0ed);
}

.page-mastectomy-bras-tops .mastectomy-product-listing .product-card img {
  width: 100%;
  height: 250px !important;
  min-height: 250px;
  padding: 22px;
  object-fit: contain;
  object-position: center;
  background: transparent;
}

.mastectomy-product-listing .product-card > div {
  display: flex;
  flex-direction: column;
  min-height: auto;
  padding: 20px 22px 22px;
}

.mastectomy-product-listing .product-card span,
.mastectomy-product-listing .product-card h3,
.mastectomy-product-listing .product-card p {
  margin-right: 0;
  margin-left: 0;
}

.mastectomy-product-listing .product-card span {
  margin-top: 0;
  color: #9a536b;
}

.mastectomy-product-listing .product-card h3 {
  margin-top: 10px;
  font-size: 24px;
}

.mastectomy-product-listing .product-card p:not(.member-pricing-note) {
  min-height: 38px;
  margin-bottom: 14px;
}

.mastectomy-product-listing .product-meta-list {
  margin: 0 0 14px;
}

.mastectomy-product-listing .product-meta-list li {
  background: rgba(251, 234, 237, 0.72);
  color: #7c4d5f;
}

.member-pricing-note {
  margin: auto 0 14px;
  color: #7b6670;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}

.product-card-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 0;
}

.mastectomy-product-listing .product-card .product-card-actions {
  display: flex;
  min-height: 0;
  padding: 0;
}

.mastectomy-product-listing .product-card-detail,
.mastectomy-product-listing .product-card-fitting {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin: 0;
  padding: 0 18px;
  border: 1px solid rgba(124, 26, 79, 0.48);
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.mastectomy-product-listing .product-card-detail {
  border-color: transparent;
  background: linear-gradient(135deg, #711646, #8e2761);
  color: #fff;
  box-shadow: 0 10px 24px rgba(111, 22, 70, 0.16);
}

.mastectomy-product-listing .product-card-detail::after {
  content: "";
}

.mastectomy-product-listing .product-card-fitting {
  color: var(--lo-plum);
}

.page-mastectomy-bras-tops .fit-guidance {
  width: min(960px, calc(100% - 72px));
  margin-top: 34px;
  border-color: rgba(111, 35, 75, 0.08);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(255, 242, 244, 0.78));
  box-shadow: 0 20px 56px rgba(76, 20, 49, 0.055);
}

@media (max-width: 1100px) {
  .page-mastectomy-bras-tops .mastectomy-product-listing {
    grid-template-columns: 1fr;
  }

  .mastectomy-product-listing .minimal-filter-panel {
    position: static;
    display: none;
  }

  .mastectomy-product-listing .product-list-grid.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .subpage-main.template-browse .template-hero.mastectomy-boutique-hero {
    display: block;
    min-height: 600px;
    padding: 54px 24px 260px;
  }

  .subpage-main.template-browse .template-hero.mastectomy-boutique-hero > img {
    inset: auto 0 0;
    width: 100%;
    height: 330px;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 18%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 18%);
  }

  .subpage-main.template-browse .template-hero.mastectomy-boutique-hero::after {
    background: linear-gradient(180deg, rgba(255, 250, 246, 0.98) 0%, rgba(255, 250, 246, 0.74) 46%, rgba(255, 250, 246, 0.08) 76%);
  }

  .page-mastectomy-bras-tops .mastectomy-product-listing,
  .page-mastectomy-bras-tops .fit-guidance {
    width: min(100% - 32px, 560px);
  }

  .mastectomy-product-listing .product-list-grid.compact {
    grid-template-columns: 1fr;
  }

  .catalogue-pill-filters a {
    flex: 1 1 calc(50% - 8px);
    min-width: 0;
  }
}

/* menu74: soften the top navigation fitting CTA for the premium healthcare tone. */
.header-cta {
  gap: 8px;
  min-width: 0;
  min-height: 44px;
  height: 44px;
  padding: 0 22px;
  border: 1px solid rgba(126, 33, 82, 0.18);
  border-radius: 999px;
  background: rgba(126, 33, 82, 0.08);
  color: #6f1747;
  box-shadow: 0 8px 20px rgba(111, 23, 71, 0.06);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
  text-transform: none;
  transition:
    background 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.header-cta::before {
  content: "";
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: currentColor;
  box-shadow: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 3v3M17 3v3M4.5 9h15M6.5 5.5h11c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-11c-1.1 0-2-.9-2-2v-10c0-1.1.9-2 2-2Z' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 3v3M17 3v3M4.5 9h15M6.5 5.5h11c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-11c-1.1 0-2-.9-2-2v-10c0-1.1.9-2 2-2Z' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.header-cta:hover {
  border-color: rgba(126, 33, 82, 0.24);
  background: rgba(126, 33, 82, 0.13);
  color: #6f1747;
  box-shadow: 0 10px 22px rgba(111, 23, 71, 0.08);
  transform: translateY(-1px);
}

.home-page .header-cta {
  min-width: 0;
  padding-inline: 22px;
}

/* menu75: refine homepage hero subtitle and helper copy. */
.home-page main > .hero .hero-text {
  max-width: 560px;
  margin: 22px 0 20px;
  color: rgba(74, 54, 64, 0.82);
  font-size: 18px;
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.55;
}

.home-page .hero-guidance-note {
  max-width: 500px;
  margin: 14px 0 0;
  color: #715967;
  font-size: 13px;
  line-height: 1.45;
}

/* menu78: align decision cards to the wider page content edge. */
.subpage-main.template-decision .decision-card-grid {
  width: min(1240px, calc(100% - 120px));
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 980px) {
  .subpage-main.template-decision .decision-card-grid {
    width: min(100% - 44px, 760px);
  }
}

/* Boutique admin dashboard */
.boutique-admin-body {
  min-height: 100svh;
  background:
    radial-gradient(circle at 9% 7%, rgba(238, 215, 205, 0.42), transparent 25%),
    linear-gradient(120deg, #f7efe9 0 18%, #fffdfb 30%, #fffaf8 100%);
  color: #1f1b1a;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.boutique-admin-shell {
  display: grid;
  grid-template-columns: 268px minmax(0, 1fr);
  min-height: 100svh;
}

.boutique-admin-sidebar {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  padding: 28px 14px 18px;
  border-right: 1px solid rgba(109, 70, 61, 0.1);
  background:
    linear-gradient(180deg, rgba(246, 236, 229, 0.96), rgba(250, 244, 239, 0.88)),
    #f4ebe4;
}

.boutique-admin-logo {
  display: grid;
  justify-items: center;
  margin: 0 0 20px;
  color: #3b2b29;
  text-align: center;
}

.boutique-admin-logo .logo-flower {
  color: #b98678;
  font-size: 22px;
  line-height: 1;
  transform: translateY(6px);
}

.boutique-admin-logo strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 52px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 0.82;
}

.boutique-admin-logo em {
  margin-top: 8px;
  color: #7b6760;
  font-size: 13px;
  font-style: normal;
  letter-spacing: 0.22em;
  line-height: 1.35;
  text-transform: uppercase;
}

.admin-collapse-button {
  position: absolute;
  top: 30px;
  right: 24px;
  border: 0;
  background: transparent;
  color: #7d6b66;
  font-size: 22px;
  cursor: pointer;
}

.boutique-admin-nav,
.boutique-admin-owner {
  display: grid;
  gap: 7px;
}

.boutique-admin-nav {
  flex: 0 0 auto;
}

.boutique-admin-nav a,
.boutique-admin-owner a {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 10px;
  color: #282322;
  font-size: 16px;
  font-weight: 500;
}

.boutique-admin-nav a span,
.boutique-admin-owner a span {
  display: grid;
  place-items: center;
  width: 22px;
  color: #4f4440;
  font-size: 19px;
  line-height: 1;
}

.boutique-admin-nav a.is-active {
  background: linear-gradient(90deg, #f0d9d6, rgba(238, 218, 214, 0.52));
  color: #7b3d3b;
}

.boutique-admin-owner {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid rgba(109, 70, 61, 0.18);
}

.boutique-admin-owner p {
  margin: 0 0 10px 18px;
  color: #b05f64;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.admin-profile-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  margin-top: 28px;
  margin-top: auto;
  padding: 16px;
  border: 1px solid rgba(109, 70, 61, 0.12);
  border-radius: 12px;
  background: rgba(255, 253, 250, 0.72);
  color: #2c2523;
  text-align: left;
}

.admin-avatar,
.client-avatar {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  background:
    linear-gradient(135deg, rgba(195, 126, 113, 0.2), rgba(143, 97, 81, 0.1)),
    url("assets/editorial-consultation.png") center / cover;
}

.admin-avatar {
  width: 42px;
  height: 42px;
  color: #7d3d48;
  font-weight: 800;
}

.admin-profile-card strong,
.admin-profile-card em {
  display: block;
}

.admin-profile-card em {
  margin-top: 3px;
  color: #6f6460;
  font-size: 13px;
  font-style: normal;
}

.boutique-admin-main {
  padding: 38px 48px 42px;
}

.boutique-admin-main .admin-metric-grid {
  padding: 0;
}

.boutique-admin-header {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 30px;
}

.boutique-admin-header h1 {
  margin: 0;
  color: #171413;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.2;
}

.boutique-admin-header p {
  margin: 10px 0 0;
  color: #726865;
  font-size: 15px;
}

.admin-header-actions {
  display: flex;
  align-items: center;
  gap: 22px;
}

.admin-date-button,
.admin-icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(109, 70, 61, 0.15);
  background: #fffdfb;
  color: #1c1817;
  box-shadow: 0 10px 28px rgba(74, 44, 38, 0.05);
}

.admin-date-button {
  gap: 26px;
  min-height: 48px;
  padding: 0 17px;
  border-radius: 7px;
  font-size: 15px;
}

.admin-icon-button {
  position: relative;
  width: 46px;
  height: 46px;
  border: 0;
  background: transparent;
  box-shadow: none;
  font-size: 28px;
}

.admin-icon-button b {
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background: #c8655e;
  color: #fff;
  font-size: 12px;
}

.admin-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px;
  margin-bottom: 22px;
}

.admin-metric-card,
.admin-panel {
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 10px;
  background: rgba(255, 253, 251, 0.92);
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.055);
}

.admin-metric-card {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 20px;
  min-height: 134px;
  padding: 24px 22px;
  align-items: start;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.admin-metric-card:hover,
.admin-metric-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(138, 69, 64, 0.24);
  box-shadow: 0 20px 48px rgba(68, 42, 36, 0.085);
  outline: none;
}

.metric-icon {
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  border-radius: 9px;
  color: #fff;
  font-size: 31px;
}

.metric-icon.rose { background: linear-gradient(135deg, #bf7482, #d2a2a9); }
.metric-icon.peach { background: linear-gradient(135deg, #eca36f, #f5c19d); }
.metric-icon.sand { background: linear-gradient(135deg, #dfc49b, #eadbc2); color: #7d6042; }
.metric-icon.mauve { background: linear-gradient(135deg, #b197b8, #cbb9d1); }

.admin-metric-card p {
  margin: 0;
  color: #2e2826;
  font-size: 14px;
  line-height: 1.25;
}

.admin-metric-card strong {
  display: block;
  margin: 8px 0 18px;
  color: #111;
  font-size: 29px;
  line-height: 1;
}

.admin-metric-card a,
.admin-panel-link {
  color: #8a4540;
  font-size: 14px;
  font-weight: 500;
}

.admin-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.36fr) minmax(380px, 0.94fr);
  gap: 24px 28px;
}

.admin-panel {
  padding: 20px 22px 16px;
}

.boutique-admin-main .admin-panel {
  padding: 20px 22px 16px;
}

.admin-panel-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 18px;
}

.admin-panel-heading p {
  margin: 6px 0 0;
  color: #756a66;
  font-size: 12px;
  line-height: 1.35;
}

.admin-panel-heading h2 {
  margin: 0;
  color: #151211;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 20px;
  font-weight: 700;
}

.admin-panel-heading button {
  min-height: 32px;
  padding: 0 16px;
  border: 1px solid rgba(109, 70, 61, 0.14);
  border-radius: 5px;
  background: #fffdfb;
  color: #151211;
  font: inherit;
  font-size: 13px;
}

.admin-schedule-list,
.admin-action-list,
.admin-activity-list,
.admin-reminder-list {
  display: grid;
}

.admin-schedule-tabs {
  display: inline-flex;
  gap: 8px;
  margin: -4px 0 14px;
  padding: 4px;
  border: 1px solid rgba(109, 70, 61, 0.1);
  border-radius: 10px;
  background: rgba(250, 242, 237, 0.72);
}

.admin-schedule-tabs button {
  min-height: 30px;
  padding: 0 12px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #7a6f6a;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
}

.admin-schedule-tabs button.is-active {
  background: #fffdfb;
  color: #7b2a57;
  box-shadow: 0 8px 20px rgba(68, 42, 36, 0.06);
}

.admin-schedule-list article {
  display: grid;
  grid-template-columns: 82px 44px minmax(180px, 1fr) 104px 116px 72px;
  gap: 14px;
  align-items: center;
  min-height: 68px;
  border-bottom: 1px solid rgba(109, 70, 61, 0.1);
}

.admin-schedule-list article.is-selected {
  background: linear-gradient(90deg, rgba(245, 225, 226, 0.48), rgba(255, 253, 251, 0));
}

.admin-schedule-list time {
  color: #b2535a;
  font-size: 14px;
}

.client-avatar {
  width: 44px;
  height: 44px;
}

.avatar-1 { background-image: url("assets/editorial-contact.png"); }
.avatar-2 { background-image: url("assets/hero-consultation.jpg"); }
.avatar-3 { background-image: url("assets/fitting-detail.jpg"); }
.avatar-4 { background-image: url("assets/editorial-consultation.png"); }
.avatar-5 { background-image: url("assets/hero-fitting.jpg"); }

.admin-schedule-list strong,
.admin-reminder-list strong {
  color: #181514;
  font-size: 14px;
  font-weight: 700;
}

.admin-schedule-list p,
.admin-reminder-list p {
  margin: 4px 0 0;
  color: #625956;
  font-size: 13px;
  line-height: 1.35;
}

.admin-schedule-list b {
  justify-self: start;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
}

.status-confirmed { background: #e5f1e1; color: #4b7c4e; }
.status-new { background: #e6f0f6; color: #5080a1; }
.status-pending { background: #fbebdf; color: #c66a2c; }

.admin-schedule-list button {
  min-height: 32px;
  border: 1px solid rgba(138, 79, 75, 0.2);
  border-radius: 8px;
  background: #fffdfb;
  color: #7b2a57;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
}

.admin-schedule-detail {
  margin-top: 16px;
  padding: 18px 18px 16px;
  border: 1px solid rgba(109, 70, 61, 0.1);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255, 253, 251, 0.95), rgba(249, 239, 235, 0.72));
}

.admin-schedule-detail h3 {
  margin: 0 0 8px;
  color: #191514;
  font-size: 18px;
}

.admin-schedule-detail p {
  margin: 6px 0;
  color: #625956;
  font-size: 13px;
  line-height: 1.45;
}

.admin-schedule-detail dl {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  gap: 8px 14px;
  margin: 12px 0 0;
}

.admin-schedule-detail dt {
  color: #9d5f63;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-schedule-detail dd {
  margin: 0;
  color: #2d2725;
  font-size: 13px;
}

.admin-panel-link {
  display: block;
  margin-top: 14px;
  padding-top: 4px;
  text-align: center;
}

.admin-action-list article {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 38px;
  gap: 18px;
  align-items: center;
  min-height: 66px;
  border-bottom: 1px solid rgba(109, 70, 61, 0.1);
  cursor: pointer;
  transition: background 0.18s ease, transform 0.18s ease;
}

.admin-action-list article:hover,
.admin-action-list article:focus-visible {
  background: rgba(245, 225, 226, 0.34);
  outline: none;
}

.admin-action-list span,
.admin-activity-list span {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #f5e5e2;
  color: #a65b56;
  font-size: 20px;
}

.admin-action-list p,
.admin-activity-list p {
  margin: 0;
  color: #514a47;
  font-size: 14px;
  line-height: 1.45;
}

.admin-action-list b {
  display: grid;
  place-items: center;
  min-width: 35px;
  height: 26px;
  border-radius: 8px;
  background: #fae9e7;
  color: #b45c57;
  font-size: 17px;
  font-weight: 700;
}

.admin-activity-list article {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 72px;
  gap: 14px;
  align-items: center;
  min-height: 41px;
  border-bottom: 1px solid rgba(109, 70, 61, 0.1);
}

.admin-activity-list span {
  width: 26px;
  height: 26px;
  border-radius: 7px;
  font-size: 15px;
}

.admin-activity-list time {
  color: #6f6662;
  font-size: 13px;
  text-align: right;
}

.admin-reminder-list article {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 116px;
  gap: 15px;
  align-items: center;
  min-height: 70px;
  border-bottom: 1px solid rgba(109, 70, 61, 0.1);
}

.admin-reminder-list time {
  color: #665d59;
  font-size: 13px;
  line-height: 1.45;
  text-align: right;
}

.admin-reminder-list time b {
  color: #c15e64;
  font-weight: 500;
}

.admin-module-view {
  display: grid;
  gap: 18px;
  margin-top: 22px;
}

.boutique-admin-main .admin-module-view {
  padding: 0;
}

.admin-module-view[hidden],
.admin-dashboard-view[hidden],
.admin-soft-table article[hidden] {
  display: none;
}

.boutique-admin-body [hidden] {
  display: none !important;
}

.admin-module-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: end;
  padding: 22px 24px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 10px;
  background: rgba(255, 253, 251, 0.94);
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.045);
}

.admin-module-header p {
  margin: 0 0 6px;
  color: #b2535a;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.admin-module-header h2 {
  margin: 0;
  color: #151211;
  font-size: 28px;
  line-height: 1.08;
}

.admin-module-header button,
.admin-soft-table button,
.admin-functional-form button {
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid rgba(138, 79, 75, 0.22);
  border-radius: 10px;
  background: #8a4f4b;
  color: #fffdfb;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
}

.admin-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 10px;
  background: rgba(255, 253, 251, 0.86);
}

.admin-filter-bar input,
.admin-filter-bar select,
.admin-functional-form input,
.admin-functional-form select,
.admin-functional-form textarea {
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid #e9ddd4;
  border-radius: 9px;
  background: #fffdfb;
  color: #2d2522;
  font: inherit;
}

.admin-filter-bar input {
  min-width: 280px;
  flex: 1;
}

.admin-staff-appointment-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.admin-staff-appointment-overview button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 12px;
  align-items: center;
  min-height: 92px;
  padding: 18px 20px;
  border: 1px solid rgba(109, 70, 61, 0.1);
  border-radius: 10px;
  background: rgba(255, 253, 251, 0.92);
  color: #282322;
  font: inherit;
  text-align: left;
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.045);
}

.admin-staff-appointment-overview button.is-active,
.admin-staff-appointment-overview button:hover,
.admin-staff-appointment-overview button:focus-visible {
  border-color: rgba(138, 79, 75, 0.28);
  background: linear-gradient(135deg, rgba(255, 253, 251, 0.98), rgba(247, 231, 229, 0.68));
  outline: none;
}

.admin-staff-appointment-overview span {
  color: #7b2a57;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-staff-appointment-overview strong {
  grid-row: 1 / span 2;
  grid-column: 2;
  color: #171413;
  font-size: 34px;
  line-height: 1;
}

.admin-staff-appointment-overview em {
  color: #716762;
  font-size: 13px;
  font-style: normal;
}

.admin-quote-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.admin-quote-summary article {
  min-height: 96px;
  padding: 18px 20px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 10px;
  background: rgba(255, 253, 251, 0.94);
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.045);
}

.admin-quote-summary span {
  color: #7b2a57;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-quote-summary strong {
  display: block;
  margin: 8px 0 4px;
  color: #171413;
  font-size: 34px;
  line-height: 1;
}

.admin-quote-summary em {
  color: #716762;
  font-size: 13px;
  font-style: normal;
}

.admin-quotes-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
  gap: 18px;
  align-items: start;
}

.admin-quote-table article {
  cursor: pointer;
  grid-template-columns: minmax(92px, 0.65fr) minmax(130px, 0.9fr) minmax(220px, 1.25fr) auto minmax(70px, 0.55fr) auto;
}

.admin-quote-table article:hover,
.admin-quote-table article:focus-visible {
  background: rgba(245, 225, 226, 0.35);
  outline: none;
}

.admin-quote-table article.is-selected .admin-row-action {
  background: #8a4f4b;
  color: #fffdfb;
}

.admin-soft-table,
.admin-profile-summary,
.admin-functional-form,
.admin-image-cropper,
.admin-content-editor {
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 10px;
  background: rgba(255, 253, 251, 0.94);
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.045);
}

.admin-soft-table article {
  display: grid;
  grid-template-columns: minmax(110px, 0.7fr) minmax(160px, 1fr) minmax(160px, 1.1fr) auto auto;
  gap: 14px;
  align-items: center;
  min-height: 66px;
  padding: 12px 18px;
  border-bottom: 1px solid rgba(109, 70, 61, 0.09);
}

.admin-soft-table article:last-child {
  border-bottom: 0;
}

.admin-soft-table strong {
  color: #191514;
}

.admin-soft-table em,
.admin-soft-table span,
.admin-soft-table small {
  color: #716762;
  font-style: normal;
  font-size: 13px;
}

.admin-detail-drawer,
.admin-profile-summary {
  padding: 22px;
}

.admin-appointments-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
  gap: 18px;
  align-items: start;
}

.admin-fitting-workflow {
  display: grid;
  grid-template-columns: minmax(320px, 0.42fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.admin-fitting-client-list,
.admin-fitting-record-panel,
.admin-fitting-info-grid article,
.admin-fitting-note-editor,
.admin-fitting-next-actions article {
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 12px;
  background: rgba(255, 253, 251, 0.94);
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.045);
}

.admin-fitting-client-list,
.admin-fitting-record-panel {
  padding: 18px;
}

.admin-workflow-heading {
  display: grid;
  gap: 4px;
  margin-bottom: 14px;
}

.admin-workflow-heading p,
.admin-fitting-info-grid article > p,
.admin-fitting-next-actions article > p {
  margin: 0;
  color: #c05e73;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.admin-workflow-heading h3 {
  margin: 0;
  color: #2d2522;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 30px;
  line-height: 1;
}

.admin-fitting-client-list .admin-soft-table {
  box-shadow: none;
}

.admin-fitting-client-list .admin-appointment-table article {
  grid-template-columns: 72px minmax(110px, 1fr);
  gap: 8px 12px;
  min-height: 88px;
  padding: 14px;
}

.admin-fitting-client-list .admin-appointment-table article em,
.admin-fitting-client-list .admin-appointment-table article small {
  grid-column: 2;
}

.admin-fitting-client-list .admin-appointment-table article b {
  grid-column: 1;
  justify-self: start;
}

.admin-fitting-record-panel {
  display: grid;
  gap: 16px;
}

.admin-fitting-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.admin-fitting-info-grid article,
.admin-fitting-next-actions article {
  padding: 18px;
}

.admin-fitting-info-grid dl {
  display: grid;
  gap: 10px;
  margin: 14px 0 0;
}

.admin-fitting-info-grid dt {
  color: #8a4f4b;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-fitting-info-grid dd {
  margin: -6px 0 0;
  color: #625956;
  font-size: 13px;
  line-height: 1.45;
}

.admin-fitting-note-editor {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.admin-fitting-note-editor label {
  display: grid;
  gap: 8px;
  color: #6c5f5a;
  font-size: 13px;
  font-weight: 800;
}

.admin-fitting-note-editor textarea,
.admin-fitting-note-editor input,
.admin-fitting-note-editor select {
  min-height: 42px;
  border: 1px solid rgba(138, 79, 75, 0.22);
  border-radius: 9px;
  background: #fffdfb;
  color: #2d2522;
  font: inherit;
}

.admin-fitting-note-editor textarea {
  min-height: 92px;
  padding: 10px 12px;
  resize: vertical;
}

.admin-fitting-editor-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.admin-fitting-note-editor button {
  min-height: 42px;
  border: 0;
  border-radius: 9px;
  background: #7b2a57;
  color: #fff;
  font: inherit;
  font-weight: 800;
}

.admin-fitting-next-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.admin-fitting-next-actions strong {
  display: block;
  margin: 10px 0 6px;
  color: #2d2522;
  font-size: 20px;
}

.admin-fitting-next-actions span {
  color: #625956;
  font-size: 13px;
  line-height: 1.45;
}

.admin-fitting-outcomes {
  margin-top: 4px;
}

.admin-fitting-records {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr);
  gap: 18px;
  align-items: start;
}

.admin-fitting-record-table article {
  grid-template-columns: minmax(120px, 0.8fr) minmax(150px, 1fr) minmax(180px, 1.15fr) auto minmax(70px, 0.45fr);
}

.admin-appointment-table article {
  cursor: pointer;
  transition: background 0.18s ease, box-shadow 0.18s ease;
}

.admin-appointment-table article:hover,
.admin-appointment-table article:focus-visible {
  background: rgba(245, 225, 226, 0.35);
  outline: none;
}

.admin-row-action {
  justify-self: end;
  display: inline-grid;
  place-items: center;
  min-width: 96px;
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid rgba(138, 79, 75, 0.22);
  border-radius: 10px;
  background: #fffdfb;
  color: #7b2a57;
  font-size: 13px;
  font-weight: 700;
}

.admin-appointment-table article.is-selected .admin-row-action {
  background: #8a4f4b;
  color: #fffdfb;
}

.admin-appointment-detail-card {
  position: sticky;
  top: 24px;
  min-height: 320px;
  border: 1px solid rgba(109, 70, 61, 0.1);
  border-radius: 10px;
  background:
    linear-gradient(145deg, rgba(255, 253, 251, 0.98), rgba(249, 238, 234, 0.72)),
    #fffdfb;
  box-shadow: 0 18px 46px rgba(68, 42, 36, 0.06);
}

.admin-appointment-detail-card > p {
  margin: 0 0 10px;
  color: #b2535a;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.admin-appointment-detail-card h3 {
  margin: 0 0 12px;
  color: #181514;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 30px;
  line-height: 1;
}

.admin-appointment-detail-card span,
.admin-appointment-detail-card li,
.admin-appointment-detail-card dd {
  color: #625956;
  font-size: 13px;
  line-height: 1.45;
}

.admin-appointment-detail-card dl {
  display: grid;
  gap: 10px;
  margin: 18px 0;
}

.admin-appointment-detail-card dt {
  color: #8a4f4b;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-appointment-detail-card dd {
  margin: -6px 0 0;
}

.admin-appointment-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.admin-member-workspace,
.admin-content-editor {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
  gap: 18px;
}

.admin-customer-tools {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(160px, 0.35fr) minmax(190px, 0.42fr) auto;
  gap: 12px;
  align-items: end;
  padding: 16px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 12px;
  background: rgba(255, 253, 251, 0.9);
  box-shadow: 0 14px 34px rgba(68, 42, 36, 0.035);
}

.admin-customer-tools label {
  display: grid;
  gap: 7px;
  color: #6c5f5a;
  font-size: 12px;
  font-weight: 800;
}

.admin-customer-tools input,
.admin-customer-tools select {
  min-height: 42px;
  border: 1px solid rgba(138, 79, 75, 0.2);
  border-radius: 9px;
  background: #fffdfb;
  color: #2d2522;
  font: inherit;
  font-size: 13px;
}

.admin-customer-tools button,
.admin-customer-actions button {
  min-height: 42px;
  padding: 0 14px;
  border: 0;
  border-radius: 9px;
  background: #7b2a57;
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
}

.admin-customer-crm-workspace {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.52fr);
}

.admin-customer-list,
.admin-customer-profile {
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 12px;
  background: rgba(255, 253, 251, 0.94);
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.045);
}

.admin-customer-list article {
  display: grid;
  grid-template-columns: auto 52px minmax(0, 1fr) auto auto;
  gap: 14px;
  align-items: center;
  min-height: 94px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(109, 70, 61, 0.09);
  cursor: pointer;
}

.admin-customer-list article:last-child {
  border-bottom: 0;
}

.admin-customer-list article:hover,
.admin-customer-list article.is-selected {
  background: rgba(245, 225, 226, 0.42);
}

.admin-customer-list input[type="checkbox"] {
  width: 16px;
  height: 16px;
}

.admin-customer-list strong {
  display: block;
  color: #191514;
}

.admin-customer-list em,
.admin-customer-list small {
  display: block;
  margin-top: 4px;
  color: #716762;
  font-size: 13px;
  font-style: normal;
}

.admin-customer-list button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(138, 79, 75, 0.24);
  border-radius: 9px;
  background: #fffdfb;
  color: #7b2a57;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
}

.admin-customer-profile {
  display: grid;
  gap: 16px;
  padding: 20px;
}

.admin-customer-photo-panel {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
}

.admin-customer-photo-panel .client-avatar {
  width: 64px;
  height: 64px;
}

.admin-customer-photo-panel p {
  margin: 0;
  color: #c05e73;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.admin-customer-photo-panel h3 {
  margin: 4px 0;
  color: #2d2522;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 32px;
  line-height: 1;
}

.admin-customer-photo-panel em {
  color: #716762;
  font-size: 13px;
  font-style: normal;
}

.admin-customer-actions {
  display: grid;
  gap: 10px;
}

.admin-customer-actions button:nth-child(n + 2) {
  border: 1px solid rgba(138, 79, 75, 0.24);
  background: #fffdfb;
  color: #7b2a57;
}

.admin-customer-profile dl {
  display: grid;
  gap: 10px;
  margin: 0;
}

.admin-customer-profile dt {
  color: #8a4f4b;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-customer-profile dd {
  margin: -6px 0 0;
  color: #625956;
  font-size: 13px;
  line-height: 1.45;
}

.admin-customer-profile ol {
  margin: 0;
  padding-left: 20px;
  color: #625956;
  font-size: 13px;
  line-height: 1.7;
}

.admin-note-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.admin-note-board article {
  padding: 20px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 10px;
  background: rgba(255, 253, 251, 0.94);
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.045);
}

.admin-note-board strong {
  display: block;
  margin: 8px 0;
  font-size: 36px;
}

.admin-functional-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 20px;
}

.admin-functional-form label {
  display: grid;
  gap: 8px;
  color: #6c5f5a;
  font-size: 13px;
  font-weight: 700;
}

.admin-functional-form textarea,
.admin-functional-form button {
  grid-column: 1 / -1;
}

.admin-product-group-heading p,
.admin-product-editor p {
  margin: 0;
  color: #c05e73;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.admin-product-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(170px, 0.35fr) minmax(170px, 0.35fr) auto;
  gap: 12px;
  align-items: end;
  padding: 16px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 12px;
  background: rgba(255, 253, 251, 0.9);
  box-shadow: 0 14px 34px rgba(68, 42, 36, 0.035);
}

.admin-product-controls label {
  display: grid;
  gap: 7px;
  color: #6c5f5a;
  font-size: 12px;
  font-weight: 800;
}

.admin-product-controls input,
.admin-product-controls select {
  min-height: 42px;
  border: 1px solid rgba(138, 79, 75, 0.2);
  border-radius: 9px;
  background: #fffdfb;
  color: #2d2522;
  font: inherit;
  font-size: 13px;
}

.admin-product-controls button {
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgba(138, 79, 75, 0.28);
  border-radius: 9px;
  background: #fffdfb;
  color: #7b2a57;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
}

.admin-product-category-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 12px;
  background: rgba(255, 253, 251, 0.7);
}

.admin-product-category-bar button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(138, 79, 75, 0.18);
  border-radius: 999px;
  background: #fffdfb;
  color: #7b2a57;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
}

.admin-product-category-bar button.is-active {
  border-color: transparent;
  background: #7b2a57;
  color: #fff;
  box-shadow: 0 12px 26px rgba(123, 42, 87, 0.14);
}

.admin-product-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390px, 0.52fr);
  gap: 18px;
  align-items: start;
}

.admin-product-library,
.admin-product-side-panel {
  display: grid;
  gap: 16px;
}

.admin-product-category-group {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 12px;
  background: rgba(255, 253, 251, 0.92);
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.04);
}

.admin-product-group-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: end;
  padding: 0 2px 8px;
  border-bottom: 1px solid rgba(109, 70, 61, 0.09);
}

.admin-product-group-heading h3 {
  margin: 4px 0 0;
  color: #2d2522;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 28px;
  line-height: 1;
}

.admin-product-group-heading span {
  color: #8a4f4b;
  font-size: 12px;
  font-weight: 800;
}

.admin-product-category-group article {
  display: grid;
  grid-template-columns: 76px minmax(180px, 1fr) 82px 82px 112px 68px;
  gap: 14px;
  align-items: center;
  padding: 12px;
  border-radius: 10px;
  color: #625955;
  cursor: pointer;
}

.admin-product-category-group article + article {
  border-top: 1px solid rgba(109, 70, 61, 0.08);
}

.admin-product-category-group article:hover,
.admin-product-category-group article.is-selected {
  background: rgba(245, 225, 226, 0.42);
}

.admin-product-category-group img {
  width: 76px;
  height: 76px;
  border-radius: 12px;
  object-fit: cover;
  background: #f4ede6;
}

.admin-product-category-group strong {
  display: block;
  color: #1f1b19;
  font-size: 14px;
}

.admin-product-category-group em,
.admin-product-category-group small {
  display: block;
  margin-top: 4px;
  color: #6f635f;
  font-style: normal;
  line-height: 1.35;
}

.admin-product-category-group span {
  color: #7a6d67;
  font-size: 12px;
  line-height: 1.35;
}

.admin-product-category-group span b {
  color: #2d2522;
  font-size: 13px;
}

.admin-product-category-group mark {
  justify-self: start;
  padding: 5px 8px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 800;
}

.admin-product-edit {
  display: inline-grid;
  place-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(138, 79, 75, 0.25);
  border-radius: 8px;
  background: #fffdfb;
  color: #7b2a57;
  font-size: 12px;
  font-weight: 800;
}

.admin-product-editor {
  display: grid;
  gap: 13px;
  padding: 20px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 12px;
  background: rgba(255, 253, 251, 0.94);
  box-shadow: 0 16px 42px rgba(68, 42, 36, 0.045);
}

.admin-product-editor h3 {
  margin: 8px 0 16px;
  color: #2d2522;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 30px;
  line-height: 1;
}

.admin-product-editor label,
.admin-image-cropper label {
  display: grid;
  gap: 7px;
  color: #6c5f5a;
  font-size: 12px;
  font-weight: 800;
}

.admin-product-editor input,
.admin-product-editor select,
.admin-product-editor textarea {
  min-height: 42px;
  width: 100%;
  border: 1px solid rgba(138, 79, 75, 0.22);
  border-radius: 9px;
  background: #fffdfb;
  color: #2d2522;
  font: inherit;
  font-size: 13px;
}

.admin-product-editor textarea {
  min-height: 78px;
  padding: 10px 12px;
  resize: vertical;
}

.admin-product-price-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.admin-product-editor button,
.admin-image-cropper button {
  min-height: 42px;
  border: 0;
  border-radius: 9px;
  background: #7b2a57;
  color: #fff;
  font: inherit;
  font-weight: 800;
}

.admin-product-editor > span,
.admin-image-cropper > span {
  display: none;
  color: #7b2a57;
  font-size: 12px;
  font-weight: 800;
}

.admin-product-editor > span.is-visible,
.admin-image-cropper > span.is-visible {
  display: block;
}

.admin-image-cropper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: center;
  padding: 18px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 12px;
  background: rgba(255, 253, 251, 0.94);
}

.admin-image-cropper header {
  display: grid;
  gap: 4px;
}

.admin-image-cropper header p {
  margin: 0;
  color: #c05e73;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.admin-image-cropper header strong {
  color: #2d2522;
  font-size: 15px;
}

.admin-image-cropper label {
  grid-template-columns: 1fr auto;
  align-items: center;
}

.admin-image-cropper label input {
  grid-column: 1 / -1;
}

.admin-image-cropper label b {
  color: #7b2a57;
  font-size: 12px;
}

.admin-image-cropper div {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 12px;
  background: #f4ede6;
}

.admin-image-cropper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-banner-preview-mini {
  min-height: 260px;
  padding: 32px;
  border-radius: 10px;
  background:
    linear-gradient(90deg, rgba(255, 253, 251, 0.94), rgba(255, 253, 251, 0.42)),
    url("assets/photo-soft-bra-flower.png") center / cover;
}

.admin-banner-preview-mini h3 {
  max-width: 420px;
  margin: 8px 0;
  color: #2d2522;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 42px;
  line-height: 0.98;
}

.admin-role-switcher {
  display: grid;
  gap: 5px;
  color: #7a6d67;
  font-size: 11px;
  font-weight: 700;
}

.admin-role-switcher select {
  min-height: 36px;
  border: 1px solid #e9ddd4;
  border-radius: 8px;
  background: #fffdfb;
  color: #2d2522;
  font: inherit;
}

.admin-module-empty,
.admin-live-note {
  padding: 18px 20px;
  border: 1px solid rgba(109, 70, 61, 0.09);
  border-radius: 10px;
  background: rgba(255, 253, 251, 0.82);
  color: #675d59;
}

.admin-live-note {
  display: none;
  color: #7b2a57;
  font-weight: 700;
}

.admin-live-note.is-visible {
  display: block;
}

.admin-image-cropper img {
  transition: transform 0.2s ease, object-position 0.2s ease;
}

.admin-product-grid article.is-muted {
  opacity: 0.58;
}

.admin-soft-table article.is-selected {
  background: rgba(245, 225, 226, 0.42);
}

.admin-detail-drawer button,
.admin-profile-summary button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(138, 79, 75, 0.25);
  border-radius: 9px;
  background: #fffdfb;
  color: #7b2a57;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
}

/* Boutique admin typography refresh */
.boutique-admin-body,
.boutique-admin-body button,
.boutique-admin-body input,
.boutique-admin-body select,
.boutique-admin-body textarea {
  font-family: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
}

.boutique-admin-logo strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 43px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 0.9;
}

.boutique-admin-header h1 {
  font-family: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.boutique-admin-header p {
  color: #7a6d67;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
}

.boutique-admin-nav a,
.boutique-admin-owner a {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
}

.boutique-admin-nav a.is-active,
.boutique-admin-owner a.is-active {
  color: #8a4f4b;
  font-size: 15px;
  font-weight: 600;
}

.admin-panel-heading h2,
.admin-module-header h2,
.admin-workflow-heading h3,
.admin-fitting-next-actions strong,
.admin-customer-photo-panel h3,
.admin-product-group-heading h3,
.admin-product-editor h3,
.admin-image-cropper header strong,
.admin-banner-preview-mini h3,
.admin-appointment-detail-card h3,
.admin-schedule-detail h3 {
  font-family: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.admin-module-header h2 {
  font-size: 20px;
}

.admin-metric-card p,
.admin-action-list p,
.admin-quote-summary span,
.admin-customer-list strong,
.admin-product-category-group strong,
.admin-soft-table strong,
.admin-schedule-list strong,
.admin-reminder-list strong {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.25;
}

.admin-metric-card strong,
.admin-quote-summary strong,
.admin-note-board strong,
.admin-staff-appointment-overview strong {
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
}

.admin-soft-table strong,
.admin-appointment-table strong,
.admin-customer-list strong,
.admin-product-category-group strong,
.admin-schedule-list strong,
.admin-reminder-list strong {
  font-size: 14.5px;
  font-weight: 600;
}

.admin-soft-table em,
.admin-soft-table span,
.admin-soft-table small,
.admin-appointment-table em,
.admin-appointment-table small,
.admin-customer-list em,
.admin-customer-list small,
.admin-product-category-group em,
.admin-product-category-group small,
.admin-schedule-list p,
.admin-reminder-list p,
.admin-activity-list p,
.admin-fitting-info-grid dd,
.admin-customer-profile dd,
.admin-product-detail-card dd,
.admin-panel-heading p,
.admin-live-note {
  color: #7a6d67;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.45;
}

.admin-module-header p,
.admin-workflow-heading p,
.admin-fitting-info-grid article > p,
.admin-fitting-next-actions article > p,
.admin-customer-photo-panel p,
.admin-product-group-heading p,
.admin-product-editor p,
.admin-image-cropper header p,
.admin-appointment-detail-card > p,
.admin-fitting-info-grid dt,
.admin-customer-profile dt,
.admin-appointment-detail-card dt,
.admin-schedule-detail dt,
.admin-role-switcher,
.admin-customer-tools label,
.admin-product-controls label,
.admin-product-editor label,
.admin-image-cropper label,
.admin-fitting-note-editor label,
.admin-functional-form label {
  color: #a65e5b;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.25;
}

.boutique-admin-body button,
.admin-metric-card a,
.admin-panel-link,
.admin-row-action,
.admin-date-button,
.admin-filter-bar input,
.admin-filter-bar select,
.admin-customer-tools input,
.admin-customer-tools select,
.admin-product-controls input,
.admin-product-controls select,
.admin-product-editor input,
.admin-product-editor select,
.admin-product-editor textarea,
.admin-fitting-note-editor input,
.admin-fitting-note-editor select,
.admin-fitting-note-editor textarea {
  font-size: 14px;
  font-weight: 600;
}

.admin-customer-list button,
.admin-product-edit,
.admin-product-category-bar button,
.admin-schedule-tabs button,
.admin-schedule-list button,
.admin-module-header button,
.admin-soft-table button,
.admin-functional-form button,
.admin-customer-tools button,
.admin-customer-actions button,
.admin-product-controls button,
.admin-product-editor button,
.admin-image-cropper button,
.admin-fitting-note-editor button {
  font-size: 14px;
  font-weight: 600;
}

@media (max-width: 1120px) {
  .boutique-admin-shell {
    grid-template-columns: 1fr;
  }

  .boutique-admin-sidebar {
    position: static;
    min-height: 0;
  }

  .boutique-admin-nav,
  .boutique-admin-owner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-metric-grid,
  .admin-dashboard-grid {
    grid-template-columns: 1fr;
  }

  .admin-member-workspace,
  .admin-customer-tools,
  .admin-appointments-workspace,
  .admin-fitting-workflow,
  .admin-fitting-info-grid,
  .admin-fitting-editor-row,
  .admin-fitting-next-actions,
  .admin-fitting-records,
  .admin-quotes-workspace,
  .admin-quote-summary,
  .admin-content-editor,
  .admin-note-board,
  .admin-product-controls,
  .admin-product-workspace,
  .admin-functional-form,
  .admin-image-cropper,
  .admin-staff-appointment-overview {
    grid-template-columns: 1fr;
  }

  .admin-product-category-group article {
    grid-template-columns: 70px minmax(0, 1fr) 78px 78px;
  }

  .admin-product-category-group article mark,
  .admin-product-category-group article button {
    grid-column: auto;
  }
}

@media (max-width: 720px) {
  .boutique-admin-main {
    padding: 24px 18px;
  }

  .boutique-admin-header,
  .admin-header-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .boutique-admin-nav,
  .boutique-admin-owner,
  .admin-schedule-list article,
  .admin-reminder-list article,
  .admin-product-category-group article {
    grid-template-columns: 1fr;
  }

  .admin-product-category-group img {
    width: 100%;
    height: 150px;
  }
}

@media (max-width: 760px) {
  .subpage-main.template-decision .decision-card-grid {
    width: min(100% - 28px, 560px);
  }
}

@media (max-width: 760px) {
  .home-page main > .hero .hero-text {
    max-width: 100%;
    font-size: 16px;
  }

  .home-page .hero-guidance-note {
    max-width: min(100%, 520px);
    margin-top: 16px;
    padding: 11px 14px 11px 40px;
    font-size: 13px;
  }
}

/* menu76: turn contact opening hours into a calm premium information card. */
.contact-options .contact-hours {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px 14px;
  align-items: center;
  min-height: 0;
  padding: 20px 22px;
  border: 1px solid rgba(111, 23, 71, 0.1);
  border-radius: 18px;
  background: rgba(255, 250, 248, 0.88);
  box-shadow: 0 8px 24px rgba(111, 23, 71, 0.04);
  color: rgba(74, 54, 64, 0.82);
}

.contact-options .contact-hours .contact-option-icon {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(247, 232, 234, 0.92);
  box-shadow: none;
}

.contact-options .contact-hours .contact-option-icon::before {
  width: 17px;
  height: 17px;
  background: #6f1747;
}

.contact-options .contact-hours strong {
  grid-column: 2;
  grid-row: 1;
  color: #4b2338;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.25;
}

.contact-options .contact-hours > span:not(.contact-option-icon) {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding: 6px 0;
  color: rgba(74, 54, 64, 0.82);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.35;
  font-variant-numeric: proportional-nums;
}

.contact-options .contact-hours > span:not(.contact-option-icon) + span:not(.contact-option-icon) {
  border-top: 1px solid rgba(111, 23, 71, 0.07);
}

.contact-options .contact-hours > span:not(.contact-option-icon) em {
  color: #4b2338;
  font-size: 15px;
  font-weight: 600;
  font-style: normal;
  white-space: nowrap;
}

@media (max-width: 980px) {
  .contact-options .contact-hours {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .contact-options .contact-hours .contact-option-icon,
  .contact-options .contact-hours strong,
  .contact-options .contact-hours > span:not(.contact-option-icon) {
    grid-row: auto;
  }

  .contact-options .contact-hours .contact-option-icon {
    grid-column: 1;
  }

  .contact-options .contact-hours strong {
    grid-column: 2;
  }

  .contact-options .contact-hours > span:not(.contact-option-icon) {
    grid-column: 1 / -1;
    justify-content: space-between;
  }
}

@media (max-width: 680px) {
  .contact-options .contact-hours {
    gap: 12px;
    padding: 18px 18px;
  }
}

/* menu79: keep homepage guided cards aligned when jumping to #start-here. */
.home-page main > .support-pathways {
  scroll-margin-top: 92px;
}

.home-page main > .support-pathways .pathway-grid {
  align-items: stretch;
}

.home-page main > .support-pathways .pathway-card,
.home-page main > .support-pathways .pathway-card:nth-child(1) {
  grid-template-rows: 42px auto auto 1fr 112px;
  min-height: 277px;
  padding: 16px 19px 0;
}

.home-page main > .support-pathways .pathway-card::after,
.home-page main > .support-pathways .pathway-card:nth-child(1)::after {
  grid-row: 5;
  height: 112px;
  margin-top: 8px;
}

.home-page main > .support-pathways .pathway-card span {
  grid-row: 1;
  align-self: start;
}

.home-page main > .support-pathways .pathway-card h3 {
  grid-row: 2;
}

.home-page main > .support-pathways .pathway-card p {
  grid-row: 3;
}

.home-page main > .support-pathways .pathway-card em {
  grid-row: 4;
}

.home-page main > .support-pathways .pathway-card:nth-child(1)::before {
  top: 18px;
  right: 18px;
}

@media (max-width: 680px) {
  .home-page main > .support-pathways {
    scroll-margin-top: 82px;
  }

  .home-page main > .support-pathways .pathway-card,
  .home-page main > .support-pathways .pathway-card:nth-child(1) {
    grid-template-rows: 40px auto auto 1fr 96px;
    min-height: 236px;
  }

  .home-page main > .support-pathways .pathway-card::after,
  .home-page main > .support-pathways .pathway-card:nth-child(1)::after {
    height: 96px;
  }
}

/* menu80: desktop top navigation is direct-link only, no floating table menus. */
@media (min-width: 1181px) {
  .site-nav > .nav-item.has-menu > a::after {
    display: none;
  }

  .site-nav > .nav-item.has-menu > .nav-dropdown,
  .site-nav > .nav-item.has-menu:hover > .nav-dropdown,
  .site-nav > .nav-item.has-menu:focus-within > .nav-dropdown,
  .site-nav > .nav-item.has-menu.is-menu-open > .nav-dropdown,
  .site-nav > .nav-item.has-menu > .nav-dropdown.is-mega,
  .site-nav > .nav-item.has-menu > .nav-dropdown.is-mega.is-contextual {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .site-header.has-open-menu {
    box-shadow: none;
  }
}

/* menu82: connect the locations map section to the hero instead of feeling detached. */
.location-reference .location-reference-hero {
  border-bottom: 0;
  padding-bottom: 38px;
  background:
    radial-gradient(circle at 78% 8%, rgba(247, 226, 229, 0.48), transparent 26%),
    linear-gradient(180deg, rgba(255, 250, 248, 0.98) 0%, rgba(255, 247, 245, 0.94) 100%);
}

.location-reference .location-card-section {
  position: relative;
  max-width: 1440px;
  margin-top: 0;
  padding-top: 34px;
  background:
    linear-gradient(180deg, rgba(255, 247, 245, 0.94) 0%, rgba(255, 250, 248, 0.98) 46%, rgba(255, 250, 248, 0.86) 100%);
}

.location-reference .location-card-section::before {
  content: "";
  position: absolute;
  top: 0;
  right: clamp(28px, 8vw, 132px);
  left: clamp(28px, 8vw, 132px);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(111, 35, 75, 0.12), transparent);
}

.location-reference .location-section-head {
  align-items: center;
  margin-bottom: 26px;
}

.location-reference .location-section-head h2 {
  margin-top: 6px;
  margin-bottom: 10px;
  font-size: clamp(38px, 3.4vw, 52px);
}

.location-reference .location-section-head p:not(.eyebrow) {
  max-width: 660px;
  color: rgba(58, 45, 52, 0.78);
  line-height: 1.6;
}

.location-reference .compact-contact {
  min-height: 48px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 10px 26px rgba(111, 35, 75, 0.045);
}

.location-reference .location-list-detailed {
  gap: 16px;
}

.location-reference .location-detail-card {
  border-color: rgba(111, 35, 75, 0.075);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 18px 50px rgba(111, 35, 75, 0.055);
}

.location-reference .location-detail-card:first-child {
  margin-top: -4px;
}

@media (max-width: 760px) {
  .location-reference .location-reference-hero {
    padding-bottom: 26px;
  }

  .location-reference .location-card-section {
    padding-top: 26px;
  }

  .location-reference .location-card-section::before {
    right: 18px;
    left: 18px;
  }
}

/* menu83: final spacing lock for the locations hero-to-map transition. */
main.location-reference > section.location-card-section.map-section {
  padding-top: 34px !important;
}

main.location-reference > section.location-reference-hero {
  padding-bottom: 38px !important;
}

@media (max-width: 760px) {
  main.location-reference > section.location-card-section.map-section {
    padding-top: 26px !important;
  }

  main.location-reference > section.location-reference-hero {
    padding-bottom: 26px !important;
  }
}

/* menu84: tighten homepage hero top rhythm and keep Start Here nav from deep-linking. */
.home-page main > .hero {
  min-height: 500px;
  padding-top: clamp(36px, 3.4vw, 54px);
  padding-bottom: 94px;
}

.home-page main > .hero .hero-media {
  height: 500px;
}

.home-page main > .hero .hero-copy {
  align-self: start;
}

.home-page main > .support-pathways {
  margin-top: clamp(-104px, -6vw, -82px);
}

@media (max-width: 1180px) {
  .home-page main > .hero {
    padding-top: 30px;
    padding-bottom: 30px;
  }

  .home-page main > .hero .hero-media {
    height: clamp(230px, 42vw, 330px);
  }

  .home-page main > .support-pathways {
    margin-top: -8px;
  }
}

@media (max-width: 680px) {
  .home-page main > .hero {
    padding-top: 24px;
    padding-bottom: 24px;
  }
}

/* menu85: About page becomes a boutique brand story instead of generic resource cards. */
.page-about-leila-otoole .about-story-hero {
  grid-template-columns: minmax(330px, 0.88fr) minmax(520px, 1.12fr);
  min-height: min(560px, calc(100svh - 64px));
  padding-top: clamp(42px, 4.8vw, 72px);
  padding-bottom: clamp(42px, 4.8vw, 72px);
  background:
    linear-gradient(90deg, rgba(255, 250, 248, 0.98) 0%, rgba(255, 250, 248, 0.96) 38%, rgba(255, 242, 239, 0.72) 66%, rgba(255, 250, 248, 0.9) 100%);
}

.page-about-leila-otoole .about-story-hero h1 {
  max-width: 650px;
  font-size: clamp(48px, 4.9vw, 82px);
  line-height: 0.96;
}

.page-about-leila-otoole .about-story-hero .hero-text {
  max-width: 560px;
  color: rgba(45, 27, 37, 0.82);
  font-size: clamp(16px, 1.08vw, 19px);
  line-height: 1.72;
}

.page-about-leila-otoole .about-story-hero > img {
  height: clamp(360px, 40svh, 500px);
  border-radius: 0;
  box-shadow: none;
  object-fit: cover;
  object-position: center 48%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 100%);
}

.page-about-leila-otoole .about-story-hero .hero-actions {
  grid-template-columns: auto auto;
}

.page-about-leila-otoole .about-story-hero .button.secondary {
  background: rgba(255, 253, 250, 0.58);
}

.about-story-layout,
.about-philosophy,
.about-fitting-space {
  max-width: 1420px;
  margin-right: auto;
  margin-left: auto;
}

.about-story-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.62fr) minmax(0, 1.38fr);
  gap: clamp(48px, 7vw, 112px);
  align-items: start;
  padding-top: clamp(52px, 6vw, 92px) !important;
  padding-bottom: clamp(32px, 4vw, 62px) !important;
  background: rgba(255, 250, 248, 0.78);
}

.about-story-copy h2,
.about-fitting-space h2 {
  max-width: 470px;
  color: var(--lo-plum-dark);
  font-size: clamp(34px, 3.1vw, 54px);
  line-height: 1.02;
}

.about-story-copy p:not(.eyebrow),
.about-fitting-space p:not(.eyebrow) {
  max-width: 520px;
  color: rgba(45, 27, 37, 0.78);
  font-size: 16px;
  line-height: 1.78;
}

.about-timeline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4.2vw, 68px);
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  counter-reset: about-timeline;
}

.about-timeline li {
  position: relative;
  padding-top: 54px;
}

.about-timeline li::before {
  content: "";
  position: absolute;
  top: 15px;
  left: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #f5dfe4 url("assets/icons/icon-flower-line.svg") center / 17px 17px no-repeat;
  box-shadow: inset 0 0 0 1px rgba(111, 35, 75, 0.08);
}

.about-timeline li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 31px;
  left: 48px;
  right: calc(clamp(24px, 4.2vw, 68px) * -1 + 16px);
  height: 1px;
  background: linear-gradient(90deg, rgba(111, 35, 75, 0.2), rgba(111, 35, 75, 0.06));
}

.about-timeline span {
  display: block;
  margin-bottom: 6px;
  color: var(--lo-plum);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(29px, 2.4vw, 42px);
  font-weight: 600;
  line-height: 1;
}

.about-timeline strong {
  display: block;
  max-width: 230px;
  color: #2d1b25;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(21px, 1.5vw, 27px);
  font-weight: 600;
  line-height: 1.08;
}

.about-timeline p {
  max-width: 250px;
  margin: 16px 0 0;
  color: rgba(45, 27, 37, 0.72);
  font-size: 14px;
  line-height: 1.62;
}

.about-philosophy {
  padding-top: clamp(22px, 3vw, 48px) !important;
  padding-bottom: clamp(44px, 5vw, 78px) !important;
  background: rgba(255, 250, 248, 0.78);
}

.about-philosophy-heading {
  display: grid;
  grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr);
  gap: 18px;
  align-items: center;
  max-width: 760px;
  margin: 0 auto 32px;
  color: var(--lo-plum);
  text-align: center;
}

.about-philosophy-heading span {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(111, 35, 75, 0.18), transparent);
}

.about-philosophy-heading h2 {
  margin: 0;
  color: var(--lo-plum);
  font-size: clamp(25px, 2vw, 35px);
  line-height: 1;
}

.about-philosophy-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
}

.about-philosophy-grid article {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  min-height: 0;
  padding: 4px clamp(18px, 2.4vw, 34px);
}

.about-philosophy-grid article + article {
  border-left: 1px solid rgba(111, 35, 75, 0.11);
}

.about-philosophy-grid img {
  width: 52px;
  height: 52px;
  padding: 12px;
  border-radius: 50%;
  background: #f6e0e4;
}

.about-philosophy-grid h3 {
  margin: 0 0 7px;
  color: #2d1b25;
  font-family: "Plus Jakarta Sans", "Inter", sans-serif;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}

.about-philosophy-grid p {
  margin: 0;
  color: rgba(45, 27, 37, 0.74);
  font-size: 13px;
  line-height: 1.58;
}

.about-fitting-space {
  display: grid;
  grid-template-columns: minmax(280px, 0.48fr) minmax(0, 0.92fr);
  gap: clamp(30px, 5vw, 72px);
  align-items: center;
  margin-bottom: 0;
  padding-top: clamp(30px, 4vw, 54px) !important;
  padding-bottom: clamp(30px, 4vw, 54px) !important;
  border: 1px solid rgba(111, 35, 75, 0.08);
  border-radius: 18px;
  background: rgba(255, 253, 250, 0.7);
}

.about-fitting-space .text-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 10px;
  color: var(--lo-plum);
}

.about-fitting-space .text-link::after {
  content: "";
  width: 8px;
  height: 8px;
  margin-left: 9px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
}

.about-fitting-gallery {
  display: grid;
  grid-template-columns: 0.72fr 1fr 0.82fr;
  gap: 4px;
  overflow: hidden;
  border-radius: 13px;
}

.about-fitting-gallery img {
  width: 100%;
  height: clamp(250px, 28vw, 340px);
  object-fit: cover;
}

.about-fitting-gallery img:first-child {
  object-position: 8% 52%;
}

.about-fitting-gallery img:nth-child(2) {
  object-position: center 48%;
}

.about-fitting-gallery img:nth-child(3) {
  object-position: center 58%;
}

.page-about-leila-otoole .about-final-cta {
  max-width: 1420px;
  margin-top: clamp(30px, 4vw, 52px);
  margin-bottom: clamp(36px, 5vw, 74px);
  border-radius: 14px;
  background:
    radial-gradient(circle at 8% 50%, rgba(255, 255, 255, 0.14), transparent 18%),
    radial-gradient(circle at 96% 16%, rgba(255, 255, 255, 0.1), transparent 18%),
    linear-gradient(108deg, #6f123f, #9a1e5b 64%, #6f123f);
}

.page-about-leila-otoole .about-final-cta h2 {
  font-size: clamp(28px, 2.6vw, 42px);
}

.page-about-leila-otoole .about-final-cta .button {
  min-height: 48px;
  padding: 0 24px;
  border-radius: 10px;
}

@media (max-width: 1180px) {
  .page-about-leila-otoole .about-story-hero,
  .about-story-layout,
  .about-fitting-space {
    grid-template-columns: 1fr;
  }

  .page-about-leila-otoole .about-story-hero > img {
    height: clamp(300px, 42vw, 420px);
    -webkit-mask-image: none;
    mask-image: none;
    border-radius: 14px;
    box-shadow: var(--lo-shadow);
  }

  .about-timeline,
  .about-philosophy-grid {
    grid-template-columns: 1fr;
  }

  .about-timeline {
    gap: 18px;
    margin-top: 10px;
  }

  .about-timeline li {
    padding: 0 0 18px 54px;
    border-bottom: 1px solid rgba(111, 35, 75, 0.1);
  }

  .about-timeline li::before {
    top: 2px;
    left: 0;
  }

  .about-timeline li::after {
    display: none;
  }

  .about-philosophy-grid {
    gap: 18px;
  }

  .about-philosophy-grid article,
  .about-philosophy-grid article + article {
    padding: 0;
    border-left: 0;
  }
}

@media (max-width: 680px) {
  .page-about-leila-otoole .about-story-hero h1 {
    font-size: clamp(42px, 13vw, 56px);
  }

  .page-about-leila-otoole .about-story-hero .hero-actions,
  .page-about-leila-otoole .about-final-cta {
    grid-template-columns: 1fr;
  }

  .about-story-layout,
  .about-philosophy,
  .about-fitting-space {
    padding-right: 18px !important;
    padding-left: 18px !important;
  }

  .about-fitting-space {
    margin-right: 18px;
    margin-left: 18px;
  }

  .about-fitting-gallery {
    grid-template-columns: 1fr;
  }

  .about-fitting-gallery img {
    height: 210px;
  }
}

/* menu86: News & Resources becomes an editorial hub instead of a generic card page. */
.page-news-and-resources {
  background: linear-gradient(180deg, #fffaf8 0%, #f8eee9 42%, #fffdfa 100%);
}

.page-news-and-resources .editorial-resource-hero {
  min-height: 374px;
  grid-template-columns: minmax(360px, 0.78fr) minmax(520px, 1.22fr);
  padding-bottom: 34px;
}

.page-news-and-resources .editorial-resource-hero > div {
  max-width: 610px;
}

.page-news-and-resources .editorial-resource-hero h1 {
  max-width: 620px;
  font-size: clamp(42px, 4.35vw, 64px);
}

.page-news-and-resources .editorial-resource-hero .hero-text {
  max-width: 530px;
}

.page-news-and-resources .editorial-resource-hero > img {
  height: clamp(248px, 31svh, 360px);
  border-radius: 20px;
  object-position: center 56%;
  filter: saturate(0.9) contrast(0.98);
  -webkit-mask-image: none;
  mask-image: none;
}

.resource-filter-row,
.featured-guide-section,
.resource-topic-section,
.latest-articles-section {
  max-width: 1270px;
  margin-right: auto;
  margin-left: auto;
}

.resource-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 22px clamp(30px, 6vw, 88px) 6px !important;
  background: #fffdfa;
}

.resource-filter-row a {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border: 1px solid rgba(139, 41, 89, 0.2);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  color: var(--lo-plum);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  box-shadow: 0 10px 24px rgba(76, 20, 49, 0.04);
}

.resource-filter-row a.is-active,
.resource-filter-row a:hover {
  border-color: rgba(139, 41, 89, 0.52);
  background: #8f2f62;
  color: #fffdfa;
}

.featured-guide-section {
  padding-top: 24px !important;
  padding-bottom: 28px !important;
  background: #fffdfa;
}

.featured-guide-card {
  display: grid;
  grid-template-columns: minmax(360px, 0.92fr) minmax(320px, 1.08fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  padding: clamp(18px, 2.4vw, 28px);
  border: 1px solid rgba(139, 41, 89, 0.12);
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(252, 240, 236, 0.72)),
    #fffdfa;
  box-shadow: 0 22px 60px rgba(76, 20, 49, 0.08);
}

.featured-guide-card img {
  width: 100%;
  height: clamp(260px, 30vw, 430px);
  border-radius: 16px;
  object-fit: cover;
  object-position: center 50%;
}

.featured-guide-card h2,
.latest-articles-section .section-intro h2,
.resource-topic-section .section-intro h2 {
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  letter-spacing: 0;
}

.featured-guide-card h2 {
  margin: 10px 0 12px;
  font-size: clamp(36px, 4vw, 58px);
  line-height: 0.98;
}

.featured-guide-card p:not(.eyebrow) {
  max-width: 500px;
  color: #5f5360;
  font-size: 17px;
}

.featured-guide-card .text-link {
  display: inline-flex;
  margin-top: 22px;
  color: var(--lo-plum);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.featured-guide-card .text-link::after {
  content: " ->";
  padding-left: 4px;
}

.resource-topic-section {
  padding-top: 36px !important;
  padding-bottom: 18px !important;
  background: #f8eee9;
}

.page-news-and-resources .section-intro {
  margin-bottom: 20px;
}

.page-news-and-resources .section-intro h2 {
  max-width: 660px;
  font-size: clamp(30px, 3vw, 44px);
}

.resource-topic-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.resource-topic-grid a {
  display: grid;
  gap: 10px;
  min-height: 142px;
  padding: 20px;
  border: 1px solid rgba(139, 41, 89, 0.13);
  border-radius: 14px;
  background: rgba(255, 253, 250, 0.82);
  box-shadow: 0 14px 34px rgba(76, 20, 49, 0.05);
}

.resource-topic-grid a:hover {
  border-color: rgba(139, 41, 89, 0.38);
  background: #fffdfa;
  transform: translateY(-1px);
}

.resource-topic-grid strong {
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(24px, 2vw, 31px);
  font-weight: 500;
  line-height: 1.02;
}

.resource-topic-grid span {
  color: #6f6570;
  font-size: 14px;
  line-height: 1.55;
}

.latest-articles-section {
  padding-top: 42px !important;
  padding-bottom: 48px !important;
  background: #fffdfa;
}

.article-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.article-card a {
  display: grid;
  min-height: 100%;
  overflow: hidden;
  border: 1px solid rgba(139, 41, 89, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 16px 42px rgba(76, 20, 49, 0.06);
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.article-card a:hover {
  border-color: rgba(139, 41, 89, 0.36);
  box-shadow: 0 20px 52px rgba(76, 20, 49, 0.1);
  transform: translateY(-2px);
}

.article-card img {
  width: 100%;
  aspect-ratio: 1.58 / 1;
  object-fit: cover;
  background: #f4e8df;
}

.article-card:nth-child(2) img,
.article-card:nth-child(5) img {
  object-position: center 56%;
}

.article-card:nth-child(6) img {
  object-position: center top;
}

.article-card div {
  display: grid;
  gap: 9px;
  padding: 18px 18px 20px;
}

.article-card span {
  color: #b85d79;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.article-card h3 {
  color: var(--lo-plum-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(25px, 2.2vw, 33px);
  font-weight: 500;
  line-height: 1.02;
}

.article-card p {
  color: #6f6570;
  font-size: 14px;
  line-height: 1.55;
}

.article-card em {
  margin-top: 6px;
  color: var(--lo-plum);
  font-size: 13px;
  font-style: normal;
  font-weight: 800;
}

.page-news-and-resources .lo-bottom-cta {
  max-width: 1270px;
  margin-bottom: 42px;
}

@media (max-width: 1080px) {
  .page-news-and-resources .editorial-resource-hero,
  .featured-guide-card {
    grid-template-columns: 1fr;
  }

  .resource-topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

@media (max-width: 680px) {
  .page-news-and-resources .editorial-resource-hero {
    padding-bottom: 28px;
  }

  .resource-filter-row {
    padding-top: 18px !important;
  }

  .resource-filter-row a {
    min-height: 36px;
    padding-inline: 13px;
    font-size: 11px;
  }

  .featured-guide-card {
    padding: 14px;
    border-radius: 18px;
  }

  .featured-guide-card img {
    height: 230px;
    border-radius: 14px;
  }

  .resource-topic-grid,
  .article-grid {
    grid-template-columns: 1fr;
  }

  .resource-topic-grid a {
    min-height: 0;
  }

  .article-card h3 {
    font-size: 28px;
  }
}

/* menu87: align Resources hub to the supplied editorial flatlay reference. */
.page-news-and-resources .editorial-resource-hero {
  max-width: 1436px;
  min-height: 332px;
  grid-template-columns: minmax(430px, 0.82fr) minmax(620px, 1.18fr);
  gap: clamp(46px, 7vw, 118px);
  align-items: start;
  padding-top: clamp(30px, 3.2vw, 54px);
  padding-bottom: 18px;
  background: #fffdfa;
}

.page-news-and-resources .editorial-resource-hero h1 {
  max-width: 565px;
  margin-top: 10px;
  font-size: clamp(54px, 4.2vw, 72px);
  line-height: 1;
}

.page-news-and-resources .editorial-resource-hero .hero-text {
  max-width: 510px;
  margin-top: 24px;
  color: #3f3740;
  font-size: 17px;
  line-height: 1.72;
}

.page-news-and-resources .editorial-resource-hero .hero-actions {
  display: none;
}

.page-news-and-resources .editorial-resource-hero > img {
  width: 100%;
  height: clamp(265px, 20vw, 312px);
  border-radius: 14px;
  object-fit: cover;
  object-position: center;
  box-shadow: none;
}

.page-news-and-resources .resource-feature-topic-layout,
.page-news-and-resources .latest-articles-section {
  max-width: 1436px;
  margin-right: auto;
  margin-left: auto;
}

.resource-feature-topic-layout {
  display: grid;
  grid-template-columns: minmax(560px, 1.22fr) minmax(520px, 1fr);
  gap: 22px;
  align-items: stretch;
  padding-top: 0 !important;
  padding-bottom: 22px !important;
  background: #fffdfa;
}

.page-news-and-resources .featured-guide-card {
  grid-template-columns: minmax(240px, 0.82fr) minmax(320px, 1.25fr);
  gap: 0;
  min-height: 274px;
  overflow: hidden;
  padding: 0;
  border-color: rgba(139, 41, 89, 0.16);
  border-radius: 14px;
  background: #fffaf8;
  box-shadow: none;
}

.page-news-and-resources .featured-guide-card > div {
  display: grid;
  align-content: center;
  padding: 28px 30px;
}

.page-news-and-resources .featured-guide-card h2 {
  margin-top: 18px;
  font-size: clamp(31px, 2.35vw, 42px);
  line-height: 1.06;
}

.page-news-and-resources .featured-guide-card p:not(.eyebrow) {
  max-width: 285px;
  margin-top: 8px;
  color: #3f3740;
  font-size: 15px;
  line-height: 1.55;
}

.page-news-and-resources .featured-guide-card .text-link {
  margin-top: 24px;
  color: #8b2959;
  font-size: 14px;
}

.page-news-and-resources .featured-guide-card img {
  height: 100%;
  min-height: 274px;
  border-radius: 0;
  object-fit: cover;
  object-position: center;
}

.page-news-and-resources .resource-topic-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.page-news-and-resources .resource-topic-grid a {
  justify-items: center;
  align-content: start;
  min-height: 274px;
  padding: 24px 16px 20px;
  border-color: rgba(139, 41, 89, 0.16);
  border-radius: 14px;
  background: rgba(255, 253, 250, 0.82);
  text-align: center;
  box-shadow: none;
}

.page-news-and-resources .resource-topic-grid img {
  width: 64px;
  height: 64px;
  padding: 17px;
  border-radius: 50%;
  background: #f8e4e8;
  object-fit: contain;
}

.page-news-and-resources .resource-topic-grid strong {
  margin-top: 12px;
  font-family: "Plus Jakarta Sans", "Inter", sans-serif;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
}

.page-news-and-resources .resource-topic-grid span {
  max-width: 138px;
  color: #3f3740;
  font-size: 13px;
  line-height: 1.65;
}

.page-news-and-resources .resource-topic-grid em {
  margin-top: auto;
  color: #8b2959;
  font-size: 18px;
  font-style: normal;
  line-height: 1;
}

.page-news-and-resources .latest-articles-section {
  padding-top: 0 !important;
  padding-bottom: 54px !important;
}

.page-news-and-resources .latest-articles-section .section-intro {
  display: none;
}

.page-news-and-resources .article-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 20px;
}

.page-news-and-resources .article-card a {
  border-color: rgba(139, 41, 89, 0.14);
  border-radius: 12px;
  background: #fffaf8;
  box-shadow: none;
}

.page-news-and-resources .article-card img {
  aspect-ratio: 1.52 / 1;
  object-position: center;
}

.page-news-and-resources .article-card div {
  gap: 8px;
  padding: 18px 14px 18px;
}

.page-news-and-resources .article-card span {
  color: #8b2959;
  font-size: 11px;
}

.page-news-and-resources .article-card h3 {
  font-size: clamp(21px, 1.35vw, 26px);
  line-height: 1.08;
}

.page-news-and-resources .article-card p {
  color: #3f3740;
  font-size: 13px;
  line-height: 1.52;
}

.page-news-and-resources .article-card em {
  color: #8b2959;
  font-size: 13px;
}

@media (max-width: 1390px) {
  .page-news-and-resources .article-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1260px) {
  .resource-feature-topic-layout {
    grid-template-columns: 1fr;
  }

  .page-news-and-resources .resource-topic-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

}

@media (max-width: 1080px) {
  .page-news-and-resources .editorial-resource-hero {
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .page-news-and-resources .editorial-resource-hero > img {
    height: clamp(260px, 42vw, 360px);
  }
}

@media (max-width: 760px) {
  .page-news-and-resources .editorial-resource-hero {
    padding-top: 28px;
  }

  .page-news-and-resources .editorial-resource-hero h1 {
    font-size: clamp(42px, 12.2vw, 56px);
  }

  .page-news-and-resources .featured-guide-card {
    grid-template-columns: 1fr;
  }

  .page-news-and-resources .featured-guide-card img {
    min-height: 220px;
    order: -1;
  }

  .page-news-and-resources .resource-topic-grid,
  .page-news-and-resources .article-grid {
    grid-template-columns: 1fr;
  }

  .page-news-and-resources .resource-topic-grid a {
    min-height: 0;
  }
}

/* menu94: global premium-boutique UI polish pass. */
:root {
  --lo-page-max: 1216px;
  --lo-section-gap: clamp(48px, 6vw, 82px);
  --lo-section-gap-tight: clamp(30px, 4vw, 54px);
  --lo-radius-soft: 18px;
  --lo-radius-card: 14px;
  --lo-border-soft: 1px solid rgba(111, 23, 71, 0.12);
  --lo-surface-soft: rgba(255, 252, 249, 0.86);
  --lo-surface-solid: #fffdfa;
  --lo-text-soft: rgba(74, 54, 64, 0.78);
  --lo-shadow-soft: 0 18px 46px rgba(111, 23, 71, 0.075);
  --lo-shadow-lift: 0 24px 60px rgba(111, 23, 71, 0.11);
}

body {
  background:
    linear-gradient(180deg, rgba(255, 250, 248, 0.96) 0%, rgba(255, 246, 244, 0.9) 45%, rgba(255, 252, 249, 0.98) 100%),
    #fffaf8;
  color: #3c2432;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.42;
  background-image:
    linear-gradient(rgba(111, 23, 71, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(111, 23, 71, 0.018) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
}

.site-header {
  min-height: 66px;
  padding: 10px clamp(18px, 4vw, 54px);
  border-bottom-color: rgba(111, 23, 71, 0.09);
  background: rgba(255, 250, 248, 0.9);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72), 0 12px 28px rgba(111, 23, 71, 0.035);
}

.brand {
  min-width: 188px;
}

.brand-mark {
  width: 31px;
  height: 31px;
  border: 0;
  color: var(--lo-plum);
  font-size: 0;
}

.brand-mark::before {
  content: "⌁";
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 31px;
  line-height: 1;
  transform: rotate(-18deg);
}

.brand strong,
.site-footer strong {
  color: #531638;
  font-size: 25px;
  letter-spacing: 0;
}

.site-nav {
  gap: clamp(16px, 2vw, 30px);
  color: rgba(47, 32, 40, 0.88);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.site-nav a {
  position: relative;
  padding: 12px 0;
  border-bottom: 0;
}

.site-nav a::before {
  content: "";
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 7px;
  height: 1px;
  background: rgba(111, 23, 71, 0.65);
  transition: left 170ms ease, right 170ms ease;
}

.site-nav a:hover::before,
.site-nav a.is-active::before {
  left: 0;
  right: 0;
}

.header-actions {
  gap: 10px;
}

.account-icon-link {
  width: 42px;
  height: 42px;
  border-color: rgba(111, 23, 71, 0.17);
  background: rgba(255, 252, 250, 0.72);
  box-shadow: 0 8px 22px rgba(111, 23, 71, 0.045);
}

.header-cta,
.button {
  min-height: 44px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0.01em;
}

.header-cta {
  padding: 0 22px;
  border: 1px solid rgba(126, 33, 82, 0.18);
  background: rgba(126, 33, 82, 0.08);
  color: #6f1747;
  box-shadow: 0 8px 20px rgba(111, 23, 71, 0.06);
}

.header-cta:hover {
  background: rgba(126, 33, 82, 0.13);
  box-shadow: 0 12px 26px rgba(111, 23, 71, 0.08);
}

main > section:not(.hero):not(.products-hero):not(.template-hero):not(.subpage-hero):not(.product-journey-strip) {
  margin-top: var(--lo-section-gap-tight);
  margin-bottom: var(--lo-section-gap-tight);
}

.hero,
.products-hero,
.subpage-main .template-hero,
.subpage-hero,
.location-reference .location-reference-hero {
  max-width: var(--lo-page-max);
  margin-inline: auto;
}

.home-page main > .hero {
  min-height: 486px;
  padding-top: clamp(28px, 4vw, 50px);
  padding-bottom: clamp(76px, 8vw, 104px);
  grid-template-columns: minmax(440px, 0.88fr) minmax(480px, 1.12fr);
}

.hero h1,
.products-hero h1,
.template-hero h1,
.subpage-hero h1,
.location-reference h1 {
  color: #55163a;
  letter-spacing: 0;
}

.home-page main > .hero h1 {
  max-width: 610px;
  font-size: clamp(58px, 6vw, 82px);
  line-height: 0.95;
}

.home-page main > .hero .hero-text {
  max-width: 560px;
  margin-top: 22px;
  color: rgba(74, 54, 64, 0.82);
  font-size: 18px;
  line-height: 1.55;
  font-weight: 400;
  letter-spacing: -0.01em;
}

.hero-guidance-note {
  max-width: 480px;
  margin-top: 14px;
  padding: 12px 16px;
  border: var(--lo-border-soft);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.62);
  color: rgba(74, 54, 64, 0.68);
  font-size: 14px;
  line-height: 1.55;
  box-shadow: 0 12px 30px rgba(111, 23, 71, 0.04);
}

.hero-media,
.products-hero-media,
.subpage-main .template-hero > img,
.subpage-main .hero-slider,
.subpage-hero > img {
  border-radius: 18px;
  overflow: hidden;
}

.home-page main > .hero .hero-media {
  height: clamp(420px, 40vw, 510px);
  margin-top: -10px;
}

.home-page main > .hero .hero-media::before,
.products-hero-media::before {
  background: linear-gradient(90deg, #fffaf8 0%, rgba(255, 250, 248, 0.74) 24%, transparent 58%);
}

.home-page main > .support-pathways {
  max-width: var(--lo-page-max);
  margin-top: clamp(-78px, -5vw, -56px);
  margin-inline: auto;
}

.support-pathways .section-intro h2,
.locations .location-lead h2 {
  color: #5a183d;
}

.pathway-grid,
.product-category-grid {
  gap: 18px;
}

.home-page main > .support-pathways .pathway-card,
.home-page main > .support-pathways .pathway-card:nth-child(1),
.product-category-card,
.product-card,
.option-card,
.funding-media-card,
.map-card,
.contact-option-card,
.contact-options > a,
.contact-options > div {
  border: var(--lo-border-soft);
  border-radius: var(--lo-radius-card);
  background: var(--lo-surface-soft);
  box-shadow: 0 14px 38px rgba(111, 23, 71, 0.055);
}

.home-page main > .support-pathways .pathway-card,
.home-page main > .support-pathways .pathway-card:nth-child(1) {
  min-height: 262px;
  padding: 18px 19px 0;
  grid-template-rows: 42px auto auto 1fr 106px;
}

.home-page main > .support-pathways .pathway-card::after,
.home-page main > .support-pathways .pathway-card:nth-child(1)::after {
  height: 106px;
  border-radius: 0 0 13px 13px;
}

.home-page main > .support-pathways .pathway-card:hover,
.product-category-card:hover,
.product-card:hover,
.option-card:hover {
  border-color: rgba(111, 23, 71, 0.2);
  box-shadow: var(--lo-shadow-lift);
  transform: translateY(-2px);
}

.home-trust-strip,
.product-journey-strip,
.product-fitting-strip,
.lo-trust-band {
  max-width: var(--lo-page-max);
  margin-inline: auto;
  border: var(--lo-border-soft);
  border-radius: var(--lo-radius-soft);
  background: rgba(255, 253, 250, 0.72);
  box-shadow: 0 12px 32px rgba(111, 23, 71, 0.045);
}

.home-trust-strip {
  margin-top: clamp(20px, 3vw, 34px);
  margin-bottom: 0;
  padding: 0;
}

.trust-strip-grid article {
  min-height: 70px;
  padding: 16px 22px;
}

.locations {
  max-width: var(--lo-page-max);
  margin-inline: auto;
}

.location-list {
  gap: 14px;
}

.location-list article {
  min-height: 76px;
  border: var(--lo-border-soft);
  background: rgba(255, 253, 250, 0.76);
  box-shadow: 0 10px 28px rgba(111, 23, 71, 0.04);
}

.home-final-cta,
.template-cta-panel,
.lo-bottom-cta {
  max-width: var(--lo-page-max);
  min-height: 132px;
  margin-inline: auto;
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(83, 19, 54, 0.98), rgba(136, 42, 86, 0.95)),
    #6f1747;
  box-shadow: 0 24px 58px rgba(111, 23, 71, 0.16);
}

.products-hero.products-hero-refined {
  max-width: var(--lo-page-max);
  padding-top: clamp(42px, 5vw, 64px);
  padding-bottom: clamp(48px, 5vw, 66px);
  grid-template-columns: minmax(390px, 0.84fr) minmax(540px, 1.16fr);
  gap: clamp(34px, 4vw, 58px);
}

.products-hero.products-hero-refined h1 {
  max-width: 520px;
  font-size: clamp(50px, 5.2vw, 66px);
  line-height: 0.98;
}

.products-hero.products-hero-refined .hero-text {
  max-width: 460px;
  color: var(--lo-text-soft);
  font-size: 16px;
  line-height: 1.65;
}

.products-hero-media {
  min-height: 348px;
  border: var(--lo-border-soft);
  box-shadow: var(--lo-shadow-soft);
}

.products-hero-media img {
  height: 100%;
  min-height: 348px;
  object-fit: cover;
}

.products-hero-card {
  right: 22px;
  bottom: 22px;
  max-width: 285px;
  border: var(--lo-border-soft);
  border-radius: 16px;
  background: rgba(255, 253, 250, 0.86);
  box-shadow: 0 18px 42px rgba(111, 23, 71, 0.09);
}

.product-journey-strip {
  margin-top: clamp(-30px, -2.4vw, -20px);
  margin-bottom: clamp(44px, 5vw, 66px);
  padding: 22px 28px;
  gap: 18px;
}

.product-journey-strip article {
  min-height: 76px;
  align-items: center;
}

.product-journey-strip span {
  width: 44px;
  height: 44px;
  font-size: 14px;
}

.public-product-showcase,
.member-pricing-module,
.how-it-works,
.popular-styles,
.product-final-cta,
.product-fitting-strip {
  max-width: var(--lo-page-max);
  margin-inline: auto;
}

.public-product-showcase {
  margin-top: 0;
}

.public-product-showcase .section-intro {
  max-width: 690px;
  margin-bottom: 26px;
}

.public-product-showcase .section-intro h2 {
  max-width: 680px;
  color: #5a183d;
  font-size: clamp(38px, 4vw, 52px);
  line-height: 1.05;
}

.product-category-card {
  overflow: hidden;
  min-height: 398px;
  transition: border-color 170ms ease, box-shadow 170ms ease, transform 170ms ease;
}

.product-category-media {
  height: 196px;
  border-radius: 13px 13px 0 0;
}

.product-category-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-category-media span {
  left: 18px;
  bottom: 16px;
  border: 1px solid rgba(111, 23, 71, 0.18);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.84);
  color: #6f1747;
  box-shadow: 0 8px 18px rgba(111, 23, 71, 0.08);
}

.product-category-card h3,
.product-card h3 {
  color: #5a183d;
}

.product-category-card p {
  color: rgba(74, 54, 64, 0.74);
  line-height: 1.55;
}

.product-category-actions {
  align-items: center;
  border-top: 1px solid rgba(111, 23, 71, 0.08);
  padding-top: 14px;
}

.member-pricing-module {
  border-radius: 18px;
  background: rgba(255, 252, 249, 0.78);
  box-shadow: 0 16px 42px rgba(111, 23, 71, 0.055);
}

.subpage-main .template-hero,
.subpage-hero {
  padding-top: clamp(42px, 5vw, 64px);
  padding-bottom: clamp(42px, 5vw, 62px);
  border-bottom: 1px solid rgba(111, 23, 71, 0.07);
}

.subpage-main .template-hero > img,
.subpage-main .hero-slider {
  height: clamp(260px, 26vw, 330px);
  box-shadow: 0 18px 46px rgba(111, 23, 71, 0.07);
}

.site-footer {
  margin-top: clamp(54px, 7vw, 88px);
  border-top-color: rgba(111, 23, 71, 0.1);
  background: rgba(255, 252, 249, 0.76);
}

@media (max-width: 1180px) {
  .site-header {
    min-height: 64px;
  }

  .home-page main > .hero,
  .products-hero.products-hero-refined {
    grid-template-columns: 1fr;
  }

  .home-page main > .hero {
    padding-bottom: 54px;
  }

  .home-page main > .support-pathways,
  .product-journey-strip {
    margin-top: 0;
  }

  .products-hero-media,
  .products-hero-media img {
    min-height: 300px;
  }
}

@media (max-width: 760px) {
  :root {
    --lo-section-gap-tight: 32px;
  }

  .site-header {
    padding: 9px 16px;
  }

  .brand strong {
    font-size: 22px;
  }

  .header-cta {
    min-height: 40px;
    padding: 0 16px;
  }

  .home-page main > .hero,
  .products-hero.products-hero-refined,
  .subpage-main .template-hero,
  .subpage-hero {
    padding-inline: 18px;
  }

  .home-page main > .hero h1 {
    font-size: clamp(44px, 13vw, 56px);
  }

  .home-page main > .hero .hero-text {
    font-size: 16px;
  }

  .hero-guidance-note {
    border-radius: 16px;
  }

  .home-page main > .support-pathways,
  .home-trust-strip,
  .locations,
  .home-final-cta,
  .product-journey-strip,
  .public-product-showcase,
  .member-pricing-module,
  .product-final-cta {
    width: calc(100% - 36px);
  }

  .home-page main > .support-pathways .pathway-grid,
  .product-category-grid {
    grid-template-columns: 1fr;
  }

  .product-journey-strip {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .product-category-card {
    min-height: 0;
  }

  .product-category-media {
    height: 180px;
  }
}

/* menu94: tighten product overview rhythm and mobile hero media. */
.products-page main > section.product-journey-strip,
body:not(.home-page) main > section.product-journey-strip {
  margin-bottom: clamp(28px, 3vw, 42px);
}

.products-page main > section.public-product-showcase,
body:not(.home-page) main > section.public-product-showcase {
  padding-top: 0;
  margin-top: 0;
}

.products-page .public-product-showcase .section-intro,
body:not(.home-page) .public-product-showcase .section-intro {
  margin-bottom: 24px;
}

@media (max-width: 760px) {
  .home-page main > .hero .hero-media,
  .products-hero-media,
  .products-hero-media img {
    height: auto;
    min-height: 238px;
    max-height: 320px;
  }

  .home-page main > .hero .hero-media img,
  .products-hero-media img {
    height: 100%;
    object-fit: cover;
  }

  .products-hero-card {
    position: relative;
    right: auto;
    bottom: auto;
    margin: -30px 14px 0;
  }
}

/* menu94: repair Products page width axis after broad polish pass. */
.products-page {
  --products-axis: min(var(--lo-page-max), calc(100% - 112px));
}

.products-page main > section.products-hero.products-hero-refined,
.products-page main > section.product-journey-strip,
.products-page main > section.public-product-showcase,
.products-page main > section.member-pricing-module,
.products-page main > section.how-it-works,
.products-page main > section.popular-styles,
.products-page main > section.product-final-cta {
  width: var(--products-axis);
  max-width: var(--lo-page-max);
  margin-left: auto;
  margin-right: auto;
}

.products-page main > section.products-hero.products-hero-refined {
  padding-left: 0;
  padding-right: 0;
  grid-template-columns: minmax(430px, 0.45fr) minmax(0, 0.55fr);
  gap: clamp(28px, 4vw, 58px);
  min-height: 0;
  padding-top: clamp(46px, 5vw, 62px);
  padding-bottom: clamp(48px, 5vw, 66px);
  align-items: center;
}

.products-page main > section.products-hero.products-hero-refined::before {
  inset: 0;
}

.products-page main > section.products-hero.products-hero-refined .products-hero-media {
  min-width: 0;
  width: 100%;
  height: clamp(390px, 34vw, 468px);
}

.products-page main > section.product-journey-strip {
  margin-top: clamp(-32px, -2.2vw, -22px);
  margin-bottom: clamp(30px, 3vw, 42px);
  padding-top: 20px;
  padding-bottom: 20px;
}

.products-page main > section.public-product-showcase {
  padding-left: 0;
  padding-right: 0;
}

.products-page main > section.products-hero.products-hero-refined h1 {
  max-width: 520px;
  font-size: clamp(48px, 4.2vw, 58px);
  line-height: 0.98;
}

.products-page main > section.products-hero.products-hero-refined .hero-text {
  max-width: 450px;
  margin-top: 18px;
}

.products-page main > section.products-hero.products-hero-refined .hero-actions {
  margin-top: 22px;
}

.products-page main > section.products-hero.products-hero-refined .products-hero-media img {
  min-height: 0;
}

.products-page main > section.public-product-showcase .section-intro {
  margin-bottom: 22px;
}

@media (max-width: 1180px) {
  .products-page {
    --products-axis: calc(100% - 56px);
  }

  .products-page main > section.products-hero.products-hero-refined {
    grid-template-columns: 1fr;
  }

  .products-page main > section.products-hero.products-hero-refined .products-hero-media {
    height: clamp(300px, 44vw, 420px);
  }
}

@media (max-width: 760px) {
  .products-page {
    --products-axis: calc(100% - 36px);
  }
}

/* menu94: whole-site unity pass. Keeps the existing content, but normalises page rhythm. */
:root {
  --lo-axis: min(1216px, calc(100% - 112px));
  --lo-hero-min: 0;
  --lo-hero-pad-y: clamp(44px, 5vw, 64px);
  --lo-hero-pad-x: clamp(48px, 6vw, 72px);
  --lo-media-h: clamp(276px, 25vw, 340px);
  --lo-section-stack: clamp(38px, 5vw, 64px);
}

.site-header {
  width: 100%;
  min-height: 64px;
  padding: 9px clamp(24px, 5vw, 64px);
}

.site-nav > .nav-item > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-top: 0;
  padding-bottom: 0;
}

.site-nav > .nav-item.has-menu > a::after {
  content: none;
}

.nav-dropdown.is-mega.is-contextual {
  top: calc(100% + 8px);
  width: min(520px, calc(100vw - 48px));
  border-radius: 18px;
  border: 1px solid rgba(111, 23, 71, 0.12);
  background: rgba(255, 252, 249, 0.96);
  box-shadow: 0 22px 58px rgba(111, 23, 71, 0.13);
}

.mega-menu {
  gap: 20px;
  padding: 20px;
}

.mega-column {
  gap: 8px;
}

.mega-promo {
  border-radius: 16px;
}

body:not(.home-page):not(.products-page):not(.care-body):not(.boutique-admin-body):not(.care-login-page-body) main,
.products-page main,
.home-page main {
  padding-top: 0;
}

body:not(.home-page):not(.products-page):not(.care-body):not(.boutique-admin-body):not(.care-login-page-body) main > section,
.products-page main > section,
.home-page main > section {
  scroll-margin-top: 86px;
}

.home-page main > .hero,
.products-page main > .products-hero.products-hero-refined,
.subpage-main > .template-hero,
.subpage-main > .subpage-hero,
main.location-reference > .location-reference-hero,
.product-detail-hero,
.contact-reference-page {
  width: var(--lo-axis);
  max-width: 1216px;
  margin-left: auto;
  margin-right: auto;
}

.subpage-main > .template-hero,
.subpage-main > .subpage-hero,
main.location-reference > .location-reference-hero {
  min-height: var(--lo-hero-min);
  padding: var(--lo-hero-pad-y) var(--lo-hero-pad-x);
  display: grid;
  grid-template-columns: minmax(360px, 0.44fr) minmax(0, 0.56fr);
  gap: clamp(34px, 4vw, 58px);
  align-items: center;
  border: 0;
  border-bottom: 1px solid rgba(111, 23, 71, 0.075);
  background:
    radial-gradient(circle at 80% 18%, rgba(246, 213, 218, 0.32), transparent 34%),
    linear-gradient(90deg, rgba(255, 252, 250, 0.96), rgba(255, 248, 246, 0.78));
}

.subpage-main > .template-hero > div,
.subpage-main > .subpage-hero > div,
main.location-reference > .location-reference-hero > .location-hero-copy {
  max-width: 520px;
}

.subpage-main > .template-hero h1,
.subpage-main > .subpage-hero h1,
main.location-reference > .location-reference-hero h1 {
  max-width: 520px;
  font-size: clamp(46px, 4.35vw, 62px);
  line-height: 0.98;
}

.subpage-main > .template-hero .hero-text,
.subpage-main > .subpage-hero .hero-text,
main.location-reference > .location-reference-hero .hero-text {
  max-width: 470px;
  margin-top: 16px;
  color: rgba(74, 54, 64, 0.76);
  font-size: 16px;
  line-height: 1.62;
}

.subpage-main > .template-hero .hero-actions,
.subpage-main > .subpage-hero .hero-actions,
main.location-reference > .location-reference-hero .hero-actions {
  margin-top: 22px;
  gap: 12px;
}

.subpage-main > .template-hero > img,
.subpage-main > .subpage-hero > img,
.subpage-main > .template-hero .hero-slider,
main.location-reference > .location-reference-hero .location-hero-map {
  width: 100%;
  height: var(--lo-media-h);
  min-height: 0;
  border-radius: 18px;
  border: 1px solid rgba(111, 23, 71, 0.10);
  box-shadow: 0 18px 46px rgba(111, 23, 71, 0.075);
}

.subpage-main > .template-hero > img,
.subpage-main > .subpage-hero > img,
.subpage-main > .template-hero .hero-slider img,
main.location-reference > .location-reference-hero .location-hero-map img {
  object-fit: cover;
}

.subpage-main.template-browse .template-hero.swim-product-hero,
.subpage-main.template-solution .template-hero.specialty-lymph-hero,
.subpage-main.template-process .template-hero.reimbursement-hero,
.subpage-main.template-resource .template-hero.about-story-hero,
main.location-reference > .location-reference-hero {
  min-height: 0;
}

main.location-reference > .location-reference-hero {
  padding-bottom: var(--lo-hero-pad-y);
}

main.location-reference .location-hero-map {
  overflow: visible;
}

main.location-reference .location-hero-map img {
  height: 100%;
}

main.location-reference .location-hero-map .hero-care-card {
  right: 24px;
  width: min(320px, 48%);
  border-radius: 18px;
  border: 1px solid rgba(111, 23, 71, 0.10);
  background: rgba(255, 253, 250, 0.9);
  box-shadow: 0 18px 44px rgba(111, 23, 71, 0.10);
}

.product-detail-hero {
  margin-top: clamp(34px, 4vw, 56px);
  padding: clamp(42px, 5vw, 64px) var(--lo-hero-pad-x);
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(360px, 0.46fr) minmax(0, 0.54fr);
  gap: clamp(36px, 5vw, 72px);
  align-items: center;
  border-radius: 22px;
  background: linear-gradient(105deg, rgba(255, 252, 249, 0.92), rgba(255, 247, 245, 0.68));
}

.product-detail-copy {
  max-width: 530px;
}

.product-detail-copy .breadcrumb-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
  color: rgba(111, 23, 71, 0.72);
  font-size: 12px;
  letter-spacing: 0.08em;
}

.product-detail-copy .breadcrumb-link::before {
  content: "←";
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid rgba(111, 23, 71, 0.14);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.78);
  font-size: 13px;
  letter-spacing: 0;
}

.product-detail-copy h1 {
  max-width: 520px;
  font-size: clamp(50px, 5vw, 70px);
  line-height: 0.96;
}

.product-detail-gallery {
  border-radius: 22px;
  border: 1px solid rgba(111, 23, 71, 0.10);
  background: rgba(255, 248, 246, 0.76);
  box-shadow: 0 20px 52px rgba(111, 23, 71, 0.08);
}

.product-detail-thumbs button span,
.product-detail-thumbs button em {
  display: none;
}

.product-detail-thumbs {
  gap: 10px;
}

.product-detail-thumbs button {
  min-height: 76px;
  border-radius: 14px;
}

.contact-reference-page {
  margin-top: clamp(34px, 4vw, 56px);
  min-height: 0;
  padding: clamp(46px, 5vw, 64px) var(--lo-hero-pad-x);
  display: grid;
  grid-template-columns: minmax(360px, 0.42fr) minmax(0, 0.58fr);
  gap: clamp(36px, 5vw, 72px);
  align-items: center;
  border-radius: 22px;
  border: 1px solid rgba(111, 23, 71, 0.08);
  background:
    linear-gradient(90deg, rgba(255, 252, 250, 0.96), rgba(255, 248, 246, 0.68)),
    url("assets/editorial-contact.png") right center / cover no-repeat;
  box-shadow: 0 20px 56px rgba(111, 23, 71, 0.06);
}

.contact-reference-page::before {
  opacity: 0.34;
}

.contact-form-scene,
.contact-card-form {
  max-width: 560px;
}

.contact-card-form {
  border-radius: 22px;
  box-shadow: 0 20px 56px rgba(111, 23, 71, 0.085);
}

.contact-options {
  gap: 12px;
}

.contact-options .contact-hours {
  grid-template-columns: 40px 1fr;
  row-gap: 8px;
  padding: 20px 22px;
  border-radius: 18px;
  background: rgba(255, 250, 248, 0.88);
  box-shadow: 0 8px 24px rgba(111, 23, 71, 0.04);
}

.contact-options .contact-hours > span:not(.contact-option-icon) {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 4px 0;
}

.decision-hub,
.comparison-section,
.support-specialty,
.reimbursement-steps,
.reimbursement-practical,
.map-section,
.location-card-section,
.resource-featured,
.article-grid,
.template-cta-panel,
.lo-trust-band,
.lo-bottom-cta,
.locations,
.home-trust-strip,
.home-final-cta,
.member-pricing-module,
.how-it-works,
.popular-styles,
.product-final-cta,
.product-detail-info,
.related-products {
  width: var(--lo-axis);
  max-width: 1216px;
  margin-left: auto;
  margin-right: auto;
}

main > section:not(.hero):not(.products-hero):not(.template-hero):not(.subpage-hero):not(.product-journey-strip):not(.product-detail-hero):not(.contact-reference-page) {
  margin-top: var(--lo-section-stack);
  margin-bottom: var(--lo-section-stack);
}

.section-intro {
  margin-bottom: clamp(22px, 3vw, 34px);
}

.section-intro h2,
.location-section-head h2,
.contact-reference-page h1 {
  color: #5a183d;
}

.decision-card-grid,
.support-specialty-grid,
.product-grid,
.article-grid,
.resource-topic-grid,
.location-list-detailed {
  gap: 18px;
}

.decision-card-grid a,
.product-card,
.resource-card,
.article-card,
.location-detail-card,
.comparison-table,
.important-notes,
.checklist-card,
.contact-option,
.contact-hours {
  border: 1px solid rgba(111, 23, 71, 0.105);
  border-radius: 18px;
  background: rgba(255, 252, 249, 0.82);
  box-shadow: 0 14px 38px rgba(111, 23, 71, 0.055);
}

.decision-card-grid a {
  overflow: hidden;
}

.decision-card-grid a img,
.product-card img,
.article-card img,
.resource-card img {
  border-radius: 0;
}

.map-section.location-card-section {
  padding-top: var(--lo-section-stack);
  border-top: 1px solid rgba(111, 23, 71, 0.07);
}

.location-section-head {
  align-items: end;
  margin-bottom: 28px;
}

.location-help-panel {
  border-radius: 18px;
  border: 1px solid rgba(111, 23, 71, 0.10);
  background: rgba(255, 252, 249, 0.8);
}

.home-page main > .support-pathways {
  width: var(--lo-axis);
}

.home-page main > .hero {
  width: var(--lo-axis);
  min-height: 0;
}

.home-page main > .hero .hero-media {
  border-radius: 0;
}

.products-page main > section.products-hero.products-hero-refined,
.products-page main > section.product-journey-strip,
.products-page main > section.public-product-showcase {
  width: var(--lo-axis);
}

@media (min-width: 1181px) {
  .subpage-main.template-browse .template-hero.product-family-hero h1,
  .subpage-main.template-solution .template-hero.specialty-lymph-hero h1,
  .subpage-main.template-browse .template-hero.swim-product-hero h1 {
    max-width: 500px;
  }
}

@media (max-width: 1180px) {
  :root {
    --lo-axis: calc(100% - 56px);
  }

  .subpage-main > .template-hero,
  .subpage-main > .subpage-hero,
  main.location-reference > .location-reference-hero,
  .product-detail-hero,
  .contact-reference-page {
    grid-template-columns: 1fr;
  }

  .subpage-main > .template-hero > img,
  .subpage-main > .subpage-hero > img,
  .subpage-main > .template-hero .hero-slider,
  main.location-reference > .location-reference-hero .location-hero-map {
    height: clamp(260px, 42vw, 390px);
  }

  main.location-reference .location-hero-map .hero-care-card {
    position: relative;
    right: auto;
    top: auto;
    width: auto;
    max-width: none;
    margin: -44px 18px 0;
  }
}

@media (max-width: 760px) {
  :root {
    --lo-axis: calc(100% - 36px);
    --lo-hero-pad-x: 0;
    --lo-hero-pad-y: 34px;
    --lo-section-stack: 34px;
  }

  .site-header {
    padding: 9px 16px;
  }

  .subpage-main > .template-hero,
  .subpage-main > .subpage-hero,
  main.location-reference > .location-reference-hero,
  .product-detail-hero,
  .contact-reference-page {
    width: var(--lo-axis);
    padding: var(--lo-hero-pad-y) 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .subpage-main > .template-hero h1,
  .subpage-main > .subpage-hero h1,
  main.location-reference > .location-reference-hero h1,
  .product-detail-copy h1,
  .contact-reference-page h1 {
    font-size: clamp(42px, 12vw, 54px);
  }

  .subpage-main > .template-hero > img,
  .subpage-main > .subpage-hero > img,
  .subpage-main > .template-hero .hero-slider,
  main.location-reference > .location-reference-hero .location-hero-map {
    height: clamp(220px, 58vw, 300px);
  }

  .product-detail-hero,
  .contact-reference-page {
    gap: 28px;
  }

  .product-detail-thumbs {
    grid-template-columns: repeat(4, minmax(62px, 1fr));
  }

  .contact-options .contact-hours {
    grid-template-columns: 34px 1fr;
  }

  .contact-options .contact-hours > span:not(.contact-option-icon) {
    grid-column: 1 / -1;
  }
}

/* menu94: page-specific cleanup after the unity pass. */
.subpage-main.template-process .template-hero.reimbursement-hero,
.subpage-main.template-process .template-hero.nz-specialty-hero {
  width: var(--lo-axis);
  max-width: 1216px;
  margin-left: auto;
  margin-right: auto;
  padding: var(--lo-hero-pad-y) var(--lo-hero-pad-x);
  grid-template-columns: minmax(360px, 0.44fr) minmax(0, 0.56fr);
}

.subpage-main.template-process .template-hero.reimbursement-hero > img,
.subpage-main.template-process .template-hero.nz-specialty-hero > img {
  height: var(--lo-media-h);
}

.subpage-main.template-browse .template-hero.swim-product-hero {
  padding-top: clamp(40px, 4.4vw, 56px);
  padding-bottom: clamp(40px, 4.4vw, 56px);
  grid-template-columns: minmax(360px, 0.45fr) minmax(0, 0.55fr);
}

.subpage-main.template-browse .template-hero.swim-product-hero h1,
main.location-reference > .location-reference-hero h1 {
  font-size: clamp(44px, 4vw, 56px);
  line-height: 0.99;
}

.subpage-main.template-browse .template-hero.swim-product-hero .hero-slider {
  height: clamp(270px, 24vw, 320px);
}

main.location-reference > .location-reference-hero {
  padding-top: clamp(42px, 4.6vw, 58px);
  padding-bottom: clamp(42px, 4.6vw, 58px);
  grid-template-columns: minmax(390px, 0.46fr) minmax(0, 0.54fr);
}

main.location-reference > .location-reference-hero .hero-text {
  max-width: 440px;
}

main.location-reference .location-trust-card {
  margin-top: 18px;
  padding: 17px 18px;
}

main.location-reference .location-hero-map {
  height: clamp(300px, 27vw, 370px);
}

main.location-reference .location-hero-map .hero-care-card {
  width: min(300px, 48%);
  padding: 20px;
  gap: 14px;
}

.contact-reference-page {
  padding-top: clamp(38px, 4.2vw, 54px);
  padding-bottom: clamp(38px, 4.2vw, 54px);
  grid-template-columns: minmax(340px, 0.4fr) minmax(0, 0.6fr);
}

.contact-reference-page h1 {
  max-width: 430px;
  font-size: clamp(46px, 4.2vw, 60px);
  line-height: 0.98;
}

.contact-options .contact-option {
  min-height: 66px;
  padding: 13px 16px;
}

.contact-card-form {
  padding: clamp(28px, 3vw, 42px);
}

@media (max-width: 1180px) {
  .subpage-main.template-process .template-hero.reimbursement-hero,
  .subpage-main.template-process .template-hero.nz-specialty-hero,
  .subpage-main.template-browse .template-hero.swim-product-hero,
  main.location-reference > .location-reference-hero,
  .contact-reference-page {
    grid-template-columns: 1fr;
  }

  main.location-reference .location-hero-map {
    height: clamp(270px, 42vw, 390px);
  }
}
