/* ============================================================
   Petri Heil — GEO & SEO Agency
   Visual system: technical-editorial / swiss grid + mono labels
   ============================================================ */

:root{
  --navy:#0a1a2b;
  --navy-2:#0f2438;
  --ink:#13202e;
  --slate:#5a6b7a;
  --slate-2:#7c8a97;
  --line:#e4e9ee;
  --line-2:#eef2f5;
  --paper:#ffffff;
  --paper-2:#f6f8fa;
  --paper-3:#eef3f6;
  --cyan:#00a3e0;
  --cyan-d:#0089bd;
  --teal:#00c48c;
  --teal-d:#03a978;
  --grad:linear-gradient(95deg,var(--teal) 0%,var(--cyan) 70%);
  --grad-2:linear-gradient(120deg,var(--teal),var(--cyan));
  --danger:#d9603b;
  --maxw:1240px;
  --pad:clamp(20px,5vw,64px);
  --r:14px;
  --r-lg:20px;
  --shadow:0 1px 2px rgba(10,26,43,.04),0 10px 40px -18px rgba(10,26,43,.18);
  --shadow-lg:0 30px 80px -40px rgba(10,26,43,.35);
  --font-display:"Sora",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  background-image:radial-gradient(var(--line) 1px,transparent 1px);
  background-size:26px 26px;
  background-position:-13px -13px;
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
section{position:relative}
.pad-y{padding-block:clamp(56px,9vw,120px)}
.pad-y-sm{padding-block:clamp(40px,6vw,72px)}
.hr{height:1px;background:var(--line);border:0;margin:0}

/* ---------- typography ---------- */
h1,h2,h3,h4{font-family:var(--font-display);color:var(--navy);font-weight:700;line-height:1.03;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(2.6rem,6.6vw,5.2rem);font-weight:800;letter-spacing:-.035em}
h2{font-size:clamp(2rem,4.4vw,3.4rem);letter-spacing:-.03em}
h3{font-size:clamp(1.3rem,2.2vw,1.7rem)}
h4{font-size:1.06rem;letter-spacing:-.01em}
p{margin:0 0 1.1em}
.lead{font-size:clamp(1.08rem,1.7vw,1.32rem);color:var(--slate);line-height:1.55;max-width:62ch}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.cyan{color:var(--cyan)}
.teal{color:var(--teal)}

/* mono labels */
.tag{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);font-weight:500}
.tag-muted{color:var(--slate-2)}
.eyebrow{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--slate-2);display:inline-flex;align-items:center;gap:.6em;margin-bottom:1.1rem}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--cyan)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--font-mono);font-size:.82rem;letter-spacing:.04em;font-weight:500;padding:.85em 1.4em;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:.22s ease;white-space:nowrap}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--cyan);transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(0,163,224,.6)}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--navy);background:var(--navy);color:#fff}
.btn-lg{padding:1.05em 1.8em;font-size:.9rem}
.arrow{transition:transform .22s ease}
.btn:hover .arrow{transform:translateX(3px)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:1.4rem;height:72px}
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:700;font-size:1.18rem;color:var(--navy);letter-spacing:-.02em}
.brand .mark{width:26px;height:26px;border-radius:7px;background:var(--grad-2);box-shadow:0 4px 12px -4px rgba(0,196,140,.7);flex:none}
.brand .dot{color:var(--cyan)}
.nav-links{display:flex;align-items:center;gap:.3rem;margin-left:auto}
.nav-links a{font-size:.95rem;font-weight:500;color:var(--ink);padding:.5em .8em;border-radius:8px;transition:.18s;position:relative}
.nav-links a:hover{color:var(--cyan);background:var(--paper-2)}
.nav-links a.active{color:var(--cyan)}
.nav-cta{display:flex;align-items:center;gap:.7rem}
.lang{display:flex;align-items:center;gap:.1rem;font-family:var(--font-mono);font-size:.74rem;border:1px solid var(--line);border-radius:999px;padding:.18rem;background:#fff}
.lang a{padding:.28em .58em;border-radius:999px;color:var(--slate-2);letter-spacing:.05em;transition:.16s}
.lang a:hover{color:var(--navy)}
.lang a.active{background:var(--navy);color:#fff}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.burger span{width:22px;height:2px;background:var(--navy);border-radius:2px;transition:.25s}
#nav-toggle:checked ~ .nav .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
#nav-toggle:checked ~ .nav .burger span:nth-child(2){opacity:0}
#nav-toggle:checked ~ .nav .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{padding-top:clamp(48px,8vw,92px);padding-bottom:clamp(48px,8vw,96px);position:relative;overflow:hidden}
.hero h1{max-width:16ch}
.hero .lead{margin-top:1.6rem}
.hero-cta{margin-top:2.4rem;display:flex;gap:.9rem;flex-wrap:wrap}
.hero-meta{margin-top:3.4rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r)}
.hero-meta div{background:var(--paper);padding:1.1rem 1.2rem}
.hero-meta dt{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-2);margin-bottom:.4rem}
.hero-meta dd{margin:0;font-family:var(--font-display);font-weight:700;color:var(--navy);font-size:.98rem;line-height:1.2}

