@font-face{font-family:'RousseRivera-Display';src:url('./fonts/RousseRivera-Display.woff2') format('woff2'),url('./fonts/RousseRivera-Display.ttf') format('truetype');font-display:swap}@font-face{font-family:'RousseRivera-Text';src:url('./fonts/RousseRivera-Text.woff2') format('woff2'),url('./fonts/RousseRivera-Text.ttf') format('truetype');font-display:swap}@font-face{font-family:'RousseRivera-Italic';src:url('./fonts/RousseRivera-Italic.woff2') format('woff2'),url('./fonts/RousseRivera-Italic.ttf') format('truetype');font-display:swap}:root{--ink:#2D2A26;--oro:#C9B898;--oro-deep:#846E45;--greige:#D3CBBC;--greige-60:#E3DDD2;--greige-30:#EAE5DB;--paper:#F5F5F5;--ink-70:#6A6864;--font-display:'RousseRivera-Display',Georgia,'Times New Roman',serif;--font-text:'RousseRivera-Text',Georgia,'Times New Roman',serif;--font-italic:'RousseRivera-Italic',Georgia,serif;--header-h:80px;--header-h-compact:80px;--maxw:1200px;--colw:620px;--ease:cubic-bezier(0.16,1,0.3,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-spring:cubic-bezier(0.34,1.2,0.64,1);--ease-soft:cubic-bezier(0.25,0.1,0.25,1)}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-text);font-size:17px;line-height:1.65;letter-spacing:0.01em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block;height:auto}a{color:var(--oro-deep);text-decoration:none}a:hover{color:var(--ink)}button{font-family:inherit}h1,h2,h3,p{margin:0}.skip-link{position:absolute;left:-9999px;top:0;z-index:300;background:var(--ink);color:var(--paper);padding:12px 20px;font-size:13px;letter-spacing:0.1em;text-transform:uppercase}.skip-link:focus{left:0;color:var(--paper)}:focus-visible{outline:2px solid var(--oro-deep);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.display{font-family:var(--font-display);font-weight:400}.italic{font-family:var(--font-italic);font-style:italic}.eyebrow{font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--oro-deep)}.eyebrow--oro{color:var(--oro)}.h2{font-family:var(--font-display);font-weight:400;font-size:clamp(28px,5vw,44px);letter-spacing:0.12em;line-height:1.15}.h2--light{color:var(--paper)}.wrap{max-width:var(--maxw);margin:0 auto;padding-left:clamp(20px,4vw,32px);padding-right:clamp(20px,4vw,32px)}.section{padding-block:clamp(64px,9vw,112px)}.section--tight{padding-block:clamp(40px,6vw,64px)}.bg-soft{background:var(--greige-30)}.text-col{max-width:var(--colw)}.js .reveal{opacity:0;transform:translate3d(0,18px,0) scale(0.985);filter:blur(0)}.js .reveal.in{opacity:1;transform:none;filter:none;transition:opacity 900ms var(--ease-out),transform 900ms var(--ease-out),filter 900ms var(--ease-out);transition-delay:var(--d,0ms)}@keyframes riseIn{from{opacity:0;transform:translate3d(0,16px,0) scale(0.99)}to{opacity:1;transform:none}}.hero-anim>*{opacity:0;animation:riseIn 1.05s var(--ease-out) both}.hero-anim>*:nth-child(1){animation-delay:40ms}.hero-anim>*:nth-child(2){animation-delay:110ms}.hero-anim>*:nth-child(3){animation-delay:180ms}.hero-anim>*:nth-child(4){animation-delay:250ms}.hero-anim>*:nth-child(5){animation-delay:320ms}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.001ms !important;transition-duration:0.001ms !important;scroll-behavior:auto !important}.reveal{opacity:1 !important;transform:none !important}.hero-anim>*{opacity:1 !important;animation:none !important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:15px 30px;font-size:12px;letter-spacing:0.18em;text-transform:uppercase;border:none;cursor:pointer;border-radius:0;transition:transform 480ms var(--ease-spring),opacity 320ms var(--ease-out),background 320ms var(--ease-out),color 320ms var(--ease-out),box-shadow 480ms var(--ease-out)}.btn--primary{background:var(--ink);color:var(--paper)}.btn--primary:hover{color:var(--paper);transform:translateY(-2px) scale(1.015);box-shadow:0 10px 24px -12px rgba(45,42,38,0.4)}.btn--oro{background:var(--oro);color:var(--ink)}.btn--oro:hover{color:var(--ink);transform:translateY(-2px) scale(1.015);box-shadow:0 10px 24px -12px rgba(132,110,69,0.45)}.btn--secondary{background:transparent;color:var(--ink);border:1px solid var(--ink)}.btn--secondary:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px) scale(1.015);box-shadow:0 10px 24px -12px rgba(45,42,38,0.35)}.btn--ghost{background:none;padding:0 0 3px;min-height:0;color:var(--oro-deep);position:relative}.btn--ghost::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--oro-deep);transform:scaleX(1);transform-origin:right;transition:transform 320ms var(--ease)}.btn--ghost:hover{color:var(--ink)}.btn--ghost:hover::after{transform:scaleX(0);transform-origin:right}.btn[disabled]{opacity:0.35;cursor:not-allowed;transform:none}.btn-sm{min-height:42px;padding:11px 18px;letter-spacing:0.14em}.header{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--header-h);background:rgba(245,245,245,0.94);backdrop-filter:saturate(1.1) blur(6px);border-bottom:1px solid transparent;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,32px);transition:border-color 320ms var(--ease),background-color 320ms var(--ease),box-shadow 320ms var(--ease)}.header.scrolled{border-bottom-color:var(--greige);background:rgba(245,245,245,0.98);box-shadow:0 1px 0 rgba(45,42,38,0.06)}.header__brand{display:flex;align-items:center;background:none;border:none;cursor:pointer;padding:0}.wordmark{font-family:var(--font-display);font-weight:400;line-height:1;white-space:nowrap;color:var(--ink)}.header__brand .wordmark{font-size:24px;letter-spacing:0.18em;display:inline-block;transform-origin:left center;transition:transform 520ms var(--ease-out)}.header.scrolled .header__brand .wordmark{transform:scale(0.85)}@media (max-width:560px){:root{--header-h:64px;--header-h-compact:64px}.header__brand .wordmark{font-size:17px;letter-spacing:0.12em}.header.scrolled .header__brand .wordmark{transform:scale(0.88)}.header__actions .btn--primary{display:none}}.nav-desktop{display:none;gap:26px;align-items:center}.nav-desktop a{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink);position:relative;padding-bottom:4px}.nav-desktop a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--oro-deep);transform:scaleX(0);transform-origin:left;transition:transform 260ms var(--ease)}.nav-desktop a:hover,.nav-desktop a[aria-current="page"]{color:var(--oro-deep)}.nav-desktop a:hover::after,.nav-desktop a[aria-current="page"]::after{transform:scaleX(1)}.header__actions{display:flex;align-items:center;gap:12px}.lang-toggle{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;border:none;background:none;color:var(--ink-70);padding:6px 4px;cursor:pointer;transition:color 200ms var(--ease)}.lang-toggle:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.menu-btn{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}.menu-btn span{width:22px;height:2px;background:var(--ink);display:block}.menu-btn span:last-child{width:15px}.mobile-menu{position:fixed;inset:0;z-index:100;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;padding:28px 32px 40px;transform:translate3d(0,-8%,0);opacity:0;visibility:hidden;pointer-events:none;transition:transform 560ms var(--ease-out),opacity 420ms var(--ease-out),visibility 560ms;overflow-y:auto}.mobile-menu.open{transform:none;opacity:1;visibility:visible;pointer-events:auto}.mobile-menu__top{position:relative;display:flex;justify-content:center;align-items:center;min-height:44px;padding-bottom:24px;margin-bottom:20px;border-bottom:1px solid rgba(201,184,152,0.22)}.mobile-menu__top .wordmark{font-size:24px;color:var(--oro);letter-spacing:0.18em}.mobile-menu__close{position:absolute;top:-4px;right:-6px;background:none;border:none;color:var(--paper);font-size:30px;line-height:1;cursor:pointer;padding:6px}.mobile-menu nav{display:flex;flex-direction:column;gap:16px;margin-top:4px}.mobile-menu nav a,.mobile-menu nav span{font-family:var(--font-display);font-size:clamp(30px,7vw,42px);letter-spacing:0.06em;color:var(--paper);text-align:left}.mobile-menu nav a:hover{color:var(--oro)}.mobile-menu nav .is-soon{color:var(--ink-70);opacity:0.55}.mobile-menu nav .is-book{color:var(--oro)}.mobile-menu__foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:28px;border-top:1px solid rgba(201,184,152,0.25)}.mobile-menu__foot .lang-toggle{border-color:var(--oro);color:var(--oro)}.mobile-menu__foot .lang-toggle:hover{background:var(--oro);color:var(--ink)}main{padding-top:var(--header-h)}.social-row{display:flex;gap:12px;align-items:center}.social-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid currentColor;color:inherit;transition:all 220ms var(--ease)}.social-btn svg{width:19px;height:19px}.social-btn:hover{transform:translateY(-3px)}.social-btn--light{color:var(--oro)}.social-btn--light:hover{background:var(--oro);color:var(--ink)}.social-btn--dark{color:var(--ink)}.social-btn--dark:hover{background:var(--ink);color:var(--paper)}.hero{border-bottom:1px solid var(--greige);overflow:visible}.hero__inner{display:grid;grid-template-columns:1fr;gap:clamp(32px,5vw,56px);align-items:center;padding-block:clamp(48px,7vw,88px)}.hero__copy{max-width:640px}.hero__eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:22px}.hero__eyebrow::before{content:"";width:34px;height:1px;background:var(--oro-deep);display:inline-block}.hero h1{font-family:var(--font-display);font-weight:400;font-size:clamp(40px,8vw,76px);letter-spacing:0.02em;line-height:1.04;color:var(--ink)}.hero h1 em{font-family:var(--font-italic);font-style:italic;letter-spacing:0.01em;color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1}.hero__sub{margin-top:22px;font-size:clamp(16px,1.6vw,18px);line-height:1.6;color:var(--ink-70);max-width:460px}.hero__cta{margin-top:32px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.hero__micro{margin-top:14px;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-70)}.hero__media{position:relative}.hero__photo{aspect-ratio:4/5}.hero__badge{position:absolute;left:-14px;bottom:24px;background:var(--ink);color:var(--oro);padding:12px 18px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase}@media (min-width:900px){.hero__inner{grid-template-columns:1.05fr 0.95fr}}.media-cover{width:100%;height:100%;object-fit:cover;display:block}img.hero__photo{aspect-ratio:4/5}.card__photo img{width:100%;height:100%;object-fit:cover;transition:transform 900ms var(--ease-out)}.card:hover .card__photo img{transform:scale(1.04)}.carousel__slide img.media-cover{aspect-ratio:4/5;border-radius:2px}.gallery__item img{width:100%;height:100%;object-fit:cover}img.ambiance{aspect-ratio:16/9}.reel video{width:100%;height:100%;object-fit:cover;display:block;background:var(--ink)}.photo-ph{background:repeating-linear-gradient(135deg,var(--greige-60),var(--greige-60) 11px,var(--greige) 11px,var(--greige) 22px);display:flex;align-items:center;justify-content:center;text-align:center;padding:12px}.photo-ph span{font-family:'Courier New',monospace;font-size:11px;color:var(--ink-70);letter-spacing:0.04em}.statement{background:var(--greige-30);border-block:1px solid var(--greige);padding:clamp(40px,6vw,72px) clamp(20px,4vw,32px);text-align:center}.statement .eyebrow{display:block;margin-bottom:18px}.statement__line{max-width:860px;margin:0 auto;font-family:var(--font-italic);font-style:italic;font-size:clamp(21px,3.2vw,32px);line-height:1.38;color:var(--ink);letter-spacing:0.01em}.statement__line strong{font-family:var(--font-display);font-style:normal;font-weight:400}.sec-head{max-width:680px;margin-bottom:clamp(32px,5vw,52px)}.sec-head .eyebrow{display:block;margin-bottom:16px}.sec-head p{margin-top:14px;color:var(--ink-70);font-size:16px}.grid-cards{display:grid;grid-template-columns:1fr;gap:24px}@media (min-width:640px){.grid-cards{grid-template-columns:repeat(2,1fr)}}@media (min-width:900px){.grid-cards{grid-template-columns:repeat(3,1fr)}}.card{border:1px solid var(--greige);background:var(--paper);transition:transform 600ms var(--ease-out),border-color 400ms var(--ease-out),box-shadow 600ms var(--ease-out);overflow:hidden}.card:hover{transform:translateY(-4px);border-color:var(--ink)}.card__photo{aspect-ratio:4/5;overflow:hidden}.card__photo .photo-ph{width:100%;height:100%;transition:transform 900ms var(--ease-out)}.card:hover .card__photo .photo-ph{transform:scale(1.04)}.card__body{padding:26px}.card__body h3{font-family:var(--font-display);font-weight:400;font-size:clamp(21px,2vw,27px);letter-spacing:0.05em;line-height:1.25;margin-bottom:10px}.card__body p{font-size:15px;line-height:1.6;color:var(--ink-70)}.card__link{display:inline-block;margin-top:16px;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--oro-deep)}.card:hover .card__link{color:var(--ink)}.consult-block{background:var(--ink);position:relative;padding-block:clamp(48px,7vw,80px) !important}.consult-block .sec-head{margin-left:auto;margin-right:auto;text-align:center;margin-bottom:clamp(24px,4vw,36px)}.consult-block h2{color:var(--paper)}.consult-block .sec-head p{color:var(--greige);max-width:560px;margin-left:auto;margin-right:auto}.consult-steps{max-width:940px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:28px}@media (min-width:720px){.consult-steps{grid-template-columns:repeat(3,1fr);gap:32px}}.step{text-align:center}.step .n{font-family:var(--font-display);font-size:28px;color:var(--oro);margin-bottom:8px;letter-spacing:0.06em}.step .t{font-family:var(--font-display);font-size:18px;letter-spacing:0.04em;color:var(--paper);margin-bottom:6px}.step .d{font-size:14px;line-height:1.55;color:var(--greige)}.consult-cta{text-align:center;margin-top:clamp(28px,4vw,40px)}.consult-cta .hero__micro{color:var(--ink-70)}.consult-block .consult-cta .hero__micro{color:var(--greige)}.testi-grid{display:grid;grid-template-columns:1fr;gap:18px}@media(min-width:760px){.testi-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:900px){.testi-grid{grid-template-columns:repeat(3,1fr)}}.testi{border:1px solid var(--greige);background:var(--paper);padding:28px 26px 24px;transition:border-color 240ms var(--ease),transform 280ms var(--ease);position:relative}.testi::before{content:"“";font-family:var(--font-display);font-size:48px;line-height:1;color:var(--oro-deep);opacity:0.45;display:block;margin-bottom:4px}.testi:hover{border-color:var(--ink);transform:translateY(-3px)}.testi p{font-family:var(--font-italic);font-style:italic;font-size:16px;line-height:1.55;color:var(--ink)}.testi footer{margin-top:18px;padding-top:14px;border-top:1px solid var(--greige-30);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--oro-deep)}.carousel{position:relative;overflow:hidden}.carousel__track{display:flex;transition:transform 780ms var(--ease-out)}.carousel__slide{min-width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;align-items:center}.carousel__slide .photo-ph{aspect-ratio:4/5;border-radius:2px}.carousel__slide .tag{font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--oro-deep);margin-bottom:12px}.carousel__slide .title{font-family:var(--font-display);font-size:clamp(26px,3vw,36px);letter-spacing:0.04em;margin-bottom:16px}.carousel__slide .note{font-family:var(--font-italic);font-style:italic;font-size:clamp(18px,2vw,23px);line-height:1.5;max-width:440px;color:var(--ink)}.carousel__controls{display:flex;align-items:center;justify-content:space-between;margin-top:28px}.carousel__dots{display:flex;gap:8px;align-items:center}.carousel__dots button{height:8px;width:8px;border:none;padding:0;cursor:pointer;background:var(--greige);transition:all 320ms var(--ease)}.carousel__dots button[aria-current="true"]{width:26px;background:var(--oro-deep)}.carousel__arrows{display:flex;gap:8px}.carousel__arrows button{width:48px;height:48px;border:1px solid var(--ink);background:none;color:var(--ink);cursor:pointer;font-size:18px;transition:all 220ms var(--ease)}.carousel__arrows button:hover{background:var(--ink);color:var(--paper)}.reels-grid{display:grid;grid-template-columns:1fr;gap:18px}@media (min-width:560px){.reels-grid{grid-template-columns:repeat(3,1fr)}}.reel{position:relative;aspect-ratio:9/16;overflow:hidden;background:var(--ink);border:1px solid var(--ink);display:block}.reel .reel-ph{position:absolute;inset:0;opacity:0.28;background:repeating-linear-gradient(135deg,#3a352f,#3a352f 11px,#2D2A26 11px,#2D2A26 22px)}.reel .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border:1px solid var(--oro);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--oro);transition:transform 320ms var(--ease)}.reel:hover .play{transform:translate(-50%,-50%) scale(1.08)}.reel .lbl{position:absolute;left:14px;right:14px;bottom:14px;color:var(--greige);font-family:'Courier New',monospace;font-size:11px;letter-spacing:0.03em}.reels-cta{margin-top:28px;text-align:center}.reels-cta .btn{min-width:min(100%,320px)}.ig-link{display:inline-block;margin-top:12px;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px}.ig-link:hover{color:var(--oro-deep);border-color:var(--oro-deep)}.gallery__filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}.gallery__filters button{border:1px solid var(--greige);background:none;color:var(--ink-70);padding:9px 18px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;transition:all 180ms var(--ease)}.gallery__filters button:hover{border-color:var(--ink);color:var(--ink)}.gallery__filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.gallery__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (min-width:760px){.gallery__grid{grid-template-columns:repeat(3,1fr)}}.gallery__item{aspect-ratio:4/5;border-radius:2px;overflow:hidden}.gallery__item .photo-ph{width:100%;height:100%}.quote-band{text-align:center}.quote-band blockquote{font-family:var(--font-italic);font-style:italic;font-size:clamp(22px,3vw,30px);letter-spacing:0.01em;line-height:1.45;max-width:720px;margin:0 auto;color:var(--ink)}.quote-band cite{display:block;margin-top:22px;font-family:var(--font-text);font-style:normal;font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--oro-deep)}.page-head{max-width:720px}.page-head h1{font-family:var(--font-display);font-weight:400;font-size:clamp(38px,7vw,68px);letter-spacing:0.02em;line-height:1.08}.page-head .lead{margin-top:18px;font-size:18px;line-height:1.6;color:var(--ink-70)}.facts{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.facts span{border:1px solid var(--greige);padding:9px 16px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-70)}.ambiance{aspect-ratio:16/9;margin-top:40px}.block-h3{font-family:var(--font-display);font-weight:400;font-size:clamp(22px,2vw,28px);letter-spacing:0.06em;line-height:1.25;margin-bottom:14px}.includes-list{margin-top:18px}.includes-list .row{display:flex;gap:14px;font-size:17px;line-height:1.6;margin-bottom:14px;max-width:640px}.includes-list .dot{width:7px;height:7px;background:var(--oro-deep);margin-top:9px;flex-shrink:0}.panel-soft{background:var(--greige-30);padding:clamp(28px,4vw,40px);margin-top:56px}.panel-soft p{font-size:16px;line-height:1.65;color:var(--ink-70);max-width:640px}.booking{margin-top:72px;background:transparent;border:0;padding:0}.booking h2{font-family:var(--font-display);font-weight:400;font-size:clamp(24px,4vw,34px);letter-spacing:0.08em;margin:12px 0 18px}.service-tag{display:inline-block;background:var(--ink);color:var(--oro);padding:8px 16px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;margin-bottom:24px}.calendar-card{background:var(--paper);border:1px solid var(--greige);padding:clamp(20px,3vw,28px)}.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.cal-head button{background:none;border:1px solid var(--greige);cursor:pointer;color:var(--ink);font-size:14px;width:44px;height:44px;transition:all 200ms var(--ease)}.cal-head button:hover:not([disabled]){background:var(--ink);color:var(--paper)}.cal-head button[disabled]{opacity:0.3;cursor:not-allowed}.cal-head .month{font-size:13px;letter-spacing:0.12em;text-transform:uppercase}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-grid.weekdays{margin-bottom:8px}.cal-grid.weekdays div{text-align:center;font-size:11px;color:var(--ink-70);letter-spacing:0.05em}.cal-grid.days button{aspect-ratio:1;border:1px solid var(--greige);background:var(--paper);color:var(--ink);font-size:13px;cursor:pointer;transition:all 160ms var(--ease)}.cal-grid.days button:hover:not([disabled]){border-color:var(--ink)}.cal-grid.days button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.cal-grid.days button[disabled]{background:transparent;color:var(--greige);border-color:transparent;cursor:default}.cal-grid.days button.empty{border:none;background:none;cursor:default}.times{margin-top:26px}.times .label{font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-70)}.time-slots{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.time-slots button{border:1px solid var(--greige);background:var(--paper);color:var(--ink);padding:11px 20px;font-size:13px;cursor:pointer;min-height:44px;transition:all 160ms var(--ease)}.time-slots button:hover{border-color:var(--ink)}.time-slots button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.confirm-btn{width:100%;margin-top:28px}.confirm-msg{margin-top:24px;padding:20px;background:var(--ink);color:var(--paper);text-align:center;font-size:15px;line-height:1.5}.confirm-msg .confirm-actions{margin-top:16px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.booking-note{text-align:center;margin-top:16px;font-size:12px;color:var(--ink-70)}.booking-fallback{text-align:center;margin-top:14px;font-size:13px;color:var(--ink-70)}.booking-intro{font-size:15px;line-height:1.6;color:var(--ink-70);max-width:560px;margin-bottom:24px}.square-widget{background:#fff;border:1px solid var(--greige);margin-top:10px;overflow:hidden;min-height:760px}.square-widget iframe{width:100% !important;max-width:100% !important;height:1040px !important;border:0;background:#fff;display:block}.booking-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.booking-cta .btn{flex:1;min-width:220px}@media (max-width:767px){.booking-cta{margin-top:8px}}.booking-mobile-note{display:none}@media (max-width:767px){.booking-mobile-note{display:block;font-size:14px;line-height:1.6;color:var(--ink-70);margin-top:4px}}.featured{background:var(--ink);padding:clamp(28px,4vw,44px);margin-top:44px;display:flex;flex-wrap:wrap;gap:26px;align-items:center;justify-content:space-between}.featured .info{flex:1;min-width:240px}.featured .name{font-family:var(--font-display);font-size:clamp(24px,4vw,34px);letter-spacing:0.04em;color:var(--paper);margin:12px 0 10px}.featured p{font-size:15px;line-height:1.6;color:var(--greige);max-width:520px}.svc-cat{margin-top:64px}.svc-cat h2{font-family:var(--font-italic);font-style:italic;font-weight:400;font-size:clamp(30px,5vw,44px);margin-bottom:26px}.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px 48px}.svc-item{border-top:1px solid var(--greige);padding-top:18px;transition:border-color 240ms var(--ease)}.svc-item:hover{border-color:var(--ink)}.svc-item .top{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.svc-item h3{font-family:var(--font-display);font-weight:400;font-size:clamp(19px,2vw,23px);letter-spacing:0.04em}.svc-item .price{font-family:var(--font-display);font-size:21px;white-space:nowrap}.svc-item p{font-size:14px;line-height:1.6;color:var(--ink-70);margin-top:8px}.disclaimer{margin-top:64px;padding-top:24px;border-top:1px solid var(--greige);font-size:13px;line-height:1.6;color:var(--ink-70)}.coming{text-align:center;padding-block:clamp(48px,8vw,96px)}.coming .eyebrow{display:block;margin-bottom:18px}.coming h1{font-family:var(--font-display);font-weight:400;font-size:clamp(40px,7vw,72px);letter-spacing:0.02em;line-height:1.06;color:var(--ink)}.coming h1 em{font-family:var(--font-italic);font-style:italic}.coming .lead{max-width:560px;margin:20px auto 0;color:var(--ink-70);font-size:17px;line-height:1.6}.coming .preview{max-width:720px;margin:36px auto 0;border:1px solid var(--greige);overflow:hidden;background:var(--ink)}.coming .preview img{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}.coming .photo-ph{aspect-ratio:16/9}.urgency-row{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:28px auto 0;max-width:640px}.urgency-pill{border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:10px 16px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;line-height:1.3}.urgency-pill--hot{background:var(--ink);color:var(--oro);border-color:var(--ink)}.urgency-pill strong{font-weight:400;color:inherit}.signup{max-width:480px;margin:36px auto 0;padding:28px 24px;border:1px solid var(--greige);background:var(--greige-30)}.signup .field{display:flex;gap:8px;flex-wrap:wrap}.signup input{flex:1;min-width:180px;border:1px solid var(--greige);background:var(--paper);color:var(--ink);padding:14px;font-size:15px;font-family:inherit}.signup input:focus{border-color:var(--ink);outline:none}.signup .note{margin-top:14px;font-size:12px;color:var(--ink-70);letter-spacing:0.02em;line-height:1.5}.signup .done{display:none}.signup.is-done form{display:none}.signup.is-done .done{display:block;font-family:var(--font-italic);font-style:italic;font-size:18px;color:var(--ink)}.signup .btn{flex-shrink:0}.map-band{margin-top:56px}.map-embed{border:1px solid var(--greige);width:100%;height:400px;filter:grayscale(0.4) contrast(1.05)}.map-meta{margin-top:18px;font-size:14px;line-height:1.7;color:var(--ink-70)}.prefooter{background:var(--greige-30);border-top:1px solid var(--greige);padding:clamp(36px,6vw,56px) 0}.prefooter__inner{display:grid;grid-template-columns:1fr;gap:22px;align-items:center}@media (min-width:860px){.prefooter__inner{grid-template-columns:1.1fr 1fr;gap:48px}}.prefooter__line{margin-top:10px;color:var(--ink-70);font-size:15px;line-height:1.6;max-width:460px}.prefooter__form .field{display:flex;gap:8px}.prefooter__form input[type="email"]{flex:1;min-width:0;border:1px solid var(--greige);background:var(--paper);padding:13px 14px;font-family:inherit;font-size:15px;color:var(--ink)}.prefooter__form input[type="email"]:focus{border-color:var(--ink);outline:none}.prefooter__consent{margin-top:10px;display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--ink-70);line-height:1.5}.prefooter__consent input{margin-top:3px;accent-color:var(--oro-deep)}.footer{background:var(--ink);color:var(--paper);padding:clamp(36px,5vw,64px) 24px 22px}.footer__brand{text-align:center;padding-bottom:clamp(24px,4vw,36px);border-bottom:1px solid rgba(201,184,152,0.22)}.footer__brand .wordmark{display:inline-block;font-size:clamp(24px,5vw,38px);color:var(--paper);letter-spacing:0.22em}.footer__brand p{margin-top:12px;font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--oro)}.footer__grid{max-width:var(--maxw);margin:clamp(26px,4vw,40px) auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:30px}.footer__col .cap{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--oro);margin-bottom:14px}.footer__links{display:flex;flex-direction:column;gap:11px}@media (max-width:859px){.footer__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}}.footer__links a{font-size:14px;color:var(--paper)}.footer__links a:hover{color:var(--oro)}.footer__links span{font-size:14px;color:var(--greige);opacity:0.55}.footer__col address{font-style:normal;font-size:14px;line-height:1.8;color:var(--greige);white-space:pre-line}.footer__col address a{color:var(--oro)}.footer a:hover{color:var(--oro)}.footer__news label{font-size:14px;color:var(--greige);display:block;margin-bottom:12px;line-height:1.5}.footer__news .field{display:flex;gap:8px}.footer__news input{background:none;border:1px solid var(--ink-70);color:var(--paper);padding:11px 12px;font-size:14px;flex:1;min-width:0;font-family:inherit}.footer__news input::placeholder{color:var(--ink-70)}.footer__news input:focus{border-color:var(--oro);outline:none}.footer__news button{background:var(--oro);color:var(--ink);border:none;padding:11px 16px;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:opacity 200ms}.footer__news button:hover{opacity:0.85}.footer__consent{margin-top:12px;display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--greige);line-height:1.5}.footer__consent input{margin-top:3px;accent-color:var(--oro)}.footer__legal{max-width:var(--maxw);margin:clamp(24px,4vw,36px) auto 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:20px;border-top:1px solid rgba(201,184,152,0.22);font-size:12px;color:var(--ink-70)}.footer__legal a{color:var(--ink-70)}.footer__legal a:hover{color:var(--oro)}.sticky-cta{position:fixed;inset:auto 0 0 0;z-index:60;background:var(--ink);padding:12px 20px;display:flex;justify-content:center;gap:12px;transform:translateY(125%);opacity:0;transition:transform 620ms var(--ease-out),opacity 420ms var(--ease-out);will-change:transform}.sticky-cta.show{transform:translateY(0);opacity:1}.sticky-cta .btn{flex:1;max-width:340px}.rr-popup{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity 420ms var(--ease-out),visibility 420ms}.rr-popup.open{opacity:1;visibility:visible}.rr-popup__overlay{position:absolute;inset:0;background:rgba(45,42,38,0.6)}.rr-popup__card{position:relative;background:var(--paper);max-width:440px;width:100%;padding:clamp(32px,5vw,48px);border:1px solid var(--greige);transform:translate3d(0,12px,0) scale(0.985);transition:transform 560ms var(--ease-out)}.rr-popup.open .rr-popup__card{transform:none}.rr-popup__close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:26px;line-height:1;color:var(--ink-70);cursor:pointer}.rr-popup__close:hover{color:var(--ink)}.rr-popup .eyebrow{display:block;margin-bottom:14px}.rr-popup h2{font-family:var(--font-display);font-weight:400;font-size:clamp(24px,4vw,32px);letter-spacing:0.03em;line-height:1.15;color:var(--ink)}.rr-popup p{margin-top:14px;font-size:15px;line-height:1.6;color:var(--ink-70)}.rr-popup form{margin-top:22px;display:flex;flex-direction:column;gap:12px}.rr-popup input{border:1px solid var(--greige);background:var(--paper);color:var(--ink);padding:13px 14px;font-size:15px;font-family:inherit}.rr-popup input:focus{border-color:var(--ink);outline:none}.rr-popup__decline{background:none;border:none;margin-top:14px;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-70);cursor:pointer}.rr-popup__decline:hover{color:var(--ink)}.rr-popup__thanks{display:none}.rr-popup.done .rr-popup__body{display:none}.rr-popup.done .rr-popup__thanks{display:block}@media (min-width:1024px){.nav-desktop{display:flex;gap:20px}.menu-btn{display:none}.sticky-cta{display:none}}
/* === testimonials multi-card carousel (3 visible on desktop) === */
.testi-carousel{margin:0 auto;max-width:100%;overflow:hidden;width:100%}
.testi-carousel .carousel__track{display:flex;width:100%;align-items:stretch;transition:transform 780ms var(--ease-out)}
.testi-carousel .testi-slide{
  flex:0 0 100%;
  min-width:100%;
  max-width:100%;
  box-sizing:border-box;
  padding:0;
  display:flex!important;
  grid-template-columns:none!important;
  gap:0!important;
  align-items:stretch;
}
@media (min-width:640px){
  .testi-carousel .testi-slide{flex:0 0 50%;min-width:50%;max-width:50%;padding:0 10px}
}
@media (min-width:900px){
  .testi-carousel .testi-slide{flex:0 0 33.333%;min-width:33.333%;max-width:33.333%;padding:0 11px}
}
.testi-carousel .testi{
  width:100%;
  height:100%;
  margin:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:200px;
}
.testi-carousel + .carousel__controls,.reveal > .carousel__controls{margin-top:24px}
/* === apple motion system (SwiftUI spring-inspired) ===
   Curves: ease-out expo + soft spring (response≈0.3–0.6, damping≈0.7–0.8)
   Travel: short (12–18px). Duration: long ease-out. Stagger: 45–55ms. */
:root{
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.15, 0.64, 1);
  --ease-soft: cubic-bezier(0.25, 0.1, 0.25, 1);
  --ease: var(--ease-out);
  --dur-fast: 280ms;
  --dur-mid: 480ms;
  --dur-slow: 900ms;
}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
}

