/* =========================================================
   ΛΑΚΩΝΙΚΗ ΨΥΧΑΓΩΓΙΑ Ι.Κ.Ε. — styles
   Mobile-first · λευκό θέμα · τετράγωνες γωνίες · αχνοί διαχωριστές
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
  --bg:#ffffff;
  --bg-soft:#fafaf9;
  --ink:#101010;
  --ink-2:#2e2e2e;
  --muted:#6d6a66;
  --line:#e8e5e1;
  --line-2:#d5d1cb;
  --accent:#8a5a2b;

  --wrap:1120px;
  --pad:20px;
  --gap:clamp(28px,5vw,56px);
  --sec-y:clamp(56px,9vw,110px);

  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;

  --t:180ms cubic-bezier(.2,.6,.3,1);
}

/* Κλίμακα κειμένου (widget προσβασιμότητας) */
html[data-fs="1"]{ font-size:112.5%; }
html[data-fs="2"]{ font-size:125%; }

/* Υψηλή αντίθεση */
html[data-contrast="on"]{
  --ink:#000000;
  --ink-2:#000000;
  --muted:#1c1c1c;
  --line:#000000;
  --line-2:#000000;
  --accent:#5c3510;
  --bg-soft:#ffffff;
}
html[data-contrast="on"] .card,
html[data-contrast="on"] .facts > div,
html[data-contrast="on"] .btn{ border-width:2px; }
/* Ο διακόπτης παραμένει ευανάγνωστος σε υψηλή αντίθεση */
html[data-contrast="on"] .switch::after{ background:transparent; box-shadow:inset 0 0 0 1px #000; }
html[data-contrast="on"] .a11y-toggle[aria-pressed="true"] .switch::after{ background:#fff; box-shadow:none; }

/* Έμφαση συνδέσμων */
html[data-links="on"] a:not(.btn):not(.brand):not(.skip),
html[data-links="on"] .linkish{
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:2px;
  outline:1px dashed var(--accent);
  outline-offset:3px;
}
html[data-links="on"] .brand{ text-decoration:underline; text-underline-offset:4px; }

/* Μείωση κίνησης */
html[data-motion="reduce"] *,
html[data-motion="reduce"] *::before,
html[data-motion="reduce"] *::after{
  animation-duration:.001ms !important;
  animation-iteration-count:1 !important;
  transition-duration:.001ms !important;
  scroll-behavior:auto !important;
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* ---------- Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.65;
  font-feature-settings:"kern" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-wrap:break-word;
}
img,svg{ max-width:100%; }
h1,h2,h3{ margin:0; font-weight:600; letter-spacing:-.02em; line-height:1.12; }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
dl,dd,dt{ margin:0; }
a{ color:inherit; text-decoration:none; }
a:hover{ color:var(--accent); }
button{ font:inherit; color:inherit; }

:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}

/* Τετράγωνες γωνίες παντού */
*{ border-radius:0 !important; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad); }

.skip{
  position:absolute; left:var(--pad); top:-100px; z-index:100;
  background:var(--ink); color:#fff; padding:12px 16px; font-weight:600;
  transition:top var(--t);
}
.skip:focus{ top:12px; color:#fff; }

/* ---------- Header ---------- */
.site-head{
  position:sticky; top:0; z-index:40;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);
}
.head-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; min-height:66px;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{
  display:grid; place-items:center;
  width:38px; height:38px; flex:none;
  border:1px solid var(--ink);
  background:var(--ink); color:#fff;
  font-size:.8rem; font-weight:700; letter-spacing:.06em;
}
.brand-text{ display:flex; flex-direction:column; line-height:1.2; }
.brand-text strong{ font-size:.98rem; font-weight:600; letter-spacing:-.01em; }
.brand-text span{ font-size:.72rem; color:var(--muted); letter-spacing:.08em; text-transform:uppercase; }

.nav-toggle{
  display:inline-flex; align-items:center; gap:9px;
  background:none; border:1px solid var(--line-2);
  padding:9px 13px; cursor:pointer; font-size:.85rem; font-weight:500;
  transition:border-color var(--t),background var(--t);
}
.nav-toggle:hover{ border-color:var(--ink); }
.nav-toggle-bars{ display:grid; gap:4px; width:16px; }
.nav-toggle-bars i{ display:block; height:1.5px; background:var(--ink); transition:transform var(--t),opacity var(--t); }
.nav-toggle[aria-expanded="true"] i:nth-child(1){ transform:translateY(5.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] i:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] i:nth-child(3){ transform:translateY(-5.5px) rotate(-45deg); }

