/*
Theme Name: MAT Music Gutenberg
Theme URI: https://matfero.com/
Author: MAT / Matjaz Ferenc
Description: Native Gutenberg block theme for the MAT music website. The homepage content, songs, lyrics, collaboration, gallery and contact section are editable as normal WordPress blocks.
Version: 2.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: matfero-gutenberg
*/

:root {
  --mf-bg:#0b0b0c;
  --mf-panel:#141416;
  --mf-text:#f4f1ea;
  --mf-muted:#b8b3aa;
  --mf-line:rgba(255,255,255,.12);
  --mf-accent:#d7b16e;
  --mf-content:1680px;
}

html { scroll-behavior:smooth; }
html, body { margin:0; padding:0; background:var(--mf-bg); color:var(--mf-text); }
body { overflow-x:hidden; }
.wp-site-blocks { padding:0 !important; margin:0 !important; }
.wp-site-blocks > * { margin-block-start:0; }
a { color:inherit; }

/* Sticky Gutenberg header / navigation */
.mf-site-nav {
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:9999;
  min-height:72px;
  margin:0 !important;
  padding:14px clamp(22px,4vw,72px) !important;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  background:rgba(9,9,10,.86);
  border-bottom:1px solid rgba(255,255,255,.08);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  box-shadow:0 8px 26px rgba(0,0,0,.18);
}
.admin-bar .mf-site-nav { top:32px; }
.mf-nav-kicker {
  margin:0 !important;
  flex:0 1 auto;
  color:#eee8dc;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.76rem;
  line-height:1.2;
  white-space:nowrap;
  opacity:.92;
}
.mf-nav-menu { flex:0 0 auto; }
.mf-nav-menu .wp-block-navigation__container { gap:clamp(18px,2.2vw,34px); }
.mf-nav-menu .wp-block-navigation-item__content {
  color:var(--mf-text);
  font-size:.94rem;
  opacity:.84;
  text-decoration:none;
}
.mf-nav-menu .wp-block-navigation-item__content:hover,
.mf-nav-menu .wp-block-navigation-item__content:focus { opacity:1; }

