/* Portada */
#banner{min-height:600px;position:relative;isolation:isolate;display:flex;align-items:center;background:linear-gradient(90deg,rgba(10,38,58,.94) 0%,rgba(12,43,64,.81) 36%,rgba(12,43,64,.12) 84%),url('../img/img_home/banner_principal.png') center 43%/cover no-repeat}#banner .container{padding-block:92px;position:relative}#banner .eyebrow{color:#cae8a1;margin-bottom:23px}#banner h1{max-width:675px;color:white;margin:0 0 22px}#banner .banner-text p{color:#e1ecf0;font-size:1.09rem;max-width:545px;margin:0 0 32px}#banner .hero-actions{display:flex;flex-wrap:wrap;gap:13px;align-items:center}#banner .btn-outline{color:white;background:transparent;border:1px solid rgba(255,255,255,.5);box-shadow:none}#banner .btn-outline:hover{background:rgba(255,255,255,.1)}#banner .hero-kicker{margin-top:50px;display:flex;gap:25px;flex-wrap:wrap;color:#edf3f5;font-size:.81rem}#banner .hero-kicker span{display:flex;gap:7px;align-items:center}#banner .hero-kicker .material-symbols-outlined{color:#bde58e;font-size:18px}
/* Valores + servicios */
.benefits{position:relative;margin-top:-47px;z-index:2}.benefits-inner{display:grid;grid-template-columns:repeat(3,1fr);background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;overflow:hidden}.benefit{display:flex;gap:14px;align-items:center;padding:23px 26px}.benefit+.benefit{border-left:1px solid var(--line)}.benefit .material-symbols-outlined{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;background:var(--mint);color:var(--green-dark);border-radius:14px;font-size:24px}.benefit strong{font-size:.87rem;color:var(--navy);display:block}.benefit small{display:block;font-size:.73rem;color:var(--muted)}#description{padding:98px 0 30px}#description .service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}#description .servicio{overflow:hidden;background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px rgba(20,50,67,.05);transition:transform .2s,box-shadow .2s}#description .servicio:hover{transform:translateY(-5px);box-shadow:var(--shadow)}#description .servicio .img{height:225px;overflow:hidden;background:#dcead5}#description .servicio .img img{height:100%;width:100%;object-fit:cover}#description .servicio .text{padding:26px 28px 30px}#description .servicio .text .text-title h3{font-size:1.35rem;color:var(--navy);margin:0 0 13px}#description .servicio .text .text-p p{font-size:.86rem;line-height:1.8;margin:0}#description .servicio .service-icon{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:var(--green-dark);font-size:.74rem;font-weight:700;letter-spacing:.05em;margin-bottom:12px;text-transform:uppercase}
.shop-feature{margin-top:58px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;background:#e9f3e5;border-radius:27px;padding:34px 48px;overflow:hidden}.shop-feature h2{max-width:440px;color:var(--navy)}.shop-feature p{max-width:490px;margin-bottom:25px}.shop-feature img{width:100%;height:280px;object-fit:cover;border-radius:17px}.how-section{padding:80px 0 22px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.step{padding:25px 26px;background:white;border:1px solid var(--line);border-radius:18px}.step-number{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:var(--mint);color:var(--green-dark);font-weight:700;margin-bottom:19px}.step h3{font-size:1.12rem;margin-bottom:10px}.step p{font-size:.85rem;margin-bottom:0}
/* Citas */
#appointment-modal{width:min(650px,calc(100% - 24px));max-height:min(90vh,900px);border:0;border-radius:23px;padding:0;box-shadow:0 28px 100px rgba(0,0,0,.3);color:var(--text);margin:auto;overflow:auto}#appointment-modal::backdrop{background:rgba(7,28,42,.7);backdrop-filter:blur(4px)}.appointment-header{position:sticky;top:0;z-index:3;padding:26px 32px 18px;background:white;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line)}.appointment-header h2{font-size:1.65rem;margin:3px 0 5px}.appointment-header p{margin:0;font-size:.77rem}.appointment-header .eyebrow{margin:0}#close-appointment{border:none;background:var(--cream);color:var(--navy);height:36px;width:36px;border-radius:12px;font-size:24px}#appointment-form{padding:23px 32px 30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.form-group{min-width:0;display:flex;flex-direction:column;gap:6px}.form-group.full{grid-column:1/-1}.form-group label{font-size:.81rem;font-weight:600;color:var(--navy)}.form-group input,.form-group select,.form-group textarea{width:100%;min-width:0;border:1px solid #d5e1dd;border-radius:11px;background:#fcfefb;padding:12px 13px;min-height:46px;color:var(--text);outline:none}.form-group textarea{min-height:75px;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--green-dark);box-shadow:0 0 0 3px rgba(143,185,86,.16)}#appointment-times{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:3px}#appointment-times>p{grid-column:1/-1;font-size:.83rem;margin:5px 0}.appointment-time{border:1px solid var(--line);border-radius:10px;padding:10px 4px;background:white;font-size:.8rem;color:var(--navy);font-weight:600}.appointment-time:hover:not(:disabled){background:var(--mint);border-color:var(--green)}.appointment-time.selected,.appointment-time[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:white}.appointment-time:disabled{background:#f0f2f2;color:#aab3b7;cursor:not-allowed;text-decoration:line-through}.form-disclaimer{font-size:.72rem;color:var(--muted);margin:13px 0 20px}.confirm-appointment{width:100%}#appointment-confirmation{display:none;text-align:center;padding:34px 32px 36px}#appointment-confirmation .success-icon{display:grid;place-items:center;width:63px;height:63px;border-radius:50%;background:var(--mint);color:var(--green-dark);margin:0 auto 16px;font-size:36px}#appointment-confirmation h2{font-size:1.8rem;margin-bottom:8px}#appointment-confirmation>p{font-size:.86rem}.info-confirmation{display:grid;grid-template-columns:135px 1fr;gap:11px 14px;text-align:left;background:var(--cream);padding:20px;border-radius:15px;margin:23px 0}.info-confirmation strong{font-size:.8rem;color:var(--navy)}.info-confirmation span{font-size:.81rem}#finish-confirmation{background:var(--navy);color:white;padding:12px 26px;border:0;border-radius:12px;font-weight:600}
@media(max-width:980px){#banner{min-height:545px}#description .service-grid{gap:13px}#description .servicio .img{height:175px}#description .servicio .text{padding:20px}#description .servicio .text .text-title h3{font-size:1.15rem}.benefit{padding:17px 14px}.benefit .material-symbols-outlined{width:38px;height:38px;flex-basis:38px}.shop-feature{padding:30px}}
@media(max-width:720px){#banner{min-height:565px;background:linear-gradient(90deg,rgba(10,38,58,.94) 0%,rgba(10,38,58,.74) 100%),url('../img/img_home/banner_celular.jpg') center 35%/cover no-repeat}#banner .container{padding-block:70px}#banner h1{font-size:clamp(2.35rem,9vw,3.5rem)}#banner .hero-kicker{margin-top:35px}.benefits{margin-top:-18px}.benefits-inner{grid-template-columns:1fr}.benefit+.benefit{border-left:0;border-top:1px solid var(--line)}.benefit{padding:15px 18px}#description{padding:66px 0 25px}#description .service-grid{grid-template-columns:1fr;gap:18px}#description .servicio .img{height:205px}#description .servicio .text{padding:22px}.shop-feature{margin-top:40px;grid-template-columns:1fr;padding:27px;gap:20px}.shop-feature img{height:195px}.steps{grid-template-columns:1fr;gap:12px}.how-section{padding:62px 0 8px}#appointment-times{grid-template-columns:repeat(3,1fr)}}
@media(max-width:470px){#banner .hero-actions{align-items:stretch;flex-direction:column}#banner .hero-actions .btn{width:100%}#banner .hero-kicker{flex-direction:column;gap:9px}.form-grid{grid-template-columns:1fr}.form-group.full{grid-column:auto}#appointment-form{padding:20px}#appointment-times{grid-template-columns:repeat(3,1fr)}.appointment-header{padding:20px}.info-confirmation{grid-template-columns:1fr;gap:4px}.info-confirmation strong{margin-top:9px}}

/* Agenda automática · información y estados del formulario */
.service-duration{font-size:.77rem;font-weight:600;color:var(--green-dark);background:var(--mint);padding:9px 12px;border-radius:10px;margin:0 0 8px}
.service-duration:empty{display:none}
.availability-message{font-size:.77rem;line-height:1.55;color:var(--muted);margin:0 0 7px}
.booking-error{font-size:.82rem;color:#ad4032;font-weight:600;margin:4px 0 13px}
.booking-error:empty{display:none}
.reference-confirmation{overflow-wrap:anywhere}
