:root{
    --cream:#F7F8F0;
    --ww:#FFFFFF;
    --beige:#E4E7D4;
    --beige2:#C2C995;

    --terra:#54623F;
    --tlight:#7A875F;
    --tpale:#E8EAD9;
    --tdeep:#3F4B2F;

    --sage:#C2C995;
    --spale:#E8EAD9;

    --mauve:#AEB68A;
    --mpale:#EEF0E4;

    --tx:#30372A;
    --txm:#58604B;
    --txs:#7D846F;

    --sh:rgba(84,98,63,.14);
}
nav{position:fixed;top:0;width:100%;z-index:100;padding:22px 64px;display:flex;align-items:center;justify-content:space-between;transition:all .4s}
nav.sc{background:rgba(250,246,241,.95);backdrop-filter:blur(14px);padding:14px 64px;box-shadow:0 2px 28px var(--sh)}
.logo{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:400;color:var(--tx);text-decoration:none}
.logo span{color:var(--terra);font-style:italic}
.nl{display:flex;gap:32px;list-style:none}
.nl a{font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--txm);text-decoration:none;transition:color .3s}
.nl a:hover{color:var(--terra)}
.ncta{background:var(--terra)!important;color:#fff!important;padding:10px 22px;border-radius:40px!important;transition:background .3s,transform .2s!important}
.ncta:hover{background:var(--tdeep)!important;transform:translateY(-1px)}
.hbg{display:none;flex-direction:column;gap:5px;cursor:pointer}
.hbg span{width:22px;height:1.5px;background:var(--tx);display:block}
.mnav{position:fixed;inset:0;background:rgba(250,246,241,.98);z-index:99;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;opacity:0;pointer-events:none;transition:opacity .3s}
.mnav.op{opacity:1;pointer-events:all}
.mnav a{font-family:'Playfair Display',serif;font-size:1.85rem;color:var(--tx);text-decoration:none;transition:color .3s}
.mnav a:hover{color:var(--terra)}
.mcl{position:absolute;top:22px;right:28px;font-size:1.5rem;cursor:pointer;background:none;border:none;color:var(--txm)}
 
#hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;position:relative;overflow:hidden}
.hbg2{position:absolute;inset:0;background:linear-gradient(130deg,var(--ww) 0%,var(--tpale) 55%,var(--beige) 100%)}
.blob{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none}
.b1{width:480px;height:480px;background:rgba(192,112,80,.1);top:-120px;right:5%;animation:bf 9s ease-in-out infinite}
.b2{width:320px;height:320px;background:rgba(143,168,130,.13);bottom:0;left:25%;animation:bf 11s ease-in-out infinite;animation-delay:-5s}
.b3{width:200px;height:200px;background:rgba(196,165,184,.12);top:40%;left:5%;animation:bf 7s ease-in-out infinite;animation-delay:-2s}
@keyframes bf{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-22px) scale(1.05)}}
.hleft{position:relative;z-index:2;padding:140px 40px 80px 80px}
.hpill{display:inline-flex;align-items:center;gap:8px;font-size:.67rem;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);border:1px solid rgba(192,112,80,.28);padding:7px 16px;border-radius:40px;margin-bottom:26px;animation:fu .7s ease both}
.htitle{font-family:'Playfair Display',serif;font-size:clamp(2.8rem,4.6vw,5rem);font-weight:400;line-height:1.1;margin-bottom:20px;animation:fu .7s .12s ease both}
.htitle em{color:var(--terra);font-style:italic;display:block}
.hsub{font-size:.97rem;line-height:1.9;color:var(--txm);font-weight:300;max-width:440px;margin-bottom:38px;animation:fu .7s .24s ease both}
.hbtns{display:flex;gap:14px;flex-wrap:wrap;animation:fu .7s .36s ease both}
.bp{background:var(--terra);color:#fff;padding:15px 32px;border-radius:50px;font-family:'DM Sans',sans-serif;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:none;cursor:pointer;transition:all .3s;box-shadow:0 8px 24px rgba(192,112,80,.32)}
.bp:hover{background:var(--tdeep);transform:translateY(-2px)}
.bs{background:transparent;color:var(--tx);padding:15px 32px;border-radius:50px;font-family:'DM Sans',sans-serif;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:1.5px solid var(--beige2);cursor:pointer;transition:all .3s}
.bs:hover{border-color:var(--terra);color:var(--terra);transform:translateY(-2px)}
.hnote{margin-top:34px;font-family:'Playfair Display',serif;font-style:italic;font-size:.97rem;color:var(--txs);display:flex;align-items:center;gap:10px;animation:fu .7s .48s ease both}
.hnote::before{content:'';width:34px;height:1px;background:var(--beige2);display:inline-block}
.hright{position:relative;z-index:2;padding:140px 80px 80px 40px;display:flex;align-items:center;justify-content:center}
.hframe{width:100%;max-width:420px;aspect-ratio:4/5;border-radius:44% 56% 56% 44%/44% 44% 56% 56%;overflow:hidden;box-shadow:0 32px 80px rgba(100,60,40,.2);animation:morph 12s ease-in-out infinite,fi .9s .5s ease both;background:linear-gradient(145deg,#ede4d9,#d5c8b8,rgba(192,112,80,.15));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--txs)}
.hframe .em{font-size:3.6rem}
.hframe span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}
@keyframes morph{0%,100%{border-radius:44% 56% 56% 44%/44% 44% 56% 56%}33%{border-radius:58% 42% 42% 58%/58% 58% 42% 42%}66%{border-radius:50% 50% 60% 40%/52% 48% 52% 48%}}
.hfl{
    position:absolute;
    background:rgba(253,250,247,.92);
    backdrop-filter:blur(10px);
    border-radius:18px;
    padding:16px 20px;
    box-shadow:0 8px 28px var(--sh);
    animation:fi 1s .9s ease both;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}
.hfl1{bottom:50px;left:-10px}.hfl2{top:60px;right:-10px}
.hfv{font-family:'Playfair Display',serif;font-size:1.9rem;color:var(--terra);line-height:1}
.hfl{}.hflb{font-size:.65rem;letter-spacing:.1em;color:var(--txs);text-transform:uppercase;margin-top:4px}
.shhint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--txs);font-size:.61rem;letter-spacing:.2em;text-transform:uppercase;animation:fi 1s 1.2s ease both}
.shl{width:1px;height:44px;background:linear-gradient(to bottom,var(--beige2),transparent);animation:sl 2s ease-in-out infinite}
@keyframes sl{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@keyframes fu{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes fi{from{opacity:0}to{opacity:1}}
 
section{padding:92px 64px}
.slbl{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--terra);display:flex;align-items:center;gap:10px;margin-bottom:13px}
.slbl::before{content:'';width:26px;height:1px;background:var(--terra);display:inline-block}
.stitle{font-family:'Playfair Display',serif;font-size:clamp(2rem,3.8vw,3.5rem);font-weight:400;line-height:1.2;margin-bottom:16px}
.stitle em{color:var(--terra);font-style:italic}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .65s ease,transform .65s ease}
.reveal.vis{opacity:1;transform:translateY(0)}
 
