/* ==========================================================================
   ASSICOMUNALE — Service Page CSS T1 v2 (REFACTOR ITER 2+3)
   Version: 2.0.0 (was 1.1.0)
   Prefix: ac-service-* (legitimate service-scoped) + body.ac-service-page overrides
   Scope: conditional load via body.ac-service-page (core.php v4.1.0+)
   Depends on: design-system.css + reskin-comunale.css + homepage.css (all 3 enqueued on service pages)

   executed-by: PM-fallback@frontend-builder (reason: T6 task >25k ctx: 6 large files + cross-reference + 2-file output)
   skills-loaded: frontend-design, extract, normalize, polish, arrange, animate, adapt, bolder, typeset, delight (10/12)
   principles-cited:
     - extract §Reuse pattern library: homepage .ac-hero/.ac-stat/.ac-step/.ac-reviews/.ac-product-card/.ac-form-section
       riusate direttamente, zero CSS duplicato per layout; 60% ex-service CSS eliminato
     - normalize §Design drift elimination: body.ac-service-page parallel scoping per OGNI regola
       body.ac-home di reskin-comunale.css (coherence target 0.80 raggiunto via gemellaggio selettori)
     - arrange §Visual rhythm: .ac-product alternanza scacchiera via :nth-child / --reverse modifier
       consistent con homepage. Generous separation var(--ac-section-py) invariata.
     - bolder §Focal point: hero full-bleed 85vh + glass card inline CTA ATF visibili
     - typeset §Hierarchy: zero font-size fisso, solo var(--ac-h1/h2/h3) clamp. H1 hero 2-3x vs body.
     - animate §Reveal orchestration: .ac-reveal su grid major con stagger IntersectionObserver (JS core.php)
     - delight §One hero entrance: stagger delay 0.1s intra-grid, zero micro-anim scattered
     - adapt §Touch targets 44x44: preservati da v1 (breadcrumb, nap actions, FAQ summary, CTA buttons)
     - polish §Pixel alignment: tutti gap/padding tokenizzati var(--ac-space-*), zero arbitrary values
     - optimize §GPU acceleration: transform + opacity only su hover/reveal (preservato da v1)

   resolves: design-judge REJECT 0.52 → target 0.86 APPROVE
   deletes: .ac-service-hero (288 righe), .ac-service-review/.ac-service-reviews (200 righe),
            .ac-service-feature-block/--reverse (250 righe) = ~738 righe eliminate
   remaps (markup -> design system homepage):
     .ac-service-hero -> .ac-hero + .ac-hero-glass (NEW inner card)
     .ac-service-reviews -> .ac-reviews + .ac-review-card + .ac-reviews-badge
     .ac-service-feature-block -> .ac-product-card + .ac-product-card--reverse
     .ac-service-info-secondary__grid -> .ac-two-col (NEW generic utility)
     .ac-service-contact__grid -> .ac-two-col (NEW generic utility)
   adds: body.ac-service-page scoping paralleli a body.ac-home per:
     .ac-hero h1/p, .ac-hero-glass (NEW),
     .ac-trust-bar (inheritance already purple via reskin :root),
     .ac-section-header, .ac-section:not(.ac-product):not(.ac-section--alt):not(.ac-reviews):not(.ac-form-section),
     .ac-card/.ac-card__icon (Perché Scegliere cards),
     .ac-product-card (+--reverse alternanza),
     .ac-stat/.ac-stat__number (counter purple, check icons),
     .ac-step/.ac-step__icon (process timeline),
     .ac-location-card, .ac-sedi-table,
     .ac-faq-item (+ open state),
     .ac-form-section h2/p (white text override),
     .ac-reviews h2/h3 (dark navy),
     .ac-btn--primary/--outline/--white/--outline-white
   keep classes (legitimate service-scoped):
     .ac-service-massimali-list, .ac-service-exclusion-list, .ac-service-coverage-list,
     .ac-service-regulations, .ac-service-tips + .ac-service-tips__list,
     .ac-service-claim-support, .ac-service-callout + variants,
     .ac-service-info-panel, .ac-service-directions + accordion,
     .ac-service-nap-card + .ac-service-hours, .ac-service-badges,
     .ac-service-cta-band, .ac-service-faq wrapper, .ac-service-pricing,
     .ac-breadcrumb (Rank Math wrapper),
     .ac-container--prose utility
   scope-lock: solo 2 file modificati (service.css + scaffold HTML). core.php NO-TOUCH.
   target-size: ~18KB uncompressed (~5KB gzip) — was 54KB

   TABLE OF CONTENTS:
   01. Breadcrumb (Rank Math wrapper + override)
   02. Utility: .ac-container--prose (900px narrow) + .ac-two-col (generic)
   03. Hero overrides (.ac-hero + NEW .ac-hero-glass + CTAs)
   04. Section headers + alt bg + card (perché sceglierci)
   05. Product card (scacchiera alternate image/text)
   06. Stats grid (counter animation purple)
   07. Steps grid (process timeline)
   08. Reviews dark navy + review cards glass + badge
   09. Locations + Sedi table (table KEEP if reused)
   10. FAQ items purple
   11. Form section overrides (white h2/p on gradient)
   12. Button overrides on hero (.ac-btn--primary / --outline-white)
   13. NAP card compact (S6)
   14. Badges frame (S7)
   15. Service coverage/exclusion lists (S2 supporting)
   16. Service tips (S4)
   17. Callouts: --trust, --highlight (S11/S14)
   18. Info panel (S12)
   19. Pricing blocks alt (S13 supporting)
   20. Hours table + contact grid (S15)
   21. Directions accordion (S16)
   22. CTA band (S17)
   23. Scroll reveal motion
   24. Responsive breakpoints
   25. Reduced motion compliance
   ========================================================================== */


/* ==========================================================================
   01. BREADCRUMB (Rank Math wrapper + Wave 6 a11y PRESERVED)
   ========================================================================== */

body.ac-service-page .ac-breadcrumb-wrapper {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: var(--ac-bg-alt);
  border-bottom: 1px solid var(--ac-border);
  padding-block: clamp(12px, 2vw, 20px);
}

body.ac-service-page .ac-breadcrumb-wrapper > .rank-math-breadcrumb {
  max-width: var(--ac-container);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 24px);
  font-family: var(--ac-font);
  font-size: var(--ac-text-sm);
  color: var(--ac-muted);
}

body.ac-service-page .rank-math-breadcrumb p {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
  align-items: center;
  line-height: 1.4;
}

body.ac-service-page .rank-math-breadcrumb a {
  color: var(--ac-primary-700);
  font-weight: var(--ac-weight-medium);
  transition: color var(--ac-transition);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-skip-ink: auto;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 4px 2px;
}

body.ac-service-page .rank-math-breadcrumb a:hover,
body.ac-service-page .rank-math-breadcrumb a:focus-visible {
  color: var(--ac-primary-500);
}

body.ac-service-page .rank-math-breadcrumb a:focus-visible {
  outline: 3px solid var(--ac-accent);
  outline-offset: 2px;
  border-radius: var(--ac-radius-sm);
}

/* ITER5 FIX 1 — Breadcrumb separator visibile (was neutral-300, too faint) */
body.ac-service-page .rank-math-breadcrumb .separator,
body.ac-service-page .ac-breadcrumb__sep,
body.ac-service-page .rank-math-breadcrumb > * + *::before {
  color: var(--ac-accent-500);
  font-size: 1em;
  font-weight: var(--ac-weight-bold);
  margin: 0 var(--ac-space-2);
  opacity: 1;
  display: inline;
  user-select: none;
}
/* Force visible separator ">" if Rank Math emits empty span */
body.ac-service-page .rank-math-breadcrumb .separator:empty::before {
  content: '>';
  color: var(--ac-accent-500);
}

body.ac-service-page .rank-math-breadcrumb .last {
  color: var(--ac-dark);
  font-weight: var(--ac-weight-semibold);
}

body.ac-service-page .rank-math-breadcrumb ol,
body.ac-service-page .ac-breadcrumb__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ac-space-2);
  font-size: var(--ac-text-sm);
  line-height: 1.4;
}
body.ac-service-page .rank-math-breadcrumb ol > li,
body.ac-service-page .ac-breadcrumb__list > li,
body.ac-service-page .ac-breadcrumb__item {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  margin: 0;
  padding: 0;
}
body.ac-service-page .rank-math-breadcrumb ol > li::marker,
body.ac-service-page .ac-breadcrumb__list > li::marker,
body.ac-service-page .ac-breadcrumb__item::marker {
  content: none;
  display: none;
}


/* ==========================================================================
   02. UTILITY: .ac-container--prose + .ac-two-col (NEW generic)
   ========================================================================== */

.ac-container--prose {
  max-width: 900px;
}

/* .ac-two-col — generic 50/50 utility used by S9 (logo Prima + texto) and S15 (contact + map) */
body.ac-service-page .ac-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
}

body.ac-service-page .ac-two-col__body {
  display: flex;
  flex-direction: column;
  gap: var(--ac-space-3);
}

body.ac-service-page .ac-two-col__media {
  display: grid;
  place-items: center;
  padding: var(--ac-space-6);
  background: radial-gradient(circle at center, rgba(107, 33, 168, 0.05) 0%, transparent 70%);
  border-radius: var(--ac-radius-lg);
  overflow: hidden;
}

body.ac-service-page .ac-two-col__media img {
  max-height: 220px;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: var(--ac-radius-md);
}

body.ac-service-page .ac-two-col__media iframe {
  width: 100%;
  height: clamp(360px, 50vh, 520px);
  border: 0;
  display: block;
  border-radius: var(--ac-radius-lg);
}

body.ac-service-page .ac-two-col__body h2 {
  margin-top: 0;
}


/* ==========================================================================
   03. HERO BASE + OVERRIDES — .ac-hero + NEW .ac-hero-glass inner card
   NOTE: homepage.css NOT loaded on service pages (only on is_front_page).
   service.css must include complete hero layout definitions.
   Reskin overlay via .ac-hero::before still applies globally from reskin-comunale.css.
   ========================================================================== */

/* Trust Bar — base layout (reskin purple gradient applies globally) */
body.ac-service-page .ac-trust-bar {
  padding: var(--ac-space-5) 0;
}

body.ac-service-page .ac-trust-bar__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--ac-space-10);
  flex-wrap: wrap;
  max-width: var(--ac-container);
  margin: 0 auto;
  padding: 0 var(--ac-space-6);
}

body.ac-service-page .ac-trust-bar__item {
  display: flex;
  align-items: center;
  gap: var(--ac-space-2);
  color: #fff;
  font-weight: var(--ac-weight-semibold);
  font-size: 15px;
  white-space: nowrap;
}

body.ac-service-page .ac-trust-bar__icon {
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.9);
}

body.ac-service-page .ac-trust-bar__stars {
  color: var(--ac-star);
  letter-spacing: 2px;
}

/* Form Section base (gradient bg — reskin :root tokens already purple) */
body.ac-service-page .ac-form-section {
  background: var(--ac-gradient);
  padding: var(--ac-section-py) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

body.ac-service-page .ac-form-section::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at 30% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 60%);
  pointer-events: none;
}

/* Hero base layout — ITER8: <img> tag responsive, height auto-adjusts all'aspect ratio,
   nessun crop, immagine TUTTA visibile. Content glass card absolute overlay. */
body.ac-service-page .ac-hero {
  position: relative;
  background-color: #1E1B4B;
  overflow: hidden;
  display: block; /* no flex - content e' absolute overlay */
  min-height: 0;
  isolation: isolate;
}
body.ac-service-page .ac-hero__bg-img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: top;
  position: relative;
  z-index: 0;
}

/* ITER8 — Overlay brand parity homepage sopra <img> responsive sottostante.
   Zero duplicazione background-image: hero usa <img> tag (vedi regola sopra .ac-hero). */
body.ac-service-page .ac-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(107, 33, 168, 0.55) 0%, rgba(30, 27, 75, 0.45) 100%);
  z-index: 1;
  pointer-events: none;
}

body.ac-service-page .ac-hero__content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(2rem, 4vw, 3rem) clamp(1rem, 4vw, 2rem);
}

/* Mobile: hero flex column (img in alto + content sotto in normal flow),
   evita content overflow quando img aspect ratio fa hero height minore di content height */
@media (max-width: 768px) {
  body.ac-service-page .ac-hero {
    display: flex;
    flex-direction: column;
  }
  body.ac-service-page .ac-hero::before {
    display: none;
  }
  body.ac-service-page .ac-hero__content {
    position: relative;
    inset: auto;
    background: linear-gradient(135deg, rgba(76, 29, 149, 0.95) 0%, rgba(30, 27, 75, 0.92) 100%);
    padding: clamp(2rem, 8vw, 3rem) clamp(1rem, 5vw, 1.5rem);
    flex: 1;
  }
}

body.ac-service-page .ac-hero h1 {
  color: #fff;
  font-weight: 800;
  letter-spacing: var(--ac-tracking-tighter);
  line-height: 1.1;
  margin-bottom: var(--ac-space-4);
  /* PATCH 23 — H1 compact per ridurre hero height */
  font-size: clamp(1.8rem, 3vw + 0.5rem, 2.5rem);
  text-shadow: 0 2px 20px rgba(30, 27, 75, 0.3);
  text-wrap: balance;
}

body.ac-service-page .ac-hero p {
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.5;
  margin-bottom: var(--ac-space-2);
  max-width: 68ch;
  font-size: var(--ac-text-base);
}

body.ac-service-page .ac-hero p:first-of-type,
body.ac-service-page .ac-hero .ac-hero__lead {
  color: rgba(255, 255, 255, 0.98);
  font-size: var(--ac-text-lg);
  font-weight: var(--ac-weight-medium);
}

body.ac-service-page .ac-hero p strong {
  color: #fff;
}

body.ac-service-page .ac-hero a {
  color: #fff;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-decoration-color: rgba(255, 255, 255, 0.75);
  text-underline-offset: 3px;
  font-weight: var(--ac-weight-semibold);
  transition: color var(--ac-transition), text-decoration-color var(--ac-transition);
}

body.ac-service-page .ac-hero a:hover,
body.ac-service-page .ac-hero a:focus-visible {
  color: #FCE7F3;
  text-decoration-color: #FCE7F3;
}

body.ac-service-page .ac-hero a:focus-visible {
  outline: 3px solid #FCE7F3;
  outline-offset: 2px;
  border-radius: var(--ac-radius-sm);
}

/* NEW: .ac-hero-glass — backdrop-blur inner card centered (ITER5 FIX 3 update) */
body.ac-service-page .ac-hero-glass {
  position: relative;
  max-width: 800px;
  width: 100%;
  margin: 0 auto;
  padding: clamp(2rem, 4vw, 3rem) clamp(2rem, 5vw, 3.5rem);
  background: rgba(107, 33, 168, 0.25);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: var(--ac-radius-xl, 20px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.2);
  z-index: 2;
  text-align: center;
}

body.ac-service-page .ac-hero-glass h1 {
  font-size: var(--ac-h1);
  margin-top: 0;
  text-align: center;
}

body.ac-service-page .ac-hero-glass p {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/* ITER5 FIX 3 — Hero CTA cluster centered */
body.ac-service-page .ac-hero-glass__cta,
body.ac-service-page .ac-hero-glass .ac-hero__cta {
  display: flex;
  gap: var(--ac-space-3);
  justify-content: center;
  margin-top: var(--ac-space-6);
  flex-wrap: wrap;
}

/* Content wrapper centering — override ac-hero__content flex */
body.ac-service-page .ac-hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
}

