/*
Theme Name: Papagiannoulas Law
Description: Μινιμαλικό τρίγλωσσο (EL/EN/FR) θέμα για δικηγορικό γραφείο: αρχική, βιογραφικό, επικοινωνία με φόρμα και χάρτη, νομολογία και άρθρα.
Version: 1.3
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: pplf
*/

:root{
  --paper:#F8F9F9; --card:#FFFFFF; --ink:#16222C; --muted:#56636E; --line:#D8DEE2; --wash:#EAF0F1;
  --accent:#2D5A62; --accent-dark:#1F4148; --radius:6px;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.65}
img{max-width:100%;height:auto}
a{color:var(--accent);text-underline-offset:.2em}
a:hover{color:var(--accent-dark)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}
.wrap{width:min(1080px,100% - 2.5rem);margin-inline:auto}
.screen-reader-text{position:absolute;left:-9999px}

/* Κεφαλίδα */
.site-header{position:relative;z-index:40;border-bottom:1px solid var(--line);background:var(--paper)}
.bar{display:flex;align-items:center;gap:1.5rem;padding:1.25rem 0}
.brand{font-family:var(--serif);font-size:1.15rem;color:var(--ink);text-decoration:none}
.nav{margin-left:auto}
.menu{list-style:none;margin:0;padding:0;display:flex;gap:1.75rem}
.menu a{color:var(--muted);text-decoration:none;font-size:.95rem;padding:.25rem 0;border-bottom:1px solid transparent}
.menu a:hover,.menu .current-menu-item>a,.menu .current-menu-ancestor>a{color:var(--ink);border-bottom-color:var(--accent)}

/* Γλώσσες */
.lang-box{display:flex;align-items:center;gap:.5rem;color:var(--muted)}
.lang-box .icon{width:18px;height:18px;flex:none}
.langs{list-style:none;margin:0;padding:0;display:flex;gap:.9rem;font-size:.85rem}
.langs a{color:var(--muted);text-decoration:none;text-transform:uppercase;padding:.25rem 0;border-bottom:1px solid transparent}
.langs a:hover{color:var(--ink)}
.langs .current-lang a{color:var(--ink);border-bottom-color:var(--accent)}

/* Burger: τρεις γραμμές που γίνονται Χ */
.nav-toggle{display:none;position:relative;width:44px;height:44px;background:none;border:0;padding:0;color:var(--ink);cursor:pointer}
.bars{position:absolute;left:10px;top:15px;width:24px;height:14px;display:block}
.bars i{position:absolute;left:0;width:24px;height:2px;background:currentColor;border-radius:1px;transition:transform .3s ease,opacity .2s ease,top .3s ease}
.bars i:nth-child(1){top:0}
.bars i:nth-child(2){top:6px}
.bars i:nth-child(3){top:12px}
.nav-toggle[aria-expanded="true"] .bars i:nth-child(1){top:6px;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bars i:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-toggle[aria-expanded="true"] .bars i:nth-child(3){top:6px;transform:rotate(-45deg)}

/* Κινητό: το μενού ανοίγει μόνο με πάτημα, πάνω από τη σελίδα */
@media (max-width:720px){
  .bar{flex-wrap:nowrap;gap:.75rem;padding:.5rem 0}
  .brand{flex:1 1 0;min-width:0;font-size:1.05rem;line-height:1.25}
  .lang-box{flex:none}
  .nav-toggle{display:inline-block;flex:none;margin-right:-10px}
  .nav{position:absolute;top:100%;left:0;right:0;margin:0;z-index:50;background:var(--paper);
    border-bottom:1px solid var(--line);box-shadow:0 18px 24px -18px rgba(22,34,44,.4);
    padding:.25rem max(1.25rem,calc((100vw - 1080px)/2)) .75rem;
    opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}
  .nav.open{opacity:1;visibility:visible;transform:none;transition:opacity .25s ease,transform .25s ease,visibility 0s}
  .menu{flex-direction:column;gap:0}
  .menu li+li{border-top:1px solid var(--line)}
  .menu a{display:block;padding:.85rem 0;font-size:1.05rem;border-bottom:0}
  .menu .current-menu-item>a,.menu .current-menu-ancestor>a{color:var(--ink);box-shadow:inset 2px 0 0 var(--accent);padding-left:.8rem}
}
@media (prefers-reduced-motion:reduce){
  .bars i,.nav,.nav.open{transition:none}
}

/* Αρχική */
.hero{padding:clamp(3.5rem,9vw,7rem) 0 clamp(2.5rem,6vw,4.5rem)}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.5rem,7vw,5.25rem);line-height:1.04;letter-spacing:-.02em;margin:0 0 1.5rem;max-width:16ch}
.rule{display:block;width:3rem;height:2px;background:var(--accent);margin:0 0 1.5rem}
.lede{font-size:1.2rem;color:var(--muted);max-width:36rem;margin:0 0 2rem}
.btn{display:inline-block;padding:.8rem 1.5rem;background:var(--accent);color:#fff;text-decoration:none;border:0;border-radius:4px;font-size:.95rem;transition:background .2s ease}
.btn:hover{background:var(--accent-dark);color:#fff}
.feeds{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);padding:2.5rem 0 clamp(3rem,7vw,6rem);border-top:1px solid var(--line)}
@media (max-width:720px){.feeds{grid-template-columns:1fr}}
.feeds h2{font-family:var(--serif);font-weight:400;font-size:1.6rem;margin:0 0 1rem}
.more{display:inline-block;margin-top:1rem;font-size:.95rem}
.empty{color:var(--muted)}

/* Λίστες αναρτήσεων */
.list{list-style:none;margin:0;padding:0}
.item{padding:1.15rem 0 1.15rem 0;border-top:1px solid var(--line);transition:padding-left .2s ease,box-shadow .2s ease}
.item:hover{padding-left:.9rem;box-shadow:inset 2px 0 0 var(--accent)}
.list>li:first-child .item{border-top:0}
.item time{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.15rem}
.item-title{font-family:var(--serif);font-weight:400;font-size:1.25rem;line-height:1.3;margin:0}
.item-title a{color:var(--ink);text-decoration:none}
.item-title a:hover{color:var(--accent)}
.item p{margin:.4rem 0 0;color:var(--muted);font-size:.95rem}
@media (prefers-reduced-motion:reduce){.item{transition:none}}

/* Κεφαλίδες σελίδων */
.page-head{padding:clamp(2.5rem,6vw,4.5rem) 0 1.75rem}
.page-head h1{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,5vw,3.25rem);line-height:1.1;letter-spacing:-.015em;margin:0;max-width:22ch}
.page-head .desc{color:var(--muted);max-width:40rem;margin:1rem 0 0;font-size:1.05rem}
.page-head .meta{color:var(--muted);font-size:.95rem;margin-top:1rem}
.page-head .meta a{color:var(--muted)}
.archive-list{max-width:48rem;padding-bottom:3rem}

