:root{
  --c-bg:#F6F3EC;
  --c-surface:#FFFFFF;
  --c-text:#1A1D21;
  --c-primary:#1E3A52;
  --c-primary-dark:#16293A;
  --c-secondary:#55666F;
  --c-accent:#E29A2D;
  --c-dark-bg:#14202B;
  --c-dark-text:#EDE8DE;
  --c-rule:#DCD5C6;

  --ff-display:"Bitter",Georgia,"Times New Roman",serif;
  --ff-body:"Karla","Helvetica Neue",Arial,sans-serif;

  --fs-hero:clamp(2.5rem,6vw,4.25rem);
  --fs-h2:clamp(1.75rem,3vw,2.5rem);
  --fs-h3:1.25rem;
  --fs-body:1.0625rem;
  --fs-lead:1.125rem;
  --fs-meta:0.75rem;
  --fs-phone:clamp(2rem,5vw,3.25rem);

  --sp-1:0.25rem;
  --sp-2:0.5rem;
  --sp-3:0.75rem;
  --sp-4:1rem;
  --sp-5:1.5rem;
  --sp-6:2rem;
  --sp-7:3rem;
  --sp-8:4rem;
  --sp-9:6rem;
  --sp-10:8rem;

  --radius:4px;
  --radius-lg:6px;

  --mo-dur:420ms;
  --mo-ease:cubic-bezier(0.22,0.61,0.24,1);
  --mo-dist:14px;
  --mo-stagger:70ms;
  --reveal-delay:0ms;
  --t-hover:220ms var(--mo-ease);

  --header-h:72px;
  --measure:62ch;
  --container:1140px;
  --container-narrow:840px;
}

*,*::before,*::after{box-sizing:border-box;}
*{margin:0;}
html{-webkit-text-size-adjust:100%;}
body{
  background-color:var(--c-bg);
  color:var(--c-text);
  font-family:var(--ff-body);
  font-size:var(--fs-body);
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto;}
button,input,select,textarea{font:inherit;color:inherit;}
ul,ol{padding:0;list-style:none;}

h1,h2,h3,h4{font-family:var(--ff-display);color:var(--c-primary);font-weight:700;}
h1{font-size:var(--fs-hero);line-height:1.06;letter-spacing:-0.015em;}
h2{font-size:var(--fs-h2);line-height:1.15;letter-spacing:-0.01em;}
h3{font-size:var(--fs-h3);font-weight:600;line-height:1.3;color:var(--c-text);}
h4{font-size:1.0625rem;font-weight:600;line-height:1.35;color:var(--c-text);}
p{max-width:var(--measure);}
p + p{margin-top:var(--sp-4);}
strong{font-weight:700;}

a{color:var(--c-primary);text-decoration:underline;text-decoration-color:var(--c-accent);text-decoration-thickness:2px;text-underline-offset:3px;transition:color var(--t-hover);}
a:hover{color:var(--c-primary-dark);}

:focus-visible{outline:3px solid var(--c-primary);outline-offset:3px;}
.on-dark :focus-visible,.footer :focus-visible{outline-color:var(--c-accent);}

.skip-link{position:absolute;left:var(--sp-4);top:var(--sp-4);z-index:200;transform:translateY(-200%);background:var(--c-primary);color:var(--c-dark-text);padding:var(--sp-3) var(--sp-5);border-radius:var(--radius);font-family:var(--ff-body);font-weight:700;text-decoration:none;transition:transform var(--mo-dur) var(--mo-ease);}
.skip-link:focus{transform:translateY(0);color:var(--c-dark-text);}

.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-5);}
.container--narrow{max-width:var(--container-narrow);}
.section{padding-block:var(--sp-9);}
.section--tight{padding-block:var(--sp-8);}
.measure{max-width:var(--measure);}
.center{margin-inline:auto;text-align:center;}
.center p{margin-inline:auto;}
.stack > * + *{margin-top:var(--sp-4);}
.stack-lg > * + *{margin-top:var(--sp-6);}
.hairline{border:0;border-top:1px solid var(--c-rule);}
.meta{font-family:var(--ff-body);font-weight:700;font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:0.14em;color:var(--c-secondary);}
.lead{font-size:var(--fs-lead);line-height:1.6;color:var(--c-secondary);}
.accent-dot{color:var(--c-accent);}

