/* Kelly Essence · capa de marca v1 (entrega 013).
   Se carga después de kelly.css: mantiene crema, oliva, Playfair Display y DM Sans
   y añade el acento rosa arcilla, el verde bosque, los arcos y la tipografía editorial. */
:root{
    --cream:#f7f2ea;--sand:#efe5d8;--blush:#f3e3da;--ink:#23261f;--muted:#5f6158;
    --olive:#54624d;--olive-dark:#45523f;--forest:#26301f;
    --rose:#c4654f;--rose-ink:#a14e3c;--rose-soft:#f0b4a3;
    --line:#e3d8ca;--radius:18px;--pill:999px;
    --shadow:0 24px 60px rgba(38,48,31,.12);
    --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.15 0 0 0 0 0.12 0 0 0 0 0.08 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}
body{background:var(--cream);color:var(--ink)}
h1,h2,h3{font-weight:400;letter-spacing:-.015em}
h1 em,h2 em,h3 em{font-style:italic;color:var(--rose-ink)}

/* Barra superior y cabecera */
.top-note{background:var(--forest);color:#e9e4d8;font-size:11px;letter-spacing:.16em;padding:10px 16px;gap:18px;align-items:center}
.top-note em{font:italic 15px 'Playfair Display',Georgia,serif;letter-spacing:0;text-transform:none;color:var(--rose-soft)}
.top-note span+span:before,.top-note em+span:before{content:none}
.head{background:rgba(247,242,234,.92);border-bottom-color:transparent;box-shadow:0 1px 0 var(--line)}
.brand strong{font-weight:500;font-size:30px}
.brand strong em{font-style:italic;color:var(--rose-ink)}
.menu{gap:30px;font-size:14px}
.menu a:not(.btn):hover{color:var(--rose-ink);text-decoration:none}

/* Botones */
.btn{border-radius:var(--pill);padding:15px 26px;font-size:14px;letter-spacing:.01em;gap:12px;background:var(--olive);border-color:var(--olive)}
.btn:hover{background:var(--forest);border-color:var(--forest);box-shadow:0 12px 28px rgba(38,48,31,.25);transform:translateY(-1px)}
.btn-large{padding:17px 30px;font-size:15px;min-height:56px}
.btn-outline{background:transparent;color:var(--olive)}
.btn-outline:hover{background:var(--olive);color:#fff}
.btn-light{background:var(--cream);border-color:var(--cream);color:var(--forest)}
.btn-light:hover{background:#fff;border-color:#fff;color:var(--forest)}
.btn-arrow{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:-10px;border-radius:50%;background:rgba(255,255,255,.18);transition:transform .25s var(--ease)}
.btn-light .btn-arrow{background:rgba(38,48,31,.08)}
.btn:hover .btn-arrow{transform:translateX(3px)}
.ke-link{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--ink);border-bottom:1.5px solid var(--rose);padding-bottom:4px;transition:gap .2s var(--ease),color .2s}
.ke-link:after{content:'→';color:var(--rose)}
.ke-link:hover{gap:16px;color:var(--rose-ink)}

/* Elementos comunes de la portada */
.ke-section{padding:110px 0;position:relative}
.ke-kicker{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-ink);margin-bottom:18px}
.ke-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:54px}
.ke-head h2,.ke-section h2{font-size:clamp(38px,5vw,68px);line-height:1.04}
.ke-head-center{justify-content:center;text-align:center}
.ke-lead{font-size:19px;line-height:1.7;color:var(--muted);max-width:540px}
.ke-center{text-align:center;margin-top:50px}
.ke-pill{display:inline-flex;align-items:center;gap:10px;padding:9px 18px;border:1px solid rgba(161,78,60,.35);border-radius:var(--pill);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-ink);background:rgba(255,255,255,.5)}
.ke-arch{border-radius:var(--pill) var(--pill) var(--radius) var(--radius);overflow:hidden}
.ke-arch img{width:100%;height:100%;object-fit:cover}

