/* Tema "Arte generativa chiara" (modello 19b del portfolio Website Creator: tortora e pistacchio, settembre 2026) — condiviso con il sito ABA
   (app/generative.css). Strato caricato dopo aba-base.css e blu.css: rimappa i token e ridisegna le superfici
   su fondo tortora, con vetro chiaro, pistacchio e tortora scuro. Il campo di particelle è in site.js (setupFlow). */

@font-face { font-family: 'Sora'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('/fonts/sora-latin-var.woff2') format('woff2'); }
@font-face { font-family: 'Space Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/space-mono-400-latin.woff2') format('woff2'); }

/* I token valgono anche sul body: blu.css li ridefinisce su .uni-section. */
:root, body.blu-hotel, body.uni-section {
  --g-bg: #ebe5dc;
  --g-bg-2: #f6f2eb;
  --g-surface: rgba(246, 242, 235, .72);
  --g-surface-strong: rgba(246, 242, 235, .92);
  --g-tint: rgba(50, 44, 38, .035);
  --g-line: rgba(50, 44, 38, .1);
  --g-line-strong: rgba(50, 44, 38, .22);
  --g-ink: #322c26;
  --g-ink-2: #4a4239;
  --g-muted: #6b6156;
  --g-teal: #4d6a2a;
  --g-teal-hi: #3d5620;
  --g-sand: #7a6c5d;
  --g-navy: #b3a595;
  --g-on-teal: #f6f2eb;
  --g-grad: linear-gradient(90deg, var(--g-teal), var(--g-sand));
  --g-blur: blur(14px);
  --font-mono: 'Space Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --c-primary: var(--g-ink);
  --c-primary-deep: var(--g-bg);
  --c-secondary: var(--g-teal);
  --c-secondary-dark: var(--g-teal);
  --c-teal-soft: rgba(77, 106, 42, .12);
  --c-warm: var(--g-tint);
  --c-warm-deep: var(--g-bg-2);
  --c-accent: var(--g-sand);
  --c-accent-soft: rgba(122, 108, 93, .16);
  --c-text: var(--g-ink);
  --c-muted: var(--g-ink-2);
  --c-line: var(--g-line);
  --c-line-strong: var(--g-line-strong);
  --radius: 20px;
  --radius-sm: 12px;
  --shadow-card: 0 24px 60px -34px rgba(50, 44, 38, 0.36);
  --shadow-lift: 0 30px 70px -30px rgba(50, 44, 38, 0.38), 0 0 0 1px rgba(77, 106, 42, .18);
  --font-sans: 'Sora', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;

  --navy: #e2dacd;
  --navy-deep: var(--g-bg);
  --terracotta: var(--g-teal);
  --cream: transparent;
  --ink: var(--g-ink);
  color-scheme: light;
}

/* Fondo: il colore sta sulla radice, così il canvas fisso (z-index -1) resta sopra di esso e sotto i contenuti.
   Senza JavaScript restano le sfumature statiche. */
