/* ===========================================================
   PIZZA MASAVIVA — Rediseño
   Paleta: terracota horno, masa crema, espresso, oliva tostado
=========================================================== */

:root{
  --terracota:#C84B2B;
  --terracota-dark:#A53A20;
  --masa:#FBF4E6;
  --masa-soft:#F3E7D2;
  --espresso:#2B1B12;
  --espresso-soft:#4A3424;
  --oliva:#7A8450;
  --oro:#E0A458;
  --blanco:#FFFFFF;

  --font-display:'Fraunces', serif;
  --font-body:'Manrope', sans-serif;

  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:10px;

  --shadow-soft:0 20px 50px -20px rgba(43,27,18,0.25);
  --shadow-card:0 10px 30px -12px rgba(43,27,18,0.18);

  --container:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--espresso);
  background:var(--masa);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;margin:0;padding:0;}
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}
h1,h2,h3,h4{
  font-family:var(--font-display);
  margin:0;
  line-height:1.15;
  font-weight:600;
}
p{line-height:1.7;margin:0 0 14px;color:var(--espresso-soft);}

.eyebrow{
  font-family:var(--font-body);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--oro);
  margin-bottom:10px;
}
.eyebrow-dark{color:var(--terracota);}

/* ===================== BUTTONS ===================== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px 32px;
  border-radius:50px;
  font-family:var(--font-body);
  font-weight:800;
  font-size:.98rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  cursor:pointer;
  border:none;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  white-space:normal;
  text-align:center;
  line-height:1.25;
  max-width:100%;
  box-sizing:border-box;
  overflow-wrap:break-word;
}
.btn svg{flex-shrink:0;width:20px;height:20px;}
.btn-primary{
  background:var(--terracota);
  color:var(--blanco);
  box-shadow:0 14px 30px -10px rgba(200,75,43,0.55);
}
.btn-primary:hover{background:var(--terracota-dark);transform:translateY(-2px);}
.btn-secondary{
  background:var(--blanco);
  color:var(--espresso);
  border:2px solid var(--masa-soft);
}
.btn-secondary:hover{border-color:#25D366;color:#128C4A;transform:translateY(-2px);}
.btn-full{width:100%;}
.btn-whatsapp-small{
  display:none;
  background:#25D366;
  color:#fff;
  padding:10px 18px;
  border-radius:50px;
  font-size:.85rem;
  font-weight:700;
  text-transform:none;
  gap:8px;
}
.btn-whatsapp-small svg{width:16px;height:16px;}

/* Dentro de la sección del taller el fondo ya es terracota,
   por eso el botón principal usa dorado para que resalte y se lea bien */
.taller-cta .btn-primary{
  background:var(--oro);
  color:var(--espresso);
  box-shadow:0 14px 30px -10px rgba(0,0,0,0.35);
}
.taller-cta .btn-primary:hover{
  background:#fff;
  color:var(--espresso);
  transform:translateY(-2px);
}
.btn-reservar{
  box-shadow:0 16px 34px -10px rgba(224,164,88,0.55), 0 0 0 1px rgba(255,255,255,0.4) inset;
}
.btn-reservar:hover{
  box-shadow:0 18px 38px -10px rgba(224,164,88,0.65), 0 0 0 1px rgba(255,255,255,0.5) inset;
}
.taller-cta .btn-secondary{
  background:#fff;
  color:var(--espresso);
  border:2px solid rgba(255,255,255,0.6);
}

