/* Shared by the website and Gutenberg. Every rule belongs to this pattern. */
/* Home colors and titles: direction A (README, "Regola dei colori"). The numbered cards of Corsi regionali are
   .palladio-story too and set their own colors in palladio-numbered.css. */
.palladio-story, .palladio-top, .palladio-home {
  --palladio-white: var(--wp--preset--color--base, #ffffff);
  --palladio-stone: var(--wp--preset--color--palladio-stone, #f1e9de);
  --palladio-bordeaux: var(--wp--preset--color--palladio-bordeaux, #6b1d23);
  --palladio-bordeaux-deep: var(--wp--preset--color--palladio-bordeaux-deep, #4a141b);
  --palladio-soft: var(--wp--preset--color--palladio-text-secondary, #5a4a3f);
  --palladio-line: var(--wp--preset--color--palladio-line, #e7ded2);
  /* Dark veil of the Home hero, shared by the CTA band "Il prossimo passo?" (1.18.1). */
  --palladio-hero-veil: linear-gradient(180deg,rgba(24,16,12,.6),rgba(24,16,12,.9));
  /* Titles (1.18.0): heading font of theme.json; tracking -0.03em, -0.02em under 24px, as one formula so that it
     follows every clamp() and the reductions for short screens. */
  --palladio-heading-font: var(--wp--preset--font-family--palladio-heading, 'Plus Jakarta Sans', system-ui, sans-serif);
  --palladio-heading-tracking: clamp(-.03em, calc(-.02em - (1em - 23.9px) * 2.4), -.02em);
}
.palladio-story {
  --palladio-red: var(--wp--preset--color--palladio-red, #a8342a);
  --palladio-ink: var(--wp--preset--color--palladio-ink-warm, #2a211c);
  --palladio-cream: var(--wp--preset--color--palladio-cream, #faf7f2);
  --palladio-gold: var(--wp--preset--color--palladio-gold-antique, #c99a3a);
  position: relative;
  isolation: isolate;
  background: var(--palladio-cream);
  color: var(--palladio-ink);
  font-family: var(--wp--preset--font-family--manrope, sans-serif);
  font-size: 16px;
  line-height: 1.6;
}
.palladio-story *, .palladio-story *::before, .palladio-story *::after { box-sizing: border-box; }
.palladio-story.palladio-story :where(h2,h3,h4,p,figure,.wp-block-group,.wp-block-buttons) { margin-block: 0; }
.palladio-story :where(h2,h3,h4) { color: inherit; font-family: inherit; text-wrap: pretty; }
.palladio-story p { font-size: 1rem; line-height: 1.5; }
.palladio-story a { color: inherit; }
/* Focus: one set of rules for the whole site in the child theme (palladio-child/assets/css/palladio-focus.css). Here
   only the colors of the dark surfaces, where red stays under 3:1: light gold text and underline, light gold buttons. */
.palladio-story .palladio-card--red, .palladio-top.palladio-hero, .palladio-home .palladio-home-food-banner {
  --palladio-focus-text: var(--wp--preset--color--palladio-gold-light, #e6c98a);
  --palladio-focus-fill: var(--wp--preset--color--palladio-gold-light, #e6c98a);
  --palladio-focus-on-fill: var(--wp--preset--color--palladio-bordeaux-deep, #4a141b);
}
.palladio-story .palladio-wrap { width: min(100%,1180px); margin-inline: auto; padding-inline: 24px; }
.palladio-story .palladio-services { position: relative; z-index: 1; padding-block: 84px 100px; transform-origin: center top; }
.palladio-story .palladio-heading { display: grid; grid-template-columns: 1.9fr 1fr; gap: 70px; margin-bottom: 58px; }
.palladio-story .palladio-heading h2 { font-family: var(--palladio-heading-font); font-size: clamp(1.882rem,3.481vw,3.246rem); font-weight: 700; line-height: 1.08; letter-spacing: var(--palladio-heading-tracking); }
.palladio-story .palladio-heading-intro > p:last-child { max-width: 340px; color: var(--palladio-soft); }
.palladio-story .palladio-eyebrow { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 24px; }
.palladio-story .palladio-heading .palladio-eyebrow { color: var(--palladio-red); }
.palladio-story .palladio-rail {
  display: flex; align-items: stretch; gap: 16px; overflow-x: auto;
  overscroll-behavior-x: contain; scroll-snap-type: x proximity;
  scroll-padding-inline: max(24px,calc((100% - 1132px)/2));
  padding: 6px max(24px,calc((100% - 1132px)/2)) 20px;
  scrollbar-width: thin; scrollbar-color: var(--palladio-red) var(--palladio-line);
}
.palladio-story .palladio-card {
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column;
  flex: 0 0 clamp(320px,32vw,460px); min-width: 0; min-height: 650px; padding: 28px;
  border-radius: 22px; background: linear-gradient(150deg, var(--palladio-bordeaux), var(--palladio-bordeaux-deep)); color: var(--palladio-white); scroll-snap-align: start;
}
.palladio-story .palladio-card > :not(.palladio-background) { position: relative; z-index: 1; }
.palladio-story .palladio-background { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; z-index: -2; }
.palladio-story .palladio-background img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .45s ease; }
/* Veil D3 on the photos (1.18.0): stone fading into light gold, dark text. Cards: vertical, stone 68% at the top,
   light gold 92% at the bottom (the CTA band has its own neutral veil, below). Stone under
   the photo, so that nothing bordeaux shows while it loads. */
.palladio-story .palladio-card--photo::before, .palladio-story .palladio-cta-surface::before { content: ''; position: absolute; inset: 0; z-index: -1; }
.palladio-story .palladio-card--photo::before { background: linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--palladio-stone, #f1e9de) 68%, transparent), color-mix(in srgb, var(--wp--preset--color--palladio-gold-light, #e6c98a) 92%, transparent)); }
/* CTA band (1.18.1): the same dark veil as the Home hero; copy in cream on it, red button and white panel unchanged. */
.palladio-story .palladio-cta-surface::before { background: var(--palladio-hero-veil); }
.palladio-story .palladio-cta-surface .palladio-cta-copy, .palladio-story .palladio-cta-surface .palladio-cta-copy > p, .palladio-story .palladio-cta-surface .palladio-cta-copy :is(.palladio-eyebrow, .palladio-note a) { color: var(--palladio-cream); }
.palladio-story .palladio-cta-surface .palladio-cta-copy .palladio-button--text .wp-block-button__link { border-color: var(--palladio-cream); }
.palladio-story .palladio-cta-surface .palladio-cta-copy .palladio-button--text .wp-block-button__link:hover { background: color-mix(in srgb, var(--palladio-cream) 12%, transparent); }
/* All the texts of the photo cards in ink: in the secondary color the paragraphs reached only 3.66:1 where the photo
   of Privati shows through the veil. */
.palladio-story .palladio-card--photo { background: var(--palladio-stone); color: var(--palladio-ink); }
.palladio-story .palladio-card--neutral { background: var(--palladio-stone); color: var(--palladio-ink); }
.palladio-story .palladio-card h3 { font-family: var(--palladio-heading-font); font-size: clamp(1.411rem,1.976vw,1.882rem); font-weight: 700; line-height: 1.1; letter-spacing: var(--palladio-heading-tracking); }
.palladio-story .palladio-card--neutral h3 { font-size: clamp(1.882rem,2.822vw,2.822rem); }
.palladio-story .palladio-card-copy { margin-block: 26px 22px; }
.palladio-story .palladio-card-copy h4 { font-size: 1.1rem; font-weight: 600; line-height: 1.4; margin-bottom: 24px; }
.palladio-story .palladio-card-copy p + p { margin-top: 18px; }
.palladio-story .palladio-card-footer, .palladio-story .palladio-card-contact { margin-top: auto; }
.palladio-story .palladio-card-contact { padding-top: 24px; border-top: 1px solid color-mix(in srgb, var(--palladio-ink) 16%, transparent); }
.palladio-story .palladio-card-contact p { font-size: 1rem; margin-bottom: 18px; }
.palladio-story .palladio-interests { border: 1px solid color-mix(in srgb, var(--palladio-ink) 20%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--palladio-white) 42%, transparent); margin-block: 0 28px; }
.palladio-story .palladio-interests summary { padding: 17px 18px; min-height: 56px; font-weight: 600; cursor: pointer; }
.palladio-story .palladio-interests p { margin: 0 14px; border-top: 1px solid color-mix(in srgb, var(--palladio-ink) 12%, transparent); }
.palladio-story .palladio-interests a { display: block; padding: 12px 4px; font-size: .94rem; text-decoration: none; }
.palladio-story .palladio-interests a:hover { text-decoration: underline; }
/* Dropdown of a card (Details "palladio-card-menu", Privati card of the Home): the summary is drawn as the outlined
   text button it replaces (same size, so the card does not change); on the site the list opens above it, over the
   copy of the card, on a white panel, so the other cards and the rail do not move. */
.palladio-story .palladio-card-menu { position: relative; }
.palladio-story .palladio-card-menu > summary {
  display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 13px 14px;
  border: 1px solid var(--palladio-ink); border-radius: 12px; color: inherit; font-size: .95rem; font-weight: 600;
  line-height: 1.4; list-style: none; cursor: pointer; transition: transform .2s ease,background .2s ease;
}
.palladio-story .palladio-card-menu > summary::-webkit-details-marker { display: none; }
.palladio-story .palladio-card-menu > summary::after { content: ''; width: 7px; height: 7px; margin-top: -4px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.palladio-story .palladio-card-menu[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }
.palladio-story .palladio-card-menu > summary:hover { background: color-mix(in srgb, var(--palladio-ink) 8%, transparent); transform: translateY(-2px); }
.wp-site-blocks .palladio-story .palladio-card-menu > summary:focus-visible { background: var(--palladio-focus-fill, #6b1d23); border-color: var(--palladio-focus-fill, #6b1d23); color: var(--palladio-focus-on-fill, #faf7f2) !important; text-underline-offset: 4px !important; }
.wp-site-blocks .palladio-story .palladio-card-menu-voci {
  position: absolute; inset: auto 0 calc(100% + 8px) 0; margin: 0; padding: 6px; z-index: 2;
  border: 1px solid var(--palladio-line); border-radius: 14px; background: var(--palladio-white); color: var(--palladio-ink);
  box-shadow: 0 18px 36px -18px color-mix(in srgb, var(--palladio-ink) 45%, transparent);
}
.palladio-story .palladio-card-menu-voci p { margin: 0; }
.palladio-story .palladio-card-menu-voci p + p { margin-top: 2px; border-top: 1px solid var(--palladio-line); }
.palladio-story .palladio-card-menu-voci a { display: block; padding: 11px 12px; border-radius: 10px; color: var(--palladio-ink); font-weight: 700; line-height: 1.35; text-decoration: none; }
.palladio-story .palladio-card-menu-voci a:hover { background: var(--palladio-stone); }
.palladio-story .palladio-card-menu-nota { display: block; margin-top: 2px; color: var(--palladio-soft); font-size: .88rem; font-weight: 500; }
.palladio-story .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.palladio-story .palladio-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  padding: 13px 22px; border: 2px solid transparent; border-radius: 999px;
  background: var(--palladio-red); color: var(--palladio-white); font-size: .95rem; font-weight: 600;
  line-height: 1.4; text-align: left; text-decoration: none;
  transition: transform .2s ease,background .2s ease;
}
.palladio-story .palladio-button .wp-block-button__link:hover { background: var(--palladio-bordeaux); transform: translateY(-2px); }
.palladio-story .palladio-button--light .wp-block-button__link { background: var(--palladio-white); color: var(--palladio-red); }
.palladio-story .palladio-button--light .wp-block-button__link:hover { background: #f3e3c4; }
.palladio-story .palladio-button--text .wp-block-button__link { background: transparent; color: inherit; border: 1px solid color-mix(in srgb, var(--palladio-white) 50%, transparent); border-radius: 12px; padding-inline: 14px; }
.palladio-story .palladio-button--text .wp-block-button__link:hover { background: color-mix(in srgb, var(--palladio-white) 10%, transparent); }
/* On the D3 veil: outlined buttons in ink, the main CTA button red with cream text. */
.palladio-story :is(.palladio-card--photo, .palladio-cta-surface) .palladio-button--text .wp-block-button__link { border-color: var(--palladio-ink); }
.palladio-story :is(.palladio-card--photo, .palladio-cta-surface) .palladio-button--text .wp-block-button__link:hover { background: color-mix(in srgb, var(--palladio-ink) 8%, transparent); }
.palladio-story .palladio-cta-surface .palladio-button--light .wp-block-button__link { background: var(--palladio-red); color: var(--palladio-cream); }
.palladio-story .palladio-cta-surface .palladio-button--light .wp-block-button__link:hover { background: var(--palladio-bordeaux); }
.palladio-story .palladio-controls { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; }
.palladio-story .palladio-controls[hidden] { display: none; }
.palladio-story .palladio-controls button { width: 48px; height: 48px; border: 1px solid var(--palladio-ink); border-radius: 50%; background: transparent; color: var(--palladio-ink); font-size: 1.5rem; cursor: pointer; }
.palladio-story .palladio-controls button:hover:not(:disabled) { background: var(--palladio-ink); color: var(--palladio-white); }
.palladio-story .palladio-controls button:disabled { opacity: .3; cursor: default; }
.palladio-story .palladio-cta { position: relative; z-index: 2; margin-top: -44px; padding: 26px; border-radius: 38px 38px 0 0; background: var(--palladio-stone); box-shadow: 0 -22px 46px -32px color-mix(in srgb, var(--palladio-ink) 50%, transparent); }
.palladio-story .palladio-cta-surface { position: relative; isolation: isolate; overflow: hidden; border-radius: 22px; padding: 80px 24px; background: var(--palladio-stone); color: var(--palladio-ink); }
.palladio-story .palladio-cta-layout { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 48px; }
.palladio-story .palladio-cta-copy h2 { font-family: var(--palladio-heading-font); font-size: clamp(1.976rem,3.293vw,3.105rem); font-weight: 700; letter-spacing: var(--palladio-heading-tracking); line-height: 1.08; margin-bottom: 24px; }
.palladio-story .palladio-cta-copy > p { margin-bottom: 24px; color: var(--palladio-soft); }
.palladio-story .palladio-cta-copy .palladio-eyebrow { color: var(--palladio-ink); }
.palladio-story .palladio-cta-copy .palladio-note { margin-top: 20px; margin-bottom: 0; font-size: .9rem; overflow-wrap: anywhere; }
/* The e-mail link in ink: in the secondary color it reached 4.37:1 on the right of the band, on phones. */
.palladio-story .palladio-cta-copy .palladio-note a { color: var(--palladio-ink); }
.palladio-story .palladio-contact-box { padding: 34px; border-radius: 18px; background: var(--palladio-cream); color: var(--palladio-ink); }
.palladio-story .palladio-contact-box h3 { font-family: var(--palladio-heading-font); font-size: 1.411rem; font-weight: 700; line-height: 1.1; letter-spacing: var(--palladio-heading-tracking); margin-bottom: 18px; }
.palladio-story .palladio-contact-box p { margin-bottom: 24px; }
.palladio-story .palladio-contact-box .palladio-contact-logo { display: block; width: auto; height: 40px; max-width: 100%; margin: 0 0 16px; box-shadow: none; filter: none; }
.palladio-story .palladio-contact-box .palladio-contact-logo + h3 { margin-top: 0; }
.palladio-story.has-stack .palladio-services { position: sticky; top: var(--palladio-sticky-top); transform: scale(var(--palladio-scale,1)); clip-path: inset(var(--palladio-clip,0px) -100vmax -100vmax); }
@media (hover:hover) { .palladio-story .palladio-card--photo:hover .palladio-background img { transform: scale(1.045); } }
@media (max-width:960px) {
  .palladio-story .palladio-heading { gap: 35px; grid-template-columns: 1.5fr 1fr; }
  .palladio-story .palladio-card { flex-basis: 48vw; }
  .palladio-story .palladio-cta-layout { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width:720px) {
  .palladio-story .palladio-services { padding-block: 60px 76px; }
  .palladio-story .palladio-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 30px; }
  .palladio-story .palladio-heading .palladio-eyebrow { margin-bottom: 12px; }
  .palladio-story .palladio-card { flex-basis: 86vw; padding: 24px; min-height: 650px; }
  .palladio-story .palladio-rail { gap: 12px; }
  .palladio-story .palladio-cta { margin-top: -28px; padding: 14px; border-radius: 28px 28px 0 0; }
  .palladio-story .palladio-cta-surface { padding: 42px 0; border-radius: 17px; }
  .palladio-story .palladio-contact-box { padding: 24px; }
  .palladio-story .palladio-contact-box .palladio-contact-logo { height: 34px; }
}
/* Short screens (1.12.0, 1.13.0): from 600px of width, under 860px of height the cards get lower with the height
   of the window, and under 800px spacing and card titles shrink too, so that cards and arrows fit under the fixed
   header and the CTA can still slide over them (palladio-patterns.js checks the fit). From 860px up nothing
   changes. Card height: the lower of two values, both continuous, so nothing jumps at 800 or 860px. The first goes
   from 650px (860px) to 625px (800px), the same for every visitor; the second is the height left under the header
   (toolbar included), minus the arrows and the margins, and decides when the toolbar takes space or under 800px.
   --palladio-squeeze grows from 0 (800px) to 150px (650px): the spacing reaches its minimum at 650px. Front end
   only (.wp-site-blocks), not in the editor, and only in .palladio-services: the numbered cards (Corsi regionali)
   are .palladio-story and .palladio-card too, and keep their own sizes. */
@media (min-width:600px) and (max-height:859.98px) {
  .wp-site-blocks .palladio-services .palladio-card { min-height: clamp(400px, min(650px - (860px - 100svh) * .41667, 100svh - var(--palladio-header-offset, 65px) - 110px + max(0px, 800px - 100svh) * .17), 650px); }
}
@media (min-width:600px) and (max-height:799.98px) {
  .wp-site-blocks .palladio-story { --palladio-squeeze: calc(800px - 100svh); }
  .wp-site-blocks .palladio-services .palladio-card { padding: clamp(20px, calc(28px - var(--palladio-squeeze) * .0533), 28px); }
  .wp-site-blocks .palladio-services .palladio-card .palladio-eyebrow { margin-bottom: clamp(10px, calc(24px - var(--palladio-squeeze) * .0933), 24px); }
  .wp-site-blocks .palladio-services .palladio-card h3 { font-size: calc(clamp(1.411rem,1.976vw,1.882rem) - clamp(0px, var(--palladio-squeeze) * .0224, 3.36px)); }
  .wp-site-blocks .palladio-services .palladio-card--neutral h3 { font-size: calc(clamp(1.882rem,2.822vw,2.822rem) - clamp(0px, var(--palladio-squeeze) * .0336, 5.04px)); }
  .wp-site-blocks .palladio-services .palladio-card-copy { margin-block: clamp(12px, calc(26px - var(--palladio-squeeze) * .0933), 26px) clamp(10px, calc(22px - var(--palladio-squeeze) * .08), 22px); }
  .wp-site-blocks .palladio-services .palladio-card-copy h4 { margin-bottom: clamp(10px, calc(24px - var(--palladio-squeeze) * .0933), 24px); }
  .wp-site-blocks .palladio-services .palladio-card-copy p + p { margin-top: clamp(8px, calc(18px - var(--palladio-squeeze) * .0667), 18px); }
  .wp-site-blocks .palladio-services .palladio-interests { margin-bottom: clamp(12px, calc(28px - var(--palladio-squeeze) * .1067), 28px); }
  .wp-site-blocks .palladio-services .palladio-interests summary { padding-block: clamp(12px, calc(17px - var(--palladio-squeeze) * .0333), 17px); min-height: clamp(48px, calc(56px - var(--palladio-squeeze) * .0533), 56px); }
  .wp-site-blocks .palladio-services .palladio-card-contact { padding-top: clamp(12px, calc(24px - var(--palladio-squeeze) * .08), 24px); }
  .wp-site-blocks .palladio-services .palladio-card-contact p { margin-bottom: clamp(10px, calc(18px - var(--palladio-squeeze) * .0533), 18px); }
  .wp-site-blocks .palladio-services .palladio-rail { padding-bottom: clamp(8px, calc(20px - var(--palladio-squeeze) * .08), 20px); }
  .wp-site-blocks .palladio-services .palladio-controls { margin-top: clamp(8px, calc(22px - var(--palladio-squeeze) * .0933), 22px); }
}
@media (min-width:600px) and (max-width:720px) and (max-height:799.98px) {
  .wp-site-blocks .palladio-services .palladio-card { padding: clamp(18px, calc(24px - var(--palladio-squeeze) * .04), 24px); }
}
/* Phones (1.13.0): under 600px of width the section stays in the normal flow below 821px of height; under 760px the
   rail of the cards would be taller than the space under the header. There the same spacing and titles shrink with
   the height of the window (--palladio-squeeze from 0 at 760px to 120px at 640px, minimum at 640px) and the cards
   take the height left under the header, so that the whole rail, focus ring included, fits between the header and
   the bottom of the window. Content is never cut: a card whose content is taller stays taller. */
@media (max-width:599.98px) and (max-height:759.98px) {
  .wp-site-blocks .palladio-story { --palladio-squeeze: calc(760px - 100svh); }
  .wp-site-blocks .palladio-services .palladio-card { min-height: clamp(400px, calc(100svh - var(--palladio-header-offset, 65px) - 42px + min(var(--palladio-squeeze) * .1, 12px)), 650px); padding: clamp(18px, calc(24px - var(--palladio-squeeze) * .05), 24px); }
  .wp-site-blocks .palladio-services .palladio-card .palladio-eyebrow { margin-bottom: clamp(10px, calc(24px - var(--palladio-squeeze) * .1167), 24px); }
  .wp-site-blocks .palladio-services .palladio-card h3 { font-size: calc(clamp(1.411rem,1.976vw,1.882rem) - clamp(0px, var(--palladio-squeeze) * .028, 3.36px)); }
  .wp-site-blocks .palladio-services .palladio-card--neutral h3 { font-size: calc(clamp(1.882rem,2.822vw,2.822rem) - clamp(0px, var(--palladio-squeeze) * .042, 5.04px)); }
  .wp-site-blocks .palladio-services .palladio-card-copy { margin-block: clamp(12px, calc(26px - var(--palladio-squeeze) * .1167), 26px) clamp(10px, calc(22px - var(--palladio-squeeze) * .1), 22px); }
  .wp-site-blocks .palladio-services .palladio-card-copy h4 { margin-bottom: clamp(10px, calc(24px - var(--palladio-squeeze) * .1167), 24px); }
  .wp-site-blocks .palladio-services .palladio-card-copy p + p { margin-top: clamp(8px, calc(18px - var(--palladio-squeeze) * .0833), 18px); }
  .wp-site-blocks .palladio-services .palladio-interests { margin-bottom: clamp(12px, calc(28px - var(--palladio-squeeze) * .1333), 28px); }
  .wp-site-blocks .palladio-services .palladio-interests summary { padding-block: clamp(12px, calc(17px - var(--palladio-squeeze) * .0417), 17px); min-height: clamp(48px, calc(56px - var(--palladio-squeeze) * .0667), 56px); }
  .wp-site-blocks .palladio-services .palladio-card-contact { padding-top: clamp(12px, calc(24px - var(--palladio-squeeze) * .1), 24px); }
  .wp-site-blocks .palladio-services .palladio-card-contact p { margin-bottom: clamp(10px, calc(18px - var(--palladio-squeeze) * .0667), 18px); }
  .wp-site-blocks .palladio-services .palladio-rail { padding-bottom: clamp(8px, calc(20px - var(--palladio-squeeze) * .1), 20px); }
}
/* Keep every card and its image directly selectable in the editor. */
.editor-styles-wrapper .palladio-story .palladio-rail { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; padding-inline: 24px; }
.editor-styles-wrapper .palladio-story .palladio-card { min-height: 650px; }
.editor-styles-wrapper .palladio-story .palladio-background { position: relative; inset: auto; height: 150px; z-index: 0; margin-bottom: 20px; flex: 0 0 auto; }
.editor-styles-wrapper .palladio-story .palladio-background img { height: 150px; }
.editor-styles-wrapper .palladio-story .palladio-cta { margin-top: 0; }
@media (max-width:720px) { .editor-styles-wrapper .palladio-story .palladio-rail { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion:reduce) {
  .palladio-story *, .palladio-story *::before { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .palladio-story.has-stack .palladio-services { position: relative; top: auto; transform: none; }
  .palladio-story .palladio-card--photo:hover .palladio-background img { transform: none; }
  .palladio-story .palladio-cta { margin-top: 0; }
}

/* Opening sections: independent core-block patterns, no added motion. */
.palladio-top {
  --palladio-red: var(--wp--preset--color--palladio-red, #a8342a);
  --palladio-ink: var(--wp--preset--color--palladio-ink-warm, #2a211c);
  --palladio-gold: var(--wp--preset--color--palladio-gold-antique, #c99a3a);
  box-sizing: border-box;
  margin-block: 0;
  color: var(--palladio-ink);
  font-family: var(--wp--preset--font-family--manrope, sans-serif);
  font-size: 16px;
  line-height: 1.6;
}
.palladio-top *, .palladio-top *::before { box-sizing: border-box; }
.palladio-top.palladio-top { margin-block: 0; }
.palladio-mission + .palladio-story { margin-block-start: 0; }
.palladio-top.palladio-top :where(h1,h2,p,figure,.wp-block-group,.wp-block-buttons) { margin-block: 0; }
.palladio-top :where(h1,h2) { font-family: var(--palladio-heading-font); font-weight: 700; line-height: 1.08; letter-spacing: var(--palladio-heading-tracking); text-wrap: pretty; }
.palladio-top .palladio-top-eyebrow { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; margin-bottom: .6em; color: var(--palladio-red); }
.palladio-top .wp-block-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.palladio-top .palladio-top-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  padding: 14px 26px; border: 2px solid transparent; border-radius: 999px;
  background: var(--palladio-red); color: var(--palladio-white); font-size: .95rem; font-weight: 600;
  line-height: 1.4; text-decoration: none; box-shadow: 0 12px 24px -10px color-mix(in srgb, var(--palladio-red) 55%, transparent);
}
.palladio-top .palladio-top-button .wp-block-button__link:hover { background: var(--palladio-bordeaux); }
.palladio-top .palladio-top-button--outline .wp-block-button__link { background: transparent; border-color: var(--palladio-white); box-shadow: none; }
.palladio-top .palladio-top-button--outline .wp-block-button__link:hover { background: var(--palladio-white); color: var(--palladio-red); }
.palladio-top.palladio-hero {
  position: relative; isolation: isolate; overflow: hidden; min-height: 540px;
  display: flex; align-items: center; justify-content: center; padding: 80px 24px;
  background: var(--palladio-ink); color: var(--palladio-white);
}
.palladio-top .palladio-hero-background { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; }
.palladio-top .palladio-hero-background img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
/* Two native posters: desktop/tablet and phone in portrait (same threshold as the video script). */
.palladio-top .palladio-hero-background.palladio-hero-background--mobile { display: none; }
@media (max-width:767px) and (orientation:portrait) {
  .palladio-top .palladio-hero-background:not(.palladio-hero-background--mobile) { display: none; }
  .palladio-top .palladio-hero-background.palladio-hero-background--mobile { display: block; }
}
/* On the site the two posters are one <picture> (palladio-patterns.php): that figure shows at every width and the
   <picture> box does not exist for layout, so the image still fills the figure. */
.palladio-top .palladio-hero-background picture { display: contents; }
@media (max-width:767px) and (orientation:portrait) {
  .palladio-top .palladio-hero-background.palladio-hero-background--picture { display: block; }
}
/* Optional video over the poster, under the existing gradient; visible only once it is playing. */
.palladio-top .palladio-hero-video { position: absolute; inset: 0; z-index: -2; display: block; margin: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .8s ease; pointer-events: none; }
.palladio-top.palladio-hero.has-video .palladio-hero-video { opacity: 1; }
/* Veil over the video: unchanged near-black (DA DEFINIRE in the README: the hero was not in the list of 1.16.0). */
.palladio-top.palladio-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--palladio-hero-veil); }
.palladio-top .palladio-hero-content { width: 100%; max-width: 760px; margin-inline: auto; text-align: center; }
.palladio-top .palladio-hero-content .palladio-top-eyebrow { color: var(--wp--preset--color--palladio-cream, #faf7f2); }
.palladio-top .palladio-hero-content h1 { font-size: clamp(2.164rem,4.704vw,3.387rem); color: var(--palladio-white); margin-bottom: .5em; overflow-wrap: anywhere; }
.palladio-top .palladio-hero-lead { max-width: 600px; margin-inline: auto; font-size: 1.12rem; line-height: 1.6; color: var(--palladio-stone); }
.palladio-top .palladio-hero-content > .wp-block-buttons { margin-block: 28px 34px; }
.palladio-top .palladio-hero-logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 16px; }
.palladio-top .palladio-hero-logo { display: inline-flex; align-items: center; background: color-mix(in srgb, var(--palladio-white) 95%, transparent); padding: 8px 14px; border-radius: 10px; }
.palladio-top .palladio-hero-logo img { display: block; height: 26px; width: auto; max-width: 160px; object-fit: contain; }
.palladio-top .palladio-hero-trust-text { font-size: 1rem; font-weight: 600; color: var(--palladio-stone); }
.palladio-top.palladio-trust-section { padding: 36px 24px; background: var(--wp--preset--color--palladio-cream, #faf7f2); }
.palladio-top .palladio-trust-bar { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); max-width: 1180px; margin-inline: auto; padding: 26px 20px; border-radius: 20px; background: var(--palladio-bordeaux); color: var(--palladio-white); box-shadow: 0 14px 30px -22px color-mix(in srgb, var(--palladio-bordeaux-deep) 45%, transparent); }
.palladio-top .palladio-trust-item { display: flex; align-items: center; gap: 10px; padding: 4px 16px; border-right: 1px solid color-mix(in srgb, var(--palladio-white) 25%, transparent); min-width: 0; }
.palladio-top .palladio-trust-item:first-child { padding-left: 0; }
.palladio-top .palladio-trust-item:last-child { border: 0; padding-right: 0; }
.palladio-top .palladio-trust-item p { font-size: .9rem; line-height: 1.45; }
.palladio-top .palladio-trust-icon { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; background: color-mix(in srgb, var(--palladio-white) 10%, transparent); }
.palladio-top .palladio-trust-icon img { display: block; width: 28px; height: 28px; }
.palladio-top.palladio-mission { padding: 94px 24px; background: var(--palladio-white); }
.palladio-top .palladio-mission-content { max-width: 842px; margin-inline: auto; text-align: center; }
.palladio-top .palladio-mission-content h2 { font-size: clamp(1.788rem,2.822vw,2.54rem); overflow-wrap: anywhere; }
.palladio-top .palladio-mission-content > p:not(.palladio-top-eyebrow) { max-width: 730px; font-size: 1.05rem; margin: 24px auto; color: var(--palladio-soft); }
/* Line length (R-17): about 68 characters from tablets up, still centered; the title keeps its width. */
@media (min-width: 768px) { .palladio-top .palladio-mission-content > p:not(.palladio-top-eyebrow) { max-width: min(730px, 68ch); } }
.palladio-top .palladio-mission-content > .wp-block-buttons { margin-top: 32px; }
/* A selectable thumbnail replaces the decorative hero background only in Gutenberg. */
.editor-styles-wrapper .palladio-top.palladio-hero { display: block; }
.editor-styles-wrapper .palladio-top .palladio-hero-background { position: relative; inset: auto; z-index: 0; height: 180px; margin-bottom: 24px; }
.editor-styles-wrapper .palladio-top .palladio-hero-background.palladio-hero-background { display: block; }
/* Five trust items: 3 + 2 on tablet (six-track grid), separators only inside a row. */
@media (max-width:1100px) {
  .palladio-top .palladio-trust-bar { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 24px 0; padding: 26px 24px; }
  .palladio-top .palladio-trust-item { grid-column: span 2; padding: 4px 20px; }
  .palladio-top .palladio-trust-item:nth-child(n+4) { grid-column: span 3; }
  .palladio-top .palladio-trust-item:nth-child(3) { border-right: 0; padding-right: 0; }
  .palladio-top .palladio-trust-item:nth-child(4) { padding-left: 0; }
}
@media (max-width:720px) {
  .palladio-top.palladio-hero { padding: 64px 24px; }
  .palladio-top.palladio-trust-section { padding: 24px 16px; }
  .palladio-top .palladio-trust-bar { padding: 24px; border-radius: 18px; gap: 20px; }
  .palladio-top .palladio-trust-bar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .palladio-top .palladio-trust-item, .palladio-top .palladio-trust-item:nth-child(n+4) { grid-column: auto; flex-direction: column; text-align: center; border: 0; padding: 0; }
  .palladio-top .palladio-trust-item:last-child { grid-column: 1 / -1; }
  .palladio-top .palladio-trust-item p { font-size: .9rem; }
  .palladio-top.palladio-mission { padding: 64px 24px; }
}

/* Remaining homepage sections. Native blocks and shared, scoped presentation. */
.palladio-home {
  --palladio-red: var(--wp--preset--color--palladio-red, #a8342a); --palladio-ink: var(--wp--preset--color--palladio-ink-warm, #2a211c); --palladio-border: var(--wp--preset--color--palladio-line, #e7ded2);
  padding: 88px 24px; color: var(--palladio-ink); background: var(--wp--preset--color--palladio-cream, #faf7f2);
  font-family: var(--wp--preset--font-family--manrope, sans-serif); font-size: 16px; line-height: 1.6;
  scroll-margin-top: 24px;
}
.palladio-home *, .palladio-home *::before { box-sizing: border-box; }
.palladio-home.palladio-home { margin-block: 0; }
.palladio-home.palladio-home :where(h2,h3,p,figure,blockquote,ul,.wp-block-group,.wp-block-buttons) { margin-block: 0; }
.palladio-home :where(h2,h3) { font-family: var(--palladio-heading-font); font-weight: 700; line-height: 1.1; letter-spacing: var(--palladio-heading-tracking); text-wrap: pretty; }
.palladio-home h2 { font-size: clamp(1.599rem,2.822vw,2.258rem); line-height: 1.08; }
.palladio-home h3 { font-size: 1.035rem; }
.palladio-home p { font-size: 1rem; color: var(--palladio-soft); }
.palladio-home a { color: var(--palladio-red); }
.palladio-home .palladio-home-wrap { width: 100%; max-width: 1132px; margin-inline: auto; }
.palladio-home .palladio-home-heading { max-width: 640px; margin-bottom: 48px; }
.palladio-home .palladio-home-heading--center { text-align: center; margin-inline: auto; }
.palladio-home .palladio-home-heading h2 { margin-bottom: 16px; }
.palladio-home .palladio-home-eyebrow { text-transform: uppercase; letter-spacing: .14em; font-size: .75rem; font-weight: 700; color: var(--palladio-red); margin-bottom: .6em; }
.palladio-home .palladio-home-grid { display: grid; gap: 24px; align-items: stretch; }
.palladio-home .palladio-home-grid > * { min-width: 0; }
.palladio-home .palladio-home-grid--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.palladio-home .palladio-home-grid--four { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.palladio-home .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.palladio-home .palladio-home-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  padding: 14px 26px; border-radius: 999px; border: 2px solid transparent;
  background: var(--palladio-red); color: var(--palladio-white); font-size: .95rem; font-weight: 600; line-height: 1.4; text-decoration: none;
}
.palladio-home .palladio-home-button .wp-block-button__link:hover { background: var(--palladio-bordeaux); }
.palladio-home .palladio-home-button--outline .wp-block-button__link { background: transparent; color: var(--palladio-ink); border-color: var(--palladio-ink); }
.palladio-home .palladio-home-button--outline .wp-block-button__link:hover { background: var(--palladio-ink); color: var(--palladio-white); }
.palladio-home .palladio-home-button--light .wp-block-button__link { background: var(--palladio-white); color: var(--palladio-red); }
.palladio-home .palladio-home-button--light .wp-block-button__link:hover { background: #f3e3c4; }
.palladio-home .palladio-home-footer-cta { justify-content: center; margin-top: 40px; }
.palladio-home--courses, .palladio-home--spaces, .palladio-home--testimonials { background: var(--palladio-white); }
.palladio-home .palladio-course { border: 1px solid var(--palladio-border); border-radius: 18px; overflow: hidden; background: var(--palladio-white); }
.palladio-home .palladio-course-visual { position: relative; isolation: isolate; }
/* Photo veil (1.37.50): the bordeaux tint and bottom gradient of the course carousels (palladio-corso.css, 1.37.43),
   stronger here with its own values (1.37.51: 18% and 32%). Drawn over the photo only (the group is as tall as the
   image), the badge on top. The variables sit on .palladio-home (1.37.52): also used by the "Perché sceglierci" photo. */
.palladio-home { --palladio-home-card-velo: .18; --palladio-home-card-velo-basso: .32; }
.palladio-home .palladio-course-visual:has(img[src])::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to bottom, rgba(74, 20, 27, 0) 66.67%, rgba(74, 20, 27, var(--palladio-home-card-velo-basso)) 100%), rgba(74, 20, 27, var(--palladio-home-card-velo));
}
.palladio-home .palladio-course-badge { z-index: 1; }
.palladio-home .palladio-course-image img { display: block; width: 100%; height: 170px; object-fit: cover; }
.palladio-home .palladio-course-badge { position: absolute; top: 12px; left: 12px; max-width: calc(100% - 24px); padding: 5px 10px; border-radius: 999px; background: color-mix(in srgb, var(--palladio-white) 94%, transparent); color: var(--palladio-bordeaux); font-size: .75rem; font-weight: 700; }
.palladio-home .palladio-course-copy { padding: 22px; }
.palladio-home .palladio-course-copy h3 { margin-bottom: 8px; font-size: .988rem; }
.palladio-home .palladio-course-copy p { font-size: 1rem; overflow-wrap: break-word; }
.palladio-home .palladio-home-text-link { margin-top: 18px; font-weight: 700; }
/* Macro areas (Home): 4 cards from 1200px, 2 per row from 768px, then 1; equal heights, link at the bottom. */
.palladio-home .palladio-home-grid--aree { grid-template-columns: repeat(4,minmax(0,1fr)); }
.palladio-home .palladio-home-grid--aree > .palladio-course { display: flex; flex-direction: column; }
.palladio-home .palladio-home-grid--aree .palladio-course-copy { display: flex; flex-direction: column; flex: 1 1 auto; }
.palladio-home .palladio-home-grid--aree .palladio-home-text-link { margin-top: auto; padding-top: 18px; }
@media (max-width:1199px) { .palladio-home .palladio-home-grid--aree { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:767px) { .palladio-home .palladio-home-grid--aree { grid-template-columns: 1fr; } }
.palladio-home .palladio-home-split { display: grid; grid-template-columns: .95fr 1.05fr; gap: 56px; align-items: center; }
.palladio-home .palladio-home-feature-image:has(img[src]) { position: relative; border-radius: 24px; }
/* Same veil as the course cards (1.37.52), inside the rounded photo; the outer shadow (on the img) stays uncovered. */
.palladio-home .palladio-home-feature-image:has(img[src])::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(to bottom, rgba(74, 20, 27, 0) 66.67%, rgba(74, 20, 27, var(--palladio-home-card-velo-basso)) 100%), rgba(74, 20, 27, var(--palladio-home-card-velo));
}
.palladio-home .palladio-home-feature-image img { width: 100%; height: auto; aspect-ratio: 4/3.3; object-fit: cover; border-radius: 24px; box-shadow: 0 20px 45px -20px color-mix(in srgb, var(--palladio-ink) 25%, transparent); }
.palladio-home .palladio-home-why-copy .palladio-home-heading { margin-bottom: 24px; }
.palladio-home .palladio-home-checks { list-style: none; padding: 0; display: grid; gap: 16px; }
.palladio-home .palladio-home-checks li { position: relative; padding-left: 38px; font-size: 1rem; font-weight: 500; }
.palladio-home .palladio-home-checks li::before { content: '✓'; position: absolute; left: 0; top: 0; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--palladio-red); color: var(--palladio-white); font-size: .8rem; }
.palladio-home .palladio-home-rooms { margin-top: 32px; padding: 26px; background: var(--palladio-white); border: 1px solid var(--palladio-border); border-radius: 18px; }
.palladio-home .palladio-home-rooms h3 { color: var(--palladio-ink); margin-bottom: 16px; font-size: .941rem; }
.palladio-home .palladio-home-room-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 12px; }
.palladio-home .palladio-home-room { display: flex; gap: 10px; align-items: flex-start; }
.palladio-home .palladio-home-room p { font-size: .78rem; line-height: 1.4; font-weight: 700; color: var(--palladio-ink); }
.palladio-home .palladio-home-room p em { color: var(--palladio-soft); font-style: normal; font-weight: 500; }
/* Pale gold circle with a red number: gold as a background and red not for an action (DA DEFINIRE in the README). */
.palladio-home .palladio-home-room .palladio-home-room-number { display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; color: var(--palladio-red); background: #f3e3c4; }
.palladio-home.palladio-home--spaces { border-radius: 36px 36px 0 0; }
.palladio-home .palladio-home-space-image { position: relative; overflow: hidden; border-radius: 16px; box-shadow: 0 10px 24px -14px color-mix(in srgb, var(--palladio-ink) 30%, transparent); }
.palladio-home .palladio-home-space-image img { display: block; width: 100%; height: 220px; object-fit: cover; }
.palladio-home .palladio-home-space-image figcaption { position: absolute; bottom: 0; inset-inline: 0; padding: 28px 14px 12px; margin: 0; background: linear-gradient(0deg, color-mix(in srgb, var(--palladio-bordeaux-deep) 85%, transparent), color-mix(in srgb, var(--palladio-bordeaux-deep) 70%, transparent) 60%, transparent); color: var(--palladio-white); text-align: left; font-size: .82rem; font-weight: 600; }
.palladio-home .palladio-home-food-banner { display: flex; position: relative; isolation: isolate; overflow: hidden; align-items: center; flex-wrap: wrap; gap: 30px; border-radius: 28px; padding: 44px; background: var(--palladio-bordeaux); color: var(--palladio-white); }
.palladio-home .palladio-home-food-background { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; }
.palladio-home .palladio-home-food-background img { width: 100%; height: 100%; object-fit: cover; }
.palladio-home .palladio-home-food-banner::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(120deg, color-mix(in srgb, var(--palladio-bordeaux-deep) 78%, transparent), color-mix(in srgb, var(--palladio-bordeaux) 70%, transparent)); }
.palladio-home .palladio-home-food-logo { display: inline-flex; border-radius: 14px; padding: 12px 16px; background: var(--palladio-white); max-width: 100%; }
.palladio-home .palladio-home-food-logo img { display: block; height: 40px; width: auto; max-width: 100%; object-fit: contain; }
.palladio-home .palladio-home-food-copy { flex: 1 1 260px; }
.palladio-home .palladio-home-food-copy h2 { color: var(--palladio-white); font-size: 1.317rem; margin-bottom: 6px; }
.palladio-home .palladio-home-food-copy p { color: var(--palladio-stone); max-width: 460px; }
.palladio-home .palladio-home-testimonial { border: 1px solid var(--palladio-border); border-radius: 18px; padding: 26px; background: var(--palladio-white); }
/* Stars: a darker gold than the palette's, which reaches only 2.6:1 on white (DA DEFINIRE in the README). */
.palladio-home .palladio-home-stars { color: #9d6d13; letter-spacing: 2px; margin-bottom: 12px; font-size: .95rem; }
.palladio-home .palladio-home-testimonial blockquote { padding: 0; border: 0; }
.palladio-home .palladio-home-testimonial blockquote p { color: var(--palladio-ink); font-size: 1rem; }
.palladio-home .palladio-home-testimonial cite { display: block; margin-top: 14px; font-size: .88rem; font-style: normal; font-weight: 700; color: var(--palladio-soft); }
.palladio-home .palladio-home-logos { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 18px; }
.palladio-home .palladio-home-credential { display: flex; align-items: center; justify-content: center; min-height: 115px; padding: 22px; border: 1px solid var(--palladio-border); border-radius: 16px; background: var(--palladio-white); }
.palladio-home .palladio-home-credential img { display: block; max-height: 64px; max-width: 100%; width: auto; object-fit: contain; }
.palladio-home .palladio-home-contact-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 50px; align-items: start; }
.palladio-home .palladio-home-contact-info { display: grid; gap: 22px; }
.palladio-home .palladio-home-contact-detail h3 { font-size: .922rem; margin-bottom: 4px; }
.palladio-home .palladio-home-contact-detail p { font-size: 1rem; overflow-wrap: anywhere; }
/* «Scopri l’area →» and the phone and email of the contacts (R-14): 44px tap height, the line keeps its height (the
   negative margin gives back the padding; a quarter pixel more, as 1lh is fractional), so the cards do not move.
   Inline-block, not flex: the arrow after the hidden area name keeps its space. */
.palladio-home :is(.palladio-home-text-link, .palladio-home-contact-detail p) > a { display: inline-block; padding-block: calc((44px - 1lh) / 2 + .25px); margin-block: calc((1lh - 44px) / 2 - .25px); }
.palladio-home .palladio-home-contact-box { background: var(--palladio-white); border-radius: 18px; border: 1px solid var(--palladio-border); padding: 34px; box-shadow: 0 20px 45px -20px color-mix(in srgb, var(--palladio-ink) 25%, transparent); }
.palladio-home .palladio-home-contact-box h3 { font-size: 1.317rem; margin-bottom: 18px; }
.palladio-home .palladio-home-contact-box p { margin-bottom: 24px; }
.editor-styles-wrapper .palladio-home .palladio-home-food-background { position: relative; inset: auto; z-index: 0; height: 150px; flex-basis: 100%; }
@media (max-width:960px) {
  .palladio-home .palladio-home-grid--three, .palladio-home .palladio-home-split, .palladio-home .palladio-home-contact-layout { grid-template-columns: 1fr; }
  .palladio-home .palladio-home-grid--four { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .palladio-home .palladio-home-logos { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .palladio-home .palladio-home-feature-image img { max-height: 480px; }
}
@media (max-width:720px) {
  .palladio-home { padding: 64px 24px; }
  .palladio-home .palladio-home-heading { margin-bottom: 32px; }
  .palladio-home .palladio-home-split { gap: 32px; }
  .palladio-home .palladio-home-rooms { padding: 20px; }
  .palladio-home .palladio-home-room-grid { grid-template-columns: 1fr; }
  .palladio-home .palladio-home-grid--four { grid-template-columns: 1fr; }
  .palladio-home .palladio-home-food-banner { padding: 28px; gap: 24px; }
  .palladio-home .palladio-home-food-copy { flex-basis: 100%; }
  .palladio-home .palladio-home-contact-box { padding: 24px; }
  .palladio-home .palladio-home-logos { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .palladio-home .palladio-home-credential { padding: 16px; }
}
.palladio-home .palladio-home-credential img { filter: grayscale(1); }
/* 28/10/2026: the Cambridge mark is shown unmodified (no grey); PEKIT, without a supplied logo, is its name as text
   in the same tile. */
.palladio-home .palladio-home-credential-marchio img { filter: none; }
.palladio-home .palladio-home-credential-testo { margin: 0; color: var(--palladio-soft); font-family: var(--palladio-heading-font); font-size: 1.5rem; font-weight: 800; letter-spacing: .06em; line-height: 1; }

/* Overlap (1.29.0): two sibling Group blocks; `palladio-overlap-base` stays still under the header while the
   next one, `palladio-overlap-cover`, slides over it like a sheet. Home: "Perché sceglierci" and "Gli spazi".
   Sticky only on large, tall windows with motion allowed; elsewhere the sections follow one another and the
   cover keeps its rounded top. The cover's own background wins over the white fallback (:where). */
:where(.palladio-overlap-cover) { background-color: var(--wp--preset--color--base, #ffffff); }
.wp-site-blocks .palladio-overlap-cover { position: relative; border-radius: 32px 32px 0 0; box-shadow: 0 -22px 46px -32px color-mix(in srgb, var(--wp--preset--color--palladio-ink-warm, #2a211c) 50%, transparent); }
@media (min-width:1100px) and (min-height:760px) and (prefers-reduced-motion:no-preference) {
  /* --palladio-overlap-reach: part of the base that must fit in the window. The Home section is 841px tall
     from 1280px up (830-836px between 1100 and 1279px); up to 64px of its 88px bottom padding may stay below
     the window, so 841 - 64 = 777px. In windows shorter than header + reach the base sticks higher, under the
     header, by its top padding only. */
  .wp-site-blocks .palladio-overlap-base { --palladio-overlap-reach: 777px; position: sticky; top: min(var(--palladio-header-offset), 100vh - var(--palladio-overlap-reach)); z-index: 0; }
  /* The sticky base is positioned: the cover and every later sibling must be too, or they would pass under it. */
  .wp-site-blocks .palladio-overlap-cover, .wp-site-blocks .palladio-overlap-cover ~ :not(.palladio-overlap-base) { position: relative; z-index: 1; }
}
/* Reveal sides (1.30.0): one class on a group, its children slide in while they scroll into view (Home: the four
   cards of "Gli spazi"). Four in a row: 1-2 from the left, 3-4 from the right; two columns (721-960px): left
   column from the left, right column from the right; one column (720px and below): fade only. Each card runs on
   its own view() timeline and settles at cover 30-36%, before reaching the middle of the window; the second card
   of each pair starts a little later. Without support or with reduced motion nothing is set: cards stay put. */
@keyframes palladio-reveal-left { from { opacity: .25; transform: translateX(calc(-1 * var(--palladio-reveal-shift))); } to { opacity: 1; transform: none; } }
@keyframes palladio-reveal-right { from { opacity: .25; transform: translateX(var(--palladio-reveal-shift)); } to { opacity: 1; transform: none; } }
@keyframes palladio-reveal-fade { from { opacity: .25; } to { opacity: 1; } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion:no-preference) {
    .wp-site-blocks .palladio-reveal-sides { --palladio-reveal-shift: 28px; }
    /* Shifted cards would widen the page where the side gutter is narrower than the shift (820-1100px):
       clip at the full-width section, i.e. the window edge, not at the group, so the cards still come in. */
    .wp-site-blocks .alignfull:has(.palladio-reveal-sides) { overflow-x: clip; }
    .wp-site-blocks .palladio-reveal-sides > * { animation: palladio-reveal-fade linear both; animation-timeline: view(); animation-range: entry 0% cover 30%; }
    .wp-site-blocks .palladio-reveal-sides > :nth-child(even) { animation-range: entry 20% cover 36%; }
  }
  @media (min-width:721px) and (prefers-reduced-motion:no-preference) {
    .wp-site-blocks .palladio-reveal-sides > :nth-child(odd) { animation-name: palladio-reveal-left; }
    .wp-site-blocks .palladio-reveal-sides > :nth-child(even) { animation-name: palladio-reveal-right; }
  }
  @media (min-width:961px) and (prefers-reduced-motion:no-preference) {
    .wp-site-blocks .palladio-reveal-sides > :nth-child(4n+1), .wp-site-blocks .palladio-reveal-sides > :nth-child(4n+2) { animation-name: palladio-reveal-left; }
    .wp-site-blocks .palladio-reveal-sides > :nth-child(4n+3), .wp-site-blocks .palladio-reveal-sides > :nth-child(4n) { animation-name: palladio-reveal-right; }
  }
  @media (min-width:1100px) and (prefers-reduced-motion:no-preference) {
    .wp-site-blocks .palladio-reveal-sides { --palladio-reveal-shift: 56px; }
  }
}

/* Marquee: any Group block with the `palladio-marquee` class. palladio-patterns.php adds the track, the
   hidden copy and `--active` on the site; the editor keeps the block's own layout (one list). The band
   leaves the content column at full width; the full-width ancestor clips the scrollbar's width. */
.alignfull:has(.palladio-marquee--active) { overflow-x: clip; }
.palladio-marquee.palladio-marquee--active {
  --palladio-marquee-gap: 18px; --palladio-marquee-item: 200px; --palladio-marquee-duration: 60s;
  display: block; width: 100vw; max-width: none; margin-inline: calc(50% - 50vw);
  overflow: hidden; padding-block: 2px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
/* The copy is the same width as the original, so moving by half the track ends where it started. */
.palladio-marquee .palladio-marquee__track { display: flex; width: max-content; animation: palladio-marquee var(--palladio-marquee-duration) linear infinite; }
.palladio-marquee .palladio-marquee__set { display: flex; flex: none; gap: var(--palladio-marquee-gap); padding-inline-end: var(--palladio-marquee-gap); }
.palladio-marquee .palladio-marquee__set > * { flex: 0 0 var(--palladio-marquee-item); margin: 0; }
.palladio-marquee:hover .palladio-marquee__track, .palladio-marquee:focus-within .palladio-marquee__track { animation-play-state: paused; }
@keyframes palladio-marquee { to { transform: translateX(-50%); } }
/* Pause toggle (palladio-patterns.js, WCAG 2.2.2), for the band and for the turning photos of the course pages
   (palladio-corso.css places that one): a round 44px button of the family of the carousel arrows, ink edge and icon;
   pause or play from aria-pressed. The band's sits under it at the right edge of the column, in the bottom padding of
   the section, so the page keeps its height. Hidden with reduced motion, where nothing moves. */
.palladio-pausa {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0;
  border: 1px solid var(--wp--preset--color--palladio-ink, #26221f); border-radius: 50%;
  background: transparent; color: var(--wp--preset--color--palladio-ink, #26221f); cursor: pointer;
}
.palladio-pausa svg { width: 16px; height: 16px; fill: currentColor; }
.palladio-pausa .palladio-pausa__play, .palladio-pausa[aria-pressed="true"] .palladio-pausa__pausa { display: none; }
.palladio-pausa[aria-pressed="true"] .palladio-pausa__play { display: block; }
.palladio-pausa:hover { background: var(--wp--preset--color--palladio-ink, #26221f); color: var(--wp--preset--color--base, #ffffff); }
.wp-site-blocks .palladio-pausa:focus-visible { background: var(--palladio-focus-fill) !important; border-color: var(--palladio-focus-fill) !important; color: var(--palladio-focus-on-fill) !important; }
.palladio-marquee.is-paused .palladio-marquee__track { animation-play-state: paused; }
:where(:has(> .palladio-pausa--loghi)) { position: relative; }
.palladio-pausa--loghi { position: absolute; top: calc(100% + 10px); right: 0; z-index: 1; }
@media (prefers-reduced-motion:reduce) { .palladio-pausa { display: none; } }
@media (max-width:720px) {
  .palladio-marquee.palladio-marquee--active { --palladio-marquee-gap: 12px; --palladio-marquee-item: 140px; --palladio-marquee-duration: 45s; }
  .palladio-home .palladio-marquee .palladio-home-credential { min-height: 88px; padding: 14px; }
  .palladio-home .palladio-marquee .palladio-home-credential img { max-height: 46px; }
}
/* Reduced motion: no animation, the original set scrolls by hand. */
@media (prefers-reduced-motion:reduce) {
  .palladio-marquee.palladio-marquee--active { overflow-x: auto; scroll-snap-type: x proximity; overscroll-behavior-x: contain; scrollbar-width: thin; --palladio-marquee-inset: max(24px,calc((100% - 1132px)/2)); scroll-padding-inline: var(--palladio-marquee-inset); }
  .palladio-marquee .palladio-marquee__track { animation: none; padding-inline: var(--palladio-marquee-inset); }
  .palladio-marquee .palladio-marquee__set[aria-hidden] { display: none; }
  .palladio-marquee .palladio-marquee__set { padding-inline-end: 0; }
  .palladio-marquee .palladio-marquee__set > * { scroll-snap-align: start; }
}

/* Header isolated to the Palladio template; menus remain native editable Navigation blocks. */
.palladio-header { color:var(--wp--preset--color--palladio-ink, #26221f); background:transparent; border-bottom:1px solid var(--wp--preset--color--palladio-border, #ece5d8); font-family:Inter,var(--wp--preset--font-family--manrope,sans-serif); font-size:16px; position:relative; z-index:10; }
.palladio-header * { box-sizing:border-box; }
/* The Navigation blocks included: the flow layout's block gap pushed both menus 19px below the logo and the phone. */
.palladio-header.palladio-header :where(p,figure,.wp-block-group,.wp-block-buttons,.wp-block-navigation) { margin-block:0; }
.palladio-header .palladio-header-quick { background:var(--wp--preset--color--palladio-cream, #faf7f2); border-bottom:1px solid var(--wp--preset--color--palladio-border, #ece5d8); }
.palladio-header .palladio-header-quick-inner { max-width:1440px; padding:0 28px; margin-inline:auto; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.palladio-header .palladio-header-phone { font-size:.78rem; white-space:nowrap; }
.palladio-header .palladio-header-phone a { display:inline-flex; align-items:center; min-height:44px; color:var(--wp--preset--color--palladio-text-secondary, #5a4a3f); text-decoration:none; }
.palladio-header .palladio-quick-nav { font-size:.78rem; font-weight:500; margin-left:auto; }
.palladio-header .palladio-quick-nav .wp-block-navigation__container { gap:24px; }
.palladio-header .palladio-quick-nav a { display:flex; align-items:center; min-height:44px; color:var(--wp--preset--color--palladio-text-secondary, #5a4a3f); text-decoration:none; }
.palladio-header .palladio-quick-nav a:hover { color:var(--wp--preset--color--palladio-red, #a8342a); }
.palladio-header .palladio-header-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; max-width:1440px; margin-inline:auto; padding:14px 28px; }
.palladio-header .palladio-header-logo { flex:0 0 auto; }
.palladio-header .palladio-header-logo a { display:block; }
.palladio-header .palladio-header-logo img { display:block; width:auto; height:58px; }
.palladio-header .palladio-header-nav { flex:1; color:var(--wp--preset--color--palladio-ink, #26221f); font-size:.88rem; font-weight:600; }
.palladio-header .palladio-header-nav .wp-block-navigation__container { gap:20px; }
.palladio-header .palladio-header-nav :where(a,button) { color:inherit; text-decoration:none; }
.palladio-header .palladio-header-nav a:hover { color:var(--wp--preset--color--palladio-red, #a8342a); }
.palladio-header .palladio-header-nav .wp-block-navigation-item > .wp-block-navigation-item__content { white-space:nowrap; }
.palladio-header .palladio-header-nav .wp-block-navigation-submenu { gap:6px; }
.palladio-header .palladio-header-nav .wp-block-navigation-submenu__toggle { min-height:44px; text-align:left; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container { min-width:300px; gap:0; padding:8px; border:1px solid var(--wp--preset--color--palladio-border, #ece5d8); border-radius:12px; background:var(--wp--preset--color--base, #ffffff); color:var(--wp--preset--color--palladio-ink, #26221f); box-shadow:0 20px 45px -20px color-mix(in srgb, var(--wp--preset--color--palladio-ink-warm, #2a211c) 25%, transparent); max-height:calc(100dvh - 180px); overflow:auto; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item { width:100%; }
.palladio-header .palladio-header-nav.wp-block-navigation .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation__submenu-container { min-width:340px; width:340px; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display:flex; align-items:center; min-height:44px; width:100%; padding:10px 12px; border-radius:8px; white-space:normal; line-height:1.4; }
/* Nested areas expand vertically so all courses remain reachable in a bounded dropdown. */
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-submenu { display:flex; flex-wrap:wrap; gap:0; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container > li.has-child { position:relative; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container > li.has-child > button { padding-right:36px; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container > li.has-child > .wp-block-navigation__submenu-icon { position:absolute; top:17px; right:12px; margin:0; pointer-events:none; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container > li.has-child > .wp-block-navigation__submenu-icon svg { transform:none; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container > li.has-child > button[aria-expanded="true"] + .wp-block-navigation__submenu-icon svg { transform:rotate(180deg); }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-submenu > .wp-block-navigation__submenu-container { position:static; min-width:0; max-height:none; width:100%; border:0; border-radius:6px; box-shadow:none; background:var(--wp--preset--color--palladio-cream, #faf7f2); margin:0; padding:0; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-submenu > [aria-expanded="false"] ~ .wp-block-navigation__submenu-container { display:none; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-submenu > [aria-expanded="true"] ~ .wp-block-navigation__submenu-container { display:flex; height:auto; visibility:visible; opacity:1; padding:4px 8px; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size:.84rem; font-weight:400; }
.palladio-header .palladio-header-actions { display:flex; align-items:center; flex-shrink:0; }
.palladio-header .palladio-header-cta .wp-block-button__link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:12px 20px; border-radius:999px; background:var(--wp--preset--color--palladio-red, #a8342a); color:var(--wp--preset--color--base, #ffffff); font-size:.85rem; font-weight:600; line-height:1.4; white-space:nowrap; text-decoration:none; }
.palladio-header .palladio-header-cta .wp-block-button__link:hover { background:var(--wp--preset--color--palladio-bordeaux, #6b1d23); }
/* The header's z-index:10 is a stacking context that also caps the fixed mobile overlay; while the overlay
   is open the header rises above positioned page content (e.g. .ps-sidebar, z-index:30). Since 1.10.0 the
   sticky template part around it does the same (see "Fixed glass header"). */
.palladio-header:has(.wp-block-navigation__responsive-container.is-menu-open) { z-index:100000; }
.palladio-header .palladio-header-nav .wp-block-navigation__responsive-container.is-menu-open { padding:28px 24px; background:var(--wp--preset--color--palladio-cream, #faf7f2); color:var(--wp--preset--color--palladio-ink, #26221f); }
.palladio-header .palladio-header-nav .is-menu-open .wp-block-navigation__responsive-container-content { align-items:stretch; padding-top:60px; }
.palladio-header .palladio-header-nav .is-menu-open .wp-block-navigation__container { align-items:stretch; width:100%; gap:8px; }
.palladio-header .palladio-header-nav .is-menu-open .wp-block-navigation-item { align-items:stretch; width:100%; }
.palladio-header .palladio-header-nav .is-menu-open .wp-block-navigation-item__content { padding:12px 0; white-space:normal; }
.palladio-header .palladio-header-nav .is-menu-open .wp-block-navigation__submenu-container { min-width:0; width:100%; max-height:none; box-shadow:none; margin-top:8px; }
.palladio-header .palladio-header-nav.wp-block-navigation .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation__submenu-container { min-width:0; width:100%; }
.palladio-header .palladio-header-nav .wp-block-navigation__responsive-container-open,
.palladio-header .palladio-header-nav .wp-block-navigation__responsive-container-close { min-width:44px; min-height:44px; align-items:center; justify-content:center; }
/* Close button always in view while the panel scrolls (long menu, open submenus, landscape): sticky in the scrolling
   overlay, at the top of its content (28px down, as at rest), so it never moves; the negative margin leaves the menu
   where it was. A band across the row (shadow clipped to the top of the panel and 8px below the button) hides the items
   passing under it, in the white the panel really has (the core rule for overlays without a background color outranks
   the cream above). */
.palladio-header .palladio-header-nav .is-menu-open .wp-block-navigation__responsive-container-close {
 position:sticky; top:0; z-index:3; display:block; margin:0 0 -44px auto;
 background:#fff; box-shadow:0 0 0 100vmax #fff; clip-path:inset(-28px -100vmax -8px -100vmax);
}
@media (max-width:1219px) {
 .palladio-header .palladio-header-inner { gap:16px; }
 .palladio-header .palladio-header-nav { order:3; flex:0 0 auto; }
 .palladio-header .palladio-header-actions { margin-left:auto; }
 .palladio-header .palladio-header-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none; }
 .palladio-header .palladio-header-nav .wp-block-navigation__responsive-container-open { display:flex; }
}
/* Header breakpoints in em (1em = the browser's text size, 16px by default): the same widths with the standard
   setting; with larger text the narrower layouts take over sooner. */
@media (max-width:45em) {
 .palladio-header .palladio-header-phone { display:none; }
 .palladio-header .palladio-header-quick-inner { padding:0 16px; justify-content:center; }
 .palladio-header .palladio-quick-nav { margin-inline:auto; font-size:.75rem; }
 .palladio-header .palladio-quick-nav .wp-block-navigation__container { gap:20px; justify-content:center; }
}
@media (max-width:30em) {
 .palladio-header .palladio-header-inner { padding:12px 16px; gap:10px; }
 .palladio-header .palladio-header-logo img { height:46px; }
 .palladio-header .palladio-header-cta .wp-block-button__link { font-size:.75rem; padding:10px 12px; white-space:normal; text-align:center; }
 .palladio-header .palladio-quick-nav .wp-block-navigation__container { gap:14px; }
/* Text too large for one bar (browser text at 150-200%, or the page zoomed on a phone): under 20em, which with the
   standard 16px is narrower than any phone (320px), the bar wraps. Logo and burger stay on the first row, the CTA
   takes the second one, full width; compact, only the first row stays (palladio-patterns.js measures it). */
@media (max-width:19.99em) {
 .palladio-header .palladio-header-inner { flex-wrap:wrap; row-gap:10px; }
 .palladio-header .palladio-header-inner > * { min-width:0; }
 .palladio-header .palladio-header-nav { margin-left:auto; }
 .palladio-header .palladio-header-actions { order:4; flex:1 0 100%; margin-left:0; }
 .palladio-header .palladio-header-actions :is(.wp-block-buttons,.palladio-header-cta,.wp-block-button__link) { width:100%; }
 .palladio-header.is-compact .palladio-header-actions { visibility:hidden; opacity:0; }
}
}

/* Match each native submenu's accessible expanded state in the mobile overlay. */
.palladio-header .palladio-header-nav .is-menu-open li.has-child { position:relative; flex-wrap:wrap; }
.palladio-header .palladio-header-nav .is-menu-open li.has-child > button { width:100%; padding-right:32px; }
.palladio-header .palladio-header-nav .is-menu-open li.has-child > .wp-block-navigation__submenu-icon { display:block; position:absolute; right:10px; top:18px; pointer-events:none; }
.palladio-header .palladio-header-nav .is-menu-open li.has-child > button[aria-expanded="false"] ~ .wp-block-navigation__submenu-container { display:none; }
.palladio-header .palladio-header-nav .is-menu-open li.has-child > button[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { display:flex; padding:8px 14px; margin:4px 0 12px; border-left:2px solid var(--wp--preset--color--palladio-gold, #d9a441); border-radius:0; }

/* Text-only navigation feedback (keyboard focus: palladio-focus.css in the child theme, also without a box). */
.palladio-header :is(.palladio-header-nav,.palladio-quick-nav) .wp-block-navigation-item__content {
 background:transparent; border:0; border-radius:0; box-shadow:none;
 text-decoration:underline; text-decoration-color:transparent; text-decoration-thickness:1px;
 text-underline-offset:.3em; transition:color .18s ease, text-decoration-color .18s ease;
}
.palladio-header :is(.palladio-header-nav,.palladio-quick-nav) .wp-block-navigation-item__content:is(:hover,:active,[aria-expanded="true"],[aria-current="page"]) {
 color:var(--wp--preset--color--palladio-red, #a8342a); background:transparent; text-decoration-color:currentColor;
}
.palladio-header .palladio-quick-nav .palladio-menu-calendar > a { color:var(--wp--preset--color--palladio-red, #a8342a); font-weight:650; }
/* Quick menu icons (1.18.1): Lucide (ISC) award, file-check, calendar, mail as CSS masks in currentColor, so they follow
   the link color, hover and focus. Decorative pseudo-elements, outside the accessibility tree; the menu items stay
   native navigation links with one of these classes. 14px inside the 44px row: the header height does not change. */
.palladio-header .palladio-quick-nav [class*="palladio-menu-icon-"] > a { gap:6px; }
.palladio-header .palladio-quick-nav [class*="palladio-menu-icon-"] > a::before {
 content:""; display:block; flex:0 0 14px; width:14px; height:14px; background:currentColor; mask:var(--palladio-menu-icon) center/contain no-repeat;
}
.palladio-header .palladio-quick-nav .palladio-menu-icon-award { --palladio-menu-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526'/%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3C/svg%3E"); }
.palladio-header .palladio-quick-nav .palladio-menu-icon-quality { --palladio-menu-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='m9 15 2 2 4-4'/%3E%3C/svg%3E"); }
.palladio-header .palladio-quick-nav .palladio-menu-icon-calendar { --palladio-menu-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E"); }
.palladio-header .palladio-quick-nav .palladio-menu-icon-mail { --palladio-menu-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E"); }
@media (max-width:30em) {
 .palladio-header .palladio-quick-nav .wp-block-navigation__container { display:grid; grid-template-columns:auto auto; column-gap:24px; row-gap:0; }
 .palladio-header .palladio-quick-nav .wp-block-navigation-item__content { justify-content:center; }
}
@media (prefers-reduced-motion:reduce) {
 .palladio-header :is(.palladio-header-nav,.palladio-quick-nav) .wp-block-navigation-item__content { transition:none; }
}

/* Main items with both a page and a submenu: text link + separate arrow toggle (.palladio-submenu-toggle,
   built by split_submenu_links() in PHP). Desktop: 44 × 44 px hit area, icon and spacing where the core
   click-mode toggle drew it (.25em + the 6px item gap after the label); the next item moves 6px so the hit
   area does not overlap it. Focus (no box with the mouse, an underline with the keyboard): palladio-focus.css. */
.palladio-header .palladio-header-nav li.has-child > .palladio-submenu-toggle {
 display:inline-flex; align-items:center; justify-content:flex-start; flex:0 0 auto; position:relative;
 width:44px; height:44px; min-height:44px; margin:0 calc(.85em - 32px) 0 -6px; padding:0 0 0 calc(.25em + 6px);
 border:0; background:transparent; color:inherit; cursor:pointer; pointer-events:auto;
}
.palladio-header .palladio-header-nav li.has-child > .palladio-submenu-toggle svg { width:.6em; height:.6em; margin-top:.075em; }
.palladio-header .palladio-header-nav li.has-child > .palladio-submenu-toggle:is(:hover,[aria-expanded="true"]),
.palladio-header .palladio-header-nav li.has-child:has(> .palladio-submenu-toggle[aria-expanded="true"]) > .wp-block-navigation-item__content {
 color:var(--wp--preset--color--palladio-red, #a8342a); text-decoration-color:currentColor;
}
/* Mobile overlay: the arrow sits where the previous icon was (right edge of the row), the link keeps the text. */
.palladio-header .palladio-header-nav .is-menu-open li.has-child > .palladio-submenu-toggle {
 display:flex; position:absolute; top:0; right:0; z-index:1; width:44px; justify-content:flex-end; pointer-events:auto; margin:0; padding:0 10px 0 0;
}
.palladio-header .palladio-header-nav .is-menu-open li.has-child > .palladio-submenu-toggle + .wp-block-navigation__submenu-container { margin-top:4px; }
.palladio-header .palladio-header-nav .is-menu-open li.has-child:has(> .palladio-submenu-toggle) > .wp-block-navigation-item__content { padding-right:52px; }
/* Nested items with a page and a submenu (Specializzazioni areas with their regional courses, palladio-submenu-link):
   the link fills the row, the arrow is a 44 × 44 px button on its right edge, where the nested arrow icon was, in the
   dropdown and in the mobile panel. Its keyboard focus line sits under the icon (the rule for the main items in
   palladio-focus.css measures from the left). */
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container > li.has-child > .palladio-submenu-toggle {
 display:flex; align-items:center; justify-content:flex-end; position:absolute; top:0; right:0; z-index:1;
 width:44px; height:44px; min-height:44px; margin:0; padding:0 12px 0 0; pointer-events:auto;
}
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container > li.has-child > .palladio-submenu-toggle svg { transform:none; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container > li.has-child > .palladio-submenu-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container > li.has-child:has(> .palladio-submenu-toggle) > .wp-block-navigation-item__content { padding-right:48px; }
.palladio-header .palladio-header-nav .wp-block-navigation__submenu-container .palladio-submenu-toggle:focus-visible::after { left:auto; right:10px; }
/* Desktop dropdown with these areas (Specializzazioni): with an area open the core sets overflow:visible on the open
   dropdown, so the items past its max-height went below the window, out of reach under the sticky header. Here the
   dropdown scrolls inside its max-height. Mobile panel: it scrolls by itself (palladio-header-mobile.css). */
@media (min-width:1220px) {
 .palladio-header .palladio-header-nav .wp-block-navigation__container > li.has-child > [aria-expanded="true"] ~ .wp-block-navigation__submenu-container:has(> .palladio-submenu-link) { overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; }
}

/* Fixed glass header (1.10.0; without layout shifts since 1.11.0). Sticky on the template part wrapper, whose
   parent is the whole page; below the WordPress toolbar when it is shown (fixed 32/46px; under 600px it scrolls
   with the page, so the header stops at 0). The header always keeps its open height in the flow: the compact
   state only moves it with transforms, so the content below never moves and scroll anchoring has nothing to
   compensate. The wrapper lets clicks through where the header has moved away.
   --palladio-header-offset: space taken at the top of the window by the compact header and the toolbar; sticky
   components and anchors are placed below it. */
:root { --palladio-header-offset:calc(var(--wp-admin--admin-bar--height, 0px) + 65px); }
.wp-site-blocks > .wp-block-template-part:has(> .palladio-header) { position:sticky; top:var(--wp-admin--admin-bar--height, 0px); z-index:100; pointer-events:none; }
.wp-site-blocks > .wp-block-template-part:has(.wp-block-navigation__responsive-container.is-menu-open) { z-index:100000; }
html:has(.wp-site-blocks > .wp-block-template-part > .palladio-header) { scroll-padding-top:var(--palladio-header-offset); }
@media screen and (max-width:600px) {
 :root { --palladio-header-offset:65px; }
 .admin-bar .wp-site-blocks > .wp-block-template-part:has(> .palladio-header) { top:0; }
}
/* Glass on a pseudo-element: a backdrop-filter on the header itself would become the containing block of the
   fixed mobile overlay and trap it inside the bar. The bottom border is drawn by the glass too, so that it
   follows the compact bar. */
.palladio-header { pointer-events:auto; border-bottom-color:transparent; transition:transform .3s ease; }
.palladio-header::before {
 content:""; position:absolute; inset:0 0 -1px; z-index:-1; pointer-events:none;
 border-bottom:1px solid var(--wp--preset--color--palladio-border, #ece5d8);
 background:var(--wp--preset--color--base, #ffffff);
 background:color-mix(in srgb, var(--wp--preset--color--base, #ffffff) 80%, transparent);
 -webkit-backdrop-filter:saturate(160%) blur(14px); backdrop-filter:saturate(160%) blur(14px);
 transition:transform .3s ease, box-shadow .25s ease;
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
 .palladio-header::before { background:color-mix(in srgb, var(--wp--preset--color--base, #ffffff) 97%, transparent); }
}
/* Compact state, class added by palladio-patterns.js past 40px of scroll. The header moves up by the quick row
   and half the extra height of the bar (--palladio-header-shift), the glass by the other half
   (--palladio-header-trim), so the visible bar is 64px plus the border; the logo goes from 58 to 42px with a
   scale. The quick row fades and becomes hidden, so its links leave the tab order. Values measured by the script. */
.palladio-header .palladio-header-quick { transition:opacity .2s ease, visibility 0s linear 0s; }
.palladio-header .palladio-header-inner { min-height:86px; }
.palladio-header .palladio-header-logo img { transform-origin:left center; transition:transform .3s ease; }
.palladio-header.is-compact { transform:translateY(calc(-1 * var(--palladio-header-shift, 56px))); pointer-events:none; }
.palladio-header.is-compact::before { transform:translateY(calc(-1 * var(--palladio-header-trim, 11px))); box-shadow:0 12px 30px -20px color-mix(in srgb, var(--wp--preset--color--palladio-ink, #26221f) 55%, transparent); pointer-events:auto; }
.palladio-header.is-compact .palladio-header-inner > * { pointer-events:auto; }
.palladio-header.is-compact .palladio-header-quick { opacity:0; visibility:hidden; transition:opacity .2s ease, visibility 0s linear .3s; }
.palladio-header.is-compact .palladio-header-logo img { transform:scale(calc(42 / 58)); }
@media (max-width:30em) {
 .palladio-header .palladio-header-inner { min-height:70px; }
 .palladio-header.is-compact .palladio-header-logo img { transform:scale(calc(42 / 46)); }
}
/* Open mobile menu: no transform on the header, which would trap the fixed overlay inside it. */
.palladio-header:has(.wp-block-navigation__responsive-container.is-menu-open) { transform:none; transition:none; }
/* Low windows with the burger (phones in landscape): one 64px bar from the start, as tall as the compact one, with its
   42px logo and without the quick row, whose links close the burger menu there (palladio-header-mobile.css). */
@media (max-width:1219px) and (max-height:500px) {
 .palladio-header .palladio-header-quick { display:none; }
 .palladio-header .palladio-header-inner { min-height:64px; padding-block:0; }
 .palladio-header .palladio-header-logo img, .palladio-header.is-compact .palladio-header-logo img { height:42px; transform:none; }
}
@media (prefers-reduced-motion:reduce) {
 .palladio-header, .palladio-header::before, .palladio-header .palladio-header-quick, .palladio-header.is-compact .palladio-header-quick,
 .palladio-header .palladio-header-logo img { transition:none; }
}
/* On the glass the Palladio red of the current, hovered or open item measured 4.2:1 over the darkest backgrounds
   (closing band of page 59): the items of the main bar use a deeper red from the same palette (4.5:1 minimum). */
.palladio-header { --palladio-header-accent:color-mix(in srgb, var(--wp--preset--color--palladio-red, #a8342a) 85%, var(--wp--preset--color--palladio-ink, #26221f)); }
/* Keyboard focus of the main menu in the same deeper red (rules in palladio-focus.css). */
.palladio-header .palladio-header-nav { --palladio-focus-text:var(--palladio-header-accent); }
.palladio-header .palladio-header-nav .wp-block-navigation__container > li > :is(.wp-block-navigation-item__content,.palladio-submenu-toggle):is(:hover,:active,[aria-expanded="true"],[aria-current="page"]),
.palladio-header .palladio-header-nav .wp-block-navigation__container > li.has-child:has(> .palladio-submenu-toggle[aria-expanded="true"]) > .wp-block-navigation-item__content { color:var(--palladio-header-accent); }
/* Mobile panel (under 1220px): it scrolls when taller than the screen. */
.palladio-header .palladio-header-nav .wp-block-navigation__responsive-container.is-menu-open { overflow-y:auto; overscroll-behavior:contain; }
/* Search of the 404 page (palladio-child/templates/404.html, pattern twentytwentyfive/hidden-404): with very large text
   (under 20em, never with the standard 16px on a phone) the button goes under the field instead of out of the window. */
@media (max-width:19.99em) {
 .wp-block-search__button-outside .wp-block-search__inside-wrapper { flex-wrap:wrap; gap:10px; }
 .wp-block-search__button-outside .wp-block-search__input { flex:1 0 100%; }
 .wp-block-search__button-outside .wp-block-search__button { margin-left:0; }
}
