/* Jade Thread & Wax Bar — theme.css
   Built from the approved design pages (theme/*.html) by build_assets.py.
   Sections keep their design class names: .jh header · .jn hero · .jsp arch ·
   .ab about · .jpr service sections · .lpp price list · .jsv page hero ·
   .jmi mission · .jfo founder · .wcu why us · .tcs reviews · .jig instagram ·
   .jbr brands · .jbl latest posts · .jgl gallery · .jlb lightbox · .jlc studios ·
   .ap appointment · .jbg blog list · .jps blog post · .jf footer.
   Decorations: --decor-* variables (none by default) — see inc/decor.php. */

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-padding-top:88px; }
body{ margin:0; background:var(--brand-bg); overflow-x:hidden; font-family:var(--brand-sans); color:var(--brand-body); }
img{ max-width:100%; height:auto; }
.screen-reader-text, .jsp-sr, .lpp-sr{ position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip-link:focus{ position:fixed; top:10px; left:10px; z-index:10000; width:auto; height:auto; clip:auto; padding:12px 18px; background:#fff; color:var(--brand-ink); border-radius:8px; }
[data-reveal]{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
[data-reveal].is-in{ opacity:1; transform:none; }
.no-js [data-reveal]{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ [data-reveal]{ opacity:1; transform:none; transition:none; } }
:root{
  --brand-bg: #FFF6F4;
  --brand-ink: #252525;
  --brand-body: #707070;
  --brand-muted: #879296;
  --brand-accent: #F7A392;
  --brand-soft: #FDEAE6;
  --brand-line: #E2E2E2;
  --brand-star: #FFC402;
  --brand-quote: rgba(247,163,146,.55);
  --brand-ph: #F3E4DF;
  --brand-display: "Lora", Georgia, "Times New Roman", serif;
  --brand-sans: "Poppins", ui-sans-serif, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --wcu-cell: 261px;
  --wcu-gap: 65px;
  --wcu-stagger: 60px;
  --wcu-lineOp: .30;
  --tcs-half: 623px;
  --tcs-colW: 583px;
  --tcs-bigW: 335px;
  --tcs-bigH: 540px;
  --pp-bg: var(--brand-bg);
  --pp-ink: var(--brand-ink);
  --pp-accent: var(--brand-accent);
  --pp-intro: var(--brand-body);
  --pp-muted: var(--brand-muted);
  --pp-line: var(--brand-line);
  --pp-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --pp-item: 535px;
  --pp-gap: 70px;
  --jn-h: clamp(680px, 100svh, 980px);
  --jn-shade: rgba(28,19,17,.38);
  --jn-time: 7s;
  --jsp-lap: 150px;
  --jsp-ry: 190px;
  --jpr-price: #C8604B;
  --jbl-gap: 60px;
  --jbl-show: 3;
  --jbl-cat: #C9674F;
  --jbl-date: #A8A3A0;
  --jf-card: #4A3431;
  --jf-line: rgba(255,255,255,.07);
  --jf-ring: rgba(223,223,223,.18);
  --jf-script: "Ms Madi", "Brush Script MT", cursive;
}
:root{
  --img-appointment: none;
  --img-bg: none;
  --img-edge-bottom: none;
  --img-edge-top: none;
  --img-footer-bg: none;
  --img-services-bg: none;
  --lpp-bg: none;
  --lpp-bottom: none;
  --lpp-flower: none;
  --lpp-icon: none;
  --lpp-top: none;
  --decor-title: none;
}
@media (max-width:1180px){
  :root{ --wcu-cell:220px; --wcu-gap:40px; }
}
@media (max-width:640px){
  :root{ --wcu-cell:100%; }
}
@media (max-width:767px){
  :root{ --jsp-lap:70px; --jsp-ry:70px; }
}
@media (max-width:1366px){
  :root{ --jbl-gap:30px; }
}
@media (max-width:1023px){
  :root{ --jbl-show:2; }
}
@media (max-width:767px){
  :root{ --jbl-gap:16px; --jbl-show:1.15; }
}
@media (max-width:1023px){
  :root{ --jh-h:76px; --jh-h-stuck:66px; }
}

/* ═════════ Header, mega menu, offers (.jh) ═════════ */
.jh-offers{ position:relative; display:grid; grid-row:1 / span 2; grid-column:2; }
.jh-offers .jh-offer{
  grid-area:1 / 1;                                   
  opacity:0; visibility:hidden;
  transition:opacity .6s ease, visibility 0s linear .6s;
}
.jh-offers .jh-offer.is-on{ opacity:1; visibility:visible; transition:opacity .6s ease, visibility 0s; }
.jh-offers__dots{ position:absolute; right:22px; bottom:26px; z-index:2; display:flex; gap:6px; }
.jh-offers__dot{
  width:8px; height:8px; padding:0; border:0; border-radius:50%;
  background:rgba(255,255,255,.4); cursor:pointer;
  transition:background .25s ease, width .25s ease;
}
.jh-offers__dot.is-on{ width:22px; border-radius:6px; background:#fff; }
.jh-offers__dot:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
@media (prefers-reduced-motion:reduce){
.jh-offers .jh-offer, .jh-offers__dot{ transition:none; }
}
.jh-top, .jh, .jh-panel{
  --brand-bg:#FFF6F4; --brand-ink:#252525; --brand-body:#707070; --brand-muted:#879296;
  --brand-accent:#F7A392; --brand-soft:#FDEAE6; --brand-line:#EFE3E0; --brand-brown:#4A3431;
  --brand-deep:#C9674F;          
  --brand-display:"Lora", Georgia, "Times New Roman", serif;
  --brand-sans:"Poppins", ui-sans-serif, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --jh-h:92px;                   
  --jh-h-stuck:72px;             
}
.jh a:focus-visible, .jh button:focus-visible, .jh-panel a:focus-visible, .jh-panel button:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; border-radius:6px; }
.jh-top, .jh, .jh-panel{ font-family:var(--brand-sans); }
.jh-top{ background:var(--brand-brown); color:rgba(255,255,255,.85); font-size:13px; }
.jh-top__in{ max-width:1320px; margin:0 auto; padding:0 30px; height:42px; display:flex; align-items:center; gap:28px; }
.jh-top__item{ display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.jh-top__item svg{ width:15px; height:15px; fill:none; stroke:var(--brand-accent); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.jh-top__item b{ font-weight:500; color:#fff; }
.jh-top a{ color:inherit; text-decoration:none; transition:color .2s ease; }
.jh-top a:hover{ color:var(--brand-accent); }
.jh-top__social{ margin-left:auto; display:flex; gap:14px; }
.jh-top__social svg{ width:15px; height:15px; fill:currentColor; display:block; }
.jh{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:saturate(1.4) blur(10px); backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--brand-line);
  transition:box-shadow .3s ease, border-color .3s ease;
}
.jh.is-stuck{ box-shadow:0 14px 34px -22px rgba(74,52,49,.45); border-color:transparent; }
.jh__in{
  position:relative;
  max-width:1320px; margin:0 auto; padding:0 30px;
  height:var(--jh-h); display:flex; align-items:center; gap:30px;
  transition:height .3s ease;
}
.jh.is-stuck .jh__in{ height:var(--jh-h-stuck); }
.jh__logo{ flex:none; display:block; }
.jh__logo img{ display:block; width:130px; height:auto; transition:width .3s ease; }
.jh.is-stuck .jh__logo img{ width:104px; }
.jh__nav{ flex:1; display:flex; justify-content:center; }
.jh__menu{ display:flex; align-items:center; gap:clamp(18px, 2.4vw, 38px); margin:0; padding:0; list-style:none; }
.jh__link{
  position:relative; display:inline-flex; align-items:center; gap:6px;
  padding:10px 0; border:0; background:none; cursor:pointer;
  font:500 13.5px/1 var(--brand-sans); letter-spacing:.14em; text-transform:uppercase;
  color:var(--brand-ink); text-decoration:none;
  transition:color .2s ease;
}
.jh__link svg{ width:11px; height:11px; fill:none; stroke:currentColor; stroke-width:1.6; transition:transform .25s ease; }
.jh__link::after{
  content:""; position:absolute; left:50%; bottom:-6px;
  width:9px; height:9px; margin-left:-4.5px;
  background:var(--brand-accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat;
  opacity:0; transform:scale(.3) rotate(-90deg); transition:opacity .25s ease, transform .3s ease;
}
.jh__link:hover, .jh__link[aria-current="page"], .jh__link[aria-expanded="true"]{ color:var(--brand-deep); }
.jh__link:hover::after, .jh__link[aria-current="page"]::after, .jh__link[aria-expanded="true"]::after{ opacity:1; transform:none; }
.jh__link[aria-expanded="true"] svg{ transform:rotate(180deg); }
.jh__book{
  flex:none; display:inline-flex; align-items:center; gap:10px;
  padding:14px 24px; border-radius:999px;
  background:var(--brand-deep); color:#fff;            
  font:500 14px/1 var(--brand-sans); letter-spacing:.02em; text-decoration:none;
  box-shadow:0 10px 22px -12px rgba(201,103,79,.7);
  transition:background .25s ease, transform .25s ease;
}
.jh__book svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.jh__book:hover{ background:var(--brand-brown); transform:translateY(-1px); }
.jh-mega{
  position:absolute; left:30px; right:30px; top:calc(100% - 6px);
  display:grid; grid-template-columns:1fr 280px; gap:26px;
  padding:26px; border-radius:20px;
  background:#fff; box-shadow:0 30px 60px -28px rgba(74,52,49,.45);
  border:1px solid var(--brand-line);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}
.jh-mega.is-open{ opacity:1; visibility:visible; transform:none; transition:opacity .25s ease, transform .25s ease; }
.jh-mega__grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:6px; margin:0; padding:0; list-style:none; }
.jh-svc{
  display:flex; align-items:center; gap:14px;
  padding:12px 14px; border-radius:14px; text-decoration:none;
  transition:background .2s ease;
}
.jh-svc:hover{ background:var(--brand-bg); }
.jh-svc__icon{
  flex:none; width:52px; height:52px; display:grid; place-items:center;
  border-radius:50%; background:var(--brand-bg); border:1px solid var(--brand-soft);
  transition:background .25s ease, border-color .25s ease;
}
.jh-svc__icon img{ width:30px; height:30px; }
.jh-svc:hover .jh-svc__icon{ background:#fff; border-color:var(--brand-accent); }
.jh-svc__txt{ display:flex; flex-direction:column; gap:3px; }
.jh-svc__name{ font:500 17px/1.2 var(--brand-display); color:var(--brand-ink); }
.jh-svc__from{ font-size:12.5px; font-weight:500; letter-spacing:.04em; color:var(--brand-deep); }
.jh-mega__all{ grid-column:1 / 2; margin:6px 14px 0; font-size:13px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--brand-ink); text-decoration:none; display:inline-flex; align-items:center; gap:8px; }
.jh-mega__all svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.6; transition:transform .25s ease; }
.jh-mega__all:hover{ color:var(--brand-deep); }
.jh-mega__all:hover svg{ transform:translateX(4px); }
.jh-offer{
  grid-row:1 / span 2; grid-column:2;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:24px; border-radius:16px; min-height:240px;
  background:var(--brand-brown) radial-gradient(120% 90% at 100% 0%, rgba(247,163,146,.55), transparent 60%);
  color:#fff; text-decoration:none; overflow:hidden; position:relative;
}
.jh-offer__tag{ align-self:flex-start; margin-bottom:auto; padding:7px 12px; border-radius:999px; background:var(--brand-accent); font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.jh-offer__title{ margin:18px 0 6px; font:500 26px/1.15 var(--brand-display); }
.jh-offer__text{ margin:0 0 18px; font-size:14px; color:rgba(255,255,255,.85); }
.jh-offer__cta{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.jh-offer__cta svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.6; transition:transform .25s ease; }
.jh-offer:hover .jh-offer__cta svg{ transform:translateX(4px); }
.jh__mob{ display:none; margin-left:auto; gap:10px; align-items:center; }
.jh__icon{
  width:46px; height:46px; display:grid; place-items:center;
  border:1px solid var(--brand-line); border-radius:50%; background:#fff;
  color:var(--brand-ink); cursor:pointer; padding:0;
}
.jh__icon svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.jh__burger span{ display:block; width:18px; height:1.6px; background:currentColor; border-radius:2px; position:relative; }
.jh__burger span::before, .jh__burger span::after{ content:""; position:absolute; left:0; width:18px; height:1.6px; background:currentColor; border-radius:2px; }
.jh__burger span::before{ top:-6px; }
.jh__burger span::after{ top:6px; width:12px; }
.jh-call{
  position:absolute; right:74px; top:calc(100% + 6px);
  width:230px; padding:10px; border-radius:16px; background:#fff;
  box-shadow:0 24px 50px -24px rgba(74,52,49,.5); border:1px solid var(--brand-line);
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.jh-call.is-open{ opacity:1; visibility:visible; transform:none; transition:opacity .2s ease, transform .2s ease; }
.jh-call a{ display:block; padding:12px 14px; border-radius:10px; text-decoration:none; color:var(--brand-ink); }
.jh-call a:hover{ background:var(--brand-bg); }
.jh-call b{ display:block; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--brand-deep); }
.jh-call span{ font-size:16px; }
.jh-panel{
  position:fixed; inset:0; z-index:200;
  display:flex; flex-direction:column;
  background:var(--brand-bg);
  transform:translateX(100%); visibility:hidden;
  transition:transform .4s cubic-bezier(.2,.8,.2,1), visibility 0s linear .4s;
  overflow-y:auto;
}
.jh-panel.is-open{ transform:none; visibility:visible; transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.jh-panel__head{ display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--brand-line); }
.jh-panel__head img{ width:104px; height:auto; display:block; }
.jh-panel__nav{ padding:10px 24px; }
.jh-panel__list{ margin:0; padding:0; list-style:none; }
.jh-panel__list > li{ border-bottom:1px solid var(--brand-line); }
.jh-panel__list > li > a, .jh-panel__acc{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:18px 0; border:0; background:none; cursor:pointer; text-align:left;
  font:500 24px/1.2 var(--brand-display); color:var(--brand-ink); text-decoration:none;
}
.jh-panel__acc svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; transition:transform .3s ease; }
.jh-panel__acc[aria-expanded="true"]{ color:var(--brand-deep); }
.jh-panel__acc[aria-expanded="true"] svg{ transform:rotate(180deg); }
.jh-panel__sub{ display:grid; grid-template-columns:1fr 1fr; gap:4px 12px; margin:0 0 16px; padding:0; list-style:none; }
.jh-panel__sub[hidden]{ display:none; }
.jh-panel__sub a{ display:flex; align-items:center; gap:10px; padding:10px 0; font-size:14.5px; color:var(--brand-ink); text-decoration:none; }
.jh-panel__sub img{ width:28px; height:28px; padding:4px; border-radius:50%; background:#fff; border:1px solid var(--brand-soft); flex:none; }
.jh-panel__foot{ margin-top:auto; padding:22px 24px 30px; display:grid; gap:14px; }
.jh-panel__book{ display:flex; align-items:center; justify-content:center; gap:10px; padding:17px; border-radius:999px; background:var(--brand-deep); color:#fff; font-weight:500; font-size:15px; text-decoration:none; }
.jh-panel__book svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.jh-panel__phones{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.jh-panel__phones a{ padding:12px 14px; border-radius:14px; background:#fff; border:1px solid var(--brand-line); text-decoration:none; color:var(--brand-ink); font-size:14px; }
.jh-panel__phones b{ display:block; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--brand-deep); margin-bottom:2px; }
.jh-panel__meta{ display:flex; align-items:center; justify-content:space-between; font-size:13px; }
.jh-panel__social{ display:flex; gap:10px; }
.jh-panel__social a{ width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:#fff; border:1px solid var(--brand-line); color:var(--brand-ink); }
.jh-panel__social svg{ width:16px; height:16px; fill:currentColor; }
@media (max-width:1180px){
.jh__menu{ gap:18px; }
.jh__link{ font-size:12.5px; letter-spacing:.1em; }
.jh__book{ padding:13px 18px; }
}
@media (max-width:1023px){
.jh-top{ display:none; }
.jh__nav, .jh__book, .jh-mega{ display:none; }
.jh__mob{ display:flex; }
.jh__logo img{ width:108px; }
.jh.is-stuck .jh__logo img{ width:92px; }
.jh__in{ padding:0 16px; }
}
@media (prefers-reduced-motion:reduce){
.jh, .jh__in, .jh__logo img, .jh-mega, .jh-panel, .jh-call, .jh__link::after{ transition:none; }
}

/* ═════════ Hero slider (.jn) ═════════ */
.jn{
  position:relative;
  min-height:var(--jn-h);
  display:grid;
  grid-template:1fr / 1fr;
  text-align:center;
  color:#fff;
  font-family:var(--brand-sans);
  background:#4a3431;
  overflow:hidden;
  isolation:isolate;
}
.jn__slide{
  grid-area:1 / 1;
  position:relative;
  display:grid; place-items:center;
  padding:150px 20px calc(var(--jsp-lap) + 90px);
  isolation:isolate;
  opacity:0; visibility:hidden;
  transition:opacity .9s ease, visibility 0s linear .9s;
}
.jn__slide.is-active{
  opacity:1; visibility:visible;
  transition:opacity .9s ease, visibility 0s;
}
.jn__slide::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--jn-shade);
}
.jn__bg{
  position:absolute; inset:-8% 0;
  z-index:-2;
  background-color:#6d4a44;
  background-image:linear-gradient(160deg,#3f2b28 0%,#8c5c52 45%,#d9a193 80%,#f2c9bd 100%);
  background-size:cover; background-position:50% 50%;
  transform:translate3d(0, var(--py,0px), 0);   
  scale:1.08;                                    
  transition:scale calc(var(--jn-time) + 1s) ease-out;
  will-change:transform;
}
.jn__slide.is-active .jn__bg{ scale:1; }
.jn__bg.is-ph{ scale:1; transition:none; }
.jn__inner{ max-width:980px; }
.jn__title{
  margin:0 0 28px;
  font-family:var(--brand-display);
  font-size:clamp(52px, 7.4vw, 112px);
  font-weight:500; line-height:1.02;
  letter-spacing:-.02em;
}
.jn__eyebrow{
  display:inline-block;
  margin:0 0 22px;
  padding:8px 16px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:999px;
  font-size:12px; font-weight:500; line-height:1;
  letter-spacing:.18em; text-transform:uppercase;
}
.jn__w{ display:inline-block; overflow:hidden; vertical-align:bottom; padding-bottom:.06em; white-space:nowrap; }
.jn__c{
  display:inline-block;
  transform-origin:0 100%;
  transition:transform 1s cubic-bezier(.2,.75,.2,1), opacity .8s ease;
  transition-delay:var(--d,0ms);
}
.jn.js-enter .jn__c{ transform:translateY(110%) rotate(8deg); opacity:0; }
.jn.js-enter .is-shown .jn__c{ transform:none; opacity:1; }
.jn__lede{
  max-width:540px; margin:0 auto 38px;
  font-size:17px; font-weight:300; line-height:1.7;
  color:rgba(255,255,255,.9);
}
.jn__lede strong{ font-weight:500; color:#fff; }
.jn__btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:17px 34px;
  border-radius:999px;
  background:var(--brand-accent); color:#fff;
  font-size:15px; font-weight:500; line-height:1;
  text-decoration:none;
  transition:background .25s ease, color .25s ease;
}
.jn__btn svg{ width:14px; height:14px; transition:transform .25s ease; }
.jn__btn:hover{ background:#fff; color:var(--brand-ink); }
.jn__btn:hover svg{ transform:translateX(4px); }
.jn__btn:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
.jn.js-enter .jn__fade{
  opacity:0; transform:translateY(24px);
  transition:opacity .9s ease, transform .9s ease;
  transition-delay:var(--d,0ms);
}
.jn.js-enter .is-shown .jn__fade{ opacity:1; transform:none; }
.jn__arrow{
  position:absolute; z-index:2;
  top:calc(50% - var(--jsp-lap) / 2);
  transform:translateY(-50%);
  width:54px; height:54px;
  display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.4);
  border-radius:50%;
  background:rgba(255,255,255,.06);
  color:#fff;
  cursor:pointer;
  backdrop-filter:blur(4px);
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.jn__arrow--prev{ left:clamp(16px, 3vw, 44px); }
.jn__arrow--next{ right:clamp(16px, 3vw, 44px); }
.jn__arrow svg{ width:16px; height:16px; }
.jn__arrow:hover{ background:#fff; color:var(--brand-ink); border-color:#fff; }
.jn__arrow:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
.jn__dots{
  position:absolute; z-index:2;
  left:50%; bottom:calc(var(--jsp-lap) + 34px);
  transform:translateX(-50%);
  display:flex; gap:10px;
}
.jn__dot{
  position:relative;
  width:48px; height:22px;           
  padding:0; border:0; background:none;
  cursor:pointer;
}
.jn__dot::before,
.jn__dot::after{
  content:""; position:absolute; left:0; top:10px;
  width:100%; height:2px; border-radius:2px;
}
.jn__dot::before{ background:rgba(255,255,255,.35); }
.jn__dot::after{
  background:#fff;
  transform:scaleX(0); transform-origin:0 50%;
}
.jn__dot.is-active::after{ animation:jnFill var(--jn-time) linear forwards; }
.jn.is-paused .jn__dot.is-active::after{ animation-play-state:paused; }
.jn.no-auto .jn__dot.is-active::after{ animation:none; transform:none; }
.jn__dot:focus-visible{ outline:2px solid #fff; outline-offset:2px; border-radius:4px; }
.jn__title{ font-size:clamp(46px, 6.6vw, 100px); }
.jn__title--long{ font-size:clamp(38px, 5vw, 78px); }
.jn__btns{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.jn__btn--ghost{ background:transparent; border:1px solid rgba(255,255,255,.6); padding:16px 30px; }
.jn__btn--ghost:hover{ background:#fff; color:var(--brand-ink); border-color:#fff; }
.jn__nav{
  position:absolute; z-index:2;
  left:50%; bottom:calc(var(--jsp-lap) + 30px);
  transform:translateX(-50%);
  display:flex; align-items:center; gap:18px;
}
.jn__nav .jn__dots{ position:static; transform:none; gap:6px; }
.jn__nav .jn__dot{ width:34px; }
.jn__count{ margin:0; font-size:13px; letter-spacing:.14em; color:rgba(255,255,255,.7); white-space:nowrap; }
.jn__count b{ font-weight:600; color:#fff; }
@media (max-width:767px){
.jn__nav{ bottom:calc(var(--jsp-lap) + 22px); gap:12px; }
.jn__nav .jn__dot{ width:22px; }
.jn__nav .jn__dots{ gap:4px; }
.jn__btn, .jn__btn--ghost{ padding:15px 24px; font-size:14px; }
.jn__lede{ margin-bottom:30px; }
}
@media (max-width:380px){
.jn__count{ display:none; }
}
@media (max-width:767px){
.jn__slide{ padding:120px 16px calc(var(--jsp-lap) + 90px); }
.jn__lede{ font-size:16px; }
.jn__arrow{ display:none; }
.jn__dots{ bottom:calc(var(--jsp-lap) + 26px); }
}
@media (prefers-reduced-motion:reduce){
.jn__bg{ transform:none; scale:1; transition:none; }
.jn__slide{ transition:none; }
.jn.js-enter .jn__c, .jn.js-enter .jn__fade{ transform:none; opacity:1; transition:none; }
}

/* ═════════ Hero slider — service page ═════════ */
.jn--svc .jn__h1{ position:absolute; left:0; right:0; top:64px; z-index:3; margin:0; padding:0 20px; text-align:center; font:500 14px/1.4 var(--brand-sans); letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.9); pointer-events:none; }
.jn--svc .jn__title{ font-size:clamp(40px, 5.6vw, 84px); }
.jn--svc .jn__price{ margin:-6px 0 22px; font:500 clamp(22px, 2.2vw, 30px)/1.2 var(--brand-sans); color:#fff; }
.jn--svc .jn__price s{ margin-right:10px; font-size:.72em; font-weight:300; opacity:.65; }
.jn--svc.jn--many .jn__nav .jn__dots{ gap:5px; }
.jn--svc.jn--many .jn__nav .jn__dot{ width:20px; }
@media (max-width:767px){
  .jn--svc .jn__slide{ padding:120px 16px 90px; }
  .jn--svc .jn__dots{ bottom:26px; }
  .jn--svc .jn__h1{ top:44px; font-size:12px; }
  .jn--svc.jn--many .jn__nav .jn__dots{ gap:4px; }
  .jn--svc.jn--many .jn__nav .jn__dot{ width:9px; }
}
.jn--svc{ --jsp-lap:0px; }

/* ═════════ Page hero + services carousel (.jsv) ═════════ */
.jsv{
  position:relative;
  background:var(--brand-bg);
  padding:110px 0 120px;
  font-family:var(--brand-sans);
  text-align:center;
  overflow:hidden;
  isolation:isolate;
}
.jsv::before{                                  
  content:""; position:absolute; z-index:-1;
  left:-10%; right:-10%; top:-40%; height:620px;
  background:radial-gradient(50% 60% at 50% 45%, rgba(247,163,146,.30), transparent 72%);
  pointer-events:none;
}
.jsv__wrap{ max-width:1180px; margin:0 auto; padding:0 30px; }
.jsv__eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  margin:0 0 18px;
  font-size:14px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--brand-ink);
}
.jsv__eyebrow svg{ width:14px; height:14px; fill:var(--brand-accent); }
.jsv__title{
  margin:0 0 22px;
  font-family:var(--brand-display);
  font-size:clamp(48px, 6.4vw, 96px);
  font-weight:500; line-height:1.05;
  color:var(--brand-ink);
}
.jsv__lede{
  max-width:640px; margin:0 auto 56px;
  font-size:17px; font-weight:300; line-height:1.8;
  color:var(--brand-body);
}
.jsv__bgs{ position:absolute; inset:0; z-index:-1; overflow:hidden; background:#4a3431; }
.jsv__bg{
  position:absolute; inset:0;
  background:#6d4a44 50% 50% / cover no-repeat;
  opacity:0; scale:1.08;
  transition:opacity 1.2s ease, scale 7s ease-out;          
}
.jsv__bg.is-on{ opacity:1; scale:1; }
.jsv__bg.is-ph{ scale:1; transition:opacity 1.2s ease; }
.jsv__bgs::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(28,19,17,.55) 0%, rgba(28,19,17,.68) 100%);
}
.jsv--photo::before{ display:none; }
.jsv--photo .jsv__eyebrow,
.jsv--photo .jsv__title{ color:#fff; }
.jsv--photo .jsv__lede{ color:rgba(255,255,255,.88); }
.jsv--photo .jsv__bar{ background:rgba(255,255,255,.28); }
.jsv--photo .jsv__bar i{ background:#fff; }
.jsv--photo .jsv__arrow{ background:transparent; border-color:rgba(255,255,255,.55); color:#fff; }
.jsv--photo .jsv__arrow:hover:not(:disabled){ background:#fff; border-color:#fff; color:var(--brand-ink); }
.jsv--photo .jsv__arrow:focus-visible{ outline-color:#fff; }
@media (prefers-reduced-motion:reduce){
.jsv__bg{ transition:none; scale:1; }
}
.jsv__car{ position:relative; text-align:left; }
.jsv__track{
  list-style:none; margin:0; padding:4px 2px 10px;
  display:grid; grid-auto-flow:column;
  grid-auto-columns:calc((100% - 2 * 16px) / 3);      
  gap:16px;
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
}
.jsv__track::-webkit-scrollbar{ display:none; }
.jsv__item{ scroll-snap-align:start; }
.jsv__link{
  display:flex; align-items:center; gap:16px;
  height:100%;
  padding:18px 18px 18px 20px;
  border:1px solid #EFE3E0; border-radius:18px;
  background:#fff;
  color:var(--brand-ink); text-decoration:none;
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.jsv__link:hover{ border-color:var(--brand-accent); transform:translateY(-3px); box-shadow:0 14px 34px rgba(74,52,49,.08); }
.jsv__link:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:-2px; }
.jsv__icon{
  flex:0 0 52px; height:52px;
  display:grid; place-items:center;
  border-radius:50%;
  background:var(--brand-soft);
}
.jsv__icon img{ width:30px; height:30px; object-fit:contain; }
.jsv__text{ min-width:0; }
.jsv__name{
  display:block;
  font-family:var(--brand-display);
  font-size:19px; font-weight:500; line-height:1.25;
}
.jsv__from{ display:block; margin-top:3px; font-size:13px; color:var(--brand-muted); }
.jsv__go{
  flex:0 0 34px; height:34px; margin-left:auto;
  display:grid; place-items:center;
  border:1px solid #EFE3E0; border-radius:50%;
  color:var(--brand-ink);
  transition:background .25s ease, border-color .25s ease, color .25s ease;
}
.jsv__go svg{ width:12px; height:12px; }
.jsv__link:hover .jsv__go{ background:var(--brand-ink); border-color:var(--brand-ink); color:#fff; }
.jsv__ctrl{ display:flex; align-items:center; gap:12px; margin-top:28px; }
.jsv__bar{ position:relative; flex:1; height:2px; margin-right:12px; border-radius:2px; background:#EADAD5; }
.jsv__bar i{
  position:absolute; top:0; bottom:0; left:0; width:30%;
  border-radius:2px; background:var(--brand-ink);
  transition:left .12s linear, width .2s ease;
}
.jsv__arrow{
  flex:0 0 52px; height:52px;
  display:grid; place-items:center;
  border:1px solid #E3D3CE; border-radius:50%;
  background:#fff; color:var(--brand-ink);
  cursor:pointer;
  transition:background .25s ease, color .25s ease, border-color .25s ease, opacity .25s ease;
}
.jsv__arrow svg{ width:16px; height:16px; }
.jsv__arrow:hover:not(:disabled){ background:var(--brand-ink); border-color:var(--brand-ink); color:#fff; }
.jsv__arrow:disabled{ opacity:.35; cursor:default; }
.jsv__arrow:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; }
@media (max-width:1024px){
.jsv__track{ grid-auto-columns:calc((100% - 16px) / 2.2); }
}
@media (max-width:640px){
.jsv{ padding:70px 0 80px; }
.jsv__wrap{ padding:0 16px; }
.jsv__lede{ font-size:16px; margin-bottom:40px; }
.jsv__track{ grid-auto-columns:86%; gap:12px; }
.jsv__name{ font-size:18px; }
.jsv__arrow{ flex-basis:44px; height:44px; }
}
@media (prefers-reduced-motion:reduce){
.jsv__link, .jsv__go, .jsv__arrow, .jsv__bar i{ transition:none; }
.jsv__link:hover{ transform:none; }
}
.jsv--page{ padding:150px 0 160px; }
.jsv--page .jsv__lede{ margin-bottom:0; }
@media (max-width:640px){
.jsv--page{ padding:100px 0 110px; }
}

/* ═════════ Arch spotlight (.jsp) ═════════ */
.jsp-sr{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.jsp{
  position:relative; z-index:1;
  margin-top:calc(var(--jsp-lap) * -1);
  padding:120px 0 120px;
  background:var(--brand-bg);
  border-top-left-radius:50% var(--ry, var(--jsp-ry));
  border-top-right-radius:50% var(--ry, var(--jsp-ry));
  text-align:center;
  font-family:var(--brand-sans);
  overflow:hidden;              
  isolation:isolate;
}
.jsp::before,
.jsp::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; }
.jsp::before{ background:var(--img-bg) 50% 50% / cover no-repeat; }
.jsp::after{
  background:linear-gradient(180deg,
    rgba(255,246,244,.97) 0%,
    rgba(255,246,244,.86) 35%,
    rgba(255,246,244,.86) 70%,
    rgba(255,246,244,1) 100%);
}
.jsp__wrap{ position:relative; max-width:1320px; margin:0 auto; padding:0 30px; }
.jsp__pic{
  position:absolute; margin:0;
  border-radius:16px;
  overflow:hidden;
  background:var(--brand-ph) 50% 50% / cover;
}
.jsp__img{
  position:absolute; inset:0;
  background:50% 50% / cover no-repeat;
  will-change:transform;
}
.jsp__pic--1{ left:2%;  top:400px; width:clamp(160px,15vw,215px); aspect-ratio:7/5;
              background-image:linear-gradient(135deg,#f6d9d1,#e8ab9c); }
.jsp__pic--2{ left:4%;  top:790px; width:clamp(150px,13vw,190px); aspect-ratio:4/3;
              background-image:linear-gradient(120deg,#ecc4b8,#f8e3dd); }
.jsp__pic--3{ right:1%; top:170px; width:clamp(160px,15vw,220px); aspect-ratio:7/5;
              background-image:linear-gradient(160deg,#f3e4df,#dca193); }
.jsp__pic--4{ right:2%; top:930px; width:clamp(150px,14vw,200px); aspect-ratio:4/3;
              background-image:linear-gradient(140deg,#f7a392,#f9d5cc); }
.jsp__tag{
  display:inline-flex; align-items:center; gap:14px;
  margin:0 0 34px;
  font-size:13px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--brand-ink);
}
.jsp__ring{ position:relative; width:74px; height:74px; flex:0 0 74px; }
.jsp__ring svg{ width:100%; height:100%; animation:jspSpin 16s linear infinite; }
.jsp__ring text{ font-size:10.5px; letter-spacing:.08em; fill:var(--brand-accent); font-family:var(--brand-sans); }
.jsp__ring i{
  position:absolute; inset:0; margin:auto;
  width:16px; height:16px;
  background:var(--brand-accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.jsp__arch{
  width:min(580px, 100%);
  aspect-ratio:58/54;
  margin:0 auto 60px;
  
  border-radius:50% 50% 16px 16px / 53.7% 53.7% 16px 16px;
  overflow:hidden;
  background:var(--brand-ph);
}
.jsp__arch > div{
  width:100%; height:100%;
  background:linear-gradient(170deg,#f3d6ce 0%,#e5a899 60%,#d48d7c 100%) 50% 50% / cover;
  will-change:transform;
}
.jsp-wrd{ display:inline-block; white-space:nowrap; }
.jsp-ch{ display:inline-block; transform-origin:0 100%; will-change:transform, opacity, filter; }
.jsp-wd{ transition:opacity .2s linear; }
.jsp__title{
  max-width:760px; margin:0 auto 26px;
  font-family:var(--brand-display);
  font-size:clamp(38px, 4.4vw, 64px);
  font-weight:500; line-height:1.12;
  color:var(--brand-ink);
}
.jsp__text{
  max-width:620px; margin:0 auto 40px;
  font-size:17px; font-weight:300; line-height:1.8;
  color:var(--brand-body);
}
.jsp__btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:17px 34px;
  border-radius:999px;
  background:var(--brand-ink); color:#fff;
  font-size:15px; font-weight:500; line-height:1;
  text-decoration:none;
  transition:background .25s ease;
}
.jsp__btn svg{ width:14px; height:14px; transition:transform .25s ease; }
.jsp__btn:hover{ background:var(--brand-accent); }
.jsp__btn:hover svg{ transform:translateX(4px); }
.jsp__btn:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; }
@media (max-width:1100px){
.jsp__pic--1{ top:330px; }
.jsp__pic--3{ top:140px; }
.jsp__pic--2{ top:680px; }
.jsp__pic--4{ top:800px; }
.jsp__arch{ width:min(460px,100%); }
}
@media (max-width:900px){
.jsp__pic{ display:none; }
}
@media (max-width:767px){
.jsp{ padding:80px 0; }
.jsp__wrap{ padding:0 16px; }
.jsp__arch{ margin-bottom:44px; }
.jsp__text{ font-size:16px; }
}
@media (prefers-reduced-motion:reduce){
.jsp__ring svg{ animation:none; }
}

/* ═════════ About (.ab) ═════════ */
.ab{
  position:relative;
  background:transparent;
  padding:50px 0 120px;
  font-family:var(--brand-sans);
  overflow:hidden;
}
.ab__stones{
  position:absolute;
  right:1%; top:0;
  width:205px; height:263px;
  pointer-events:none;
  animation:movebounce 3s linear infinite;
}
.ab__wrap{
  position:relative; z-index:1;
  max-width:1218px;            
  margin:0 auto;
  padding:0 24px;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:start;
}
.ab__media{
  position:relative;
  width:558px; height:558px;
  margin-left:auto;            
  background:var(--brand-soft);
  border-radius:50%;
}
.ab__photo{
  position:absolute;
  left:32px; top:0;            
  width:526px; height:526px;
  object-fit:cover;
  border-radius:50%;
  background:var(--brand-ph);
}
.ab__dots1{ position:absolute; left:-5px;  top:19px;  width:194px; height:125px; pointer-events:none; }
.ab__dots2{ position:absolute; left:477px; top:381px; width:133px; height:125px; pointer-events:none; }
.ab__leaves{
  position:absolute; left:13px; top:184px;
  width:201px; height:360px;
  pointer-events:none;
  animation:movebounce2 3s linear infinite;
}
.ab__counter{
  position:absolute;
  left:405px; top:294px;
  width:196px; height:188px;
  display:grid; place-items:center;
  text-align:center;
}
.ab__blob{
  position:absolute; inset:0;
  width:100%; height:100%;
  fill:#fff;
  filter:drop-shadow(0 8px 20px rgba(0,0,0,.06));
}
.ab__counterInner{ position:relative; }
.ab__num{
  font-family:var(--pp-display);
  font-size:60px; line-height:48px; font-weight:900;
  color:var(--brand-accent);
  margin:0 0 19px;
}
.ab__numLabel{
  font-family:var(--brand-sans);
  font-size:14px; line-height:11.2px; font-weight:600;
  color:var(--brand-ink);
  margin:0;
}
.ab__content{
  position:relative;
  padding:63px 0 0 112px;      
  max-width:555px;
}
.ab__label{
  position:absolute;
  left:56px; top:13px;
  margin:0;
  font-family:var(--pp-display);
  font-size:30px; line-height:26px; font-weight:900;
  color:#E6E6E6;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  white-space:nowrap;
}
.ab__title{
  position:relative;
  font-family:var(--pp-display);
  font-size:48px; line-height:58px; font-weight:700;
  color:var(--brand-ink);
  margin:0 0 22px;
}
.ab__title span{ font-weight:400; color:var(--brand-accent); }
.ab__title::after{
  content:"";
  position:absolute;
  top:58px; right:200px;
  width:90px; height:67px;
  background:var(--decor-title) no-repeat center/contain;
  pointer-events:none;
}
.ab__lead{
  font-family:var(--pp-display);
  font-size:16px; line-height:26px; font-weight:700;
  font-style:italic;
  color:var(--brand-ink);
  margin:0 0 16px;
}
.ab__text + .ab__text{ margin-top:-16px; }
.ab__text{
  font-family:var(--brand-sans);
  font-size:14px; line-height:26px; font-weight:400;
  color:var(--brand-body);
  margin:0 0 31px;
}
.ab__btn{
  position:relative;
  display:inline-block;
  font-family:var(--pp-display);
  font-size:14px; line-height:50px; font-weight:500;
  color:var(--brand-ink);
  background:#fff;
  border-radius:40px;
  padding:0 29px 0 53px;
  text-decoration:none;
  box-shadow:-2px 4px 7px 0 rgba(226,225,225,.79);
  transition:box-shadow .25s ease, transform .25s ease;
}
.ab__btn:hover{ box-shadow:-2px 6px 14px 0 rgba(226,225,225,1); transform:translateY(-2px); }
.ab__btn svg{
  position:absolute;
  left:7px; top:7.5px;
  width:35px; height:35px;
  padding:9px;
  background:var(--brand-accent);
  border-radius:50%;
  fill:none; stroke:#fff; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round;
  box-sizing:border-box;
}
@media (max-width:1180px){
.ab__media, .ab__media[data-reveal], .ab__media[data-reveal].is-in{ transform:scale(.82); transform-origin:top right; }
.ab__content{ padding-left:86px; }
.ab__title{ font-size:38px; line-height:48px; }
.ab__title::after{ right:120px; }
.ab__stones{ width:150px; height:192px; }
}
@media (max-width:960px){
.ab__wrap{ grid-template-columns:1fr; gap:60px; }
.ab__media, .ab__media[data-reveal], .ab__media[data-reveal].is-in{ transform:none; margin:0 auto; }
.ab__stones{ display:none; }
}
@media (max-width:640px){
.ab{ padding:40px 0 70px; }
.ab__wrap{ grid-template-columns:minmax(0,1fr); }
.ab__media, .ab__media[data-reveal], .ab__media[data-reveal].is-in{
    position:relative; left:50%; margin:0;         
    transform:translateX(-50%) scale(.6); transform-origin:top center;
    height:335px; margin-bottom:10px;
  }
.ab__content{ padding:0; }
.ab__label{ display:none; }
.ab__title{ font-size:30px; line-height:40px; }
.ab__title::after{ display:none; }
}
@media (prefers-reduced-motion:reduce){
.ab__stones,.ab__leaves{ animation:none; }
}

/* ═════════ Service sections (.jpr) ═════════ */
.jpr{
  background:var(--brand-bg);
  padding:120px 0;
  font-family:var(--brand-sans);
  overflow:hidden;
}
.jpr__wrap{
  max-width:1320px; margin:0 auto; padding:0 30px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(40px, 6vw, 90px);
  align-items:center;
}
.jpr__media{
  position:relative;
  max-width:670px;
  padding-right:clamp(90px, 12vw, 170px);
  padding-bottom:clamp(70px, 9vw, 130px);
}
.jpr__big,
.jpr__small{
  position:relative; margin:0;
  overflow:hidden;
  background:var(--brand-ph);
}
.jpr__big{
  width:100%;
  aspect-ratio:50/58;
  border-radius:16px;
  border-top-left-radius:48% 40%;        
}
.jpr__small{
  position:absolute; right:0; bottom:0;
  width:47%;
  aspect-ratio:315/450;
  border-radius:16px;
  box-shadow:0 20px 50px rgba(37,37,37,.12);
}
.jpr__img{
  position:absolute; inset:0;
  background:50% 50% / cover no-repeat;
  will-change:transform;
}
.jpr__label{
  display:inline-flex; align-items:center; gap:10px;
  margin:0 0 20px;
  font-size:14px; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--brand-ink);
}
.jpr__label svg{ width:14px; height:14px; fill:var(--brand-accent); }
.jpr__title{
  margin:0 0 46px;
  font-family:var(--brand-display);
  font-size:clamp(40px, 4.6vw, 68px);
  font-weight:500; line-height:1.1;
  color:var(--brand-ink);
}
.jpr__list{ list-style:none; margin:0 0 44px; padding:0; }
.jpr__item + .jpr__item{ margin-top:26px; }
.jpr__head{
  display:flex; align-items:baseline; gap:18px;
}
.jpr__name{
  margin:0;
  font-family:var(--brand-display);
  font-size:clamp(20px, 1.8vw, 25px);
  font-weight:500; line-height:1.25;
  color:var(--brand-ink);
}
.jpr__sep{
  flex:1 1 auto; min-width:24px;
  border-bottom:1px dashed #C9BDB9;
  transform-origin:0 50%;
  transform:scaleX(var(--line,1));
}
.jpr__price{
  font-size:clamp(19px, 1.6vw, 22px);
  font-weight:500;
  color:var(--jpr-price);
  white-space:nowrap;
}
.jpr__desc{
  margin:6px 0 0;
  font-size:15px; font-weight:300; line-height:1.6;
  color:var(--brand-body);
}
.jpr__btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:17px 34px;
  border-radius:999px;
  background:var(--brand-ink); color:#fff;
  font-size:15px; font-weight:500; line-height:1;
  text-decoration:none;
  transition:background .25s ease;
}
.jpr__btn svg{ width:14px; height:14px; transition:transform .25s ease; }
.jpr__btn:hover{ background:var(--brand-accent); }
.jpr__btn:hover svg{ transform:translateX(4px); }
.jpr__btn:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; }
@media (max-width:1024px){
.jpr__wrap{ grid-template-columns:1fr; }
.jpr__media{ margin:0 auto; width:100%; max-width:600px; }
}
@media (max-width:767px){
.jpr{ padding:80px 0; }
.jpr__wrap{ padding:0 16px; }
.jpr__media{ padding-right:70px; padding-bottom:60px; }
.jpr__title{ margin-bottom:34px; }
.jpr__head{ gap:12px; }
}
.jpr{ overflow:clip; }
.jpr--alt{ background:#FFFFFF; }
.jpr:not(.jpr--alt){
  background:var(--brand-bg) var(--img-services-bg) no-repeat 100% 100% / auto;
  background-attachment:fixed;     
}
@media (hover:none), (max-width:1024px){
.jpr:not(.jpr--alt){ background-attachment:scroll; }
}
.jpr:not(.jpr--alt){ position:relative; }
.jpr:not(.jpr--alt) > .jpr__wrap{ position:relative; z-index:1; }
.jpr--alt + .jpr:not(.jpr--alt)::before,
.jpr:not(.jpr--alt):has(+ .jpr--alt)::after{
  content:""; position:absolute; left:0; right:0; z-index:0;
  pointer-events:none;
  background-repeat:no-repeat;
  background-size:max(100%, 1920px) 100%;
}
.jpr--alt + .jpr:not(.jpr--alt)::before{
  top:-1px; height:77px;
  background-image:var(--img-edge-top);
  background-position:50% 0;
}
.jpr:not(.jpr--alt):has(+ .jpr--alt)::after{
  bottom:-1px; height:75px;
  background-image:var(--img-edge-bottom);
  background-position:50% 100%;
}
.jpr__wrap{ align-items:start; }
.jpr__media{ position:sticky; top:max(40px, calc(50vh - 380px)); }
.jpr__content{ align-self:center; }
.jpr--flip .jpr__media{
  order:2; margin-left:auto; width:100%;   
  padding-right:0; padding-left:clamp(90px, 12vw, 170px);
}
.jpr--flip .jpr__big{ border-radius:16px; border-top-right-radius:48% 40%; }
.jpr--flip .jpr__small{ right:auto; left:0; }
.jpr__title{ margin-bottom:32px; }
.jpr__intro{
  max-width:560px;
  margin:-12px 0 34px;
  font-size:16px; font-weight:300; line-height:1.8;
  color:var(--brand-body);
}
.jpr__menu{ margin-bottom:44px; }
.jpr__menu .jpr__list{ margin:0; }
.jpr__group{
  margin:36px 0 16px;
  font-size:12px; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--jpr-price);
}
.jpr__menu > .jpr__group:first-child,
.jpr__promo + .jpr__group{ margin-top:0; }
.jpr__promo{
  display:inline-block;
  margin:0 0 24px; padding:8px 16px;
  border-radius:999px;
  background:var(--brand-soft);
  font-size:13px; font-weight:500;
  color:var(--jpr-price);
}
.jpr__item + .jpr__item{ margin-top:18px; }
.jpr__name{ font-size:clamp(18px, 1.5vw, 21px); }
.jpr__price{ font-size:clamp(17px, 1.4vw, 20px); }
.jpr__desc{ margin-top:3px; font-size:14px; }
.jpr__bullets{ list-style:none; margin:-14px 0 30px; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.jpr__bullets li{ padding:8px 16px; border-radius:999px; background:#fff; border:1px solid var(--brand-soft); font-size:14px; font-weight:500; color:var(--brand-ink); }
.jpr__intro + .jpr__intro, .jpr__bullets + .jpr__intro{ margin-top:-14px; }
.jpr__was{
  margin-right:6px;
  font-size:.8em; font-weight:300;
  color:var(--brand-muted);
}
@media (max-width:1024px){
.jpr__media{ position:relative; top:auto; }
.jpr--flip .jpr__media{ order:0; margin:0 auto; padding-left:0; padding-right:clamp(90px, 12vw, 170px); }
.jpr--flip .jpr__big{ border-top-right-radius:16px; border-top-left-radius:48% 40%; }
.jpr--flip .jpr__small{ left:auto; right:0; }
}
@media (max-width:767px){
.jpr--flip .jpr__media{ padding-right:70px; }
}
@media (max-width:767px){
.jpr:not(.jpr--alt){ background-size:1100px auto; }
}
@media (min-width:1025px){
.jpr__media{ top:max(100px, calc(50vh - 340px)); }
}
.jpr:not(.jpr--alt):has(+ .jig)::after{
  content:""; position:absolute; left:0; right:0; z-index:0; pointer-events:none;
  bottom:-1px; height:75px;
  background:var(--img-edge-bottom) 50% 100% / max(100%, 1920px) 100% no-repeat;
}

/* ═════════ Content sections — service page ═════════ */
.jpr--content{ --brand-display:"Lora", Georgia, "Times New Roman", serif; }
.jpr--content .jpr__label svg{ width:16px; height:16px; }
.jpr--content .jpr__title{ font-size:clamp(34px, 3.7vw, 54px); }
.jpr--content .jpr__intro + .jpr__intro{ margin-top:-14px; }
.jpr--content .jpr__bullets{ list-style:none; margin:-14px 0 34px; padding:0; }
.jpr--content .jpr__bullets li{ position:relative; padding-left:28px; margin:0 0 12px; font-size:16px; font-weight:300; line-height:1.75; color:var(--brand-body); }
.jpr--content .jpr__bullets li::before{ content:""; position:absolute; left:0; top:.55em; width:12px; height:12px; background:var(--brand-accent); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat; }
.jpr--content:not(.jpr--alt) + .lpp::before{ display:none; }
@media (max-width:767px){
  .jpr--content .jpr__bullets li{ font-size:15px; }
}

/* ═════════ Price list (.lpp) ═════════ */
.lpp-sr{ position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.lpp{
  position:relative;
  padding:120px 0;
  background:var(--brand-bg) var(--lpp-bg) no-repeat 100% 100%;
  color:var(--brand-body);
  font-size:14px; line-height:26px;
  overflow:hidden;
}
.lpp::before,
.lpp::after{
  content:""; position:absolute; left:0; right:0; z-index:1; pointer-events:none;
  background-repeat:no-repeat; background-size:max(100%, 1920px) 100%;
}
.lpp::before{ top:0; height:76px; background-image:var(--lpp-top); background-position:50% 0; }
.lpp::after{ bottom:0; height:74px; background-image:var(--lpp-bottom); background-position:50% 100%; }
.lpp__flower{
  position:absolute; right:0; top:-172px; z-index:0;
  width:372px; height:364px;
  background:var(--lpp-flower) center/contain no-repeat;
  animation:lppBounce 3s linear infinite;
  pointer-events:none;
}
.lpp__wrap{ position:relative; z-index:2; max-width:1200px; margin:0 auto; padding:0 15px; }
.lpp__head{ position:relative; max-width:1000px; margin:0 auto 54px; padding:38px 0 0; text-align:center; }
.lpp__head::before{            
  content:""; position:absolute; left:0; right:0; top:0; margin:0 auto;   
  width:100px; height:102px; opacity:.1;
  background:var(--lpp-icon) center/contain no-repeat;
  animation:lppBounce2 3s linear infinite;
}
.lpp__eyebrow{
  position:relative; margin:0 0 9px;
  font-family:var(--brand-sans);
  font-size:16px; font-weight:300; line-height:.8; letter-spacing:3.2px;
  color:var(--brand-accent);
}
.lpp__title{
  position:relative; margin:0;
  font-family:var(--brand-display);
  font-size:60px; font-weight:700; line-height:75px;
  color:var(--brand-ink);
}
.lpp__title span{ font-weight:400; color:var(--brand-accent); white-space:nowrap; }
.lpp__cols{ display:grid; grid-template-columns:1fr 1fr; column-gap:40px; }
.lpp__list{ margin:0; padding:0; list-style:none; }
.lpp__item{ position:relative; min-height:74px; margin:0 0 42px; padding-left:90px; }
.lpp__img{
  position:absolute; left:0; top:0;
  width:76px; height:74px; border-radius:10px;
  object-fit:cover; background:var(--brand-ph);
}
.lpp__row{
  display:flex; align-items:baseline;
  font-family:var(--brand-display);
  font-size:24px; line-height:40px; color:var(--brand-ink);
  margin-bottom:-8px;
}
.lpp__name{ font-size:18px; transition:color .25s ease; }
.lpp__item:hover .lpp__name{ color:var(--brand-accent); }
.lpp__line{ flex:1; min-width:20px; margin:0 7px 0 20px; border-bottom:1px solid var(--brand-line); align-self:center; transform:translateY(-4px); }
.lpp__was{
  margin:2px 14px 0 0;
  font-family:var(--brand-sans); font-size:14px; line-height:40px;
  color:var(--brand-muted);
}
.lpp__now{ white-space:nowrap; }
.lpp__desc{ margin:0; color:var(--brand-muted); }
.lpp__cta{ margin:6px 0 0; text-align:center; }
.lpp__btn{
  position:relative; display:inline-block;
  padding:0 29px 0 53px;
  border-radius:40px; background:#fff;
  font-family:var(--brand-display); font-size:14px; font-weight:500; line-height:50px;
  color:var(--brand-ink); text-decoration:none;
  box-shadow:-2px 4px 7px 0 rgba(226,225,225,.79);
  transition:box-shadow .25s ease, transform .25s ease;
}
.lpp__btn:hover{ box-shadow:-2px 6px 14px 0 rgba(226,225,225,1); transform:translateY(-2px); }
.lpp__btn svg{
  position:absolute; left:7px; top:7.5px;
  width:35px; height:35px; padding:9px;
  border-radius:50%; background:var(--brand-accent);
  fill:none; stroke:#fff; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
.lpp__btn:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; }
@media (max-width:1360px){
.lpp__title{ font-size:50px; line-height:70px; }
}
@media (max-width:1023px){
.lpp__title{ font-size:50px; line-height:65px; }
}
@media (max-width:1100px){
.lpp__cols{ grid-template-columns:1fr; max-width:760px; }
.lpp__flower{ width:260px; height:254px; top:-120px; }
}
@media (max-width:767px){
.lpp{ padding:90px 0; background-size:1100px auto; }
.lpp__wrap{ padding:0 16px; }
.lpp__head{ margin-bottom:40px; }
.lpp__title{ font-size:32px; line-height:45px; }
.lpp__flower{ width:180px; height:176px; top:-70px; opacity:.8; }
.lpp__cols{ grid-template-columns:1fr; }
.lpp__item{ padding-left:72px; min-height:58px; margin-bottom:30px; }
.lpp__img{ width:60px; height:58px; }
.lpp__row{ flex-wrap:wrap; line-height:30px; margin-bottom:2px; }
.lpp__name{ flex:1 1 100%; font-size:17px; line-height:26px; }
.lpp__line{ margin-left:0; }
.lpp__was{ line-height:30px; }
.lpp__now{ font-size:20px; }
}
@media (prefers-reduced-motion:reduce){
.lpp__flower, .lpp__head::before{ animation:none; }
}
.lpp--alt{ background:#fff; }
.lpp__group{
  margin:10px 0 30px;
  font-family:var(--brand-sans);
  font-size:14px; font-weight:500; line-height:1.4;
  letter-spacing:.2em; text-transform:uppercase; text-align:center;
  color:var(--brand-deep, #C9674F);
}
.lpp__cols + .lpp__group{ margin-top:12px; }
.lpp__cta{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.lpp__btn--ghost{ padding:0 29px; background:transparent; box-shadow:none; border:1px solid #E3D3CE; line-height:48px; }
.lpp__btn--ghost:hover{ background:#fff; box-shadow:-2px 6px 14px 0 rgba(226,225,225,1); }
.lpp__title{ scroll-margin-top:110px; }

/* ═════════ Mission cards (.jmi) ═════════ */
.jmi{ background:#fff; padding:110px 0; font-family:var(--brand-sans); text-align:center; }
.jmi__wrap{ max-width:1180px; margin:0 auto; padding:0 30px; }
.jmi__title{
  margin:0 0 50px;
  font-family:var(--brand-display);
  font-size:clamp(38px, 4.4vw, 60px); font-weight:500; line-height:1.1;
  color:var(--brand-ink);
}
.jmi__grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:20px; }
.jmi__card{
  padding:36px 24px 34px;
  border:1px solid #EFE3E0; border-radius:20px;
  background:#fff;
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.jmi__card:hover{ border-color:var(--brand-accent); transform:translateY(-4px); box-shadow:0 16px 36px rgba(74,52,49,.08); }
.jmi__icon{
  width:66px; height:66px; margin:0 auto 20px;
  display:grid; place-items:center;
  border-radius:50%;
  background:var(--brand-soft, #FDEAE6);
  color:var(--brand-deep, #C9674F);
}
.jmi__icon svg{ width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.jmi__text{
  margin:0;
  font-family:var(--brand-display);
  font-size:20px; font-weight:500; line-height:1.35;
  color:var(--brand-ink);
}
@media (max-width:1024px){
.jmi__grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:640px){
.jmi, .jfo{ padding:80px 0; }
.jmi__wrap, .jfo__wrap{ padding:0 16px; }
.jmi__title{ margin-bottom:34px; }
.jmi__grid{ grid-template-columns:1fr; gap:14px; }
.jmi__card{ padding:28px 22px; }
}
@media (prefers-reduced-motion:reduce){
.jmi__card{ transition:none; }
.jmi__card:hover{ transform:none; }
}

/* ═════════ Founder (.jfo) ═════════ */
.jfo{ background:var(--brand-bg); padding:120px 0; font-family:var(--brand-sans); overflow:hidden; }
.jfo__wrap{
  max-width:1180px; margin:0 auto; padding:0 30px;
  display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 6fr);
  gap:clamp(40px, 6vw, 90px); align-items:center;
}
.jfo__media{ position:relative; max-width:460px; width:100%; }
.jfo__media::before{                                   
  content:""; position:absolute; inset:26px -26px -26px 26px;
  border:1px solid var(--brand-accent);
  border-radius:50% 50% 24px 24px / 40% 40% 24px 24px;
  pointer-events:none;
}
.jfo__photo{
  position:relative;
  aspect-ratio:4 / 5;
  border-radius:50% 50% 24px 24px / 40% 40% 24px 24px;  
  background:var(--brand-ph) 50% 30% / cover no-repeat;
  overflow:hidden;
}
.jfo__eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  margin:0 0 16px;
  font-size:14px; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--brand-ink);
}
.jfo__eyebrow svg{ width:14px; height:14px; fill:var(--brand-accent); }
.jfo__title{
  margin:0 0 16px;
  font-family:var(--brand-display);
  font-size:clamp(38px, 4.4vw, 60px); font-weight:500; line-height:1.1;
  color:var(--brand-ink);
}
.jfo__lead{
  margin:0 0 10px;
  font-family:var(--brand-display);
  font-size:clamp(21px, 2vw, 27px); line-height:1.35;
  color:var(--brand-ink);
}
.jfo__role{
  margin:0 0 22px;
  font-size:13px; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
  color:var(--brand-deep, #C9674F);
}
.jfo__text{ margin:0 0 30px; font-size:16px; font-weight:300; line-height:1.85; color:var(--brand-body); }
.jfo__quote{
  margin:0; padding:26px 30px 22px 32px;
  border-left:3px solid var(--brand-accent); border-radius:0 18px 18px 0;
  background:#fff;
}
.jfo__quote p{
  margin:0 0 8px;
  font-family:var(--brand-display);
  font-size:clamp(19px, 1.7vw, 23px); font-style:italic; line-height:1.5;
  color:var(--brand-ink);
}
.jfo__sign{ font-family:"Ms Madi", cursive; font-size:46px; line-height:1; color:var(--brand-deep, #C9674F); }
@media (max-width:1024px){
.jfo__wrap{ grid-template-columns:1fr; }
.jfo__media{ margin:0 auto 20px; max-width:420px; }
}
@media (max-width:640px){
.jmi, .jfo{ padding:80px 0; }
.jmi__wrap, .jfo__wrap{ padding:0 16px; }
.jfo__media{ max-width:300px; }
.jfo__media::before{ inset:16px -16px -16px 16px; }
.jfo__quote{ padding:22px 22px 18px 24px; }
}

/* ═════════ What makes us different (.wcu) ═════════ */
.wcu{
  position:relative;
  background:var(--brand-bg);
  padding:80px 0;
  font-family:var(--brand-sans);
  overflow:hidden;
  isolation:isolate;
}
.wcu__squiggle{
  position:absolute; inset:0;
  width:100%; height:100%;
  z-index:-1;
  pointer-events:none;
  opacity:var(--wcu-lineOp);
}
.wcu__squiggle path{
  fill:none;
  stroke:var(--brand-accent);
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.wcu__wrap{
  position:relative;
  max-width:1290px;
  margin:0 auto;
  padding:0 24px;
}
.wcu__head{ text-align:center; max-width:640px; margin:0 auto 56px; }
.wcu__title{
  font-family:var(--brand-display);
  font-size:58px; line-height:63.8px; font-weight:400;
  color:var(--brand-ink);
  margin:0 0 20px;
}
.wcu__sub{
  font-size:16px; line-height:24px; font-weight:300;
  color:var(--brand-body);
  margin:0;
}
.wcu__grid{
  display:grid;
  grid-template-columns:repeat(4, var(--wcu-cell));
  gap:var(--wcu-gap);
  justify-content:center;
  align-items:start;
}
.wcu__grid{ grid-template-columns:repeat(3, var(--wcu-cell)); }
.wcu__col:nth-child(3) .wcu__media{ border-radius:0 0 50% 0; }
.wcu__cta{ margin:56px 0 0; text-align:center; }
.wcu__btn{ display:inline-flex; align-items:center; gap:12px; padding:17px 34px; border-radius:999px; background:var(--brand-ink); color:#fff; font-size:15px; font-weight:500; line-height:1; text-decoration:none; transition:background .25s ease; }
.wcu__btn svg{ width:14px; height:14px; transition:transform .25s ease; }
.wcu__btn:hover{ background:var(--brand-accent); }
.wcu__btn:hover svg{ transform:translateX(4px); }
.wcu__col{ display:flex; flex-direction:column; gap:20px; }
.wcu__col:nth-child(even){
  margin-top:var(--wcu-stagger);
  flex-direction:column-reverse;
  justify-content:flex-end;
}
.wcu__media{
  width:var(--wcu-cell); height:var(--wcu-cell);
  display:block; object-fit:cover;
  background:var(--brand-ph);
  transition:filter .3s ease;
}
.wcu__col:first-child .wcu__media{ border-radius:50% 0 0 0; }
.wcu__col:last-child  .wcu__media{ border-radius:0 0 50% 0; }
.wcu__card{ min-height:146px; transition:transform .3s ease; }
.wcu__cardTitle{
  font-family:var(--brand-display);
  font-size:24px; line-height:36px; font-weight:500;
  color:var(--brand-ink);
  margin:0 0 6px;
}
.wcu__cardText{
  font-size:16px; line-height:24px; font-weight:300;
  color:var(--brand-body);
  margin:0;
}
.wcu__col:hover .wcu__card{ transform:translateY(-8px); }
.wcu__col:hover .wcu__media{ filter:brightness(1.04); }
@media (max-width:1180px){
.wcu__title{ font-size:46px; line-height:52px; }
}
@media (max-width:940px){
.wcu__grid{ grid-template-columns:repeat(2, var(--wcu-cell)); row-gap:48px; }
.wcu__col:nth-child(3) .wcu__media{ border-radius:0; }
.wcu__col:last-child  .wcu__media{ border-radius:0 0 50% 0; }
}
@media (max-width:640px){
.wcu,.tcs{ padding:56px 0; }
.wcu__squiggle{ display:none; }
.wcu__grid{ grid-template-columns:1fr; row-gap:40px; }
.wcu__col:nth-child(even){ margin-top:0; flex-direction:column; }
.wcu__media{ width:100%; height:auto; aspect-ratio:1/1; border-radius:0 !important; }
.wcu__col:first-child .wcu__media{ border-radius:50% 0 0 0 !important; }
.wcu__head{ margin-bottom:40px; }
.wcu__card{ min-height:0; }
.wcu__title,.tcs__title{ font-size:36px; line-height:42px; }
}
@media (prefers-reduced-motion:reduce){
.wcu__col:hover .wcu__card{ transform:none; }
}

/* ═════════ Reviews (.tcs) ═════════ */
.tcs{
  background:var(--brand-bg);
  padding:80px 0;
  font-family:var(--brand-sans);
  overflow:hidden;
}
.tcs__wrap{
  max-width:1294px;               
  margin:0 auto;
  padding:0 24px;
  display:grid;
  grid-template-columns:var(--tcs-half) var(--tcs-half);
  justify-content:center;
  align-items:start;
}
.tcs__media{
  position:relative;
  width:var(--tcs-half);
  height:588px;
}
.tcs__bigImg{
  position:absolute; left:0; top:0;
  width:var(--tcs-bigW); height:var(--tcs-bigH);
  background-size:cover; background-position:0% 0%;
  background-color:var(--brand-ph);
  border-radius:0 0 0 200px;      
}
.tcs__imgA,.tcs__imgB{
  position:absolute;
  display:block; object-fit:cover;
  background:var(--brand-ph);
}
.tcs__imgA{ left:365px; top:30px;  width:201px; height:323px; }
.tcs__imgB{
  left:269px; top:376px; width:317px; height:212px;
  border-radius:0 100px 0 0;      
}
.tcs__content{
  position:relative;
  padding-left:40px;              
  width:var(--tcs-half);
}
.tcs__title{
  font-family:var(--brand-display);
  font-size:58px; line-height:63.8px; font-weight:400;
  color:var(--brand-ink);
  text-align:left;                
  margin:68px 0 0;                
  max-width:var(--tcs-colW);
}
.tcs__rating{ margin:16px 0 0; font-size:14px; color:var(--brand-body); max-width:var(--tcs-colW); }
.tcs__rating b{ font-weight:600; color:var(--brand-ink); letter-spacing:.04em; }
.tcs__ratingStars{ color:var(--brand-star); letter-spacing:2px; margin:0 6px; }
.tcs__slider{
  position:relative;
  margin-top:20px;                
  max-width:var(--tcs-colW);
  overflow:hidden;
}
.tcs__quote{
  position:absolute;
  top:11px; left:-1px;
  width:65px; height:72px;
  fill:var(--brand-quote);
  pointer-events:none;
  z-index:0;
}
.tcs__track{
  display:flex;
  will-change:transform;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}
.tcs__slide{
  flex:0 0 100%; min-width:100%;
  padding-top:60px;               
  position:relative; z-index:1;
}
.tcs__text{
  font-family:var(--brand-display);
  font-size:18px; line-height:27px; font-weight:400;
  color:var(--brand-body);
  margin:30px 0;
}
.tcs__stars{ list-style:none; display:flex; gap:5px; margin:0 0 15px; padding:0; }
.tcs__stars svg{ width:12px; height:12px; fill:var(--brand-star); display:block; }
.tcs__bio{ display:flex; align-items:center; }
.tcs__avatar{
  width:50px; height:50px; flex:0 0 50px;
  border-radius:50%; object-fit:cover;
  margin-right:15px;
  background:var(--brand-ph);
}
.tcs__name{
  display:block;
  font-family:var(--brand-display);
  font-size:16px; line-height:24px; font-weight:600;
  color:var(--brand-ink);
}
.tcs__role{
  font-family:var(--brand-sans);
  font-size:14px; line-height:21px; font-weight:300;
  color:var(--brand-body);
  margin:0;
}
@media (max-width:640px){
.wcu,.tcs{ padding:56px 0; }
.wcu__title,.tcs__title{ font-size:36px; line-height:42px; }
.tcs__slide{ padding-top:52px; }
}
@media (max-width:1340px){
.tcs__wrap{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:30px; }
.tcs__media{ width:586px; zoom:.94; }
.tcs__content{ width:auto; padding-left:10px; }
.tcs__title, .tcs__slider{ max-width:none; }
}
@media (max-width:1180px){
.tcs__media{ zoom:.8; }
.tcs__title{ font-size:46px; line-height:52px; margin-top:30px; }
}
@media (max-width:980px){
.tcs__wrap{ grid-template-columns:minmax(0,1fr); }
.tcs__media{ zoom:1; margin:0 auto 40px; }
.tcs__content{ padding-left:0; max-width:620px; margin:0 auto; width:100%; }
.tcs__title{ margin-top:0; }
}
@media (max-width:700px){
.tcs__media{ zoom:.85; }
}
@media (max-width:640px){
.tcs__wrap{ padding:0 16px; }
.tcs__media{ zoom:.9; margin:0 auto 36px; }
.tcs__content{ max-width:none; }
.tcs__slide{ padding-top:44px; }
.tcs__text{ font-size:16px; line-height:26px; margin:24px 0; }
}
@media (max-width:560px){
.tcs__media{ zoom:.78; }
}
@media (max-width:480px){
.tcs__media{ zoom:.66; }
}
@media (max-width:420px){
.tcs__media{ zoom:.6; }
}
@media (max-width:370px){
.tcs__media{ zoom:.55; }
}
@media (prefers-reduced-motion:reduce){
.tcs__track{ transition:none; }
}
.tcs__verified{ display:inline-flex; align-items:center; gap:7px; margin:10px 0 0; font-size:13px; color:var(--brand-body); }
.tcs__verified svg{ width:15px; height:15px; color:#2E9E5B; }

/* ═════════ Instagram (.jig) ═════════ */
.jig{ position:relative; background:#fff; padding:110px 0 120px; font-family:var(--brand-sans); color:var(--brand-ink); }
.jig__wrap{ max-width:1320px; margin:0 auto; padding:0 30px; }
.jig__head{ text-align:center; margin-bottom:46px; }
.jig__spark{ margin:0 0 14px; }
.jig__spark svg{ width:16px; height:16px; fill:var(--brand-accent); }
.jig__title{ margin:0 0 22px; font-family:var(--brand-display); font-size:clamp(38px, 4.4vw, 64px); font-weight:500; line-height:1.1; }
.jig__follow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:15px; font-weight:500; color:var(--jbl-cat, #C9674F); text-decoration:none;
  border-bottom:1px solid currentColor; padding-bottom:3px;
}
.jig__follow svg{ width:18px; height:18px; }
.jig__follow:hover{ color:var(--brand-ink); }
.jig__profile{
  display:flex; align-items:center; gap:18px;
  max-width:720px; margin:0 auto 40px; padding:16px 22px;
  border:1px solid #F1DDD7; border-radius:999px; background:var(--brand-bg);
}
.jig__avatar{ flex:none; width:64px; height:64px; border-radius:50%; object-fit:cover; background:#F3E4DF; }
.jig__handle{ margin:0 0 4px; font-size:17px; font-weight:600; }
.jig__handle a{ color:inherit; text-decoration:none; }
.jig__bio{ font-size:14px; line-height:1.5; color:var(--brand-body, #6b5b57); text-decoration:none; }
.jig__handle a:hover, .jig__bio:hover{ color:var(--jbl-cat, #C9674F); }
.jig__grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, 1fr); gap:22px; }
.jig__post a{ display:block; color:inherit; text-decoration:none; }
.jig__frame{ position:relative; display:block; aspect-ratio:1; overflow:hidden; border-radius:18px; background:#F3E4DF; }
.jig__post:nth-child(even) .jig__frame{ border-radius:18px 18px 18px 50% / 18px 18px 18px 40%; }
.jig__post:nth-child(odd)  .jig__frame{ border-radius:18px 50% 18px 18px / 18px 40% 18px 18px; }
.jig__img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.75,.2,1); }
.jig__hover{
  position:absolute; inset:0; display:grid; place-items:center;
  background:rgba(74,52,49,.55); color:#fff; opacity:0; transition:opacity .35s ease;
}
.jig__hover svg{ width:34px; height:34px; transform:scale(.7); transition:transform .35s ease; }
.jig__post a:hover .jig__img, .jig__post a:focus-visible .jig__img{ transform:scale(1.06); }
.jig__post a:hover .jig__hover, .jig__post a:focus-visible .jig__hover{ opacity:1; }
.jig__post a:hover .jig__hover svg{ transform:none; }
.jig__post a:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:4px; border-radius:18px; }
.jig__cap{ display:block; margin-top:14px; font-size:15px; line-height:1.55; }
.jig__btns{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:52px; }
.jig__btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:17px 32px; border-radius:999px;
  background:var(--brand-ink); color:#fff; border:1px solid var(--brand-ink);
  font-size:15px; font-weight:500; line-height:1; text-decoration:none;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.jig__btn svg{ width:17px; height:17px; }
.jig__btn:hover{ background:var(--brand-accent); border-color:var(--brand-accent); }
.jig__btn--line{ background:transparent; color:var(--brand-ink); }
.jig__btn--line:hover{ color:#fff; }
.jpr:not(.jpr--alt):has(+ .jig)::after{
  content:""; position:absolute; left:0; right:0; z-index:0; pointer-events:none;
  bottom:-1px; height:75px;
  background:var(--img-edge-bottom) 50% 100% / max(100%, 1920px) 100% no-repeat;
}
@media (max-width:1024px){
.jig__grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:640px){
.jig{ padding:80px 0 90px; }
.jig__wrap{ padding:0 16px; }
.jig__profile{ border-radius:22px; padding:14px 16px; gap:14px; }
.jig__avatar{ width:52px; height:52px; }
.jig__grid{ gap:14px; }
.jig__cap{ font-size:13px; }
.jig__btns{ margin-top:40px; }
}

/* ═════════ Brand logos (.jbr) ═════════ */
.jbr{ background:#fff; padding:44px 0; overflow:hidden; border-block:1px solid #F1DDD7; }
.jbr__track{ display:flex; width:max-content; animation:jbrMove 38s linear infinite; }
.jbr:hover .jbr__track{ animation-play-state:paused; }
.jbr__row{ list-style:none; margin:0; padding:0; display:flex; align-items:center; }
.jbr__row li{ padding:0 34px; }
.jbr__logo{ display:block; width:180px; height:90px; object-fit:contain; filter:grayscale(1); opacity:.7; transition:filter .3s ease, opacity .3s ease; }
.jbr__logo:hover{ filter:none; opacity:1; }
.jbr__logo.is-ph{ filter:none; opacity:1; }
@media (max-width:640px){
.jbr{ padding:30px 0; }
.jbr__row li{ padding:0 18px; }
.jbr__logo{ width:130px; height:65px; }
}
@media (prefers-reduced-motion:reduce){
.jbr__track{ animation:none; flex-wrap:wrap; width:auto; justify-content:center; }
.jbr__row[aria-hidden]{ display:none; }
.jbr__row{ flex-wrap:wrap; justify-content:center; row-gap:20px; }
}

/* ═════════ Latest posts (.jbl) ═════════ */
.jbl{
  background:var(--brand-bg);
  padding:40px 0 150px;
  font-family:var(--brand-sans);
  overflow:hidden;
}
.jbl__wrap{ max-width:1361px; margin:0 auto; padding:0 30px; text-align:center; }
.jbl__eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  margin:0 0 35px;
  font-size:14px; font-weight:500; line-height:1;
  letter-spacing:1px; text-transform:uppercase;
  color:var(--brand-ink);
}
.jbl__eyebrow i{
  width:12px; height:12px; flex:0 0 12px;
  background:var(--brand-accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat;
  animation:jspSpin 8s linear infinite;
}
.jbl__heading{
  max-width:490px;
  margin:0 auto 70px;
  font-family:var(--brand-display);
  font-size:clamp(40px, 5vw, 70px);
  font-weight:400; line-height:1.1;
  color:var(--brand-ink);
  text-wrap:balance;
}
.jbl__viewport{
  overflow:hidden;
  text-align:left;
  touch-action:pan-y;              
  cursor:grab;
}
.jbl__viewport.is-drag{ cursor:grabbing; }
.jbl__track{
  display:flex;
  gap:var(--jbl-gap);
  will-change:transform;
  transition:transform 1s cubic-bezier(.25,.8,.25,1);
}
.jbl__track.no-anim{ transition:none; }
.jbl__slide{
  flex:0 0 calc((100% - var(--jbl-gap) * (var(--jbl-show) - 1)) / var(--jbl-show));
  min-width:0;
  user-select:none;
}
.jbl__slide img{ -webkit-user-drag:none; }
.jbl__thumb{
  display:block;
  aspect-ratio:394 / 281;
  border-radius:14px;
  overflow:hidden;
  background:var(--brand-ph);
  margin-bottom:24px;
}
.jbl__img{
  display:block; width:100%; height:100%;
  object-fit:cover;
  transform:scale(1);
  transition:transform .5s ease-out;
}
.jbl__slide:hover .jbl__img{ transform:scale(1.03); }
.jbl__meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  margin:0 0 17px;
  font-size:14px; font-weight:500; line-height:1;
}
.jbl__meta > * + *::before{      
  content:""; display:inline-block;
  width:3px; height:3px; border-radius:50%;
  margin-right:10px; vertical-align:middle;
  background:var(--jbl-date);
}
.jbl__cat{
  color:var(--jbl-cat);
  text-transform:uppercase; letter-spacing:.04em;
  text-decoration:none;
}
.jbl__cat:hover{ text-decoration:underline; }
.jbl__meta time{ color:var(--jbl-date); }
.jbl__title{
  margin:0 0 26px;
  font-family:var(--brand-display);
  font-size:clamp(22px, 2.1vw, 30px);
  font-weight:400; line-height:1.15;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
.jbl__title a{
  color:var(--brand-ink); text-decoration:none;
  background:linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat;
  transition:color .25s ease, background-size .35s ease;
}
.jbl__title a:hover{ color:var(--jbl-cat); background-size:100% 1px; }
.jbl__more{
  display:inline-flex; align-items:center; gap:8px;
  font-size:15px; font-weight:600; line-height:1;
  color:var(--brand-ink);
  text-decoration:none;
}
.jbl__more span{ text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }
.jbl__more svg{ width:12px; height:12px; transition:transform .25s ease; }
.jbl__more:hover{ color:var(--jbl-cat); }
.jbl__more:hover svg{ transform:translateX(4px); }
.jbl a:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; border-radius:4px; }
@media (max-width:767px){
.jbl{ padding:20px 0 100px; }
.jbl__wrap{ padding:0 16px; }
.jbl__heading{ margin-bottom:44px; }
.jbl__eyebrow{ margin-bottom:24px; }
}
@media (prefers-reduced-motion:reduce){
.jbl__track{ transition:none; }
.jbl__eyebrow i{ animation:none; }
.jbl__img{ transition:none; }
}

/* ═════════ Gallery (.jgl) ═════════ */
.jgl{ background:var(--brand-bg); padding:110px 0 120px; font-family:var(--brand-sans); }
.jgl__wrap{ max-width:1240px; margin:0 auto; padding:0 30px; }
.jgl__head{ max-width:760px; margin:0 auto 54px; text-align:center; }
.jgl__title{
  margin:0 0 18px;
  font-family:var(--brand-display);
  font-size:clamp(38px, 4.4vw, 60px); font-weight:500; line-height:1.1;
  color:var(--brand-ink);
}
.jgl__intro{ margin:0 0 14px; font-size:17px; font-weight:300; line-height:1.8; color:var(--brand-body); }
.jgl__note{
  margin:0;
  font-size:13px; font-weight:500; letter-spacing:.06em;
  color:var(--brand-deep, #C9674F);
}
.jgl__grid{
  list-style:none; margin:0; padding:0;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  grid-auto-rows:clamp(150px, 18vw, 250px);
  grid-auto-flow:dense;
  gap:16px;
}
.jgl__cell--big{  grid-column:span 2; grid-row:span 2; }
.jgl__cell--tall{ grid-row:span 2; }
.jgl__cell--wide{ grid-column:span 2; }
.jgl__item{
  position:relative; display:block; height:100%;
  border-radius:18px; overflow:hidden;
  background:var(--brand-ph);
  isolation:isolate;
}
.jgl__img{
  position:absolute; inset:0; z-index:-2;
  background:50% 50% / cover no-repeat;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.jgl__item::after{                                   
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(37,25,23,.32);
  opacity:0; transition:opacity .35s ease;
}
.jgl__zoom{
  position:absolute; left:50%; top:50%;
  width:54px; height:54px; margin:-27px 0 0 -27px;
  display:grid; place-items:center;
  border-radius:50%; background:#fff; color:var(--brand-ink);
  opacity:0; transform:scale(.7);
  transition:opacity .3s ease, transform .3s ease;
}
.jgl__zoom svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.jgl__item:hover .jgl__img, .jgl__item:focus-visible .jgl__img{ transform:scale(1.06); }
.jgl__item:hover::after, .jgl__item:focus-visible::after{ opacity:1; }
.jgl__item:hover .jgl__zoom, .jgl__item:focus-visible .jgl__zoom{ opacity:1; transform:none; }
.jgl__item:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; }
@media (max-width:1024px){
.jgl__grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
}
@media (max-width:640px){
.jgl{ padding:80px 0; }
.jgl__wrap{ padding:0 16px; }
.jgl__head{ margin-bottom:36px; }
.jgl__intro{ font-size:16px; }
.jgl__grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); grid-auto-rows:150px; gap:10px; }
.jgl__item{ border-radius:14px; }
}
@media (prefers-reduced-motion:reduce){
.jgl__img, .jgl__item::after, .jgl__zoom, .jlb{ transition:none; }
.jgl__item:hover .jgl__img{ transform:none; }
}

/* ═════════ Gallery lightbox (.jlb) ═════════ */
.jlb{
  position:fixed; inset:0; z-index:2000;
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px;
  padding:60px 24px;
  background:rgba(20,14,13,.94);
  font-family:var(--brand-sans);
  opacity:0; transition:opacity .25s ease;
}
.jlb[hidden]{ display:none; }
.jlb.is-open{ opacity:1; }
.jlb__stage{ margin:0; height:100%; display:grid; place-items:center; min-width:0; }
.jlb__img{ max-width:100%; max-height:100%; border-radius:12px; object-fit:contain; box-shadow:0 30px 80px rgba(0,0,0,.4); }
.jlb__missing{
  display:grid; place-items:center; text-align:center;
  width:min(900px, 100%); aspect-ratio:3 / 2;
  border:1.5px dashed rgba(255,255,255,.3); border-radius:12px;
  background:#3a2926; color:rgba(255,255,255,.75);
  font-size:15px; line-height:1.7;
}
.jlb__missing[hidden]{ display:none; }
.jlb__nav, .jlb__close{
  display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.4); border-radius:50%;
  background:transparent; color:#fff; cursor:pointer;
  transition:background .25s ease, color .25s ease;
}
.jlb__nav{ width:54px; height:54px; }
.jlb__nav svg{ width:16px; height:16px; }
.jlb__close{ position:absolute; top:18px; right:18px; width:46px; height:46px; }
.jlb__close svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.jlb__nav:hover, .jlb__close:hover{ background:#fff; color:var(--brand-ink); }
.jlb__nav:focus-visible, .jlb__close:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
.jlb__count{
  position:absolute; left:0; right:0; bottom:18px; margin:0;
  text-align:center; font-size:14px; letter-spacing:.12em; color:rgba(255,255,255,.75);
}
.jlb__count b{ color:#fff; font-weight:600; }
html.jlb-lock{ overflow:hidden; }
@media (max-width:640px){
.jlb{ grid-template-columns:1fr; padding:70px 12px 60px; }
.jlb__nav{ position:absolute; bottom:12px; width:44px; height:44px; }
.jlb__nav--prev{ left:16px; }
.jlb__nav--next{ right:16px; }
.jlb__count{ bottom:24px; }
}
@media (prefers-reduced-motion:reduce){
.jgl__img, .jgl__item::after, .jgl__zoom, .jlb{ transition:none; }
}

/* ═════════ Studio cards (.jlc) ═════════ */
.jlc{ background:var(--brand-bg); padding:110px 0 40px; font-family:var(--brand-sans); }
.jlc__wrap{
  max-width:1180px; margin:0 auto; padding:0 30px;
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:28px;
}
.jlc__card{
  display:flex; flex-direction:column;
  border:1px solid #EFE3E0; border-radius:24px; overflow:hidden;
  background:#fff;
  box-shadow:0 18px 40px rgba(74,52,49,.06);
}
.jlc__map{ position:relative; aspect-ratio:16 / 9; background:var(--brand-ph); }
.jlc__map::before{                                   
  content:"Map"; position:absolute; inset:0;
  display:grid; place-items:center;
  font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:#B7968D;
}
.jlc__map iframe{ position:relative; width:100%; height:100%; border:0; display:block; }
.jlc__body{ padding:34px 34px 36px; display:flex; flex-direction:column; flex:1; }
.jlc__name{
  margin:0 0 22px;
  font-family:var(--brand-display);
  font-size:clamp(28px, 2.6vw, 36px); font-weight:500; line-height:1.15;
  color:var(--brand-ink);
}
.jlc__info{ list-style:none; margin:0 0 30px; padding:0; display:grid; gap:16px; }
.jlc__info > li{ display:flex; gap:14px; align-items:flex-start; font-size:15px; line-height:1.7; color:var(--brand-body); }
.jlc__info > li > svg{
  flex:0 0 36px; width:36px; height:36px; padding:8px;
  border-radius:50%; background:var(--brand-soft, #FDEAE6);
  fill:none; stroke:var(--brand-deep, #C9674F); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;
}
.jlc__info a{ color:var(--brand-ink); font-weight:500; text-decoration:none; }
.jlc__info a:hover{ color:var(--brand-deep, #C9674F); }
.jlc__hours{ list-style:none; margin:0; padding:0; flex:1; }
.jlc__hours li{ display:flex; justify-content:space-between; gap:12px; border-bottom:1px dashed #E6D7D2; padding:3px 0; }
.jlc__hours li:last-child{ border-bottom:0; }
.jlc__hours span:first-child{ font-weight:500; color:var(--brand-ink); font-size:13px; letter-spacing:.04em; }
.jlc__btns{ display:flex; flex-wrap:wrap; gap:12px; margin-top:auto; }
.jlc__btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 26px; border-radius:999px;
  background:var(--brand-ink); color:#fff;
  font-size:14px; font-weight:500; line-height:1; text-decoration:none;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.jlc__btn svg{ width:14px; height:14px; }
.jlc__btn:hover{ background:var(--brand-accent); }
.jlc__btn--ghost{ background:transparent; color:var(--brand-ink); border:1px solid #E3D3CE; }
.jlc__btn--ghost:hover{ background:var(--brand-ink); border-color:var(--brand-ink); color:#fff; }
.jlc__btn:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; }
@media (max-width:900px){
.jlc__wrap{ grid-template-columns:1fr; max-width:640px; }
}
@media (max-width:640px){
.jlc{ padding:70px 0 20px; }
.jlc__wrap{ padding:0 16px; gap:20px; }
.jlc__body{ padding:26px 22px 28px; }
.jlc__btn{ padding:14px 20px; }
}

/* ═════════ Appointment / contact form (.ap) ═════════ */
.ap{
  position:relative;
  background:transparent;
  padding:170px 0 190px;
  font-family:var(--brand-sans);
}
.ap__wrap{ max-width:1218px; margin:0 auto; padding:0 24px; }
.ap__area{
  position:relative;
  max-width:1140px;
  margin:0 auto;
  min-height:973px;
  background:var(--img-appointment) no-repeat 50% 50%/cover;
  padding:128px 71px 146px 70px;
  display:grid;
  grid-template-columns:541px 399px;
  gap:59px;
  align-items:start;
}
.ap__panel{ background:var(--brand-bg); padding:61px 50px 71px; }
.ap__title{
  font-family:var(--pp-display);
  font-size:36px; line-height:39.6px; font-weight:400;
  color:var(--brand-ink);
  margin:0 0 14px;
}
.ap__intro{
  font-size:14px; line-height:26px; font-weight:400;
  color:var(--brand-body);
  margin:0 0 21px;
}
.ap__form{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.ap__full{ grid-column:1 / -1; }
.ap__form input,
.ap__form select,
.ap__form textarea{
  width:100%;
  font-family:var(--brand-sans);
  font-size:14px; font-weight:400;
  color:var(--brand-muted);
  background:#fff;
  border:0; border-radius:0;
  outline-offset:-2px;
}
.ap__form input,
.ap__form select{ height:60px; line-height:60px; padding:0 25px; }
.ap__form textarea{ height:120px; padding:12px 25px 0; line-height:26px; resize:vertical; }
.ap__form input:focus,
.ap__form select:focus,
.ap__form textarea:focus{ outline:2px solid var(--brand-accent); }
.ap__fieldWrap{ position:relative; }
.ap__fieldWrap svg{
  position:absolute; right:25px; top:50%;
  width:15px; height:15px; margin-top:-7px;
  fill:none; stroke:var(--brand-muted); stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round;
  pointer-events:none;
}
.ap__fieldWrap select{ appearance:none; -webkit-appearance:none; padding-right:48px; }
.ap__btn{
  position:relative;
  display:inline-block;
  border:0; cursor:pointer;
  font-family:var(--pp-display);
  font-size:12px; line-height:40px; font-weight:500;
  color:#fff;
  background:var(--brand-accent);
  border-radius:40px;
  padding:1px 20px 1px 42px;
  transition:filter .25s ease, transform .25s ease;
}
.ap__btn:hover{ filter:brightness(.94); transform:translateY(-1px); }
.ap__btn svg{
  position:absolute;
  left:7px; top:7.5px;
  width:25px; height:25px;
  padding:6px;
  background:#fff; border-radius:50%;
  fill:none; stroke:var(--brand-accent); stroke-width:2.2;
  stroke-linecap:round; stroke-linejoin:round;
  box-sizing:border-box;
}
.ap__note{
  font-size:12.5px; line-height:20px;
  color:var(--brand-muted);
  margin:14px 0 0;
}
.ap__box{ margin:0 0 40px; }
.ap__box:last-child{ margin-bottom:0; }
.ap__boxTitle{
  display:flex; align-items:center;
  font-family:var(--pp-display);
  font-size:24px; line-height:34px; font-weight:700;
  color:var(--brand-ink);
  margin:0 0 4px;
}
.ap__boxIcon{
  flex:0 0 37px;
  width:37px; height:37px;
  margin-right:13px;
  background:var(--brand-accent);
  border-radius:50%;
  display:grid; place-items:center;
}
.ap__boxIcon svg{
  width:18px; height:18px;
  fill:none; stroke:#fff; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round;
}
.ap__boxText{
  font-size:16px; line-height:36px; font-weight:400;
  color:var(--brand-body);
  margin:0;
}
.ap__boxText a{ color:inherit; text-decoration:none; }
.ap__boxText a:hover{ color:var(--brand-accent); }
@media (max-width:1140px){
.ap{ padding:110px 0 130px; }
.ap__area{
    grid-template-columns:1fr;
    gap:48px;
    min-height:0;
    padding:70px 48px 90px;
  }
.ap__panel{ max-width:541px; }
}
@media (max-width:640px){
.ap{ padding:70px 0 80px; }
.ap__area{ padding:40px 20px 60px; }
.ap__panel{ padding:36px 24px 40px; }
.ap__form{ grid-template-columns:1fr; gap:16px; }
.ap__title{ font-size:28px; line-height:34px; }
.ap__boxTitle{ font-size:20px; }
.ap__boxText{ font-size:15px; line-height:30px; }
}
.ap{ font-family:var(--brand-sans); background:var(--brand-bg); }
.ap__kicker{
  margin:0 0 8px;
  font-family:var(--brand-sans); font-size:16px; font-weight:300; line-height:1.2; letter-spacing:3.2px;
  color:var(--brand-accent);
}
.ap__intro a{ color:var(--brand-accent); text-decoration:none; font-weight:500; }
.ap__intro a:hover{ text-decoration:underline; }
.ap__locTitle{
  margin:0 0 34px;
  font-family:var(--brand-display); font-size:36px; font-weight:400; line-height:1.2;
  color:var(--brand-ink);
}
.ap__boxTitle a{ color:inherit; text-decoration:none; }
.ap__boxTitle a:hover{ color:var(--brand-accent); }
@media (max-width:640px){
.ap__locTitle{ font-size:28px; margin-bottom:26px; }
}
.ap--form{ padding-top:70px; }
.ap--form .ap__area{
  grid-template-columns:minmax(0, 640px);
  justify-content:center;
  min-height:0;
  padding:110px 40px 120px;
}
@media (max-width:640px){
.ap--form{ padding-top:40px; }
}

/* ═════════ Blog list (.jbg) ═════════ */
.jbg{ background:var(--brand-bg); padding:90px 0 110px; font-family:var(--brand-sans); }
.jbg__wrap{ max-width:1100px; margin:0 auto; padding:0 30px; }
.jbg__cats{ margin:0 0 50px; }
.jbg__cats ul{
  list-style:none; margin:0; padding:2px 2px 8px;
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px;
}
.jbg__cat{
  display:inline-block; padding:10px 18px;
  border:1px solid #E3D3CE; border-radius:999px;
  background:#fff;
  font-size:13px; font-weight:500; line-height:1; color:var(--brand-ink); text-decoration:none;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.jbg__cat:hover{ border-color:var(--brand-ink); }
.jbg__cat.is-on{ background:var(--brand-ink); border-color:var(--brand-ink); color:#fff; }
.jbg__cat:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:2px; }
.jbg__list{ display:grid; gap:26px; }
.jbg__post{
  display:grid; grid-template-columns:minmax(0, 42%) minmax(0, 1fr);
  gap:clamp(24px, 3.5vw, 44px); align-items:center;
  padding:18px;
  border:1px solid #EFE3E0; border-radius:24px;
  background:#fff;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.jbg__post:hover{ border-color:#E7CFC8; box-shadow:0 18px 40px rgba(74,52,49,.07); }
.jbg__media{ position:relative; display:block; aspect-ratio:16 / 10; border-radius:16px; overflow:hidden; background:var(--brand-ph); }
.jbg__img{ position:absolute; inset:0; background:50% 50% / cover no-repeat; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.jbg__post:hover .jbg__img{ transform:scale(1.05); }
.jbg__body{ padding:6px 18px 6px 0; }
.jbg__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin:0 0 14px; font-size:13px; color:var(--brand-muted); }
.jbg__tag{
  padding:6px 12px; border-radius:999px;
  background:var(--brand-soft, #FDEAE6);
  font-size:12px; font-weight:500; letter-spacing:.06em; text-transform:uppercase;
  color:var(--brand-deep, #C9674F); text-decoration:none;
}
.jbg__tag:hover{ background:var(--brand-accent); color:#fff; }
.jbg__title{
  margin:0 0 12px;
  font-family:var(--brand-display);
  font-size:clamp(22px, 2.2vw, 30px); font-weight:500; line-height:1.25;
}
.jbg__title a{ color:var(--brand-ink); text-decoration:none; transition:color .25s ease; }
.jbg__title a:hover{ color:var(--brand-deep, #C9674F); }
.jbg__excerpt{ margin:0 0 22px; font-size:15px; font-weight:300; line-height:1.8; color:var(--brand-body); }
.jbg__more{
  display:inline-flex; align-items:center; gap:10px;
  font-size:14px; font-weight:500; color:var(--brand-ink); text-decoration:none;
  border-bottom:1px solid currentColor; padding-bottom:3px;
}
.jbg__more svg{ width:14px; height:14px; transition:transform .25s ease; }
.jbg__more:hover{ color:var(--brand-deep, #C9674F); }
.jbg__more:hover svg{ transform:translateX(4px); }
.jbg__title a:focus-visible, .jbg__more:focus-visible, .jbg__tag:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; }
.jbg__pages{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; margin:56px 0 0; }
.jbg__page{
  min-width:46px; height:46px; padding:0 16px;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  border:1px solid #E3D3CE; border-radius:999px; background:#fff;
  font-size:14px; font-weight:500; color:var(--brand-ink); text-decoration:none;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.jbg__page svg{ width:14px; height:14px; }
.jbg__page:hover{ border-color:var(--brand-ink); }
.jbg__page.is-on{ background:var(--brand-ink); border-color:var(--brand-ink); color:#fff; }
.jbg__dots{ padding:0 4px; color:var(--brand-muted); }
@media (max-width:860px){
.jbg__post{ grid-template-columns:1fr; gap:18px; padding:14px; }
.jbg__body{ padding:0 8px 10px; }
}
@media (max-width:640px){
.jbg{ padding:60px 0 80px; }
.jbg__wrap{ padding:0 16px; }
.jbg__cats{ margin-bottom:34px; }
.jbg__cats ul{ flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; }
.jbg__cats ul::-webkit-scrollbar{ display:none; }
.jbg__cats li{ flex:0 0 auto; }
.jbg__list{ gap:18px; }
}
@media (prefers-reduced-motion:reduce){
.jbg__img, .jbg__more svg{ transition:none; }
.jbg__post:hover .jbg__img{ transform:none; }
}

/* ═════════ Blog post (.jps) ═════════ */
.jps{ background:#fff; font-family:var(--brand-sans); color:var(--brand-body); }
.jps__wrap{ max-width:760px; margin:0 auto; padding:0 30px; }
.jps__head{ background:var(--brand-bg); padding:70px 0 0; }
.jps__crumbs{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 26px; font-size:13px; color:var(--brand-muted); }
.jps__crumbs a{ color:var(--brand-muted); text-decoration:none; }
.jps__crumbs a:hover{ color:var(--brand-deep, #C9674F); }
.jps__meta{ margin-bottom:18px; }
.jps__title{
  margin:0 0 50px;
  font-family:var(--brand-display);
  font-size:clamp(34px, 4.6vw, 58px); font-weight:500; line-height:1.12;
  color:var(--brand-ink);
}
.jps__hero{ max-width:1100px; margin:0 auto; padding:0 30px; transform:translateY(0); }
.jps__heroImg{
  aspect-ratio:1024 / 630;
  border-radius:24px 24px 0 0;
  background:var(--brand-ph) 50% 50% / cover no-repeat;
}
.jps__content{ padding-top:60px; padding-bottom:20px; font-size:17px; font-weight:300; line-height:1.9; }
.jps__content > p{ margin:0 0 22px; }
.jps__content h2{
  margin:50px 0 18px;
  font-family:var(--brand-display);
  font-size:clamp(26px, 2.6vw, 34px); font-weight:500; line-height:1.25;
  color:var(--brand-ink);
}
.jps__content h3{
  margin:30px 0 10px;
  font-family:var(--brand-display);
  font-size:clamp(20px, 1.8vw, 23px); font-weight:500; line-height:1.3;
  color:var(--brand-ink);
}
.jps__content strong{ font-weight:600; color:var(--brand-ink); }
.jps__content a{ color:var(--brand-deep, #C9674F); text-decoration:underline; text-underline-offset:3px; }
.jps__content ul, .jps__content ol{ margin:0 0 24px; padding-left:24px; }
.jps__content li{ margin:0 0 8px; padding-left:4px; }
.jps__content li::marker{ color:var(--brand-accent); font-weight:600; }
.jps__foot{ padding-top:20px; padding-bottom:90px; }
.jps__shareRow{
  display:flex; flex-wrap:wrap; align-items:center; gap:16px;
  padding:22px 0; border-top:1px solid #EFE3E0; border-bottom:1px solid #EFE3E0;
}
.jps__shareLabel{ font-size:13px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--brand-ink); }
.jps__shares{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.jps__share{
  width:42px; height:42px; display:grid; place-items:center;
  border:1px solid #E3D3CE; border-radius:50%; background:#fff; color:var(--brand-ink);
  cursor:pointer; transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.jps__share svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.jps__share:hover{ background:var(--brand-ink); border-color:var(--brand-ink); color:#fff; }
.jps__share:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; }
.jps__copied{ font-size:13px; color:#2E9E5B; }
.jps__nav{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:34px; }
.jps__navLink{
  display:flex; flex-direction:column; gap:8px;
  padding:22px 24px; border:1px solid #EFE3E0; border-radius:18px;
  text-decoration:none; transition:border-color .25s ease, box-shadow .25s ease;
}
.jps__navLink--next{ text-align:right; align-items:flex-end; }
.jps__navLink:hover{ border-color:var(--brand-accent); box-shadow:0 14px 30px rgba(74,52,49,.06); }
.jps__navDir{ display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--brand-deep, #C9674F); }
.jps__navDir svg{ width:13px; height:13px; }
.jps__navTitle{ font-family:var(--brand-display); font-size:18px; line-height:1.35; color:var(--brand-ink); }
.jps__navLink:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; }
.jps__related{ background:var(--brand-bg); padding:100px 0 110px; font-family:var(--brand-sans); }
.jps__relWrap{ max-width:1180px; margin:0 auto; padding:0 30px; }
.jps__relHead{
  margin:0 0 40px; text-align:center;
  font-family:var(--brand-display);
  font-size:clamp(34px, 3.6vw, 48px); font-weight:500; line-height:1.15;
  color:var(--brand-ink);
}
.jps__relGrid{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:24px; }
.jps__rel{ padding:14px 14px 22px; border:1px solid #EFE3E0; border-radius:22px; background:#fff; }
.jps__relMedia{ position:relative; display:block; aspect-ratio:16 / 10; margin:0 0 18px; border-radius:14px; overflow:hidden; background:var(--brand-ph); }
.jps__relImg{ position:absolute; inset:0; background:50% 50% / cover no-repeat; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.jps__rel:hover .jps__relImg{ transform:scale(1.05); }
.jps__rel .jbg__meta{ padding:0 6px; margin-bottom:10px; }
.jps__relTitle{ margin:0; padding:0 6px; font-family:var(--brand-display); font-size:20px; font-weight:500; line-height:1.35; }
.jps__relTitle a{ color:var(--brand-ink); text-decoration:none; }
.jps__relTitle a:hover{ color:var(--brand-deep, #C9674F); }
@media (max-width:900px){
.jps__relGrid{ grid-template-columns:1fr; max-width:520px; margin:0 auto; }
}
@media (max-width:640px){
.jps__wrap, .jps__hero, .jps__relWrap{ padding:0 16px; }
.jps__head{ padding-top:44px; }
.jps__title{ margin-bottom:34px; }
.jps__heroImg{ border-radius:16px 16px 0 0; }
.jps__content{ padding-top:40px; font-size:16px; }
.jps__nav{ grid-template-columns:1fr; }
.jps__navLink--next{ text-align:left; align-items:flex-start; }
.jps__related{ padding:70px 0 80px; }
}
@media (prefers-reduced-motion:reduce){
.jps__relImg{ transition:none; }
.jps__rel:hover .jps__relImg{ transform:none; }
}

/* ═════════ Footer + mobile bar (.jf) ═════════ */
.jf{
  position:relative;
  padding:55px 30px 50px;
  font-family:var(--brand-sans);
  color:#fff;
  overflow:hidden;
  isolation:isolate;
}
.jf__bg{
  position:absolute; inset:0; z-index:-3;
  background:#2b2220 var(--img-footer-bg) 50% 50% / cover no-repeat;
}
.jf::before{ content:""; position:absolute; inset:0; z-index:-2; background:rgba(0,0,0,.64); }
.jf::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, var(--brand-bg) 7%, rgba(255,246,244,.14) 70%);
}
.jf__inner{ max-width:1380px; margin:0 auto; display:flex; flex-direction:column; align-items:center; }
.jf__script{
  position:relative; z-index:1;
  margin:0 0 -70px;                
  font-family:var(--jf-script);
  font-size:clamp(3rem, .975rem + 8.64vw, 8.75rem);
  font-weight:400; line-height:1.1;
  color:var(--brand-accent);
  text-align:center; white-space:nowrap;
  pointer-events:none;
}
.jf__card{
  width:100%;
  display:flex; align-items:stretch;
  margin:0 0 40px;
  padding:130px 30px 130px 60px;
  border-radius:14px;
  background:var(--jf-card);
}
.jf__col{ display:flex; flex-direction:column; }
.jf__col--info{ width:295px; flex:0 0 295px; margin-right:60px; gap:35px; }
.jf__col--brand{
  width:530px; flex:0 0 530px;
  padding:0 102px;
  border-left:1px solid var(--jf-line); border-right:1px solid var(--jf-line);
  align-items:center; text-align:center;
}
.jf__col--links{ width:200px; flex:0 0 200px; margin-left:70px; }
.jf__col--brand{ width:auto; flex:1 1 0; padding:0 60px; }
.jf__col--links{ margin-left:50px; flex-basis:160px; width:160px; }
.jf__col--svc{ margin-left:30px; flex-basis:220px; width:220px; }
.jf__newsTitle{ margin:0 0 6px; font-family:var(--brand-display); font-size:20px; font-weight:500; letter-spacing:.02em; color:var(--brand-ink); }
.jf__news{
  width:100%; margin:0 0 34px; padding:28px 34px;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  border-radius:14px; background:var(--brand-bg);
}
.jf__newsText p{ margin:0; font-size:15px; color:var(--brand-body); }
.jf__newsForm{ display:flex; gap:8px; flex:0 1 420px; }
.jf__newsForm input{ flex:1; min-width:0; height:50px; padding:0 20px; border:1px solid var(--brand-line); border-radius:999px; font:400 14px var(--brand-sans); background:#fff; }
.jf__newsForm input:focus{ outline:2px solid var(--brand-accent); }
.jf__newsForm button{ height:50px; padding:0 26px; border:0; border-radius:999px; background:var(--jbl-cat, #C9674F); color:#fff; font:500 14px var(--brand-sans); cursor:pointer; }
.jf__newsForm button:hover{ background:var(--jf-card); }
@media (max-width:520px){
.jf__newsForm{ flex:1 1 100%; flex-direction:column; }
.jf__newsForm button{ width:100%; }
.jf__news{ padding:22px 18px; }
}
.jf__h{
  margin:0 0 20px;
  font-family:var(--brand-display);
  font-size:21px; font-weight:500; line-height:1.1;
  color:#fff;
}
.jf__text{ margin:0 0 10px; font-size:15px; line-height:24px; color:rgba(255,255,255,.88); max-width:85%; }
.jf__studio{ margin:0 0 18px; }
.jf__studio:last-child{ margin-bottom:0; }
.jf__studio strong{ display:block; margin-bottom:2px; font-weight:500; font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:#fff; }
.jf__phone{
  display:inline-block;
  font-size:22px; line-height:34px; font-weight:400;
  color:var(--brand-accent); text-decoration:none;
  transition:color .3s ease;
}
.jf__phone:hover{ color:#fff; }
.jf__hours{ margin:0; padding:0; list-style:none; font-size:15px; line-height:24px; color:rgba(255,255,255,.88); }
.jf__logo{ display:block; }
.jf__logo img{ display:block; width:130px; height:auto; }
.jf__about{ margin:20px 0 10px; font-size:17px; line-height:27px; color:#fff; font-weight:300; }
.jf__social{ display:flex; justify-content:center; gap:10px; margin-top:auto; padding-top:30px; }
.jf__social a{
  width:44px; height:44px;
  display:grid; place-items:center;
  border:1px solid var(--jf-ring); border-radius:50%;
  color:#fff;
  transition:background .3s ease, border-color .3s ease;
}
.jf__social svg{ width:18px; height:18px; fill:currentColor; }
.jf__social a:hover{ background:var(--brand-accent); border-color:var(--brand-accent); }
.jf__links{ margin:0; padding:0; list-style:none; }
.jf__links li + li{ margin-top:13px; }
.jf__links a{
  position:relative;
  display:inline-flex; align-items:center;
  font-size:15px; font-weight:500; line-height:22.5px;
  color:#fff; text-decoration:none;
  transition:color .5s ease, padding .35s ease;
}
.jf__links a::before{
  content:""; position:absolute; left:0; top:50%;
  width:12px; height:12px; margin-top:-6px;
  background:var(--brand-accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c.6 4.2 3.8 7.4 8 8-4.2.6-7.4 3.8-8 8-.6-4.2-3.8-7.4-8-8 4.2-.6 7.4-3.8 8-8z'/%3E%3C/svg%3E") center/contain no-repeat;
  opacity:0; transform:scale(.3) rotate(-90deg);
  transition:opacity .3s ease, transform .35s ease;
}
.jf__links a:hover{ color:var(--brand-accent); padding-left:20px; }
.jf__links a:hover::before{ opacity:1; transform:none; }
.jf a:focus-visible{ outline:2px solid var(--brand-accent); outline-offset:3px; border-radius:4px; }
.jf__copy{ margin:0; font-size:15px; line-height:24px; color:#fff; text-align:center; }
.jf__copy a{ color:var(--brand-accent); font-weight:600; text-decoration:none; }
.jf__copy a:hover{ color:#fff; }
@media (max-width:1200px){
.jf__col--brand{ padding:0 30px; }
.jf__col--links{ margin-left:30px; }
.jf__col--svc{ margin-left:20px; }
.jf{ margin-bottom:0; }
.jf__col--info{ margin-right:30px; }
.jf__col--brand{ padding:0 50px; flex-basis:auto; width:auto; flex:1 1 0; }
.jf__col--links{ margin-left:30px; }
}
@media (max-width:1024px){
.jf__card{ flex-wrap:wrap; padding:100px 30px 50px; }
.jf__script{ margin-bottom:-40px; }
.jf__col--brand{
    order:-1; flex:0 0 100%;
    border:0; border-bottom:1px solid var(--jf-line);
    margin-bottom:30px; padding:0 50px 50px;
  }
.jf__col--info{ flex:0 0 50%; width:50%; margin-right:0; }
.jf__col--links{ flex:1 1 0; margin-left:0; }
.jf__col--svc{ margin-left:0; }
.jf__col--info{ flex-basis:100%; width:100%; margin-bottom:30px; }
.jf__news{ padding:24px; }
}
@media (max-width:767px){
.jf{ padding:50px 15px 30px; }
.jf__script{ margin-bottom:-20px; }
.jf__card{ flex-direction:column; gap:50px; padding:50px 15px 40px; margin-bottom:30px; text-align:center; }
.jf__col--brand{ margin:0; padding:0 0 30px; }
.jf__col--info,.jf__col--links{ width:100%; flex:none; align-items:center; }
.jf__col--links{ border-top:1px solid var(--jf-line); padding-top:30px; }
.jf__text{ max-width:none; }
.jf__phone{ font-size:20px; }
.jf__links{ padding:0 20px; }
.jf__links a{ font-size:14px; }
.jf__links a:hover{ padding-left:0; }
.jf__links a::before{ display:none; }
.jf{ padding-bottom:calc(30px + 64px); }
}
.jf-bar{ display:none; }
@media (max-width:767px){
.jf-bar{
    position:fixed; left:0; right:0; bottom:0; z-index:50;
    display:grid; grid-template-columns:repeat(4,1fr);
    padding-bottom:env(safe-area-inset-bottom);
    background:var(--brand-bg);
    border-top:1px solid var(--brand-line);
    box-shadow:0 0 20px rgba(0,0,0,.2);
    font-family:var(--brand-sans);
  }
.jf-bar__item{
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
    height:64px; padding:0;
    border:0; border-left:1px solid var(--brand-line);
    background:none; color:var(--brand-ink);
    font:400 13px/1 var(--brand-sans);
    text-decoration:none; cursor:pointer;
  }
.jf-bar__item:first-child{ border-left:0; }
.jf-bar__item svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.jf-bar__item--book{ color:var(--jbl-cat, #C9674F); font-weight:500; }
.jf-bar__item:active{ background:var(--brand-soft); }
}
.jf-sheet{
  position:fixed; inset:0; z-index:60;
  display:flex; align-items:flex-end;
  background:rgba(37,37,37,.4);
  opacity:0; visibility:hidden;
  transition:opacity .25s ease, visibility 0s linear .25s;
}
.jf-sheet[hidden]{ display:none; }
.jf-sheet.is-open{ opacity:1; visibility:visible; transition:opacity .25s ease; }
.jf-sheet__panel{
  width:100%;
  padding:22px 18px calc(22px + env(safe-area-inset-bottom));
  border-radius:18px 18px 0 0;
  background:var(--brand-bg);
  font-family:var(--brand-sans);
  transform:translateY(100%);
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.jf-sheet.is-open .jf-sheet__panel{ transform:none; }
.jf-sheet__title{ margin:0 0 14px; font:500 20px/1.2 var(--brand-display); color:var(--brand-ink); text-align:center; }
.jf-sheet__studio{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 0; border-top:1px solid var(--brand-line); }
.jf-sheet__studio b{ display:block; font-weight:500; color:var(--brand-ink); font-size:15px; }
.jf-sheet__studio span{ font-size:13px; color:var(--brand-body); }
.jf-sheet__go{
  flex:none; padding:11px 18px; border-radius:999px;
  background:var(--brand-ink); color:#fff;
  font-size:14px; font-weight:500; text-decoration:none;
}
.jf-sheet__close{
  display:block; width:100%; margin-top:8px; padding:13px;
  border:1px solid var(--brand-line); border-radius:999px;
  background:#fff; color:var(--brand-ink); font:500 14px var(--brand-sans); cursor:pointer;
}
@media (prefers-reduced-motion:reduce){
.jf-sheet, .jf-sheet__panel, .jf__links a, .jf__links a::before{ transition:none; }
}

/* ═════════ Theme additions (WordPress) ═════════ */

/* Home page: appointment section sits on the page background (design: front-page) */
.ap--home{ background:transparent; }
.ap--home .ap__locTitle{ font-family:var(--pp-display); }
@media (max-width:640px){ .ap--home .ap__boxTitle{ justify-content:center; } }

/* Contact Form 7 inside the design forms */
.ap__form .wpcf7-form-control-wrap,
.jf__newsForm .wpcf7-form-control-wrap{ display:block; }
.jf__newsForm .wpcf7-form-control-wrap{ flex:1; min-width:0; }
.jf__newsForm .wpcf7-form-control-wrap input{ width:100%; }
.ap__btn--form::before{
  content:""; position:absolute; left:7px; top:7.5px; width:25px; height:25px; border-radius:50%;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F7A392' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.wpcf7 .wpcf7-not-valid-tip{ display:block; margin-top:6px; font-size:13px; line-height:1.4; color:#C9674F; }
.wpcf7 form .wpcf7-response-output{ margin:18px 0 0; padding:12px 18px; border:1px solid var(--brand-line); border-radius:10px; font-size:14px; line-height:1.5; background:#fff; color:var(--brand-ink); }
.wpcf7 form.sent .wpcf7-response-output{ border-color:#9CC9A0; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{ border-color:#E7A08F; }
.jf__news .wpcf7{ flex:0 1 420px; }
.jf__news .wpcf7 .jf__newsForm{ flex:none; }
.wpcf7-spinner{ vertical-align:middle; }
@media (max-width:520px){ .jf__news .wpcf7{ flex:1 1 100%; } }
.jade-form-missing{ padding:18px 20px; border:1px dashed var(--brand-accent); border-radius:10px; background:#fff; font-size:14px; line-height:1.5; color:var(--brand-ink); }

/* Plain pages (privacy policy etc.) and any Gutenberg content inside a post */
.jade-page{ padding:70px 0 110px; background:#fff; }
.jade-page .jps__content{ padding-top:0; }
.jps__content > *:first-child{ margin-top:0; }
.jps__content img{ height:auto; border-radius:14px; }
.jps__content .alignleft{ float:left; margin:6px 24px 16px 0; }
.jps__content .alignright{ float:right; margin:6px 0 16px 24px; }
.jps__content .aligncenter{ display:block; margin-left:auto; margin-right:auto; }
.jps__content .wp-caption-text, .jps__content figcaption{ font-size:13px; color:var(--brand-muted); text-align:center; margin-top:8px; }
.jps__content::after{ content:""; display:table; clear:both; }

/* Search + 404 */
.jade-search{ display:flex; gap:10px; max-width:520px; margin:26px 0 0; }
.jade-search input[type="search"]{ flex:1; min-width:0; height:52px; padding:0 22px; border:1px solid var(--brand-line); border-radius:999px; font:400 15px var(--brand-sans); color:var(--brand-ink); background:#fff; }
.jade-search input[type="search"]:focus{ outline:2px solid var(--brand-accent); }
.jade-search button{ height:52px; padding:0 26px; border:0; border-radius:999px; background:var(--brand-accent); color:#fff; font:500 14px var(--brand-sans); cursor:pointer; }
.jade-empty{ padding:10px 0 40px; font-size:16px; color:var(--brand-body); }

/* Photo slots with no photo yet: soft brand tint (never an empty white hole) */
.jade-noimg{ background-color:var(--brand-ph) !important; }

/* Header: no discounted service → the mega menu is one column */
.jh-mega--solo{ grid-template-columns:1fr; }

/* "hidden" always wins over the design's display rules */
.jn [hidden], .jh [hidden], .jf-sheet[hidden], .jlb[hidden]{ display:none !important; }

/* Contact / appointment without a photo: no tall empty photo area */
.ap--nophoto .ap__area{ min-height:0; padding-top:90px; padding-bottom:100px; }
.ap--form.ap--nophoto .ap__area{ padding-top:40px; padding-bottom:90px; }
.ap--form.ap--nophoto{ padding-top:30px; }
@media (max-width:1023px){ .ap--nophoto .ap__area{ padding-top:50px; padding-bottom:60px; } }

/* Photo-size label for editors on the site (service page slider) — visitors never get it */
.jade-hint--front{
  position:absolute; right:40px; top:110px; z-index:20; max-width:calc(100% - 80px);
  padding:11px 22px; border-radius:999px;
  background:#fff; border:2px solid #C9674F; color:#4A3431;
  font:600 13px/1.3 var(--brand-sans); box-shadow:0 6px 18px rgba(0,0,0,.18); pointer-events:none;
}
@media (min-width:1024px){ .jade-hint--front{ top:24px; max-width:300px; border-radius:14px; padding:10px 16px; line-height:1.4; } }
@media (min-width:1280px){ .jade-hint--front{ max-width:340px; } }
@media (max-width:767px){ .jade-hint--front{ right:16px; top:84px; max-width:calc(100% - 32px); font-size:11px; padding:8px 14px; } }

/* ═════════ Keyframes ═════════ */
@keyframes jnFill{to{ transform:scaleX(1); }}
@keyframes jspSpin{to{ transform:rotate(360deg); }}
@keyframes jbrMove{to{ transform:translateX(-50%); }}
@keyframes lppBounce{0%{transform:translateY(0)} 50%{transform:translateY(20px)} 100%{transform:translateY(0)}}
@keyframes lppBounce2{0%{transform:translateX(0)} 50%{transform:translateX(20px)} 100%{transform:translateX(0)}}
@keyframes movebounce{0%,100%{transform:translateY(0)}50%{transform:translateY(20px)}}
@keyframes movebounce2{0%,100%{transform:translateX(0)}50%{transform:translateX(20px)}}
