
  @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

  :root{
    --ink:#141412;
    --plaster:#F3F1EA;
    --plaster-dim:#EAE6D9;
    --slate:#5C5A4B;
    --slate-dim:#9A987F;
    --clay:#C9C2B4;
    --brass:#8D8B72;
    --brass-bright:#6C6A57;
    --line: rgba(20,20,18,0.16);
    --radius: 2px;
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--plaster);
    color:var(--ink);
    font-family:'IBM Plex Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    position:relative;
  }
  #moltenMetal{
    position:fixed;
    inset:0;
    z-index:-1;
    width:100vw;
    height:100vh;
    pointer-events:none;
    display:block;
  }
  h1,h2,h3,.display{
    font-family:'Space Grotesk', sans-serif;
    letter-spacing:-0.01em;
    font-weight:600;
  }
  .mono{
    font-family:'IBM Plex Mono', monospace;
    letter-spacing:0.02em;
  }
  a{color:inherit; text-decoration:none;}
  button{font-family:inherit; cursor:pointer; border:none; background:none;}
  :focus-visible{outline:2px solid var(--brass); outline-offset:3px;}

  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:500;
    background:rgba(237,234,226,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  nav.wrap{
    display:flex; align-items:center; justify-content:space-between;
    height:96px;
  }
  .logo{
    font-family:'Space Grotesk', sans-serif;
    font-weight:700;
    font-size:1.35rem;
    display:flex; align-items:center; gap:16px;
  }
  .logo .mark-img{
    height:52px; width:auto;
    flex-shrink:0;
  }
  .logo small{
    display:block;
    font-family:'IBM Plex Mono', monospace;
    font-weight:400;
    font-size:0.58rem;
    letter-spacing:0.14em;
    color:var(--slate-dim);
    margin-top:1px;
  }
  .navlinks{display:flex; align-items:center; gap:36px;}
  .navlinks > button, .navlinks > .nav-dropdown > .dropdown-trigger{
    font-size:0.92rem;
    font-weight:500;
    color:var(--ink);
    position:relative;
    padding:6px 0;
    display:flex; align-items:center; gap:6px;
  }
  .navlinks > button::after, .navlinks > .nav-dropdown > .dropdown-trigger::after{
    content:'';
    position:absolute; left:0; right:0; bottom:0;
    height:2px; background:var(--brass);
    transform:scaleX(0); transform-origin:left;
    transition:transform .25s ease;
  }
  .navlinks > button[aria-current="page"]::after,
  .navlinks > button:hover::after,
  .nav-dropdown:hover .dropdown-trigger::after,
  .nav-dropdown.open .dropdown-trigger::after,
  .dropdown-trigger[aria-current="page"]::after{transform:scaleX(1);}
  .navlinks > button[aria-current="page"],
  .dropdown-trigger[aria-current="page"]{color:var(--brass);}
  .dropdown-trigger .chev{transition:transform .25s ease;}
  .nav-dropdown:hover .chev, .nav-dropdown.open .chev{transform:rotate(180deg);}

  .nav-dropdown{position:relative;}
  .dropdown-panel{
    position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
    background:var(--plaster);
    border:1px solid var(--line);
    box-shadow:0 18px 40px rgba(20,20,18,0.12);
    min-width:320px;
    padding:8px;
    opacity:0; visibility:hidden;
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
    z-index:150;
  }
  .nav-dropdown:hover .dropdown-panel,
  .nav-dropdown.open .dropdown-panel{
    opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
  }
  .dropdown-panel button{
    display:flex; align-items:center; gap:12px;
    width:100%; text-align:left;
    padding:12px 14px;
    font-size:0.86rem;
    color:var(--ink);
    border-radius:2px;
    transition:background .15s ease, color .15s ease;
  }
  .dropdown-panel button:hover{background:rgba(141,139,114,0.14); color:var(--brass);}
  .dropdown-panel .d-num{color:var(--brass); font-size:0.7rem; width:20px; flex-shrink:0;}
  .dropdown-panel .dropdown-all{
    margin-bottom:6px; border-bottom:1px solid var(--line);
    color:var(--slate); font-size:0.8rem; padding-bottom:14px;
  }
  .dropdown-panel .dropdown-all:hover{color:var(--brass); background:none;}

  .nav-cta{
    background:var(--brass); color:var(--ink);
    padding:11px 20px;
    font-size:0.85rem; font-weight:500;
    border-radius:var(--radius);
    border:1.5px solid var(--ink);
    box-shadow:3px 3px 0px 0px var(--ink);
    transition:background .2s ease, transform .15s cubic-bezier(.22,1,.36,1), box-shadow .15s cubic-bezier(.22,1,.36,1);
    position:relative;
    overflow:hidden;
  }
  .nav-cta:hover{
    background:var(--brass-bright); color:var(--plaster);
    transform:translate(1.5px,1.5px);
    box-shadow:1.5px 1.5px 0px 0px var(--ink);
  }
  .nav-cta:active{
    transform:translate(3px,3px);
    box-shadow:0px 0px 0px 0px var(--ink);
  }
  .navlinks-mobile-toggle{display:none;}

  @media(max-width:820px){
    .navlinks{display:none;}
    .nav-cta{padding:9px 14px; font-size:0.78rem;}
    .logo{font-size:1rem; gap:10px;}
    .logo .mark-img{height:36px;}
    .logo small{display:none;}
    nav.wrap > div > .btn-ghost{display:none;}
    nav.wrap{height:72px;}
    .navlinks-mobile-toggle{
      display:flex; flex-direction:column; justify-content:center; align-items:center;
      gap:5px; width:38px; height:38px; flex-shrink:0;
      border:1.5px solid var(--ink); border-radius:var(--radius);
      background:var(--plaster);
    }
    .navlinks-mobile-toggle span{
      display:block; width:18px; height:2px; background:var(--ink);
      transition:transform .25s ease, opacity .25s ease;
    }
    .navlinks-mobile-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
    .navlinks-mobile-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
    .navlinks-mobile-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  }

  .mobile-menu{
    position:fixed; inset:0; z-index:400;
    background:var(--plaster);
    display:flex; flex-direction:column;
    padding:100px 28px 40px;
    overflow-y:auto;
    transform:translateY(-100%);
    transition:transform .35s cubic-bezier(.22,1,.36,1);
  }
  .mobile-menu.open{transform:translateY(0);}
  .mobile-menu button{
    display:block; width:100%; text-align:left;
    font-family:'Space Grotesk',sans-serif; font-size:1.3rem; font-weight:500;
    color:var(--ink);
    padding:14px 0;
    border-bottom:1px solid var(--line);
  }
  .mobile-menu .mm-services-list{padding-left:16px;}
  .mobile-menu .mm-services-list button{
    font-family:'IBM Plex Sans',sans-serif; font-size:0.95rem; font-weight:400;
    color:var(--slate); padding:11px 0; border-bottom:1px solid var(--line);
    display:flex; align-items:center; gap:10px;
  }
  .mobile-menu .mm-services-list .d-num{color:var(--brass); font-size:0.7rem;}
  .mobile-menu .mm-label{
    font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--brass); margin:20px 0 4px;
  }
  .mobile-menu .mm-cta-row{margin-top:24px; display:flex; flex-direction:column; gap:14px;}
  .mobile-menu .mm-cta-row .btn-primary{width:100%; text-align:center;}
  .mobile-menu .mm-cta-row a{font-size:0.95rem; color:var(--slate); text-align:center;}
  @media(prefers-reduced-motion:reduce){ .mobile-menu{transition:none;} }

  /* ---------- PAGE / SECTION SYSTEM ---------- */
  .page{display:none;}
  .page.active{display:block; animation:fadein .5s ease;}
  @keyframes fadein{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

  /* ---------- MOTION SYSTEM ---------- */
  h1{overflow:visible;}
  h1 .reveal-line{
    display:block;
    opacity:0;
    transform:translateY(28px);
    animation:lineUp .7s cubic-bezier(.22,1,.36,1) forwards;
  }
  p.reveal-line, div.reveal-line, h1.reveal-line{
    opacity:0;
    transform:translateY(14px);
    animation:lineUp .6s cubic-bezier(.22,1,.36,1) forwards;
  }
  @keyframes lineUp{
    to{opacity:1; transform:translateY(0);}
  }

  .reveal{
    opacity:0;
    transform:translateY(26px);
    transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
  }
  .reveal.in-view{opacity:1; transform:translateY(0);}
  .reveal-stagger > *{
    opacity:0;
    transform:translateY(22px);
    transition:opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1);
  }
  .reveal-stagger.in-view > *{opacity:1; transform:translateY(0);}
  .reveal-stagger.in-view > *:nth-child(1){transition-delay:.02s;}
  .reveal-stagger.in-view > *:nth-child(2){transition-delay:.1s;}
  .reveal-stagger.in-view > *:nth-child(3){transition-delay:.18s;}
  .reveal-stagger.in-view > *:nth-child(4){transition-delay:.26s;}
  .reveal-stagger.in-view > *:nth-child(5){transition-delay:.34s;}
  .reveal-stagger.in-view > *:nth-child(6){transition-delay:.42s;}

  @media(prefers-reduced-motion:reduce){
    h1 .reveal-line, p.reveal-line, div.reveal-line, h1.reveal-line{animation:none; opacity:1; transform:none;}
    .reveal, .reveal-stagger > *{transition:none; opacity:1; transform:none;}
    .page.active{animation:none;}
    html{scroll-behavior:auto;}
    .process-step, .process-step .num, .service-card{transition:none;}
    .process-step:hover, .service-card:hover{transform:none;}
  }

  section{padding:96px 0;}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.75rem;
    letter-spacing:0.15em;
    text-transform:uppercase;
    color:var(--brass);
    margin-bottom:18px;
    display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{
    content:'';
    width:24px; height:1px;
    background:var(--brass);
  }

  /* ---------- HERO ---------- */
  .hero{
    padding:88px 0 60px;
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:60px;
    align-items:center;
  }
  .hero h1{
    font-size:clamp(2rem, 3.4vw, 2.9rem);
    line-height:1.2;
    margin-bottom:22px;
  }
  .hero h1 em{
    font-style:normal; color:var(--slate);
  }
  .tw-cursor{
    display:inline-block;
    width:2px;
    height:1em;
    vertical-align:-0.12em;
    background:var(--ink);
    margin-left:2px;
    animation:twBlink 0.9s step-end infinite;
  }
  @keyframes twBlink{
    0%, 100%{opacity:1;}
    50%{opacity:0;}
  }
  @media(prefers-reduced-motion:reduce){
    .tw-cursor{animation:none; opacity:1;}
  }
  .hero p.lede{
    font-size:1.08rem;
    line-height:1.6;
    color:#3C4139;
    max-width:46ch;
    margin-bottom:34px;
  }
  .hero-actions{display:flex; gap:16px; align-items:center; flex-wrap:wrap;}
  .btn-primary{
    background:var(--brass); color:var(--ink);
    padding:15px 26px;
    font-size:0.92rem; font-weight:500;
    border-radius:var(--radius);
    border:1.5px solid var(--ink);
    box-shadow:4px 4px 0px 0px var(--ink);
    transition:transform .15s cubic-bezier(.22,1,.36,1), box-shadow .15s cubic-bezier(.22,1,.36,1), background .2s ease;
    display:inline-block;
    position:relative;
    overflow:hidden;
  }
  .btn-primary:hover{
    background:var(--brass-bright); color:var(--plaster);
    transform:translate(2px,2px);
    box-shadow:2px 2px 0px 0px var(--ink);
  }
  .btn-primary:active{
    transform:translate(4px,4px);
    box-shadow:0px 0px 0px 0px var(--ink);
  }
  .ripple{
    position:absolute;
    border-radius:50%;
    background:rgba(255,255,255,0.55);
    transform:translate(-50%,-50%) scale(0);
    pointer-events:none;
    animation:rippleOut .55s cubic-bezier(.22,1,.36,1) forwards;
  }
  @keyframes rippleOut{
    to{transform:translate(-50%,-50%) scale(1); opacity:0;}
  }
  @media(prefers-reduced-motion:reduce){
    .ripple{display:none;}
  }
  .btn-ghost{
    padding:15px 4px;
    font-size:0.92rem; font-weight:500;
    border-bottom:1px solid var(--ink);
    transition:border-color .2s ease, color .2s ease, transform .15s ease;
  }
  .btn-ghost:hover{color:var(--brass); border-color:var(--brass); transform:translateX(3px);}
  .btn-ghost:active{transform:translateX(5px);}

  /* ---- home hero room grid signature ---- */
  .plan-wrap{
    position:relative;
    background:#F5F2EB;
    border:1px solid var(--line);
    padding:28px;
    box-shadow:0 24px 40px rgba(20,20,18,0.08), 0 8px 16px rgba(20,20,18,0.05);
  }
  .plan-wrap .plan-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    color:var(--slate-dim);
    display:flex; justify-content:space-between;
    margin-bottom:14px;
    letter-spacing:0.08em;
  }
  .plan-rooms{
    display:flex; flex-direction:column; gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .plan-row{display:grid; grid-template-columns:1fr 1fr; gap:1px;}
  .plan-row-3{grid-template-columns:1fr 1fr 1fr;}
  .plan-room{
    background:var(--plaster);
    padding:12px;
    display:flex; flex-direction:column; gap:8px;
    transition:background .2s ease, transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s cubic-bezier(.22,1,.36,1);
    position:relative; z-index:1;
  }
  .plan-room:hover{
    background:#F5F2EB;
    transform:translateY(-6px);
    box-shadow:0 18px 26px rgba(20,20,18,0.1), 0 6px 10px rgba(20,20,18,0.06);
    z-index:2;
  }
  .plan-room-label{
    font-size:0.68rem; text-transform:uppercase; letter-spacing:0.08em;
    color:var(--ink);
  }
  .plan-room-img{
    aspect-ratio:4/3;
    background:repeating-linear-gradient(135deg, var(--plaster-dim), var(--plaster-dim) 10px, var(--plaster) 10px, var(--plaster) 20px);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
    color:var(--slate-dim);
    overflow:hidden;
  }
  .plan-room-img svg{width:22px; height:22px; opacity:.55;}
  .plan-room-img .mono{font-size:0.58rem; text-transform:uppercase; letter-spacing:0.06em;}
  .plan-room-img.has-photo{background:none; box-shadow:inset 0 0 0 1px rgba(20,20,18,0.08);}
  .plan-room-img.has-photo img{width:100%; height:100%; object-fit:cover; display:block;}
  .plan-caption{
    margin-top:14px;
    font-size:0.78rem;
    color:var(--slate-dim);
  }
  @media(max-width:520px){
    .plan-row, .plan-row-3{grid-template-columns:1fr 1fr;}
    .plan-row-3 .plan-room:last-child{grid-column:1 / -1;}
    .plan-row-3 .plan-room:last-child .plan-room-img{aspect-ratio:16/9;}
  }

  @media(max-width:900px){
    .hero{grid-template-columns:1fr; padding-top:56px;}
  }

  /* ---------- PROCESS ---------- */
  .process-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    margin-top:44px;
  }
  .process-step{
    background:var(--plaster);
    padding:32px 26px;
    box-shadow:0 1px 3px rgba(20,20,18,0.06), 0 1px 2px rgba(20,20,18,0.05);
    transition:transform .3s cubic-bezier(.22,1,.36,1), background .3s ease, box-shadow .3s cubic-bezier(.22,1,.36,1);
  }
  .process-step:hover{
    transform:translateY(-8px);
    background:#F5F2EB;
    box-shadow:0 20px 30px rgba(20,20,18,0.11), 0 8px 12px rgba(20,20,18,0.07);
  }
  .process-step .num{
    font-family:'IBM Plex Mono', monospace;
    color:var(--brass);
    font-size:0.78rem;
    margin-bottom:20px;
    display:block;
    transition:transform .3s ease;
  }
  .process-step:hover .num{transform:translateX(4px);}
  .process-step h3{font-size:1.05rem; margin-bottom:10px;}
  .process-step p{font-size:0.9rem; color:#4A4F46; line-height:1.55;}
  @media(max-width:900px){
    .process-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media(max-width:560px){
    .process-grid{grid-template-columns:1fr;}
  }

  /* ---------- SERVICE CARDS ---------- */
  .card-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .service-card{
    background:var(--plaster);
    padding:38px 30px;
    transition:background .3s ease, transform .3s cubic-bezier(.22,1,.36,1);
  }
  .service-card:hover{background:#F5F2EB; transform:translateY(-6px);}
  .service-card .tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    color:var(--slate-dim);
    text-transform:uppercase;
    letter-spacing:0.1em;
    margin-bottom:16px;
    display:block;
  }
  .service-card h3{font-size:1.18rem; margin-bottom:12px;}
  .service-card p{font-size:0.9rem; color:#4A4F46; line-height:1.6; margin-bottom:16px;}
  .service-card .scope{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    color:var(--brass);
  }
  @media(max-width:900px){.card-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:600px){.card-grid{grid-template-columns:1fr;}}

  /* ---------- SERVICE TILE GRID (hub) ---------- */
  .tile-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    margin-top:20px;
  }
  .svc-tile{
    background:var(--plaster);
    text-align:left;
    display:flex; flex-direction:column;
    position:relative;
    overflow:hidden;
    box-shadow:0 1px 3px rgba(20,20,18,0.06), 0 1px 2px rgba(20,20,18,0.05);
    transition:transform .3s cubic-bezier(.22,1,.36,1), background .3s ease, box-shadow .3s cubic-bezier(.22,1,.36,1);
  }
  .svc-tile::before{
    content:"";
    position:absolute; top:0; left:0; right:0; height:3px;
    background:var(--brass);
    transform:scaleX(0); transform-origin:left;
    transition:transform .4s cubic-bezier(.22,1,.36,1);
  }
  .svc-tile:hover::before{transform:scaleX(1);}
  .svc-tile:hover{
    transform:translateY(-8px);
    background:#F5F2EB;
    box-shadow:0 20px 30px rgba(20,20,18,0.11), 0 8px 12px rgba(20,20,18,0.07);
  }
  .svc-tile.featured{grid-column:span 3;}
  .tile-body{padding:30px 28px 28px; display:flex; flex-direction:column; gap:12px; flex:1;}
  .tile-top{display:flex; align-items:center; justify-content:space-between;}
  .tile-icon{
    width:52px; height:52px; border-radius:50%;
    background:var(--plaster-dim);
    display:flex; align-items:center; justify-content:center;
    color:var(--brass-bright);
    transition:background .3s ease, transform .3s cubic-bezier(.22,1,.36,1);
    flex-shrink:0;
  }
  .tile-icon svg{width:24px; height:24px;}
  .svc-tile:hover .tile-icon{background:var(--brass); color:var(--plaster); transform:rotate(-8deg) scale(1.06);}
  .tile-num{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--clay); letter-spacing:0.05em;}
  .tile-tag{font-size:0.66rem; color:var(--brass); text-transform:uppercase; letter-spacing:0.1em;}
  .tile-title{font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:1.1rem; color:var(--ink);}
  .tile-desc{font-size:0.86rem; color:#4A4F46; line-height:1.5; flex:1;}
  .tile-link{
    font-size:0.74rem; font-weight:600; letter-spacing:0.02em;
    color:var(--plaster);
    background:var(--brass);
    margin-top:10px; padding:7px 14px;
    border-radius:999px;
    display:inline-flex; align-items:center; gap:4px;
    width:fit-content;
    transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
    box-shadow:0 2px 6px rgba(20,20,18,0.12);
  }
  .svc-tile:hover .tile-link{color:var(--plaster); background:var(--brass-bright); transform:translateX(4px); box-shadow:0 4px 10px rgba(20,20,18,0.18);}
  @media(max-width:900px){.tile-grid{grid-template-columns:repeat(2,1fr);} .svc-tile.featured{grid-column:span 2;}}
  @media(max-width:640px){.tile-grid{grid-template-columns:1fr;} .svc-tile.featured{grid-column:span 1;}}

  /* ---------- SERVICE DETAIL PAGES ---------- */
  .breadcrumb{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem; color:var(--slate-dim);
    margin-bottom:26px;
  }
  .breadcrumb button{color:var(--slate-dim); transition:color .2s ease;}
  .breadcrumb button:hover{color:var(--brass);}
  .breadcrumb .sep{margin:0 8px; opacity:.6;}
  .breadcrumb .current{color:var(--brass);}

  .svc-hero{padding-top:56px; padding-bottom:20px;}
  .svc-hero-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center;}
  .svc-hero h1{font-size:clamp(2rem,4vw,2.7rem); margin-bottom:20px;}
  .svc-hero .intro{font-size:1rem; line-height:1.65; color:#3C4139; max-width:48ch; margin-bottom:28px;}
  @media(max-width:900px){.svc-hero-grid{grid-template-columns:1fr;}}

  .img-placeholder{
    aspect-ratio:4/3;
    background:repeating-linear-gradient(135deg, var(--plaster-dim), var(--plaster-dim) 12px, var(--plaster) 12px, var(--plaster) 24px);
    border:1px solid var(--line);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
    color:var(--slate-dim);
    box-shadow:0 16px 26px rgba(20,20,18,0.08), 0 4px 8px rgba(20,20,18,0.05);
    overflow:hidden;
  }
  .img-placeholder svg{width:40px; height:40px; opacity:.55;}
  .img-placeholder .mono{font-size:0.68rem; text-transform:uppercase; letter-spacing:0.08em;}
  .img-placeholder.has-photo{background:#fff;}
  .img-placeholder.has-photo img{width:100%; height:100%; object-fit:contain; display:block;}
  .img-placeholder.full-frame{aspect-ratio:auto; background:none; box-shadow:0 16px 26px rgba(20,20,18,0.08), 0 4px 8px rgba(20,20,18,0.05);}
  .img-placeholder.full-frame img{width:100%; height:auto; object-fit:unset;}

  .svc-includes{padding:64px 0 88px;}
  .svc-includes h2{font-size:1.2rem; margin-bottom:20px;}

  .legal-content{max-width:72ch;}
  .legal-content h2{
    font-family:'Space Grotesk',sans-serif; font-size:1.15rem; font-weight:600;
    margin:44px 0 14px; color:var(--ink);
  }
  .legal-content h2:first-child{margin-top:0;}
  .legal-content p{font-size:0.98rem; line-height:1.65; color:#3C4139; margin-bottom:14px;}
  .legal-content ul{margin:0 0 16px; padding-left:22px;}
  .legal-content li{font-size:0.98rem; line-height:1.65; color:#3C4139; margin-bottom:6px;}
  .legal-updated{font-size:0.78rem; color:var(--slate-dim); margin-bottom:24px;}

  .chip-list{display:flex; flex-wrap:wrap; gap:10px;}
  .chip{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    padding:9px 15px;
    border:1px solid var(--line);
    border-radius:999px;
    color:var(--ink);
    background:var(--plaster);
    transition:border-color .2s ease, color .2s ease;
  }
  .chip.emph{border-color:var(--brass); font-weight:500;}


  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    gap:24px; margin-bottom:0px; flex-wrap:wrap;
  }
  .section-head h2{font-size:clamp(1.7rem,3vw,2.4rem); max-width:16ch;}
  .section-head p{color:#4A4F46; max-width:36ch; font-size:0.95rem; line-height:1.6;}

  /* ---------- ABOUT ---------- */
  .about-hero{
    display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;
  }
  .about-hero h1{font-size:clamp(2rem,4vw,3rem); margin-bottom:24px;}
  .about-hero p{font-size:1.02rem; line-height:1.65; color:#3C4139; margin-bottom:18px;}
  .value-list{margin-top:20px; border-top:1px solid var(--line);}
  .value-row{
    display:grid; grid-template-columns:auto 1fr;
    gap:28px; padding:22px 0;
    border-bottom:1px solid var(--line);
  }
  .value-row .mono{color:var(--brass); font-size:0.8rem; padding-top:3px;}
  .value-row h3{font-size:1.02rem; margin-bottom:6px;}
  .value-row p{font-size:0.88rem; color:#4A4F46; line-height:1.55; max-width:52ch;}

  @media(max-width:900px){.about-hero{grid-template-columns:1fr;}}

  .leadership-block{
    padding:40px 0 20px; border-top:1px solid var(--line);
  }
  .leadership-block .eyebrow{margin-bottom:10px;}
  .leadership-block h2{font-family:'Space Grotesk',sans-serif; font-size:1.4rem; margin-bottom:14px;}
  .leadership-block p{font-size:0.98rem; line-height:1.65; color:#3C4139; margin-bottom:14px; max-width:68ch;}
  .leadership-block p:last-child{margin-bottom:0;}

  /* ---------- CONTACT ---------- */
  .contact-grid{
    display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:start;
  }
  .contact-info h1{font-size:clamp(2rem,4vw,2.9rem); margin-bottom:22px;}
  .contact-info p{color:#3C4139; font-size:1rem; line-height:1.6; margin-bottom:34px; max-width:38ch;}
  .info-row{
    padding:18px 0; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; font-size:0.92rem;
  }
  .info-row:last-child{border-bottom:1px solid var(--line);}
  .info-row .mono{color:var(--slate-dim); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em;}

  form{display:flex; flex-direction:column; gap:18px;}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  label{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem; text-transform:uppercase; letter-spacing:0.08em;
    color:var(--slate-dim);
    margin-bottom:8px; display:block;
  }
  input, select, textarea{
    width:100%;
    background:#F5F2EB;
    border:1px solid var(--line);
    padding:13px 14px;
    font-family:'IBM Plex Sans', sans-serif;
    font-size:0.92rem;
    color:var(--ink);
    border-radius:var(--radius);
    transition:border-color .2s ease;
  }
  input:focus, select:focus, textarea:focus{border-color:var(--brass);}
  textarea{resize:vertical; min-height:110px;}
  .submit-row{
    display:flex; align-items:center; gap:18px; margin-top:6px;
  }
  .form-note{font-size:0.78rem; color:var(--slate-dim);}
  @media(max-width:900px){
    .contact-grid{grid-template-columns:1fr;}
    .field-row{grid-template-columns:1fr;}
  }

  /* ---------- CTA BANNER ---------- */
  .cta-banner{
    background:var(--brass); color:var(--ink);
    padding:70px 0;
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .cta-banner .wrap{
    display:flex; justify-content:space-between; align-items:center; gap:30px; flex-wrap:wrap;
  }
  .cta-banner h2{font-size:clamp(1.6rem,3vw,2.2rem); max-width:20ch; color:var(--ink);}
  .cta-banner .btn-primary{background:var(--ink); color:var(--plaster);}
  .cta-banner .btn-primary:hover{background:var(--plaster); color:var(--ink);}

  /* ---------- FOOTER ---------- */
  footer{border-top:1px solid var(--line); padding:56px 0 36px;}
  .foot-brand{
    display:flex; justify-content:center; padding-bottom:40px;
  }
  .foot-logo{
    width:100%; max-width:280px; height:auto;
  }
  footer .wrap:not(.foot-brand){
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;
    padding-top:28px; border-top:1px solid var(--line);
  }
  footer .mono{font-size:0.74rem; color:var(--slate-dim);}
  .foot-links{display:flex; flex-wrap:wrap; gap:14px 22px;}
  .foot-privacy-row{
    display:none !important;
    padding-top:28px; border-top:1px solid var(--line);
    justify-content:center;
  }
  #page-contact.active ~ footer .foot-privacy-row{ display:flex !important; }
  .foot-privacy{
    font-size:0.76rem; color:var(--slate); line-height:1.6;
    max-width:640px; text-align:center; margin:0 auto;
  }
  .foot-privacy-link{
    color:var(--brass); text-decoration:underline; margin-left:4px;
    font-size:0.76rem; font-family:'IBM Plex Mono', monospace;
  }
  .foot-privacy-link:hover{color:var(--brass-bright);}
  .foot-links button, .foot-links a{font-size:0.82rem; color:var(--slate); text-decoration:none;}
  .foot-links button:hover, .foot-links a:hover{color:var(--brass);}

  .toast{
    position:fixed; bottom:28px; left:50%; transform:translateX(-50%) translateY(20px);
    background:var(--brass); color:var(--ink);
    padding:14px 22px; border-radius:var(--radius);
    font-size:0.85rem; opacity:0; pointer-events:none;
    transition:opacity .3s ease, transform .3s ease;
    z-index:200;
  }
  .toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

  /* ---------- GLARE HOVER (glass sheen sweep) ---------- */
  .glare-surface{ position:relative; overflow:hidden; }
  .glare-surface::after{
    content:"";
    position:absolute;
    top:-60%; left:-90%;
    width:70%; height:220%;
    background:linear-gradient(-30deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 42%,
      rgba(255,255,255,0.3) 50%,
      rgba(255,255,255,0) 58%,
      rgba(255,255,255,0) 100%);
    transform:translateX(-40%);
    transition:transform 800ms cubic-bezier(.25,.7,.35,1);
    pointer-events:none;
    z-index:6;
    will-change:transform;
  }
  .glare-surface:hover::after, .glare-surface.glare-play::after{ transform:translateX(180%); }
  @media(prefers-reduced-motion:reduce){ .glare-surface::after{ display:none; } }

/* ---------- Supplemental rules for standalone service pages ----------
   These pages use <a href> for navigation instead of the SPA's <button data-page>
   JS router. This section re-points the SAME existing selectors at anchors too
   (exact property values copied from the rules above), so the visual result
   is identical to index.html. Nothing above this line is altered. */
a{ text-decoration:none; color:inherit; }
.dropdown-panel a{
  display:flex; align-items:center; gap:12px;
  width:100%; text-align:left;
  padding:12px 14px;
  font-size:0.86rem;
  color:var(--ink);
  border-radius:2px;
  transition:background .15s ease, color .15s ease;
}
.dropdown-panel a:hover{background:rgba(141,139,114,0.14); color:var(--brass);}
.dropdown-panel .dropdown-all:hover{color:var(--brass); background:none;}
.mobile-menu a{
  display:block; width:100%; text-align:left;
  font-family:'Space Grotesk',sans-serif; font-size:1.3rem; font-weight:500;
  color:var(--ink);
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.mobile-menu .mm-services-list a{
  font-family:'IBM Plex Sans',sans-serif; font-size:0.95rem; font-weight:400;
  color:var(--slate); padding:11px 0; border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:10px;
}
.breadcrumb a{color:var(--slate-dim); transition:color .2s ease;}
.breadcrumb a:hover{color:var(--brass);}
.logo-link{display:flex; align-items:center; gap:16px; cursor:pointer;}
