/* Shared type and control foundations for both locales and all site pages. */
:root {
  --ui-ivory: #f7f4ee;
  --ui-ink: #1a1a1a;
  --ui-ink-deep: #0e0c0a;
  --ui-gold: #8a4f18;
  --ui-border: rgba(26, 26, 26, .35);
  --ui-font: 'Golos Text', 'Segoe UI', Arial, sans-serif;
  --ui-body-size: 16px;
  --ui-label-size: 14px;
  --ui-control-size: 16px;
  --ui-target-size: 44px;
}

@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url('/assets/fonts/golos-text-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url('/assets/fonts/golos-text-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
    U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Site header and mobile drawer: one copy for every page. These rules load
   after the page sheet, so a page sheet cannot override them at equal
   specificity; keep them ahead of the shared rules below. */
@media (max-width: 1180px) {
  header nav#primary-nav { gap:18px !important; font-size:12px !important; letter-spacing:.09em !important; }
  header [data-dc-style*="padding:18px 48px"] { padding-left:26px !important; padding-right:26px !important; gap:16px !important; }
}
.nav-burger { display:none; }
.nav-backdrop { display:none; }
.nav-close { display:none; }
.nav-mob-cta { display:none !important; }
@media (max-width: 1024px) {
  .nav-burger { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; min-width:44px; font-size:23px; line-height:1; cursor:pointer; color:#1a1a1a; background:transparent; border:1px solid rgba(26,26,26,.22); order:6; }
  header .hdr-cta { display:none !important; }
  header nav#primary-nav { position:fixed !important; top:0; right:0; bottom:0; width:min(84vw, 360px); background:#f7f4ee; flex-direction:column !important; align-items:stretch !important; gap:0 !important; padding:84px 26px 30px !important; transform:translateX(106%); visibility:hidden; pointer-events:none; transition:transform .32s cubic-bezier(.22,.61,.2,1), visibility .32s; z-index:60; box-shadow:-24px 0 70px rgba(12,10,9,.24); font-size:16px !important; letter-spacing:.05em !important; overflow-y:auto; }
  header nav#primary-nav.is-open { transform:translateX(0); visibility:visible; pointer-events:auto; }
  .nav-burger:focus-visible { outline:2px solid #a66523; outline-offset:2px; }
  header nav#primary-nav a { padding:14px 2px !important; border-bottom:1px solid rgba(138,131,120,.18); border-bottom-width:1px !important; min-height:44px; display:flex; align-items:center; }
  .nav-backdrop { position:fixed; inset:0; background:rgba(12,10,9,.46); z-index:55; }
  .nav-close { display:inline-flex; align-items:center; justify-content:center; position:absolute; top:20px; right:22px; width:44px; height:44px; font-size:28px; line-height:1; cursor:pointer; color:#1a1a1a; border:none; background:transparent; }
  .nav-mob-cta { display:flex !important; margin-top:16px; background:#a66523; color:#fff !important; justify-content:center; text-align:center; border-bottom:none !important; padding:15px !important; letter-spacing:.14em; }
}
@media (max-width: 1024px) {
  header { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:#f7f4ee !important; }
  header nav#primary-nav { overscroll-behavior:contain; }
  .nav-backdrop { overscroll-behavior:contain; touch-action:none; }
}
@media (max-width: 560px) {
  header [data-dc-style*="padding:18px 48px"] { padding-left:16px !important; padding-right:16px !important; gap:10px !important; }
  header [data-dc-style*="padding:18px 48px"] > a:first-child { min-width:0; }
  header [data-dc-style*="padding:18px 48px"] > a:first-child img { max-width:100%; object-fit:contain; object-position:left center; }
}
/* The runtime wraps the page in .sc-host, sized to the viewport rather than to
   the content. position:sticky only sticks inside its containing block, so the
   header came unpinned one screen down on every page. Letting the host size to
   its content restores it. Nothing moves: the content already painted outside
   that box. */
.sc-host, .sc-host > div { height: auto !important; }
/* The closed mobile drawer is parked off the right edge with translateX(106%).
   Chrome counts a fixed box that sits outside the viewport as scrollable width,
   so the page could be swiped sideways into blank space. clip on the host stops
   that. clip rather than hidden: hidden would turn the host into a scroll
   container and take window scrolling, sticky and in-page anchors with it.
   The drawer, the marquee and the Legal tab strip all still behave as before. */
@media (max-width: 1024px) {
  .sc-host { overflow-x: clip; }
}
@media (max-width: 1024px) {
  .nav-backdrop.is-open { display:block; }
}
@media (max-width: 560px) {
  header button[data-locale] { min-height:44px; min-width:44px; }
}

html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ui-ivory); color: var(--ui-ink); font: var(--ui-body-size)/1.55 var(--ui-font); -webkit-font-smoothing: antialiased; }
/* Header scroll lock: locale.js puts nav-open on <html> while the mobile
   drawer is open. It sits after the html and body base rules for stylelint's
   specificity order. */
html.nav-open, html.nav-open body { overflow:hidden !important; }
a { color: var(--ui-ink); text-decoration: none; }
a:hover { color: var(--ui-gold); }
:where(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--ui-gold); outline-offset: 2px; }
header button[data-locale]:focus-visible { position: relative; z-index: 1; }

main h1 {
  font-family: var(--ui-font) !important;
  font-style: normal !important;
  font-size: clamp(48px, 4.5vw, 64px) !important;
  line-height: 1.1 !important;
  text-transform: none !important;
  overflow-wrap: break-word;
}

form label > span:first-child:not([aria-hidden]), form .form-field-label {
  font-size: var(--ui-label-size) !important;
  line-height: 1.45;
  letter-spacing: .08em !important;
  text-transform: none !important;
}

form input:not([type='hidden']):not([type='checkbox']), form select, form textarea {
  box-sizing: border-box;
  min-height: var(--ui-target-size);
  font: var(--ui-control-size)/1.45 var(--ui-font) !important;
  border-color: var(--ui-border) !important;
}

form input:not([type='hidden']):not([type='checkbox']):hover, form select:hover, form textarea:hover { border-color: var(--ui-gold) !important; }
form input:not([type='hidden']):not([type='checkbox']):focus, form select:focus, form textarea:focus { border-color: var(--ui-gold) !important; }
form input:not([type='hidden']):not([type='checkbox'])[aria-invalid='true'], form select[aria-invalid='true'], form textarea[aria-invalid='true'] { border-color: #9b3d29 !important; }
form :disabled, form [data-form-retry][aria-disabled='true'] { cursor: not-allowed !important; opacity: .55; }
form button[type='submit'] { text-transform: none !important; min-height: var(--ui-target-size); font: 600 14px/1.4 var(--ui-font) !important; }
form button[type='submit']:hover:not(:disabled) { background: var(--ui-gold) !important; }
form button[aria-busy='true'] { opacity: .72; cursor: progress !important; }
form .segmented-choices button { text-transform: none !important; min-height: var(--ui-target-size); }

main a[data-dc-style*='padding:16px 30px'], main a[data-dc-style*='padding:17px 30px'], main a[data-dc-style*='padding:20px 38px'], .hdr-cta {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--ui-target-size);
  max-width: 100%;
  white-space: normal !important;
  text-align: center;
  text-transform: none !important;
}

@media (max-width: 560px) {
  main h1 { font-size: clamp(30px, 8vw, 36px) !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* Direction-hero photo wash: strong behind the left-aligned copy, lighter on
   the right. Below 1100px the copy spans the width, so use an even wash. */
.direction-hero-scrim { position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(12,10,9,.92) 0%, rgba(12,10,9,.84) 45%, rgba(12,10,9,.62) 70%, rgba(12,10,9,.46) 100%); }
@media (max-width: 1100px) { .direction-hero-scrim { background:rgba(12,10,9,.72); } }
