/*
Theme Name: 1mas3
Theme URI: https://1mas3.com
Author: 1mas3
Description: Theme a medida para 1mas3 — diseño web, SEO y redes sociales. Sin builders, sin dependencias, optimizado para velocidad y SEO.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: 1mas3
*/

:root{
  --ink:#000000;
  --ink-2:#131319;
  --paper:#F3F1EC;
  --paper-dim:rgba(243,241,236,0.62);
  --paper-faint:rgba(243,241,236,0.38);
  --magenta:#FE0062;
  --magenta-2:#FE0062;
  --line:rgba(243,241,236,0.14);
  --line-strong:rgba(243,241,236,0.32);
  --corner:14px;
  --mono:'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:'Poppins', system-ui, sans-serif;
  overflow-x:hidden;
  margin:0;
}
a{color:inherit;}
img{max-width:100%;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-delay:0ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; transition-delay:0ms !important;}
}

@keyframes rise{
  from{opacity:0; transform:translateY(26px);}
  to{opacity:1; transform:translateY(0);}
}
.reveal{opacity:0; animation:rise .8s cubic-bezier(.16,.8,.24,1) both;}
.d1{animation-delay:.05s;} .d2{animation-delay:.14s;} .d3{animation-delay:.24s;}
.d4{animation-delay:.36s;} .d5{animation-delay:.48s;} .d6{animation-delay:.58s;}
.d7{animation-delay:.68s;} .d8{animation-delay:.8s;}
h1 .reveal{display:block;}

.ru{opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.16,.8,.24,1), transform .7s cubic-bezier(.16,.8,.24,1);}
.ru.in{opacity:1; transform:translateY(0);}

/* ---- nav (única, en toda la web) ---- */
nav{
  position:sticky; top:0; z-index:50;
  background:var(--ink);
  display:flex; align-items:center; justify-content:space-between;
  padding:20px clamp(20px,5vw,64px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex; align-items:center; text-decoration:none;}
.mark{display:block; width:108px;}
.mark img{width:100%; height:auto; display:block;}

.back{font-size:13px; font-weight:600; color:var(--paper-dim); text-decoration:none; display:flex; align-items:center; gap:6px; transition:color .2s ease;}
.back:hover{color:var(--paper);}
.back-vertical{
  position:absolute; left:0; top:76px;
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-size:12px; font-weight:600; letter-spacing:.04em; color:var(--paper-dim);
  text-decoration:none; white-space:nowrap; transition:color .2s ease;
}
.back-vertical:hover{color:var(--paper);}

.navicons{display:flex; align-items:center; gap:20px;}
.iconbtn{
  background:none; border:none; padding:8px; margin:0;
  color:var(--paper); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:opacity .2s ease, transform .2s ease;
}
.iconbtn:hover{opacity:.7;}
.iconbtn svg{width:27px; height:27px; display:block;}
.dotgrid{display:grid; grid-template-columns:repeat(3,7px); gap:6px;}
.dotgrid span{display:block; width:7px; height:7px; border-radius:50%; background:var(--paper);}

/* ---- menú overlay ---- */
.menu-overlay{
  position:fixed; inset:0; z-index:100;
  background:var(--magenta);
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  gap:8px;
  padding:0 clamp(24px,8vw,110px);
  clip-path:circle(0px at calc(100% - 58px) 52px);
  transition:clip-path .75s cubic-bezier(.76,0,.24,1);
  pointer-events:none;
}
.menu-overlay.open{clip-path:circle(150% at calc(100% - 58px) 52px); pointer-events:auto;}
.menu-close{
  position:absolute; top:26px; right:clamp(20px,5vw,64px);
  background:none; border:none; color:var(--ink); cursor:pointer; padding:10px;
  opacity:0; transition:opacity .3s ease .35s, transform .3s ease .35s;
  transform:rotate(-45deg);
}
.menu-overlay.open .menu-close{opacity:1; transform:rotate(0deg);}
.menu-close svg{width:26px; height:26px; display:block;}
.menu-links{list-style:none; margin:0; padding:0;}
.menu-links li{overflow:hidden;}
.menu-links a{
  display:inline-block;
  font-family:'Poppins',sans-serif; font-weight:800;
  font-size:clamp(30px, 6.4vw, 68px);
  line-height:1.18;
  padding-bottom:0.12em;
  letter-spacing:-0.02em;
  color:var(--ink);
  text-decoration:none;
  transform:translateY(115%);
  transition:transform .65s cubic-bezier(.16,.8,.24,1), color .25s ease;
  transition-delay:calc(var(--i) * 0.07s);
}
.menu-overlay.open .menu-links a{transform:translateY(0);}
.menu-links a:hover{color:var(--paper);}
.menu-links a.current{color:var(--paper);}
.menu-idx{
  display:inline-block; margin-right:16px;
  font-family:var(--mono); font-weight:500; font-size:14px; letter-spacing:.02em;
  color:var(--ink); opacity:.5; vertical-align:middle;
}
.menu-cta{
  margin-top:30px;
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Poppins',sans-serif; font-weight:700; font-size:17px;
  color:var(--ink); text-decoration:none;
  border-bottom:2px solid var(--ink);
  padding-bottom:5px;
  opacity:0; transform:translateY(18px);
  transition:opacity .5s ease .48s, transform .5s ease .48s;
}
.menu-overlay.open .menu-cta{opacity:1; transform:translateY(0);}
.menu-cta .arrow{width:.6em; height:.6em; fill:var(--paper); flex:none; transition:transform .3s ease;}
.menu-cta:hover .arrow{transform:translateX(4px);}
.menu-meta{
  margin-top:60px;
  font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink); opacity:.5;
}

