:root{
  --paper:#F5EFE3; --paper2:#EDE5D3; --paper3:#E6DBC4; --ink:#2A2620; --ink2:#4E4739; --ink3:#6B6250;
  --clay:#A86A48; --clay-deep:#8A4F33; --olive:#6C784E; --olive-deep:#54603C; --gold:#B0904C; --gold-soft:#C7AE79;
  --line:rgba(42,38,32,.14); --shadow:0 24px 60px rgba(42,32,20,.16); --shadow-sm:0 12px 30px rgba(42,32,20,.10);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:'Hanken Grotesk',sans-serif;font-weight:400;line-height:1.72;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:600;line-height:1.1;letter-spacing:.2px}
.serif-it{font-family:'Fraunces',serif;font-style:italic}
.kicker{font-size:11px;letter-spacing:3.5px;text-transform:uppercase;color:var(--clay);font-weight:700}
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(20px,5vw,56px)}
.wrap-wide{max-width:1360px;margin:0 auto;padding:0 clamp(20px,5vw,56px)}
.rule{width:54px;height:0;border-top:1px solid var(--gold);margin:20px 0}
.center .rule{margin-left:auto;margin-right:auto}
.h-xl{font-size:clamp(30px,4.4vw,52px)}
[data-en]{display:none}
html[lang="en"] [data-es]{display:none}
html[lang="en"] [data-en]{display:inline}
html[lang="en"] [data-en].block{display:block}

/* reveal on scroll */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal][data-delay="1"]{transition-delay:.09s}
[data-reveal][data-delay="2"]{transition-delay:.18s}
[data-reveal][data-delay="3"]{transition-delay:.27s}
[data-reveal][data-delay="4"]{transition-delay:.36s}
@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}}

/* geometric divider */
.geo-band{height:52px;background:var(--paper2);position:relative;overflow:hidden}
.geo-svg{position:absolute;inset:0;width:100%;height:100%;opacity:.5}

