:root {
  --services-ink:#171a17;
  --services-ink-soft:#202420;
  --services-cream:#f0ece3;
  --services-gold:#b18b56;
  --services-gold-light:#dfc18e;
}
.services-page{background:var(--services-ink);overflow-x:hidden}
.services-page .site-header{position:absolute;background:linear-gradient(180deg,rgba(11,14,12,.88),rgba(11,14,12,0))}
.services-page .site-header.scrolled{position:fixed;background:rgba(18,21,18,.96)}
.services-page .site-nav a.active{color:#dbc49e}
.services-page .site-nav a.active::after{transform:scaleX(1)}
.services-hero{position:relative;height:clamp(360px,39vw,500px);min-height:360px;overflow:hidden;color:#fff;background:#111}
.services-hero-image,.services-hero-shade{position:absolute;inset:0;width:100%;height:100%}
.services-hero-image{object-fit:cover;object-position:center 55%;animation:services-hero-enter 1.2s cubic-bezier(.22,.7,.22,1) both}
.services-hero-shade{background:linear-gradient(90deg,rgba(7,10,8,.83),rgba(7,10,8,.38) 56%,rgba(7,10,8,.1))}
.services-hero-content{position:absolute;z-index:1;left:8vw;right:8vw;bottom:clamp(52px,7vw,88px);max-width:970px}
.services-hero-content .eyebrow{display:block;margin-bottom:18px;color:#e1c596;font-size:.64rem;letter-spacing:.2em}
.services-hero h1{margin:0;font-size:clamp(2.65rem,4.55vw,4.7rem);font-weight:600;line-height:1.02;letter-spacing:-.055em;white-space:nowrap}
.services-hero h1 em{color:#e4c48e;font-weight:500}
.services-hero-content p{max-width:650px;margin:20px 0 0;color:#e1e4de;font-size:clamp(.9rem,1.15vw,1.04rem);line-height:1.65}
.services-page .section{padding-top:clamp(48px,5vw,72px);padding-bottom:clamp(48px,5vw,72px)}
.services-intro{background:var(--services-cream);color:#242620}
.services-intro .section-top .eyebrow{color:#89693e}
.services-intro .section-top .rule{background:#afa38f73}
.services-intro .section-tail{color:#6b655b}
.services-intro-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.65fr);gap:clamp(48px,8vw,130px);align-items:end;margin-top:clamp(30px,4vw,50px)}
.services-intro-layout h2{max-width:820px;margin:0;font-size:clamp(2.25rem,4vw,4rem);font-weight:600;line-height:.98;letter-spacing:-.06em}
.services-intro-layout h2>span{display:block;white-space:nowrap}
.services-intro-layout h2 em{color:#9a7544;font-weight:500}
.services-intro-layout p{max-width:590px;margin:0;padding-left:28px;border-left:1px solid rgba(157,123,77,.62);color:#555a52;font-size:.96rem;line-height:1.75}
.services-showcase{background:var(--services-ink);color:#f2eee6}
.services-showcase .section-top .eyebrow{color:#d6b77e}
.services-showcase .section-top .rule{background:#ffffff24}
.services-showcase .section-tail{color:#adb4ad}
.showcase-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin:clamp(30px,4vw,48px) 0 clamp(28px,4vw,54px)}
.showcase-heading h2{max-width:900px;margin:0;font-size:clamp(2.35rem,4.1vw,4.25rem);font-weight:600;line-height:1;letter-spacing:-.055em}
.showcase-heading h2 em{color:var(--services-gold-light);font-weight:500}
.showcase-heading p{max-width:330px;margin:0;color:#aeb5af;font-size:.8rem;line-height:1.7}
.service-mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,minmax(245px,19vw)) minmax(310px,25vw);gap:clamp(10px,1.2vw,18px)}
.service-tile{position:relative;grid-column:span 5;min-width:0;overflow:hidden;background:#0d110f}
.service-tile-feature{grid-column:span 7;grid-row:span 2}
.service-tile-wide{grid-column:span 4}
.service-tile:nth-child(5),.service-tile:nth-child(6){grid-column:span 4}
.service-tile button{position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden;border:0;color:#fff;background:#0d110f;text-align:left;cursor:pointer}
.service-tile img,.tile-wash{position:absolute;inset:0;width:100%;height:100%}
.service-tile img{object-fit:cover;filter:saturate(.92) contrast(1.03);transition:transform .85s cubic-bezier(.2,.7,.2,1),filter .55s ease}
.tile-wash{background:linear-gradient(180deg,rgba(4,7,5,.08) 22%,rgba(5,9,6,.84) 100%);transition:background .45s ease}
.tile-number,.tile-icon,.tile-copy,.tile-action{position:absolute;z-index:1}
.tile-number{top:clamp(18px,2vw,30px);left:clamp(18px,2vw,30px);color:#e1c596;font-size:.58rem;font-weight:700;letter-spacing:.16em}
.tile-icon{top:clamp(16px,1.8vw,27px);right:clamp(18px,2vw,30px);display:grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff66;border-radius:50%;font-size:.78rem;transition:color .3s ease,border-color .3s ease,background .3s ease}
.tile-copy{left:clamp(20px,2.5vw,38px);right:clamp(20px,2.5vw,38px);bottom:clamp(50px,5vw,76px);transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.tile-copy small{display:block;margin-bottom:10px;color:#e1c596;font-size:.57rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.tile-copy strong{display:block;max-width:700px;font-family:'Poppins',Arial,sans-serif;font-size:clamp(1.35rem,2.2vw,2.45rem);font-weight:500;line-height:1.12;letter-spacing:-.04em}
.service-tile:not(.service-tile-feature) .tile-copy strong{font-size:clamp(1.15rem,1.7vw,1.85rem)}
.tile-copy>span{display:block;margin-top:10px;color:#d1d7d1;font-size:.7rem;letter-spacing:.06em}
.tile-action{right:clamp(20px,2.5vw,38px);bottom:clamp(18px,2vw,28px);display:flex;align-items:center;gap:10px;color:#f2eee6;font-size:.56rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.78;transition:opacity .3s ease,transform .3s ease}
.service-tile button:focus-visible{outline:3px solid #e0bd83;outline-offset:-5px}
@media(hover:hover){
  .service-tile:hover img{transform:scale(1.055);filter:saturate(1.08) contrast(1.04)}
  .service-tile:hover .tile-wash{background:linear-gradient(180deg,rgba(4,7,5,.02) 12%,rgba(5,9,6,.88) 100%)}
  .service-tile:hover .tile-copy{transform:translateY(-8px)}
  .service-tile:hover .tile-action{opacity:1;transform:translateX(-5px)}
  .service-tile:hover .tile-icon{color:#171a17;border-color:#dfc18e;background:#dfc18e}
}
.service-dialog{width:min(1180px,calc(100vw - 48px));max-width:none;max-height:min(820px,calc(100dvh - 48px));padding:0;overflow:hidden;border:1px solid #d5b981;color:#f2eee6;background:#171b18;box-shadow:0 40px 120px #000b;opacity:0;transform:translateY(16px) scale(.985);transition:opacity .25s ease,transform .25s ease,overlay .25s allow-discrete,display .25s allow-discrete}
.service-dialog[open]{opacity:1;transform:none}
.service-dialog::backdrop{background:rgba(5,8,6,.86);backdrop-filter:blur(8px)}
.service-dialog-shell{position:relative;display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);min-height:600px}
.service-dialog-close{position:absolute;z-index:3;top:18px;right:18px;display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff73;border-radius:50%;color:#fff;background:#151a17cc;font-size:1rem}
.service-dialog-close:hover{color:#171a17;border-color:#dfc18e;background:#dfc18e}
.service-dialog figure{position:relative;min-height:100%;margin:0;overflow:hidden;background:#0d110f}
.service-dialog figure::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 70%,#171b18)}
.service-dialog figure img{width:100%;height:100%;object-fit:cover}
.service-dialog-copy{align-self:center;padding:clamp(42px,5vw,76px);overflow-y:auto;max-height:calc(100dvh - 50px)}
.service-dialog-copy>span{display:block;margin-bottom:14px;color:#dfc18e;font-size:.61rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase}
.service-dialog-copy h2{max-width:760px;margin:0 0 28px;font-size:clamp(2rem,3.2vw,3.45rem);font-weight:500;line-height:1.06;letter-spacing:-.05em}
.service-dialog-copy p{margin:0 0 17px;color:#c5ccc5;font-size:.88rem;line-height:1.76}
.service-dialog-copy>a{display:inline-flex;align-items:center;gap:14px;margin-top:12px;padding-bottom:7px;border-bottom:1px solid #cdaa70;color:#dfc18e;font-size:.63rem;font-weight:700;letter-spacing:.14em;text-decoration:none;text-transform:uppercase}
.service-dialog-copy>a i{transition:transform .25s ease}
.service-dialog-copy>a:hover i{transform:translateX(5px)}
.dialog-open{overflow:hidden}
.services-footer .footer-inner{padding-top:clamp(52px,6vw,78px)}
html.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
html.js [data-reveal].in-view{opacity:1;transform:none}
@keyframes services-hero-enter{from{opacity:.45;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@media(max-width:1000px){
  .service-mosaic{grid-template-rows:minmax(430px,58vw) repeat(2,minmax(260px,34vw));}
  .service-tile-feature{grid-column:span 12;grid-row:auto}
  .service-tile{grid-column:span 6}
  .service-tile-wide,.service-tile:nth-child(5),.service-tile:nth-child(6){grid-column:span 4}
  .service-dialog-shell{grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr)}
}
@media(max-width:820px){
  .services-hero{height:400px;min-height:400px}
  .services-intro-layout{grid-template-columns:1fr;gap:28px}
  .services-intro-layout p{max-width:720px}
  .showcase-heading{align-items:start;flex-direction:column;gap:16px}
  .service-mosaic{grid-template-rows:minmax(420px,60vw) repeat(2,minmax(270px,39vw)) minmax(280px,42vw)}
  .service-tile-wide,.service-tile:nth-child(5),.service-tile:nth-child(6){grid-column:span 6}
  .service-tile:nth-child(6){grid-column:span 12}
  .service-dialog-shell{grid-template-columns:1fr;min-height:0}
  .service-dialog figure{height:280px;min-height:280px}
  .service-dialog figure::after{background:linear-gradient(180deg,transparent 70%,#171b18)}
  .service-dialog-copy{padding:34px;max-height:calc(100dvh - 330px)}
}
@media(max-width:620px){
  .services-page .section{padding-top:40px;padding-bottom:40px}
  .services-hero{height:360px;min-height:360px}
  .services-hero-image{object-position:60% center}
  .services-hero-content{left:22px;right:22px;bottom:38px}
  .services-hero-content .eyebrow{margin-bottom:13px;font-size:.54rem;line-height:1.5}
  .services-hero h1{font-size:clamp(2.25rem,11vw,3.1rem);line-height:1.04;white-space:normal}
  .services-hero-content p{margin-top:14px;font-size:.82rem}
  .services-intro-layout{margin-top:26px}
  .services-intro-layout h2{font-size:clamp(1.55rem,8vw,2rem)}
  .services-intro-layout p{padding:18px 0 0;border-top:1px solid rgba(157,123,77,.62);border-left:0;font-size:.88rem}
  .showcase-heading h2{font-size:clamp(2.2rem,10vw,3rem)}
  .service-mosaic{display:block}
  .service-tile,.service-tile-feature,.service-tile-wide,.service-tile:nth-child(5),.service-tile:nth-child(6){height:clamp(380px,118vw,500px);margin-bottom:12px}
  .service-tile:last-child{margin-bottom:0}
  .service-tile:not(.service-tile-feature) .tile-copy strong,.tile-copy strong{font-size:clamp(1.45rem,7vw,2rem)}
  .service-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
  .service-dialog figure{height:220px;min-height:220px}
  .service-dialog-copy{max-height:calc(100dvh - 250px);padding:28px 22px 32px}
  .service-dialog-copy h2{padding-right:24px;font-size:clamp(1.65rem,8vw,2.35rem)}
  .service-dialog-copy p{font-size:.82rem;line-height:1.68}
  .service-dialog-close{top:12px;right:12px;width:42px;height:42px}
}
@media(max-width:360px){.services-hero h1{font-size:2.16rem}}
@media(prefers-reduced-motion:reduce){
  .services-hero-image,.service-tile img,.tile-wash,.tile-copy,.tile-action,.tile-icon,.service-dialog,.service-dialog-copy>a i{animation:none;transition:none}
  html.js [data-reveal]{opacity:1;transform:none;transition:none}
}
