/* Το Μελτέμι — public site
   Seasonal palette lives on :root[data-season]. This is a fixed brand look
   (not a light/dark UI), so palette swaps by season, never by OS theme. */

:root{
  --ink:#14201c;
  --paper:#faf7f1;
  --paper-dim:#f1ece1;
  --line:rgba(20,32,28,.14);
  --season-deep:#0f8b6c;
  --season-mid:#1caf8a;
  --season-light:#bfe9d9;
  --season-text:#eafff6;
  --radius:18px;
  --ease:cubic-bezier(.22,1,.36,1);
  --header-h:76px;
}

:root[data-season="summer"]{
  --season-deep:#0f6fb0;
  --season-mid:#26a4de;
  --season-light:#bfe6f7;
  --season-text:#eaf8ff;
}
:root[data-season="autumn"]{
  --season-deep:#c97a00;
  --season-mid:#f2a900;
  --season-light:#ffe6a8;
  --season-text:#fff6e0;
  --ink:#241a08;
}
:root[data-season="winter"]{
  --season-deep:#33383f;
  --season-mid:#565d67;
  --season-light:#c7ccd3;
  --season-text:#f2f3f5;
}

*{box-sizing:border-box;}
html{scroll-behavior:auto;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{
  font-family:"Fraunces","Georgia",serif;
  font-weight:900;
  margin:0;
  letter-spacing:-.01em;
  text-wrap:balance;
}
.eyebrow{
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:700;
  opacity:.7;
}
.container{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
}

/* ---------- cursor ---------- */
.cursor-dot{
  position:fixed;top:0;left:0;width:14px;height:14px;border-radius:50%;
  background:var(--season-deep);pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);mix-blend-mode:difference;
  transition:width .25s var(--ease),height .25s var(--ease),background-color .3s;
  will-change:transform;
}
.cursor-dot.is-active{width:44px;height:44px;background:var(--paper);}
@media (pointer:coarse){.cursor-dot{display:none;}}

/* ---------- loader ---------- */
.loader{
  position:fixed;inset:0;z-index:200;background:var(--season-deep);
  display:flex;align-items:center;justify-content:center;
}
.loader h1{color:var(--season-text);font-size:clamp(2.2rem,7vw,4rem);overflow:hidden;}
.loader h1 span{display:inline-block;transform:translateY(110%);}

/* ---------- header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--header-h);
  display:flex;align-items:center;
  transition:background-color .4s var(--ease),box-shadow .4s var(--ease);
}
.site-header .container{
  display:flex;align-items:center;justify-content:space-between;height:100%;
}
.site-header.is-solid{
  background:rgba(250,247,241,.86);
  backdrop-filter:blur(10px) saturate(1.2);
  box-shadow:0 1px 0 var(--line);
}
.brand{
  font-family:"Fraunces",serif;font-weight:900;font-size:1.15rem;
  color:var(--paper);letter-spacing:-.01em;
}
.site-header.is-solid .brand{color:var(--ink);}
.brand small{display:block;font-family:"Manrope",sans-serif;font-weight:700;font-size:.6rem;letter-spacing:.2em;opacity:.65;}

.main-nav{display:flex;align-items:center;gap:2px;}
.main-nav > ul{display:flex;list-style:none;margin:0;padding:0;gap:6px;}
.main-nav li{position:relative;}
.main-nav a.top-link{
  display:flex;align-items:center;gap:6px;
  padding:10px 14px;border-radius:999px;
  font-size:.82rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
  color:var(--paper);
}
.site-header.is-solid .main-nav a.top-link{color:var(--ink);}
.main-nav a.top-link:hover{background:rgba(255,255,255,.16);}
.site-header.is-solid .main-nav a.top-link:hover{background:var(--paper-dim);}
.main-nav .caret{width:8px;height:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.7;transition:transform .3s var(--ease);}
.main-nav li:hover .caret{transform:rotate(225deg) translateY(1px);}

/* .dropdown is the hoverable hit-box: it starts flush at top:100% (no gap) and
   uses padding-top to make room above the visible card, so the cursor never
   crosses dead space that isn't part of any hoverable element. Only
   .dropdown-inner (the visible card) animates in/out. */
.dropdown{
  position:absolute;top:100%;left:50%;transform:translateX(-50%);
  min-width:240px;padding-top:10px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .25s var(--ease);
  z-index:50;
}
.main-nav li:hover .dropdown{opacity:1;visibility:visible;pointer-events:auto;}
.dropdown-inner{
  background:var(--paper);border-radius:14px;
  box-shadow:0 20px 50px -12px rgba(0,0,0,.25);
  padding:10px;transform:translateY(8px);
  transition:transform .25s var(--ease);
}
.main-nav li:hover .dropdown-inner{transform:translateY(0);}
.dropdown a{
  display:block;padding:10px 14px;border-radius:9px;color:var(--ink);
  font-size:.86rem;font-weight:600;
}
.dropdown a:hover{background:var(--paper-dim);color:var(--season-deep);}

