:root{
  --red:#e50914;
  --red-dark:#b70f16;
  --ink:#101820;
  --muted:#667085;
  --line:#e7edf3;
  --paper:#ffffff;
  --cream:#f7f3ee;
  --soft:#f3f6f9;
  --shadow:0 24px 70px rgba(16,24,32,.12);
  --radius:28px;
  --container:min(1280px, calc(100vw - 72px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;width:100%;overflow-x:hidden;background:#fff}
body{width:100%;min-width:0;margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.55;overflow-x:hidden}
main{width:100%;overflow:hidden;background:#fff}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}
.announcement{width:100%;height:36px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;gap:28px;font-size:12px;letter-spacing:.05em;text-transform:uppercase}
.announcement span::before,.announcement a::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);margin-right:8px;vertical-align:1px}
.site-header{position:sticky;top:0;z-index:20;width:100%;height:92px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.header-inner{width:var(--container);height:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{width:284px;height:76px;display:flex;align-items:center;background:#fff}
.brand img{width:100%;height:100%;object-fit:contain;object-position:left center}
.nav{display:flex;gap:26px;font-weight:800;color:#344054;font-size:15px}
.nav a{position:relative;padding:8px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:.25s}
.nav a:hover::after{transform:scaleX(1)}
.header-actions{display:flex;gap:12px;align-items:center}
.ghost-btn,.cart-btn,.close-btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:11px 16px;border-radius:999px;font-weight:800;font-size:15px}
.cart-btn{background:var(--ink);color:#fff;border-color:var(--ink)}
.cart-btn span{background:var(--red);border-radius:999px;padding:2px 7px;margin-left:8px}
.hero{width:100%;min-height:690px;position:relative;display:grid;align-items:center;overflow:hidden;background:#101820}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,24,32,.84) 0%,rgba(16,24,32,.68) 32%,rgba(16,24,32,.22) 58%,rgba(16,24,32,.02) 100%),linear-gradient(0deg,rgba(16,24,32,.18),transparent 45%)}
.hero-content{position:relative;z-index:1;width:var(--container);color:#fff;padding-top:8px;margin:0 auto}
.eyebrow{margin:0 0 14px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:900;color:var(--red)}
.hero .eyebrow{color:#ff5961}
.hero h1{font-family:Montserrat,Inter,sans-serif;font-size:clamp(38px,4vw,60px);line-height:1.03;letter-spacing:-.055em;max-width:620px;margin:0;text-wrap:balance}
.lead{font-size:clamp(16px,1.35vw,19px);max-width:540px;color:rgba(255,255,255,.84);margin:22px 0 30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.primary-btn,.secondary-btn{border:0;border-radius:999px;padding:15px 24px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}
.primary-btn{background:var(--red);color:#fff;box-shadow:0 14px 30px rgba(229,9,20,.28)}
.secondary-btn{background:#fff;color:var(--ink)}
.trust-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px}
.trust-row div{min-width:132px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.10);backdrop-filter:blur(14px);padding:15px 17px;border-radius:18px}
.trust-row strong{display:block;font-size:23px}
.trust-row span{color:rgba(255,255,255,.76);font-size:13px}
.category-strip{display:flex;gap:12px;justify-content:center;padding:18px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:92px;z-index:10}
.category-strip button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:11px 18px;font-weight:900;color:#344054}
.category-strip button.active{background:var(--red);border-color:var(--red);color:#fff}
.section{width:var(--container);margin:0 auto;padding:84px 0}
.intro-grid{display:grid;grid-template-columns:1.25fr .875fr .875fr;gap:18px}
.intro-card{border:1px solid var(--line);border-radius:24px;background:#fff;padding:28px;box-shadow:0 18px 50px rgba(16,24,32,.06)}
.intro-card.feature{background:linear-gradient(135deg,#fff,#fff6f6)}
.intro-card span,.intro-card b{color:var(--red);font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:12px}
.intro-card h2,.section-head h2,.tech-panel h2,.agenda h2{font-family:Montserrat,Inter,sans-serif;font-size:clamp(30px,3.3vw,46px);line-height:1.04;letter-spacing:-.045em;margin:10px 0 16px}
.intro-card h3{font-size:22px;margin:12px 0 8px}
.intro-card p,.section-head p,.tech-panel p,.agenda p{color:var(--muted)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}
.section-head p:last-child{max-width:530px}
.toolbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:22px}
.toolbar label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#475467}
.toolbar input,.toolbar select,.checkout-box select{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#fff;min-width:260px;color:var(--ink)}
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.product{border:1px solid var(--line);border-radius:28px;background:#fff;overflow:hidden;box-shadow:0 18px 45px rgba(16,24,32,.06);display:flex;flex-direction:column}
.product-visual{height:210px;background:linear-gradient(135deg,#f5f7fa,#fff);display:grid;place-items:center;position:relative}
.product-visual::before{content:"";width:150px;height:62px;border:12px solid var(--ink);border-radius:45px;box-shadow:120px 0 0 -12px #fff,120px 0 0 0 var(--ink);opacity:.92}
.product-visual::after{content:"";position:absolute;width:128px;height:7px;background:var(--red);border-radius:999px;transform:translateY(48px)}
.badge{position:absolute;left:16px;top:16px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;color:var(--red)}
.product-body{padding:20px;display:flex;flex-direction:column;gap:12px;flex:1}
.product-body h3{font-size:20px;margin:0}
.product-body p{margin:0;color:var(--muted);font-size:14px}
.price{font-size:24px;font-weight:900}
.product button{margin-top:auto;border:0;background:var(--ink);color:#fff;border-radius:16px;padding:13px;font-weight:900}
.services{background:var(--soft);width:100%;max-width:none;padding-left:max(48px,calc((100vw - 1180px)/2));padding-right:max(48px,calc((100vw - 1180px)/2))}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.service-grid article{background:#fff;border:1px solid var(--line);border-radius:26px;padding:28px;min-height:220px}
.service-grid span{color:var(--red);font-weight:900}
.service-grid h3{font-size:24px;margin:18px 0 10px}
.service-grid p{color:var(--muted)}
.mobile-clinics{display:grid;grid-template-columns:1fr 1.1fr;gap:34px;align-items:center}
.mobile-clinics h2{font-family:Montserrat,Inter,sans-serif;font-size:clamp(32px,3.4vw,48px);line-height:1.04;letter-spacing:-.045em;margin:10px 0 18px}
.mobile-clinics p{color:var(--muted);font-size:18px}
.activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.activity-grid article{min-height:230px;border-radius:28px;border:1px solid var(--line);background:linear-gradient(135deg,#fff,#fff7f7);padding:24px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 18px 48px rgba(16,24,32,.07)}
.activity-grid b{font-size:23px;margin-bottom:10px}
.activity-grid span{color:var(--muted)}
.tech-panel{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;background:var(--cream);border-radius:36px;padding:54px;margin-top:90px;margin-bottom:90px}
.tech-list{display:grid;gap:14px}
.tech-list div{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}
.tech-list strong{display:block;font-size:20px}
.tech-list span{color:var(--muted)}
.agenda{display:grid;grid-template-columns:1.25fr .75fr;gap:22px}
.agenda-card,.consult-card{border-radius:36px;padding:42px;border:1px solid var(--line);box-shadow:var(--shadow)}
.agenda-card{background:#fff}
.consult-card{background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:end;min-height:440px;background-image:radial-gradient(circle at 20% 20%,rgba(229,9,20,.42),transparent 32%)}
.consult-card p{color:rgba(255,255,255,.75)}
.consult-card span{color:#ff5961;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
.ig-link{margin-top:18px;width:max-content}
.cart-drawer{position:fixed;inset:0;z-index:40;background:rgba(16,24,32,.42);display:none;justify-content:end}
.cart-drawer.open{display:flex}
.cart-panel{width:min(520px,100%);height:100%;background:#fff;padding:28px;overflow:auto;box-shadow:var(--shadow)}
.cart-head{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:18px}
.cart-items{display:grid;gap:14px;margin:20px 0}
.cart-item{display:grid;grid-template-columns:1fr auto;gap:10px;border:1px solid var(--line);border-radius:20px;padding:16px}
.cart-item b{display:block}
.cart-item small{color:var(--muted)}
.qty{display:flex;gap:8px;align-items:center}
.qty button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#fff;font-weight:900}
.checkout-box{display:grid;gap:14px;border-top:1px solid var(--line);padding-top:18px}
.checkout-box label{display:grid;gap:8px;font-weight:900}
.totals{display:grid;gap:8px;border-radius:20px;background:var(--soft);padding:18px}
.totals span,.totals strong{display:flex;justify-content:space-between}
.full{width:100%}
.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:44px clamp(20px,5vw,80px);background:var(--ink);color:#fff}
.footer img{width:322px;height:90px;object-fit:contain;background:#fff;border-radius:16px;padding:8px}
.footer p{color:rgba(255,255,255,.72)}
.footer-contact{display:grid;gap:6px;color:rgba(255,255,255,.76);font-weight:700}
@media (max-width:980px){
  :root{--container:min(100vw - 36px, 720px)}
  .nav{display:none}.brand{width:240px;height:68px}.brand img{width:100%;height:100%}.site-header{height:auto}.header-inner{padding:12px 0}.announcement{display:none}
  .hero{min-height:680px}.intro-grid,.product-grid,.service-grid,.tech-panel,.agenda,.mobile-clinics{grid-template-columns:1fr}
  .activity-grid{grid-template-columns:1fr}
  .product-grid{grid-template-columns:repeat(2,1fr)}.section-head,.toolbar{align-items:stretch;flex-direction:column}.category-strip{top:72px;overflow:auto;justify-content:flex-start}
}
@media (max-width:620px){
  .product-grid{grid-template-columns:1fr}.hero-content{padding:40px 0}.hero h1{font-size:44px}.footer{flex-direction:column;align-items:flex-start}.header-actions .ghost-btn{display:none}
}

/* ============================================================
   Widget de agendamiento por pasos (booking.js)
   ============================================================ */
.booking-widget{display:flex;flex-direction:column;gap:24px}
.booking-steps{display:flex;gap:8px;flex-wrap:wrap}
.booking-steps span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:7px 14px}
.booking-steps span.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.booking-panel h3{margin:0 0 16px;font-size:20px;font-weight:800;letter-spacing:-.01em}

.service-options{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.service-option{text-align:left;border:1px solid var(--line);background:#fff;border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:6px;transition:.15s}
.service-option .service-tag{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--red)}
.service-option b{font-size:16px}
.service-option small{color:var(--muted)}
.service-option[aria-pressed="true"]{border-color:var(--red);background:#fff6f6;box-shadow:0 10px 26px rgba(229,9,20,.14)}

.day-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.day-option{min-width:74px;border:1px solid var(--line);background:#fff;border-radius:18px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;gap:2px;flex:0 0 auto}
.day-option small{text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}
.day-option b{font-size:20px}
.day-option span{color:var(--muted);font-size:12px}
.day-option[aria-pressed="true"]{border-color:var(--red);background:var(--red);color:#fff}
.day-option[aria-pressed="true"] small,.day-option[aria-pressed="true"] span{color:rgba(255,255,255,.82)}

.slot-hint{color:var(--muted);margin:0 0 12px}
.slot-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.slot-option{border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px 6px;font-weight:800}
.slot-option[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.slot-option[disabled]{opacity:.35;text-decoration:line-through;cursor:not-allowed}

.booking-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.booking-form label{grid-column:span 1;display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#475467}
.booking-form label.full,.booking-form button{grid-column:1/-1}
.booking-form input{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#fff;color:var(--ink)}

.booking-nav{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:18px}

.booking-success{text-align:center;padding:20px 0}
.success-icon{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#e9f8ee;color:#1f9d55;font-size:26px;font-weight:900;margin-bottom:14px}
.booking-success h3{font-size:22px;margin-bottom:8px}
.booking-success p{color:var(--muted);max-width:420px;margin:0 auto 14px}
.booking-code{display:inline-block;border:1px dashed var(--red);color:var(--red);font-weight:900;letter-spacing:.08em;border-radius:999px;padding:8px 18px;margin-bottom:18px}

/* Pagina standalone de agendamiento (agendamiento.html) */
.booking-page-header{width:100%;height:84px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center}
.booking-page-header .header-inner{justify-content:center}
.booking-page-header .brand{width:230px;height:62px}
.booking-page-hero{width:var(--container);margin:0 auto;padding:48px 0 8px;text-align:center}
.booking-page-hero .eyebrow{justify-content:center;display:flex}
.booking-page-hero h1{font-family:Montserrat,Inter,sans-serif;font-size:clamp(28px,3.4vw,40px);letter-spacing:-.04em;margin:8px 0 10px}
.booking-page-hero p{color:var(--muted);max-width:560px;margin:0 auto}
.booking-page-shell{width:min(760px,calc(100vw - 48px));margin:32px auto 80px}
.booking-page-shell .agenda-card{border-radius:36px;padding:42px;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff}
.booking-page-footer{text-align:center;padding:28px;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}

@media (max-width:620px){
  .service-options{grid-template-columns:1fr}
  .slot-grid{grid-template-columns:repeat(3,1fr)}
  .booking-form{grid-template-columns:1fr}
  .booking-page-shell .agenda-card{padding:26px;border-radius:26px}
}
