/*
Theme Name: PPCO LakeWave
Theme URI: https://ppco.pl
Author: Polski Portal Cyfrowej Optymalizacji
Author URI: https://ppco.pl
Description: Autorski, lekki motyw mobile-first z dynamiczną taflą górskiego jeziora (WebGL). Pozycjonowanie stron, UI/UX Design, SEM.
Version: 1.1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: ppco-lakewave
*/

/* ============ TOKENY ============ */
:root{
  --glebia:#06272C;      /* tło strony — głębia jeziora */
  --ton:#0E4A50;         /* toń — powierzchnie */
  --ton-2:#0A3A40;
  --lod:#EAF6F3;         /* tekst główny — lód */
  --mgla:#9CC3BE;        /* tekst wyciszony */
  --kaustyka:#F2B441;    /* akcent — złoto słońca na wodzie */
  --kaustyka-2:#FFD87A;
  --granit:#0B1E22;      /* karty */
  --linia:rgba(234,246,243,.14);
  --font-display:'Unbounded',system-ui,sans-serif;
  --font-body:'Manrope',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
  --r:18px;
  --max:1120px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--glebia);
  color:var(--lod);
  font-family:var(--font-body);
  font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--kaustyka-2);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--kaustyka);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}

/* ============ TYPOGRAFIA ============ */
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;letter-spacing:-.01em}
h1{font-size:clamp(1.6rem,6.4vw,3.4rem)}
h2{font-size:clamp(1.35rem,4.6vw,2.2rem);margin-bottom:.6em}
h3{font-size:clamp(1.05rem,3.4vw,1.35rem)}
.eyebrow{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--kaustyka);display:block;margin-bottom:14px;
}
.lead{color:var(--mgla);font-size:clamp(1rem,2.6vw,1.15rem);max-width:56ch}

/* ============ NAGŁÓWEK ============ */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 16px;
  background:linear-gradient(180deg,rgba(6,39,44,.85),rgba(6,39,44,0));
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:.95rem;color:var(--lod)}
.brand:hover{text-decoration:none}
.brand-mark{
  width:34px;height:34px;border-radius:50%;flex:none;
  background:radial-gradient(circle at 35% 30%,var(--kaustyka-2),var(--kaustyka) 45%,var(--ton) 46%,var(--glebia));
  box-shadow:0 0 0 1px var(--linia),0 6px 18px rgba(0,0,0,.4);
}
.brand span{display:none}
.header-actions{display:flex;gap:8px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-body);font-weight:700;font-size:.88rem;
  padding:10px 16px;border-radius:999px;border:1px solid var(--linia);
  cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
  text-decoration:none;
}
.btn:hover{text-decoration:none;transform:translateY(-2px)}
.btn-call{background:var(--kaustyka);color:#231800;border-color:transparent;box-shadow:0 8px 24px rgba(242,180,65,.35)}
.btn-call:hover{background:var(--kaustyka-2)}
.btn-write{background:rgba(234,246,243,.08);color:var(--lod)}
.btn-write:hover{background:rgba(234,246,243,.16)}
.btn-ghost{background:transparent;color:var(--mgla)}
.btn-sound{width:42px;height:42px;padding:0;border-radius:50%;background:rgba(234,246,243,.08);color:var(--lod);font-size:1rem}
.call-num{display:none}
@media(min-width:560px){
  .brand span{display:inline}
  .call-num{display:inline}
  .site-header{padding:14px 24px}
}

/* ============ HERO — TAFLA JEZIORA NA POŁOWIE EKRANU ============ */
.hero{position:relative;min-height:92svh;display:flex;flex-direction:column;overflow:hidden;background:var(--glebia)}
/* MOBILE: woda u góry (~44% wysokości), tekst pod nią na jednolitym tle */
.lake-wrap{position:relative;width:100%;height:44svh;flex:none}
#lake{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y}
.lake-wrap::after{ /* zejście wody w tło */
  content:"";position:absolute;inset:auto 0 0 0;height:34%;
  background:linear-gradient(180deg,transparent,var(--glebia));pointer-events:none;
}
.hero-inner{position:relative;z-index:3;width:100%;max-width:var(--max);margin:0 auto;padding:26px 20px calc(96px + 3vh)}
.hero h1{font-size:clamp(1.3rem,4.6vw,2.4rem);max-width:24ch}
.hero .lead{margin-top:16px}
.hero-hint{
  margin-top:22px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mgla);display:flex;align-items:center;gap:10px;max-width:40ch;
}
.hero-hint::before{content:"";width:34px;height:1px;background:var(--kaustyka);flex:none}