.burger{display:none;width:40px;height:40px;border:none;background:none;cursor:pointer;position:relative;}
.burger span{position:absolute;left:8px;right:8px;height:2px;background:var(--paper);transition:transform .3s var(--ease),opacity .3s;}
.site-header.is-solid .burger span{background:var(--ink);}
.burger span:nth-child(1){top:14px;}
.burger span:nth-child(2){top:20px;}
.burger span:nth-child(3){top:26px;}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;overflow:hidden;
  background:var(--season-deep);
  color:var(--season-text);
  display:flex;flex-direction:column;justify-content:space-between;
}
.hero-scape{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-photo{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.08);}
/* mix-blend-mode:color keeps the photo's real light/shadow, replaces its hue with the
   season's — the same duotone-by-season look as the mockups, on the real aerial shot. */
.hero-scape .tint-color{
  position:absolute;inset:0;background:var(--season-deep);
  mix-blend-mode:color;opacity:.92;
}
.hero-scape .tint-dark{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.38) 78%,rgba(0,0,0,.58));
}
.hero-grain{position:absolute;inset:0;opacity:.18;mix-blend-mode:overlay;pointer-events:none;}

.hero-top{
  position:relative;z-index:2;
  display:flex;justify-content:space-between;align-items:flex-start;
  padding:130px 28px 0;
}
.hero-place{font-size:.72rem;letter-spacing:.3em;font-weight:700;opacity:.85;}
.hero-widgets{display:flex;flex-direction:column;gap:14px;align-items:flex-end;}
.widget{display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:600;opacity:.9;}
.widget svg{width:16px;height:16px;flex:none;}

.hero-center{
  position:relative;z-index:2;flex:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:34px;padding:20px;text-align:center;
}
.hero-title{
  font-size:clamp(2.6rem,9vw,6.4rem);line-height:.92;
  display:flex;gap:.32em;flex-wrap:wrap;justify-content:center;
}
.hero-title .word{overflow:hidden;padding-bottom:.08em;}
.hero-title .word span{display:inline-block;transform:translateY(115%);}

.play-btn{
  width:78px;height:78px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.55);
  background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;position:relative;
}
.play-btn::before{
  content:"";position:absolute;inset:-10px;border-radius:50%;
  border:1px solid rgba(255,255,255,.3);
  animation:pulse 2.6s var(--ease) infinite;
}
.play-btn svg{width:20px;height:20px;margin-left:3px;fill:var(--season-text);}
@keyframes pulse{0%{transform:scale(.85);opacity:.9;}100%{transform:scale(1.35);opacity:0;}}

.hero-side{
  position:absolute;right:22px;top:50%;z-index:2;
  transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;
  font-family:"Fraunces",serif;font-weight:600;font-style:italic;
  font-size:1.15rem;letter-spacing:.02em;opacity:.9;
}

.hero-bottom{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 28px;background:rgba(0,0,0,.22);backdrop-filter:blur(6px);
  font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
}
.hero-bottom nav{display:flex;gap:22px;flex-wrap:wrap;}
.hero-bottom nav a{opacity:.85;}
.hero-bottom nav a:hover{opacity:1;}
.hero-bottom .fb{width:16px;height:16px;}

.scroll-cue{
  position:absolute;left:50%;bottom:92px;transform:translateX(-50%);
  z-index:2;width:20px;height:32px;border:1.4px solid rgba(255,255,255,.6);
  border-radius:12px;
}
.scroll-cue::before{
  content:"";position:absolute;top:6px;left:50%;width:3px;height:7px;
  background:var(--season-text);border-radius:2px;transform:translateX(-50%);
  animation:sc 1.8s ease infinite;
}
@keyframes sc{0%{opacity:1;top:6px;}70%{opacity:0;top:16px;}100%{opacity:0;top:6px;}}

/* ---------- sections ---------- */
.section{padding:120px 0;position:relative;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head h2{font-size:clamp(2rem,4.5vw,3.2rem);margin-top:10px;line-height:1.05;}

.who-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start;}
.who-copy p{font-size:1.02rem;line-height:1.75;color:rgba(20,32,28,.82);margin:0 0 20px;}
.reveal-line{overflow:hidden;}
.reveal-line span{display:inline-block;}

.stat-stack{display:grid;gap:26px;}
.stat{border-top:1px solid var(--line);padding-top:16px;}
.stat .num{
  font-family:"Fraunces",serif;font-weight:900;font-size:clamp(2.2rem,4vw,3.4rem);
  color:var(--season-deep);line-height:1;
}
.stat .label{font-size:.82rem;color:rgba(20,32,28,.65);margin-top:6px;}

.history-block{margin-top:80px;display:grid;grid-template-columns:.4fr 1fr;gap:40px;border-top:1px solid var(--line);padding-top:48px;}
.history-block h3{font-size:1.6rem;}
.history-block p{font-size:1rem;line-height:1.75;color:rgba(20,32,28,.82);}