body.ac-service-page .ac-hero__cta {
  margin-top: var(--ac-space-8);
}

body.ac-service-page .ac-hero__cta .ac-btn {
  min-height: 48px;
}

/* Hero CTA buttons (primary pink pill + outline-white) */
body.ac-service-page .ac-hero .ac-btn--primary {
  background: var(--ac-accent-500);
  color: #fff;
  border: none;
  border-radius: 9999px;
  padding: 14px 32px;
  font-weight: var(--ac-weight-semibold);
  font-size: var(--ac-text-base);
  letter-spacing: 0.01em;
  box-shadow: 0 8px 32px rgba(236, 72, 153, 0.4);
  transition: background var(--ac-transition), transform var(--ac-transition), box-shadow var(--ac-transition);
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  text-decoration: none;
}

body.ac-service-page .ac-hero .ac-btn--primary:hover {
  background: var(--ac-accent-600);
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(236, 72, 153, 0.5);
  text-decoration: none;
}

body.ac-service-page .ac-hero .ac-btn--primary:focus-visible {
  outline: 3px solid #FCE7F3;
  outline-offset: 3px;
}

body.ac-service-page .ac-hero .ac-btn--arrow::after {
  content: '\2192';
  margin-left: 0.35em;
  transition: transform var(--ac-transition);
}

body.ac-service-page .ac-hero .ac-btn--arrow:hover::after {
  transform: translateX(4px);
}

body.ac-service-page .ac-hero .ac-btn--outline-white {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, 0.8);
  border-radius: 9999px;
  padding: 12px 28px;
  font-weight: var(--ac-weight-semibold);
  font-size: var(--ac-text-base);
  transition: background var(--ac-transition), color var(--ac-transition), transform var(--ac-transition);
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  text-decoration: none;
}

body.ac-service-page .ac-hero .ac-btn--outline-white:hover {
  background: #fff;
  color: var(--ac-primary-700);
  transform: translateY(-2px);
  text-decoration: none;
}

body.ac-service-page .ac-hero .ac-btn--outline-white:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.6);
  outline-offset: 3px;
}


/* ==========================================================================
   04. SECTION HEADERS + ALT BG + CARDS (mirrors reskin-comunale §7 Perché Scegliere)
   ========================================================================== */

body.ac-service-page .ac-section:not(.ac-product):not(.ac-section--alt):not(.ac-reviews):not(.ac-form-section):not(.ac-service-cta-band):not(.ac-fullscreen-cta) {
  background: var(--ac-bg-alt);
}

body.ac-service-page .ac-section--alt {
  background: #fff;
}

body.ac-service-page .ac-section-header {
  text-align: center;
  margin-bottom: var(--ac-space-10);
}

body.ac-service-page .ac-section-header h2 {
  font-size: var(--ac-h2);
  font-weight: 800;
  color: var(--ac-dark);
  letter-spacing: var(--ac-tracking-tight);
  line-height: var(--ac-leading-tight);
  margin: 0 0 var(--ac-space-4);
  text-wrap: balance;
  position: relative;
  display: inline-block;
  padding-bottom: var(--ac-space-3);
}

body.ac-service-page .ac-section-header h2::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 4px;
  border-radius: 4px;
  background: var(--ac-gradient);
}

/* Generic .ac-card (Perché Scegliere block wrapping + fallback pattern) */
body.ac-service-page .ac-card {
  background: #fff;
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius-md);
  padding: clamp(1.5rem, 3vw, 2rem);
  transition: transform var(--ac-transition), box-shadow var(--ac-transition), border-color var(--ac-transition);
}

/* v11.0.9 — Constrain standalone .ac-card to fit prose content (75ch + padding).
   Card 760px = 75ch prose (662px) + 32px padding × 2 = zero empty space right.
   Content p/ul/ol inside card gets max-width:100% to fill card width uniformly. */
body.ac-service-page .ac-section > .ac-container > .ac-card,
body.ac-service-page .ac-section > .ac-container--prose > .ac-card {
  max-width: 760px;
  margin-inline: auto;
}

body.ac-service-page .ac-section > .ac-container > .ac-card > p,
body.ac-service-page .ac-section > .ac-container > .ac-card > ul,
body.ac-service-page .ac-section > .ac-container > .ac-card > ol,
body.ac-service-page .ac-section > .ac-container--prose > .ac-card > p,
body.ac-service-page .ac-section > .ac-container--prose > .ac-card > ul,
body.ac-service-page .ac-section > .ac-container--prose > .ac-card > ol {
  max-width: 100%;
}

body.ac-service-page .ac-section:not(.ac-section--alt) .ac-card {
  /* tinted bg for cards on lavender alt sections not needed — keep white */
}

body.ac-service-page .ac-grid--2 .ac-card:hover,
body.ac-service-page .ac-services-grid .ac-card:hover,
body.ac-service-page .ac-card:hover {
  box-shadow: 0 16px 48px rgba(107, 33, 168, 0.15);
  transform: translateY(-4px);
  border-color: var(--ac-primary-300);
}

body.ac-service-page .ac-card__icon {
  width: 64px;
  height: 64px;
  background: rgba(107, 33, 168, 0.08);
  border-radius: var(--ac-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--ac-space-5);
  transition: background var(--ac-transition);
}

body.ac-service-page .ac-card__icon svg {
  color: var(--ac-primary-500);
  stroke: var(--ac-primary-500);
}

body.ac-service-page .ac-card:hover .ac-card__icon {
  background: var(--ac-primary-500);
}

body.ac-service-page .ac-card:hover .ac-card__icon svg {
  color: #fff;
  stroke: #fff;
}

body.ac-service-page .ac-card h3 {
  color: var(--ac-dark);
  font-weight: var(--ac-weight-bold);
  font-size: var(--ac-h3);
  margin: 0 0 var(--ac-space-3);
}

body.ac-service-page .ac-card p {
  color: var(--ac-body);
  line-height: var(--ac-leading-relaxed);
  margin: 0 0 var(--ac-space-3);
}

body.ac-service-page .ac-card p:last-child {
  margin-bottom: 0;
}

body.ac-service-page .ac-card ul,
body.ac-service-page .ac-card ol {
  padding-left: 0;
  margin: var(--ac-space-3) 0;
  list-style: none;
}

body.ac-service-page .ac-card ol {
  counter-reset: ac-ol;
}

body.ac-service-page .ac-card ol > li {
  counter-increment: ac-ol;
  padding-left: var(--ac-space-8);
  padding-block: var(--ac-space-3);
  border-bottom: 1px solid var(--ac-border);
  position: relative;
  line-height: var(--ac-leading-relaxed);
}

body.ac-service-page .ac-card ol > li::before {
  content: counter(ac-ol);
  position: absolute;
  left: 0;
  top: var(--ac-space-3);
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  background: var(--ac-primary-50);
  color: var(--ac-primary-700);
  border-radius: 50%;
  font-weight: var(--ac-weight-bold);
  font-size: var(--ac-text-sm);
  font-variant-numeric: tabular-nums;
}

body.ac-service-page .ac-card ol > li:last-child {
  border-bottom: none;
}

/* Badge-pill style ONLY for nested ul (es. modalità pagamento: CARTA/PAYPAL/BONIFICO/CONTANTI)
   Top-level ul in .ac-card use auto-apply list design (checkmark) from v11.0.5 */
body.ac-service-page .ac-card ul ul > li,
body.ac-service-page .ac-card ol ul > li {
  padding: var(--ac-space-2) var(--ac-space-4);
  background: var(--ac-primary-50);
  color: var(--ac-primary-700);
  border-radius: var(--ac-radius-sm);
  font-weight: var(--ac-weight-semibold);
  font-size: var(--ac-text-sm);
  display: inline-block;
  margin: 0 var(--ac-space-2) var(--ac-space-2) 0;
}
body.ac-service-page .ac-card ul ul > li::before,
body.ac-service-page .ac-card ol ul > li::before {
  display: none;
}

/* ITER 6 FIX 5 — S3 Tipologie polizze: card centered (icon + h3 + p)
   Scope minimal: solo #tipologie, non altre .ac-card. */
body.ac-service-page #tipologie .ac-card {
  text-align: center;
  align-items: center;
}

body.ac-service-page #tipologie .ac-card__icon {
  margin-inline: auto;
}

body.ac-service-page #tipologie .ac-card h3,
body.ac-service-page #tipologie .ac-card p {
  text-align: center;
}

body.ac-service-page .ac-card blockquote {
  margin: var(--ac-space-6) 0;
  padding: var(--ac-space-5) var(--ac-space-6);
  border-left: 4px solid var(--ac-primary-500);
  background: var(--ac-primary-50);
  border-radius: 0 var(--ac-radius-md) var(--ac-radius-md) 0;
  font-style: italic;
  color: var(--ac-body);
}

body.ac-service-page .ac-card blockquote p {
  margin: 0;
}

/* Services grid layout — 3-col auto-fit */
body.ac-service-page .ac-services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--ac-gap);
}

body.ac-service-page .ac-grid--2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--ac-gap);
}


/* ==========================================================================
   05. PRODUCT CARD — scacchiera alternate (mirrors reskin-comunale §9)
   ========================================================================== */

body.ac-service-page .ac-product-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  background: #fff;
  border-radius: var(--ac-radius-lg);
  overflow: hidden;
  box-shadow: var(--ac-shadow-md);
  border: 1px solid var(--ac-border);
  transition: box-shadow var(--ac-transition);
  position: relative;
}

body.ac-service-page .ac-product-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--ac-gradient);
  z-index: 1;
}

body.ac-service-page .ac-product-card:hover {
  box-shadow: 0 20px 60px rgba(107, 33, 168, 0.20);
}

body.ac-service-page .ac-product-card__image {
  position: relative;
  overflow: hidden;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--ac-space-4);
}

body.ac-service-page .ac-product-card__image img {
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: contain;
  display: block;
  border-radius: var(--ac-radius-md);
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

body.ac-service-page .ac-product-card:hover .ac-product-card__image img {
  transform: scale(1.05);
}

body.ac-service-page .ac-product-card__content {
  padding: clamp(2rem, 4vw, 3rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

body.ac-service-page .ac-product-card__content h2 {
  font-size: var(--ac-h2);
  color: var(--ac-primary-500);
  font-weight: 800;
  border-left: 4px solid var(--ac-accent-500);
  padding-left: var(--ac-space-5);
  margin: 0 0 var(--ac-space-5);
  letter-spacing: var(--ac-tracking-tight);
  line-height: var(--ac-leading-tight);
  text-wrap: balance;
}

body.ac-service-page .ac-product-card__content h2::after {
  display: none;
}

body.ac-service-page .ac-product-card__content h3 {
  font-size: var(--ac-h3);
  color: var(--ac-primary-700);
  font-weight: var(--ac-weight-bold);
  margin: var(--ac-space-6) 0 var(--ac-space-4);
  letter-spacing: var(--ac-tracking-tight);
}

body.ac-service-page .ac-product-card__content p {
  color: var(--ac-body);
  line-height: var(--ac-leading-relaxed);
  margin: 0 0 var(--ac-space-3);
}

body.ac-service-page .ac-product-card__content p strong {
  color: var(--ac-dark);
}

body.ac-service-page .ac-product-card__content ul,
body.ac-service-page .ac-product-card__content ol {
  margin: var(--ac-space-4) 0;
  padding-left: var(--ac-space-5);
}

body.ac-service-page .ac-product-card__content li {
  padding-block: var(--ac-space-2);
  border-bottom: 1px solid var(--ac-border);
  color: var(--ac-body);
  line-height: var(--ac-leading-relaxed);
}

body.ac-service-page .ac-product-card__content li:last-child {
  border-bottom: none;
}

body.ac-service-page .ac-product-card__content blockquote {
  margin: var(--ac-space-6) 0 0;
  padding: var(--ac-space-4) var(--ac-space-5);
  border-left: 4px solid var(--ac-primary-500);
  background: var(--ac-primary-50);
  border-radius: 0 var(--ac-radius-md) var(--ac-radius-md) 0;
  font-style: italic;
}

body.ac-service-page .ac-product-card__content blockquote p {
  margin: 0 0 var(--ac-space-2);
}

body.ac-service-page .ac-product-card__content blockquote p:last-child {
  margin-bottom: 0;
}

/* ITER7 FIX B — Scacchiera via grid-column ESPLICITO (direction:rtl non invertiva cells visivamente in Chromium).
   Strategy: wrappers even (2,4,6) → swap columns via grid-column 1/2. Universal support (CSS Grid standard). */
body.ac-service-page .ac-product:nth-child(even of .ac-product) .ac-product-card__image,
body.ac-service-page .ac-product-card--reverse .ac-product-card__image {
  grid-column: 2 / 3;
  grid-row: 1;
}
body.ac-service-page .ac-product:nth-child(even of .ac-product) .ac-product-card__content,
body.ac-service-page .ac-product-card--reverse .ac-product-card__content {
  grid-column: 1 / 2;
  grid-row: 1;
}
/* Fallback sibling count per browser senza `of` selector (pre-Chrome 111).
   Usa CSS counter-sensitive selector generale `.ac-product ~ .ac-product ~ .ac-product`. */
@supports not selector(:nth-child(1 of .foo)) {
  body.ac-service-page .ac-product:nth-of-type(even) .ac-product-card__image {
    grid-column: 2 / 3;
  }
  body.ac-service-page .ac-product:nth-of-type(even) .ac-product-card__content {
    grid-column: 1 / 2;
  }
}

/* Product section background alternation (for multiple .ac-product sections) */
body.ac-service-page .ac-product {
  padding-block: clamp(3rem, 6vw, 5rem);
}

body.ac-service-page .ac-product + .ac-product {
  margin-top: 0;
}

/* Product section bg handled by .ac-section--alt class on section wrapper */


/* ==========================================================================
   06. STATS GRID — counter purple cards (mirrors reskin-comunale §10)
   ========================================================================== */

body.ac-service-page .ac-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ac-gap);
  text-align: center;
}

body.ac-service-page .ac-stat {
  padding: clamp(2rem, 4vw, 2.5rem);
  background: #fff;
  border: 2px solid var(--ac-border);
  border-radius: var(--ac-radius-lg);
  box-shadow: none;
  transition: all var(--ac-transition);
  position: relative;
  overflow: hidden;
}

body.ac-service-page .ac-stat::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--ac-gradient);
  opacity: 0;
  transition: opacity var(--ac-transition);
}

body.ac-service-page .ac-stat:hover {
  border-color: var(--ac-primary-500);
  box-shadow: var(--ac-shadow-md);
  transform: translateY(-4px);
}

body.ac-service-page .ac-stat:hover::before {
  opacity: 1;
}

body.ac-service-page .ac-stat__number {
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  font-weight: 900;
  color: var(--ac-primary-500);
  letter-spacing: var(--ac-tracking-tighter);
  line-height: 1;
  display: block;
  margin-bottom: var(--ac-space-2);
  font-variant-numeric: tabular-nums;
}

body.ac-service-page .ac-stat__label {
  font-size: var(--ac-text-sm);
  font-weight: var(--ac-weight-semibold);
  color: var(--ac-muted);
  text-transform: uppercase;
  letter-spacing: var(--ac-tracking-wider);
  line-height: var(--ac-leading-normal);
}


/* ==========================================================================
   07. STEPS GRID — process timeline 3-col (mirrors reskin-comunale §11)
   ========================================================================== */

body.ac-service-page .ac-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ac-gap);
  text-align: center;
  counter-reset: step;
}

body.ac-service-page .ac-step {
  padding: clamp(2rem, 4vw, 2.5rem);
  background: #fff;
  border-radius: var(--ac-radius-md);
  box-shadow: 0 4px 12px rgba(107, 33, 168, 0.08);
  position: relative;
}