/* DESKTOP: tekst po lewej połowie, woda po prawej — zero nakładania na napis */
@media(min-width:900px){
  .hero{flex-direction:row;align-items:flex-end}
  .lake-wrap{position:absolute;top:0;right:0;bottom:0;left:50%;width:50%;height:100%}
  .lake-wrap::after{height:26%}
  .lake-wrap::before{ /* miękki szew między połówkami */
    content:"";position:absolute;top:0;bottom:0;left:0;width:120px;z-index:2;
    background:linear-gradient(90deg,var(--glebia),transparent);pointer-events:none;
  }
  .hero-inner{width:50%;max-width:calc(var(--max)/2);margin:0 0 0 max(20px,calc((100vw - var(--max))/2));padding:120px 40px calc(110px + 4vh) 20px}
}
.no-webgl .lake-wrap{background:radial-gradient(120% 90% at 50% 0%,var(--ton) 0%,var(--glebia) 70%)}

/* ============ KAFELKI 3D ============ */
.tiles{position:relative;z-index:3;margin-top:-84px}
.tiles-grid{display:grid;gap:16px}
.tile{
  --tx:0deg;--ty:0deg;
  position:relative;border-radius:var(--r);padding:26px 22px 24px;
  background:linear-gradient(160deg,rgba(234,246,243,.10),rgba(234,246,243,.03) 40%),var(--granit);
  border:1px solid var(--linia);
  box-shadow:0 24px 60px -18px rgba(0,0,0,.65),inset 0 1px 0 rgba(234,246,243,.18);
  transform:perspective(900px) rotateX(var(--tx)) rotateY(var(--ty));
  transition:transform .25s ease,box-shadow .25s ease;
  transform-style:preserve-3d;
}
.tile:hover{box-shadow:0 34px 80px -16px rgba(0,0,0,.75),inset 0 1px 0 rgba(234,246,243,.25)}
.tile-num{
  font-family:var(--font-mono);font-size:.7rem;color:var(--kaustyka);
  letter-spacing:.2em;display:block;margin-bottom:14px;
}
.tile h3{margin-bottom:10px;transform:translateZ(24px)}
.tile p{color:var(--mgla);font-size:.94rem;transform:translateZ(12px)}
.tile-glow{
  position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
  background:radial-gradient(320px circle at var(--gx,50%) var(--gy,20%),rgba(242,180,65,.16),transparent 60%);
  transition:opacity .3s;
}
.tile:hover .tile-glow{opacity:1}
@media(min-width:760px){.tiles-grid{grid-template-columns:repeat(3,1fr);gap:20px}}

/* ============ SEKCJE ============ */
.section{padding:72px 0 0}
.section-head{margin-bottom:28px}

/* ============ LOGA HOSTINGÓW ============ */
.hosts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.host{
  display:flex;align-items:center;justify-content:center;min-height:76px;padding:14px;
  border:1px solid var(--linia);border-radius:14px;background:rgba(234,246,243,.04);
  transition:transform .2s,border-color .2s,background .2s;
}
.host:hover{transform:translateY(-3px);border-color:var(--kaustyka);background:rgba(242,180,65,.07);text-decoration:none}
.host svg{height:26px;width:auto}
.host .wordmark{font-family:var(--font-display);font-size:1rem;color:var(--lod);letter-spacing:.01em}
.host .wordmark b{color:var(--kaustyka);font-weight:600}
.hosts-note{margin-top:12px;font-size:.78rem;color:var(--mgla)}
@media(min-width:760px){.hosts{grid-template-columns:repeat(5,1fr)}}

/* ============ NOWOŚCI ============ */
.news-chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{
  font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;
  padding:8px 14px;border-radius:999px;border:1px solid var(--linia);color:var(--mgla);
}
.chip-hot{border-color:var(--kaustyka);color:var(--kaustyka)}

