html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  background: var(--color-bg);
  color: var(--color-text);
}
h1,h2,h3,.font-display { font-family: var(--font-heading); }

/* Bilingual visibility */
html[data-lang="gr"] .lang-en { display: none !important; }
html[data-lang="en"] .lang-gr { display: none !important; }

/* Warm paper grain overlay */
.grain::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.link-underline{ position:relative; }
.link-underline::after{
  content:""; position:absolute; left:0; bottom:-3px; height:1.5px; width:0; background:var(--color-primary);
  transition:width var(--dur-base) var(--ease-out);
}
.link-underline:hover::after{ width:100%; }

.btn{
  display:inline-flex; align-items:center; gap:.5rem; border-radius:var(--btn-radius);
  font-weight:var(--fw-medium); letter-spacing:.01em; transition:all var(--dur-base) var(--ease-out);
  cursor:pointer; line-height:1;
}
.btn-primary{ background:var(--btn-primary-bg); color:var(--btn-primary-text); box-shadow:var(--btn-shadow); padding:.95rem 1.6rem; }
.btn-primary:hover{ background:var(--btn-primary-bg-hover); box-shadow:var(--btn-shadow-hover); transform:translateY(-2px); }
.btn-ghost{ border:1px solid currentColor; padding:.9rem 1.5rem; }
.btn-ghost:hover{ background:rgba(255,255,255,.12); }

.card-img{ transition:transform .9s var(--ease-out); }
.card:hover .card-img{ transform:scale(1.06); }

/* Hero load choreography */
@keyframes riseIn{ from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);} }
.rise{ opacity:0; animation:riseIn .9s var(--ease-out) forwards; }
@media (prefers-reduced-motion: reduce){ .rise{ animation:none; opacity:1; } }

/* Hero slideshow */
.hero-slide{ position:absolute; inset:0; opacity:0; pointer-events:none; transition:opacity 1.4s var(--ease-out); }
.hero-slide.is-active{ opacity:1; pointer-events:auto; }
/* Ken Burns: slow continuous zoom + pan, alternating direction per slide */
@keyframes kenburns-a{ from{ transform:scale(1.05) translate3d(0,0,0); } to{ transform:scale(1.2) translate3d(-1.8%,-1.2%,0); } }
@keyframes kenburns-b{ from{ transform:scale(1.05) translate3d(0,0,0); } to{ transform:scale(1.2) translate3d(1.8%,1.2%,0); } }
.hero-slide img{ transform:scale(1.05); will-change:transform; }
.hero-slide.is-active img{ animation:kenburns-a 9s var(--ease-out) forwards; }
.hero-slide:nth-of-type(2).is-active img{ animation-name:kenburns-b; }
.hero-dot{ width:11px; height:11px; border-radius:999px; border:1.5px solid rgba(255,255,255,.8); transition:all var(--dur-base) var(--ease-out); }
.hero-dot.is-active{ background:var(--color-primary); border-color:var(--color-primary); width:30px; }
@media (prefers-reduced-motion: reduce){ .hero-slide{ transition:none; } .hero-slide img{ animation:none !important; transform:none; } }

/* Hero content stagger (replays on each slide activation) */
.hero-slide.is-active .hero-rise{ animation:riseIn 1s var(--ease-out) backwards; }

/* Reviews carousel */
[data-carousel-track]{ will-change:transform; }
.review-dot{ width:9px; height:9px; border-radius:999px; background:var(--color-border); transition:all var(--dur-base) var(--ease-out); cursor:pointer; }
.review-dot.is-active{ background:var(--color-primary); width:26px; }
.review-arrow{ width:42px; height:42px; border-radius:999px; border:1px solid var(--color-border); display:inline-flex; align-items:center; justify-content:center; color:var(--color-primary); background:var(--color-surface); transition:all var(--dur-base) var(--ease-out); font-size:1.15rem; cursor:pointer; }
.review-arrow:hover{ background:var(--color-primary); color:#fff; border-color:var(--color-primary); }

/* Scroll reveal (per-element, staggered via JS) */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ transition:none; opacity:1; transform:none; } .hero-slide.is-active .hero-rise{ animation:none; } }

:focus-visible{ outline:2px solid var(--color-ring); outline-offset:3px; border-radius:2px; }
  

/* Active nav link (inner pages) */
[data-navlinks] a[aria-current="page"], [data-mobile-menu] a[aria-current="page"]{ color:var(--color-primary); }

/* Lightbox */
.lb-overlay{ position:fixed; inset:0; z-index:100; background:rgba(42,35,32,.93); display:none; align-items:center; justify-content:center; padding:5vw; }
.lb-overlay.open{ display:flex; }
.lb-overlay img{ max-width:92vw; max-height:88vh; border-radius:var(--radius-md); box-shadow:var(--shadow-lg); }
.lb-close{ position:absolute; top:1.4rem; right:1.6rem; color:#fff; font-size:2rem; line-height:1; cursor:pointer; background:none; border:none; }
