/*
Theme Name: Meridio
Theme URI: https://meridio.ee
Author: mannerist.agency
Author URI: https://mannerist.agency
Description: The Meridian Line — Euroopa täitmistaristu. A bespoke identity theme for Meridio, in Estonian. Edit all homepage text under Appearance → Customize (live preview). English can be added via TranslatePress (/en/).
Version: 2.1.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: meridio
*/

/* ============ SELF-HOSTED FONTS (GDPR — no Google request) ============ */
@font-face{font-family:'Archivo';src:url('fonts/Archivo.woff2') format('woff2');
  font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}
@font-face{font-family:'Inter';src:url('fonts/Inter.woff2') format('woff2');
  font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/PlexMono-Regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/PlexMono-Medium.woff2') format('woff2');
  font-weight:500 700;font-style:normal;font-display:swap}

/* skip link (accessibility) */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:#14171A;color:#F0F1EF;
  padding:12px 18px;font-family:'IBM Plex Mono',monospace;font-size:.8rem;letter-spacing:.1em}
.skip-link:focus{left:8px;top:8px;outline:2px solid #FB6417;outline-offset:2px}

/* ============ MERIDIO — THE MERIDIAN LINE ============ */
:root{
  --paper:#EBEDEB; --ash:#D3D7D6; --steel:#9BA3A3; --graphite:#3A4042;
  --carbon:#14171A; --signal:#FB6417; --signal-hover:#E4560F; --hair:#CDD1CF;
  --paper-ink:#F0F1EF; --ink:#14171A; --muted:#565B59; --mono-muted:#7C8180;
  --f-display:'Archivo',system-ui,sans-serif; --f-body:'Inter',system-ui,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,monospace;
  --t-hero:clamp(2.6rem,6.2vw,5.2rem); --t-h2:clamp(1.9rem,3.4vw,3rem);
  --t-h3:1.35rem; --t-body:1.0625rem; --t-small:.9375rem; --t-label:.75rem; --t-data:.8125rem;
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:96px; --s7:128px;
  --container:1200px; --gutter:24px; --radius:3px; --ease:cubic-bezier(.2,.6,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--f-body);font-size:var(--t-body);line-height:1.6;color:var(--ink);
  background:var(--paper);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1.04;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.mono{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--mono-muted)}
.eyebrow{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.22em;text-transform:uppercase;color:var(--signal)}
.logo{font-family:var(--f-display);font-weight:600;font-stretch:112%;letter-spacing:.14em;text-transform:uppercase;font-size:1.15rem;color:var(--ink)}
.reg{position:relative}
.reg::before,.reg::after{content:"";position:absolute;width:18px;height:18px}
.reg::before{top:0;left:0;border-top:2px solid var(--signal);border-left:2px solid var(--signal)}
.reg::after{bottom:0;right:0;border-bottom:2px solid var(--steel);border-right:2px solid var(--steel)}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-body);font-weight:600;
  font-size:var(--t-small);padding:14px 22px;border-radius:var(--radius);border:1px solid transparent;
  cursor:pointer;transition:.18s var(--ease)}
.btn--signal{background:var(--signal);color:var(--carbon)}
.btn--signal:hover{background:var(--signal-hover)}
.btn--ghost{background:transparent;border-color:var(--hair);color:var(--ink)}
.btn--ghost:hover{border-color:var(--carbon)}
.btn--ghost.on-dark{color:var(--paper-ink);border-color:#3a4247}
.btn--ghost.on-dark:hover{border-color:var(--steel)}
:focus-visible{outline:2px solid var(--signal);outline-offset:3px}

.meta{background:var(--carbon);color:var(--mono-muted);font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.14em}
.meta .container{display:flex;justify-content:space-between;gap:16px;padding-top:8px;padding-bottom:8px}

header{position:sticky;top:0;z-index:50;background:rgba(235,237,235,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--hair)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.nav__links{display:flex;gap:var(--s4);align-items:center}
.nav__links a{font-size:var(--t-small);color:var(--muted);transition:.15s}
.nav__links a:hover{color:var(--ink)}
.nav__cta{display:flex;gap:16px;align-items:center}
.burger{display:none;background:none;border:0;font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;color:var(--ink)}
.langsw{display:flex;gap:7px;align-items:center;font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.1em;color:var(--mono-muted)}
.langsw a{color:var(--mono-muted)}
.langsw a.on{color:var(--ink)}
.langsw a:hover{color:var(--signal)}

.hero{background:var(--carbon);color:var(--paper-ink);position:relative;overflow:hidden}
.hero .container{padding-top:var(--s7);padding-bottom:var(--s7)}
.hero__frame{position:relative;padding:44px 0 0}
.hero h1{font-size:var(--t-hero);max-width:16ch;margin:22px 0 24px}
.hero p{font-size:1.2rem;color:var(--steel);max-width:52ch;margin-bottom:var(--s4)}
.hero__actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero__coord{position:absolute;top:44px;right:0;text-align:right;white-space:pre-line}
.tickline{margin-top:var(--s6);height:1px;background:#2a3034;position:relative}
.tickline i{position:absolute;top:-6px;width:1px;height:12px;background:#3a4247}
.tickline i.live{background:var(--signal);height:16px;top:-8px}

.stats{border-bottom:1px solid var(--hair)}
.stats .container{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair)}
.stat{background:var(--paper);padding:var(--s4) var(--s3)}
.stat .n{font-family:var(--f-mono);font-size:var(--t-data);color:var(--signal);letter-spacing:.1em}
.stat .v{font-family:var(--f-display);font-weight:600;font-size:2.4rem;margin:10px 0 4px}
.stat .k{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--mono-muted)}

section{padding:var(--s7) 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--s5);gap:var(--s4);flex-wrap:wrap}
.sec-head h2{font-size:var(--t-h2);max-width:20ch}
.sec-head p{color:var(--muted);max-width:40ch}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.card{background:var(--paper);padding:var(--s4);min-height:220px;position:relative;transition:.18s var(--ease)}
.card:hover{background:#fff}
.card .n{font-family:var(--f-mono);font-size:var(--t-data);color:var(--signal)}
.card h3{font-size:var(--t-h3);margin:var(--s3) 0 10px}
.card p{color:var(--muted);font-size:var(--t-small)}
.card .arrow{position:absolute;right:var(--s4);bottom:var(--s4);font-family:var(--f-display);font-weight:600;color:var(--steel);opacity:0;transform:translateX(-6px);transition:.18s var(--ease)}
.card:hover .arrow{opacity:1;transform:translateX(0);color:var(--signal)}

.network{background:var(--ash)}
.network .container{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--s6);align-items:center}
.network h2{font-size:var(--t-h2);margin-bottom:var(--s3)}
.network p{color:var(--muted);max-width:44ch}
.nodes{font-family:var(--f-mono);font-size:var(--t-small);letter-spacing:.04em;color:var(--graphite)}
.nodes div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--hair)}
.nodes b{color:var(--carbon);font-weight:600}