/* ===================== HEADER ===================== */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(251,244,230,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(43,27,18,0.06);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 24px;
  gap:24px;
}
.logo img{height:48px;width:auto;border-radius:10px;}
.main-nav{
  display:flex;
  gap:32px;
  flex:1;
  justify-content:center;
}
.main-nav a{
  font-weight:700;
  font-size:.92rem;
  color:var(--espresso);
  position:relative;
  padding:6px 0;
}
.main-nav a::after{
  content:'';
  position:absolute;
  left:0;bottom:0;
  width:0;height:2px;
  background:var(--terracota);
  transition:width .25s ease;
}
.main-nav a:hover::after{width:100%;}
.header-actions{display:flex;align-items:center;gap:16px;}
.social-links{display:flex;gap:10px;}
.social-links a{
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--masa-soft);
  color:var(--espresso);
  transition:background .2s, color .2s, transform .2s;
}
.social-links a svg{width:17px;height:17px;}
.social-links a:hover{background:var(--terracota);color:#fff;transform:translateY(-2px);}
.social-links-dark a{background:rgba(255,255,255,0.08);color:#fff;}
.social-links-dark a:hover{background:var(--oro);color:var(--espresso);}
.social-links-footer a{
  width:46px;height:46px;
  background:rgba(255,255,255,0.08);
  color:#fff;
}
.social-links-footer a svg{width:21px;height:21px;}
.social-links-footer a:hover{background:var(--terracota);color:#fff;transform:translateY(-2px);}

.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  padding:6px;
}
.nav-toggle span{width:26px;height:2px;background:var(--espresso);border-radius:2px;}

/* ===================== HERO + VIDEO ===================== */
.hero{
  position:relative;
  padding:90px 0 110px;
  color:#fff;
  overflow:hidden;
}
.hero-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}
.hero-overlay{
  position:absolute;inset:0;
  z-index:1;
  background:linear-gradient(180deg, rgba(20,12,8,0.78) 0%, rgba(20,12,8,0.55) 45%, rgba(20,12,8,0.85) 100%);
}
.hero-content{
  position:relative;
  z-index:2;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.hero-content .eyebrow{color:var(--oro);}
.hero-content h1{
  font-size:clamp(2rem, 4.5vw, 3.2rem);
  max-width:780px;
  margin-bottom:36px;
  color:#fff;
}
.video-wrapper{
  position:relative;
  width:100%;
  max-width:880px;
  aspect-ratio:16/9;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(255,255,255,0.15);
  cursor:pointer;
  background:#000;
}
.video-wrapper iframe{width:100%;height:100%;border:0;display:block;}
.video-thumb{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
.video-play-btn{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:78px;height:78px;
  border-radius:50%;
  background:rgba(200,75,43,0.92);
  border:3px solid rgba(255,255,255,0.9);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .25s ease, background .25s ease;
}
.video-play-btn svg{width:30px;height:30px;margin-left:3px;}
.video-play-btn:hover{transform:translate(-50%,-50%) scale(1.08);background:var(--terracota-dark);}

/* divisor de masa */
.dough-divider{
  position:relative;
  background:var(--masa);
  margin-top:-2px;
}
.dough-divider svg{display:block;width:100%;height:50px;}
.dough-divider svg path{fill:var(--terracota);}
.dough-divider-flip{transform:rotate(180deg);background:var(--masa);}
.dough-divider-flip svg path{fill:var(--masa);}

/* ===================== TALLER (sección clave) ===================== */
.taller{
  background:var(--terracota);
  color:#fff;
  padding:90px 0 100px;
  position:relative;
}
.taller-head{
  text-align:center;
  max-width:780px;
  margin:0 auto 56px;
}
.taller-head .eyebrow-dark{color:var(--oro);}
.taller-head h2{
  color:#fff;
  font-size:clamp(1.8rem,3.6vw,2.6rem);
  margin-bottom:18px;
}
.taller-head h2 span{
  display:block;
  font-size:.55em;
  font-weight:500;
  font-family:var(--font-body);
  color:rgba(255,255,255,0.8);
  margin-top:6px;
}
.taller-subtitle{
  color:#fff;
  font-size:1.15rem;
  font-weight:600;
  font-family:var(--font-display);
  margin-bottom:18px;
}
.taller-intro{color:rgba(255,255,255,0.88);font-size:1rem;}

.taller-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  margin-bottom:48px;
}
.taller-card{
  background:var(--blanco);
  color:var(--espresso);
  border-radius:var(--radius-lg);
  padding:34px 30px;
  box-shadow:var(--shadow-card);
}
.taller-card h3{
  font-size:1.2rem;
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:20px;
  color:var(--espresso);
}
.card-icon{font-size:1.3rem;}

.check-list li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:13px;
  font-size:.96rem;
  color:var(--espresso-soft);
}
.check-list li span{
  flex:0 0 22px;
  height:22px;
  border-radius:50%;
  background:var(--masa-soft);
  color:var(--terracota);
  font-weight:800;
  font-size:.75rem;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-top:2px;
}

.dot-list li{
  position:relative;
  padding-left:22px;
  margin-bottom:13px;
  font-size:.96rem;
  color:var(--espresso-soft);
}
.dot-list li::before{
  content:'';
  position:absolute;
  left:0;top:8px;
  width:8px;height:8px;
  border-radius:50%;
  background:var(--terracota);
}

.modalidad{
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid var(--masa-soft);
}
.modalidad h4{
  font-size:1rem;
  font-family:var(--font-body);
  font-weight:800;
  margin-bottom:8px;
}
.modalidad p{font-size:.92rem;margin:0;}

.highlight-box{
  max-width:760px;
  margin:0 auto 44px;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.35);
  border-radius:var(--radius-md);
  padding:22px 28px;
  text-align:center;
  font-weight:700;
  font-size:1.05rem;
  backdrop-filter:blur(6px);
}

