/* ================= SERVICE DETAIL PAGE (v2, editorial) ================= */
.dd > a.on:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--ink)}
.crumb{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500}
.crumb a:hover{color:var(--primary)}
.crumb .cr-sep,.crumb [aria-current]{color:var(--ink-2);opacity:.7}
.btn-dark{background:var(--ink);color:var(--bg-2)}
.btn-dark:before{background:var(--primary)}
.btn i{font-size:18px}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,120px);align-items:end}
.sec-head h2{font-size:clamp(40px,5.2vw,92px);line-height:.98}
.sec-head p{margin:0;font-size:17px;line-height:1.65;color:var(--ink-2);max-width:48ch;justify-self:end}

/* hero */
.d-hero{background:var(--grain),var(--bg);padding-block:clamp(130px,10vw,170px) 0}
.d-title{font-size:clamp(46px,7.4vw,140px);line-height:1;margin-top:clamp(24px,2.4vw,40px)}
.d-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(30px,6vw,120px);margin-top:clamp(36px,4vw,70px);align-items:start}
.d-lead{margin:0;font-size:clamp(20px,1.7vw,28px);line-height:1.5;color:var(--ink);font-weight:300}
.d-side{display:grid;gap:26px}
.d-side p{margin:0;font-size:17px;line-height:1.7;color:var(--ink-2)}
.d-key{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--line)}
.d-key div{display:grid;gap:2px}
.d-key b{font-family:var(--f-d);font-weight:400;font-size:clamp(30px,2.6vw,44px);line-height:1}
.d-key span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);font-weight:500}
.d-key .sep{width:1px;height:44px;background:var(--line)}
.d-btns{display:flex;gap:12px;flex-wrap:wrap}
.d-img{position:relative;display:block;width:100%;margin-top:clamp(50px,5vw,90px);padding:0;border:0;overflow:hidden;aspect-ratio:21/9;background:var(--card);}
.d-img img{width:100%;height:118%;object-fit:cover;display:block}
.d-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* vertical (phone) video: shown whole in the middle, a blurred copy fills the sides */
.d-img.is-vert{background:var(--ink)}
.d-img.is-vert .d-vid{object-fit:contain;z-index:2}
.d-img.is-vert .d-vid-bg{position:absolute;inset:-8%;width:116%;height:116%;object-fit:cover;filter:blur(32px) saturate(1.15) brightness(.85);z-index:1;pointer-events:none}
.d-img.is-vert > img{position:absolute;inset:0;opacity:0}
.d-img .play{position:absolute;left:clamp(16px,2vw,32px);bottom:clamp(16px,2vw,32px);display:flex;align-items:center;gap:12px;padding:8px 22px 8px 8px;border-radius:999px;background:var(--bg-2);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--ink)}
.d-img .play i{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--bg-2);display:grid;place-items:center;font-size:16px;transition:transform .5s var(--ease)}
.d-img:hover .play i{transform:scale(1.1)}