/* ---- buscador ---- */
.search-overlay{
  position:fixed; top:0; left:0; right:0; z-index:110;
  background:var(--ink-2);
  border-bottom:1px solid var(--line);
  padding:34px clamp(20px,5vw,64px);
  transform:translateY(-100%);
  transition:transform .5s cubic-bezier(.76,0,.24,1);
}
.search-overlay.open{transform:translateY(0);}
.search-form{display:flex; align-items:center; gap:18px; max-width:960px; margin:0 auto;}
.search-form svg{width:24px; height:24px; color:var(--paper-faint); flex:none;}
.search-input{
  flex:1; min-width:0;
  background:none; border:none; border-bottom:2px solid var(--line);
  color:var(--paper);
  font-family:'Poppins',sans-serif; font-weight:600;
  font-size:clamp(20px,3.2vw,32px);
  padding:8px 0;
  outline:none;
}
.search-input::placeholder{color:var(--paper-faint);}
.search-input:focus{border-bottom-color:var(--magenta);}
.search-close{background:none; border:none; color:var(--paper); cursor:pointer; padding:8px; flex:none; transition:opacity .2s ease;}
.search-close:hover{opacity:.7;}
.search-close svg{width:22px; height:22px; display:block;}

/* ---- section divider ---- */
.section-divider{position:relative; height:1px; background:var(--line); margin:0 clamp(20px,5vw,64px);}
.section-divider .mark{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:24px; height:24px; background:var(--ink); display:flex; align-items:center; justify-content:center;}
.section-divider .mark svg{width:12px; height:12px; fill:var(--line-strong);}