.marquee{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:var(--paper-dim);padding:22px 0;overflow:hidden;white-space:nowrap;
}
.marquee-track{display:inline-flex;gap:40px;animation:marquee 26s linear infinite;}
.marquee-track span{
  font-family:"Fraunces",serif;font-style:italic;font-weight:600;
  font-size:1.3rem;color:var(--season-deep);opacity:.85;
}
.marquee-track span.dot{color:var(--ink);opacity:.35;font-style:normal;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

.what-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.what-card{
  background:var(--paper);padding:38px 30px;min-height:230px;
  display:flex;flex-direction:column;justify-content:space-between;gap:22px;
  position:relative;overflow:hidden;
}
.what-card::after{
  content:"";position:absolute;inset:0;background:var(--season-mid);
  transform:translateY(101%);transition:transform .5s var(--ease);z-index:0;
}
.what-card:hover::after{transform:translateY(0);}
.what-card > *{position:relative;z-index:1;transition:color .4s var(--ease);}
.what-card:hover .card-title,.what-card:hover .card-desc,.what-card:hover .card-icon{color:var(--season-text);}
.what-card:hover .card-icon svg{stroke:var(--season-text);}
.card-icon{width:38px;height:38px;}
.card-icon svg{width:100%;height:100%;stroke:var(--season-deep);fill:none;stroke-width:1.5;transition:stroke .4s var(--ease);}
.card-title{font-family:"Fraunces",serif;font-weight:800;font-size:1.25rem;}
.card-desc{font-size:.88rem;line-height:1.55;color:rgba(20,32,28,.65);}
.what-card:hover .card-desc{color:rgba(255,255,255,.85);}

.place-section{background:var(--season-deep);color:var(--season-text);border-radius:32px;margin:0 20px;padding:110px 0;overflow:hidden;position:relative;}
.place-section .container{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px;}
.place-section h2{font-size:clamp(2.2rem,5vw,4rem);max-width:640px;}
.place-section p{max-width:480px;opacity:.85;line-height:1.7;margin-top:18px;}
.place-cta{
  display:inline-flex;align-items:center;gap:12px;padding:16px 26px;border-radius:999px;
  background:var(--season-text);color:var(--season-deep);font-weight:800;
  font-size:.85rem;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;
}
.place-orbit{position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;border:1px solid rgba(255,255,255,.18);}
.place-orbit::before{content:"";position:absolute;inset:60px;border-radius:50%;border:1px solid rgba(255,255,255,.14);}

footer.contact-section{padding:100px 0 40px;}
.contact-grid{display:grid;grid-template-columns:1.2fr repeat(3,.8fr);gap:40px;border-bottom:1px solid var(--line);padding-bottom:60px;}
.contact-grid h2{font-size:2rem;max-width:320px;}
.contact-grid p.lead{color:rgba(20,32,28,.65);margin-top:14px;line-height:1.6;}
.foot-col h4{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px;opacity:.55;}
.foot-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.foot-col a{font-size:.92rem;font-weight:600;}
.foot-col a:hover{color:var(--season-deep);}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:.78rem;color:rgba(20,32,28,.5);flex-wrap:wrap;gap:12px;}
.foot-bottom .season-tag{
  display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;
  background:var(--paper-dim);font-weight:700;color:var(--season-deep);
}
.foot-bottom .season-tag i{width:8px;height:8px;border-radius:50%;background:var(--season-deep);}

.toast{
  position:fixed;left:50%;bottom:36px;transform:translate(-50%,20px);
  background:var(--ink);color:var(--paper);padding:14px 22px;border-radius:999px;
  font-size:.85rem;font-weight:600;z-index:300;opacity:0;pointer-events:none;
  transition:opacity .35s var(--ease),transform .35s var(--ease);
}
.toast.is-visible{opacity:1;transform:translate(-50%,0);}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .who-grid,.history-block,.contact-grid{grid-template-columns:1fr;}
  .what-grid{grid-template-columns:1fr 1fr;}
  .place-section .container{grid-template-columns:1fr;}
  .place-cta{justify-self:start;}
}
@media (max-width:720px){
  .main-nav{
    position:fixed;inset:0;top:var(--header-h);background:var(--paper);
    flex-direction:column;padding:20px;transform:translateX(100%);
    transition:transform .4s var(--ease);
  }
  .main-nav.is-open{transform:translateX(0);}
  .main-nav > ul{flex-direction:column;width:100%;gap:0;}
  .main-nav a.top-link{color:var(--ink);width:100%;justify-content:space-between;padding:16px 6px;border-radius:0;border-bottom:1px solid var(--line);}
  .dropdown{position:static;opacity:1;visibility:visible;pointer-events:auto;padding-top:0;min-width:0;display:none;}
  .dropdown-inner{transform:none;box-shadow:none;background:var(--paper-dim);}
  .main-nav li.is-open .dropdown{display:block;}
  .burger{display:block;}
  .hero-widgets{display:none;}
  .what-grid{grid-template-columns:1fr;}
  .what-card{min-height:180px;}
}

@media (prefers-reduced-motion:reduce){
  .loader,.loader h1 span,.hero-title .word span,.reveal-line span{transform:none !important;}
  .loader{display:none;}
  .marquee-track{animation:none;}
  .play-btn::before,.scroll-cue::before{animation:none;}
  *{scroll-behavior:auto !important;}
}
