:root{
  --blue:#1500ff;--purple:#7c3aed;--green:#22c55e;
  --grad:linear-gradient(135deg,#1500ff,#7c3aed);
  --dark:#0f172a;--gray:#64748b;--gray-light:#f8fafc;
  --radius:18px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;color:var(--dark);overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}

/* ── NAV ── */
nav{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid #e2e8f0;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:70px}
.nav-logo img{height:48px;display:block}
.nav-links{display:flex;align-items:center;gap:28px;list-style:none}
.nav-links a{font-size:14px;font-weight:600;color:var(--dark);transition:color .2s}
.nav-links a:hover{color:var(--blue)}
.nav-cta{background:var(--blue);color:#fff!important;padding:10px 22px;border-radius:50px;font-weight:700!important;transition:opacity .2s!important}
.nav-cta:hover{opacity:.88}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px}
.hamburger span{display:block;width:24px;height:2px;background:var(--dark);border-radius:2px;transition:.3s}
.mobile-menu{display:none;flex-direction:column;gap:0;background:#fff;border-top:1px solid #e2e8f0;position:absolute;top:70px;left:0;right:0;z-index:99}
.mobile-menu a{padding:14px 24px;font-size:15px;font-weight:600;border-bottom:1px solid #f1f5f9}
.mobile-menu a:last-child{background:var(--blue);color:#fff;text-align:center;margin:12px 24px;border-radius:50px;border:none}
@media(max-width:768px){.nav-links{display:none}.hamburger{display:flex}}

/* ── HERO ── */
.hero-section{background:var(--grad);display:flex;align-items:center;padding:100px 24px 80px;position:relative;overflow:hidden}
.hero-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(124,58,237,.4) 0%,transparent 60%);pointer-events:none}
.hero-inner{max-width:1200px;margin:0 auto;width:100%;display:grid;grid-template-columns:1fr 380px;gap:60px;align-items:center;position:relative;z-index:1}
.hero-left{color:#fff}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);padding:8px 18px;border-radius:50px;font-size:13px;font-weight:600;margin-bottom:32px;backdrop-filter:blur(4px)}
.hero-h1{font-family:'Montserrat',sans-serif;font-size:clamp(2.4rem,5vw,3.6rem);font-weight:900;line-height:1.1;margin-bottom:24px}
.hero-h1 span{color:#facc15}
.hero-desc{font-size:1.05rem;line-height:1.7;opacity:.9;margin-bottom:36px;max-width:480px}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}
.btn-w{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--blue);padding:14px 28px;border-radius:50px;font-weight:700;font-size:15px;transition:.2s;border:2px solid #fff}
.btn-w:hover{background:transparent;color:#fff}
.btn-o{display:inline-flex;align-items:center;gap:8px;background:transparent;color:#fff;padding:14px 28px;border-radius:50px;font-weight:700;font-size:15px;border:2px solid rgba(255,255,255,.5);transition:.2s}
.btn-o:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.hero-stats{display:flex;gap:40px;margin-top:48px}
.stat-n{font-family:'Montserrat',sans-serif;font-size:2.4rem;font-weight:900;color:#facc15;line-height:1}
.stat-l{font-size:12px;font-weight:600;color:rgba(255,255,255,.7);margin-top:4px}

.hero-right{display:flex;flex-direction:column;gap:14px}
.hero-logo-box{background:#ffffff;border-radius:22px;padding:36px;box-shadow:0 20px 60px rgba(0,0,0,.22);text-align:center;display:flex;align-items:center;justify-content:center;isolation:isolate}
.hero-logo-box img{width:240px;max-width:100%;display:block;margin:0 auto;object-fit:contain}
.info-chip{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:14px 18px;display:flex;align-items:center;gap:12px;color:#fff;font-size:14px;font-weight:500;backdrop-filter:blur(6px)}
.info-chip i{color:#facc15;font-size:16px;flex-shrink:0}
@media(max-width:900px){.hero-inner{grid-template-columns:1fr}.hero-right{display:none}}
@media(max-width:700px){.hero-section{padding:52px 20px 44px;min-height:auto}}

/* ── QUICK BAR ── */
.quick-bar{background:var(--dark);padding:14px 24px;display:flex;flex-wrap:wrap;justify-content:center;gap:28px}
.qitem{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.85);font-size:13px;font-weight:500;transition:color .2s}
.qitem:hover{color:#fff}
@media(max-width:600px){
  .quick-bar{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;padding:14px 20px}
  .qitem{font-size:12px;gap:6px}
}
.c-blue{color:var(--blue)}
.c-green{color:var(--green)}
.c-gold{color:#facc15}
.c-pin{color:#ef4444}

/* ── SECTIONS COMMON ── */
.sec-c{max-width:1200px;margin:0 auto;padding:0 24px}
.sec-head{text-align:center;margin-bottom:60px}
.sec-tag{display:inline-block;background:rgba(21,0,255,.09);color:var(--blue);padding:6px 15px;border-radius:18px;font-size:12px;font-weight:700;letter-spacing:.4px;margin-bottom:14px;text-transform:uppercase}
.sec-title{font-family:'Montserrat',sans-serif;font-size:38px;font-weight:800;margin-bottom:14px}
.sec-sub{font-size:16px;color:var(--gray);max-width:580px;margin:0 auto;line-height:1.65}
@media(max-width:600px){.sec-title{font-size:30px}}

/* ── GALLERY ── */
#galeria{padding:84px 24px 60px;background:var(--gray-light)}
.gallery-grid{
  max-width:1160px;margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:320px 260px;
  gap:14px
}
.gallery-item{position:relative;overflow:hidden;border-radius:18px;background:#cbd5e1;cursor:pointer}
.gallery-item.wide{grid-column:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.gallery-item:hover img{transform:scale(1.06)}
.overlay{display:none}
/* Lightbox */
.lb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:9999;align-items:center;justify-content:center;padding:20px}
.lb-overlay.open{display:flex}
.lb-overlay img{max-width:94vw;max-height:88vh;border-radius:14px;object-fit:contain;box-shadow:0 0 60px rgba(0,0,0,.6)}
.lb-close{position:absolute;top:18px;right:22px;color:#fff;font-size:36px;cursor:pointer;line-height:1;font-weight:300;opacity:.85;transition:opacity .2s}
.lb-close:hover{opacity:1}
.lb-caption{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:rgba(255,255,255,.75);font-size:14px;font-weight:600}
/* Mobile: cuadrícula 3 columnas de miniaturas */
@media(max-width:600px){
  .gallery-grid{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,110px);gap:8px}
  .gallery-item.wide{grid-column:span 1}
  .gallery-item img{border-radius:12px}
  .gallery-item{border-radius:12px}
}

/* ── SERVICES ── */
#servicios{background:#fff;padding:84px 24px}
.srv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-top:0}
.srv-card{background:var(--gray-light);border-radius:var(--radius);padding:32px 28px;transition:transform .25s,box-shadow .25s}
.srv-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(21,0,255,.1)}
.srv-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;font-size:22px}
.i-blue{background:rgba(21,0,255,.1);color:var(--blue)}
.i-green{background:rgba(34,197,94,.12);color:#16a34a}
.i-purple{background:rgba(124,58,237,.1);color:var(--purple)}
.i-gold{background:rgba(250,204,21,.15);color:#b45309}
.srv-card h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:17px;margin-bottom:10px}
.srv-card p{font-size:14px;color:var(--gray);line-height:1.65}

/* ── UNIVERSITY DISCOUNTS ── */
#descuentos{padding:80px 24px;background:#fff}
.disc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:0}
.disc-card{border-radius:var(--radius);border:2px solid #e2e8f0;padding:26px 26px 28px;transition:border-color .25s,transform .25s;background:#fff;display:flex;flex-direction:column}
.disc-card:hover{border-color:var(--blue);transform:translateY(-4px)}
.disc-logo-wrap{height:60px;display:flex;align-items:center;margin-bottom:14px}
.disc-logo-wrap img{max-height:54px;max-width:160px;width:auto;object-fit:contain}
.disc-univ{font-family:'Montserrat',sans-serif;font-weight:900;font-size:15px;color:var(--dark);margin-bottom:4px}
.disc-sub{font-size:12px;color:var(--gray);margin-bottom:16px}
.disc-item{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid #f1f5f9}
.disc-item:last-of-type{border-bottom:none}
.disc-pct{font-family:'Montserrat',sans-serif;font-weight:900;font-size:2rem;color:var(--blue);min-width:56px;line-height:1}
.disc-desc{font-size:13px;font-weight:600;color:var(--dark);line-height:1.4}
.disc-desc span{display:block;font-weight:400;color:var(--gray);font-size:12px;margin-top:2px}
.disc-note{text-align:center;margin-top:32px;font-size:13px;color:var(--gray)}
.disc-note strong{color:var(--dark)}

/* ── CALCULATOR ── */
#calculadora{padding:84px 24px;background:var(--gray-light)}
.calc-box{background:#fff;border-radius:24px;padding:40px;box-shadow:0 8px 32px rgba(0,0,0,.06);max-width:900px;margin:0 auto}
.lens-btns{display:flex;gap:10px;justify-content:center;margin-bottom:36px;flex-wrap:wrap}
.lens-btn{padding:10px 24px;border-radius:50px;border:2px solid #e2e8f0;font-weight:700;font-size:14px;cursor:pointer;background:#fff;color:var(--dark);transition:.2s}
.lens-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.eyes-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px}
.eye-panel{background:var(--gray-light);border-radius:16px;padding:24px}
.eye-title{display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px;margin-bottom:18px;font-family:'Montserrat',sans-serif}
.eye-title i{color:var(--blue)}
.eye-sub{color:var(--purple);font-weight:600;font-size:13px}
.fg-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fg{margin-bottom:14px}
.fg label{display:block;font-size:12px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.fg input{width:100%;padding:11px 14px;border:2px solid #e2e8f0;border-radius:10px;font-size:15px;font-family:'Inter',sans-serif;transition:border-color .2s}
.fg input:focus{outline:none;border-color:var(--blue)}
.calc-btn{width:100%;padding:16px;background:var(--grad);color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:opacity .2s;font-family:'Inter',sans-serif}
.calc-btn:hover{opacity:.9}
.calc-result{display:none;border-radius:16px;padding:28px;margin-top:24px;text-align:center}
.r-yes{background:rgba(34,197,94,.08);border:2px solid #22c55e}
.r-no{background:rgba(251,191,36,.08);border:2px solid #f59e0b;color:#92400e}
.r-warn{background:rgba(239,68,68,.08);border:2px solid #ef4444;color:#991b1b}
.r-icon{font-size:2.2rem;margin-bottom:10px}
.r-title{font-family:'Montserrat',sans-serif;font-weight:800;font-size:19px;margin-bottom:8px}
.r-text{font-size:14px;line-height:1.7}
@media(max-width:600px){.eyes-grid{grid-template-columns:1fr}}

/* ── CALENDAR ── */
#citas{padding:84px 24px;background:#fff}
.cal-wrap{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:32px}
.cal-panel{background:var(--gray-light);border-radius:20px;padding:28px}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.cal-header h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:17px}
.cal-nav{background:none;border:none;cursor:pointer;font-size:18px;color:var(--blue);padding:4px 8px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px}
.cal-day-name{text-align:center;font-size:11px;font-weight:700;color:var(--gray);padding:4px 0}
.cal-day{text-align:center;padding:7px 4px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:.2s}
.cal-day:hover:not(.disabled):not(.past){background:rgba(21,0,255,.1);color:var(--blue)}
.cal-day.selected{background:var(--blue);color:#fff}
.cal-day.today{font-weight:900;color:var(--blue)}
.cal-day.past,.cal-day.disabled{color:#cbd5e1;cursor:default}
.cal-day.empty{cursor:default}
.lang-toggle{display:flex;gap:8px;margin-bottom:16px}
.lang-btn{padding:6px 16px;border-radius:50px;border:2px solid #e2e8f0;font-size:13px;font-weight:700;cursor:pointer;background:#fff;transition:.2s}
.lang-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.slot{padding:9px 4px;border-radius:10px;border:2px solid #e2e8f0;text-align:center;font-size:13px;font-weight:700;cursor:pointer;transition:.2s;background:#fff}
.slot:hover{border-color:var(--blue);color:var(--blue)}
.slot.selected{background:var(--blue);color:#fff;border-color:var(--blue)}
.en-note{background:rgba(21,0,255,.06);border:1.5px solid rgba(21,0,255,.15);border-radius:10px;padding:10px 14px;font-size:13px;color:var(--blue);font-weight:600;margin-bottom:12px;display:none}
.slots-placeholder{font-size:13px;color:var(--gray);text-align:center;padding:28px 16px;background:#fff;border:2px dashed #e2e8f0;border-radius:12px;line-height:1.6}
.wa-btn{width:100%;padding:14px;background:#25D366;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-family:'Inter',sans-serif}
.confirm-note{font-size:12px;color:var(--gray);text-align:center;margin-top:8px}
@media(max-width:700px){.cal-wrap{grid-template-columns:1fr}}

/* ── BRANDS ── */
#marcas{padding:84px 24px;background:var(--gray-light)}
.brand-tabs{display:flex;gap:8px;justify-content:center;margin-bottom:40px}
.btab{padding:10px 28px;border-radius:50px;border:2px solid #e2e8f0;font-weight:700;font-size:14px;cursor:pointer;background:#fff;transition:.2s}
.btab.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.brand-panel{display:none}
.brand-panel.active{display:block}
.brands-list{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.btag-item{background:#fff;border:1.5px solid #e2e8f0;border-radius:50px;padding:8px 20px;font-size:13px;font-weight:600;color:var(--dark)}
.premium-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:28px}
.ptag{background:var(--grad);color:#fff;border-radius:14px;padding:16px 12px;text-align:center;font-weight:800;font-size:15px;font-family:'Montserrat',sans-serif}
.ptag small{display:block;font-weight:400;font-size:11px;opacity:.8;margin-top:3px}
.brand-logo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px}
.blogo-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:14px;padding:14px 16px;display:flex;align-items:center;justify-content:center;height:76px;transition:border-color .25s,transform .25s}
.blogo-card:hover{border-color:var(--blue);transform:translateY(-3px)}
.blogo-card img{max-height:38px;max-width:100%;object-fit:contain}
.blogo-more{font-size:14px;font-weight:700;color:var(--gray)}

/* ── CONTACT LENSES (compact) ── */
#lentescontacto{padding:56px 24px;background:var(--gray-light)}
.cl-inner{max-width:1000px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:28px;background:#fff;border-radius:20px;padding:32px 36px;box-shadow:0 4px 20px rgba(0,0,0,.05)}
.cl-text{flex:1;min-width:240px}
.cl-text h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:20px;margin-bottom:6px}
.cl-text p{font-size:14px;color:var(--gray);line-height:1.6}
.cl-brands{display:flex;flex-wrap:wrap;gap:8px;flex:1;min-width:240px}
.cl-tag{background:var(--gray-light);border:1.5px solid #e2e8f0;border-radius:50px;padding:8px 18px;font-size:13px;font-weight:700;color:var(--dark)}
.cl-logos{display:flex;flex-wrap:wrap;gap:10px;flex:2;min-width:280px;align-items:center;justify-content:center}
.cl-logo-card{background:var(--gray-light);border:1.5px solid #e2e8f0;border-radius:12px;padding:10px 14px;display:flex;align-items:center;justify-content:center;height:52px;transition:border-color .25s}
.cl-logo-card:hover{border-color:var(--blue)}
.cl-logo-card img{max-height:26px;max-width:100px;object-fit:contain}
.cl-wa{display:inline-flex;align-items:center;gap:8px;background:#25D366;color:#fff;padding:11px 20px;border-radius:12px;font-weight:700;font-size:13px;flex-shrink:0;transition:opacity .2s}
.cl-wa:hover{opacity:.9}

/* ── MATERIALS ── */
#materiales{background:var(--dark);color:#fff;padding:84px 24px}
.mat-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.mat-tag-dark{display:inline-block;background:rgba(255,255,255,.12);color:#facc15;padding:6px 14px;border-radius:18px;font-size:11px;font-weight:700;letter-spacing:.5px;margin-bottom:16px;text-transform:uppercase}
.mat-grid h2{font-family:'Montserrat',sans-serif;font-size:32px;font-weight:800;margin-bottom:12px}
.mat-grid p{color:rgba(255,255,255,.7);font-size:15px;line-height:1.7;margin-bottom:24px}
.mat-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.mat-list li{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500}
.mat-list li::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0}
.pol-card{background:linear-gradient(135deg,rgba(124,58,237,.3),rgba(21,0,255,.3));border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:30px}
.pol-card h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:18px;margin-bottom:6px;color:#facc15}
.pol-card p{font-size:14px;color:rgba(255,255,255,.8);line-height:1.7;margin-bottom:20px}
.pol-feat{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.pol-feat li{display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.85)}
.pol-feat li i{color:#facc15;width:16px}
@media(max-width:700px){.mat-grid{grid-template-columns:1fr}}

/* ── MAUI JIM ── */
#mauijim{padding:84px 24px;background:var(--gray-light)}
.mj-section{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-bottom:60px}
.mj-tag{display:inline-block;background:rgba(21,0,255,.09);color:var(--blue);padding:6px 15px;border-radius:18px;font-size:12px;font-weight:700;letter-spacing:.4px;margin-bottom:16px;text-transform:uppercase}
.mj-section h2{font-family:'Montserrat',sans-serif;font-size:30px;font-weight:800;margin-bottom:12px}
.mj-section p{font-size:15px;color:var(--gray);line-height:1.75;margin-bottom:16px}
.mj-feats{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.mj-feats li{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--dark)}
.mj-feats li i{color:var(--blue);width:16px}
.delivery-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(21,0,255,.08);border:1.5px solid rgba(21,0,255,.2);border-radius:12px;padding:10px 16px;font-size:13px;font-weight:700;color:var(--blue)}
.pol-card2{background:var(--grad);color:#fff;border-radius:20px;padding:30px}
.pol-card2 h3{font-family:'Montserrat',sans-serif;font-weight:900;font-size:20px;margin-bottom:4px}
.pol-card2 .pol-badge{display:inline-block;background:rgba(255,255,255,.2);border-radius:8px;padding:3px 10px;font-size:11px;font-weight:700;letter-spacing:.5px;margin-bottom:16px}
.pol-card2 ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.pol-card2 ul li{display:flex;align-items:center;gap:8px;font-size:13px}
.pol-card2 ul li i{color:#facc15;width:16px}
.mj-wa-btn{display:flex;align-items:center;justify-content:center;gap:8px;background:#25D366;color:#fff;padding:13px 20px;border-radius:12px;font-weight:700;font-size:14px;transition:opacity .2s}
.mj-wa-btn:hover{opacity:.9}
.mj-models-title{font-family:'Montserrat',sans-serif;font-weight:800;font-size:22px;margin-bottom:20px;text-align:center}
.mj-models-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.mj-model-card{background:#fff;border-radius:16px;padding:22px;border:2px solid #e2e8f0;transition:border-color .25s}
.mj-model-card:hover{border-color:var(--blue)}
.mj-model-name{font-family:'Montserrat',sans-serif;font-weight:800;font-size:16px;margin-bottom:4px}
.mj-model-style{font-size:12px;color:var(--gray);margin-bottom:12px}
.rx-badge{display:inline-flex;align-items:center;gap:5px;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700;margin-bottom:10px}
.rx-yes{background:rgba(34,197,94,.1);color:#16a34a}
.rx-consultar{background:rgba(21,0,255,.08);color:var(--blue)}
.mj-model-ranges{font-size:12px;color:var(--gray);line-height:1.6}
@media(max-width:700px){.mj-section{grid-template-columns:1fr}}

/* ── TOP BRANDS (Costa del Mar / Tom Ford) ── */
#marcas-top{padding:84px 24px;background:#fff}
.top-brands-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:700px){.top-brands-grid{grid-template-columns:1fr}}
.brand-feature-card{border-radius:20px;padding:32px;color:#fff;position:relative;overflow:hidden}
.brand-feature-card .bf-badge{display:inline-block;background:rgba(255,255,255,.18);border-radius:8px;padding:4px 12px;font-size:11px;font-weight:700;letter-spacing:.5px;margin-bottom:16px;text-transform:uppercase}
.brand-feature-card h3{font-family:'Montserrat',sans-serif;font-weight:900;font-size:22px;margin-bottom:10px}
.brand-feature-card p{font-size:14px;line-height:1.7;opacity:.85;margin-bottom:18px}
.brand-feature-card ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.brand-feature-card ul li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}
.brand-feature-card ul li i{width:16px}
.bf-costa{background:linear-gradient(135deg,#073b5c,#0e7490)}
.bf-costa .bf-badge{color:#67e8f9}
.bf-costa ul li i{color:#67e8f9}
.bf-tomford{background:linear-gradient(135deg,#1c1c1c,#3d2f1f)}
.bf-tomford .bf-badge{color:#facc15}
.bf-tomford ul li i{color:#facc15}
.bf-wa{display:inline-flex;align-items:center;gap:8px;background:#25D366;color:#fff;padding:12px 20px;border-radius:12px;font-weight:700;font-size:14px;transition:opacity .2s}
.bf-wa:hover{opacity:.9}
.brand-logo-box{background:#fff;border-radius:12px;padding:10px 18px;display:inline-block;margin-bottom:16px}
.brand-logo-box img{height:24px;display:block}
.ins-tab{padding:12px 26px;border-radius:50px;border:2px solid #e2e8f0;font-weight:700;font-size:14px;cursor:pointer;background:#fff;transition:.2s;display:flex;align-items:center;justify-content:center}
.ins-tab.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.ins-tab-logo{height:22px;max-width:110px;object-fit:contain;display:block;transition:filter .2s}
.ins-tab.active .ins-tab-logo{filter:brightness(0) invert(1)}
.ins-panel{display:none}
.ins-panel.active{display:block}

/* ── REVIEWS ── */
#resenas{background:var(--gray-light);padding:84px 24px}
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.review-card{background:#fff;border-radius:18px;padding:28px;box-shadow:0 4px 18px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:12px;border-top:3px solid transparent;transition:border-color .25s,transform .25s}
.review-card:hover{border-color:var(--blue);transform:translateY(-4px)}
.rev-header{display:flex;align-items:center;gap:12px}
.rev-avatar{width:42px;height:42px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;flex-shrink:0}
.rev-name{font-weight:700;color:var(--dark);font-size:15px}
.rev-stars{color:#f59e0b;font-size:14px;letter-spacing:1px}
.rev-text{color:#555;font-size:14px;line-height:1.75;flex:1;font-style:italic}

/* ── QUOTE ── */
#cotizacion{background:#fff}
.q-inner{max-width:700px;margin:0 auto;padding:84px 24px}
.q-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px}
.c-opt{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--gray-light);border-radius:16px;padding:24px 16px;font-weight:700;font-size:14px;transition:.2s;text-align:center}
.c-opt i{font-size:1.8rem}
.c-opt:hover{background:rgba(21,0,255,.07);color:var(--blue)}
.q-form{background:var(--gray-light);border-radius:20px;padding:32px}
.q-form h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:20px;margin-bottom:20px}
.fg-q{margin-bottom:16px}
.fg-q label{display:block;font-size:12px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.fg-q input,.fg-q select,.fg-q textarea{width:100%;padding:11px 14px;border:2px solid #e2e8f0;border-radius:10px;font-size:15px;font-family:'Inter',sans-serif;background:#fff;transition:border-color .2s}
.fg-q input:focus,.fg-q select:focus,.fg-q textarea:focus{outline:none;border-color:var(--blue)}
.fg-q textarea{resize:vertical}

/* ── LOCATION ── */
#ubicacion{padding:84px 24px;background:var(--gray-light)}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.loc-info h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:22px;margin-bottom:24px}
.loc-item{display:flex;gap:14px;margin-bottom:20px;align-items:flex-start}
.loc-icon{width:42px;height:42px;border-radius:12px;background:var(--grad);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;flex-shrink:0}
.loc-label{font-weight:700;font-size:14px;margin-bottom:2px}
.loc-val{font-size:14px;color:var(--gray);line-height:1.5}
.dir-btn{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;padding:13px 24px;border-radius:50px;font-weight:700;font-size:14px;margin-top:8px;transition:opacity .2s}
.dir-btn:hover{opacity:.88}
.map-wrap{border-radius:20px;overflow:hidden;height:380px;box-shadow:0 8px 32px rgba(0,0,0,.1);position:relative}
.map-wrap iframe{width:100%;height:100%;border:none;display:block}
.map-open-btn{position:absolute;top:12px;left:12px;background:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;color:var(--blue);cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15);display:flex;align-items:center;gap:6px}
@media(max-width:700px){.loc-grid{grid-template-columns:1fr}}

/* ── FOOTER ── */
footer{background:var(--dark);color:#fff;padding:60px 24px 30px}
.ft-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.ft-logo img{height:56px;margin-bottom:14px;display:block;background:#fff;padding:8px 14px;border-radius:12px;object-fit:contain}
.ft-logo p{font-size:14px;line-height:1.6;color:rgba(255,255,255,.6)}
.ft-col h4{font-family:'Montserrat',sans-serif;font-weight:800;font-size:14px;margin-bottom:16px;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.5px}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.ft-col ul li a{font-size:14px;color:rgba(255,255,255,.65);transition:color .2s}
.ft-col ul li a:hover{color:#fff}
.ft-bottom{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.08);padding-top:24px;flex-wrap:wrap;gap:12px}
.ft-copy{font-size:13px;color:rgba(255,255,255,.4)}
.soc-links{display:flex;gap:10px}
.soc-link{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);font-size:14px;transition:.2s}
.soc-link:hover{background:var(--blue);color:#fff}
@media(max-width:700px){.ft-grid{grid-template-columns:1fr 1fr}.ft-grid>div:first-child{grid-column:span 2}}

/* ── WHATSAPP FLOAT ── */
.wa-float{position:fixed;bottom:24px;right:24px;z-index:200;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;box-shadow:0 4px 20px rgba(37,211,102,.4);transition:transform .2s}
.wa-float:hover{transform:scale(1.1)}
/* ── COMPACTACIÓN MÓVIL: reduce paddings, tamaños y espacios en pantallas chicas ── */
@media(max-width:600px){
  /* Menos aire arriba/abajo en cada sección */
  #galeria,#servicios,#promociones,#descuentos,#calculadora,#citas,#marcas,#lentescontacto,#materiales,#mauijim,#resenas,#ubicacion{
    padding-top:48px!important;padding-bottom:48px!important;
  }
  /* Encabezados de sección más compactos */
  .sec-head{margin-bottom:32px}
  .sec-title{font-size:24px;margin-bottom:10px}
  .sec-sub{font-size:14px}
  .sec-tag,.mj-tag{margin-bottom:10px}

  /* Tarjetas de servicios: iconos y padding más chicos, 2 columnas */
  .srv-grid{grid-template-columns:1fr 1fr;gap:12px}
  .srv-card{padding:18px 16px}
  .srv-icon{width:40px;height:40px;font-size:16px;border-radius:12px;margin-bottom:12px}
  .srv-card h3{font-size:14px;margin-bottom:6px}
  .srv-card p{font-size:12.5px;line-height:1.5}

  /* Promos más compactas */
  .promo-grid{gap:14px}
  .promo-card{padding:20px}
  .promo-card h3{font-size:16px}
  .promo-card p{font-size:13px;margin-bottom:12px}

  /* Descuentos universitarios */
  .disc-grid{grid-template-columns:1fr 1fr;gap:12px}
  .disc-card{padding:16px 14px}
  .disc-logo-wrap{height:36px;margin-bottom:10px}
  .disc-logo-wrap img{max-height:32px}
  .disc-univ{font-size:13px}
  .disc-sub{font-size:10.5px;margin-bottom:10px}
  .disc-item{padding:7px 0;gap:8px}
  .disc-pct{font-size:1.4rem;min-width:40px}
  .disc-desc{font-size:11px}
  .disc-desc span{font-size:10px}

  /* Marcas insignia (Maui Jim / Costa / Tom Ford) */
  .brand-feature-card{padding:22px}
  .brand-feature-card h3{font-size:18px}
  .brand-feature-card p{font-size:13px;margin-bottom:12px}

  /* Calculadora: paneles de ojos más compactos */
  .calc-box{padding:22px 18px}
  .eye-panel{padding:16px}
  .fg{margin-bottom:10px}
  .fg input{padding:9px 12px}
  .lens-btns{gap:8px;margin-bottom:22px}
  .lens-btn{padding:8px 16px;font-size:13px}

  /* Galería más compacta */
  #galeria{padding-top:48px}

  /* Reseñas: tarjetas más chicas y texto limitado a 4 líneas */
  .reviews-grid{gap:12px}
  .review-card{padding:16px;gap:8px;border-radius:14px}
  .rev-avatar{width:32px;height:32px;font-size:13px}
  .rev-name{font-size:13px}
  .rev-stars{font-size:12px}
  .rev-text{font-size:12.5px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}

  /* Citas: horarios en 4 columnas y más compactos */
  .cal-panel{padding:18px}
  .cal-day{padding:6px 2px;font-size:12px}
  .slots-grid{grid-template-columns:repeat(4,1fr);gap:6px}
  .slot{padding:8px 2px;font-size:12px}
  .slots-placeholder{padding:20px 14px;font-size:12.5px}
}