/* GPU-friendly compositing for animated layers */
.header,.btn,.card,.reveal,.carousel__track,.mobile-menu,.sticky-cta,.rr-popup__card,.reel .play{
  backface-visibility:hidden;
  -webkit-font-smoothing:antialiased;
}

/* ---- Reveals: Apple-soft entrance ---- */
.js .reveal{
  opacity:0;
  transform: translate3d(0, 16px, 0) scale(0.988);
  transition:
    opacity var(--dur-slow) var(--ease-out),
    transform var(--dur-slow) var(--ease-out);
  transition-delay: var(--d, 0ms);
  will-change: opacity, transform;
}
.js .reveal.in{
  opacity:1;
  transform: none;
  will-change: auto;
}

/* ---- Hero rise ---- */
@keyframes riseIn{
  from{ opacity:0; transform: translate3d(0,14px,0) scale(0.992); }
  to{ opacity:1; transform: none; }
}
.hero-anim > *{
  opacity:0;
  animation: riseIn 1.05s var(--ease-out) both;
}
.hero-anim > *:nth-child(1){ animation-delay: 50ms; }
.hero-anim > *:nth-child(2){ animation-delay: 120ms; }
.hero-anim > *:nth-child(3){ animation-delay: 190ms; }
.hero-anim > *:nth-child(4){ animation-delay: 260ms; }
.hero-anim > *:nth-child(5){ animation-delay: 330ms; }