#about{background:var(--ww);display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:center}
.aiwrap{position:relative}
.aphoto{width:100%;max-width:430px;aspect-ratio:3/4;border-radius:26px 26px 52% 26px;background:linear-gradient(145deg,#ede4d9,#d5c8b8,rgba(192,112,80,.1));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--txs);box-shadow:0 18px 52px rgba(100,60,40,.16)}
.aphoto .em{font-size:3.5rem}.aphoto span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}
.abub{position:absolute;top:34px;right:-16px;background:var(--terra);color:#fff;padding:17px 20px;border-radius:20px;max-width:190px;box-shadow:0 10px 34px rgba(192,112,80,.35)}
.abub p{font-family:'Playfair Display',serif;font-style:italic;font-size:.93rem;line-height:1.5}
.abub span{font-size:.61rem;letter-spacing:.1em;opacity:.75;display:block;margin-top:6px}
.adec{position:absolute;width:140px;height:140px;border-radius:50%;background:var(--tpale);bottom:-22px;right:14px;z-index:-1}
.atxt p{font-size:.95rem;line-height:1.95;color:var(--txm);font-weight:300;margin-bottom:16px}
.atags{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.tag{padding:7px 15px;border-radius:40px;font-size:.71rem;letter-spacing:.07em}
.tg{background:var(--tpale);color:var(--terra)}
.ts{background:var(--spale);color:#5a7a50}
.tm{background:var(--mpale);color:#8a6080}
.tr{background:#ede8f8;color:#7060a8}
 
#services{background:var(--cream)}
.shdr{text-align:center;margin-bottom:54px}
.sgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:1180px;margin:0 auto}
.sc2{background:var(--ww);border-radius:24px;padding:36px 28px;border:1px solid rgba(229,218,204,.7);transition:all .4s;position:relative;overflow:hidden;cursor:default}
.sc2::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;transform:scaleX(0);transform-origin:left;transition:transform .4s}
.sc2:hover{transform:translateY(-6px);box-shadow:0 22px 50px var(--sh)}.sc2:hover::after{transform:scaleX(1)}
.ch::after{background:linear-gradient(90deg,var(--terra),var(--tlight))}.ct::after{background:linear-gradient(90deg,var(--sage),#b0d0a0)}.cp::after{background:linear-gradient(90deg,var(--mauve),#e0b8d0)}.cr::after{background:linear-gradient(90deg,#b0a0d0,var(--mauve))}
.sic{width:52px;height:52px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:20px;transition:all .3s}
.sc2:hover .sic{transform:rotate(-6deg) scale(1.1)}
.ih{background:var(--tpale)}.it{background:var(--spale)}.ip{background:var(--mpale)}.ir{background:#ede8f8}
.snm{font-family:'Playfair Display',serif;font-size:1.45rem;font-weight:400;margin-bottom:10px;color:var(--tx)}
.sds{font-size:.86rem;line-height:1.77;color:var(--txm);font-weight:300;margin-bottom:18px}
.sfts{list-style:none;display:flex;flex-direction:column;gap:7px;margin-bottom:20px}
.sfts li{font-size:.81rem;color:var(--txm);font-weight:300;display:flex;align-items:flex-start;gap:7px}
.sfts li::before{content:'🌿';font-size:.73rem;flex-shrink:0;margin-top:1px}
.sdiv{height:1px;background:var(--beige);margin:16px 0}
.ssched{display:flex;flex-direction:column;gap:5px;margin-bottom:16px}
.srow{font-size:.77rem;display:flex;align-items:center;gap:7px;color:var(--txm)}
.srow span{color:var(--terra);font-weight:500;letter-spacing:.04em}
.sprs{display:flex;flex-direction:column;gap:6px}
.pr{display:flex;justify-content:space-between;align-items:center;font-size:.81rem;color:var(--txm);font-weight:300}
.pamt{font-family:'Playfair Display',serif;font-size:.98rem;color:var(--tx);font-weight:500}
.scta{display:inline-flex;align-items:center;gap:7px;margin-top:20px;color:#fff;padding:11px 22px;border-radius:50px;font-size:.71rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;font-family:'DM Sans',sans-serif;transition:all .3s;box-shadow:0 6px 18px rgba(192,112,80,.25)}
.scta:hover{transform:translateY(-1px)}
.cth{background:var(--terra)}.cth:hover{background:var(--tdeep)}
.ctt{background:var(--sage)}.ctt:hover{background:#6a8a60}
.ctp{background:var(--mauve)}.ctp:hover{background:#a088a0}
.ctr{background:#54623F}.ctr:hover{background:#54623F}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.rmod{background:var(--cream);border-radius:14px;padding:16px 14px;border:1px solid var(--beige)}
.rmt{font-family:'Playfair Display',serif;font-size:1rem;margin-bottom:7px;color:var(--tx)}
.rmp{font-family:'Playfair Display',serif;font-size:1.15rem;color:var(--terra);margin-bottom:5px}
.rmd{font-size:.75rem;color:var(--txs);font-weight:300;line-height:1.5}
 
#schedule{background:var(--tpale);padding:60px 64px}
.shd{text-align:center;margin-bottom:40px}
.scards{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;max-width:1080px;margin:0 auto}
.scard{background:rgba(253,250,247,.9);border-radius:20px;padding:26px 24px;min-width:200px;flex:1;max-width:260px;box-shadow:0 6px 26px rgba(192,112,80,.12);transition:all .3s}
.scard:hover{transform:translateY(-4px);box-shadow:0 14px 38px rgba(192,112,80,.2)}
.sci{font-size:1.4rem;margin-bottom:10px}
.scn{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--tx);margin-bottom:7px}
.sct{font-size:.8rem;color:var(--terra);font-weight:500;letter-spacing:.05em;margin-bottom:3px}
.scd{font-size:.76rem;color:var(--txs);font-weight:300}
 
 
 
#testi{background:var(--cream)}
.thdr{text-align:center;margin-bottom:50px}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:20px;max-width:1080px;margin:0 auto}
.tc{background:var(--ww);border-radius:22px;padding:32px 26px;border:1px solid rgba(229,218,204,.6);position:relative;transition:all .4s}
.tc:hover{transform:translateY(-4px);box-shadow:0 16px 42px var(--sh)}
.tq{font-family:'Playfair Display',serif;font-size:3.6rem;line-height:1;color:var(--tpale);position:absolute;top:12px;right:22px}
.tst{display:flex;gap:3px;margin-bottom:13px}
.ts2{color:var(--terra);font-size:.8rem}
.ttx{font-size:.92rem;line-height:1.82;color:var(--txm);font-weight:300;font-style:italic;margin-bottom:20px}
.tau{display:flex;align-items:center;gap:11px}
.tav{width:40px;height:40px;border-radius:50%;background:var(--tpale);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--terra);flex-shrink:0}
.tnm{font-size:.87rem;font-weight:500;color:var(--tx)}
.trl{font-size:.69rem;color:var(--txs);letter-spacing:.07em}

#location{background:var(--ww);display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.lmap{background:var(--beige);border-radius:26px;overflow:hidden;height:300px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--txs);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;box-shadow:0 10px 34px var(--sh)}
.lmap .mem{font-size:2.8rem}
.ldets{display:flex;flex-direction:column;gap:20px}
.li2{display:flex;align-items:flex-start;gap:14px}
.lic{width:42px;height:42px;border-radius:13px;background:var(--tpale);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.lit{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--txs);margin-bottom:3px}
.liv{font-size:.9rem;color:var(--tx);font-weight:400;line-height:1.6}
 
#contact{background:var(--ww);display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:center}
.cleft p{font-size:.95rem;line-height:1.9;color:var(--txm);font-weight:300;margin-bottom:30px}
.wabtn{display:inline-flex;align-items:center;gap:11px;background:#25D366;color:#fff;padding:15px 32px;border-radius:50px;text-decoration:none;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-family:'DM Sans',sans-serif;box-shadow:0 8px 24px rgba(37,211,102,.3);transition:all .3s;margin-bottom:26px}
.wabtn:hover{background:#1da851;transform:translateY(-2px)}
.cinf{display:flex;flex-direction:column;gap:13px}
.crow{display:flex;align-items:center;gap:13px;font-size:.87rem;color:var(--txm);font-weight:300}
.cic{width:40px;height:40px;background:var(--tpale);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.cfrm{background:var(--cream);border-radius:26px;padding:42px 36px;border:1px solid var(--beige);box-shadow:0 10px 38px var(--sh)}
.cfrt{font-family:'Playfair Display',serif;font-size:1.7rem;margin-bottom:26px;color:var(--tx)}
.fg{margin-bottom:17px}
.fg label{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--txs);margin-bottom:6px}
.fg input,.fg textarea,.fg select{width:100%;background:var(--ww);border:1.5px solid var(--beige);border-radius:11px;padding:12px 16px;font-family:'DM Sans',sans-serif;font-size:.89rem;color:var(--tx);font-weight:300;outline:none;transition:border-color .3s,box-shadow .3s;resize:none;-webkit-appearance:none}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--terra);box-shadow:0 0 0 3px rgba(192,112,80,.1)}
.fg textarea{height:108px}
.fsb{width:100%;background:var(--terra);color:#fff;border:none;border-radius:50px;padding:15px;font-family:'DM Sans',sans-serif;font-size:.77rem;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:all .3s;margin-top:7px;box-shadow:0 8px 24px rgba(192,112,80,.3)}
.fsb:hover{background:var(--tdeep);transform:translateY(-1px)}
 
footer{background:var(--tx);color:rgba(250,246,241,.6);padding:54px 80px 34px}
.fgrd{display:grid;grid-template-columns:2fr 1fr 1fr;gap:52px;padding-bottom:42px;border-bottom:1px solid rgba(250,246,241,.07);width:100%}.fbr{font-family:'Playfair Display',serif;font-size:1.65rem;font-weight:400;color:var(--cream);margin-bottom:11px}
.fbr span{color:var(--tlight);font-style:italic}
.ftag{font-family:'Playfair Display',serif;font-style:italic;font-size:.96rem;color:rgba(250,246,241,.42);line-height:1.7;margin-bottom:20px}
.fsocs{display:flex;gap:9px}
.fso{width:35px;height:35px;border-radius:10px;background:rgba(250,246,241,.08);display:flex;align-items:center;justify-content:center;font-size:.88rem;text-decoration:none;color:rgba(250,246,241,.6);transition:all .3s}
.fso:hover{background:var(--terra);color:#fff;transform:translateY(-2px)}
.fct{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--tlight);margin-bottom:17px}
.flks{list-style:none;display:flex;flex-direction:column;gap:8px}
.flks a{text-decoration:none;font-size:.84rem;color:rgba(250,246,241,.48);font-weight:300;transition:color .3s}
.flks a:hover{color:var(--cream)}
.fbot{border-top:1px solid rgba(250,246,241,.07);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.fcp{font-size:.71rem;color:rgba(250,246,241,.27)}
.finsp{font-family:'Playfair Display',serif;font-style:italic;font-size:.92rem;color:rgba(250,246,241,.37)}
 
@media(max-width:900px){
  nav{padding:17px 22px}nav.sc{padding:13px 22px}
  .nl{display:none}.hbg{display:flex}
  #hero{grid-template-columns:1fr;min-height:auto}.hleft{padding:118px 22px 38px}.hright{display:none}
  section{padding:64px 22px}
  #about,#contact,#location{grid-template-columns:1fr;gap:34px;padding:64px 22px}
  .aphoto{max-width:100%}.abub{display:none}
  footer{padding:42px 22px 0}.fgrd{grid-template-columns:1fr;gap:28px}
  .fbot{flex-direction:column;align-items:flex-start}
  .sgrid{grid-template-columns:1fr}.rgrid{grid-template-columns:1fr}
  #schedule{padding:52px 22px}
}
@media(max-width:600px){
  .htitle{font-size:2.4rem}.hbtns{flex-direction:column}
  .scards{flex-direction:column;align-items:center}.scard{max-width:100%;width:100%}
}
/* =================================
   GALERÍA
   ================================= */

#galeria {
    background: var(--cream);
    padding: 92px 64px;
}

.galhdr {
    max-width: 1080px;
    margin: 0 auto 42px;
}

/* Ocultamos los botones radio */

#gal1,
#gal2,
#gal3,
#gal4,
#gal5 {
    display: none;
}

/* CONTENEDOR */

.galeria-slider {
    position: relative;
    width: min(900px, 100%);
    height: 600px;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 26px;
    background: var(--beige);
    box-shadow: 0 18px 50px rgba(100,60,40,.15);
}
/* CADA IMAGEN */

.gal-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;

    opacity: 0;
    visibility: hidden;

    transition: opacity .45s ease;
}

/* IMAGEN NÍTIDA */

.gal-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
/* MOSTRAR LA IMAGEN SELECCIONADA */

#gal1:checked ~ .galeria-slider .slide1,
#gal2:checked ~ .galeria-slider .slide2,
#gal3:checked ~ .galeria-slider .slide3,
#gal4:checked ~ .galeria-slider .slide4,
#gal5:checked ~ .galeria-slider .slide5 {
    opacity: 1;
    visibility: visible;
}

/* NOMBRE DE LA DISCIPLINA */

.gal-nombre {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;

    padding: 30px 20px 18px;

    text-align: center;

    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: 1.6rem;
    font-weight: 500;

    color: #fff;

    /* SOLO abajo de la imagen */
    background: linear-gradient(
        to top,
        rgba(0,0,0,.48),
        transparent
    );

    text-shadow: 0 2px 7px rgba(0,0,0,.7);
}

/* =================================
   FLECHAS
   ================================= */

.gal-flecha {
    position: absolute;

    top: 50%;
    transform: translateY(-50%);

    width: 46px;
    height: 46px;

    border-radius: 50%;
    background: rgba(253,250,247,.92);

    color: var(--terra);

    display: flex;
    align-items: center;
    justify-content: center;

    font-family: Arial, sans-serif;
    font-size: 2rem;
    line-height: 1;

    cursor: pointer;

    box-shadow: 0 5px 20px rgba(0,0,0,.15);

    transition: all .25s ease;

    z-index: 5;
}

.gal-flecha:hover {
    background: var(--terra);
    color: #fff;
    transform: translateY(-50%) scale(1.08);
}

.gal-flecha.izquierda {
    left: 18px;
}

.gal-flecha.derecha {
    right: 18px;
}


/* =================================
   CELULAR
   ================================= */

@media(max-width:600px) {

    #galeria {
        padding: 64px 18px;
    }

    .galhdr {
        margin-bottom: 28px;
    }

.galeria-slider {
    width: 100%;
    height: 500px;
    border-radius: 20px;
}
    .gal-nombre {
        font-size: 1.25rem;
        padding: 28px 12px 16px;
    }

    .gal-flecha {
        width: 38px;
        height: 38px;
        font-size: 1.6rem;
    }

    .gal-flecha.izquierda {
        left: 10px;
    }

    .gal-flecha.derecha {
        right: 10px;
    }
}
#instagram {
  background: linear-gradient(135deg, var(--mpale) 0%, var(--tpale) 60%, var(--spale) 100%);
  padding: 92px 64px;
  width: 100%;
}
.ig-inner {
  max-width: 1100px;
  margin: 0 auto;
}
.ig-top {
  text-align: center;
  margin-bottom: 52px;
}
.ig-icon {
  font-size: 2.2rem;
  margin-bottom: 12px;
}
.ig-sub {
  font-size: .95rem;
  line-height: 1.9;
  color: var(--txm);
  font-weight: 300;
  max-width: 520px;
  margin: 0 auto;
}
.ig-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}
.ig-card {
  background: rgba(253,250,247,.95);
  border-radius: 28px;
  padding: 36px 32px;
  box-shadow: 0 20px 60px rgba(100,60,40,.1);
  border: 1px solid rgba(255,255,255,.8);
}
.ig-card-top {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}
.ig-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, #859371,#becda8,#a1c87a, #C2C995,#54623F);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem;
  color: #fff;
  font-weight: 500;
  flex-shrink: 0;
}
.ig-card-name {
  font-size: .9rem;
  font-weight: 500;
  color: var(--tx);
}
.ig-card-desc {
  font-size: .74rem;
  color: var(--txs);
  margin-top: 2px;
}
.ig-card-frase {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: .97rem;
  line-height: 1.75;
  color: var(--txm);
  margin-bottom: 24px;
  padding: 18px;
  background: var(--cream);
  border-radius: 16px;
  border-left: 3px solid var(--terra);
}
.ig-stats {
  display: flex;
  justify-content: space-around;
  padding: 16px 0;
  border-top: 1px solid var(--beige);
}
.ig-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.ig-stat-n { font-size: 1.3rem; }
.ig-stat-l {
  font-size: .67rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--txs);
}
.ig-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}
.ig-cta-frase {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 1.4rem;
  line-height: 1.6;
  color: var(--txm);
}
.ig-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(135deg, #C2C995, #a1c87a,#54623F,#859371,#becda8);
  color: #fff;
  padding: 18px 32px;
  border-radius: 50px;
  text-decoration: none;
  transition: all .3s;
  box-shadow: 0 8px 28px rgba(107, 139, 90, 0.3);
}
.ig-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(106, 208, 106, 0.4);
}
.ig-btn-icon { font-size: 1.4rem; }
.ig-btn-arroba {
  display: block;
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: .04em;
}
.ig-btn-sub {
  display: block;
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .85;
}
.ig-cta-note {
  font-size: .75rem;
  color: var(--txs);
  letter-spacing: .08em;
}
@media(max-width:900px) {
  #instagram { padding: 64px 22px; }
  .ig-content { grid-template-columns: 1fr; }
}
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  margin: 0;
  padding: 0;
}