html { background: var(--g-bg) radial-gradient(1200px 700px at 85% -10%, rgba(77, 106, 42, .14), transparent 60%) fixed, radial-gradient(900px 600px at -10% 90%, rgba(122, 108, 93, .1), transparent 60%) fixed; }
body { background: transparent; color: var(--g-ink); font-family: var(--font-sans); }
.flow-field { position: fixed; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; opacity: 0; transition: opacity 1.2s ease; }
.flow-field[data-ready] { opacity: .6; }
::selection { background: rgba(77, 106, 42, .35); color: #322c26; }

h1, h2, h3, h4, legend { font-family: var(--font-sans); font-weight: 700; letter-spacing: -.035em; }
h1 em, h2 em, h3 em, .biz-grad { font-style: normal; background: var(--g-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--g-teal); outline-offset: 3px; }
.eyebrow, .biz-eyebrow, .atlas-kicker { font-family: var(--font-mono); font-weight: 400; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow, .eyebrow.dark, .biz-eyebrow { color: var(--g-teal); font-size: 12px; }
picture { background: var(--g-bg-2); }

/* Pulsanti */
.biz-button, .button, .atlas-pill-accent, .atlas-header-cta { border: 1px solid var(--g-teal); border-radius: 999px; background: var(--g-teal); color: var(--g-on-teal) !important; font-weight: 600; box-shadow: 0 0 0 0 rgba(77, 106, 42, 0); transition: background .2s ease, box-shadow .3s ease, transform .2s ease; }
.biz-button:hover, .button:hover, .atlas-pill-accent:hover, .atlas-header-cta:hover { border-color: var(--g-teal-hi); background: var(--g-teal-hi); box-shadow: 0 0 32px -4px rgba(77, 106, 42, .55); transform: translateY(-1px); }
.biz-button-light { border-color: var(--g-teal); background: var(--g-teal); color: var(--g-on-teal); }
.biz-button-quiet, .biz-button-ghost, .atlas-pill, .atlas-pill-quiet { border: 1px solid rgba(50, 44, 38, .3); background: rgba(50, 44, 38, .06); color: var(--g-ink) !important; -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
.biz-button-quiet:hover, .biz-button-ghost:hover, .atlas-pill:hover { border-color: rgba(50, 44, 38, .6); background: rgba(50, 44, 38, .12); color: var(--g-ink); box-shadow: none; }
.student-hero .button, .edisu-partnership .button { background: var(--g-teal); color: var(--g-on-teal); }
.biz-link, .text-link { color: var(--g-teal); text-decoration-color: rgba(77, 106, 42, .5); }
.biz-link:hover, .text-link:hover { color: var(--g-teal-hi); }

/* Header in vetro */
.biz-header, .request-header, .student-header, .atlas-header-light { background: rgba(246, 242, 235, .55); border-bottom: 1px solid var(--g-line); -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); color: var(--g-ink); }
.biz-header[data-scrolled] { background: rgba(246, 242, 235, .82); box-shadow: 0 10px 30px -20px rgba(50, 44, 38, 0.36); }
.brand-logo, .biz-header .brand-logo, .atlas-header-light .brand-logo { background: rgba(50, 44, 38, .94); box-shadow: 0 0 0 1px rgba(50, 44, 38, .2); }
.biz-nav { color: #4a4239; font-weight: 400; }
.biz-nav > a::after { background: var(--g-grad); }
.biz-nav > a:hover, .biz-nav a[aria-current='page'] { color: #322c26; }
.biz-header-phone { color: var(--g-ink); font-family: var(--font-mono); font-weight: 400; }
.biz-header-phone:hover { color: var(--g-teal); }
.biz-header-cta { white-space: nowrap; }
.back-link, .student-home-link { color: var(--g-ink); }
.student-home-link span { color: var(--g-teal); }

/* Hero */
.biz-hero, .biz-breadcrumbs:has(+ .biz-hero) { background: transparent; }
.biz-hero h1 { color: var(--g-ink); font-size: clamp(38px, 5.4vw, 76px); line-height: .98; letter-spacing: -.045em; }
.biz-hero-home h1 { max-width: 760px; }
.biz-lead { color: var(--g-ink-2); }
.biz-hero-points a { border-color: var(--g-line-strong); background: rgba(50, 44, 38, .05); color: var(--g-ink); font-weight: 400; -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
.biz-hero-points a:hover { border-color: var(--g-teal); background: rgba(77, 106, 42, .12); }
.biz-hero-points .biz-icon-sm, .biz-widget-note .biz-icon-sm { color: var(--g-teal); }
.biz-hero-mosaic picture, .biz-hero-photo, .biz-split-photo { border: 1px solid var(--g-line); border-radius: 22px; box-shadow: var(--shadow-card); }
.biz-glass-chip { border: 1px solid var(--g-line-strong); background: rgba(246, 242, 235, .72); color: var(--g-ink); -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
.biz-glass-chip span { color: var(--g-teal); font-family: var(--font-mono); font-weight: 400; }

/* Barra disponibilità in vetro, come la barra .book del modello */
.biz-widget { border: 1px solid rgba(50, 44, 38, .15); border-radius: 20px; background: rgba(246, 242, 235, .6); box-shadow: 0 30px 70px -40px rgba(50, 44, 38, 0.38); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.biz-widget label > span { color: var(--g-muted); font-family: var(--font-mono); font-weight: 400; letter-spacing: .12em; }
.biz-widget-note { color: var(--g-ink-2); }

/* Campi dei moduli */
input, select, textarea, .biz-widget input, .biz-widget select { border: 1px solid rgba(50, 44, 38, .18); border-radius: var(--radius-sm); background: rgba(50, 44, 38, .05); color: var(--g-ink); color-scheme: light; }
input::placeholder, textarea::placeholder { color: #8a7e71; }
input:hover, select:hover, textarea:hover, .biz-widget input:hover, .biz-widget select:hover { border-color: rgba(77, 106, 42, .6); }
input:focus, select:focus, textarea:focus { border-color: var(--g-teal); outline: 2px solid rgba(77, 106, 42, .35); outline-offset: 0; }
select option { background: var(--g-bg-2); color: var(--g-ink); }
input[type='checkbox'], input[type='radio'], .checkbox-label input, .interest-option input { accent-color: var(--g-teal); }

/* Sezioni */
.biz-section, .biz-tour { background: transparent; }
.biz-section-warm { background: linear-gradient(180deg, rgba(50, 44, 38, .03), rgba(50, 44, 38, .015)); border-top: 1px solid var(--g-line); border-bottom: 1px solid var(--g-line); }
.biz-section-navy { background: linear-gradient(135deg, rgba(179, 165, 149, .55), rgba(246, 242, 235, .4)); border-block: 1px solid var(--g-line); }
.biz-section-heading h1, .biz-section-heading h2, .biz-tour-intro h2 { color: var(--g-ink); font-size: clamp(30px, 4vw, 56px); line-height: 1.02; }
.biz-section-heading h1 { font-size: clamp(36px, 5vw, 68px); }
.biz-section-lead, .biz-note, .biz-table-note { color: var(--g-ink-2); }
.biz-section-lead a, .biz-note a, .biz-breadcrumbs a { color: var(--g-teal); }
.biz-breadcrumbs ol { color: var(--g-muted); font-family: var(--font-mono); font-size: 12.5px; }

/* Card in vetro */
.biz-card, .biz-tour-panel, .biz-service-grid li, .biz-address-card, .biz-radar, .biz-table { border: 1px solid var(--g-line); background: var(--g-surface); color: var(--g-ink); -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
.biz-section:not(.biz-section-warm) .biz-service-grid li { border-color: var(--g-line); background: var(--g-surface); }
.biz-card:hover, .biz-tour-panel:hover { border-color: rgba(77, 106, 42, .45); box-shadow: var(--shadow-lift); }
.biz-card h3, .biz-tour-copy h3, .biz-service-grid h3, .biz-steps h3, .biz-room-copy h2, .biz-address-card strong { color: var(--g-ink); }
.biz-card p, .biz-tour-copy > p, .biz-service-grid p, .biz-steps p { color: var(--g-ink-2); }
.biz-card-tag { border: 1px solid var(--g-line); background: rgba(246, 242, 235, .72); color: var(--g-ink); font-weight: 600; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.biz-option-card > .biz-icon-lg, .biz-service-grid .biz-icon-lg { background: rgba(77, 106, 42, .12); color: var(--g-teal); }
.biz-checklist li::before { background: rgba(77, 106, 42, .16); color: var(--g-teal); }

/* Percorso dei punti forti */
.biz-tour-index a { color: var(--g-ink-2); font-weight: 400; }
.biz-tour-index a:hover { background: rgba(50, 44, 38, .05); color: var(--g-ink); }
.biz-tour-index a[aria-current] { border-left-color: var(--g-teal); background: rgba(77, 106, 42, .1); color: #322c26; }
.biz-tour-num { color: var(--g-muted); font-family: var(--font-mono); font-weight: 400; }
.biz-tour-index a[aria-current] .biz-tour-num, .biz-tour-kicker, .biz-tour-facts .biz-icon-sm { color: var(--g-teal); }
.biz-tour-kicker { font-family: var(--font-mono); font-weight: 400; }
.biz-tour-kicker span { background: rgba(77, 106, 42, .14); }
.biz-tour-graphic { background-color: #e2dacd; background-image: radial-gradient(rgba(77, 106, 42, .22) 1.2px, transparent 1.2px); color: var(--g-ink); }
.biz-tour-graphic-mark { background: linear-gradient(135deg, var(--g-navy), #e2ebd0); color: var(--g-sand); box-shadow: 0 0 0 1px rgba(122, 108, 93, .3), 0 0 60px -10px rgba(122, 108, 93, .45); }
.biz-tour-graphic-label { border: 1px solid var(--g-line); background: rgba(246, 242, 235, .8); color: var(--g-ink); }
.biz-tour-graphic-map { background-color: transparent; }

/* Costellazione */
.gx-sky { position: relative; height: 560px; overflow: hidden; border: 1px solid rgba(50, 44, 38, .08); border-radius: 24px; background: rgba(246, 242, 235, .55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.gx-links { position: absolute; inset: 0; width: 100%; height: 100%; }
.gx-links line { stroke: rgba(77, 106, 42, .35); stroke-width: 1; }
.gx-stars { position: absolute; inset: 0; }
.gx-star { position: absolute; display: grid; justify-items: center; gap: 8px; padding: 6px; border: 0; background: none; color: var(--g-ink); font: 600 14px var(--font-sans); cursor: pointer; transform: translate(-50%, -50%); }
.gx-star i { width: 16px; height: 16px; border-radius: 50%; background: var(--g-sand); box-shadow: 0 0 0 6px rgba(122, 108, 93, .15), 0 0 30px rgba(122, 108, 93, .6); transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.gx-star span { padding: 2px 8px; border-radius: 999px; background: rgba(246, 242, 235, .6); white-space: nowrap; }
.gx-star:hover i, .gx-star[aria-pressed='true'] i { background: var(--g-teal); box-shadow: 0 0 0 8px rgba(77, 106, 42, .2), 0 0 40px rgba(77, 106, 42, .7); transform: scale(1.5); }
.gx-star[aria-pressed='true'] span { color: #322c26; }
.gx-details { position: absolute; right: 20px; bottom: 20px; width: 340px; }
.gx-detail { overflow: hidden; border: 1px solid var(--g-line); border-radius: 18px; background: var(--g-surface-strong); }
.gx-sky.is-live .gx-detail:not(.on) { display: none; }
.gx-sky:not(.is-live) { height: auto; }
.gx-sky:not(.is-live) .gx-stars, .gx-sky:not(.is-live) .gx-links { display: none; }
.gx-sky:not(.is-live) .gx-details { position: static; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; width: auto; padding: 14px; }
.gx-detail-visual { height: 180px; overflow: hidden; }
.gx-detail-visual > picture, .gx-detail-visual > div { height: 100%; aspect-ratio: auto; }
.gx-detail-visual .biz-tour-graphic-mark { width: 84px; height: 84px; border-radius: 20px; font-size: 52px; }
.gx-detail-visual .biz-tour-graphic-icon { width: 44px; height: 44px; }
.gx-detail-visual .biz-tour-graphic { gap: 10px; }
.gx-detail-visual .biz-tour-graphic-label { font-size: 13px; }
.gx-detail-body { display: grid; gap: 8px; padding: 16px 18px 20px; }
.gx-detail-body h3 { margin: 0; color: var(--g-ink); font-size: 19px; line-height: 1.25; letter-spacing: -.02em; }
.gx-detail-body p { margin: 0; color: var(--g-ink-2); font-size: 15px; line-height: 1.55; }
.gx-detail-body .biz-link { justify-self: start; font-size: 15px; }
.gx-num { display: grid; width: 100%; height: 100%; place-items: center; background: linear-gradient(135deg, var(--g-navy), #e2ebd0); color: var(--g-sand); font-size: 72px; font-weight: 800; letter-spacing: -.04em; }

/* Passi, radar, tabelle */
.biz-steps::before { background: linear-gradient(90deg, rgba(77, 106, 42, .6), rgba(122, 108, 93, .6)); }
.biz-step-dot, .biz-section:not(.biz-section-navy) .biz-step-dot { border: 1px solid var(--g-sand); background: var(--g-bg); color: var(--g-sand); font-family: var(--font-mono); font-weight: 400; box-shadow: 0 0 24px -4px rgba(122, 108, 93, .5); }
.biz-radar { color: var(--g-teal); }
.biz-radar-home { fill: var(--g-sand); stroke: var(--g-bg); }
.biz-radar-label { fill: var(--g-ink); }
.biz-radar-km, .biz-radar-north text { fill: var(--g-muted); }
.biz-radar-ring { stroke: rgba(50, 44, 38, .18); }
.biz-radar-point circle { fill: var(--g-teal); stroke: var(--g-bg); }
.biz-radar-point text { fill: var(--g-on-teal); }
.biz-radar-legend strong { color: var(--g-ink); }
.biz-radar-legend li > span:nth-child(2) { color: var(--g-ink-2); }
.biz-radar-legend a, .biz-route-links a, .biz-address-card a:not(.biz-button) { color: var(--g-teal); }
.biz-radar-dot { background: var(--g-teal); color: var(--g-on-teal); }
.biz-table th, .biz-table td, .biz-table tr { border-color: var(--g-line); }
.biz-table thead th { background: rgba(50, 44, 38, .04); color: var(--g-muted); font-family: var(--font-mono); font-weight: 400; }
.biz-table tbody th a { color: var(--g-ink); }
.biz-table tbody th small { color: var(--g-muted); }

/* CTA finale e footer */
.biz-final-cta { position: relative; background: radial-gradient(800px 400px at 50% 0%, rgba(77, 106, 42, .16), transparent 70%), rgba(246, 242, 235, .55); border-top: 1px solid var(--g-line); }
.biz-final-cta h2 { color: var(--g-ink); font-size: clamp(32px, 4.6vw, 60px); line-height: 1.02; }
.biz-final-cta p:not(.biz-eyebrow) { color: var(--g-ink-2); }
.biz-final-cta .biz-eyebrow, .biz-section-navy .biz-eyebrow { color: var(--g-teal); }
.biz-student-banner { border-top: 1px solid var(--g-line); background: rgba(179, 165, 149, .35); }
.biz-student-banner h2 { color: var(--g-ink); }
.biz-student-banner p:not(.biz-eyebrow) { color: var(--g-ink-2); }
.biz-footer, footer { border-top: 1px solid var(--g-line); background: rgba(246, 242, 235, .88); color: var(--g-muted); font-family: var(--font-mono); font-size: 13px; }
.biz-footer a, footer a { color: var(--g-ink); }
.biz-footer .biz-footer-nav > a { color: var(--g-ink-2); font-family: var(--font-sans); font-size: 14px; }
.biz-footer-nav > a:hover { color: var(--g-teal); }
.footer-property strong, .footer-company-data strong { color: var(--g-ink); font-family: var(--font-sans); }

/* Pagine di richiesta (hotel e studenti) */
.request-page, .students-page { background: transparent; }
.request-intro, .hotel-page .request-intro { background: transparent; color: var(--g-ink); }
.request-intro h1, .hotel-page .request-intro h1, .booking-choice-content h1 { color: var(--g-ink); font-size: clamp(40px, 6vw, 84px); line-height: .98; letter-spacing: -.045em; }
.request-intro > p, .hotel-page .request-intro > div > p { color: var(--g-ink-2); }
.request-intro .eyebrow, .hotel-page .request-intro .eyebrow { margin-bottom: 16px; color: var(--g-teal); font-size: 12px; }
.hotel-page .request-intro a { color: var(--g-teal); }
.form-shell { margin-top: -110px; }
.request-form, .success-card, .booking-options article { border: 1px solid var(--g-line); border-radius: 24px; background: var(--g-surface-strong); box-shadow: 0 40px 90px -50px rgba(50, 44, 38, 0.38); color: var(--g-ink); -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
.booking-options article { border-top: 1px solid var(--g-teal); }
.booking-options h2 { color: var(--g-ink); }
.booking-options article > p:not(.eyebrow) { color: var(--g-ink-2); }
.request-form fieldset + fieldset, .interest-group { border-top-color: var(--g-line); }
.request-form legend, .eligibility-panel h3, .interest-group h3, .success-terms h3, .form-reassurance strong, .tariff-prices strong { color: var(--g-ink); font-family: var(--font-sans); font-weight: 700; }
.request-form legend span { border-color: rgba(77, 106, 42, .5); color: var(--g-teal); font-family: var(--font-mono); font-weight: 400; }
.form-grid label, .privacy-box label, .hotel-form .form-grid label { color: var(--g-ink); font-weight: 600; }
.field-note, .fieldset-intro, .interest-group > p, .legal-source, .privacy-box p, .hotel-contact, .hotel-consent, .form-reassurance span, .form-scope-note > p:last-child, .eligibility-copy, .commercial-terms > p, .commercial-terms ul, .confirmation-summary ul, .success-card > p:not(.eyebrow):not(.reference), .success-terms > p { color: var(--g-ink-2); }
.legal-source a, .hotel-contact a { color: var(--g-teal); }
.form-reassurance, .form-reassurance div { border-color: var(--g-line); background: rgba(50, 44, 38, .03); }
.form-scope-note, .eligibility-panel, .commercial-terms, .success-terms { border-color: var(--g-line); border-left-color: var(--g-teal); background: rgba(77, 106, 42, .06); }
.dsu-panel { border-left-color: var(--g-sand); }
.tariff-prices { border-color: var(--g-line); background: var(--g-line); }
.tariff-prices span { background: var(--g-bg-2); color: var(--g-ink-2); }
.declaration-list .checkbox-label, .interest-option { border-color: var(--g-line-strong); background: rgba(50, 44, 38, .03); color: var(--g-ink); }
.declaration-list .checkbox-label:has(input:checked), .interest-option:has(input:checked) { border-color: var(--g-teal); background: rgba(77, 106, 42, .1); }
.privacy-box, .reference { background: rgba(50, 44, 38, .04); color: var(--g-ink-2); }
.form-error { border-left-color: #b3452f; background: rgba(255, 110, 90, .12); color: #8f2f1e; }
.success-icon { background: rgba(77, 106, 42, .16); color: var(--g-teal); }

/* Studentato */
.funding-signature { border-bottom: 0; }
.student-hero { background: transparent; }
.student-hero-copy h1 { font-size: clamp(50px, 6.6vw, 96px); line-height: .95; letter-spacing: -.05em; }
.student-hero-copy > p:not(.eyebrow) { color: var(--g-ink-2); }
.student-hero-image { margin: clamp(16px, 3vw, 36px); min-height: 560px; overflow: hidden; border: 1px solid var(--g-line); border-radius: 24px; }
.student-hero-image picture, .student-matching-image picture { position: absolute; inset: 0; }
.student-stats { gap: 1px; margin: 0 var(--gutter); overflow: hidden; border: 1px solid var(--g-line); border-radius: 24px; background: var(--g-line); }
.student-stats div { border: 0; background: var(--g-surface-strong); }
.student-stats strong { background: var(--g-grad); -webkit-background-clip: text; background-clip: text; color: transparent; font-family: var(--font-sans); font-weight: 700; letter-spacing: -.04em; }
.student-stats span { color: var(--g-muted); font-family: var(--font-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.edisu-partnership { margin: clamp(56px, 8vw, 100px) var(--gutter) 0; border: 1px solid var(--g-line); border-radius: 28px; background: linear-gradient(135deg, rgba(179, 165, 149, .75), rgba(246, 242, 235, .6)); -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
.edisu-copy p { color: var(--g-ink-2); }
.edisu-copy p + p { color: var(--g-muted); }
.edisu-link { border-bottom-color: var(--g-teal); color: var(--g-teal); }
.student-services, .student-request-section, .photo-gallery { background: transparent; }
.student-section-heading > p:last-child, .gallery-heading > p, .student-matching-copy > p:not(.eyebrow), .student-request-heading > p:last-child { color: var(--g-ink-2); }
.student-services .gx-sky { max-width: 1280px; margin-top: clamp(36px, 5vw, 64px); }
.student-services .student-intro-links { margin-top: 22px; }
.student-service-grid { border: 1px solid var(--g-line); border-radius: 24px; overflow: hidden; background: var(--g-line); }
.student-service-grid article { background: var(--g-surface-strong); }
.student-service-grid article > span { color: var(--g-teal); font-family: var(--font-mono); font-weight: 400; }
.student-service-grid p { color: var(--g-ink-2); }
.student-matching { margin: 0 var(--gutter); overflow: hidden; border: 1px solid var(--g-line); border-radius: 28px; background: var(--g-surface); }
.gallery-item { border: 1px solid var(--g-line); border-radius: 18px; background: var(--g-bg-2); }
.gallery-item span { border: 1px solid var(--g-line); background: rgba(246, 242, 235, .78); font-family: var(--font-mono); font-weight: 400; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.gallery-item span b { color: var(--g-sand); }
.student-request-form .request-form, .student-request-form .success-card { box-shadow: 0 40px 90px -50px rgba(50, 44, 38, 0.38); }

/* Atlante delle destinazioni */
.atlas-page, .destination-detail-page {
  --atlas-ink: var(--g-ink);
  --atlas-night: transparent;
  --atlas-blue: #e2dacd;
  --atlas-coral: var(--g-teal);
  --atlas-paper: rgba(246, 242, 235, .78);
  --atlas-line: rgba(50, 44, 38, .1);
  background: transparent;
}
.atlas-hero, .destination-detail-hero { background: transparent; }
.atlas-hero-grid { opacity: .18; }
.atlas-hero::after { border-color: rgba(77, 106, 42, .5); opacity: .35; }
.atlas-hero h1, .destination-detail-hero h1, .atlas-intro h2, .atlas-section-heading h2, .po-corridor-heading h2, .destination-detail-body h2, .atlas-card h3, .atlas-category-strip strong, .destination-nearby-card strong, .atlas-origin-card strong, .po-corridor-stop > span { font-family: var(--font-sans); font-style: normal; font-weight: 700; letter-spacing: -.045em; }
.atlas-hero h1 { line-height: .9; }
.atlas-hero h1 em, .atlas-intro h2 em, .atlas-section-heading h2 em { font-style: normal; background: var(--g-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.atlas-kicker, .atlas-kicker-dark, .atlas-card-topline, .destination-nearby-card span, .atlas-search-field > span:not(.sr-only), .atlas-card-footer a, .atlas-result-summary strong { color: var(--g-sand); }
.atlas-section-copy .atlas-kicker { font-family: var(--font-sans); letter-spacing: -.025em; text-transform: none; color: var(--g-ink); }
.atlas-hero-lead, .atlas-intro-copy p + p, .atlas-section-copy > p:last-child, .atlas-card-description, .atlas-result-summary p:last-child, .destination-detail-description { color: var(--g-ink-2); }
.atlas-card-address, .atlas-card-topline small, .destination-nearby-card small, .atlas-mode-fieldset legend, .atlas-empty { color: var(--g-muted); }
.atlas-origin-card { border: 1px solid rgba(122, 108, 93, .6); border-radius: 18px; background: rgba(246, 242, 235, .78); box-shadow: 0 0 60px -20px rgba(77, 106, 42, .5); -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
.atlas-origin-card p, .destination-detail-breadcrumb a { color: var(--g-sand); }
.po-corridor { margin: 0 var(--gutter); border: 1px solid var(--g-line); border-radius: 28px; background: linear-gradient(135deg, rgba(179, 165, 149, .7), rgba(246, 242, 235, .55)); }
.po-corridor-stop { background: rgba(246, 242, 235, .85); }
.po-corridor-stop:hover { background: var(--g-teal); color: var(--g-on-teal); }
.atlas-category-strip > button { background: rgba(246, 242, 235, .85); color: var(--g-ink); }
.atlas-category-strip > button:hover { background: rgba(77, 106, 42, .12); }
.atlas-category-strip > button[aria-pressed='true'] { background: var(--g-teal); color: var(--g-on-teal); }
.atlas-category-strip > button:focus-visible { outline-color: var(--g-sand); }
.atlas-filter-grid input, .atlas-filter-grid select { border-radius: var(--radius-sm); background: rgba(50, 44, 38, .05); color: var(--g-ink); }
.atlas-mode-list label { border-radius: 999px; }
.atlas-mode-list label.is-active { border-color: var(--g-teal); background: var(--g-teal); color: var(--g-on-teal); }
.atlas-card:hover, .destination-nearby-card:hover { background: rgba(246, 242, 235, .95); }
.destination-nearby-card { background: rgba(246, 242, 235, .85); }
.destination-detail-facts { border-left-color: var(--g-sand); border-radius: 0 16px 16px 0; background: rgba(50, 44, 38, .05); }

/* Banner statistiche: stesso peso per le due scelte */
.analytics-consent { border: 1px solid var(--g-line-strong); border-radius: 18px; background: var(--g-surface-strong); -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
.analytics-consent button, .analytics-consent button.analytics-consent-quiet { border: 1px solid rgba(50, 44, 38, .5); border-radius: 999px; background: transparent; color: var(--g-ink); font-family: var(--font-sans); }
.analytics-consent button:hover { border-color: var(--g-teal); color: var(--g-teal); filter: none; }

.biz-lightbox::backdrop { background: rgba(4, 7, 13, .94); }

@media (max-width: 900px) {
  .biz-tour-index { background: rgba(246, 242, 235, .88); border-bottom-color: var(--g-line); -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
  .biz-tour-index a { border-color: var(--g-line-strong); }
  .biz-tour-index a[aria-current] { border-color: var(--g-teal); background: var(--g-teal); color: var(--g-on-teal); }
  .student-hero-image { min-height: 420px; }
}
@media (max-width: 760px) {
  .gx-sky, .gx-sky.is-live { height: auto; padding: 14px; }
  .gx-links { display: none; }
  .gx-stars { position: static; display: flex; gap: 8px; margin: 0 -14px 14px; padding: 2px 14px; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .gx-stars::-webkit-scrollbar { display: none; }
  .gx-star { position: static; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px 8px 10px; border: 1px solid var(--g-line-strong); border-radius: 999px; font-size: 13.5px; transform: none; }
  .gx-star span { padding: 0; background: none; }
  .gx-star i { width: 10px; height: 10px; box-shadow: 0 0 12px rgba(122, 108, 93, .6); }
  .gx-star:hover i, .gx-star[aria-pressed='true'] i { transform: none; }
  .gx-star[aria-pressed='true'] { border-color: var(--g-teal); background: rgba(77, 106, 42, .14); }
  .gx-details { position: static; width: auto; }
  .student-stats, .student-matching, .edisu-partnership, .po-corridor { margin-inline: 12px; }
}
@media (max-width: 640px) {
  .biz-header-phone { border-color: var(--g-line-strong); }
  .biz-hero h1 { font-size: clamp(34px, 10vw, 46px); }
}
@media (prefers-reduced-motion: reduce) {
  .flow-field { transition: none; }
}


/* ------------------------------------------------------------------ Blu Hotel e UNI+ BLU */
body.uni-section { background: transparent; }
html:lang(ru) body, html:lang(zh) body { --font-sans: system-ui, -apple-system, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', Roboto, Arial, sans-serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace; }
:root { --font-serif: var(--font-sans); --grain: none; }

.blu-brand, .blu-brand-light { color: var(--g-ink); }
.blu-brand-mark, .blu-brand-light .blu-brand-mark { background: linear-gradient(135deg, var(--g-teal), var(--g-sand)); color: var(--g-on-teal); font-family: var(--font-sans); font-style: normal; font-weight: 700; }
.blu-brand-mark::after { background: var(--g-bg); }
.blu-brand-text small, .blu-brand-light .blu-brand-text small { color: var(--g-muted); font-family: var(--font-mono); font-weight: 400; }
.uni-brand, .uni-brand-light { color: var(--g-ink); }
.uni-brand small { color: var(--g-muted); font-family: var(--font-mono); }
.uni-header { background: rgba(246, 242, 235, .72); }
.uni-section .button, .uni-section .student-hero .button { background: var(--g-teal); color: var(--g-on-teal); }
.uni-section .button:hover { background: var(--g-teal-hi); }
.uni-section .eyebrow, .uni-section .eyebrow.dark { color: var(--g-teal); }
.uni-page .request-intro a { color: var(--g-teal); }

.biz-progress { background: var(--g-grad); }
.biz-proof { border-color: var(--g-line); background: var(--g-surface-strong); box-shadow: 0 30px 70px -40px rgba(50, 44, 38, 0.38); -webkit-backdrop-filter: var(--g-blur); backdrop-filter: var(--g-blur); }
.biz-proof li { border-color: var(--g-line); }
.biz-proof li > .biz-icon { background: rgba(77, 106, 42, .12); color: var(--g-teal); }
.biz-proof strong { color: var(--g-ink); }
.biz-proof span { color: var(--g-ink-2); }
.biz-proof a { color: var(--g-teal); }
.biz-hero-inset { border-color: var(--g-bg); }
.biz-badge { background: linear-gradient(135deg, var(--g-navy), #e2ebd0); box-shadow: 0 0 0 1px rgba(122, 108, 93, .35), 0 0 50px -10px rgba(122, 108, 93, .5); }
.biz-badge text { fill: var(--g-sand); font-family: var(--font-mono); font-weight: 400; }
.biz-badge .biz-badge-plus { fill: var(--g-teal); }
.biz-marquee { border-color: var(--g-line); background: rgba(246, 242, 235, .6); }
.biz-marquee-track span:nth-child(4n+1) { color: var(--g-sand); font-style: normal; }
.biz-marquee-track b { color: var(--g-teal); }
.biz-blobs span:first-child { background: var(--g-teal); opacity: .22; }
.biz-blobs span:nth-child(2) { background: var(--g-sand); opacity: .18; }
.biz-blobs span:nth-child(3) { background: var(--g-navy); }
.biz-spot::before { background: radial-gradient(280px circle at var(--mx, 50%) var(--my, 0%), rgba(77, 106, 42, .14), transparent 70%); }
.biz-option-number { -webkit-text-stroke-color: rgba(50, 44, 38, .16); font-family: var(--font-sans); }
.biz-option-card:hover .biz-option-number { -webkit-text-stroke-color: var(--g-sand); }
.biz-footer-wordmark { -webkit-text-stroke-color: rgba(50, 44, 38, .14); }
.biz-footer-wordmark em, .uni-footer .biz-footer-wordmark em { color: var(--g-teal); font-style: normal; }
.blu-footer, .uni-footer { background: rgba(246, 242, 235, .88); }

.blu-booker, .blu-booker-panel { border-color: rgba(50, 44, 38, .15); border-radius: 20px; background: rgba(246, 242, 235, .6); box-shadow: 0 30px 70px -40px rgba(50, 44, 38, 0.38); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.blu-booker label { color: var(--g-muted); font-family: var(--font-mono); font-weight: 400; }
.blu-booker input, .blu-booker select { border-color: rgba(50, 44, 38, .18); background: rgba(50, 44, 38, .05); color: var(--g-ink); }
.blu-booker input:focus, .blu-booker select:focus { border-color: var(--g-teal); outline: 2px solid rgba(77, 106, 42, .35); }
.blu-booker-note, .blu-prenota-direct { color: var(--g-ink-2); }
.blu-booker-error { color: #8f2f1e; }
.blu-room-index a, .blu-equipment li { border-color: var(--g-line); background: var(--g-surface); color: var(--g-ink); }
.blu-room-index a:hover { border-color: var(--g-teal); }
.blu-room-index strong { color: var(--g-ink); }
.blu-room-index span, .blu-route-grid p { color: var(--g-ink-2); }
.blu-equipment li::before { background: rgba(77, 106, 42, .16); box-shadow: inset 0 0 0 5px var(--g-teal); }
.blu-space-capacity, .blu-route-grid .biz-icon-lg { color: var(--g-teal); }
.blu-space-capacity strong { background: var(--g-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.blu-atlas .atlas-hero::after { border-color: rgba(122, 108, 93, .45); }
.blu-student-banner { background: rgba(179, 165, 149, .35); }
.blu-lang summary, .blu-lang-dark summary { border-color: var(--g-line-strong); background: rgba(50, 44, 38, .05); color: var(--g-ink); }
.blu-lang summary:hover { border-color: var(--g-teal); }
.blu-lang ul { border-color: var(--g-line); background: var(--g-surface-strong); }
.blu-lang li a { color: var(--g-ink); }
.blu-lang li a:hover { background: rgba(50, 44, 38, .06); color: #322c26; }
.blu-lang li a[aria-current] { background: rgba(77, 106, 42, .14); color: var(--g-teal); }
.blu-404-langs { color: var(--g-muted); }
.blu-404-langs a { color: var(--g-teal); }

.uni-rates { margin: clamp(56px, 8vw, 100px) var(--gutter) 0; border: 1px solid var(--g-line); border-radius: 28px; background: linear-gradient(135deg, rgba(179, 165, 149, .75), rgba(246, 242, 235, .6)); }
.uni-rate-card { border: 1px solid var(--g-line); background: var(--g-surface-strong); color: var(--g-ink); }
.uni-rate-card p { color: var(--g-ink-2) !important; }
.uni-rate-card-quiet { background: rgba(50, 44, 38, .04); }
.uni-rate-label, .uni-rate-card-quiet .uni-rate-label { color: var(--g-teal) !important; font-family: var(--font-mono); font-weight: 400; }
.uni-rate-value strong { background: var(--g-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.uni-rate-note { color: var(--g-muted) !important; }

/* Grafica delle schede della costellazione quando non c'è una foto dello spazio. */
.gx-graphic { display: grid; height: 100%; place-content: center; justify-items: center; gap: 10px; background-color: #e2dacd; background-image: radial-gradient(rgba(77, 106, 42, .22) 1.2px, transparent 1.2px); background-size: 18px 18px; }
.gx-graphic-mark { display: grid; width: 84px; height: 84px; place-items: center; border-radius: 20px; background: linear-gradient(135deg, var(--g-navy), #e2ebd0); color: var(--g-sand); box-shadow: 0 0 0 1px rgba(122, 108, 93, .3), 0 0 60px -10px rgba(122, 108, 93, .45); }
.gx-graphic-icon { width: 44px; height: 44px; stroke-width: 1.4; }
.gx-graphic-label { padding: 4px 12px; border: 1px solid var(--g-line); border-radius: 999px; background: rgba(246, 242, 235, .8); color: var(--g-ink); font: 400 12px var(--font-mono); letter-spacing: .12em; }
.gx-detail-visual picture { height: 100%; }
.gx-detail-visual img { width: 100%; height: 100%; object-fit: cover; }
.biz-section .gx-sky { margin-bottom: clamp(24px, 4vw, 40px); }
.student-services .gx-sky { max-width: 1280px; margin-top: clamp(36px, 5vw, 64px); }
@media (max-width: 760px) {
  .uni-rates { margin-inline: 12px; }
}
/* Le parole in evidenza dei titoli restano nel carattere del titolo (niente corsivo serif del tema precedente). */
h1 em, h2 em, h3 em, .biz-reveal-title em { font-family: var(--font-sans); font-style: normal; font-weight: inherit; }

/* Palette 19b (tortora e pistacchio): pulsante principale pistacchio con testo inchiostro, come nel modello. */
.biz-button, .button, .atlas-pill-accent, .atlas-header-cta, .biz-button-light, .student-hero .button, .edisu-partnership .button, .uni-section .button, .uni-section .student-hero .button { border-color: #b9cf8f; background: #b9cf8f; color: #322c26 !important; }
.biz-button:hover, .button:hover, .atlas-pill-accent:hover, .atlas-header-cta:hover, .biz-button-light:hover, .uni-section .button:hover { border-color: #a9c47a; background: #a9c47a; box-shadow: 0 0 32px -8px rgba(77, 106, 42, .45); }
.analytics-consent p { color: var(--g-ink-2); }
.analytics-consent strong { color: var(--g-ink); }


/* Palette 19b: testi che il tema di base scriveva in bianco (per fondi scuri, qui diventati chiari). Generato da testi-chiari.py. */
.site-header { color: var(--g-ink); }
.hero { color: var(--g-ink); }
.edisu-partnership { color: var(--g-ink); }
.edisu-copy p+p { color: var(--g-ink-2); }
.gallery-item span { color: var(--g-ink); }
.first-services { color: var(--g-ink); }
.services-intro>p:last-child { color: var(--g-ink-2); }
.service-grid article>span { color: var(--g-ink-2); }
.service-grid p { color: var(--g-ink-2); }
.final-cta { color: var(--g-ink); }
.final-cta p:not(.eyebrow) { color: var(--g-ink-2); }
.request-intro>p { color: var(--g-ink-2); }
.student-hero { color: var(--g-ink); }
.student-hero-copy>p:not(.eyebrow) { color: var(--g-ink-2); }
.atlas-page .atlas-header { color: var(--g-ink); }
.atlas-hero { color: var(--g-ink); }
.atlas-origin-card span, .atlas-origin-card small { color: var(--g-ink-2); }
.po-corridor { color: var(--g-ink); }
.po-corridor-heading h2 { color: var(--g-ink); }
.po-corridor-heading>p:not(.atlas-kicker) { color: var(--g-ink-2); }
.atlas-category-strip>button[aria-pressed=true] { color: var(--g-ink); }
.analytics-consent { color: var(--g-ink); }
.destination-detail-hero { color: var(--g-ink); }
.destination-detail-breadcrumb { color: var(--g-muted); }
.destination-detail-facts span { color: var(--g-muted); }
.destination-detail-facts p { color: var(--g-ink-2); }
.biz-section-navy { color: var(--g-ink); }
.biz-section-navy .biz-section-heading h2, .biz-section-navy .biz-steps h3 { color: var(--g-ink); }
.biz-section-navy .biz-section-lead, .biz-section-navy .biz-steps p { color: var(--g-ink-2); }
.biz-marquee { color: var(--g-ink); }
.biz-option-card:hover>.biz-icon-lg { color: var(--g-ink); }
.biz-student-banner { color: var(--g-ink); }
.biz-student-banner .biz-eyebrow { color: var(--g-ink-2); }
.biz-final-cta { color: var(--g-ink); }
.biz-footer .biz-footer-nav>a { color: var(--g-ink-2); }
.hotel-page .request-intro>div>p { color: var(--g-ink-2); }
.uni-rate-card-quiet { color: var(--g-ink); }
.uni-rate-card-quiet p { color: var(--g-ink-2); }
.blu-atlas .biz-final-cta .biz-button-ghost { color: var(--g-ink); }