/* header */
header{position:sticky;top:0;z-index:60;background:rgba(245,239,227,.82);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:.35s}
header.scrolled{background:rgba(245,239,227,.96);border-bottom-color:var(--line);box-shadow:0 6px 24px rgba(42,32,20,.06)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px clamp(20px,5vw,56px);transition:padding .35s}
header.scrolled .nav{padding:9px clamp(20px,5vw,56px)}
.brand{display:flex;align-items:center;gap:12px}
.emblem{width:44px;height:44px;flex:none;object-fit:contain;transition:.35s}
.brand .name{font-family:'Fraunces',serif;font-weight:700;font-size:19px;letter-spacing:.5px;line-height:1.02}
.brand .name small{display:block;font-family:'Hanken Grotesk';font-weight:600;font-size:9.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--clay);margin-top:2px}
.menu{display:flex;gap:24px;font-size:13.5px;font-weight:600}
.menu a{padding:4px 0;position:relative;color:var(--ink2);transition:.25s}
.menu a:hover{color:var(--clay-deep)}
.menu a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1.5px;background:var(--gold);transition:right .3s}
.menu a:hover::after{right:0}
.nav-right{display:flex;align-items:center;gap:14px}
.lang{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:999px;padding:3px;font-size:11px;font-weight:700}
.lang button{border:none;background:none;cursor:pointer;padding:5px 11px;border-radius:999px;letter-spacing:1px;color:var(--ink2);font-family:inherit;font-weight:700}
.lang button.on{background:var(--ink);color:var(--paper)}
.nav-cta{display:inline-flex;align-items:center;padding:9px 18px;font-size:11.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;background:var(--clay-deep);color:#fff;border-radius:2px;transition:.3s}
.nav-cta:hover{background:var(--clay)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.burger span{width:24px;height:2px;background:var(--ink);transition:.3s;display:block}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:55;background:rgba(42,38,32,.4);opacity:0;pointer-events:none;transition:.3s;overflow:hidden}
.drawer.open{opacity:1;pointer-events:auto}
.drawer .panel{position:absolute;top:0;right:0;height:100%;width:min(84vw,340px);background:var(--paper);box-shadow:-20px 0 60px rgba(0,0,0,.2);padding:90px 32px 40px;transform:translateX(100%);transition:transform .4s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:6px;overflow-y:auto}
.drawer.open .panel{transform:none}
.drawer a{font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:var(--ink);padding:10px 0;border-bottom:1px solid var(--line)}
.drawer a:hover{color:var(--clay-deep)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;font-size:12.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;border-radius:2px;transition:.3s;cursor:pointer;border:1px solid transparent}
.btn.primary{background:var(--clay-deep);color:#fff}
.btn.primary:hover{background:var(--clay);transform:translateY(-2px)}
.btn.ghost{border-color:rgba(255,255,255,.7);color:#fff}
.btn.ghost:hover{background:rgba(255,255,255,.14)}
.btn.dark{background:var(--ink);color:var(--paper)}
.btn.dark:hover{background:#3c352a;transform:translateY(-2px)}
.btn.line{border-color:var(--gold);color:var(--clay-deep)}
.btn.line:hover{background:var(--gold);color:#fff}
.btn.olive{background:var(--olive-deep);color:#fff}
.btn.olive:hover{background:var(--olive);transform:translateY(-2px)}

/* hero */
.hero{position:relative;min-height:94vh;display:flex;align-items:flex-end;overflow:hidden}
.hero .bg{position:absolute;inset:0;background:url('../img/hero.png') center/cover;filter:saturate(.8) contrast(1.02) brightness(1.03) sepia(.07);transform:scale(1.06);animation:heroZoom 18s ease-out forwards}
@keyframes heroZoom{to{transform:scale(1)}}
.hero .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,18,11,.6) 0%,rgba(24,18,11,.32) 42%,rgba(24,18,11,.74) 100%)}
.hero .inner{position:relative;z-index:2;padding-bottom:7vh}
.hero .kicker{color:#F3E7CE;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.hero h1{font-size:clamp(40px,6.4vw,84px);color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.4);max-width:16ch;margin-top:16px;font-weight:600}
.hero .sub{color:#F6EFE0;font-size:clamp(16px,1.6vw,20px);max-width:54ch;margin-top:18px;text-shadow:0 1px 14px rgba(0,0,0,.5)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.hero-trust{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:34px;color:#F0E6D2;font-size:12.5px;font-weight:600;letter-spacing:.5px;text-shadow:0 1px 10px rgba(0,0,0,.5)}
.hero-trust > span{display:inline-flex;align-items:center;gap:8px}
.hero-trust > span::before{content:"";width:5px;height:5px;background:var(--gold-soft);border-radius:50%;flex:none}
.scroll-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:3;color:#F3E7CE;font-size:11px;letter-spacing:2px;text-transform:uppercase;opacity:.85;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,7px)}}

/* stats band */
.stats{background:var(--ink);color:#EFE6D3;position:relative;overflow:hidden}
.stats .geo-svg{opacity:.08;color:var(--gold)}
.stats .wrap{position:relative;z-index:2;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(48px,10vw,130px);padding:clamp(44px,6vw,68px) clamp(20px,5vw,56px)}
.stat{text-align:center}
.stat .n{font-family:'Fraunces',serif;font-size:clamp(38px,5vw,58px);font-weight:700;color:#fff;line-height:1}
.stat .n small{font-size:.5em;color:var(--gold-soft)}
.stat .l{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#B7AC92;margin-top:10px;font-weight:600}

/* section */
section{padding:clamp(64px,9vw,120px) 0}
.two{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,80px);align-items:center}
.lead{font-size:clamp(19px,2vw,23px);color:var(--ink2);font-family:'Fraunces',serif;font-weight:500;line-height:1.45}
.body p{margin-top:16px;color:var(--ink2)}
.framed{position:relative;padding:12px;background:#fff;box-shadow:var(--shadow)}
.framed::before{content:"";position:absolute;inset:5px;border:1px solid var(--gold-soft);pointer-events:none;z-index:2}
.framed img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4;filter:saturate(.9) contrast(1.01)}
.feat-list{list-style:none;margin-top:26px;display:grid;gap:14px}
.feat-list li{display:flex;gap:14px;align-items:flex-start;font-size:15px;color:var(--ink2)}
.feat-list .fi{width:28px;height:28px;flex:none;color:var(--clay);margin-top:1px}
.feat-list b{color:var(--ink);font-weight:700}
.head{max-width:720px}
.head.center{margin:0 auto;text-align:center}

/* pilares */
#pilares{background:var(--paper2)}
.grid-pil{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:52px}
.pil{background:var(--paper);border:1px solid var(--line);padding:34px 28px;transition:.35s;position:relative;overflow:hidden}
.pil:hover{background:#fff;transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:var(--gold-soft)}
.pil .ico{width:40px;height:40px;color:var(--clay-deep)}
.pil h3{font-size:23px;margin:18px 0 8px}
.pil p{font-size:14px;color:var(--ink2)}
.pil .num{position:absolute;top:14px;right:18px;font-family:'Fraunces',serif;font-size:40px;font-weight:700;color:var(--paper3);line-height:1}

/* eventos */
#eventos{background:var(--paper)}
.featured{display:grid;grid-template-columns:1.1fr 1fr;gap:0;margin-top:52px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.featured .img{position:relative;min-height:340px;overflow:hidden}
.featured .img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;filter:saturate(.88)}
.featured .img .badge{position:absolute;top:18px;left:18px;z-index:2;background:var(--clay-deep);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;padding:7px 14px}
.featured .txt{padding:clamp(30px,4vw,52px)}
.featured .when{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--olive-deep);font-weight:700}
.featured h3{font-size:clamp(28px,3.4vw,40px);margin:10px 0 14px}
.featured p{color:var(--ink2);font-size:15.5px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:26px}
.card{background:#fff;box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;transition:.4s}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(42,32,20,.18)}
.card .ph{aspect-ratio:4/3;overflow:hidden;position:relative}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1);filter:saturate(.85) contrast(1.02)}
.card:hover .ph img{transform:scale(1.06)}
.card .ph .tag{position:absolute;top:12px;left:12px;background:rgba(245,239,227,.94);color:var(--clay-deep);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:5px 11px}
.card .b{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.card .when{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--olive);font-weight:700}
.card h3{font-size:24px;margin:6px 0 8px}
.card p{font-size:14.5px;color:var(--ink2);flex:1}
.card .more{margin-top:16px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--clay-deep)}

/* banner */
.banner{position:relative;min-height:58vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.banner .bg{position:absolute;inset:0;background:url('../img/interior.png') center/cover;filter:saturate(.72) contrast(1.02) sepia(.1)}
.banner .sh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,18,12,.66),rgba(24,18,12,.54))}
.banner .in{position:relative;z-index:2;padding:0 8vw;max-width:920px}
.banner blockquote{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:clamp(24px,3.6vw,44px);color:#fff;line-height:1.3}
.banner cite{display:block;margin-top:22px;font-family:'Hanken Grotesk';font-style:normal;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-soft);font-weight:700}

/* formación */
.grid-form{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:52px}
.fitem{background:var(--paper);padding:34px 30px;transition:.35s}
.fitem:hover{background:#fff}
.fitem .ico{width:34px;height:34px;color:var(--clay)}
.fitem h3{font-size:21px;margin:16px 0 8px}
.fitem p{font-size:14px;color:var(--ink2)}

/* galería */
#galeria{background:var(--paper2);padding-bottom:clamp(64px,9vw,120px)}
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:14px;margin-top:52px}
.gal a{position:relative;overflow:hidden;display:block}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.16,1,.3,1);filter:saturate(.85)}
.gal a:hover img{transform:scale(1.07)}
.gal .g-tall{grid-row:span 2}
.gal .g-wide{grid-column:span 2}

/* alojarse */
#alojarse{background:var(--clay-deep);color:#F7ECDD;position:relative;overflow:hidden}
#alojarse .geo-svg{opacity:.12;color:#fff}
#alojarse .wrap{position:relative;z-index:2}
#alojarse .head .kicker{color:var(--gold-soft)}
#alojarse .head h2{color:#fff}
#alojarse .head p{color:#F1DDC7;max-width:60ch}
.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px}
.room{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);padding:30px 28px;transition:.35s}
.room:hover{background:rgba(255,255,255,.13);transform:translateY(-4px)}
.room .ico{width:34px;height:34px;color:var(--gold-soft)}
.room h3{color:#fff;font-size:23px;margin:16px 0 8px}
.room p{color:#F1DDC7;font-size:14px}
.aloj-cta{text-align:center;margin-top:46px}

/* ediciones */
.edic{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,72px);align-items:center}
.edic .imgcol{position:relative}
.edic .imgcol img{width:100%;aspect-ratio:16/10;object-fit:cover;box-shadow:var(--shadow)}
.edic .imgcol .fl{position:absolute;bottom:-18px;right:-18px;background:var(--gold);color:#fff;font-family:'Fraunces',serif;font-size:20px;font-weight:700;padding:14px 22px;box-shadow:var(--shadow-sm)}

/* proyectos */
.grid-proj{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px}
.proj{position:relative;min-height:300px;display:flex;align-items:flex-end;overflow:hidden;color:#fff}
.proj .bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1.3s cubic-bezier(.16,1,.3,1);filter:saturate(.85)}
.proj:hover .bg{transform:scale(1.06)}
.proj .sh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,15,10,.05),rgba(20,15,10,.84))}
.proj .t{position:relative;z-index:2;padding:26px}
.proj h3{font-size:24px;color:#fff}
.proj p{font-size:13.5px;color:#EFE3D2;margin-top:4px}

/* contacto */
#contacto{background:var(--paper)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,72px);margin-top:52px;align-items:start}
.cinfo h3{font-size:26px;margin-bottom:6px}
.cinfo .row{display:flex;gap:14px;align-items:flex-start;margin-top:22px}
.cinfo .row .ico{width:24px;height:24px;color:var(--clay);flex:none;margin-top:2px}
.cinfo .row b{display:block;color:var(--ink);font-weight:700;font-size:14px}
.cinfo .row span{color:var(--ink2);font-size:14.5px}
.socials{display:flex;gap:12px;margin-top:30px}
.socials a{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink2);transition:.3s}
.socials a:hover{background:var(--clay-deep);color:#fff;border-color:var(--clay-deep)}
.socials svg{width:18px;height:18px}
form.cform{background:#fff;padding:clamp(26px,3vw,38px);box-shadow:var(--shadow-sm)}
form.cform .frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form.cform label{display:block;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:var(--ink3);margin:16px 0 7px}
form.cform input,form.cform select,form.cform textarea{width:100%;border:1px solid var(--line);background:var(--paper);padding:12px 14px;font-family:inherit;font-size:14.5px;color:var(--ink);border-radius:2px;transition:.25s}
form.cform input:focus,form.cform select:focus,form.cform textarea:focus{outline:none;border-color:var(--clay);background:#fff}
form.cform textarea{resize:vertical;min-height:110px}
form.cform .btn{margin-top:24px;width:100%;justify-content:center;border:none}
.form-note{font-size:12px;color:var(--ink3);margin-top:14px;text-align:center}

/* newsletter */
.news{background:var(--olive-deep);color:#F2EFE2;text-align:center}
.news h2{color:#fff;font-size:clamp(28px,3.6vw,44px)}
.news p{color:#DDE2CC;max-width:52ch;margin:14px auto 0}
.news form{display:flex;gap:10px;max-width:480px;margin:30px auto 0;flex-wrap:wrap}
.news input{flex:1;min-width:220px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);padding:14px 18px;color:#fff;font-family:inherit;font-size:14.5px;border-radius:2px}
.news input::placeholder{color:#CBD3B8}
.news .btn{background:#fff;color:var(--olive-deep);border:none}
.news .btn:hover{background:var(--gold-soft)}
/* botones outline dentro de .news (fondo oscuro): no deben heredar el fondo blanco de arriba */
.news .btn.line,.news .btn.ghost{background:transparent;border:1px solid var(--gold-soft);color:#fff}
.news .btn.line:hover,.news .btn.ghost:hover{background:rgba(255,255,255,.14);color:#fff}

/* footer */
footer{background:var(--ink);color:#CDC3AF}
footer .top{padding-top:clamp(56px,8vw,90px);padding-bottom:40px}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
footer .name{font-family:'Fraunces',serif;font-size:26px;color:#F3E9D6;font-weight:700}
footer p{font-size:14px;margin-top:12px;color:#B4A98F}
footer h4{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-soft);margin-bottom:14px;font-family:'Hanken Grotesk';font-weight:700}
footer a.fl{display:block;font-size:14px;padding:5px 0;color:#CDC3AF;transition:.25s;overflow-wrap:anywhere}
footer a.fl:hover{color:#fff;padding-left:5px}
footer .bottom{border-top:1px solid rgba(255,255,255,.1);padding:22px 0;font-size:12px;color:#8B8069;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* mobile */
@media(max-width:980px){
  .menu,.nav-cta,.desktop-lang{display:none}
  .burger{display:flex}
  .two,.grid3,.grid-form,.grid-pil,.grid-proj,.rooms,.featured,.edic,.contact-grid,.stats .wrap{grid-template-columns:1fr}
  .grid-pil,.rooms{grid-template-columns:1fr 1fr}
  .stats .wrap{grid-template-columns:1fr 1fr;gap:34px 24px}
  .grid3,.grid-form,.grid-proj{gap:18px}
  .featured .img{min-height:260px}
  .framed{max-width:420px;margin:0 auto}
  .hero{min-height:84vh}
  .gal{grid-template-columns:1fr 1fr;grid-auto-rows:150px}
  .gal .g-wide{grid-column:span 2}
  .edic .imgcol .fl{right:8px}
  form.cform .frow{grid-template-columns:1fr}
  /* footer: colapsar la rejilla de 4 columnas (desktop) a 2 en tablet */
  .fgrid{grid-template-columns:1fr 1fr;gap:36px 28px}
  .fgrid>div{min-width:0}
}
@media(max-width:560px){
  .grid-pil,.rooms,.grid-form{grid-template-columns:1fr}
  /* footer: 1 columna en teléfono para que Contacto y el selector de idioma entren en pantalla */
  .fgrid{grid-template-columns:1fr;gap:30px}
  footer .bottom{justify-content:center;text-align:center}
}
.demo-badge{position:fixed;bottom:14px;right:14px;z-index:99;background:var(--ink);color:var(--gold-soft);font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;padding:8px 14px;border-radius:999px;box-shadow:var(--shadow);font-weight:700}

/* ================= PÁGINAS INTERIORES ================= */
.page-hero{position:relative;min-height:56vh;display:flex;align-items:flex-end;overflow:hidden}
.page-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.8) contrast(1.02) sepia(.06)}
.page-hero .sh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,20,12,.52) 0%,rgba(26,20,12,.3) 36%,rgba(26,20,12,.68) 100%)}
.page-hero .inner{position:relative;z-index:2;padding-bottom:6vh}
.page-hero .crumbs{color:#EFDFC4;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:600;text-shadow:0 1px 10px rgba(0,0,0,.5)}
.page-hero .crumbs a{color:#EFDFC4}
.page-hero h1{font-size:clamp(34px,5.2vw,66px);color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.42);max-width:18ch;margin-top:12px}
.page-hero .sub{color:#F6EFE0;max-width:56ch;margin-top:16px;font-size:clamp(15px,1.5vw,19px);text-shadow:0 1px 12px rgba(0,0,0,.45)}
.prose{max-width:780px}
.prose h2{font-size:clamp(26px,3.4vw,42px);margin-top:6px}
.prose p{margin-top:18px;color:var(--ink2);font-size:16px}
.prose .lead{font-size:clamp(19px,2vw,23px);color:var(--ink2);font-family:'Fraunces',serif;font-weight:500;line-height:1.45}
.mini-cta{background:var(--clay-deep);color:#F7ECDD;position:relative;overflow:hidden}
.mini-cta .geo-svg{opacity:.12;color:#fff}
.mini-cta .wrap{position:relative;z-index:2;text-align:center}
.mini-cta h2{color:#fff;font-size:clamp(28px,4vw,46px)}
.mini-cta p{color:#F1DDC7;max-width:52ch;margin:14px auto 0}

/* ===== contenido heredado: páginas antiguas WPBakery/Elementor ===== */
.legacy{max-width:1140px;margin:0 auto;padding:clamp(28px,5vw,64px) clamp(20px,5vw,56px)}
.legacy img{height:auto}
.legacy h1,.legacy h2,.legacy h3{margin:.6em 0 .3em}
.legacy p{margin:0 0 1em}
.legacy ul,.legacy ol{margin:0 0 1em 1.2em}
.legacy a{color:var(--clay-deep);text-decoration:underline}

/* ===== 25º Aniversario ===== */
.anniv-lead{max-width:820px;margin:0 auto;text-align:center}
.anniv-lead .big{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(21px,2.4vw,28px);line-height:1.4;color:var(--ink)}
.anniv-lead p{color:var(--ink2);margin-top:18px;font-size:16px}

/* índice de secciones */
.anniv-index{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:40px}
.ix-card{background:var(--paper);padding:22px 24px;display:flex;gap:14px;align-items:flex-start;transition:.3s;text-decoration:none}
.ix-card:hover{background:#fff}
.ix-card .no{font-family:'Fraunces',serif;font-weight:700;font-size:20px;color:var(--gold);line-height:1.1;min-width:28px}
.ix-card h3{font-size:17px;color:var(--ink);margin:0;line-height:1.25}
.ix-card p{font-size:12.5px;color:var(--ink3);margin:4px 0 0;letter-spacing:.3px}

/* línea de tiempo */
.timeline{max-width:820px;margin:44px auto 0;position:relative;padding-left:34px}
.timeline:before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--gold-soft),var(--paper3))}
.tl-item{position:relative;padding:0 0 34px 0}
.tl-item:last-child{padding-bottom:0}
.tl-item:before{content:"";position:absolute;left:-30px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--clay-deep);box-shadow:0 0 0 4px var(--paper)}
.tl-year{font-family:'Fraunces',serif;font-weight:700;color:var(--clay-deep);font-size:19px}
.tl-item p{margin:4px 0 0;color:var(--ink2);font-size:15px}

/* secciones temáticas */
.anniv-sec{border-top:1px solid var(--line);padding:clamp(36px,5vw,58px) 0;scroll-margin-top:90px}
.anniv-sec .eyebrow{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--clay);font-weight:700}
.anniv-sec h2{font-size:clamp(24px,3vw,36px);margin:10px 0 0;max-width:22ch}
.anniv-sec .desc{max-width:70ch;margin:16px 0 0;color:var(--ink2);font-size:16px}
.anniv-sec .desc .quote{font-family:'Fraunces',serif;font-style:italic;font-size:19px;color:var(--ink);display:block;margin:18px 0;padding-left:18px;border-left:2px solid var(--gold-soft)}
.vid-list{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);border:1px solid var(--line)}
.vid-list li{background:var(--paper);padding:13px 18px 13px 40px;position:relative;font-size:14px;color:var(--ink2);line-height:1.4}
.vid-list li:before{content:"";position:absolute;left:16px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:9px solid var(--clay);border-top:6px solid transparent;border-bottom:6px solid transparent;opacity:.75}
.anniv-sec .yt{display:inline-flex;align-items:center;gap:9px;margin-top:24px;font-weight:600;color:var(--clay-deep);text-decoration:none;font-size:15px}
.anniv-sec .yt svg{width:22px;height:22px}
.anniv-sec .yt:hover{color:var(--clay)}
.to-index{display:inline-block;margin-top:16px;margin-left:22px;font-size:12.5px;letter-spacing:.5px;color:var(--ink3);text-decoration:none}
.to-index:hover{color:var(--clay-deep)}

@media(max-width:900px){
  .anniv-index{grid-template-columns:1fr 1fr}
  .vid-list{grid-template-columns:1fr}
}
@media(max-width:560px){
  .anniv-index{grid-template-columns:1fr}
}

/* rejilla de vídeos con thumbnail (25 aniversario) */
.vid-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:28px 0 0}
.vthumb{display:flex;flex-direction:column;text-decoration:none}
.vt-img{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:3px;background:var(--paper3);box-shadow:var(--shadow-sm)}
.vt-img img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.vthumb:hover .vt-img img{transform:scale(1.06)}
.vt-img::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:rgba(26,20,12,.5);z-index:1;transition:background .3s}
.vt-img::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-35%,-50%);z-index:2;border-left:15px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent}
.vthumb:hover .vt-img::after{background:var(--clay-deep)}
.vt-title{margin-top:11px;font-size:13.5px;color:var(--ink2);line-height:1.38}
.vthumb:hover .vt-title{color:var(--clay-deep)}
@media(max-width:900px){.vid-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.vid-grid{grid-template-columns:1fr}}

/* ===== Media / listas de reproducción ===== */
.media-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(30px,6vw,80px);margin-top:8px}
.media-stats .ms{text-align:center}
.media-stats .ms .n{font-family:'Fraunces',serif;font-weight:700;font-size:clamp(30px,4vw,46px);color:var(--clay-deep);line-height:1}
.media-stats .ms .l{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink3);margin-top:8px;font-weight:600}
.media-hero-embed{position:relative;aspect-ratio:16/9;max-width:940px;margin:0 auto;border-radius:5px;overflow:hidden;box-shadow:var(--shadow);background:#000}
.media-hero-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.pl-group{padding:clamp(30px,4vw,50px) 0;border-top:1px solid var(--line)}
.pl-group .kicker{color:var(--clay)}
.pl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 22px;margin-top:28px}
.plcard{display:flex;flex-direction:column;text-decoration:none;position:relative}
.pl-img{position:relative;aspect-ratio:16/9;border-radius:4px;overflow:hidden;background:var(--paper3);box-shadow:var(--shadow-sm)}
.pl-img::before{content:"";position:absolute;top:-6px;left:6px;right:6px;height:12px;background:var(--paper3);border-radius:4px 4px 0 0;opacity:.9;box-shadow:0 -3px 0 rgba(42,32,20,.06)}
.pl-img img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.plcard:hover .pl-img img{transform:scale(1.06)}
.pl-img .pl-badge{position:absolute;z-index:2;right:8px;bottom:8px;display:inline-flex;align-items:center;gap:6px;background:rgba(26,20,12,.82);color:#fff;font-size:11.5px;font-weight:600;letter-spacing:.4px;padding:5px 9px;border-radius:3px}
.pl-img .pl-badge svg{width:13px;height:13px}
.pl-img::after{content:"";position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:rgba(138,79,51,0);border:2px solid rgba(255,255,255,0);transition:.3s}
.plcard:hover .pl-img::after{background:rgba(138,79,51,.85);box-shadow:0 0 0 2px rgba(255,255,255,.25)}
.pl-play{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-40%,-50%);opacity:0;transition:.3s;border-left:15px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent}
.plcard:hover .pl-play{opacity:1}
.pl-t{margin-top:12px;font-family:'Fraunces',serif;font-weight:600;font-size:17px;color:var(--ink);line-height:1.25}
.plcard:hover .pl-t{color:var(--clay-deep)}
.pl-sub{font-size:12.5px;color:var(--ink3);margin-top:3px;letter-spacing:.2px}
@media(max-width:900px){.pl-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pl-grid{grid-template-columns:1fr}}

/* ===== Formulario de reserva (Contact Form 7) ===== */
.cf7-card{max-width:680px;margin:40px auto 0;background:#fff;border:1px solid var(--line);border-radius:6px;padding:clamp(22px,4vw,44px);box-shadow:var(--shadow-sm)}
.wpcf7{margin:0}
.wpcf7-form p{margin:0 0 18px}
.wpcf7-form label{display:block;font-size:13.5px;font-weight:600;color:var(--ink2);line-height:1.55}
.wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.wpcf7-form select,
.wpcf7-form textarea{
  display:block;width:100%;margin-top:7px;padding:13px 15px;
  border:1px solid var(--line);border-radius:4px;background:#fff;
  font-family:'Hanken Grotesk',sans-serif;font-size:15px;color:var(--ink);line-height:1.4;
  -webkit-appearance:none;appearance:none;transition:border-color .2s,box-shadow .2s}
.wpcf7-form select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%238A4F33' stroke-width='1.6' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center;padding-right:40px;cursor:pointer}
.wpcf7-form input:focus,.wpcf7-form select:focus,.wpcf7-form textarea:focus{
  outline:none;border-color:var(--clay);box-shadow:0 0 0 3px rgba(168,106,72,.13)}
.wpcf7-form textarea{min-height:130px;resize:vertical}
.wpcf7-form input[type=date]{min-height:49px}
.wpcf7-form .wpcf7-acceptance{display:block;margin:2px 0 20px;font-size:13.5px;color:var(--ink2)}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item{margin:0;display:flex;gap:10px;align-items:flex-start;line-height:1.5}
.wpcf7-form input[type=checkbox]{width:18px;height:18px;margin-top:1px;accent-color:var(--clay-deep);flex:none}
.wpcf7-form input[type=submit]{
  display:block;width:100%;margin-top:6px;padding:16px 32px;border:none;border-radius:3px;
  background:var(--clay-deep);color:#fff;font-family:'Hanken Grotesk',sans-serif;font-weight:700;
  letter-spacing:1.4px;text-transform:uppercase;font-size:12.5px;cursor:pointer;transition:.3s}
.wpcf7-form input[type=submit]:hover{background:var(--clay)}
.wpcf7-form .wpcf7-spinner{margin:14px auto 0;display:block}
.wpcf7 .wpcf7-response-output{margin:18px 0 0;border-radius:4px;font-size:14px;padding:12px 16px;line-height:1.5}

/* ===== refuerzos responsive ===== */
@media(max-width:768px){
  .wrap,.wrap-wide{padding-left:22px;padding-right:22px}
  .cta-row{gap:10px}
  .media-stats{gap:26px}
}
@media(max-width:600px){
  .hero{min-height:86vh}
  .page-hero{min-height:44vh}
  .hero h1{font-size:clamp(31px,8.6vw,42px)}
  .hero .sub,.page-hero .sub{font-size:15.5px}
  .cta-row{flex-direction:column;align-items:stretch}
  .cta-row .btn{width:100%;justify-content:center}
  .brand .name{font-size:16px}
  .brand .name small{font-size:8.5px;letter-spacing:2px}
  .emblem{width:34px;height:34px}
  .timeline{padding-left:24px}
  .cf7-card{padding:20px 16px}
  .anniv-sec .to-index{display:block;margin-left:0;margin-top:18px}
  .media-stats .ms .n{font-size:34px}
  .h-xl{font-size:clamp(27px,7.6vw,40px)}
}

/* banda de esencias (home) — icono + título + subtítulo */
.stat .ico{width:38px;height:38px;color:var(--gold-soft);margin:0 auto 14px;display:block;stroke-width:1.3}
.stat .st-t{font-family:'Fraunces',serif;font-size:clamp(27px,3.4vw,38px);font-weight:600;color:#fff;line-height:1.08}

/* ===== Relaciones institucionales (footer) ===== */
.inst-band{padding-top:30px;text-align:center}
.inst-title{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold-soft);font-weight:700;margin-bottom:22px}
.inst-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:26px 54px}
.inst-logos a{height:52px;display:inline-flex;align-items:center;opacity:.6;transition:opacity .3s;outline-offset:5px}
.inst-logos a:hover,.inst-logos a:focus-visible{opacity:1}
.inst-logos img{max-height:36px;max-width:210px;width:auto;height:auto;object-fit:contain;display:block}
.inst-logos img.stacked{max-height:50px;max-width:120px}
.inst-sep{max-width:1200px;margin:30px auto 0;border-top:1px solid rgba(255,255,255,.1)}
@media(max-width:560px){.inst-logos{gap:22px 30px}.inst-logos a{height:46px}.inst-logos img{max-height:28px;max-width:160px}.inst-logos img.stacked{max-height:42px}}

/* ---- Donaciones ---- */
.give-intro{padding-top:34px}
.give-lead p{font-size:clamp(1.05rem,1.6vw,1.28rem);line-height:1.7;color:var(--ink);max-width:760px}
.give-uses{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:34px}
.give-uses .use{display:flex;flex-direction:column;gap:6px;padding:18px 18px 20px;background:var(--paper2);border:1px solid var(--line);border-radius:14px}
.give-uses .use b{font-family:'Fraunces',serif;font-weight:600;color:var(--clay-deep);font-size:1.02rem}
.give-uses .use span{color:var(--ink2);font-size:.92rem;line-height:1.55}
.give-sec{background:var(--paper2)}
.give-h{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.6rem,3vw,2.2rem);color:var(--ink);margin-bottom:26px;text-align:center}
.give-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:920px;margin:0 auto}
.give-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:30px 28px 32px;box-shadow:0 10px 30px rgba(42,38,32,.05)}
.give-ico{width:34px;height:34px;color:var(--gold);margin-bottom:10px}
.give-card h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.32rem;color:var(--clay-deep);margin:0 0 8px}
.give-p{color:var(--ink2);font-size:.95rem;line-height:1.55;margin:0 0 18px}
.give-field{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-top:1px solid var(--line)}
.give-lab{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.give-val{font-size:1rem;color:var(--ink);font-weight:500}
.give-num{font-family:'Hanken Grotesk',monospace;font-size:1.18rem;font-weight:600;color:var(--clay-deep);letter-spacing:.04em;user-select:all;word-break:break-all}
.give-hint{margin:14px 0 0;font-size:.85rem;color:var(--ink2);line-height:1.5}
.give-note{max-width:820px;margin:30px auto 0;text-align:center;color:var(--ink2);font-size:.95rem;line-height:1.6}
.give-note a{color:var(--clay-deep);font-weight:600}
.give-other{padding-top:60px}
.give-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1040px;margin:0 auto}
.give-way{display:flex;flex-direction:column;gap:8px;padding:24px 22px;background:var(--paper2);border:1px solid var(--line);border-radius:14px;text-decoration:none;transition:.25s}
.give-way:hover{transform:translateY(-3px);border-color:var(--gold-soft);box-shadow:0 12px 28px rgba(42,38,32,.07)}
.give-way b{font-family:'Fraunces',serif;font-weight:600;color:var(--clay-deep);font-size:1.06rem}
.give-way span{color:var(--ink2);font-size:.9rem;line-height:1.55}
@media(max-width:820px){.give-uses{grid-template-columns:1fr 1fr}.give-grid3{grid-template-columns:1fr}}
@media(max-width:640px){.give-grid{grid-template-columns:1fr}.give-uses{grid-template-columns:1fr}}

/* ================= WooCommerce (tienda / producto) ================= */
.woo-wrap{padding:44px 0 84px}
.woocommerce .woocommerce-breadcrumb{color:var(--ink2);font-size:.85rem;margin-bottom:20px}
.woocommerce .woocommerce-breadcrumb a{color:var(--clay-deep);text-decoration:none}
.woocommerce-products-header__title,.woocommerce .woocommerce-products-header__title{font-family:'Fraunces',serif;font-weight:600;color:var(--ink);font-size:clamp(2rem,4vw,2.8rem);margin-bottom:6px}
.woocommerce .woocommerce-result-count{color:var(--ink2);font-size:.9rem;float:none;display:inline-block;margin-bottom:18px}
.woocommerce .woocommerce-ordering{float:none;margin:0 0 26px}
.woocommerce .woocommerce-ordering select{max-width:100%;padding:.55em 2.2em .55em .9em;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);font-family:inherit;font-size:.9rem}

/* --- rejilla de la tienda --- */
.woocommerce ul.products,.woocommerce-page ul.products{display:grid !important;grid-template-columns:repeat(4,1fr);gap:28px;margin:0 !important;padding:0 !important;list-style:none}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none !important}
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{width:auto !important;margin:0 !important;float:none !important;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px 16px 20px;display:flex;flex-direction:column;text-align:left;transition:.25s}
.woocommerce ul.products li.product:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(42,38,32,.10);border-color:var(--gold-soft)}
.woocommerce ul.products li.product a img{width:100%;height:220px;object-fit:contain;background:var(--paper2);border-radius:10px;margin:0 0 14px}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:'Fraunces',serif;font-size:1rem;font-weight:600;color:var(--ink);line-height:1.32;padding:0;min-height:2.55em}
.woocommerce ul.products li.product .price{color:var(--clay-deep) !important;font-weight:600;font-size:1.05rem;margin:8px 0 14px;display:block}
.woocommerce ul.products li.product .price del{color:var(--ink2);font-weight:400;opacity:.7}
.woocommerce ul.products li.product .price ins{text-decoration:none}
.woocommerce ul.products li.product .button{margin-top:auto;align-self:flex-start}
.woocommerce ul.products li.product .onsale{background:var(--gold);color:#fff;border-radius:20px;padding:.2em .8em;min-height:auto;min-width:auto;font-size:.72rem;top:12px;right:12px;left:auto;margin:0}

/* --- botones --- */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.woocommerce .button,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background:var(--clay-deep) !important;color:#fff !important;border-radius:10px !important;padding:.72em 1.3em !important;font-weight:600 !important;font-size:.92rem !important;line-height:1.2 !important;text-transform:none !important;border:none !important;box-shadow:none !important;transition:.2s}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce .button:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button:hover{background:var(--clay) !important}
.woocommerce .added_to_cart{color:var(--clay-deep) !important;font-weight:600;margin-left:10px;text-decoration:underline}

/* --- producto individual --- */
.woocommerce div.product{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:48px;align-items:start}
.woocommerce div.product > .woocommerce-tabs,.woocommerce div.product > .related,.woocommerce div.product > .upsells,.woocommerce div.product > .woocommerce-product-rating{grid-column:1 / -1}
.woocommerce div.product .woocommerce-product-gallery{width:100% !important;margin:0;float:none}
.woocommerce div.product .woocommerce-product-gallery__image img{border-radius:14px;border:1px solid var(--line);background:var(--paper2)}
.woocommerce div.product div.summary{margin:0 !important;float:none !important;width:100% !important}
.woocommerce div.product .product_title{font-family:'Fraunces',serif;font-weight:600;color:var(--ink);font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.15;margin-bottom:12px}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--clay-deep) !important;font-size:1.5rem;font-weight:600;margin-bottom:16px}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--ink);line-height:1.65;margin-bottom:22px;max-width:60ch}
.woocommerce div.product form.cart{margin:14px 0 24px}
.woocommerce .quantity input.qty{border:1px solid var(--line);border-radius:8px;padding:.55em .4em;background:var(--paper);color:var(--ink)}
.woocommerce div.product .product_meta{color:var(--ink2);font-size:.85rem;border-top:1px solid var(--line);padding-top:16px;margin-top:8px}
.woocommerce div.product .product_meta a{color:var(--clay-deep)}