/* ---- Buttons: spring press ---- */
.btn{
  transition:
    transform 480ms var(--ease-spring),
    opacity 300ms var(--ease-out),
    background-color 300ms var(--ease-out),
    color 300ms var(--ease-out),
    box-shadow 480ms var(--ease-out),
    border-color 300ms var(--ease-out) !important;
}
.btn:active{ transform: scale(0.97) !important; transition-duration: 120ms !important; }
.btn--primary:hover,
.btn--oro:hover,
.btn--secondary:hover{
  transform: translateY(-2px) scale(1.012);
}
.btn--ghost{ transition: color 300ms var(--ease-out) !important; }
.btn--ghost::after{
  transition: transform 480ms var(--ease-out) !important;
}

/* ---- Cards / media ---- */
.card{
  transition:
    transform 700ms var(--ease-out),
    border-color 400ms var(--ease-out) !important;
}
.card:hover{ transform: translateY(-5px); }
.card__photo img,
.card:hover .card__photo img{
  transition: transform 1.1s var(--ease-out) !important;
}
.card:hover .card__photo img{ transform: scale(1.035); }

/* ---- Header wordmark ---- */
.header__brand .wordmark{
  transition: transform 560ms var(--ease-out) !important;
}
.header{
  transition:
    border-bottom-color 400ms var(--ease-out),
    background-color 400ms var(--ease-out),
    box-shadow 400ms var(--ease-out) !important;
}
.nav-desktop a::after{
  transition: transform 420ms var(--ease-out) !important;
}

