/* Ajustes comunes para móvil y tableta */
img { max-width:100%; }
.menu-toggle { display:none; }

@media (max-width:1100px) {
  header { height:100px !important; padding:0 24px !important; gap:16px !important; }
  .logo,.logo-image { width:66px !important; height:82px !important; }
  .brand-name { font-size:1.4rem !important; }
  .menu-toggle { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; width:50px; height:50px; padding:0; border:0; background:transparent; cursor:pointer; }
  .menu-toggle:hover { transform:scale(1.06); }.menu-toggle .menu-bar { display:block; width:32px; height:4px; border-radius:99px; }.menu-toggle .menu-bar--blue { background:var(--blue); }.menu-toggle .menu-bar--pink { background:var(--pink); }.menu-toggle .menu-bar--green { background:var(--green); }
  nav { display:none !important; position:absolute; z-index:120; top:100%; right:16px; width:min(300px,calc(100vw - 32px)); padding:10px; background:rgba(255,255,255,.98); border:1px solid var(--line); box-shadow:0 15px 35px rgba(30,32,34,.18); flex-direction:column; align-items:stretch; gap:4px !important; }
  nav.menu-open { display:flex !important; }
  nav a,nav a:not(.button) { display:flex !important; align-items:center; min-height:48px; padding:10px 14px; border-radius:10px; font-size:1rem; }
  nav a:hover,nav a.active { background:var(--soft); }
  nav a.button { min-height:52px; margin-top:5px; font-size:1rem; }
  .hero,.two-col,.contact-grid,.story-grid { grid-template-columns:1fr !important; gap:38px !important; }
  .two-col .round-art { order:2; }.two-col .round-art + div { order:1; }
  .hero { padding:52px 0 68px !important; }
  .cards,.courses,.main-class-grid,.season-grid,.event-grid,.hours-grid { grid-template-columns:1fr !important; }
  .cards .card:last-child,.courses .course:last-child { grid-column:auto; }
  .service { grid-template-columns:1fr !important; gap:18px !important; }
  .service .button { grid-column:auto; justify-self:start; }
  .stats .wrap { grid-template-columns:1fr !important; padding:13px 0; }.stat { border-right:0 !important; border-bottom:1px solid rgba(255,255,255,.25); padding:13px 5px; }.stat:last-child { border-bottom:0; }
  .gallery-grid { grid-template-columns:1fr !important; grid-template-rows:repeat(4,220px) !important; }.gallery-grid .one { grid-row:span 1 !important; }.gallery-grid .four { grid-column:span 1 !important; }
  .reviews-slider .review { flex-basis:100% !important; }
  .footer-links { flex-wrap:wrap; }
}

@media (max-width:760px) {
  body { overflow-x:hidden; }
  h1 { font-size:clamp(2.55rem,12vw,3.6rem) !important; }
  h2 { font-size:clamp(2.05rem,10vw,3rem) !important; }
  .button { min-height:44px; padding:11px 18px; }
  .intro { font-size:1rem; }
  .cookie-table { display:block; overflow-x:auto; white-space:nowrap; }
}

@media (max-width:420px) {
  header { padding:0 14px !important; }
  .brand-name { font-size:.96rem !important; }
  .logo,.logo-image { width:54px !important; height:70px !important; }
  .gallery-grid { grid-template-rows:repeat(4,150px) !important; }
  .expo-photo { height:235px !important; }
  .menu-toggle { width:46px; height:46px; }
  nav { right:12px; width:calc(100vw - 24px); }
}

@media (min-width:761px) and (max-width:1100px) and (orientation:landscape) {
  .reviews-slider .review { flex-basis:calc((100% - 17px)/2) !important; }
  .main-class-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
  .gallery-grid { grid-template-columns:1.2fr .8fr .9fr !important; grid-template-rows:220px 220px !important; }
  .gallery-grid .one { grid-row:span 2 !important; }
  .gallery-grid .four { grid-column:span 2 !important; }
}

@media (min-width:1101px) {
  .reviews-slider .review { flex-basis:calc((100% - 17px)/2) !important; }
}

.faq { background:var(--soft); }
.faq .section-head { align-items:flex-end; }
.faq-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.faq-item { padding:0 20px; background:#fff; border-left:5px solid var(--blue); }
.faq-item:nth-child(2n) { border-left-color:var(--pink); }
.faq-item:nth-child(3n) { border-left-color:var(--green); }
.faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:66px; font-size:1.1rem; font-weight:900; cursor:pointer; list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; flex:0 0 auto; color:var(--pink); font:400 1.8rem Arial,sans-serif; }
.faq-item[open] summary::after { content:"−"; }
.faq-item p { margin:0 0 20px; opacity:.8; }
.faq-item a { color:var(--blue); font-weight:900; }
.whatsapp-float { position:fixed; right:20px; bottom:20px; z-index:110; display:grid; place-items:center; width:60px; height:60px; border-radius:50%; background:#25d366; box-shadow:0 10px 24px rgba(30,32,34,.25); color:#fff; text-decoration:none; transition:transform .2s,box-shadow .2s; }
.whatsapp-float:hover { transform:translateY(-3px) scale(1.04); box-shadow:0 14px 28px rgba(30,32,34,.3); }
.whatsapp-float__icon { width:34px; height:34px; }

@media (max-width:1100px) {
  .faq-list { grid-template-columns:1fr; }
}

@media (max-width:760px) {
  .whatsapp-float { right:16px; bottom:18px; }
}
