/* ===== Rederi Ligero ===== */
:root{
  --brand:#7f2aa9;
  --brand-2:#5b1e7a;
  --max:1100px;
  --gap:18px;
  --radius:12px;
}

/* ===== Base ===== */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:system-ui,Arial,Helvetica,sans-serif;
  color:#222;
  line-height:1.5;
  background:#fff;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gap)}
.section{position:relative;padding:40px 0}

/* ===== Header / Nav (topbar blanca) ===== */
.topbar{
  background:#fff;
  color:var(--brand);
  position:sticky; top:0; z-index:50;
  border-bottom:1px solid #eee;
  transition:box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.topbar.scrolled{
  border-bottom-color:transparent;
  box-shadow:0 6px 20px rgba(0,0,0,.06);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:12px 0}
.logo img{max-height:72px;width:auto;display:block}
@media (max-width:700px){ .logo img{max-height:48px} }

.menu{display:flex;align-items:center;gap:18px}
.menu-list{list-style:none;margin:0;padding:0}
.menu-list>li{display:inline-block}
.menu a{
  color:var(--brand);
  text-decoration:none;
  display:inline-block;
  padding:8px 10px;
  border-radius:8px;
  position:relative;
}
.menu a:hover{ color:var(--brand-2); }
/* subrayado suave */
.menu a::after{
  content:"";
  position:absolute; left:8px; right:8px; bottom:4px;
  height:2px; background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .18s ease;
}
.menu a:hover::after{ transform:scaleX(1); }

/* “Chip” del teléfono */
.menu a[href^="tel:"]{
  --chip-bg: var(--brand);
  --chip-bg-hover: var(--brand-2);
  --chip-shadow: 0 4px 8px rgba(127,42,169,.20);

  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px;
  border-radius:999px;
  background:var(--chip-bg);
  color:#fff !important; font-weight:600; line-height:1;
  box-shadow:var(--chip-shadow);
  transition:background .15s ease, transform .15s ease, box-shadow .15s ease;
}
.menu a[href^="tel:"]::before{ content:"📞"; font-size:.95em; line-height:1; opacity:.95 }
.menu a[href^="tel:"]::after{ display:none } /* sin subrayado animado */
.menu a[href^="tel:"]:hover{
  background:var(--chip-bg-hover);
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(127,42,169,.24);
}
.menu a[href^="tel:"]:focus-visible{
  outline:2px solid color-mix(in oklab, var(--brand) 40%, white);
  outline-offset:3px;
}

/* Burger */
.burger{display:none;width:44px;height:44px;background:transparent;border:0;cursor:pointer}
.burger .bar{display:block;width:22px;height:2px;background:var(--brand);border-radius:2px;margin:4px auto}

/* Navegación móvil */
@media (max-width:900px){
  .burger{display:inline-grid;place-items:center}
  .menu{
    display:none; position:fixed; inset:64px 0 0 0;
    background:#fff; z-index:100; padding:16px 20px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    border-top:1px solid #eee;
  }
  .menu.open{display:block}
  .menu-list{display:flex;flex-direction:column;gap:10px}
  .menu a{ color:#333; padding:12px 6px }
  .menu a:hover{ color:var(--brand) }
  .menu a[href^="tel:"]{ align-self:flex-start; margin-top:6px }
}

/* ===== Hero ===== */
.hero{padding:48px 0 18px;text-align:center}
.hero h1{
  color:var(--brand-2);
  font-size:40px; font-weight:800; letter-spacing:1.5px;
  margin:0 0 8px; text-transform:uppercase;
}
.hero p{color:#666;margin:0 auto 18px;max-width:820px}

/* ===== Productos ===== */
#productos{margin-top:-28px}
@media (max-width:900px){ #productos{margin-top:0} }

.grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:28px; max-width:var(--max); margin:0 auto;
}
@media (max-width:1000px){ .grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){
  .grid{grid-template-columns:1fr}
  .item .circle{width:96px;height:96px}
}
.item{
  padding:22px 18px 28px; background:transparent; border:0; text-align:center; border-radius:12px;
  display:flex; flex-direction:column; align-items:center; gap:12px; position:relative; z-index:2;
}
.item .circle{
  width:120px;height:120px;border-radius:50%;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(250,244,255,.85));
  box-shadow:0 8px 20px rgba(18,22,28,.10);
  border:6px solid rgba(127,42,169,.06);
  transform:translateY(-6px);
}
.item .circle img{width:100%;height:100%;object-fit:cover}
.item h3{margin:0;font-size:18px;color:var(--brand-2);font-weight:700;letter-spacing:.4px}
.item p{margin:0;color:#666;font-size:14px;line-height:1.5;max-width:240px}

/* ===== Servicios ===== */
.cols3{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:26px; max-width:var(--max); margin:0 auto;
}
@media (max-width:1000px){ .cols3{grid-template-columns:1fr} }
.panel{
  background:linear-gradient(180deg,#7f2aa9 0%,#a46cd1 100%);
  color:#fff; border-radius:var(--radius);
  padding:28px; border:1px solid rgba(255,255,255,.2);
}
.panel h3{margin:10px 0 8px;color:#fff}
.panel p{margin:0;opacity:.95}
/* normalizar imágenes de servicios */
.panel img{
  display:block; width:100%;
  aspect-ratio:16/9; object-fit:cover;
  border-radius:8px;
}

/* ===== Vídeo (YouTube o MP4) ===== */
.video{max-width:var(--max);width:100%;margin:22px auto}
.video .ratio{position:relative;width:100%;padding-top:56.25%;border-radius:12px;overflow:hidden}
.video .ratio iframe,
.video .ratio video{
  position:absolute; inset:0; width:100% !important; height:100% !important;
  border:0; display:block; object-fit:cover;
}

/* ===== Banda “Cortinas a medida” ===== */
.band{max-width:var(--max);margin:0 auto}

/* ===== Ubicación ===== */
#ubicacion{padding:40px 0;position:relative}
#ubicacion .wrap{
  display:grid; grid-template-columns:1fr 420px; gap:28px; align-items:start;
  max-width:var(--max); margin:0 auto; padding:0 var(--gap);
}
#ubicacion .map-box{
  border:1px solid #eee; border-radius:12px; overflow:hidden;
  background:#fff; position:relative; z-index:2;
  margin:0; width:100%;
}
#ubicacion .ratio{position:relative;padding-top:56.25%;min-height:280px}
#ubicacion iframe{position:absolute; inset:0; width:100%; height:100%; border:0; display:block}
#ubicacion .contact-box{text-align:left;padding:6px 4px}
#ubicacion .contact-box h3{margin-top:0;color:var(--brand-2)}
#ubicacion .list{list-style:none;margin:0;padding:0}
#ubicacion .list li{margin:8px 0}
#ubicacion .list a{color:var(--brand-2);text-decoration:underline}
@media (max-width:900px){ #ubicacion .wrap{grid-template-columns:1fr} }
/* (si aún tuvieras un borde de prueba, quítalo) */
/* #ubicacion .map-box{ outline:2px dashed #7f2aa9; } */

/* ===== Títulos y “lead” con el mismo contenedor lateral ===== */
.section > h2,
.section > p.lead,
.section > .lead{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gap);
  box-sizing:border-box;
}

/* ===== Horarios ===== */
.schedule{list-style:none;margin:0 0 12px;padding:0}
.schedule li{
  display:flex; justify-content:space-between;
  border-bottom:1px solid #eee; padding:4px 0; font-size:15px;
}
.schedule .day{font-weight:600;color:var(--brand-2)}
.schedule .hours{color:#444}