/* price list */
.menu-sec{background:var(--grain),var(--bg);padding-block:clamp(100px,9vw,160px)}
.offer-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:30px;font-size:14px;color:var(--ink-2)}
.offer-line i{font-size:20px;color:var(--gold)}
.offer-line b{font-weight:500;color:var(--ink)}
.offer-line .dot{width:4px;height:4px;border-radius:50%;background:var(--ink-2)}
.cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(50px,5vw,80px) clamp(40px,6vw,110px);margin-top:clamp(50px,5vw,80px)}
.cat h3{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 6px;padding-bottom:16px;border-bottom:1px solid var(--ink);font-family:var(--f-d);font-weight:400;text-transform:uppercase;font-size:clamp(26px,2.2vw,38px);line-height:1}
.cat h3 span{font-family:var(--f-b);font-size:11px;letter-spacing:.16em;color:var(--primary);font-weight:500}
.prow{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.prow .nm{font-size:clamp(16px,1.2vw,19px)}
.prow .nm em{font-style:normal;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-left:8px;font-weight:500}
.prow .ld{border-bottom:1px dotted rgba(28,23,20,.3);transform:translateY(-4px)}
.prow .pr{font-family:var(--f-d);font-size:clamp(22px,1.7vw,28px);line-height:1;white-space:nowrap}
.prow .pr small{font-family:var(--f-b);font-size:10.5px;letter-spacing:.12em;margin-right:5px;color:var(--ink-2)}

/* long-form content: sticky photo story */
.seo-sec{background:var(--grain),var(--bg-2);padding-block:clamp(100px,9vw,160px)}
.seo-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,7vw,130px);align-items:start}
.seo-media{position:relative;height:min(calc(100vh - 150px),760px);overflow:hidden;background:var(--card)}
.seo-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .9s var(--ease),transform 1.6s var(--ease)}
.seo-media img.on{opacity:1;transform:none}
.seo-media:after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(180deg,rgba(28,23,20,0),rgba(28,23,20,.55));pointer-events:none}
.sm-cap{position:absolute;left:clamp(20px,2vw,32px);right:clamp(20px,2vw,32px);bottom:clamp(30px,3vw,46px);z-index:2;display:flex;justify-content:space-between;align-items:baseline;gap:16px;color:var(--bg-2)}
.sm-n{font-size:12px;letter-spacing:.16em;font-weight:500;opacity:.8}
.sm-n b{font-family:var(--f-d);font-weight:400;font-size:34px;letter-spacing:0;opacity:1;margin-right:4px}
.sm-t{font-family:var(--f-d);text-transform:uppercase;font-size:clamp(18px,1.5vw,24px);text-align:right}
.sm-bar{position:absolute;left:clamp(20px,2vw,32px);right:clamp(20px,2vw,32px);bottom:clamp(18px,1.8vw,26px);height:1px;background:rgba(253,249,246,.3);z-index:2}
.sm-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--bg-2);width:25%;transition:width .8s var(--ease)}
.seo-txt h2{font-size:clamp(38px,4.6vw,80px);line-height:1}
.seo-lead{margin:28px 0 0;font-size:clamp(19px,1.5vw,24px);line-height:1.6;color:var(--ink);font-weight:300}
.seo-block{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(18px,2vw,34px);padding-top:clamp(40px,4vw,60px);margin-top:clamp(40px,4vw,60px);border-top:1px solid var(--line);opacity:.4;transition:opacity .6s var(--ease)}
.seo-block.on{opacity:1}
.sb-img{display:none;grid-column:1/-1;margin:0 0 6px;position:relative;overflow:hidden;aspect-ratio:16/10}
.sb-img img{width:100%;height:100%;object-fit:cover}
.sb-tag{position:absolute;left:14px;bottom:14px;background:var(--bg-2);border-radius:999px;padding:6px 12px;font-size:11px;letter-spacing:.14em;font-weight:500}
.sb-n{font-family:var(--f-d);font-size:clamp(44px,4vw,72px);line-height:.8;color:var(--primary)}
.seo-block h3{font-family:var(--f-d);font-weight:400;text-transform:uppercase;font-size:clamp(26px,2.2vw,38px);line-height:1.05;margin:0}
.seo-block p{margin:16px 0 0;font-size:17px;line-height:1.75;color:var(--ink-2)}
.seo-block .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.seo-block .tags span{font-size:12px;letter-spacing:.06em;padding:7px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:var(--bg)}
.sb-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:18px;border-top:1px dashed var(--line);font-size:14px;color:var(--ink-2)}
.sb-foot b{font-family:var(--f-d);font-weight:400;font-size:22px;color:var(--ink);margin-left:4px}
.sb-foot a{display:flex;align-items:center;gap:6px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--ink)}
.sb-foot a i{transition:transform .4s var(--ease)}
.sb-foot a:hover i{transform:translate(3px,-3px)}

/* why */
.why-sec{background:var(--grain),var(--bg);padding-block:clamp(100px,9vw,160px)}
.why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.4vw,40px);margin-top:clamp(50px,5vw,80px)}
.why-item{border-top:1px solid var(--ink);padding-top:26px;display:grid;gap:14px;align-content:start}
.why-item i{font-size:36px;color:var(--primary)}
.why-item b{font-family:var(--f-d);font-weight:400;text-transform:uppercase;font-size:clamp(22px,1.8vw,30px);line-height:1.05}
.why-item span{font-size:15.5px;line-height:1.65;color:var(--ink-2)}

