:root {
  --ink: #142940;
  --paper: #F5F2F2;
  --orange: #F0571C;
  --pink: #E5C2BD;
  --yellow: #FAD170;
  --blue: #96B5CF;
  --stone: #DED9D4;
  --sage: #BDCFB2;
  --garnet: #5C0F0D;
}
@font-face {
  font-family: "N27";
  src: url("assets/fonts/N27-Light.otf") format("opentype");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}
@font-face {
  font-family: "N27";
  src: url("assets/fonts/N27-Regular.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "N27";
  src: url("assets/fonts/N27-Medium.otf") format("opentype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "N27";
  src: url("assets/fonts/N27-Bold.otf") format("opentype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"N27", Arial, sans-serif}a{color:inherit}button,input{font:inherit}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--garnet);outline-offset:3px}header{border-bottom:1px solid var(--stone)}.bar,main,footer{max-width:1250px;margin:auto;padding-inline:clamp(18px,5vw,70px)}.bar{display:flex;align-items:center;gap:38px;min-height:78px}.brand{margin-right:auto}.brand img{width:108px;height:auto;display:block}nav{display:flex;gap:28px}nav a{text-decoration:none;font-size:14px;padding-block:12px}nav a[aria-current]{font-weight:700;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:8px}.book,.cta{background:var(--ink);color:var(--paper);text-decoration:none;padding:12px 18px;border-radius:5px;font-weight:500;font-size:14px}.book span{margin-left:10px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;padding:44px 0 39px;border-bottom:1px solid var(--stone)}.intro .date,.kicker,.kind,.time{font-weight:500;font-size:12px;line-height:1.4;letter-spacing:0.035em}.date{display:flex;align-items:center;gap:9px}.date i{width:9px;height:9px;border-radius:50%;background:var(--orange)}h1{font-size:clamp(62px,6.6vw,96px);line-height:.86;letter-spacing:-0.0375em;margin:24px 0 16px}h1 span{color:var(--orange)}.intro p{font-weight:400;margin:0 0 20px;text-transform:uppercase;font-size:calc(clamp(16px,1.65vw,24px) + 0.5pt);letter-spacing:-0.0175em}.intro small{font-size:14px}.art{width:100%;max-height:335px;border-radius:3px}.sectionhead{margin:34px 0 20px;display:flex;justify-content:space-between;align-items:end;gap:14px}h2{font-size:clamp(32px,4vw,49px);letter-spacing:-0.0275em;margin:5px 0 0;line-height:1.1}.kicker{color:var(--garnet)}.sectionhead a,.source{font-size:13px;text-underline-offset:3px}.days{display:flex;border-bottom:1px solid var(--stone);gap:8px}.days button{flex:1;text-align:left;display:flex;align-items:center;gap:15px;background:transparent;color:inherit;border:0;padding:14px 18px;border-radius:5px 5px 0 0;cursor:pointer}.days button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.days b{font-size:30px;letter-spacing:-0.03em}.days span{font-size:14px}.dayinfo{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;margin:20px 0;font-size:14px}.dayinfo strong{font-weight:500}.session{display:grid;grid-template-columns:120px 1fr auto;align-items:center;border-top:1px solid var(--stone);padding:20px 0;gap:15px}.session h3,.card h3{margin:4px 0;font-size:21px;letter-spacing:-0.0175em}.session a,.entry{font-size:14px;text-underline-offset:3px}.session .kind{background:var(--pink);padding:5px 9px;border-radius:3px;letter-spacing:0.01em;justify-self:start}.session p{margin:5px 0 0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0}.card{border:1px solid var(--stone);border-radius:6px;overflow:hidden;background:var(--paper);display:flex;flex-direction:column}.card img,.portrait{width:100%;height:175px;object-fit:cover;display:block}.portrait{background:var(--sage);display:grid;place-items:center;font-size:58px;color:var(--ink)}.card-body{padding:18px;display:flex;flex:1;flex-direction:column;align-items:start}.card p{line-height:1.45;margin:5px 0 17px}.card .entry{margin-top:auto;font-weight:700}.search{width:min(100%,430px);padding:12px 14px;border:1px solid var(--ink);border-radius:4px;background:var(--paper)}.hint{font-size:15px;color:var(--ink)}.source{display:inline-block;margin-top:18px}footer{border-top:1px solid var(--stone);margin-top:44px;padding-block:22px;display:flex;justify-content:space-between;font-size:13px}.guestimg{object-position:center 30%}.card:target{outline:2px solid var(--orange)}
@media(max-width:750px){.bar{gap:14px;flex-wrap:wrap;padding-block:8px}.brand img{width:84px;height:auto}nav{gap:15px}.book{font-size:12px;padding:9px}.hero{gap:18px}.grid{grid-template-columns:repeat(2,1fr)}.session{grid-template-columns:1fr auto}.session .kind{grid-column:1/-1}.days button{padding:12px 8px;gap:7px}.art{align-self:center}}@media(max-width:540px){nav{order:3;width:100%;justify-content:space-between}.bar{gap:0}.hero{padding-block:24px;grid-template-columns:1fr}.art{height:110px;object-fit:cover;width:100%}.hero svg{height:auto;max-height:none;aspect-ratio:4/1}.intro p{margin-bottom:10px}.grid{grid-template-columns:1fr}.days button{display:block}.days span{display:block}.sectionhead{align-items:start;flex-wrap:wrap}.sectionhead h2{font-size:35px}.session{grid-template-columns:1fr}.session a{justify-self:start}footer{gap:12px;flex-wrap:wrap}}
details{margin-top:6px}summary{cursor:pointer;font-size:14px;color:var(--ink)}details ul{padding-left:18px;line-height:1.5}.session small{max-width:150px}.session h3{font-size:18px}

#content[data-section="calendario"] .kicker { background: var(--yellow); }
#content[data-section="ospiti"] .kicker { background: var(--stone); }
#content[data-section="espositori"] .kicker { background: var(--sage); }
#content[data-section="incontri"] .kicker { background: var(--blue); }
#content .kicker { display: inline-block; padding: 3px 7px; color: var(--ink); }

/* Tipografia e superfici del Campus */
body {
  text-transform: uppercase;
  letter-spacing: 0.045em;
  background: color-mix(in srgb, var(--sage) 23%, var(--paper));
}
button, input { text-transform: inherit; letter-spacing: inherit; }
header { background: var(--yellow); }
nav a, .book, .entry { letter-spacing: 0.085em; }
.cta { background: var(--yellow); color: var(--ink); }
.hero {
  background: var(--blue);
  padding: clamp(18px, 3vw, 40px);
  margin-top: 24px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
h1 {
  font-size: clamp(36px, 5.2vw, 74px);
  line-height: 1.12;
  letter-spacing: 0.12em;
}
h1 span { color: var(--garnet); }
.intro p { letter-spacing: 0.08em; line-height: 1.45; }
h2 { font-size: clamp(26px, 3.1vw, 44px); letter-spacing: 0.105em; line-height: 1.24; }
.intro .date, .kicker, .kind { letter-spacing: 0.115em; }
.days b { letter-spacing: 0.09em; }
.days button { background: var(--sage); min-width: 0; }
.days button[aria-pressed=true] {
  background: var(--yellow);
  color: var(--ink);
  box-shadow: inset 0 -3px var(--ink);
}
.days span { letter-spacing: 0.06em; }
.session { padding-inline: 14px; }
/* Calendario: lo sfondo identifica la sala in ogni giornata. */
.session[data-band="agora"] { --room-tint: #A9C7DB; background-color: var(--room-tint); }
.session[data-band="talk"] { background-color: var(--yellow); }
.session[data-band="professioni"] { --room-tint: color-mix(in srgb, var(--pink) 82%, var(--paper)); background-color: var(--room-tint); }
.session[data-band="arredi"] { background-color: var(--paper); }
.session[data-band="digitale"] { background-color: var(--sage); }
.session[data-band="neutral"] { background-color: #fff; }
.time { letter-spacing: 0.05em; font-variant-numeric: tabular-nums; }
.session h3, .card h3 { letter-spacing: 0.06em; line-height: 1.4; overflow-wrap: anywhere; }
.card { background: color-mix(in srgb, var(--sage) 45%, var(--paper)); }
#content[data-section="ospiti"] .card { background: #fff; }
#content[data-section="incontri"] .card { background: color-mix(in srgb, var(--blue) 42%, var(--paper)); }
footer { background: transparent; }
@media (max-width: 750px) {
  .hero { grid-template-columns: 1fr; }
  .art { max-height: 165px; }
  nav { order: 3; width: 100%; justify-content: space-between; flex-wrap: wrap; }
  nav a { font-size: 12px; letter-spacing: 0.06em; }
  .sectionhead h2 { font-size: clamp(24px, 6.1vw, 35px); }
  .days span { font-size: 12px; letter-spacing: 0.03em; }
}

/* Tagli diagonali e campiture piane della copertina del catalogo. */
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 320px;
  grid-template-columns: minmax(0, 3fr) minmax(0, 1fr);
  background: var(--paper);
  border: 0;
}
.hero::before, .hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
}
.hero::before {
  background: var(--sage);
  clip-path: polygon(0 79%, 100% 31%, 100% 100%, 0 100%);
}
.hero::after {
  background: var(--blue);
  clip-path: polygon(76% 0, 91% 0, 100% 100%, 63% 100%);
}
.cover-date {
  justify-self: end;
  align-self: end;
  text-align: right;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.11em;
}
.cover-date span { display: block; }
.card { border-radius: 0; border: 0; }
.card-body {
  background-image: linear-gradient(162deg, transparent 75%, var(--blue) 75%);
}
.sectionhead { border-top: 2px solid var(--ink); padding-top: 16px; }
@media (max-width: 540px) {
  .hero { grid-template-columns: minmax(0, 1fr); min-height: 280px; }
  .hero::after { clip-path: polygon(88% 0, 100% 0, 100% 100%, 73% 100%); }
  .intro p { max-width: 18em; }
  .cover-date { font-size: 12px; }
}
.card img.guestimg {
  width: 100%;
  aspect-ratio: 5 / 4;
  align-self: center;
  height: auto;
  flex: none;
  object-fit: contain;
  object-position: center;
  background: var(--blue);
}

.cover-logo {
  width: clamp(220px, 29vw, 350px);
  max-width: 100%;
  margin: 0;
  line-height: 0;
}
.cover-logo img { display: block; width: 100%; height: auto; }

.session[data-band="break"] {
  background-color: var(--garnet);
  color: #fff;
}
.session[data-band="break"] summary { color: inherit; }

#content[data-section="ospiti"] .card {
  --guest-accent: var(--blue);
}
#content[data-section="ospiti"] .card:nth-child(odd) {
  --guest-accent: var(--garnet);
}
#content[data-section="ospiti"] .card-body {
  border-top: 12px solid var(--guest-accent);
  background-image: linear-gradient(162deg, transparent 72%, color-mix(in srgb, var(--guest-accent) 20%, var(--paper)) 72%);
}

.day-theme { font-size: clamp(19px, 2.5vw, 28px); margin: 22px 0 10px; }
.day-intro { margin: 0 0 20px; }
.day-intro p, .guide-group p { line-height: 1.6; max-width: 80ch; }
.guide-group { margin-block: 32px; }
.guide-group h3 { font-size: clamp(21px, 3vw, 32px); }
.guide-item { border-bottom: 1px solid var(--stone); padding: 12px 0; }
.guide-item summary { font-size: 16px; font-weight: 500; }
.guide-group figure { margin: 24px 0; }
.guide-group figure img { width: 100%; max-width: 920px; display: block; }
.guide-group figcaption { font-size: 12px; margin-top: 8px; }
.table-wrap { overflow-x: auto; }
.table-wrap table { border-collapse: collapse; width: 100%; text-align: left; font-size: 14px; }
.table-wrap th, .table-wrap td { padding: 10px 8px; border-bottom: 1px solid var(--stone); }
.table-wrap thead, .table-wrap tr:last-child { background: var(--sage); }
.card-body details { margin-bottom: 16px; }

.icon-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.action-icon { display: inline-block; width: 1.15em; height: 1.15em; vertical-align: -.17em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: miter; pointer-events: none; }
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
summary::before { content: ""; display: inline-block; width: .85em; height: .85em; margin-inline-end: .55em; vertical-align: -.06em; background: linear-gradient(currentColor,currentColor) center / 70% 1.5px no-repeat, linear-gradient(currentColor,currentColor) center / 1.5px 70% no-repeat; border: 1px solid currentColor; }
details[open] > summary::before { background: linear-gradient(currentColor,currentColor) center / 70% 1.5px no-repeat; }


/* Testi di lettura: maiuscole naturali e corpo ridotto di un punto. */
#content :is(p, details li, .card-body > strong, summary) {
  text-transform: none;
  font-size: calc(1rem - 1pt);
}
#content summary { font-size: calc(14px - 1pt); }
#content .guide-item summary { font-size: calc(16px - 1pt); }
#content p.hint { font-size: calc(15px - 1pt); }

.venue-link { text-underline-offset: 3px; }

/* Il disegno del marchio comincia a x=78,79 nel viewBox largo 575. */
.intro { --logo-inset: clamp(30.15px, 3.974vw, 47.96px); }
.intro > p, .intro > small { margin-inline-start: var(--logo-inset); text-align: left; }
.intro > small { display: block; }
.venue-link { position: relative; }
.venue-link .action-icon { position: absolute; right: calc(100% + .4em); top: .04em; width: 1.15em; height: 1.15em; }

footer { display: grid; gap: 20px; }
.footer-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; }
.footer-partners { display: block; width: min(100%, 760px); }
.footer-partners img { display: block; width: 100%; height: auto; }
@media (max-width: 540px) {
  .footer-partners { width: min(100%, 400px); }
}