/* ============ ARTYKUŁY ============ */
.articles{display:grid;gap:26px;margin-top:8px}
.article{
  border:1px solid var(--linia);border-radius:var(--r);overflow:hidden;
  background:linear-gradient(180deg,rgba(234,246,243,.05),transparent 120px),var(--granit);
}
.article-body{padding:26px 20px 30px}
.article h2{margin:6px 0 4px}
.article-meta{
  display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 20px;
  font-family:var(--font-mono);font-size:.74rem;color:var(--mgla);
}
.article-meta b{color:var(--lod);font-weight:600}
.article p{margin:0 0 16px;color:#CFE4E0}
.article strong{color:var(--lod)}
.article h3{margin:26px 0 10px;color:var(--kaustyka-2)}
.article ul,.article ol{margin:0 0 16px 22px;color:#CFE4E0}
.article li{margin-bottom:8px}
.article li::marker{color:var(--kaustyka)}

/* tabele danych */
.data-table{width:100%;border-collapse:collapse;margin:0 0 22px;font-size:.86rem;overflow:hidden;border-radius:12px}
.data-table caption{
  caption-side:top;text-align:left;font-family:var(--font-mono);font-size:.72rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--kaustyka);padding-bottom:10px;
}
.data-table th,.data-table td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--linia);vertical-align:top}
.data-table thead th{
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--mgla);background:rgba(234,246,243,.05);
}
.data-table tbody th{font-weight:700;color:var(--lod);font-family:var(--font-body)}
.data-table .num{font-family:var(--font-mono)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 22px;border:1px solid var(--linia);border-radius:12px}
.table-scroll .data-table{margin:0;border-radius:0}
.btn-mini{
  display:inline-block;padding:7px 14px;border-radius:999px;background:var(--kaustyka);
  color:#231800;font-weight:800;font-size:.78rem;white-space:nowrap;
}
.btn-mini:hover{background:var(--kaustyka-2);text-decoration:none}
.badge-win{display:inline-block;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;color:var(--kaustyka);border:1px solid var(--kaustyka);border-radius:999px;padding:2px 9px;margin-left:8px;vertical-align:middle}

/* ============ MODAL E-MAIL ============ */
.modal{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(3,18,21,.72);backdrop-filter:blur(4px)}
.modal-card{
  position:relative;width:min(440px,100%);border-radius:20px;padding:30px 24px;
  background:var(--ton-2);border:1px solid var(--linia);
  box-shadow:0 40px 100px rgba(0,0,0,.6);text-align:center;
}
.modal-card h3{margin-bottom:6px}
.modal-card p{color:var(--mgla);font-size:.9rem;margin-bottom:18px}
.modal-mail{
  font-family:var(--font-mono);font-size:clamp(.95rem,4vw,1.15rem);color:var(--kaustyka-2);
  background:rgba(0,0,0,.28);border:1px dashed var(--linia);border-radius:12px;
  padding:14px;margin-bottom:16px;user-select:all;word-break:break-all;
}
.modal-actions{display:grid;gap:10px}
.modal-close{position:absolute;top:12px;right:12px;background:none;border:0;color:var(--mgla);font-size:1.3rem;cursor:pointer;line-height:1;padding:6px}
.copied{color:var(--kaustyka)!important}
@media(min-width:480px){.modal-actions{grid-template-columns:1fr 1fr}}

/* ============ STOPKA ============ */
.site-footer{margin-top:88px;border-top:1px solid var(--linia);background:linear-gradient(180deg,transparent,rgba(0,0,0,.35))}
.footer-table-wrap{display:none} /* tabela tylko na desktopie — wymóg briefu */
.footer-inner{padding:40px 20px;max-width:var(--max);margin:0 auto;display:flex;flex-direction:column;gap:22px}
.footer-nav{display:flex;flex-wrap:wrap;gap:8px 24px}
.footer-nav a{color:var(--mgla);font-size:.9rem}
.footer-nav a:hover{color:var(--lod)}
.footer-brand{font-family:var(--font-display);font-size:.9rem}
.footer-copy{font-size:.78rem;color:var(--mgla)}
@media(min-width:900px){
  .footer-table-wrap{display:block;padding:56px 20px 0;max-width:var(--max);margin:0 auto}
  .footer-inner{flex-direction:row;align-items:center;justify-content:space-between}
}

/* ============ RUCH OGRANICZONY ============ */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto}
}
