/*
Theme Name: Granpudú
Theme URI: https://granpudu.com
Author: Mauricio Espinoza de Bewild
Author URI: https://bewild.au
Description: Tema a medida para Granpudú, boutique web hosting club.
Version: 2.0.0
Requires PHP: 7.4
Text Domain: granpudu
*/

:root{
  --bg:#f1f1f1;--bg2:#e6e6e6;--ink:#0f0f0f;--mut:#8a8a8a;--line:#d3d3d3;--acc:#d08a06;--pill:#fff;
  --f:'Inter Tight','Helvetica Neue',Arial,sans-serif;--w:1320px;
}
[data-theme=dark]{--bg:#0e0e0e;--bg2:#1a1a1a;--ink:#f1f1f1;--mut:#7d7d7d;--line:#2a2a2a;--acc:#f2bb52;--pill:#1d1d1d}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:20px}
html,body{overflow-x:clip}
body{margin:0;font:400 17px/1.5 var(--f);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;letter-spacing:-.01em;transition:background .35s,color .35s}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0 0 1em}
.wrap{width:min(var(--w),100% - 48px);margin-inline:auto}
h1,h2,h3{font-weight:400;line-height:.98;letter-spacing:-.045em;margin:0 0 .4em}
h1{font-size:clamp(3rem,9.4vw,9rem)}
h2{font-size:clamp(2.4rem,5.6vw,5rem)}
h3{font-size:1.6rem;letter-spacing:-.03em;line-height:1.1}
em{font-style:normal;color:var(--acc)}
.acc{color:var(--acc)}
.ico{width:1.1em;height:1.1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* Etiquetas ( entre paréntesis ) */
.eyebrow{display:block;font-size:.95rem;color:var(--mut);margin-bottom:1.4rem;letter-spacing:-.01em}
.eyebrow::before{content:"( "}.eyebrow::after{content:" )"}
.eyebrow .tri{display:none}
.lead{font-size:clamp(1.2rem,2vw,1.6rem);line-height:1.25;letter-spacing:-.03em;max-width:30ch}

/* Botón píldora con círculo (como nube.cl) */
.pill{display:inline-flex;align-items:center;gap:16px;background:var(--pill);color:var(--ink);border:0;border-radius:999px;padding:5px 24px 5px 5px;font:500 .92rem/1 var(--f);text-decoration:none;cursor:pointer;transition:transform .25s}
.pill i{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;transition:transform .35s}
.pill:hover{transform:translateY(-2px)}
.pill:hover i{transform:rotate(-45deg)}

/* Header */
.site-header{position:relative;z-index:50} /* fijo en la parte superior de la página: no acompaña al scroll */
.site-header .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:1.15rem;letter-spacing:-.04em;justify-self:start}
.tools{display:flex;align-items:center;gap:16px;justify-self:center}
.lang{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--mut)}
.lang a{text-decoration:none}.lang a:hover{color:var(--ink)}
.lang b{color:var(--ink);font-weight:600}
.lang i{font-style:normal;opacity:.4}
.theme{width:40px;height:22px;border-radius:999px;background:var(--bg2);border:1px solid var(--line);position:relative;cursor:pointer;padding:0}
.theme::after{content:"";position:absolute;top:3px;left:4px;width:14px;height:14px;border-radius:50%;background:var(--ink);transition:transform .3s}
[data-theme=dark] .theme::after{transform:translateX(17px)}
.nav{display:flex;gap:26px;justify-self:end}
.nav a{text-decoration:none;font-size:.95rem;position:relative}
.nav a::after{content:"";position:absolute;left:50%;bottom:-8px;width:4px;height:4px;border-radius:50%;background:var(--ink);transform:translateX(-50%) scale(0);transition:transform .25s}
.nav a:hover::after{transform:translateX(-50%) scale(1)}
.menu-btn{display:none;justify-self:end;background:none;border:0;color:var(--ink);font:500 1rem var(--f);cursor:pointer;padding:8px 0}

/* Hero */
.hero{padding:clamp(40px,7vw,96px) 0 80px}
.hero h1{font-size:clamp(3rem,8.4vw,8.8rem);margin:0}
.hero-row{display:grid;grid-template-columns:1.35fr .65fr;gap:48px;align-items:start}
.hero-text{max-width:340px;padding-bottom:.6rem}
.hero-text .lead{margin-bottom:2rem}
.green{display:flex;align-items:center;gap:.6em;margin-top:2.2rem;font-size:.9rem;color:var(--mut)}
.green .ico{color:var(--acc)}

