/* =========================================================================
   Consulenze Carraro — main.css
   Mobile-first. Token da theme.json (--wp--preset--*) + alias --cc-*.
   ========================================================================= */

:root {
  --cc-bg: var(--wp--preset--color--bg, #F6F2EC);
  --cc-surface: var(--wp--preset--color--surface, #fff);
  --cc-surface-2: var(--wp--preset--color--surface-2, #ECE6DC);
  --cc-primary: var(--wp--preset--color--primary, #1F3B37);
  --cc-primary-hover: var(--wp--preset--color--primary-hover, #16302C);
  --cc-secondary: var(--wp--preset--color--secondary, #526B64);
  --cc-text: var(--wp--preset--color--text, #1C1B19);
  --cc-muted: var(--wp--preset--color--text-muted, #5E5A53);
  --cc-line: var(--wp--preset--color--line, #D9D2C6);
  --cc-accent: var(--wp--preset--color--accent, #C2603D);
  --cc-accent-text: var(--wp--preset--color--accent-text, #9E4B2C);
  --cc-success: #286B4E; --cc-warning: #8A5A0E; --cc-error: #A9382B;

  --cc-display: var(--wp--preset--font-family--display, "Fraunces", Georgia, serif);
  --cc-sans: var(--wp--preset--font-family--text, "Instrument Sans", system-ui, sans-serif);

  --cc-gutter: 20px;
  --cc-container: 1200px;
  --cc-reading: 720px;
  --cc-section-y: 48px;
  --cc-header-h: 56px;
  --cc-sticky-h: 64px;
  --cc-radius-sm: 6px; --cc-radius: 8px;
  --cc-shadow: 0 1px 2px rgba(28,27,25,.06), 0 8px 24px rgba(28,27,25,.06);
  --cc-ease: cubic-bezier(.2,.8,.2,1);
  --cc-fast: 120ms; --cc-base: 160ms; --cc-slow: 260ms;
}
@media (max-width: 379px) { :root { --cc-gutter: 16px; } }
@media (min-width: 640px) { :root { --cc-gutter: 32px; --cc-section-y: 72px; --cc-header-h: 64px; } }
@media (min-width: 1024px) { :root { --cc-gutter: 40px; --cc-section-y: 96px; --cc-header-h: 72px; } }

html { color-scheme: light; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--cc-header-h) + 16px); }
body { margin: 0; background: var(--cc-bg); color: var(--cc-text); font-family: var(--cc-sans); font-size: 1.0625rem; line-height: 1.6; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
@media (min-width: 1024px) { body { font-size: 1.125rem; } }
body:not(.cc-no-sticky) { padding-bottom: var(--cc-sticky-h); }
@media (min-width: 640px) { body:not(.cc-no-sticky) { padding-bottom: 0; } }
.wp-site-blocks, body.has-global-padding { padding-left: 0 !important; padding-right: 0 !important; }
.cc-main { display: block; }

h1, h2, h3, .cc-h3 { font-family: var(--cc-display); font-weight: 500; color: var(--cc-text); margin: 0 0 .5em; text-wrap: balance; }
h1 { font-size: clamp(2.125rem, 1.6rem + 2.4vw, 3.25rem); line-height: 1.1; letter-spacing: -.01em; max-width: 18ch; }
h2 { font-size: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem); line-height: 1.15; letter-spacing: -.005em; max-width: 24ch; }
h3, .cc-h3 { font-size: clamp(1.375rem, 1.25rem + .6vw, 1.625rem); line-height: 1.25; max-width: 32ch; }
h4 { font-family: var(--cc-sans); font-weight: 600; font-size: 1.125rem; line-height: 1.35; margin: 0 0 .4em; }
p { margin: 0 0 1em; }
a { color: var(--cc-accent-text); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color var(--cc-base) var(--cc-ease); }
a:hover { color: var(--cc-primary); }
strong { font-weight: 600; } em { font-style: italic; }
img, svg, video { max-width: 100%; height: auto; display: block; }
ul, ol { padding-left: 1.25rem; margin: 0 0 1em; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--cc-accent-text); outline-offset: 2px; border-radius: 2px; }
:focus:not(:focus-visible) { outline: none; }
.cc-skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 14px; background: var(--cc-primary); color: var(--cc-bg); border-radius: var(--cc-radius-sm); text-decoration: none; }
.cc-skip:focus { top: 12px; }

.cc-container { width: 100%; max-width: var(--cc-container); margin-inline: auto; padding-inline: var(--cc-gutter); box-sizing: border-box; }
.cc-section { padding-block: var(--cc-section-y); }
.cc-section--tight { padding-block: calc(var(--cc-section-y) * .5); }
.cc-section + .cc-section { padding-top: 0; }
.cc-section--dark { background: var(--cc-primary); color: var(--cc-bg); padding-block: var(--cc-section-y) !important; }
.cc-section--dark h2, .cc-section--dark h3 { color: var(--cc-bg); }
.cc-section__title { margin-bottom: .75em; }
.cc-section__sub { margin-bottom: 1.5em; }
.cc-prose { max-width: 68ch; }
.cc-lead { font-size: 1.1875rem; line-height: 1.55; max-width: 62ch; }
@media (min-width: 1024px) { .cc-lead { font-size: 1.3125rem; } }
.cc-kicker { font-family: var(--cc-sans); font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cc-muted); margin: 0 0 .9em; }
.cc-meta { font-size: .875rem; color: var(--cc-muted); line-height: 1.45; }
.cc-meta a { color: inherit; }
.cc-breadcrumb { font-size: .875rem; color: var(--cc-muted); margin-bottom: 1.25rem; }
.cc-breadcrumb a { color: inherit; text-decoration: none; }

.cc-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 48px; padding: 0 1.5rem; border-radius: var(--cc-radius-sm); font-family: var(--cc-sans); font-size: 1rem; font-weight: 600; text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: background var(--cc-base) var(--cc-ease), color var(--cc-base) var(--cc-ease), border-color var(--cc-base) var(--cc-ease); box-sizing: border-box; }
.cc-btn--primary { background: var(--cc-primary); color: var(--cc-bg); border-color: var(--cc-primary); }
.cc-btn--primary:hover, .cc-btn--primary:focus-visible, .cc-btn--primary:active { background: var(--cc-primary-hover); border-color: var(--cc-primary-hover); color: var(--cc-bg); }
.cc-btn--secondary { background: transparent; color: var(--cc-primary); border-color: var(--cc-primary); }
.cc-btn--secondary:hover, .cc-btn--secondary:focus-visible { background: rgba(31,59,55,.06); color: var(--cc-primary); }
.cc-btn--inverse { background: var(--cc-bg); color: var(--cc-primary); border-color: var(--cc-bg); }
.cc-btn--inverse:hover, .cc-btn--inverse:focus-visible { background: #fff; color: var(--cc-primary); }
.cc-btn--text { min-height: 0; padding: 0; border: 0; border-radius: 0; color: var(--cc-primary); text-decoration: underline; text-decoration-color: var(--cc-accent); }
.cc-btn--text:hover, .cc-btn--text:focus-visible { color: var(--cc-primary); text-decoration-thickness: 2px; }
.cc-btn--text::after { content: "→"; }
.cc-btn--text-light { color: var(--cc-bg); text-decoration-color: rgba(246,242,236,.6); }
.cc-btn--block { width: 100%; }
.cc-btn--menu { min-height: 40px; padding: 0 1.125rem; font-size: .9375rem; }

.cc-header { position: sticky; top: 0; z-index: 50; background: var(--cc-bg); transition: transform var(--cc-slow) var(--cc-ease), background var(--cc-base); }
.cc-header.is-hidden { transform: translateY(-100%); }
.cc-header.is-compact { background: rgba(246,242,236,.92); backdrop-filter: blur(10px); box-shadow: inset 0 -1px 0 var(--cc-line); }
.cc-header__inner { max-width: var(--cc-container); margin-inline: auto; padding-inline: var(--cc-gutter); height: var(--cc-header-h); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cc-brand { display: inline-flex; align-items: center; text-decoration: none; }
.cc-brand__a { display: none; height: 44px; width: auto; }
.cc-brand__b { display: block; height: 24px; width: auto; }
@media (min-width: 1024px) { .cc-brand__a { display: block; } .cc-brand__b { display: none; } }
.cc-nav { display: none; }
.cc-header__mobile { display: flex; align-items: center; gap: .75rem; }
.cc-header__checkup { font-weight: 600; font-size: .9375rem; color: var(--cc-primary); text-decoration: none; padding: 8px 4px; }
.cc-burger { width: 44px; height: 44px; margin-right: -8px; display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; background: none; border: 0; cursor: pointer; }
.cc-burger span { display: block; width: 24px; height: 2px; background: var(--cc-primary); }
@media (min-width: 1024px) {
  .cc-header__mobile { display: none; }
  .cc-nav { display: flex; align-items: center; gap: 1.25rem; }
  .cc-nav__list { display: flex; align-items: center; gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
  .cc-nav__list > li { position: relative; }
  .cc-nav__list > li > a, .cc-nav__toggle { display: inline-flex; align-items: center; gap: .25rem; padding: 10px 0; font-size: .9375rem; font-weight: 500; color: var(--cc-text); text-decoration: none; background: none; border: 0; cursor: pointer; border-bottom: 2px solid transparent; }
  .cc-nav__list > li > a:hover, .cc-nav__toggle:hover { border-bottom-color: var(--cc-accent); }
  .cc-nav__sub { position: absolute; top: calc(100% + 8px); left: -16px; min-width: 520px; background: var(--cc-surface); border: 1px solid var(--cc-line); border-radius: var(--cc-radius); box-shadow: var(--cc-shadow); padding: 12px; opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity var(--cc-base) var(--cc-ease), transform var(--cc-base) var(--cc-ease), visibility 0s linear var(--cc-base); }
  .cc-nav__has-sub.is-open .cc-nav__sub, .cc-nav__has-sub:focus-within .cc-nav__sub { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .cc-nav__sub ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
  .cc-nav__sub li a { display: flex; gap: .75rem; padding: 10px 12px; border-radius: var(--cc-radius-sm); text-decoration: none; color: var(--cc-text); font-weight: 500; line-height: 1.3; }
  .cc-nav__sub li a:hover { background: var(--cc-bg); color: var(--cc-primary); }
  .cc-nav__sub li a small { display: block; font-weight: 400; font-size: .8125rem; color: var(--cc-muted); margin-top: 2px; }
  .cc-nav__sub .cc-num { font-family: var(--cc-display); color: var(--cc-accent); font-size: 1.125rem; min-width: 1ch; }
  .cc-nav__sub-foot { display: flex; justify-content: space-between; gap: 1rem; margin: 8px 12px 4px; padding-top: 10px; border-top: 1px solid var(--cc-line); font-size: .875rem; }
  .cc-nav__sub-foot a { color: var(--cc-primary); text-decoration: none; }
}

.cc-nav__list > li.is-current > a, .cc-nav__toggle.is-current { border-bottom-color: var(--cc-accent); }
.cc-nav__sub li a.is-current { background: var(--cc-bg); color: var(--cc-primary); font-weight: 600; }
.cc-mobile__list > li.is-current > a, .cc-mobile__sub a.is-current { color: var(--cc-accent-text); }
.cc-mobile { position: fixed; inset: 0; z-index: 60; background: var(--cc-bg); padding: 0 var(--cc-gutter) 24px; overflow-y: auto; transform: translateX(100%); transition: transform var(--cc-slow) var(--cc-ease); }
.cc-mobile:not([hidden]) { display: block; }
.cc-mobile.is-open { transform: none; }
.cc-mobile__top { height: 56px; display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.cc-mobile__top img { height: 24px; width: auto; }
.cc-mobile__close, .cc-sticky__close { width: 44px; height: 44px; margin-right: -8px; background: none; border: 0; font-size: 2rem; line-height: 1; color: var(--cc-primary); cursor: pointer; font-family: var(--cc-display); }
.cc-mobile__list, .cc-mobile__sub, .cc-mobile__small { list-style: none; margin: 0; padding: 0; }
.cc-mobile__list { margin-top: 24px; }
.cc-mobile__list > li > a, .cc-mobile__toggle { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 14px 0; font-family: var(--cc-display); font-size: 1.625rem; font-weight: 500; color: var(--cc-text); text-decoration: none; background: none; border: 0; border-bottom: 1px solid var(--cc-line); text-align: left; cursor: pointer; }
.cc-mobile__toggle span { font-family: var(--cc-sans); color: var(--cc-accent); font-size: 1.5rem; }
.cc-mobile__toggle[aria-expanded="true"] span { transform: rotate(45deg); }
.cc-mobile__sub { padding: 4px 0 8px 12px; border-bottom: 1px solid var(--cc-line); }
.cc-mobile__sub a { display: block; padding: 10px 0; font-size: 1.0625rem; color: var(--cc-text); text-decoration: none; }
.cc-mobile__small { margin-top: 20px; }
.cc-mobile__small a { display: block; padding: 8px 0; font-size: .875rem; color: var(--cc-muted); text-decoration: none; }
body.cc-menu-open { overflow: hidden; }

.cc-hero { padding-top: 32px; }
.cc-hero__grid { display: grid; gap: 28px; }
.cc-hero__sub { font-size: 1.1875rem; max-width: 52ch; margin-bottom: 1.5em; }
.cc-hero__cta { display: flex; flex-direction: column; gap: 16px; margin-bottom: 1.25em; }
.cc-hero__cta .cc-btn--primary { width: 100%; }
.cc-hero__trust { font-size: .875rem; color: var(--cc-muted); max-width: 52ch; }
.cc-hero__media .cc-foto { max-height: 200px; aspect-ratio: 3/2 !important; }
@media (min-width: 640px) { .cc-hero__cta { flex-direction: row; align-items: center; } .cc-hero__cta .cc-btn--primary { width: auto; } .cc-hero__media .cc-foto { max-height: 320px; } }
@media (min-width: 1024px) { .cc-hero { padding-top: 64px; } .cc-hero__grid { grid-template-columns: 7fr 5fr; gap: 64px; align-items: center; } .cc-hero__media .cc-foto { max-height: none; aspect-ratio: 4/5 !important; } }

.cc-foto { width: 100%; object-fit: cover; border-radius: var(--cc-radius); background: var(--cc-surface-2); }
.cc-foto--placeholder { display: flex; align-items: center; justify-content: center; padding: 16px; box-sizing: border-box; border: 1px dashed var(--cc-line); color: var(--cc-muted); font-size: .8125rem; text-align: center; }

.cc-split { display: grid; gap: 28px; }
.cc-split__media .cc-foto { max-height: 240px; aspect-ratio: 3/2 !important; }
@media (min-width: 1024px) { .cc-split { grid-template-columns: 7fr 5fr; gap: 64px; } .cc-split__media .cc-foto { max-height: none; aspect-ratio: 4/5 !important; } }
.cc-righe { list-style: none; padding: 0; margin: 1.5em 0 0; }
.cc-righe li { padding: 10px 0 10px 20px; font-weight: 500; border-left: 3px solid var(--cc-accent); margin-bottom: 10px; }

.cc-quattro { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 24px 32px; }
@media (min-width: 380px) { .cc-quattro { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .cc-quattro { grid-template-columns: repeat(4, 1fr); } }
.cc-quattro li { padding-top: 12px; border-top: 1px solid var(--cc-line); }
.cc-quattro__num { display: block; font-family: var(--cc-display); font-size: 2rem; color: var(--cc-accent); margin-bottom: 12px; }
.cc-quattro h3, .cc-pilastro__primaria, .cc-caso-card__title, .cc-art-card__title, .cc-passo__body strong, h4 {
	letter-spacing: .003em;
	font-feature-settings: "liga" 0, "dlig" 0, "clig" 0;
}
.cc-quattro h3 { font-family: var(--cc-sans); font-weight: 600; font-size: 1.125rem; }

.cc-pilastri { list-style: none; margin: 0 0 24px; padding: 0; display: grid; }
.cc-pilastro a { display: grid; grid-template-columns: 2rem 1fr; gap: 12px; padding: 16px 0; border-top: 1px solid var(--cc-line); text-decoration: none; color: var(--cc-text); }
.cc-pilastro:last-child a { border-bottom: 1px solid var(--cc-line); }
.cc-pilastro__img { display: none; }
.cc-pilastro__num { font-family: var(--cc-display); font-size: 1.75rem; color: var(--cc-accent); }
.cc-pilastro__primaria { display: block; font-weight: 600; font-size: 1.125rem; }
.cc-pilastro__secondaria { display: block; font-size: .8125rem; color: var(--cc-muted); margin: 2px 0 6px; }
@media (min-width: 640px) { .cc-pilastri { grid-template-columns: 1fr 1fr; gap: 0 32px; } }
@media (min-width: 1024px) { .cc-pilastri { grid-template-columns: repeat(5, 1fr); gap: 24px; } .cc-pilastro a { display: block; height: 100%; padding: 20px; background: var(--cc-surface); border: 1px solid var(--cc-line); border-radius: var(--cc-radius); box-sizing: border-box; } .cc-pilastro a:hover { border-color: var(--cc-secondary); box-shadow: var(--cc-shadow); } .cc-pilastro__img { display: block; width: calc(100% + 40px); margin: -20px -20px 16px; border-radius: var(--cc-radius) var(--cc-radius) 0 0; aspect-ratio: 3/2; object-fit: cover; } }
.cc-pilastri__note { color: var(--cc-muted); }

.cc-passi { list-style: none; margin: 0 0 24px; padding: 0; display: grid; }
.cc-passo { display: grid; grid-template-columns: 2.25rem 1fr; gap: 14px; padding: 14px 0; position: relative; }
.cc-passo::before { content: ""; position: absolute; left: 14px; top: 44px; bottom: -8px; width: 1px; background: var(--cc-line); }
.cc-passo:last-child::before { display: none; }
.cc-passo__num { font-family: var(--cc-display); font-size: 1.75rem; color: var(--cc-accent); width: 28px; text-align: center; background: var(--cc-bg); }
.cc-passo__body strong { display: block; font-size: 1.125rem; }
@media (min-width: 1024px) { .cc-passi { grid-template-columns: repeat(5, 1fr); gap: 24px; } .cc-passo { display: block; padding: 0; } .cc-passo::before { left: 0; right: 0; top: 18px; bottom: auto; height: 1px; width: auto; } .cc-passo:last-child::before { display: block; } .cc-passo__num { display: inline-block; width: auto; padding-right: 12px; margin-bottom: 14px; text-align: left; font-size: 2rem; } }

.cc-cta { display: grid; gap: 20px; border-radius: var(--cc-radius); }
.cc-cta--light { background: var(--cc-surface-2); padding: 32px 20px; }
.cc-cta__action { display: flex; flex-direction: column; gap: 14px; }
.cc-cta__action .cc-btn--primary, .cc-cta__action .cc-btn--inverse { width: 100%; }
.cc-cta__fine { font-family: var(--cc-display); font-style: italic; font-size: 1.125rem; margin: 8px 0 0; opacity: .8; }
@media (min-width: 640px) { .cc-cta--light { padding: 40px 32px; } .cc-cta__action .cc-btn--primary, .cc-cta__action .cc-btn--inverse { width: auto; } }
@media (min-width: 1024px) { .cc-cta { grid-template-columns: 7fr 5fr; gap: 48px; align-items: center; } .cc-cta--light { padding: 56px 64px; } }

.cc-casi-grid { display: grid; gap: 12px; }
.cc-caso-card { position: relative; background: var(--cc-surface-2); border-left: 3px solid var(--cc-accent); border-radius: 0 var(--cc-radius) var(--cc-radius) 0; padding: 20px; }
.cc-caso-card__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.cc-tag-caso { display: inline-block; font-size: .75rem; font-weight: 600; color: var(--cc-accent-text); background: rgba(158,75,44,.1); padding: 4px 8px; border-radius: 999px; }
.cc-caso-card__title { font-family: var(--cc-sans); font-weight: 600; font-size: 1.125rem; margin: 0 0 10px; }
.cc-caso-card__title a { color: var(--cc-text); text-decoration: none; }
.cc-caso-card__title a::after { content: ""; position: absolute; inset: 0; }
.cc-caso-card__line { font-family: var(--cc-display); font-size: 1.0625rem; margin: 0 0 6px; }
.cc-caso-card__line span { font-family: var(--cc-sans); font-size: .8125rem; font-weight: 600; color: var(--cc-muted); font-style: normal; }
.cc-casi-grid--scroll { grid-auto-flow: column; grid-auto-columns: 85%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; margin-inline: calc(-1 * var(--cc-gutter)); padding-inline: var(--cc-gutter); }
.cc-casi-grid--scroll .cc-caso-card { scroll-snap-align: start; }
@media (min-width: 640px) { .cc-casi-grid, .cc-casi-grid--scroll { grid-template-columns: 1fr 1fr; grid-auto-flow: row; gap: 20px; overflow: visible; margin-inline: 0; padding-inline: 0; } }
@media (min-width: 1024px) { .cc-casi-grid, .cc-casi-grid--scroll { grid-template-columns: repeat(3, 1fr); gap: 24px; } }

.cc-art-grid { display: grid; gap: 12px; }
@media (min-width: 640px) { .cc-art-grid--griglia { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .cc-art-grid--griglia { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.cc-art-card { position: relative; }
.cc-art-card--lista { padding: 14px 0; border-top: 1px solid var(--cc-line); }
.cc-art-card__title { font-family: var(--cc-sans); font-weight: 600; font-size: 1.125rem; margin: 0 0 6px; }
.cc-art-card__title a { color: var(--cc-text); text-decoration: none; }
.cc-art-card__title a::after { content: ""; position: absolute; inset: 0; }

.cc-badge { display: inline-flex; align-items: center; gap: 6px; font-size: .75rem; font-weight: 600; color: var(--cc-primary); background: var(--cc-surface-2); padding: 4px 10px; border-radius: 999px; text-decoration: none; }
.cc-badge__num { font-family: var(--cc-display); color: var(--cc-accent); font-size: .9375rem; }

.cc-band { background: var(--cc-surface-2); padding-block: var(--cc-section-y) !important; }
.cc-band__grid { display: grid; gap: 40px; }
.cc-trust { list-style: none; margin: 0; padding: 0; }
.cc-trust li { position: relative; padding: 10px 0 10px 18px; font-size: .9375rem; border-top: 1px solid var(--cc-line); }
.cc-trust li::before { content: ""; position: absolute; left: 0; top: 19px; width: 8px; height: 8px; border-radius: 50%; background: var(--cc-secondary); }
@media (min-width: 1024px) { .cc-band__grid { grid-template-columns: 5fr 7fr; gap: 80px; } }

.cc-callout { background: var(--cc-surface-2); border-left: 3px solid var(--cc-primary); border-radius: 0 var(--cc-radius) var(--cc-radius) 0; padding: 20px 24px; margin: 1.5em 0; }
.cc-callout--imparare { border-left-color: var(--cc-accent); }
.cc-callout__title { font-family: var(--cc-sans); font-weight: 600; font-size: 1.125rem; margin: 0 0 .5em; }

.cc-page__title, .cc-article__title { margin-bottom: .6em; }
.cc-article .cc-meta { margin-bottom: 1.5rem; }
.cc-article__img { margin: 0 0 2rem; border-radius: var(--cc-radius); overflow: hidden; }
.cc-article__img img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.cc-timeline { list-style: none; margin: 2rem 0; padding: 0 0 0 24px; border-left: 3px solid var(--cc-accent); }
.cc-timeline__step { position: relative; padding-bottom: 1.75rem; }
.cc-timeline__step::before { content: ""; position: absolute; left: -31px; top: 6px; width: 11px; height: 11px; border-radius: 50%; background: var(--cc-bg); border: 2px solid var(--cc-accent); }
.cc-timeline__label { font-family: var(--cc-sans); font-size: .8125rem; font-weight: 600; text-transform: uppercase; color: var(--cc-muted); margin: 0 0 .35em; }
.cc-timeline__step.is-muted p { font-family: var(--cc-display); font-style: italic; color: var(--cc-muted); font-size: 1.25rem; }
.cc-hub__empty { display: none; }

.cc-footer { background: var(--cc-surface-2); padding: 48px 0 24px; font-size: .9375rem; }
.cc-footer__inner { max-width: var(--cc-container); margin-inline: auto; padding-inline: var(--cc-gutter); display: grid; gap: 8px; }
.cc-footer__col--id img { height: 44px; width: auto; margin-bottom: 14px; }
.cc-footer__links, .cc-footer__group ul { list-style: none; margin: 0; padding: 0; }
.cc-footer a { color: var(--cc-muted); text-decoration: none; }
.cc-footer a:hover { color: var(--cc-primary); text-decoration: underline; }
.cc-footer__group { border-top: 1px solid var(--cc-line); padding: 10px 0; }
.cc-footer__group summary { font-weight: 600; cursor: pointer; padding: 6px 0; list-style: none; display: flex; justify-content: space-between; }
.cc-footer__group summary::-webkit-details-marker { display: none; }
.cc-footer__group summary::after { content: "+"; color: var(--cc-accent); }
.cc-footer__group[open] summary::after { content: "–"; }
.cc-footer__title { font-family: var(--cc-display); font-size: 1.5rem; margin: 8px 0 .3em; }
.cc-footer__col--news { padding-top: 12px; border-top: 1px solid var(--cc-line); }
.cc-footer__bottom { max-width: var(--cc-container); margin: 32px auto 0; padding: 20px var(--cc-gutter) 0; border-top: 1px solid var(--cc-line); display: flex; flex-direction: column; gap: 6px; font-size: .8125rem; color: var(--cc-muted); }
.cc-footer__bottom p { margin: 0; }
.cc-footer__payoff { font-family: var(--cc-display); font-style: italic; font-size: 1.0625rem; color: var(--cc-primary); }
@media (min-width: 640px) { .cc-footer__inner { grid-template-columns: 1fr 1fr; gap: 24px 32px; } .cc-footer__col--id, .cc-footer__col--news { grid-column: 1 / -1; } .cc-footer__col--news { border-top: 0; } }
@media (min-width: 1024px) { .cc-footer { padding-top: 64px; } .cc-footer__inner { grid-template-columns: 1.4fr 1fr 1fr 1.3fr; gap: 40px; } .cc-footer__col--id, .cc-footer__col--news { grid-column: auto; } .cc-footer__group { border: 0; padding: 0; } .cc-footer__group summary { pointer-events: none; } .cc-footer__group summary::after { display: none; } .cc-footer__col--news { padding-top: 0; border: 0; } .cc-footer__bottom { flex-direction: row; justify-content: space-between; align-items: center; } }

.cc-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; height: var(--cc-sticky-h); display: flex; align-items: center; gap: 8px; padding: 0 var(--cc-gutter); box-sizing: border-box; background: rgba(246,242,236,.96); backdrop-filter: blur(10px); border-top: 1px solid var(--cc-line); transform: translateY(100%); transition: transform 200ms var(--cc-ease); }
.cc-sticky:not([hidden]) { display: flex; }
.cc-sticky.is-visible { transform: none; }
.cc-sticky .cc-btn { flex: 1; }
.cc-sticky__close { flex: 0 0 44px; margin: 0; font-size: 1.75rem; }
@media (min-width: 640px) { .cc-sticky { display: none !important; } }
body.cc-no-sticky .cc-sticky { display: none !important; }

.cc-checkup-shell__bar { max-width: var(--cc-container); margin-inline: auto; padding: 0 var(--cc-gutter); height: var(--cc-header-h); display: flex; align-items: center; justify-content: space-between; }
.cc-checkup-shell__bar img { height: 24px; width: auto; }

.wp-block-post-content > * + * { margin-top: 1em; }
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: .9375rem; }
.wp-block-table td, .wp-block-table th { border: 1px solid var(--cc-line); padding: 10px 12px; text-align: left; }
.wp-block-table th { background: var(--cc-surface-2); font-weight: 600; }
.wp-block-details { border: 1px solid var(--cc-line); border-radius: var(--cc-radius); padding: 0 16px; margin: 0 0 8px; }
.wp-block-details summary { padding: 14px 0; font-weight: 600; cursor: pointer; list-style: none; }
.wp-block-details summary::-webkit-details-marker { display: none; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
.editor-styles-wrapper { background: var(--cc-bg); }

/* ---------- Check-up ---------- */
.cc-checkup { max-width: 560px; margin: 0 auto; padding: 32px 0 64px; }
.cc-checkup__title { margin: .3em 0 .5em; }
.cc-checkup__note { list-style: none; margin: 1.5em 0; padding: 0; }
.cc-checkup__note li { position: relative; padding: 8px 0 8px 20px; font-size: .9375rem; color: var(--cc-muted); border-top: 1px solid var(--cc-line); }
.cc-checkup__note li::before { content: "·"; position: absolute; left: 4px; color: var(--cc-accent); font-weight: 700; }
.cc-checkup__bar { height: 4px; background: var(--cc-line); border-radius: 999px; overflow: hidden; margin-bottom: 24px; }
.cc-checkup__bar-fill { height: 100%; background: var(--cc-accent); transition: width var(--cc-base) var(--cc-ease); }
.cc-checkup__q { margin: .4em 0 1.5em; font-size: clamp(1.375rem, 1.2rem + 1vw, 1.75rem); }
.cc-checkup__answers { display: grid; gap: 12px; margin-bottom: 16px; }
.cc-checkup__answers .cc-btn { min-height: 56px; font-size: 1.0625rem; justify-content: flex-start; padding-left: 24px; }
.cc-checkup__answers .cc-btn:hover { background: var(--cc-surface-2); border-color: var(--cc-primary); }
.cc-checkup__hint { font-size: .8125rem; color: var(--cc-muted); margin-bottom: 24px; }
.cc-checkup__priority { background: var(--cc-surface-2); border-radius: var(--cc-radius); padding: 24px; margin: 1.5em 0 2em; }
.cc-checkup__esito-grande { font-family: var(--cc-display); font-size: 1.5rem; margin: .4em 0; }
.cc-checkup__esito--ok { color: var(--cc-success); }
.cc-checkup__esito--guardare { color: var(--cc-warning); }
.cc-checkup__esito--lacuna { color: var(--cc-error); }
.cc-checkup__righe { list-style: none; margin: 0 0 2em; padding: 0; }
.cc-checkup__riga { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-top: 1px solid var(--cc-line); font-size: .9375rem; }
.cc-checkup__riga a { color: var(--cc-text); text-decoration: none; font-weight: 500; }
.cc-checkup__riga a:hover { color: var(--cc-primary); text-decoration: underline; }
.cc-checkup__riga--na .cc-checkup__esito { color: var(--cc-muted); }
.cc-checkup__esito { font-size: .8125rem; font-weight: 600; }
.cc-checkup__disclaimer { font-size: .75rem; color: var(--cc-muted); margin-top: 2em; }
@media (min-width: 640px) { .cc-checkup__answers { grid-template-columns: repeat(3, 1fr); } .cc-checkup__answers .cc-btn { justify-content: center; padding-left: 1.5rem; } }
