  :root{
    --navy:#001F54;
    --navy-deep:#00102E;
    --red:#D60000;
    --red-deep:#A80000;
    --cream:#F8F3E9;
    --cream-card:#F1E9D8;
    --brass:#B99552;
    --brass-light:#D8C093;
    --ink:#1C1917;
    --ink-soft:#4A463F;
    --max:1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img,svg{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  .eyebrow{
    font-family:'Space Grotesk', sans-serif;
    font-weight:600;
    font-size:12.5px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--red);
  }
  .eyebrow.on-dark{color:var(--brass-light);}
  h1,h2,h3{font-family:'Fraunces', serif; font-weight:500; line-height:1.05; letter-spacing:-.01em;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'Space Grotesk', sans-serif; font-weight:600;
    font-size:14px; letter-spacing:.04em; text-transform:uppercase;
    padding:15px 28px; border-radius:2px;
    border:1.5px solid transparent;
    cursor:pointer;
    transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-red{background:var(--red); color:var(--cream);}
  .btn-red:hover{background:var(--red-deep);}
  .btn-outline{border-color:rgba(248,243,233,.4); color:var(--cream);}
  .btn-outline:hover{border-color:var(--cream); background:rgba(248,243,233,.08);}
  .btn-navy{border-color:var(--navy); color:var(--navy);}
  .btn-navy:hover{background:var(--navy); color:var(--cream);}

  /* ---------- NAV ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:22px 0;
    transition:padding .35s ease, background .35s ease, box-shadow .35s ease;
  }
  header.scrolled{
    padding:12px 0;
    background:rgba(248,243,233,.94);
    backdrop-filter:blur(10px);
    box-shadow:0 8px 24px rgba(22,38,74,.08);
    border-bottom:1px solid rgba(22,38,74,.08);
  }
  nav{display:flex; align-items:center; justify-content:space-between;}
  .logo-mark{display:flex; align-items:center; gap:12px;}
  .brand-logo{height:64px; width:auto; flex-shrink:0; transition:height .35s ease;}
  header.scrolled .brand-logo{height:50px;}
  .nav-links{display:flex; align-items:center; gap:38px;}
  .nav-links a{
    font-family:'Space Grotesk', sans-serif; font-size:13px; font-weight:600;
    letter-spacing:.08em; text-transform:uppercase; color:var(--navy);
    position:relative; padding-bottom:4px;
  }
  .nav-links a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1.5px; background:var(--brass);
    transition:width .3s ease;
  }
  .nav-links a:hover::after{width:100%;}
  .nav-cta{display:flex; align-items:center; gap:18px;}
  .burger{display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:120;}
  .burger span{width:24px; height:2px; background:var(--navy);}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    background:linear-gradient(170deg, #FBF8F1 0%, #F7EFDC 50%, #F1E4C4 100%);
    display:flex; align-items:center;
    padding-top:110px;
    overflow:hidden;
  }
  .hero-skyline{
    position:absolute; left:0; right:0; bottom:0; width:100%; opacity:.9;
  }
  .hero-grain{
    position:absolute; inset:0; pointer-events:none; opacity:.04;
    background-image:radial-gradient(circle at 20% 20%, #16264A 0, transparent 45%),
                      radial-gradient(circle at 80% 70%, #16264A 0, transparent 45%);
  }
  .hero-inner{
    position:relative; z-index:2;
    display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center;
    width:100%;
  }
  .hero h1{
    font-size:clamp(48px, 6.4vw, 92px);
    color:var(--navy);
    margin:22px 0 26px;
  }
  .hero h1 em{font-style:italic; color:var(--red);}
  .hero p.lede{
    font-size:18px; line-height:1.65; color:var(--ink-soft); max-width:480px; margin-bottom:36px;
  }
  .hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
  .hero-visual{
    position:relative; aspect-ratio:4/5; border-radius:4px; overflow:hidden;
    background:linear-gradient(160deg, var(--red) 0%, var(--red-deep) 100%);
    box-shadow:0 40px 80px -20px rgba(0,0,0,.5);
  }
  .hero-visual .plate{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  }
  .hero-visual .ring{
    position:absolute; border-radius:50%; border:1px solid rgba(248,243,233,.18);
  }
  .hero-badge{
    position:absolute; bottom:24px; left:24px; right:24px;
    background:rgba(22,38,74,.92); backdrop-filter:blur(6px);
    border:1px solid rgba(185,149,82,.4);
    padding:16px 20px; border-radius:3px;
    display:flex; justify-content:space-between; align-items:center;
  }
  .hero-badge .label{font-family:'Space Grotesk',sans-serif; font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--brass-light);}
  .hero-badge .value{font-family:'Fraunces',serif; font-size:22px; color:var(--cream); margin-top:2px;}
  .scroll-cue{
    position:absolute; bottom:28px; left:32px; z-index:3;
    display:flex; align-items:center; gap:10px;
    font-family:'Space Grotesk',sans-serif; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    color:rgba(22,38,74,.45);
  }
  .scroll-cue .line{width:36px; height:1px; background:rgba(22,38,74,.3); position:relative; overflow:hidden;}
  .scroll-cue .line::after{
    content:''; position:absolute; left:-100%; top:0; height:100%; width:100%; background:var(--brass);
    animation:slide 2.2s ease-in-out infinite;
  }
  @keyframes slide{ 50%{left:100%;} 100%{left:100%;} }

  /* ---------- SECTION SHELL ---------- */
  section{padding:120px 0; position:relative;}
  .section-head{max-width:640px; margin-bottom:64px;}
  .section-head h2{font-size:clamp(32px,4vw,48px); margin-top:14px; color:var(--navy);}
  .section-head p{font-size:17px; color:var(--ink-soft); margin-top:18px; line-height:1.65;}

  /* divider skyline */
  .divider{
    display:flex; align-items:center; justify-content:center; gap:18px;
    padding:6px 0;
  }
  .divider .line{flex:1; height:1px; background:linear-gradient(90deg, transparent, rgba(185,149,82,.5), transparent);}
  .divider svg{width:64px; height:20px; opacity:.75;}

  /* ---------- HERITAGE ---------- */
  .heritage{background:var(--cream);}
  .heritage-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:center;}
  .heritage-copy p{font-size:17px; line-height:1.75; color:var(--ink-soft); margin-bottom:18px;}
  .heritage-copy a.link-arrow{
    font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:13px; letter-spacing:.06em; text-transform:uppercase;
    color:var(--navy); display:inline-flex; align-items:center; gap:8px; margin-top:8px; border-bottom:1.5px solid var(--brass); padding-bottom:4px;
  }
  .compare-card{
    background:var(--navy); border-radius:4px; padding:36px;
    display:grid; grid-template-columns:1fr 1fr; gap:0;
    position:relative;
  }
  .compare-col{padding:12px 20px;}
  .compare-col + .compare-col{border-left:1px solid rgba(248,243,233,.15);}
  .compare-col .tag{font-family:'Space Grotesk',sans-serif; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--brass-light); margin-bottom:14px;}
  .compare-col h4{font-family:'Fraunces',serif; font-size:22px; color:var(--cream); margin-bottom:10px; font-style:italic; font-weight:500;}
  .compare-col ul{list-style:none;}
  .compare-col li{font-size:13.5px; color:rgba(248,243,233,.72); padding:7px 0; border-top:1px solid rgba(248,243,233,.08);}
  .compare-col li:first-of-type{border-top:none;}

  /* ---------- MENU ---------- */
  .menu-section{background:var(--cream);}
  .menu-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(22,38,74,.08); border-radius:6px; overflow:hidden;}
  .menu-card{
    background:#FFFDF8; padding:38px 30px; transition:background .3s ease;
    display:flex; flex-direction:column; min-height:230px;
  }
  .menu-card:hover{background:var(--cream-card);}
  .menu-card .icon{width:44px; height:44px; margin-bottom:22px;}
  .menu-card .icon svg{stroke:var(--brass); fill:none;}
  .menu-card h3{font-size:23px; color:var(--navy); margin-bottom:10px; font-weight:500;}
  .menu-card p{font-size:14.5px; color:var(--ink-soft); line-height:1.6; flex-grow:1;}
  .menu-foot{text-align:center; margin-top:52px;}

  /* ---------- PROCESS ---------- */
  .process{background:var(--cream);}
  .process-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0; position:relative;}
  .process-step{padding:0 34px; position:relative;}
  .process-step:not(:first-child){border-left:1px solid rgba(28,25,23,.1);}
  .process-num{
    font-family:'Fraunces',serif; font-style:italic; font-size:56px; color:var(--brass); line-height:1; margin-bottom:22px;
  }
  .process-step h3{font-size:24px; color:var(--navy); margin-bottom:12px;}
  .process-step p{font-size:15px; color:var(--ink-soft); line-height:1.65;}

  /* ---------- LOCATIONS ---------- */
  .locations{background:var(--red); color:var(--cream); position:relative; overflow:hidden;}
  .locations::before{
    content:''; position:absolute; top:-40%; right:-10%; width:600px; height:600px; border-radius:50%;
    background:rgba(248,243,233,.06);
  }
  .loc-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px; position:relative; z-index:2; align-items:stretch;}
  .loc-stack{display:flex; flex-direction:column; gap:28px;}
  .loc-card{
    background:rgba(22,38,74,.25); border:1px solid rgba(248,243,233,.25);
    border-radius:4px; padding:40px; flex:1;
    display:flex; flex-direction:column;
  }
  .loc-card .eyebrow{color:var(--brass-light);}
  .loc-card h3{font-size:28px; color:var(--cream); margin:12px 0 20px;}
  .loc-card .row{display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-top:1px solid rgba(248,243,233,.18); font-size:14.5px;}
  .loc-card .row:first-of-type{border-top:none;}
  .loc-card .row span:first-child{color:rgba(248,243,233,.6); flex-shrink:0;}
  .loc-card .row span:last-child{font-family:'Space Grotesk',sans-serif; font-weight:600; text-align:right;}
  .loc-card .row a{border-bottom:1px solid rgba(248,243,233,.35);}
  .loc-card .row a:hover{border-color:var(--cream);}
  .loc-card .btn{margin-top:24px; width:100%; justify-content:center;}
  .loc-card-actions{display:flex; gap:14px; margin-top:auto; padding-top:24px;}
  .loc-card-actions .btn{margin-top:0; flex:1;}
  .contact-map{
    border-radius:4px; overflow:hidden; min-height:100%;
    border:1px solid rgba(248,243,233,.25);
  }
  .contact-map iframe{width:100%; height:100%; min-height:480px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--navy-deep); color:rgba(248,243,233,.65); padding:70px 0 30px;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(248,243,233,.1);}
  .footer-logo{
    height:76px; padding:12px 18px; background:var(--cream); border-radius:6px;
  }
  .footer-brand p{font-size:13.5px; margin-top:16px; line-height:1.6; max-width:280px; color:rgba(248,243,233,.5);}
  .footer-col h5{font-family:'Space Grotesk',sans-serif; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-light); margin-bottom:16px;}
  .footer-col a, .footer-col p{display:block; font-size:14px; margin-bottom:10px; color:rgba(248,243,233,.65);}
  .footer-col a:hover{color:var(--cream);}
  .footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:12.5px; color:rgba(248,243,233,.4); flex-wrap:wrap; gap:12px;}
  .socials{display:flex; gap:14px;}
  .socials a{width:34px; height:34px; border:1px solid rgba(248,243,233,.2); border-radius:50%; display:flex; align-items:center; justify-content:center;}
  .socials a:hover{border-color:var(--brass); background:rgba(185,149,82,.1);}

  [data-reveal]{opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease;}
  [data-reveal].in{opacity:1; transform:translateY(0);}

  @media (max-width:980px){
    .hero-inner{grid-template-columns:1fr;}
    .hero-visual{max-width:420px; margin:0 auto;}
    .heritage-grid{grid-template-columns:1fr;}
    .menu-grid{grid-template-columns:1fr 1fr;}
    .process-grid{grid-template-columns:1fr; gap:44px;}
    .process-step{border-left:none !important; padding:0;}
    .loc-grid{grid-template-columns:1fr;}
    .contact-map{min-height:340px;}
    .footer-grid{grid-template-columns:1fr 1fr; gap:36px;}
  }
  @media (max-width:640px){
    .nav-links{position:fixed; top:0; right:0; height:100vh; width:78%; background:var(--navy-deep); flex-direction:column; justify-content:center; align-items:flex-start; padding:0 40px; transform:translateX(100%); transition:transform .4s ease; gap:28px;}
    .nav-links.open{transform:translateX(0);}
    .nav-links a{color:var(--cream) !important;}
    .burger{display:flex;}
    .nav-cta .btn-outline{display:none;}
    .wrap{padding:0 22px;}
    .menu-grid{grid-template-columns:1fr;}
    section{padding:80px 0;}
    .compare-card{grid-template-columns:1fr; gap:24px;}
    .compare-col + .compare-col{border-left:none; border-top:1px solid rgba(248,243,233,.15); padding-top:24px;}
  }
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    [data-reveal]{opacity:1; transform:none; transition:none;}
    .scroll-cue .line::after{animation:none;}
  }
