/*
 * What a Grant -- front-end stylesheet
 * Design tokens + components ported 1:1 from the What a Grant Design System
 * (tokens/colors.css, tokens/typography.css, tokens/spacing.css, tokens/fonts.css,
 * components/core/{Button,Card,Tag,Badge,Callout,Input}.jsx, components/navigation/Navbar.jsx)
 */

/* ---------- Fonts (self-hosted, matches tokens/fonts.css) ---------- */
@font-face{font-family:"Lora";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/lora-variable.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/poppins-300.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/poppins-400.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/poppins-500.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/poppins-600.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/poppins-700.woff2") format("woff2")}

/* ---------- Design tokens ---------- */
:root{
  --wag-green-900:#1B3A22;
  --wag-green-700:#2F5D39;
  --wag-green-500:#4F7D5A;
  --wag-green-300:#8FC498;
  --wag-green-100:#E4EFE6;
  --wag-gray-700:#4B5550;
  --wag-gray-500:#7C8781;
  --wag-gray-200:#D8DDD9;
  --wag-bg:#F7F6F2;
  --wag-white:#FFFFFF;
  --color-primary:var(--wag-green-700);
  --color-primary-hover:var(--wag-green-900);
  --color-primary-press:var(--wag-green-900);
  --color-accent:var(--wag-green-300);
  --color-accent-tint:var(--wag-green-100);
  --color-text-heading:var(--wag-green-700);
  --color-text-body:var(--wag-gray-700);
  --color-text-caption:var(--wag-gray-500);
  --color-text-on-primary:var(--wag-white);
  --color-surface-page:var(--wag-bg);
  --color-surface-card:var(--wag-white);
  --color-border:var(--wag-gray-200);
  --color-link:var(--wag-green-700);
  --color-link-hover:var(--wag-green-900);

  --font-serif-display:"Lora",Georgia,serif;
  --font-sans-body:"Poppins","Helvetica Neue",Arial,sans-serif;
  --text-h1:clamp(32px,4vw,52px);
  --text-h2:28px;
  --text-h3:22px;
  --text-body:17px;
  --text-body-lg:19px;
  --text-caption:13px;
  --text-label:12px;
  --leading-heading:1.15;
  --leading-body:1.6;
  --tracking-label:0.08em;
  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px;
  --radius-sm:6px; --radius-md:10px; --radius-lg:16px; --radius-pill:999px;
  --shadow-card:0 1px 2px rgba(27,58,34,0.06),0 4px 16px rgba(27,58,34,0.08);
  --shadow-raised:0 8px 24px rgba(27,58,34,0.12);
  --border-width:1px;
  --max-width-content:760px;
  --max-width-page:1200px;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--color-surface-page);
  font-family:var(--font-sans-body);
  color:var(--color-text-body);
  font-size:var(--text-body);
  line-height:var(--leading-body);
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--color-link);text-decoration:none;}
a:hover,a:focus{color:var(--color-link-hover);text-decoration:underline;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-serif-display);color:var(--color-text-heading);line-height:var(--leading-heading);margin:0;}
button,input,textarea,select{font-family:inherit;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
.screen-reader-text:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;padding:12px 18px;background:var(--wag-white);color:var(--color-text-heading);z-index:10000;border-radius:var(--radius-md);box-shadow:var(--shadow-raised);clip:auto;}

/* ---------- Layout helpers ---------- */
.wag-container{max-width:var(--max-width-page);margin:0 auto;padding:0 32px;}
.wag-container-narrow{max-width:var(--max-width-content);margin:0 auto;padding:0 32px;}
.wag-section{padding:56px 0;}
.wag-accent-dot{color:var(--color-accent);}

/* ---------- Header / Navbar ---------- */
.wag-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 32px;background:var(--color-surface-page);
  border-bottom:1px solid var(--color-border);position:relative;z-index:30;
}
.wag-logo{
  display:flex;align-items:center;gap:10px;
  font-family:var(--font-serif-display);font-size:22px;font-weight:600;
  color:var(--color-text-heading);
}
.wag-logo img{max-height:36px;width:auto;}
.wag-nav-links{display:flex;gap:28px;align-items:center;list-style:none;margin:0;padding:0;}
.wag-nav-links li{display:flex;}
.wag-nav-links a{font-size:15px;font-weight:500;color:var(--color-text-body);text-decoration:none;}
.wag-nav-links a:hover{color:var(--color-primary);text-decoration:none;}
.wag-nav-links .current-menu-item>a,
.wag-nav-links .current_page_item>a{font-weight:600;color:var(--color-primary);}