/* faq */
.faq-sec{background:var(--grain),var(--bg-2);padding-block:clamp(100px,9vw,160px)}
.faq-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(40px,6vw,120px);align-items:start}
.faq-grid h2{font-size:clamp(40px,5.2vw,92px);line-height:.98}
.faq-grid .lead{margin:22px 0 0;font-size:17px;color:var(--ink-2);max-width:34ch}
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;font-size:clamp(18px,1.4vw,22px);font-weight:400}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:16px;transition:transform .5s var(--ease),background .4s,color .4s}
.faq details[open] summary i{transform:rotate(45deg);background:var(--ink);color:var(--bg-2)}
.faq .ans{overflow:hidden}
.faq .ans p{margin:0;padding:0 60px 26px 0;font-size:16px;line-height:1.7;color:var(--ink-2)}

/* other services */
.more-sec{background:var(--grain),var(--bg);padding-block:clamp(100px,9vw,160px);overflow:hidden}
.more-top{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap}
.more-top h2{font-size:clamp(40px,5.2vw,92px);line-height:.98}
.t-ctrl{display:flex;align-items:center;gap:14px}
.t-ctrl button{width:56px;height:56px;border-radius:50%;border:1px solid var(--ink);display:grid;place-items:center;font-size:20px;transition:background .4s,color .4s}
.t-ctrl button:hover{background:var(--ink);color:var(--bg-2)}
.t-ctrl button:disabled{opacity:.3;pointer-events:none}
.t-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3*24px)/4);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;margin-top:clamp(44px,4vw,70px);padding-bottom:6px;scrollbar-width:none;cursor:grab}
.t-track::-webkit-scrollbar{display:none}
.t-track.drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.m-card{scroll-snap-align:start;display:grid;gap:14px;user-select:none}
.m-card figure{margin:0;position:relative;overflow:hidden;aspect-ratio:4/5}
.m-card img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);pointer-events:none}
.m-card:hover img{transform:scale(1.06)}
.m-card .go{position:absolute;right:14px;top:14px;width:44px;height:44px;border-radius:50%;background:var(--bg-2);display:grid;place-items:center;font-size:17px;transition:transform .5s var(--ease)}
.m-card:hover .go{transform:rotate(45deg)}
.m-card h3{font-family:var(--f-d);font-weight:400;text-transform:uppercase;font-size:clamp(22px,1.8vw,30px);line-height:1;margin:0}
.m-card p{margin:-6px 0 0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);font-weight:500}
.t-bar{position:relative;height:1px;background:var(--line);margin-top:40px}
.t-bar i{position:absolute;left:0;top:0;height:1px;background:var(--ink);width:25%;transition:transform .2s linear,width .3s}

/* cta */
.cta{background:var(--grain),var(--bg-2);padding-block:clamp(100px,9vw,170px);text-align:center}
.cta h2{font-size:clamp(46px,7.4vw,140px);line-height:.98}
.cta p{margin:24px auto 0;font-size:18px;color:var(--ink-2);max-width:44ch}
.cta .btns{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:40px}

@media (max-width:1100px){
  .why-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:44px}
  .t-track{grid-auto-columns:calc((100% - 2*20px)/3);gap:20px}
}
@media (max-width:900px){
  .cats{grid-template-columns:1fr}
  .seo-grid{grid-template-columns:1fr}
  .seo-media{display:none}
  .seo-block{opacity:1;row-gap:20px}
  .sb-img{display:block}
  .seo-block .sb-n{font-size:46px}
}
@media (max-width:820px){
  .d-hero{padding-top:120px}
  .d-title{font-size:clamp(40px,11.5vw,90px)}
  .d-intro,.sec-head,.faq-grid{grid-template-columns:1fr}
  .sec-head p{justify-self:start}
  .d-lead{font-size:19px}
  .d-side p,.seo-block p,.cta p{font-size:16px}
  .seo-lead{font-size:18px}
  .d-img{aspect-ratio:4/3}
  /* phones: a vertical video gets a tall frame and fills it */
  .d-img.is-vert{aspect-ratio:9/14;max-height:78svh}
  .d-img.is-vert .d-vid{object-fit:cover}
  .d-img.is-vert .d-vid-bg{display:none}
  .faq .ans p{padding-right:0}
  .t-track{grid-auto-columns:calc((100% - 16px)/2);gap:16px}
  .cta h2{font-size:clamp(40px,11vw,90px)}
}
@media (max-width:560px){
  .seo-block{grid-template-columns:auto minmax(0,1fr);column-gap:14px;row-gap:0;align-items:center}
  .seo-block .sb-body{display:contents}
  .seo-block .sb-img{margin-bottom:22px}
  .seo-block .sb-n{font-size:40px;line-height:1}
  .seo-block h3{grid-column:2}
  .seo-block p,.seo-block .tags,.seo-block .sb-foot{grid-column:1/-1}
  .why-grid{grid-template-columns:1fr}
  .prow{gap:10px}
  .prow .ld{min-width:12px}
  .t-track{grid-auto-columns:72%}
  .t-ctrl button{width:48px;height:48px}
  .d-key{gap:16px}
}