/* glow */
.glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;pointer-events:none;z-index:-1}
.glow-1{width:480px;height:480px;background:radial-gradient(circle,rgba(0,196,140,.28),transparent 70%);top:-160px;right:-120px}
.glow-2{width:420px;height:420px;background:radial-gradient(circle,rgba(0,163,224,.22),transparent 70%);bottom:-200px;left:-140px}

/* ---------- stat band ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.4rem,3vw,2.6rem)}
.stat .num{font-family:var(--font-display);font-weight:800;font-size:clamp(2.4rem,4.6vw,3.4rem);line-height:1;letter-spacing:-.04em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .lbl{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--slate-2);margin:.8rem 0 .5rem}
.stat p{font-size:.92rem;color:var(--slate);margin:0;line-height:1.45}

/* ---------- section head ---------- */
.sec-head{display:grid;grid-template-columns:200px 1fr;gap:clamp(1rem,4vw,2.5rem);align-items:start;border-top:1px solid var(--navy);padding-top:1.6rem;margin-bottom:clamp(2.2rem,4vw,3.4rem)}
.sec-head .idx{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;color:var(--cyan);text-transform:uppercase;padding-top:.4rem}
.sec-head h2{max-width:16ch}
.sec-head .note{font-family:var(--font-mono);font-size:.72rem;color:var(--slate-2);text-align:right;letter-spacing:.08em}
@media(max-width:760px){.sec-head{grid-template-columns:1fr}.sec-head .note{display:none}}

/* ---------- cards ---------- */
.grid{display:grid;gap:1.4rem}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.7rem;transition:.24s ease;position:relative}
.card:hover{border-color:#cfe7f4;transform:translateY(-3px);box-shadow:var(--shadow)}
.card .ic{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:var(--paper-3);color:var(--cyan);margin-bottom:1.1rem}
.card .ic svg{width:20px;height:20px}
.card h3{font-size:1.18rem;margin-bottom:.5rem}
.card h4{margin-bottom:.5rem}
.card p{font-size:.94rem;color:var(--slate);margin:0}
.card .kbd{font-family:var(--font-mono);font-size:.68rem;color:var(--slate-2);letter-spacing:.1em;position:absolute;top:1.2rem;right:1.4rem}
.card-feature{background:linear-gradient(160deg,#f2fbf8,#eef7fc);border-color:#cfeede}

/* service list rows */
.svc-row{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;padding:1.7rem 0;border-bottom:1px solid var(--line);align-items:start}
.svc-row:first-child{border-top:1px solid var(--line)}
.svc-row .n{font-family:var(--font-mono);font-size:.8rem;color:var(--cyan);letter-spacing:.1em;padding-top:.35rem}
.svc-row h3{margin-bottom:.5rem}
.svc-row p{font-size:.96rem;color:var(--slate);margin:0 0 .9rem;max-width:70ch}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.05em;color:var(--slate);background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:.32em .8em}

/* method steps */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:2px solid var(--navy)}
.step{padding:1.5rem 1.2rem 1.5rem 0;border-right:1px solid var(--line)}
.step:last-child{border-right:0}
.step .s-n{font-family:var(--font-mono);font-size:.74rem;color:var(--cyan);letter-spacing:.1em;margin-bottom:1rem;display:block}
.step h3{font-size:1.16rem;margin-bottom:.6rem}
.step p{font-size:.88rem;color:var(--slate);margin:0 0 1.1rem}
.step .deliv{font-family:var(--font-mono);font-size:.68rem;color:var(--slate-2);letter-spacing:.04em;border-top:1px solid var(--line);padding-top:.8rem}
@media(max-width:900px){.steps{grid-template-columns:repeat(2,1fr);border-top:0}.step{border:1px solid var(--line);border-radius:var(--r);margin-bottom:1rem;padding:1.4rem}}

/* split (text + side panel) */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split.narrow{grid-template-columns:1.1fr .9fr}
@media(max-width:860px){.split,.split.narrow{grid-template-columns:1fr}}
.panel{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.4rem)}
.panel-accent{border-left:3px solid var(--cyan)}

