
:root{
  --ab-primary:#0f5a36;
  --ab-primary-dark:#073d24;
  --ab-accent:#b85f1d;
  --ab-gold:#c89435;
  --ab-bg:#fbf8f1;
  --ab-soft:#f4eee4;
  --ab-card:#fffdf9;
  --ab-text:#092315;
  --ab-muted:#536358;
  --ab-border:#eadfce;
  --ab-shadow:0 14px 34px rgba(20,40,28,.09);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ab-bg);color:var(--ab-text);font-family:Arial,Helvetica,sans-serif;line-height:1.62}
a{color:var(--ab-primary);text-decoration:none}
img{max-width:100%;height:auto}
h1,h2,h3,h4,.site-title{font-family:Georgia,"Times New Roman",serif;line-height:1.08}
.ab-container{width:min(1220px,calc(100% - 56px));margin-inline:auto}
.ab-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 335px;gap:24px;align-items:start;padding-bottom:50px}
.ab-main-content{min-width:0}
.ab-main-content>*:first-child{margin-top:0}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,253,249,.97);border-bottom:1px solid var(--ab-border);backdrop-filter:blur(12px)}
.header-inner{min-height:82px;display:grid;grid-template-columns:255px minmax(0,1fr) auto;align-items:center;gap:24px}
.logo{white-space:nowrap}
.site-title{display:block;color:var(--ab-primary);font-size:31px;font-weight:700;letter-spacing:-.03em}
.site-subtitle{display:block;color:var(--ab-accent);font-size:11px;font-weight:900;letter-spacing:.28em}
.main-nav ul{display:flex;justify-content:center;align-items:center;gap:27px;list-style:none;margin:0;padding:0;flex-wrap:nowrap}
.main-nav a{color:var(--ab-text);font-size:14px;font-weight:800;white-space:nowrap}
.main-nav a:hover{color:var(--ab-primary)}
.ab-header-button{white-space:nowrap}

/* Bottoni: tutti i nuovi bottoni Gutenberg mantengono lo stile */
.wp-block-button__link,.ab-button,.ab-widget-button{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:12px 19px!important;
  border:1px solid var(--ab-primary)!important;
  border-radius:10px!important;
  background:var(--ab-primary)!important;
  color:#fff!important;
  font-weight:800!important;
  box-shadow:0 9px 20px rgba(15,90,54,.18);
}
.is-style-outline>.wp-block-button__link,.ab-button-outline .wp-block-button__link{
  background:#fff!important;
  color:var(--ab-primary)!important;
}
.ab-calendar-button .wp-block-button__link:before,.ab-calendar:before{
  content:"";
  width:17px;height:17px;display:inline-block;background:currentColor;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 2h2v3h6V2h2v3h3a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h3V2Zm13 9H4v9h16v-9ZM4 9h16V7H4v2Z"/></svg>') center/contain no-repeat;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 2h2v3h6V2h2v3h3a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h3V2Zm13 9H4v9h16V7H4v2Z"/></svg>') center/contain no-repeat;
}