/* --- pestañas (Descripción / Valoraciones) --- */
.woocommerce div.product .woocommerce-tabs{margin-top:26px}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 20px;border-bottom:1px solid var(--line)}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:transparent;border:none;border-radius:0;margin:0 26px 0 0;padding:0 0 10px}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-bottom:2px solid var(--clay-deep)}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{color:var(--ink2);font-weight:600;padding:0}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--clay-deep)}
.woocommerce div.product .woocommerce-Tabs-panel{max-width:74ch}
.woocommerce div.product .woocommerce-Tabs-panel > h2{font-family:'Fraunces',serif;color:var(--ink);font-size:1.4rem;margin-bottom:14px}
.woocommerce div.product .woocommerce-Tabs-panel p{line-height:1.75;color:var(--ink)}

/* --- relacionados / venta cruzada --- */
.woocommerce .related > h2,.woocommerce .upsells > h2{font-family:'Fraunces',serif;font-weight:600;color:var(--ink);font-size:1.6rem;margin:54px 0 24px}

/* --- carrito / checkout (aseo básico) --- */
.woocommerce table.shop_table{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.woocommerce .cart-collaterals .cart_totals,.woocommerce-checkout .woocommerce-checkout-review-order{border:1px solid var(--line);border-radius:12px;padding:16px}

/* --- responsive tienda --- */
@media(max-width:960px){.woocommerce div.product{grid-template-columns:1fr;gap:26px}.woocommerce div.product .woocommerce-product-gallery{max-width:440px}.woocommerce ul.products{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.woocommerce ul.products{grid-template-columns:repeat(2,1fr);gap:16px}.woocommerce ul.products li.product a img{height:180px}}
@media(max-width:430px){.woocommerce ul.products{grid-template-columns:1fr}.woocommerce ul.products li.product a img{height:230px}}

/* Botón flotante de WhatsApp — consultas rápidas, en todas las páginas.
   z-index 50 va por DEBAJO del drawer (55) para no flotar sobre el menú móvil. */
.wa-fab{position:fixed;left:22px;bottom:22px;z-index:50;display:inline-flex;align-items:center;gap:10px;
  height:56px;padding:0 20px 0 15px;border-radius:999px;background:var(--olive-deep);color:#fff;
  border:1px solid rgba(255,255,255,.16);box-shadow:var(--shadow-sm);
  font-family:'Hanken Grotesk',sans-serif;font-weight:600;font-size:14.5px;line-height:1;
  transition:background .25s,transform .25s,box-shadow .25s}
.wa-fab:hover{background:var(--olive);transform:translateY(-2px);box-shadow:var(--shadow)}
.wa-fab:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}
.wa-fab .wa-ico{width:26px;height:26px;flex:0 0 26px}
@media(prefers-reduced-motion:reduce){.wa-fab{transition:none}.wa-fab:hover{transform:none}}
/* En teléfono queda solo el círculo. El texto se oculta VISUALMENTE (no con
   display:none) para que el enlace conserve su nombre accesible. */
@media(max-width:560px){
  .wa-fab{left:16px;bottom:16px;height:52px;width:52px;padding:0;gap:0;justify-content:center}
  .wa-fab .wa-txt{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
    overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
}