.wag-lang-switcher select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  font-family:var(--font-sans-body);font-size:13px;font-weight:600;
  letter-spacing:var(--tracking-label);text-transform:uppercase;
  color:var(--color-text-heading);background-color:var(--color-accent-tint);
  border:none;border-radius:var(--radius-pill);padding:6px 26px 6px 14px;cursor:pointer;
  background-repeat:no-repeat;background-position:right 10px center;
}

.wag-mobile-btn{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:8px;}
.wag-mobile-btn span{width:22px;height:2px;background:var(--color-text-heading);display:block;}
.wag-mobile-menu{
  display:none;position:absolute;top:100%;left:0;right:0;
  background:var(--color-surface-page);border-bottom:1px solid var(--color-border);
  flex-direction:column;padding:16px 32px 24px;gap:16px;z-index:20;list-style:none;margin:0;
}
.wag-mobile-menu.is-open{display:flex;}
.wag-mobile-menu a{font-size:16px;font-weight:500;color:var(--color-text-body);}
.wag-mobile-menu .current-menu-item>a{font-weight:600;color:var(--color-primary);}

@media (max-width:860px){
  .wag-nav-links{display:none;}
  .wag-mobile-btn{display:flex;}
}

/* ---------- Buttons ---------- */
.wag-btn{
  font-family:var(--font-sans-body);font-weight:600;
  border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;
  transition:background-color 180ms ease-out,color 180ms ease-out,border-color 180ms ease-out;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  text-decoration:none;
}
.wag-btn:hover{text-decoration:none;}
.wag-btn[disabled]{opacity:.5;cursor:not-allowed;}
.wag-btn-sm{padding:8px 16px;font-size:14px;}
.wag-btn-md{padding:12px 22px;font-size:16px;}
.wag-btn-lg{padding:14px 28px;font-size:17px;}
.wag-btn-primary{background:var(--color-primary);color:var(--color-text-on-primary);}
.wag-btn-primary:hover{background:var(--color-primary-hover);color:var(--color-text-on-primary);}
.wag-btn-outline{background:transparent;border-color:var(--color-primary);color:var(--color-primary);}
.wag-btn-outline:hover{background:var(--color-primary);color:var(--color-text-on-primary);}
.wag-btn-secondary{background:var(--color-surface-card);color:var(--color-text-heading);border-color:var(--color-border);}
.wag-btn-secondary:hover{background:var(--color-accent-tint);border-color:var(--color-primary);color:var(--color-text-heading);}
.wag-btn-ghost{background:transparent;color:var(--color-primary);border-color:transparent;}
.wag-btn-ghost:hover{background:var(--color-accent-tint);color:var(--color-primary);}
.wag-btn-pill{border-radius:var(--radius-pill);}

/* ---------- Tag ---------- */
.wag-tag{
  font-family:var(--font-sans-body);font-size:var(--text-label);
  letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:600;
  padding:6px 14px;border-radius:var(--radius-pill);
  border:1px solid var(--color-border);background:transparent;color:var(--color-text-heading);
  display:inline-flex;transition:background-color 180ms ease-out,color 180ms ease-out;
}
.wag-tag.is-active{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-text-on-primary);}
a.wag-tag,button.wag-tag{cursor:pointer;text-decoration:none;}
a.wag-tag:hover,button.wag-tag:hover{text-decoration:none;background:var(--color-accent-tint);}

/* ---------- Badge ---------- */
.wag-badge{
  font-family:var(--font-sans-body);font-size:12px;font-weight:600;
  padding:3px 10px;border-radius:var(--radius-pill);
  display:inline-flex;align-items:center;gap:6px;
  background:var(--color-accent-tint);color:var(--color-text-heading);
}
.wag-badge-accent{background:var(--color-accent);color:var(--wag-green-900);}