.review-form {
  background: var(--ww);
  border-radius: 28px;
  padding: 44px 40px;
  border: 1px solid var(--beige);
  box-shadow: 0 10px 40px var(--sh);
  max-width: 700px;
  margin: 52px auto 0;
}
.review-form-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--tx);
  margin-bottom: 28px;
}
.review-form-title em {
  color: var(--terra);
  font-style: italic;
}
.review-label {
  font-size: .67rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--txs);
  margin-bottom: 10px;
}
.star-selector {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
}
.rstar {
  font-size: 2rem;
  color: var(--beige2);
  cursor: pointer;
  transition: color .2s, transform .2s;
}
.rstar.activa {
  color: var(--terra);
  transform: scale(1.15);
}
.review-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.review-fields .fg:last-child {
  grid-column: span 2;
}
@media(max-width:700px) {
  .review-fields { grid-template-columns: 1fr; }
  .review-fields .fg:last-child { grid-column: span 1; }
  .review-form { padding: 30px 20px; }
}
.btn-borrar {
  position: absolute;
  top: 12px;
  left: 14px;
  background: none;
  border: none;
  font-size: .85rem;
  cursor: pointer;
  opacity: 0;
  transition: opacity .3s;
  pointer-events: none;
}
.tc:hover .btn-borrar {
  opacity: 0;
  pointer-events: all;
}
#particulas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}

