:root {
  --color-bg:#11110f;
  --color-panel:#191916;
  --color-text:#f2efe7;
  --color-muted:#aaa89e;
  --color-accent:#f04c18;
  --color-line:#383831;
  --color-paper:#f2efe7;
  --font-body:Arial,Helvetica,sans-serif;
  --font-display:Impact,'Arial Narrow','Helvetica Neue',Arial,sans-serif;
  --page-pad:clamp(22px,5vw,88px);
  --header-height:92px;
  color-scheme:dark
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:var(--header-height)
}
body {
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased
}
body.modal-open {
  overflow:hidden
}
img,video {
  display:block;
  max-width:100%
}
button,a {
  -webkit-tap-highlight-color:transparent
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit;
  color:inherit;
  border:0;
  background:none;
  cursor:pointer
}
button:disabled {
  opacity:.35;
  cursor:default
}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible {
  outline:3px solid var(--color-accent);
  outline-offset:6px
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2,h3 {
  line-height:1
}
p {
  line-height:1.65
}
p+p {
  margin-top:20px
}
::selection {
  background:var(--color-accent);
  color:var(--color-bg)
}
.orange {
  color:var(--color-accent)
}
.eyebrow {
  font-family:var(--font-body);
  font-size:10px;
  font-weight:700;
  letter-spacing:1.7px;
  line-height:1.5;
  text-transform:uppercase
}
.section-pad {
  padding:85px var(--page-pad)
}
.section-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
  padding-bottom:30px;
  border-bottom:1px solid var(--color-line)
}
.display {
  font-family:var(--font-display);
  font-size:clamp(52px,7.6vw,116px);
  font-weight:900;
  letter-spacing:-.025em;
  line-height:.98
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:20px;
  min-height:44px;
  font-size:13px;
  font-weight:700;
  border-bottom:1px solid currentColor
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:45px;
  padding:17px 22px;
  font-size:13px;
  font-weight:700;
  min-height:54px
}
.button-orange {
  background:var(--color-accent);
  color:#111
}
.button span {
  font-size:24px;
  line-height:1
}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:1000;
  background:var(--color-accent);
  color:#111;
  padding:12px
}
.skip-link:focus {
  top:12px
}
.brand {
  display:inline-flex;
  align-items:center;
  flex-shrink:0
}
.brand img {
  width:160px;
  height:auto
}
.site-header {
  height:var(--header-height);
  padding:0 var(--page-pad);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  position:fixed;
  inset:0 0 auto;
  z-index:50;
  background:#11110ff5;
  border-bottom:1px solid #ffffff18
}
.desktop-nav {
  display:flex;
  gap:32px
}
.desktop-nav a {
  font-size:12px;
  min-height:44px;
  display:flex;
  align-items:center
}
.header-actions {
  display:flex;
  align-items:center;
  gap:26px
}
.header-location {
  font-size:12px;
  border-bottom:1px solid var(--color-accent);
  padding:10px 0
}
.header-location span {
  margin-left:24px;
  color:var(--color-accent);
  font-size:20px
}
.menu-toggle {
  display:flex;
  align-items:center;
  gap:15px;
  min-height:44px;
  font-size:12px
}
.menu-lines {
  width:23px;
  height:10px;
  border-top:1px solid currentColor;
  border-bottom:1px solid currentColor
}
.navigation-dialog {
  inset:0;
  margin:0;
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  background:var(--color-accent);
  color:#111;
  border:0;
  padding:32px var(--page-pad);
  overflow:auto
}
.navigation-dialog::backdrop,.lightbox::backdrop {
  background:#000b
}
.dialog-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:11px;
  font-weight:700;
  letter-spacing:1px
}
.close-menu,.lightbox-close {
  min-height:48px;
  min-width:80px
}
.close-menu span {
  font-size:24px;
  margin-left:15px
}
.navigation-dialog nav {
  max-width:950px;
  margin:40px auto
}
.navigation-dialog nav a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #1115;
  font-size:clamp(30px,5.5vw,70px);
  font-weight:900;
  letter-spacing:-2px;
  padding:10px 0;
  line-height:1.15
}
.navigation-dialog nav small {
  font:12px var(--font-body);
  letter-spacing:0
}
.menu-phone {
  display:block;
  text-align:center;
  font-size:18px;
  margin-bottom:30px
}
.navigation-dialog :focus-visible {
  outline-color:#111
}
.site-footer {
  padding:45px var(--page-pad) 20px;
  background:#11110f
}
.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  border-bottom:1px solid var(--color-line);
  padding-bottom:35px
}
.footer-top>span {
  color:var(--color-muted);
  font-size:12px
}
.motion-toggle {
  min-height:44px;
  font-size:11px;
  border-bottom:1px solid var(--color-line)
}
.motion-toggle span {
  margin-left:24px
}
.footer-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px;
  padding:45px 0
}
.footer-grid>div {
  display:flex;
  align-items:flex-start;
  flex-direction:column
}
.footer-grid .eyebrow {
  color:var(--color-muted);
  margin-bottom:12px
}
.footer-grid a {
  font-size:13px;
  min-height:35px;
  display:flex;
  align-items:center
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:9px;
  letter-spacing:1px;
  border-top:1px solid var(--color-line);
  padding-top:22px
}
.footer-bottom a {
  padding:10px 0
}
.lightbox {
  position:fixed;
  inset:0;
  margin:auto;
  background:#191916;
  border:1px solid var(--color-line);
  color:var(--color-text);
  width:min(1000px,94vw);
  max-height:95dvh;
  padding:20px
}
.lightbox img {
  width:100%;
  height:72dvh;
  object-fit:contain
}
.lightbox-close {
  display:block;
  margin-left:auto
}
.lightbox p {
  text-align:center;
  font-size:14px;
  margin:10px 0
}
main {
  min-height:60vh
}
@media(max-width:900px) {
  .desktop-nav {
    gap:20px
  }
  .desktop-nav a {
    font-size:11px
  }
  .header-actions {
    gap:18px
  }
  .brand img {
    width:145px
  }
}
@media(max-width:760px) {
  :root {
    --header-height:76px
  }
  .desktop-nav,.header-location {
    display:none
  }
  .section-pad {
    padding:60px var(--page-pad)
  }
  .section-top {
    align-items:flex-start;
    padding-bottom:23px
  }
  .section-top .eyebrow {
    font-size:9px;
    letter-spacing:1px
  }
  .section-top .eyebrow:last-child {
    text-align:right;
    max-width:48%
  }
  .display {
    font-size:clamp(46px,12vw,84px)
  }
  .brand img {
    width:145px
  }
  .footer-top {
    flex-wrap:wrap;
    gap:16px
  }
  .footer-top>span {
    font-size:10px
  }
  .motion-toggle {
    margin-left:auto
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:30px 20px
  }
  .footer-grid a {
    min-height:44px;
    font-size:12px
  }
  .footer-bottom {
    flex-wrap:wrap;
    font-size:8px
  }
  .footer-bottom span:nth-child(2) {
    display:none
  }
  .navigation-dialog nav {
    margin:36px auto
  }
  .navigation-dialog nav a {
    padding:15px 0;
    font-size:36px;
    letter-spacing:-1px
  }
  .lightbox img {
    height:65dvh
  }
}
/* v1.1 — Guru family navigation, touch and keyboard accessible. */
.site-header { gap:24px; }
.guru-dropdown { position:relative; flex-shrink:0; }
.guru-dropdown summary { display:flex; align-items:center; gap:12px; min-height:44px; cursor:pointer; list-style:none; font-size:12px; }
.guru-dropdown summary::-webkit-details-marker { display:none; }
.guru-dropdown summary span { color:var(--color-accent); font-size:18px; }
.guru-dropdown summary:focus-visible,.drawer-guru summary:focus-visible { outline:3px solid var(--color-accent); outline-offset:4px; }
.guru-brands { position:absolute; top:calc(100% + 14px); left:-18px; min-width:260px; padding:12px; max-height:70svh; overflow:auto; background:#191916; border:1px solid var(--color-line); box-shadow:0 18px 35px #0006; }
.guru-brands a { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:11px 12px; min-height:44px; font-size:12px; }
.guru-brands a:first-child { color:var(--color-accent); border-bottom:1px solid var(--color-line); margin-bottom:5px; }
.guru-brands a:hover { background:#ffffff0d; }
.desktop-nav { gap:22px; }
.drawer-guru { max-width:950px; margin:0 auto 30px; border-bottom:1px solid #1115; }
.drawer-guru summary { display:flex; justify-content:space-between; cursor:pointer; padding:15px 0; list-style:none; font-weight:700; }
.drawer-guru summary::-webkit-details-marker { display:none; }
.drawer-guru>div { display:grid; grid-template-columns:1fr 1fr; gap:4px 24px; padding-bottom:20px; }
.drawer-guru a { display:flex; align-items:center; justify-content:space-between; min-height:44px; font-size:14px; }
@media(max-width:1100px) {
  .desktop-nav,.header-location { display:none; }
  .guru-dropdown { margin-left:auto; }
}
@media(max-width:760px) {
  .site-header { gap:14px; }
  .site-header .brand img { width:120px; }
  .site-header .menu-toggle { gap:10px; }
  .site-header .menu-lines { width:20px; }
  .guru-dropdown summary { font-size:11px; gap:7px; }
  .guru-brands { left:auto; right:-65px; min-width:260px; max-width:calc(100vw - 44px); top:calc(100% + 16px); }
  .drawer-guru>div { grid-template-columns:1fr; }
  .navigation-dialog .drawer-links { margin-bottom:25px; }
}
/* v1.2 — navigation is one right-aligned group, with Guru first. */
.header-navigation {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:28px;
  margin-left:auto;
}
.header-navigation .guru-dropdown { margin-left:0; }
.guru-dropdown summary { line-height:1; }
.guru-dropdown summary .dropdown-chevron {
  display:inline-block;
  width:7px;
  height:7px;
  margin-top:-4px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
  flex:0 0 7px;
}
.guru-dropdown[open] summary .dropdown-chevron { transform:rotate(225deg); margin-top:4px; }
.drawer-guru summary {
  font-size:clamp(30px,5.5vw,70px);
  font-weight:900;
  line-height:1.15;
  letter-spacing:-2px;
  padding:10px 0;
  align-items:center;
  gap:20px;
}
.drawer-guru summary>span:first-child { min-width:0; }
.drawer-guru .drawer-plus { font-size:28px; line-height:1; letter-spacing:0; flex-shrink:0; }
@media(max-width:1100px) { .header-navigation { gap:0; } }
@media(max-width:760px) {
  .drawer-guru summary { font-size:36px; letter-spacing:-1px; padding:15px 0; }
  .header-navigation { margin-left:auto; }
}