/* Hero 50/50, interamente modificabile in Gutenberg */
.ab-hero{
  display:grid!important;
  grid-template-columns:1fr 1fr;
  gap:0!important;
  min-height:470px;
  margin:0 0 18px!important;
  overflow:hidden;
  border:1px solid var(--ab-border);
  border-radius:0 0 22px 22px;
  background:linear-gradient(90deg,#fffdf9,#fff8ed);
  box-shadow:0 10px 26px rgba(20,40,28,.06);
}
.ab-hero-copy{
  padding:48px 38px!important;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ab-hero-copy h1{margin:0 0 14px;font-size:clamp(38px,4vw,57px);color:var(--ab-primary-dark)}
.ab-hero-copy p{font-size:17px;color:#24382c}
.ab-heart-line{display:flex;align-items:center;gap:12px;color:var(--ab-gold);margin:7px 0 15px}
.ab-heart-line:before,.ab-heart-line:after{content:"";height:1px;background:var(--ab-gold);flex:1}
.ab-hero-image{margin:0!important;height:100%}
.ab-hero-image img{display:block;width:100%;height:470px;object-fit:cover;object-position:center}

/* Card Percorsi Home */
.ab-services-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px!important;
  margin:18px 0 28px!important;
}
.ab-service-card{
  padding:18px 12px!important;
  text-align:center;
  background:var(--ab-card);
  border:1px solid var(--ab-border);
  border-radius:16px;
  box-shadow:0 8px 20px rgba(20,40,28,.055);
}
.ab-service-card .wp-block-image{margin:0 auto 8px!important}
.ab-service-card img{width:62px;height:62px;object-fit:contain}
.ab-service-card h3{font-size:21px;margin:0 0 8px}
.ab-service-card p{font-size:12px;color:var(--ab-muted);line-height:1.4}
.ab-service-card .wp-block-button__link{
  padding:0!important;border:0!important;background:transparent!important;color:var(--ab-primary)!important;box-shadow:none!important;font-size:12px
}

/* Ultimi articoli dinamici a card */
.ab-section-title{margin:0 0 15px;font-size:29px}
.ab-section-title:after{content:" ❧";color:var(--ab-primary);font-size:22px}
.ab-article-query .wp-block-post-template{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:15px!important;
}
.ab-article-query .wp-block-post{
  margin:0!important;
  overflow:hidden;
  background:var(--ab-card);
  border:1px solid var(--ab-border);
  border-radius:15px;
  box-shadow:0 8px 20px rgba(20,40,28,.055);
}
.ab-article-card{padding-bottom:14px}
.ab-article-card .wp-block-post-featured-image{margin:0 0 12px!important}
.ab-article-card .wp-block-post-featured-image img{width:100%;aspect-ratio:16/9;object-fit:cover}
.ab-article-card .wp-block-post-terms,.ab-article-card .wp-block-post-title,.ab-article-card .wp-block-post-excerpt,.ab-article-card .wp-block-post-date{margin-left:14px!important;margin-right:14px!important}
.ab-post-category a{display:inline-block;padding:4px 9px;border-radius:999px;background:var(--ab-primary);color:#fff;font-size:10px;text-transform:uppercase}
.ab-article-card .wp-block-post-title{font-size:20px;margin-top:9px}
.ab-article-card .wp-block-post-title a{color:var(--ab-text)}
.ab-article-card .wp-block-post-excerpt{font-size:13px;color:var(--ab-muted)}
.ab-article-card .wp-block-post-excerpt__more-link{color:var(--ab-primary);font-weight:800}

/* Testimonianze dinamiche */
.ab-testimonials-section{
  margin:22px 0!important;
  padding:24px!important;
  text-align:center;
  background:#fff9ef;
  border:1px solid var(--ab-border);
  border-radius:17px;
}
.ab-testimonial-query .wp-block-post-template{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px!important;
}
.ab-testimonial-query .wp-block-post{
  margin:0!important;padding:18px!important;background:#fff;border:1px solid var(--ab-border);border-radius:14px
}
.ab-testimonial-query .wp-block-post-content{font-size:14px}
.ab-testimonial-query .wp-block-post-title{font-size:16px;color:var(--ab-primary)}
.ab-stars{color:#d99a21;letter-spacing:3px;font-size:20px}

/* Punti di forza */
.ab-strengths{
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0!important;margin:20px 0!important;overflow:hidden;background:#eff1e8;border:1px solid var(--ab-border);border-radius:17px
}
.ab-strength{padding:18px 12px!important;text-align:center;border-right:1px solid var(--ab-border)}
.ab-strength:last-child{border-right:0}
.ab-strength img{width:68px;height:68px;padding:8px;object-fit:contain;background:#fff;border-radius:50%;box-shadow:0 7px 15px rgba(0,0,0,.06)}
.ab-strength h3{font-size:16px;margin:9px 0 0}

/* Sidebar widget */
.ab-sidebar{display:flex;flex-direction:column;gap:14px;padding-top:10px}
.ab-sidebar .widget{margin:0}
.ab-widget-card{
  padding:18px;background:var(--ab-card);border:1px solid var(--ab-border);border-radius:15px;box-shadow:0 9px 22px rgba(20,40,28,.055)
}
.ab-doctor-widget{text-align:center}
.ab-doctor-widget h3{margin:0;font-size:20px}
.ab-doctor-photo{width:160px;height:160px;border-radius:50%;object-fit:cover;border:7px solid #f5eee4}
.ab-doctor-quote{font-size:13px;color:var(--ab-primary);font-weight:700}
.ab-telegram-widget{
  position:relative;overflow:hidden;color:#fff;background:linear-gradient(135deg,#158add,#1baef0);border:0;box-shadow:0 16px 30px rgba(25,140,215,.24)
}
.ab-telegram-widget:after{content:"";position:absolute;right:-18px;top:-26px;width:115px;height:115px;border-radius:50%;background:rgba(255,255,255,.16)}
.ab-telegram-widget h3{margin:0 65px 7px 0;color:#fff;font-size:23px}
.ab-telegram-widget p{margin-right:65px;font-size:13px}
.ab-telegram-icon{position:absolute;right:18px;top:16px;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.22)}
.ab-telegram-icon svg{width:34px;height:34px;fill:#fff}
.ab-telegram-widget .ab-widget-button{width:100%;background:#fff!important;color:#0876bf!important;border:0!important;box-shadow:none}
.ab-category-list,.ab-recent-list{list-style:none;margin:0;padding:0}
.ab-category-list li{border-bottom:1px solid var(--ab-border);padding:9px 0}
.ab-category-list a{display:flex;align-items:center;justify-content:space-between;color:var(--ab-text);font-size:13px}
.ab-category-list a:after{content:"›";color:var(--ab-primary);font-size:18px}
.ab-recent-list li{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;align-items:center;margin-bottom:11px}
.ab-recent-list img{width:62px;height:52px;object-fit:cover;border-radius:8px}
.ab-recent-list a{font-size:12px;color:var(--ab-text);line-height:1.3}
.ab-whatsapp-widget{
  display:flex;align-items:center;gap:13px;padding:17px 18px;color:#fff!important;background:linear-gradient(135deg,#0f6b3b,#239652);border-radius:15px;box-shadow:var(--ab-shadow);font-family:Georgia,"Times New Roman",serif;font-size:20px;font-weight:700
}
.ab-whatsapp-icon{width:48px;height:48px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#25d366;box-shadow:inset 0 0 0 4px rgba(255,255,255,.25)}
.ab-whatsapp-icon svg{width:28px;height:28px;fill:#fff}

/* Pagine interne */
.ab-page-heading{margin:0 0 26px;padding:45px 32px;background:linear-gradient(90deg,#fffdf9,#f7efe4);border:1px solid var(--ab-border);border-radius:0 0 20px 20px}
.ab-page-heading h1{margin:0 0 8px;font-size:47px}
.ab-page-heading p{margin:0;color:var(--ab-muted)}
.ab-path-section{
  display:grid!important;grid-template-columns:1fr 1fr;gap:28px!important;align-items:stretch;margin:0 0 32px!important
}
.ab-path-section:nth-of-type(even)>.ab-path-image{order:2}
.ab-path-image{margin:0!important}
.ab-path-image img{width:100%;height:350px;object-fit:cover;border-radius:17px;box-shadow:var(--ab-shadow)}
.ab-path-copy{padding:30px!important;display:flex;flex-direction:column;justify-content:center;background:var(--ab-card);border:1px solid var(--ab-border);border-radius:17px;box-shadow:0 10px 24px rgba(20,40,28,.055)}
.ab-contact-grid{display:grid!important;grid-template-columns:.9fr 1.1fr;gap:26px!important}
.ab-contact-card{padding:28px!important;background:var(--ab-card);border:1px solid var(--ab-border);border-radius:17px}
.ab-contact-form label{display:block;margin:12px 0 5px;font-weight:800}
.ab-contact-form input,.ab-contact-form textarea{width:100%;padding:12px;border:1px solid var(--ab-border);border-radius:9px;background:#fff}
.ab-contact-form textarea{min-height:155px}
.ab-faq-item{padding:16px 0;border-bottom:1px solid var(--ab-border)}
.ab-faq-item h3{margin:0 0 7px;font-size:18px}
.ab-faq-item p{margin:0;color:var(--ab-muted)}

/* Blog */
.ab-blog-list{display:grid;gap:16px}
.ab-blog-card{display:grid;grid-template-columns:265px minmax(0,1fr);overflow:hidden;background:var(--ab-card);border:1px solid var(--ab-border);border-radius:15px}
.ab-blog-card-image img{display:block;width:100%;height:100%;min-height:190px;object-fit:cover}
.ab-blog-card-body{padding:18px}
.ab-blog-card h2{font-size:24px;margin:8px 0}
.ab-blog-card p{color:var(--ab-muted)}
.ab-single-card{padding:30px;background:var(--ab-card);border:1px solid var(--ab-border);border-radius:17px}
.ab-single-card>.wp-post-image{width:100%;max-height:440px;object-fit:cover;border-radius:14px}

/* Footer */
.site-footer{padding:34px 0 14px;background:#f5efe5;border-top:1px solid var(--ab-border)}
.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:28px}
.footer-grid .widget{margin:0}
.footer-grid h3{margin-top:0}
.footer-grid ul{list-style:none;margin:0;padding:0}
.footer-grid li{margin:7px 0}
.footer-bottom{margin-top:22px;padding-top:13px;text-align:center;border-top:1px solid var(--ab-border);font-size:12px;color:var(--ab-muted)}
.back-to-top{position:fixed;right:18px;bottom:18px;width:48px;height:48px;border:0;border-radius:50%;background:var(--ab-primary);color:#fff;font-size:23px;box-shadow:var(--ab-shadow);opacity:0;pointer-events:none;transition:.2s;z-index:90}
.back-to-top.visible{opacity:1;pointer-events:auto}

/* Responsive */
@media(max-width:1100px){
  .header-inner{grid-template-columns:1fr auto;padding:12px 0}
  .main-nav{grid-column:1/-1;grid-row:2}
  .main-nav ul{justify-content:flex-start;overflow:auto;padding-bottom:7px}
  .ab-page-layout{grid-template-columns:1fr}
  .ab-sidebar{padding-top:0}
  .ab-services-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .ab-container{width:min(100% - 32px,1220px)}
  .ab-hero{grid-template-columns:1fr}
  .ab-hero-image img{height:330px}
  .ab-services-grid,.ab-article-query .wp-block-post-template,.ab-testimonial-query .wp-block-post-template,.ab-strengths,.footer-grid{grid-template-columns:1fr}
  .ab-strength{border-right:0;border-bottom:1px solid var(--ab-border)}
  .ab-path-section,.ab-contact-grid{grid-template-columns:1fr}
  .ab-path-section:nth-of-type(even)>.ab-path-image{order:0}
  .ab-blog-card{grid-template-columns:1fr}
}


/* =========================================================
   V11.1 — CORREZIONE PROPORZIONI E ALLINEAMENTI
   ========================================================= */

/* Elimina margini Gutenberg che disallineavano le sezioni della Home. */
.ab-main-content > *{
  width:100%;
  max-width:none;
  margin-left:0!important;
  margin-right:0!important;
}
.ab-main-content > .wp-block-columns,
.ab-main-content > .wp-block-group,
.ab-main-content > .wp-block-query{
  width:100%;
  max-width:none;
}
.ab-main-content .wp-block-columns{
  margin-bottom:0;
}
.ab-main-content .wp-block-group-is-layout-flow > *,
.ab-main-content .is-layout-flow > *{
  margin-block-start:0;
}
.ab-sidebar{
  padding-top:0;
}

/* Hero più compatta e perfettamente 50/50. */
.ab-hero{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  min-height:390px;
}
.ab-hero-copy{
  min-width:0;
  padding:36px 31px!important;
}
.ab-hero-copy h1{
  max-width:100%;
  margin-bottom:12px;
  font-size:clamp(34px,3vw,43px);
  line-height:1.04;
  letter-spacing:-.025em;
}
.ab-hero-copy p{
  margin-top:0;
  margin-bottom:18px;
  font-size:16px;
}
.ab-hero-copy .wp-block-buttons{
  gap:10px;
}
.ab-hero-media,
.ab-hero-image,
.ab-hero-image figure{
  height:100%;
  min-height:390px;
  margin:0!important;
}
.ab-hero-image img{
  display:block;
  width:100%;
  height:390px;
  min-height:390px;
  object-fit:cover;
  object-position:center;
}

/* Card percorsi tutte della stessa altezza e contenuti allineati. */
.ab-services-grid{
  grid-auto-rows:1fr;
  align-items:stretch;
}
.ab-services-grid > *{
  margin-block-start:0!important;
}
.ab-service-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  height:100%;
}
.ab-service-card h3{
  min-height:2.25em;
  display:flex;
  align-items:center;
  justify-content:center;
}
.ab-service-card p{
  min-height:3.55em;
}
.ab-service-card .wp-block-buttons{
  margin-top:auto!important;
}

/* Ultimi articoli: tre card ordinate, uguali e allineate. */
.ab-article-query .wp-block-post-template{
  align-items:stretch;
  margin:0!important;
  padding:0!important;
}
.ab-article-query .wp-block-post{
  height:100%;
}
.ab-article-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.ab-article-card .wp-block-post-title{
  min-height:2.35em;
}
.ab-article-card .wp-block-post-excerpt{
  margin-top:auto!important;
}

/* Testimonianze e punti di forza uniformi. */
.ab-testimonial-query .wp-block-post-template{
  align-items:stretch;
  margin:0!important;
  padding:0!important;
}
.ab-testimonial-query .wp-block-post{
  height:100%;
}
.ab-strengths{
  align-items:stretch;
}
.ab-strength{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  height:100%;
}

/* Chi sono: testo 70%, immagine 30%. */
.ab-about-grid{
  display:grid!important;
  grid-template-columns:minmax(0,7fr) minmax(260px,3fr);
  gap:28px!important;
  align-items:stretch!important;
  margin-bottom:34px!important;
}
.ab-about-grid > .wp-block-column{
  min-width:0;
  margin:0!important;
}
.ab-about-grid .ab-contact-card{
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ab-about-grid > .wp-block-column:last-child,
.ab-about-grid > .wp-block-column:last-child figure{
  height:100%;
  margin:0!important;
}
.ab-about-grid > .wp-block-column:last-child img{
  display:block;
  width:100%;
  height:100%;
  min-height:430px;
  max-height:520px;
  object-fit:cover;
  object-position:center;
  border-radius:17px;
  box-shadow:var(--ab-shadow);
}

/* Sidebar: primo widget allineato al bordo superiore della Hero. */
.ab-sidebar > .widget:first-child{
  margin-top:0!important;
}

/* Spaziature verticali più regolari in Home. */
.ab-services-grid,
.ab-article-query,
.ab-testimonials-section,
.ab-strengths{
  clear:both;
}
.ab-section-title{
  margin-top:24px;
}

@media(max-width:1100px){
  .ab-hero-copy h1{
    font-size:clamp(35px,4.2vw,47px);
  }
  .ab-about-grid{
    grid-template-columns:minmax(0,65fr) minmax(260px,35fr);
  }
}

@media(max-width:760px){
  .ab-hero{
    grid-template-columns:1fr;
    min-height:0;
  }
  .ab-hero-media,
  .ab-hero-image,
  .ab-hero-image figure{
    min-height:0;
  }
  .ab-hero-image img{
    height:320px;
    min-height:320px;
  }
  .ab-about-grid{
    grid-template-columns:1fr;
  }
  .ab-about-grid > .wp-block-column:last-child img{
    min-height:0;
    max-height:430px;
    aspect-ratio:4/5;
  }
}


/* =========================================================
   V11.2 — CARD ORIZZONTALI, SPAZIATURE TESTO E MODULI
   ========================================================= */

/*
 * I blocchi Query di Gutenberg assegnano una larghezza inline ai singoli
 * elementi quando usano il layout flex. In una griglia CSS quella larghezza
 * rendeva ogni card strettissima. Viene quindi azzerata esplicitamente.
 */
.ab-article-query .wp-block-post-template.is-flex-container,
.ab-testimonial-query .wp-block-post-template.is-flex-container,
.ab-article-query .wp-block-post-template,
.ab-testimonial-query .wp-block-post-template{
  display:grid!important;
  width:100%!important;
  max-width:none!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
  align-items:stretch!important;
}

.ab-article-query .wp-block-post-template > li,
.ab-testimonial-query .wp-block-post-template > li,
.ab-article-query .wp-block-post,
.ab-testimonial-query .wp-block-post{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  flex-basis:auto!important;
  margin:0!important;
}

/* Card articoli con testo leggibile e sviluppo orizzontale. */
.ab-article-query{
  width:100%!important;
  max-width:none!important;
  overflow:visible;
}
.ab-article-card{
  width:100%;
  min-width:0;
  height:100%;
}
.ab-article-card .wp-block-post-title{
  min-height:0;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  line-height:1.18;
}
.ab-article-card .wp-block-post-title a{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.ab-article-card .wp-block-post-excerpt{
  line-height:1.55;
}

/* Testimonianze in tre colonne reali e non in card verticali strette. */
.ab-testimonials-section{
  overflow:visible;
}
.ab-testimonial-query{
  width:100%!important;
  max-width:none!important;
}
.ab-testimonial-query .wp-block-post{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:230px;
  padding:20px!important;
}
.ab-testimonial-query .wp-block-post-content{
  font-size:15px;
  line-height:1.7;
}
.ab-testimonial-query .wp-block-post-content p{
  margin:0 0 16px;
}
.ab-testimonial-query .wp-block-post-title{
  margin-top:auto;
}

/* Spazio tra card articoli, pulsante e sezione testimonianze. */
.ab-article-query + .wp-block-buttons{
  margin-top:24px!important;
  margin-bottom:30px!important;
}
.ab-testimonials-section{
  margin-top:0!important;
}
.ab-testimonials-section + .ab-strengths{
  margin-top:26px!important;
}

/* Tipografia e interlinea nelle pagine e negli articoli. */
.ab-main-content p,
.ab-single-card p,
.ab-main-content li,
.ab-single-card li{
  line-height:1.78;
}

.ab-main-content p,
.ab-single-card p{
  margin-top:0;
  margin-bottom:1.2em;
}

.ab-main-content h1,
.ab-main-content h2,
.ab-main-content h3,
.ab-main-content h4,
.ab-single-card h1,
.ab-single-card h2,
.ab-single-card h3,
.ab-single-card h4{
  line-height:1.16;
  margin-top:1.35em;
  margin-bottom:.58em;
}

.ab-main-content > h1:first-child,
.ab-main-content > h2:first-child,
.ab-main-content > h3:first-child,
.ab-page-heading h1,
.ab-hero-copy h1,
.ab-service-card h3,
.ab-strength h3,
.ab-widget-card h3{
  margin-top:0;
}

/* Mantiene più spazio tra titolo, sottotitolo e testo nelle sezioni Percorsi. */
.ab-path-copy h2{
  margin-bottom:.45em;
}
.ab-path-copy h3{
  margin-top:0;
  margin-bottom:.75em;
}
.ab-path-copy p{
  margin-bottom:1.25em;
}

/* Pagina Chi sono e Contatti. */
.ab-contact-card h2{
  margin-top:1.15em;
}
.ab-contact-card h2:first-child{
  margin-top:0;
}

/*
 * Stile compatibile con Contact Form 7 e WPForms.
 * Quando viene incollato il loro shortcode, campi e pulsante assumono
 * automaticamente lo stile verde del tema.
 */
.ab-main-content .wpcf7,
.ab-main-content .wpforms-container{
  width:100%;
}

.ab-main-content .wpcf7 label,
.ab-main-content .wpforms-container label,
.ab-main-content .wpforms-field-label{
  display:block;
  margin:0 0 7px!important;
  color:var(--ab-text)!important;
  font-weight:800!important;
  line-height:1.45!important;
}

.ab-main-content .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.ab-main-content .wpcf7 textarea,
.ab-main-content .wpcf7 select,
.ab-main-content .wpforms-container input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.ab-main-content .wpforms-container textarea,
.ab-main-content .wpforms-container select{
  display:block;
  width:100%!important;
  max-width:100%!important;
  min-height:47px;
  padding:12px 13px!important;
  border:1px solid var(--ab-border)!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--ab-text)!important;
  font:inherit!important;
  box-shadow:none!important;
  outline:none;
}

.ab-main-content .wpcf7 textarea,
.ab-main-content .wpforms-container textarea{
  min-height:155px;
  resize:vertical;
}

.ab-main-content .wpcf7 input:focus,
.ab-main-content .wpcf7 textarea:focus,
.ab-main-content .wpcf7 select:focus,
.ab-main-content .wpforms-container input:focus,
.ab-main-content .wpforms-container textarea:focus,
.ab-main-content .wpforms-container select:focus{
  border-color:var(--ab-primary)!important;
  box-shadow:0 0 0 3px rgba(15,90,54,.10)!important;
}

.ab-main-content .wpcf7 p,
.ab-main-content .wpforms-field{
  margin-bottom:17px!important;
}

.ab-main-content .wpcf7 input[type="submit"],
.ab-main-content .wpcf7 button,
.ab-main-content .wpforms-container button[type="submit"],
.ab-main-content .wpforms-submit{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:12px 20px!important;
  border:1px solid var(--ab-primary)!important;
  border-radius:10px!important;
  background:var(--ab-primary)!important;
  color:#fff!important;
  font:inherit!important;
  font-weight:800!important;
  line-height:1!important;
  box-shadow:0 9px 20px rgba(15,90,54,.18)!important;
  cursor:pointer;
}

.ab-main-content .wpcf7 input[type="submit"]:hover,
.ab-main-content .wpcf7 button:hover,
.ab-main-content .wpforms-container button[type="submit"]:hover,
.ab-main-content .wpforms-submit:hover{
  background:var(--ab-primary-dark)!important;
  border-color:var(--ab-primary-dark)!important;
  color:#fff!important;
}

/* Messaggi di conferma o errore dei plugin form. */
.ab-main-content .wpcf7-response-output,
.ab-main-content .wpforms-confirmation-container-full{
  margin:18px 0 0!important;
  padding:13px 15px!important;
  border:1px solid var(--ab-border)!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--ab-text)!important;
}

/* Tablet */
@media(max-width:900px){
  .ab-article-query .wp-block-post-template.is-flex-container,
  .ab-testimonial-query .wp-block-post-template.is-flex-container,
  .ab-article-query .wp-block-post-template,
  .ab-testimonial-query .wp-block-post-template{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* Mobile */
@media(max-width:620px){
  .ab-article-query .wp-block-post-template.is-flex-container,
  .ab-testimonial-query .wp-block-post-template.is-flex-container,
  .ab-article-query .wp-block-post-template,
  .ab-testimonial-query .wp-block-post-template{
    grid-template-columns:1fr!important;
  }

  .ab-testimonial-query .wp-block-post{
    min-height:0;
  }
}


/* =========================================================
   V11.6 — WIDGET FACEBOOK
   Nessuna foglia decorativa nell'immagine o nel pulsante.
   ========================================================= */
.ab-facebook-widget{
  overflow:hidden;
  padding:18px!important;
  background:linear-gradient(145deg,#ffffff 0%,#f5f8ff 100%);
  border:1px solid #cbd9f4;
  box-shadow:0 12px 28px rgba(24,119,242,.13);
}

.ab-facebook-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:13px;
  border-bottom:1px solid #dce4f2;
}

.ab-facebook-header h3{
  margin:0!important;
  color:#17233a;
  font-family:Arial,Helvetica,sans-serif;
  font-size:21px;
  line-height:1.15;
}

.ab-facebook-logo{
  width:47px;
  height:47px;
  flex:0 0 47px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#1877f2;
  box-shadow:0 8px 18px rgba(24,119,242,.25);
}

.ab-facebook-logo svg{
  width:31px;
  height:31px;
  fill:#fff;
}

.ab-facebook-content{
  display:grid;
  grid-template-columns:minmax(0,1fr) 72px;
  gap:12px;
  align-items:center;
  padding:16px 0;
}

.ab-facebook-content p{
  margin:0!important;
  color:#263246;
  font-size:14px;
  line-height:1.55;
}

.ab-facebook-like{
  width:68px;
  height:68px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  background:#eaf2ff;
  color:#1877f2;
}

.ab-facebook-like svg{
  width:43px;
  height:43px;
  fill:currentColor;
}

.ab-facebook-button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  padding:11px 14px;
  border-radius:9px;
  background:#1877f2;
  color:#fff!important;
  font-size:14px;
  font-weight:800;
  text-align:center;
  box-shadow:0 8px 18px rgba(24,119,242,.2);
}

.ab-facebook-button:hover{
  background:#0f66d5;
  color:#fff!important;
}


/* V11.7 — visibilità e larghezza widget Facebook */
.ab-sidebar .widget_ab_facebook,
.ab-sidebar .ab-facebook-fallback,
.ab-sidebar .ab-facebook-widget{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  visibility:visible!important;
  opacity:1!important;
}
