/* ATAVICO HOME 0.4.23-alpha — CSS razionalizzato.
   Un solo foglio, senza strati di override. Contrasto normale e HTML5/WCAG.
   Base: HOME 0.4.19; larghezza condivisa 90%, pannelli centrati, niente bande fisse. */

/* 01 — Design tokens e fondamenta */
:root {
  color-scheme: dark;
  --ink: #edece5;
  --muted: #c6c8c0;
  --gold: #c8b790;
  --gold-dark: #a88955;
  --base: #080b0b;
  --line: #718075;
  --top: #ae9e7c;
  --surface-plain: rgba(128,97,53,.60);     /* Oricalco #806135 al 60% di opacità */
  --layout-width: 90%; /* unico allineamento orizzontale */
  --button-ochre: #806135;
  --button-ochre-hover: #644924;
  --shadow: inset 0 0 0 5px rgba(8,11,11,.35), 5px 6px 0 rgba(3,6,5,.42);
  --mono: "DejaVu Sans Mono", Consolas, monospace;
  --serif: "Times New Roman", Times, serif;
  --sans: "DejaVu Sans", Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; background: var(--base); }
html[data-text-scale="large"] { font-size: 120%; }
html[data-text-scale="larger"] { font-size: 140%; }
body { position: relative; isolation: isolate; margin: 0; color: var(--ink); background: var(--base); font-family: var(--sans); line-height: 1.65; }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(rgba(8,11,11,.10), rgba(8,11,11,.40)), url("nordic-tree.webp") center / cover no-repeat; }
[hidden] { display: none !important; }
img { max-width: 100%; height: auto; }
a { color: #e2d2b1; text-decoration: underline; }
a:hover { color: #f2eee5; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #f1ddb4; outline-offset: 3px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .7; }
h1, h2, h3, .brand, .footer-brand { font-family: var(--serif); font-weight: normal; line-height: 1.18; }
h1, h2, h3 { color: #f2eee5; }
h1 { font-size: 2.7rem; margin: 0 0 1.2rem; }
h2 { font-size: 1.85rem; margin: 0 0 1rem; }
h3 { font-size: 1.55rem; margin: 0 0 .85rem; }
p { margin: 0 0 1.2rem; }
ul { padding-left: 1.3rem; }
main { width: 100%; min-width: 0; margin-inline: auto; padding-bottom: .1rem; }
main:focus { outline: none; }
.wrap { width: var(--layout-width); max-width: none; margin-inline: auto; }
.content-space { margin-bottom: 3rem; }
.muted, .section-text, .service-card p, .reading-column p { color: var(--muted); }
.eyebrow, .card-label { font: normal .7rem/1.5 var(--mono); letter-spacing: .13em; text-transform: uppercase; color: var(--gold); }
.eyebrow { margin: 0 0 .8rem; }
.skip-link { position: absolute; top: -8rem; left: 1rem; z-index: 20; padding: .7rem 1rem; color: var(--base); background: var(--ink); }
.skip-link:focus { top: .5rem; }
.button { display: inline-block; padding: .65rem 1.05rem; background: var(--button-ochre); border: 1px solid #c1a679; color: #fff8eb; font-size: .86rem; font-weight: bold; line-height: 1.5; text-decoration: none; }
.button:hover { background: var(--button-ochre-hover); border-color: #e1c397; color: #fff; }
.button span { margin-left: 1rem; }
.button.secondary { background: var(--button-ochre); border-color: #aa906b; color: #fff8eb; }
.button.secondary:hover { background: var(--button-ochre-hover); border-color: #e1c397; color: #fff; }
.button[aria-pressed="true"] { border-width: 2px; border-color: #e2d2b1; }
.text-link { font-size: .87rem; font-weight: bold; }
.text-link span { margin-left: .5rem; }

/* 02 — Header, navigazione, footer W3C */
.site-header { background: rgba(8,11,11,.65); border-bottom: 1px solid #4e5a52; }
.header-inner { display: flex; justify-content: space-between; align-items: center; gap: 1.3rem; padding-block: 1.5rem; }
.brand { display: flex; align-items: center; color: #f1ede3; font-size: 2rem; letter-spacing: 0; text-decoration: none; }
.home-header .brand { font-size: 3.25rem; }
.brand-name { display: block; overflow-wrap: anywhere; }
.brand-tagline { display: block; margin-top: .35rem; font: normal .65rem/1.3 var(--sans); letter-spacing: .06em; color: #bfc4bb; }
.brand-emblem { flex: none; display: block; width: 66px; height: 66px; margin-right: .85rem; border: 1px solid #827457; border-radius: 50%; background: url("nordic-tree.webp") right center / auto 100% no-repeat; }
.primary-nav { min-width: 0; overflow-wrap: anywhere; }
.primary-nav ul { display: flex; flex-wrap: wrap; gap: 0 1.45rem; list-style: none; margin: 0; padding: 0; }
.primary-nav a { display: block; padding: .6rem 0; border-bottom: 2px solid transparent; color: #d8dcd3; font-size: .84rem; text-decoration: none; }
.primary-nav a[aria-current="page"] { border-bottom-color: #cdbb97; color: #f3e4c9; }
.site-footer { position: relative; overflow: hidden; isolation: isolate; background: #0c1110; border-top: 1px solid var(--line); }
.site-footer::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .92; background: url("site-footer-frame.png") center / 86% 100% no-repeat; }
.footer-top { display: flex; justify-content: space-between; gap: 2rem; padding-block: 2.2rem 1.8rem; }
.footer-top nav { min-width: 0; }
.footer-brand { color: #eeeae0; font-size: 1.5rem; text-decoration: none; }
.footer-top p { margin-top: .35rem; font-size: .75rem; color: #bcc3ba; }
.footer-top ul { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; margin: 0; padding: 0; list-style: none; }
.footer-top li { font-size: .76rem; }
.footer-top a { overflow-wrap: anywhere; }
.standards { display: flex; align-items: center; gap: 1.2rem; padding-block: 1.5rem; border-top: 1px solid #3b4840; }
.w3c-logo { flex: 0 0 64px; display: block; width: 64px; height: 64px; }
.w3c-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.standards-copy { font-size: .73rem; }
.standards-copy strong { font-weight: normal; color: #d8dcd3; }
.standards-copy p { margin: .2rem 0 0; }
.footer-sign { display: flex; align-items: center; gap: 1rem; justify-content: flex-end; margin-left: auto; }
.footer-sign .copyright { margin: 0; }
.copyright { color: #bcc3ba; font-size: .7rem; }
.release-label { white-space: nowrap; }
.egyptian-emblem { display: block; width: 76px; height: 72px; object-fit: contain; }

/* 03 — Pannelli senza geroglifici o timbri sovrapposti. */
.ornament-frame, .reading-column > section, .portal-single {
  position: relative; overflow: hidden;
  padding: 1.6rem;
  border: 1px solid var(--line); border-top: 2px solid var(--top);
  background-color: var(--surface-plain); box-shadow: var(--shadow);
}
/* Superfici dichiaratamente trasparenti: non introdurre fondi o cornici. */
.hero-copy, .section-head { background: transparent; border: 0; box-shadow: none; }
.page-title, .collector-console, .lte-page { background-color: var(--surface-plain); }

/* 04 — Home, portale, Persefone, servizi */
.hero { margin-top: 2.4rem; background: transparent; border: 0; }
.hero-inner { padding-block: 3rem; }
.hero-copy { width: 100%; min-width: 0; padding: 1.8rem 0; }
.hero h1 { font-size: 3.05rem; line-height: 1.08; }
.hero h1 em { display: inline-block; font: normal 3.65rem/1.08 var(--serif); color: #d7c29b; }
.hero-invocation { padding: .85rem 0; margin-bottom: 1.2rem; font: italic 1.05rem/1.55 var(--serif); color: #e0d1b0; }
.hero-description { max-width: 33em; color: #d2d6cc; font-size: .96rem; }
.welcome-section { display: block; padding-block: 2.6rem 1rem; }
/* La larghezza esterna e' data UNA SOLA VOLTA da .wrap (90%).
   Evitare percentuali annidate che riducono il pannello all'81%. */
.welcome-section .portal-single {
  width: 100%;
  min-width: 0;
  margin-inline: auto;
  padding: clamp(1.4rem, 2.6vw, 2.4rem);
}
/* La citazione adotta lo stesso fregio centrato dell'etichetta, senza alterare la semantica blockquote. */
.portal-quote { display: flex; flex-direction: column; align-items: center; gap: .7rem; padding: 0; margin: 1.5rem 0 .55rem; border: 0; color: #eadbbd; text-align: center; }
.portal-quote__text { display: block; max-width: 35em; margin-inline: auto; font: normal 1.26rem/1.55 var(--serif); font-variant: small-caps; letter-spacing: .015em; }
.portal-quote .card-label__ornament { display: none; }
.portal-attribution { text-align: center; }
.portal-attribution { margin: 0 0 1rem; font: normal .74rem/1.5 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--gold); }
.portal-attribution::after { content: ""; display: block; width: min(100%, 44.1rem); height: 1px; margin: 1rem auto 0; background: linear-gradient(90deg, transparent, var(--gold-dark) 30%, var(--gold-dark) 70%, transparent); }
.welcome-section .portal-single h2 { margin-bottom: 1rem; }
.persephone-section { margin-top: 2.4rem; margin-bottom: .35rem; }
.persephone-frame { width: 100%; max-width: none; margin: 0 auto; padding: 1.6rem; }
.persephone-frame > img { display: block; width: 100%; max-width: 900px; margin-inline: auto; }
.persephone-frame figcaption { text-align: center; font-family: var(--serif); color: #e0d1b0; }
.persephone-title { display: block; margin: .75rem 0 .65rem; font-size: 1.3rem; letter-spacing: .05em; }
.persephone-copy { max-width: 44rem; margin: .45rem auto; font-size: 1rem; line-height: 1.55; }
.persephone-close { margin-top: .75rem; font-style: italic; }
.persephone-credit { max-width: 44rem; margin: 1rem auto 0; font-size: .78rem; opacity: .72; }
.persephone-divider { width: 100%; height: 110px; margin: 0 auto; background: url("hieroglyph-divider.png") center / auto 240% repeat-x; }
.services-section { padding-top: .35rem; padding-bottom: 3.5rem; }
.section-head { display: flex; justify-content: space-between; align-items: center; gap: .7rem; padding: .55rem .8rem; margin: 0 0 .6rem; }
.section-head .eyebrow { margin: 0 0 .2rem; }
.section-head h2 { margin: 0; }
.service-grid, .tui-layout { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2.2rem; }
.service-card { min-width: 0; margin: 0; }
.service-card .card-label { margin-bottom: .8rem; }
.service-card p { font-size: .87rem; }

/* Il fregio e la ghianda appartengono SOLO alla card-label del portale. */
.portal-single .card-label--portal { display: flex; flex-direction: column; align-items: center; gap: .4rem; margin: 0 0 1.1rem; color: var(--gold); text-align: center; }
.portal-single .card-label__ornament { display: flex; align-items: center; justify-content: center; gap: clamp(.55rem,2vw,1.2rem); width: 100%; }
.portal-single .card-label__ornament::before, .portal-single .card-label__ornament::after { content: ""; flex: 1; min-width: 0; height: 1px; background: linear-gradient(90deg,transparent,var(--gold-dark)); }
.portal-single .card-label__ornament::after { transform: rotate(180deg); }
.portal-single .card-label__ornament img { flex: none; display: block; width: 43px; height: 56px; }
.portal-single .card-label__text { font-family: var(--serif); font-size: .88rem; font-variant: small-caps; letter-spacing: .10em; text-transform: none; }

/* 05 — Pagine informative, immagini, gestione posta */
.page-title { position: relative; padding: 2.1rem clamp(1.25rem, 3vw, 2.5rem); margin-top: 2.6rem; margin-bottom: 2.6rem; border-left: 2px solid var(--top); box-shadow: var(--shadow); }
.page-title > p:last-child { max-width: 46em; margin-bottom: 0; color: var(--muted); }
.reading-column { width: 100%; max-width: none; margin-inline: auto; }
.reading-column > section { margin-bottom: 2.4rem; }
.reading-column h2 { font-size: 1.6rem; }
.text-tools .button { margin: 0 .5rem .5rem 0; }
.webcam-panel h2 { font-size: 1.65rem; }
.webcam-panel figure { margin: 0 0 1.3rem; }
.webcam-panel .muted { font-size: .82rem; }
.image-stage { display: flex; align-items: center; justify-content: center; min-height: 280px; padding: 1rem; background: #101715; border: 1px solid var(--line); }
#image-placeholder { text-align: center; padding: 2rem 1rem; }
#webcam-image { display: block; width: 100%; }
figcaption, .image-status { font-size: .8rem; color: var(--muted); margin-top: .7rem; }
.image-status { min-height: 1.5em; }
.webcam-actions > * { margin: 0 1rem .6rem 0; }
.error-page { min-height: 50vh; padding-bottom: 4rem; }
.admin-form fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.admin-form legend { font-weight: bold; margin-bottom: 1rem; }
.admin-form label, .command-form label { display: block; margin: 1rem 0 .4rem; }
.admin-form input[type="text"], .admin-form input[type="password"], .command-row input { width: 100%; min-width: 0; padding: .65rem; color: var(--ink); background: var(--base); border: 1px solid #a6b499; }
.admin-form .muted { font-size: .78rem; }
.admin-form .button { margin-top: 1rem; }
.admin-message { padding: 1rem; background: rgba(20,32,25,.8); border: 1px solid #b9c2a5; }
.mailbox-row { padding: 1rem 0 1.5rem; border-bottom: 1px solid var(--line); }
.mailbox-row h3 { font-size: 1.25rem; overflow-wrap: anywhere; }
.mailbox-row details { padding: .7rem 0; }
.mailbox-row summary, .counter-details summary { cursor: pointer; color: #e0d1b0; text-decoration: underline; }
.sensor-list { padding-left: 1.2rem; }
.sensor-list li { margin-bottom: .4rem; }
.guide-commands dt { margin-top: .65rem; color: #e0d1b0; font-weight: bold; }
.guide-commands dd { margin-left: 0; }

/* 06 — Console TUI, dashboard pubblica, LTE */
.tui-panel, .collector-console, .smtp-panel { min-width: 0; font-family: var(--mono); font-size: .84rem; }
.tui-panel h2, .smtp-panel h2 { font: normal 1.25rem/1.3 var(--mono); overflow-wrap: anywhere; }
.tui-menu ul { list-style: none; margin: 1.3rem 0; padding: 0; }
.tui-menu li { margin-bottom: .7rem; border-bottom: 1px solid #455349; }
.tui-menu a { display: block; padding: .5rem 0; text-decoration: none; }
.tui-menu a span { display: block; color: #d6e6be; font-weight: bold; }
.command-form { margin-top: 1.7rem; }
.command-row { display: flex; align-items: center; gap: .5rem; }
.command-row > span { color: #d6e6be; }
.command-row .button { padding: .6rem; font-size: .78rem; }
.command-log { min-height: 4em; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
.command-log p { margin-bottom: .6rem; }
.diagnostic-list { margin: 1.3rem 0; }
.diagnostic-list dt { margin-top: .8rem; color: #bdc7ba; }
.diagnostic-list dd { margin: .15rem 0 0; overflow-wrap: anywhere; }
.diagnostic-note, .monitor-note { font: normal .76rem/1.5 var(--sans); color: #d0d2c9; }
.monitor-state { display: inline-block; margin-bottom: .8rem; padding: .4rem .8rem; border: 1px solid #88938c; }
[data-tone="good"] { color: #d6e6be; }
[data-tone="warning"] { color: #edd2a0; }
[data-tone="bad"] { color: #f0b8b0; }
[data-tone="unknown"] { color: var(--muted); }
.smtp-summary, .collector-meter { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; margin: 1rem 0; }
.smtp-summary > div, .collector-meter > div { padding: .8rem; border: 1px solid #69776b; background: rgba(8,11,11,.45); }
.smtp-summary dt, .collector-meter dt { color: var(--muted); font-size: .72rem; }
.smtp-summary dd, .collector-meter dd { margin: .2rem 0 0; font-size: 1.25rem; }
.smtp-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.1rem 2rem; margin: 1.8rem 0; }
.smtp-facts dt { color: #bdc7ba; font-size: .75rem; }
.smtp-facts dd { margin: .15rem 0 0; overflow-wrap: anywhere; }
.monitor-actions, .collector-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.1rem; }
.monitor-actions label, .collector-actions label { cursor: pointer; }
.monitor-actions input, .collector-actions input { accent-color: #cdbb97; }
.table-scroll { overflow-x: auto; max-width: 100%; margin: 1rem 0; }
.table-scroll:focus-visible { outline: 2px solid #f1ddb4; }
.monitor-table { width: 100%; border-collapse: collapse; font-size: .77rem; text-align: left; }
.monitor-table caption { text-align: left; margin-bottom: .8rem; color: #e0d1b0; }
.monitor-table th, .monitor-table td { padding: .4rem .5rem; border-bottom: 1px solid #536456; vertical-align: top; overflow-wrap: anywhere; }
.monitor-table thead { background: rgba(8,11,11,.55); }
.monitor-table small { display: block; color: var(--muted); margin-top: .15rem; }
.counter-details { border-top: 1px solid var(--line); padding-top: 1rem; }
.collector-console { padding: 0; border: 1px solid var(--line); }
.collector-console-header { display: flex; justify-content: space-between; gap: 1.5rem; align-items: flex-start; padding: 1.25rem 1.35rem 1rem; border-bottom: 1px solid #526058; }
.collector-console-header h2 { font: normal 1.2rem/1.3 var(--mono); margin: 0; }
.collector-console-header .card-label { margin-bottom: .35rem; }
.collector-console-clock { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin: 0; color: var(--muted); font-size: .76rem; text-align: right; }
.collector-statusbar { position: sticky; top: 0; z-index: 4; display: flex; flex-wrap: wrap; gap: .45rem 1.2rem; padding: .72rem 1.35rem; border-bottom: 1px solid #526058; background: #0a0f0e; font-size: .74rem; }
.collector-status { white-space: nowrap; }
.status-dot { margin-right: .15rem; font-size: .85em; }
.collector-refresh-state { margin-left: auto; }
.collector-actions { padding: .8rem 1.35rem; border-bottom: 1px solid #3b4840; font: normal .75rem var(--sans); }
.collector-block { padding: 1rem 1.35rem 1.15rem; border-bottom: 1px solid #526058; }
.collector-block:last-child { border-bottom: 0; }
.collector-block h3 { font: normal .98rem/1.4 var(--mono); margin: 0 0 .75rem; color: #e7dfd0; }
.collector-block-title { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.state-word { font-size: .73rem; font-weight: bold; }
.collector-inline-meta { color: var(--muted); font-size: .72rem; margin: -.2rem 0 .8rem; }
.collector-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .48rem 1.5rem; margin: 0; font-size: .74rem; }
.collector-facts > div { display: grid; grid-template-columns: minmax(8rem,.42fr) minmax(0,1fr); gap: .7rem; border-bottom: 1px dotted #354039; padding-bottom: .2rem; }
.collector-facts .wide { grid-column: 1 / -1; }
.collector-facts dt { color: #c6c8c0; }
.collector-facts dd { margin: 0; overflow-wrap: anywhere; }
.service-strip, .provider-strip { display: flex; flex-wrap: wrap; gap: .55rem 1.3rem; margin-bottom: .85rem; font-size: .72rem; }
.provider-strip > span { min-width: 12rem; }
.provider-strip small { display: block; color: #aeb8ad; }
.event-list { list-style: none; margin: 0; padding: 0; font-size: .72rem; }
.event-list li { display: grid; grid-template-columns: 5.5rem 5rem minmax(0,1fr); gap: .65rem; padding: .25rem 0; border-bottom: 1px dotted #354039; }
.event-list .event-age { color: #aeb8ad; }
.event-list code { color: #d9d7ce; overflow-wrap: anywhere; }
.collector-console .table-scroll { margin: .8rem 0; }
.collector-console .monitor-table { font-size: .7rem; }
.collector-console .monitor-table th, .collector-console .monitor-table td { padding: .35rem .45rem; }
.tui-secondary { margin-top: 2.2rem; }
.lte-page { padding: 1.5rem; border: 1px solid var(--line); }
.lte-figure { margin: 1rem 0; }
.lte-figure img { display: block; width: 100%; height: auto; }
.lte-figure figcaption { color: var(--muted); }

/* 07 — Responsive, stampa, accessibilità */
@media (max-width: 950px) {
  .header-inner { flex-wrap: wrap; }
  .primary-nav { width: 100%; }
  .primary-nav ul { gap: 0 1.25rem; }
  .tui-layout { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 800px) {
  .hero-copy { width: 100%; }
  .service-grid { gap: 1rem; }
  .collector-console-header { display: block; }
  .collector-console-clock { text-align: left; margin-top: .7rem; }
  .collector-facts { grid-template-columns: minmax(0,1fr); }
  .collector-facts .wide { grid-column: auto; }
  .collector-meter, .smtp-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-top { display: block; }
  .footer-top nav { margin-top: 1.2rem; }
  .standards { flex-wrap: wrap; }
  .footer-sign { width: 100%; }
}
@media (max-width: 650px) {
  .persephone-divider { height: 54px; }
  .site-footer::before { opacity: .28; background-size: cover; }
}
@media (max-width: 560px) {

  h1, .hero h1 { font-size: 2.25rem; }
  h2 { font-size: 1.65rem; }
  .home-header .brand { font-size: 2.25rem; }
  .brand-emblem { width: 48px; height: 48px; margin-right: .65rem; }
  .hero h1 em { font-size: 2.65rem; }
  .hero-copy { padding: 1.3rem 0; }
  .hero-inner { padding-block: 1.8rem; }
  .service-grid { grid-template-columns: minmax(0,1fr); }
  .section-head { flex-wrap: wrap; padding: .45rem .6rem; }
  .ornament-frame, .reading-column > section, .portal-single { padding: 1.25rem; }
  .page-title { padding: 1.5rem; }
  .collector-console { width: 100%; }
  .collector-console-header, .collector-statusbar, .collector-actions, .collector-block { padding-inline: .85rem; }
  .collector-facts > div { grid-template-columns: minmax(0,1fr); gap: 0; }
  .event-list li { grid-template-columns: 4.5rem minmax(0,1fr); }
  .event-list code { grid-column: 1 / -1; }
  .command-row { flex-wrap: wrap; }
  .footer-top ul { gap: .4rem .9rem; }
}
@media print {
  html, body { color: #111; background: #fff; font-size: 11pt; }
  body::before, .site-footer::before, .persephone-divider { display: none; }
  .ornament-frame, .reading-column > section, .portal-single, .page-title, .collector-console, .lte-page { background: #fff; color: #111; box-shadow: none; }
  h1, h2, h3, p, a, .muted, .hero-description, .brand, .card-label { color: #111; }
  .primary-nav, .button, .skip-link, .command-form, .collector-actions { display: none; }
  .site-footer { background: #fff; border-color: #ddd; }
}
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
  .service-card { transition: transform 160ms ease, border-color 160ms ease; }
  .service-card:hover, .service-card:focus-within { transform: translateY(-2px); border-color: #b4ae91; }
}

/* ATAVICO 0.4.22 - Stile condiviso consolidato. */
:root { --atavico-panel: rgba(0,0,0,.50); }
/* La trasparenza appartiene solo allo sfondo dei pannelli, mai ai contenuti. */
main .ornament-frame, main .service-card, main .section-heading,
main .section-text, main .tui-panel, main .webcam-panel,
main .persephone-frame, main .services-section,
main .portal-single, main .reading-column section {
  background-color: var(--atavico-panel);
  background-image: none;
  opacity: 1;
}
/* La hero resta intenzionalmente trasparente. */
main .hero-copy { background-color: transparent; }
/* Tutte le pagine usano il medesimo involucro centrato. */
main .wrap { width: 90%; max-width: none; margin-inline: auto; }
/* Persefone: immagine a sinistra, commento a destra. */
.persephone-section .persephone-frame {
  display: grid;
  grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
  column-gap: clamp(1.5rem, 3.5vw, 3.25rem);
  align-items: center;
  padding: clamp(1.2rem, 2.5vw, 2rem);
}
.persephone-frame .persephone-artwork,
.persephone-frame .persephone-text { min-width: 0; }
.persephone-frame .persephone-artwork { margin: 0; padding: 5rem 0 0; }
.persephone-section .persephone-frame::before {
  content: ""; position: absolute; top: .35rem; left: .35rem;
  width: 4.75rem; height: 4.75rem; pointer-events: none;
  background: url("hieroglyph-corner.png") left top / contain no-repeat;
}
.persephone-frame .persephone-artwork img {
  display: block; width: 100%; height: auto; object-fit: contain;
}
.persephone-frame .persephone-artwork figcaption {
  text-align: center; margin-top: .65rem;
}
.persephone-frame .persephone-artwork .persephone-title {
  display: block; font-size: 1.3rem;
}
.persephone-frame .persephone-artwork .persephone-credit {
  margin: .6rem auto 0; max-width: 35rem;
}
.persephone-frame .persephone-text .persephone-copy {
  max-width: none; margin: .6rem 0;
  font-size: 1.05rem; /* Incremento del 5% rispetto alla base di 1rem. */
  text-align: left;
}
/* Separatore fuori dall'involucro al 90%, effetto taglio a piena pagina. */
main .persephone-section.wrap { width: 100%; }
.persephone-section .persephone-frame { width: 90%; }
main .persephone-divider, main .wrap.persephone-divider {
  display: block; width: 100%; max-width: none; margin-inline: 0;
}
/* Il portale: una sola ghianda, le eventuali altre non sono inserite. */
.portal-single img[src*="acorn-natural.svg"] { height: auto; object-fit: contain; }
/* Accessi diretti: angolare sinistro al 90%, titolo rientrato. */
.services-section .section-head {
  position: relative; min-height: 6.5rem;
  padding-left: clamp(7rem, 12vw, 10rem);
}
.services-section .section-head::before {
  content: ""; display: block; position: absolute;
  top: 0; left: 0; width: 10rem; height: 10rem;
  pointer-events: none;
  background: url("hieroglyph-corner.png") left top/contain no-repeat;
  transform: scale(.90); transform-origin: top left;
}
/* La griglia rientra in modo uniforme: i bordi non attraversano l'ornamento. */
.services-section .service-grid { width: 96%; margin-inline: auto; }
main .service-grid.wrap { width: 86%; }
.services-section .section-head .eyebrow { margin-block-start: 1.5rem; margin-inline-start: -3.5rem; }
/* Footer: il motivo resta a tutta larghezza, testo centrato all'85%. */
.site-footer .wrap { width: 85%; max-width: none; margin-inline: auto; }
@media (max-width: 760px) {
  main .wrap { width: 94%; }
  .persephone-section .persephone-frame { width: 94%; grid-template-columns: minmax(0,1fr); row-gap: 1.3rem; }
  main .service-grid.wrap { width: 94%; }
  .services-section .service-grid { width: 100%; }
  .services-section .section-head .eyebrow { margin-block-start: 0; margin-inline-start: 0; }
  .persephone-frame .persephone-artwork { padding-top: 4.5rem; }
  .persephone-section .persephone-frame::before { width: 4rem; height: 4rem; }
  .services-section .section-head { padding-left: 5.5rem; min-height: 7rem; }
  .services-section .section-head::before { width: 7rem; height: 7rem; }
  .site-footer .wrap { width: 92%; }
}

/* 0.4.25: cornici condivise per intestazioni e pannelli informativi. */
main .page-title, main .collector-console, main .lte-page {
  border: 1px solid var(--line); border-top: 2px solid var(--top);
  box-shadow: var(--shadow);
}

/* Pagine interne: superfici principali dei contenuti. */
main .page-title, main .reading-column > section, main .webcam-panel,
main .service-grid > .service-card, main .tui-panel,
main .collector-console, main .lte-page { background-color: rgba(0,0,0,.5); }

/* Pulsanti: stato a riposo verde quercia e carattere in maiuscoletto. */
.button, .button.secondary { background: #34533e; color: #fff8eb; font-family: var(--serif); font-variant: small-caps; letter-spacing: .035em; }

/* HOME: composizione dal riferimento visivo desktop. */
.welcome-section .portal-single { width: min(100%, 66rem); }
.portal-quote { margin-top: -.5rem; gap: 0; }
.persephone-section .persephone-frame::before { top: -.7rem; width: 24.8rem; height: 16.8rem; }
.persephone-frame .persephone-artwork { margin: .7rem; padding: 0; }
.site-footer::before { opacity: .72; }
.footer-top { padding-top: clamp(2.2rem, 5vw, 5.25rem); padding-inline: clamp(1rem, 15vw, 18rem); }
@media (max-width: 760px) {
 .persephone-section .persephone-frame::before { width: min(48vw, 12rem); height: 8rem; }
 .persephone-frame .persephone-artwork { padding-top: 3rem; }
 .footer-top { padding-inline: 1rem; }
}

/* Collegamenti testuali condivisi: navigazione, footer e verifiche. */
.primary-nav a, .footer-top nav a, .standards-copy a {
  display: inline-block; padding: .45rem .75rem; border: 1px solid #aa906b;
  background: #34533e; color: #fff8eb; font-family: var(--serif);
  font-variant: small-caps; letter-spacing: .035em; text-decoration: none;
}
.primary-nav a:hover, .footer-top nav a:hover, .standards-copy a:hover {
  background: var(--button-ochre-hover); color: #fff;
}
