:root{--bg:#f7f2ec;--bg-alt:#efe6dc;--surface:#fff;--text:#1c1512;--text-muted:#4a3f38;--primary:#91288f;--primary-dark:#742072;--primary-soft:#f2e5f2;--accent:#9e6a9e;--border:#ded1de;--shadow:0 20px 50px #1c15121a;--radius:16px;--radius-sm:10px;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Outfit", system-ui, sans-serif;--container:1120px}*,:before,:after{box-sizing:border-box}html:has(.frontend-app){scroll-behavior:smooth}.frontend-app{font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;font-weight:400;line-height:1.6}.frontend-app img{max-width:100%;display:block}.frontend-app a{color:inherit;text-decoration:none}.frontend-app a.fe-btn-primary{color:#fff}.frontend-app a.fe-btn-ghost{color:var(--text)}.frontend-app a.fe-btn-light{color:var(--primary-dark)}.frontend-app h1,.frontend-app h2,.frontend-app h3,.frontend-app h4{font-family:var(--font-display);margin:0 0 .5em;font-weight:600;line-height:1.15}.frontend-app h1{font-size:clamp(2.5rem,5vw,4rem)}.frontend-app h2{font-size:clamp(2rem,3.5vw,2.75rem)}.frontend-app h3{font-size:1.5rem}.frontend-app p{margin:0 0 1rem}.container{width:min(var(--container), calc(100% - 2rem));margin-inline:auto}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:.75rem;font-size:.8rem;font-weight:600}.muted{color:var(--text-muted)}.fe-btn{font-family:var(--font-body);cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.9rem 1.5rem;font-size:.95rem;font-weight:500;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.fe-btn:hover{transform:translateY(-1px)}.fe-btn-primary{background:var(--primary);color:#fff;box-shadow:0 10px 30px #a66b5c40}.fe-btn-primary:hover{background:var(--primary-dark)}.fe-btn-ghost{background:var(--surface);border-color:var(--border);color:var(--text);font-weight:500}.fe-btn-ghost:hover{border-color:var(--primary);color:var(--primary-dark)}.fe-btn-light{color:var(--primary-dark);background:#fff;border:1px solid #ffffff59;font-weight:600}.cta-inner .fe-btn-light{color:var(--primary-dark);background:#fff}.cta-inner a.fe-btn-light:hover{background:var(--primary-soft);color:var(--primary-dark)}.fe-btn-sm{padding:.6rem 1.1rem;font-size:.875rem}.fe-btn-full{width:100%}.site-header{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf7f4d9;border-bottom:1px solid #e8ddd599;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1rem;min-height:72px;display:flex}.logo{font-family:var(--font-display);align-items:center;gap:.6rem;font-size:1.35rem;font-weight:600;display:flex}.logo-mark{color:var(--primary);font-size:1rem}.logo-img-wrap{align-items:center;max-height:40px;display:inline-flex}.logo-img{object-fit:contain;width:auto;max-width:140px;height:40px}.logo-text{line-height:1.1}.site-nav{align-items:center;gap:1.25rem;display:flex}.site-nav a:not(.fe-btn){color:var(--text);opacity:.82;font-size:.925rem;font-weight:500;transition:color .2s,opacity .2s}.site-nav a:not(.fe-btn):hover{color:var(--primary-dark);opacity:1}.hero{padding:5rem 0 6rem;position:relative;overflow:hidden}.hero-bg{background:radial-gradient(circle at 80% 20%, #9e6a9e4d, transparent 45%), radial-gradient(circle at 10% 80%, #91288f1f, transparent 40%), linear-gradient(180deg, #fff 0%, var(--bg) 100%);z-index:-1;position:absolute;inset:0}.hero-content{max-width:680px}.hero-tagline{font-family:var(--font-display);color:var(--primary-dark);margin-bottom:1rem;font-size:1.5rem;font-style:italic}.hero-desc{color:var(--text-muted);max-width:52ch;font-size:1.05rem}.hero-open-status{color:var(--text-muted);align-items:center;gap:.5rem;margin-top:1.25rem;font-size:.875rem;font-weight:500;display:inline-flex}.hero-open-dot{background:var(--text-muted);border-radius:50%;flex:none;width:.55rem;height:.55rem}.hero-open-status.is-open{color:#2e7d32}.hero-open-status.is-open .hero-open-dot{background:#2e7d32;box-shadow:0 0 0 3px #2e7d3226}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.section{padding:5rem 0}.section-alt{background:var(--bg-alt)}.section-head{max-width:560px;margin-bottom:2.5rem}.section-desc{color:var(--text-muted);font-size:1.05rem}.services-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.service-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;transition:transform .25s,box-shadow .25s}.service-card:hover{transform:translateY(-4px);box-shadow:0 24px 60px #2a211c1a}.service-card-top{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.price{background:var(--primary-soft);color:var(--primary-dark);white-space:nowrap;border-radius:999px;padding:.25rem .65rem;font-size:.875rem;font-weight:600}.service-card p{color:var(--text-muted);font-size:.95rem}.service-meta{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:1.25rem;padding-top:1rem;font-size:.875rem;display:flex}.service-link{color:var(--primary-dark);font-weight:600}.service-link:hover{color:var(--primary)}.empty-state{text-align:center;background:var(--surface);border-radius:var(--radius);border:1px dashed var(--border);padding:3rem}.about-grid{grid-template-columns:1fr 1.2fr;align-items:start;gap:3rem;display:grid}.about-content p{color:var(--text-muted);font-size:1.05rem}.about-list{margin:1.5rem 0 0;padding:0;list-style:none}.about-list li{color:var(--text);margin-bottom:.75rem;padding-left:1.5rem;position:relative}.location-grid{grid-template-columns:1fr 1.2fr;align-items:start;gap:3rem;display:grid}.location-grid.sem-mapa{grid-template-columns:1fr}.location-address{color:var(--text-muted);margin:.75rem 0;font-size:1.05rem}.location-links{flex-direction:column;gap:.25rem;margin-bottom:1rem;display:flex}.location-links a{color:var(--primary-dark);font-weight:500}.location-maps-link{margin-bottom:1.5rem}.location-hours-title{margin-top:2rem;margin-bottom:.75rem;font-size:1rem}.location-hours{max-width:24rem;margin:0;padding:0;list-style:none}.location-hours li{border-bottom:1px solid var(--border);justify-content:space-between;padding:.4rem 0;font-size:.925rem;display:flex}.location-hours li:last-child{border-bottom:none}.location-hours li span:first-child{color:var(--text-muted)}.location-map-wrap{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);min-height:320px;overflow:hidden}.location-map{border:0;width:100%;height:100%;min-height:320px;display:block}.sticky-book-cta{display:none}.about-list li:before{content:"✦";color:var(--primary);font-size:.75rem;position:absolute;top:.35rem;left:0}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.gallery-item{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);margin:0;overflow:hidden}.gallery-img{object-fit:cover;width:100%;height:260px;display:block}.gallery-item figcaption{color:var(--text-muted);padding:.6rem .9rem;font-size:.85rem}.testimonials-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.testimonial-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:1.5rem}.testimonial-stars{color:var(--accent);letter-spacing:.1em;margin-bottom:.75rem;font-size:1rem}.testimonial-stars-empty{color:var(--border)}.testimonial-card p{color:var(--text);font-size:1rem;line-height:1.6}.testimonial-card cite{color:var(--primary-dark);margin-top:1rem;font-style:normal;font-weight:600;display:block}.faq-list{gap:.75rem;max-width:760px;display:grid}.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem 1.25rem}.faq-item summary{cursor:pointer;color:var(--text);font-weight:600;list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";float:right;color:var(--primary);font-size:1.25rem;line-height:1}.faq-item[open] summary:after{content:"−"}.faq-item p{color:var(--text-muted);margin:.85rem 0 0}.cta-section{padding:4rem 0}.cta-inner{border-radius:calc(var(--radius) + 4px);background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);color:#fff;box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:2rem;padding:3rem;display:flex}.cta-inner h2{color:#fff}.cta-inner p{opacity:1;color:#fffffff2;margin:0}.site-footer{color:#f7f2ec;background:#1a1411;padding:4rem 0 0}.footer-grid{grid-template-columns:repeat(3,1fr);gap:2rem;padding-bottom:2.5rem;display:grid}.footer-grid h3,.footer-grid h4{color:#fff;font-family:var(--font-body);margin-bottom:1rem;font-size:1rem;font-weight:600}.footer-grid p,.footer-grid .muted{color:#e4d8ce}.footer-grid a{color:#f0e6dc;text-underline-offset:2px;text-decoration:underline}.footer-grid a:hover{color:#fff}.footer-bottom{border-top:1px solid #ffffff24;padding:1.25rem 0 1.5rem}.footer-bottom p{color:#cfc2b6;margin:0;font-size:.875rem}.powered-by{opacity:.6;align-items:center;gap:.5rem;margin-top:1rem;transition:opacity .2s;display:flex}.powered-by:hover{opacity:1}.powered-by span{text-transform:uppercase;letter-spacing:.08em;color:#cfc2b6;font-size:.625rem;font-weight:600}.powered-by img{object-fit:contain;height:28px}.booking-page{min-height:calc(100vh - 72px);padding:3rem 0 5rem}.booking-page-inner{grid-template-columns:1fr 1.4fr;align-items:start;gap:3rem;display:grid}.booking-intro{position:sticky;top:96px}.booking-intro p:last-child{color:var(--text-muted);font-size:1.05rem}.booking-wizard{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);padding:2rem}.steps{grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:2rem;display:grid}.step-item{text-align:center;font:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:.35rem;padding:0;display:flex}.step-item:disabled{cursor:default}.step-num{background:var(--bg-alt);width:2rem;height:2rem;color:var(--text-muted);border:2px solid var(--border);border-radius:50%;place-items:center;font-size:.8rem;font-weight:600;display:grid}.step-item.active .step-num{background:var(--primary);color:#fff;border-color:var(--primary)}.step-item.done .step-num{background:var(--primary-soft);color:var(--primary-dark);border-color:var(--primary-soft)}.step-label{color:var(--text-muted);font-size:.7rem}.step-item.active .step-label{color:var(--primary-dark);font-weight:500}.booking-form h2{margin-bottom:.35rem;font-size:1.75rem}.form-desc{color:var(--text-muted);margin-bottom:1.5rem}.booking-form label{margin-bottom:1rem;font-size:.875rem;font-weight:500;display:block}.booking-form input,.booking-form select,.booking-form textarea{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font:inherit;background:var(--bg);color:var(--text);margin-top:.4rem;padding:.85rem 1rem;transition:border-color .2s,box-shadow .2s}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #91288f26}.optional{color:var(--text-muted);font-weight:400}.field-hint{color:var(--text-muted);margin-top:.35rem;font-size:.8rem;font-weight:400;display:block}.form-actions-end{justify-content:flex-end}.hp-field{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.phone-input{gap:.5rem;display:flex}.phone-input select{flex:none;width:auto;min-width:5.5rem}.phone-input input{flex:auto;min-width:0}.form-actions{justify-content:space-between;gap:1rem;margin-top:1.5rem;display:flex}.option-grid{gap:.75rem;margin-bottom:1.25rem;display:grid}.option-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;padding:1rem 1.1rem;transition:border-color .2s,background .2s}.option-card strong{margin-bottom:.25rem;display:block}.option-card span{color:var(--text-muted);font-size:.875rem}.option-card.selected{border-color:var(--primary);background:var(--primary-soft)}.summary-card{background:var(--bg-alt);border-radius:var(--radius-sm);margin:1rem 0;padding:.25rem 1.25rem}.summary-row{justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 0;display:flex}.summary-row+.summary-row{border-top:1px solid var(--border)}.summary-card h3{font-size:.8rem;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:.35rem;font-weight:600}.summary-card p{margin-bottom:.2rem;font-size:.925rem}.summary-card p.muted{color:var(--text-muted);font-size:.85rem}.summary-edit{color:var(--primary);cursor:pointer;background:0 0;border:none;flex:none;padding:.25rem 0;font-size:.85rem;font-weight:600}.summary-edit:hover{text-decoration:underline}.alert{border-radius:var(--radius-sm);margin-bottom:1rem;padding:.85rem 1rem;font-size:.925rem}.alert-error{color:#9b3b30;background:#fdecea;border:1px solid #f5c6c0}.alert-success{background:var(--primary-soft);color:var(--primary-dark);border:1px solid var(--primary-soft)}.booking-success{text-align:center;padding:2rem 1rem}.success-icon{color:#2e7d32;background:#e8f5e9;border-radius:50%;place-items:center;width:4rem;height:4rem;margin:0 auto 1.25rem;font-size:1.75rem;font-weight:700;display:grid}.booking-success p{color:var(--text-muted);margin-inline:auto;max-width:40ch;margin-bottom:1.5rem}.booking-calendar{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);margin-bottom:1.25rem;padding:1rem}.booking-calendar-head{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.booking-calendar-head strong{font-family:var(--font-body);font-size:.925rem}.booking-calendar-nav{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--text);cursor:pointer;border-radius:50%;place-items:center;font-size:1.1rem;line-height:1;display:grid}.booking-calendar-nav:disabled{opacity:.3;cursor:default}.booking-calendar-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:.25rem;display:grid}.booking-calendar-weekdays span{text-align:center;color:var(--text-muted);font-size:.7rem;font-weight:600}.booking-calendar-grid{grid-template-columns:repeat(7,1fr);gap:.2rem;display:grid}.booking-calendar-day{aspect-ratio:1;border-radius:var(--radius-sm);color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;font-size:.875rem}.booking-calendar-day:hover:not(:disabled){background:var(--primary-soft)}.booking-calendar-day.is-outside{color:var(--text-muted);opacity:.4}.booking-calendar-day.is-today{text-underline-offset:3px;font-weight:700;text-decoration:underline}.booking-calendar-day.is-selected{background:var(--primary);color:#fff}.booking-calendar-day.is-closed:not(.is-outside){color:var(--text-muted);text-decoration:line-through}.booking-calendar-day:disabled{cursor:not-allowed}.booking-calendar-legend{color:var(--text-muted);align-items:center;gap:.4rem;margin:.75rem 0 0;font-size:.75rem;display:flex}.booking-calendar-legend-dot{background:var(--border);border-radius:50%;width:.6rem;height:.6rem}.booking-slots{margin-bottom:1.25rem}.booking-slots-label{margin-bottom:.6rem;font-size:.875rem}.booking-slots-grid{grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));gap:.5rem;display:grid}.booking-slot{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;cursor:pointer;text-align:center;padding:.6rem .5rem;font-size:.875rem;transition:border-color .2s,background .2s}.booking-slot:hover{border-color:var(--primary)}.booking-slot.is-selected{background:var(--primary);border-color:var(--primary);color:#fff}@media (max-width:900px){.about-grid,.booking-page-inner,.footer-grid,.location-grid{grid-template-columns:1fr}.booking-intro{position:static}.cta-inner{text-align:center;flex-direction:column}.site-nav a:not(.fe-btn){display:none}.location-map-wrap,.location-map{min-height:260px}}@media (max-width:600px){.sticky-book-cta{z-index:900;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);display:block;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #1c15121a}body.has-sticky-cta{padding-bottom:4.5rem}.steps{grid-template-columns:repeat(2,1fr)}.step-label{display:none}.hero{padding:3rem 0 4rem}.section{padding:3.5rem 0}.booking-wizard{padding:1.25rem}}.legal-page-wrap{min-height:60vh;padding:4rem 0 5rem}.legal-page h1{margin-bottom:1.5rem}.legal-body{color:var(--text-muted);line-height:1.75}.legal-body p{margin-bottom:1rem}.footer-legal{gap:1.25rem;margin-bottom:.75rem;display:flex}.footer-legal a{color:#e4d8ce;font-size:.875rem}.footer-legal a:hover{color:#fff}.cookie-banner{z-index:1000;color:#faf7f4;background:#1e1814f5;padding:1rem;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 32px #0003}.cookie-banner-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1100px;margin:0 auto;display:flex}.cookie-banner p{color:#e8ddd5;flex:1;min-width:220px;margin:0;font-size:.9rem;line-height:1.5}.cookie-banner a{color:#f0ddd7;text-decoration:underline}