/* ---- Carousel ---- */
.carousel__track{
  transition: transform 820ms var(--ease-out) !important;
  will-change: transform;
}
.carousel__dots button{
  transition: width 420ms var(--ease-out), background-color 320ms var(--ease-out) !important;
}
.carousel__arrows button{
  transition: background-color 320ms var(--ease-out), color 320ms var(--ease-out), transform 420ms var(--ease-spring) !important;
}
.carousel__arrows button:hover{ transform: scale(1.04); }
.carousel__arrows button:active{ transform: scale(0.96); }

/* ---- Mobile menu: fade + soft slide (not hard wipe) ---- */
.mobile-menu{
  transform: translate3d(0, -3%, 0) !important;
  opacity: 0 !important;
  visibility: hidden;
  pointer-events: none;
  transition:
    transform 560ms var(--ease-out),
    opacity 400ms var(--ease-out),
    visibility 560ms !important;
}
.mobile-menu.open{
  transform: none !important;
  opacity: 1 !important;
  visibility: visible;
  pointer-events: auto;
}
.mobile-menu.open nav a{
  animation: menuLinkIn 620ms var(--ease-out) both;
}
.mobile-menu.open nav a:nth-child(1){ animation-delay: 60ms; }
.mobile-menu.open nav a:nth-child(2){ animation-delay: 100ms; }
.mobile-menu.open nav a:nth-child(3){ animation-delay: 140ms; }
.mobile-menu.open nav a:nth-child(4){ animation-delay: 180ms; }
.mobile-menu.open nav a:nth-child(5){ animation-delay: 220ms; }
.mobile-menu.open nav a:nth-child(6){ animation-delay: 260ms; }
.mobile-menu.open nav a:nth-child(7){ animation-delay: 300ms; }
.mobile-menu.open nav a:nth-child(8){ animation-delay: 340ms; }
@keyframes menuLinkIn{
  from{ opacity:0; transform: translate3d(0, 10px, 0); }
  to{ opacity:1; transform: none; }
}