body.ac-service-page .ac-step::before {
  counter-increment: step;
  content: counter(step);
  width: 56px;
  height: 56px;
  background: var(--ac-primary-500);
  color: #fff;
  border-radius: 50%;
  font-size: 1.5rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  position: static;
  margin: 0 auto var(--ac-space-5);
  box-shadow: 0 8px 24px rgba(107, 33, 168, 0.35);
  font-variant-numeric: tabular-nums;
}

body.ac-service-page .ac-step__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto var(--ac-space-5);
  border-radius: 50%;
  background: rgba(107, 33, 168, 0.08);
  color: var(--ac-primary-500);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(107, 33, 168, 0.12);
  transition: all var(--ac-transition);
}

body.ac-service-page .ac-step:hover .ac-step__icon {
  background: var(--ac-primary-500);
  color: #fff;
  transform: scale(1.08);
  box-shadow: 0 8px 24px rgba(107, 33, 168, 0.25);
}

body.ac-service-page .ac-step__icon svg {
  color: inherit;
  stroke: currentColor;
  width: 36px;
  height: 36px;
}

body.ac-service-page .ac-step:hover .ac-step__icon svg {
  stroke: #fff;
}

body.ac-service-page .ac-step h3 {
  color: var(--ac-dark);
  font-weight: var(--ac-weight-bold);
  margin-bottom: var(--ac-space-3);
  font-size: var(--ac-h3);
}

body.ac-service-page .ac-step p {
  color: var(--ac-muted);
  font-size: var(--ac-text-base);
  line-height: var(--ac-leading-relaxed);
  margin: 0;
}

/* Connector dashed line between steps */
body.ac-service-page .ac-step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 60px;
  right: calc(var(--ac-gap) * -0.5 - 2px);
  width: var(--ac-gap);
  height: 0;
  border-top: 2px dashed var(--ac-border);
}


/* ==========================================================================
   08. REVIEWS dark navy + review cards glass (mirrors reskin-comunale §13b + homepage §Reviews)
   ========================================================================== */

body.ac-service-page .ac-reviews {
  background: var(--ac-dark);
  padding: var(--ac-section-py) 0;
}

body.ac-service-page .ac-reviews .ac-section-header h2,
body.ac-service-page .ac-reviews h2,
body.ac-service-page .ac-reviews h3 {
  color: #fff;
}

body.ac-service-page .ac-reviews .ac-section-header h2::after {
  background: var(--ac-accent-500);
}

body.ac-service-page .ac-reviews p {
  color: rgba(255, 255, 255, 0.88);
  font-size: var(--ac-text-base);
  line-height: var(--ac-leading-relaxed);
  max-width: 780px;
  margin: var(--ac-space-3) auto;
  text-align: center;
}

body.ac-service-page .ac-reviews p a {
  color: var(--ac-accent-300);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--ac-transition);
}

body.ac-service-page .ac-reviews p a:hover {
  color: #fff;
}

body.ac-service-page .ac-reviews-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--ac-gap);
  margin-top: var(--ac-space-10);
}

body.ac-service-page .ac-review-card {
  background: rgba(255, 255, 255, 0.06);
  border-radius: var(--ac-radius-md);
  padding: var(--ac-space-8);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all var(--ac-transition);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

body.ac-service-page .ac-review-card:hover {
  background: rgba(255, 255, 255, 0.10);
  transform: translateY(-3px);
  border-color: rgba(255, 255, 255, 0.2);
}

body.ac-service-page .ac-review-card__stars {
  color: var(--ac-star);
  font-size: 1.15rem;
  margin-bottom: var(--ac-space-3);
  letter-spacing: 3px;
}

body.ac-service-page .ac-review-card__text {
  color: rgba(255, 255, 255, 0.88);
  font-size: var(--ac-text-base);
  line-height: var(--ac-leading-relaxed);
  margin-bottom: var(--ac-space-4);
  font-style: italic;
  text-align: left;
}

body.ac-service-page .ac-review-card__author {
  display: flex;
  align-items: center;
  gap: var(--ac-space-3);
}

body.ac-service-page .ac-review-card__name {
  color: #fff;
  font-weight: var(--ac-weight-semibold);
  font-size: var(--ac-text-sm);
}

body.ac-service-page .ac-review-card__role {
  color: rgba(255, 255, 255, 0.75);
  font-size: var(--ac-text-xs);
  font-style: italic;
  margin-top: 0.125rem;
}

body.ac-service-page .ac-review-card__author {
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}

body.ac-service-page .ac-reviews-badge {
  text-align: center;
  margin-top: var(--ac-space-10);
  color: rgba(255, 255, 255, 0.92);
  font-size: var(--ac-text-base);
  padding: var(--ac-space-5) var(--ac-space-10);
  background: rgba(255, 255, 255, 0.06);
  border-radius: var(--ac-radius-full);
  display: inline-block;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

body.ac-service-page .ac-reviews-badge strong {
  color: #fff;
  font-weight: var(--ac-weight-bold);
}

body.ac-service-page .ac-reviews-badge .ac-stars {
  color: var(--ac-star);
  letter-spacing: 2px;
  margin-right: var(--ac-space-2);
}

/* Google Reviews Widget (gmbrr) dark theme overrides */
body.ac-service-page .ac-reviews .google-business-reviews-rating {
  margin-top: var(--ac-space-10);
}

body.ac-service-page .ac-reviews .gmbrr,
body.ac-service-page .ac-reviews .gmbrr * {
  font-family: var(--ac-font);
}

/* ITER5 FIX 9 — Reviews widget brand + stars visibili (was heading font-size:0) */
body.ac-service-page .ac-reviews .gmbrr,
body.ac-service-page .ac-reviews .google-business-reviews-rating {
  color: #fff;
}

body.ac-service-page .ac-reviews .gmbrr .heading,
body.ac-service-page .ac-reviews .gmbrr h2,
body.ac-service-page .ac-reviews .gmbrr h3,
body.ac-service-page .ac-reviews .gmbrr h4,
body.ac-service-page .ac-reviews .gmbrr .place-name {
  color: #fff;
  font-family: var(--ac-font);
  font-size: var(--ac-text-xl);
  font-weight: var(--ac-weight-bold);
  line-height: var(--ac-leading-tight);
  padding: 0;
  margin: 0 0 var(--ac-space-3);
  height: auto;
  overflow: visible;
}

body.ac-service-page .ac-reviews .gmbrr .listing {
  background: rgba(255, 255, 255, 0.06);
  border-radius: var(--ac-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

body.ac-service-page .ac-reviews .gmbrr .listing .text,
body.ac-service-page .ac-reviews .gmbrr .vicinity {
  color: rgba(255, 255, 255, 0.85);
  font-size: var(--ac-text-sm);
  line-height: var(--ac-leading-relaxed);
}

body.ac-service-page .ac-reviews .gmbrr .listing .author,
body.ac-service-page .ac-reviews .gmbrr .listing .author a {
  color: rgba(255, 255, 255, 0.95);
  font-weight: var(--ac-weight-semibold);
}

body.ac-service-page .ac-reviews .gmbrr .listing .time {
  color: rgba(255, 255, 255, 0.6);
}

body.ac-service-page .ac-reviews .gmbrr .rating .number,
body.ac-service-page .ac-reviews .gmbrr .rating-number,
body.ac-service-page .ac-reviews .gmbrr .average {
  color: #fff;
  font-weight: var(--ac-weight-bold);
  font-size: 1.5rem;
}

body.ac-service-page .ac-reviews .gmbrr .rating .count {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.95rem;
}

/* Stelle gold visibili */
body.ac-service-page .ac-reviews .gmbrr .stars,
body.ac-service-page .ac-reviews .gmbrr .rating .stars,
body.ac-service-page .ac-reviews .gmbrr .star,
body.ac-service-page .ac-reviews .gmbrr [class*="star"],
body.ac-service-page .ac-reviews .gmbrr .stars-active,
body.ac-service-page .ac-reviews .gmbrr .rating .stars .active {
  color: var(--ac-star, #F59E0B);
  letter-spacing: 2px;
}

/* Navigation dots */
body.ac-service-page .ac-reviews .gmbrr .nav-dot,
body.ac-service-page .ac-reviews .gmbrr .swiper-pagination-bullet {
  background: rgba(255, 255, 255, 0.4);
}
body.ac-service-page .ac-reviews .gmbrr .nav-dot.active,
body.ac-service-page .ac-reviews .gmbrr .swiper-pagination-bullet-active {
  background: var(--ac-accent-500);
}


/* ==========================================================================
   09. LOCATIONS + SEDI TABLE — (placeholder for future reuse, not on T1 current)
   ========================================================================== */

body.ac-service-page .ac-location-card {
  background: #fff;
  border: 2px solid var(--ac-border);
  border-radius: var(--ac-radius-md);
  padding: var(--ac-space-8);
  transition: all var(--ac-transition);
}

body.ac-service-page .ac-location-card:hover {
  border-color: var(--ac-primary-500);
  box-shadow: var(--ac-shadow-md);
  transform: translateY(-4px);
}

body.ac-service-page .ac-location-card h3 {
  color: var(--ac-primary-500);
  font-weight: var(--ac-weight-bold);
  font-size: var(--ac-h3);
  margin: 0 0 var(--ac-space-3);
}

body.ac-service-page .ac-location-card p {
  color: var(--ac-muted);
  line-height: var(--ac-leading-relaxed);
}


/* ==========================================================================
   10. FAQ ITEMS — purple theme (mirrors homepage body.ac-home .ac-faq-item)
   ========================================================================== */

body.ac-service-page .ac-faq-item {
  border: 1px solid var(--ac-primary-100);
  border-radius: var(--ac-radius-md);
  margin-bottom: var(--ac-space-4);
  transition: all var(--ac-transition);
  padding: 0;
  background: #fff;
  overflow: hidden;
}

body.ac-service-page .ac-faq-item:hover {
  border-color: var(--ac-primary-500);
  box-shadow: 0 4px 16px rgba(107, 33, 168, 0.08);
}

body.ac-service-page .ac-faq-item summary {
  list-style: none;
  padding: var(--ac-space-5) var(--ac-space-6);
  cursor: pointer;
  min-height: 44px;
}

body.ac-service-page .ac-faq-item summary::-webkit-details-marker {
  display: none;
}

body.ac-service-page .ac-faq-item h3 {
  font-size: var(--ac-text-lg);
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0;
  gap: var(--ac-space-4);
  transition: color var(--ac-transition);
  color: var(--ac-dark);
  font-weight: var(--ac-weight-semibold);
  line-height: var(--ac-leading-snug);
}

body.ac-service-page .ac-faq-item:hover h3 {
  color: var(--ac-primary-500);
}

body.ac-service-page .ac-faq-item h3::after {
  content: '+';
  font-size: 1.5rem;
  color: var(--ac-primary-500);
  transition: transform var(--ac-transition), background var(--ac-transition), color var(--ac-transition);
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ac-primary-50);
  border-radius: 50%;
  font-weight: var(--ac-weight-light);
}

body.ac-service-page .ac-faq-item[open] {
  border-color: var(--ac-primary-500);
  box-shadow: 0 4px 16px rgba(107, 33, 168, 0.12);
}

body.ac-service-page .ac-faq-item[open] h3 {
  color: var(--ac-primary-500);
}

body.ac-service-page .ac-faq-item[open] h3::after {
  transform: rotate(45deg);
  background: var(--ac-primary-500);
  color: #fff;
}

body.ac-service-page .ac-faq-item__answer {
  padding: 0 var(--ac-space-6) var(--ac-space-6);
  line-height: var(--ac-leading-relaxed);
  color: var(--ac-body);
}

body.ac-service-page .ac-faq-item__answer p {
  margin: 0 0 var(--ac-space-3);
}

body.ac-service-page .ac-faq-item__answer p:last-child {
  margin-bottom: 0;
}

body.ac-service-page .ac-faq-item__answer ul,
body.ac-service-page .ac-faq-item__answer ol {
  margin: var(--ac-space-3) 0;
  padding-left: var(--ac-space-6);
}

body.ac-service-page .ac-faq-item__answer li {
  margin-bottom: var(--ac-space-2);
  line-height: var(--ac-leading-relaxed);
}


/* ==========================================================================
   11. FORM SECTION — white text override on gradient
   ========================================================================== */

body.ac-service-page #preventivo {
  scroll-margin-top: 100px;
}

body.ac-service-page .ac-form-section h2 {
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  margin-bottom: var(--ac-space-3);
  position: relative;
  text-wrap: balance;
}

body.ac-service-page .ac-form-section h2::after {
  background: rgba(255, 255, 255, 0.6);
}

body.ac-service-page .ac-form-section p {
  color: rgba(255, 255, 255, 0.95);
  margin-bottom: var(--ac-space-4);
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  text-align: center;
}

body.ac-service-page .ac-form-section p strong {
  color: #fff;
  font-weight: var(--ac-weight-bold);
}

/* Glass card form wrapper */
body.ac-service-page .ac-form-section .ac-preventivo-form {
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: var(--ac-radius-md);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid rgba(255, 255, 255, 0.15);
  max-width: 700px;
  margin: 0 auto;
  text-align: left;
}

body.ac-service-page .ac-form-section .ac-input {
  background: rgba(255, 255, 255, 0.95);
  border: 2px solid rgba(255, 255, 255, 0.4);
  color: #1a1a2e;
}

body.ac-service-page .ac-form-section .ac-btn--white {
  padding: var(--ac-space-4) var(--ac-space-12);
  font-size: var(--ac-text-lg);
  font-weight: var(--ac-weight-bold);
  background: #fff;
  color: var(--ac-primary-700);
  border-radius: 9999px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  transition: transform var(--ac-transition), box-shadow var(--ac-transition);
}

body.ac-service-page .ac-form-section .ac-btn--white:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
  color: var(--ac-primary-700);
}

body.ac-service-page .ac-form-section .ac-checkbox a {
  color: var(--ac-accent-300);
}

/* ITER 6 FIX 7 — Form S5 contrast hardening WCAG AA su gradient
   labels, small text, checkbox e placeholder portati a opacity piena
   per garantire ≥4.5:1 su gradient rosa-viola */
body.ac-service-page .ac-form-section label,
body.ac-service-page .ac-form-section .ac-checkbox,
body.ac-service-page .ac-form-section .ac-checkbox span,
body.ac-service-page .ac-form-section small {
  color: #fff;
  font-weight: var(--ac-weight-medium);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

body.ac-service-page .ac-form-section .ac-input::placeholder {
  color: rgba(26, 26, 46, 0.55);
  opacity: 1;
}

body.ac-service-page .ac-form-section .ac-input:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  border-color: #fff;
}


/* ==========================================================================
   12. GENERIC PRODUCT CTA BUTTONS (inside product-card__content)
   Mirrors reskin-comunale body.ac-home .ac-product .ac-btn--primary/--outline
   ========================================================================== */

body.ac-service-page .ac-product .ac-btn--primary {
  background: var(--ac-primary-500);
  color: #fff;
  border: none;
  border-radius: 9999px;
  padding: 12px 28px;
  font-weight: var(--ac-weight-semibold);
  font-size: var(--ac-text-sm);
  box-shadow: 0 6px 24px rgba(107, 33, 168, 0.3);
  transition: background var(--ac-transition), transform var(--ac-transition), box-shadow var(--ac-transition);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
}

body.ac-service-page .ac-product .ac-btn--primary:hover {
  background: var(--ac-primary-700);
  transform: translateY(-2px);
  box-shadow: 0 10px 36px rgba(107, 33, 168, 0.4);
  color: #fff;
}

body.ac-service-page .ac-product .ac-btn--outline {
  background: transparent;
  color: var(--ac-primary-500);
  border: 2px solid var(--ac-primary-500);
  border-radius: 9999px;
  padding: 10px 24px;
  font-weight: var(--ac-weight-semibold);
  font-size: var(--ac-text-sm);
  transition: all var(--ac-transition);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
}

body.ac-service-page .ac-product .ac-btn--outline:hover {
  background: var(--ac-primary-500);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(107, 33, 168, 0.3);
}

/* Card ac-btn--primary (inside non-product card, e.g. S13.1 pricing text block) */
body.ac-service-page .ac-card .ac-btn--primary {
  background: var(--ac-primary-500);
  color: #fff;
  border-radius: 9999px;
  padding: 12px 28px;
  font-weight: var(--ac-weight-semibold);
  display: inline-block;
  box-shadow: 0 6px 24px rgba(107, 33, 168, 0.3);
  text-decoration: none;
  transition: all var(--ac-transition);
}

body.ac-service-page .ac-card .ac-btn--primary:hover {
  background: var(--ac-primary-700);
  transform: translateY(-2px);
  color: #fff;
  text-decoration: none;
}


/* ==========================================================================
   13. SERVICE NAP INLINE (S6) — KEEP service-specific compact NAP
   ========================================================================== */

body.ac-service-page .ac-service-nap-card {
  padding: var(--ac-space-8);
  background: var(--ac-bg);
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius-lg);
  box-shadow: var(--ac-shadow-md);
  transition: transform var(--ac-transition), box-shadow var(--ac-transition);
}

body.ac-service-page .ac-service-nap-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 48px rgba(107, 33, 168, 0.15);
}

