/*
Theme Name: Museo del Contadino
Theme URI: https://www.museodelcontadino.it
Author: Museo del Contadino
Description: Tema WordPress classico su misura per il Museo del Contadino di Frascarolo, realizzato per sostituire il sito Joomla con contenuti gestiti tramite blocchi Gutenberg standard.
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: museo-del-contadino
*/

/* ==========================================================================
   DESIGN TOKENS
   Palette campionata direttamente dal sito originale: grigio caldo neutro
   con un solo colore d'accento, l'arancio bruciato usato per titoli e link.
   ========================================================================== */
:root{
  --md-bg:#e4e2dc;
  --md-bg-card:#ebeae6;
  --md-bg-section:#f4f4f4;
  --md-white:#ffffff;
  --md-line:#d9d7d1;

  --md-text:#626262;
  --md-text-strong:#535252;
  --md-heading-dark:#5a5a58;

  --md-accent:#fd712d;
  --md-accent-dark:#e15c1c;

  --md-nav-active:#bab8b3;
  --md-icon-grey:#9a9793;

  --md-font-display:"PT Serif","Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;
  --md-font-body:"Open Sans","Segoe UI",Helvetica,Arial,system-ui,-apple-system,sans-serif;
  --md-font-label:"Open Sans","Segoe UI",system-ui,-apple-system,sans-serif;

  --md-container:1140px;
  --md-radius:2px;
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--md-bg);
  color:var(--md-text);
  font-family:var(--md-font-body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--md-accent); text-decoration:none; }
a:hover{ color:var(--md-accent-dark); text-decoration:underline; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{
  font-family:var(--md-font-display);
  color:var(--md-heading-dark);
  line-height:1.25;
  font-weight:400;
  margin:0 0 .5em;
}
h1{ font-size:2.4rem; color:var(--md-accent); text-align:center; }
h2{ font-size:1.7rem; }
h3{ font-size:1.3rem; }
p{ margin:0 0 1.2em; }
.screen-reader-text{
  position:absolute !important; width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap;
}
:focus-visible{ outline:3px solid var(--md-accent); outline-offset:2px; }

.site-container{
  max-width:var(--md-container);
  margin:0 auto;
  padding:0 24px;
}

/* ==========================================================================
   Small section-eyebrow label (used only for editorial notes / placeholders,
   not shown on the repeating info+gallery box, which matches the original
   exactly without it).
   ========================================================================== */
.md-plaque{
  display:inline-block;
  font-family:var(--md-font-label);
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--md-icon-grey);
  border-bottom:1px solid var(--md-line);
  padding-bottom:.45em;
  margin-bottom:.9em;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{
  background:var(--md-bg);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:24px 0;
}
.site-branding{ display:flex; align-items:center; gap:14px; }
.site-branding img{ max-height:100px; width:auto; }
.site-branding .site-title{
  font-family:var(--md-font-display);
  font-size:1.5rem;
  font-weight:400;
  margin:0;
}
.site-branding .site-title a{ color:var(--md-heading-dark); }
.site-branding .site-title a:hover{ text-decoration:none; color:var(--md-accent); }

/* Primary nav */
.menu-toggle{
  display:none;
  background:none;
  border:2px solid var(--md-text-strong);
  color:var(--md-text-strong);
  font-family:var(--md-font-label);
  font-size:.85rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:.5em 1em;
  cursor:pointer;
}
.primary-navigation ul{
  display:flex;
  gap:2px;
}
.primary-navigation a{
  display:block;
  font-family:var(--md-font-label);
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--md-text-strong);
  padding:12px 18px;
  border-radius:3px;
}
.primary-navigation a:hover{
  color:var(--md-accent);
  text-decoration:none;
}
.primary-navigation .current-menu-item > a{
  background:var(--md-nav-active);
  color:var(--md-white);
}
.primary-navigation .current-menu-item > a:hover{
  color:var(--md-white);
}

/* ==========================================================================
   MAIN CONTENT
   ========================================================================== */
.site-main{ padding:48px 0 64px; }
.page-title{ margin-bottom:.3em; }
.page-intro-rule{
  width:64px; height:2px; background:var(--md-accent);
  margin:0 auto 2rem;
}
.entry-content{ max-width:78ch; margin:0 auto; }
.entry-content.full-bleed{ max-width:none; }
blockquote{
  border:none;
  margin:1.5em auto;
  max-width:60ch;
  padding:0;
  text-align:center;
  font-style:italic;
  color:var(--md-text);
}
blockquote cite{
  display:block;
  margin-top:.6em;
  font-style:italic;
  font-size:.9rem;
  color:var(--md-text);
}

/* Buttons / "ENTRA" links — plain bold text links, no filled background,
   matching the original template exactly. */
.wp-block-button__link,
.md-button{
  display:inline-block;
  font-family:var(--md-font-label);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:transparent;
  color:var(--md-accent) !important;
  border:none;
  padding:0;
}
.wp-block-button__link:hover,
.md-button:hover{
  color:var(--md-accent-dark) !important;
  text-decoration:underline;
}
.is-style-outline .wp-block-button__link{
  background:transparent;
  border:2px solid var(--md-text-strong);
  color:var(--md-text-strong) !important;
  padding:.6em 1.4em;
}