/* ---- hero (portada) ---- */
.hero{position:relative; min-height:100vh; display:flex; flex-direction:column; isolation:isolate; background:var(--ink);}
.mesh{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(to right, rgba(243,241,236,0.16) 1px, transparent 1px), linear-gradient(to bottom, rgba(243,241,236,0.16) 1px, transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(ellipse 95% 90% at 50% 32%, #000 55%, transparent 100%);
  mask-image:radial-gradient(ellipse 95% 90% at 50% 32%, #000 55%, transparent 100%);
}
.grain{position:absolute; inset:0; z-index:1; pointer-events:none; background-image:radial-gradient(rgba(243,241,236,0.05) 1px, transparent 1px); background-size:3px 3px; mix-blend-mode:overlay; opacity:.5;}
.vignette{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 68%, var(--ink) 100%), radial-gradient(120% 90% at 50% 0%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.55) 100%);
}
.content{position:relative; z-index:3; flex:1; display:flex; flex-direction:row; align-items:flex-start; justify-content:flex-start; gap:60px; padding:64px clamp(20px,5vw,64px) 64px;}
.content-main{flex:1 1 auto; min-width:0; max-width:740px;}
@media (max-width:900px){ .content{flex-direction:column; align-items:stretch;} .content-cards{display:none;} }
.content-cards{
  width:190px; flex:none; margin-left:auto; height:min(440px,55vh); position:relative; overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 36px, #000 calc(100% - 36px), transparent 100%);
  mask-image:linear-gradient(to bottom, transparent 0, #000 36px, #000 calc(100% - 36px), transparent 100%);
}
.content-cards .vtrack{display:flex; flex-direction:column; gap:14px; width:100%; animation:vscroll2 26s linear infinite;}
.content-cards:hover .vtrack{animation-play-state:paused;}
@keyframes vscroll2{ from{transform:translateY(0);} to{transform:translateY(-50%);} }
.content-cards .card{width:100%;}
.plaque{display:flex; align-items:center; gap:14px; margin-bottom:28px; width:fit-content;}
.plaque .idx{font-family:var(--mono); font-weight:500; font-size:12px; letter-spacing:.06em; color:var(--magenta-2); flex:none;}
.plaque .bar{width:26px; height:1px; background:var(--line-strong); flex:none;}
.plaque .label{font-family:var(--mono); font-weight:500; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--paper-dim);}

h1{font-family:'Poppins', sans-serif; font-weight:800; font-size:clamp(38px, 6.6vw, 88px); line-height:1.02; letter-spacing:-0.02em; margin:0 0 26px; max-width:15ch; text-wrap:balance; color:var(--paper);}
h1 em, h2 em{font-style:normal; color:var(--magenta);}
.lede{font-size:clamp(15.5px,1.6vw,18.5px); color:var(--paper-dim); max-width:100%; margin:0 0 40px; line-height:1.6;}
.row{display:flex; align-items:center; gap:34px; flex-wrap:wrap;}

.cta{
  position:relative; display:inline-flex; align-items:center; gap:12px;
  padding:14px 30px; border-radius:0; background:var(--paper); color:var(--ink);
  font-weight:700; font-size:15.5px; text-decoration:none; isolation:isolate; overflow:hidden;
  transition:transform .18s ease; border:none; cursor:pointer; font-family:'Poppins',sans-serif;
}
.cta .fill{position:absolute; inset:0; z-index:-1; background:var(--magenta); transform:translateY(102%); transition:transform .45s cubic-bezier(.65,0,.35,1);}
.cta:hover .fill{transform:translateY(0%);}
.cta:hover{color:var(--paper);}
.cta .arrow{width:.55em; height:.55em; fill:var(--magenta); flex:none; transition:transform .35s cubic-bezier(.65,0,.35,1), fill .25s ease;}
.cta:hover .arrow{transform:translateX(5px); fill:var(--paper);}

/* cta primaria del hero: debe dominar sobre el dato de al lado */
.row .cta{padding:18px 38px; font-size:16.5px; background:var(--magenta); color:var(--paper); box-shadow:0 10px 30px rgba(254,0,98,0.25);}
.row .cta .fill{background:var(--paper);}
.row .cta:hover{color:var(--ink);}
.row .cta .arrow{fill:var(--paper);}
.row .cta:hover .arrow{fill:var(--ink);}

.proof{display:flex; align-items:center; gap:18px;}
.proof .divider{width:1px; align-self:stretch; background:var(--line); flex:none;}
.proof .n{font-family:'Poppins',sans-serif; font-weight:800; font-size:36px; color:var(--paper); font-variant-numeric:tabular-nums; line-height:1;}
.proof .n-plus{font-family:'Poppins',sans-serif; font-weight:800; font-size:36px; color:var(--magenta-2); line-height:1;}
.proof .t{font-size:14px; color:var(--paper-dim); max-width:28ch; line-height:1.5;}

.card{flex:0 0 auto; width:150px; height:150px; border-radius:0; display:flex; flex-direction:column; justify-content:space-between; padding:16px; transition:transform .35s cubic-bezier(.2,.8,.2,1);}
.content-cards .card:hover{transform:translateX(-4px) scale(1.02);}
.card .big{font-family:'Poppins',sans-serif; font-weight:800; font-size:26px; letter-spacing:-0.02em;}
.card .cap{font-family:var(--mono); font-size:10.5px; font-weight:500; letter-spacing:.03em; text-transform:uppercase; opacity:.8; line-height:1.35; max-width:15ch;}
.card.ink{background:var(--ink-2); color:var(--paper); border:1px solid var(--line);}
.card.magenta{background:var(--magenta); color:var(--ink);}
.card.paper{background:var(--paper); color:var(--ink);}
.card.outline{background:transparent; border:1.5px dashed var(--line); color:var(--paper);}
.card.outline .big{color:var(--magenta); font-size:36px;}

/* ---- secciones ---- */
.section{position:relative; padding:84px clamp(20px,5vw,64px);}
.section-head{max-width:640px; margin-bottom:44px;}
.section h2{font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(32px,5vw,60px); line-height:1.06; letter-spacing:-0.02em; color:var(--paper); margin:0; text-wrap:balance;}
.section .desc{color:var(--paper-dim); font-size:16px; max-width:56ch; margin:18px 0 0; line-height:1.65;}

/* ---- HUD scroll ---- */
.hud{
  position:fixed; left:28px; bottom:28px; z-index:90;
  display:flex; align-items:baseline; gap:9px;
  font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--paper-faint);
  pointer-events:none; opacity:0; transform:translateY(6px);
  transition:opacity .4s ease, transform .4s ease;
}
.hud.show{opacity:1; transform:translateY(0);}
.hud-idx{color:var(--magenta-2); font-weight:500;}
.hud-sep{opacity:.5;}
.hud-label{text-transform:uppercase; padding-left:9px; border-left:1px solid var(--line-strong);}
@media (max-width:820px){ .hud{display:none;} }