/* Hero */
.mf-hero {
  min-height:100vh !important;
  align-items:flex-end !important;
  padding:10vh 4.5vw 9vh !important;
}
.mf-hero .wp-block-cover__image-background { object-position:center 42%; }
.mf-hero .wp-block-cover__background { background:linear-gradient(180deg,rgba(0,0,0,.08) 10%,rgba(0,0,0,.72) 82%,var(--mf-bg) 100%) !important; opacity:1 !important; }
.mf-hero::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.44),transparent 62%);
  pointer-events:none;
  z-index:1;
}
.mf-hero .wp-block-cover__inner-container { position:relative; z-index:2; width:100%; }
.mf-hero-inner { width:min(1250px,91vw) !important; margin:0 !important; }
.mf-hero h1 {
  font-family:Georgia,"Times New Roman",serif;
  font-weight:500;
  font-size:clamp(4.5rem,11vw,10rem);
  line-height:.86;
  margin:.08em 0 .18em !important;
  color:var(--mf-text);
}
.mf-hero-copy {
  max-width:960px;
  margin:0 !important;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(1.25rem,2.2vw,2rem);
  color:#f0ebe0;
}
.mf-hero-cta { margin-top:24px !important; }
.mf-hero-cta .wp-block-button__link {
  padding:12px 18px;
  background:transparent;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  color:#fff;
  font-size:.9rem;
}
.mf-hero-cta .wp-block-button__link:hover { background:#fff; color:#111; }

/* Shared section styling */
.mf-section {
  padding:104px 4vw !important;
  margin:0 !important;
  scroll-margin-top:86px;
  background:var(--mf-bg);
}
.mf-section > .wp-block-group__inner-container { width:100%; }
.mf-wide { width:min(var(--mf-content),94vw) !important; max-width:none !important; margin-left:auto !important; margin-right:auto !important; }
.mf-section-head { width:min(var(--mf-content),94vw) !important; max-width:none !important; margin:0 auto 48px !important; }
.mf-eyebrow {
  margin:0 0 8px !important;
  color:var(--mf-accent);
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.78rem;
}
.mf-section h2,
.mf-section h3 { font-family:Georgia,"Times New Roman",serif; color:var(--mf-text); }
.mf-section h2 { font-size:clamp(2.7rem,4.8vw,5rem); font-weight:500; line-height:1; margin:0 !important; }

/* About */
.mf-about-columns { width:min(var(--mf-content),94vw) !important; max-width:none !important; margin:0 auto !important; gap:100px !important; }
.mf-about-copy p,
.mf-final-copy p,
.mf-collab-copy p { color:#d9d4cb; font-size:1.1rem; }
.mf-about-quote {
  margin:0 !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.45rem,2.25vw,2.1rem);
  font-style:italic;
  color:#fff;
  border-left:2px solid var(--mf-accent);
  padding-left:26px;
}

/* Music */
.mf-music { background:var(--mf-panel) !important; border-top:1px solid var(--mf-line); border-bottom:1px solid var(--mf-line); }
.mf-tracks { width:min(var(--mf-content),94vw) !important; max-width:none !important; margin:0 auto !important; }
.mf-track { padding:30px 0 !important; border-bottom:1px solid var(--mf-line); }
.mf-track-columns { gap:72px !important; align-items:center !important; }
.mf-track-title { margin:0 !important; font-family:Georgia,"Times New Roman",serif; font-size:1.72rem; font-weight:400; }
.mf-track-subtitle { margin:.15rem 0 0 !important; color:var(--mf-muted); font-size:.82rem; }
.mf-audio { margin:0 !important; }
.mf-audio audio { width:100%; filter:grayscale(1) contrast(.92); }
.mf-lyrics { margin-top:20px !important; border-top:1px solid rgba(255,255,255,.07); padding-top:15px; }
.mf-lyrics summary { color:var(--mf-accent); cursor:pointer; text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; font-weight:700; }
.mf-lyrics-body { margin-top:20px !important; max-width:1000px; color:#d9d4cb; font-family:Georgia,"Times New Roman",serif; font-size:1.02rem; line-height:1.82; }

/* Collaboration */
.mf-collaborations { border-bottom:1px solid var(--mf-line); }
.mf-collab-columns { width:min(var(--mf-content),94vw) !important; max-width:none !important; margin:0 auto !important; gap:90px !important; align-items:center !important; }
.mf-collab-photo { margin:0 !important; }
.mf-collab-photo img { width:100%; border-radius:10px; filter:grayscale(.08); }
.mf-collab-meta { margin:0 !important; color:var(--mf-accent); text-transform:uppercase; letter-spacing:.12em; font-size:.76rem; }
.mf-collab-copy h3 { font-size:clamp(2rem,3vw,3.4rem); font-weight:500; line-height:1.1; margin:14px 0 18px !important; }
.mf-text-link { margin-top:10px !important; }
.mf-text-link a { border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:3px; text-decoration:none; }

/* Gutenberg gallery styled as the compact mosaic */
.mf-gallery-wrap { width:min(700px,88vw) !important; margin:0 auto !important; }
.mf-mosaic {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px !important;
  align-items:start;
}
.mf-mosaic figure.wp-block-image { width:100% !important; margin:0 !important; overflow:hidden; border-radius:5px; background:#111; }
.mf-mosaic figure.wp-block-image img {
  width:100% !important;
  height:auto !important;
  display:block;
  cursor:zoom-in;
  filter:grayscale(0) contrast(1) brightness(1);
  transition:transform .35s ease,filter 1.15s ease;
  animation:mfBwPulse 8.2s ease-in-out infinite;
}
.mf-mosaic figure:nth-child(2) img { animation-duration:10.7s; animation-delay:-3.1s; }
.mf-mosaic figure:nth-child(3) img { animation-duration:7.4s; animation-delay:-5.8s; }
.mf-mosaic figure:nth-child(4) img { animation-duration:11.6s; animation-delay:-1.7s; }
.mf-mosaic figure:nth-child(5) img { animation-duration:9.1s; animation-delay:-6.4s; }
.mf-mosaic figure:nth-child(6) img { animation-duration:12.3s; animation-delay:-2.6s; }
.mf-mosaic figure:nth-child(7) img { animation-duration:8.8s; animation-delay:-7.1s; }
.mf-mosaic figure:nth-child(8) img { animation-duration:10.1s; animation-delay:-4.4s; }
.mf-mosaic figure:nth-child(9) img { animation-duration:7.9s; animation-delay:-1.2s; }
.mf-mosaic figure:nth-child(10) img { animation-duration:11.2s; animation-delay:-8.2s; }
.mf-mosaic figure:hover img { animation-play-state:paused; transform:scale(1.015); filter:grayscale(1) contrast(1.06) brightness(.9); }
@keyframes mfBwPulse {
  0%,18%,100% { filter:grayscale(0) contrast(1) brightness(1); }
  34%,54% { filter:grayscale(1) contrast(1.07) brightness(.84); }
  74% { filter:grayscale(0) contrast(1) brightness(1); }
}

/* Native WP image lightbox */
.wp-lightbox-overlay { z-index:100000 !important; background:rgba(0,0,0,.94) !important; }

/* Final note */
.mf-final-columns { width:min(var(--mf-content),94vw) !important; max-width:none !important; margin:0 auto !important; gap:100px !important; }
.mf-welcome { font-family:Georgia,"Times New Roman",serif; font-size:1.55rem !important; color:#fff !important; margin-top:30px !important; }

/* Contact */
.mf-contact { border-top:1px solid var(--mf-line); background:#0e0e10 !important; }
.mf-contact-inner { width:min(var(--mf-content),94vw) !important; max-width:none !important; margin:0 auto !important; }
.mf-contact-mail { margin-top:28px !important; }
.mf-contact-mail a {
  display:inline-block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,3.8vw,4.2rem);
  line-height:1.1;
  color:var(--mf-text);
  border-bottom:1px solid rgba(215,177,110,.55);
  padding-bottom:6px;
  text-decoration:none;
}
.mf-contact-mail a:hover { color:var(--mf-accent); border-color:var(--mf-accent); }

/* Footer is also Gutenberg blocks */
.mf-footer {
  margin:0 !important;
  padding:48px 4vw 62px !important;
  border-top:1px solid var(--mf-line);
  background:var(--mf-bg);
  color:var(--mf-muted);
}
.mf-footer-inner { width:min(var(--mf-content),94vw) !important; max-width:none !important; margin:0 auto !important; }
.mf-footer p { margin:0 !important; color:var(--mf-muted); font-size:.9rem; }

@media (max-width:1100px) {
  .mf-track-columns { gap:36px !important; }
  .mf-about-columns,.mf-collab-columns,.mf-final-columns { gap:50px !important; }
  .mf-nav-kicker { font-size:.68rem; letter-spacing:.15em; }
}

@media (max-width:900px) {
  .admin-bar .mf-site-nav { top:46px; }
  .mf-site-nav { min-height:64px; padding:10px 18px !important; justify-content:flex-end; }
  .mf-nav-kicker { display:none; }
  .mf-nav-menu { width:auto; }
  .mf-nav-menu .wp-block-navigation__responsive-container-open {
    display:flex !important;
    align-items:center;
    gap:8px;
    padding:9px 12px;
    color:#fff;
    border:1px solid rgba(255,255,255,.55);
    background:transparent;
  }
  .mf-nav-menu .wp-block-navigation__responsive-container-open::after {
    content:"MENU";
    font-size:.83rem;
    letter-spacing:.12em;
  }
  .mf-nav-menu .wp-block-navigation__responsive-container.is-menu-open {
    background:rgba(13,13,15,.98) !important;
    color:#fff !important;
    padding:90px 30px 34px !important;
  }
  .mf-nav-menu .wp-block-navigation__responsive-container-content { align-items:flex-start !important; }
  .mf-nav-menu .wp-block-navigation__container { align-items:flex-start !important; gap:0 !important; width:100%; }
  .mf-nav-menu .wp-block-navigation-item { width:100%; }
  .mf-nav-menu .wp-block-navigation-item__content { display:block; width:100%; padding:14px 0; font-size:1.3rem; }
  .mf-nav-menu .wp-block-navigation__responsive-container-close { top:22px; right:22px; color:#fff; }

  .mf-hero { min-height:100svh !important; padding:110px 5vw 9vh !important; }
  .mf-hero .wp-block-cover__image-background { object-position:58% center; }
  .mf-hero h1 { font-size:clamp(4.2rem,19vw,7rem); max-width:92vw; }
  .mf-hero-copy { max-width:92vw; font-size:clamp(1.15rem,5.1vw,1.65rem); line-height:1.55; }
  .mf-section { padding:76px 5vw !important; }
  .mf-section-head,.mf-about-columns,.mf-tracks,.mf-collab-columns,.mf-final-columns,.mf-contact-inner { width:90vw !important; }
  .mf-about-columns,.mf-collab-columns,.mf-final-columns { flex-direction:column !important; gap:34px !important; }
  .mf-track-columns { flex-direction:column !important; align-items:stretch !important; gap:18px !important; }
  .mf-track-columns > .wp-block-column { flex-basis:auto !important; }
  .mf-mosaic { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px !important; }
  .mf-gallery-wrap { width:76vw !important; }
  .mf-contact-mail a { overflow-wrap:anywhere; }
}

@media (max-width:480px) {
  .mf-hero { padding-left:4.5vw !important; padding-right:4.5vw !important; }
  .mf-hero h1 { font-size:clamp(3.8rem,18.5vw,5.7rem); }
  .mf-hero-copy { font-size:clamp(1.08rem,4.8vw,1.4rem); line-height:1.55; }
  .mf-gallery-wrap { width:82vw !important; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .mf-mosaic figure.wp-block-image img { animation:none !important; transition:none !important; }
}
