/* Shared responsive layout safeguards. */
*, *::before, *::after { box-sizing: border-box; }
html, body { width: 100%; margin: 0; }
body { overflow-wrap: break-word; }
img, video, canvas, svg, iframe { max-width: 100%; }
img, video { height: auto; }
main, section, article, form, .grid > *, .flex > * { min-width: 0; }
h1, h2, h3, p, a, button, label { overflow-wrap: anywhere; }
input, textarea, select { max-width: 100%; min-width: 0; }
.mobile-navigation { display: none; }
@media (max-width: 1279px) {
  header { position: relative !important; }
  header > div:first-child:not(:last-child) { gap: .5rem; }
  header > div:first-child span { white-space: normal; }
  header > div:last-of-type { height: auto; min-height: 5rem; padding-top: .75rem; padding-bottom: .75rem; gap: .75rem; flex-wrap: wrap; }
  header a { white-space: normal !important; }
  header > div > a:first-child { max-width: 38%; }
  header img { width: auto; max-height: 2.25rem; object-fit: contain; }
  header > div > div:last-child { flex-shrink: 1 !important; min-width: 0; max-width: 60%; }
  header > div > div:last-child > a { text-align: center; padding: .65rem .75rem; font-size: 11px; }
  main { padding-top: 0 !important; }
  .mobile-navigation { display: block; width: 100%; padding: 0 1rem .75rem; background: #fbf9f6; }
  .mobile-navigation summary { cursor: pointer; padding: .5rem 0; font-weight: 700; color: #b80035; }
  .mobile-navigation nav { display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: .75rem 0; }
  .mobile-navigation a { font-size: 14px; padding: .4rem 0; }
}
@media (max-width: 639px) {
  main section { padding-left: 1rem !important; padding-right: 1rem !important; }
  h1, .text-headline-xl { font-size: clamp(1.85rem, 8.4vw, 2.75rem) !important; line-height: 1.12 !important; }
  h2, .text-headline-lg { font-size: clamp(1.5rem, 6.8vw, 2rem) !important; line-height: 1.2 !important; }
  h3 { line-height: 1.25 !important; }
  main .whitespace-nowrap, footer .whitespace-nowrap { white-space: normal !important; }
  main a, main button { max-width: 100%; }
  main a.inline-flex, main button { white-space: normal; text-align: center; }
  main .shrink-0 { flex-shrink: 1 !important; }
  main .p-space-xl, main .p-12 { padding: 1.25rem !important; }
  main .px-8 { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
  footer { padding-left: 1rem !important; padding-right: 1rem !important; }
  footer > div { padding-left: 1rem !important; padding-right: 1rem !important; }
  #news-posts { grid-template-columns: minmax(0, 1fr); }
  #news-posts article { padding: 1.25rem; }
}
/* Keep decorative glows within the page without constraining text wrapping. */
main { overflow-x: clip; }
@media (max-width: 639px) {
  main .flex.items-center.justify-between { flex-wrap: wrap; gap: .75rem; }
  main .flex.items-center.gap-space-lg { flex-wrap: wrap; }
}

.ar-mirror-photo { display: block; width: 100%; height: clamp(12rem, 35vw, 20rem); object-fit: cover; object-position: center; }

@media (max-width: 1279px) { header > div > nav { display: none !important; } }
@media (min-width: 1280px) { header nav { gap: 1rem !important; } header nav a { font-size: 12px; } }
/* Consistent header controls and right-aligned hamburger on every screen. */
header { position: relative !important; overflow: visible; z-index: 50; }
header, header a, header summary, header nav { font-family: 'Space Grotesk', sans-serif !important; }
header [data-desktop-navigation] { display: none !important; }
header .site-header-row { display: flex; flex-wrap: nowrap !important; align-items: center; gap: 1rem; min-height: 5rem; height: auto; padding-top: .75rem; padding-bottom: .75rem; position: relative; }
header .site-header-row > a:first-child { margin-right: auto; max-width: 35%; min-width: 0; }
header .site-header-row > div { flex: 0 1 auto !important; max-width: none !important; min-width: 0; }
header .licensing-header-button { font-family: 'Space Grotesk', sans-serif !important; font-size: 12px !important; font-weight: 600; line-height: 1.3; letter-spacing: .02em; text-transform: none !important; text-align: center; white-space: normal !important; }
header details.mobile-navigation { display: block !important; position: static; width: auto; flex: 0 0 44px; padding: 0; background: transparent; margin-left: 0; }
header .mobile-navigation summary { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid #e4e2df; border-radius: 6px; color: #1b1c1a; background: #fbf9f6; list-style: none; cursor: pointer; }
header .mobile-navigation summary::-webkit-details-marker { display: none; }
header .mobile-navigation summary::marker { content: ''; }
.hamburger-lines { display: flex; flex-direction: column; gap: 5px; width: 22px; }
.hamburger-lines > span { display: block; height: 2px; width: 100%; background: currentColor; transition: transform .15s ease; }
header details[open] .hamburger-lines > span:first-child { transform: translateY(7px) rotate(45deg); }
header details[open] .hamburger-lines > span:nth-child(2) { opacity: 0; }
header details[open] .hamburger-lines > span:last-child { transform: translateY(-7px) rotate(-45deg); }
header .mobile-navigation nav { position: absolute; right: 1rem; top: calc(100% - .25rem); z-index: 100; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0 !important; width: min(20rem, calc(100vw - 2rem)); padding: .5rem 1rem; background: #fbf9f6; border: 1px solid #e4e2df; border-radius: 8px; box-shadow: 0 12px 30px #0002; }
header .mobile-navigation nav a { display: block; font-family: 'Space Grotesk', sans-serif !important; font-size: 14px !important; line-height: 1.4; font-weight: 600; letter-spacing: .04em; padding: .8rem .25rem; white-space: normal !important; }
header summary:focus-visible, header nav a:focus-visible { outline: 2px solid #b80035; outline-offset: 3px; }
@media (max-width: 639px) {
  header .site-header-row { gap: .5rem; padding-left: 1rem; padding-right: 1rem; }
  header .site-header-row > a:first-child { max-width: 26%; }
  header .site-header-row > div { max-width: 52% !important; }
  header .licensing-header-button { font-size: 11px !important; padding: .65rem .6rem !important; }
  header .site-header-row > a:first-child img { width: 100%; height: auto; }
}

.social-footer { max-width: 1280px; margin: 0 auto; padding: 1.5rem 2rem 2rem; border-top: 1px solid #e4e2df; font-family: 'Space Grotesk', sans-serif; }
.social-footer-title { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; color: #1b1c1a; margin-bottom: .75rem; }
.social-footer-links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.social-footer-links a { display: inline-flex; align-items: center; min-height: 44px; color: #b80035; font-size: 14px; font-weight: 600; text-decoration: none; }
.social-footer-links a:hover { text-decoration: underline; }
.social-footer-links a:focus-visible { outline: 2px solid #b80035; outline-offset: 4px; }
@media (max-width: 639px) { .social-footer { padding: 1.25rem 1rem; } .social-footer-links { gap: .25rem 1.25rem; } }

/* Shared footer and consistent navigation case. */
header nav a { text-transform: none !important; }
.site-footer { background: #f5f3f0; color: #5c3f40; padding: 3rem 2rem 1.5rem; }
.site-footer-inner { max-width: 1280px; margin: 0 auto; }
.site-footer-eyebrow { color: #b80035; font-family: 'Space Grotesk', sans-serif; font-size: 12px; letter-spacing: .08em; font-weight: 600; margin: 0 0 .75rem; }
.site-footer h2 { font-family: 'Syne', sans-serif; font-size: clamp(1.5rem, 3vw, 2.5rem); line-height: 1.2; font-weight: 700; color: #1b1c1a; margin: 0 0 2.5rem; text-transform: none; }
.site-footer-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 2rem; }
.site-footer h3 { font-family: 'Space Grotesk', sans-serif; font-size: 14px; line-height: 1.4; font-weight: 700; color: #1b1c1a; margin: 0 0 .75rem; text-transform: none; }
.site-footer-grid a, .site-footer-grid span { display: block; font-family: 'DM Sans', sans-serif; font-size: 15px; line-height: 1.5; padding: .35rem 0; text-transform: none; letter-spacing: normal; font-weight: 400; }
.site-footer-grid a:hover { color: #b80035; text-decoration: underline; }
.site-footer-grid a:focus-visible { outline: 2px solid #b80035; outline-offset: 3px; }
.site-footer-copyright { border-top: 1px solid #e4e2df; margin-top: 2rem; padding-top: 1rem; font-size: 12px; }
@media(max-width: 767px) { .site-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; } }
@media(max-width: 359px) { .site-footer-grid { grid-template-columns: minmax(0,1fr); } }

/* Keep licensing and menu controls together at the right edge. */
header .site-header-row { justify-content: flex-start !important; }
header .site-header-row > a:first-child { margin-right: 0 !important; }
header .site-header-row > .header-actions { display: flex; align-items: center; justify-content: flex-end; gap: .75rem; margin-left: auto !important; flex: 0 1 auto !important; max-width: none !important; }
header .header-actions > div { display: flex; min-width: 0; flex: 0 1 auto; }
header .header-actions > .mobile-navigation { flex: 0 0 44px; margin: 0; }
header .header-actions .licensing-header-button { margin: 0; }
@media(max-width: 639px) {
  header .site-header-row > .header-actions { gap: .5rem; max-width: 72% !important; }
}