/* Home feature grid (Museo / Castello / Associazione / Dove siamo) */
.wp-block-columns{ gap:2rem; }
.md-feature{ text-align:center; background:var(--md-bg-card); padding:36px 24px; }
.md-feature figure{ margin:0 0 1.2em; }
.md-feature figure img{
  max-width:130px;
  margin:0 auto;
  transition:opacity .2s ease;
}
.md-feature:hover figure img{ opacity:.85; }
.md-feature h2{ font-size:1.35rem; color:var(--md-heading-dark); }
.md-feature p{ font-size:.95rem; }
.md-feature .wp-block-buttons{ justify-content:center; }

/* Gallery blocks + site-wide photo gallery */
.wp-block-gallery,
.md-gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
  gap:10px;
  margin:1.5em 0;
}
.wp-block-gallery figure,
.md-gallery-grid figure{ margin:0; }
.md-gallery-grid a{ display:block; overflow:hidden; }
.md-gallery-grid img{ aspect-ratio:4/3; object-fit:cover; width:100%; }
.md-gallery-grid figcaption,
.wp-block-gallery figcaption{
  font-family:var(--md-font-label);
  font-size:.75rem;
  color:var(--md-text);
  padding-top:.4em;
}

/* ==========================================================================
   SITE-WIDE INFO + GALLERY BOX  ("Vieni a trovarci!")
   ========================================================================== */
.md-visit-box{
  background:var(--md-bg-section);
  padding:40px 0;
  margin-top:56px;
}
.md-visit-box h2{ color:var(--md-accent); text-align:left; margin-bottom:1em; }
.md-visit-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
  align-items:start;
}
.md-visit-list{
  font-family:var(--md-font-body);
  font-size:.95rem;
  background:var(--md-white);
  padding:20px 24px;
  border:1px solid var(--md-line);
}
.md-visit-list li{ padding:.3em 0; }
.md-visit-list strong{ font-style:italic; color:var(--md-text-strong); }

.md-photo-gallery{ padding:48px 0; }
.md-photo-gallery h2{ color:var(--md-accent); text-align:left; }

/* ==========================================================================
   LIGHTBOX
   ========================================================================== */
.md-lightbox{
  position:fixed; inset:0; background:rgba(30,28,25,.92);
  display:none; align-items:center; justify-content:center;
  z-index:9999; padding:32px;
}
.md-lightbox.is-open{ display:flex; }
.md-lightbox img{ max-height:88vh; max-width:100%; border:4px solid var(--md-white); }
.md-lightbox-close{
  position:absolute; top:24px; right:32px;
  background:none; border:none; color:var(--md-white);
  font-size:2rem; line-height:1; cursor:pointer;
}
.md-lightbox-caption{
  position:absolute; bottom:28px; left:0; right:0; text-align:center;
  color:var(--md-white); font-family:var(--md-font-label); font-size:.85rem;
}

/* ==========================================================================
   CONTACT FORM
   ========================================================================== */
.md-contact-form{ max-width:620px; margin:0 auto; }
.md-contact-form p{ margin:0 0 1.1em; }
.md-contact-form label{
  display:block; font-family:var(--md-font-label); font-size:.78rem;
  letter-spacing:.04em; text-transform:uppercase; color:var(--md-text-strong);
  margin-bottom:.35em;
}
.md-contact-form input[type=text],
.md-contact-form input[type=email],
.md-contact-form textarea{
  width:100%; font-family:var(--md-font-body); font-size:1rem;
  border:1px solid var(--md-line); background:var(--md-white);
  padding:.7em .8em; border-radius:var(--md-radius); color:var(--md-text);
}
.md-contact-form textarea{ min-height:140px; resize:vertical; }
.md-contact-form .md-hp{ position:absolute; left:-9999px; }
.md-contact-form button[type=submit]{
  font-family:var(--md-font-label); font-size:.8rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  background:var(--md-accent); color:var(--md-white); border:none;
  padding:.75em 1.6em; border-radius:var(--md-radius); cursor:pointer;
}
.md-contact-form button[type=submit]:hover{ background:var(--md-accent-dark); }
.md-form-notice{ padding:.9em 1.2em; margin-bottom:1.5em; border-left:4px solid var(--md-accent); background:var(--md-bg-section); }
.md-form-notice.is-error{ border-color:#b23b2e; }

/* Map */
.md-map{ border:1px solid var(--md-line); margin:1.5em 0; }
.md-map iframe{ width:100%; height:380px; border:0; display:block; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{
  background:var(--md-white);
  border-top:1px solid var(--md-line);
  color:var(--md-text);
  padding:22px 0;
  font-family:var(--md-font-label);
  font-size:.78rem;
}
.footer-inner{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
}
.footer-copy{ text-transform:uppercase; letter-spacing:.03em; margin:0; }
.footer-legal a{
  color:var(--md-text);
  text-transform:uppercase;
  letter-spacing:.03em;
}
.footer-legal a:hover{ color:var(--md-accent); }
.footer-legal a:not(:first-child){ margin-left:14px; }
.footer-legal a:not(:first-child)::before{
  content:"|";
  margin-right:14px;
  color:var(--md-line);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:782px){
  h1{ font-size:1.9rem; }
  .menu-toggle{ display:inline-block; }
  .primary-navigation{
    display:none;
    position:absolute; left:0; right:0; top:100%;
    background:var(--md-white); border-top:1px solid var(--md-line);
    z-index:100;
  }
  .primary-navigation.is-open{ display:block; }
  .primary-navigation ul{ flex-direction:column; }
  .site-header{ position:relative; }
  .md-visit-grid{ grid-template-columns:1fr; }
  .footer-inner{ flex-direction:column; text-align:center; }
  .footer-legal a:not(:first-child){ margin-left:8px; }
  .footer-legal a:not(:first-child)::before{ margin-right:8px; }
}