.taller-cta{
  display:flex;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
}
/* ===================== HISTORIA ===================== */
.historia{
  padding:100px 0 80px;
  background:var(--masa);
}
.historia-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:60px;
  align-items:center;
  margin-bottom:64px;
}
.historia-img img{
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:4/5;
}
.historia-text h2{
  font-size:clamp(1.8rem,3.2vw,2.4rem);
  margin-bottom:20px;
  color:var(--espresso);
}
.historia-text p{font-size:1.02rem;}

/* ===================== FAQ ===================== */
.faq{
  padding:100px 0;
  background:var(--masa-soft);
  position:relative;
  overflow:hidden;
}
.faq-blob{
  position:absolute;
  border-radius:50%;
  filter:blur(60px);
  opacity:.35;
  z-index:0;
  pointer-events:none;
}
.faq-blob-1{
  width:380px;height:380px;
  background:var(--terracota);
  top:-140px;left:-120px;
}
.faq-blob-2{
  width:320px;height:320px;
  background:var(--oro);
  bottom:-120px;right:-100px;
}
.faq-head{
  position:relative;
  z-index:1;
  text-align:center;
  max-width:680px;
  margin:0 auto 52px;
}
.faq-head h2{
  font-size:clamp(1.8rem,3.2vw,2.5rem);
  margin-bottom:14px;
  color:var(--espresso);
}
.faq-subtitle{font-size:1.04rem;}

