/* Public presentation only. Opt-in surfaces keep catalog, canvas, and CRM
   component styles out of this cascade. Tokens match the luxury theme. */
.public-site {
  --pl-ink: #102a43;
  --pl-muted: #57534e;
  --pl-paper: #fafaf9;
  --pl-line: #e7e5e4;
  --pl-gold: #eab308;
  --pl-radius: 16px;
  --pl-shadow: 0 2px 4px rgba(16, 42, 67, .025), 0 12px 32px -20px rgba(16, 42, 67, .18);
  --public-nav-height: 88px;
  background: white;
}
.public-site .pl-section,
.public-site .pl-form-section {
  padding-block: clamp(56px, 6vw, 88px);
  scroll-margin-top: calc(var(--public-nav-height) + 24px);
}
.public-site .pl-section > .container { max-width: 1200px; }
.public-site .pl-section > :is(.container, .mx-auto),
.public-site .pl-form-section > .container { padding-inline: clamp(20px, 4vw, 40px); }
.public-site .pl-section :is(h1, h2, h3),
.public-site .pl-form-section :is(h1, h2) { text-wrap: balance; }
.public-site .pl-section h2,
.public-site .pl-form-section > .container > h2,
.public-site .pl-form-section > .container > .text-center > h2 {
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1.2;
  letter-spacing: -.035em;
  margin-top: 0;
  margin-bottom: 20px;
}
.public-site .pl-section h2::after,
.public-site .pl-form-section > .container > h2::after,
.public-site .pl-form-section > .container > .text-center > h2::after { display: none; }
.public-site .pl-section p,
.public-site .pl-form-section > .container > p {
  line-height: 1.75;
  text-wrap: pretty;
}
.public-site .pl-section .text-base-content\/70 { color: var(--pl-muted); }
.public-site .pl-section .mb-16 { margin-bottom: 40px; }
.public-site .pl-section :is(.gap-8, .gap-12) { gap: 28px; }
.public-site .pl-section .grid > * { min-width: 0; }

/* Use weight, line length, and spacing to establish the first-read order. */
.public-site .pl-hero {
  padding-block: clamp(56px, 6vw, 88px);
  border-bottom: 1px solid var(--pl-line);
}
.public-site .pl-hero h1 {
  margin-top: 0;
  font-size: clamp(2.4rem, 4.25vw, 3.75rem);
  line-height: 1.08;
  letter-spacing: -.045em;
  font-weight: 750;
  filter: none;
  text-shadow: none;
}
.public-site .pl-hero :is(.grid, .hero-content > .grid) { gap: clamp(32px, 4vw, 64px); }
.public-site .pl-hero p { font-size: 1.0625rem; line-height: 1.8; }
.public-site .pl-hero p.uppercase {
  font-size: .75rem;
  letter-spacing: .14em;
  line-height: 1.6;
}
.public-site #home.pl-home-hero {
  min-height: 0;
  background: linear-gradient(120deg, #0a1f38, #102a43 65%, #243b53);
}
.public-site #home .hero-content { padding: 0 clamp(20px, 4vw, 40px); max-width: 1280px; }
.public-site #home .hero-content :is(h1, p) { text-shadow: none; }
.public-site #home .hero-content p { color: #d9e2ec; opacity: 1; }
.public-site .pl-hero-media {
  height: clamp(300px, 32vw, 460px);
  border-radius: 20px;
  box-shadow: 0 20px 48px -24px rgba(0, 0, 0, .5);
  animation: none;
}
.public-site #home .pl-hero-copy .btn {
  width: auto;
  min-width: 190px;
  background: var(--pl-gold);
  border-color: var(--pl-gold);
  color: var(--pl-ink);
}
.public-site #home .pl-hero-copy .btn:hover { background: #fde047; border-color: #fde047; }
.public-site #about-hero { background: var(--pl-paper); }
.public-site #about-hero h1,
.public-page-partner-landing .pl-hero h1 { font-size: clamp(2.25rem, 3.6vw, 3.25rem); }
.public-site #about-hero img {
  padding: 24px;
  border-radius: 24px;
  background: white;
  box-shadow: var(--pl-shadow);
}
.public-site .services-hero img { border-radius: 20px; box-shadow: 0 20px 48px -24px rgba(0, 0, 0, .5); }
.public-site .services-hero__highlight {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(217, 226, 236, .18);
  border-radius: 8px;
}
.public-site #catalog-hero { background: var(--pl-paper); }
.public-site #catalog-hero h1 { max-width: 850px; margin-inline: auto; }
.public-site #catalog-hero p { color: var(--pl-muted); }
.public-site #catalog-filters { top: var(--public-nav-height); }
.public-site #catalog-filters > .container { max-width: 1200px; padding: 16px 24px; }
.public-site #catalog-filters :is(.input, .select) {
  min-height: 44px;
  height: 44px;
  border: 1px solid #d6d3d1;
  border-radius: 8px;
  font-size: .875rem;
  background: var(--pl-paper);
}
.public-site #catalog-search-input { padding-left: 16px; }
.public-site #catalog-filters :is(.input, .select):focus-visible { outline: 3px solid #ca8a04; outline-offset: 3px; }

