/* Native blocks in the editor; progressive scroll enhancement on the front end.
   Colors: direction A (README, "Regola dei colori"): stone sidebar, cream stage, white cards.
   Titles (1.18.0): heading font of theme.json, tracking -0.03em (-0.02em under 24px). Focus: palladio-focus.css of
   the child theme (category bar, arrows, deck and links, without boxes). */
.palladio-specializations, .ps-after, .ps-tendenza { --ps-red:var(--wp--preset--color--palladio-red, #a8342a); --ps-ink:var(--wp--preset--color--palladio-ink-warm, #2a211c); --ps-cream:var(--wp--preset--color--palladio-cream, #faf7f2); --ps-stone:var(--wp--preset--color--palladio-stone, #f1e9de); --ps-white:var(--wp--preset--color--base, #ffffff); --ps-soft:var(--wp--preset--color--palladio-text-secondary, #5a4a3f); --ps-line:var(--wp--preset--color--palladio-line, #e7ded2); --ps-gold:var(--wp--preset--color--palladio-gold-antique, #c99a3a); --ps-border-strong:var(--wp--preset--color--palladio-border-strong, #7d6858); --ps-stone-deep:var(--wp--preset--color--palladio-stone-deep, #c9b8a4); --ps-heading-font:var(--wp--preset--font-family--palladio-heading, 'Plus Jakarta Sans', system-ui, sans-serif); --ps-heading-tracking:clamp(-.03em, calc(-.02em - (1em - 23.9px) * 2.4), -.02em); }
.palladio-specializations { color:var(--ps-ink); background:var(--ps-cream); font-family:var(--wp--preset--font-family--manrope,sans-serif); }
.palladio-specializations *, .ps-after *, .ps-tendenza *, .ps-tendenza *::before, .ps-tendenza *::after { box-sizing:border-box; }
.palladio-specializations.palladio-specializations :where(p,h1,h2,.wp-block-group,.wp-block-buttons) { margin-block:0; }
.palladio-specializations .ps-pin { display:grid; grid-template-columns:minmax(300px,35%) 1fr; max-width:1600px; margin-inline:auto; }
.palladio-specializations .ps-sidebar { padding:clamp(28px,4vw,64px); background:var(--ps-stone); position:relative; z-index:30; }
.palladio-specializations .ps-eyebrow { color:var(--ps-red); font-size:.75rem; letter-spacing:.16em; font-weight:700; }
.palladio-specializations .ps-title { font-family:var(--ps-heading-font); font-size:clamp(25.4px,2.54vw,40.45px); line-height:1.08; letter-spacing:var(--ps-heading-tracking); font-weight:700; margin-top:14px; overflow-wrap:anywhere; }
.palladio-specializations .ps-intro { font-size:13px; color:var(--ps-soft); margin:14px 0 24px; line-height:1.5; }
.palladio-specializations .ps-categories { align-items:flex-start; gap:6px; }
.palladio-specializations .ps-category { width:100%; }
.palladio-specializations .ps-category .wp-block-button__link { display:flex; gap:13px; align-items:center; min-height:44px; width:100%; padding:10px 15px; background:transparent; color:var(--ps-soft); border:1px solid transparent; border-radius:10px; text-align:left; font-size:14px; font-weight:500; line-height:1.3; text-decoration:none; transition:background .2s,color .2s,box-shadow .2s; }
.palladio-specializations .ps-category a::before { content:""; flex:0 0 19px; height:19px; background:currentColor; mask:var(--ps-icon) center/contain no-repeat; }
.palladio-specializations .ps-category a:hover { color:var(--ps-red); background:color-mix(in srgb, var(--ps-white) 44%, transparent); }
.palladio-specializations .ps-category a[aria-current="location"] { background:var(--ps-white); color:var(--ps-red); box-shadow:0 4px 14px color-mix(in srgb, var(--ps-ink) 4%, transparent); font-weight:700; }
.palladio-specializations .ps-skip { margin-top:24px; font-size:.75rem; }
.palladio-specializations .ps-skip a { color:var(--ps-soft); text-underline-offset:4px; }
/* 44px tap height (R-14), the line keeps its height: the negative margin gives back what the box has beyond it. */
.palladio-specializations .ps-skip a { display:inline-flex; align-items:center; min-height:44px; margin-block:calc((1lh - 44px) / 2); }
.palladio-specializations .ps-stage { position:relative; padding:36px; min-width:0; overflow:hidden; }
.palladio-specializations .ps-stage-label { color:var(--ps-soft); font-size:.75rem; font-weight:600; letter-spacing:.16em; position:relative; z-index:20; }
.palladio-specializations .ps-deck { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:30px; }
/* Strong border: 3:1 on the stage and on the veiled cards below. */
.palladio-specializations .ps-frame { --ps-frame-bg:var(--ps-white); display:flex; flex-direction:column; min-height:310px; padding:26px; background:var(--ps-frame-bg); border:1px solid var(--ps-border-strong); border-radius:20px; box-shadow:0 16px 32px -24px color-mix(in srgb, var(--ps-ink) 25%, transparent); scroll-margin-top:30px; }
.palladio-specializations .ps-frame-number { font-size:.75rem; font-weight:600; color:var(--ps-soft); letter-spacing:.12em; }
.palladio-specializations .ps-frame-empty { flex:1; min-height:140px; margin:22px 0; border:1px dashed var(--ps-gold); border-radius:10px; background:linear-gradient(135deg,color-mix(in srgb, var(--ps-white) 31%, transparent),transparent); }
/* The title comes first in the DOM (reading order: title, category link, courses) and stays at the bottom
   of the card, where the column flex layout used to put it because it was last in the DOM. */
.palladio-specializations .ps-frame-title { order:1; font-family:var(--ps-heading-font); font-size:clamp(20.7px,2.352vw,31.99px); font-weight:700; letter-spacing:var(--ps-heading-tracking); line-height:1.1; }
.palladio-specializations .ps-hint { color:var(--ps-soft); font-size:.75rem; text-align:center; margin-top:24px; }
.palladio-specializations.is-enhanced { height:var(--ps-track-height); }
.palladio-specializations.is-enhanced .ps-pin { position:sticky; top:var(--ps-top,16px); height:var(--ps-pin-height); }
.palladio-specializations.is-enhanced .ps-sidebar { display:flex; flex-direction:column; justify-content:center; padding-block:24px; }
.palladio-specializations.is-enhanced .ps-stage { display:flex; flex-direction:column; padding:32px clamp(20px,4vw,60px); }
.palladio-specializations.is-enhanced .ps-deck { position:relative; flex:1; min-height:0; display:block; margin:0; perspective:1400px; cursor:grab; touch-action:pan-y pinch-zoom; }
.palladio-specializations.is-enhanced .ps-deck.is-dragging { cursor:grabbing; }
.palladio-specializations.is-enhanced .ps-frame { position:absolute; left:50%; top:50%; width:min(70%,420px); height:min(80%,530px); min-height:0; margin:0; transform-origin:center; backface-visibility:hidden; will-change:transform; user-select:none; }
.palladio-specializations.is-enhanced .ps-frame-empty { min-height:0; }
.palladio-specializations.is-enhanced .ps-hint { margin:0; }
.palladio-specializations .ps-controls { position:relative; z-index:20; display:flex; align-items:center; justify-content:center; gap:20px; padding:18px 0 0; }
.palladio-specializations .ps-controls button { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; border:1px solid var(--ps-line); background:transparent; color:var(--ps-red); font-size:20px; cursor:pointer; }
.palladio-specializations .ps-controls button:hover { background:var(--ps-stone); }
/* Inactive arrow: lighter glyph and border, no opacity, so its keyboard focus keeps full contrast (disabled state,
   exempt from the contrast thresholds). */
.palladio-specializations .ps-controls button[aria-disabled="true"] { color:var(--ps-stone-deep); border-color:var(--ps-line); background:transparent; cursor:default; }
.palladio-specializations .ps-counter { font-size:.75rem; color:var(--ps-soft); min-width:50px; text-align:center; font-variant-numeric:tabular-nums; }
.ps-after { padding:90px 24px; text-align:center; background:var(--ps-white); color:var(--ps-ink); font-family:var(--wp--preset--font-family--manrope,sans-serif); }
.ps-after h2 { font-family:var(--ps-heading-font); font-size:clamp(23.52px,2.822vw,35.75px); font-weight:700; letter-spacing:var(--ps-heading-tracking); line-height:1.08; }
.ps-after p { font-size:16px; color:var(--ps-soft); }
.ps-after .wp-block-buttons { justify-content:center; }
.ps-after .wp-block-button__link { background:var(--ps-red); color:var(--ps-white); border-radius:99px; font-size:14px; }
@media (min-width:781px) and (max-height:760px) {
 .palladio-specializations.is-enhanced .ps-title { font-size:27.28px; margin-top:10px; }
 .palladio-specializations.is-enhanced .ps-intro { margin:10px 0 14px; }
 .palladio-specializations.is-enhanced .ps-categories { gap:1px; }
 .palladio-specializations.is-enhanced .ps-skip { margin-top:14px; }
}
@media (max-width:780px) {
 /* minmax(0,…) keeps the max-content category bar from widening the column in the static fallback. */
 .palladio-specializations .ps-pin { grid-template-columns:minmax(0,1fr); }
 .palladio-specializations .ps-sidebar { padding:26px 20px 20px; }
 .palladio-specializations .ps-title { font-size:28.22px; margin-top:9px; }
 .palladio-specializations .ps-intro { margin:10px 0 16px; }
 /* position: the scroll container is the containing block of the links' screen-reader text (absolute):
    otherwise, positioned against the sidebar, the text of a scrolled-out link widened the page (417px). */
 .palladio-specializations .ps-navigation { position:relative; overflow-x:auto; scrollbar-width:thin; padding:4px; margin-inline:-4px; }
 .palladio-specializations .ps-categories { flex-direction:row; flex-wrap:nowrap; width:max-content; gap:6px; }
 .palladio-specializations .ps-category { width:auto; flex-shrink:0; }
 .palladio-specializations .ps-category .wp-block-button__link { width:auto; font-size:13px; white-space:nowrap; padding:10px 12px; border-color:var(--ps-line); }
 .palladio-specializations .ps-skip { margin-top:12px; }
 .palladio-specializations .ps-stage { padding:24px 20px; }
 .palladio-specializations .ps-deck { grid-template-columns:1fr; }
 .palladio-specializations.is-enhanced .ps-pin { display:flex; flex-direction:column; }
 .palladio-specializations.is-enhanced .ps-sidebar { flex:none; padding:18px 20px 14px; }
 .palladio-specializations.is-enhanced .ps-stage { flex:1; min-height:0; padding:20px 20px 16px; }
 .palladio-specializations.is-enhanced .ps-frame { width:min(76%,360px); height:85%; padding:20px; border-radius:16px; }
 .palladio-specializations.is-enhanced .ps-frame-title { font-size:23.52px; }
 .palladio-specializations.is-enhanced .ps-frame-empty { margin:14px 0; }
 .palladio-specializations .ps-controls { padding-top:10px; gap:16px; }
}
@media (prefers-reduced-motion:reduce) {
 .palladio-specializations * { transition:none!important; }
 .palladio-specializations .ps-hint { display:none; }
}
/* The editor always presents all nine frames in normal document flow. */
.editor-styles-wrapper .palladio-specializations .ps-pin { height:auto; position:static; }

.palladio-specializations .ps-controls[hidden] { display:none; }
.palladio-specializations .ps-icon-lingue { --ps-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%204h10v9H8l-4%203V4Z%20M10%2013v5h6l4%203V9h-6%22%2F%3E%3Cpath%20d%3D%22M7%207h4M7%2010h3%22%2F%3E%3C%2Fsvg%3E"); }
.palladio-specializations .ps-icon-web-grafica { --ps-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2215%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%208h18M7%206h.01M10%206h.01M8%2012l-2%202%202%202M16%2012l2%202-2%202M13%2011l-2%206%22%2F%3E%3C%2Fsvg%3E"); }
.palladio-specializations .ps-icon-informatica { --ps-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2213%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%2021h8M12%2017v4M7%208h4M7%2011h7%22%2F%3E%3C%2Fsvg%3E"); }
.palladio-specializations .ps-icon-contabilita { --ps-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%225%22%20y%3D%222%22%20width%3D%2214%22%20height%3D%2220%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%206h8M8%2010h1M12%2010h1M16%2010h.01M8%2014h1M12%2014h1M16%2014h.01M8%2018h1M12%2018h1M16%2018h.01%22%2F%3E%3C%2Fsvg%3E"); }
.palladio-specializations .ps-icon-food-wine { --ps-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%203v6c0%203%205%203%205%200V3M6.5%203v18M16%203h4l1%206c0%205-6%205-6%200l1-6ZM18%2013v8M15%2021h6%22%2F%3E%3C%2Fsvg%3E"); }
.palladio-specializations .ps-icon-sartoria { --ps-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2218%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M8%208l12%2013M8%2016%2020%203M12%2012h.01%22%2F%3E%3C%2Fsvg%3E"); }
.palladio-specializations .ps-icon-sanita { --ps-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%203h6v6h6v6h-6v6H9v-6H3V9h6V3Z%22%2F%3E%3C%2Fsvg%3E"); }
.palladio-specializations .ps-icon-arte-disegno { --ps-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m14%203%207%207-10%2010H4v-7L14%203ZM11%206l7%207M4%2013l7%207M15%202l7%207%22%2F%3E%3C%2Fsvg%3E"); }
.palladio-specializations .ps-icon-human-skill { --ps-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M3%2021v-3a6%206%200%200%201%2012%200v3M17%204a3%203%200%200%201%200%206M18%2014a5%205%200%200%201%203%205v2%22%2F%3E%3C%2Fsvg%3E"); }

/* Course links in a frame's free content group: a compact native list. In the fixed-height deck of short
   viewports the group scrolls rather than letting the list cover the frame title. */
.palladio-specializations .ps-frame-empty > .wp-block-list { margin:0; padding:12px 14px 12px 32px; font-size:16px; line-height:1.35; }
.palladio-specializations .ps-frame-empty > .wp-block-list li + li { margin-top:4px; }
.palladio-specializations.is-enhanced .ps-frame-empty { overflow-y:auto; }
/* "Tutti i corsi di …" comes right after the title in the DOM and sits above the course list. */
.palladio-specializations .ps-frame-empty > .ps-frame-all { margin:0; padding:12px 14px 0 18px; font-size:16px; font-weight:600; line-height:1.35; }
.palladio-specializations .ps-frame-empty > .ps-frame-all + .wp-block-list { padding-top:8px; }
/* More than five courses: two columns from 1024 px. */
@media (min-width:1024px) {
 .palladio-specializations .ps-frame-empty > .wp-block-list:has(> li:nth-child(6)) { columns:2; column-gap:30px; }
 .palladio-specializations .ps-frame-empty > .wp-block-list:has(> li:nth-child(6)) li { break-inside:avoid; }
 /* The theme's top margin on the first item would push the first column 8 px below the second. */
 .palladio-specializations .ps-frame-empty > .ps-frame-all + .wp-block-list:has(> li:nth-child(6)) { padding-top:16px; }
 .palladio-specializations .ps-frame-empty > .wp-block-list:has(> li:nth-child(6)) li:first-child { margin-top:0; }
}
/* Deck: solid cards, a darker solid fill for lower cards, content only in the shown frame. The content
   appears with a short fade and disappears at once: no crossfade between two frames. The veil is the deep stone. */
.palladio-specializations.is-enhanced .ps-frame { background:color-mix(in srgb, var(--ps-frame-bg), var(--ps-stone-deep) calc(var(--ps-depth, 0) * 18%)); }
.palladio-specializations.is-enhanced .ps-frame > * { opacity:0; }
.palladio-specializations.is-enhanced .ps-frame.is-shown > * { opacity:1; transition:opacity .16s ease-out; }
@media (prefers-reduced-motion:reduce) {
 .palladio-specializations .ps-frame > * { transition:none; }
}

/* Corsi in tendenza (1.37.7, includes/specializzazioni.php): three white cards between the scrolling cards and the final
   call to action; one column up to 860px. Icon: a stone tile with the Lucide icon of the area in bordeaux. The card lifts
   4px on hover (pointer devices, motion allowed). Button: palladio-card-cta--md. */
.ps-tendenza { padding:clamp(56px,8vw,96px) clamp(16px,4vw,32px) clamp(48px,6vw,72px); background:var(--ps-cream); color:var(--ps-ink); font-family:var(--wp--preset--font-family--manrope,sans-serif); font-size:16px; line-height:1.55; }
.ps-tendenza.ps-tendenza.ps-tendenza :where(h2,h3,p,.wp-block-group) { margin-block:0; }
.ps-tendenza.ps-tendenza { margin-block:0; }
.ps-tendenza .ps-tendenza-wrap { position:relative; z-index:1; max-width:1180px; margin-inline:auto; }
/* Join with the scrolling cards (1.37.8): the top starts from the colours at the bottom of the stage, sampled across the
   width (1.37.9: stone under the sidebar up to 35%, the stage's stone fade, then the flat sand its last 160px end on, see palladio-sfondo-dinamico.css; on one column only that sand), and fades into the cream over
   clamp(160px,16vw,220px). The stage itself is not touched. Below, the final call to action starts from this cream. */
.ps-tendenza { position:relative; isolation:isolate; }
.ps-tendenza::before {
  content:""; position:absolute; inset:0 0 auto; z-index:0; height:clamp(160px,16vw,220px); pointer-events:none;
  background:linear-gradient(90deg, #f1e9de 0, #f1e9de 35%, var(--ps-tendenza-sabbia,#e4d4bb) 47%, var(--ps-tendenza-sabbia,#e4d4bb) 100%);
  -webkit-mask-image:linear-gradient(180deg, #000, transparent); mask-image:linear-gradient(180deg, #000, transparent);
}
@media (max-width:780px) {
 .ps-tendenza::before { height:160px; background:var(--ps-tendenza-sabbia,#e4d4bb); }
}
.ps-tendenza .ps-tendenza-titolo { font-family:var(--ps-heading-font); font-size:clamp(23.52px,2.822vw,35.75px); font-weight:700; line-height:1.08; letter-spacing:var(--ps-heading-tracking); }
.ps-tendenza.ps-tendenza.ps-tendenza .ps-tendenza-carte { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2.4vw,28px); margin-top:clamp(24px,3vw,36px); }
.ps-tendenza .ps-tendenza-carta {
  position:relative; display:flex; flex-direction:column; gap:12px; padding:28px; border:1px solid var(--ps-line); border-radius:18px; background:var(--ps-white);
  box-shadow:0 1px 2px rgba(42,33,28,.1), 0 22px 26px -24px rgba(74,20,27,.45); transition:transform .25s ease, box-shadow .25s ease;
}
.ps-tendenza .ps-tendenza-carta::before { content:""; width:52px; height:52px; margin-bottom:6px; border-radius:14px; background:var(--ps-stone); }
.ps-tendenza .ps-tendenza-carta::after { content:""; position:absolute; left:41px; top:41px; width:26px; height:26px; background:var(--wp--preset--color--palladio-bordeaux,#6b1d23); mask:var(--ps-tendenza-icon) center / contain no-repeat; }
.ps-tendenza .ps-tendenza-nome { font-family:var(--ps-heading-font); font-size:1.35rem; font-weight:700; line-height:1.2; letter-spacing:-.02em; }
.ps-tendenza .ps-tendenza-testo { flex:1; color:var(--ps-soft); }
.ps-tendenza.ps-tendenza.ps-tendenza .palladio-card-cta { margin-top:8px; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 .ps-tendenza .ps-tendenza-carta:hover { transform:translateY(-4px); box-shadow:0 1px 3px rgba(42,33,28,.1), 0 26px 40px -22px rgba(74,20,27,.34); }
}
@media (max-width:860px) {
 .ps-tendenza.ps-tendenza.ps-tendenza .ps-tendenza-carte { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
 .ps-tendenza .ps-tendenza-carta { transition:none; }
}
/* Card "Lingue" (20/10/2026): list of the five courses between the text and the button. The list takes the free space
   instead of the text, so the button stays at the bottom and the grid keeps the three cards the same height. */
.ps-tendenza .ps-tendenza-carta:has(> .ps-tendenza-lingue) .ps-tendenza-testo { flex:0 0 auto; }
.ps-tendenza.ps-tendenza.ps-tendenza .ps-tendenza-lingue { flex:1; margin:0; padding:0; list-style:none; border-top:1px solid var(--ps-line); font-size:15px; line-height:1.3; }
.ps-tendenza.ps-tendenza.ps-tendenza .ps-tendenza-lingue li { margin:0; border-bottom:1px solid var(--ps-line); }
.ps-tendenza .ps-tendenza-lingue a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; padding:0 4px; color:var(--ps-ink); font-weight:600; text-decoration:none; }
.ps-tendenza .ps-tendenza-lingue a::after { content:""; flex:none; width:7px; height:7px; margin-right:4px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); color:var(--wp--preset--color--palladio-bordeaux,#6b1d23); }
.ps-tendenza .ps-tendenza-lingue a:hover { color:var(--wp--preset--color--palladio-bordeaux,#6b1d23); text-decoration:underline; text-underline-offset:3px; }
.ps-tendenza .ps-tendenza-lingue a:focus-visible { outline:2px solid var(--wp--preset--color--palladio-bordeaux,#6b1d23); outline-offset:2px; border-radius:4px; }

/* Area cards with a photo (1.37.54, page 51): white card, number and title at the top as before, then the photo whole
   in a 3:2 window as wide as the content (Image block after the title), under a uniform bordeaux veil (1.37.55: the
   bordeaux of the button, 16%; light gold 18% before; the same on every card, on the photo only); "Scopri i corsi"
   at the bottom opens the course panel upwards, over the photo, never over the title (palladio-specializations.js adds
   the button and the .ps-menu wrapper, the frame gets .has-menu). Without the script the panel stays open under the
   photo. In the deck the card is taller (+26% at 1440x900, +23% at 390x844,
   8px clear of the stage label and of the hint): the stage gives the deck more room. */
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) {
  --ps-foto-velo: var(--wp--preset--color--palladio-bordeaux, #6b1d23);
  --ps-foto-notte: var(--wp--preset--color--palladio-bordeaux-deep, #4a141b);
  --ps-foto-freccia: 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='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
  --ps-foto-chevron: 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='m18 15-6-6-6 6'/%3E%3C/svg%3E");
  --ps-foto-pad: 26px;
  display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto auto; align-content: start;
}
.palladio-specializations:not(.is-enhanced) .ps-frame:has(> figure.wp-block-image img[src]) { min-height: 560px; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) > * { grid-column: 1; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) > .ps-frame-title { order: 0; margin-top: 8px; }
/* Short gold rule under the title, left-aligned with it (1.37.54, v5). */
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) > .ps-frame-title::after { content: ""; display: block; width: 48px; height: 2px; margin-top: 12px; background: var(--ps-gold); }
/* Photo frame: 2px gold border and a 6px white mat around the 3:2 photo; the frame reaches 12px from the card edge
   (into the card padding), so the photo is wider and the space above and below it smaller. The veil covers the
   photo only, inside the mat. */
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) > figure.wp-block-image { position: relative; width: calc(100% + 2 * (var(--ps-foto-pad) - 12px)); max-width: none; min-height: 0; margin: 16px calc(12px - var(--ps-foto-pad)) 0; padding: 6px; border: 2px solid var(--ps-gold); border-radius: 12px; background: var(--ps-white); align-self: center; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) > figure.wp-block-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) > figure.wp-block-image::after { content: ""; position: absolute; inset: 6px; border-radius: 6px; pointer-events: none; background: color-mix(in srgb, var(--ps-foto-velo) 16%, transparent); }
/* Course panel: cream, dark bordeaux text, clean rows with an arrow; "Tutti i corsi di …" last. */
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty {
  --palladio-focus-text: var(--ps-foto-notte);
  flex: none; min-height: 0; margin: 16px 0 0; border: 0; border-radius: 12px; overflow-y: auto; overscroll-behavior: contain;
  background: color-mix(in srgb, var(--ps-cream) 96%, transparent); color: var(--ps-foto-notte);
  box-shadow: 0 1px 2px rgba(42,33,28,.12), 0 14px 30px -14px rgba(42,33,28,.5);
}
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty > .wp-block-list { margin: 0; padding: 4px 0; list-style: none; columns: auto; font-size: 15px; font-weight: 500; line-height: 1.3; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty > .wp-block-list li { margin: 0; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty > .wp-block-list li + li { border-top: 1px solid color-mix(in srgb, var(--ps-foto-notte) 14%, transparent); }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty > .ps-frame-all { margin: 0; padding: 0; border-top: 1px solid color-mix(in srgb, var(--ps-foto-notte) 28%, transparent); font-size: 14px; font-weight: 700; line-height: 1.3; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty a {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px;
  color: var(--ps-foto-notte); text-decoration: none; transition: background-color .15s;
}
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty > .ps-frame-all a { padding-block: 12px; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty a::after {
  content: ""; flex: none; width: 15px; height: 15px; background: currentColor; mask: var(--ps-foto-freccia) center / contain no-repeat; transition: transform .2s;
}
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty a:is(:hover, :focus-visible) { background: var(--ps-stone); }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty a:is(:hover, :focus-visible)::after { transform: translateX(3px); }
.wp-site-blocks .palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty a:focus-visible { outline: 2px solid var(--wp--preset--color--palladio-bordeaux-deep, #4a141b) !important; outline-offset: -3px; }
/* With the script: the photo is centred in the space between title and button; the menu wrapper spans that space and
   the button row, and the panel opens upwards from the button over the photo, scrolling when it is too long. */
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]).has-menu { grid-template-rows: auto auto 1fr 60px; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]).has-menu > .ps-menu { grid-row: 3 / 5; position: relative; z-index: 2; min-height: 0; display: flex; flex-direction: column; justify-content: flex-end; margin-top: 16px; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]).has-menu .ps-menu > .ps-frame-empty { position: absolute; left: 0; right: 0; bottom: 54px; max-height: calc(100% - 54px); margin: 0; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]).has-menu .ps-menu > .ps-frame-empty[hidden] { display: none; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]).has-menu .ps-menu > .ps-frame-empty:not([hidden]) { animation: ps-menu-in .16s ease-out; }
.palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]).has-menu > figure.wp-block-image { grid-row: 3; margin-bottom: 0; }
@keyframes ps-menu-in { from { opacity: 0; transform: translateY(6px); } }
.palladio-specializations .ps-menu-button {
  --palladio-focus-text: var(--wp--preset--color--base, #ffffff);
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 44px; margin: 0; padding: 8px 16px;
  border: 0; border-radius: 8px; background: var(--wp--preset--color--palladio-bordeaux, #6b1d23); color: var(--wp--preset--color--base, #ffffff);
  font: inherit; font-size: 15px; font-weight: 500; line-height: 1.25; cursor: pointer; transition: background-color .2s;
}
.palladio-specializations .ps-menu-button::after {
  content: ""; flex: none; width: 16px; height: 16px; background: currentColor; mask: var(--ps-foto-chevron, none) center / contain no-repeat; transition: transform .2s;
}
.palladio-specializations .ps-menu-button[aria-expanded="true"]::after { transform: rotate(180deg); }
.palladio-specializations .ps-menu-button:hover, .palladio-specializations .ps-menu-button[aria-expanded="true"] { background: var(--wp--preset--color--palladio-bordeaux-deep, #4a141b); }
.wp-site-blocks .palladio-specializations .ps-menu-button:focus-visible { outline: 2px solid var(--wp--preset--color--palladio-bordeaux-deep, #4a141b) !important; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
 .palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]).has-menu .ps-menu > .ps-frame-empty:not([hidden]) { animation: none; }
 .palladio-specializations .ps-menu-button, .palladio-specializations .ps-menu-button::after, .palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty a, .palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty a::after { transition: none; }
}
/* Taller card in the deck: less padding around the stage, the card takes 96% of the deck (at most 660px); on narrow
   screens all of it but 8px above and below. */
.palladio-specializations.is-enhanced:has(.ps-frame > figure.wp-block-image img[src]) .ps-stage { padding-block: 16px; }
.palladio-specializations.is-enhanced .ps-frame:has(> figure.wp-block-image img[src]) { height: min(96%, 660px); }
@media (max-width:780px) {
 .palladio-specializations:not(.is-enhanced) .ps-frame:has(> figure.wp-block-image img[src]) { min-height: 480px; }
 .palladio-specializations.is-enhanced:has(.ps-frame > figure.wp-block-image img[src]) .ps-stage { padding-block: 4px 2px; }
 .palladio-specializations.is-enhanced:has(.ps-frame > figure.wp-block-image img[src]) .ps-controls { padding-top: 4px; }
 .palladio-specializations.is-enhanced .ps-frame:has(> figure.wp-block-image img[src]) { --ps-foto-pad: 20px; height: calc(100% - 16px); }
 .palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty > .wp-block-list { font-size: 14px; }
 .palladio-specializations .ps-frame:has(> figure.wp-block-image img[src]) .ps-frame-empty a { padding: 8px 14px; }
}
/* Loading: in the deck only the shown frame and the next one display their photo, so the lazy photos of the others
   load when their turn comes. Before the deck script runs, the frames sit in the static grid within the browser's
   lazy distance: where the script will turn on the deck (same width, height and motion conditions as
   palladio-specializations.js), the photos from the third frame on are not displayed yet. */
.palladio-specializations.is-enhanced .ps-frame:not(.is-shown):not(.is-shown + .ps-frame) > figure.wp-block-image { display: none; }
@media (scripting: enabled) and (prefers-reduced-motion: no-preference) and (min-width: 781px) and (min-height: 700px),
  (scripting: enabled) and (prefers-reduced-motion: no-preference) and (min-width: 600px) and (max-width: 780px) and (min-height: 600px),
  (scripting: enabled) and (prefers-reduced-motion: no-preference) and (max-width: 599px) and (min-height: 740px) {
 .palladio-specializations:not(.is-enhanced) .ps-frame:nth-child(n+3) > figure.wp-block-image { display: none; }
}
/* Area drawing (28/10/2026): a faint gold line drawing of the area (--ps-disegno, set per ps-frame-<area> class in
   includes/specializzazioni.php) in the free space right of the title, from the top padding edge to above the photo,
   flush with the inner right edge. Its size never reaches the title or the photo: the width is what the title leaves
   less 16px (title width: --ps-disegno-em times the title size, 1em here, plus its tracking times its letters,
   --ps-disegno-lettere), the height ends 12px
   above the photo (the photo is centred between title and button: its top follows from the card height, 100%, and
   its width, 100cqi), both at most 150px or 40% of the inner width; under 64px the drawing is not shown. A title that
   wraps (--ps-disegno-riga, its one-line width) uses its wider line and hides the drawing while it fits on one line.
   Only with the course menu (frame layout of the script); in the deck only on the shown card, like its content. */
.palladio-specializations .ps-frame.has-menu:has(> figure.wp-block-image img[src]) { container-type: inline-size; }
.palladio-specializations:not(.is-enhanced) .ps-frame.has-menu:has(> figure.wp-block-image img[src]) { position: relative; }
.palladio-specializations .ps-frame.has-menu:has(> figure.wp-block-image img[src])::before {
  --ps-disegno-max: min(150px, 40cqi);
  --ps-disegno-w: calc(100cqi - var(--ps-disegno-em, 99) * 1em - var(--ps-disegno-lettere, 0) * var(--ps-heading-tracking) - 16px);
  --ps-disegno-h: calc((1.1em + 100% - 8px - ((100cqi + 2 * var(--ps-foto-pad) - 40px) * 2 / 3 + 16px)) / 2 - var(--ps-foto-pad) - 12px);
  content: ""; position: absolute; top: var(--ps-foto-pad); right: var(--ps-foto-pad); z-index: 0; pointer-events: none;
  font-size: clamp(20.7px,2.352vw,31.99px);
  width: max(0px, min(var(--ps-disegno-max), var(--ps-disegno-w), (var(--ps-disegno-w) - 64px) * 1000, (var(--ps-disegno-riga, 99em) - 100cqi) * 1000));
  height: max(0px, min(var(--ps-disegno-max), var(--ps-disegno-h), (var(--ps-disegno-h) - 64px) * 1000));
  background: var(--ps-gold); opacity: .15;
  -webkit-mask: var(--ps-disegno, none) right top / contain no-repeat; mask: var(--ps-disegno, none) right top / contain no-repeat;
}
.palladio-specializations.is-enhanced .ps-frame.has-menu:not(.is-shown):has(> figure.wp-block-image img[src])::before { opacity: 0; }
.palladio-specializations.is-enhanced .ps-frame.has-menu.is-shown::before { transition: opacity .16s ease-out; }
@media (max-width:780px) {
 .palladio-specializations.is-enhanced .ps-frame.has-menu:has(> figure.wp-block-image img[src])::before { font-size: 23.52px; }
}
@media (prefers-reduced-motion:reduce) {
 .palladio-specializations .ps-frame.has-menu::before { transition: none; }
}