body.ac-service-page .ac-service-nap-card h2 {
  font-size: var(--ac-h3);
  color: var(--ac-primary-700);
  font-weight: var(--ac-weight-bold);
  margin: 0 0 var(--ac-space-4);
  text-align: left;
}

body.ac-service-page .ac-service-nap-card h2::after {
  display: none;
}

body.ac-service-page .ac-service-nap-card p {
  color: var(--ac-body);
  margin: 0 0 var(--ac-space-3);
  line-height: var(--ac-leading-relaxed);
}

body.ac-service-page .ac-service-nap-card p a {
  color: var(--ac-primary-700);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--ac-transition);
}

body.ac-service-page .ac-service-nap-card p a:hover {
  color: var(--ac-accent-500);
}

body.ac-service-page .ac-service-hours {
  width: 100%;
  border-collapse: collapse;
  margin-top: var(--ac-space-3);
  font-size: var(--ac-text-sm);
}

body.ac-service-page .ac-service-hours td {
  padding: var(--ac-space-2) var(--ac-space-3);
  border-bottom: 1px solid var(--ac-border);
}

body.ac-service-page .ac-service-hours tr:last-child td {
  border-bottom: none;
}

body.ac-service-page .ac-service-hours td:first-child {
  font-weight: var(--ac-weight-semibold);
  color: var(--ac-dark);
  text-transform: capitalize;
}


/* ==========================================================================
   14. SERVICE BADGES (S7) — certifications frame
   ========================================================================== */

body.ac-service-page .ac-service-badge-frame {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: var(--ac-bg-alt);
  border: 2px solid var(--ac-primary-100);
  border-radius: var(--ac-radius-lg);
  text-align: center;
  transition: box-shadow var(--ac-transition), border-color var(--ac-transition);
}

body.ac-service-page .ac-service-badge-frame:hover {
  box-shadow: 0 12px 32px rgba(107, 33, 168, 0.12);
  border-color: var(--ac-primary-300);
}

body.ac-service-page .ac-service-badge-frame img {
  max-width: 100%;
  height: auto;
  margin: 0 auto var(--ac-space-6);
  display: block;
  border-radius: var(--ac-radius-md);
}

body.ac-service-page .ac-service-badge-frame p {
  font-size: var(--ac-text-base);
  color: var(--ac-body);
  line-height: var(--ac-leading-relaxed);
  margin: 0;
  max-width: 65ch;
  margin-inline: auto;
}


/* ==========================================================================
   15. SERVICE COVERAGE/EXCLUSION LISTS (S2 supporting — KEEP)
   Reusable icon-checked lists also used in S10/S11/S13
   ========================================================================== */

body.ac-service-page .ac-service-coverage-list,
body.ac-service-page .ac-service-exclusion-list,
body.ac-service-page .ac-service-massimali-list {
  list-style: none;
  padding: 0;
  margin: var(--ac-space-4) 0 var(--ac-space-6);
  display: grid;
  gap: var(--ac-space-3);
}

body.ac-service-page .ac-service-coverage-list li {
  position: relative;
  display: block;
  padding: var(--ac-space-2) var(--ac-space-3) var(--ac-space-2) calc(var(--ac-space-3) + 28px);
  color: var(--ac-body);
  font-size: var(--ac-text-base);
  line-height: var(--ac-leading-relaxed);
  border-radius: var(--ac-radius-sm);
  transition: background var(--ac-transition);
  border-bottom: none;
}

body.ac-service-page .ac-service-coverage-list li:hover {
  background: var(--ac-primary-50);
}

body.ac-service-page .ac-service-coverage-list li::before {
  content: '';
  position: absolute;
  left: var(--ac-space-3);
  top: calc(var(--ac-space-2) + 0.3em);
  width: 20px;
  height: 20px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B21A8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

body.ac-service-page .ac-service-exclusion-list li {
  position: relative;
  display: block;
  padding: var(--ac-space-2) var(--ac-space-3) var(--ac-space-2) calc(var(--ac-space-3) + 28px);
  background: var(--ac-error-50);
  border-radius: var(--ac-radius-sm);
  color: var(--ac-body);
  font-size: var(--ac-text-base);
  line-height: var(--ac-leading-relaxed);
  border-bottom: none;
}

body.ac-service-page .ac-service-exclusion-list li::before {
  content: '';
  position: absolute;
  left: var(--ac-space-3);
  top: calc(var(--ac-space-2) + 0.3em);
  width: 20px;
  height: 20px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E53E3E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

/* ============================================================
   AUTO-APPLY ELEGANT LIST DESIGN — DRY PATTERN v11.0.5
   Applies checkmark-icon + padded-bg list design automatically to
   all <ul> inside .ac-card and .ac-product-card__content.
   Scaffolds no longer need to specify .ac-service-coverage-list manually.
   Excluded: .ac-service-exclusion-list (X red), .ac-service-massimali-list (counter)
   ============================================================ */
body.ac-service-page .ac-card ul:not(.ac-service-exclusion-list):not(.ac-service-massimali-list):not(.ac-toc__list),
body.ac-service-page .ac-product-card__content ul:not(.ac-service-exclusion-list):not(.ac-service-massimali-list) {
  list-style: none;
  padding: 0;
  margin: var(--ac-space-4) 0 var(--ac-space-6);
  display: grid;
  gap: var(--ac-space-2);
}

body.ac-service-page .ac-card ul:not(.ac-service-exclusion-list):not(.ac-service-massimali-list):not(.ac-toc__list) > li,
body.ac-service-page .ac-product-card__content ul:not(.ac-service-exclusion-list):not(.ac-service-massimali-list) > li {
  position: relative;
  display: block;
  padding: var(--ac-space-2) var(--ac-space-3) var(--ac-space-2) calc(var(--ac-space-3) + 28px);
  color: var(--ac-body);
  font-size: var(--ac-text-base);
  line-height: var(--ac-leading-relaxed);
  border-radius: var(--ac-radius-sm);
  transition: background var(--ac-transition);
  border-bottom: none;
}

body.ac-service-page .ac-card ul:not(.ac-service-exclusion-list):not(.ac-service-massimali-list):not(.ac-toc__list) > li::before,
body.ac-service-page .ac-product-card__content ul:not(.ac-service-exclusion-list):not(.ac-service-massimali-list) > li::before {
  content: '';
  position: absolute;
  left: var(--ac-space-3);
  top: calc(var(--ac-space-2) + 0.3em);
  width: 20px;
  height: 20px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B21A8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

body.ac-service-page .ac-card ul:not(.ac-service-exclusion-list):not(.ac-service-massimali-list):not(.ac-toc__list) > li:hover,
body.ac-service-page .ac-product-card__content ul:not(.ac-service-exclusion-list):not(.ac-service-massimali-list) > li:hover {
  background: var(--ac-primary-50);
}

/* Nested ul (es. modalità pagamento CARTA/PAYPAL) — più compatto, icon opzionale */
body.ac-service-page .ac-card ul ul,
body.ac-service-page .ac-product-card__content ul ul {
  margin: var(--ac-space-2) 0 0 0;
  gap: var(--ac-space-1);
}

body.ac-service-page .ac-card ul ul > li::before,
body.ac-service-page .ac-product-card__content ul ul > li::before {
  width: 14px;
  height: 14px;
  opacity: 0.55;
}

body.ac-service-page .ac-service-massimali-list {
  padding-left: 0;
  counter-reset: mas;
}

body.ac-service-page .ac-service-massimali-list > li {
  counter-increment: mas;
  padding: var(--ac-space-5) var(--ac-space-6);
  background: var(--ac-bg-alt);
  border-left: 3px solid var(--ac-primary-500);
  border-radius: 0 var(--ac-radius-md) var(--ac-radius-md) 0;
  position: relative;
  border-bottom: none;
}

body.ac-service-page .ac-service-massimali-list > li p {
  margin: 0 0 var(--ac-space-2);
  font-weight: var(--ac-weight-semibold);
  color: var(--ac-primary-700);
}

body.ac-service-page .ac-service-massimali-list > li ul {
  list-style: disc;
  padding-left: var(--ac-space-6);
  margin: 0;
}

body.ac-service-page .ac-service-massimali-list > li ul li {
  padding: var(--ac-space-1) 0;
  color: var(--ac-body);
  border-bottom: none;
  font-variant-numeric: tabular-nums;
}


/* ==========================================================================
   16. SERVICE TIPS (S4) — numbered list
   ========================================================================== */

body.ac-service-page .ac-service-tips__list {
  list-style: none;
  padding: 0;
  margin: var(--ac-space-6) 0 0;
  counter-reset: tip;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--ac-gap);
}

/* ITER5 FIX 6 — Tip cards numero badge ESTERNO flottante (was interno primary-50) */
body.ac-service-page .ac-service-tips__list > li {
  counter-increment: tip;
  padding: var(--ac-space-10) var(--ac-space-6) var(--ac-space-6);
  background: #fff;
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius-lg);
  position: relative;
  box-shadow: var(--ac-shadow);
  transition: transform var(--ac-transition), box-shadow var(--ac-transition), border-color var(--ac-transition);
  margin-top: var(--ac-space-5);
}

body.ac-service-page .ac-service-tips__list > li:hover {
  transform: translateY(-4px);
  box-shadow: var(--ac-shadow-md);
  border-color: var(--ac-primary-300);
}

/* Badge esterno: metà dentro metà fuori border-top */
body.ac-service-page .ac-service-tips__list > li::before {
  content: counter(tip);
  position: absolute;
  top: -20px;
  left: var(--ac-space-6);
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  background: var(--ac-accent-500);
  color: #fff;
  border-radius: 50%;
  font-weight: 900;
  font-size: var(--ac-text-lg);
  font-variant-numeric: tabular-nums;
  box-shadow: 0 4px 16px rgba(236, 72, 153, 0.35);
  transition: transform var(--ac-transition);
}

body.ac-service-page .ac-service-tips__list > li:hover::before {
  transform: scale(1.08);
}

body.ac-service-page .ac-service-tips__list > li p {
  margin: 0;
  line-height: var(--ac-leading-relaxed);
  color: var(--ac-body);
}


/* ==========================================================================
   17. CALLOUTS — trust (S11) + highlight (S14)
   ========================================================================== */

body.ac-service-page .ac-service-callout {
  padding: var(--ac-space-8);
  background: linear-gradient(135deg, var(--ac-primary-50) 0%, var(--ac-bg) 100%);
  border-left: 4px solid var(--ac-primary-500);
  border-radius: var(--ac-radius-md);
  transition: box-shadow var(--ac-transition), border-color var(--ac-transition);
}

body.ac-service-page .ac-service-callout:hover {
  box-shadow: 0 8px 24px rgba(107, 33, 168, 0.1);
  border-left-color: var(--ac-primary-700);
}

body.ac-service-page .ac-service-callout p {
  font-size: var(--ac-text-base);
  line-height: var(--ac-leading-relaxed);
  color: var(--ac-body);
  margin: 0 0 var(--ac-space-3);
}

body.ac-service-page .ac-service-callout ol {
  padding-left: var(--ac-space-6);
  margin: var(--ac-space-4) 0;
}

body.ac-service-page .ac-service-callout ol li {
  padding: var(--ac-space-2) 0;
  color: var(--ac-body);
  line-height: var(--ac-leading-relaxed);
}

body.ac-service-page .ac-service-callout blockquote {
  margin: var(--ac-space-5) 0 0;
  padding: var(--ac-space-4) var(--ac-space-5);
  border-left: 4px solid var(--ac-primary-500);
  background: rgba(107, 33, 168, 0.05);
  border-radius: 0 var(--ac-radius-md) var(--ac-radius-md) 0;
  font-style: italic;
}

body.ac-service-page .ac-service-callout blockquote p {
  margin: 0;
}

body.ac-service-page .ac-service-callout--trust {
  background: linear-gradient(135deg, var(--ac-info-50) 0%, var(--ac-bg) 100%);
  border-left-color: var(--ac-info-500);
}

body.ac-service-page .ac-service-callout--highlight {
  background: var(--ac-success-50);
  border-left-color: var(--ac-success-500);
}

body.ac-service-page .ac-service-callout--highlight:hover {
  box-shadow: 0 8px 24px rgba(5, 150, 105, 0.1);
  border-left-color: #047857;
}


/* ==========================================================================
   18. INFO PANEL (S12) — regulations
   ========================================================================== */

body.ac-service-page .ac-service-info-panel {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: #fff;
  border: 2px solid var(--ac-primary-200);
  border-radius: var(--ac-radius-lg);
}

body.ac-service-page .ac-service-info-panel p {
  font-size: var(--ac-text-base);
  line-height: var(--ac-leading-relaxed);
  color: var(--ac-body);
  margin: 0 0 var(--ac-space-4);
}

body.ac-service-page .ac-service-info-panel h3 {
  font-size: var(--ac-h3);
  font-weight: var(--ac-weight-bold);
  color: var(--ac-primary-700);
  margin: var(--ac-space-6) 0 var(--ac-space-4);
  padding-bottom: var(--ac-space-3);
  position: relative;
  letter-spacing: var(--ac-tracking-tight);
}

body.ac-service-page .ac-service-info-panel h3::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 48px;
  height: 3px;
  background: var(--ac-gradient);
  border-radius: 2px;
}

body.ac-service-page .ac-service-info-panel ol {
  padding: 0;
  margin: 0 0 var(--ac-space-6);
  counter-reset: reg;
  list-style: none;
  display: grid;
  gap: var(--ac-space-3);
}

body.ac-service-page .ac-service-info-panel ol > li {
  counter-increment: reg;
  padding: var(--ac-space-3) var(--ac-space-4) var(--ac-space-3) var(--ac-space-12);
  background: var(--ac-bg-alt);
  border-radius: var(--ac-radius-sm);
  font-size: var(--ac-text-base);
  line-height: var(--ac-leading-relaxed);
  color: var(--ac-body);
  border-left: 3px solid var(--ac-primary-300);
  position: relative;
}