/* Cinta de texto grande */
.marq{overflow:hidden;border-block:1px solid var(--line);padding:22px 0}
.marq-in{display:flex;width:max-content;animation:slide 50s linear infinite}
.marq span{font-size:clamp(2rem,4.6vw,4rem);letter-spacing:-.045em;color:var(--mut);padding-right:2.4rem;white-space:nowrap}
.marq span::after{content:"↘";margin-left:2.4rem;color:var(--acc)}
@keyframes slide{to{transform:translateX(-50%)}}

/* Secciones */
.sec{padding:clamp(80px,11vw,150px) 0}
.cols{display:grid;grid-template-columns:1fr 2fr;gap:48px}
.big{font-size:clamp(1.8rem,3.6vw,3.2rem);line-height:1.08;letter-spacing:-.04em;margin:0 0 1.2em;max-width:22ch}
.big.sm{font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.2;max-width:34ch;color:var(--mut)}
.rules{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:4rem;border-top:1px solid var(--line);padding-top:1.6rem}
.rule .n{font-size:.85rem;color:var(--mut);margin-bottom:2.2rem;display:block}
.rule h3{margin-bottom:.5em}
.rule p{color:var(--mut);font-size:.95rem;margin:0}

/* Planes: filas */
.plans-head{display:grid;grid-template-columns:1fr 2fr;gap:48px;margin-bottom:3.4rem}
.plans-head .lead{max-width:none}
.plan{display:grid;grid-template-columns:56px minmax(190px,1fr) minmax(0,2.6fr) auto;gap:28px;align-items:center;padding:30px 0;border-top:1px solid var(--line);transition:background .3s,color .3s,padding .3s,margin .3s,border-radius .3s}
.plan:last-child{border-bottom:1px solid var(--line)}
.plan:hover{background:var(--ink);color:var(--bg);padding-inline:24px;margin-inline:-24px;border-radius:20px;border-color:transparent}
.plan .n{font-size:.85rem;color:var(--mut)}
.plan h3{font-size:clamp(1.8rem,2.6vw,2.4rem);margin-bottom:.15em}
.plan .price{font-size:1.05rem}
.plan .price b{font-weight:500;font-size:1.5rem;letter-spacing:-.04em}
.plan .price small{color:var(--mut);font-size:.82rem;margin-left:.3em}
.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 20px;margin:0;padding:0;list-style:none}
.specs span{display:block;font-size:.76rem;color:var(--mut)}
.specs b{font-weight:500;font-size:.98rem}
.plan .pill{background:var(--bg);color:var(--ink)}
.plan:hover .pill i{background:var(--acc);color:#111}
.plan:hover .specs span,.plan:hover .price small,.plan:hover .n{color:#9a9a9a}
.note-line{margin-top:1.6rem;color:var(--mut);font-size:.92rem}

/* Pasos */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:3.4rem}
.step{border-top:1px solid var(--line);padding-top:1.4rem}
.step .n{display:block;color:var(--mut);font-size:.85rem;margin-bottom:3rem}
.step p{color:var(--mut);margin:0;max-width:30ch}

/* Clientes: carrusel */
.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 24px 24px;margin-top:3rem;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.q{flex:0 0 min(440px,82vw);scroll-snap-align:start;background:var(--bg2);border-radius:28px;padding:34px;display:flex;flex-direction:column;justify-content:space-between;min-height:380px;margin:0}
.q p{font-size:1.45rem;line-height:1.2;letter-spacing:-.035em;margin-bottom:2rem}
.q footer{font-size:.9rem}
.q footer small{display:block;color:var(--mut)}
.q.dark{background:var(--ink);color:var(--bg)}
.q.dark footer small{color:#8f8f8f}
.rail-hint{display:flex;justify-content:flex-end;gap:10px;margin-top:.4rem}
.rail-hint button{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s}
.rail-hint button:hover{background:var(--ink);color:var(--bg)}

/* Contacto (sección invertida) */
.contact{background:var(--ink);color:var(--bg);border-radius:36px 36px 0 0;padding:clamp(80px,10vw,140px) 0}
.contact h2{font-size:clamp(2.6rem,7vw,6.6rem);max-width:11ch}
.contact .eyebrow{color:#8b8b8b}
.contact .cols{margin-top:3rem;align-items:end}
.contact .lead{color:#8b8b8b;font-size:1.25rem;max-width:26ch}
.mail{display:inline-block;margin-top:1.2rem;font-size:clamp(1.3rem,2.4vw,2rem);letter-spacing:-.04em;text-decoration:none;border-bottom:1px solid currentColor}
.form label{display:block;font-size:.85rem;color:#8b8b8b;margin-bottom:1.6rem}
.form input,.form select,.form textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #3a3a3a;color:inherit;font:400 1.25rem var(--f);letter-spacing:-.02em;padding:.5em 0;margin-top:.2rem;border-radius:0}
.form select option{color:#111}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--acc)}
.form textarea{min-height:90px;resize:vertical}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.hp{position:absolute;left:-9999px}
.form .pill{background:var(--bg);color:var(--ink)}
.form .pill i{background:var(--acc);color:#111}
.msg{border-radius:14px;padding:14px 18px;margin-bottom:1.6rem;font-size:.95rem}
.msg.ok{background:#1f3a22;color:#b9e8bd}
.msg.err{background:#3d2019;color:#f3b9a8}

/* Términos */
.phero{padding:clamp(48px,8vw,110px) 0 40px}
.phero h1{font-size:clamp(3rem,8vw,7rem)}
.phero .lead{margin:0}
.prose{max-width:780px;padding-bottom:120px}
.prose h2{font-size:clamp(1.6rem,2.4vw,2.2rem);margin:2.4rem 0 .5em;border-top:1px solid var(--line);padding-top:1.4rem}
.prose h2 .tri{display:none}
.prose p{color:var(--mut)}
.prose p:first-of-type{color:var(--ink)}

/* Footer */
.site-footer{background:var(--ink);color:var(--bg);padding:0 0 28px;overflow:hidden}
.fwrap{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;padding-top:40px;font-size:.9rem;color:#8b8b8b}
.fwrap p{margin:0}
.fwrap a{color:var(--bg)}
.giant{font-size:clamp(4rem,24vw,25rem);line-height:.8;letter-spacing:-.06em;font-weight:500;color:#1f1f1f;white-space:nowrap;margin:2rem 0 0 -.04em;padding-bottom:.2em;user-select:none;pointer-events:none} /* decorativo: su caja de texto invade los enlaces vecinos y se comía los clics (visto en Safari/Mac) */
.fwrap,.credito{position:relative;z-index:2}
[data-theme=dark] .giant{color:#d8d8d8}

/* Crédito del desarrollador */
.credito{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:28px;font-size:12px;line-height:1;color:#8b8b8b;text-decoration:none}
.credito:hover{color:var(--bg)}
.credito img{width:26px;height:auto;opacity:.6;transition:opacity .2s}
.credito:hover img{opacity:1}
.credito span{font-weight:600}
[data-theme=dark] .credito img{filter:invert(1)} /* en oscuro el pie es claro: el logo blanco se invierte */

/* Cursor y revelado */
.ring{position:fixed;left:0;top:0;width:34px;height:34px;border:1px solid #fff;border-radius:50%;pointer-events:none;z-index:99;mix-blend-mode:difference;transform:translate(-50%,-50%);transition:width .25s,height .25s,opacity .3s;opacity:0}
.ring.big{width:64px;height:64px}
.js .up{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}
.js .up.in{opacity:1;transform:none}

@media (max-width:1000px){
  .hero-row,.cols,.plans-head{grid-template-columns:1fr;gap:36px}
  .rules{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}
  .plan{grid-template-columns:40px 1fr auto;gap:18px 16px}
  .plan .specs{grid-column:1/-1;order:5}
  .plan .pill{grid-column:3;grid-row:1}
  .plan:hover{padding-inline:0;margin-inline:0;background:none;color:inherit;border-radius:0;border-color:var(--line)}
  .plan:hover .specs span,.plan:hover .price small,.plan:hover .n{color:var(--mut)}
}
@media (max-width:820px){
  .nav{position:fixed;inset:68px 0 0;background:var(--bg);flex-direction:column;gap:6px;padding:30px 24px;display:none;justify-self:auto}
  .nav.open{display:flex}
  .nav a{font-size:2.6rem;letter-spacing:-.05em}
  .menu-btn{display:block}
  .site-header .wrap{grid-template-columns:1fr auto auto;gap:18px}
}
@media (max-width:620px){
  .rules,.f2{grid-template-columns:1fr}
  .specs{grid-template-columns:1fr 1fr}
  .plan .pill{padding-right:5px}.plan .pill span{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .js .up{opacity:1;transform:none}
}
