:root{--cream:#F5F0E6;--white:#FCF9F3;--terra:#B6654E;--terra-d:#954F3B;--ink:#2F3A36;--mustard:#C99A45;--olive:#6F7F68;--char:#343833;--r:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:400 1.0625rem/1.65 "DM Sans",system-ui,sans-serif;color:var(--char);background:var(--cream);
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .38 0 0 0 0 .3 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
h1,h2,h3,.logo{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;color:var(--ink);line-height:1.12;margin:0}
h2{font-size:clamp(1.9rem,4vw,2.9rem);max-width:22ch;margin-bottom:2rem}
a{color:var(--terra-d)}img{max-width:100%;display:block}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem 1rem}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.wrap{max-width:1160px;margin:auto;padding:6rem 1.5rem}.narrow{max-width:760px}
.eyebrow{font:700 .78rem "DM Sans";letter-spacing:.18em;text-transform:uppercase;color:var(--olive);margin:0 0 .7rem}
.hand{font:700 1.5rem Caveat,cursive;color:var(--terra-d);margin:0 0 .6rem}
.center{text-align:center}
/* nav */
.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:2rem;padding:.9rem 1.5rem;background:rgba(247,241,231,.93);backdrop-filter:blur(8px);border-bottom:1px solid rgba(40,61,89,.08)}
.logo{font-size:1.45rem;text-decoration:none;white-space:nowrap}.logo span{font-style:italic;color:var(--terra)}
.nav nav{display:flex;gap:1.6rem;margin-left:auto}.nav nav a{color:var(--char);text-decoration:none;font-weight:500;font-size:.95rem}.nav nav a:hover{color:var(--terra-d)}
/* buttons */
.btn{display:inline-block;background:var(--terra);color:#fff;text-decoration:none;font-weight:700;padding:.95rem 1.6rem;border-radius:999px;transition:background .2s,transform .2s}
.btn:hover{background:var(--terra-d);transform:translateY(-1px)}
.btn-sm{padding:.55rem 1.1rem;font-size:.9rem}
.btn-line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}.btn-line:hover{background:var(--ink);color:#fff}
/* hero */
.hero{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.05fr 1fr;gap:4rem;align-items:center;padding:4.5rem 1.5rem 5rem}
.hero h1{font-size:clamp(2.6rem,5.6vw,4.6rem);letter-spacing:-.01em}
.mark{position:relative;white-space:nowrap;font-style:italic}.brush{position:absolute;left:-2%;bottom:-.08em;width:104%;height:.38em;z-index:-1}
.lead{font-size:1.15rem;max-width:36ch;margin:1.4rem 0 2rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.9rem}
.levels{margin:1.4rem 0 0;color:var(--olive);font-weight:500}.levels strong{color:var(--terra-d)}
.hero-img{position:relative;margin:0}
.hero-img img{width:100%;aspect-ratio:4/5;height:auto;object-fit:cover;border-radius:220px 220px var(--r) var(--r);box-shadow:0 30px 60px -30px rgba(48,43,43,.45)}
.hero-img::before{content:"";position:absolute;inset:auto -18px -18px auto;width:60%;height:55%;background:var(--mustard);opacity:.35;border-radius:var(--r);z-index:-1}
.tag{position:absolute;left:-28px;bottom:48px;background:var(--white);color:var(--ink);font:700 1.6rem Caveat;padding:.5rem 1.2rem;border-radius:12px;transform:rotate(-5deg);box-shadow:0 10px 24px rgba(48,43,43,.15);border:1.5px solid var(--mustard)}
/* classes */
.classes{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem}
.class-card{position:relative;background:var(--white);border-radius:var(--r);padding:2.6rem 2.4rem;box-shadow:0 14px 40px -24px rgba(40,61,89,.35);overflow:hidden}
.class-card h3{font-size:2rem}.age{font:700 1.4rem Caveat;color:var(--terra-d);margin:.2rem 0 1rem}
.dot{position:absolute;right:-50px;top:-50px;width:160px;height:160px;border-radius:50%;opacity:.25}
.kids .dot{background:var(--mustard)}.adults .dot{background:var(--olive)}
.link{font-weight:700;text-decoration:none}
.sub{font-size:1.5rem;margin:4rem 0 1.5rem}
.techs{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.tech{background:var(--white);border-radius:var(--r);padding:1rem 1rem 1.2rem;font-weight:700;color:var(--ink);text-align:center}
.sw{display:block;aspect-ratio:4/3;border-radius:12px;margin-bottom:.9rem}
.tech img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;margin-bottom:.9rem}
.tech{text-align:left}.tech h4{font:1.25rem "Cormorant Garamond",Georgia,serif;color:var(--ink);margin:0 0 .35rem}.tech p{margin:0;font-weight:400;font-size:.92rem;line-height:1.45;color:var(--charcoal,#302B2B)}
.sw-acuarela{background:radial-gradient(circle at 30% 40%,rgba(40,61,89,.55),transparent 45%),radial-gradient(circle at 70% 60%,rgba(120,131,107,.5),transparent 50%),radial-gradient(circle at 55% 30%,rgba(226,182,83,.45),transparent 40%),#fbf7f0}
.sw-oleo{background:linear-gradient(115deg,#C96846 0 22%,#E2B653 22% 40%,#283D59 40% 64%,#78836B 64% 82%,#A9512F 82%)}
.sw-carbon{background:repeating-linear-gradient(-35deg,#302B2B 0 2px,transparent 2px 7px),linear-gradient(90deg,#efe8dc,#d9d0c2);opacity:.85}
.sw-acrilico{background:linear-gradient(135deg,#E2B653 0 33%,#C96846 33% 66%,#283D59 66%)}
.sw-grafito{background:repeating-linear-gradient(45deg,#6b6b6b 0 1px,transparent 1px 5px),linear-gradient(90deg,#f3eee6,#ddd6ca)}
.sw-mixta{background:radial-gradient(circle at 30% 35%,rgba(201,104,70,.7),transparent 40%),repeating-linear-gradient(-35deg,#302B2B 0 1px,transparent 1px 8px),linear-gradient(120deg,#E2B653,#78836B)}
.sw-pastel{background:linear-gradient(160deg,#f2c9b4,#f6e3a8 45%,#c9d3bd)}
.more-techs{margin-top:1.4rem;color:var(--olive)}
/* gallery */
.gallery-sec{background:var(--white)}
.museum{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;gap:1.25rem}
.museum figure{margin:0;position:relative;overflow:hidden;border-radius:6px;box-shadow:0 0 0 10px #fff,0 0 0 11px rgba(40,61,89,.1),0 20px 40px -24px rgba(48,43,43,.5)}
.museum img{width:100%;height:100%;object-fit:cover}
.museum figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.4rem .9rem .6rem;color:#fff;font-size:.85rem;background:linear-gradient(transparent,rgba(48,43,43,.7))}
.g1{grid-column:1/4;grid-row:span 3}.g2{grid-column:4/7;grid-row:span 2}.g3{grid-column:4/7;grid-row:span 2}.g4{grid-column:1/4;grid-row:span 1}
.g3+.g4{}
.credit{font-size:.82rem;color:var(--olive);margin-top:2rem}
/* teachers */
.teachers{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem}
.teacher{background:var(--white);border-radius:var(--r);padding:2.4rem;border-top:4px solid var(--olive)}
.teacher:first-child{border-top-color:var(--terra)}
.teacher h3{font-size:1.65rem}.role{font:700 1.35rem Caveat;color:var(--terra-d);margin:.1rem 0 .8rem}
/* hours */
.hours-sec{background:var(--white)}
.hours-sec h2,.reviews-sec h2,.hours-sec .eyebrow,.reviews-sec .eyebrow{text-align:center;margin-left:auto;margin-right:auto}
.tabs{display:flex;justify-content:center;gap:.5rem;margin:2rem 0 1.5rem;background:var(--cream);padding:.4rem;border-radius:999px;width:max-content;margin-inline:auto}
.tabs button{font:700 1rem "DM Sans";border:0;background:transparent;color:var(--ink);padding:.7rem 2rem;border-radius:999px;cursor:pointer;min-height:44px}
.tabs button[aria-selected=true]{background:var(--ink);color:#fff}
.sched{margin:0;display:grid;gap:.2rem}
.sched div{display:flex;justify-content:space-between;padding:1rem .4rem;border-bottom:1px dashed rgba(40,61,89,.2)}
.sched dt{font-weight:700;color:var(--ink)}.sched dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.hours-sec .btn{margin-top:2rem}
/* reviews */
.reviews-sec{background:#EFDCC6}
.reviews-viewport{overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -.5rem;padding:0 .5rem}
.reviews{display:flex;gap:1.5rem;width:max-content}
.reviews blockquote{flex:0 0 calc((min(1120px,100vw - 3rem) - 3rem)/3);scroll-snap-align:start}
.reviews.marquee{animation:rv 70s linear infinite}
.reviews-viewport:has(.marquee){overflow:hidden}
.reviews.marquee:hover,.reviews.marquee.paused{animation-play-state:paused}
@keyframes rv{to{transform:translateX(calc(-50% - .75rem))}}
.reviews blockquote{box-sizing:border-box;margin:0;background:var(--white);border-radius:var(--r);padding:2rem;font-size:1.02rem;position:relative}
.reviews blockquote::before{content:"“";position:absolute;top:-.3rem;left:1.2rem;font:4rem "DM Serif Display";color:var(--mustard);line-height:1}
.reviews cite{display:block;margin-top:1rem;font-style:normal;font-weight:700;color:var(--terra-d);font-size:.9rem}
/* contact */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:3.5rem;align-items:center}
.info{list-style:none;padding:0;margin:1.5rem 0 2rem}.info li{padding:.7rem 0;border-bottom:1px solid rgba(40,61,89,.1)}
.info strong{display:block;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--olive)}
.map iframe{width:100%;height:420px;border:0;border-radius:var(--r);background:#E9DFD0;box-shadow:0 0 0 8px var(--white)}
footer{background:var(--ink);color:#E9E3D8;text-align:center;padding:2.5rem 1.5rem}footer .logo{color:#fff;font-size:1.6rem}footer a{color:var(--mustard)}
.float-wa{position:fixed;right:18px;bottom:18px;z-index:30;display:flex;align-items:center;gap:.45rem;background:var(--white);color:var(--ink);border:1.5px solid var(--ink);padding:.55rem .95rem;border-radius:999px;text-decoration:none;font-weight:700;font-size:.9rem;box-shadow:0 8px 20px rgba(48,43,43,.15)}
.float-wa svg{color:#2E8B57}
@media(max-width:900px){
 .nav nav{display:none}.nav .btn-sm{margin-left:auto}
 .hero{grid-template-columns:1fr;gap:2.5rem;padding-top:2.5rem}
 .hero-img img{aspect-ratio:1;border-radius:160px 160px var(--r) var(--r)}.tag{left:10px;bottom:20px;font-size:1.35rem}
 .classes,.teachers,.contact{grid-template-columns:1fr}
 .reviews blockquote{flex-basis:calc(100vw - 3rem)}
 .techs{grid-template-columns:repeat(2,1fr)}
 .museum{grid-template-columns:1fr 1fr;grid-auto-rows:130px}
 .g1{grid-column:1/3;grid-row:span 2}.g2,.g3{grid-column:span 1;grid-row:span 2}.g4{grid-column:1/3;grid-row:span 2}
 .wrap{padding:4rem 1.25rem}.map iframe{height:300px}
 .float-wa span{display:none}.float-wa{padding:.7rem}
}
.btn{white-space:nowrap}body{overflow-x:hidden}
@media(max-width:900px){.hero-img::before{inset:auto -8px -12px auto}.nav{gap:1rem;padding:.7rem 1rem}.logo{font-size:1.25rem}}
.logo{display:inline-flex;align-items:center;gap:.55rem}
.logo-img{height:44px;width:auto;background:#fff;border-radius:10px;padding:2px 4px}
footer .logo{justify-content:center}.logo-img.foot{height:64px;border-radius:50%;padding:4px}
.teachers-wrap{display:grid;grid-template-columns:.85fr 1.4fr;gap:2rem;align-items:start}
.teachers-wrap .teachers{grid-template-columns:1fr}
.brand-art{margin:0;background:#fff;border-radius:var(--r);padding:1rem;box-shadow:0 14px 40px -24px rgba(40,61,89,.35)}
.brand-art img{width:100%;height:auto}
@media(max-width:900px){.teachers-wrap{grid-template-columns:1fr}.brand-art{max-width:460px;margin:auto}.logo-img{height:36px}}

.rating{font-weight:600;color:var(--terra);margin:.2rem 0 1.2rem}
.solidarias{margin:.8rem 0 0 1.2rem;line-height:1.6}
/* exposiciones */
.expos-title{margin-top:3rem}
.expos{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:2rem}
.expo{border-left:3px solid var(--terra);padding-left:1rem}
.expo h4{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.2rem;margin:0 0 .3rem;color:#283D59}
.expo p{margin:0 0 .8rem}
.expo-note{font-size:.85rem;color:#78836B}
.expos-sub{margin-top:2.5rem}
.expo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin-top:.5rem}
.expo-grid figure{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:6px;background:#F7F1E7;box-shadow:0 2px 8px rgba(48,43,43,.12)}
.expo-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.expo-grid figure:hover img{transform:scale(1.04)}
@media(max-width:600px){.expo-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.expo h4{font-size:1.05rem}}

/* logo prominence */
.logo-img{height:68px}
.hero-logo{display:block;width:260px;max-width:100%;height:auto;object-fit:contain;margin:0 0 1.2rem;background:#fff;border-radius:18px;padding:10px;box-shadow:0 6px 20px rgba(40,61,89,.12)}
@media(max-width:900px){.logo-img{height:52px}.hero-logo{width:170px;margin:0 auto 1rem}}
.tech img{height:auto}
@media(max-width:480px){header .logo{font-size:0;gap:0}}
.h1-kw{display:block;font-family:"DM Sans",sans-serif;font-size:.36em;letter-spacing:.02em;color:#78836B;margin-top:.5rem;font-weight:500}
.faq details{background:#fff;border-radius:14px;padding:1rem 1.25rem;margin:.75rem 0;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.faq summary{cursor:pointer;list-style:none}.faq summary::-webkit-details-marker{display:none}
.faq summary h3{display:inline;font-size:1.1rem;margin:0}.faq summary::after{content:"+";float:right;color:#C96846;font-size:1.3rem}
.faq details[open] summary::after{content:"–"}.faq details p{margin:.6rem 0 0}
/* v5 */
body{font-size:1.0625rem}
.hero h1{font-size:clamp(2.1rem,4.4vw,3.6rem);line-height:1.1}
.tagline{font:400 clamp(1.3rem,2.4vw,1.8rem)/1.3 "Cormorant Garamond",Georgia,serif;color:var(--ink);margin:.8rem 0 0}
.tagline .mark{position:relative;display:inline-block}.tagline .brush{position:absolute;left:0;bottom:-.15em;width:100%;height:.4em;z-index:-1}
.btn-big{padding:1.05rem 2rem;font-size:1.08rem;box-shadow:0 10px 24px rgba(201,104,70,.35)}
.trust{font-size:.9rem;color:var(--olive);margin-top:.4rem}
.when{font-weight:700;color:var(--ink);margin:.6rem 0 0}
.card-cta{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;align-items:center;margin-top:1rem}
.class-card.bach{background:#F1E6CF}
.techs{gap:1rem}.tech img,.tech .sw{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto}
.wa-form{background:var(--white,#fff);border-radius:var(--r,18px);padding:1.6rem;margin-top:2rem;text-align:left}
.wa-form h3{margin:0 0 .3rem;font-size:1.5rem}.wa-form p{margin:0 0 1rem;font-size:.95rem}
.wa-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1.2rem}
.wa-fields label{display:flex;flex-direction:column;gap:.3rem;font-weight:700;font-size:.9rem;color:var(--ink)}
.wa-fields small{font-weight:400;color:var(--olive)}
.wa-fields select,.wa-fields input{font:inherit;font-weight:400;padding:.65rem .7rem;min-height:44px;border:1.5px solid #d8cdbb;border-radius:10px;background:#fff}
.rating a{color:var(--terra-d,#C96846);font-weight:700}
.contact-alt{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.8rem}
.mnav{display:none}
@media(max-width:900px){
 body{font-size:1.0625rem}
 .mnav{display:flex;order:5;width:100%;gap:1.1rem;overflow-x:auto;padding:.3rem 0 .1rem;font-size:.95rem}
 .mnav a{color:var(--char);text-decoration:none;font-weight:600;white-space:nowrap;padding:.4rem 0}
 .nav{flex-wrap:wrap}
 .wa-fields{grid-template-columns:1fr}
 .museum{grid-template-columns:1fr 1fr}
 .float-wa{background:#2E8B57;color:#fff;border-color:#2E8B57}.float-wa svg{color:#fff}
 .btn{min-height:44px}
}
.nav nav.mnav{display:none}
@media(max-width:900px){.nav nav.mnav{display:flex;margin-left:0}}

/* v6 */
h2{font-size:clamp(2.1rem,4vw,3rem)}
.hero h1{font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.05}
.subtitle{font-size:1.2rem;color:var(--char);margin:1rem 0 .4rem;max-width:34em}
.tagline{font-size:1.25rem}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0}
.filters button{font:600 .9rem "DM Sans",sans-serif;padding:.55rem 1.1rem;border-radius:999px;border:1.5px solid #d8cdbb;background:var(--cream);color:var(--char);cursor:pointer;min-height:40px}
.filters button[aria-pressed=true]{background:var(--terra);border-color:var(--terra);color:#fff}
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.gal figure{margin:0;position:relative;border-radius:8px;overflow:hidden;aspect-ratio:1;background:var(--cream);box-shadow:0 10px 24px -16px rgba(52,56,51,.5)}
.gal figure[hidden]{display:none}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gal figure:hover img{transform:scale(1.04)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.2rem .7rem .5rem;color:#fff;font-size:.82rem;background:linear-gradient(transparent,rgba(52,56,51,.75))}
.expo-grid figure{cursor:zoom-in}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(30,32,29,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem}
.lightbox[hidden]{display:none}.lightbox img{max-width:94vw;max-height:82vh;object-fit:contain;border-radius:6px}
.lightbox p{color:#eee;margin:.8rem 0 0;text-align:center;max-width:60ch}
.lb-x{position:absolute;top:.6rem;right:1rem;font-size:2.4rem;background:none;border:0;color:#fff;cursor:pointer}
.page-hero{max-width:900px;margin:auto;padding:4rem 1.5rem 1rem}.page-hero h1{font-size:clamp(2.3rem,5vw,3.6rem);margin:.3rem 0 1rem}
@media(max-width:900px){.gal{grid-template-columns:repeat(2,1fr);gap:.6rem}.gal figcaption{font-size:.75rem}.filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.3rem}.filters button{white-space:nowrap}}
@media(max-width:900px){.hero-img img{aspect-ratio:1;max-height:420px;width:100%}}
.taller-gal{grid-template-columns:repeat(3,1fr)}.taller-gal figure{aspect-ratio:4/3}@media(max-width:900px){.taller-gal{grid-template-columns:repeat(2,1fr)}}
.fachada{margin:0 0 1rem;grid-column:1/-1}.fachada img{width:100%;max-height:460px;object-fit:cover;border-radius:var(--r)}.fachada figcaption{font-size:.85rem;color:var(--olive);margin-top:.4rem}
.fachada{grid-column:auto}.contact-media{display:flex;flex-direction:column;gap:1rem}.fachada img{max-height:340px}
@media(max-width:900px){.hero-img img{object-position:50% 55%}}
.neon-videos{display:flex;gap:.75rem;margin:.5rem 0 .75rem;flex-wrap:wrap}
.neon-video{margin:0;flex:0 1 220px;aspect-ratio:408/720;border-radius:6px;overflow:hidden;background:#1a1240;box-shadow:0 2px 8px rgba(48,43,43,.12)}
.neon-video video{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:600px){.neon-video{flex:1 1 calc(50% - .5rem)}}

.teacher-photo{float:right;width:38%;max-width:220px;aspect-ratio:4/5;height:auto;object-fit:cover;border-radius:var(--r);margin:0 0 1rem 1.5rem}
.teacher::after{content:"";display:block;clear:both}
@media(max-width:600px){.teacher-photo{float:none;width:100%;max-width:none;margin:0 0 1.2rem}}