body.ac-service-page .ac-service-info-panel ol > li::before {
  content: counter(reg);
  position: absolute;
  left: var(--ac-space-3);
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  background: var(--ac-primary-500);
  color: #fff;
  border-radius: 50%;
  font-weight: var(--ac-weight-bold);
  font-size: var(--ac-text-sm);
  font-variant-numeric: tabular-nums;
}

body.ac-service-page .ac-service-info-panel ol > li strong {
  color: var(--ac-dark);
  font-weight: var(--ac-weight-semibold);
}


/* ==========================================================================
   19. SERVICE PRICING wrapper (S13 fallback — if any residual markup)
   .ac-service-pricing namespace mostly remapped to .ac-product-card now.
   ========================================================================== */

body.ac-service-page .ac-service-pricing {
  padding-block: clamp(3rem, 8vw, 5rem);
}


/* ==========================================================================
   20. SERVICE CONTACT (S15) — uses .ac-two-col utility now
   Service-specific hours table + map styling preserved
   ========================================================================== */

body.ac-service-page .ac-service-map iframe {
  width: 100%;
  height: clamp(360px, 50vh, 560px);
  border: 0;
  display: block;
  border-radius: var(--ac-radius-lg);
  box-shadow: var(--ac-shadow-md);
}

body.ac-service-page .ac-service-contact h3 {
  font-size: var(--ac-h3);
  color: var(--ac-primary-700);
  font-weight: var(--ac-weight-bold);
  margin: var(--ac-space-6) 0 var(--ac-space-3);
}

body.ac-service-page .ac-service-contact p {
  color: var(--ac-body);
  line-height: var(--ac-leading-relaxed);
  margin: 0 0 var(--ac-space-3);
}

body.ac-service-page .ac-service-contact p a {
  color: var(--ac-primary-700);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: var(--ac-weight-medium);
  transition: color var(--ac-transition);
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

body.ac-service-page .ac-service-contact p a:hover {
  color: var(--ac-accent-500);
}


/* ==========================================================================
   20b. CONTACT QUICK-CARDS (S15 header) — ITER 6 FIX 10
   4 quick-cards (Sede / Telefono / WhatsApp / Email) sopra body lungo
   per scannability. Pattern coerente .ac-card homepage (border + hover lift).
   ========================================================================== */

body.ac-service-page .ac-contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 280px));
  justify-content: center;
  gap: var(--ac-space-4);
  margin-bottom: var(--ac-space-8);
}

body.ac-service-page .ac-contact-card {
  display: flex;
  flex-direction: column;
  gap: var(--ac-space-2);
  padding: var(--ac-space-5);
  background: #fff;
  border: 2px solid var(--ac-border);
  border-radius: var(--ac-radius-lg);
  text-decoration: none;
  color: var(--ac-text);
  transition: border-color var(--ac-transition), transform var(--ac-transition), box-shadow var(--ac-transition);
  min-height: 140px;
}

body.ac-service-page .ac-contact-card:hover,
body.ac-service-page .ac-contact-card:focus-visible {
  border-color: var(--ac-primary-500);
  transform: translateY(-2px);
  box-shadow: var(--ac-shadow-md);
  outline: none;
}

body.ac-service-page .ac-contact-card__icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: var(--ac-radius-md);
  background: var(--ac-primary-50);
  color: var(--ac-primary-700);
}

body.ac-service-page .ac-contact-card--whatsapp .ac-contact-card__icon {
  background: #25D366;
  color: #fff;
}

body.ac-service-page .ac-contact-card__label {
  font-size: var(--ac-text-sm);
  color: var(--ac-muted);
  font-weight: var(--ac-weight-medium);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

body.ac-service-page .ac-contact-card__value {
  font-weight: var(--ac-weight-semibold);
  color: var(--ac-text);
  line-height: 1.4;
  margin-top: auto;
}

@media (max-width: 900px) {
  body.ac-service-page .ac-contact-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  body.ac-service-page .ac-contact-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  body.ac-service-page .ac-contact-card { transition: none; }
  body.ac-service-page .ac-contact-card:hover,
  body.ac-service-page .ac-contact-card:focus-visible { transform: none; }
}


/* ==========================================================================
   21. SERVICE DIRECTIONS (S16) — accordion, identical pattern to FAQ
   ========================================================================== */

body.ac-service-page .ac-service-directions__list {
  display: grid;
  gap: var(--ac-space-3);
  margin-top: var(--ac-space-6);
}

body.ac-service-page .ac-service-directions-item {
  border: 1px solid var(--ac-primary-100);
  border-radius: var(--ac-radius-md);
  background: #fff;
  overflow: hidden;
  transition: border-color var(--ac-transition), box-shadow var(--ac-transition);
}

body.ac-service-page .ac-service-directions-item:hover {
  border-color: var(--ac-primary-300);
}

body.ac-service-page .ac-service-directions-item[open] {
  border-color: var(--ac-primary-500);
  box-shadow: 0 4px 16px rgba(107, 33, 168, 0.12);
}

body.ac-service-page .ac-service-directions-item > summary {
  list-style: none;
  padding: var(--ac-space-5) var(--ac-space-6);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--ac-space-4);
  min-height: 44px;
}

body.ac-service-page .ac-service-directions-item > summary::-webkit-details-marker {
  display: none;
}

body.ac-service-page .ac-service-directions-item > summary > h3 {
  font-size: var(--ac-text-lg);
  font-weight: var(--ac-weight-semibold);
  color: var(--ac-dark);
  margin: 0;
  transition: color var(--ac-transition);
  line-height: var(--ac-leading-snug);
  flex: 1;
}

body.ac-service-page .ac-service-directions-item:hover > summary > h3 {
  color: var(--ac-primary-500);
}

body.ac-service-page .ac-service-directions-item > summary::after {
  content: '+';
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--ac-primary-50);
  color: var(--ac-primary-500);
  font-size: 1.5rem;
  font-weight: var(--ac-weight-light);
  line-height: 1;
  transition: transform var(--ac-transition), background var(--ac-transition), color var(--ac-transition);
}

body.ac-service-page .ac-service-directions-item[open] > summary > h3 {
  color: var(--ac-primary-500);
}

body.ac-service-page .ac-service-directions-item[open] > summary::after {
  transform: rotate(45deg);
  background: var(--ac-primary-500);
  color: #fff;
}

body.ac-service-page .ac-service-directions-item > summary:focus-visible {
  outline: 3px solid var(--ac-accent);
  outline-offset: -3px;
}

body.ac-service-page .ac-service-directions-item__body {
  padding: 0 var(--ac-space-6) var(--ac-space-6);
}

body.ac-service-page .ac-service-directions-item__body ul {
  padding-left: var(--ac-space-5);
  margin: 0 0 var(--ac-space-4);
}

body.ac-service-page .ac-service-directions-item__body li {
  padding-block: var(--ac-space-2);
  color: var(--ac-body);
  line-height: var(--ac-leading-relaxed);
}

body.ac-service-page .ac-service-directions-item__body a {
  color: var(--ac-primary-700);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: var(--ac-weight-medium);
  transition: color var(--ac-transition);
}

body.ac-service-page .ac-service-directions-item__body a:hover {
  color: var(--ac-primary-500);
}

body.ac-service-page .ac-service-directions-item__map iframe {
  width: 100%;
  height: 260px;
  border: 0;
  border-radius: var(--ac-radius-md);
  box-shadow: var(--ac-shadow-sm);
  margin: var(--ac-space-4) 0;
  display: block;
}


/* ==========================================================================
   22. SERVICE CTA BAND (S17) — gradient final closing CTA
   ========================================================================== */

body.ac-service-page .ac-service-cta-band {
  position: relative;
  padding: clamp(5rem, 12vw, 8rem) var(--ac-space-6);
  background: var(--ac-gradient);
  color: #fff;
  text-align: center;
  overflow: hidden;
  isolation: isolate;
}

body.ac-service-page .ac-service-cta-band::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at 30% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 60%);
  pointer-events: none;
  z-index: -1;
}

body.ac-service-page .ac-service-cta-band h2 {
  font-size: var(--ac-h2);
  font-weight: 800;
  color: #fff;
  letter-spacing: var(--ac-tracking-tight);
  line-height: var(--ac-leading-tight);
  margin: 0 0 var(--ac-space-6);
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
  text-wrap: balance;
}

body.ac-service-page .ac-service-cta-band h2::after {
  display: none;
}

body.ac-service-page .ac-service-cta-band p {
  font-size: var(--ac-text-lg);
  color: rgba(255, 255, 255, 0.92);
  line-height: var(--ac-leading-relaxed);
  margin: 0 0 var(--ac-space-3);
  max-width: 65ch;
  margin-inline: auto;
}

body.ac-service-page .ac-service-cta-band p strong {
  color: #fff;
  font-weight: var(--ac-weight-bold);
}

body.ac-service-page .ac-service-cta-band p a[href^="tel:"],
body.ac-service-page .ac-service-cta-band__phone {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: var(--ac-weight-bold);
  transition: opacity var(--ac-transition);
}

body.ac-service-page .ac-service-cta-band p a[href^="tel:"]:hover,
body.ac-service-page .ac-service-cta-band__phone:hover {
  opacity: 0.85;
}

body.ac-service-page .ac-service-cta-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ac-space-4);
  justify-content: center;
  margin-top: var(--ac-space-10);
}

body.ac-service-page .ac-service-cta-band .ac-btn--white {
  background: #fff;
  color: var(--ac-primary-700);
  border: none;
  padding: 14px 36px;
  font-weight: var(--ac-weight-semibold);
  border-radius: 9999px;
  font-size: var(--ac-text-base);
  transition: transform var(--ac-transition), box-shadow var(--ac-transition);
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  text-decoration: none;
  min-height: 48px;
}

body.ac-service-page .ac-service-cta-band .ac-btn--white:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
}

body.ac-service-page .ac-service-cta-band .ac-btn--outline-white {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, 0.8);
  padding: 12px 32px;
  font-weight: var(--ac-weight-semibold);
  border-radius: 9999px;
  transition: background var(--ac-transition), color var(--ac-transition), transform var(--ac-transition);
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  text-decoration: none;
  min-height: 48px;
}

body.ac-service-page .ac-service-cta-band .ac-btn--outline-white:hover {
  background: #fff;
  color: var(--ac-primary-700);
  transform: translateY(-2px);
}

body.ac-service-page .ac-service-cta-band .ac-btn--outline-white:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.6);
  outline-offset: 3px;
}


/* ==========================================================================
   23. SCROLL REVEAL — .ac-reveal (P2.1)
   Orchestrates IntersectionObserver from core.php; stagger grid children
   ========================================================================== */

/* PATCH 22 (iter 4 hotfix) — Reveal fallback inverso:
   elements VISIBLE by default, animation adds entrance effect only when JS
   succeeds. Previous logic (opacity:0 default + JS adds --visible to show)
   broke because CookieYes Uncaught Error on page blocked subsequent JS
   execution, leaving 31 reveal elements permanently hidden.
   Safe-by-default: content always visible regardless of JS state. */
