
    :root {
      --iron: #161716;
      --iron-2: #1f211f;
      --limestone: #f2eee6;
      --paper: #e6e0d6;
      --vein: #c9c1b5;
      --brass: #a88452;
      --brass-bright: #c7a36c;
      --blue: #344652;
      --white: #fffdf8;
      --line: rgba(242, 238, 230, .18);
      --line-dark: rgba(22, 23, 22, .14);
      --shadow: 0 30px 90px rgba(0,0,0,.25);
      --pad: clamp(22px, 5vw, 84px);
      --max: 1480px;
      --serif: "Instrument Serif", Georgia, serif;
      --sans: "Manrope", Arial, sans-serif;
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; background: var(--iron); }
    body { margin: 0; background: var(--iron); color: var(--limestone); font-family: var(--sans); font-size: 16px; line-height: 1.62; overflow-x: hidden; }
    body.menu-open, body.lightbox-open { overflow: hidden; }
    body.scroll-locked { position: fixed; left: 0; right: 0; width: 100%; overflow: hidden; }
    ::selection { background: var(--brass); color: var(--iron); }
    a { color: inherit; text-decoration: none; }
    button, input, select, textarea { font: inherit; }
    button { color: inherit; }
    img { display: block; width: 100%; height: auto; }
    .skip-link { position: fixed; left: 16px; top: -100px; z-index: 9999; background: var(--limestone); color: var(--iron); padding: 10px 16px; }
    .skip-link:focus { top: 16px; }
    .grain { pointer-events: none; position: fixed; inset: 0; z-index: 1000; opacity: .055; mix-blend-mode: soft-light; background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTgwIDE4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nLjknIG51bU9jdGF2ZXM9JzQnIHN0aXRjaFRpbGVzPSdzdGl0Y2gnLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWx0ZXI9J3VybCgjbiknIG9wYWNpdHk9Jy41NScvPjwvc3ZnPg=="); }
    .cursor-dot { position: fixed; z-index: 1200; width: 10px; height: 10px; border-radius: 50%; background: var(--brass-bright); pointer-events: none; transform: translate(-50%,-50%); transition: width .25s, height .25s, opacity .25s; opacity: 0; }
    .cursor-dot.active { width: 34px; height: 34px; opacity: .3 !important; }

    .site-header { position: fixed; top: 0; left: 0; width: 100%; height: 96px; z-index: 900; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 var(--pad); border-bottom: 1px solid transparent; transition: background .35s, border-color .35s, height .35s; }
    .site-header.scrolled { height: 82px; background: rgba(22,23,22,.92); backdrop-filter: blur(18px); border-color: var(--line); }
    .wordmark { display: inline-flex; align-items: baseline; gap: 10px; width: fit-content; font-family: var(--serif); font-size: 27px; letter-spacing: -.02em; white-space: nowrap; }
    .wordmark small { font-family: var(--sans); font-size: 8px; letter-spacing: .2em; text-transform: uppercase; color: var(--brass-bright); }
    .brand-logo { display:block; width:clamp(180px,17vw,230px); height:auto; }
    .footer-brand .brand-logo { width:min(100%,390px); margin-bottom:24px; }
    .desktop-nav { display: flex; gap: clamp(22px,3vw,44px); align-items: center; }
    .nav-link { position: relative; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(242,238,230,.74); padding: 9px 0; }
    .nav-link:after { content:""; position:absolute; left:0; bottom:3px; width:100%; height:1px; background:var(--brass); transform:scaleX(0); transform-origin:right; transition:transform .3s; }
    .nav-link:hover, .nav-link.active { color: var(--limestone); }
    .nav-link:hover:after, .nav-link.active:after { transform:scaleX(1); transform-origin:left; }
    .header-actions { justify-self: end; display: flex; align-items: center; gap: 18px; }
    .header-phone { font-size: 12px; letter-spacing: .06em; color: rgba(242,238,230,.85); }
    .menu-toggle { display:none; background:none; border:0; width:42px; height:42px; padding:0; position:relative; cursor:pointer; }
    .menu-toggle span { position:absolute; left:8px; width:26px; height:1px; background:var(--limestone); transition:.3s; }
    .menu-toggle span:first-child { top:16px; }
    .menu-toggle span:last-child { top:25px; width:18px; left:16px; }
    .menu-open .menu-toggle span:first-child { top:21px; transform:rotate(45deg); }
    .menu-open .menu-toggle span:last-child { top:21px; transform:rotate(-45deg); width:26px; left:8px; }

    .mobile-menu { position:fixed; inset:0; height:100vh; height:100dvh; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; z-index:850; background:var(--iron); display:flex; flex-direction:column; justify-content:center; gap:0; padding:calc(96px + env(safe-area-inset-top)) var(--pad) calc(90px + env(safe-area-inset-bottom)); transform:translateY(-100%); visibility:hidden; transition:transform .6s cubic-bezier(.76,0,.24,1), visibility .6s; }
    .menu-open .mobile-menu { transform:translateY(0); visibility:visible; }
    .mobile-menu a { font-family:var(--serif); font-size:clamp(44px,12vw,76px); line-height:1.06; border-bottom:1px solid var(--line); padding:10px 0; }
    .mobile-menu .menu-meta { margin-top:30px; display:grid; gap:8px; color:var(--vein); font-size:13px; }
    /* the nav-link rule above targets every anchor in the menu; the meta links
       are not nav items, so reset them back to small sans type. Left unset they
       render the email address at 76px serif and push the page sideways. */
    .mobile-menu .menu-meta a { font-family:var(--sans); font-size:13px; line-height:1.5; border-bottom:0; padding:0; }

    .view { display:none; min-height:100vh; }
    .view.active { display:block; animation:routeIn .7s ease both; }
    @keyframes routeIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
    main { overflow:hidden; }
    .wrap { width:min(calc(100% - (var(--pad) * 2)), var(--max)); margin:0 auto; }
    .section { padding:clamp(92px,11vw,170px) 0; position:relative; }
    .section.light { background:var(--limestone); color:var(--iron); }
    .section.blue { background:var(--blue); }
    .section.iron-2 { background:var(--iron-2); }
    .eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 22px; font-size:10px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--brass-bright); }
    .eyebrow:before { content:""; width:34px; height:1px; background:currentColor; }
    .display { font-family:var(--serif); font-size:clamp(62px,10vw,154px); font-weight:400; line-height:.84; letter-spacing:-.045em; margin:0; }
    .display em { font-weight:400; color:var(--brass-bright); }
    .display-medium { font-family:var(--serif); font-size:clamp(48px,7vw,102px); font-weight:400; line-height:.92; letter-spacing:-.035em; margin:0; }
    .headline { font-family:var(--serif); font-size:clamp(36px,4.7vw,72px); font-weight:400; line-height:1.4; letter-spacing:-.025em; margin:0; }
    .lead { max-width:670px; font-size:clamp(18px,1.6vw,24px); line-height:1.55; color:var(--vein); }
    .light .lead { color:#5f5d57; }
    .body-copy { max-width:680px; color:var(--vein); }
    .light .body-copy { color:#5f5d57; }
    .button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:16px; padding:0 22px; border:1px solid var(--brass); background:var(--brass); color:var(--iron); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; cursor:pointer; transition:background .25s,color .25s,border-color .25s,transform .25s; }
    .button svg { width:18px; transition:transform .25s; }
    .button:hover { background:var(--brass-bright); border-color:var(--brass-bright); transform:translateY(-2px); }
    .button:hover svg { transform:translateX(3px); }
    .button.ghost { background:transparent; color:var(--limestone); border-color:rgba(242,238,230,.35); }
    .button.ghost:hover { border-color:var(--brass); color:var(--brass-bright); }
    .light .button.ghost { color:var(--iron); border-color:var(--line-dark); }
    .cta-row { display:flex; gap:12px; flex-wrap:wrap; margin-top:35px; }
    .rule { height:1px; background:var(--line); }
    .light .rule { background:var(--line-dark); }
    .reveal { opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.75,.25,1); }
    .reveal.visible { opacity:1; transform:none; }

    .hero { min-height:100svh; position:relative; display:flex; align-items:flex-end; overflow:hidden; }
    .hero-media { position:absolute; inset:0; overflow:hidden; }
    .hero-media img { width:100%; height:112%; object-fit:cover; object-position:center; transform:translateY(-5%); }
    .hero-media:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,11,10,.84) 0%,rgba(10,11,10,.48) 44%,rgba(10,11,10,.12) 75%),linear-gradient(0deg,rgba(10,11,10,.75),transparent 60%); }
    .hero-content { position:relative; z-index:2; padding:150px 0 clamp(70px,8vw,120px); width:100%; }
    .hero-content .display { max-width:1040px; }
    .hero-content .lead { margin:32px 0 0; color:rgba(242,238,230,.78); }
    .hero-index { position:absolute; right:var(--pad); bottom:42px; z-index:2; writing-mode:vertical-rl; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:rgba(242,238,230,.52); }
    .scroll-cue { position:absolute; left:var(--pad); top:50%; z-index:3; transform:translateY(-50%); display:flex; align-items:center; gap:10px; writing-mode:vertical-rl; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:rgba(242,238,230,.52); }
    .scroll-cue:before { content:""; width:1px; height:60px; background:linear-gradient(var(--brass),transparent); }

    .split-intro { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(50px,9vw,150px); align-items:end; }
    .metric-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:clamp(65px,8vw,120px); border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); }
    .metric { padding:32px 24px 34px 0; }
    .metric + .metric { border-left:1px solid var(--line-dark); padding-left:34px; }
    .metric strong { display:block; font-family:var(--serif); font-size:clamp(44px,5vw,76px); line-height:1; font-weight:400; }
    .metric span { display:block; margin-top:10px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#66645d; }

    .service-theatre { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(40px,8vw,120px); align-items:start; }
    .service-preview { position:sticky; top:110px; height:min(72vh,780px); overflow:hidden; }
    .service-preview img { height:100%; object-fit:cover; transition:opacity .35s, transform .8s; }
    .service-preview:after { content:""; position:absolute; inset:0; border:1px solid rgba(242,238,230,.22); pointer-events:none; }
    .service-list { border-top:1px solid var(--line); }
    .service-item { display:grid; grid-template-columns:52px 1fr auto; align-items:center; gap:18px; padding:27px 0; border-bottom:1px solid var(--line); cursor:pointer; }
    .service-item .num { font-size:10px; color:var(--brass-bright); letter-spacing:.16em; }
    .service-item h3 { margin:0; font-family:var(--serif); font-size:clamp(30px,3.1vw,48px); font-weight:400; line-height:1; transition:color .25s, transform .25s; }
    .service-item .arrow { font-size:26px; transition:transform .25s; }
    .service-item:hover h3, .service-item.active h3 { color:var(--brass-bright); transform:translateX(8px); }
    .service-item:hover .arrow, .service-item.active .arrow { transform:translateX(8px); }

    .project-mosaic { display:grid; grid-template-columns:1.25fr .75fr; grid-template-rows:360px 360px; gap:16px; margin-top:55px; }
    .project-card { position:relative; overflow:hidden; min-height:280px; background:var(--iron-2); cursor:pointer; transform-style:preserve-3d; }
    .project-card:first-child { grid-row:1 / span 2; }
    .project-card img { height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.8,.2,1), filter .5s; }
    .project-card:hover img { transform:scale(1.035); }
    .project-card:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(10,11,10,.72),transparent 60%); }
    .project-meta { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; display:flex; align-items:end; justify-content:space-between; gap:20px; }
    .project-meta span { font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--brass-bright); }
    .project-meta h3 { font-family:var(--serif); font-size:32px; line-height:1; font-weight:400; margin:6px 0 0; }
    .project-meta b { font-size:22px; font-weight:400; }

    .process-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:60px; border-top:1px solid var(--line); }
    .process-step { padding:32px 32px 0 0; }
    .process-step + .process-step { border-left:1px solid var(--line); padding-left:32px; }
    .process-step .step-num { color:var(--brass-bright); font-size:10px; letter-spacing:.15em; }
    .process-step h3 { font-family:var(--serif); font-size:32px; line-height:1; font-weight:400; margin:24px 0 14px; }
    .process-step p { color:var(--vein); font-size:14px; }

    .reviews-shell { display:grid; grid-template-columns:.65fr 1.35fr; gap:clamp(50px,8vw,130px); align-items:start; }
    .rating-lockup { border-left:1px solid var(--line-dark); padding-left:30px; }
    .rating-lockup strong { display:block; font-family:var(--serif); font-size:92px; line-height:.8; font-weight:400; }
    .stars { color:var(--brass); letter-spacing:.15em; font-size:13px; margin-top:18px; }
    .rating-lockup span { display:block; font-size:11px; margin-top:10px; color:#62605a; }
    .review-stage { position:relative; min-height:330px; }
    .review-slide { display:none; }
    .review-slide.active { display:block; animation:reviewIn .55s ease both; }
    @keyframes reviewIn { from { opacity:0; transform:translateX(14px); } to { opacity:1; transform:none; } }
    .review-quote { font-family:var(--serif); font-size:clamp(38px,4.7vw,68px); line-height:1.05; letter-spacing:-.025em; margin:0; }
    .review-credit { margin-top:30px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#68665f; }
    .review-controls { display:flex; gap:8px; margin-top:35px; }
    .round-button { width:48px; height:48px; border:1px solid var(--line-dark); background:transparent; color:var(--iron); cursor:pointer; transition:.25s; }
    .round-button:hover { background:var(--iron); color:var(--limestone); }
    .review-all-link { margin-top:28px; }
    .reviews-page-hero { min-height:62svh; display:flex; align-items:flex-end; padding:150px 0 70px; background:linear-gradient(150deg,var(--iron) 0 78%,var(--blue) 78%); }
    .reviews-summary { display:grid; grid-template-columns:.55fr 1.45fr; gap:clamp(40px,8vw,120px); align-items:end; }
    .reviews-summary .rating-lockup { border-color:var(--line); }
    .reviews-summary .rating-lockup span { color:var(--vein); }
    .reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:58px; }
    .review-card { min-height:280px; padding:30px; border:1px solid var(--line); background:var(--iron-2); display:flex; flex-direction:column; justify-content:space-between; }
    .review-card .stars { margin-top:0; }
    .review-card blockquote { margin:26px 0 34px; color:var(--paper); font-family:var(--serif); font-size:clamp(23px,2vw,31px); line-height:1.2; letter-spacing:-.015em; }
    .review-card footer { border-top:1px solid var(--line); padding-top:18px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-bright); }
    .review-card.rating-only blockquote { color:var(--vein); }

    .closing-band { padding:80px 0; background:var(--brass); color:var(--iron); }
    .closing-inner { display:grid; grid-template-columns:1fr auto; align-items:center; gap:40px; }
    .closing-inner h2 { font-family:var(--serif); font-size:clamp(46px,6vw,88px); line-height:.9; font-weight:400; margin:0; }
    .closing-band .button { background:var(--iron); border-color:var(--iron); color:var(--limestone); }

    .page-hero { min-height:72svh; display:flex; align-items:flex-end; position:relative; overflow:hidden; background:var(--iron-2); }
    .page-hero .hero-media:after { background:linear-gradient(90deg,rgba(10,11,10,.84),rgba(10,11,10,.16)),linear-gradient(0deg,rgba(10,11,10,.68),transparent); }
    .page-hero .hero-content { padding-bottom:76px; }
    .page-hero .display { max-width:1120px; font-size:clamp(62px,9vw,140px); }
    .page-number { position:absolute; right:var(--pad); top:50%; z-index:2; font-family:var(--serif); font-size:140px; color:rgba(242,238,230,.08); transform:translateY(-50%); }

    .manifesto { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(50px,8vw,140px); }
    .manifesto .big-copy { font-family:var(--serif); font-size:clamp(38px,5vw,72px); line-height:1.08; letter-spacing:-.02em; margin:0; }
    .manifesto-copy { columns:2; column-gap:40px; color:#5d5b55; }
    .manifesto-copy p:first-child { margin-top:0; }
    .principle-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:65px; }
    .principle { background:var(--iron); padding:40px 34px; min-height:300px; }
    .principle .num { color:var(--brass-bright); font-size:10px; letter-spacing:.16em; }
    .principle h3 { font-family:var(--serif); font-size:38px; line-height:1; font-weight:400; margin:46px 0 20px; }
    .principle p { color:var(--vein); font-size:14px; }

    .story-frame { display:grid; grid-template-columns:1.15fr .85fr; gap:18px; min-height:720px; }
    .story-main { position:relative; overflow:hidden; }
    .story-main img { height:100%; object-fit:cover; }
    .story-side { display:grid; grid-template-rows:auto 240px; gap:18px; }
    .story-panel { background:var(--blue); color:var(--limestone); padding:clamp(32px,5vw,70px); display:flex; flex-direction:column; justify-content:space-between; }
    .story-panel .quote { font-family:var(--serif); font-size:clamp(34px,4vw,58px); line-height:1.05; margin:0; }
    .story-panel span { display:block; margin-top:clamp(22px,2.6vw,34px); }
    .story-thumb { position:relative; overflow:hidden; }
    .story-thumb img { height:100%; object-fit:cover; }
    .story-caption { position:absolute; inset:auto 15px 13px; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--limestone); }

    .promise-row { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); }
    .promise { padding:34px 30px 34px 0; }
    .promise + .promise { border-left:1px solid var(--line-dark); padding-left:30px; }
    .promise b { display:block; font-family:var(--serif); font-size:30px; font-weight:400; line-height:1; }
    .promise span { display:block; margin-top:12px; font-size:12px; color:#66645e; }

    .services-intro { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; }
    .service-catalog { margin-top:70px; border-top:1px solid var(--line); }
    .catalog-item { border-bottom:1px solid var(--line); }
    .catalog-trigger { width:100%; padding:28px 0; border:0; background:transparent; display:grid; grid-template-columns:80px 1fr auto; align-items:center; text-align:left; cursor:pointer; }
    .catalog-trigger .num { color:var(--brass-bright); font-size:10px; letter-spacing:.15em; }
    .catalog-trigger h3 { font-family:var(--serif); font-size:clamp(38px,5vw,68px); font-weight:400; margin:0; line-height:1; }
    .catalog-trigger .plus { font-size:30px; font-weight:300; transition:transform .35s; }
    .catalog-item.open .plus { transform:rotate(45deg); }
    .catalog-body { display:grid; grid-template-columns:1fr 1fr; gap:40px; max-height:0; overflow:hidden; opacity:0; transition:max-height .65s ease,opacity .45s,padding .45s; }
    .catalog-item.open .catalog-body { max-height:620px; opacity:1; padding:8px 0 40px 80px; }
    .catalog-body p { color:var(--vein); margin:0; }
    .service-tags { display:flex; flex-wrap:wrap; gap:8px; align-content:start; }
    .tag { padding:8px 12px; border:1px solid var(--line); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--paper); }

    .feature-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:58px; }
    .feature-card { min-height:480px; position:relative; overflow:hidden; padding:34px; display:flex; flex-direction:column; justify-content:flex-end; }
    .feature-card img { position:absolute; inset:0; height:100%; object-fit:cover; }
    .feature-card:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(10,11,10,.94) 0%,rgba(10,11,10,.84) 32%,rgba(10,11,10,.46) 56%,rgba(10,11,10,.04) 84%); }
    .feature-card > *:not(img) { position:relative; z-index:2; }
    .feature-card span { color:var(--brass-bright); font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
    .feature-card h3 { color:var(--limestone); font-family:var(--serif); font-size:42px; font-weight:400; line-height:1; margin:8px 0 12px; }
    .feature-card p { color:var(--paper); font-size:13px; margin:0; }

    .care-strip { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:start; }
    .care-points { border-top:1px solid var(--line-dark); }
    .care-point { display:grid; grid-template-columns:40px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid var(--line-dark); }
    .care-point b { color:var(--brass); }
    .care-point h3 { font-family:var(--serif); font-size:30px; font-weight:400; margin:0 0 5px; }
    .care-point p { margin:0; color:var(--vein); font-size:13px; }

    .gallery-hero { padding:160px 0 70px; background:var(--iron); }
    .gallery-top { display:grid; grid-template-columns:1fr .8fr; gap:60px; align-items:end; }
    .gallery-filter { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
    .filter-btn { border:1px solid var(--line); background:transparent; color:var(--vein); padding:10px 15px; font-size:9px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
    .filter-btn.active,.filter-btn:hover { background:var(--brass); color:var(--iron); border-color:var(--brass); }
    .gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; padding-bottom:130px; }
    .gallery-card { grid-column:span 4; position:relative; overflow:hidden; min-height:420px; background:var(--iron-2); cursor:pointer; }
    .gallery-card.featured { grid-column:span 6; min-height:660px; }
    .gallery-card.wide { grid-column:span 8; }
    .gallery-card.small { grid-column:span 4; min-height:320px; align-self:end; }
    .gallery-card img { height:100%; object-fit:cover; transition:transform .8s; }
    .gallery-card:hover img { transform:scale(1.025); }
    .gallery-card:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(10,11,10,.68),transparent 50%); }
    .gallery-card .label { position:absolute; z-index:2; left:20px; bottom:18px; right:20px; display:flex; justify-content:space-between; align-items:end; }
    .gallery-card .label b { font-family:var(--serif); font-size:28px; font-weight:400; line-height:1; }
    .gallery-card .label span { font-size:9px; text-transform:uppercase; letter-spacing:.13em; color:var(--brass-bright); }
    .gallery-card.hidden { display:none; }
    .gallery-note { grid-column:1 / -1; margin:24px 0 8px; display:flex; align-items:center; gap:18px; color:var(--vein); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
    .gallery-note:after { content:""; height:1px; background:var(--line); flex:1; }

    .lightbox { position:fixed; inset:0; z-index:1100; background:rgba(10,11,10,.96); display:grid; place-items:center; padding:70px; opacity:0; visibility:hidden; transition:.3s; }
    .lightbox.open { opacity:1; visibility:visible; }
    .lightbox img { width:auto; height:auto; max-width:100%; max-height:82vh; object-fit:contain; box-shadow:var(--shadow); }
    .lightbox-close { position:absolute; top:24px; right:28px; width:48px; height:48px; border:1px solid var(--line); background:transparent; color:var(--limestone); font-size:26px; cursor:pointer; }
    .lightbox-caption { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--vein); white-space:nowrap; }

    .contact-hero { min-height:72svh; padding:160px 0 90px; display:flex; align-items:flex-end; background:linear-gradient(125deg,var(--iron) 0 60%,var(--blue) 60% 100%); position:relative; }
    .contact-hero:after { content:""; position:absolute; right:0; bottom:0; width:40%; height:55%; border-top:1px solid rgba(242,238,230,.15); }
    .contact-head { position:relative; z-index:2; }
    .contact-head .display { max-width:970px; }
    .contact-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(50px,8vw,130px); align-items:start; }
    .contact-aside { position:sticky; top:110px; }
    .direct-link { display:block; padding:22px 0; border-bottom:1px solid var(--line-dark); }
    .direct-link small { display:block; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:#6a6861; }
    .direct-link strong { display:block; margin-top:5px; font-family:var(--serif); font-size:30px; font-weight:400; line-height:1.1; }
    .contact-form { display:grid; grid-template-columns:1fr 1fr; gap:24px 18px; }
    .field { display:grid; gap:8px; }
    .field.full { grid-column:1 / -1; }
    .field label { font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:#69665f; }
    .field input,.field select,.field textarea { width:100%; font-size:16px; border:0; border-bottom:1px solid rgba(22,23,22,.28); background:transparent; color:var(--iron); padding:12px 0; outline:none; border-radius:0; }
    .field textarea { min-height:130px; resize:vertical; }
    .field input:focus,.field select:focus,.field textarea:focus { border-color:var(--brass); }
    .form-note { grid-column:1 / -1; display:flex; gap:14px; align-items:center; color:#68665f; font-size:11px; }
    .form-note:before { content:""; width:28px; height:1px; background:var(--brass); }
    .contact-image { margin-top:55px; height:420px; overflow:hidden; position:relative; }
    .contact-image img { height:100%; object-fit:cover; }

    .google-live { display:grid; grid-template-columns:.65fr 1.35fr; gap:60px; align-items:start; }
    .google-copy .button { margin-top:clamp(26px,3.4vw,40px); }
    .google-copy .live-pill { display:inline-flex; align-items:center; gap:8px; padding:8px 11px; border:1px solid var(--line); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--brass-bright); }
    .live-pill:before { content:""; width:6px; height:6px; border-radius:50%; background:#7bae6a; box-shadow:0 0 0 4px rgba(123,174,106,.12); }
    .google-frame { min-height:520px; border:1px solid var(--line); position:relative; overflow:hidden; background:var(--iron-2); }
    .google-frame iframe { width:100%; height:520px; border:0; filter:grayscale(.8) contrast(1.06); }
    .google-frame .profile-link { position:absolute; right:16px; bottom:16px; background:var(--brass); color:var(--iron); padding:12px 15px; font-size:9px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; }

    .site-footer { background:#111211; padding:70px 0 30px; }
    .footer-grid { display:grid; grid-template-columns:1.15fr .55fr .7fr .85fr; gap:clamp(34px,4vw,58px); }
    .footer-brand .wordmark { font-size:38px; }
    .footer-brand p { max-width:400px; color:var(--vein); margin:24px 0 0; font-size:13px; }
    .footer-col h3 { font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:var(--brass-bright); margin:0 0 20px; }
    .footer-col a,.footer-col span { display:block; margin:9px 0; color:var(--paper); font-size:13px; }
    .footer-bottom { display:flex; justify-content:space-between; gap:30px; margin-top:55px; padding-top:24px; border-top:1px solid var(--line); color:#777872; font-size:10px; letter-spacing:.06em; }
    .mobile-callbar { display:none; position:fixed; z-index:820; left:12px; right:12px; bottom:12px; background:var(--brass); color:var(--iron); box-shadow:0 15px 60px rgba(0,0,0,.35); grid-template-columns:1fr 1fr; }
    .mobile-callbar a { display:flex; justify-content:center; align-items:center; min-height:52px; font-size:9px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
    .mobile-callbar a + a { border-left:1px solid rgba(22,23,22,.24); }

    @media (max-width: 1080px) {
      .desktop-nav,.header-phone { display:none; }
      .site-header { grid-template-columns:1fr auto; }
      .menu-toggle { display:block; }
      .service-theatre,.manifesto,.contact-grid,.google-live { grid-template-columns:1fr; }
      .service-preview { position:relative; top:0; height:60vh; }
      .manifesto-copy { columns:1; }
      .process-grid,.promise-row { grid-template-columns:repeat(2,1fr); }
      .process-step:nth-child(3),.promise:nth-child(3) { border-left:0; padding-left:0; }
      .process-step:nth-child(n+3),.promise:nth-child(n+3) { border-top:1px solid var(--line); }
      .promise:nth-child(n+3) { border-color:var(--line-dark); }
      .feature-cards { grid-template-columns:1fr 1fr; }
      .feature-card:last-child { grid-column:1 / -1; min-height:420px; }
      .footer-grid { grid-template-columns:1fr 1fr; }
      .footer-brand { grid-column:1 / -1; }
    }

    @media (max-width: 720px) {
      :root { --pad: 20px; }
      body { font-size:15px; padding-bottom:75px; }
      .site-header { height:74px; }
      .site-header.scrolled { height:68px; }
      .wordmark { font-size:22px; gap:7px; }
      .wordmark small { font-size:7px; }
      .header-actions .button { display:none; }
      .mobile-callbar { display:grid; }
      .cursor-dot,.grain { display:none; }
      .hero { min-height:780px; }
      .hero-content { padding-top:120px; padding-bottom:95px; }
      .display { font-size:clamp(54px,17vw,78px); line-height:.88; }
      .display-medium { font-size:clamp(48px,14vw,68px); }
      .hero-content .lead { font-size:16px; margin-top:24px; max-width:92%; }
      .hero-media:after { background:linear-gradient(0deg,rgba(10,11,10,.86) 0%,rgba(10,11,10,.28) 75%),linear-gradient(90deg,rgba(10,11,10,.55),transparent); }
      .scroll-cue,.hero-index { display:none; }
      .button { min-height:50px; width:100%; }
      .cta-row { display:grid; grid-template-columns:1fr; }
      .section { padding:84px 0; }
      .split-intro,.services-intro,.care-strip,.reviews-shell,.reviews-summary,.gallery-top,.closing-inner { grid-template-columns:1fr; gap:36px; }
      .reviews-grid { grid-template-columns:repeat(2,1fr); }
      .metric-grid { grid-template-columns:1fr; }
      .metric { padding:25px 0; }
      .metric + .metric { border-left:0; border-top:1px solid var(--line-dark); padding-left:0; }
      .service-theatre { gap:48px; }
      .service-preview { height:54vh; }
      .service-item { grid-template-columns:36px 1fr auto; padding:22px 0; }
      .service-item h3 { font-size:34px; }
      .project-mosaic { grid-template-columns:1fr; grid-template-rows:auto; }
      .project-card,.project-card:first-child { grid-row:auto; min-height:430px; }
      .project-card:nth-child(n+2) { min-height:330px; }
      .process-grid,.promise-row { grid-template-columns:1fr; }
      .process-step,.process-step + .process-step,.process-step:nth-child(3),.promise,.promise + .promise,.promise:nth-child(3) { border-left:0; border-top:1px solid var(--line); padding:26px 0 6px; }
      .promise,.promise + .promise,.promise:nth-child(3) { border-color:var(--line-dark); }
      .rating-lockup { border-left:0; border-top:1px solid var(--line-dark); padding:25px 0 0; }
      .review-stage { min-height:390px; }
      .closing-inner .button { width:100%; }
      .page-hero { min-height:680px; }
      .page-number { right:15px; font-size:96px; }
      .page-hero .display { font-size:clamp(54px,17vw,80px); }
      .manifesto-copy { columns:1; }
      .principle-grid { grid-template-columns:1fr; }
      .principle { min-height:240px; }
      .principle h3 { margin-top:28px; }
      .story-frame { grid-template-columns:1fr; min-height:0; }
      .story-main { height:520px; }
      .story-side { grid-template-rows:auto 240px; }
      .catalog-trigger { grid-template-columns:42px 1fr auto; }
      .catalog-trigger h3 { font-size:38px; }
      .catalog-item.open .catalog-body { grid-template-columns:1fr; padding-left:42px; max-height:900px; }
      .feature-cards { grid-template-columns:1fr; }
      .feature-card,.feature-card:last-child { grid-column:auto; min-height:470px; }
      .gallery-hero { padding-top:120px; }
      .gallery-filter { justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; padding-bottom:8px; }
      .filter-btn { white-space:nowrap; }
      .gallery-grid { grid-template-columns:1fr; gap:12px; padding-bottom:90px; }
      .gallery-card,.gallery-card.featured,.gallery-card.wide,.gallery-card.small { grid-column:auto; min-height:480px; }
      .gallery-card.small { min-height:330px; }
      .lightbox { padding:60px 18px; }
      .contact-hero { min-height:690px; background:linear-gradient(150deg,var(--iron) 0 72%,var(--blue) 72%); }
      .contact-aside { position:relative; top:0; }
      .contact-form { grid-template-columns:1fr; }
      .field.full,.form-note { grid-column:auto; }
      .contact-image { height:360px; }
      .google-frame,.google-frame iframe { min-height:460px; height:460px; }
      .footer-grid { grid-template-columns:1fr; gap:40px; }
      .footer-brand { grid-column:auto; }
      .footer-bottom { flex-direction:column; }
      .reviews-grid { grid-template-columns:1fr; }
      .review-card { min-height:0; }
      .brand-logo { width:170px; }
      .footer-brand .brand-logo { width:min(100%,330px); }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior:auto; }
      *,*:before,*:after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
      .reveal { opacity:1; transform:none; }
    }

    /* ---- breadcrumbs ---- */
    .breadcrumb { margin:0 0 22px; }
    .breadcrumb ol { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin:0; padding:0; list-style:none; font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(242,238,230,.58); }
    .breadcrumb li { display:flex; align-items:center; gap:9px; }
    .breadcrumb li + li:before { content:"/"; color:var(--brass); }
    .breadcrumb a { color:inherit; transition:color .25s; }
    .breadcrumb a:hover { color:var(--brass-bright); }
    .breadcrumb [aria-current] { color:var(--brass-bright); }
    .light .breadcrumb ol { color:#7c7a73; }

    /* ---- FAQ (same tokens as the service catalog, sized for questions) ---- */
    .faq { margin-top:clamp(48px,6vw,70px); border-top:1px solid var(--line); }
    .faq-item { border-bottom:1px solid var(--line); }
    .faq-trigger { width:100%; padding:24px 0; border:0; background:transparent; display:grid; grid-template-columns:1fr 30px; gap:26px; align-items:center; text-align:left; cursor:pointer; }
    .faq-trigger h3 { font-family:var(--serif); font-size:clamp(21px,2.3vw,29px); font-weight:400; line-height:1.24; margin:0; }
    .faq-trigger .plus { justify-self:end; font-size:26px; font-weight:300; color:var(--brass-bright); transition:transform .35s; }
    .faq-item.open .plus { transform:rotate(45deg); }
    .faq-body { max-height:0; overflow:hidden; opacity:0; transition:max-height .6s ease, opacity .4s, padding .4s; }
    .faq-item.open .faq-body { max-height:520px; opacity:1; padding:0 0 30px; }
    .faq-body p { margin:0 0 14px; max-width:820px; color:var(--vein); font-size:15px; }
    .faq-body p:last-child { margin-bottom:0; }
    .light .faq, .light .faq-item { border-color:var(--line-dark); }
    .light .faq-body p { color:#5f5d57; }

    /* ---- tag links (used for service + area cross-linking) ---- */
    a.tag { transition:border-color .25s, color .25s, background .25s; }
    a.tag:hover { border-color:var(--brass); color:var(--brass-bright); }
    .light .tag { border-color:var(--line-dark); color:#4a4842; }
    .light a.tag:hover { border-color:var(--brass); color:var(--brass); }

    /* ---- footer NAP + service-area row ---- */
    .footer-col address { font-style:normal; }
    .footer-col address span { margin:0; }
    .footer-areas { margin-top:52px; padding-top:26px; border-top:1px solid var(--line); }
    .footer-areas h3 { font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:var(--brass-bright); margin:0 0 16px; }
    .footer-areas .service-tags { gap:7px; }
    .footer-areas .tag { font-size:9px; padding:7px 11px; color:var(--vein); }

    @media (max-width:1080px) {
      .footer-grid { grid-template-columns:1fr 1fr; }
    }
    @media (max-width:640px) {
      .faq-trigger h3 { font-size:20px; }
      .footer-areas { margin-top:38px; }
    }