/* ---- Sticky CTA / popup ---- */
.sticky-cta{
  transition: transform 640ms var(--ease-out), opacity 400ms var(--ease-out) !important;
}
.rr-popup{
  transition: opacity 420ms var(--ease-out), visibility 420ms !important;
}
.rr-popup__card{
  transition: transform 560ms var(--ease-out) !important;
}
.rr-popup.open .rr-popup__card{ transform: none; }

/* ---- Testi / filters / misc ---- */
.testi{
  transition: border-color 400ms var(--ease-out), transform 600ms var(--ease-out) !important;
}
.testi:hover{ transform: translateY(-2px); }
.gallery__filters button{
  transition: border-color 320ms var(--ease-out), color 320ms var(--ease-out), background-color 320ms var(--ease-out) !important;
}
.reel .play{
  transition: transform 480ms var(--ease-spring) !important;
}
.lang-toggle{
  transition: color 280ms var(--ease-out) !important;
}

/* Reduced motion: kill everything decorative */
@media (prefers-reduced-motion: reduce){
  .js .reveal,
  .js .reveal.in,
  .hero-anim > *,
  .btn,
  .card,
  .card__photo img,
  .carousel__track,
  .mobile-menu,
  .mobile-menu.open nav a,
  .sticky-cta,
  .rr-popup,
  .rr-popup__card,
  .header__brand .wordmark{
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
    filter: none !important;
  }
}
/* === square blend — booking zone only: white so Square feels native === */
.booking--square-blend{
  /* break out of .wrap to full viewport width */
  width:100vw;
  max-width:100vw;
  position:relative;
  left:50%;
  right:50%;
  margin-left:-50vw;
  margin-right:-50vw;
  margin-top:56px;
  background:#ffffff;
  border-block:1px solid #ebebeb;
  padding:clamp(40px,6vw,64px) 0 clamp(48px,7vw,72px);
}
.booking--square-blend .booking__inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding-left:clamp(20px,4vw,32px);
  padding-right:clamp(20px,4vw,32px);
}
.booking--square-blend .eyebrow{color:var(--oro-deep)}
.booking--square-blend h2,
.booking--square-blend #booking-h{
  color:var(--ink);
}
.booking--square-blend .booking-intro{
  color:var(--ink-70);
  max-width:640px;
}
.booking--square-blend .square-widget{
  background:#ffffff;
  border:1px solid #e5e5e5;
  margin-top:28px;
  /* remove greige frame so widget edge blends */
}
.booking--square-blend .square-widget iframe{
  background:#ffffff !important;
}
.booking--square-blend .booking-cta{
  margin-top:24px;
  gap:12px;
  padding:4px 0 0;
  background:#ffffff;
}
.booking--square-blend .booking-mobile-note,
.booking--square-blend .booking-note{
  color:#6a6864;
  background:#ffffff;
}
/* secondary btn on pure white: keep ink outline, no greige wash */
.booking--square-blend .btn--secondary{
  background:#ffffff;
  color:var(--ink);
  border:1px solid var(--ink);
}
.booking--square-blend .btn--secondary:hover{
  background:var(--ink);
  color:var(--paper);
}
.booking--square-blend .btn--primary{
  background:var(--ink);
  color:#ffffff;
}
/* === paper: near-original white, ~7% darker than pure white === */
:root{
  --paper:#F5F5F5;
  --greige-30:#EAE5DB;
}
body{background:var(--paper);}
.header{
  background:rgba(245,245,245,0.94)!important;
}
.header.scrolled{
  background:rgba(245,245,245,0.98)!important;
}