/* Κείμενο άρθρων και σελίδων */
.page-body.has-portrait{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(1.5rem,5vw,4rem);align-items:start}
@media (max-width:720px){.page-body.has-portrait{grid-template-columns:1fr}}
.portrait{margin:0}
.portrait img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.entry{max-width:44rem;padding-bottom:4rem;font-family:var(--serif);font-size:1.15rem;line-height:1.75}
.entry h2,.entry h3{font-weight:400;line-height:1.25;margin:2.2rem 0 .8rem}
.entry h2{font-size:1.7rem}
.entry h3{font-size:1.35rem}
.entry blockquote{margin:1.8rem 0;padding-left:1.25rem;border-left:2px solid var(--accent);color:var(--muted)}
.entry ul,.entry ol{padding-left:1.4rem}
.entry table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:.95rem}
.entry th,.entry td{border-bottom:1px solid var(--line);padding:.5rem .6rem;text-align:left}
.entry .wp-block-file{font-family:var(--sans);font-size:1rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.entry .wp-block-file__button{background:var(--accent);color:#fff;padding:.5rem 1rem;border-radius:4px;text-decoration:none;margin-left:.75rem}
.back{padding-bottom:4rem}

/* Σελιδοποίηση */
.pagination{padding:1rem 0 4rem}
.nav-links{display:flex;gap:1rem;flex-wrap:wrap}
.page-numbers{color:var(--muted);text-decoration:none;padding:.25rem .5rem}
.page-numbers.current{color:var(--ink);border-bottom:1px solid var(--accent)}

/* Επικοινωνία: δύο ίσες στήλες, ίδιο ύψος */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;align-items:stretch;padding-bottom:4rem}
@media (max-width:820px){.contact{grid-template-columns:1fr}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.25rem,3vw,2rem)}
.details{display:flex;flex-direction:column;gap:1.4rem}
.row{display:flex;gap:1rem;align-items:center}
.row .icon{box-sizing:content-box;width:20px;height:20px;padding:10px;flex:none;border-radius:50%;background:var(--wash);color:var(--accent)}
.row .label{display:block;color:var(--muted);font-size:.85rem;line-height:1.3}
.row .value{display:block;font-family:var(--serif);font-size:1.15rem;color:var(--ink);line-height:1.4}
.row .value a{color:var(--ink);text-decoration-color:var(--line)}
.row .value a:hover{text-decoration-color:var(--accent)}
.map-wrap{flex:1;display:flex;flex-direction:column;margin-top:.25rem}
.map{flex:1;min-height:280px;border-radius:4px;overflow:hidden;background:var(--wash)}
.map iframe{display:block;width:100%;height:100%;min-height:280px;border:0}

