/* Shared page rhythm. Page-specific grids and operational controls stay local. */
html:root { scrollbar-gutter: stable; min-width: 0; }
html body.site-body { margin: 0; padding: 0; min-width: 0; }
html body.site-body :is(.product-image-link, .seo-product-image-link, .product-media, .seo-card-media) {
  background: var(--gp-image-backplate) !important;
  isolation: isolate;
}
html body.site-body :is(.primary-button, .secondary-button, .seo-button, .sheet-link, .login-submit, .login-primary-button) {
  min-height: 44px;
  gap: 10px;
  border-radius: 999px;
  text-decoration: none;
}
html body.site-body :is(.hero-kicker, .section-kicker, .seo-kicker, .eyebrow) {
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
html body.site-body :is(.legal-footer, .seo-footer) { margin-top: 40px; }
html body.site-body .legal-footer { width: 100% !important; }
html body.site-body :is(.legal-footer-inner, .seo-footer) {
  width: min(1360px, calc(100% - 64px));
  margin-inline: auto;
  border-radius: 15px;
  box-shadow: none !important;
}
/* Legal text and navigation both retain usable space at every width. */
html body.site-body .legal-footer { margin-bottom: 24px !important; }
html body.site-body :is(.legal-footer-inner, .seo-footer) { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; align-items: start; justify-items: stretch; gap: 20px !important; padding: 24px; text-align: left; }
html body.site-body :is(.legal-footer-brand, .seo-footer-brand) { min-width: 0; width: 100%; text-align: left; }
html body.site-body :is(.legal-footer-brand, .seo-footer-brand) strong { display: block; font-size: 14px; line-height: 1.4; }
html body.site-body :is(.legal-footer-brand, .seo-footer-brand) p { display: block; width: 100%; max-width: 70ch; margin: 6px 0 0; font-size: 13px; line-height: 1.6; text-align: left; }
html body.site-body :is(.legal-footer, .seo-footer) nav { display: flex !important; min-width: 0; width: 100%; flex-wrap: wrap; align-items: center; justify-content: flex-start !important; gap: 8px !important; }
html body.site-body :is(.legal-footer, .seo-footer) :is(a, button) { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px !important; padding: 8px 12px !important; border: 1px solid var(--gp-line); border-radius: 999px; font-size: 12px !important; font-weight: 650; line-height: 1.4; text-align: center; white-space: normal; text-decoration: none; }
@media (min-width: 1200px) {
  html body.site-body :is(.legal-footer-inner, .seo-footer) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) !important; gap: 32px !important; }
  html body.site-body :is(.legal-footer, .seo-footer) nav { justify-content: flex-end !important; }
}
@media (max-width: 760px) {
  html body.site-body :is(.legal-footer-inner, .seo-footer) { width: calc(100% - 32px) !important; gap: 16px !important; padding: 20px !important; }
  html body.site-body :is(.legal-footer, .seo-footer) nav { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; align-items: stretch; }
  html body.site-body :is(.legal-footer, .seo-footer) :is(a, button) { width: 100%; }
  html body.site-body :is(.legal-footer, .seo-footer) button[data-privacy-preferences] { grid-column: 1 / -1 !important; }
}
html body.site-body .seo-shell { width: 100%; padding: 0 0 40px; }
html body.site-body .seo-main,
html body.site-body.legal-page .legal-main {
  display: grid;
  width: min(1360px, calc(100% - 64px)) !important;
  max-width: 1360px !important;
  gap: 32px;
  margin: 24px auto 0 !important;
  padding: 0 0 40px !important;
}
html body.site-body.legal-page .legal-hero,
html body.site-body :is(.seo-category-hero, .seo-hero) {
  min-height: 0;
  margin: 0;
  padding: 24px 0 32px !important;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
}
html body.site-body.legal-page .legal-hero::before,
html body.site-body.legal-page .legal-hero::after { display: none; }
html body.site-body.legal-page .legal-hero h1,
html body.site-body :is(.seo-category-copy, .seo-hero) h1 {
  max-width: 22ch;
  margin: 14px 0 0;
  font-size: clamp(36px, 4.4vw, 56px);
  font-weight: 900;
  line-height: 1.04;
  letter-spacing: -1.7px;
}
html body.site-body.legal-page .legal-hero p,
html body.site-body :is(.seo-category-copy, .seo-hero) > p {
  max-width: 68ch;
  margin: 18px 0 0;
  font-size: 17px;
  line-height: 1.55;
}
html body.site-body.legal-page .legal-hero > small { display: block; margin-top: 16px; }
html body.site-body.legal-page .legal-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
html body.site-body.legal-page :is(.legal-card, .contact-card) {
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--gp-line);
  border-radius: 15px;
  box-shadow: none !important;
  overflow-wrap: anywhere;
}
html body.site-body.legal-page .legal-card::before { display: none; }
html body.site-body.legal-page .legal-card h2 { margin: 0 0 12px; font-size: 20px; line-height: 1.3; letter-spacing: -.4px; }
html body.site-body.legal-page .legal-card :is(p, li) { font-size: 15px; line-height: 1.65; }
html body.site-body.legal-page .contact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
html body.site-body.legal-page .contact-email-button { margin-top: 24px; }
html body.site-body.legal-page .contact-card > span { display: none; }
html body.site-body :is(.seo-card, .seo-product-card, .seo-related-card, .seo-category-card) { border-radius: 15px; box-shadow: none !important; }
html body.site-body :is(.seo-card::before, .seo-product-card::before, .seo-card::after) { display: none; }
html body.site-body .seo-product-detail { gap: 32px; padding: 28px; }
html body.site-body .seo-product-title { font-size: clamp(26px, 2.7vw, 38px); font-weight: 800; line-height: 1.15; letter-spacing: -.8px; }
html body.site-body .seo-category-copy { min-width: 0; }
html body.site-body .seo-category-visual { border: 0; border-radius: 15px; background: transparent !important; box-shadow: none; }
html body.site-body .seo-grid-heading h2 { font-size: 27px; line-height: 1.25; letter-spacing: -.7px; }
html body.site-body .seo-article { padding: 28px; }
html body.site-body .seo-article > h1 { font-weight: 900; line-height: 1.08; letter-spacing: -1px; }
html body.site-body .seo-article :is(p, li) { max-width: 78ch; }
html body.site-body .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
html body.site-body .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
@media (max-width: 900px) {
  html body.site-body.legal-page .legal-content { grid-template-columns: minmax(0, 1fr); }
  html body.site-body.legal-page .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body.site-body .seo-product-detail { gap: 24px; padding: 24px; }
}
@media (max-width: 640px) {
  html body.site-body :is(.seo-main, .legal-footer-inner, .seo-footer),
  html body.site-body.legal-page .legal-main { width: calc(100% - 32px) !important; gap: 24px; }
  html body.site-body .seo-main,
  html body.site-body.legal-page .legal-main { margin-top: 16px !important; }
  html body.site-body.legal-page .legal-hero,
  html body.site-body :is(.seo-category-hero, .seo-hero) { padding: 12px 0 20px !important; }
  html body.site-body.legal-page .legal-hero h1,
  html body.site-body :is(.seo-category-copy, .seo-hero) h1 { font-size: 32px; line-height: 1.08; letter-spacing: -1px; }
  html body.site-body.legal-page .legal-hero p,
  html body.site-body :is(.seo-category-copy, .seo-hero) > p { font-size: 15px; line-height: 1.55; }
  html body.site-body.legal-page .contact-grid { grid-template-columns: minmax(0, 1fr); }
  html body.site-body.legal-page :is(.legal-card, .contact-card),
  html body.site-body :is(.seo-product-detail, .seo-article) { padding: 20px; }
  html body.site-body .seo-product-detail { grid-template-columns: minmax(0, 1fr); }
  html body.site-body .seo-product-title { font-size: 26px; }
  html body.site-body .seo-grid-heading h2 { font-size: 24px; }
  html body.site-body.legal-page .contact-email-button { font-size: 14px; }
}