.ticks{list-style:none;margin:0;padding:0}
.ticks li{display:flex;gap:.8rem;padding:.7rem 0;border-bottom:1px solid var(--line-2);font-size:.98rem;color:var(--ink)}
.ticks li:last-child{border-bottom:0}
.ticks li::before{content:"";flex:none;width:18px;height:18px;margin-top:3px;border-radius:5px;background:var(--grad-2);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/13px no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/13px no-repeat}

/* compare table */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.compare .col{border:1px solid var(--line);border-radius:var(--r);padding:1.8rem}
.compare .col.now{background:linear-gradient(160deg,#f2fbf8,#eef7fc);border-color:#bfe6d6}
.compare .big{font-family:var(--font-display);font-weight:800;font-size:2.4rem;letter-spacing:-.03em}
.compare .col.was .big{color:var(--slate-2)}
.compare .col.now .big{color:var(--cyan)}
.compare .sub{color:var(--slate);font-size:.9rem;margin:.2rem 0 1.3rem}
.compare ul{list-style:none;margin:0;padding:0}
.compare li{padding:.55rem 0;border-top:1px solid var(--line-2);font-size:.92rem;display:flex;gap:.6rem}
.compare li::before{content:"—";color:var(--cyan)}
@media(max-width:680px){.compare{grid-template-columns:1fr}}

/* pricing tiers */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.tier{border:1px solid var(--line);border-radius:var(--r-lg);padding:2rem;background:#fff;display:flex;flex-direction:column}
.tier.feat{border-color:var(--cyan);box-shadow:0 24px 60px -36px rgba(0,163,224,.5);position:relative}
.tier.feat::before{content:attr(data-badge);position:absolute;top:-11px;left:2rem;background:var(--grad);color:#fff;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;padding:.3em .8em;border-radius:999px}
.tier .t-name{font-family:var(--font-display);font-weight:700;font-size:1.4rem;color:var(--navy)}
.tier .t-for{font-size:.88rem;color:var(--slate);margin:.3rem 0 1.4rem;min-height:2.6em}
.tier .ticks{margin-bottom:1.6rem}
.tier .ticks li{font-size:.9rem;padding:.5rem 0}
.tier .btn{margin-top:auto;justify-content:center}
@media(max-width:860px){.tiers{grid-template-columns:1fr}}

/* faq */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.3rem 0;font-family:var(--font-display);font-weight:600;font-size:1.08rem;color:var(--navy);display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-mono);color:var(--cyan);font-size:1.4rem;transition:.2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--slate);font-size:.98rem;padding-bottom:1.3rem;margin:0;max-width:80ch}

/* quote / reputation */
.quote-box{border-left:3px solid;padding:1.1rem 1.4rem;border-radius:0 var(--r) var(--r) 0;background:var(--paper-2);font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--navy)}
.quote-box.good{border-color:var(--teal)}
.quote-box.bad{border-color:var(--danger)}
.quote-box .who{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;color:var(--slate-2);text-transform:uppercase;font-weight:500;margin-bottom:.5rem;display:block}

