/* La Corte Astigiana · tema pergamena e oro, v0.7 (2026-11-04).
   Ornamenti SVG originali; filigrana derivata dal marchio esistente.
   Applicazione: body.corte-theme. Non modifica fotografie o geometrie del logo. */
body.corte-theme {
  --paper: #f2ecda;
  --paper-bright: #fbf8ef;
  --paper-panel: #f7f1e2;
  --ink: #30291f;
  --muted: #675c48;
  --gold: #a08244;
  --gold-ink: #806227;
  --gold-line: #a0824470;
  --line: #a0824460;
  --light: #f7f1e2;
  position: relative;
  isolation: isolate;
  background-color: var(--paper);
  background-image:
    radial-gradient(ellipse at 48% 15%, #fffdf5a6 0, #fffdf500 58%),
    radial-gradient(ellipse at 3% 68%, #c9b78318 0, #c9b78300 64%);
  color: var(--ink);
}
body.corte-theme::before,
body.corte-theme::after {
  content: "";
  position: fixed;
  pointer-events: none;
  z-index: -1;
}
/* A single static decorative layer: no blur, scroll handler or animation. */
body.corte-theme::before {
  inset: 0;
  background-image: url("./ornaments/castle-watermark.svg"), url("./ornaments/laurel-left.svg"), url("./ornaments/laurel-right.svg");
  background-repeat: no-repeat;
  background-size: min(1100px, 110vw) auto, 245px auto, 245px auto;
  background-position: center bottom -55px, left -130px top 30%, right -130px top 61%;
}
body.corte-theme::after {
  position: absolute;
  inset: 10px;
  border: 3px double #a082449e;
  background-image: url("./ornaments/corner-tl.svg"), url("./ornaments/corner-tr.svg"), url("./ornaments/corner-bl.svg"), url("./ornaments/corner-br.svg");
  background-size: 58px 58px;
  background-repeat: no-repeat;
  background-position: left top, right top, left bottom, right bottom;
}
.corte-theme ::selection { background: var(--gold-ink); color: var(--paper-bright); }
.corte-theme .header,
.corte-theme .legal-header { border-bottom-color: var(--gold-line); }
.corte-theme .eyebrow { color: var(--gold-ink); }
.corte-theme .desktop-nav>a[aria-current=page] { box-shadow: 0 1px var(--gold); }
.corte-theme :is(.brand, .footer-brand, .legal-brand, .corte-gold-logo) { position: relative; }
/* The original image supplies layout and alternative text. Its exact silhouette
   is painted by a CSS mask; no modified raster or replacement brand drawing. */
@supports (mask-image: url("./logo-la-corte-astigiana-v0.2.svg")) {
  .corte-theme :is(.brand, .footer-brand, .legal-brand, .corte-gold-logo)::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--gold-ink);
    mask: url("./logo-la-corte-astigiana-v0.2.svg") center / contain no-repeat;
    pointer-events: none;
  }
  .corte-theme :is(.brand, .footer-brand, .legal-brand, .corte-gold-logo)>img { opacity: 0; }
}
.corte-theme .button:not(.button-outline) {
  background: var(--gold-ink);
  color: var(--paper-bright);
  border-color: var(--gold-ink);
}
.corte-theme .button:not(.button-outline):hover { background: #664e25; border-color: #664e25; }
.corte-theme .button-outline { border-color: var(--gold-ink); color: var(--ink); background: transparent; }
.corte-theme .button-outline .button-icon { background: var(--gold-ink); color: var(--paper-bright); }
.corte-theme .button-outline:hover { background: var(--gold-ink); color: var(--paper-bright); }
.corte-theme .button-outline:hover .button-icon { background: var(--paper-bright); color: var(--gold-ink); }
.corte-theme .button-icon { background: var(--paper-bright); color: var(--gold-ink); }
.corte-theme .button:hover .button-icon { background: var(--paper-bright); color: var(--gold-ink); }
.corte-theme .text-link { border-bottom-color: var(--gold); }
.corte-theme :is(.menu-invitation, .corte-paper) {
  background-color: #fbf8efb8;
  border-color: var(--gold-line);
}
.corte-theme .corte-paper { position: relative; }
.corte-theme .ornamental-frame {
  position: relative;
  border: 1px solid var(--gold-line);
  padding: clamp(24px, 3.2vw, 42px);
  background-color: #fbf8efc9;
}
.corte-theme .ornamental-frame::before,
.corte-theme .ornamental-frame::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.corte-theme .ornamental-frame::before { inset: 5px; border: 1px solid #a082444a; }
.corte-theme .ornamental-frame::after {
  inset: 0;
  background-image: url("./ornaments/corner-tl.svg"), url("./ornaments/corner-tr.svg"), url("./ornaments/corner-bl.svg"), url("./ornaments/corner-br.svg");
  background-repeat: no-repeat;
  background-position: left top, right top, left bottom, right bottom;
  background-size: 44px 44px;
  opacity: .85;
}
.corte-theme .hours-card h3 { color: var(--ink); }
.corte-theme .hours-service-label { color: var(--gold-ink); }
.corte-theme .hours-time { color: var(--ink); }
.corte-theme .hours-note { color: var(--muted); }
.corte-theme .palio-poem {
  position: relative;
  text-wrap: pretty;
}
.corte-theme .palio-poem::before {
  content: "";
  display: block;
  width: min(244px, 80%);
  height: 24px;
  margin: 0 auto 26px;
  background: url("./ornaments/fleur-divider.svg") center / contain no-repeat;
  pointer-events: none;
}
.corte-theme .menu-sections button[aria-pressed=true] { color: var(--gold-ink); box-shadow: 0 2px var(--gold); }
.corte-theme .language-trigger { border-color: var(--gold-line); }
.corte-theme .language-trigger:hover,
.corte-theme .language-trigger[aria-expanded=true] { background: var(--paper-bright); border-color: var(--gold); }
.corte-theme .language-popover { background: var(--paper-bright); border-color: var(--gold-line); box-shadow: 0 10px 30px #5e492316; }
.corte-theme .language-popover>button:hover,
.corte-theme .language-popover>button:focus-visible { background: #eee4cd; }
.corte-theme .language-popover>button[aria-checked=true] { background: var(--gold-ink); color: var(--paper-bright); }
.corte-theme dialog { background: var(--paper-bright); border: 1px solid var(--gold-line); }
.corte-theme .booking-service { background: #f7f1e266; }
.corte-theme :is(.contact-grid input, .calendar-card) { background-color: var(--paper-bright); }
.corte-theme .footer { background: #eee5ceb8; color: var(--ink); border-top: 1px solid var(--gold-line); }
.corte-theme :is(.footer-bottom, .footer-legal, .footer-main>p) { border-color: var(--gold-line); }
.corte-theme .footer-bottom { color: var(--muted); }
.corte-theme .footer a:focus-visible { outline-color: var(--gold-ink); }
@media (max-width: 1000px) {
  body.corte-theme::before { background-position: center bottom -30px, left -185px top 30%, right -185px top 61%; }
}
@media (max-width: 640px) {
  body.corte-theme::before {
    background-image: url("./ornaments/castle-watermark.svg");
    background-size: 620px auto;
    background-position: center bottom -24px;
  }
  body.corte-theme::after { inset: 6px; border-width: 3px; background-size: 28px 28px; }
  /* Mobile leaves belong to the poem/hours sections, rather than following
     controls around the viewport. Their silhouettes fade within the margin. */
  .corte-theme :is(.palio-section, .hours-section) { position: relative; isolation: isolate; }
  .corte-theme :is(.palio-section, .hours-section)::before {
    content: "";
    position: absolute;
    top: 8%;
    bottom: 0;
    left: calc(-1 * var(--gutter, 20px));
    right: calc(-1 * var(--gutter, 20px));
    z-index: -1;
    pointer-events: none;
    background-image: url("./ornaments/laurel-left.svg"), url("./ornaments/laurel-right.svg");
    background-repeat: no-repeat;
    background-position: left -140px top, right -140px bottom;
    background-size: 210px auto;
    mask-image: linear-gradient(90deg, #000 0, #000 14px, #0000 28px, #0000 calc(100% - 28px), #000 calc(100% - 14px));
  }
  .corte-theme .ornamental-frame { padding: 25px 22px; }
  .corte-theme .ornamental-frame::after { background-size: 34px 34px; }
}
@media print {
  body.corte-theme { background: white; }
  body.corte-theme::before,
  body.corte-theme::after { display: none; }
  .corte-theme .ornamental-frame { break-inside: avoid; }
}
