:root{--gold:#d9af55;--gold2:#f3d482;--dark:#090909;--paper:#f5f2ec;--ink:#171717;--muted:#6d6a65;--line:#ddd7cc;--max:1180px;--radius:4px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}img{display:block;max-width:100%}a{text-decoration:none;color:inherit}button,input,textarea{font:inherit}.wrap{width:min(calc(100% - 48px),var(--max));margin:auto}.skip-link{position:fixed;z-index:999;top:8px;left:8px;padding:10px 14px;background:#fff;color:#000;transform:translateY(-160%);transition:.2s}.skip-link:focus{transform:none}.kicker{display:inline-block;color:var(--gold);text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800}.heading h2,.location-grid h2,.faq-intro h2,.contact h2,.cta-band h2{font-family:'Playfair Display',Georgia,'Times New Roman',serif;line-height:1.02;margin:10px 0 0}.header{position:fixed;z-index:50;top:0;left:0;right:0;height:78px;display:flex;align-items:center;padding:0 max(24px,calc((100vw - var(--max))/2));gap:34px;color:#fff;border-bottom:1px solid #ffffff18;transition:.3s}.header.scrolled{height:68px;background:#090909ec;backdrop-filter:blur(18px);box-shadow:0 12px 35px #0004}.brand{display:flex;align-items:center;gap:11px;flex:none}.brand img{width:46px;height:46px;object-fit:cover;border-radius:50%;border:1px solid #ffffff28}.brand span{font-size:13px;letter-spacing:.16em}.brand b{color:var(--gold2)}.header nav{display:flex;align-items:center;gap:26px;margin-left:auto}.header nav a{font-size:12px;font-weight:700;color:#ffffffb3;transition:.2s}.header nav a:hover,.header nav a:focus-visible{color:#fff}.header-actions{display:flex;align-items:center;gap:14px}.phone-link{font-size:12px;font-weight:800;color:var(--gold2)}.top-cta{display:inline-flex;align-items:center;height:42px;padding:0 16px;border:1px solid #ffffff38;border-radius:var(--radius);font-size:11px;font-weight:800}.menu{display:none;width:45px;height:45px;margin-left:auto;border:0;background:transparent;color:#fff}.menu i{display:block;width:23px;height:2px;background:currentColor;margin:6px auto;transition:.25s}.menu[aria-expanded=true] i:first-child{transform:translateY(4px) rotate(45deg)}.menu[aria-expanded=true] i:last-child{transform:translateY(-4px) rotate(-45deg)}.hero{position:relative;min-height:760px;overflow:hidden;background:#080808;color:#fff}.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#050505f7 0%,#050505d9 38%,#05050578 68%,#05050570),linear-gradient(0deg,#050505d6 0%,transparent 45%)}.hero-inner{position:relative;z-index:2;min-height:760px;display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:center;gap:64px;padding-top:115px;padding-bottom:60px}.hero-copy{max-width:780px}.hero h1{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:clamp(52px,7vw,86px);line-height:.96;letter-spacing:-.035em;margin:14px 0 0}.hero h1 em{font-style:normal;color:var(--gold2)}.hero-copy>p{max-width:730px;color:#ffffffb8;font-size:17px;margin:28px 0 32px}.hero-copy strong{color:#fff}.actions,.cta-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:var(--radius);font-size:13px;font-weight:800;border:0;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px)}.primary{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#17120a;box-shadow:0 14px 35px #d9af552a}.ghost{border:1px solid #ffffff4a;color:#fff;background:transparent}.hero-proof{display:flex;gap:34px;margin-top:44px}.hero-proof div{display:flex;flex-direction:column}.hero-proof b{font-size:15px}.hero-proof span{font-size:10px;color:#ffffff72}.profile-card{padding:30px;background:#111111dc;border:1px solid #ffffff1f;backdrop-filter:blur(20px);box-shadow:0 28px 70px #0005}.profile-card img{width:105px;height:105px;border-radius:50%;object-fit:cover;margin-bottom:22px}.profile-card>span{font-size:10px;color:var(--gold2);text-transform:uppercase;letter-spacing:.15em}.profile-card h2{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:31px;line-height:1.1;margin:5px 0}.profile-card p{color:#ffffff88}.profile-card a{display:flex;justify-content:space-between;border-top:1px solid #ffffff1f;padding-top:17px;margin-top:22px;font-size:12px;font-weight:800}.benefits{background:#0b0b0b;color:#fff}.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr)}.benefit-grid article{padding:27px 24px;border-right:1px solid #ffffff18}.benefit-grid article:last-child{border-right:0}.benefit-grid b{color:var(--gold);font-size:11px}.benefit-grid h2{font-size:14px;margin:4px 0}.benefit-grid p{font-size:11px;color:#ffffff78;margin:0}.section{padding:112px 0}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:52px}.heading h2{font-size:clamp(40px,5vw,64px);max-width:800px}.heading>p{max-width:420px;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--line);gap:1px}.service{position:relative;min-height:380px;padding:31px 26px;background:#fff;transition:.3s}.service:hover{transform:translateY(-7px);z-index:2;box-shadow:0 18px 45px #00000016}.service.dark{background:#111;color:#fff}.service.featured{box-shadow:inset 0 0 0 1px #d9af5545}.service>span{color:var(--gold);font-size:11px;font-weight:800}.service.featured>span{color:var(--gold2)}.service h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:27px;line-height:1.05;margin:76px 0 12px}.service p{font-size:13px;color:var(--muted)}.service.dark p{color:#ffffff80}.service a{position:absolute;left:26px;right:20px;bottom:27px;font-size:12px;font-weight:800}.service-detail{margin-top:22px;padding:42px;display:grid;grid-template-columns:.82fr 1.18fr;gap:65px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold)}.service-detail h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:clamp(30px,4vw,46px);line-height:1.08;margin:0}.service-detail-copy{display:grid;grid-template-columns:1fr 1fr;gap:28px}.service-detail-copy p{margin:0;color:var(--muted);font-size:14px}.service-detail-copy strong{color:var(--ink)}.location-section{padding:85px 0;background:#e8e2d8}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}.location-grid h2{font-size:clamp(38px,5vw,58px)}.location-copy p{margin:0 0 18px;color:#514e49}.location-copy strong{color:var(--ink)}.gallery-section{background:#090909;color:#fff}.heading.light>p{color:#ffffff80}.heading.light>a{color:var(--gold2);font-size:13px;font-weight:800;white-space:nowrap}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;grid-auto-rows:230px;gap:12px}.gallery-item{position:relative;margin:0;overflow:hidden;background:#222;min-width:0}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.gallery-item.featured{grid-column:span 2}.gallery-button{position:relative;width:100%;height:100%;padding:0;border:0;background:#222;color:#fff;cursor:zoom-in;overflow:hidden}.gallery img{width:100%;height:100%;object-fit:cover;transition:.55s;filter:saturate(.9)}.gallery-button:hover img,.gallery-button:focus-visible img{transform:scale(1.045);filter:saturate(1.08)}.gallery-button:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#000d,transparent 52%);pointer-events:none}.gallery figcaption{position:absolute;z-index:2;left:18px;right:18px;bottom:15px;text-align:left;font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:18px;line-height:1.15}.process{background:#ebe6dd}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.steps article{padding:30px;background:#fff;border-top:3px solid var(--gold)}.steps b{color:var(--gold);font-size:12px}.steps h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:25px;line-height:1.08;margin:45px 0 8px}.steps p{font-size:13px;color:var(--muted)}.faq-section{background:#f7f4ee}.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.faq-intro{position:sticky;top:100px;align-self:start}.faq-intro h2{font-size:clamp(40px,5vw,61px)}.faq-intro p{color:var(--muted);max-width:470px}.faq-list details{border-top:1px solid var(--line);padding:23px 0}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{list-style:none;cursor:pointer;font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:24px;line-height:1.2;padding-right:42px;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";position:absolute;right:4px;top:-4px;color:var(--gold);font:400 32px Manrope}.faq-list details[open] summary:after{content:"−"}.faq-list p{color:var(--muted);margin:14px 50px 0 0}.cta-band{padding:95px 0;background:linear-gradient(135deg,#171717,#090909);color:#fff;text-align:center}.cta-band h2{font-size:clamp(38px,5vw,65px);max-width:900px;margin:10px auto 30px}.cta-actions{justify-content:center}.contact{padding:112px 0;background:#0b0b0b;color:#fff}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact h2{font-size:clamp(46px,6vw,72px)}.contact-copy>p{color:#ffffff8a;font-size:16px;max-width:560px;margin:26px 0}.contact-cards{display:grid;gap:10px;margin-top:30px}.contact-cards>a,.contact-cards>div{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;border-top:1px solid #ffffff18}.contact-cards span{font-size:11px;color:#ffffff65;text-transform:uppercase;letter-spacing:.1em}.contact-cards strong{font-size:14px}.form{padding:34px;background:#151515;border:1px solid #ffffff1a}.form label{display:block;font-size:11px;color:#ffffff9c;margin-bottom:17px}.form input,.form textarea{width:100%;padding:12px 0;border:0;border-bottom:1px solid #ffffff27;background:transparent;color:#fff;font:inherit;outline:none;border-radius:0}.form input:focus,.form textarea:focus{border-color:var(--gold)}.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form button{width:100%;margin-top:8px}.form small{display:block;margin-top:12px;color:#ffffff55}footer{background:#050505;color:#fff;padding:35px 0}.footer{display:flex;align-items:center;gap:25px}.footer p,.footer a,.footer small,.footer address{font-size:10px;color:#ffffff68;font-style:normal}.footer small{margin-left:auto}.mobile-cta{display:none}.lightbox{width:min(94vw,1100px);max-height:92vh;padding:0;border:1px solid #ffffff2b;background:#070707;box-shadow:0 30px 90px #000c}.lightbox::backdrop{background:#000d;backdrop-filter:blur(8px)}.lightbox img{width:100%;max-height:88vh;object-fit:contain}.lightbox-close{position:absolute;z-index:2;top:10px;right:10px;width:44px;height:44px;border:1px solid #ffffff3a;border-radius:50%;background:#000b;color:#fff;font-size:26px;cursor:pointer}.reveal{opacity:1;transform:none}.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:.7s ease}.motion-ready .reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-ready .reveal{opacity:1;transform:none;transition:none}.gallery img,.btn,.header{transition:none}}@media(max-width:1050px){.header nav{gap:18px}.phone-link{display:none}.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.service-grid{grid-template-columns:repeat(2,1fr)}.service{min-height:330px}.footer{flex-wrap:wrap}.footer small{margin-left:0}}@media(max-width:900px){.header nav,.header-actions{display:none}.menu{display:block}.header nav.open{display:flex;position:fixed;inset:68px 0 0;background:#090909f8;flex-direction:column;align-items:flex-start;padding:40px 24px;font-size:26px;overflow:auto}.header nav.open a{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:30px;color:#fff}.hero{min-height:900px}.hero-inner{grid-template-columns:1fr;gap:35px;padding-top:125px;padding-bottom:90px}.profile-card{max-width:480px}.benefit-grid,.steps{grid-template-columns:1fr 1fr}.heading{align-items:flex-start}.location-grid,.faq-grid,.contact-grid{grid-template-columns:1fr;gap:48px}.faq-intro{position:static}.service-detail{grid-template-columns:1fr;gap:28px}.service-detail-copy{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-item.featured{grid-column:span 2}}@media(max-width:600px){body{padding-bottom:68px}.wrap{width:min(calc(100% - 28px),var(--max))}.header{height:66px;padding:0 14px}.header.scrolled{height:66px}.brand img{width:39px;height:39px}.brand span{font-size:11px}.hero{min-height:auto}.hero-inner{min-height:0;padding-top:105px;padding-bottom:58px}.hero h1{font-size:46px;line-height:1}.hero-copy>p{font-size:15px;margin:22px 0 26px}.actions,.cta-actions{display:grid}.btn{width:100%;min-height:52px}.hero-proof{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}.hero-proof div:last-child{grid-column:1/-1}.profile-card{padding:22px}.profile-card img{width:82px;height:82px}.benefit-grid{grid-template-columns:1fr}.benefit-grid article{border-right:0;border-bottom:1px solid #ffffff18;padding:20px 4px}.section{padding:74px 0}.heading{display:block;margin-bottom:34px}.heading h2{font-size:38px}.heading>p{margin-top:18px;font-size:14px}.service-grid{grid-template-columns:1fr}.service{min-height:300px}.service h3{margin-top:45px}.service-detail{padding:27px 22px;margin-top:16px}.service-detail-copy{grid-template-columns:1fr;gap:18px}.service-detail h3{font-size:32px}.location-section{padding:65px 0}.location-grid h2{font-size:38px}.gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:9px;margin-right:-14px;padding-right:14px}.gallery-item,.gallery-item.tall,.gallery-item.wide,.gallery-item.featured{flex:0 0 86%;height:450px;grid-row:auto;grid-column:auto;scroll-snap-align:center}.gallery figcaption{font-size:19px}.steps{grid-template-columns:1fr}.steps article{padding:25px}.steps h3{margin-top:26px}.faq-grid{gap:30px}.faq-intro h2{font-size:39px}.faq-list summary{font-size:21px}.faq-list p{margin-right:15px}.cta-band{padding:70px 0}.cta-band h2{font-size:37px}.contact{padding:74px 0}.contact h2{font-size:45px}.contact-grid{gap:38px}.form{padding:23px 18px}.row{grid-template-columns:1fr}.footer{display:grid;gap:12px}.mobile-cta{position:fixed;z-index:80;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;padding:8px calc(10px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left));background:#090909ef;backdrop-filter:blur(16px);border-top:1px solid #ffffff1a}.mobile-cta a{display:flex;justify-content:center;align-items:center;height:48px;font-size:13px;font-weight:800}.mobile-cta a:first-child{color:#fff}.mobile-cta a:last-child{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#17120a;border-radius:var(--radius)}}

/* FINAL RESPONSIVE NAVIGATION FIX
   The menu is positioned absolutely from the fixed header instead of fixed
   inside a backdrop-filtered element. This avoids the iOS Safari containing
   block bug that previously collapsed the overlay. */
@media (max-width:900px){
  .header{
    z-index:200;
    isolation:isolate;
  }

  .header nav{
    display:none;
  }

  .header nav.open{
    position:absolute;
    z-index:210;
    top:100%;
    left:0;
    right:0;
    bottom:auto;
    width:100vw;
    height:calc(100vh - 68px);
    height:calc(100svh - 68px);
    height:calc(100dvh - 68px);
    margin:0;
    padding:18px max(24px,env(safe-area-inset-right)) calc(110px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:#0b0b0b;
    box-shadow:0 30px 70px #0009;
  }

  .header nav.open a{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex:0 0 auto;
    min-height:68px;
    padding:8px 2px;
    border-bottom:1px solid #ffffff1c;
    color:#fff;
    font-family:'Playfair Display',Georgia,'Times New Roman',serif;
    font-size:clamp(27px,8vw,36px);
    font-weight:600;
    line-height:1.05;
    letter-spacing:-.02em;
  }

  .header nav.open a::after{
    content:'↗';
    color:var(--gold2);
    font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-size:16px;
    font-weight:500;
  }

  .header nav.open a[href^='#']::after,
  .header nav.open a[href*='index.html#']::after{
    content:'↓';
  }

  .header nav.open a:hover,
  .header nav.open a:focus-visible{
    color:var(--gold2);
  }

  .menu{
    position:relative;
    z-index:220;
    display:block;
    flex:0 0 45px;
    cursor:pointer;
    touch-action:manipulation;
  }

  .menu:focus-visible{
    outline:2px solid var(--gold2);
    outline-offset:2px;
    border-radius:50%;
  }

  body.menu-open .header{
    background:#111;
    border-bottom-color:#ffffff25;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }

  body.menu-open .mobile-cta{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(100%);
  }

  .mobile-cta{
    transition:opacity .2s ease,transform .25s ease,visibility .2s ease;
  }
}

@media (max-width:600px){
  .header nav.open{
    height:calc(100vh - 66px);
    height:calc(100svh - 66px);
    height:calc(100dvh - 66px);
    padding-top:10px;
  }

  .header nav.open a{
    min-height:64px;
  }
}

@media (min-width:901px){
  body.menu-open{
    overflow:auto;
  }

  .header nav{
    position:static;
    width:auto;
    height:auto;
    overflow:visible;
  }
}


/* ================================================================
   MOBILE MENU V2 — independent body-level overlay
   This layer is created by script-final-v2.js directly under <body>.
   It never lives inside the backdrop-filtered fixed header, which
   prevents iOS Safari from clipping it after the page has been scrolled.
   ================================================================ */
.mobile-menu-layer{display:none}

@media (max-width:900px){
  /* The original navigation remains desktop-only. */
  .header nav,
  .header nav.open{display:none!important}

  .header{z-index:500}
  .menu{display:block;position:relative;z-index:510}

  .mobile-menu-layer{
    --mobile-menu-height:100dvh;
    position:fixed!important;
    z-index:2147483000!important;
    top:0!important;
    right:0!important;
    bottom:auto!important;
    left:0!important;
    display:flex;
    flex-direction:column;
    width:100vw!important;
    max-width:none!important;
    height:var(--mobile-menu-height)!important;
    min-height:100vh;
    margin:0!important;
    padding:0!important;
    overflow:hidden;
    background:#080808;
    color:#fff;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(0,-8px,0);
    transition:opacity .2s ease,transform .25s ease,visibility .2s ease;
    isolation:isolate;
    contain:layout paint;
    -webkit-transform:translate3d(0,-8px,0);
  }

  .mobile-menu-layer.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate3d(0,0,0);
    -webkit-transform:translate3d(0,0,0);
  }

  .mobile-menu-top{
    flex:0 0 auto;
    min-height:calc(74px + env(safe-area-inset-top));
    padding:env(safe-area-inset-top) max(18px,env(safe-area-inset-right)) 0 max(18px,env(safe-area-inset-left));
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    border-bottom:1px solid #ffffff2b;
    background:#111;
  }

  .mobile-menu-brand{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    color:#fff;
  }

  .mobile-menu-brand img{
    flex:0 0 auto;
    width:46px;
    height:46px;
    border-radius:50%;
    object-fit:cover;
    border:1px solid #ffffff35;
  }

  .mobile-menu-brand span{
    overflow:hidden;
    color:#fff;
    font-size:13px;
    letter-spacing:.16em;
    white-space:nowrap;
    text-overflow:ellipsis;
  }

  .mobile-menu-brand b{color:var(--gold2)}

  .mobile-menu-close{
    position:relative;
    flex:0 0 48px;
    width:48px;
    height:48px;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#fff;
    cursor:pointer;
    touch-action:manipulation;
  }

  .mobile-menu-close::before,
  .mobile-menu-close::after{
    content:"";
    position:absolute;
    top:23px;
    left:10px;
    width:28px;
    height:2px;
    border-radius:2px;
    background:currentColor;
  }

  .mobile-menu-close::before{transform:rotate(45deg)}
  .mobile-menu-close::after{transform:rotate(-45deg)}

  .mobile-menu-close:focus-visible{
    outline:2px solid var(--gold2);
    outline-offset:2px;
  }

  .mobile-menu-scroll{
    flex:1 1 auto;
    min-height:0;
    width:100%;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:22px max(24px,env(safe-area-inset-right)) calc(34px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));
    background:#080808;
  }

  .mobile-menu-label{
    display:block;
    margin:0 0 9px;
    color:var(--gold2);
    font-size:10px;
    font-weight:800;
    letter-spacing:.17em;
    text-transform:uppercase;
  }

  .mobile-menu-links{
    display:flex!important;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    width:100%;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
  }

  .mobile-menu-links a{
    position:relative;
    display:flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:space-between;
    width:100%;
    min-height:68px;
    padding:10px 2px;
    border-bottom:1px solid #ffffff1d;
    color:#fff!important;
    font-family:'Playfair Display',Georgia,'Times New Roman',serif;
    font-size:clamp(28px,8.2vw,38px)!important;
    font-weight:600!important;
    line-height:1.02;
    letter-spacing:-.025em;
  }

  .mobile-menu-links a::after{
    content:'↗';
    flex:0 0 auto;
    margin-left:20px;
    color:var(--gold2);
    font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-size:16px;
    font-weight:600;
  }

  .mobile-menu-links a[href^='#']::after,
  .mobile-menu-links a[href*='index.html#']::after{content:'↓'}

  .mobile-menu-links a:hover,
  .mobile-menu-links a:focus-visible{color:var(--gold2)!important}

  .mobile-menu-contact{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:24px;
  }

  .mobile-menu-contact a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    padding:0 14px;
    border:1px solid #ffffff35;
    border-radius:var(--radius);
    color:#fff;
    font-size:12px;
    font-weight:800;
    text-align:center;
  }

  .mobile-menu-contact a:last-child{
    border-color:transparent;
    background:linear-gradient(135deg,var(--gold2),var(--gold));
    color:#17120a;
  }

  body.menu-open .header,
  body.menu-open .mobile-cta{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  body.menu-open{overscroll-behavior:none}
}

@media (max-width:380px){
  .mobile-menu-top{min-height:calc(68px + env(safe-area-inset-top))}
  .mobile-menu-brand img{width:40px;height:40px}
  .mobile-menu-brand span{font-size:11px}
  .mobile-menu-links a{min-height:60px;font-size:27px!important}
  .mobile-menu-scroll{padding-top:14px}
}

@media (min-width:901px){
  .mobile-menu-layer{display:none!important}
}

/* SEO/CWV v3: responsive media, stable rendering and below-fold containment */
.hero-media,.city-hero-media{position:absolute;inset:0;display:block;width:100%;height:100%}
.hero-media .hero-img,.city-hero-media .city-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.section,.location-section,.gallery-section,.process,.faq-section,.contact,.city-main,.city-services,.city-faq,.cta-band{content-visibility:auto;contain-intrinsic-size:1px 850px}
.gallery picture,.gallery picture img{display:block;width:100%;height:100%}
@media(prefers-reduced-data:reduce){.hero-shade{background:#080808c7}.gallery img{filter:none}}


/* FINAL GALLERY V4 — unique masonry gallery */
.gallery{
  display:block;
  columns:3 300px;
  column-gap:14px;
  overflow:visible;
}
.gallery-item,
.gallery-item.tall,
.gallery-item.wide,
.gallery-item.featured{
  display:inline-block;
  width:100%;
  height:auto;
  margin:0 0 14px;
  overflow:hidden;
  break-inside:avoid;
  page-break-inside:avoid;
  background:#171717;
  vertical-align:top;
}
.gallery-button{
  position:relative;
  display:block;
  width:100%;
  height:auto;
  padding:0;
  overflow:hidden;
  border:0;
  background:#171717;
  cursor:zoom-in;
}
.gallery picture,
.gallery picture img{
  display:block;
  width:100%;
  height:auto;
}
.gallery img{
  object-fit:contain;
  filter:saturate(.94) contrast(1.01);
  transition:transform .45s ease,filter .45s ease;
}
.gallery-button::after{
  content:'+';
  position:absolute;
  right:14px;
  bottom:14px;
  display:grid;
  place-items:center;
  width:39px;
  height:39px;
  border:1px solid #ffffff55;
  border-radius:50%;
  background:#080808a8;
  color:#fff;
  font-size:24px;
  font-weight:300;
  line-height:1;
  opacity:0;
  transform:translateY(6px);
  transition:.25s ease;
  pointer-events:none;
  backdrop-filter:blur(8px);
}
.gallery-button:hover img,
.gallery-button:focus-visible img{transform:scale(1.025);filter:saturate(1.06) contrast(1.02)}
.gallery-button:hover::after,
.gallery-button:focus-visible::after{opacity:1;transform:none}
.gallery-button:focus-visible{outline:2px solid var(--gold2);outline-offset:-2px}

.lightbox{position:relative;width:min(96vw,1280px);max-height:94dvh;overflow:hidden}
.lightbox img{display:block;width:100%;height:auto;max-height:91dvh;object-fit:contain;margin:auto}
.lightbox-nav{
  position:absolute;
  z-index:3;
  top:50%;
  width:50px;
  height:58px;
  border:1px solid #ffffff40;
  background:#050505b8;
  color:#fff;
  font-size:38px;
  line-height:1;
  cursor:pointer;
  transform:translateY(-50%);
  backdrop-filter:blur(8px);
}
.lightbox-prev{left:12px}.lightbox-next{right:12px}
.lightbox-counter{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:12px;
  min-width:62px;
  padding:7px 12px;
  border:1px solid #ffffff35;
  border-radius:99px;
  background:#050505bc;
  color:#fff;
  font-size:11px;
  font-weight:800;
  text-align:center;
  transform:translateX(-50%);
  backdrop-filter:blur(8px);
}
@media(max-width:1050px){.gallery{columns:2 280px}}
@media(max-width:600px){
  .gallery{
    display:block!important;
    columns:1!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  .gallery-item,
  .gallery-item.tall,
  .gallery-item.wide,
  .gallery-item.featured{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0 0 12px!important;
    flex:none!important;
    grid-row:auto!important;
    grid-column:auto!important;
    scroll-snap-align:none!important;
  }
  .gallery-button{height:auto!important}
  .gallery-button::after{opacity:1;transform:none;width:36px;height:36px;font-size:21px}
  .lightbox{width:100vw;max-width:100vw;max-height:100dvh;border:0}
  .lightbox img{max-height:100dvh}
  .lightbox-nav{width:42px;height:52px;font-size:32px}
  .lightbox-prev{left:6px}.lightbox-next{right:6px}
}
