@font-face{font-family:"Cormorant";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cormorant-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/cormorant-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Cormorant";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/cormorant-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant";font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/cormorant-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Karla";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/karla-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Karla";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/karla-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Karla";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/karla-latin-700-normal.woff2) format("woff2")}
:root{
  --paper:#F3F3F0; --graphite:#232325; --lead:#6A6A6D; --line:#D6D6D2;
  --umber:#6B4630; --dusk:#9C8FA8;
  --serif:"Cormorant",Georgia,serif; --sans:"Karla",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--graphite);font:400 1.05rem/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--umber);outline-offset:3px}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,48px)}

/* nav */
header.top{position:sticky;top:0;z-index:20;background:rgba(243,243,240,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font:italic 500 1.6rem/1 var(--serif);text-decoration:none}
nav ul{display:flex;gap:28px;list-style:none}
nav a{text-decoration:none;font-size:.95rem;color:var(--lead)}
nav a:hover{color:var(--graphite)}
.menu-btn{display:none;background:none;border:0;font:500 .95rem var(--sans);cursor:pointer;color:var(--graphite)}

/* hero */
.hero{position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;min-height:calc(100vh - 64px);gap:0}
.hero-text{position:relative;z-index:2;padding:60px 0}
.hero h1{font:italic 400 clamp(4.2rem,11vw,9.5rem)/.82 var(--serif);letter-spacing:-.02em;margin-right:-22%}
.hero h1 span{display:block;padding-left:.55em}
.hero p{max-width:30ch;margin-top:36px;font-size:1.15rem;color:var(--lead)}
.hero-img{position:relative;justify-self:end;width:100%;max-width:520px}
.hero-img img{width:100%;filter:saturate(.95)}
.hero-slides{aspect-ratio:4/5}
.hero-slides .slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.2s ease}
.hero-slides .slide.on{opacity:1}
.hero-slides .slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 6s ease-out}
.hero-slides .slide.on img{transform:scale(1)}
.hero-slides figcaption{position:absolute;left:0;bottom:-34px;font-size:.88rem;color:var(--lead)}
.dots{position:absolute;right:0;bottom:-30px;display:flex;gap:8px}
.dots button{width:22px;height:2px;padding:0;border:0;background:var(--line);cursor:pointer}
.dots button[aria-current]{background:var(--graphite)}
.dots button:focus-visible{outline-offset:4px}
@media (prefers-reduced-motion:reduce){.hero-slides .slide,.hero-slides .slide img{transition:none;transform:none}}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn{display:inline-block;padding:13px 22px;font:500 .95rem var(--sans);text-decoration:none;border:1px solid var(--graphite);border-radius:2px;transition:background .2s,color .2s}
.btn.solid{background:var(--graphite);color:var(--paper)}
.btn.solid:hover{background:var(--umber);border-color:var(--umber)}
.btn.ghost:hover{background:var(--graphite);color:var(--paper)}

/* sections */
section{padding:clamp(80px,12vw,140px) 0}
h2{font:400 clamp(2.6rem,5.5vw,4.2rem)/1 var(--serif);letter-spacing:-.01em}
.lead{max-width:56ch;margin-top:18px;color:var(--lead);font-size:1.1rem}

/* obra */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:40px 0 28px}
.filters button{background:none;border:1px solid var(--line);border-radius:40px;padding:7px 16px;font:500 .9rem var(--sans);color:var(--lead);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--graphite);color:var(--paper);border-color:var(--graphite)}
.grid{columns:3 280px;column-gap:22px}
.piece{break-inside:avoid;margin-bottom:22px;cursor:zoom-in;background:none;border:0;width:100%;text-align:left;display:block}
.piece img{width:100%}
.piece figcaption{padding:10px 2px 0;font-size:.9rem;color:var(--lead)}
.piece figcaption b{font:italic 500 1.15rem var(--serif);color:var(--graphite);margin-right:6px}
.piece[hidden]{display:none}