/* --- Reviews (real, verified) --- */
.testi__stars{display:block;color:var(--oro-deep);font-size:13px;letter-spacing:0.18em;margin-bottom:10px}
.testi__src{display:block;margin-top:6px;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-70);opacity:0.75}

/* invitation card (3rd slot until a real 3rd review exists) */
.testi--invite{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:var(--greige-30)}
.testi--invite .testi__stars{color:var(--greige);opacity:0.7}
.testi--invite p{font-family:var(--font-text);font-style:normal;color:var(--ink-70);font-size:15px}
.testi--invite .btn{margin-top:16px}
.testi--invite::before{content:none}
/* ============ DESKTOP SCALE-UP (evita que se vea "móvil estirado") ============ */
@media (min-width:1280px){
  :root{--maxw:1340px}
  body{font-size:18px}
  .hero__inner{padding-block:clamp(64px,6vw,108px);gap:clamp(48px,5vw,72px)}
  .hero h1{font-size:clamp(56px,5.6vw,86px)}
  .hero__sub{font-size:19px;max-width:520px}
  .hero__cta{margin-top:38px}
  .section{padding-block:clamp(88px,7vw,132px)}
  .h2{font-size:clamp(34px,3.4vw,52px)}
  .sec-head{max-width:780px}
  .sec-head p{font-size:17px}
  .card__body{padding:30px 30px 28px}
  .card__body h3{font-size:28px}
  .card__body p{font-size:16px}
  .testi p{font-size:17px}
  .gallery__grid{gap:20px}
  .page-head h1{font-size:clamp(52px,5vw,76px)}
  .page-head .lead{font-size:19px;max-width:660px}
  .svc-item h3{font-size:24px}
  .svc-item .price{font-size:23px}
  .footer__grid{gap:44px}
}
@media (min-width:1600px){
  :root{--maxw:1440px}
  .hero h1{font-size:92px}
}
/* Academy in desktop nav, marked as upcoming */
.nav-desktop .nav-soon{position:relative;padding-right:44px}
.nav-desktop .nav-soon::before{content:"SOON";position:absolute;right:0;top:50%;transform:translateY(-52%);
  font-size:8px;letter-spacing:0.14em;color:var(--oro-deep);border:1px solid var(--oro-deep);
  padding:2px 5px;line-height:1;opacity:0.85}