/* Static marketing cards are explicitly marked; rendered products are not. */
.public-site .pl-card {
  border: 1px solid var(--pl-line);
  border-radius: var(--pl-radius);
  box-shadow: var(--pl-shadow);
  transform: none;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.public-site .pl-card:hover {
  transform: none;
  border-color: #d6d3d1;
  box-shadow: 0 4px 8px rgba(16, 42, 67, .03), 0 16px 36px -22px rgba(16, 42, 67, .22);
}
.public-site .pl-card .card-body { padding: clamp(24px, 3vw, 32px); gap: 12px; }
.public-site .pl-card .card-body p { flex-grow: 0; margin: 0; font-size: 1rem; line-height: 1.75; }
.public-site .pl-card .card-title { margin: 0; font-size: 1.2rem; line-height: 1.4; letter-spacing: -.02em; }
.public-site .pl-card .card-body > .rounded-full { border-radius: 12px; }
.public-site .pl-card .card-body > :is(.bg-teal-100, .bg-emerald-100) { background: #f0f4f8; }
.public-site .pl-card .card-actions { margin-top: auto; padding-top: 20px; }
.public-site .idx-category-card-image { height: 240px; }
.public-site .idx-category-card-content { padding: 28px; gap: 12px; }
.public-site .idx-category-card-content h3 { margin: 0; font-size: 1.4rem; }
.public-site .idx-category-card-content p { margin: 0; font-size: 1rem; }
.public-site .idx-category-features { padding: 12px 0 20px; }
.public-site .idx-category-features li { color: var(--pl-muted); line-height: 1.6; }
.public-site .idx-category-card-content .btn { max-width: none; align-self: stretch; margin-top: auto; margin-bottom: 0; }
.public-site .idx-partner-card { padding: 32px; }
.public-site .idx-area-chip { border-radius: 8px; box-shadow: none; }
.public-site .idx-area-chip:hover { transform: none; }
.public-site .idx-stats-section { padding-block: 40px; }
.public-site .idx-stats-section .idx-stat-number { letter-spacing: -.04em; }
.public-site .pl-cta {
  padding-block: clamp(48px, 6vw, 72px);
}
.public-site .pl-cta .partners-page-dark-panel { border-radius: 20px; padding: clamp(28px, 5vw, 56px); }
.public-site .pl-cta h2 { max-width: 760px; margin-inline: auto; }
.public-site .pl-cta p { max-width: 680px; }
.public-site .pl-cta .text-center p { margin-inline: auto; }

/* Preserve supplier colors and artwork; simplify the surrounding surfaces. */
.public-site .partners-page-benefit-item { border-radius: 12px; padding: 24px; box-shadow: none; }
.public-site .partners-page-benefit-item h3 { margin-top: 0; font-size: 1.125rem; }
.public-site .partners-page-benefit-item p { font-size: 1rem; }
.public-site .partners-page-logo-stage { border-radius: 16px; }
.public-site .partners-page-soft-bg { border: 1px solid var(--pl-line); }
.public-page-partner-landing .pl-hero .partners-page-dark-panel {
  background: #102a43;
  border: 1px solid rgba(217, 226, 236, .22);
  box-shadow: 0 16px 40px -24px rgba(0, 0, 0, .4);
}
.public-page-partner-landing .pl-hero .partners-page-dark-panel :is(p, li) { color: #d9e2ec; }
.public-page-partner-landing .pl-hero .partners-page-dark-panel .text-primary { color: #fde047; }

/* Partner landing: hero showcase, brand cards, process, and FAQ. Gold and
   navy accents sit on the existing supplier-blue hero. */
.public-page-partner-landing .partners-page-eyebrow { color: #fde047; }
.public-page-partner-landing .pl-hero .partners-page-hero-lead { color: #e6f0f7; max-width: 38rem; }
.public-page-partner-landing .partners-page-hero-actions { margin-bottom: 20px; }
.public-page-partner-landing .partners-page-hero-actions .btn { min-width: 200px; }
.public-page-partner-landing .partners-page-hero-actions .partners-page-btn-white {
  box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .55);
}
.public-page-partner-landing .partners-page-hero-actions .partners-page-btn-white:hover {
  background: #fef9c3;
  border-color: #fef9c3;
  color: #102a43;
}
.public-page-partner-landing .partners-page-hero-actions .partners-page-btn-outline-white {
  border-color: rgba(255, 255, 255, .55);
}
.public-page-partner-landing .partners-page-hero-actions .partners-page-btn-outline-white:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, .12);
  color: #fff;
}
.public-page-partner-landing .partners-page-hero-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  color: #e6f0f7;
  font-size: .9375rem;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(230, 240, 247, .4);
  text-underline-offset: 5px;
  transition: color 180ms ease, text-decoration-color 180ms ease;
}
.public-page-partner-landing .partners-page-hero-link svg { transition: transform 180ms ease; }
.public-page-partner-landing .partners-page-hero-link:hover { color: #fff; text-decoration-color: #fde047; }
.public-page-partner-landing .partners-page-hero-link:hover svg { transform: translateX(3px); }
.public-page-partner-landing .partners-page-hero-link:focus-visible { outline: 3px solid #fde047; outline-offset: 4px; }

.pl-hero-showcase { position: relative; max-width: 560px; margin-inline: auto; }
.pl-hero-photo {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border-radius: 20px;
  box-shadow: 0 24px 48px -24px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .14);
  animation: pl-rise 700ms cubic-bezier(.16, 1, .3, 1) both;
}
.pl-hero-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 900ms cubic-bezier(.16, 1, .3, 1);
}
.pl-hero-showcase:hover .pl-hero-photo img { transform: scale(1.03); }
.public-page-partner-landing .pl-hero .pl-hero-panel {
  position: relative;
  margin: -40px 20px 0;
  padding: 24px 28px;
  border-radius: 16px;
  box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .6);
  animation: pl-rise-fade 700ms cubic-bezier(.16, 1, .3, 1) 250ms both;
}
.pl-check-item { display: flex; gap: 12px; align-items: flex-start; line-height: 1.55; }
.pl-check-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin-top: 1px;
  border-radius: 999px;
  background: #fde047;
  color: #102a43;
}
@keyframes pl-rise { from { transform: translateY(14px); } to { transform: none; } }
@keyframes pl-rise-fade { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

.pl-line-card { overflow: hidden; }
.pl-line-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #f5f5f4; }
.pl-line-media > img,
.pl-line-swatches img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(.16, 1, .3, 1);
}
.pl-line-card:hover .pl-line-media > img,
.pl-line-card:hover .pl-line-swatches img { transform: scale(1.04); }
.pl-line-swatches {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3px;
  height: 100%;
  background: #e7e5e4;
  overflow: hidden;
}
.pl-line-swatches img { object-position: top; }
.pl-line-tag {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  color: var(--pl-ink);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .02em;
  box-shadow: 0 2px 8px rgba(16, 42, 67, .18);
}
.pl-line-card .card-body { flex: 1; }
.pl-line-card .card-actions { margin-top: auto; }
.pl-line-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  color: var(--pl-ink);
  font-size: .9375rem;
  font-weight: 650;
  text-decoration: underline;
  text-decoration-color: #ca8a04;
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
  transition: text-decoration-color 180ms ease;
}
.pl-line-link svg { transition: transform 180ms ease; }
.pl-line-link:hover { text-decoration-color: var(--pl-ink); }
.pl-line-link:hover svg { transform: translateX(3px); }
.pl-line-link:focus-visible { outline: 3px solid #ca8a04; outline-offset: 4px; border-radius: 4px; }

.public-site .pl-hardware-strip {
  display: grid;
  grid-template-columns: minmax(150px, 220px) 1fr;
  align-items: center;
  gap: clamp(20px, 4vw, 40px);
  padding: clamp(20px, 3vw, 28px) clamp(20px, 3vw, 32px);
}
.pl-hardware-logo { display: grid; place-items: center; padding: 16px; border-radius: 12px; background: var(--pl-paper); }
.pl-hardware-logo img { width: 100%; max-width: 180px; height: auto; }
.pl-hardware-copy .card-title { margin-bottom: 4px; }
.pl-hardware-copy p { margin: 0; font-size: 1rem; line-height: 1.7; }
.pl-chip-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.pl-chip {
  padding: 4px 12px;
  border-radius: 999px;
  background: #f0f4f8;
  color: var(--pl-ink);
  font-size: .8125rem;
  font-weight: 600;
}

.pl-benefit-photo {
  margin: 28px 0 0;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border-radius: 12px;
  box-shadow: var(--pl-shadow);
}
.pl-benefit-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pl-benefit-icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin-bottom: 14px;
  border-radius: 10px;
  background: #fef9c3;
  color: #854d0e;
  transition: background-color 180ms ease, color 180ms ease;
}
.public-site .partners-page-benefit-item { transition: border-color 180ms ease, box-shadow 180ms ease; }
.partners-page-benefit-item:hover .pl-benefit-icon { background: #102a43; color: #fde047; }

.pl-step .card-body { align-items: flex-start; }
.pl-step-number {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: var(--pl-ink);
  color: #fde047;
  font-weight: 700;
  box-shadow: 0 0 0 4px #fef9c3;
  margin-bottom: 8px;
}

.public-page-partner-landing #partner-process { padding-bottom: 0; }
.pl-faq { display: grid; gap: 12px; }
.public-site .pl-faq details { transition: border-color 180ms ease, box-shadow 180ms ease; }
.public-site .pl-faq details:hover { border-color: #bcccdc; }
.public-site .pl-faq details[open] { border-color: #bcccdc; box-shadow: var(--pl-shadow); }
.public-site .pl-faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 20px;
  color: var(--pl-ink);
  font-weight: 650;
  list-style: none;
}
.public-site .pl-faq summary::-webkit-details-marker { display: none; }
.public-site .pl-faq summary::after {
  content: "";
  flex: none;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--pl-ink);
  border-bottom: 2px solid var(--pl-ink);
  transform: rotate(45deg) translateY(-2px);
  transition: transform 220ms ease;
}
.public-site .pl-faq details[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.public-site .pl-faq details p {
  margin: 0;
  padding: 0 20px 18px;
  color: var(--pl-muted);
  line-height: 1.75;
  animation: pl-faq-in 240ms ease-out;
}
@keyframes pl-faq-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.pl-faq a.link { color: var(--pl-ink); font-weight: 600; }

.partners-form-optional { margin-left: 4px; color: #78716c; font-size: .75rem; font-weight: 500; line-height: 1; vertical-align: baseline; }

@media (max-width: 767px) {
  .public-site .pl-hardware-strip { grid-template-columns: 1fr; }
  .pl-hardware-logo { justify-self: start; min-width: 200px; }
}

/* Forms remain stable under the pointer, including during validation. */
.public-site .pl-form-section { background: var(--pl-paper); }
.public-site .pl-form-section > .container > :is(p, div.text-center) { margin-bottom: 32px; }
.public-site .pl-form-card {
  border: 1px solid var(--pl-line);
  border-radius: var(--pl-radius);
  box-shadow: var(--pl-shadow);
  transform: none;
  transition: none;
}
.public-site .pl-form-card:hover { transform: none; border-color: var(--pl-line); box-shadow: var(--pl-shadow); }
.public-site .pl-form-card > .card-body { padding: clamp(20px, 4vw, 36px); }
.public-site .pl-form-card .label-text { font-size: .875rem; font-weight: 650; color: var(--pl-ink); }
.public-site .pl-form-card .label > .checkbox ~ .label-text { font-size: .8125rem; font-weight: 400; line-height: 1.7; color: var(--pl-muted); }
.public-site .pl-form-card :is(.input, .select, .textarea) { border-radius: 8px; font-size: 1rem; }
.public-site .pl-form-card :is(.input, .select) { min-height: 48px; }
.public-site .pl-form-card :is(.input, .textarea)::placeholder { color: #78716c; }
.public-site .pl-form-card .label-text-alt { line-height: 1.6; }
.public-site .pl-form-card button[type="submit"] { min-height: 48px; }
.public-site #appointments .grid > * { min-width: 0; }
.public-site .appointment-picker { padding: clamp(12px, 3vw, 20px); }
.public-site .appointment-picker__month { font-size: 1.125rem; margin: 0; line-height: 1.4; }
.public-site .appointment-picker__header .btn { flex: 0 0 44px; width: 44px; padding: 8px; }
.public-site .appointment-picker__time-header { flex-wrap: wrap; }
.public-site .appointment-picker__time-header p { margin: 0; }
.public-site .appointment-picker__time { padding-inline: 8px; }
.public-site #appointments h1 { margin-top: 0; font-size: clamp(2.2rem, 4vw, 3.25rem); letter-spacing: -.04em; text-wrap: balance; }

/* Reading surfaces use a narrower measure than marketing sections. */
.public-page-privacy-policy .pl-section:not(.pl-hero),
.public-page-terms-of-use .pl-section:not(.pl-hero) { padding-block: 48px; }
.public-page-privacy-policy .pl-section:not(.pl-hero) > div,
.public-page-terms-of-use .pl-section:not(.pl-hero) > div { max-width: 800px; }
.public-page-privacy-policy .pl-section:not(.pl-hero) h2,
.public-page-terms-of-use .pl-section:not(.pl-hero) h2 { font-size: 1.4rem; margin-bottom: 16px; line-height: 1.4; }
.public-page-privacy-policy .pl-section p,
.public-page-terms-of-use .pl-section p { font-size: 1rem; line-height: 1.85; }
.public-site .pl-section details { border: 1px solid var(--pl-line); border-radius: 12px; background: white; }
.public-site .pl-section summary { min-height: 48px; cursor: pointer; line-height: 1.5; }
.public-site .pl-section details[open] { border-color: #bcccdc; }

/* The designer gate is isolated from every editor/canvas element. */
.public-page-design .ud-gate-inner { max-width: 1200px; gap: clamp(32px, 5vw, 72px); }
.public-page-design .ud-intro h1 { font-size: clamp(2.4rem, 4vw, 3.75rem); line-height: 1.1; letter-spacing: -.045em; text-wrap: balance; }
.public-page-design .ud-intro > p { max-width: 480px; line-height: 1.8; color: #d9e2ec; }
.public-page-design .ud-gate .ud-form-card { border-radius: 16px; box-shadow: 0 20px 48px -24px rgba(0, 0, 0, .4); }
.public-page-design .ud-gate .ud-form-card h2 { font-size: 1.65rem; line-height: 1.25; text-wrap: balance; }

/* Measurement illustrations and calculations keep their existing styles. */
.public-page-how-to-measure .mg-hero { padding-block: clamp(48px, 6vw, 80px); }
.public-page-how-to-measure .mg-hero h1 { font-size: clamp(2.4rem, 4.25vw, 3.75rem); letter-spacing: -.045em; text-wrap: balance; }
.public-page-how-to-measure :is(.mg-check-section, .mg-cta) { border-radius: 16px; box-shadow: var(--pl-shadow); }
.public-page-how-to-measure .mg-faq details { padding: 20px 0; }
.public-page-how-to-measure .mg-faq summary { min-height: 28px; }
.public-page-how-to-measure .mg-visual { top: calc(var(--public-nav-height) + 24px); }
.public-page-how-to-measure :is(.mg-guide, .mg-step) { scroll-margin-top: calc(var(--public-nav-height) + 24px); }

/* Public chrome, consistent with the same page width and spacing scale. */
.public-site .pn-bar { max-width: 1280px; padding-inline: clamp(16px, 3vw, 40px); }
.public-site .pn-desktop a { padding-inline: 12px; }
.public-site .pn-nav a[aria-current="page"] { background: #f5f5f4; color: #102a43; box-shadow: inset 0 -2px #ca8a04; }
.public-site .pn-quote { background: #102a43; }
.public-site .pn-quote:hover { background: #243b53; }
.public-site .pf-planning { padding-block: clamp(48px, 6vw, 72px); }
.public-site .pf-planning::after { animation: none; }
.public-site .pf-planning-card { box-shadow: none; border-radius: 16px; }
.public-site .pf-footer > .container { max-width: 1200px; }
.public-site #scrollToTop { width: 44px; height: 44px; min-height: 44px; right: 20px; bottom: 24px; box-shadow: var(--pl-shadow); }
.public-site .pl-section .btn,
.public-site .pl-form-card .btn {
  min-height: 44px;
  height: auto;
  padding: 12px 22px;
  font-size: .9375rem;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.4;
  border-width: 1px;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(16, 42, 67, .06);
  animation: none;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.public-site .pl-section .btn:hover,
.public-site .pl-form-card .btn:hover { transform: none; }
.public-site .pl-section .btn-primary,
.public-site .pl-form-card .btn-primary { background: #102a43; color: white; border-color: #102a43; }
.public-site .pl-section .btn-primary:hover,
.public-site .pl-form-card .btn-primary:hover { background: #243b53; border-color: #243b53; }
.public-site .pl-section .idx-btn:hover { background: #fef9c3; color: #102a43; border-color: #ca8a04; }
.public-site .pl-section :is(a, button, summary):focus-visible,
.public-site .pl-form-card :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid #ca8a04;
  outline-offset: 4px;
}
.public-site .pl-section a.link { text-underline-offset: 4px; }
.public-site .pl-section :is(.text-white, .text-primary-content) :focus-visible { outline-color: #fde047; }

/* Content is always readable without JS. Small surfaces animate on entry. */
.public-site .scroll-reveal,
.public-site .content-reveal { opacity: 1; transform: none; animation: none; }
.public-site .scroll-reveal { transition-delay: 0s; }
.public-site .scroll-reveal h2.text-4xl::after { transform: none; }

@media (min-width: 1024px) {
  .public-site .pl-home-hero .pl-hero-copy { order: 1; }
  .public-site .pl-home-hero .pl-hero-media { order: 2; }
}
@media (max-width: 1023px) {
  .public-site .pl-home-hero .pl-hero-copy { order: 1; }
  .public-site .pl-home-hero .pl-hero-media { order: 2; height: clamp(240px, 48vw, 420px); }
  .public-site #home .pl-hero-copy { max-width: 680px; }
  .public-site .pl-hero :is(.text-center, .partners-page-hero-copy) { text-align: left; }
  .public-site .pl-hero :is(.justify-center, .services-hero__highlights) { justify-content: flex-start; }
  .public-site #catalog-hero .text-center { text-align: center; }
}
@media (max-width: 767px) {
  .public-site #catalog-filters { position: static; }
  .public-site #catalog-filters .form-control { min-width: 0; }
}
@media (max-width: 600px) {
  .public-site { --public-nav-height: 72px; }
  .public-site .pl-section > :is(.container, .mx-auto),
  .public-site .pl-form-section > .container { padding-inline: 20px; }
  .public-site .pl-hero h1 { font-size: clamp(2.125rem, 8.5vw, 2.8rem); }
  .public-site .pl-hero .btn { width: 100%; white-space: normal; }
  .public-site #home .pl-hero-copy .btn { width: 100%; }
  .public-site .idx-category-card-image { height: 220px; }
  .public-site .idx-partner-card { padding: 24px; }
  .public-site .pl-cta .btn { width: 100%; white-space: normal; }
  .public-site .pn-bar { padding-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.public-site) { scroll-behavior: auto; }
  .public-site .pl-section *,
  .public-site .pl-form-section *,
  .public-site .pl-section *::before,
  .public-site .pl-section *::after { animation: none !important; transition: none !important; }
  .public-site .pl-section .idx-category-card-image img { transform: none; }
}
@media print {
  .public-site .pl-section, .public-site .pl-form-section { padding-block: 20px; }
  .public-site .pl-card, .public-site .pl-form-card { box-shadow: none; break-inside: avoid; }
  .public-page-how-to-measure :is(.mg-check-section, .mg-cta) { box-shadow: none; }
  .public-site #scrollToTop { display: none; }
}