/* encargos */
.encargos{background:var(--graphite);color:var(--paper)}
.encargos .lead{color:#B9B9BC}
.enc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,90px);align-items:start}
.steps{list-style:none;margin-top:44px;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:56px 1fr;padding:22px 0;border-top:1px solid #3C3C3F}
.steps li::before{content:counter(s);font:italic 400 2.2rem/1 var(--serif);color:var(--dusk)}
.steps h3{font:500 1.05rem var(--sans);margin-bottom:4px}
.steps p{color:#B9B9BC;font-size:.98rem}
.encargos .btn.solid{background:var(--paper);color:var(--graphite);border-color:var(--paper)}
.encargos .btn.solid:hover{background:var(--dusk);border-color:var(--dusk)}
.encargos .btn.ghost{border-color:var(--paper)}
.encargos .btn.ghost:hover{background:var(--paper);color:var(--graphite)}
.enc-img img{width:100%}
.enc-img{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:end}
.enc-example figcaption{font-size:.9rem;color:#B9B9BC;padding-top:10px}

/* clases */
.classes{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:56px;border-top:1px solid var(--graphite)}
.class{padding:30px 28px 34px 0;display:flex;flex-direction:column}
.class+.class{padding-left:28px;border-left:1px solid var(--line)}
.class h3{font:italic 500 2rem/1.05 var(--serif);margin-bottom:12px}
.class p{color:var(--lead);flex:1}
.class dl{margin:20px 0 26px;font-size:.92rem}
.class dl div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line)}
.class dt{color:var(--lead)}
.note{margin-top:28px;font-size:.92rem;color:var(--lead)}

.class-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap,22px);margin-top:48px}
.class-photos img{width:100%;aspect-ratio:4/5;object-fit:cover}
/* sobre */
.about{display:grid;grid-template-columns:.8fr 1fr;gap:clamp(40px,7vw,100px);align-items:center}
.about p{max-width:52ch;margin-top:18px;color:var(--lead)}
.about blockquote{font:italic 400 1.7rem/1.25 var(--serif);color:var(--graphite);margin-top:30px;max-width:26ch}

/* dónde */
.lugar{border-top:1px solid var(--line)}
.lugar-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,90px);align-items:stretch}
.lead a,.class dd a{color:var(--graphite);text-decoration-color:var(--umber);text-underline-offset:3px}
.lead a:hover,.class dd a:hover{color:var(--umber)}
.facts{margin:36px 0 34px;border-top:1px solid var(--graphite)}
.facts div{display:grid;grid-template-columns:140px 1fr;padding:14px 0;border-bottom:1px solid var(--line)}
.facts dt{color:var(--lead)}
.map{min-height:420px}
.map iframe{width:100%;height:100%;min-height:420px;border:0;filter:grayscale(1) contrast(.95)}
/* contacto */
.contact{border-top:1px solid var(--line)}
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.channels{list-style:none}
.channels li{border-bottom:1px solid var(--line)}
.channels a{display:flex;justify-content:space-between;padding:20px 0;text-decoration:none;font:400 1.6rem var(--serif)}
.channels a span{font:400 .95rem var(--sans);color:var(--lead);align-self:center}
.channels a:hover{color:var(--umber)}
footer{padding:56px 0 36px;font-size:.92rem;color:var(--lead);border-top:1px solid var(--line)}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.foot .brand{display:block;margin-bottom:10px;color:var(--graphite)}
.foot h3{font:500 .95rem var(--sans);color:var(--graphite);margin-bottom:10px}
.foot ul{list-style:none}
.foot li{padding:3px 0}
.foot a{text-decoration:none}
.foot a:hover{color:var(--umber)}
.legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:44px;padding-top:20px;border-top:1px solid var(--line);font-size:.85rem}