/* ---------- Card ---------- */
.wag-card{
  background:var(--color-surface-card);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);overflow:hidden;
  display:flex;flex-direction:column;font-family:var(--font-sans-body);
  height:100%;
}
.wag-card-media{aspect-ratio:16/9;background:var(--color-accent-tint);}
.wag-card-media img{width:100%;height:100%;object-fit:cover;}
.wag-card-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1;}
.wag-card-eyebrow{
  font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;
  color:var(--wag-green-500);font-weight:600;
}
.wag-card-title{margin:0;font-family:var(--font-serif-display);font-size:22px;font-weight:600;color:var(--color-text-heading);line-height:1.25;}
.wag-card-title a{color:inherit;text-decoration:none;}
.wag-card-title a:hover{color:var(--color-primary-hover);text-decoration:none;}
.wag-card-excerpt{margin:0;font-size:var(--text-body);color:var(--color-text-body);line-height:var(--leading-body);}
.wag-card-meta{font-size:var(--text-caption);color:var(--color-text-caption);}
.wag-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:8px;}

/* ---------- Callout ---------- */
.wag-callout{
  margin:0;padding:20px 24px;font-family:var(--font-serif-display);
  font-size:20px;line-height:1.45;color:var(--color-text-heading);
}
.wag-callout-tint{background:var(--color-accent-tint);border-radius:var(--radius-md);border-left:none;}
.wag-callout-quote{background:transparent;border-left:3px solid var(--color-primary);}

/* ---------- Input ---------- */
.wag-field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-sans-body);}
.wag-field-label{font-size:var(--text-caption);color:var(--color-text-caption);font-weight:500;}
.wag-input,.wag-textarea{
  font-family:var(--font-sans-body);font-size:var(--text-body);padding:12px 14px;
  border-radius:var(--radius-md);border:1px solid var(--color-border);
  background:var(--color-surface-card);color:var(--color-text-body);outline:none;
  transition:border-color 180ms ease-out;width:100%;
}
.wag-input:focus,.wag-textarea:focus{border-color:var(--color-primary);}
.wag-textarea{resize:vertical;}

/* ---------- Consent checkbox (contact form, newsletter forms, GDPR) ---------- */
.wag-checkbox{
  display:flex;align-items:flex-start;gap:10px;cursor:pointer;
  font-family:var(--font-sans-body);font-size:14px;line-height:1.5;color:var(--color-text-body);
}
.wag-checkbox input[type="checkbox"]{
  margin-top:3px;width:16px;height:16px;flex-shrink:0;cursor:pointer;accent-color:var(--color-primary);
}
.wag-checkbox a{color:var(--color-primary);text-decoration:underline;}
.wag-checkbox a:hover{color:var(--color-primary-hover);}
.wag-field-consent{gap:0;}
.wag-footer-form .wag-checkbox{flex-basis:100%;}
.wag-footer .wag-footer-form .wag-checkbox{color:var(--wag-green-100);}
.wag-footer .wag-footer-form .wag-checkbox a{color:#fff;}
.wag-checkbox-sm{font-size:13px;margin:2px 0 0;}

/* ---------- Hero (Home) ---------- */
.wag-hero{padding:88px 0 64px;}
.wag-hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;align-items:center;}
.wag-hero-copy{max-width:560px;}
.wag-hero-eyebrow{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--wag-green-500);font-weight:600;}
.wag-hero-title{font-size:var(--text-h1);margin:16px 0 0;}
.wag-hero-body{font-size:var(--text-body-lg);color:var(--color-text-body);line-height:var(--leading-body);margin-top:20px;}
.wag-hero-copy>p{font-size:var(--text-body-lg);color:var(--color-text-body);line-height:var(--leading-body);margin-top:20px;}
.wag-hero-copy>p:first-of-type{margin-top:20px;}
.wag-hero-tags{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap;}
.wag-hero-ctas{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;}
.wag-hero-media{background:var(--color-accent-tint);border-radius:var(--radius-lg);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.wag-hero-media img{width:100%;height:100%;object-fit:cover;}
@media (max-width:860px){.wag-hero-grid{grid-template-columns:1fr;}}

/* ---------- Page hero ---------- */
.wag-page-hero{padding:80px 0 40px;}
.wag-page-hero.is-narrow-top{padding-top:88px;}
.wag-page-hero-eyebrow{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--wag-green-500);font-weight:600;}
.wag-page-hero-title{font-size:var(--text-h1);margin:16px 0 0;}
.wag-page-hero-title.is-sm{font-size:38px;margin-top:14px;}
.wag-page-hero-intro{font-size:var(--text-body-lg);color:var(--color-text-body);line-height:var(--leading-body);margin-top:18px;}
.wag-page-hero-updated{font-size:14px;color:var(--color-text-caption);margin-top:12px;}
.wag-page-hero-media{margin:32px auto 8px;background:var(--color-accent-tint);border-radius:40px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:280px;padding:14px;}
.wag-page-hero-media img{width:100%;height:100%;object-fit:cover;border-radius:28px;}