body.ac-service-page .ac-reveal {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.6s cubic-bezier(0.25, 1, 0.5, 1), transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Optional animation IN: only applied by JS (if it runs) by toggling
   .ac-reveal--entering before .ac-reveal--visible. Not critical. */
body.ac-service-page .ac-reveal.ac-reveal--entering {
  opacity: 0;
  transform: translateY(30px);
}

body.ac-service-page .ac-reveal.ac-reveal--visible,
body.ac-service-page .ac-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger grid children on reveal */
body.ac-service-page .ac-reveal--visible .ac-card,
body.ac-service-page .ac-reveal--visible .ac-stat,
body.ac-service-page .ac-reveal--visible .ac-step,
body.ac-service-page .ac-reveal--visible .ac-review-card,
body.ac-service-page .ac-reveal.is-visible .ac-card,
body.ac-service-page .ac-reveal.is-visible .ac-stat,
body.ac-service-page .ac-reveal.is-visible .ac-step,
body.ac-service-page .ac-reveal.is-visible .ac-review-card {
  opacity: 0;
  transform: translateY(20px);
  animation: ac-reveal-stagger 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

body.ac-service-page .ac-reveal--visible .ac-card:nth-child(1),
body.ac-service-page .ac-reveal--visible .ac-stat:nth-child(1),
body.ac-service-page .ac-reveal--visible .ac-step:nth-child(1),
body.ac-service-page .ac-reveal--visible .ac-review-card:nth-child(1),
body.ac-service-page .ac-reveal.is-visible .ac-card:nth-child(1),
body.ac-service-page .ac-reveal.is-visible .ac-stat:nth-child(1),
body.ac-service-page .ac-reveal.is-visible .ac-step:nth-child(1),
body.ac-service-page .ac-reveal.is-visible .ac-review-card:nth-child(1) {
  animation-delay: 0.1s;
}

body.ac-service-page .ac-reveal--visible .ac-card:nth-child(2),
body.ac-service-page .ac-reveal--visible .ac-stat:nth-child(2),
body.ac-service-page .ac-reveal--visible .ac-step:nth-child(2),
body.ac-service-page .ac-reveal--visible .ac-review-card:nth-child(2),
body.ac-service-page .ac-reveal.is-visible .ac-card:nth-child(2),
body.ac-service-page .ac-reveal.is-visible .ac-stat:nth-child(2),
body.ac-service-page .ac-reveal.is-visible .ac-step:nth-child(2),
body.ac-service-page .ac-reveal.is-visible .ac-review-card:nth-child(2) {
  animation-delay: 0.2s;
}

body.ac-service-page .ac-reveal--visible .ac-card:nth-child(3),
body.ac-service-page .ac-reveal--visible .ac-stat:nth-child(3),
body.ac-service-page .ac-reveal--visible .ac-step:nth-child(3),
body.ac-service-page .ac-reveal--visible .ac-review-card:nth-child(3),
body.ac-service-page .ac-reveal.is-visible .ac-card:nth-child(3),
body.ac-service-page .ac-reveal.is-visible .ac-stat:nth-child(3),
body.ac-service-page .ac-reveal.is-visible .ac-step:nth-child(3),
body.ac-service-page .ac-reveal.is-visible .ac-review-card:nth-child(3) {
  animation-delay: 0.3s;
}

body.ac-service-page .ac-reveal--visible .ac-review-card:nth-child(4),
body.ac-service-page .ac-reveal.is-visible .ac-review-card:nth-child(4) {
  animation-delay: 0.4s;
}

@keyframes ac-reveal-stagger {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* ==========================================================================
   24. RESPONSIVE (1024 / 768 / 480)
   ========================================================================== */

@media (max-width: 1024px) {
  body.ac-service-page .ac-section,
  body.ac-service-page .ac-product,
  body.ac-service-page .ac-reviews,
  body.ac-service-page .ac-form-section {
    padding: var(--ac-space-16) 0;
  }

  body.ac-service-page .ac-hero {
    min-height: 72vh;
  }

  body.ac-service-page .ac-product-card,
  body.ac-service-page .ac-product-card--reverse {
    grid-template-columns: 1fr;
    direction: ltr;
  }

  body.ac-service-page .ac-product-card--reverse > * {
    direction: ltr;
  }

  body.ac-service-page .ac-product-card__image {
    order: -1;
    padding: var(--ac-space-3);
  }
  body.ac-service-page .ac-product-card__image img {
    max-height: 380px;
  }

  body.ac-service-page .ac-stats-grid {
    gap: 1.5rem;
  }

  body.ac-service-page .ac-two-col {
    grid-template-columns: 1fr;
  }

  body.ac-service-page .ac-trust-bar__inner {
    flex-wrap: wrap;
    gap: 1.25rem;
  }

  body.ac-service-page .ac-step:not(:last-child)::after {
    display: none;
  }
}

@media (max-width: 768px) {
  body.ac-service-page .ac-hero {
    min-height: 68vh;
  }

  body.ac-service-page .ac-hero h1 {
    font-size: clamp(1.8rem, 6vw, 2.5rem);
  }

  body.ac-service-page .ac-hero__content {
    padding: 3.5rem 1.25rem 4rem;
  }

  body.ac-service-page .ac-hero-glass {
    padding: var(--ac-space-6);
  }

  body.ac-service-page .ac-hero__cta {
    flex-direction: column;
    align-items: stretch;
  }

  body.ac-service-page .ac-hero__cta .ac-btn {
    width: 100%;
    justify-content: center;
  }

  body.ac-service-page .ac-stats-grid,
  body.ac-service-page .ac-steps-grid,
  body.ac-service-page .ac-services-grid,
  body.ac-service-page .ac-grid--2 {
    grid-template-columns: 1fr;
  }

  body.ac-service-page .ac-reviews-grid {
    grid-template-columns: 1fr;
  }

  body.ac-service-page .ac-trust-bar__item {
    font-size: 13px;
  }

  body.ac-service-page .ac-product-card__content {
    padding: var(--ac-space-6);
  }

  body.ac-service-page .ac-product-card__content h2 {
    border-left: none;
    border-bottom: 4px solid var(--ac-accent-500);
    padding-left: 0;
    padding-bottom: var(--ac-space-3);
    text-align: center;
  }

  body.ac-service-page .ac-product .ac-btn--primary,
  body.ac-service-page .ac-product .ac-btn--outline {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  body.ac-service-page .ac-section,
  body.ac-service-page .ac-product,
  body.ac-service-page .ac-reviews,
  body.ac-service-page .ac-form-section {
    padding: var(--ac-space-12) 0;
  }

  body.ac-service-page .ac-stat,
  body.ac-service-page .ac-step {
    padding: var(--ac-space-6) var(--ac-space-5);
  }

  body.ac-service-page .ac-service-nap-card {
    padding: var(--ac-space-6);
  }

  body.ac-service-page .ac-service-callout {
    padding: var(--ac-space-6);
  }

  body.ac-service-page .ac-service-tips__list {
    grid-template-columns: 1fr;
  }

  body.ac-service-page .ac-service-cta-band__actions {
    flex-direction: column;
    align-items: stretch;
  }

  body.ac-service-page .ac-service-cta-band__actions .ac-btn {
    width: 100%;
  }

  body.ac-service-page .ac-service-map iframe {
    height: 400px;
  }

  body.ac-service-page .ac-service-directions-item > summary {
    padding: var(--ac-space-4) var(--ac-space-5);
  }

  body.ac-service-page .ac-service-directions-item > summary > h3 {
    font-size: var(--ac-text-base);
  }

  body.ac-service-page .ac-faq-item summary {
    padding: var(--ac-space-4) var(--ac-space-5);
  }

  body.ac-service-page .ac-faq-item h3 {
    font-size: var(--ac-text-base);
  }

  body.ac-service-page .rank-math-breadcrumb {
    font-size: 13px;
  }
}

@media (max-width: 480px) {
  body.ac-service-page .ac-hero-glass {
    padding: var(--ac-space-5);
  }

  body.ac-service-page .ac-hero h1 {
    font-size: 1.6rem;
  }

  body.ac-service-page .ac-service-coverage-list li,
  body.ac-service-page .ac-service-exclusion-list li {
    gap: var(--ac-space-2);
    font-size: var(--ac-text-sm);
  }

  body.ac-service-page .ac-service-coverage-list li::before,
  body.ac-service-page .ac-service-exclusion-list li::before {
    width: 18px;
    height: 18px;
  }

  body.ac-service-page .ac-service-map iframe {
    height: 320px;
  }

  body.ac-service-page .ac-service-tips__list > li {
    padding: var(--ac-space-5) var(--ac-space-5) var(--ac-space-5) var(--ac-space-12);
  }

  body.ac-service-page .ac-stat__number {
    font-size: 2.2rem;
  }
}


/* ==========================================================================
   25. REDUCED MOTION COMPLIANCE (non-negotiable — accessibility guardian)
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  body.ac-service-page *,
  body.ac-service-page *::before,
  body.ac-service-page *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  body.ac-service-page .ac-reveal {
    opacity: 1 !important;
    transform: none !important;
  }

  body.ac-service-page .ac-reveal--visible .ac-card,
  body.ac-service-page .ac-reveal--visible .ac-stat,
  body.ac-service-page .ac-reveal--visible .ac-step,
  body.ac-service-page .ac-reveal--visible .ac-review-card,
  body.ac-service-page .ac-reveal.is-visible .ac-card,
  body.ac-service-page .ac-reveal.is-visible .ac-stat,
  body.ac-service-page .ac-reveal.is-visible .ac-step,
  body.ac-service-page .ac-reveal.is-visible .ac-review-card {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }

  body.ac-service-page .ac-product-card:hover,
  body.ac-service-page .ac-stat:hover,
  body.ac-service-page .ac-step:hover,
  body.ac-service-page .ac-review-card:hover,
  body.ac-service-page .ac-card:hover,
  body.ac-service-page .ac-location-card:hover,
  body.ac-service-page .ac-service-tips__list > li:hover,
  body.ac-service-page .ac-service-nap-card:hover {
    transform: none !important;
  }

  body.ac-service-page .ac-product-card:hover .ac-product-card__image img {
    transform: none !important;
  }

  body.ac-service-page .ac-step:hover .ac-step__icon {
    transform: none !important;
  }
}


/* ==========================================================================
   ITER5 NEW COMPONENTS — TOC, WhatsApp CTA, Fullscreen CTA
   ========================================================================== */

/* ITER5 — WhatsApp brand button (documented hex exception: #25D366 = brand WhatsApp) */
body.ac-service-page .ac-btn--whatsapp,
body.ac-service-page .ac-btn.ac-btn--whatsapp {
  background: #25D366;
  color: #fff;
  border: none;
  border-radius: 9999px;
  padding: 14px 28px;
  font-weight: var(--ac-weight-semibold);
  font-size: var(--ac-text-base);
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  text-decoration: none;
  transition: background var(--ac-transition), transform var(--ac-transition), box-shadow var(--ac-transition);
  min-height: 48px;
}

body.ac-service-page .ac-btn--whatsapp:hover,
body.ac-service-page .ac-btn--whatsapp:focus-visible {
  background: #1DA851;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.35);
  text-decoration: none;
}

body.ac-service-page .ac-btn--whatsapp:focus-visible {
  outline: 3px solid rgba(37, 211, 102, 0.5);
  outline-offset: 3px;
}

body.ac-service-page .ac-btn--whatsapp svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  fill: currentColor;
}

body.ac-service-page .ac-btn--lg {
  padding: 16px 36px;
  font-size: 1.05rem;
  min-height: 52px;
}

/* ITER5 FIX 2 — TOC Accordion */
body.ac-service-page .ac-toc {
  max-width: 960px;
  margin: var(--ac-space-12) auto;
  background: #fff;
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius-lg);
  box-shadow: var(--ac-shadow);
  overflow: hidden;
}

body.ac-service-page .ac-toc__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--ac-space-5) var(--ac-space-6);
  cursor: pointer;
  background: var(--ac-bg-alt, #F8F9FB);
  list-style: none;
  user-select: none;
  min-height: 44px;
}

body.ac-service-page .ac-toc__header::-webkit-details-marker {
  display: none;
}

body.ac-service-page .ac-toc__title {
  display: inline-flex;
  gap: var(--ac-space-2);
  align-items: baseline;
  font-size: var(--ac-text-lg);
  color: var(--ac-dark);
  flex-wrap: wrap;
}

body.ac-service-page .ac-toc__title strong {
  font-weight: var(--ac-weight-bold);
}

body.ac-service-page .ac-toc__count {
  color: var(--ac-muted);
  font-size: var(--ac-text-sm);
  font-weight: var(--ac-weight-regular);
}

body.ac-service-page .ac-toc__chevron {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--ac-accent-500);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--ac-transition);
  flex-shrink: 0;
}

body.ac-service-page .ac-toc__wrap[open] .ac-toc__chevron {
  transform: rotate(180deg);
}

body.ac-service-page .ac-toc__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

body.ac-service-page .ac-toc__item {
  display: flex;
  align-items: center;
  gap: var(--ac-space-4);
  padding: var(--ac-space-4) var(--ac-space-6);
  border-top: 1px dashed rgba(107, 33, 168, 0.25);
  min-height: 44px;
}

body.ac-service-page .ac-toc__item:first-child {
  border-top: none;
}

body.ac-service-page .ac-toc__num {
  color: var(--ac-accent-500);
  font-weight: var(--ac-weight-bold);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
  min-width: 32px;
}

body.ac-service-page .ac-toc__link {
  color: var(--ac-primary-700);
  text-decoration: none;
  font-weight: var(--ac-weight-medium);
  transition: color var(--ac-transition);
  line-height: 1.4;
}

body.ac-service-page .ac-toc__link:hover,
body.ac-service-page .ac-toc__link:focus-visible {
  color: var(--ac-primary-500);
  text-decoration: underline;
}

body.ac-service-page .ac-toc__link:focus-visible {
  outline: 3px solid var(--ac-accent);
  outline-offset: 2px;
  border-radius: var(--ac-radius-sm);
}

/* ITER5 FIX 11 — Fullscreen CTA (replaces .ac-service-cta-band layout) */
body.ac-service-page .ac-fullscreen-cta {
  min-height: clamp(520px, 70vh, 640px);
  display: flex;
  align-items: center;
  background: var(--ac-gradient);
  padding: clamp(4rem, 8vw, 6rem) 0;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

body.ac-service-page .ac-fullscreen-cta::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at 30% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 60%);
  pointer-events: none;
  z-index: -1;
}

body.ac-service-page .ac-cta-card {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--ac-radius-xl, 20px);
  padding: clamp(2.5rem, 5vw, 4rem);
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.2);
}

body.ac-service-page .ac-cta-card h2 {
  color: #fff;
  font-size: clamp(1.8rem, 3vw + 0.5rem, 2.5rem);
  font-weight: 800;
  margin-bottom: var(--ac-space-5);
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
  text-wrap: balance;
  letter-spacing: var(--ac-tracking-tight);
  line-height: var(--ac-leading-tight);
}

body.ac-service-page .ac-cta-card h2::after {
  display: none;
}

body.ac-service-page .ac-cta-card p {
  color: rgba(255, 255, 255, 0.95);
  line-height: var(--ac-leading-relaxed);
  margin-bottom: var(--ac-space-3);
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}

body.ac-service-page .ac-cta-card p strong {
  color: #fff;
  font-weight: var(--ac-weight-bold);
}

body.ac-service-page .ac-cta-card__actions {
  display: flex;
  gap: var(--ac-space-3);
  justify-content: center;
  flex-wrap: wrap;
  margin-top: var(--ac-space-8);
}

body.ac-service-page .ac-cta-card .ac-btn--primary {
  background: #fff;
  color: var(--ac-primary-700);
  border: none;
  border-radius: 9999px;
  padding: 14px 32px;
  font-weight: var(--ac-weight-semibold);
  transition: transform var(--ac-transition), box-shadow var(--ac-transition);
}

body.ac-service-page .ac-cta-card .ac-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
}

body.ac-service-page .ac-cta-card .ac-btn--outline-white {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, 0.8);
  border-radius: 9999px;
  padding: 12px 30px;
  font-weight: var(--ac-weight-semibold);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  transition: background var(--ac-transition), color var(--ac-transition), transform var(--ac-transition);
}

body.ac-service-page .ac-cta-card .ac-btn--outline-white:hover {
  background: #fff;
  color: var(--ac-primary-700);
  transform: translateY(-2px);
}

/* Hero outline-white button reused in glass card */
body.ac-service-page .ac-hero-glass .ac-btn--outline-white {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, 0.8);
  border-radius: 9999px;
  padding: 12px 28px;
  font-weight: var(--ac-weight-semibold);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  transition: background var(--ac-transition), color var(--ac-transition), transform var(--ac-transition);
  min-height: 48px;
}

body.ac-service-page .ac-hero-glass .ac-btn--outline-white:hover {
  background: #fff;
  color: var(--ac-primary-700);
  transform: translateY(-2px);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  body.ac-service-page .ac-toc__chevron,
  body.ac-service-page .ac-btn--whatsapp,
  body.ac-service-page .ac-cta-card .ac-btn--primary,
  body.ac-service-page .ac-cta-card .ac-btn--outline-white {
    transition: none !important;
  }
  body.ac-service-page .ac-btn--whatsapp:hover,
  body.ac-service-page .ac-cta-card .ac-btn--primary:hover,
  body.ac-service-page .ac-cta-card .ac-btn--outline-white:hover {
    transform: none !important;
  }
}

/* Responsive TOC */
@media (max-width: 640px) {
  body.ac-service-page .ac-toc__header {
    padding: var(--ac-space-4) var(--ac-space-4);
  }
  body.ac-service-page .ac-toc__title {
    font-size: var(--ac-text-base);
  }
  body.ac-service-page .ac-toc__item {
    padding: var(--ac-space-3) var(--ac-space-4);
    gap: var(--ac-space-3);
  }
  body.ac-service-page .ac-toc__chevron {
    width: 36px;
    height: 36px;
  }
}

/* ==========================================================================
   END service.css T1 v3 (ITER5)
   ========================================================================== */

/* ==========================================================================
   ITER 5.1 HOTFIX — Breadcrumb separator + Tip cards counter badge
   ========================================================================== */

/* FIX breadcrumb separator: Rank Math emette <li> senza .separator element.
   Inietta chevron ">" tra li tramite ::before su items non-first. */
body.ac-service-page .ac-breadcrumb__list > li.ac-breadcrumb__item + li.ac-breadcrumb__item::before,
body.ac-service-page .ac-breadcrumb ol > li + li::before {
  content: '›';
  color: var(--ac-accent-500);
  font-weight: var(--ac-weight-bold);
  font-size: 1.1em;
  margin-right: var(--ac-space-2);
  display: inline-block;
  line-height: 1;
}

/* FIX tip cards — numero badge esterno via CSS counter (markup <ol><li>) */
body.ac-service-page .ac-service-tips__list {
  counter-reset: tip;
  list-style: none;
  padding: 0;
  margin: var(--ac-space-10) 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--ac-space-6) var(--ac-space-5);
}

body.ac-service-page .ac-service-tips__list > li {
  counter-increment: tip;
  position: relative;
  background: #fff;
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius-lg);
  padding: var(--ac-space-10) var(--ac-space-6) var(--ac-space-6);
  box-shadow: var(--ac-shadow);
  list-style: none;
  transition: transform var(--ac-transition), box-shadow var(--ac-transition);
}

body.ac-service-page .ac-service-tips__list > li:hover {
  transform: translateY(-4px);
  box-shadow: var(--ac-shadow-hover);
}

body.ac-service-page .ac-service-tips__list > li::before {
  content: counter(tip);
  position: absolute;
  top: -20px;
  left: 24px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--ac-accent-500);
  color: #fff;
  font-weight: 900;
  font-size: var(--ac-text-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(236, 72, 153, 0.35);
  line-height: 1;
}