.form{display:flex;flex-direction:column}
.form label{display:block;font-size:.9rem;color:var(--muted);margin:1.1rem 0 .35rem}
.form label:first-of-type{margin-top:0}
.form input[type=text],.form input[type=email],.form textarea{width:100%;padding:.8rem .9rem;border:1px solid var(--line);background:var(--paper);font:inherit;color:var(--ink);border-radius:4px;transition:border-color .2s ease,background .2s ease}
.form input[type=text]:focus,.form input[type=email]:focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent);background:#fff}
.form textarea{flex:1;min-height:9rem;resize:vertical}
.form .consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;color:var(--muted);margin:1.1rem 0 0}
.form .consent input{margin-top:.35rem;accent-color:var(--accent)}
.form .btn{margin-top:1.4rem;cursor:pointer;font:inherit;align-self:flex-start}
.notice{padding:.9rem 1rem;border-left:3px solid var(--accent);background:var(--wash);margin:0 0 1.5rem;border-radius:0 4px 4px 0}
.notice.error{border-left-color:#8A2E2E}
.hp{position:absolute;left:-9999px}

/* Υποσέλιδο */
.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}
.foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.5rem 0}
.site-footer a{color:var(--muted)}


/* ---------- Βελτιωμένο responsive UI ---------- */
.site-header{position:sticky;top:0;background:rgba(248,249,249,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.bar{min-height:76px}
.brand{letter-spacing:-.025em;font-size:clamp(1rem,1.6vw,1.25rem)}
.lang-box{padding:.35rem .6rem;border:1px solid var(--line);border-radius:999px;background:#fff}
.langs{gap:.65rem}
.langs a{font-weight:650;font-size:.78rem;letter-spacing:.04em}
.langs .current-lang a{color:var(--accent);border-bottom:2px solid var(--accent)}
.nav-toggle{border-radius:50%;border:1px solid var(--line);transition:background .2s ease,border-color .2s ease}
.nav-toggle:hover{background:var(--wash);border-color:var(--accent)}
.nav-toggle:focus-visible{outline-offset:4px}
@media(min-width:721px){
  .nav{margin-left:auto}
  .bar{gap:clamp(.8rem,2vw,1.6rem)}
  .menu{gap:clamp(.8rem,1.8vw,1.6rem)}
  .nav-toggle{display:none!important}
}
@media(max-width:720px){
  .site-header{z-index:100}
  .bar{min-height:68px;gap:.45rem;padding:.55rem 0}
  .brand{font-size:clamp(.92rem,4vw,1.08rem);overflow-wrap:anywhere}
  .lang-box{gap:.35rem;padding:.35rem .45rem}
  .lang-box>.icon{width:16px;height:16px}
  .langs{gap:.45rem}
  .langs a{font-size:.72rem}
  .nav-toggle{width:44px;height:44px;margin:0;flex:none}
  .nav{top:100%;left:0;right:0;padding:.4rem 1.25rem 1rem;max-height:calc(100dvh - 76px);overflow:auto}
  .menu a{padding:1rem .2rem}
  .menu .current-menu-item>a,.menu .current-menu-ancestor>a{padding-left:.85rem}
}
@media(max-width:380px){
  .bar{gap:.3rem}
  .brand{font-size:.86rem}
  .lang-box{padding:.3rem}
  .langs{gap:.32rem}
  .langs a{font-size:.68rem}
}
.contact{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.5vw,1.75rem);align-items:stretch}
.contact>.panel{min-width:0;min-height:100%}
.details{height:100%}
.map-wrap{min-height:280px}
.map{min-height:320px}
.form{height:100%;gap:.15rem}
.form textarea{min-height:11rem}
.panel{box-shadow:0 8px 30px rgba(22,34,44,.035)}
.page-head{padding-bottom:2rem}
.page-head h1{letter-spacing:-.025em}
.btn{border-radius:3px;padding:.9rem 1.45rem}
.btn:focus-visible,.form button:focus-visible{outline-offset:4px}
@media(max-width:820px){
  .contact{grid-template-columns:minmax(0,1fr);gap:1rem}
  .contact>.panel{min-height:0}
  .details{height:auto}
  .map-wrap{min-height:0}
  .map,.map iframe{min-height:300px}
  .form{height:auto}
}
