:root{
  --ink:#17181c; --muted:#5c6066; --bg:#ffffff; --card:#ffffff;
  --primary:#d95b3f; --primary-dark:#b8432a; --teal:#147d74; --teal-dark:#0f645c;
  --soft:#f6f7f8; --line:#e7e7ea; --shop:#f6f7f8;
  --green:var(--teal); --green-soft:var(--teal-dark); --gold:var(--primary); --gold-soft:#f6d7cc;
  --accent-soft:#fbeae4; --teal-soft:#e2efed;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Segoe UI',system-ui,-apple-system,'Helvetica Neue',sans-serif;color:var(--ink);background:var(--bg);line-height:1.65}
.sans{font-family:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
h1,h2,h3{font-family:'Sora','Segoe UI',sans-serif;font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(1.6rem,3vw,2.2rem);color:var(--ink);margin-bottom:10px}
.sub{color:var(--muted);margin-bottom:34px;max-width:680px;font-size:1.02rem}
section{padding:72px 0}

header{position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:10}
nav{display:flex;align-items:center;justify-content:space-between;padding:12px 0}
.logo-link{display:flex;align-items:center;gap:11px;text-decoration:none}
.logo-icon{flex:0 0 auto;display:block}
.logo-text{font-family:'Sora',sans-serif;font-weight:800;font-size:1.18rem;letter-spacing:-.02em;color:var(--ink);line-height:1;display:flex;flex-direction:column}
.logo-text em{font-style:normal;color:var(--primary)}
.logo-text small{font-weight:600;font-size:.55rem;letter-spacing:.28em;color:var(--teal);margin-top:5px}
@media(max-width:560px){.logo-text small{display:none}.logo-text{font-size:1.02rem}}
nav ul{display:flex;gap:24px;list-style:none}
nav a.nl{text-decoration:none;color:var(--ink);font-size:.94rem;font-weight:600}
nav a.nl:hover,nav a.nl.active{color:var(--primary)}
@media(max-width:760px){nav ul{gap:12px} nav a.nl{font-size:.78rem}}

.hero{padding:96px 0 72px;background:#ffffff}
.page-hero{padding:64px 0 40px;background:#ffffff;border-bottom:1px solid var(--line)}
.kicker{color:var(--primary);text-transform:uppercase;letter-spacing:.22em;font-size:.78rem;font-weight:800}
.hero h1{font-size:clamp(2.4rem,6vw,4rem);margin:18px 0 20px;line-height:1.06;max-width:850px}
.page-hero h1{font-size:clamp(1.8rem,4vw,2.7rem);margin:14px 0 12px;line-height:1.12}
.hero p,.page-hero p{max-width:660px;margin:0 0 30px;color:var(--muted);font-size:1.12rem}
.hero .center,.page-hero .center{text-align:center}
.hero .center p,.page-hero .center p{margin-left:auto;margin-right:auto}

.btn{display:inline-block;padding:15px 30px;border-radius:8px;text-decoration:none;font-weight:700;font-size:.98rem;transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(23,24,28,.14)}
.btn-primary{background:var(--teal);color:#fff}
.btn-gold{background:var(--primary);color:#fff}
.btn-ghost{border:2px solid var(--ink);color:var(--ink);margin-left:12px}
.btn-ghost:hover{background:var(--ink);color:#fff}

.stats{background:var(--ink);color:#fff;padding:26px 0}
.stats .wrap{display:flex;flex-wrap:wrap;gap:18px 44px;justify-content:center;align-items:center}
.stat{font-family:'Sora',sans-serif;font-size:.95rem;font-weight:600;color:#d8d9dd}
.stat b{color:#fff;font-weight:800}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:30px}
.card h3{margin:12px 0 8px;font-size:1.2rem}
.card p{color:var(--muted);font-size:.96rem}
.card ul{margin:12px 0 16px 18px;color:var(--muted);font-size:.92rem}
.card li{margin-bottom:5px}
.card a.more{color:var(--primary);font-weight:700;font-size:.94rem;text-decoration:none}
.card a.more:hover{text-decoration:underline}
.emoji{font-size:1.7rem}

.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:6px 0 10px}
.chip{display:inline-block;padding:9px 18px;border-radius:999px;border:2px solid var(--primary);color:var(--primary);text-decoration:none;font-size:.86rem;font-weight:700;background:#fff}
.chip:hover{background:var(--primary);color:#fff}
.tagline{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;padding:3px 10px;border-radius:999px;margin-right:6px}
.t-comfort{background:var(--teal-soft);color:var(--teal)}
.t-basic{background:var(--accent-soft);color:var(--primary-dark)}
.t-free{background:var(--primary);color:#fff}

.shop-block{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.product{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}
.product .tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--primary);font-weight:800}
.product h3{margin:8px 0 6px;font-size:1.12rem}
.product p{color:var(--muted);font-size:.93rem;flex:1}
.price-row{display:flex;align-items:center;justify-content:space-between;margin-top:18px}
.price{font-family:'Sora',sans-serif;font-size:1.35rem;font-weight:800}
.buy{padding:10px 22px;border-radius:8px;background:var(--primary);color:#fff;text-decoration:none;font-size:.9rem;font-weight:700}
.buy:hover{background:var(--primary-dark)}
.bundle{grid-column:1/-1;background:var(--teal);color:#fff;border:none}
.bundle h3,.bundle .price{color:#fff}
.bundle p{color:#d3e7e4}
.bundle .buy{background:#fff;color:var(--teal)}
.cluster-head{display:flex;align-items:baseline;gap:12px;margin:46px 0 6px}
.cluster-head .emoji{font-size:1.4rem}
.cluster-head h2{margin:0;font-size:1.4rem}
.cluster-sub{color:var(--muted);font-size:.96rem;margin-bottom:22px;max-width:680px}

.filters{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin-top:28px}
.fgroup{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.flabel{font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--muted);min-width:92px}
.chip.f,.chip.clear{border-width:2px;padding:6px 15px;font-size:.83rem;cursor:pointer}
.chip.f.on{background:var(--primary);color:#fff}
.chip.clear{border-color:var(--muted);color:var(--muted)}
.chip.clear:hover{background:var(--muted);color:#fff}
.hidden{display:none!important}
.noresult{border:2px dashed var(--primary);background:var(--accent-soft)}

.videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.video{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.video .frame{position:relative;padding-top:56.25%}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video p{padding:14px 16px;font-size:.93rem;color:var(--muted)}

.consult{display:flex;gap:38px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:16px;padding:40px}
.portrait{position:relative;width:190px;height:190px;border-radius:50%;flex:0 0 auto;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-size:3.2rem;border:4px solid var(--accent-soft);overflow:hidden}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
.consult ul{margin:14px 0 20px 18px;color:var(--muted);font-size:.95rem}
.consult li{margin-bottom:6px}
.consult .flex1{flex:1;min-width:280px}

.banner{background:var(--teal);color:#fff;border-radius:16px;padding:44px 40px;display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between}
.banner h2{color:#fff}
.banner p{color:#d3e7e4;max-width:560px}
.banner .btn-gold{background:#fff;color:var(--teal)}
.banner.coral{background:var(--primary)}
.banner.coral p{color:#fbe0d8}
.banner.coral .btn-gold{background:#fff;color:var(--primary)}
.banner.ir{background:var(--ink)}
.banner.ir .kicker{color:#f0b9a4}
.banner.ir p{color:#c9cacd}

.steps{display:grid;gap:22px;max-width:820px}
.step{display:flex;gap:20px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}
.step-num{flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:var(--primary);color:#fff;font-weight:800;font-size:1.25rem;display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif}
.step h3{margin:2px 0 4px;font-size:1.08rem}
.step p{color:var(--muted);font-size:.94rem}

/* Servicios */
.svc{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}
.svc .scope{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;padding:3px 10px;border-radius:999px;align-self:flex-start}
.scope.int{background:var(--ink);color:#fff}
.scope.at{background:var(--teal-soft);color:var(--teal)}
.svc h3{margin:12px 0 6px;font-size:1.12rem}
.svc p{color:var(--muted);font-size:.93rem;flex:1}
.faq{max-width:780px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:10px}
.faq summary{font-weight:700;cursor:pointer}
.faq p{color:var(--muted);font-size:.93rem;margin-top:10px}
.hero-art{max-width:760px;width:100%;margin:44px auto 0;display:block}

footer{border-top:1px solid var(--line);padding:38px 0;text-align:center;color:var(--muted);font-size:.9rem;background:var(--soft)}
.social{margin-bottom:12px}
.social a{margin:0 10px;color:var(--primary);text-decoration:underline;font-weight:700}
.note{font-size:.8rem;color:#9a9ca1;margin-top:8px}

/* dropdown servicios */
.dd{position:relative}
.ddm{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;min-width:280px;box-shadow:0 12px 32px rgba(0,0,0,.14);list-style:none;z-index:30}
.dd:hover .ddm,.dd:focus-within .ddm{display:block}
.ddm a{display:block;padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:600}
.ddm a:hover{background:var(--soft);color:var(--primary)}
.flag{vertical-align:-2px;border-radius:2px}
.inc{list-style:none;margin:16px 0 0}
.inc li{padding:8px 0 8px 30px;position:relative;color:var(--muted);font-size:.95rem;border-bottom:1px solid var(--soft)}
.inc li:before{content:"✓";position:absolute;left:2px;color:var(--teal);font-weight:800}

/* blog */
.post{max-width:760px;margin:0 auto}
.post h2{margin-top:38px}
.post p{color:#3f4147;margin:14px 0;font-size:1.02rem;line-height:1.75}
.post ul{margin:14px 0 14px 22px;color:#3f4147;line-height:1.7}
.post .meta{color:var(--muted);font-size:.88rem;margin-bottom:8px}
.bcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s}
.bcard:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,.1)}
.bcard .bimg{height:150px;display:flex;align-items:center;justify-content:center;font-size:3rem}
.bcard .bbody{padding:22px 24px}
.bcard h3{font-size:1.15rem;margin-bottom:8px}
.bcard p{color:var(--muted);font-size:.93rem}

/* Hero photo strip */
.hero-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:42px auto 0;max-width:980px}
.hero-photos img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;box-shadow:0 12px 32px rgba(38,34,29,.14)}
.hero-photos img:nth-child(2){transform:translateY(14px)}
@media(max-width:720px){.hero-photos{grid-template-columns:1fr 1fr;gap:10px}.hero-photos img:nth-child(2){transform:none}.hero-photos img:last-child{display:none}}

/* Photo bands en landings */
.photo-band{max-width:1080px;margin:30px auto 0;padding:0 22px}
.photo-band img{width:100%;max-height:400px;object-fit:cover;border-radius:16px;box-shadow:0 12px 32px rgba(38,34,29,.14);display:block}

/* Fotos en cards de planes */
.product .pimg{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;margin-bottom:14px;display:block}
