/* ==========================================================================
   MAST theme — main.css
   Ενωμένο CSS από όλα τα design (Pastel, Services, Programmes, Company,
   Careers, Contact). Τα animations είναι καθαρό CSS (animation-timeline).
   ========================================================================== */

body{margin:0;background:#FFFFFF}
*{box-sizing:border-box}
a{color:#1E120C}a:hover{color:#000}
[hidden]{display:none !important}

.screen-reader-text{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed !important;left:16px;top:16px;z-index:100;width:auto;height:auto;margin:0;padding:12px 18px;clip:auto;border-radius:999px;background:#1E120C;color:#fff;font-size:14px}

.pb{--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-io:cubic-bezier(0.77,0,0.175,1);font-family:Inter,system-ui,sans-serif;color:#1E120C;background:#FFFFFF}
.pb h1,.pb h2,.pb h3{font-family:'Inter Tight',Inter,system-ui,sans-serif;font-weight:300;text-wrap:balance;overflow-wrap:break-word}
.pb img,.pb svg{max-width:100%}
.pb p{text-wrap:pretty}
.pb a{text-decoration:none}
.pb :focus-visible{outline:2px solid #1E120C;outline-offset:3px}
.pb .field:focus-visible{outline:none}
/* τα κουμπιά με inline "all: unset" χάνουν το focus ring — το επαναφέρουμε */
.pb button:focus-visible{outline:2px solid #1E120C !important;outline-offset:3px !important}

/* κουμπί χωρίς native εμφάνιση (πριν από τα υπόλοιπα, ώστε να μην τα υπερισχύει) */
.unbtn{all:unset;cursor:pointer;box-sizing:border-box}

/* ---------- floating glass nav ---------- */
@keyframes navIn{from{opacity:0;transform:translateY(-16px) scale(0.96)}to{opacity:1;transform:none}}
.navwrap{position:sticky;top:16px;z-index:50;display:flex;justify-content:center;padding:0 16px;pointer-events:none;animation:navIn 700ms var(--ease-out) both}
.admin-bar .navwrap{top:48px}
@media (max-width:782px){.admin-bar .navwrap{top:62px}}
.navpill{pointer-events:auto;width:100%;max-width:1200px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px;border-radius:999px}
.glass{background:rgba(255,255,255,0.55);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);border:1px solid rgba(255,255,255,0.7);box-shadow:0 1px 0 rgba(255,255,255,0.8) inset,0 12px 32px -12px rgba(30,18,12,0.22),0 2px 6px -2px rgba(30,18,12,0.08)}
.nlinks{display:flex;gap:2px}
.nl{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;font-size:14px;font-weight:500;white-space:nowrap;color:#1E120C;transition:background-color 200ms ease,color 200ms ease}
.nl.on{background:#fff}
.logo{display:grid;place-items:center;height:56px;padding:0 22px;border-radius:999px;background:#FFFFFF;box-shadow:0 1px 0 rgba(255,255,255,0.9) inset,0 6px 16px -8px rgba(30,18,12,0.25);transition:transform 300ms var(--ease-out)}
.home .logo{transition-duration:400ms}
.logo img{height:40px;width:auto;display:block}
.cta{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;background:#1E120C;color:#fff;font-size:14px;font-weight:500;transition:transform 160ms var(--ease-out),background-color 200ms ease}
.cta.on{background:var(--accent);color:#1E120C;font-weight:600}
.btn{transition:transform 160ms var(--ease-out),background-color 200ms ease}
.cta:active,.btn:active{transform:scale(0.97)}
.arrow{transition:transform 300ms var(--ease-out)}

/* ---------- hero ---------- */
@keyframes up{from{transform:translateY(105%)}to{transform:none}}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ln{display:block;overflow:hidden;padding-bottom:0.04em}
.ln > span{display:inline-block;transform:translateY(105%);animation:up 1000ms var(--ease-out) forwards}
.ln.l2 > span{animation-delay:90ms}
.ln.l3 > span{animation-delay:180ms}
.fd{opacity:0;animation:fade 800ms var(--ease-out) 300ms forwards}
@keyframes pulse{0%{transform:scale(1);opacity:0.7}100%{transform:scale(2.4);opacity:0}}
.hs{transition:transform 200ms var(--ease-out),background-color 200ms ease}
.hs:active{transform:scale(0.92)}
.hs .ring{animation:pulse 2.4s var(--ease-out) infinite}
.hs.on{background:#F7A600 !important}
.gc{grid-area:1/1;opacity:0;transform:translateY(6px);filter:blur(6px);visibility:hidden;transition:opacity 260ms var(--ease-out),transform 260ms var(--ease-out),filter 260ms ease,visibility 0s linear 260ms}
.gc.on{opacity:1;transform:none;filter:blur(0);visibility:visible;transition:opacity 260ms var(--ease-out),transform 260ms var(--ease-out),filter 260ms ease,visibility 0s}
.pdetail .gc{transform:translateY(8px);transition-duration:280ms}
.pdetail .gc.on{transition-duration:280ms}
@keyframes sway{0%,100%{transform:rotate(0deg)}50%{transform:rotate(2deg)}}
.fins{transform-box:fill-box;transform-origin:50% 100%;animation:sway 12s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.spin{transform-box:fill-box;transform-origin:50% 50%;animation:spin 60s linear infinite}
.spin.slow{animation-duration:90s}

/* ---------- bento (home) ---------- */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.span2{grid-column:span 2}
.tile{border-radius:28px;min-height:300px}
.card{transition:transform 320ms var(--ease-out)}
.card .ic{transition:transform 400ms var(--ease-out)}
.shape{transition:border-radius 600ms var(--ease-io)}

/* ---------- stacked programmes (home) ---------- */
.stack{position:sticky;top:104px}
.chip{display:inline-flex;align-items:center;min-height:32px;padding:0 14px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:0.02em}

/* ---------- services ---------- */
.jump{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 20px;border-radius:999px;font-size:15px;font-weight:500;transition:transform 160ms var(--ease-out)}
.jump:active{transform:scale(0.97)}

/* ---------- accordion (services, careers) ---------- */
.acc .body{display:grid;grid-template-rows:0fr;transition:grid-template-rows 320ms var(--ease-out)}
.acc.on .body{grid-template-rows:1fr}
.acc .body > div{overflow:hidden}
.acc .plus{transition:transform 260ms var(--ease-out),background-color 200ms ease}
.acc.on .plus{transform:rotate(45deg);background:#F7A600}

/* ---------- programmes ---------- */
.flt{min-height:44px;padding:0 20px;border-radius:999px;font-size:14px;font-weight:500;background:#F3F3F3;color:#1E120C;transition:background-color 200ms ease,color 200ms ease,transform 160ms var(--ease-out)}
.flt:active{transform:scale(0.97)}
.flt.on{background:#1E120C;color:#fff}
.pcard{transition:transform 320ms var(--ease-out),box-shadow 240ms ease}
.pcard:active{transform:scale(0.98)}
.pcard.on{box-shadow:0 0 0 3px #1E120C}
@keyframes pop-card{from{opacity:0;transform:translateY(12px) scale(0.98)}to{opacity:1;transform:none}}
.pcard.pop{animation:pop-card 360ms var(--ease-out) both}

/* ---------- company ---------- */
.letter{transition:transform 320ms var(--ease-out),background-color 240ms ease}
.letter:active{transform:scale(0.98)}
.letter .big{transition:transform 500ms var(--ease-out)}
.letter.on{background:#1E120C !important;color:#fff}
.letter.on .big{transform:translateY(-6px);color:#F7A600}
.letter .lbtn{min-height:324px}
.letter.on .lbtn{min-height:0}
/* παράγραφος που ανοίγει κάτω από το γράμμα */
.lbody{display:grid;grid-template-rows:0fr;transition:grid-template-rows 520ms var(--ease-out)}
.letter.on .lbody{grid-template-rows:1fr}
.lbody > div{overflow:hidden;min-height:0}
.lbar{display:block;height:2px;width:0;margin-top:24px;border-radius:2px;background:var(--accent);transition:width 700ms var(--ease-out) 120ms}
.letter.on .lbar{width:56px}
.lbody p{margin:16px 0 0;font-size:15px;line-height:1.65;color:rgba(255,255,255,0.88);opacity:0;transform:translateY(14px);filter:blur(5px);transition:opacity 300ms ease,transform 500ms var(--ease-out),filter 300ms ease}
.letter.on .lbody p{opacity:1;transform:none;filter:blur(0);transition-delay:160ms}
.ltags{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}
.ltags li{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,0.14);color:#fff;font-size:12px;font-weight:600;letter-spacing:0.02em;opacity:0;transform:translateY(10px) scale(0.96);transition:opacity 260ms ease,transform 420ms var(--ease-out)}
.letter.on .ltags li{opacity:1;transform:none}
.letter.on .ltags li:nth-child(1){transition-delay:300ms}
.letter.on .ltags li:nth-child(2){transition-delay:380ms}
.letter.on .ltags li:nth-child(3){transition-delay:460ms}
.person{transition:transform 320ms var(--ease-out)}
.news .arrow{transition:transform 240ms var(--ease-out)}

/* ---------- forms (careers, contact) ---------- */
.field{transition:border-color 200ms ease,box-shadow 200ms ease}
.field:focus{outline:none;border-color:#1E120C;box-shadow:0 0 0 4px rgba(247,166,0,0.3)}
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(0.98);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
.pop{animation:pop 420ms var(--ease-out) both}
.topic{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid #E2DCD6;background:#fff;font:inherit;font-size:14px;font-weight:500;color:#1E120C;cursor:pointer;transition:background-color 200ms ease,border-color 200ms ease,color 200ms ease,transform 160ms var(--ease-out)}
.topic:active{transform:scale(0.97)}
.topic.on{background:#1E120C;border-color:#1E120C;color:#fff}
@keyframes ping{0%{transform:scale(1);opacity:0.6}100%{transform:scale(3);opacity:0}}
.ping{transform-box:fill-box;transform-origin:50% 50%;animation:ping 2.4s var(--ease-out) infinite}
.ctile{transition:transform 320ms var(--ease-out)}
.form-error{margin:0;padding:12px 16px;border-radius:14px;background:#FFE8DC;font-size:14px;color:#7A3410}
.hp{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Contact Form 7 — ίδιο ύφος με τα native πεδία */
.wpcf7 form{display:flex;flex-direction:column;gap:16px;margin:0}
.wpcf7 label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:500}
.wpcf7 .wpcf7-form-control-wrap{display:block}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 select,.wpcf7 textarea{width:100%;min-height:52px;padding:0 16px;border-radius:14px;border:1px solid #E2DCD6;background:#fff;font:inherit;font-size:15px;color:#1E120C}
.wpcf7 textarea{padding:14px 16px;resize:vertical;min-height:0}
.wpcf7 input[type=file]{width:100%;min-height:52px;padding:13px 16px;border-radius:14px;border:1px dashed #CFC6BE;background:#FAFAFA;font:inherit;font-size:14px}
.wpcf7 input[type=submit]{min-height:56px;border:0;border-radius:999px;background:#1E120C;color:#fff;font:inherit;font-size:15px;font-weight:500;cursor:pointer;padding:0 28px;transition:transform 160ms var(--ease-out),background-color 200ms ease}
.wpcf7 input[type=submit]:active{transform:scale(0.97)}
.wpcf7 .wpcf7-not-valid-tip{font-size:12px;color:#B3341A;margin-top:4px}
.wpcf7 .wpcf7-response-output{margin:0 !important;padding:12px 16px !important;border-radius:14px;border:0 !important;background:#FFE8DC;font-size:14px}
.wpcf7 .wpcf7-spinner{display:none}

/* ---------- footer ---------- */
.arrowtile{clip-path:polygon(0 0,86% 0,100% 50%,86% 100%,0 100%);transition:transform 320ms var(--ease-out)}
.social{transition:background-color 200ms ease,transform 160ms var(--ease-out)}
.social:active{transform:scale(0.97)}

/* ---------- generic pages (page.php / index.php / 404.php) ---------- */
.entry{max-width:760px;font-size:17px;line-height:1.7;color:#3A2E28}
.entry h2,.entry h3{color:#1E120C;letter-spacing:-0.02em;margin:1.6em 0 0.5em;line-height:1.1}
.entry h2{font-size:clamp(28px,3vw,40px)}
.entry h3{font-size:clamp(22px,2.4vw,30px)}
.entry a{text-decoration:underline;text-underline-offset:3px}
.entry img{max-width:100%;height:auto;border-radius:20px}
.entry ul,.entry ol{padding-left:1.2em}
.postlink{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:96px;border-bottom:1px solid #ECE6E1}

/* ---------- hover (μόνο συσκευές με hover) ---------- */
@media (hover:hover) and (pointer:fine){
  .nl:hover{background:rgba(255,255,255,0.85)}
  .logo:hover{transform:scale(1.04)}
  .cta:hover{background:#2E1D14}
  .cta.on:hover{background:var(--accent)}
  .btn:hover .arrow,.contact:hover .arrow,.jump:hover .arrow,.ctile:hover .arrow,.pcard:hover .arrow{transform:rotate(45deg)}
  .hs:hover{transform:scale(1.15)}
  .card:hover{transform:translateY(-6px)}
  .card:hover .ic{transform:rotate(-12deg) scale(1.08)}
  .shape:hover{border-radius:28px 140px 28px 140px}
  .arrowtile:hover{transform:translateX(10px)}
  .social:hover{background:#FFE2A8}
  .home .social:hover{background:#FFD9C4}
  .acc button:hover .plus{background:#FFE2A8}
  .flt:hover{background:#E6E6E6}
  .flt.on:hover{background:#2E1D14}
  .pcard:hover{transform:translateY(-6px)}
  .letter:hover{transform:translateY(-6px)}
  .letter:hover .big{transform:rotate(-6deg)}
  .person:hover{transform:translateY(-6px)}
  .news:hover .arrow{transform:translateX(6px)}
  .topic:hover{border-color:#1E120C}
  .ctile:hover{transform:translateY(-4px)}
  .wpcf7 input[type=submit]:hover{background:#2E1D14}
}

/* ---------- scroll-driven (καθαρό CSS) ---------- */
@supports (animation-timeline: view()){
  @keyframes shrink{to{transform:scale(0.96);background:rgba(255,255,255,0.75)}}
  @keyframes shrink-home{to{transform:scale(0.94);background:rgba(255,255,255,0.72)}}
  @keyframes expand{from{transform:scale(0.92)}to{transform:scale(1)}}
  @keyframes rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
  @keyframes clipin{from{clip-path:inset(18% 0 0 0 round 28px)}to{clip-path:inset(0 0 0 0 round 28px)}}
  @keyframes recede{to{transform:scale(0.92);filter:brightness(0.94)}}
  @keyframes turn{to{transform:rotate(90deg)}}
  @keyframes lit{from{color:rgba(30,18,12,0.16)}to{color:#1E120C}}
  .navpill{animation:shrink linear both;animation-timeline:scroll(root);animation-range:0px 240px}
  .home .navpill{animation-name:shrink-home}
  .heroimg{animation:expand linear both;animation-timeline:scroll(root);animation-range:0px 520px}
  .rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
  .rv2{animation:rise linear both;animation-timeline:view();animation-range:entry 10% entry 75%}
  .rv3{animation:rise linear both;animation-timeline:view();animation-range:entry 20% entry 90%}
  .clip{animation:clipin linear both;animation-timeline:view();animation-range:entry 0% cover 45%}
  .stackin{animation:recede linear both;animation-timeline:view();animation-range:exit-crossing 0% exit-crossing 100%}
  .turn{animation:turn linear both;animation-timeline:view()}
  .w{animation:lit linear both;animation-timeline:view()}
}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hidem{display:none}
}
/* ---------- μενού κινητών ---------- */
.navtoggle{display:none;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#fff;cursor:pointer;transition:transform 160ms var(--ease-out)}
.navtoggle:active{transform:scale(0.94)}
.navtoggle .bars{display:grid;gap:5px}
.navtoggle .bars span{display:block;width:18px;height:2px;border-radius:2px;background:#1E120C;transition:transform 260ms var(--ease-out),opacity 200ms ease}
.navpill.open .navtoggle .bars span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.navpill.open .navtoggle .bars span:nth-child(2){opacity:0}
.navpill.open .navtoggle .bars span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nlinks .cta-m{display:none}
@keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

@media (max-width:900px){
  .navpill{flex-wrap:wrap;border-radius:32px !important}
  .logo{margin-right:auto}
  .navtoggle{display:inline-flex}
  .nlinks{order:3;width:100%;display:none;flex-direction:column;gap:4px;padding:8px 4px 6px}
  .navpill.open .nlinks{display:flex;animation:menuIn 260ms var(--ease-out) both}
  .nlinks .nl{min-height:52px;padding:0 20px;font-size:17px}
}
@media (max-width:520px){
  .navpill > .cta{display:none}
  .navpill.open .nlinks .cta-m{display:flex;justify-content:center;min-height:52px;margin-top:6px;font-size:16px}
  .logo{height:52px;padding:0 18px}
  .logo img{height:34px}
}
@media (max-width:620px){
  .bento{grid-template-columns:minmax(0,1fr)}
  .span2{grid-column:span 1}
  .stack{position:relative;top:0}

  /* Μικρότερα paddings/κενά στα κινητά. Τα design έχουν inline styles,
     γι' αυτό στοχεύουμε τις τιμές τους με attribute selectors. */
  [style*="padding: 56px 48px"]{padding:32px 20px !important}
  .stackcard{padding:32px 20px 0 !important;min-height:0 !important}
  [style*="padding: 48px;"],[style*="padding: 40px;"]{padding:24px !important}
  [style*="padding: 28px 32px"]{padding:22px !important}
  [style*="padding: 0 48px"]{padding:0 28px !important}
  [style*="padding: 160px 24px 120px"]{padding:96px 20px 72px !important}
  [style*="padding: 140px 24px 120px"]{padding:80px 20px 72px !important}
  [style*="padding: 140px 24px"]{padding:80px 20px !important}
  [style*="padding: 0 24px 140px"]{padding:0 20px 80px !important}
  [style*="padding: 0 24px 120px"]{padding:0 20px 72px !important}
  [style*="padding: 80px 24px 140px"]{padding:48px 20px 80px !important}
  [style*="padding: 96px 24px"]{padding:64px 20px 48px !important}
  [style*="padding: 72px 24px 0"]{padding:48px 20px 0 !important}
  [style*="min-height: 380px"]{min-height:0 !important}
  .letter .lbtn{min-height:200px}
  [style*="min-height: 340px"]{min-height:260px !important}
  [style*="min-height: 460px"]{min-height:340px !important}
  [style*="height: 560px"]{height:480px !important}
  [style*="font-size: 160px"]{font-size:110px !important}
}
@media (max-width:380px){
  .pb h1{font-size:34px !important}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .navwrap,.ln > span,.fd,.hs .ring,.fins,.spin,.navpill,.heroimg,.rv,.rv2,.rv3,.clip,.stackin,.turn,.w,.pop,.ping,.navpill.open .nlinks{animation:none !important;transform:none !important;opacity:1 !important;filter:none !important}
  .gc{transform:none;filter:none}
  .lbody,.lbody p,.lbar,.ltags li{transition:none !important;filter:none !important}
}