#chat-btn {
  position: fixed;
  bottom: 28px;
  right: 28px;
  width: 64px;
  height: 64px;
  background: linear-gradient(135deg, var(--terra), var(--tdeep));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 28px rgba(192,112,80,.45);
  z-index: 1000;
  transition: transform .4s cubic-bezier(.34,1.56,.64,1);
}
#chat-btn:hover { transform: scale(1.12) rotate(-8deg) }
#chat-btn.abierto { transform: scale(0.9) rotate(15deg) }
.chat-pulse {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: rgba(192,112,80,.3);
  animation: pulse 2.5s ease-in-out infinite;
}
@keyframes pulse {
  0%,100% { transform: scale(1); opacity: .5 }
  50% { transform: scale(1.4); opacity: 0 }
}
#chat-box {
  position: fixed;
  bottom: 106px;
  right: 28px;
  width: 320px;
  background: var(--ww);
  border-radius: 24px;
  box-shadow: 0 20px 60px rgba(125, 170, 112, 0.2);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--beige);
  opacity: 0;
  transform: translateY(20px) scale(0.95);
  pointer-events: none;
  transition: opacity .35s ease, transform .35s cubic-bezier(.34,1.56,.64,1);
}
#chat-box.abierto {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: all;
}
.chat-header {
  background: var(--terra);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.chat-header-info {
  display: flex;
  align-items: center;
  gap: 10px;
}
.chat-avatar {
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.chat-name {
  font-size: .86rem;
  font-weight: 500;
  color: #fff;
}
.chat-status {
  font-size: .68rem;
  color: rgba(255,255,255,.8);
  margin-top: 2px;
}
.chat-cerrar {
  background: none;
  border: none;
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
  opacity: .8;
  transition: opacity .2s;
  flex-shrink: 0;
}
.chat-cerrar:hover { opacity: 1 }
.chat-mensajes {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 360px;
  overflow-y: auto;
  scroll-behavior: smooth;
}
.msg {
  display: flex;
  width: 100%;
}
.msg span {
  padding: 8px 13px;
  border-radius: 16px;
  font-size: .82rem;
  line-height: 1.35;
  max-width: 85%;
}
.msg.bot span {
  text-align: center;
}
.msg.bot span {
  background: var(--beige);
  color: var(--tx);
  border-bottom-left-radius: 4px;
}
.msg.user { justify-content: flex-end }
.msg.user span {
  background: var(--terra);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.chat-sugerencias {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-top: 4px;
  width: 100%;
}
.chat-sugerencias button {
  background: var(--tpale);
  color: var(--terra);
  border: 1px solid rgba(192,112,80,.2);
  border-radius: 10px;
  padding: 7px 8px;
  font-size: .72rem;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: all .2s;
  text-align: center;
  line-height: 1.3;
  width: 100%;
}
.chat-sugerencias button:hover {
  background: var(--terra);
  color: #fff;
  transform: translateY(-1px);
}
.chat-sugerencias button:last-child {
  grid-column: span 2;
}
.chat-input-wrap {
  display: flex;
  gap: 8px;
  padding: 12px 14px;
  border-top: 1px solid var(--beige);
}
.chat-input-wrap input {
  flex: 1;
  background: var(--cream);
  border: 1.5px solid var(--beige);
  border-radius: 20px;
  padding: 9px 13px;
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem;
  outline: none;
  color: var(--tx);
  transition: border-color .3s;
  min-width: 0;
}
.chat-input-wrap input:focus { border-color: var(--terra) }
.chat-input-wrap button {
  background: var(--terra);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  cursor: pointer;
  font-size: .9rem;
  transition: background .3s;
  flex-shrink: 0;
}
.chat-input-wrap button:hover { background: var(--tdeep) }
@media(max-width:400px) {
  #chat-box { width: calc(100vw - 32px); right: 16px }
}
.cp .sfts li::before {
  content: '🤰';
}
.chat-msg p{
    margin:0;
}
.btn-jime {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  margin-left: 6px;
  background: linear-gradient(90deg, #54623F, #C2C995);
  color: #fff;
  text-decoration: none;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  vertical-align: middle;
}
/* =====================================================
   CORREGIR MENÚ SUPERIOR - SHANTI SOMA
===================================================== */

#nav {
    width: 100%;
    padding: 18px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#nav .logo {
    flex-shrink: 0;
}

#nav .nl {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
}

#nav .nl li {
    flex-shrink: 0;
}

#nav .nl a {
    white-space: nowrap;
    display: inline-block;
}