.site-nav{
  position:absolute; left:0; right:0; top:100%;
  background:var(--bg);
  border-bottom:1px solid var(--line);
  display:none;
}
.site-nav.open{ display:block; }
.site-nav ul{ padding:6px var(--pad) 18px; }
.site-nav li + li{ border-top:1px solid var(--line); }
.site-nav a{
  display:block; padding:14px 0; font-size:1rem; color:var(--ink-2);
}
.site-nav a:hover,.site-nav a[aria-current="true"]{ color:var(--ink); }

@media (min-width:900px){
  .nav-toggle{ display:none; }
  .site-nav{ position:static; display:block; border:0; background:none; }
  .site-nav ul{ display:flex; gap:28px; padding:0; }
  .site-nav li + li{ border:0; }
  .site-nav a{
    padding:6px 0; font-size:.9rem; position:relative;
  }
  .site-nav a::after{
    content:""; position:absolute; left:0; right:0; bottom:0;
    height:1px; background:var(--ink); transform:scaleX(0); transform-origin:left;
    transition:transform var(--t);
  }
  .site-nav a:hover::after,.site-nav a[aria-current="true"]::after{ transform:scaleX(1); }
}

/* ---------- Sections ---------- */
.section{ padding-block:var(--sec-y); scroll-margin-top:80px; }
.section + .section{ border-top:1px solid var(--line); }

.eyebrow{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent); font-weight:600; margin-bottom:22px;
}
.kicker{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); font-weight:600; margin-bottom:16px;
}
.section h2{ font-size:clamp(1.6rem,4.2vw,2.4rem); max-width:20ch; }
.section-note{ color:var(--muted); margin-top:16px; max-width:62ch; font-size:.98rem; }

.grid-2{ display:grid; gap:var(--gap); }
@media (min-width:900px){
  .grid-2{ grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:clamp(48px,7vw,96px); }
}

.prose p + p{ margin-top:16px; }
.prose{ color:var(--ink-2); max-width:64ch; }
.prose strong{ color:var(--ink); font-weight:600; }
.prose h3{ font-size:1rem; margin-top:26px; margin-bottom:8px; }
.prose ul{ list-style:none; margin-top:10px; }
.prose ul li{ position:relative; padding-left:18px; margin-top:8px; }
.prose ul li::before{
  content:""; position:absolute; left:0; top:.72em;
  width:7px; height:1px; background:var(--line-2);
}