.session[data-band="agora"] + .session[data-band="agora"] { border-top-color: color-mix(in srgb, var(--room-tint) 64%, var(--ink)); }

.session[data-band="talk"] + .session[data-band="talk"] { border-top-color: color-mix(in srgb, var(--yellow) 64%, var(--ink)); }

.session[data-band="professioni"] + .session[data-band="professioni"] { border-top-color: color-mix(in srgb, var(--room-tint) 64%, var(--ink)); }

.session[data-band="arredi"] + .session[data-band="arredi"] { border-top-color: color-mix(in srgb, var(--paper) 64%, var(--ink)); }

.session[data-band="digitale"] + .session[data-band="digitale"] { border-top-color: color-mix(in srgb, var(--sage) 64%, var(--ink)); }

.session[data-band="neutral"] + .session[data-band="neutral"] { border-top-color: color-mix(in srgb, #fff 64%, var(--ink)); }

.session[data-band="break"] + .session[data-band="break"] { border-top-color: color-mix(in srgb, var(--garnet) 64%, var(--paper)); }

.session[data-band="lunch"] { background-color: var(--garnet); color: #fff; }
.session[data-band="lunch"] summary { color: inherit; }
.session[data-band="lunch"] + .session[data-band="lunch"] { border-top-color: color-mix(in srgb, var(--garnet) 64%, var(--paper)); }

/* Dentro Iscol@: editorial introduction and newsletter invitation. */
.dentro-story { border-top: 8px solid var(--blue); padding: clamp(22px,4vw,42px); background: var(--paper); }
.dentro-story h3, .dentro-newsletter h3 { margin: 0 0 24px; font-size: clamp(21px,2.5vw,30px); line-height: 1.35; }
.dentro-story p, .dentro-newsletter p { max-width: 72ch; line-height: 1.75; margin: 0 0 22px; }
.dentro-newsletter { margin-top: 24px; padding: clamp(22px,4vw,42px); background: var(--yellow); }
.dentro-newsletter .cta { display: block; width: 100%; margin-top: 28px; padding: 24px 20px; background: var(--garnet); color: #fff; border: 2px solid var(--garnet); border-radius: 0; font-size: clamp(18px, 2.2vw, 26px); font-weight: 700; letter-spacing: .06em; line-height: 1.4; text-align: center; }
.dentro-newsletter .cta:hover { background: var(--ink); border-color: var(--ink); }
.dentro-newsletter .cta:focus-visible { outline: 3px solid var(--ink); outline-offset: 5px; }
nav a { white-space: nowrap; }
@media (min-width: 751px) and (max-width: 1100px) { .bar { flex-wrap: wrap; gap: 16px; padding-block: 12px; } nav { order: 3; width: 100%; justify-content: space-between; flex-wrap: wrap; } }

.dentro-gallery { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 24px; }
.dentro-gallery img { display: block; width: 100%; height: auto; }
@media (max-width: 750px) { .dentro-gallery { grid-template-columns: 1fr; gap: 16px; } }

/* Shared alignment across all three calendar days. */
.days { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.days button { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px; padding: 16px; text-align: left; }
.days b, .days span { display: block; line-height: 1.25; }
.session { grid-template-columns: 130px minmax(0, 1fr) 180px; align-items: start; gap: 24px; padding: 24px 20px; }
.session > .time { padding-top: 5px; white-space: nowrap; }
.session > div { min-width: 0; }
.session h3 { margin: 0 0 10px; }
.session > small { padding-top: 5px; line-height: 1.5; overflow-wrap: anywhere; }
.session details { margin-top: 10px; }
.session details ul { padding-left: 1.2em; }
@media (max-width: 1000px) {
 .session { grid-template-columns: 115px minmax(0, 1fr); gap: 12px 20px; }
 .session > small { grid-column: 2; padding-top: 0; }
}
@media (max-width: 600px) {
 .days button { padding: 14px 10px; }
 .days b { font-size: 28px; }
 .days span { font-size: 11px; letter-spacing: 0; }
 .session { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 22px 16px; }
 .session > .time { padding-top: 0; }
 .session > small { grid-column: 1; }
}

.session > .time { font-size: calc(12px + 1pt); }

.company-profile { background: var(--paper); border-top: 6px solid var(--blue); }
.company-photo { width: 100%; max-height: 350px; display: block; object-fit: cover; }
.company-copy { padding: clamp(20px, 4vw, 44px); }
.company-copy p, .company-copy li { max-width: 74ch; line-height: 1.65; }
.company-copy li { text-transform: none; }
.company-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.company-actions a { max-width: 100%; overflow-wrap: anywhere; }
.company-actions a[href^="mailto:"] { text-transform: none; }
#results .entry + .entry { margin-top: 12px; }


.campus-plans { margin-block: 2rem; }
.plan-over, .plan-detail { background: #faf8f4; padding: clamp(18px,3vw,34px); margin-block: 18px; }
.campus-plans h4 { margin: 0; font-size: clamp(20px,2.7vw,32px); line-height: 1.2; }
.plan-landmark { font-weight: 500; }
.plan-pair { display: grid; grid-template-columns: 1.25fr 1fr; align-items: center; gap: 22px; }
.campus-plans .plan-pair figure { margin: 0; padding: 0; }
.campus-plans .plan-art { display: block; }
.campus-plans .plan-art img { width: 100%; height: auto; display:block; border: 0; }
.plan-over .plan-art { max-width: 820px; margin: 16px auto; }
.campus-plans figcaption { text-transform: none; font-size: .9rem; line-height: 1.55; }
.plan-over-key, .plan-legend { list-style: none; padding: 0; margin: 16px 0 0; display: grid; gap: 12px; }
.plan-over-key { grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); }
.plan-over-key li, .plan-legend li { display:flex; align-items: baseline; gap: 10px; }
.plan-over-key span { text-transform: none; }
.plan-badge { background: var(--tint); min-width: 2.15rem; text-align: center; padding: 4px; line-height: 1.3; border-radius: 6px; }
.plan-legend li p { margin: 3px 0; }
@media(max-width:700px){.plan-pair{grid-template-columns:1fr;gap:8px}.plan-legend{margin-top:6px}}