/* floating booking dock */
.dock{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);z-index:45;display:flex;align-items:center;gap:14px;padding:8px 8px 8px 10px;border-radius:999px;background:rgba(253,249,246,.82);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 22px 50px -18px rgba(28,23,20,.45);border:1px solid rgba(28,23,20,.08);transform:translate(-50%,160%);opacity:0;transition:transform .8s var(--ease),opacity .5s}
.dock.show{transform:translate(-50%,0);opacity:1}
.m-open .dock{transform:translate(-50%,160%);opacity:0}
.dk-thumb{position:relative;width:58px;height:58px;flex:none;display:grid;place-items:center}
.dk-thumb img{width:36px;height:36px;border-radius:50%;object-fit:cover}
.dk-thumb svg{position:absolute;inset:0;width:100%;height:100%;fill:var(--ink);animation:spin 14s linear infinite}
.dk-thumb text{font-family:var(--f-b);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:500}
.dk-info{display:grid;gap:3px;padding-right:6px;white-space:nowrap}
.dk-info b{font-family:var(--f-d);font-weight:400;font-size:20px;line-height:1;text-transform:uppercase}
.dk-sub{font-size:12px;color:var(--ink-2)}
.dk-s{display:none}
.dk-info em{font-style:normal;color:var(--ink);font-weight:500}
.dk-wa{width:50px;height:50px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:21px;flex:none;transition:background .4s,color .4s}
.dk-wa:hover{background:#25d366;border-color:#25d366;color:#fff}
.dk-book{position:relative;display:flex;align-items:center;gap:12px;height:50px;padding:0 8px 0 24px;border-radius:999px;background:var(--ink);color:var(--bg-2);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;overflow:hidden;isolation:isolate}
.dk-book:before{content:"";position:absolute;inset:0;background:var(--primary);transform:translateX(-101%);transition:transform .6s var(--ease);z-index:-1}
.dk-book:hover:before{transform:none}
.dk-book i{width:36px;height:36px;border-radius:50%;background:var(--bg-2);color:var(--ink);display:grid;place-items:center;font-size:15px;transition:transform .5s var(--ease)}
.dk-book:hover i{transform:rotate(-45deg)}
.dk-book:after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);animation:shine 4.5s ease-in-out infinite 1.5s;z-index:1;pointer-events:none}
@keyframes shine{0%,70%{left:-60%}100%{left:130%}}
@media (max-width:820px){
  .dock{left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);transform:translateY(160%);gap:10px;padding:6px 6px 6px 6px}
  .dock.show{transform:none}
  .m-open .dock{transform:translateY(160%)}
  .dk-thumb{width:48px;height:48px}
  .dk-thumb img{width:30px;height:30px}
  .dk-info{flex:1;min-width:0}
  .dk-info b{font-size:16px;overflow:hidden;text-overflow:ellipsis}
  .dk-sub{font-size:11px;overflow:hidden;text-overflow:ellipsis}
  .dk-wa{width:44px;height:44px;font-size:19px}
  .dk-book{height:44px;padding:0 6px 0 16px;gap:8px;font-size:11px}
  .dk-book i{width:32px;height:32px}
  .ftr{padding-bottom:110px}
}
@media (max-width:420px){ .dk-sub{display:none} .dk-l{display:none} .dk-s{display:inline} .dk-info b{font-size:20px} }
@media (max-width:350px){ .dk-book span{display:none} .dk-book{padding:0 6px} }
@media (prefers-reduced-motion:reduce){ .dk-thumb svg,.dk-book:after{animation:none} }