.nav-desktop .nav-soon:hover::before{opacity:1;background:var(--oro-deep);color:var(--paper)}
/* ============ TYPE SCALE +12% (legibilidad; no toca glifos/íconos) ============ */
body{font-size:19px}
.skip-link{font-size:14px}
.eyebrow{font-size:13px}
.h2{font-size:clamp(31px,5.5vw,49px)}
.btn{font-size:13px}
.nav-desktop a{font-size:13px}
.lang-toggle{font-size:12px}
.mobile-menu nav a,.mobile-menu nav span{font-size:clamp(33px,7.5vw,46px)}
.hero h1{font-size:clamp(45px,8.6vw,85px)}
.hero__sub{font-size:clamp(18px,1.75vw,20px)}
.hero__micro{font-size:13px}
.hero__badge{font-size:12px}
.photo-ph span{font-size:12px}
.sec-head p{font-size:18px}
.card__body h3{font-size:clamp(23px,2.2vw,30px)}
.card__body p{font-size:17px}
.card__link{font-size:12px}
.step .n{font-size:31px}
.step .t{font-size:20px}
.step .d{font-size:16px}
.testi p{font-size:18px}
.testi footer{font-size:12px}
.testi__stars{font-size:14px}
.testi__src{font-size:11px}
.testi--invite p{font-size:17px}
.carousel__slide .tag{font-size:13px}
.carousel__slide .title{font-size:clamp(29px,3.3vw,40px)}
.carousel__slide .note{font-size:clamp(20px,2.2vw,26px)}
.reel .lbl{font-size:12px}
.ig-link{font-size:13px}
.gallery__filters button{font-size:12px}
.quote-band blockquote{font-size:clamp(25px,3.3vw,34px)}
.quote-band cite{font-size:13px}
.page-head h1{font-size:clamp(42px,7.5vw,76px)}
.page-head .lead{font-size:20px}
.facts span{font-size:12px}
.block-h3{font-size:clamp(25px,2.2vw,31px)}
.includes-list .row{font-size:19px}
.panel-soft p{font-size:18px}
.booking h2{font-size:clamp(27px,4.4vw,38px)}
.service-tag{font-size:12px}
.booking-intro{font-size:17px}
.booking-note{font-size:13px}
.booking-fallback{font-size:14px}
.booking-mobile-note{font-size:16px}
.cal-head .month{font-size:14px}
.cal-grid.weekdays div{font-size:12px}
.cal-grid.days button{font-size:14px}
.times .label{font-size:13px}
.time-slots button{font-size:14px}
.confirm-msg{font-size:17px}
.featured .name{font-size:clamp(27px,4.4vw,38px)}
.featured p{font-size:17px}
.svc-cat h2{font-size:clamp(33px,5.5vw,49px)}
.svc-item h3{font-size:clamp(21px,2.2vw,26px)}
.svc-item .price{font-size:23px}
.svc-item p{font-size:16px}
.disclaimer{font-size:14px}
.coming h1{font-size:clamp(45px,7.7vw,80px)}
.coming .lead{font-size:19px}
.urgency-pill{font-size:12px}
.signup input{font-size:17px}
.signup .note{font-size:13px}
.signup.is-done .done{font-size:20px}
.map-meta{font-size:16px}
.prefooter__line{font-size:17px}
.prefooter__form input[type="email"]{font-size:17px}
.prefooter__consent{font-size:13px}
.footer__brand p{font-size:12px}
.footer__col .cap{font-size:12px}
.footer__links a,.footer__links span{font-size:16px}
.footer__col address{font-size:16px}
.footer__news label{font-size:16px}
.footer__news input{font-size:16px}
.footer__news button{font-size:12px}
.footer__consent{font-size:13px}
.footer__legal{font-size:13px}
.rr-popup h2{font-size:clamp(27px,4.4vw,36px)}
.rr-popup p{font-size:17px}
.rr-popup input{font-size:17px}
.rr-popup__decline{font-size:13px}
@media (min-width:1280px){
  body{font-size:20px}
  .hero h1{font-size:clamp(62px,6vw,96px)}
  .hero__sub{font-size:21px}
  .h2{font-size:clamp(38px,3.7vw,58px)}
  .sec-head p{font-size:19px}
  .card__body h3{font-size:31px}
  .card__body p{font-size:18px}
  .testi p{font-size:19px}
  .page-head h1{font-size:clamp(58px,5.4vw,85px)}
  .page-head .lead{font-size:21px}
  .svc-item h3{font-size:27px}
  .svc-item .price{font-size:26px}
}
@media (min-width:1600px){.hero h1{font-size:102px}}
/* hero photo con más presencia en desktop */
@media (min-width:900px){.hero__inner{grid-template-columns:0.94fr 1.06fr}}
@media (min-width:1280px){.hero__inner{grid-template-columns:0.88fr 1.12fr}}
/* balance hero: foto grande sin romper el H1 en 3 líneas */
@media (min-width:1280px){
  .hero__inner{grid-template-columns:0.97fr 1.03fr}
  .hero h1{font-size:clamp(58px,5.2vw,80px)}
}
@media (min-width:1600px){.hero h1{font-size:88px}}
/* Hero CTA: jerarquía clara (botón dominante > garantía > link secundario) */
.hero__cta{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin-top:32px}
.btn--lg{font-size:15px;letter-spacing:0.2em;padding:22px 44px;min-height:64px}
.hero__cta .hero__micro{margin-top:14px;margin-bottom:0}
.hero__secondary{margin-top:24px}
@media (min-width:1280px){
  .btn--lg{font-size:16px;padding:25px 52px;min-height:70px}
  .hero__cta .hero__micro{font-size:14px}
}
/* Palabras clave resaltadas (bloque oro, estilo editorial) */
.mark{background:var(--oro);color:var(--ink);padding:0.04em 0.26em 0.12em;
  box-decoration-break:clone;-webkit-box-decoration-break:clone}
.h2 .mark{line-height:1.25}
/* Quote + CTA como una sola unidad */
.quote-band + .quote-cta,.quote-cta{margin-top:28px;text-align:center}
.quote-cta .hero__micro{margin-top:14px}
/* About · bloque editorial "My work" (sustituye el muro de texto) */
.belief{margin-top:clamp(56px,7vw,88px);padding-top:clamp(32px,4vw,44px);border-top:1px solid var(--greige)}
.belief .eyebrow{display:block;margin-bottom:20px}
.belief__statement{font-family:var(--font-display);font-weight:400;
  font-size:clamp(26px,3.4vw,42px);line-height:1.28;letter-spacing:0.01em;color:var(--ink);max-width:900px}
.belief__cols{display:grid;grid-template-columns:1fr;gap:22px;margin-top:clamp(28px,3vw,40px);max-width:900px}
@media (min-width:820px){.belief__cols{grid-template-columns:1fr 1fr;gap:44px}}
.belief__cols p{color:var(--ink-70);line-height:1.7;font-size:17px}
@media (min-width:1280px){.belief__cols p{font-size:18px}}

/* ================= SISTEMA DE PÁGINA (mismo formato en TODAS las tabs) =================
   Anatomía obligatoria de cada página interna:
     .page-head  -> eyebrow + h1 (con .mark) + .lead      [alineado a la IZQUIERDA]
     contenido   -> secciones con .page-section
     .page-cta   -> botón + línea de apoyo                [alineado a la IZQUIERDA]
   No usar text-align inline ni márgenes inline: usar estas clases. */
