:root {
  --caf-primary: #1889cc;
  --caf-light-blue: #59b5e5;
  --caf-navy: #1a2849;
  --caf-green: #0f8445;
  --caf-red: #b91522;
  --caf-white: #fcfdfd;
  --caf-surface: #f3f7fa;
  --caf-muted: #5c6f8b;
  --caf-border: #d5e4ee;
  --caf-radius: 1.25rem;
  --caf-shadow: 0 12px 30px rgba(26, 40, 73, .08);
  --caf-wide: 1180px;
  --caf-content: 760px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-wrap: break-word; }
body.menu-is-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { text-underline-offset: .15em; }
button, input, textarea, select { font: inherit; }

.site-container {
  width: min(100% - 2rem, var(--caf-wide));
  margin-inline: auto;
}
.site-container--content { max-width: var(--caf-content); }
.site-main { min-height: 55vh; }
.content-layout { padding-block: clamp(3rem, 7vw, 6rem); }
.entry-content { padding-block: clamp(2.5rem, 6vw, 5rem); }
.entry-content--front { padding-block: 0; }
.entry-content > * { max-width: var(--caf-content); margin-inline: auto; }
.entry-content > .alignwide { max-width: var(--caf-wide); }
.entry-content > .alignfull { max-width: none; }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}
.screen-reader-text:focus,
.skip-link:focus {
  z-index: 100000;
  top: 1rem; left: 1rem;
  width: auto; height: auto;
  clip: auto;
  padding: .75rem 1rem;
  background: var(--caf-white);
  color: var(--caf-navy);
  border-radius: .5rem;
  box-shadow: var(--caf-shadow);
}
:focus-visible { outline: 3px solid var(--caf-light-blue); outline-offset: 3px; }

