/* ==========================================================================
   ASSICOMUNALE — Contatti (page ID 23)
   Compact hero + quick-contact trio focal. Enqueued after design-system + reskin.
   ========================================================================== */

/* ---------- Scoped tokens + GP overrides ---------- */
body.ac-page-contatti {
  --ac-text-inverse: #ffffff;
  --ac-text: #1a1a2e;
  --ac-surface: #ffffff;
  --ac-primary-500: #6B21A8;
  --ac-primary-700: #4C1D95;
  --ac-primary-900: #3B0764;
  --ac-accent: #EC4899;
  --ac-accent-300: #F9A8D4;
}
body.ac-page-contatti .featured-image {
  display: none;
}
/* Force white heading color in dark hero (GP theme ships teal h1) */
body.ac-page-contatti .ac-contact__hero h1,
body.ac-page-contatti .ac-contact__title,
body.ac-page-contatti .ac-fullscreen-cta h2 {
  color: var(--ac-text-inverse);
}
body.ac-page-contatti .ac-contact__hero p,
body.ac-page-contatti .ac-contact__lead,
body.ac-page-contatti .ac-fullscreen-cta p {
  color: rgba(255,255,255,0.88);
}

/* ---------- Breadcrumb RankMath ---------- */
.ac-breadcrumb {
  padding: clamp(16px, 2vw, 24px) clamp(20px, 4vw, 48px);
  font-size: 0.88rem;
  max-width: 1200px;
  margin-inline: auto;
}

/* ---------- Closing welcome taglines (content verbatim restore v11.0.23) ---------- */
body.ac-page-contatti .ac-contact__closing {
  background: color-mix(in oklch, var(--ac-primary-500) 5%, var(--ac-surface));
  padding-block: clamp(48px, 6vw, 80px);
  text-align: center;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}
body.ac-page-contatti .ac-contact__closing-title {
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
  font-weight: 700;
  color: var(--ac-primary-500);
  max-width: 820px;
  margin: 0 auto 0.75rem;
  line-height: 1.4;
}
body.ac-page-contatti .ac-contact__closing-tagline {
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  color: #BE185D;
  font-weight: 500;
  font-style: italic;
  max-width: 680px;
  margin: 0 auto;
}