[id]{scroll-margin-top:calc(var(--header-h) + 1rem);}
#top{display:block;height:0;overflow:hidden;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  min-height:48px;padding:var(--sp-3) var(--sp-5);
  font-family:var(--ff-body);font-weight:700;font-size:1rem;line-height:1.2;
  text-decoration:none;border-radius:var(--radius);border:2px solid transparent;
  cursor:pointer;transition:background-color var(--t-hover),color var(--t-hover),border-color var(--t-hover);
}
.btn--primary{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-dark-text);}
.btn--primary:hover{background:var(--c-primary-dark);border-color:var(--c-primary-dark);color:var(--c-dark-text);}
.btn--ghost{background:transparent;border-color:var(--c-primary);color:var(--c-primary);}
.btn--ghost:hover{background:var(--c-primary);color:var(--c-dark-text);}
.btn--on-dark{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-dark-bg);}
.btn--on-dark:hover{background:var(--c-dark-text);border-color:var(--c-dark-text);color:var(--c-dark-bg);}
.btn--block{width:100%;}

.card{background:var(--c-surface);border:1px solid var(--c-rule);border-radius:var(--radius);padding:var(--sp-6);transition:transform var(--t-hover),border-color var(--t-hover);}
.card:hover{border-color:var(--c-primary);transform:translateY(-2px);}
.section--paper{background-color:var(--c-bg);}
.section--dark,.on-dark{background-color:var(--c-dark-bg);color:var(--c-dark-text);}
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4,.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{color:var(--c-dark-text);}
.section--dark .lead,.on-dark .lead{color:var(--c-dark-text);opacity:0.86;}
.section--dark a,.on-dark a{color:var(--c-dark-text);}
.section--dark .meta,.on-dark .meta{color:var(--c-accent);}

.handled-kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--ff-body);font-weight:700;font-size:12px;line-height:1.2;text-transform:uppercase;letter-spacing:0.14em;color:var(--c-primary);margin-bottom:var(--sp-4);}
.handled-kicker::before{content:"";display:block;flex:0 0 auto;width:20px;height:3px;background:var(--c-accent);}
.on-dark .handled-kicker,.section--dark .handled-kicker{color:var(--c-accent);}
.handled-headline{font-family:var(--ff-display);font-weight:700;font-size:var(--fs-h2);line-height:1.25;letter-spacing:-0.01em;}
.handled-headline::after{content:".";color:var(--c-accent);}

.corner-bracket{position:relative;}
.corner-bracket::before{
  content:"";position:absolute;top:-10px;left:-10px;
  width:28px;height:28px;
  border-top:2px solid var(--c-primary);
  border-left:2px solid var(--c-primary);
  pointer-events:none;
}
.corner-bracket::after{
  content:"";position:absolute;top:-8px;left:-8px;
  width:5px;height:5px;border-radius:50%;background:var(--c-accent);
  pointer-events:none;
}
.on-dark .corner-bracket::before,.section--dark .corner-bracket::before{border-top-color:var(--c-dark-text);border-left-color:var(--c-dark-text);}

.lamp-wash{background-image:radial-gradient(520px 340px at 12% 0%,rgba(226,154,45,0.16),rgba(226,154,45,0) 70%);background-repeat:no-repeat;background-color:var(--c-bg);}
.lamp-wash.section--dark,.section--dark.lamp-wash,.lamp-wash.on-dark{background-image:radial-gradient(520px 340px at 12% 0%,rgba(226,154,45,0.22),rgba(226,154,45,0) 70%);background-color:var(--c-dark-bg);}

.img-treated{filter:saturate(1.04) contrast(0.96) brightness(1.05) sepia(0.06);border-radius:var(--radius);background-color:var(--c-rule);}

.grid{display:grid;gap:var(--sp-5);}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}
@media (max-width:900px){.grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:767px){.grid,.grid--2,.grid--3,.grid--4{grid-template-columns:minmax(0,1fr);}}

.phone-link{font-family:var(--ff-display);font-weight:700;font-size:var(--fs-phone);line-height:1.1;letter-spacing:-0.01em;text-decoration:none;display:inline-block;}
.section--dark .phone-link,.on-dark .phone-link{color:var(--c-dark-text);}
.phone-link:hover{color:var(--c-accent);}

.reveal{opacity:1;}
.link-draw{position:relative;text-decoration:none;color:var(--c-primary);}
.link-draw::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:var(--c-accent);transform:scaleX(0);transform-origin:left;}
.link-draw:hover::after,.link-draw:focus-visible::after{transform:scaleX(1);}
.on-dark .link-draw,.section--dark .link-draw{color:var(--c-dark-text);}
.media-zoom{overflow:hidden;border-radius:var(--radius);}
.media-zoom img{width:100%;}