/* 1 · Hero */
.ke-hero{position:relative;overflow:hidden;padding:70px 0 100px;background:radial-gradient(60% 70% at 85% 30%,#f1dcd2 0%,rgba(241,220,210,0) 70%),var(--cream)}
.ke-hero:before{content:'';position:absolute;inset:0;background:var(--grain);opacity:.5;pointer-events:none}
.ke-hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.ke-hero-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.ke-hero h1{font-size:clamp(52px,6.1vw,92px);line-height:.98;margin:28px 0 26px;text-wrap:balance}
.ke-hero h1 em{display:inline-block}
.ke-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:34px}
.ke-hero .reservation-hint{margin-top:14px}
.ke-hello{display:flex;align-items:center;gap:16px;margin-top:38px;padding:12px 22px 12px 12px;background:rgba(255,255,255,.7);border-radius:var(--pill);box-shadow:0 10px 30px rgba(38,48,31,.08)}
.ke-hello img{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:55% 22%;box-shadow:0 0 0 3px var(--cream),0 0 0 5px var(--rose)}
.ke-hello p{margin:0;font-size:15px;line-height:1.4}
.ke-hello strong{font:italic 500 18px 'Playfair Display',Georgia,serif;color:var(--rose-ink)}
.ke-hero-media{position:relative;justify-self:center;width:min(100%,500px)}
.ke-hero-media .ke-arch-photo{position:relative;aspect-ratio:4/5;box-shadow:var(--shadow)}
.ke-arch-back{position:absolute;inset:0;background:var(--olive);transform:translate(26px,26px)}
.ke-arch-rose{background:var(--rose)}
.ke-badge{position:absolute;top:-28px;left:-46px;width:136px;height:136px;display:grid;place-items:center;border-radius:50%;background:var(--forest);box-shadow:var(--shadow)}
.ke-badge svg{position:absolute;inset:0;width:100%;height:100%;animation:ke-spin 22s linear infinite}
.ke-badge text{font:700 9.4px 'DM Sans',Arial,sans-serif;letter-spacing:2.6px;fill:#efe7da}
.ke-badge img{width:40px;height:40px}
.ke-hours-card{position:absolute;left:-50px;bottom:46px;display:flex;flex-direction:column;gap:4px;padding:18px 22px;background:var(--cream);border-radius:var(--radius);box-shadow:var(--shadow);font-size:13px;color:var(--muted)}
.ke-hours-card strong{font:500 18px 'Playfair Display',Georgia,serif;color:var(--ink)}
@keyframes ke-spin{to{transform:rotate(360deg)}}

/* 2 · Banda en movimiento */
.ke-marquee{overflow:hidden;background:var(--forest);color:#efe7da;padding:24px 0;border-block:1px solid #3a4532}
.ke-marquee-track{display:flex;align-items:center;gap:34px;width:max-content;animation:ke-marquee 38s linear infinite}
.ke-marquee span{font:italic 400 clamp(30px,3.6vw,48px)/1 'Playfair Display',Georgia,serif;white-space:nowrap}
.ke-marquee i{font-style:normal;color:var(--rose-soft);font-size:22px}
@keyframes ke-marquee{to{transform:translateX(-50%)}}

/* 3 · Categorías en arco */
.ke-cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 26px}
.ke-cat{display:flex;flex-direction:column;gap:20px;color:var(--ink)}
.ke-cat-media{position:relative;display:block;aspect-ratio:4/5;border-radius:var(--pill) var(--pill) var(--radius) var(--radius);overflow:hidden;background:var(--sand)}
.ke-cat-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ke-cat:hover .ke-cat-media img{transform:scale(1.06)}
.ke-cat-num{position:absolute;left:18px;bottom:16px;font:italic 400 42px/1 'Playfair Display',Georgia,serif;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.ke-cat-body{position:relative;display:block;padding-right:62px}
.ke-cat-body strong{display:block;font:400 30px/1.15 'Playfair Display',Georgia,serif}
.ke-cat-body small{display:block;margin-top:8px;font-size:15px;line-height:1.55;color:var(--muted)}
.ke-cat-go{position:absolute;right:0;top:2px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--rose);color:var(--rose-ink);transition:background .25s,color .25s,transform .25s var(--ease)}
.ke-cat:hover .ke-cat-go{background:var(--rose);color:#fff;transform:rotate(-45deg)}

/* 4 · Kelly */
.ke-kelly{background:var(--blush)}
.ke-kelly:before{content:'';position:absolute;inset:0;background:var(--grain);opacity:.45;pointer-events:none}
.ke-kelly-grid{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,7vw,110px);align-items:center}
.ke-kelly-media{position:relative;width:min(100%,460px);justify-self:center}
.ke-kelly-media .ke-arch-photo{position:relative;aspect-ratio:4/5;box-shadow:var(--shadow)}
.ke-kelly-media .ke-arch-back{transform:translate(-26px,26px)}
.ke-signature{position:absolute;right:-24px;bottom:-34px;font:italic 400 clamp(64px,8vw,104px)/1 'Playfair Display',Georgia,serif;color:var(--forest);transform:rotate(-8deg);text-shadow:0 2px 0 var(--blush)}
.ke-kelly-copy h2{margin-bottom:24px}
.ke-manifesto{list-style:none;padding:0;margin:34px 0 36px;border-top:1px solid rgba(38,48,31,.18)}
.ke-manifesto li{padding:18px 0;border-bottom:1px solid rgba(38,48,31,.18);font-size:19px}
.ke-manifesto strong{font:italic 500 21px 'Playfair Display',Georgia,serif;color:var(--rose-ink);margin-right:4px}

/* 5 · Carta en verde bosque */
.ke-dark{background:var(--forest);color:#efe7da}
.ke-dark .ke-kicker{color:var(--rose-soft)}
.ke-dark h2 em{color:var(--rose-soft)}
.ke-dark .ke-link{color:#efe7da;border-color:var(--rose-soft)}
.ke-dark .ke-link:after{color:var(--rose-soft)}
.ke-menu{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 70px}
.ke-menu li{padding:26px 0;border-bottom:1px solid rgba(239,231,218,.16)}
.ke-menu-row{display:flex;align-items:baseline;gap:14px}
.ke-menu-name{font:400 23px/1.3 'Playfair Display',Georgia,serif;min-width:0}
.ke-menu-dots{flex:1;min-width:24px;border-bottom:1.5px dotted rgba(239,231,218,.35);transform:translateY(-6px)}
.ke-menu-price{font:500 24px 'Playfair Display',Georgia,serif;color:var(--rose-soft);white-space:nowrap}
.ke-menu-meta{display:flex;justify-content:space-between;gap:20px;margin-top:10px;font-size:14px;color:#b9bdac}
.ke-menu-meta a{font-weight:700;color:#efe7da;white-space:nowrap}
.ke-menu-meta a:hover{color:var(--rose-soft)}

/* 6 · Pasos */
.ke-steps{position:relative;list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;text-align:center}
.ke-steps:before{content:'';position:absolute;top:44px;left:16%;right:16%;border-top:2px dashed rgba(196,101,79,.45)}
.ke-steps li{position:relative;display:flex;flex-direction:column;align-items:center}
.ke-step-num{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--rose);color:#fff;font:italic 400 40px 'Playfair Display',Georgia,serif;box-shadow:0 0 0 10px var(--cream);margin-bottom:24px}
.ke-steps strong{font:400 26px/1.2 'Playfair Display',Georgia,serif}
.ke-steps p{max-width:300px;margin:10px 0 0;color:var(--muted)}

/* Reseñas con la nueva piel */
.home-reviews{background:var(--sand)}
.home-reviews .section-head h2{font-size:clamp(38px,5vw,64px);line-height:1.05}
.home-reviews .eyebrow{color:var(--rose-ink)}
.review-card{position:relative;border:0;border-radius:var(--radius);background:var(--cream);padding:42px 30px 30px;box-shadow:0 10px 30px rgba(38,48,31,.06)}
.review-card:before{content:'“';position:absolute;top:-6px;left:24px;font:400 90px/1 'Playfair Display',Georgia,serif;color:var(--rose)}
.review-stars{color:var(--rose)}
.review-card blockquote p{font:italic 400 20px/1.6 'Playfair Display',Georgia,serif}

/* 7 · Packs y bonos */
.ke-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.ke-offer{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-height:340px;padding:46px;border-radius:28px;transition:transform .3s var(--ease),box-shadow .3s}
.ke-offer:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.ke-offer:after{content:'';position:absolute;right:-70px;bottom:-110px;width:280px;height:340px;border-radius:var(--pill) var(--pill) 0 0;background:rgba(255,255,255,.18);pointer-events:none}
.ke-offer strong{font:400 clamp(30px,3vw,42px)/1.12 'Playfair Display',Georgia,serif;max-width:420px}
.ke-offer-sand{background:var(--sand)}
.ke-offer-rose{background:var(--rose);color:#fff8f2}
.ke-offer-rose .ke-kicker,.ke-offer-rose strong em{color:#ffe1d6}
.ke-offer-rose .ke-link{color:#fff;border-color:#ffe1d6}
.ke-offer-rose .ke-link:after{color:#ffe1d6}
.ke-price{margin-top:auto;font:400 clamp(54px,6vw,80px)/1 'Playfair Display',Georgia,serif}
.ke-price small{font:600 15px 'DM Sans',Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle;margin-right:6px}

/* 8 · Dudas y visita */
.ke-sand{background:var(--sand)}
.ke-faq-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:60px;align-items:start}
.ke-faq-grid h2{margin-bottom:34px}
.ke-sand .faq-list details{border:0;border-radius:var(--radius);background:var(--cream)}
.ke-sand .faq-list summary{font-size:17px;min-height:64px;padding:18px 24px}
.ke-sand .faq-list summary:after{color:var(--rose)}
.ke-visit{padding:40px 36px;border-radius:28px;background:var(--forest);color:#efe7da;position:sticky;top:120px}
.ke-visit .ke-kicker{color:var(--rose-soft)}
.ke-visit h3{font-size:36px;line-height:1.1}
.ke-visit h3 em{color:var(--rose-soft)}
.ke-visit dl{margin:28px 0 30px;display:grid;gap:18px}
.ke-visit dt{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#b9bdac;margin-bottom:4px}
.ke-visit dd{margin:0;font-size:17px;line-height:1.55}

/* 9 · Llamada final */
.ke-final{position:relative;overflow:hidden;background:var(--olive);color:#f4efe5;padding:100px 0}
.ke-final:before{content:'';position:absolute;inset:0;background:var(--grain);opacity:.35;pointer-events:none}
.ke-final-grid{position:relative;display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:center}
.ke-final .ke-kicker{color:#f6cfc2}
.ke-final h2{font-size:clamp(42px,5.6vw,78px);line-height:1.02;margin-bottom:20px}
.ke-final h2 em{color:#f6cfc2}
.ke-final p{font-size:18px;color:#e2e6da;margin:0 0 34px}
.ke-final-photo{width:100%;max-width:340px;justify-self:end;aspect-ratio:4/5;object-fit:cover;object-position:55% 25%;border-radius:var(--pill) var(--pill) var(--radius) var(--radius);box-shadow:-22px 22px 0 var(--rose)}

/* Pie */
.footer{background:var(--forest);color:#efe7da;border-top:0;padding:0 0 30px}
.footer-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:70px;padding-bottom:50px;border-bottom:1px solid rgba(239,231,218,.14)}
.footer-claim{margin:0;font:400 clamp(36px,4.6vw,64px)/1.05 'Playfair Display',Georgia,serif}
.footer-claim em{color:var(--rose-soft)}
.footer-content{padding-top:46px;padding-bottom:30px}
.footer p,.footer a{color:#c9ccbd}
.footer a:hover{color:var(--rose-soft)}
.footer .brand strong{color:#efe7da}
.footer .brand strong em{color:var(--rose-soft)}
.footer .brand span{color:#b9bdac}
.footer .footer-whatsapp{color:var(--rose-soft)}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:24px;border-top:1px solid rgba(239,231,218,.14);font-size:12px;color:#9ea391}

/* Páginas interiores: misma piel */
.page-title h1{font-size:clamp(44px,6vw,80px);line-height:1.02}
.page-title .eyebrow{color:var(--rose-ink)}
.section-group h2{font-size:clamp(34px,4vw,48px)}
.treatment-card,.cart-item,.cart-summary,.booking-box{border-radius:var(--radius);border-color:transparent;box-shadow:0 10px 30px rgba(38,48,31,.06)}
.treatment-heading .price,.price{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:22px;color:var(--rose-ink)}
.category-links a{border-color:rgba(84,98,77,.35);background:transparent}
.category-links a:hover{background:var(--olive);border-color:var(--olive);color:#fff}
.notice{border-radius:var(--radius);border-left:0;background:var(--blush)}
.catalog-search input{border-radius:var(--pill);padding:15px 22px;border-color:var(--line)}
.booking-bar{background:rgba(247,242,234,.96)}
.cart-badge{background:var(--rose)}

/* Adaptación */
@media(max-width:1000px){
    .ke-hero-grid,.ke-kelly-grid,.ke-faq-grid,.ke-final-grid{grid-template-columns:minmax(0,1fr)}
    .ke-hero-media{width:min(100%,420px);margin-top:20px}
    .ke-cats{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ke-menu{grid-template-columns:minmax(0,1fr)}
    .ke-visit{position:static}
    .ke-final-photo{display:none}
    .footer-hero{flex-direction:column;align-items:flex-start}
}
@media(max-width:650px){
    .top-note{font-size:9.5px;letter-spacing:.1em;gap:8px;flex-direction:column}
    .top-note em{font-size:14px}
    .brand strong{font-size:23px}
    .ke-section{padding:70px 0}
    .ke-hero{padding:34px 0 70px}
    .ke-hero h1{font-size:clamp(46px,13vw,60px);margin:20px 0 18px}
    .ke-lead{font-size:17px}
    .ke-actions{flex-direction:column;align-items:stretch;width:100%;gap:18px;margin-top:26px}
    .ke-actions .btn{width:100%}
    .ke-actions .ke-link{align-self:center}
    .ke-hello{margin-top:28px;padding-right:16px}
    .ke-hello p{font-size:14px}
    .ke-hero-media{width:calc(100% - 30px);margin:30px auto 0}
    .ke-arch-back{transform:translate(14px,14px)}
    .ke-kelly-media .ke-arch-back{transform:translate(-14px,14px)}
    .ke-badge{width:100px;height:100px;top:-20px;left:-14px}
    .ke-badge text{font-size:9.6px}
    .ke-badge img{width:30px;height:30px}
    .ke-hours-card{left:-14px;bottom:24px;padding:12px 16px}
    .ke-hours-card strong{font-size:15px}
    .ke-marquee{padding:16px 0}
    .ke-head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:34px}
    .ke-head-center{align-items:center}
    .ke-cats{gap:24px 14px}
    .ke-cat{gap:12px}
    .ke-cat-num{font-size:30px;left:12px;bottom:10px}
    .ke-cat-body{padding-right:0}
    .ke-cat-body strong{font-size:21px}
    .ke-cat-body small,.ke-cat-go{display:none}
    .ke-kelly-media{width:calc(100% - 30px)}
    .ke-signature{right:-6px;bottom:-26px}
    .ke-manifesto li{font-size:17px;padding:15px 0}
    .ke-manifesto strong{font-size:19px}
    .ke-menu-name{font-size:19px}
    .ke-menu-price{font-size:20px}
    .ke-steps{grid-template-columns:minmax(0,1fr);gap:34px}
    .ke-steps:before{display:none}
    .ke-step-num{width:76px;height:76px;font-size:34px}
    .ke-offers{grid-template-columns:minmax(0,1fr)}
    .ke-offer{min-height:260px;padding:32px 26px}
    .ke-visit{padding:32px 26px}
    .ke-final{padding:70px 0}
    .ke-final .btn{width:100%}
    .footer-hero{padding-top:50px;padding-bottom:36px}
    .footer-hero .btn{width:100%}
    .footer-bottom{flex-direction:column;gap:6px}
    .review-card blockquote p{font-size:18px}
}
@media(prefers-reduced-motion:reduce){.ke-badge svg,.ke-marquee-track{animation:none}}