/* ---- servicios ---- */
.services-list{border-top:1px solid var(--line);}
.service-row{display:grid; grid-template-columns:48px 1.1fr 1fr; gap:28px; align-items:start; padding:28px 0; border-bottom:1px solid var(--line);}
@media (max-width:760px){ .service-row{grid-template-columns:32px 1fr;} .service-row .service-desc{grid-column:2; margin-top:2px;} }
.service-row .plus-mark{width:20px; height:20px; fill:var(--magenta); margin-top:6px; transform-origin:center;}
@keyframes plusConverge{0%{transform:translateX(-38px); opacity:0;} 55%{transform:translateX(0) scale(1); opacity:1;} 72%{transform:translateX(0) scale(1.7);} 100%{transform:translateX(0) scale(1);}}
@keyframes titleConverge{0%{transform:translateX(38px); opacity:0;} 55%, 100%{transform:translateX(0); opacity:1;}}
.service-row.in .plus-mark{animation:plusConverge .9s cubic-bezier(.16,.8,.24,1) both;}
.service-row.in h3{animation:titleConverge .9s cubic-bezier(.16,.8,.24,1) both;}
@media (prefers-reduced-motion: reduce){ .service-row.in .plus-mark, .service-row.in h3{animation:none;} }
.service-row h3{font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(21px,2.6vw,30px); letter-spacing:-0.01em; margin:0; color:var(--paper);}
.service-row .service-desc{color:var(--paper-dim); font-size:15px; line-height:1.7; margin:0; align-self:center;}

.stat-line{margin-top:40px; padding-top:36px; display:flex; flex-wrap:wrap; align-items:flex-start; gap:16px 44px;}
.stat-num{font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(64px,9vw,108px); line-height:.88; color:var(--paper); flex:none; font-variant-numeric:tabular-nums;}
.stat-num span{color:var(--magenta);}
.stat-line p{color:var(--paper-dim); font-size:16px; line-height:1.7; max-width:52ch; margin:0; flex:1 1 320px;}

/* ---- planes ---- */
.plans-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; max-width:1140px; margin:0;}
@media (max-width:900px){
  .plans-grid{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:16px; padding:4px 4px 16px; margin:0 -4px; -webkit-overflow-scrolling:touch;}
  .plan-card{flex:0 0 82%; scroll-snap-align:center;}
}
@media (max-width:480px){ .plan-card{flex-basis:88%;} }
.plan-card{border:1px solid var(--line); border-radius:0; padding:28px 22px; background:var(--ink-2); position:relative; overflow:hidden; display:flex; flex-direction:column; aspect-ratio:1/1;}
.plan-card.is-featured{border-color:var(--magenta);}
.plan-decor{position:absolute; top:14px; right:14px; width:44px; height:44px; fill:var(--magenta); opacity:.12; pointer-events:none;}
.plan-card .cta{position:relative; z-index:1; align-self:flex-start; padding:11px 22px; font-size:14px;}
.plan-badge{position:absolute; top:18px; right:18px; font-family:var(--mono); font-size:9.5px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); background:var(--magenta-2); padding:4px 10px; border-radius:0;}
.plan-tag{display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-weight:500; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--magenta-2); margin-bottom:10px; position:relative; z-index:1;}
.plan-tag svg{width:.8em; height:.8em; fill:var(--magenta-2);}
.plan-price{font-family:'Poppins',sans-serif; font-weight:600; font-size:14px; color:var(--paper-dim); margin-bottom:18px; position:relative; z-index:1;}
.plan-price span{font-weight:800; font-size:30px; color:var(--paper); letter-spacing:-0.02em;}
.plan-features{list-style:none; margin:0 0 22px; padding:0; display:flex; flex-direction:column; gap:10px; flex:1; position:relative; z-index:1;}
.plan-features li{display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--paper-dim); font-weight:500;}
.plan-features li::before{
  content:""; width:10px; height:10px; flex:none; background:var(--magenta);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 0H7V3H10V7H7V10H3V7H0V3H3Z'/%3E%3C/svg%3E") center/100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 0H7V3H10V7H7V10H3V7H0V3H3Z'/%3E%3C/svg%3E") center/100% no-repeat;
}

/* ---- portafolio ---- */
.portfolio-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media (max-width:900px){ .portfolio-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .portfolio-grid{grid-template-columns:1fr;} }
.portfolio-item{display:block; text-decoration:none; color:inherit; border:1px solid var(--line); background:var(--ink-2); overflow:hidden; transition:border-color .25s ease, transform .25s ease;}
.portfolio-item:hover{border-color:var(--magenta); transform:translateY(-4px);}
.portfolio-media{display:flex; align-items:center; justify-content:center; aspect-ratio:4/3; overflow:hidden; background:var(--ink);}
.portfolio-media img{width:100%; height:100%; object-fit:contain; display:block; transition:transform .5s cubic-bezier(.16,.8,.24,1);}
.portfolio-item:hover .portfolio-media img{transform:scale(1.05);}
.portfolio-info{padding:22px 24px;}
.portfolio-tag{display:inline-block; font-family:var(--mono); font-size:10.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--magenta-2); margin-bottom:10px;}
.portfolio-info h3{font-family:'Poppins',sans-serif; font-weight:800; font-size:19px; margin:0 0 8px; letter-spacing:-0.01em; color:var(--paper);}
.portfolio-info p{font-size:13.5px; color:var(--paper-dim); line-height:1.6; margin:0;}