@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(var(--mo-dist));transition:opacity var(--mo-dur) var(--mo-ease),transform var(--mo-dur) var(--mo-ease);transition-delay:var(--reveal-delay,0ms);}
  .reveal.is-visible{opacity:1;transform:translateY(0);}
  .reveal-stagger > *{opacity:0;transform:translateY(var(--mo-dist));transition:opacity var(--mo-dur) var(--mo-ease),transform var(--mo-dur) var(--mo-ease);transition-delay:var(--reveal-delay,0ms);}
  .reveal-stagger.is-visible > *,.reveal-stagger > .is-visible{opacity:1;transform:translateY(0);}
  .media-zoom img{transition:transform calc(var(--mo-dur) * 2) var(--mo-ease);}
  .media-zoom:hover img,.media-zoom:focus-within img{transform:scale(1.03);}
  .link-draw::after{transition:transform var(--t-hover);}
  .ken-burns{animation:kenburns 12s var(--mo-ease) infinite alternate;will-change:transform;}
  @keyframes kenburns{from{transform:scale(1);}to{transform:scale(1.04);}}
}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-stagger > *{opacity:1;transform:none;transition:none;}
  .ken-burns{animation:none;transform:none;}
  .media-zoom img{transition:none;}
  .media-zoom:hover img,.media-zoom:focus-within img{transform:none;}
  .link-draw::after{transition:none;}
  .card{transition:border-color var(--t-hover);}
  .card:hover{transform:none;}
}

.site-header{position:sticky;top:0;z-index:100;background-color:var(--c-bg);border-bottom:1px solid transparent;transition:border-color var(--t-hover),box-shadow var(--t-hover);}
.site-header.is-stuck{border-bottom-color:var(--c-rule);box-shadow:0 1px 0 rgba(26,29,33,0.06);}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);min-height:var(--header-h);width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-5);}

.wordmark-lock{display:inline-flex;align-items:center;text-decoration:none;padding:var(--sp-2) 0 var(--sp-2) 12px;position:relative;}
.wordmark-lock::before{content:"";position:absolute;left:0;top:calc(50% - 15px);width:10px;height:10px;border-top:2px solid var(--c-accent);border-left:2px solid var(--c-accent);}
.wordmark{font-family:var(--ff-display);font-size:1.3125rem;line-height:1.1;letter-spacing:-0.01em;white-space:nowrap;}
.wordmark__a{font-weight:700;color:var(--c-text);}
.wordmark__b{font-weight:400;color:var(--c-secondary);}
.footer .wordmark__a{color:var(--c-dark-text);}
.footer .wordmark__b{color:#A9B6BD;}
.footer .wordmark-lock::before{border-top-color:var(--c-accent);border-left-color:var(--c-accent);}

.nav-desktop{display:flex;align-items:center;gap:var(--sp-5);}
.nav-desktop ul{display:flex;align-items:center;gap:var(--sp-5);}
.nav-desktop a{font-family:var(--ff-body);font-weight:500;font-size:0.9375rem;color:var(--c-text);text-decoration:none;padding:var(--sp-2) 0;display:inline-block;position:relative;}
.nav-desktop a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--c-accent);transform:scaleX(0);transform-origin:left;}
.nav-desktop a:hover{color:var(--c-primary);}
.nav-desktop a:hover::after,.nav-desktop a:focus-visible::after{transform:scaleX(1);}
@media (prefers-reduced-motion:no-preference){.nav-desktop a::after{transition:transform var(--t-hover);}}

.nav-toggle{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.nav-burger{display:none;align-items:center;gap:var(--sp-2);min-height:44px;min-width:44px;padding:var(--sp-2) var(--sp-3);border:2px solid var(--c-primary);border-radius:var(--radius);font-family:var(--ff-body);font-weight:700;font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:0.14em;color:var(--c-primary);background:transparent;cursor:pointer;}
.nav-burger .bars{display:block;width:18px;height:2px;background:var(--c-primary);position:relative;}
.nav-burger .bars::before,.nav-burger .bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--c-primary);}
.nav-burger .bars::before{top:-5px;}
.nav-burger .bars::after{top:5px;}
.nav-toggle:focus-visible + .nav-burger{outline:3px solid var(--c-primary);outline-offset:3px;}

.nav-mobile{display:none;}
.nav-mobile__scrim{display:none;}