.faq-list{
  position:relative;
  z-index:1;
  max-width:1040px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:start;
}
.faq-item{
  background:var(--blanco);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);
  overflow:hidden;
  border:1px solid transparent;
  transition:box-shadow .25s ease, border-color .25s ease, transform .25s ease;
}
.faq-item:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 36px -14px rgba(43,27,18,0.22);
}
.faq-item.open{
  border-color:rgba(200,75,43,0.25);
}
.faq-question{
  width:100%;
  text-align:left;
  background:none;
  border:none;
  cursor:pointer;
  padding:20px 20px;
  font-family:var(--font-body);
  font-weight:700;
  font-size:.96rem;
  color:var(--espresso);
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.faq-num{
  flex:0 0 auto;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.85rem;
  letter-spacing:.03em;
  background:linear-gradient(135deg, var(--terracota), var(--oro));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  padding-top:2px;
}
.faq-question-text{flex:1;line-height:1.4;}
.faq-icon{
  flex:0 0 26px;
  height:26px;
  border-radius:50%;
  background:var(--masa-soft);
  color:var(--terracota);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .3s ease, background .3s ease, color .3s ease;
  margin-top:1px;
}
.faq-icon svg{width:14px;height:14px;}
.faq-item.open .faq-icon{
  transform:rotate(180deg);
  background:var(--terracota);
  color:#fff;
}
.faq-answer{
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height .3s ease, opacity .25s ease;
  padding:0 20px 0 50px;
}
.faq-answer p{
  padding-bottom:22px;
  margin:0;
  font-size:.92rem;
  line-height:1.65;
}
.faq-item.open .faq-answer{
  max-height:320px;
  opacity:1;
}

/* ===================== CONTACTO ===================== */
.contacto{
  background:var(--espresso);
  color:#fff;
  padding:100px 0;
}
.contacto-grid{
  display:flex;
  justify-content:center;
}
.contacto-info{
  max-width:560px;
  text-align:center;
}
.contacto-info h2{
  color:#fff;
  font-size:clamp(1.7rem,3vw,2.2rem);
  margin-bottom:16px;
}
.contacto-info p{color:rgba(255,255,255,0.75);}
.contacto-datos{margin:26px 0;}
.contacto-datos li{
  font-size:1.15rem;
  margin-bottom:12px;
  color:#fff;
}
.contacto-datos a{border-bottom:1px solid rgba(255,255,255,0.3);}
.contacto-info .social-links{justify-content:center;margin-bottom:32px;}
.contacto-cta{margin-top:8px;}

/* ===================== FOOTER ===================== */
.site-footer{
  background:var(--espresso);
  border-top:1px solid rgba(255,255,255,0.08);
  padding:36px 0;
}
.footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
}
.footer-logo{height:40px;width:auto;border-radius:8px;}
.footer-inner p{margin:0;color:rgba(255,255,255,0.6);font-size:.85rem;}
.footer-inner .social-links{gap:14px;}

/* ===================== WHATSAPP FLOTANTE ===================== */
.whatsapp-float{
  position:fixed;
  bottom:24px;
  right:24px;
  width:60px;height:60px;
  background:#25D366;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 25px -8px rgba(0,0,0,0.4);
  z-index:1100;
  color:#fff;
  transition:transform .25s ease;
}
.whatsapp-float svg{width:30px;height:30px;}
.whatsapp-float:hover{transform:scale(1.08);}

/* ===========================================================
   RESPONSIVE
=========================================================== */
@media (max-width:1024px){
  .taller-grid{grid-template-columns:1fr;}
  .historia-grid{grid-template-columns:1fr;}
  .historia-img img{aspect-ratio:16/9;}
  .faq-list{grid-template-columns:1fr;}
}

@media (max-width:860px){
  .main-nav{
    position:absolute;
    top:100%;left:0;right:0;
    background:var(--masa);
    flex-direction:column;
    align-items:flex-start;
    padding:20px 24px 28px;
    gap:18px;
    border-bottom:1px solid rgba(43,27,18,0.08);
    display:none;
  }
  .main-nav.open{display:flex;}
  .nav-toggle{display:flex;}
  .header-actions .social-links{display:none;}
  .btn-whatsapp-small{display:inline-flex;}
}

@media (max-width:640px){
  .hero{padding:60px 0 70px;}
  .taller{padding:64px 0 70px;}
  .historia,.contacto{padding:64px 0;}
  .faq{padding:64px 0;}
  .faq-answer{padding-left:20px;}
  .taller-card{padding:28px 22px;}
  .taller-cta{flex-direction:column;width:100%;}
  .taller-cta .btn{width:100%;}
  .contacto-cta{width:100%;}
  .footer-inner{flex-direction:column;text-align:center;}
  .whatsapp-float{width:52px;height:52px;bottom:18px;right:18px;}
  .whatsapp-float svg{width:26px;height:26px;}

  /* Botones: tamaño compacto en pantallas pequeñas */
  .btn{
    padding:15px 20px;
    font-size:.88rem;
    gap:8px;
  }
  .btn svg{width:18px;height:18px;}

  /* Manchas decorativas: eliminadas en móvil. El "blur" obliga al procesador
     a recalcular muchos píxeles en cada repintado, algo costoso en celulares
     de gama media/baja. En desktop se mantiene porque ahí no afecta. */
  .faq-blob{display:none;}
}

@media (max-width:380px){
  .btn{font-size:.82rem;padding:14px 16px;}
}