/* lightbox */
dialog{border:0;padding:0;background:transparent;max-width:92vw;max-height:92vh;margin:auto}
dialog::backdrop{background:rgba(20,20,22,.93)}
dialog img{max-height:84vh;width:auto;margin:0 auto}
dialog p{color:#D8D8DA;text-align:center;padding-top:12px;font-size:.95rem}
dialog button{position:fixed;top:18px;right:22px;background:none;border:0;color:#fff;font:400 1rem var(--sans);cursor:pointer}

@media (max-width:860px){
  nav ul{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line)}
  nav ul.open{display:flex}
  nav li a{display:block;padding:14px clamp(20px,5vw,48px)}
  .menu-btn{display:block}
  .hero .wrap{grid-template-columns:1fr;min-height:auto}
  .hero-text{padding:40px 0 10px}
  .hero h1{margin-right:0}
  .hero-img{justify-self:center;margin-bottom:70px}
  .enc-grid,.about,.contact .wrap{grid-template-columns:1fr}
  .classes{grid-template-columns:1fr}
  .lugar-grid,.foot{grid-template-columns:1fr}
  .facts div{grid-template-columns:110px 1fr}
  .class-photos{grid-template-columns:1fr 1fr}
  .class-photos img:first-child{grid-column:1/-1;aspect-ratio:4/3}
  .class,.class+.class{padding:28px 0;border-left:0;border-bottom:1px solid var(--line)}
}
@media (prefers-reduced-motion:no-preference){
  .hero h1{animation:draw 1.4s cubic-bezier(.2,.7,.2,1) both}
  .hero-img{animation:fade 1.6s .3s ease both}
  @keyframes draw{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
  @keyframes fade{from{opacity:0}to{opacity:1}}
}
/* páginas interiores */
.page-hero{padding:clamp(56px,9vw,110px) 0 clamp(40px,6vw,70px);border-bottom:1px solid var(--line)}
.crumbs{font-size:.88rem;color:var(--lead);margin-bottom:22px}
.crumbs a{color:var(--lead)}
.page-hero h1{font:400 clamp(2.8rem,6.5vw,5.2rem)/1 var(--serif);letter-spacing:-.015em;max-width:16ch}
.page-hero .lead{font-size:1.2rem}
.page-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,7vw,90px);align-items:start}
.prose h2{font-size:clamp(2rem,4vw,2.8rem);margin:56px 0 14px}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:var(--lead);max-width:62ch;margin-top:12px}
.prose ul{padding-left:1.1em}
.prose strong{color:var(--graphite);font-weight:500}
.side img{width:100%;margin-bottom:22px}
.side figcaption{font-size:.9rem;color:var(--lead);margin:-12px 0 26px}
.facts-box{border-top:1px solid var(--graphite);margin:30px 0}
.facts-box div{display:grid;grid-template-columns:130px 1fr;padding:12px 0;border-bottom:1px solid var(--line);font-size:.97rem}
.facts-box dt{color:var(--lead)}
.faq{border-top:1px solid var(--graphite);margin-top:28px}
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq summary{cursor:pointer;font:italic 500 1.35rem var(--serif);list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::after{content:"+";font:400 1.4rem var(--sans);color:var(--lead)}
.faq details[open] summary::after{content:"−"}
.faq p{color:var(--lead);margin-top:10px;max-width:62ch}
.related{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--graphite);margin-top:40px}
.related a{padding:26px 24px 30px 0;text-decoration:none;display:block}
.related a+a{padding-left:24px;border-left:1px solid var(--line)}
.related b{display:block;font:italic 500 1.6rem/1.1 var(--serif);margin-bottom:8px}
.related span{color:var(--lead);font-size:.95rem}
.related a:hover b{color:var(--umber)}
.cta-band{background:var(--graphite);color:var(--paper);padding:clamp(60px,9vw,100px) 0}
.cta-band h2{color:var(--paper)}
.cta-band p{color:#B9B9BC;margin-top:14px;max-width:52ch}
.cta-band .btn.solid{background:var(--paper);color:var(--graphite);border-color:var(--paper)}
.cta-band .btn.solid:hover{background:var(--dusk);border-color:var(--dusk)}
.more{display:inline-block;margin-top:14px;font-size:.92rem;color:var(--graphite);text-underline-offset:3px;text-decoration-color:var(--umber)}
@media (max-width:860px){.page-grid,.related{grid-template-columns:1fr}.related a+a{padding-left:0;border-left:0;border-top:1px solid var(--line)}}

/* mapa sin cookies */
.map-load{width:100%;height:100%;min-height:420px;border:1px solid var(--line);background:#E8E8E4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:30px;cursor:pointer;font:400 .95rem var(--sans);color:var(--lead)}
.map-load b{font:italic 500 1.6rem var(--serif);color:var(--graphite)}
.map-load:hover b{color:var(--umber)}
/* calendario */
.agenda{border-top:1px solid var(--graphite);margin-top:40px}
.agenda li{list-style:none;display:grid;grid-template-columns:240px 1fr auto;gap:24px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.agenda time{font:italic 500 1.5rem var(--serif)}
.agenda .tema{color:var(--lead)}
.agenda .tema b{color:var(--graphite);font-weight:500}
.agenda a{font-size:.92rem;color:var(--graphite);text-underline-offset:3px;text-decoration-color:var(--umber)}
/* regalo */
.regalo-band{border-top:1px solid var(--line)}
.regalo-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,90px);align-items:center}
.gift-card{aspect-ratio:1.6;background:var(--graphite);color:var(--paper);padding:34px;display:flex;flex-direction:column;justify-content:space-between;max-width:460px;justify-self:end;width:100%}
.gift-card span{font:400 .9rem var(--sans);color:#B9B9BC}
.gift-card b{font:italic 400 clamp(2rem,4vw,2.8rem)/1 var(--serif)}
.gift-card i{display:block;width:56px;height:56px;border:1px solid var(--dusk);border-radius:50%}
.legal-page .prose h2{font-size:1.8rem}
.lang{font-size:.88rem;color:var(--lead);margin-left:22px}
@media (max-width:860px){.agenda li{grid-template-columns:1fr;gap:4px}.regalo-grid{grid-template-columns:1fr}.gift-card{justify-self:start}.lang{margin:0}}
/* blog */
.byline{margin-top:20px;font-size:.92rem;color:var(--lead)}
.article-grid{max-width:760px}
.article-hero{margin-bottom:40px}
.article-hero img{width:100%;max-height:640px;object-fit:contain;background:#E8E8E4}
.article-body ol{padding-left:1.2em}
.article-body a:not(.btn){color:var(--graphite);text-underline-offset:3px;text-decoration-color:var(--umber)}
.article-cta{margin-top:56px;padding:34px;background:var(--graphite);color:var(--paper)}
.article-cta p{color:#D6D6D2!important;margin:0 0 20px}
.article-cta .btn.solid{background:var(--paper);color:var(--graphite);border-color:var(--paper)}
.article-cta .btn.ghost{border-color:var(--paper);color:var(--paper);margin-left:8px}
.post-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px 40px}
.post-card{text-decoration:none;display:block}
.post-card img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:16px}
.post-card b{display:block;font:italic 500 1.8rem/1.1 var(--serif);margin-bottom:8px}
.post-card span{color:var(--lead)}
.post-card:hover b{color:var(--umber)}
@media (max-width:860px){.post-grid{grid-template-columns:1fr}.article-cta .btn.ghost{margin:10px 0 0}}
/* ---- home v2 ---- */
.infobar{padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#ECECE8}
.infobar dl{display:grid;grid-template-columns:repeat(4,1fr)}
.infobar dl div{padding:22px 24px 22px 0}
.infobar dl div+div{padding-left:24px;border-left:1px solid var(--line)}
.infobar dt{font-size:.85rem;color:var(--lead);margin-bottom:4px}
.infobar dd{font:italic 500 1.35rem/1.15 var(--serif)}
.statement-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(40px,7vw,100px);align-items:end}
.statement blockquote p{font:italic 400 clamp(2.6rem,5.5vw,4.6rem)/1.02 var(--serif);letter-spacing:-.01em;max-width:14ch}
.statement blockquote cite{display:block;font-style:normal;margin-top:22px;font-size:.92rem;color:var(--lead)}
.statement-text p{color:var(--lead);font-size:1.08rem;max-width:44ch}
.statement-text p+p{margin-top:14px}
.bleed{position:relative;padding:0;height:min(78vh,720px);overflow:hidden;background:var(--graphite)}
.bleed img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}
.bleed::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(35,35,37,.75),rgba(35,35,37,0) 55%)}
.bleed-text{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(40px,6vw,70px)}
.bleed-title{font:italic 400 clamp(2.4rem,5vw,4.2rem)/1 var(--serif);color:var(--paper);max-width:16ch}
.bleed-sub{color:#D6D6D2;margin-top:14px;max-width:48ch}
.method{background:#ECECE8;border-top:1px solid var(--line)}
.method-list{list-style:none;counter-reset:m;display:grid;grid-template-columns:repeat(4,1fr);margin-top:56px;border-top:1px solid var(--graphite)}
.method-list li{counter-increment:m;padding:26px 24px 10px 0}
.method-list li+li{padding-left:24px;border-left:1px solid var(--line)}
.method-list li::before{content:counter(m);display:block;font:italic 400 1rem var(--serif);color:var(--umber);margin-bottom:18px}
.method-list span{display:block;font:italic 500 2rem/1 var(--serif);margin-bottom:12px}
.method-list p{color:var(--lead);font-size:.98rem}
.class-img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:22px}
.classes .class:first-child{padding-top:30px}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap}
.teaser-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:44px}
.teaser-grid .post-card b{font-size:1.6rem}
.blog-teaser{border-top:1px solid var(--line)}
.home-faq{border-top:1px solid var(--line)}
.home-faq .faq{margin-top:0}
.closing{background:var(--graphite);color:var(--paper);text-align:left}
.closing-title{font:italic 400 clamp(4rem,11vw,9rem)/.9 var(--serif);letter-spacing:-.02em}
.closing-sub{color:#B9B9BC;margin-top:22px;font-size:1.15rem;max-width:44ch}
.closing .btn.solid{background:var(--paper);color:var(--graphite);border-color:var(--paper)}
.closing .btn.solid:hover{background:var(--dusk);border-color:var(--dusk)}
.closing .btn.ghost{border-color:var(--paper);color:var(--paper)}
.closing .btn.ghost:hover{background:var(--paper);color:var(--graphite)}
@media (max-width:860px){
  .infobar dl{grid-template-columns:1fr 1fr}
  .infobar dl div:nth-child(3){padding-left:0;border-left:0}
  .infobar dl div:nth-child(n+3){border-top:1px solid var(--line)}
  .statement-grid,.teaser-grid{grid-template-columns:1fr}
  .method-list{grid-template-columns:1fr 1fr}
  .method-list li:nth-child(3){padding-left:0;border-left:0}
  .bleed{height:60vh}
}

.shop-photo{margin:0 0 16px}
.shop-photo img{width:100%;aspect-ratio:678/750;object-fit:cover}
.shop-photo figcaption{font-size:.9rem;color:var(--lead);margin-top:10px}
.map{min-height:0}
.map-small{min-height:0!important;height:auto;flex-direction:row;padding:16px 20px;justify-content:space-between;text-align:left}
.map-small br,.map-small small{display:none}
.map-small b{font-size:1.25rem}