/* ---------- Hero ---------- */
.hero{ padding-top:clamp(48px,8vw,88px); }
.hero h1{ font-size:clamp(2.1rem,7.2vw,4rem); max-width:17ch; }
.lede{
  margin-top:24px; max-width:58ch; font-size:clamp(1rem,2.4vw,1.13rem);
  color:var(--ink-2);
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 26px; min-height:48px;
  border:1px solid var(--ink); background:none; color:var(--ink);
  font-size:.92rem; font-weight:500; letter-spacing:.01em; cursor:pointer;
  transition:background var(--t),color var(--t),border-color var(--t);
}
.btn:hover{ background:var(--ink); color:#fff; }
.btn-primary{ background:var(--ink); color:#fff; }
.btn-primary:hover{ background:#fff; color:var(--ink); }

.facts{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:clamp(48px,8vw,80px);
  border:1px solid var(--line);
}
.facts > div{ padding:20px 18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.facts > div:nth-child(2n){ border-right:0; }
.facts > div:nth-last-child(-n+2){ border-bottom:0; }
.facts dt{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.facts dd{ margin-top:6px; font-size:1rem; font-weight:600; letter-spacing:-.01em; }
@media (min-width:760px){
  .facts{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .facts > div{ border-bottom:0; padding:24px; }
  .facts > div:nth-child(2n){ border-right:1px solid var(--line); }
  .facts > div:last-child{ border-right:0; }
}

/* ---------- Cards ---------- */
.cards{ display:grid; gap:0; margin-top:clamp(32px,5vw,52px); border:1px solid var(--line); }
.card{ padding:28px 22px; border-bottom:1px solid var(--line); transition:background var(--t); }
.card:last-child{ border-bottom:0; }
.card:hover{ background:var(--bg-soft); }
.card-num{
  display:block; font-family:var(--mono); font-size:.72rem;
  color:var(--accent); letter-spacing:.1em; margin-bottom:14px;
}
.card h3{ font-size:1.18rem; }
.card p{ margin-top:10px; color:var(--muted); font-size:.95rem; }
@media (min-width:820px){
  .cards{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .card{ border-bottom:0; border-right:1px solid var(--line); padding:34px 28px; }
  .card:last-child{ border-right:0; }
}

/* ---------- Λίστα ΚΑΔ ---------- */
.kad-group{ margin-top:clamp(38px,6vw,60px); }
.kad-group .list-head{
  list-style:none;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  cursor:pointer;
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); font-weight:600;
  padding-bottom:12px;
  border-bottom:1px solid var(--ink);
  transition:color var(--t);
}
.kad-group .list-head::-webkit-details-marker{ display:none; }
.kad-group .list-head::after{
  content:"";
  flex:0 0 auto;
  width:.55em; height:.55em;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
  transition:transform var(--t);
  margin-bottom:.2em;
}
.kad-group[open] .list-head{ color:var(--ink); }
.kad-group[open] .list-head::after{ transform:rotate(-135deg); margin-bottom:-.15em; }
.kad-group .list-head:hover,
.kad-group .list-head:focus-visible{ color:var(--ink); }
.kad-group .list-head:focus-visible{ outline:2px solid var(--ink); outline-offset:4px; }
.kad li{
  display:grid; gap:4px 18px;
  grid-template-columns:1fr auto;
  padding:16px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.kad-code{
  grid-column:1/-1;
  font-family:var(--mono); font-size:.74rem; letter-spacing:.06em; color:var(--accent);
}
.kad-desc{ color:var(--ink-2); font-size:.96rem; }
.tag{
  align-self:center; justify-self:start;
  font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  border:1px solid var(--line-2); padding:4px 8px; color:var(--muted);
  margin-top:4px;
}
.tag-main{ border-color:var(--ink); color:var(--ink); }
@media (min-width:700px){
  .kad li{ grid-template-columns:110px 1fr auto; align-items:baseline; }
  .kad-code{ grid-column:auto; }
  .tag{ margin-top:0; }
}

/* ---------- Μητρώο ---------- */
.registry{ margin-top:clamp(30px,5vw,46px); border-top:1px solid var(--ink); }
.registry .row{
  display:grid; gap:4px;
  padding:16px 0; border-bottom:1px solid var(--line);
}
.registry dt{ font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.registry dd{ font-size:.98rem; color:var(--ink); }
@media (min-width:640px){
  .registry .row{ grid-template-columns:minmax(150px,32%) 1fr; gap:24px; align-items:baseline; }
}
.registry.contact{ margin-top:0; }
@media (min-width:900px){ .registry.contact{ margin-top:8px; } }

.status{
  display:inline-flex; align-items:center; gap:8px; font-weight:600;
}
.status::before{
  content:""; width:7px; height:7px; background:var(--accent); flex:none;
}
.todo{
  color:var(--muted); font-style:italic;
  border-bottom:1px dashed var(--line-2); padding-bottom:2px;
}

/* ---------- Footer ---------- */
.site-foot{
  border-top:1px solid var(--ink);
  padding-block:clamp(40px,6vw,64px);
  padding-bottom:clamp(88px,9vw,104px); /* χώρος για το πλωτό widget */
  background:var(--bg-soft);
}
.foot-top{ display:flex; flex-direction:column; gap:26px; }
.foot-links{ display:flex; flex-wrap:wrap; gap:8px 24px; }
.linkish{
  background:none; border:0; padding:0; cursor:pointer;
  font-size:.9rem; color:var(--muted); text-align:left;
  border-bottom:1px solid transparent; transition:color var(--t),border-color var(--t);
}
.linkish:hover{ color:var(--ink); border-color:var(--ink); }
.legal{
  margin-top:30px; padding-top:24px; border-top:1px solid var(--line);
  font-size:.8rem; color:var(--muted); line-height:1.8; max-width:80ch;
}
.copy{ margin-top:14px; font-size:.8rem; color:var(--muted); }
@media (min-width:760px){
  .foot-top{ flex-direction:row; align-items:center; justify-content:space-between; }
}

/* ---------- Cookie bar ---------- */
.cookie-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  background:var(--bg);
  border-top:1px solid var(--ink);
  box-shadow:0 -14px 40px rgba(16,16,16,.07);
  padding-block:18px;
  padding-bottom:calc(18px + env(safe-area-inset-bottom));
}
.cookie-bar[hidden]{ display:none; }
.cookie-inner{ display:flex; flex-direction:column; gap:16px; }
.cookie-text h2{ font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.cookie-text p{ margin-top:8px; font-size:.88rem; color:var(--ink-2); max-width:74ch; line-height:1.6; }
.cookie-text .linkish{ font-size:.88rem; color:var(--accent); border-bottom-color:currentColor; }
.cookie-actions{ display:flex; gap:10px; }
.cookie-actions .btn{ flex:1; min-height:46px; padding-inline:20px; }
@media (min-width:820px){
  .cookie-inner{ flex-direction:row; align-items:center; justify-content:space-between; gap:36px; }
  .cookie-actions .btn{ flex:none; }
}

/* ---------- Widget προσβασιμότητας ---------- */
.a11y{ position:fixed; right:16px; bottom:16px; z-index:70; }
.a11y-fab{
  width:54px; height:54px; display:grid; place-items:center;
  background:var(--ink); color:#fff; border:1px solid var(--ink);
  cursor:pointer; box-shadow:0 6px 24px rgba(16,16,16,.18);
  transition:transform var(--t),background var(--t);
}
.a11y-fab:hover{ transform:translateY(-2px); }
.a11y-fab svg{ width:26px; height:26px; fill:currentColor; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; }
.a11y-fab svg path{ fill:none; }
body.cookie-open .a11y{ bottom:calc(16px + var(--cookie-h,132px)); }

.a11y-panel{
  position:absolute; right:0; bottom:66px;
  width:min(88vw,320px);
  background:var(--bg); border:1px solid var(--ink);
  box-shadow:0 18px 50px rgba(16,16,16,.16);
}
.a11y-panel[hidden]{ display:none; }
.a11y-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; border-bottom:1px solid var(--line);
}
.a11y-head h2{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; }
.a11y-close{ background:none; border:0; cursor:pointer; font-size:.95rem; padding:6px; line-height:1; }
.a11y-body{ padding:16px; }
.a11y-tool{ margin-bottom:14px; }
.a11y-label{ display:block; font-size:.82rem; color:var(--muted); margin-bottom:8px; }
.seg{ display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line-2); }
.seg button{
  background:none; border:0; border-right:1px solid var(--line-2);
  padding:10px 4px; font-size:.74rem; cursor:pointer; min-height:42px;
  transition:background var(--t),color var(--t);
}
.seg button:last-child{ border-right:0; }
.seg button[aria-pressed="true"]{ background:var(--ink); color:#fff; font-weight:600; }

.a11y-toggle{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:none; border:1px solid var(--line-2); cursor:pointer;
  padding:12px 14px; min-height:48px; margin-top:8px; font-size:.88rem; text-align:left;
  transition:border-color var(--t);
}
.a11y-toggle:hover{ border-color:var(--ink); }
.switch{ width:34px; height:18px; border:1px solid var(--line-2); position:relative; flex:none; }
.switch::after{
  content:""; position:absolute; top:2px; left:2px; width:12px; height:12px;
  background:var(--line-2); transition:transform var(--t),background var(--t);
}
.a11y-toggle[aria-pressed="true"]{ border-color:var(--ink); }
.a11y-toggle[aria-pressed="true"] .switch{ border-color:var(--ink); background:var(--ink); }
.a11y-toggle[aria-pressed="true"] .switch::after{ transform:translateX(16px); background:#fff; }

.a11y-reset{
  width:100%; margin-top:16px; padding:11px; min-height:44px;
  background:none; border:1px solid var(--line-2); cursor:pointer; font-size:.82rem;
  transition:border-color var(--t),background var(--t);
}
.a11y-reset:hover{ border-color:var(--ink); background:var(--bg-soft); }
.a11y-note{ margin-top:12px; font-size:.72rem; color:var(--muted); line-height:1.55; }

/* ---------- Modals ---------- */
.modal{
  border:1px solid var(--ink); padding:0; background:var(--bg); color:var(--ink);
  width:min(94vw,720px); max-height:86vh; max-width:none;
  margin:auto;
}
.modal::backdrop{ background:rgba(16,16,16,.5); }
.modal-head{
  position:sticky; top:0; background:var(--bg);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px var(--pad); border-bottom:1px solid var(--line);
}
.modal-head h2{ font-size:1.15rem; }
.modal-close{ background:none; border:1px solid var(--line-2); cursor:pointer; padding:8px 11px; line-height:1; }
.modal-close:hover{ border-color:var(--ink); }
.modal-body{ padding:22px var(--pad) 32px; overflow-y:auto; font-size:.94rem; }
.modal[open]{ display:flex; flex-direction:column; }

/* ---------- Print ---------- */
@media print{
  .site-head,.a11y,.cookie-bar,.hero-actions{ display:none !important; }
  .section{ padding-block:18px; }
  body{ font-size:11pt; }
}