/* ---- clientes ---- */
.clients-marquee{position:relative; -webkit-mask-image:linear-gradient(to right, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%); mask-image:linear-gradient(to right, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%); overflow:hidden;}
.clients-track{display:flex; align-items:center; gap:16px; width:max-content; animation:clientsScroll 70s linear infinite;}
.clients-marquee:hover .clients-track{animation-play-state:paused;}
@keyframes clientsScroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
.client-slot{width:160px; height:100px; flex:none; border:1px solid var(--line); border-radius:0; display:flex; align-items:center; justify-content:center; padding:18px;}
.client-slot img{max-width:100%; max-height:100%; object-fit:contain; filter:grayscale(1) brightness(1.6); opacity:.75; transition:opacity .25s ease, filter .25s ease;}
.client-slot:hover img{filter:grayscale(1) brightness(1.9); opacity:1;}

/* ---- contacto ---- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
.contact-info{display:flex; flex-direction:column; gap:10px; margin:28px 0;}
.contact-info a{font-family:'Poppins',sans-serif; font-weight:700; font-size:22px; text-decoration:none; color:var(--paper); width:fit-content; border-bottom:2px solid transparent; transition:border-color .2s ease, color .2s ease;}
.contact-info a:hover{border-color:var(--magenta); color:var(--magenta-2);}
.social-row{display:flex; gap:12px;}
.social-row a{width:44px; height:44px; border-radius:0; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; text-decoration:none; color:var(--paper-dim); transition:border-color .2s ease, color .2s ease, background .2s ease;}
.social-row a:hover{background:var(--magenta); border-color:var(--magenta); color:var(--ink);}
.contact-form{display:flex; flex-direction:column; gap:22px;}
.contact-form label{display:flex; flex-direction:column; gap:8px; font-size:12.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--paper-faint);}
.contact-form input, .contact-form textarea{background:none; border:none; border-bottom:1.5px solid var(--line); color:var(--paper); font-family:'Poppins',sans-serif; font-size:16px; font-weight:500; padding:10px 2px; outline:none; resize:vertical; transition:border-color .2s ease;}
.contact-form input:focus, .contact-form textarea:focus{border-color:var(--magenta);}
.contact-form select{
  background:none; border:none; border-bottom:1.5px solid var(--line); color:var(--paper);
  font-family:'Poppins',sans-serif; font-size:16px; font-weight:500; padding:10px 26px 10px 2px; outline:none; cursor:pointer;
  appearance:none; -webkit-appearance:none; -moz-appearance:none; border-radius:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23F3F1EC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 4px center; background-size:10px 6px;
  transition:border-color .2s ease;
}
.contact-form select:focus{border-color:var(--magenta);}
.contact-form select:invalid{color:var(--paper-faint);}
.contact-form select option{background:var(--ink-2); color:var(--paper);}
.contact-form .cta{align-self:flex-start; margin-top:6px;}

/* ---- blog: hero de listado ---- */
.blog-hero{padding:72px clamp(20px,5vw,64px) 48px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr 360px; gap:56px; align-items:start;}
@media (max-width:900px){ .blog-hero{grid-template-columns:1fr;} .hero-index{display:none;} }
.kicker{display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--magenta); margin-bottom:20px;}
.kicker::before{content:"+"; color:var(--magenta); font-weight:800;}
.blog-hero h1{font-weight:800; font-size:clamp(34px,6vw,64px); line-height:1.05; letter-spacing:-0.02em; margin:0 0 14px; max-width:16ch;}
.blog-hero p{font-size:16px; color:var(--paper-dim); max-width:56ch; line-height:1.6; margin:0;}
.hero-index{padding-top:8px;}
.hero-index .month{font-weight:800; font-size:15px; letter-spacing:.03em; text-transform:uppercase; margin:0 0 16px; color:var(--paper);}
.hero-index .month span{color:var(--paper-faint); font-weight:600;}
.hero-index p{font-size:14.5px; line-height:1.75; color:var(--paper-dim); margin:20px 0 0; padding-top:16px; border-top:1px solid var(--line);}
.hero-index p a{color:var(--paper); font-weight:800; text-decoration:none; transition:color .2s ease;}
.hero-index p a:hover{color:var(--magenta-2);}

.blog-main{max-width:1200px; margin:0 auto; padding:56px clamp(20px,5vw,64px) 100px;}