/* ---------- v11.0.24: fix judge P0 — hero match Chi Siamo + H1 scale + grid fixed ---------- */
body.ac-page-contatti .ac-contact__hero {
  background: linear-gradient(135deg, var(--ac-primary-900) 0%, var(--ac-primary-700) 55%, #1E1B4B 100%), var(--ac-primary-900) !important;
}
body.ac-page-contatti .ac-contact__title {
  font-size: clamp(2.25rem, 3.2vw + 1rem, 3.5rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.035em !important;
  max-width: 22ch !important;
}
body.ac-page-contatti .ac-contact__quick {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
}
/* v11.0.26: fix wpautop P wrapper — display:contents rende i <p> trasparenti al grid,
   le .ac-contact__quick-card nested risalgono come figli diretti del grid */
body.ac-page-contatti .ac-contact__quick > p {
  display: contents !important;
}
body.ac-page-contatti .ac-contact__quick > p:empty {
  display: none !important;
}
@media (max-width: 767px) {
  body.ac-page-contatti .ac-contact__quick {
    grid-template-columns: 1fr !important;
  }
}
/* Quick card focus-visible (P1 a11y) */
body.ac-page-contatti .ac-contact__quick-card:focus-visible {
  outline: 3px solid var(--ac-accent);
  outline-offset: 4px;
  border-radius: 14px;
}

/* v11.0.27: fix P0 contrast — forzare color white su tutte 3 cards (WCAG AA ratio 15.3:1 vs hero primary-900).
   Root cause: design-system.css applica a{color:var(--ac-primary-700)} che eredita su card 2+3.
   Override esplicito con specificity scoped ac-page-contatti + !important. */
body.ac-page-contatti .ac-contact__quick-card,
body.ac-page-contatti .ac-contact__quick-card:visited,
body.ac-page-contatti .ac-contact__quick-card .ac-contact__quick-value,
body.ac-page-contatti .ac-contact__quick-card .ac-contact__quick-label {
  color: #ffffff !important;
}
/* Accent pink sul value icon (consistenza visual gerarchia) — NO, mantengo white per leggibilità */
body.ac-page-contatti .ac-contact__quick-card .ac-contact__quick-label {
  color: rgba(255, 255, 255, 0.78) !important;
}

/* v11.0.27: reduce hero altezza (target 700px desktop, era 1058px) + cards più compatte */
body.ac-page-contatti .ac-contact__hero {
  min-height: auto !important;
  padding-block: clamp(48px, 5vw, 72px) !important;
}
body.ac-page-contatti .ac-contact__quick-card {
  min-height: 110px !important;
  padding: 16px 18px !important;
  gap: 6px !important;
}
body.ac-page-contatti .ac-contact__quick-value {
  font-size: 1.25rem !important;
  line-height: 1.25 !important;
}
body.ac-page-contatti .ac-contact__quick-icon {
  width: 36px !important;
  height: 36px !important;
}
body.ac-page-contatti .ac-contact__quick-icon svg {
  width: 24px !important;
  height: 24px !important;
}

/* ---------- HERO compact ---------- */
.ac-contact__hero{
  position:relative;
  min-height:60vh;
  padding-block:clamp(72px, 10vw, 120px);
  background:var(--ac-primary-500);
  color:var(--ac-text-inverse, #fff);
  overflow:hidden;
  isolation:isolate;
}
.ac-contact__pattern{
  position:absolute; inset:0;
  background-image:repeating-linear-gradient(45deg,
    transparent 0, transparent 18px,
    color-mix(in oklch, var(--ac-accent) 60%, transparent) 18px,
    color-mix(in oklch, var(--ac-accent) 60%, transparent) 19px);
  opacity:.06;
  z-index:0;
  pointer-events:none;
}
.ac-contact__hero-inner{
  position:relative;
  z-index:1;
  max-width:var(--ac-container, 1200px);
  margin-inline:auto;
  padding-inline:clamp(20px, 5vw, 48px);
  text-align:center;
  display:flex; flex-direction:column; align-items:center;
  gap:clamp(18px, 2.2vw, 28px);
}
.ac-contact__eyebrow{
  display:inline-block;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ac-accent);
  padding:.4rem 1rem;
  border:1px solid color-mix(in oklch, var(--ac-accent) 45%, transparent);
  border-radius:999px;
  background:color-mix(in oklch, var(--ac-accent) 8%, transparent);
}
.ac-contact__title{
  font-size:clamp(2rem, 4.5vw, 3.25rem);
  line-height:1.08;
  font-weight:800;
  letter-spacing:-.03em;
  color:var(--ac-text-inverse, #fff);
  max-width:22ch;
  margin:0;
}
.ac-contact__lead{
  font-size:clamp(1rem, 1.4vw, 1.15rem);
  line-height:1.6;
  color:color-mix(in oklch, var(--ac-text-inverse) 88%, transparent);
  max-width:52ch;
  margin:0;
}

/* ---------- Quick-contact trio (focal point) ---------- */
.ac-contact__quick{
  display:grid; gap:clamp(14px, 1.8vw, 22px);
  grid-template-columns:1fr;
  width:100%;
  max-width:880px;
  margin-top:clamp(18px, 2.4vw, 28px);
}
@media (min-width:768px){ .ac-contact__quick{ grid-template-columns:repeat(3, 1fr); } }
.ac-contact__quick-card{
  min-height:140px;
  padding:22px 20px;
  display:flex; flex-direction:column; gap:10px;
  text-decoration:none;
  color:var(--ac-text-inverse, #fff);
  background:oklch(98% .01 300 / .08);
  border:1px solid oklch(98% .01 300 / .15);
  border-radius:var(--radius-md, 16px);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:border-color .25s, transform .25s, background .25s;
}
.ac-contact__quick-card:hover,
.ac-contact__quick-card:focus-visible{
  border-color:var(--ac-accent);
  background:oklch(98% .01 300 / .14);
  transform:translateY(-4px);
}
.ac-contact__quick-card:focus-visible{
  outline:2px solid var(--ac-accent);
  outline-offset:3px;
}
.ac-contact__quick-icon{
  width:44px; height:44px;
  display:grid; place-items:center;
  color:var(--ac-accent);
}
.ac-contact__quick-icon svg{ width:28px; height:28px; }
.ac-contact__quick-value{
  font-size:1.5rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.01em;
}
.ac-contact__quick-label{
  font-size:.85rem;
  letter-spacing:.04em;
  color:color-mix(in oklch, var(--ac-text-inverse) 85%, transparent);
  text-transform:uppercase;
  font-weight:600;
}

/* ---------- NAP footer-hero ---------- */
.ac-contact__nap{
  font-size:.9rem;
  margin-top:clamp(10px, 1.4vw, 18px);
  color:color-mix(in oklch, var(--ac-text-inverse) 75%, transparent);
  letter-spacing:.02em;
}

/* ---------- S1 WHY (narrative centered) ---------- */
.ac-contact__why{
  background:var(--ac-surface, #fff);
  padding-block:clamp(64px, 8vw, 100px);
}
.ac-contact__why-inner{
  max-width:62ch;
  margin-inline:auto;
  padding-inline:clamp(20px, 5vw, 48px);
  text-align:center;
}
.ac-contact__why h2{
  font-size:clamp(1.75rem, 3.5vw, 2.5rem);
  line-height:1.15;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--ac-primary-900);
  margin:0 0 .8em;
}
.ac-contact__dots{
  display:flex; justify-content:center; gap:8px;
  margin:0 0 clamp(18px, 2vw, 28px);
}
.ac-contact__dots span{
  width:8px; height:8px;
  background:var(--ac-accent);
  border-radius:50%;
  display:block;
}
.ac-contact__dots span:nth-child(2){ opacity:.6; }
.ac-contact__dots span:nth-child(3){ opacity:.3; }
.ac-contact__why p{
  font-size:1.08rem;
  line-height:1.75;
  color:var(--ac-text, #1E1B4B);
  margin:0;
}

/* ==========================================================================
   v12.0 RESTORE VERBATIM — new variants for content prod fedelta
   ========================================================================== */

/* ---------- HERO SPLIT 50/50 (prod layout) ---------- */
body.ac-page-contatti .ac-contact__hero--split {
  padding-block: clamp(64px, 6vw, 96px) !important;
  min-height: auto !important;
}
body.ac-page-contatti .ac-contact__hero-split-inner {
  position: relative;
  z-index: 1;
  max-width: var(--ac-container, 1200px);
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(32px, 4vw, 56px);
  align-items: center;
}
@media (min-width: 900px) {
  body.ac-page-contatti .ac-contact__hero-split-inner {
    grid-template-columns: 1.1fr 1fr;
  }
}
body.ac-page-contatti .ac-contact__hero--split .ac-contact__title {
  font-size: clamp(1.85rem, 2.4vw + 0.8rem, 2.85rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.025em !important;
  max-width: 20ch !important;
  color: #ffffff !important;
  margin: 0 0 clamp(16px, 2vw, 24px) 0;
  text-align: left !important;
}
body.ac-page-contatti .ac-contact__hero-narrative p {
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(0.98rem, 1.2vw, 1.08rem);
  line-height: 1.65;
  margin: 0 0 0.8em 0;
  max-width: 56ch;
}
body.ac-page-contatti .ac-contact__hero-narrative p:last-child {
  margin-bottom: 0;
}
/* v12.1: override specificity cascade - design-system.css .entry-content p a:not(.ac-btn) winsover */
body.ac-page-contatti .ac-contact__hero-narrative p .ac-contact__map-link,
body.ac-page-contatti .ac-contact__hero-narrative p a.ac-contact__map-link,
body.ac-page-contatti .entry-content .ac-contact__hero-narrative p a.ac-contact__map-link {
  color: #F9A8D4 !important;
  text-decoration: underline;
  text-decoration-color: rgba(249, 168, 212, 0.6);
  text-underline-offset: 3px;
  padding-block: 4px;
  display: inline-block;
  line-height: 1.6;
  transition: color 0.2s, text-decoration-color 0.2s;
}
body.ac-page-contatti .ac-contact__hero-narrative p .ac-contact__map-link:hover,
body.ac-page-contatti .ac-contact__hero-narrative p .ac-contact__map-link:focus-visible {
  color: #FBCFE8 !important;
  text-decoration-color: #FBCFE8;
}
body.ac-page-contatti .ac-contact__hero-narrative p .ac-contact__map-link:focus-visible {
  outline: 2px solid var(--ac-accent);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Icon list phone + email (prod pattern) */
body.ac-page-contatti .ac-contact__iconlist {
  list-style: none;
  padding: 0;
  margin: clamp(24px, 3vw, 36px) 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
body.ac-page-contatti .ac-contact__iconlist-item {
  margin: 0;
}
body.ac-page-contatti .ac-contact__iconlist-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: #ffffff !important;
  text-decoration: none;
  font-size: 1.1rem;
  font-weight: 600;
  padding: 10px 16px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  transition: background 0.2s, border-color 0.2s, transform 0.2s;
}
body.ac-page-contatti .ac-contact__iconlist-link:hover,
body.ac-page-contatti .ac-contact__iconlist-link:focus-visible {
  background: rgba(255, 255, 255, 0.14);
  border-color: var(--ac-accent);
  transform: translateX(4px);
}
body.ac-page-contatti .ac-contact__iconlist-link:focus-visible {
  outline: 2px solid var(--ac-accent);
  outline-offset: 3px;
}
body.ac-page-contatti .ac-contact__iconlist-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: var(--ac-accent);
  background: rgba(236, 72, 153, 0.12);
  border-radius: 50%;
  flex-shrink: 0;
}
body.ac-page-contatti .ac-contact__iconlist-icon svg {
  width: 18px;
  height: 18px;
}
body.ac-page-contatti .ac-contact__iconlist-text {
  letter-spacing: 0.01em;
}

/* Hero col img */
body.ac-page-contatti .ac-contact__hero-col-img {
  position: relative;
  border-radius: clamp(16px, 2vw, 24px);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  max-height: 560px;
  box-shadow: 0 32px 64px -16px rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.15);
}
body.ac-page-contatti .ac-contact__hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 899px) {
  body.ac-page-contatti .ac-contact__hero-col-img {
    order: -1;
    aspect-ratio: 16 / 10;
    max-height: 320px;
  }
}

/* ---------- WHY section (H2 + arrow-down + paragraph prod) ---------- */
body.ac-page-contatti .ac-contact__arrow-down {
  display: flex;
  justify-content: center;
  margin: 0 auto clamp(18px, 2vw, 28px);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: color-mix(in oklch, var(--ac-accent) 15%, transparent);
  border: 2px solid var(--ac-accent);
  align-items: center;
  color: var(--ac-accent);
}
body.ac-page-contatti .ac-contact__arrow-down svg {
  width: 20px;
  height: 20px;
}

/* ---------- PILLAR CARDS with images (prod icons) ---------- */
body.ac-page-contatti .ac-about__pillar-card--img {
  text-align: center;
}
body.ac-page-contatti .ac-about__pillar-img-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 96px;
  height: 96px;
  margin: 0 auto clamp(16px, 2vw, 22px);
  background: color-mix(in oklch, var(--ac-primary-500) 10%, transparent);
  border-radius: 50%;
  padding: 16px;
}
body.ac-page-contatti .ac-about__pillar-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  max-width: 64px;
  max-height: 64px;
}
body.ac-page-contatti .ac-about__pillar-card--img h2 {
  font-size: clamp(1.15rem, 1.4vw, 1.35rem);
  font-weight: 700;
  color: var(--ac-primary-900);
  margin: 0 0 0.6em;
  letter-spacing: -0.01em;
}
body.ac-page-contatti .ac-about__pillar-card--img p {
  font-size: 0.98rem;
  line-height: 1.7;
  color: var(--ac-text, #1E1B4B);
  margin: 0;
  text-align: left;
}

/* ---------- CHI SIAMO 50/50 (prod layout con logo) ---------- */
body.ac-page-contatti .ac-contact__chi-siamo {
  background: color-mix(in oklch, var(--ac-primary-500) 4%, var(--ac-surface));
  padding-block: clamp(56px, 7vw, 88px);
}
body.ac-page-contatti .ac-contact__chi-siamo-inner {
  max-width: var(--ac-container, 1200px);
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(32px, 4vw, 56px);
  align-items: center;
}
@media (min-width: 900px) {
  body.ac-page-contatti .ac-contact__chi-siamo-inner {
    grid-template-columns: 1fr 1fr;
  }
}
body.ac-page-contatti .ac-contact__chi-siamo h2 {
  font-size: clamp(1.65rem, 2.6vw, 2.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ac-primary-900);
  margin: 0 0 clamp(18px, 2vw, 28px);
  line-height: 1.18;
}
body.ac-page-contatti .ac-contact__chi-siamo p {
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--ac-text, #1E1B4B);
  margin: 0 0 1em 0;
}
body.ac-page-contatti .ac-contact__chi-siamo p:last-child {
  margin-bottom: 0;
}
body.ac-page-contatti .ac-contact__chi-siamo p strong {
  color: var(--ac-primary-700);
  font-weight: 700;
}
body.ac-page-contatti .ac-contact__chi-siamo p a {
  color: var(--ac-primary-500);
  font-weight: 500;
}
body.ac-page-contatti .ac-contact__chi-siamo p a:hover,
body.ac-page-contatti .ac-contact__chi-siamo p a:focus-visible {
  color: var(--ac-accent);
}
body.ac-page-contatti .ac-contact__chi-siamo-col-img {
  display: flex;
  justify-content: center;
  align-items: center;
}
body.ac-page-contatti .ac-contact__chi-siamo-img {
  max-width: 100%;
  width: auto;
  height: auto;
  max-height: 220px;
  object-fit: contain;
}

/* ==========================================================================
   v12.2 FINAL A11Y FIX - form gradient contrast-safe (WCAG AA)
   Replaces viola->pink gradient (#6B21A8 -> #EC4899) with safe viola scale.
   Pink end #EC4899 vs white = 3.53 FAIL. New #7E22CE max = 5.25 PASS.
   ========================================================================== */
body.ac-page-contatti .ac-form-section {
  background: linear-gradient(135deg, #3B0764 0%, #6B21A8 55%, #7E22CE 100%) !important;
}

/* ==========================================================================
   v12.1 A11Y FIXES (WCAG 2.2 AA compliance - P0/P1/P2 fix batch)
   ========================================================================== */

/* P0: Form privacy label + form paragraphs contrast su gradient end pink */
body.ac-page-contatti .ac-form-section p,
body.ac-page-contatti .ac-form-section h2 ~ p {
  color: #ffffff !important;
  font-weight: 500 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
}
body.ac-page-contatti .ac-form-section label.ac-checkbox .ac-text-white,
body.ac-page-contatti .ac-form-section label.ac-checkbox .ac-small {
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  line-height: 1.55;
}
body.ac-page-contatti .ac-form-section label.ac-checkbox a {
  color: #ffffff !important;
  text-decoration: underline !important;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
  font-weight: 600;
  padding: 4px 2px;
  display: inline-block;
}
body.ac-page-contatti .ac-form-section label.ac-checkbox a:hover,
body.ac-page-contatti .ac-form-section label.ac-checkbox a:focus-visible {
  text-decoration-color: rgba(255, 255, 255, 0.7);
}

/* P2: Target size checkbox privacy 24x24 + gap comodo */
body.ac-page-contatti .ac-form-section input[type="checkbox"][name="privacy"] {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px;
  min-height: 24px;
  cursor: pointer;
  accent-color: var(--ac-accent);
  flex-shrink: 0;
  margin-top: 2px;
}
body.ac-page-contatti .ac-form-section label.ac-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 6px 0;
  cursor: pointer;
}

/* P1: Form visible labels (floating style sopra input) */
body.ac-page-contatti .ac-form-section .ac-form-group {
  position: relative;
}
body.ac-page-contatti .ac-form-section .ac-form-group label.ac-form-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 6px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
  letter-spacing: 0.02em;
}

/* P1: Input focus-visible enhanced */
body.ac-page-contatti .ac-form-section input.ac-input:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 3px;
  border-color: #ffffff;
  background: #ffffff;
}

/* P0: Button Invia focus-visible */
body.ac-page-contatti .ac-form-section button[type="submit"]:focus-visible {
  outline: 3px solid var(--ac-accent);
  outline-offset: 4px;
}

/* P2: Hero mobile - image first (immagine sopra H1 per visual hook) */
@media (max-width: 899px) {
  body.ac-page-contatti .ac-contact__hero--split .ac-contact__hero-col-img {
    order: -1;
  }
  body.ac-page-contatti .ac-contact__hero-split-inner {
    grid-template-columns: 1fr;
  }
}

/* P1: Chi Siamo desktop balance - add align-items center + secondary visual */
@media (min-width: 900px) {
  body.ac-page-contatti .ac-contact__chi-siamo-inner {
    align-items: center;
  }
  body.ac-page-contatti .ac-contact__chi-siamo-col-img {
    padding: clamp(16px, 2vw, 32px);
    background: rgba(107, 33, 168, 0.04);
    border-radius: clamp(12px, 1.5vw, 20px);
  }
}

/* P2: Breadcrumb link padding target size + focus-visible */
body.ac-page-contatti .ac-breadcrumb a {
  padding: 4px 6px;
  display: inline-block;
  border-radius: 4px;
}
body.ac-page-contatti .ac-breadcrumb a:focus-visible {
  outline: 2px solid var(--ac-accent);
  outline-offset: 2px;
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  .ac-contact__quick-card,
  body.ac-page-contatti .ac-contact__iconlist-link,
  body.ac-page-contatti .ac-contact__map-link{
    transition:none !important;
    transform:none !important;
  }
}