#nav .nl .ncta {
    padding: 10px 18px;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Cuando la pantalla empieza a quedar chica */
@media (max-width: 1150px) {

    #nav {
        padding-left: 25px;
        padding-right: 25px;
    }

    #nav .nl {
        gap: 14px;
    }

    #nav .nl a {
        font-size: .68rem;
    }

    #nav .nl .ncta {
        padding: 9px 14px;
    }
}

/* En pantallas donde ya no entra el menú,
   aparece el botón hamburguesa */
@media (max-width: 900px) {

    #nav {
        padding: 18px 22px;
    }

    #nav .nl {
        display: none;
    }

    #nav .hbg {
        display: flex;
    }
}
#nav {
    position: fixed;
    top: 0px;
    width: 100%;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 64px;
    transition: 0.4s;
}

* {
    box-sizing: border-box;
    margin: 0px;
    padding: 0px;
}
user agent stylesheet
#nav {
    display: block;
    unicode-bidi: isolate;
}
/* BOTÓN */

.btn-video {
    display: block;
    width: fit-content;
    margin: 25px auto;
    padding: 13px 26px;

    background: #54623F;
    color: white;

    border-radius: 30px;
    cursor: pointer;

    font-size: 15px;
    text-align: center;
}


/* OCULTAR CHECKBOX */

#abrir-video {
    display: none;
}


/* VENTANA DEL VIDEO */

.video-modal {
    display: none;

    position: fixed;
    inset: 0;

    background: rgba(0, 0, 0, 0.75);

    z-index: 9999;

    align-items: center;
    justify-content: center;

    padding: 20px;
}


/* MOSTRAR VIDEO AL APRETAR BOTÓN */

#abrir-video:checked ~ .video-modal {
    display: flex;
}


/* CONTENEDOR */

.video-contenedor {
    position: relative;

    width: 90%;
    max-width: 900px;

    background: black;
    border-radius: 15px;
}


/* VIDEO */

.video-contenedor video {
    width: 100%;
    display: block;

    max-height: 80vh;

    border-radius: 15px;
}


/* X */

.cerrar-video {
    position: absolute;

    top: -18px;
    right: -18px;

    width: 42px;
    height: 42px;

    border-radius: 50%;

    background: white;
    color: #54623F;

    font-size: 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    cursor: pointer;

    z-index: 10000;
}