/* logos / clients */
.logos{display:flex;flex-wrap:wrap;gap:.7rem}
.logos .lg{font-family:var(--font-mono);font-size:.82rem;color:var(--slate);border:1px solid var(--line);border-radius:999px;padding:.5em 1.1em;background:#fff}

/* founder */
.founder{display:grid;grid-template-columns:200px 1.2fr;gap:clamp(1.6rem,4vw,3rem);align-items:start}
@media(max-width:760px){.founder{grid-template-columns:1fr;max-width:300px}}
.founder .photo{aspect-ratio:4/5;max-width:200px;border-radius:var(--r-lg);background:linear-gradient(160deg,var(--paper-3),#dfe9ef);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}
.founder .photo .ph{font-family:var(--font-display);font-weight:800;font-size:4rem;color:#c2cfd9}
.metrics3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);margin:1.6rem 0}
.metrics3 div{background:#fff;padding:1.1rem}
.metrics3 .m{font-family:var(--font-display);font-weight:800;font-size:1.8rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.metrics3 small{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;color:var(--slate-2);text-transform:uppercase;display:block;margin-top:.4rem;line-height:1.5}

/* cta band */
.cta-band{background:var(--navy);border-radius:var(--r-lg);padding:clamp(2.4rem,5vw,4rem);color:#fff;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(0,196,140,.4),transparent 70%);top:-120px;right:-80px;filter:blur(50px)}
.cta-band h2{color:#fff;position:relative;z-index:1}
.cta-band .lead{color:#9fb3c4;position:relative;z-index:1}
.cta-band .btn-primary{background:#fff;color:var(--navy)}
.cta-band .btn-primary:hover{background:var(--cyan);color:#fff}
.cta-band .btn-ghost{border-color:rgba(255,255,255,.3);color:#fff}
.cta-band .btn-ghost:hover{background:#fff;color:var(--navy);border-color:#fff}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem)}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}}
.field{margin-bottom:1.1rem}
.field label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-2);display:block;margin-bottom:.45rem}
.field input,.field textarea,.field select{width:100%;padding:.85em 1em;border:1px solid var(--line);border-radius:10px;font-family:var(--font-body);font-size:1rem;color:var(--ink);background:#fff;transition:.18s}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,163,224,.12)}
.field textarea{resize:vertical;min-height:120px}
.contact-card{background:var(--navy);color:#fff;border-radius:var(--r-lg);padding:clamp(1.8rem,4vw,2.6rem)}
.contact-card a{color:#fff}
.contact-card .big-phone{font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,3vw,2rem);color:var(--teal);margin:1.4rem 0 .4rem;display:block;letter-spacing:-.02em}
.contact-card .row{padding:1rem 0;border-top:1px solid rgba(255,255,255,.12)}
.contact-card .row .k{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:#7f95a8;margin-bottom:.3rem}
.form-note{font-size:.85rem;color:var(--slate);margin-top:.4rem}
.form-status{display:none;margin-top:1rem;padding:.9rem 1.1rem;border-radius:10px;font-size:.92rem}
.form-status.ok{display:block;background:#e9f9f1;color:#0a7a52;border:1px solid #bfe6d6}
.form-status.err{display:block;background:#fdeee8;color:#b04525;border:1px solid #f3cdbf}

/* breadcrumb */
.crumb{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--slate-2);padding-top:1.4rem}
.crumb a:hover{color:var(--cyan)}
.crumb span{color:var(--cyan)}

/* AI answer mock (illustrative case) */
.ai-snip{display:flex;flex-direction:column;gap:.55rem;padding:1rem;border:1px solid var(--line);border-radius:10px;background:var(--paper-2)}
.ai-snip .bar{height:9px;border-radius:5px;background:#e1e7ec}
.ai-snip .bar.w90{width:90%}.ai-snip .bar.w80{width:80%}.ai-snip .bar.w70{width:70%}.ai-snip .bar.w55{width:55%}.ai-snip .bar.w40{width:40%}
.ai-snip .cite{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.78rem;color:var(--navy);background:linear-gradient(95deg,rgba(0,196,140,.16),rgba(0,163,224,.16));border:1px solid #bfe6d6;border-radius:7px;padding:.5rem .7rem;margin:.15rem 0}
.ai-snip .cite b{color:var(--cyan-d)}
.ai-snip .cite .ck{margin-left:auto;width:16px;height:16px;border-radius:50%;background:var(--grad-2);display:inline-grid;place-items:center}
.ai-snip .cite .ck svg{width:10px;height:10px}
.founder .photo img{width:100%;height:100%;object-fit:cover;display:block}
.case-shot{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;aspect-ratio:520/453}
.case-shot img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}

/* article */
.article{max-width:760px;margin:0 auto}
.article h2{font-size:clamp(1.5rem,3vw,2.1rem);margin:2.4rem 0 1rem}
.article h3{font-size:1.3rem;margin:1.8rem 0 .8rem}
.article p,.article li{font-size:1.05rem;color:#283848;line-height:1.7}
.article ul,.article ol{padding-left:1.3rem;margin:0 0 1.3rem}
.article li{margin-bottom:.5rem}
.article .meta{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;color:var(--slate-2);text-transform:uppercase;margin-bottom:1.4rem}
.article blockquote{margin:1.6rem 0;padding:1rem 1.4rem;border-left:3px solid var(--cyan);background:var(--paper-2);border-radius:0 var(--r) var(--r) 0;font-family:var(--font-display);font-weight:600;color:var(--navy)}
.toc{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.6rem;margin:1.8rem 0}
.toc strong{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-2);display:block;margin-bottom:.7rem}
.toc a{color:var(--cyan);font-size:.95rem;display:block;padding:.25rem 0}

/* insight cards */
.post{display:block;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;transition:.24s}
.post:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#cfe7f4}
.post .top{height:6px;background:var(--grad)}
.post .body{padding:1.6rem}
.post .kicker{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);margin-bottom:.7rem}
.post h3{font-size:1.22rem;margin-bottom:.6rem;line-height:1.2}
.post p{font-size:.92rem;color:var(--slate);margin:0 0 1rem}
.post .more{font-family:var(--font-mono);font-size:.78rem;color:var(--navy);display:inline-flex;gap:.4rem}

/* footer */
.site-footer{background:var(--navy);color:#aebecb;margin-top:clamp(56px,8vw,100px)}
.site-footer a{color:#aebecb;transition:.16s}
.site-footer a:hover{color:#fff}
.f-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem;padding-block:clamp(2.6rem,5vw,4rem)}
.site-footer .brand{color:#fff}
.f-col h5{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:#6d8294;margin:0 0 1.1rem;font-weight:500}
.f-col a,.f-col p{display:block;font-size:.92rem;margin-bottom:.6rem}
.f-bottom{border-top:1px solid rgba(255,255,255,.1);padding-block:1.4rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.05em;color:#6d8294}
@media(max-width:820px){.f-top{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.f-top{grid-template-columns:1fr}}

/* entrance animation — CSS only; content is always visible even without JS */
@keyframes ph-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.reveal{animation:ph-rise .7s cubic-bezier(.2,.7,.2,1) both}
@media(prefers-reduced-motion:reduce){.reveal{animation:none}html{scroll-behavior:auto}}

/* responsive grids */
@media(max-width:980px){.g-4{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:repeat(2,1fr)}.hero-meta{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.g-2,.g-3,.g-4{grid-template-columns:1fr}.svc-row{grid-template-columns:1fr}}

/* mobile nav */
@media(max-width:920px){
  .burger{display:flex}
  .nav-links{position:fixed;inset:72px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--line);padding:1rem var(--pad);transform:translateY(-130%);transition:transform .3s ease;box-shadow:var(--shadow);margin-left:0}
  #nav-toggle:checked ~ .nav .nav-links{transform:translateY(0)}
  .nav-links a{padding:.9rem .4rem;border-bottom:1px solid var(--line-2);border-radius:0}
  .nav-cta .btn{display:none}
}

/* ---------- consent banner + privacy ---------- */
.ph-consent{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#0a1a2b;color:#e7eef4;border-top:2px solid var(--cyan);box-shadow:0 -8px 30px rgba(0,0,0,.25)}
.ph-consent[hidden]{display:none}
.ph-consent-inner{max-width:1100px;margin:0 auto;padding:1.1rem var(--pad);display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap}
.ph-consent p{margin:0;font-size:.9rem;line-height:1.55;max-width:62ch;color:#cdd9e3}
.ph-consent a{color:var(--cyan);text-decoration:underline}
.ph-consent-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.ph-consent .btn{font-size:.78rem}
.ph-consent .btn-ghost{color:#fff;border-color:rgba(255,255,255,.3)}
.ph-consent .btn-ghost:hover{background:rgba(255,255,255,.08)}
@media(max-width:560px){.ph-consent-inner{flex-direction:column;align-items:stretch}.ph-consent-actions .btn{flex:1;justify-content:center}}
@media(max-width:560px){
  .cta-band{padding:1.9rem 1.25rem}
  .hero-cta{width:100%;gap:.7rem}
  .hero-cta .btn{width:100%;justify-content:center;white-space:normal;text-align:center;padding-left:1rem;padding-right:1rem}
}
.consent-field{margin:.4rem 0 1.2rem}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.85rem;line-height:1.5;color:var(--slate);cursor:pointer}
.consent input{margin-top:.2rem;width:18px;height:18px;flex:0 0 auto;accent-color:var(--cyan)}
.consent a{color:var(--cyan);text-decoration:underline}
.f-bottom a.foot-legal-link{color:#8ba0b1;text-decoration:underline;margin-left:1rem}
.f-bottom button.foot-prefs{background:none;border:0;color:#8ba0b1;text-decoration:underline;cursor:pointer;font:inherit;font-size:inherit;margin-left:1rem;padding:0}
.legal-doc{max-width:760px;margin:0 auto}
.legal-doc h2{font-size:clamp(1.3rem,2.6vw,1.7rem);margin:2rem 0 .8rem}
.legal-doc h3{font-size:1.05rem;margin:1.4rem 0 .5rem}
.legal-doc p,.legal-doc li{color:var(--slate);line-height:1.7}
.legal-doc ul{margin:.6rem 0 1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem}
.legal-doc .updated{font-family:var(--font-mono);font-size:.75rem;color:var(--slate-2);letter-spacing:.04em}
.legal-doc .note{font-size:.82rem;color:var(--slate-2);border-left:3px solid var(--line);padding:.6rem 0 .6rem 1rem;margin:1.4rem 0}

/* ---------- mobile hardening ---------- */
html{overflow-x:clip}
img,svg,video{max-width:100%;height:auto}
code{overflow-wrap:anywhere}
.f-bottom span{min-width:0}
@media(max-width:920px){ .nav-cta{margin-left:auto} }
@media(max-width:560px){
  .lang{font-size:.7rem}
  .f-bottom{flex-direction:column;align-items:flex-start;gap:.55rem}
  .f-bottom a.foot-legal-link,.f-bottom button.foot-prefs{margin-left:0}
}
@media(max-width:380px){ .lang a{padding:.26em .4em} .brand{font-size:1.05rem} .nav{gap:.8rem} }
/* ---------- blog (insights posts) ---------- */
.blog-hero{padding:clamp(2rem,5vw,3.4rem) 0 0}
.post-cover{width:100%;border-radius:var(--r-lg);border:1px solid var(--line);display:block;margin:1.6rem 0 0;aspect-ratio:1200/630;object-fit:cover}
.post-cat{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.post-cat .dotc{width:8px;height:8px;border-radius:50%}
.post-faq{max-width:760px;margin:2.6rem auto 0;border-top:1px solid var(--line);padding-top:1.8rem}
.post-faq h2{font-size:clamp(1.4rem,3vw,1.9rem);margin:0 0 1.2rem}
.post-faq details{border-bottom:1px solid var(--line-2);padding:.9rem 0}
.post-faq summary{cursor:pointer;font-family:var(--font-display);font-weight:600;color:var(--navy);font-size:1.02rem;list-style:none}
.post-faq summary::-webkit-details-marker{display:none}
.post-faq summary::before{content:"+";color:var(--cyan);font-weight:700;margin-right:.6em}
.post-faq details[open] summary::before{content:"–"}
.post-faq details p{margin:.7rem 0 0;color:#283848;line-height:1.7}
.post-disc{max-width:760px;margin:2rem auto 0;font-size:.82rem;color:var(--slate-2);border-left:3px solid var(--line);padding:.6rem 0 .6rem 1rem}
.blog-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:1.6rem}
@media(max-width:900px){.blog-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.blog-list{grid-template-columns:1fr}}
.blog-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff;transition:.2s;text-decoration:none}
.blog-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.blog-card img{width:100%;aspect-ratio:1200/630;object-fit:cover;display:block}
.blog-card .bc-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.blog-card h3{font-size:1.06rem;line-height:1.25;color:var(--navy)}
.blog-card p{font-size:.9rem;color:var(--slate);line-height:1.5;margin:0;flex:1}

/* ===== Salvaguarda anti-desborde: todo dentro del marco ===== */
*{min-width:0}
img,svg,video,canvas,iframe,table,pre{max-width:100%}
p,li,h1,h2,h3,h4,h5,blockquote,figcaption,td,th,summary,dd,dt{overflow-wrap:break-word}
a[href^="mailto:"],a[href^="http"],a[href^="tel:"],.big-phone,.f-col a,.ai-snip .cite,code{overflow-wrap:anywhere}
pre{white-space:pre-wrap;word-break:break-word}
@media(max-width:560px){
  .metrics3,.hero-meta,.stats,.blog-list{grid-template-columns:1fr}
  .btn{white-space:normal;text-align:center}
  .wrap{padding-left:18px;padding-right:18px}
  .cta-band,.tier,.contact-card{padding-left:1.25rem;padding-right:1.25rem}
}
