/* Redeploy trigger: verifying mobile nav fix is live */
/* responsive-fixes.css
   GLOBAL, defensive responsive layer.
   Goal: no text or image should ever overflow the viewport width,
   on phone, tablet or laptop. Works alongside existing styles —
   uses only safe, universal selectors and does not remove/override
   colors, fonts, or layout choices already in place.

   Note: carousel/grid item sizing is intentionally NOT handled here —
   that layout (including .masonry, .release-grid, .press-grid and
   .carousel-arrow) is fully owned and injected at runtime by
   assets/js/cms-loader.js (see its #cms-carousel-style block) to
   avoid conflicting overrides between two competing stylesheets.

   Load this LAST in <head>, after all other stylesheets, so it can
   act as a final safety net without being overridden by earlier rules.
*/

html, body {
  max-width: 100%;
  overflow-x: hidden;
}

* {
  max-width: 100%;
}

h1 {
  font-size: clamp(1.75rem, 8vw, 4rem);
  line-height: 1.15;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}

h2 {
  font-size: clamp(1.4rem, 5vw, 2.75rem);
  line-height: 1.2;
  overflow-wrap: break-word;
  word-break: break-word;
}

h3 {
  font-size: clamp(1.15rem, 3.5vw, 1.9rem);
  line-height: 1.25;
  overflow-wrap: break-word;
  word-break: break-word;
}

p, li, span, a, blockquote {
  overflow-wrap: break-word;
  word-break: break-word;
}

[style*="vw"] {
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
}

img, video, svg, picture, canvas {
  max-width: 100%;
  height: auto;
  display: block;
}

section, header, footer, main, article, div {
  max-width: 100%;
}

@media (max-width: 375px) {
  h1 {
    font-size: clamp(1.5rem, 9vw, 3rem);
  }
}

/* --- Targeted hero title fix ---
   Overrides the inline <style> block's .hero h1 min-size (4.4rem)
   which was too large for narrow phones and caused "Φανουράκης"
   to overflow off-screen. Uses !important only here, scoped to
   this one selector, to safely win over the inline <style> block
   without touching index.html directly. */
.hero h1 {
  font-size: clamp(2.4rem, 11vw, 12.5rem) !important;
  line-height: 0.9 !important;
  letter-spacing: -0.05em !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
  max-width: 100% !important;
}

@media (max-width: 560px) {
  .hero h1 {
    font-size: clamp(2rem, 12vw, 4.2rem) !important;
    line-height: 0.95 !important;
  }
}

@media (max-width: 375px) {
  .hero h1 {
    font-size: clamp(1.8rem, 12.5vw, 3.6rem) !important;
  }
}

/* --- Sep 10 fixes: mobile nav overflow, about section contrast, linear arrow icons --- */

/* 1) Menu button cut off on mobile: logo image wasn't allowed to shrink
   (flex items default to min-width:auto), pushing .tools off-screen. */
@media (max-width: 480px) {
  .nav-in {
    gap: 8px;
  }
  .logo {
    min-width: 0;
    flex-shrink: 1;
  }
  .logo img {
    max-width: 130px !important;
    height: 44px !important;
  }
  .tools {
    flex-shrink: 0;
    gap: 4px;
  }
  .menu {
    padding: 6px 8px;
    font-size: 0.68rem;
    white-space: nowrap;
  }
}

/* 2) About section: force cream/white-beige text so it stays readable
   against the violet background. */
#about .eyebrow,
#about .section-title,
#about h2,
#about .about-text {
  color: #fff8ed !important;
}

/* 3) Render ↗ (and similar arrows) as plain text glyphs instead of
   colorful emoji-style icons on platforms that support it (iOS 17.4+,
   modern Chrome/Edge). Falls back harmlessly on older browsers. */
body {
  font-variant-emoji: text;
}

/* --- Sep 14 fix: menu button still cut off on some phones ---
   The max-width:480px breakpoint above missed wider phones (390-430px
   CSS width, e.g. iPhone 14/15 standard + Plus/Pro Max) where the
   .nav-in row (logo + EL/EN + Menu button) still overflowed. This
   widens the breakpoint, adds flex-wrap as a hard safety net so the
   toolbar drops to a second line instead of clipping, and shrinks
   the EL/EN + Menu controls further so they fit on one line first. */
.nav-in {
  flex-wrap: wrap;
}

@media (max-width: 600px) {
  .nav-in {
    gap: 6px;
  }
  .logo {
    min-width: 0;
    flex-shrink: 1;
  }
  .logo img {
    max-width: 120px !important;
    height: 40px !important;
  }
  .tools {
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px;
  }
  .lang {
    padding: 4px 6px;
    font-size: 0.72rem;
  }
  .menu {
    padding: 6px 10px;
    font-size: 0.7rem;
    white-space: nowrap;
  }
}

@media (max-width: 360px) {
  .logo img {
    max-width: 100px !important;
    height: 36px !important;
  }
  .menu {
    padding: 5px 8px;
    font-size: 0.65rem;
  }
}

/* --- Sep 14 fix v2: shrink the logo further and reclaim right-side
   space so ELV/EN + Menu sit fully inside the viewport instead of
   being clipped at the screen edge. Targets .logo width directly
   (previous fix only handled .logo img) since some layouts size the
   wrapper element itself, not just the image inside it. --- */
@media (max-width: 600px) {
  .logo {
    max-width: 40vw !important;
  }
  .tools {
    max-width: 58vw;
  }
}

@media (max-width: 430px) {
  .logo img {
    max-width: 90px !important;
    height: 34px !important;
  }
  .tools {
    gap: 3px;
  }
  .lang {
    padding: 3px 5px;
    font-size: 0.66rem;
  }
  .menu {
    padding: 5px 8px;
    font-size: 0.62rem;
  }
}

@media (max-width: 380px) {
  .logo img {
    max-width: 76px !important;
    height: 30px !important;
  }
  .lang {
    padding: 3px 4px;
    font-size: 0.6rem;
  }
  .menu {
    padding: 4px 7px;
    font-size: 0.58rem;
  }
}