.page-head{max-width:760px;text-align:left}
.page-head .eyebrow{display:block}
.page-head h1{margin-top:14px}
.page-head .lead{margin-top:18px;color:var(--ink-70)}
.page-section{margin-top:clamp(48px,6vw,72px)}
.page-section--divided{padding-top:clamp(32px,4vw,44px);border-top:1px solid var(--greige)}
.page-media{margin-top:clamp(32px,4vw,48px);max-width:900px}
.page-media img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.page-cta{margin-top:clamp(48px,6vw,72px);text-align:left;display:flex;flex-direction:column;align-items:flex-start}
.page-cta .hero__micro{margin-top:14px}
.page-cta .btn+.btn{margin-top:18px}
/* la urgencia y el signup heredan la alineación de la página */
.wrap > .urgency-row{justify-content:flex-start}
.page-signup{max-width:520px;margin-top:clamp(32px,4vw,48px)}
/* Resaltado de palabra clave: subrayado dorado (reemplaza el bloque, que se
   rompía escalonado al saltar de línea y ensuciaba la serif editorial) */
.mark{background:none;color:inherit;padding:0 0 0.04em;
  background-image:linear-gradient(to right,var(--oro),var(--oro));
  background-repeat:no-repeat;background-size:100% 0.16em;background-position:0 92%;
  box-decoration-break:clone;-webkit-box-decoration-break:clone}
.h2 .mark,.belief__statement .mark{background-size:100% 0.14em}
/* CTA principal un punto más grande (hero, banda de consulta y cierres de página) */
.btn--lg{font-size:16px;padding:23px 46px;min-height:67px}
@media (min-width:1280px){.btn--lg{font-size:17px;padding:26px 55px;min-height:74px}}
/* Quote: sin slab de color, filete dorado y más presencia */
.quote-band{background:none;text-align:center}
.quote-band--inline{margin-top:clamp(56px,7vw,80px);padding-block:0}
.quote-band__rule{display:block;width:54px;height:1px;background:var(--oro-deep);margin:0 auto clamp(26px,3vw,36px);opacity:0.85}
.quote-band blockquote{font-size:clamp(27px,3.6vw,40px);line-height:1.35;max-width:860px}
.quote-band cite{margin-top:26px;color:var(--oro-deep);opacity:0.9}
/* Dirección: +15% y jerarquía clara (evitar que la clienta vaya al estudio equivocado) */
.map-meta{font-size:18px;line-height:1.8;color:var(--ink-70)}
.map-meta strong{display:block;font-family:var(--font-display);font-weight:400;
  font-size:23px;letter-spacing:0.05em;color:var(--ink);margin-bottom:6px}
.map-meta a{font-size:17px;border-bottom:1px solid var(--oro-deep);padding-bottom:1px}
.map-meta a:hover{border-color:var(--ink)}
@media (min-width:1280px){
  .map-meta{font-size:19px}
  .map-meta strong{font-size:25px}
  .map-meta a{font-size:18px}
}
/* Resaltado descartado por JD: el texto va limpio, sin bloque ni subrayado.
   Los spans .mark se conservan solo porque llevan los data-en/data-es del i18n. */
.mark{background:none!important;background-image:none!important;padding:0!important;color:inherit}
/* Cierre de página: quote + CTA como una sola unidad, alineados a la izquierda
   igual que el resto del sistema (antes la quote iba centrada y el CTA a la
   izquierda, y se veía desalineado). */
.page-closing{margin-top:clamp(56px,7vw,84px);padding-top:clamp(32px,4vw,44px);
  border-top:1px solid var(--greige);text-align:left}
.page-closing .quote-band__rule{display:none}
.page-closing blockquote{font-family:var(--font-italic);font-style:italic;
  font-size:clamp(24px,2.9vw,34px);line-height:1.4;color:var(--ink);max-width:760px;margin:0}
.page-closing cite{display:block;margin-top:18px;font-family:var(--font-text);font-style:normal;
  font-size:13px;letter-spacing:0.18em;text-transform:uppercase;color:var(--oro-deep)}
.page-closing__cta{margin-top:clamp(32px,4vw,44px)}
/* FIX alineación: estas cajas se auto-centraban (margin:auto) dentro del layout
   izquierdo del sistema de página. Causa del desajuste en /cursos y /tienda. */
.wrap > .urgency-row,.urgency-row.page-section{justify-content:flex-start;margin-left:0;margin-right:0;max-width:none}
.page-signup,.signup.page-signup{margin-left:0;margin-right:0}
/* Aviso de scroll del widget de Square */
.scroll-hint{margin:0 0 12px;font-size:15px;line-height:1.6;color:var(--ink-70);
  display:flex;align-items:center;gap:9px}
.scroll-hint::before{content:"↕";font-size:17px;color:var(--oro-deep);flex:none}

/* ============ MARCO DE FOTO (sutil, editorial) ============
   Hairline exterior + segundo filete por fuera. Nunca cruza la imagen. */
.hero__media,.page-media,.gallery__item,.card__photo,.reel,
.carousel__slide:not(.testi-slide),.ambiance-wrap{
  position:relative;outline:1px solid rgba(45,42,38,.13);outline-offset:0}
.hero__media::after,.page-media::after,.gallery__item::after,.card__photo::after,
.reel::after,.carousel__slide:not(.testi-slide)::after,.ambiance-wrap::after{
  content:"";position:absolute;inset:-7px;
  border:1px solid rgba(45,42,38,.09);
  pointer-events:none;z-index:0}
@media (max-width:640px){
  .hero__media::after,.page-media::after,.gallery__item::after,.card__photo::after,
  .reel::after,.carousel__slide:not(.testi-slide)::after,.ambiance-wrap::after{inset:-5px}
}

/* ===== MÓVIL: título -> foto -> CTA -> resto ===== */
@media (max-width:899px){
  .hero__inner{align-items:start;row-gap:22px}
  .hero__copy{display:contents}
  .hero__eyebrow{order:1}
  .hero .display{order:2;margin-top:10px;font-size:clamp(34px,9vw,46px);line-height:1.06}
  .hero__media{order:3;margin-top:6px}
  .hero__sub{order:4;margin-top:2px}
  .hero__cta{order:5}
}
@media (max-width:640px){.hero__badge{left:0;bottom:18px}}

/* ===== SQUARE: el calendario SIEMPRE visible, tambien en movil ===== */
@media (max-width:767px){
  .square-widget{display:block;min-height:1180px;margin-top:12px;
    -webkit-overflow-scrolling:touch}
  .square-widget iframe{height:1320px !important;min-height:1320px !important}
  .scroll-hint{font-size:14px}
}
@media (max-width:420px){
  .square-widget{min-height:1260px}
  .square-widget iframe{height:1400px !important;min-height:1400px !important}
}

/* ===== Formularios de captacion (waitlist / newsletter) ===== */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;pointer-events:none}
.page-signup form{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.page-signup .lead-in{width:100%;padding:14px 16px;border:1px solid var(--greige);
  background:#fff;color:var(--ink);font-family:var(--font-text);font-size:16px;border-radius:0}
.page-signup .lead-in:focus{outline:none;border-color:var(--oro-deep)}
.page-signup .lead-in::placeholder{color:var(--ink-70);opacity:.75}
.page-signup form .btn{margin-top:4px;align-self:flex-start}
.page-signup .note{margin-top:10px;color:var(--ink-70);font-size:14px;line-height:1.6}
.page-signup .eyebrow{margin-bottom:4px}
@media (max-width:640px){.page-signup form .btn{align-self:stretch;text-align:center}}