.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s3)}
.step{border-top:1px solid var(--hair);padding-top:var(--s3)}
.step .n{font-family:var(--f-mono);color:var(--signal);font-size:var(--t-data)}
.step h3{font-size:1.1rem;margin:14px 0 8px}
.step p{color:var(--muted);font-size:var(--t-small)}

.cta{background:var(--carbon);color:var(--paper-ink);text-align:center}
.cta h2{font-size:var(--t-h2);max-width:22ch;margin:0 auto var(--s4)}

.site-footer{background:var(--carbon);color:var(--steel);padding:var(--s6) 0 var(--s4);border-top:1px solid #23292d}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--s4)}
.foot .logo{color:var(--paper-ink);margin-bottom:16px;display:inline-block}
.foot h4{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--mono-muted);margin-bottom:16px;font-weight:500}
.foot a{display:block;color:var(--steel);font-size:var(--t-small);padding:5px 0}
.foot a:hover{color:var(--paper-ink)}
.foot p{font-size:var(--t-small);max-width:32ch}
.foot__bottom{display:flex;justify-content:space-between;gap:16px;margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid #23292d;font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.12em;color:var(--mono-muted);flex-wrap:wrap}
.foot__bottom a{display:inline;padding:0;color:var(--mono-muted)}
.foot__bottom a:hover{color:var(--paper-ink)}

.page-body{max-width:760px;margin:0 auto;padding:var(--s6) var(--gutter)}
.page-body h1{font-size:var(--t-h2);margin-bottom:var(--s3)}
.page-body p{margin-bottom:var(--s2)}

/* --- sub-pages --- */
.page-hero{background:var(--carbon);color:var(--paper-ink);padding:var(--s7) 0 var(--s6);position:relative}
.page-hero .eyebrow{display:block;margin-bottom:14px}
.page-hero h1{font-size:clamp(2.2rem,4.6vw,3.6rem);max-width:20ch;margin-bottom:20px}
.page-hero p{color:var(--steel);max-width:56ch;font-size:1.15rem}
.svc-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair);border:1px solid var(--hair)}
.svc-list .card{min-height:200px}
.svc-list .card p{font-size:var(--t-body)}
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--s6);align-items:start}
.cinfo div{padding:16px 0;border-bottom:1px solid var(--hair)}
.cinfo .lbl{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--mono-muted);margin-bottom:6px}
.cinfo a,.cinfo span{font-size:1.1rem;color:var(--ink)}
.cform{position:relative}
.cform label{display:block;font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--mono-muted);margin-bottom:16px}
.cform input,.cform textarea{display:block;width:100%;margin-top:8px;padding:13px 14px;border:1px solid var(--hair);border-radius:var(--radius);background:#fff;font-family:var(--f-body);font-size:var(--t-body);color:var(--ink)}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--carbon);box-shadow:0 0 0 2px var(--signal)}
.cform .hp{position:absolute;left:-9999px}
.cform button{margin-top:6px;border:0;cursor:pointer}
.formnote{padding:14px 18px;border-radius:var(--radius);margin-bottom:var(--s3);font-size:var(--t-small)}
.formnote.ok{background:#e7efe7;color:#2a4a2a;border:1px solid #cfe0cf}
.formnote.err{background:#f6e7e2;color:#7a3a2a;border:1px solid #e6cfc6}
@media(max-width:1024px){.svc-list,.principles{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr;gap:var(--s4)}}

@media(max-width:1024px){
  .grid3{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr);gap:var(--s4)}
  .network .container{grid-template-columns:1fr;gap:var(--s4)}
  .foot{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .nav__links{display:none}
  .nav__links.open{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--hair);padding:var(--s3) var(--gutter);gap:var(--s3)}
  .burger{display:block}
  .stats .container{grid-template-columns:repeat(2,1fr)}
  .grid3{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr}
  .hero__coord{display:none}
  section{padding:var(--s6) 0}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}
