/* Dirección visual: una portada fotográfica y un trazo que une arte y cuidado. */
:root{--olive:#3d4636;--olive-dark:#252f24;--ease:cubic-bezier(.16,1,.3,1)}
.site-header{background:var(--ivory);padding-top:14px;padding-bottom:14px;border-bottom:0}.site-header .brand-name{font-size:35px}.site-header .button{border-radius:40px}.desktop-nav a{position:relative}.desktop-nav a:after{content:'';position:absolute;bottom:6px;left:0;height:1px;width:100%;background:var(--olive);transform:scaleX(0);transform-origin:left;transition:transform .3s}.desktop-nav a:hover:after{transform:scaleX(1)}
.button{border-radius:40px;padding:17px 25px;gap:22px;transition:background .3s,color .3s,transform .3s var(--ease),box-shadow .3s}.button svg{transition:transform .4s var(--ease)}.button:hover{gap:22px;transform:translateY(-2px);box-shadow:0 8px 20px #24302218}.button:hover svg{transform:translateX(4px)}.button:active{transform:translateY(0)}.text-link svg{transition:transform .3s}.text-link:hover svg{transform:translate(3px,-2px)}
.hero-cover{display:block;max-width:none;position:relative;isolation:isolate;min-height:790px;padding:0 var(--space);background:var(--olive-dark);color:var(--ivory);overflow:hidden}
.hero-cover .hero-photo{position:absolute;inset:0 0 0 43%;height:auto;min-height:0;max-height:none;margin:0;z-index:-2}
.hero-cover .hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#252f24 0%,#252f2480 17%,transparent 55%)}
.hero-cover .hero-photo>img{height:100%;object-fit:cover;object-position:58% 43%}
.hero-cover .hero-photo figcaption{position:absolute;left:auto;right:var(--space);bottom:35px;background:none;color:var(--ivory);padding:0;display:block;font-family:var(--serif);font-size:30px;text-shadow:0 2px 12px #20251b}
.hero-cover .hero-photo figcaption span{display:block;font-family:var(--sans);font-size:12px;margin-top:5px;text-align:left}
.hero-cover .hero-copy{padding:85px 0 140px;max-width:1000px;display:block}
.hero-cover h1{font-size:clamp(72px,8.8vw,126px);line-height:.91;letter-spacing:-.035em;position:relative;margin:0;color:var(--ivory);text-wrap:initial;animation:cover-enter 1.1s var(--ease) both}
.hero-cover h1 em{color:var(--sand);font-size:1.08em;font-weight:400;display:inline-block;margin-top:12px}
.hero-cover .hero-copy>p{color:#ebe9df;font-size:16px;max-width:350px;margin-top:45px;line-height:1.85}
.hero-cover .hero-actions{display:flex;flex-direction:column;align-items:flex-start;margin-top:28px;gap:17px}
.hero-cover .button{background:var(--ivory);color:var(--olive-dark);border-color:var(--ivory)}.hero-cover .button:hover{background:var(--sand)}
.hero-cover .text-link{font-size:13px;color:var(--ivory)}
.hero-cover .hero-bottom{position:absolute;bottom:30px;left:var(--space);right:auto;border:0;padding:0;color:var(--ivory);gap:40px;font-size:13px}
.hero-cover .hero-bottom p{font-family:var(--serif);font-size:27px;line-height:1.1}.hero-cover .hero-bottom small{display:block;font-family:var(--sans);font-size:11px;margin-top:10px;color:#e0e0d5}
.hero-seal{position:absolute;right:30%;bottom:95px;width:145px;height:145px;border-radius:50%;background:var(--sand);color:var(--olive-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-decoration:none;gap:14px;z-index:2;transform:rotate(-9deg);transition:transform .6s var(--ease)}.hero-seal span{font-size:12px;line-height:1.5}.hero-seal svg{width:25px;height:25px}.hero-seal:hover{transform:rotate(0) translateY(-5px)}
.art-stroke{position:absolute;left:33%;top:300px;width:49%;height:170px;color:var(--sand);stroke-width:1;z-index:-1;pointer-events:none;opacity:.7}.art-stroke path{stroke-dasharray:1100;stroke-dashoffset:0;animation:art-write 2.5s var(--ease) both}
.intent-paths{padding-top:35px;padding-bottom:35px;background:var(--sand);max-width:none}.intent-paths a{border-color:#b9ac98}.intent-paths>p{font-size:32px}
.philosophy{background:var(--ivory);color:var(--cocoa);padding-top:130px}.philosophy .section-heading{display:block;max-width:1000px;text-align:center}.philosophy h2{font-size:clamp(56px,6.8vw,94px);line-height:1}.philosophy h2 em{color:var(--olive)}.philosophy .section-heading>p{color:var(--muted);max-width:570px;margin:35px auto 0;font-size:17px}.pillars{margin-top:65px;gap:45px}.pillars article{border-color:var(--line)}.pillars p{color:var(--muted)}.philosophy>.light{color:var(--olive);display:table;margin:35px auto 0}
.about{background:var(--sand);max-width:none;gap:10%;padding-top:100px;padding-bottom:100px}.about-image{padding-top:0;position:relative}.about-image:before{content:'';position:absolute;inset:25px -25px -25px 25px;border:1px solid #9f947f;z-index:0;pointer-events:none}.about-image img{position:relative}.about-image .image-note{position:relative;margin-top:40px}.about-copy{padding-top:35px}.about-copy h2{font-size:clamp(55px,5.5vw,78px)}
.first-visit{background:var(--paper);padding-top:115px}.steps{counter-reset:visit}.step-num{font-style:italic;font-size:65px}.steps h3{font-size:31px}.treatments h2{font-size:clamp(50px,5.8vw,82px)}
.treatment{transition:padding .4s var(--ease),background .4s}.treatment:hover{padding-left:18px;padding-right:18px;background:#eee9df}.treatment-guide{border-radius:0;background:var(--olive);color:var(--ivory)}.treatment-guide p{color:#e0e0d5}.treatment-guide:hover{background:var(--olive-dark);padding:36px}
.materials{background:var(--olive-dark);color:var(--ivory);max-width:none}.materials em{color:var(--sand)}.materials .pending{color:#e4c4b1}.materials .text-link{color:var(--ivory)}
.stories h2{font-size:clamp(52px,6vw,84px)}.case-grid figcaption{border-bottom:1px solid var(--line);padding-bottom:35px}.case-grid img{transition:filter .4s}.case-grid a:hover img{filter:brightness(1.04)}.testimonial{padding:70px 50px;background:var(--sand);max-width:1100px}.testimonial blockquote{font-size:clamp(42px,4.6vw,65px)}
.orientation{background:var(--olive-dark);max-width:none}.orientation h2{font-size:clamp(50px,5.5vw,78px)}.choice{transition:padding .3s,background .3s}.choice:hover{padding-left:12px;background:#ffffff08}.choice:has(input:checked){background:#ffffff10;padding-left:12px}.choice input{accent-color:var(--sand)}
.booking{background:var(--olive);color:var(--ivory);max-width:none}.booking h2 em{color:var(--sand)}.booking-copy .booking-note{color:#e0e0d5}.booking-form{color:var(--cocoa);border-radius:16px;padding:40px}.booking-copy{position:sticky;top:130px}.booking-copy h2{font-size:clamp(52px,5.7vw,82px)}.footer{padding-top:90px;background:#20291f}.footer .brand-name{font-size:57px}
.service-aside{border-radius:0 70px 0 0}.service-closing{background:var(--olive-dark);color:var(--ivory)}.service-closing em{color:var(--sand)}.service-closing .button{background:var(--ivory);color:var(--olive)}
@keyframes cover-enter{from{transform:translateY(25px);opacity:.3}to{transform:translateY(0);opacity:1}}
@keyframes art-write{from{stroke-dashoffset:1100}to{stroke-dashoffset:0}}
@media(max-width:1100px){.hero-cover{min-height:780px}.hero-cover h1{font-size:90px}.hero-cover .hero-copy{padding-top:85px}.hero-cover .hero-photo{left:36%}.hero-seal{right:21%;width:125px;height:125px}.hero-cover .hero-photo figcaption{right:30px}.hero-cover .hero-bottom{gap:25px}.hero-cover .hero-bottom>a{display:none}.hero-cover .hero-copy>p{max-width:310px}.art-stroke{top:270px;left:25%;width:65%}}
@media(max-width:760px){.hero-cover{min-height:1040px;padding:0 24px;display:block}.hero-cover .hero-photo{inset:390px 0 0 0;max-height:none}.hero-cover .hero-photo:after{background:linear-gradient(180deg,#252f24 0%,#252f2400 30%,#252f2460 100%)}.hero-cover .hero-photo>img{object-position:55% 35%}.hero-cover .hero-copy{padding:45px 0 0;max-width:none}.hero-cover h1{font-size:clamp(60px,10.5vw,86px);line-height:.95}.hero-cover h1 em{margin-top:6px}.hero-cover .hero-copy>p{max-width:460px;font-size:15px;margin-top:25px;line-height:1.7}.hero-cover .hero-actions{flex-direction:row;align-items:center;gap:22px;flex-wrap:wrap;margin-top:25px}.hero-cover .hero-actions .button{font-size:13px;padding:15px 20px}.hero-cover .hero-actions .text-link{font-size:12px}.hero-cover .hero-bottom{bottom:28px;left:24px;max-width:220px}.hero-cover .hero-bottom p{font-size:25px}.hero-cover .hero-bottom small{font-size:11px;line-height:1.6}.hero-cover .hero-photo figcaption{right:24px;bottom:150px;font-size:28px}.hero-seal{bottom:25px;right:24px;width:110px;height:110px}.hero-seal span{font-size:11px}.art-stroke{top:175px;left:10%;width:90%;height:130px}.philosophy{padding-top:80px}.philosophy h2{font-size:55px}.philosophy .section-heading>p{font-size:16px}.pillars{gap:35px 25px}.about{padding-top:65px;padding-bottom:65px}.about-copy{padding-top:0}.about-copy h2{font-size:52px}.about-image{width:calc(100% - 20px);align-self:flex-start}.about-image:before{inset:18px -18px -18px 18px}.about-image .image-note{margin-top:30px}.treatments h2,.stories h2{font-size:50px}.treatment:hover{padding-left:0;padding-right:0}.treatment-guide:hover{padding:28px}.testimonial{padding:40px 24px}.testimonial blockquote{font-size:39px}.orientation h2{font-size:49px}.booking-copy{position:static}.booking-copy h2{font-size:49px}.booking-form{padding:28px 22px}.site-header .brand-name{font-size:27px}.footer .brand-name{font-size:44px}.mobile-cta{border-radius:40px;left:24px;right:24px;bottom:16px}}
@media(max-width:420px){.hero-cover{min-height:1040px}.hero-cover h1{font-size:59px}.hero-cover .hero-actions{gap:15px}.hero-cover .hero-actions .text-link{max-width:135px;font-size:11px}.hero-cover .hero-photo{top:410px}.hero-cover .hero-copy>p{max-width:310px}.hero-cover .hero-photo figcaption{bottom:165px}.hero-cover .hero-bottom{max-width:185px}.hero-cover .hero-bottom p{font-size:23px}.hero-seal{width:100px;height:100px;right:20px}.philosophy h2{font-size:46px}.pillars h3{font-size:27px}.treatments h2,.stories h2{font-size:45px}.site-header .brand-name{font-size:25px}}
@media(prefers-reduced-motion:reduce){.hero-cover h1,.art-stroke path{animation:none}.button,.hero-seal,.treatment,.choice,.case-grid img{transition:none}.button:hover,.hero-seal:hover{transform:none}}
@supports (animation-timeline:view()){
 .about-image img{animation:portrait-arrival linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
 @keyframes portrait-arrival{from{clip-path:inset(10% 0 0 0);transform:translateY(30px)}to{clip-path:inset(0);transform:translateY(0)}}
}
.site-header .button{gap:8px}
@media(prefers-reduced-motion:reduce){.about-image img{animation:none!important;transform:none;clip-path:none}}
@media(max-width:760px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.steps li{min-width:0}.steps h3{font-size:26px;overflow-wrap:break-word}}
@media(max-width:360px){.steps h3{font-size:24px}}
/* Foco visible con contraste en cada superficie, también al navegar por teclado. */
.hero-cover :focus-visible,.materials :focus-visible,.orientation :focus-visible,.booking :focus-visible,.footer :focus-visible,.service-closing :focus-visible,.treatment-guide :focus-visible{outline-color:var(--sand)}
.booking-form :focus-visible,.orientation select:focus-visible{outline-color:var(--clay)}

/* Firma tipográfica e iconos: sin sello sobre la fotografía. */
.brand-name{display:flex;align-items:baseline;gap:.18em}.brand-first{font-weight:500;letter-spacing:-.035em}.brand-last{font-weight:400;font-style:italic;letter-spacing:-.025em}.brand-sub{letter-spacing:.19em;font-size:10px;margin-top:7px}.site-header .brand-name{font-size:36px}.footer .brand-name{font-size:60px}
.button svg,.text-link svg,.hero-bottom svg,.intent-paths svg,.service-detail-link svg{stroke-width:1.2;stroke-linecap:butt;stroke-linejoin:miter}
.button svg,.text-link svg,.intent-paths svg{width:27px;height:21px}.button svg{flex-shrink:0}.button:hover svg{transform:translateX(5px)}.text-link:hover svg{transform:translateX(3px)}.hero-cover .hero-photo figcaption{bottom:35px}.mobile-menu svg{stroke-width:1.2}
@media(max-width:650px){.site-header .brand-name{font-size:28px}.footer .brand-name{font-size:47px}.hero-cover .hero-photo figcaption{bottom:170px}.hero-cover .hero-bottom{max-width:260px}.hero-cover .hero-actions .button{gap:12px}.hero-cover .hero-actions .text-link svg{width:19px}}
@media(max-width:360px){.site-header .brand-name{font-size:25px}}

/* Botones editoriales: geometría precisa, sin pastillas ni rebotes. */
.button,.site-header .button,.mobile-cta{border-radius:3px;min-height:56px;padding:17px 23px;gap:26px;position:relative;overflow:hidden;isolation:isolate;box-shadow:none;transform:none;letter-spacing:.015em;font-weight:500;transition:background .28s ease,color .28s ease,border-color .28s ease}
.button::before{content:'';position:absolute;inset:0;background:currentColor;opacity:0;z-index:-1;transform:translateX(-101%);transition:transform .55s var(--ease),opacity .4s;pointer-events:none}
.button:hover::before{transform:translateX(0);opacity:.06}
.button:hover,.button:active{gap:26px;transform:none;box-shadow:none}
.button>svg{width:30px;height:22px;margin-left:5px;stroke-width:1.15;transition:transform .4s var(--ease)}
.button:hover>svg{transform:translateX(4px)}
.button.small,.site-header .button{min-height:47px;padding:12px 19px;font-size:13px;gap:8px}
.hero-cover .button{background:var(--ivory);border-color:var(--ivory);color:var(--olive-dark)}
.hero-cover .button:hover{background:var(--sand);border-color:var(--sand)}
.hero-cover .hero-actions>.button{padding:18px 24px;min-height:60px}
.button.secondary{background:transparent;border-color:currentColor}
.text-link{border-bottom-color:color-mix(in srgb,currentColor 40%,transparent);transition:border-color .25s ease,gap .3s var(--ease);padding-bottom:9px}.text-link:hover{border-bottom-color:currentColor}
.booking-form>.button,.request-result .button{border-radius:3px;min-height:58px;justify-content:space-between;padding-inline:23px}
.mobile-cta{box-shadow:0 5px 18px #17201520;border:1px solid #929783;justify-content:space-between;padding:14px 20px;min-height:54px;bottom:16px}
@media(max-width:650px){.site-header>.button{min-height:43px;padding:10px 13px;font-size:12px}.hero-cover .hero-actions>.button{min-height:54px;padding:15px 19px;font-size:13px;gap:15px}.hero-cover .hero-actions>.button>svg{width:27px;margin-left:0}.mobile-cta{left:20px;right:20px}.button{font-size:14px}.button:hover{gap:26px}}
@media(prefers-reduced-motion:reduce){.button,.button::before,.button>svg,.text-link{transition:none}.button:hover>svg{transform:none}}
@media(max-width:650px){.mobile-cta{position:fixed;z-index:30}}

/* Composición móvil: el retrato abre la página y el texto lo acompaña. */
@media(max-width:650px){
 .site-header>.button{display:none}.site-header .mobile-menu{margin-left:auto}.site-header{padding-block:12px}
 .hero-cover{min-height:0;padding:0 24px 28px;display:flex;flex-direction:column}
 .hero-cover .hero-photo{inset:0 0 auto;height:490px;position:absolute;z-index:-2}
 .hero-cover .hero-photo>img{object-position:52% 25%;height:100%}
 .hero-cover .hero-photo:after{background:linear-gradient(180deg,transparent 35%,#252f2426 48%,#252f24d9 76%,#252f24 100%)}
 .hero-cover .hero-photo figcaption{display:none}
 .hero-cover .hero-copy{padding:305px 0 0;display:block}
 .hero-cover h1{font-size:clamp(39px,11.9vw,49px);line-height:.98;letter-spacing:-.025em;max-width:370px}
 .hero-cover h1 em{margin-top:4px;font-size:1.1em}
 .hero-cover .hero-copy>p{font-size:15px;line-height:1.65;margin-top:18px;max-width:360px}
 .hero-cover .hero-actions{margin-top:22px;display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;align-items:center}
 .hero-cover .hero-actions>.button{min-height:52px;padding:14px 17px;gap:12px}
 .hero-cover .hero-actions>.text-link{font-size:12px;max-width:none}
 .hero-cover .hero-bottom{position:static;margin-top:27px;padding-top:20px;border-top:1px solid #737b68;max-width:none;display:block}
 .hero-cover .hero-bottom p{font-size:23px}.hero-cover .hero-bottom small{font-size:11px;margin-top:7px}
 .hero-cover .art-stroke{display:none}
 .mobile-cta{bottom:max(12px,env(safe-area-inset-bottom));left:16px;right:16px}
}
@media(max-width:360px){.hero-cover{padding-inline:20px}.hero-cover .hero-copy{padding-top:270px}.hero-cover .hero-photo{height:450px}.hero-cover h1{font-size:39px}}
/* Componentes móviles: lectura por capas, registros completos y formulario agrupado. */
.treatment-content{display:contents}.treatment-toggle{display:none}.treatment-content>.service-detail-link{grid-column:1;grid-row:4}.treatment-content>p{grid-column:2;grid-row:1/3;font-size:15px;color:var(--muted)}.treatment-content>details{grid-column:2;grid-row:3;margin:0}.treatment-content>.text-link{grid-column:3;grid-row:1/4;align-self:center;justify-self:end;font-size:13px}
.case-photo{border:0;padding:0;background:transparent;display:block;width:100%;cursor:zoom-in}.case-photo img{width:100%;height:auto}.form-group{border:0;padding:0;margin:0 0 24px;min-width:0}.form-group legend{font-family:var(--serif);font-size:25px;padding:0;margin-bottom:18px}.form-group>.field{margin-bottom:20px}.form-group>.form-row{margin-bottom:0}
@media(max-width:650px){
 .treatments.section,.stories.section{padding-top:65px;padding-bottom:65px}.treatments .section-heading,.stories .section-heading{margin-bottom:35px}.treatments h2,.stories h2{font-size:43px;line-height:1.05}.treatments .section-heading>p,.stories .section-heading>p{font-size:15px;line-height:1.75}
 .treatment-grid{border-top:0}.treatment{display:flex;flex-direction:column;align-items:stretch;padding:27px 0;border-top:1px solid var(--line);border-bottom:0;gap:0}.treatment-category{font-size:12px;letter-spacing:.03em;margin:0;color:var(--muted);order:0}.treatment h3{font-size:34px;line-height:1.08;margin:10px 0 13px;max-width:290px;order:1}.treatment-toggle{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:46px;padding:8px 0;background:transparent;border:0;color:var(--olive);font:500 13px var(--sans);text-align:left;order:2;cursor:pointer}.treatment-toggle svg{width:19px;height:19px;transition:transform .25s}.treatment-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
 .treatment-content{display:flex;flex-direction:column;order:3;padding:18px 0 4px;gap:0}.treatment.is-collapsed .treatment-content{display:none}.treatment-content>p{font-size:16px;line-height:1.75;order:0}.treatment-content>details{order:1;margin:15px 0 20px}.treatment-content>details summary{font-size:14px;min-height:48px}.treatment-content>details p{font-size:15px;line-height:1.7}.treatment-content>.service-detail-link{order:2;margin:0 0 22px;font-size:13px;padding-bottom:9px}.treatment-content>.text-link{order:3;align-self:stretch;justify-content:space-between;justify-self:initial;background:var(--olive);color:var(--ivory);border:0;min-height:52px;padding:13px 17px;border-radius:3px;font-size:14px}.treatment-content>.text-link:focus-visible{outline-color:var(--clay)}
 .treatment-guide{margin-top:24px;padding:28px;border:0}.treatment-guide h3{font-size:33px;margin:0 0 17px}.treatment-guide>p{font-size:15px}.clinical-note{font-size:12px;line-height:1.65;margin-top:26px}
 .case-grid{display:block}.case-grid figure{display:flex;flex-direction:column;gap:0;margin:0}.case-grid figure+figure,.case-grid figure:nth-child(2){margin-top:48px;padding-top:35px;border-top:1px solid var(--line)}.case-grid figcaption{display:contents}.case-grid h3{order:0;font-size:33px;line-height:1.08;margin-bottom:20px}.case-photo{order:1;overflow:hidden}.case-grid img{max-height:none;object-fit:contain}.case-grid figcaption>p{order:2;font-size:15px;line-height:1.7;margin:18px 0 12px}.case-grid .image-expand{order:3;align-self:stretch;justify-content:space-between;margin:0;border-bottom:1px solid var(--line);min-height:49px;padding:12px 0;font-size:14px}.case-grid figcaption>a{order:4;align-self:flex-start;font-size:12px;margin-top:12px;color:var(--muted)}.consent-note{font-size:12px;line-height:1.65;margin-top:35px}.testimonial{padding:35px 22px;margin:45px -8px 30px}.testimonial blockquote{font-size:34px;line-height:1.12}.testimonial>p{font-size:12px}
 .booking.section{padding:60px 20px 36px}.booking-copy h2{font-size:43px;line-height:1.05}.booking-copy>p{font-size:15px;line-height:1.7;margin:20px 0}.booking-copy>.text-link{font-size:13px}.booking-copy .booking-note{font-size:12px;margin-top:20px;max-width:none}.booking-form{margin-top:30px;padding:28px 20px;border-radius:5px}.booking-form h3{font-size:31px;margin-bottom:23px}.form-intro{font-size:14px;line-height:1.65;margin:0 0 26px}.form-group{padding-top:23px;border-top:1px solid var(--line);margin-bottom:25px}.form-group legend{float:left;width:100%;font-size:25px;margin-bottom:20px}.form-group legend+.form-row,.form-group legend+.field{clear:both}.form-group .form-row{display:grid;grid-template-columns:1fr;gap:19px}.field{font-size:13px;font-weight:500;gap:8px}.field input,.field select{min-height:54px;padding:13px 12px;font-size:16px;border:1px solid #b4ab9e;border-radius:3px;background:#fffefa}.consent{font-size:12px;line-height:1.7;margin:23px 0}.consent input{width:20px;height:20px}.form-footnote{font-size:12px;line-height:1.65}.booking-form>.button{font-size:14px;gap:12px;padding-inline:16px}.request-result{margin-top:27px;padding-top:24px}.request-result h4{font-size:30px}.request-summary>div{grid-template-columns:75px minmax(0,1fr);font-size:13px;gap:13px}.request-result .button{padding-inline:14px;font-size:13px;gap:8px}.form-errors{padding:15px;font-size:13px}.request-tools{gap:18px}.case-viewer{max-width:calc(100vw - 24px);padding:16px;max-height:92dvh}.case-viewer img{max-height:65dvh}
}
@media(prefers-reduced-motion:reduce){.treatment-toggle svg{transition:none}}
@media(min-width:651px) and (max-width:760px){.treatment-content>.text-link{grid-column:2;grid-row:4;justify-self:start}.treatment-content>.service-detail-link{grid-column:1;grid-row:4}}
