/* Teepees Mx — estilos del tema. Migrado 1:1 del diseño HTML original,
   con adiciones menores para el panel bilingüe y las páginas legales. */
:root{
  --teal:#058f92;
  --teal-dark:#017276;
  --teal-soft:#e8faf8;
  --pink:#e94178;
  --pink-soft:#fff0f5;
  --ink:#153343;
  --muted:#5e6a72;
  --cream:#fffaf4;
  --line:#e8ded7;
  --shadow:0 10px 30px rgba(28,52,62,.12);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
#promos,#servicios,#temas,#galeria,#contacto{scroll-margin-top:66px}
body{margin:0;background:#fffaf8;color:var(--ink);font-family:Poppins,system-ui,-apple-system,Segoe UI,sans-serif;}
.page{width:85vw;max-width:1600px;min-width:1020px;margin:0 auto;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.03)}
.container{width:min(1360px,calc(100% - 88px));margin:0 auto}
header{height:50px;background:rgba(255,255,255,.96);position:sticky;top:0;z-index:10;border-bottom:1px solid #eee4de;box-shadow:0 2px 12px rgba(0,0,0,.06)}
nav{height:50px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.logo{font-family:'Great Vibes',cursive;color:var(--teal);font-size:34px;line-height:1;letter-spacing:.4px;position:relative;white-space:nowrap}
.logo:after{content:"";display:block;width:108px;height:2px;background:var(--teal);margin-top:4px;border-radius:20px;opacity:.75}
.logo-img{max-height:44px;width:auto;display:block}
.menu{display:flex;gap:24px;align-items:center;font-size:13px;font-weight:500;color:#263a42;flex:1;justify-content:center;min-width:0}
.menu a{color:inherit;text-decoration:none}.menu a:first-child{color:var(--teal);font-weight:800}
.lang-switch{font-size:12px;font-weight:800;color:var(--teal);text-decoration:none;border:1px solid var(--teal);border-radius:999px;padding:6px 12px;white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:11px 19px;font-weight:800;text-decoration:none;white-space:nowrap;box-shadow:0 7px 16px rgba(0,143,146,.22)}
.btn.teal{background:var(--teal);color:#fff}.btn.pink{background:var(--pink);color:#fff}.btn.ghost{background:#fff;color:var(--pink);border:1px solid var(--pink);box-shadow:none}.btn.small{font-size:12px;padding:8px 16px}.wh{font-size:17px}

.hero{min-height:480px;height:auto;padding-bottom:74px;position:relative;overflow:hidden;background:linear-gradient(90deg,#fff 0%,#fff 43%,rgba(255,255,255,.16) 70%), url('../img/hero.jpg') right center/66% 100% no-repeat;}
.hero .copy{padding-top:46px;max-width:575px;margin-left:max(44px,calc((100% - min(1360px,calc(100% - 88px)))/2));margin-right:auto}.eyebrow{font-size:10px;letter-spacing:2.8px;text-transform:uppercase;color:var(--teal);font-weight:700;margin-bottom:5px}.eyebrow:after{content:"━━ ❤";letter-spacing:6px;margin-left:10px;color:var(--teal);opacity:.7}
.title{font-family:'Playfair Display',serif;font-size:64px;line-height:.88;margin:0;color:var(--teal-dark);letter-spacing:-1px}.title span{display:block;font-family:'Great Vibes',cursive;font-size:88px;color:var(--pink);font-weight:400;line-height:.78;margin-top:8px}
.hero p{font-size:15px;line-height:1.5;margin:14px 0 22px;color:#31444c;width:440px}.hero-actions{display:flex;gap:16px;position:relative;z-index:3;flex-wrap:wrap}.hero-feats{position:absolute;left:max(44px,calc((100% - min(1360px,calc(100% - 88px)))/2));bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.94);border-radius:14px 14px 0 0;box-shadow:0 -5px 20px rgba(0,0,0,.08);overflow:hidden;z-index:2}.hero-feats div{width:155px;height:54px;display:flex;gap:10px;align-items:center;justify-content:center;border-right:1px solid #efe5df;font-size:11px;font-weight:600;color:#33454c;line-height:1.15}.hero-feats div:last-child{border-right:0}.hero-feats b{color:var(--pink);font-size:24px;flex:0 0 auto}

.section-title{display:flex;align-items:center;gap:10px;color:var(--teal);font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;justify-content:center;margin:26px auto 12px}.section-title:before,.section-title:after{content:"";height:1px;flex:1;background:#e6deda}.section-title span{color:var(--pink)}
.promos{display:grid;grid-template-columns:2fr 1fr;gap:22px}.promo-main{min-height:330px;border-radius:10px;border:1px solid #e7deda;overflow:hidden;position:relative;background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.92) 42%,rgba(255,255,255,.18) 68%), url('../img/promo-cake.jpg') right center/52% 100% no-repeat;box-shadow:var(--shadow);padding:46px 48px}.label{display:inline-block;background:var(--pink);color:#fff;border-radius:999px;font-size:9px;text-transform:uppercase;font-weight:800;padding:6px 12px;margin-bottom:10px}.promo-main h2{font-family:'Playfair Display',serif;color:var(--teal-dark);font-size:40px;line-height:.95;margin:0}.promo-main h2 span{display:block;color:var(--pink)}.promo-main p{font-size:13px;width:300px;color:#3a4d55}.mini-list{font-size:12px;color:#43555c;line-height:2.0;margin-bottom:12px}.mini-list i{font-style:normal;color:var(--teal);font-weight:800;margin-right:8px}.side-promos{display:grid;gap:10px}.side-card{border:1px solid #e7deda;border-radius:10px;padding:24px 24px;min-height:154px;position:relative;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.side-card.weekend{background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.9) 55%,transparent),url('../img/weekend.jpg') right/52% 100% no-repeat}.side-card.ref{background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.86) 55%,transparent),url('../img/referidos.jpg') right/56% 100% no-repeat}.side-card small{color:var(--pink);font-weight:800;text-transform:uppercase;font-size:9px}.side-card h3{margin:2px 0 4px;color:var(--teal-dark);font-size:26px;line-height:.9}.side-card h3 b{font-size:37px}.side-card p{font-size:10.5px;width:150px;color:#46565c;margin:0 0 8px}

.services{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.service{border:1px solid #eadfda;border-radius:12px;min-height:128px;text-align:center;background:#fff;padding:16px 10px;box-shadow:0 7px 18px rgba(20,40,50,.05)}.svc-icon{height:54px;margin-bottom:5px;color:var(--pink);font-size:36px;line-height:1;display:flex;align-items:center;justify-content:center}.svc-icon img{height:54px;width:54px;object-fit:contain}.service h4{margin:0 0 5px;color:var(--teal-dark);font-size:14px;line-height:1.1}.service p{margin:0;color:#626e73;font-size:10.2px;line-height:1.35}
.topics{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.topic{border:1px solid #eadfda;border-radius:8px;overflow:hidden;background:#fff;text-align:center;color:var(--pink);font-weight:800;font-size:12px;padding-bottom:9px;box-shadow:0 6px 14px rgba(20,40,50,.06)}.topic img{width:100%;height:92px;object-fit:cover;display:block;margin-bottom:8px}.center{text-align:center;margin:14px 0 18px}
.benefits{border-top:1px solid #e6deda;border-bottom:1px solid #e6deda;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:12px}.benefit{min-height:96px;padding:18px 16px;display:flex;align-items:center;gap:14px;border-right:1px solid #e6deda}.benefit:last-child{border-right:0}.benefit .ico{flex:0 0 auto;line-height:0}.benefit .ico img{width:56px;height:56px;object-fit:contain}.benefit b{display:block;color:var(--teal-dark);font-size:13px}.benefit span{font-size:10.5px;color:#616d72;line-height:1.25;display:block}

.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.test{border:1px solid #eadfda;border-radius:14px;padding:18px 20px;background:#fff;box-shadow:0 6px 14px rgba(20,40,50,.05);display:grid;grid-template-columns:46px 1fr;gap:12px}.avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#d6a987,#fff0e6);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.test b{font-size:12px}.stars{color:#f7b400;font-size:13px}.test p{grid-column:2;margin:4px 0 0;font-size:10.5px;color:#59666c;line-height:1.35}.dots{text-align:center;color:#c9c9c9;letter-spacing:5px;margin:12px}.dots span{color:var(--pink)}
.instagram{display:flex;align-items:center;gap:14px}.instagram img{height:39px;object-fit:cover;flex:1;border-radius:4px;border:1px solid #eadfda}.instagram .btn{box-shadow:none;border:1px solid #f0b4c8;background:#fff4f8;color:var(--pink);flex:0 0 auto}
.insta-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;flex:1}.insta-grid a{display:block;line-height:0}.insta-grid img{width:100%;aspect-ratio:1;height:auto;object-fit:cover;border-radius:4px;border:1px solid #eadfda;transition:transform .25s ease}.insta-grid a:hover img{transform:scale(1.04)}
.cta{margin:26px auto 8px;background:linear-gradient(90deg,#078b8f,#13a7a8);min-height:82px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative;padding:14px 34px;color:#fff}.cta h2{font-family:'Playfair Display',serif;font-size:35px;line-height:.95;margin:0}.cta p{font-size:12px;margin:4px 0 0}.cta .phone{font-size:37px;font-weight:800;display:flex;align-items:center;gap:12px}.cta .phone img{width:58px;height:58px;border-radius:50%;flex:0 0 auto}.cta:after{content:"";position:absolute;right:0;top:0;bottom:0;width:210px;background:url('../img/bottom_balloon.jpg') right/cover no-repeat;opacity:.8}
footer{background:#fff6f0;border-top:1px solid #eadfda;padding-top:18px}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1.2fr 2fr 1.4fr;gap:28px;padding-bottom:18px}.foot-logo{font-family:'Great Vibes',cursive;color:var(--teal);font-size:34px}.foot p,.foot a,.foot li{font-size:10.5px;color:#56656b;text-decoration:none;line-height:1.6}.foot ul{margin:0;padding:0;list-style:none}.foot h4{margin:0 0 7px;color:var(--teal-dark);font-size:13px}.social{display:flex;gap:10px;color:var(--pink);font-weight:800}.stamp{width:100px;height:100px;border-radius:50%;border:1px solid #d5c8c0;margin:auto;display:grid;place-items:center;color:#9a8d85;font-size:10px;text-align:center}.copyright{background:var(--pink);color:#fff;text-align:center;font-size:10px;font-weight:600;padding:8px}
.copyright a{color:#fff;text-decoration:underline}.legal-links{margin-left:4px;opacity:.9}
@media(max-width:1100px){.page{width:100%;min-width:0}.container{width:min(94%,930px)}.menu{display:none}.hero{min-height:0;height:auto;padding-bottom:0;background-position:right top;background-size:100%;padding-top:240px}.hero .copy{width:auto;padding:24px 0;margin-left:0}.title{font-size:40px}.title span{font-size:58px}.hero-feats{position:static;margin-top:20px;grid-template-columns:repeat(2,1fr)}.promos,.services,.topics,.benefits,.testimonials,.foot-grid{grid-template-columns:1fr 1fr}.promo-main{grid-column:1/-1}.cta{flex-direction:column;align-items:flex-start}.cta .phone{font-size:28px}.foot-grid{gap:18px}.instagram{flex-direction:column}.instagram img{width:100%;height:auto}.insta-grid{grid-template-columns:repeat(3,1fr);width:100%}}
@media(max-width:520px){.promos,.services,.topics,.benefits,.testimonials,.foot-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column;align-items:flex-start}.hero-feats div{width:auto}.title{font-size:36px}.title span{font-size:52px}.promo-main{padding:24px 22px;background-size:70% auto;background-position:right bottom}.benefit{border-right:0;border-bottom:1px solid #e6deda}.benefit:last-child{border-bottom:0}}

/* ── Páginas nuevas (legales, 404): no existían en el diseño original,
      se estilizan con la misma paleta y tipografía del sitio. ── */
.page-hero{padding:44px 0 8px;text-align:center}
.page-hero-title{font-family:'Playfair Display',serif;color:var(--teal-dark);font-size:38px;margin:0 0 6px;letter-spacing:-.5px}
.page-prose{padding:12px 0 40px;max-width:820px;margin:0 auto;color:#3a4d55;font-size:14px;line-height:1.7}
.page-prose h2{color:var(--teal-dark);font-family:'Playfair Display',serif;font-size:24px;margin:28px 0 10px}
.page-prose p{margin:0 0 14px}
.page-prose ul{padding-left:20px}

/* ── Efecto al hacer scroll: las secciones aparecen la primera vez que
      entran en pantalla y se quedan visibles al subir de nuevo. ── */
[data-reveal]{opacity:.001;transform:translateY(10px);transition:opacity .35s ease-out,transform .35s ease-out}
[data-reveal].is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){[data-reveal]{transition:none;opacity:1;transform:none}}