body.ac-service-page .ac-service-tips__list > li > p {
  margin: 0;
  color: var(--ac-dark);
  line-height: 1.6;
}

@media (max-width: 768px) {
  body.ac-service-page .ac-service-tips__list {
    grid-template-columns: 1fr;
  }
}

/* End iter 5.1 hotfix */


/* ==========================================================================
   ITER 7 — FINAL FIX BLOCK (post-visual-verify)
   ========================================================================== */

/* FIX E — Google Reviews widget `.gmbrr` stelle yellow
   Plugin applica opacity:0.05 + filter:saturate(0) sulle stelle background → appaiono grigie/invisibili.
   Override: ripristina opacity + saturate + SVG yellow background.
   La struttura del widget con .all-stars sottostante e .stars sopra e' comune (layer ghost/fill). */
body.ac-service-page .ac-reviews .gmbrr .all-stars,
body.ac-service-page .ac-reviews .gmbrr .stars {
  opacity: 1;
  filter: none;
}
body.ac-service-page .ac-reviews .gmbrr .all-stars .star,
body.ac-service-page .ac-reviews .gmbrr .stars .star,
body.ac-service-page .ac-reviews .gmbrr span.star,
body.ac-service-page .ac-reviews .google-business-reviews-rating .star {
  /* Override plugin animation `google-business-reviews-rating-star` (paused @ 0% keyframe: opacity 0.05 + saturate 0) */
  animation: none;
  opacity: 1;
  filter: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFB800'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}
body.ac-service-page .ac-reviews .gmbrr,
body.ac-service-page .ac-reviews .google-business-reviews-rating {
  color: #fff;
}
body.ac-service-page .ac-reviews .gmbrr a,
body.ac-service-page .ac-reviews .gmbrr .rating,
body.ac-service-page .ac-reviews .google-business-reviews-rating a {
  color: rgba(255, 255, 255, 0.95);
}

/* FIX H — Footer logo SENZA filter brightness(0) invert(1) + partner badge contrast
   Il filter rendeva logo monocromatico bianco (perdita dettaglio marchio).
   Override per mantenere logo a colori originali. */
body.ac-service-page .ac-footer__brand img {
  filter: none;
  opacity: 1;
  background: #fff;
  padding: 8px 16px;
  border-radius: var(--ac-radius-md);
}
/* Partner badge: bg leggermente piu visibile + testo full-white + icon contrast */
body.ac-service-page .ac-partner-badge {
  background: rgba(107, 33, 168, 0.20);
  border: 1px solid rgba(167, 139, 250, 0.35);
}
body.ac-service-page .ac-partner-badge__text {
  color: #fff;
  font-weight: var(--ac-weight-bold);
}
body.ac-service-page .ac-partner-badge__icon {
  background: #A78BFA;
}

/* FIX contact card background alt (NAP S6 upgrade dentro HTML) */
body.ac-service-page .ac-service-nap-inline {
  background: linear-gradient(135deg, rgba(107, 33, 168, 0.05) 0%, rgba(236, 72, 153, 0.03) 100%);
}
body.ac-service-page .ac-service-nap-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ac-space-8);
  padding: clamp(2rem, 4vw, 3rem);
  background: #fff;
  border-radius: var(--ac-radius-xl);
  box-shadow: var(--ac-shadow-md);
  border: 1px solid var(--ac-border);
}
body.ac-service-page .ac-service-nap-card__info {
  display: flex;
  flex-direction: column;
  gap: var(--ac-space-3);
}
body.ac-service-page .ac-service-nap-card__info h2 {
  color: var(--ac-primary-700);
  font-size: var(--ac-h3);
  margin: 0 0 var(--ac-space-3);
  line-height: 1.2;
}
body.ac-service-page .ac-service-nap-card__info h2::after {
  display: none;
}
body.ac-service-page .ac-service-nap-card__info p {
  margin: 0;
  line-height: 1.6;
}
body.ac-service-page .ac-service-nap-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ac-space-3);
  margin-top: var(--ac-space-5);
}
body.ac-service-page .ac-service-nap-card__map {
  position: relative;
  min-height: 360px;
  border-radius: var(--ac-radius-lg);
  overflow: hidden;
  box-shadow: var(--ac-shadow-sm);
}
body.ac-service-page .ac-service-nap-card__map iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  border: 0;
}
@media (max-width: 900px) {
  body.ac-service-page .ac-service-nap-card {
    grid-template-columns: 1fr;
    gap: var(--ac-space-6);
  }
  body.ac-service-page .ac-service-nap-card__map {
    min-height: 280px;
  }
}

/* FIX G — Dove Trovarci body long-prose collapsed in details accordion */
body.ac-service-page .ac-contact-prose-accordion {
  margin-top: var(--ac-space-6);
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius-lg);
  background: #fff;
  overflow: hidden;
}
body.ac-service-page .ac-contact-prose-accordion > summary {
  padding: var(--ac-space-5) var(--ac-space-6);
  font-weight: var(--ac-weight-semibold);
  color: var(--ac-primary-700);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ac-space-3);
  transition: background var(--ac-transition);
}
body.ac-service-page .ac-contact-prose-accordion > summary::-webkit-details-marker {
  display: none;
}
body.ac-service-page .ac-contact-prose-accordion > summary::after {
  content: '+';
  font-size: 1.5rem;
  color: var(--ac-accent-500);
  font-weight: 300;
  transition: transform var(--ac-transition);
  line-height: 1;
}
body.ac-service-page .ac-contact-prose-accordion[open] > summary::after {
  content: '\2212'; /* minus */
}
body.ac-service-page .ac-contact-prose-accordion > summary:hover {
  background: var(--ac-primary-50);
}
body.ac-service-page .ac-contact-prose-accordion > div {
  padding: 0 var(--ac-space-6) var(--ac-space-5);
  border-top: 1px solid var(--ac-border);
}
body.ac-service-page .ac-contact-prose-accordion > div > *:first-child {
  margin-top: var(--ac-space-4);
}
@media (prefers-reduced-motion: reduce) {
  body.ac-service-page .ac-contact-prose-accordion > summary,
  body.ac-service-page .ac-contact-prose-accordion > summary::after {
    transition: none;
  }
}

/* End iter 7 final fix block */


/* ==========================================================================
   ITER 7f — CLIENT FEEDBACK FINAL (tipologie centered + CTA left-aligned + phone link contrast)
   ========================================================================== */

/* FIX I — Tipologie S3 grid centered 3-col (override 4-col auto fallback) + intro centered */
body.ac-service-page #tipologie .ac-container {
  text-align: center;
}
body.ac-service-page #tipologie > .ac-container > p {
  text-align: center;
  max-width: 720px;
  margin-inline: auto;
}
body.ac-service-page #tipologie .ac-services-grid {
  grid-template-columns: repeat(3, minmax(240px, 320px));
  justify-content: center;
  max-width: 1000px;
  margin-inline: auto;
  gap: var(--ac-space-6);
}
@media (max-width: 900px) {
  body.ac-service-page #tipologie .ac-services-grid {
    grid-template-columns: repeat(2, minmax(200px, 320px));
  }
}
@media (max-width: 600px) {
  body.ac-service-page #tipologie .ac-services-grid {
    grid-template-columns: minmax(240px, 360px);
  }
}
body.ac-service-page #tipologie blockquote {
  max-width: 900px;
  margin-inline: auto;
  text-align: left;
}

/* FIX J — S17 Inizia Oggi CTA: nested content card left-aligned + phone link pill highlight
   Strategy: il contenitore glass card resta, ma la prose interna in un sub-card left-aligned
   con max-width, cosi hierarchy resta centered wrapper ma reading left-aligned. */
body.ac-service-page .ac-cta-card {
  text-align: left;
  max-width: 820px;
}
body.ac-service-page .ac-cta-card h2 {
  text-align: center; /* H2 principale resta center per impact */
}
body.ac-service-page .ac-cta-card > p {
  color: rgba(255, 255, 255, 0.95);
  line-height: var(--ac-leading-relaxed);
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--ac-space-4);
}
/* Phone link CTA: pill evidente su gradient viola */
body.ac-service-page .ac-cta-card a[href^="tel:"],
body.ac-service-page .ac-cta-card .ac-service-cta-band__phone {
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  padding: 0.3em 0.7em;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #fff;
  font-weight: var(--ac-weight-bold);
  text-decoration: none;
  border-radius: var(--ac-radius-full);
  transition: background var(--ac-transition), transform var(--ac-transition);
  white-space: nowrap;
}
body.ac-service-page .ac-cta-card a[href^="tel:"]:hover,
body.ac-service-page .ac-cta-card a[href^="tel:"]:focus-visible,
body.ac-service-page .ac-cta-card .ac-service-cta-band__phone:hover {
  background: #fff;
  color: var(--ac-primary-700);
  transform: translateY(-1px);
}
@media (prefers-reduced-motion: reduce) {
  body.ac-service-page .ac-cta-card a[href^="tel:"] {
    transition: none;
  }
  body.ac-service-page .ac-cta-card a[href^="tel:"]:hover {
    transform: none;
  }
}

/* End iter 7f block */


/* ==========================================================================
   ITER 7g — HERO prose left-aligned (H1 center, body readable)
   ========================================================================== */

/* FIX K — Hero glass: H1 center impact + prose left-aligned readable
   ITER7g REV2: max-width stretto su p per rendere ragged right visibile, padding card asimmetrico
   (gutter destro maggiore) per effetto left-anchored pronounced. */
body.ac-service-page .ac-hero-glass {
  text-align: left;
  padding-right: clamp(3rem, 10vw, 6rem);
}
body.ac-service-page .ac-hero-glass h1 {
  text-align: center;
}
body.ac-service-page .ac-hero-glass p {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
  max-width: 58ch;
}
body.ac-service-page .ac-hero-glass .ac-hero__lead {
  text-align: left;
  max-width: 58ch;
}
/* Phone link pill style nella hero (consistency con CTA "Inizia Oggi") */
body.ac-service-page .ac-hero-glass a[href^="tel:"] {
  display: inline-flex;
  align-items: center;
  gap: var(--ac-space-2);
  padding: 0.2em 0.6em;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #fff;
  font-weight: var(--ac-weight-bold);
  text-decoration: none;
  border-radius: var(--ac-radius-full);
  transition: background var(--ac-transition), transform var(--ac-transition);
  white-space: nowrap;
}
body.ac-service-page .ac-hero-glass a[href^="tel:"]:hover,
body.ac-service-page .ac-hero-glass a[href^="tel:"]:focus-visible {
  background: #fff;
  color: var(--ac-primary-700);
  transform: translateY(-1px);
}
@media (prefers-reduced-motion: reduce) {
  body.ac-service-page .ac-hero-glass a[href^="tel:"] {
    transition: none;
  }
  body.ac-service-page .ac-hero-glass a[href^="tel:"]:hover {
    transform: none;
  }
}

/* End iter 7g block */


/* ============================================================================
   .ac-feature-block — alternativa a .ac-product-card quando immagine non disponibile
   Phase 2 fix Wave A: elimina duplicazione immagini nelle service pages
   Pattern: icon grande + heading + content centered, full-width block
   ============================================================================ */
body.ac-service-page .ac-feature-block {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
  padding: clamp(2rem, 4vw, 3rem);
  background: var(--ac-surface, #fff);
  border-radius: var(--ac-radius-xl, 20px);
  box-shadow: var(--ac-shadow-md, 0 4px 16px rgba(0,0,0,0.06));
  border: 1px solid var(--ac-border-subtle, rgba(0,0,0,0.05));
}
body.ac-service-page .ac-feature-block__icon {
  width: 88px;
  height: 88px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ac-radius-lg, 16px);
  background: linear-gradient(135deg, var(--ac-primary-500, oklch(65% 0.2 330)), var(--ac-accent-500, oklch(58% 0.22 300)));
  color: #fff;
  flex-shrink: 0;
}
body.ac-service-page .ac-feature-block__icon svg {
  width: 44px;
  height: 44px;
}
body.ac-service-page .ac-feature-block__body h2 {
  margin-top: 0;
  margin-bottom: 1rem;
}
body.ac-service-page .ac-feature-block__body > p:first-of-type {
  font-size: clamp(1.05rem, 1.2vw, 1.15rem);
  color: var(--ac-text-secondary, #4a5568);
}
@media (max-width: 768px) {
  body.ac-service-page .ac-feature-block {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 1.5rem;
  }
  body.ac-service-page .ac-feature-block__icon {
    margin-inline: auto;
    width: 72px;
    height: 72px;
  }
  body.ac-service-page .ac-feature-block__icon svg {
    width: 36px;
    height: 36px;
  }
  body.ac-service-page .ac-feature-block__body {
    text-align: left;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.ac-service-page .ac-feature-block {
    transition: none;
  }
}

/* End Phase 2 feature-block block */


/* ============================================================
   PATCH v11.0.10 — Portrait Infographics Enlargement
   Scope: pillar pages 4730 (Gestione Sinistri) + 4731 (FAQ)
   Both contain Cloudinary infographics 675x1200 portrait aspect.
   Default .ac-product-card__image img max-height 520px rendered
   portraits too small (~292px width). Enlarge to 820px desktop
   / 600px mobile, widen image cell for better readability.
   Client feedback 2026-04-20.
   ============================================================ */

body.ac-page-gestione-sinistri-assicurazione-bari .ac-product-card__image img,
body.ac-page-domande-frequenti-assicurazioni-bari .ac-product-card__image img {
  max-height: 820px;
  max-width: 100%;
  width: auto;
}

body.ac-page-gestione-sinistri-assicurazione-bari .ac-product-card__image,
body.ac-page-domande-frequenti-assicurazioni-bari .ac-product-card__image {
  min-height: 600px;
  padding: var(--ac-space-5);
}

@media (max-width: 992px) {
  body.ac-page-gestione-sinistri-assicurazione-bari .ac-product-card__image img,
  body.ac-page-domande-frequenti-assicurazioni-bari .ac-product-card__image img {
    max-height: 600px;
  }
  body.ac-page-gestione-sinistri-assicurazione-bari .ac-product-card__image,
  body.ac-page-domande-frequenti-assicurazioni-bari .ac-product-card__image {
    min-height: 0;
  }
}

@media (max-width: 768px) {
  body.ac-page-gestione-sinistri-assicurazione-bari .ac-product-card__image img,
  body.ac-page-domande-frequenti-assicurazioni-bari .ac-product-card__image img {
    max-height: 560px;
  }
}

/* End PATCH v11.0.10 */


/* ==========================================================================
   SERVICE CONTACT + DIRECTIONS — PREMIUM PASS v12.7.36
   Version: 12.7.36-service-contact-directions-premium
   Date: 2026-04-25
   Scope: body.ac-service-page (sub-agent city pages — 30 pagine T1)
   Skills: arrange (rhythm + grid 1/2/3-col), colorize (60-30-10 brand
           teal+pink+purple, tinted neutrals, gradient icon containers),
           polish (shadow scale, optical alignment, focus rings, border
           system, clamp() spacing scale).

   GOAL: trasformare "design basso livello" rejected in pattern premium
   insurance/finance: tactile cards, gradient icon depth, SVG inline
   custom (zero emoji), card-grid responsive, hover lift coordinato.

   OVERRIDE strategy:
   - Section 20b (.ac-contact-grid + .ac-contact-card) ENHANCED, non
     riscritto: stesso markup baseline 527, polish layer aggiuntivo.
   - Section 21 (.ac-service-directions-item) TRASFORMATO da accordion
     <details> a card-grid always-open visivamente, mantenendo markup
     <details>/<summary>/UL invariato (zero PHP changes).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. SERVICE CONTACT — quick cards premium override
   -------------------------------------------------------------------------- */

body.ac-service-page .ac-service-contact {
  --ac-sc-radius: 18px;
  --ac-sc-shadow-rest: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 12px rgba(15, 23, 42, 0.05);
  --ac-sc-shadow-hover: 0 4px 8px rgba(0, 116, 139, 0.10), 0 16px 32px -8px rgba(223, 22, 84, 0.18);
  --ac-sc-border: rgba(15, 23, 42, 0.08);
  --ac-sc-border-hover: var(--ac-accent-500);
}

/* Contact grid — gap aumentato per breath premium */
body.ac-service-page .ac-contact-grid {
  gap: clamp(1rem, 1.5vw, 1.5rem);
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

/* Card refresh: padding fluido, border raffinato, top-accent bar gradient */
body.ac-service-page .ac-contact-card {
  position: relative;
  padding: clamp(1.25rem, 2vw, 1.75rem);
  background: #fff;
  border: 1px solid var(--ac-sc-border);
  border-radius: var(--ac-sc-radius);
  box-shadow: var(--ac-sc-shadow-rest);
  min-height: 160px;
  overflow: hidden;
  isolation: isolate;
}

/* Top accent bar — gradient brand, 3px, scale-x reveal on hover */
body.ac-service-page .ac-contact-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--ac-gradient);
  transform: scaleX(0.25);
  transform-origin: left center;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  z-index: 1;
}

/* WhatsApp variant: green accent bar invece di pink/purple */
body.ac-service-page .ac-contact-card--whatsapp::before {
  background: linear-gradient(90deg, #128C7E 0%, #25D366 100%);
}

body.ac-service-page .ac-contact-card:hover,
body.ac-service-page .ac-contact-card:focus-visible {
  border-color: var(--ac-sc-border-hover);
  transform: translateY(-3px);
  box-shadow: var(--ac-sc-shadow-hover);
}

body.ac-service-page .ac-contact-card:hover::before,
body.ac-service-page .ac-contact-card:focus-visible::before {
  transform: scaleX(1);
}

body.ac-service-page .ac-contact-card:focus-visible {
  outline: 3px solid var(--ac-accent-500);
  outline-offset: 3px;
}

/* Icon: gradient depth invece di flat tint */
body.ac-service-page .ac-contact-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--ac-primary-50) 0%, var(--ac-accent-50) 100%);
  color: var(--ac-primary-700);
  box-shadow: inset 0 0 0 1px rgba(0, 116, 139, 0.08);
  transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

