/* Base: reset, typography, layout primitives, buttons, forms */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto;color-scheme:light}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{font-family:var(--font-text);font-size:var(--fs-1);line-height:1.62;color:var(--ink);background:var(--ivory);font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:var(--navy);color:var(--champagne)}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:2px}
.on-navy :focus-visible,.hero-dark :focus-visible{outline-color:var(--champagne)}
.skip{position:absolute;inset-block-start:12px;inset-inline-start:16px;z-index:100;background:var(--navy);color:#fff;padding:12px 18px;text-decoration:none;transform:translateY(-250%);transition:transform var(--d-ui) var(--ease-out)}
.skip:focus{transform:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nowrap{white-space:nowrap;unicode-bidi:isolate}

/* type */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:300;line-height:1.08;letter-spacing:-.005em;text-wrap:balance}
h1{font-size:var(--fs-5)}
h2{font-size:var(--fs-4)}
h3{font-size:var(--fs-3)}
h4{font-size:var(--fs-2);font-weight:400}
p{text-wrap:pretty}
.eyebrow{white-space:nowrap;display:inline-flex;align-items:center;gap:12px;font-size:var(--fs-eyebrow);letter-spacing:.16em;font-weight:600;color:var(--gold-deep)}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.on-navy .eyebrow,.hero-dark .eyebrow{color:var(--champagne)}
.lede{font-size:var(--fs-2);font-weight:300;line-height:1.55;color:var(--ink);max-width:46ch}
.on-navy .lede{color:#E9EDF4}
.muted{color:var(--mute)}
.on-navy .muted{color:var(--mute-on-navy)}
.num{font-family:var(--font-display);font-weight:300;font-feature-settings:"lnum";unicode-bidi:isolate}

/* layout */
.wrap{width:100%;max-width:calc(var(--maxw) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section)}
.on-navy{background:var(--navy);color:#fff}
.on-navy-3{background:var(--navy-3);color:#fff}
.bg-ivory-2{background:var(--ivory-2)}
.stack>*+*{margin-block-start:var(--s5)}
.hair{height:1px;background:var(--line);border:0}
.on-navy .hair{background:var(--line-on-navy)}

/* buttons */
.btn{--bg:var(--gold);--fg:#101A2C;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 28px;background:var(--bg);color:var(--fg);border:1px solid var(--bg);border-radius:var(--r-sm);font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;transition:background-color var(--d-ui) var(--ease-out),color var(--d-ui) var(--ease-out),border-color var(--d-ui) var(--ease-out),transform var(--d-fast) var(--ease-out)}
.btn:active{transform:scale(.97)}
.btn svg{width:18px;height:18px;flex:none}
.btn--ghost{--bg:transparent;--fg:currentColor;border-color:currentColor}
.btn--navy{--bg:var(--navy);--fg:#fff}
.btn--lg{min-height:56px;padding-inline:36px;font-size:1.0625rem}
@media (hover:hover) and (pointer:fine){
  .btn:hover{--bg:#C9AD6C}
  .btn--ghost:hover{background:rgba(255,255,255,.1)}
  .btn--navy:hover{--bg:var(--navy-2)}
  .on-ivory .btn--ghost:hover,.btn--ghost.dark:hover{background:rgba(14,34,64,.07)}
}
.link svg{width:20px;height:20px;flex:none}
.link{white-space:nowrap;min-height:44px;align-items:center;display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;border-block-end:1px solid currentColor;padding-block-end:2px}
.arrow{display:inline-block;transition:transform var(--d-ui) var(--ease-out)}
html[dir=rtl] .arrow{transform:scaleX(-1)}
@media (hover:hover) and (pointer:fine){.link:hover .arrow,.btn:hover .arrow{translate:-4px 0}}

/* forms */
.field{display:grid;gap:6px}
.field label,.legend{font-size:.9375rem;font-weight:600}
.field .opt{font-weight:400;color:var(--mute)}
.on-navy .field .opt{color:var(--mute-on-navy)}
input[type=text],input[type=tel],input[type=email],select,textarea{width:100%;min-height:52px;padding:12px 16px;background:#fff;color:var(--ink);border:1px solid #9AA4B5;border-radius:var(--r-sm);transition:border-color var(--d-ui) var(--ease-out),box-shadow var(--d-ui) var(--ease-out)}
textarea{min-height:128px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(183,154,91,.55)}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#B3261E}
.err{display:none;color:#B3261E;font-size:.9375rem;font-weight:600}
.on-navy .err{color:#FFB4AB}
.field.invalid .err,.check.invalid .err{display:block}
.check{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start;min-height:44px;font-size:.9375rem;line-height:1.5}
.check input{width:26px;height:26px;margin:0;accent-color:var(--navy)}
.check .err{grid-column:2}
.honey{position:absolute;inset-inline-start:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{min-height:1.5em;font-weight:600}

/* browser surfaces and states */
html{scrollbar-color:var(--gold) var(--ivory-2);accent-color:var(--navy)}
input,textarea,select{caret-color:var(--navy)}
::placeholder{color:var(--mute);opacity:1}
.btn:disabled,button:disabled{opacity:.6;cursor:progress}
input:disabled,select:disabled,textarea:disabled{background:var(--ivory-2);color:var(--mute);cursor:not-allowed}
a[href^="tel:"],a[href^="mailto:"]{text-underline-offset:3px}
@media print{
  .site-header,.callbar,.skip,.walk__hint,.walk__bar,.mmenu,.footer__word,video{display:none!important}
  body{background:#fff;color:#000}
  .on-navy,.hero-dark,.footer,.phero{background:#fff!important;color:#000!important}
  a{color:#000}
}