/* ---------- Section headers + grids ---------- */
.wag-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px;}
.wag-section-header h2{font-size:var(--text-h2);}
.wag-see-all{font-size:15px;font-weight:600;}
.wag-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:860px){.wag-grid-3{grid-template-columns:1fr;}}

/* ---------- Deadline calendar (Bandi archive) ---------- */
/* One bordered "sheet" with internal divider lines between cells, like a
   real calendar page, rather than a row of separate cards. */
.wag-calendar-grid{
  display:grid;grid-template-columns:repeat(6,1fr);
  border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;
}
.wag-calendar-cell{
  display:flex;flex-direction:column;gap:4px;padding:10px 10px 12px;min-height:64px;
  border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);
  background:var(--color-surface-card);
}
.wag-calendar-cell.is-last-col{border-right:none;}
.wag-calendar-cell.is-last-row{border-bottom:none;}
.wag-calendar-month-label{
  font-family:var(--font-sans-body);font-size:11px;font-weight:700;letter-spacing:0.5px;
  text-transform:uppercase;color:var(--color-text-caption);
}
.wag-calendar-cell.has-deadline{background:var(--color-accent-tint);}
.wag-calendar-cell.has-deadline .wag-calendar-month-label{color:var(--color-primary);}
.wag-calendar-cell.is-current{background:var(--color-primary);}
.wag-calendar-cell.is-current .wag-calendar-month-label{color:var(--wag-green-100);}
.wag-calendar-chip{
  font-family:var(--font-sans-body);font-size:12px;font-weight:600;line-height:1.35;
  color:var(--color-primary);text-decoration:none;display:flex;align-items:baseline;gap:5px;
}
.wag-calendar-chip::before{content:"";width:5px;height:5px;flex:0 0 auto;border-radius:50%;background:var(--color-accent);}
.wag-calendar-chip:hover{text-decoration:underline;}
.wag-calendar-cell.is-year{align-items:center;justify-content:center;background:var(--wag-bg);}
.wag-calendar-year-label{font-family:var(--font-serif-display);font-size:17px;font-weight:600;color:var(--color-text-caption);}
@media (max-width:860px){
  .wag-calendar-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:520px){
  .wag-calendar-grid{grid-template-columns:repeat(2,1fr);}
}

/* ---------- Grant search ---------- */
.wag-grant-search{margin-bottom:20px;}
.wag-grant-search-field{
  position:relative;max-width:420px;
}
.wag-grant-search-icon{
  position:absolute;left:14px;top:50%;transform:translateY(-50%);
  color:var(--color-text-caption);pointer-events:none;
}
.wag-grant-search-field input[type="search"]{
  width:100%;padding:12px 14px 12px 42px;font-size:15px;font-family:var(--font-sans-body);
  border:1px solid var(--color-border);border-radius:var(--radius-pill);
  background:var(--color-surface-card);color:var(--color-text-heading);
  transition:border-color 180ms ease-out;
}
.wag-grant-search-field input[type="search"]:focus{border-color:var(--color-primary);outline:none;}
.wag-grant-search-field input[type="search"]::-webkit-search-cancel-button{cursor:pointer;}

/* ---------- Grant rows (Bandi listing) ---------- */
.wag-grant-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px;}
.wag-grant-list{display:flex;flex-direction:column;gap:20px;}
.wag-grant-row{
  background:var(--color-surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);
  padding:26px 28px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;
}
.wag-grant-row-body{display:flex;flex-direction:column;gap:8px;}
.wag-grant-row-title{margin:0;font-family:var(--font-serif-display);font-size:22px;font-weight:600;color:var(--color-text-heading);}
.wag-grant-row-excerpt{margin:0;font-size:15px;color:var(--color-text-body);line-height:var(--leading-body);max-width:560px;}
.wag-grant-row-meta{display:flex;gap:16px;margin-top:6px;flex-wrap:wrap;}
@media (max-width:860px){
  .wag-grant-row{grid-template-columns:1fr;text-align:left;}
  .wag-grant-row .wag-btn{margin-top:12px;}
}