.featured{display:grid; grid-template-columns:1.6fr 1fr; gap:40px; align-items:start; padding-bottom:48px; margin-bottom:8px; border-bottom:1px solid var(--line); text-decoration:none; color:inherit;}
@media (max-width:640px){ .featured{grid-template-columns:1fr; gap:20px;} }
.featured-media{position:relative; display:block; width:100%; aspect-ratio:4/3; overflow:hidden; background:#F3F1EC;}
.featured-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.16,.8,.24,1);}
.featured:hover .featured-media img{transform:scale(1.04);}
.featured-media .credit{position:absolute; bottom:6px; right:6px; background:rgba(0,0,0,0.55); color:rgba(243,241,236,0.85); font-size:10px; letter-spacing:.02em; padding:3px 7px;}
.cat-tag{display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--magenta); margin-bottom:14px;}
.featured h2{font-weight:800; font-size:clamp(26px,3.4vw,40px); line-height:1.12; letter-spacing:-0.01em; margin:0 0 16px; max-width:20ch;}
.featured p{font-size:16px; color:var(--paper-dim); line-height:1.7; margin:0 0 20px; max-width:60ch;}
.post-meta{display:flex; align-items:center; gap:14px; font-size:12.5px; color:var(--paper-faint); flex-wrap:wrap;}
.post-meta .dot{width:3px; height:3px; border-radius:50%; background:var(--paper-faint);}
.read-link{display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14px; color:var(--paper); text-decoration:none; margin-top:18px;}
.read-link svg{width:.7em; height:.7em; fill:var(--magenta); transition:transform .25s ease;}
.featured:hover .read-link svg{transform:translateX(4px);}

.post-row{display:grid; grid-template-columns:84px 1fr auto; gap:24px; align-items:center; padding:22px 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit;}
@media (max-width:640px){ .post-row{grid-template-columns:60px 1fr; row-gap:8px;} .post-row .post-meta{grid-column:2;} .post-row .post-meta-right{display:none;} }
.row-thumb{position:relative; width:84px; height:84px; flex:none; overflow:hidden; background:#F3F1EC;}
@media (max-width:640px){ .row-thumb{width:60px; height:60px;} }
.row-thumb img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s cubic-bezier(.16,.8,.24,1);}
.post-row:hover .row-thumb img{transform:scale(1.06);}
.row-thumb .idx{position:absolute; bottom:0; left:0; background:var(--ink); color:var(--paper-dim); font-family:'Poppins',sans-serif; font-weight:800; font-size:10.5px; padding:2px 6px 3px 0; line-height:1;}
.post-row h3{font-weight:700; font-size:18px; line-height:1.4; margin:0 0 6px; letter-spacing:-0.01em; transition:color .2s ease;}
.post-row:hover h3{color:var(--magenta);}
.post-row .post-meta{font-size:12px;}
.post-row .post-meta-right{font-size:12.5px; color:var(--paper-faint); white-space:nowrap;}

/* ---- entrada individual ---- */
.post-layout{display:grid; grid-template-columns:1fr 300px; gap:56px; padding:0 clamp(20px,5vw,64px); max-width:1180px; margin:0 auto; align-items:start;}
@media (max-width:960px){ .post-layout{grid-template-columns:1fr;} .post-sidebar{display:none;} }

.post-header{position:relative; padding:72px 0 56px 34px; text-align:left; border-bottom:1px solid var(--line);}
.post-header h1{font-weight:800; font-size:clamp(32px,5.5vw,56px); line-height:1.08; letter-spacing:-0.02em; margin:0 0 24px; max-width:none;}
.byline{display:inline-flex; align-items:center; gap:9px;}
.byline img{width:44px; height:44px; border-radius:0; object-fit:cover; display:block; flex:none;}
.byline span{color:var(--paper-dim); font-weight:600;}