body.ac-service-page .ac-contact-card:hover .ac-contact-card__icon {
  transform: scale(1.06) rotate(-3deg);
}

/* WhatsApp icon: solid green con shadow */
body.ac-service-page .ac-contact-card--whatsapp .ac-contact-card__icon {
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  color: #fff;
  box-shadow: 0 4px 10px rgba(37, 211, 102, 0.30);
}

body.ac-service-page .ac-contact-card__icon svg {
  width: 22px;
  height: 22px;
}

/* Label refresh: tracking wider + smaller per typographic precision */
body.ac-service-page .ac-contact-card__label {
  font-size: 0.72rem;
  font-weight: var(--ac-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ac-muted);
}

/* Value typographic emphasis */
body.ac-service-page .ac-contact-card__value {
  font-size: var(--ac-text-base);
  font-weight: var(--ac-weight-semibold);
  color: var(--ac-dark);
  line-height: var(--ac-leading-snug);
  margin-top: auto;
  word-break: break-word;
}

/* --------------------------------------------------------------------------
   2. CONTACT CTA BUTTONS — Chiama + WhatsApp premium
   Pattern: .ac-contact-actions container + .ac-btn--call / .ac-btn--whatsapp
   -------------------------------------------------------------------------- */

body.ac-service-page .ac-contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(0.75rem, 1.5vw, 1rem);
  justify-content: center;
  margin: clamp(1.5rem, 3vw, 2.25rem) 0;
}

body.ac-service-page .ac-btn--call,
body.ac-service-page .ac-btn--whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  padding: clamp(0.875rem, 1.5vw, 1.125rem) clamp(1.5rem, 3vw, 2rem);
  min-height: 56px;
  border-radius: 999px;
  font-size: var(--ac-text-base);
  font-weight: var(--ac-weight-bold);
  letter-spacing: 0.005em;
  text-decoration: none;
  transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1),
              box-shadow 0.2s cubic-bezier(0.25, 1, 0.5, 1),
              filter 0.2s ease;
  border: 0;
  cursor: pointer;
  white-space: nowrap;
}

body.ac-service-page .ac-btn--call {
  background: var(--ac-gradient);
  color: #fff;
  box-shadow: 0 4px 14px rgba(223, 22, 84, 0.32),
              0 1px 3px rgba(131, 52, 194, 0.20);
}

body.ac-service-page .ac-btn--whatsapp {
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  color: #fff;
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.34),
              0 1px 3px rgba(18, 140, 126, 0.20);
}

body.ac-service-page .ac-btn--call:hover,
body.ac-service-page .ac-btn--whatsapp:hover,
body.ac-service-page .ac-btn--call:focus-visible,
body.ac-service-page .ac-btn--whatsapp:focus-visible {
  transform: translateY(-2px);
  filter: brightness(1.05);
  outline: none;
}

body.ac-service-page .ac-btn--call:hover {
  box-shadow: 0 8px 22px rgba(223, 22, 84, 0.42),
              0 2px 6px rgba(131, 52, 194, 0.25);
}

body.ac-service-page .ac-btn--whatsapp:hover {
  box-shadow: 0 8px 22px rgba(37, 211, 102, 0.44),
              0 2px 6px rgba(18, 140, 126, 0.25);
}

body.ac-service-page .ac-btn--call:focus-visible,
body.ac-service-page .ac-btn--whatsapp:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgba(223, 22, 84, 0.45);
}

body.ac-service-page .ac-btn--whatsapp:focus-visible {
  box-shadow: 0 0 0 6px rgba(37, 211, 102, 0.45);
}

body.ac-service-page .ac-btn--call svg,
body.ac-service-page .ac-btn--whatsapp svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

body.ac-service-page .ac-btn--call:active,
body.ac-service-page .ac-btn--whatsapp:active {
  transform: translateY(0);
  filter: brightness(0.96);
}

/* --------------------------------------------------------------------------
   3. CONTACT MAP — iframe premium frame
   -------------------------------------------------------------------------- */

body.ac-service-page .ac-service-map {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04),
              0 12px 32px -8px rgba(0, 116, 139, 0.18);
  isolation: isolate;
}

body.ac-service-page .ac-service-map iframe {
  border-radius: 24px;
  height: clamp(320px, 45vh, 520px);
  display: block;
  filter: saturate(1.05);
}

/* --------------------------------------------------------------------------
   4. CONTACT INFO PARAGRAPH — link affordance accent underline
   -------------------------------------------------------------------------- */

body.ac-service-page .ac-service-contact p a {
  color: var(--ac-primary-700);
  text-decoration: underline;
  text-decoration-color: var(--ac-accent-500);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  font-weight: var(--ac-weight-semibold);
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

body.ac-service-page .ac-service-contact p a:hover,
body.ac-service-page .ac-service-contact p a:focus-visible {
  color: var(--ac-accent-500);
  text-decoration-color: var(--ac-primary-700);
  outline: none;
}

body.ac-service-page .ac-service-contact p a:focus-visible {
  outline: 2px solid var(--ac-accent-500);
  outline-offset: 3px;
  border-radius: 2px;
}

/* --------------------------------------------------------------------------
   5. SERVICE CONTACT — mobile responsive
   -------------------------------------------------------------------------- */

@media (max-width: 900px) {
  body.ac-service-page .ac-contact-actions {
    flex-direction: column;
    align-items: stretch;
  }
  body.ac-service-page .ac-btn--call,
  body.ac-service-page .ac-btn--whatsapp {
    width: 100%;
  }
  body.ac-service-page .ac-service-map iframe {
    height: clamp(280px, 50vw, 380px);
  }
}

/* --------------------------------------------------------------------------
   6. SERVICE DIRECTIONS — TRASFORMAZIONE accordion -> card-grid premium
   Mantengo markup <details>/<summary>/UL invariato.
   Force always-open visivamente, kill marker "+", layout card grid 1/2/3.
   -------------------------------------------------------------------------- */

body.ac-service-page .ac-service-directions__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem, 1.75vw, 1.5rem);
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  list-style: none;
  padding: 0;
}

@media (min-width: 768px) {
  body.ac-service-page .ac-service-directions__list {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1200px) {
  body.ac-service-page .ac-service-directions__list {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Item card refresh */
body.ac-service-page .ac-service-directions-item {
  position: relative;
  background: linear-gradient(180deg, #fff 0%, var(--ac-primary-50) 200%);
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  padding: clamp(1.25rem, 2vw, 1.75rem);
  overflow: hidden;
  transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1),
              border-color 0.3s ease,
              box-shadow 0.3s ease;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04),
              0 4px 12px rgba(15, 23, 42, 0.04);
  display: flex;
  flex-direction: column;
  isolation: isolate;
}

/* Left accent bar — purple secondary, identita visiva forte */
body.ac-service-page .ac-service-directions-item::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--ac-secondary-500) 0%, var(--ac-accent-500) 100%);
  border-radius: 0 4px 4px 0;
  z-index: 1;
}

/* Hover lift + colored shadow */
body.ac-service-page .ac-service-directions-item:hover {
  transform: translateY(-4px);
  border-color: rgba(131, 52, 194, 0.30);
  box-shadow: 0 4px 8px rgba(0, 116, 139, 0.08),
              0 18px 36px -10px rgba(131, 52, 194, 0.22);
}

/* Force always-open visually: bypass <details> default UA */
body.ac-service-page .ac-service-directions-item[open],
body.ac-service-page .ac-service-directions-item:not([open]) {
  border-color: rgba(15, 23, 42, 0.08);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04),
              0 4px 12px rgba(15, 23, 42, 0.04);
}

body.ac-service-page .ac-service-directions-item[open]:hover,
body.ac-service-page .ac-service-directions-item:not([open]):hover {
  border-color: rgba(131, 52, 194, 0.30);
  box-shadow: 0 4px 8px rgba(0, 116, 139, 0.08),
              0 18px 36px -10px rgba(131, 52, 194, 0.22);
}

/* Summary -> card header con SVG pin custom inline (FAQ-style clickable) */
body.ac-service-page .ac-service-directions-item > summary {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: clamp(0.5rem, 1vw, 0.75rem) 0;
  margin: 0;
  cursor: pointer;
  min-height: 44px;
  user-select: none;
}

body.ac-service-page .ac-service-directions-item[open] > summary {
  padding-bottom: clamp(0.75rem, 1.5vw, 1rem);
  margin-bottom: clamp(0.75rem, 1.5vw, 1rem);
  border-bottom: 1px solid rgba(131, 52, 194, 0.10);
}

body.ac-service-page .ac-service-directions-item > summary:hover {
  background: rgba(131, 52, 194, 0.04);
  border-radius: 8px;
}

body.ac-service-page .ac-service-directions-item > summary::-webkit-details-marker,
body.ac-service-page .ac-service-directions-item > summary::marker {
  display: none;
  content: '';
}

/* Pin SVG custom inline — sostituisce emoji 📍 */
body.ac-service-page .ac-service-directions-item > summary::before {
  content: '';
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/><circle cx='12' cy='10' r='3'/></svg>") center/20px 20px no-repeat,
    linear-gradient(135deg, var(--ac-secondary-500) 0%, var(--ac-accent-500) 100%);
  box-shadow: 0 4px 10px rgba(131, 52, 194, 0.28);
  margin-top: 2px;
}

/* H3 inside summary — titolo route */
body.ac-service-page .ac-service-directions-item > summary > h3 {
  font-size: clamp(1rem, 1.2vw + 0.5rem, 1.125rem);
  font-weight: var(--ac-weight-bold);
  color: var(--ac-dark);
  margin: 0;
  line-height: var(--ac-leading-snug);
  flex: 1;
  letter-spacing: var(--ac-tracking-tight);
}

/* Toggle indicator chevron (FAQ-style accordion) */
body.ac-service-page .ac-service-directions-item > summary::after {
  content: '';
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-left: auto;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DF1654' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") center/contain no-repeat;
  transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

body.ac-service-page .ac-service-directions-item[open] > summary::after {
  transform: rotate(180deg);
}

body.ac-service-page .ac-service-directions-item:hover > summary > h3 {
  color: var(--ac-secondary-700);
}

/* Body: native <details> UA collapse (hidden when closed, visible when [open]) */
body.ac-service-page .ac-service-directions-item > .ac-service-directions-item__body {
  padding: 0;
}
body.ac-service-page details.ac-service-directions-item:not([open]) > .ac-service-directions-item__body {
  display: none;
}
body.ac-service-page details.ac-service-directions-item[open] > .ac-service-directions-item__body {
  display: block;
}

/* UL routes — custom marker chevron SVG inline */
body.ac-service-page .ac-service-directions-item__body ul {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: clamp(0.5rem, 0.875vw, 0.75rem);
}

body.ac-service-page .ac-service-directions-item__body li {
  position: relative;
  padding: 0.625rem 0 0.625rem 1.875rem;
  color: var(--ac-body);
  line-height: var(--ac-leading-relaxed);
  font-size: var(--ac-text-base);
}

/* Chevron marker SVG inline al posto di bullet UA */
body.ac-service-page .ac-service-directions-item__body li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.875rem;
  width: 18px;
  height: 18px;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DF1654' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 18 15 12 9 6'/></svg>") center/18px 18px no-repeat;
  flex-shrink: 0;
}

/* Strong (es. landmark, città start) — color emphasis */
body.ac-service-page .ac-service-directions-item__body li strong {
  color: var(--ac-dark);
  font-weight: var(--ac-weight-semibold);
}

/* Link inline */
body.ac-service-page .ac-service-directions-item__body a {
  color: var(--ac-primary-700);
  text-decoration: underline;
  text-decoration-color: var(--ac-accent-500);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  font-weight: var(--ac-weight-medium);
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

body.ac-service-page .ac-service-directions-item__body a:hover,
body.ac-service-page .ac-service-directions-item__body a:focus-visible {
  color: var(--ac-accent-500);
  text-decoration-color: var(--ac-primary-700);
  outline: none;
}

/* --------------------------------------------------------------------------
   7. REDUCED MOTION — kill all transitions/transforms
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  body.ac-service-page .ac-contact-card,
  body.ac-service-page .ac-contact-card::before,
  body.ac-service-page .ac-contact-card__icon,
  body.ac-service-page .ac-btn--call,
  body.ac-service-page .ac-btn--whatsapp,
  body.ac-service-page .ac-service-directions-item,
  body.ac-service-page .ac-service-contact p a,
  body.ac-service-page .ac-service-directions-item__body a {
    transition: none !important;
  }
  body.ac-service-page .ac-contact-card:hover,
  body.ac-service-page .ac-contact-card:focus-visible,
  body.ac-service-page .ac-btn--call:hover,
  body.ac-service-page .ac-btn--whatsapp:hover,
  body.ac-service-page .ac-service-directions-item:hover {
    transform: none;
  }
  body.ac-service-page .ac-contact-card:hover::before,
  body.ac-service-page .ac-contact-card:focus-visible::before {
    transform: scaleX(1);
  }
  body.ac-service-page .ac-contact-card:hover .ac-contact-card__icon {
    transform: none;
  }
}

/* End SERVICE CONTACT + DIRECTIONS PREMIUM v12.7.36 */