@media (max-width:900px){
  .nav-desktop{display:none;}
  .nav-burger{display:inline-flex;}
  .nav-mobile__scrim{position:fixed;inset:0;background:rgba(20,32,43,0.45);border:0;padding:0;margin:0;display:none;z-index:98;}
  .nav-mobile{
    display:block;position:fixed;left:0;right:0;top:var(--header-h);
    height:calc(100dvh - var(--header-h));
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    background-color:var(--c-bg);
    border-top:1px solid var(--c-rule);
    padding:var(--sp-5) var(--sp-5) var(--sp-8);
    z-index:99;
    visibility:hidden;opacity:0;transform:translateY(-8px);
  }
  .nav-mobile__list > li + li{border-top:1px solid var(--c-rule);}
  .nav-mobile__list a{display:flex;align-items:center;min-height:52px;padding:var(--sp-2) 0;font-family:var(--ff-body);font-weight:500;font-size:1.0625rem;color:var(--c-text);text-decoration:none;}
  .nav-mobile__list a:hover{color:var(--c-primary);}
  .nav-mobile__item{display:block;cursor:pointer;}
  .nav-mobile__cta{margin-top:var(--sp-5);display:block;}
  .nav-mobile__cta .btn{width:100%;}
  .nav-mobile__close{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;margin-top:var(--sp-5);padding:var(--sp-2) var(--sp-4);border:2px solid var(--c-primary);border-radius:var(--radius);font-family:var(--ff-body);font-weight:700;font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:0.14em;color:var(--c-primary);cursor:pointer;background:transparent;}
  .nav-mobile__meta{margin-top:var(--sp-6);font-family:var(--ff-body);font-size:0.9375rem;color:var(--c-secondary);}
  .nav-mobile__meta a{color:var(--c-primary);}
  .nav-toggle:checked ~ .nav-mobile{visibility:visible;opacity:1;transform:translateY(0);}
  .nav-toggle:checked ~ .nav-mobile__scrim{display:block;}
  @media (prefers-reduced-motion:no-preference){
    .nav-mobile{transition:opacity var(--mo-dur) var(--mo-ease),transform var(--mo-dur) var(--mo-ease),visibility var(--mo-dur) step-end;}
    .nav-toggle:checked ~ .nav-mobile{transition:opacity var(--mo-dur) var(--mo-ease),transform var(--mo-dur) var(--mo-ease),visibility 0s;}
  }
}
@media (max-width:480px){
  .header__cta{display:none;}
  .wordmark{font-size:1.1875rem;}
}

.footer{background-color:var(--c-dark-bg);color:var(--c-dark-text);padding-block:var(--sp-8) var(--sp-5);margin-top:var(--sp-9);}
.footer h2,.footer h3{color:var(--c-dark-text);}
.footer__grid{display:grid;gap:var(--sp-7);grid-template-columns:1.2fr 1fr 1fr;}
@media (max-width:767px){.footer__grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-6);}}
.footer__tagline{color:#C7CFD4;font-size:1rem;max-width:34ch;margin-top:var(--sp-4);}
.footer__label{font-family:var(--ff-body);font-weight:700;font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:0.14em;color:var(--c-accent);margin-bottom:var(--sp-4);}
.footer__links li + li{margin-top:var(--sp-3);}
.footer__links a{color:var(--c-dark-text);text-decoration:none;font-size:1rem;display:inline-flex;min-height:32px;align-items:center;}
.footer__links a:hover{color:var(--c-accent);}
.footer__contact li + li{margin-top:var(--sp-3);}
.footer__contact a{color:var(--c-dark-text);text-decoration:none;}
.footer__contact a:hover{color:var(--c-accent);}
.footer__area{color:#C7CFD4;font-size:1rem;}
.footer__bottom{margin-top:var(--sp-8);padding-top:var(--sp-5);border-top:1px solid rgba(237,232,222,0.18);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4);}
.footer__legal{display:flex;flex-wrap:wrap;gap:var(--sp-4);}
.footer__legal a{color:#C7CFD4;text-decoration:none;font-size:0.9375rem;}
.footer__legal a:hover{color:var(--c-accent);}
.footer__copy{font-size:0.9375rem;color:#C7CFD4;margin:0;}
.footer__by{font-size:0.9375rem;}
.footer__by a{color:var(--c-dark-text);text-decoration:underline;text-decoration-color:var(--c-accent);text-underline-offset:3px;}
.footer__by a:hover{color:var(--c-accent);}
@media (max-width:600px){.footer__bottom{flex-direction:column;align-items:flex-start;}}