/* ---------- About (Chi siamo) ---------- */
.wag-pillar{background:var(--color-surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:28px;display:flex;flex-direction:column;gap:10px;height:100%;}
.wag-pillar-step{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--wag-green-500);font-weight:600;}
.wag-pillar-title{margin:0;font-family:var(--font-serif-display);font-size:21px;font-weight:600;color:var(--color-text-heading);}
.wag-pillar-text{margin:0;font-size:15px;color:var(--color-text-body);line-height:var(--leading-body);}
.wag-audience-tags{display:flex;gap:10px;flex-wrap:wrap;}

/* ---------- Contact page ---------- */
.wag-contact-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;}
@media (max-width:860px){.wag-contact-grid{grid-template-columns:1fr;}}
.wag-contact-panel{background:var(--color-surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:36px;display:flex;flex-direction:column;gap:18px;}
.wag-contact-panel.is-confirmation{padding:40px;gap:10px;}
.wag-contact-aside-block{display:flex;flex-direction:column;gap:32px;}
.wag-contact-aside-block h3{margin:0 0 8px;font-size:19px;font-weight:600;}
.wag-contact-aside-block p{margin:0 0 12px;font-size:15px;color:var(--color-text-body);line-height:var(--leading-body);}

/* ---------- Newsletter / footer combined block ---------- */
.wag-footer{background:var(--wag-green-700);padding:56px 32px;display:flex;flex-direction:column;align-items:center;gap:20px;}
.wag-footer.is-links-only{padding:40px 32px;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:24px;}
.wag-footer-title{font-family:var(--font-serif-display);font-size:26px;font-weight:600;color:#fff;text-align:center;}
.wag-footer-body{color:var(--wag-green-100);font-size:15px;margin:0;text-align:center;max-width:420px;}
.wag-footer-form{display:flex;gap:10px;width:100%;max-width:420px;flex-wrap:wrap;}
.wag-footer-form .wag-field{flex:1;min-width:200px;}
.wag-footer-form .wag-input{background:var(--wag-white);}
.wag-footer-links{display:flex;gap:24px;margin-top:16px;flex-wrap:wrap;justify-content:center;}
.wag-footer.is-links-only .wag-footer-links{margin-top:0;}
.wag-footer-links a{color:var(--wag-green-100);font-size:14px;}
.wag-footer-links a:hover{color:#fff;}
.wag-footer-copyright{font-size:13px;color:var(--wag-green-300);text-align:center;margin-top:4px;}

/* ---------- Search box (Articoli) ---------- */
.wag-search{position:relative;max-width:340px;margin:0 0 24px auto;}
.wag-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;}
.wag-search input{width:100%;padding-left:42px;}
@media (max-width:860px){.wag-search{margin:0 0 24px 0;max-width:100%;}}

/* ---------- Article single ---------- */
.wag-article-body{font-size:16px;color:var(--color-text-body);line-height:var(--leading-body);}
.wag-article-body p{margin:0 0 18px;}
.wag-article-body h2{font-size:24px;margin:32px 0 12px;}
.wag-article-body h3{font-size:20px;margin:28px 0 10px;}
.wag-article-body blockquote{margin:24px 0;padding:16px 20px;border-left:3px solid var(--color-primary);font-family:var(--font-serif-display);font-size:19px;color:var(--color-text-heading);}
.wag-article-media{width:100%;aspect-ratio:21/9;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-accent-tint);margin-bottom:28px;}
.wag-article-media img{width:100%;height:100%;object-fit:cover;}

/* ---------- Privacy sections ---------- */
.wag-legal-sections{display:flex;flex-direction:column;gap:36px;}
.wag-legal-sections h2{font-size:22px;font-weight:600;margin:0 0 10px;}
.wag-legal-sections p{margin:0;font-size:15px;color:var(--color-text-body);line-height:var(--leading-body);white-space:pre-line;}

/* ---------- 404 / no results ---------- */
.wag-empty-state{max-width:var(--max-width-content);margin:0 auto;padding:96px 32px;text-align:center;}
.wag-empty-state h1{font-size:var(--text-h1);}
.wag-empty-state p{font-size:var(--text-body-lg);color:var(--color-text-body);margin-top:16px;}

/* ---------- Form notices ---------- */
.wag-form-notice{padding:14px 18px;border-radius:var(--radius-md);font-size:14px;margin-bottom:16px;}
.wag-form-notice.is-error{background:#FBE9E7;color:#7A2E23;}
.wag-form-notice.is-success{background:var(--color-accent-tint);color:var(--color-text-heading);}

/* ---------- Public GDPR self-service page (page-privacy-request.php) ---------- */
.wag-privacy-request-section{padding-top:8px;}
.wag-privacy-forms{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px;}
@media (max-width:860px){.wag-privacy-forms{grid-template-columns:1fr;}}
.wag-privacy-form-block{background:var(--color-surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:32px;}
.wag-privacy-form-block h2{margin-top:0;font-size:var(--text-h3);color:var(--color-text-heading);}
.wag-privacy-form-block > p{color:var(--color-text-body);font-size:15px;}
.wag-privacy-form{margin-top:20px;display:flex;flex-direction:column;gap:16px;}
.wag-privacy-policy-link{color:var(--color-text-caption);font-size:14px;text-align:center;}
.wag-privacy-policy-link a{color:var(--color-link);}

/* ---------- Generic editable content (page.php / Gutenberg parity) ---------- */
/* Container spans the wide (1200px) page width so block-pattern content
   (columns/pillars, tag lists, CTA banners) can use the full measure, while
   plain text elements are re-centered to the narrower 760px reading width,
   matching the mockup's narrow intro + wide component sections pattern. */
.wag-content{max-width:var(--max-width-page);margin:0 auto;padding:56px 32px 96px;}
.wag-content > p,
.wag-content > h1,
.wag-content > h2,
.wag-content > h3,
.wag-content > ul,
.wag-content > ol,
.wag-content > .wp-block-quote:not(.wag-callout){
  max-width:var(--max-width-content);margin-left:auto;margin-right:auto;
}
.wag-content > h2{font-size:24px;margin-top:32px;margin-bottom:12px;}
.wag-content > p{margin-top:0;margin-bottom:18px;}
.wag-content > .wp-block-columns,
.wag-content > .wag-footer{margin-top:40px;margin-bottom:40px;}

/* Block-pattern sections (e.g. Chi Siamo "Cosa facciamo"): give the tinted
   variant a proper framed panel instead of floating on the bare page
   background, and style the CTA banner/button that follow it -- these use
   plain block-editor classes that otherwise fall back to browser defaults
   (a black button, an unstyled centered paragraph). */
.wag-content > .wag-section{padding:40px 0;}
.wag-content > .wag-section-cream{
  background:var(--color-accent-tint);border-radius:var(--radius-lg);
  padding:48px 32px;margin-top:8px;margin-bottom:8px;
}
.wag-content > .wag-section-cream > .wag-section-title,
.wag-content > .wag-section-cream > h2,
.wag-content > .wag-section-cream > h3{max-width:var(--max-width-content);margin-left:auto;margin-right:auto;margin-bottom:28px;}
/* The "Cosa facciamo" mini-cards have no inner wrapper (eyebrow/h3/paragraph
   sit directly inside .wag-card), so without explicit padding the text runs
   flush to the left/right edges and only gets top spacing from the first
   paragraph's own margin -- equal padding on all sides fixes that. */
.wag-cards .wag-card{padding:24px;}
.wag-cards .wag-card > *:first-child{margin-top:0;}
.wag-cards .wag-card > *:last-child{margin-bottom:0;}
.wag-cta-banner{
  max-width:var(--max-width-content);margin:16px auto;padding:32px 40px;
  background:var(--color-surface-card);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
}
.wag-cta-text{font-family:var(--font-serif-display);font-size:22px;color:var(--color-text-heading);line-height:1.4;margin:0;}
.wag-tags{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 28px;}
.wag-content .wp-block-buttons{margin-top:8px;}
.wag-content .wp-block-button__link.wp-element-button{
  font-family:var(--font-sans-body);font-weight:600;font-size:16px;
  padding:12px 24px;border-radius:var(--radius-pill);
  border:1px solid var(--color-primary);background:transparent;color:var(--color-primary);
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  transition:background-color 180ms ease-out,color 180ms ease-out;
}
.wag-content .wp-block-button__link.wp-element-button:hover{
  background:var(--color-primary);color:var(--color-text-on-primary);text-decoration:none;
}