.post-cover{display:flex; align-items:stretch; gap:14px; margin:40px 0 0;}
.post-cover .cover-credit{
  order:2; flex:none;
  writing-mode:vertical-rl; transform:rotate(180deg);
  white-space:nowrap; width:fit-content;
  font-size:11px; letter-spacing:.04em; color:var(--paper-faint);
  margin:0; padding-left:12px; border-left:1px solid var(--line);
  display:flex; align-items:center;
}
.post-cover .cover-media{order:1; flex:1; min-width:0; position:relative; display:block; overflow:hidden; aspect-ratio:16/9; background:#F3F1EC;}
.post-cover img{width:100%; height:100%; object-fit:cover; display:block;}

article{padding:52px 0 80px;}
article p{font-size:17px; color:var(--paper-dim); line-height:1.85; margin:0 0 24px;}
article h2{font-weight:800; font-size:26px; line-height:1.2; letter-spacing:-0.01em; margin:48px 0 18px; color:var(--paper);}
article ul{margin:0 0 24px; padding-left:22px;}
article li{font-size:17px; color:var(--paper-dim); line-height:1.8; margin-bottom:10px;}
article a{color:var(--paper); text-decoration:underline; text-decoration-color:var(--line);}
article img{display:block; margin:32px auto; height:auto;}
blockquote{margin:40px 0; padding:8px 0 8px 28px; border-left:3px solid var(--magenta); font-family:'Poppins',sans-serif; font-weight:700; font-size:22px; line-height:1.4; color:var(--paper); letter-spacing:-0.01em;}

.share-row{display:flex; align-items:center; gap:14px; padding:32px 0; margin:24px 0 8px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.share-row span{font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--paper-faint);}
.share-row a{width:48px; height:48px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; transition:border-color .2s ease, background .2s ease, color .2s ease;}
.share-row a:hover{background:var(--magenta); border-color:var(--magenta); color:var(--ink);}

.related{padding:0 0 100px;}
.related h3{font-weight:800; font-size:20px; margin:0 0 8px; letter-spacing:-0.01em;}
.related-list{border-top:1px solid var(--line);}
.related-row{display:flex; align-items:center; gap:16px; padding:22px 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit;}
.related-row svg{width:14px; height:14px; fill:var(--magenta); flex:none;}
.related-row h4{font-size:15.5px; font-weight:600; line-height:1.4; margin:0; transition:color .2s ease;}
.related-row:hover h4{color:var(--magenta);}

/* ---- sidebar de la entrada (sticky) ---- */
.post-sidebar{position:sticky; top:110px; padding:72px 0 80px;}
.post-sidebar h3{font-family:'Poppins',sans-serif; font-weight:800; font-size:16px; letter-spacing:-0.01em; margin:0 0 22px; color:var(--paper);}
.sidebar-list{display:flex; flex-direction:column; gap:20px;}
.sidebar-item{display:flex; align-items:center; gap:14px; text-decoration:none; color:inherit;}
.sidebar-thumb{width:64px; height:64px; flex:none; overflow:hidden; background:#F3F1EC;}
.sidebar-thumb img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease;}
.sidebar-item:hover .sidebar-thumb img{transform:scale(1.08);}
.sidebar-item h4{font-size:13.5px; font-weight:700; line-height:1.4; margin:0; color:var(--paper); transition:color .2s ease;}
.sidebar-item:hover h4{color:var(--magenta);}

/* ---- páginas legales ---- */
.legal-main{max-width:760px; margin:0 auto; padding:64px clamp(20px,5vw,64px) 120px;}
.legal-main h1{font-weight:800; font-size:clamp(32px,5vw,52px); line-height:1.08; letter-spacing:-0.02em; margin:0 0 12px; max-width:none;}
.updated{font-size:13px; color:var(--paper-faint); margin:0 0 48px;}
.notice{background:var(--ink-2); border:1px solid var(--magenta); border-radius:16px; padding:20px 24px; margin-bottom:48px; font-size:13.5px; color:var(--paper-dim); line-height:1.6;}
.notice strong{color:var(--paper);}
.legal-main article h2{font-weight:800; font-size:22px; margin:44px 0 14px; letter-spacing:-0.01em;}
.legal-main article h2:first-of-type{margin-top:0;}
.legal-main article p{font-size:15px; color:var(--paper-dim); line-height:1.75; margin:0 0 16px;}
.legal-main article ul{margin:0 0 16px; padding-left:20px;}
.legal-main article li{font-size:15px; color:var(--paper-dim); line-height:1.75; margin-bottom:8px;}
.legal-main article a{color:var(--paper); text-decoration:underline; text-decoration-color:var(--line);}
.placeholder{color:var(--magenta-2); font-weight:600;}
.legal-main table{width:100%; border-collapse:collapse; margin:0 0 20px; font-size:13.5px;}
.legal-main th, .legal-main td{text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); color:var(--paper-dim);}
.legal-main th{color:var(--paper); font-weight:700;}

/* ---- footer ---- */
.site-footer{background:var(--ink-2);}
.footer-inner{padding:56px clamp(20px,5vw,64px) 40px;}
.footer-top{display:flex; align-items:center; justify-content:flex-start; gap:40px; flex-wrap:wrap; padding-bottom:40px; border-bottom:1px solid var(--line);}
.footer-mark{display:block; width:40px; flex:none;}
.footer-mark img{width:100%; height:auto; display:block;}
.footer-links{list-style:none; display:flex; gap:28px; margin:0 auto 0 0; padding:0; flex-wrap:wrap;}
.footer-links a{font-size:14px; font-weight:600; color:var(--paper-dim); text-decoration:none; transition:color .2s ease;}
.footer-links a.current, .footer-links a:hover{color:var(--paper);}
.footer-social{display:flex; gap:10px;}
.footer-social a{width:36px; height:36px; border-radius:0; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; text-decoration:none; color:var(--paper-dim); transition:border-color .2s ease, color .2s ease, background .2s ease;}
.footer-social a:hover{background:var(--magenta); border-color:var(--magenta); color:var(--ink);}
.footer-bottom{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:24px 96px 0 0; font-family:var(--mono); font-size:12px; letter-spacing:.02em; color:var(--paper-faint);}
@media (max-width:640px){ .footer-bottom{padding-right:0;} }
.footer-legal{display:flex; gap:22px; flex-wrap:wrap;}
.footer-legal a{color:var(--paper-faint); text-decoration:none; transition:color .2s ease;}
.footer-legal a.current, .footer-legal a:hover{color:var(--paper);}

.skiplink{position:absolute; left:-999px;}
.skiplink:focus{left:12px; top:12px; z-index:300; background:var(--paper); color:var(--ink); padding:10px 16px; border-radius:0;}