.site-header { position: sticky; z-index: 50; top: 0; background: rgba(252,253,253,.98); border-bottom: 1px solid var(--caf-border); box-shadow: 0 4px 16px rgba(26,40,73,.04); }
.admin-bar .site-header { top: 32px; }
.site-header__inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 8px; }
.site-branding { flex: 0 0 auto; display: flex; align-items: center; gap: .8rem; }
.custom-logo-link, .site-branding__fallback { flex: 0 0 auto; display: grid; place-items: center; color: var(--caf-navy); line-height: 0; text-decoration: none; }
.custom-logo { width: auto; max-height: 80px; }
.site-branding__fallback img { width: 78px; height: 78px; border-radius: 50%; object-fit: contain; }
.site-branding__name { display: grid; gap: .06rem; color: var(--caf-navy); line-height: 1.02; text-decoration: none; }
.site-branding__name span { font-size: .88rem; font-weight: 750; }
.site-branding__name strong { font-size: 1.14rem; font-weight: 900; letter-spacing: .04em; }
.site-branding__name small { margin-top: .22rem; color: var(--caf-primary); font-size: .66rem; font-weight: 800; letter-spacing: .105em; line-height: 1; }
.site-branding__name:hover { color: var(--caf-primary); }
.site-branding__name:hover small { color: var(--caf-navy); }
.primary-menu { display: flex; align-items: center; gap: clamp(.4rem, 1.3vw, 1.35rem); padding: 0; margin: 0; list-style: none; }
.primary-menu a { display: block; padding: .7rem .25rem; color: var(--caf-navy); font-size: .92rem; font-weight: 750; text-decoration: none; }
.primary-menu a:hover, .primary-menu .current-menu-item > a { color: var(--caf-primary); }
.primary-menu > li:last-child > a { padding: .85rem 1.15rem; border-radius: .75rem; background: var(--caf-primary); color: #fff; box-shadow: 0 8px 20px rgba(24, 137, 204, .18); }
.primary-menu > li:last-child > a:hover { background: var(--caf-navy); color: #fff; }
.menu-toggle { display: none; width: 48px; height: 48px; padding: 0; border: 0; border-radius: .6rem; background: transparent; color: var(--caf-navy); cursor: pointer; }
.menu-toggle__bars, .menu-toggle__bars span { display: block; }
.menu-toggle__bars { width: 24px; margin: auto; }
.menu-toggle__bars span { height: 2px; margin: 5px 0; border-radius: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-whatsapp-action { display: none; }

.page-hero { padding-block: clamp(3rem, 7vw, 5.75rem); background: var(--caf-surface); }
.page-hero h1 { max-width: 900px; margin: 0; font-size: clamp(2.3rem, 5vw, 4.5rem); line-height: 1.03; letter-spacing: -.04em; }
.page-hero .entry-meta { margin-bottom: 1rem; }
.section-label { margin: 0 0 .65rem; color: var(--caf-primary); font-size: .82rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.entry-meta { color: var(--caf-muted); font-size: .86rem; font-weight: 700; }
.entry-featured { margin-top: clamp(2rem, 5vw, 4rem); }
.entry-featured img { width: 100%; border-radius: var(--caf-radius); }

.entries-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.entry-card { overflow: hidden; border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; }
.entry-card__link { display: flex; height: 100%; flex-direction: column; color: inherit; text-decoration: none; }
.entry-card__media { aspect-ratio: 16 / 9; overflow: hidden; background: #e7f3fa; }
.entry-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.entry-card__body { display: flex; flex: 1; flex-direction: column; padding: 1.5rem; }
.entry-card h2 { margin: .55rem 0 .65rem; font-size: 1.25rem; }
.entry-card p { margin: 0 0 1.25rem; color: var(--caf-muted); }
.entry-card__cta { margin-top: auto; color: var(--caf-primary); font-weight: 800; }
.entry-card__link:hover img { transform: scale(1.025); }
.entry-card__link:hover h2 { color: var(--caf-primary); }

.nav-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.page-numbers { display: inline-flex; min-width: 42px; min-height: 42px; align-items: center; justify-content: center; padding: .5rem; border: 1px solid var(--caf-border); border-radius: .5rem; text-decoration: none; }
.page-numbers.current { background: var(--caf-navy); color: #fff; border-color: var(--caf-navy); }

.error-404 { display: grid; align-items: center; padding-block: 5rem; text-align: center; }
.button-link { display: inline-block; padding: .9rem 1.4rem; border-radius: .75rem; background: var(--caf-primary); color: #fff; font-weight: 800; text-decoration: none; }

/* Homepage componibile: le classi restano utilizzabili nei blocchi Gutenberg. */
.cafdh-section { padding-block: clamp(3.75rem, 8vw, 6.75rem); }
.cafdh-section--surface,
.cafdh-section--services { background: var(--caf-surface); }
.cafdh-section--features { background: #eaf6fd; }
.cafdh-section--updates { background: #fff; }
.cafdh-section--navy { background: var(--caf-navy); color: rgba(255,255,255,.82); }
.cafdh-section--navy h2,
.cafdh-section--navy h3 { color: #fff; }
.cafdh-section-heading { max-width: 720px; margin-bottom: clamp(2rem, 4vw, 3rem); }
.cafdh-section-heading h2 { margin: 0 0 .8rem; font-size: clamp(2rem, 4vw, 3.2rem); }
.cafdh-section-heading p:last-child { margin-bottom: 0; color: var(--caf-muted); font-size: 1.08rem; }
.cafdh-section--navy .cafdh-section-heading p:last-child { color: rgba(255,255,255,.72); }

.cafdh-hero { overflow: hidden; padding-block: clamp(4rem, 9vw, 7.5rem); background: linear-gradient(118deg, #13213d 0%, #1a2849 56%, #24678f 100%); color: #fff; }
.cafdh-hero__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(2.5rem, 5vw, 5rem); }
.cafdh-hero .section-label { color: #b9e7fd; }
.cafdh-hero h1 { max-width: 760px; margin: 0 0 1.25rem; color: #fff; font-size: clamp(2.55rem, 4.5vw, 4.25rem); line-height: 1.01; letter-spacing: -.05em; }
.cafdh-hero__lead { max-width: 660px; margin: 0; color: rgba(255,255,255,.87); font-size: clamp(1.08rem, 1.8vw, 1.3rem); }
.cafdh-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.cafdh-actions .wp-block-button__link { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding-inline: 1rem; font-size: .94rem; }
.cafdh-actions .is-style-outline .wp-block-button__link { border: 2px solid var(--caf-primary); color: var(--caf-primary); background: transparent; }
.cafdh-actions .is-style-outline .wp-block-button__link:hover { background: var(--caf-primary); color: #fff; }
.cafdh-actions .cafdh-button--whatsapp .wp-block-button__link { border-color: var(--caf-green); background: var(--caf-green); color: #fff; }
.cafdh-actions .cafdh-button--whatsapp .wp-block-button__link:hover { border-color: #0b6e39; background: #0b6e39; color: #fff; }
.cafdh-actions .cafdh-button--call .wp-block-button__link { border-color: var(--caf-light-blue); background: rgba(255,255,255,.05); color: #fff; }
.cafdh-actions .cafdh-button--call .wp-block-button__link:hover { border-color: #fff; background: #fff; color: var(--caf-navy); }
.cafdh-hero .cafdh-actions > .wp-block-button:first-child .wp-block-button__link { border: 1px solid rgba(255,255,255,.22); box-shadow: 0 10px 24px rgba(9,25,51,.2); }
.cafdh-hero__visual { position: relative; min-height: 0; aspect-ratio: 5 / 4; overflow: hidden; border-radius: 2rem; background: var(--caf-navy); box-shadow: var(--caf-shadow); }
.cafdh-hero__visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.cafdh-hero__badge { position: absolute; z-index: 1; right: 24px; bottom: 28px; max-width: 290px; display: grid; gap: .2rem; padding: 1.1rem 1.25rem; border-radius: 1rem; background: #fff; color: var(--caf-navy); font-weight: 700; text-decoration: none; box-shadow: var(--caf-shadow); transition: transform .2s ease, box-shadow .2s ease; }
.cafdh-hero__badge strong { font-weight: 850; }
.cafdh-section[id] { scroll-margin-top: 100px; }

@media (min-width: 1100px) {
  .cafdh-hero__grid { grid-template-columns: minmax(0, 1.12fr) minmax(400px, .88fr); gap: clamp(2rem, 3.5vw, 3.5rem); }
  .cafdh-hero .cafdh-actions { flex-wrap: nowrap; }
}

.cafdh-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.cafdh-card { height: 100%; padding: 0; overflow: hidden; border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; box-shadow: 0 8px 24px rgba(26,40,73,.04); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.cafdh-card__click { height: 100%; display: flex; flex-direction: column; color: inherit; text-decoration: none; cursor: pointer; }
.cafdh-card__body { flex: 1; padding: clamp(1.35rem, 3vw, 2rem); }
.cafdh-card h3 { margin: .65rem 0 .65rem; font-size: 1.25rem; }
.cafdh-card p { margin: 0 0 1.1rem; color: var(--caf-muted); }
.cafdh-card__cta { color: var(--caf-primary); font-weight: 800; text-decoration: underline; text-underline-offset: .14em; }
.entry-content--services-directory { padding-block: 0; }
.entry-content--services-directory > * { max-width: none; margin-inline: 0; }
.site-main--services-directory + .site-footer { margin-top: 0; }
.site-main--services-directory .alignfull { width: 100%; max-width: none; }
.site-main--services-directory .alignwide { width: min(100% - 2rem, var(--caf-wide)); max-width: var(--caf-wide); margin-inline: auto; }
.cafdh-service-directory-hero { padding-block: clamp(4rem, 8vw, 6.5rem); color: #fff; background: linear-gradient(135deg, #142344 0%, #1c3d66 62%, #246f9b 100%); }
.cafdh-service-directory-hero .section-label { color: #75cdf8; }
.cafdh-service-directory-hero h1 { max-width: 850px; margin: 0 0 1rem; color: #fff; font-size: clamp(2.7rem, 6vw, 5rem); letter-spacing: -.05em; }
.cafdh-service-directory-hero__lead { max-width: 760px; margin: 0; color: rgba(255,255,255,.88); font-size: clamp(1.08rem, 1.8vw, 1.25rem); }
.cafdh-directory-card { position: relative; cursor: pointer; }
.cafdh-directory-grid > .cafdh-directory-card { margin-block-start: 0 !important; }
.cafdh-directory-card .wp-block-image { margin: 0; }
.cafdh-directory-card .cafdh-card__body { display: flex; flex-direction: column; }
.cafdh-directory-card .cafdh-card__body h2 { margin: .65rem 0; font-size: 1.25rem; }
.cafdh-directory-card .cafdh-card__body > p:not(.cafdh-card__cta) { color: var(--caf-muted); }
.cafdh-directory-card .cafdh-card__cta { margin-top: auto; }
.cafdh-directory-card .cafdh-card__cta a { font-weight: 800; }
.cafdh-directory-card .cafdh-card__cta a::after { position: absolute; inset: 0; content: ""; }
.cafdh-directory-card:focus-within { outline: 3px solid var(--caf-primary); outline-offset: 3px; }
.cafdh-directory-card .cafdh-card__cta a:focus-visible { outline: 0; }
.cafdh-directory-more { margin-top: clamp(3rem, 6vw, 5rem); }
.cafdh-directory-more__head { max-width: 780px; margin-bottom: 1.5rem; }
.cafdh-directory-more__head h2 { margin: .25rem 0 .65rem; color: var(--caf-navy); font-size: clamp(1.8rem, 3vw, 2.75rem); }
.cafdh-directory-more__head > p:not(.section-label) { margin: 0; color: var(--caf-muted); }
.cafdh-directory-more__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.cafdh-directory-preview-card { overflow: hidden; border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: var(--caf-white); }
.cafdh-directory-preview-card__visual { min-height: 145px; display: grid; place-items: center; padding: 1rem; background: linear-gradient(145deg, var(--caf-navy), #24678f); color: #fff; font-size: clamp(1.25rem, 2.5vw, 2rem); font-weight: 900; letter-spacing: .055em; text-align: center; }
.cafdh-directory-preview-card__body { padding: 1.35rem; }
.cafdh-directory-preview-card__body > span { display: inline-flex; margin-bottom: .75rem; padding: .32rem .65rem; border-radius: 999px; background: #eaf6fd; color: var(--caf-primary); font-size: .72rem; font-weight: 850; }
.cafdh-directory-preview-card h3 { margin: 0 0 .55rem; color: var(--caf-navy); font-size: 1.15rem; }
.cafdh-directory-preview-card p { margin: 0; color: var(--caf-muted); }
.cafdh-directory-orientation { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: clamp(1.5rem, 4vw, 4rem); margin-top: clamp(2.5rem, 5vw, 4.5rem); padding: clamp(1.6rem, 4vw, 3rem); border-radius: 24px; background: #eaf6fd; }
.cafdh-directory-orientation h2 { margin: .25rem 0 .6rem; color: var(--caf-navy); font-size: clamp(1.75rem, 3vw, 2.6rem); }
.cafdh-directory-orientation p:not(.section-label) { max-width: 720px; margin: 0; color: var(--caf-muted); }
.cafdh-directory-orientation__button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: .82rem 1.25rem; border-radius: 999px; background: var(--caf-primary); color: #fff; font-weight: 850; text-decoration: none; white-space: nowrap; }
.cafdh-card__eyebrow { display: inline-flex; min-width: 2.25rem; min-height: 2.25rem; align-items: center; justify-content: center; padding: .35rem .65rem; border-radius: 999px; background: #e7f4fb; color: var(--caf-primary); font-size: .78rem; font-weight: 900; letter-spacing: .05em; }
.cafdh-service-icon { display: inline-flex; width: 46px; height: 46px; align-items: center; justify-content: center; border-radius: .8rem; background: #e7f4fb; color: var(--caf-primary); }
.cafdh-service-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cafdh-service-media { width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #e7f4fb; }
.cafdh-service-media img { width: 100%; height: 100%; object-fit: cover; }
.cafdh-service-hero { overflow: hidden; padding-block: clamp(3.5rem, 8vw, 6.5rem); background: linear-gradient(135deg, #f3f7fa 0%, #fff 68%, #eaf6fd 100%); }
.cafdh-service-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr); align-items: center; gap: clamp(2.25rem, 5vw, 5rem); }
.cafdh-service-hero h1 { margin: 0 0 1rem; font-size: clamp(2.6rem, 5vw, 4.6rem); line-height: 1.01; letter-spacing: -.05em; }
.cafdh-service-hero__lead { max-width: 650px; margin: 0; color: var(--caf-muted); font-size: clamp(1.08rem, 1.8vw, 1.25rem); }
.cafdh-service-hero__visual { aspect-ratio: 8 / 5; overflow: hidden; border-radius: 2rem; background: #dff1fa; box-shadow: var(--caf-shadow); }
.cafdh-service-hero__visual img { width: 100%; height: 100%; object-fit: cover; }
.cafdh-service-intro { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.cafdh-service-intro h2 { margin-top: 0; font-size: clamp(2rem, 4vw, 3.25rem); }
.cafdh-service-intro__copy > p:not(.section-label) { color: var(--caf-muted); font-size: 1.08rem; }
.cafdh-service-points { display: grid; gap: .8rem; padding: 0; margin: 0; list-style: none; }
.cafdh-service-points li { position: relative; padding: 1rem 1rem 1rem 3rem; border: 1px solid var(--caf-border); border-radius: 1rem; background: #fff; color: var(--caf-navy); font-weight: 750; }
.cafdh-service-points li::before { position: absolute; top: 1rem; left: 1rem; width: 1.35rem; height: 1.35rem; display: grid; place-items: center; border-radius: 50%; background: #e7f5fd; color: var(--caf-primary); content: "✓"; font-size: .8rem; font-weight: 900; }
.cafdh-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.cafdh-step { padding: clamp(1.5rem, 3vw, 2.2rem); border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; }
.cafdh-step__number { display: inline-grid; width: 2.65rem; height: 2.65rem; place-items: center; border-radius: 50%; background: var(--caf-primary); color: #fff; font-weight: 850; }
.cafdh-step h3 { margin: 1.15rem 0 .55rem; }
.cafdh-step p { margin: 0; color: var(--caf-muted); }
.cafdh-document-callout { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem; padding: clamp(2rem, 5vw, 3.5rem); border-radius: 1.75rem; background: #eaf6fd; }
.cafdh-document-callout h2 { margin: 0 0 .65rem; }
.cafdh-document-callout p { max-width: 720px; margin: 0; color: var(--caf-muted); }
.cafdh-document-callout .wp-block-button__link { white-space: nowrap; }
.entry-content--service { padding-block: 0; }
.entry-content--service > * { max-width: none; margin-inline: 0; }
.site-main--service + .site-footer { margin-top: 0; }
.site-main--service .alignwide { width: min(100% - 2rem, var(--caf-wide)); margin-inline: auto; }
.cafdh-service-cover { min-height: clamp(490px, 64vh, 650px); display: grid; align-items: center; padding-block: clamp(4.5rem, 9vw, 7.5rem); background-color: var(--caf-navy); background-position: center; background-size: cover; color: #fff; }
.cafdh-service-cover .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(90deg,rgba(19,36,72,.98) 0%,rgba(19,36,72,.94) 47%,rgba(19,36,72,.48) 76%,rgba(19,36,72,.30) 100%) !important; }
.cafdh-service-cover .wp-block-cover__inner-container { width: 100% !important; max-width: none !important; padding-inline: 0; }
.cafdh-service-cover__inner { width: min(100% - 2rem, var(--caf-wide)); max-width: none !important; display: grid; justify-items: start; margin-inline: auto !important; }
.cafdh-service-cover .section-label { color: var(--caf-light-blue); }
.cafdh-service-cover h1 { max-width: 720px; margin: 0 0 1rem; color: #fff; font-size: clamp(3rem, 6.4vw, 5.7rem); line-height: .98; letter-spacing: -.055em; }
.cafdh-service-cover__lead { max-width: 680px; margin: 0; color: rgba(255,255,255,.86); font-size: clamp(1.08rem, 1.9vw, 1.3rem); line-height: 1.6; }
.cafdh-breadcrumb { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: clamp(2rem, 5vw, 3.5rem); color: rgba(255,255,255,.72); font-size: .9rem; font-weight: 700; }
.cafdh-breadcrumb a { color: #fff; text-decoration: none; }
.cafdh-breadcrumb a:hover { text-decoration: underline; }
.cafdh-service-cover__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.cafdh-cover-button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .85rem 1.3rem; border: 2px solid transparent; border-radius: 999px; background: #fff; color: var(--caf-navy); font-weight: 850; text-decoration: none; transition: transform .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease; }
.cafdh-cover-button--call { border-color: var(--caf-light-blue); background: rgba(255,255,255,.05); color: #fff; }
.cafdh-cover-button--call:hover { border-color: #fff; background: #fff; color: var(--caf-navy); }
.cafdh-cover-button--whatsapp { background: var(--caf-green); color: #fff; }
.wp-block-button.cafdh-cover-button { min-height: 0; padding: 0; background: transparent; }
.wp-block-button.cafdh-cover-button .wp-block-button__link { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .85rem 1.3rem; border-radius: 999px; background: #fff; color: var(--caf-navy); font-weight: 850; text-decoration: none; box-shadow: 0 10px 24px rgba(9,25,51,.2); }
.wp-block-button.cafdh-cover-button--whatsapp .wp-block-button__link { background: var(--caf-green); color: #fff; }
.wp-block-button.cafdh-cover-button--whatsapp .wp-block-button__link:hover { background: #0b6e39; color: #fff; }
.cafdh-service-layout { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(290px, 320px); align-items: start; gap: clamp(2.5rem, 5vw, 4.5rem); }
.cafdh-service-article { min-width: 0; }
.cafdh-service-article > h2 { margin: clamp(2.75rem, 5vw, 4rem) 0 .85rem; font-size: clamp(1.8rem, 3.5vw, 2.75rem); letter-spacing: -.035em; }
.cafdh-service-article > .section-label + h2 { margin-top: 0; }
.cafdh-service-article > p { color: var(--caf-muted); font-size: 1.08rem; line-height: 1.75; }
.cafdh-service-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; margin-block: clamp(2rem, 5vw, 3.5rem); }
.cafdh-service-info-grid article { padding: 1.35rem; border: 1px solid var(--caf-border); border-radius: 1rem; background: var(--caf-surface); }
.cafdh-service-info-grid span { display: inline-grid; width: 2.2rem; height: 2.2rem; place-items: center; border-radius: 50%; background: var(--caf-primary); color: #fff; font-size: .78rem; font-weight: 850; }
.cafdh-service-info-grid h3 { margin: .9rem 0 .45rem; font-size: 1.08rem; }
.cafdh-service-info-grid p { margin: 0; color: var(--caf-muted); font-size: .94rem; line-height: 1.55; }
.cafdh-service-info-card { padding: 1.35rem; border: 1px solid var(--caf-border); border-radius: 1rem; background: var(--caf-surface); }
.cafdh-service-info-card .cafdh-step-number { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; margin: 0; border-radius: 50%; background: var(--caf-primary); color: #fff; font-size: .78rem; font-weight: 850; }
.cafdh-service-info-card h3 { margin: .9rem 0 .45rem; font-size: 1.08rem; }
.cafdh-service-info-card p:not(.cafdh-step-number) { margin: 0; color: var(--caf-muted); font-size: .94rem; line-height: 1.55; }
.cafdh-service-checklist { display: grid; gap: .7rem; padding: 0; margin: 1.5rem 0; list-style: none; }
.cafdh-service-checklist li { position: relative; padding: .9rem 1rem .9rem 2.8rem; border-bottom: 1px solid var(--caf-border); color: var(--caf-navy); font-weight: 700; }
.cafdh-service-checklist li::before { position: absolute; top: .95rem; left: .6rem; color: var(--caf-primary); content: "✓"; font-weight: 900; }
.cafdh-service-note { padding: 1.1rem 1.25rem; border-left: 4px solid var(--caf-primary); border-radius: 0 .8rem .8rem 0; background: #eaf6fd; font-size: .95rem !important; }
.cafdh-service-aside { position: sticky; top: 112px; }
.cafdh-service-aside__card { padding: clamp(1.5rem, 3vw, 2rem); border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: var(--caf-surface); box-shadow: var(--caf-shadow); }
.cafdh-service-aside h2 { margin: 0 0 .6rem; font-size: 1.6rem; }
.cafdh-service-aside p:not(.section-label) { margin: 0 0 1.25rem; color: var(--caf-muted); }
.cafdh-service-aside a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--caf-border); color: var(--caf-navy); font-weight: 750; text-decoration: none; }
.cafdh-service-aside a:hover { color: var(--caf-primary); }
.cafdh-service-aside .cafdh-service-aside__button { justify-content: center; margin-top: 1.1rem; padding: .9rem 1rem; border: 0; border-radius: 999px; background: var(--caf-primary); color: #fff; text-align: center; }
.cafdh-service-aside .cafdh-service-aside__button:hover { background: var(--caf-navy); color: #fff; }
.cafdh-service-aside .cafdh-service-aside__button--whatsapp { margin-top: .65rem; background: var(--caf-green); color: #fff; }
.cafdh-service-aside .cafdh-service-aside__button--whatsapp:hover { background: #0b6e39; color: #fff; }
.cafdh-service-aside .cafdh-aside-link { margin: 0; }
.cafdh-service-aside .wp-block-buttons { margin-top: 1.1rem; }
.cafdh-service-aside .cafdh-service-aside__button-wrap { width: 100%; }
.cafdh-service-aside .cafdh-service-aside__button-wrap .wp-block-button__link { width: 100%; justify-content: center; padding: .9rem 1rem; border: 0; border-radius: 999px; background: var(--caf-primary); color: #fff; text-align: center; }
.cafdh-service-aside .cafdh-service-aside__button-wrap .wp-block-button__link:hover { background: var(--caf-navy); color: #fff; }
.cafdh-section-head-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.cafdh-section-head-row .cafdh-section-heading { margin-bottom: 0; }
.cafdh-section-link { flex: 0 0 auto; font-weight: 850; text-decoration: none; }
.cafdh-services-more { display: none; }
.cafdh-card--notice { border-top: 4px solid var(--caf-red); }

.cafdh-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 3vw, 2rem); }
.cafdh-feature { position: relative; overflow: hidden; padding: 0; border-radius: var(--caf-radius); background: #fff; border: 1px solid var(--caf-border); cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.cafdh-feature h2, .cafdh-feature h3 { margin-top: 0; }
.cafdh-feature p { color: var(--caf-muted); }
.cafdh-feature__visual { aspect-ratio: 8 / 5; min-height: 0; display: block; overflow: hidden; background: #dff1fa; }
.cafdh-feature__visual img { width: 100%; height: 100%; display: block; object-fit: cover; }
.cafdh-feature--green .cafdh-feature__visual { background: #e3f3ea; }
.cafdh-feature__visual .cafdh-service-icon { width: 92px; height: 92px; border-radius: 50%; background: rgba(255,255,255,.82); }
.cafdh-feature__visual .cafdh-service-icon svg { width: 48px; height: 48px; }
.cafdh-feature__body { padding: clamp(1.5rem, 4vw, 2.5rem); }
.cafdh-feature__body a { font-weight: 850; text-decoration: none; }
.cafdh-feature__body a::after { content: ""; position: absolute; inset: 0; }
.cafdh-feature:focus-within { outline: 3px solid var(--caf-primary); outline-offset: 3px; }
.cafdh-feature__body a:focus-visible { outline: 0; }

.cafdh-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem; padding: clamp(2rem, 5vw, 4rem); border-radius: 1.75rem; background: var(--caf-primary); color: #fff; }
.cafdh-cta h2 { margin: 0 0 .65rem; color: #fff; font-size: clamp(1.8rem, 3.6vw, 3rem); }
.cafdh-cta p { margin: 0; color: rgba(255,255,255,.82); }
.cafdh-cta .wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .75rem; }
.cafdh-cta .wp-block-button { margin: 0; }
.cafdh-cta .wp-block-button__link { background: #fff; color: var(--caf-navy); white-space: nowrap; }
.cafdh-cta .wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: .8rem 1.15rem; line-height: 1.2; }
.cafdh-cta .cafdh-button--whatsapp .wp-block-button__link { border: 1px solid rgba(255,255,255,.55); background: var(--caf-green); color: #fff; }
.cafdh-cta .cafdh-button--secondary .wp-block-button__link { border: 1px solid rgba(255,255,255,.55); background: transparent; color: #fff; }

.cafdh-about { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); align-items: center; gap: clamp(2.5rem, 7vw, 6rem); }
.cafdh-about__visual { min-height: 390px; display: grid; place-items: center; }
.cafdh-about__visual img { width: min(88%, 390px); height: auto; filter: drop-shadow(0 18px 24px rgba(0,0,0,.2)); }
.cafdh-about__content > p { color: rgba(255,255,255,.75); font-size: 1.08rem; }
.cafdh-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.75rem 0; }
.cafdh-value { padding-top: 1rem; border-top: 2px solid var(--caf-light-blue); }
.cafdh-value strong { display: block; color: #fff; }
.cafdh-value span { color: rgba(255,255,255,.68); font-size: .92rem; }
.cafdh-button-light { display: inline-flex; padding: .9rem 1.3rem; border-radius: .75rem; background: #fff; color: var(--caf-navy) !important; font-weight: 850; text-decoration: none; }

.cafdh-location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.cafdh-location { position: relative; min-height: 330px; display: flex; flex-direction: column; padding: 0; overflow: hidden; border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; color: var(--caf-navy); }
.cafdh-location::before { display: none; }
.cafdh-location > * { position: relative; z-index: 1; }
.cafdh-location__head { padding: 1.5rem 1.75rem; background: var(--caf-surface); }
.cafdh-location__head .section-label { margin-bottom: .3rem; }
.cafdh-location h3 { margin: 0; color: var(--caf-navy); font-size: 1.5rem; }
.cafdh-location__body { display: grid; gap: .65rem; padding: 1.75rem; }
.cafdh-location__body p { margin: 0; color: var(--caf-muted); }
.cafdh-location__body a { color: var(--caf-navy); font-weight: 750; text-decoration: none; }
.cafdh-location__body .cafdh-location__cta { width: fit-content; margin-top: .65rem; padding: .75rem 1rem; border: 1px solid var(--caf-border); border-radius: .7rem; }
.cafdh-location__actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-block: .35rem; }
.cafdh-location__actions a { display: grid; min-width: 145px; padding: .7rem .9rem; border: 1px solid var(--caf-border); border-radius: 1rem; background: var(--caf-surface); line-height: 1.2; }
.cafdh-location__actions a span { margin-top: .2rem; color: var(--caf-muted); font-size: .8rem; font-weight: 650; }
.cafdh-location__actions .is-whatsapp { border-color: #bbdec9; background: #eaf7f0; color: var(--caf-green); }
.cafdh-location__actions .is-appointment { border-color: #a9d9f4; background: #e7f5fd; color: var(--caf-primary); }

.cafdh-reviews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.cafdh-review { margin: 0; padding: 1.6rem; border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; }
.cafdh-review p { margin-top: 0; }
.cafdh-review cite { color: var(--caf-muted); font-style: normal; font-weight: 800; }
.cafdh-review__author { display: block; margin-bottom: .3rem; color: var(--caf-navy); font-weight: 850; }
.cafdh-review__stars { display: block; margin-bottom: .75rem; color: #a95f00; letter-spacing: .13em; }

.cafdh-faq { display: grid; gap: .75rem; }
.cafdh-faq > * { width: 100%; max-width: none !important; margin-inline: 0 !important; }
.cafdh-faq details { padding: 1.15rem 1.25rem; border: 1px solid var(--caf-border); border-radius: .9rem; background: #fff; }
.cafdh-faq summary { cursor: pointer; color: var(--caf-navy); font-weight: 800; }
.cafdh-faq details p { margin-bottom: 0; color: var(--caf-muted); }

/* Pagina Sedi e contatti. */
.entry-content--contact,
.entry-content--appointment { padding-block: 0; }
.entry-content--contact > *,
.entry-content--appointment > * { max-width: none; margin-inline: 0; }
.site-main--contact + .site-footer,
.site-main--appointment + .site-footer { margin-top: 0; }
.site-main--contact .alignwide,
.site-main--appointment .alignwide { width: min(100% - 2rem, var(--caf-wide)); max-width: var(--caf-wide); margin-inline: auto; }
.cafdh-contact-page { background: var(--caf-white); }
.cafdh-appointment-page { background: var(--caf-white); }
.cafdh-contact-hero,
.cafdh-appointment-hero { padding-block: clamp(4.5rem, 9vw, 7.5rem); background: linear-gradient(125deg, #142344 0%, #1c3d66 62%, #246f9b 100%); color: #fff; }
.cafdh-contact-hero .section-label,
.cafdh-appointment-hero .section-label { color: #75cdf8; }
.cafdh-contact-hero h1,
.cafdh-appointment-hero h1 { max-width: 920px; margin: 0 0 1rem; color: #fff; font-size: clamp(3rem, 6vw, 5.4rem); line-height: .98; letter-spacing: -.055em; }
.cafdh-contact-hero p:not(.section-label),
.cafdh-appointment-hero p:not(.section-label) { max-width: 760px; margin: 0; color: rgba(255,255,255,.86); font-size: clamp(1.08rem, 1.8vw, 1.28rem); line-height: 1.65; }
.cafdh-contact-hero a,
.cafdh-appointment-hero a { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; margin-top: 1.65rem; padding: .82rem 1.25rem; border-radius: 999px; background: var(--caf-primary); color: #fff; font-weight: 850; text-decoration: none; box-shadow: 0 10px 24px rgba(9,25,51,.2); }
.cafdh-contact-locations,
.cafdh-contact-request,
.cafdh-contact-faq { padding-block: clamp(3.75rem, 8vw, 6.5rem); }
.cafdh-contact-locations { background: var(--caf-surface); }
.cafdh-contact-heading { max-width: 760px; margin-bottom: clamp(2rem, 4vw, 3rem); }
.cafdh-contact-heading h2 { margin: .2rem 0 .7rem; color: var(--caf-navy); font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -.04em; }
.cafdh-contact-heading > p:not(.section-label) { margin: 0; color: var(--caf-muted); font-size: 1.08rem; }
.cafdh-contact-location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.cafdh-contact-location { overflow: hidden; border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; box-shadow: 0 10px 28px rgba(26,40,73,.05); }
.cafdh-contact-location__top { padding: 1.5rem clamp(1.5rem, 3vw, 2rem); background: linear-gradient(135deg, var(--caf-navy), #254f75); color: #fff; }
.cafdh-contact-location__top span { color: #8fd5f7; font-size: .76rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.cafdh-contact-location__top h3 { margin: .35rem 0 0; color: #fff; font-size: clamp(1.55rem, 3vw, 2.2rem); }
.cafdh-contact-location__body { padding: clamp(1.5rem, 3vw, 2rem); }
.cafdh-contact-location dl { display: grid; gap: 1rem; margin: 0 0 1.5rem; }
.cafdh-contact-location dl div { padding-bottom: 1rem; border-bottom: 1px solid var(--caf-border); }
.cafdh-contact-location dt { margin-bottom: .25rem; color: var(--caf-navy); font-size: .78rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.cafdh-contact-location dd { margin: 0; color: var(--caf-muted); }
.cafdh-contact-location__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.cafdh-contact-location__actions a { min-width: 0; display: grid; gap: .25rem; padding: .85rem .9rem; border: 1px solid var(--caf-border); border-radius: 1rem; background: var(--caf-surface); color: var(--caf-navy); text-decoration: none; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.cafdh-contact-location__actions strong { font-size: .92rem; }
.cafdh-contact-location__actions span { overflow-wrap: anywhere; color: var(--caf-muted); font-size: .76rem; }
.cafdh-contact-location__actions .is-whatsapp { border-color: #b9ddc8; background: #eaf7f0; color: var(--caf-green); }
.cafdh-contact-location__actions .is-appointment { border-color: #add9f1; background: #eaf6fd; color: var(--caf-primary); }
.cafdh-contact-location__actions a:hover { transform: translateY(-2px); border-color: var(--caf-primary); box-shadow: 0 8px 18px rgba(26,40,73,.08); }
.cafdh-contact-location__map { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.4rem; color: var(--caf-primary); font-weight: 850; text-decoration: none; }
.cafdh-contact-location__map:hover { text-decoration: underline; }
.cafdh-contact-next { padding-block: clamp(3rem, 6vw, 5rem); background: #fff; }
.cafdh-contact-request { scroll-margin-top: 110px; background: #fff; }
.cafdh-contact-request__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); align-items: start; gap: clamp(2.5rem, 7vw, 6rem); }
.cafdh-contact-request__intro h2 { margin: .2rem 0 .85rem; color: var(--caf-navy); font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -.04em; }
.cafdh-contact-request__intro > p:not(.section-label) { color: var(--caf-muted); font-size: 1.08rem; line-height: 1.7; }
.cafdh-contact-request__intro ul { display: grid; gap: .7rem; padding: 0; margin: 1.5rem 0; list-style: none; }
.cafdh-contact-request__intro li { position: relative; padding-left: 1.7rem; color: var(--caf-navy); font-weight: 750; }
.cafdh-contact-request__intro li::before { position: absolute; left: 0; color: var(--caf-primary); content: "✓"; font-weight: 900; }
.cafdh-contact-request__whatsapp { margin-top: 2rem; padding: 1.25rem; border: 1px solid #b9ddc8; border-radius: 1rem; background: #eaf7f0; color: var(--caf-green); }
.cafdh-contact-request__whatsapp p { margin: .35rem 0 0; color: #456657; }
.cafdh-contact-request__whatsapp-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin-top: 1rem; }
.cafdh-contact-request__whatsapp-actions a { display: grid; gap: .15rem; min-width: 0; padding: .85rem 1rem; border: 1px solid var(--caf-green); border-radius: .85rem; background: var(--caf-green); color: #fff; text-decoration: none; transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease; }
.cafdh-contact-request__whatsapp-actions a:hover { transform: translateY(-2px); background: #0b6e39; box-shadow: 0 8px 18px rgba(1,98,50,.16); }
.cafdh-contact-request__whatsapp-actions a:focus-visible { outline: 3px solid var(--caf-primary); outline-offset: 3px; }
.cafdh-contact-request__whatsapp-actions strong { color: inherit; font-size: .9rem; }
.cafdh-contact-request__whatsapp-actions span { overflow-wrap: anywhere; color: rgba(255,255,255,.84); font-size: .78rem; }
.cafdh-contact-form { padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: var(--caf-surface); box-shadow: var(--caf-shadow); }
.cafdh-contact-form > h2 { margin: 0 0 .4rem; color: var(--caf-navy); font-size: clamp(1.7rem, 3vw, 2.3rem); }
.cafdh-contact-form > p { margin: 0 0 1.5rem; color: var(--caf-muted); }
.cafdh-contact-form__fallback { padding: 1.25rem; border: 1px dashed var(--caf-border); border-radius: 1rem; background: #fff; }
.cafdh-contact-form__fallback h3 { margin: 0 0 .45rem; }
.cafdh-contact-form__fallback p { color: var(--caf-muted); }
.cafdh-contact-form__admin-note { padding: .8rem; border-radius: .75rem; background: #fff5d9; color: #654c00 !important; font-size: .88rem; }
.cafdh-contact-form__fallback-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.cafdh-contact-form__fallback-actions a { display: inline-flex; align-items: center; justify-content: center; padding: .75rem 1rem; border-radius: 999px; background: var(--caf-primary); color: #fff; font-weight: 800; text-decoration: none; }
.cafdh-contact-form__plugin :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea),
.cafdh-contact-form :is(.wpforms-field input:not([type="checkbox"]):not([type="radio"]), .wpforms-field select, .wpforms-field textarea, .wpcf7-form-control:not(.wpcf7-submit):not([type="checkbox"]):not([type="radio"])) { width: 100%; min-height: 50px; padding: .75rem .9rem; border: 1px solid var(--caf-border); border-radius: .75rem; background: #fff; color: var(--caf-navy); }
.cafdh-contact-form textarea,
.cafdh-contact-form .wpforms-field textarea { min-height: 150px; resize: vertical; }
.cafdh-contact-form :is(label, .wpforms-field-label) { color: var(--caf-navy); font-weight: 750; }
.cafdh-contact-form :is(button[type="submit"], input[type="submit"], .wpforms-submit, .wpcf7-submit) { min-height: 50px; padding: .82rem 1.3rem; border: 0; border-radius: 999px; background: var(--caf-primary); color: #fff; font-weight: 850; cursor: pointer; }
.cafdh-contact-form :is(button[type="submit"], input[type="submit"], .wpforms-submit, .wpcf7-submit):hover { background: var(--caf-navy); }
.cafdh-native-form__status { margin-bottom: 1.25rem; padding: 1rem 1.1rem; border: 1px solid var(--caf-border); border-radius: .85rem; background: #fff; color: var(--caf-navy); font-weight: 750; }
.cafdh-native-form__status--success { border-color: #9fd0b2; background: #eaf7f0; color: var(--caf-green); }
.cafdh-native-form__status--validation,
.cafdh-native-form__status--rate,
.cafdh-native-form__status--mail { border-color: #ecc4c8; background: #fff1f2; color: #8e1722; }
.cafdh-appointment-direct { padding-block: clamp(3rem, 6vw, 5rem); background: var(--caf-surface); }
.cafdh-appointment-direct .alignwide { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; box-shadow: 0 10px 28px rgba(26,40,73,.05); }
.cafdh-appointment-direct h2 { margin: .2rem 0 .5rem; color: var(--caf-navy); font-size: clamp(1.8rem, 3vw, 2.6rem); letter-spacing: -.04em; }
.cafdh-appointment-direct p:not(.section-label) { margin: 0; color: var(--caf-muted); }
.cafdh-appointment-direct a { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: .8rem 1.2rem; border-radius: 999px; background: var(--caf-primary); color: #fff; font-weight: 850; text-decoration: none; }
.cafdh-native-form__trap { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cafdh-native-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.cafdh-native-form p { margin: 0; }
.cafdh-native-form__grid p { display: grid; align-content: start; gap: .4rem; }
.cafdh-native-form__grid label > span:not([aria-hidden="true"]) { color: var(--caf-muted); font-size: .82rem; font-weight: 600; }
.cafdh-native-form__full { grid-column: 1 / -1; }
.cafdh-native-form__privacy { margin-top: 1.15rem !important; }
.cafdh-native-form__privacy label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .65rem; font-size: .9rem; font-weight: 600; line-height: 1.55; }
.cafdh-native-form__privacy input { width: 1.15rem; height: 1.15rem; margin-top: .15rem; accent-color: var(--caf-primary); }
.cafdh-native-form__privacy a { font-weight: 800; }
.cafdh-native-form__submit { margin-top: 1.25rem !important; }
.cafdh-native-form__submit button { width: 100%; }
.cafdh-native-form__note { margin-top: .75rem !important; color: var(--caf-muted); font-size: .82rem; text-align: center; }
.cafdh-contact-faq { background: var(--caf-surface); }
.cafdh-contact-faq .cafdh-faq { max-width: 900px; }

/* Pagina Chi siamo. */
.entry-content--about { padding-block: 0; }
.entry-content--about > * { max-width: none; margin-inline: 0; }
.site-main--about + .site-footer { margin-top: 0; }
.site-main--about .alignwide { width: min(100% - 2rem, var(--caf-wide)); max-width: var(--caf-wide); margin-inline: auto; }
.cafdh-about-page { background: var(--caf-white); }
.cafdh-about-hero { overflow: hidden; padding-block: clamp(4.5rem, 9vw, 7.5rem); background: linear-gradient(125deg, #142344 0%, #1c3d66 62%, #246f9b 100%); color: #fff; }
.cafdh-about-hero__columns { gap: clamp(2.5rem, 7vw, 6rem); margin-block: 0; }
.cafdh-about-hero .section-label { color: #75cdf8; }
.cafdh-about-hero h1 { max-width: 760px; margin: 0 0 1rem; color: #fff; font-size: clamp(3rem, 6vw, 5.4rem); line-height: .98; letter-spacing: -.055em; }
.cafdh-about-hero__lead { max-width: 700px; margin: 0; color: rgba(255,255,255,.86); font-size: clamp(1.08rem, 1.8vw, 1.28rem); line-height: 1.65; }
.cafdh-about-hero__actions { gap: .75rem; margin-top: 1.75rem; }
.cafdh-about-hero__actions .wp-block-button__link { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .82rem 1.25rem; border: 2px solid transparent; border-radius: 999px; background: var(--caf-primary); color: #fff; font-weight: 850; }
.cafdh-about-hero__actions .cafdh-button--outline .wp-block-button__link { border-color: rgba(255,255,255,.7); background: transparent; color: #fff; }
.cafdh-about-hero__brand { display: grid; justify-items: center; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid rgba(255,255,255,.2); border-radius: 2rem; background: rgba(255,255,255,.96); box-shadow: 0 20px 45px rgba(9,25,51,.22); }
.cafdh-about-hero__brand .wp-block-image { margin: 0; }
.cafdh-about-hero__brand img { width: min(100%, 310px); margin-inline: auto; filter: drop-shadow(0 14px 20px rgba(26,40,73,.15)); }
.cafdh-about-hero__brand p { margin: 1rem 0 0; color: var(--caf-navy); font-size: 1.05rem; font-weight: 850; text-align: center; }
.cafdh-about-intro,
.cafdh-about-values-section,
.cafdh-about-work-section,
.cafdh-about-locations { padding-block: clamp(3.75rem, 8vw, 6.5rem); }
.cafdh-about-intro__columns { gap: clamp(2rem, 6vw, 5rem); margin-block: 0; }
.cafdh-about-intro h2,
.cafdh-about-heading h2,
.cafdh-about-locations h2 { margin: .2rem 0 .75rem; color: var(--caf-navy); font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.08; letter-spacing: -.04em; }
.cafdh-about-intro__copy p { margin-top: 0; color: var(--caf-muted); font-size: 1.08rem; line-height: 1.75; }
.cafdh-about-intro__copy p + p { margin-top: 1rem; }
.cafdh-about-values-section { background: var(--caf-surface); }
.cafdh-about-heading { margin-bottom: clamp(2rem, 4vw, 3rem) !important; }
.cafdh-about-heading > * { max-width: 790px; }
.cafdh-about-heading > p:not(.section-label) { margin: 0; color: var(--caf-muted); font-size: 1.08rem; line-height: 1.7; }
.cafdh-about-values { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.cafdh-about-value { height: 100%; padding: clamp(1.35rem, 3vw, 2rem); border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; box-shadow: 0 8px 24px rgba(26,40,73,.04); }
.cafdh-about-value__number { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; margin: 0 0 1.1rem; border-radius: 50%; background: var(--caf-primary); color: #fff; font-size: .75rem; font-weight: 900; }
.cafdh-about-value h3 { margin: 0 0 .55rem; color: var(--caf-navy); font-size: 1.25rem; }
.cafdh-about-value > p:not(.cafdh-about-value__number) { margin: 0; color: var(--caf-muted); line-height: 1.65; }
.cafdh-about-work-section { background: #fff; }
.cafdh-about-work-grid { gap: 1rem; margin-block: 0; }
.cafdh-about-work-card { height: 100%; padding: clamp(1.5rem, 3vw, 2rem); border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: var(--caf-surface); }
.cafdh-about-work-card__label { display: inline-flex; margin: 0 0 1rem; padding: .35rem .7rem; border-radius: 999px; background: #e1f2fb; color: var(--caf-primary); font-size: .75rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.cafdh-about-work-card h3 { margin: 0 0 .55rem; color: var(--caf-navy); font-size: 1.3rem; }
.cafdh-about-work-card > p:not(.cafdh-about-work-card__label) { margin: 0; color: var(--caf-muted); line-height: 1.65; }
.cafdh-about-work__actions { margin-top: 1.5rem; }
.cafdh-about-work__actions .wp-block-button__link,
.cafdh-about-locations .wp-block-button__link { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .82rem 1.25rem; border-radius: 999px; background: var(--caf-primary); color: #fff; font-weight: 850; }
.cafdh-about-locations { background: var(--caf-navy); color: rgba(255,255,255,.82); }
.cafdh-about-locations__columns { gap: clamp(2rem, 7vw, 6rem); margin-block: 0; }
.cafdh-about-locations .section-label { color: #75cdf8; }
.cafdh-about-locations h2 { color: #fff; }
.cafdh-about-locations .wp-block-column > p:not(.section-label) { max-width: 650px; color: rgba(255,255,255,.76); font-size: 1.08rem; line-height: 1.7; }
.cafdh-about-locations__list { display: grid; gap: .8rem; }
.cafdh-about-location { padding: 1.2rem 1.35rem; border: 1px solid rgba(255,255,255,.18); border-radius: 1rem; background: rgba(255,255,255,.07); }
.cafdh-about-location h3 { margin: 0 0 .35rem; color: #fff; font-size: 1.2rem; }
.cafdh-about-location p { margin: 0; color: rgba(255,255,255,.7); }
.cafdh-about-final { padding-block: clamp(3rem, 6vw, 5rem); background: #fff; }

/* Pagina Prepara i documenti */
.entry-content--documents,
.entry-content--membership { padding-block: 0; }
.entry-content--documents > *,
.entry-content--membership > * { max-width: none; margin-inline: 0; }
.site-main--documents + .site-footer,
.site-main--membership + .site-footer { margin-top: 0; }
.site-main--documents .alignwide,
.site-main--membership .alignwide { width: min(100% - 2rem, var(--caf-wide)); max-width: var(--caf-wide); margin-inline: auto; }
.cafdh-documents-page { background: #fff; }
.cafdh-documents-hero { overflow: hidden; padding-block: clamp(4.5rem, 9vw, 7.5rem); background: linear-gradient(125deg, #142344 0%, #1c3d66 62%, #246f9b 100%); color: #fff; }
.cafdh-documents-hero__columns { gap: clamp(2.5rem, 7vw, 6rem); margin-block: 0; }
.cafdh-documents-hero .section-label { color: #75cdf8; }
.cafdh-documents-hero h1 { max-width: 820px; margin: 0 0 1rem; color: #fff; font-size: clamp(3rem, 6vw, 5.4rem); line-height: .98; letter-spacing: -.055em; }
.cafdh-documents-hero__lead { max-width: 720px; margin: 0; color: rgba(255,255,255,.86); font-size: clamp(1.08rem, 1.8vw, 1.28rem); line-height: 1.65; }
.cafdh-documents-hero__actions { gap: .75rem; margin-top: 1.75rem; }
.cafdh-documents-hero__actions .wp-block-button__link { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .82rem 1.25rem; border: 2px solid transparent; border-radius: 999px; background: var(--caf-primary); color: #fff; font-weight: 850; }
.cafdh-documents-hero__actions .cafdh-button--outline .wp-block-button__link { border-color: rgba(255,255,255,.7); background: transparent; color: #fff; }
.cafdh-documents-hero__panel { padding: clamp(1.5rem, 4vw, 2.3rem); border: 1px solid rgba(255,255,255,.22); border-radius: 1.5rem; background: rgba(255,255,255,.96); box-shadow: 0 20px 45px rgba(9,25,51,.22); }
.cafdh-documents-hero__panel .section-label { color: var(--caf-primary); }
.cafdh-documents-hero__panel ol { margin: 1.1rem 0 0; padding: 0; list-style: none; counter-reset: documents-steps; }
.cafdh-documents-hero__panel li { position: relative; min-height: 2.6rem; display: flex; align-items: center; margin: 0; padding: .8rem 0 .8rem 3.4rem; border-top: 1px solid var(--caf-border); color: var(--caf-navy); font-weight: 850; counter-increment: documents-steps; }
.cafdh-documents-hero__panel li::before { position: absolute; left: 0; width: 2.25rem; height: 2.25rem; display: grid; place-items: center; border-radius: 50%; background: var(--caf-primary); color: #fff; content: counter(documents-steps, decimal-leading-zero); font-size: .7rem; font-weight: 900; }
.cafdh-documents-intro,
.cafdh-documents-checks,
.cafdh-documents-services { padding-block: clamp(3.75rem, 8vw, 6.5rem); }
.cafdh-documents-intro__columns { gap: clamp(2rem, 6vw, 5rem); margin-block: 0; }
.cafdh-documents-intro h2,
.cafdh-documents-heading h2,
.cafdh-documents-missing h2 { margin: .2rem 0 .75rem; color: var(--caf-navy); font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.08; letter-spacing: -.04em; }
.cafdh-documents-intro__copy p { margin-top: 0; color: var(--caf-muted); font-size: 1.08rem; line-height: 1.75; }
.cafdh-documents-intro__copy p + p { margin-top: 1rem; }
.cafdh-documents-checks { background: var(--caf-surface); }
.cafdh-documents-heading { margin-bottom: clamp(2rem, 4vw, 3rem) !important; }
.cafdh-documents-heading > * { max-width: 820px; }
.cafdh-documents-heading > p:not(.section-label) { margin: 0; color: var(--caf-muted); font-size: 1.08rem; line-height: 1.7; }
.cafdh-documents-check-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.cafdh-documents-check { height: 100%; padding: clamp(1.35rem, 3vw, 2rem); border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; box-shadow: 0 8px 24px rgba(26,40,73,.04); }
.cafdh-documents-check__number { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; margin: 0 0 1.1rem; border-radius: 50%; background: var(--caf-primary); color: #fff; font-size: .75rem; font-weight: 900; }
.cafdh-documents-check h3 { margin: 0 0 .55rem; color: var(--caf-navy); font-size: 1.22rem; }
.cafdh-documents-check > p:not(.cafdh-documents-check__number) { margin: 0; color: var(--caf-muted); line-height: 1.65; }
.cafdh-documents-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.cafdh-documents-service-grid a { min-height: 135px; display: flex; flex-direction: column; justify-content: space-between; padding: 1.35rem; border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; color: var(--caf-navy); text-decoration: none; box-shadow: 0 8px 24px rgba(26,40,73,.04); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.cafdh-documents-service-grid a:hover,
.cafdh-documents-service-grid a:focus-visible { transform: translateY(-3px); border-color: var(--caf-primary); box-shadow: 0 14px 30px rgba(26,40,73,.09); }
.cafdh-documents-service-grid strong { font-size: 1.18rem; line-height: 1.25; }
.cafdh-documents-service-grid span { color: var(--caf-primary); font-size: .9rem; font-weight: 850; }
.cafdh-documents-missing { padding-block: clamp(3.75rem, 7vw, 5.5rem); background: var(--caf-navy); color: rgba(255,255,255,.84); }
.cafdh-documents-missing__columns { gap: clamp(2rem, 5vw, 4rem); margin-block: 0; padding: clamp(2rem, 5vw, 3.75rem); border-radius: 1.6rem; background: var(--caf-primary); }
.cafdh-documents-missing .section-label { color: #d5f1ff; }
.cafdh-documents-missing h2 { color: #fff; }
.cafdh-documents-missing .wp-block-column > p:not(.section-label) { max-width: 720px; margin-bottom: 0; color: rgba(255,255,255,.88); font-size: 1.08rem; line-height: 1.7; }
.cafdh-documents-missing__actions { justify-content: flex-end; gap: .75rem; }
.cafdh-documents-missing__actions .wp-block-button__link { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .82rem 1.25rem; border: 1px solid #fff; border-radius: 999px; background: #fff; color: var(--caf-navy); font-weight: 850; }
.cafdh-documents-missing__actions .wp-block-button__link:hover { border-color: var(--caf-navy); background: var(--caf-navy); color: #fff; }
.cafdh-documents-missing__actions .cafdh-button--secondary .wp-block-button__link { border-color: rgba(255,255,255,.72); background: transparent; color: #fff; }
.cafdh-documents-missing__actions .cafdh-button--secondary .wp-block-button__link:hover { border-color: #fff; background: #fff; color: var(--caf-navy); }
.cafdh-documents-missing__actions .cafdh-button--whatsapp .wp-block-button__link { border-color: var(--caf-green); background: var(--caf-green); color: #fff; }
.cafdh-documents-missing__actions .cafdh-button--whatsapp .wp-block-button__link:hover { border-color: #0b6e39; background: #0b6e39; color: #fff; }

/* Pagina Tessera e vantaggi */
.cafdh-membership-page { background: #fff; }
.cafdh-membership-hero { overflow: hidden; padding-block: clamp(4.5rem, 9vw, 7.5rem); background: linear-gradient(125deg, #142344 0%, #1c3d66 62%, #246f9b 100%); color: #fff; }
.cafdh-membership-hero__columns { gap: clamp(2.5rem, 7vw, 6rem); margin-block: 0; }
.cafdh-membership-hero .section-label { color: #75cdf8; }
.cafdh-membership-hero h1 { max-width: 800px; margin: 0 0 1rem; color: #fff; font-size: clamp(3rem, 6vw, 5.4rem); line-height: .98; letter-spacing: -.055em; }
.cafdh-membership-hero__lead { max-width: 700px; margin: 0; color: rgba(255,255,255,.86); font-size: clamp(1.08rem, 1.8vw, 1.28rem); line-height: 1.65; }
.cafdh-membership-hero__actions { margin-top: 1.75rem; }
.cafdh-membership-hero__actions .wp-block-button__link { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .82rem 1.25rem; border: 1px solid #fff; border-radius: 999px; background: #fff; color: var(--caf-navy); font-weight: 850; }
.cafdh-membership-hero__actions .wp-block-button__link:hover { border-color: var(--caf-primary); background: var(--caf-primary); color: #fff; }
.cafdh-membership-hero__visual { overflow: hidden; position: relative; padding: .65rem; border: 1px solid rgba(255,255,255,.2); border-radius: 1.75rem; background: rgba(255,255,255,.96); box-shadow: 0 20px 45px rgba(9,25,51,.24); }
.cafdh-membership-hero__visual .wp-block-image { overflow: hidden; margin: 0; border-radius: 1.25rem; }
.cafdh-membership-hero__visual img { width: 100%; aspect-ratio: 8 / 5; object-fit: cover; }
.cafdh-membership-hero__caption { position: absolute; right: 1.25rem; bottom: 1.25rem; margin: 0; padding: .4rem .7rem; border-radius: 999px; background: rgba(20,35,68,.88); color: #fff; font-size: .72rem; font-weight: 800; }
.cafdh-membership-intro,
.cafdh-membership-details,
.cafdh-membership-steps,
.cafdh-membership-faq { padding-block: clamp(3.75rem, 8vw, 6.5rem); }
.cafdh-membership-intro__columns { gap: clamp(2rem, 6vw, 5rem); margin-block: 0; }
.cafdh-membership-intro h2,
.cafdh-membership-heading h2,
.cafdh-membership-note h2 { margin: .2rem 0 .75rem; color: var(--caf-navy); font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.08; letter-spacing: -.04em; }
.cafdh-membership-intro__copy p { margin-top: 0; color: var(--caf-muted); font-size: 1.08rem; line-height: 1.75; }
.cafdh-membership-intro__copy p + p { margin-top: 1rem; }
.cafdh-membership-details { background: var(--caf-surface); }
.cafdh-membership-heading { margin-bottom: clamp(2rem, 4vw, 3rem) !important; }
.cafdh-membership-heading > * { max-width: 820px; }
.cafdh-membership-heading > p:not(.section-label) { margin: 0; color: var(--caf-muted); font-size: 1.08rem; line-height: 1.7; }
.cafdh-membership-detail-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.cafdh-membership-detail { height: 100%; padding: clamp(1.35rem, 3vw, 2rem); border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; box-shadow: 0 8px 24px rgba(26,40,73,.04); }
.cafdh-membership-detail__number { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; margin: 0 0 1.1rem; border-radius: 50%; background: #0f75b4; color: #fff; font-size: .75rem; font-weight: 900; }
.cafdh-membership-detail h3 { margin: 0 0 .55rem; color: var(--caf-navy); font-size: 1.22rem; }
.cafdh-membership-detail > p:not(.cafdh-membership-detail__number) { margin: 0; color: var(--caf-muted); line-height: 1.65; }
.cafdh-membership-step-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-block: 0; padding: 0; list-style: none; }
.cafdh-membership-step-list li { display: flex; gap: 1rem; padding: clamp(1.35rem, 3vw, 2rem); border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; }
.cafdh-membership-step-list > li > span { flex: 0 0 2.5rem; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; background: #eaf6fd; color: #0f75b4; font-size: .75rem; font-weight: 900; }
.cafdh-membership-step-list strong { display: block; margin-bottom: .45rem; color: var(--caf-navy); font-size: 1.16rem; }
.cafdh-membership-step-list p { margin: 0; color: var(--caf-muted); line-height: 1.65; }
.cafdh-membership-note { padding-block: clamp(3.75rem, 7vw, 5.5rem); background: var(--caf-navy); color: rgba(255,255,255,.8); }
.cafdh-membership-note__columns { gap: clamp(2rem, 6vw, 5rem); margin-block: 0; }
.cafdh-membership-note .section-label { color: #75cdf8; }
.cafdh-membership-note h2 { color: #fff; }
.cafdh-membership-note .wp-block-column > p:not(.section-label) { max-width: 740px; margin-bottom: 0; color: rgba(255,255,255,.78); font-size: 1.08rem; line-height: 1.7; }
.cafdh-membership-note__actions { justify-content: flex-end; }
.cafdh-membership-note__actions .wp-block-button__link { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: .82rem 1.25rem; border: 1px solid #fff; border-radius: 999px; background: #fff; color: var(--caf-navy); font-weight: 850; }
.cafdh-membership-note__actions .wp-block-button__link:hover { border-color: var(--caf-primary); background: var(--caf-primary); color: #fff; }
.cafdh-membership-faq { background: var(--caf-surface); }

.cafdh-updates__toolbar { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.cafdh-updates__toolbar button { min-height: 44px; padding: .65rem 1.1rem; border: 1px solid var(--caf-border); border-radius: 999px; background: #fff; color: var(--caf-navy); font-weight: 800; cursor: pointer; }
.cafdh-updates__toolbar button[aria-selected="true"] { border-color: var(--caf-primary); background: var(--caf-primary); color: #fff; }
.cafdh-carousel { position: relative; }
.cafdh-updates__grid { display: flex; gap: 1rem; overflow-x: auto; padding: .3rem .15rem 1rem; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--caf-border) transparent; }
.cafdh-updates__grid .cafdh-update-card { flex: 0 0 calc((100% - 2rem) / 3); scroll-snap-align: start; }
.cafdh-updates__grid--count-1 .cafdh-update-card { flex-basis: 100%; }
.cafdh-updates__grid--count-2 .cafdh-update-card { flex-basis: calc((100% - 1rem) / 2); }
.cafdh-carousel__arrow { position: absolute; z-index: 2; top: 50%; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--caf-border); border-radius: 50%; background: #fff; color: var(--caf-navy); box-shadow: var(--caf-shadow); cursor: pointer; transform: translateY(-50%); }
.cafdh-carousel__arrow--prev { left: -24px; }
.cafdh-carousel__arrow--next { right: -24px; }
.cafdh-update-card { overflow: hidden; border: 1px solid var(--caf-border); border-radius: var(--caf-radius); background: #fff; transition: transform .2s ease, box-shadow .2s ease; }
.cafdh-update-card__media { position: relative; min-height: 138px; display: grid; place-items: center; overflow: hidden; background: #dff1fa; }
.cafdh-update-card__media img { width: 100%; height: 170px; object-fit: cover; }
.cafdh-update-card__date { display: grid; justify-items: center; color: var(--caf-navy); text-transform: uppercase; }
.cafdh-update-card__date strong { font-size: 2.2rem; line-height: 1; }
.cafdh-update-card__date span { margin-top: .35rem; font-size: .72rem; font-weight: 850; letter-spacing: .1em; }
.cafdh-update-card__type { position: absolute; top: 1rem; right: 1rem; padding: .35rem .65rem; border-radius: 999px; background: #fff; color: var(--caf-primary); font-size: .72rem; font-weight: 850; }
.cafdh-update-card__demo-label { position: absolute; top: 1rem; left: 1rem; padding: .35rem .65rem; border-radius: 999px; background: var(--caf-navy); color: #fff; font-size: .72rem; font-weight: 850; }
.cafdh-update-card--scadenze .cafdh-update-card__type { color: var(--caf-red); background: #fff0f1; }
.cafdh-update-card__body { padding: 1.5rem; }
.cafdh-update-card__body h3 { margin: 0 0 .7rem; font-size: 1.2rem; }
.cafdh-update-card__body h3 a { color: var(--caf-navy); text-decoration: none; }
.cafdh-update-card__body p { margin: 0 0 1rem; color: var(--caf-muted); }
.cafdh-update-card__link { font-weight: 850; text-decoration: none; }
.cafdh-update-card--demo { border-style: dashed; }
.cafdh-updates__demo-note { margin: 0 0 1rem; color: var(--caf-muted); font-size: .9rem; }
.cafdh-updates__empty { padding: 1.5rem; border: 1px dashed var(--caf-border); border-radius: var(--caf-radius); background: #fff; color: var(--caf-muted); }

.wp-block-button__link,
.button-link,
.cafdh-button-light,
.cafdh-location__cta { border-radius: 999px !important; transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease; }

.cafdh-whatsapp-dialog { width: min(92vw, 560px); padding: clamp(1.5rem, 5vw, 2.25rem); border: 0; border-radius: 1.5rem; color: var(--caf-navy); box-shadow: 0 24px 80px rgba(26,40,73,.3); }
.cafdh-whatsapp-dialog::backdrop { background: rgba(15,25,48,.7); backdrop-filter: blur(3px); }
.cafdh-whatsapp-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; }
.cafdh-whatsapp-dialog__head h2 { margin: 0; font-size: clamp(1.7rem, 5vw, 2.35rem); }
.cafdh-whatsapp-dialog__close { width: 42px; height: 42px; border: 1px solid var(--caf-border); border-radius: 50%; background: #fff; color: var(--caf-navy); font-size: 1.8rem; line-height: 1; cursor: pointer; }
.cafdh-whatsapp-dialog__choices { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; margin-top: 1.5rem; }
.cafdh-whatsapp-dialog__choices a { display: grid; gap: .3rem; padding: 1rem 1.1rem; border: 1px solid #bbdec9; border-radius: 1rem; background: #eaf7f0; color: var(--caf-green); text-decoration: none; }
.cafdh-whatsapp-dialog__choices span { color: #456657; font-size: .9rem; }
.cafdh-call-dialog .cafdh-whatsapp-dialog__choices a { border-color: #acd8f1; background: #eaf6fd; color: var(--caf-primary); }
.cafdh-call-dialog .cafdh-whatsapp-dialog__choices span { color: var(--caf-muted); }

.site-footer { margin-top: clamp(3rem, 7vw, 6rem); background: var(--caf-navy); color: rgba(255,255,255,.78); }
.site-main--front + .site-footer { margin-top: 0; }
.site-footer a { color: inherit; }
.site-footer__grid { display: grid; grid-template-columns: minmax(220px, 1.35fr) repeat(3, minmax(150px, 1fr)); gap: clamp(1.75rem, 4vw, 3rem); padding-block: 3.75rem; }
.site-footer__brand a { display: inline-flex; align-items: center; gap: 1rem; color: #fff; font-weight: 800; text-decoration: none; }
.site-footer__brand img { width: 66px; height: 66px; border-radius: 50%; }
.site-footer__brand p { max-width: 300px; margin: 1rem 0 0; }
.site-footer__column h2 { margin: 0 0 1rem; color: #fff; font-size: 1rem; }
.site-footer__column p { margin: 0 0 .85rem; }
.site-footer__contact { display: grid; gap: .38rem; }
.site-footer__contact a { text-decoration: none; }
.site-footer__link { font-weight: 750; }
.site-footer ul { padding: 0; margin: 0; list-style: none; }
.site-footer li + li { margin-top: .45rem; }
.site-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 1.25rem; border-top: 1px solid rgba(255,255,255,.13); font-size: .82rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom ul { display: flex; flex-wrap: wrap; gap: 1rem; }
.site-footer__bottom li,
.site-footer__bottom li + li { margin-top: 0; }
.site-footer__bottom-links { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.site-footer__bottom-links a { display: inline-flex; align-items: center; line-height: 1.35; }
.site-footer__facebook { text-decoration: none; }
.site-footer__column ul a,
.site-footer__bottom-links a { text-decoration: none; }
.site-footer__column ul a:hover,
.site-footer__column ul a:focus-visible,
.site-footer__bottom-links a:hover,
.site-footer__bottom-links a:focus-visible { text-decoration: underline; }

@media (max-width: 960px) {
	.site-header__inner { min-height: 82px; padding-block: 7px; }
	.site-branding { gap: .65rem; }
	.custom-logo { max-height: 68px; }
	.site-branding__fallback img { width: 66px; height: 66px; }
	.site-branding__name span { font-size: .78rem; }
	.site-branding__name strong { font-size: 1rem; }
	.site-branding__name small { margin-top: .18rem; font-size: .58rem; letter-spacing: .08em; }
  .menu-toggle { display: block; }
  .primary-navigation { position: absolute; top: 100%; left: 0; right: 0; visibility: hidden; opacity: 0; transform: translateY(-8px); background: var(--caf-white); border-top: 1px solid var(--caf-border); box-shadow: var(--caf-shadow); transition: opacity .18s ease, transform .18s ease, visibility .18s; }
  .primary-navigation.is-open { visibility: visible; opacity: 1; transform: none; }
  .primary-menu { display: block; width: min(100% - 2rem, var(--caf-wide)); margin-inline: auto; padding-block: .75rem 1rem; }
  .primary-menu a { padding: .85rem .25rem; border-bottom: 1px solid var(--caf-border); }
  .primary-menu > li:last-child > a { min-height: 48px; display: flex; align-items: center; justify-content: center; margin-top: .75rem; padding: .9rem 1rem; border: 0; border-radius: 999px; background: var(--caf-primary); color: #fff; text-align: center; }
	.mobile-whatsapp-action { width: min(100% - 2rem, var(--caf-wide)); min-height: 48px; display: block; margin: 0 auto 1rem; border: 2px solid var(--caf-green); border-radius: 999px; background: var(--caf-green); color: #fff; font-weight: 850; cursor: pointer; }
  .entries-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cafdh-hero__grid { grid-template-columns: 1fr; }
  .cafdh-service-hero__grid,
  .cafdh-service-intro { grid-template-columns: 1fr; }
  .cafdh-service-layout { grid-template-columns: minmax(0, 1fr) 250px; gap: 1.5rem; }
  .cafdh-service-info-grid { grid-template-columns: 1fr; }
  .cafdh-hero__visual { min-height: 0; aspect-ratio: 5 / 4; }
	.cafdh-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cafdh-directory-more__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cafdh-contact-request__grid { grid-template-columns: 1fr; }
	.cafdh-contact-request__whatsapp-actions { grid-template-columns: 1fr; }
	.cafdh-contact-location__actions { grid-template-columns: 1fr; }
  .cafdh-about-values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cafdh-documents-check-grid,
	.cafdh-documents-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cafdh-documents-missing__actions { justify-content: flex-start; }
	.cafdh-membership-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cafdh-membership-step-list { grid-template-columns: 1fr; }
	.cafdh-membership-note__actions { justify-content: flex-start; }
  .cafdh-about { grid-template-columns: 1fr; }
  .cafdh-about__visual { min-height: 320px; }
  .cafdh-reviews { grid-template-columns: 1fr; }
  .cafdh-updates__grid .cafdh-update-card { flex-basis: calc((100% - 1rem) / 2); }
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
  .cafdh-service-layout { grid-template-columns: 1fr; }
  .cafdh-service-aside { position: static; }
  .cafdh-directory-orientation { grid-template-columns: 1fr; align-items: start; }
  .cafdh-directory-orientation__button { width: 100%; }
	.cafdh-documents-check-grid,
	.cafdh-documents-service-grid { grid-template-columns: 1fr !important; }
	.cafdh-membership-detail-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 640px) {
  .site-container { width: min(100% - 1.5rem, var(--caf-wide)); }
  .entries-grid { grid-template-columns: 1fr; }
  .cafdh-hero { padding-block: 3.25rem; background: linear-gradient(155deg, #13213d 0%, #1a2849 58%, #24678f 100%); }
  .cafdh-hero__visual { min-height: 0; aspect-ratio: 5 / 4; }
  .cafdh-card-grid { grid-template-columns: 1fr; }
  .cafdh-directory-more__grid { grid-template-columns: 1fr; }
	.cafdh-contact-location-grid { grid-template-columns: 1fr; }
	.cafdh-contact-hero,
	.cafdh-appointment-hero { padding-block: 3.75rem; }
	.cafdh-contact-hero h1,
	.cafdh-appointment-hero h1 { font-size: clamp(2.6rem, 14vw, 4rem); }
	.cafdh-appointment-direct .alignwide { align-items: stretch; flex-direction: column; }
	.cafdh-appointment-direct a { width: 100%; }
	.cafdh-contact-form { padding: 1.25rem; }
	.cafdh-contact-form__fallback-actions { align-items: stretch; flex-direction: column; }
	.cafdh-contact-form__fallback-actions a { width: 100%; }
	.cafdh-native-form__grid { grid-template-columns: 1fr; }
	.cafdh-native-form__full { grid-column: auto; }
  .cafdh-about-hero { padding-block: 3.75rem; }
  .cafdh-about-hero h1 { font-size: clamp(2.6rem, 14vw, 4rem); }
	.cafdh-documents-hero { padding-block: 3.75rem; }
	.cafdh-documents-hero h1 { font-size: clamp(2.6rem, 14vw, 4rem); }
	.cafdh-documents-hero__actions,
	.cafdh-documents-missing__actions { width: 100%; align-items: stretch; flex-direction: column; }
	.cafdh-documents-hero__actions .wp-block-button,
	.cafdh-documents-hero__actions .wp-block-button__link,
	.cafdh-documents-missing__actions .wp-block-button,
	.cafdh-documents-missing__actions .wp-block-button__link { width: 100%; }
	.cafdh-documents-check-grid,
	.cafdh-documents-service-grid { grid-template-columns: 1fr !important; }
	.cafdh-documents-service-grid a { min-height: 112px; }
	.cafdh-membership-hero { padding-block: 3.75rem; }
	.cafdh-membership-hero h1 { font-size: clamp(2.6rem, 14vw, 4rem); }
	.cafdh-membership-hero__actions,
	.cafdh-membership-note__actions { width: 100%; align-items: stretch; flex-direction: column; }
	.cafdh-membership-hero__actions .wp-block-button,
	.cafdh-membership-hero__actions .wp-block-button__link,
	.cafdh-membership-note__actions .wp-block-button,
	.cafdh-membership-note__actions .wp-block-button__link { width: 100%; }
	.cafdh-membership-detail-grid { grid-template-columns: 1fr !important; }
  .cafdh-about-hero__actions { width: 100%; align-items: stretch; flex-direction: column; }
  .cafdh-about-hero__actions .wp-block-button,
  .cafdh-about-hero__actions .wp-block-button__link,
  .cafdh-about-work__actions .wp-block-button,
  .cafdh-about-work__actions .wp-block-button__link,
  .cafdh-about-locations .wp-block-button,
  .cafdh-about-locations .wp-block-button__link { width: 100%; }
  .cafdh-about-values { grid-template-columns: 1fr; }
  .cafdh-section--services .cafdh-section-head-row > .cafdh-section-link { display: none; }
  .cafdh-services-more { display: grid; justify-items: center; gap: .45rem; margin-top: 1.5rem; padding: 1.15rem; border: 1px solid var(--caf-border); border-radius: 16px; background: var(--caf-white); text-align: center; }
  .cafdh-services-more p { margin: 0; color: var(--caf-navy); font-weight: 800; }
  .cafdh-services-more a { color: var(--caf-primary); font-weight: 850; text-decoration: none; }
  .cafdh-service-hero__visual { aspect-ratio: 8 / 5; border-radius: 1.35rem; }
  .cafdh-steps,
  .cafdh-document-callout { grid-template-columns: 1fr; }
  .cafdh-service-cover { min-height: 520px; background-position: 63% center; }
  .cafdh-service-layout { grid-template-columns: 1fr; }
  .cafdh-service-aside { position: static; }
  .cafdh-service-cover__actions { width: 100%; align-items: stretch; flex-direction: column; }
  .cafdh-cover-button { width: 100%; }
  .wp-block-button.cafdh-cover-button,
  .wp-block-button.cafdh-cover-button .wp-block-button__link { width: 100%; }
  .cafdh-document-callout .wp-block-button,
  .cafdh-document-callout .wp-block-button__link { width: 100%; }
  .cafdh-split,
  .cafdh-location-grid { grid-template-columns: 1fr; }
	.cafdh-updates__grid .cafdh-update-card { flex-basis: 88%; }
	.cafdh-carousel__arrow { display: none; }
	.cafdh-whatsapp-dialog__choices { grid-template-columns: 1fr; }
  .cafdh-section-head-row { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .cafdh-values { grid-template-columns: 1fr; }
  .cafdh-cta { grid-template-columns: 1fr; }
  .cafdh-cta .wp-block-buttons { width: 100%; align-items: stretch; flex-direction: column; }
  .cafdh-cta .wp-block-button,
  .cafdh-cta .wp-block-button__link { width: 100%; }
  .cafdh-actions { align-items: stretch; flex-direction: column; }
  .cafdh-actions .wp-block-button,
  .cafdh-actions .wp-block-button__link { width: 100%; }
  .site-footer__grid { grid-template-columns: 1fr; gap: 2rem; padding-block: 3rem; }
  .site-footer__bottom { align-items: flex-start; flex-direction: column; gap: .75rem; }
}

@media (hover: hover) {
  .cafdh-card:hover,
  .cafdh-feature:hover,
  .cafdh-update-card:hover { transform: translateY(-4px); box-shadow: 0 18px 34px rgba(26,40,73,.12); }
  .wp-block-button__link:hover,
  .button-link:hover,
  .cafdh-button-light:hover,
  .cafdh-location__cta:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(26,40,73,.14); }
  .cafdh-cta .cafdh-button--secondary .wp-block-button__link:hover { border-color: #fff; background: #fff; color: var(--caf-primary); }
  .cafdh-location__actions a:hover { border-color: var(--caf-navy); background: var(--caf-navy); color: #fff; }
  .cafdh-location__actions .is-whatsapp:hover,
  .cafdh-whatsapp-dialog__choices a:hover { border-color: var(--caf-green); background: var(--caf-green); color: #fff; }
  .cafdh-location__actions .is-appointment:hover { border-color: var(--caf-primary); background: var(--caf-primary); color: #fff; }
  .cafdh-location__actions a:hover span,
  .cafdh-whatsapp-dialog__choices a:hover span { color: rgba(255,255,255,.82); }
  .cafdh-hero__badge:hover { transform: translateY(-3px); box-shadow: 0 18px 34px rgba(9,25,51,.22); }
  .cafdh-call-dialog .cafdh-whatsapp-dialog__choices a:hover { border-color: var(--caf-primary); background: var(--caf-primary); color: #fff; }
  .cafdh-call-dialog .cafdh-whatsapp-dialog__choices a:hover span { color: rgba(255,255,255,.82); }
}

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