/* ---- scroll to top ---- */
.scroll-top{
  position:fixed; right:28px; bottom:28px; z-index:90;
  width:52px; height:52px; border-radius:0;
  background:var(--paper); border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.45);
  opacity:0; transform:translateY(16px) scale(.9);
  pointer-events:none;
  transition:opacity .3s ease, transform .3s ease, background .2s ease;
}
.scroll-top.show{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
.scroll-top:hover{background:var(--magenta);}
.scroll-top svg{width:20px; height:20px; stroke:var(--ink); transition:stroke .2s ease;}
.scroll-top:hover svg{stroke:var(--paper);}
@media (max-width:640px){ .scroll-top{right:16px; bottom:16px; width:46px; height:46px;} }

/* ---- cookie banner ---- */
.cookie-banner{
  position:fixed; left:20px; right:20px; bottom:20px; z-index:200;
  max-width:920px; margin:0 auto;
  background:var(--ink-2); border:1px solid var(--line); border-radius:0;
  padding:24px 28px; display:flex; align-items:center; gap:24px; flex-wrap:wrap;
  box-shadow:0 12px 40px rgba(0,0,0,0.5);
  transform:translateY(140%); transition:transform .5s cubic-bezier(.16,.8,.24,1);
}
.cookie-banner.show{transform:translateY(0);}
.cookie-banner p{margin:0; font-size:14px; color:var(--paper-dim); line-height:1.55; flex:1 1 320px;}
.cookie-banner p a{color:var(--paper); text-decoration:underline;}
.cookie-actions{display:flex; gap:10px; flex-wrap:wrap;}
.cookie-btn{font-family:'Poppins',sans-serif; font-weight:700; font-size:13.5px; padding:8px 20px; border-radius:0; cursor:pointer; border:1px solid var(--line); background:none; color:var(--paper); white-space:nowrap; transition:background .2s ease, border-color .2s ease, color .2s ease;}
.cookie-btn:hover{border-color:var(--paper);}
.cookie-btn.primary{background:var(--magenta); border-color:var(--magenta); color:var(--ink);}
.cookie-btn.primary:hover{opacity:.9;}
.cookie-modal-overlay{position:fixed; inset:0; z-index:210; background:rgba(0,0,0,0.7); display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity .3s ease;}
.cookie-modal-overlay.show{opacity:1; pointer-events:auto;}
.cookie-modal{background:var(--ink-2); border:1px solid var(--line); border-radius:0; max-width:520px; width:100%; padding:32px; max-height:85vh; overflow:auto;}
.cookie-modal h3{font-weight:800; font-size:22px; margin:0 0 8px;}
.cookie-modal > p{font-size:14px; color:var(--paper-dim); margin:0 0 24px; line-height:1.6;}
.cookie-cat{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:16px 0; border-top:1px solid var(--line);}
.cookie-cat:first-of-type{border-top:none;}
.cookie-cat-info h4{font-size:15px; font-weight:700; margin:0 0 4px;}
.cookie-cat-info p{font-size:13px; color:var(--paper-faint); margin:0; line-height:1.5;}
.switch{position:relative; width:44px; height:26px; flex:none; display:block;}
.switch input{opacity:0; width:0; height:0; position:absolute;}
.switch-track{position:absolute; inset:0; background:var(--line); border-radius:100px; cursor:pointer; transition:background .2s ease;}
.switch-track::before{content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:var(--paper); transition:transform .2s ease;}
.switch input:checked + .switch-track{background:var(--magenta);}
.switch input:checked + .switch-track::before{transform:translateX(18px);}
.switch input:disabled + .switch-track{opacity:.5; cursor:not-allowed;}
.cookie-modal-actions{display:flex; gap:10px; margin-top:24px; flex-wrap:wrap;}

/* ---- móvil: header compacto, menos espacio entre bloques, footer reordenado ---- */
@media (max-width:640px){
  nav{padding:14px clamp(20px,5vw,64px);}
  .mark{width:84px;}
  .navicons{gap:10px;}
  .iconbtn{padding:6px;}
  .iconbtn svg{width:20px; height:20px;}
  .dotgrid{grid-template-columns:repeat(3,5px); gap:4px;}
  .dotgrid span{width:5px; height:5px;}

  .content{padding:36px clamp(20px,5vw,64px) 40px;}
  .section{padding:56px clamp(20px,5vw,64px);}
  .section-head{margin-bottom:32px;}
  .service-row{padding:24px 0; gap:16px;}
  .stat-line{margin-top:32px; padding-top:32px; gap:12px 24px;}
  .plan-card{padding:32px 24px;}

  .footer-inner{padding:40px clamp(20px,5vw,64px) 32px;}
  .footer-top{flex-direction:column; align-items:flex-start; gap:22px; padding-bottom:28px;}
  .footer-links{flex-direction:column; gap:14px; margin:0;}
  .footer-bottom{flex-direction:column; align-items:flex-start; gap:14px; padding:20px 0 0;}
  .footer-legal{flex-direction:column; gap:10px;}
}
