/*
Theme Name: A. De Robertis & Figli Spa - Portale Dipendenti
Theme URI: https://www.derobertisefigli.it
Description: Child theme per il portale dipendenti aziendale. Include area riservata con login, comunicazioni interne, archivio documenti HR (buste paga, regolamenti, modulistica) e contatti utili.
Author:
Template: twentytwentyfive
Version: 2.4.0
Text Domain: derobertis-portale
*/

/* =========================================================
   DESIGN SYSTEM "Portale dipendenti A. De Robertis & Figli"
   Tutti i valori grafici (colori, raggi, ombre, spaziature,
   caratteri) sono variabili qui sotto: per modificare l'aspetto
   del portale basta cambiare questi valori.

   Tema scuro: disattivato. Il portale ha sempre sfondo bianco,
   anche sui dispositivi in modalità scura.
   ========================================================= */
:root {
    /* Superfici */
    --dr-surface: #ffffff;          /* sfondo di pagina (bianco) */
    --dr-surface-raised: #ffffff;   /* card, pannelli, header */
    --dr-surface-sunken: #edf1f7;   /* input, righe in hover */
    --dr-border-subtle: #e3e8f0;    /* contorni decorativi, separatori */
    --dr-border: #7a8599;           /* bordi dei controlli (≥3:1) */

    /* Testo */
    --dr-ink: #0f1a2b;
    --dr-ink-secondary: #56627a;

    /* Marchio (blu del logo DR) */
    --dr-primary: #002d62;
    --dr-primary-hover: #0a3f82;
    --dr-on-primary: #ffffff;
    --dr-primary-soft: #e8eff9;
    --dr-focus: #2a62e8;

    /* Stati */
    --dr-success: #15754a;
    --dr-success-soft: #e4f4eb;
    --dr-warning: #8f5500;
    --dr-warning-soft: #fdf1dc;
    --dr-danger: #c0271d;
    --dr-danger-soft: #fdecea;

    /* Superfici di marca (hero e footer) */
    --dr-brand-bg: #002d62;
    --dr-brand-ink: #ffffff;
    --dr-brand-muted: rgba(255, 255, 255, .74);
    --dr-brand-line: rgba(255, 255, 255, .16);
    --dr-brand-decor: #0a3f82;

    /* Tipografia */
    --dr-font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    /* Spaziature */
    --dr-space-1: 4px;
    --dr-space-2: 8px;
    --dr-space-3: 12px;
    --dr-space-4: 16px;
    --dr-space-5: 24px;
    --dr-space-6: 32px;
    --dr-space-7: 48px;

    /* Raggi */
    --dr-radius-sm: 8px;
    --dr-radius-md: 12px;
    --dr-radius-lg: 20px;
    --dr-radius-full: 999px;

    /* Ombre */
    --dr-shadow-sm: 0 1px 2px rgba(15, 26, 43, .05), 0 1px 3px rgba(15, 26, 43, .07);
    --dr-shadow-md: 0 4px 12px rgba(15, 26, 43, .08), 0 2px 4px rgba(15, 26, 43, .04);
    --dr-shadow-lg: 0 20px 48px rgba(15, 26, 43, .16);

    /* Nomi della versione 1 (compatibilità con eventuali personalizzazioni) */
    --dr-blu-primario: var(--dr-primary);
    --dr-oro-accento: var(--dr-primary);
    --dr-grigio-testo: var(--dr-ink);
    --dr-grigio-chiaro: var(--dr-surface-sunken);
    --dr-bianco: var(--dr-surface-raised);
    --dr-verde-ok: var(--dr-success);
    --dr-radius: var(--dr-radius-md);

    color-scheme: light;
}

/* Tema scuro DISATTIVATO: si applica solo se al tag <html> viene
   aggiunta la classe "dr-tema-scuro". */
@supports (color: red) {
    :root.dr-tema-scuro {
        --dr-surface: #0b111c;
        --dr-surface-raised: #141c2b;
        --dr-surface-sunken: #0f1622;
        --dr-border-subtle: #1f2a3c;
        --dr-border: #65728a;
        --dr-ink: #e9eef6;
        --dr-ink-secondary: #9ca8bb;
        --dr-primary: #8fb6ff;
        --dr-primary-hover: #b0cbff;
        --dr-on-primary: #06193a;
        --dr-primary-soft: #16294a;
        --dr-focus: #7aa7ff;
        --dr-success: #56c793;
        --dr-success-soft: #10301f;
        --dr-warning: #f2b65e;
        --dr-warning-soft: #35250c;
        --dr-danger: #ff8f85;
        --dr-danger-soft: #3a1614;
        --dr-brand-bg: #16294a;
        --dr-brand-ink: #e9eef6;
        --dr-brand-muted: #b3bfd2;
        --dr-brand-line: rgba(255, 255, 255, .10);
        --dr-brand-decor: #1d3560;
        --dr-shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);
        --dr-shadow-md: 0 4px 16px rgba(0, 0, 0, .5);
        --dr-shadow-lg: 0 20px 48px rgba(0, 0, 0, .6);
        color-scheme: dark;
    }
}

/* =========================================
   RESET DI BASE / SICUREZZA RESPONSIVE
   box-sizing border-box su tutto: senza
   questo, padding e bordi si sommano alla
   larghezza dichiarata e possono far
   "sforare" gli elementi oltre lo schermo
   su mobile. overflow-x impedisce lo
   scroll orizzontale residuo.
   ========================================= */
*, *::before, *::after {
    box-sizing: border-box;
}
html {
    max-width: 100%;
    overflow-x: hidden;
}
html body {
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    background: var(--dr-surface);
    color: var(--dr-ink);
    font-family: var(--dr-font);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img, svg, video {
    max-width: 100%;
    height: auto;
}

/* Anello di focus da tastiera, uguale ovunque */
.dr-site-header a:focus-visible,
.dr-site-header button:focus-visible,
.dr-site-main a:focus-visible,
.dr-site-main button:focus-visible,
.dr-site-footer a:focus-visible {
    outline: 2px solid var(--dr-focus);
    outline-offset: 2px;
    border-radius: var(--dr-radius-sm);
}

/* Testo solo per lettori di schermo (se il tema padre non lo definisce già) */
.screen-reader-text {
    border: 0;
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

/* Icone SVG (generate da derobertis_icona() in functions.php) */
.dr-icona {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: inline-block;
    vertical-align: middle;
}

/* =========================================
   BOTTONI
   ========================================= */
.dr-btn-header,
.dr-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dr-space-2);
    background: var(--dr-primary);
    color: var(--dr-on-primary) !important;
    padding: 10px 18px;
    border: none;
    border-radius: var(--dr-radius-sm);
    text-decoration: none;
    font-family: var(--dr-font);
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.4;
    cursor: pointer;
    transition: background .15s, box-shadow .15s, transform .15s;
}
.dr-btn-header:hover,
.dr-btn:hover {
    background: var(--dr-primary-hover);
    box-shadow: var(--dr-shadow-md);
}
.dr-btn-header:active,
.dr-btn:active { transform: translateY(1px); }

/* =========================================
   LAYOUT GENERALE PORTALE
   ========================================= */
.dr-portale-wrapper {
    max-width: 1180px;
    margin: 0 auto;
    padding: var(--dr-space-6) var(--dr-space-5) var(--dr-space-7);
    color: var(--dr-ink);
    font-family: var(--dr-font);
}

/* HERO / INTESTAZIONE DI BENVENUTO */
.dr-hero {
    position: relative;
    overflow: hidden;
    background: var(--dr-brand-bg);
    color: var(--dr-brand-ink);
    border-radius: var(--dr-radius-lg);
    padding: var(--dr-space-6) var(--dr-space-6);
    margin-bottom: var(--dr-space-6);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--dr-space-5);
    isolation: isolate;
}
/* Motivo decorativo: le "D" del monogramma DR, a destra */
.dr-hero::before,
.dr-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    background: var(--dr-brand-decor);
    border-radius: 0 999px 999px 0;
}
.dr-hero::before {
    width: 120px;
    height: 240px;
    right: 150px;
    top: -60px;
}
.dr-hero::after {
    width: 80px;
    height: 160px;
    right: 40px;
    bottom: -70px;
}

.dr-hero-eyebrow {
    margin: 0 0 var(--dr-space-2);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--dr-brand-muted);
}
.dr-hero-testo h1 {
    margin: 0 0 var(--dr-space-2);
    font-size: 2.25rem;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--dr-brand-ink);
}
.dr-hero-testo p {
    margin: 0;
    font-size: 1rem;
    color: var(--dr-brand-muted);
}
.dr-hero-testo .dr-hero-data::first-letter { text-transform: uppercase; }

.dr-hero-azioni {
    display: flex;
    align-items: center;
    gap: var(--dr-space-4);
}
.dr-hero-logo {
    background: #ffffff;
    border-radius: var(--dr-radius-md);
    padding: var(--dr-space-3);
    line-height: 0;
    box-shadow: var(--dr-shadow-md);
}
.dr-hero-logo img {
    width: 56px;
    height: 56px;
    object-fit: contain;
}
.dr-hero-logout {
    display: inline-flex;
    align-items: center;
    gap: var(--dr-space-2);
    padding: 10px 16px;
    background: transparent;
    color: var(--dr-brand-ink);
    border: 1px solid var(--dr-brand-line);
    border-radius: var(--dr-radius-sm);
    text-decoration: none;
    font-size: .9rem;
    font-weight: 600;
    transition: background .15s, border-color .15s;
}
.dr-hero-logout:hover {
    background: rgba(255, 255, 255, .10);
    border-color: rgba(255, 255, 255, .4);
    color: var(--dr-brand-ink);
}
.dr-hero-logout .dr-icona { width: 18px; height: 18px; }

/* =========================================
   PAGINE STANDARD DEL SITO
   (page.php, singular.php, index.php)
   ========================================= */
.dr-page-wrapper {
    max-width: 820px;
    margin: 0 auto;
    padding: var(--dr-space-7) var(--dr-space-5) var(--dr-space-7);
    color: var(--dr-ink);
    font-family: var(--dr-font);
    font-size: 1rem;
    line-height: 1.65;
}
.dr-page-title {
    font-size: 2.25rem;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--dr-ink);
    margin: 0 0 var(--dr-space-2);
}
.dr-page-meta {
    font-size: .75rem;
    font-weight: 600;
    color: var(--dr-ink-secondary);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin: 0 0 var(--dr-space-5);
}
.dr-page-body :is(h2, h3, h4) {
    color: var(--dr-ink);
    letter-spacing: -.01em;
    margin-top: var(--dr-space-6);
}
.dr-page-body p { margin: 0 0 1.1rem; }
.dr-page-body a {
    color: var(--dr-primary);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}
.dr-page-body a:hover { color: var(--dr-primary-hover); }
.dr-page-body img { border-radius: var(--dr-radius-md); max-width: 100%; height: auto; }
.dr-page-article + .dr-page-article,
.dr-page-article + hr {
    margin-top: var(--dr-space-6);
}

/* Link "Torna a…" / "Vedi tutti…" */
.dr-link-freccia {
    display: inline-flex;
    align-items: center;
    gap: var(--dr-space-2);
    color: var(--dr-primary);
    font-weight: 600;
    font-size: .9rem;
    text-decoration: none;
}
.dr-link-freccia:hover { color: var(--dr-primary-hover); gap: 10px; }
.dr-link-freccia .dr-icona { width: 18px; height: 18px; transition: transform .15s; }
.dr-link-indietro { margin-top: var(--dr-space-7); }

@media (max-width: 600px) {
    .dr-page-wrapper { padding: var(--dr-space-6) var(--dr-space-4) var(--dr-space-7); }
    .dr-page-title { font-size: 1.65rem; }
}

/* =========================================
   FORM (Cambio IBAN, Residenza, Malattia)
   ========================================= */
.dr-card--form {
    max-width: 680px;
    margin: 0 auto;
    padding: var(--dr-space-6);
}
.dr-card--form .dr-page-title { font-size: 1.75rem; }
.dr-form-intro {
    color: var(--dr-ink-secondary);
    font-size: .95rem;
    margin: 0 0 var(--dr-space-5);
}
.dr-notice {
    display: flex;
    gap: var(--dr-space-3);
    align-items: flex-start;
    padding: var(--dr-space-4) var(--dr-space-5);
    border-radius: var(--dr-radius-md);
    margin: 0 0 var(--dr-space-5);
    font-size: .95rem;
    line-height: 1.6;
}
.dr-notice > .dr-icona { margin-top: 2px; }
.dr-notice ul { margin: .5rem 0 0 1.2rem; padding: 0; }
.dr-notice--successo { background: var(--dr-success-soft); color: var(--dr-success); }
.dr-notice--errore { background: var(--dr-danger-soft); color: var(--dr-danger); }
.dr-notice--errore { display: block; }

.dr-form p { margin: 0 0 var(--dr-space-4); }
/* Scelte a pulsante radio (es. Modalità nel Permesso 104) */
.dr-form-scelte {
    border: none;
    margin: 0 0 var(--dr-space-4);
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--dr-space-2);
}
.dr-form-scelte legend {
    font-size: .875rem;
    font-weight: 600;
    color: var(--dr-ink);
    margin-bottom: 6px;
    padding: 0;
}
.dr-form .dr-form-scelte label {
    display: inline-flex;
    align-items: center;
    gap: var(--dr-space-2);
    margin: 0;
    padding: 10px 16px;
    border: 1px solid var(--dr-border);
    border-radius: var(--dr-radius-sm);
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.dr-form .dr-form-scelte input[type="radio"] {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin: 0;
    padding: 0;
    accent-color: var(--dr-primary);
}
.dr-form .dr-form-scelte input[type="radio"]:focus { box-shadow: none; outline: none; }
.dr-form .dr-form-scelte label:has(input:focus-visible) { outline: 2px solid var(--dr-focus); outline-offset: 2px; }
.dr-form .dr-form-scelte label:has(input:checked) {
    border-color: var(--dr-primary);
    background: var(--dr-primary-soft);
    color: var(--dr-primary);
}
/* Orario visibile solo se è scelta la modalità "A ore" */
.dr-form .dr-form-orario { display: none; }
.dr-form:has(input[name="modalita"][value="ore"]:checked) .dr-form-orario { display: flex; }
.dr-form label select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2356627a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 18px;
    padding-right: 40px;
    cursor: pointer;
}

.dr-form [hidden] { display: none !important; }

/* Riga informativa al posto dei dati anagrafici bloccati */
.dr-form .dr-form-anagrafica {
    display: flex;
    gap: var(--dr-space-3);
    align-items: flex-start;
    margin: 0 0 var(--dr-space-5);
    padding: var(--dr-space-3) var(--dr-space-4);
    background: var(--dr-primary-soft);
    color: var(--dr-ink);
    border-radius: var(--dr-radius-md);
    font-size: .875rem;
    line-height: 1.5;
}
.dr-form-anagrafica .dr-icona { color: var(--dr-primary); margin-top: 1px; }
.dr-form label {
    display: block;
    font-size: .875rem;
    font-weight: 600;
    color: var(--dr-ink);
    margin-bottom: var(--dr-space-1);
}
.dr-form label br { display: none; }
.dr-form input,
.dr-form textarea,
.dr-form select {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 11px 14px;
    border: 1px solid var(--dr-border);
    border-radius: var(--dr-radius-sm);
    font-size: .95rem;
    font-weight: 400;
    font-family: inherit;
    background: var(--dr-surface-raised);
    color: var(--dr-ink);
    transition: border-color .15s, box-shadow .15s;
}
.dr-form input::placeholder,
.dr-form textarea::placeholder { color: var(--dr-ink-secondary); }
.dr-form input:hover,
.dr-form textarea:hover { border-color: var(--dr-ink-secondary); }
.dr-form input:focus,
.dr-form textarea:focus,
.dr-form select:focus {
    outline: none;
    border-color: var(--dr-focus);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dr-focus) 25%, transparent);
}
.dr-form textarea { resize: vertical; min-height: 110px; }
.dr-input-bloccato,
.dr-form input.dr-input-bloccato {
    background: var(--dr-surface-sunken) !important;
    border-color: var(--dr-border-subtle) !important;
    color: var(--dr-ink-secondary) !important;
    cursor: not-allowed;
}
.dr-form-nota {
    display: block;
    font-size: .8rem;
    font-weight: 400;
    color: var(--dr-ink-secondary);
    margin-top: 6px;
}
.dr-form-riga {
    display: flex;
    gap: var(--dr-space-4);
    flex-wrap: wrap;
}
.dr-form-riga label { flex: 1; min-width: 140px; }
/* Righe con note sotto ai campi (es. Indirizzo/Città da anagrafica):
   ogni nota resta sotto al proprio campo invece di affiancarsi */
.dr-form-riga:has(> .dr-form-nota) {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: auto auto;
    grid-auto-flow: column;
    column-gap: var(--dr-space-4);
    row-gap: 0;
}
.dr-form-riga:has(> .dr-form-nota) > .dr-form-nota { margin-top: 0; }
.dr-input-maiuscolo { text-transform: uppercase; }
.dr-input-mono { font-family: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace !important; letter-spacing: .04em; }
.dr-input-breve { max-width: 160px; }
.dr-form-separatore {
    margin: var(--dr-space-5) 0;
    border: none;
    border-top: 1px solid var(--dr-border-subtle);
}
.dr-form-azioni {
    margin-top: var(--dr-space-5) !important;
    margin-bottom: 0 !important;
    padding-top: var(--dr-space-5);
    border-top: 1px solid var(--dr-border-subtle);
}
.dr-form-submit {
    font-size: .95rem;
    padding: 12px 24px;
}
.dr-form-sottotitolo {
    font-size: 1rem;
    font-weight: 700;
    color: var(--dr-ink);
    margin: var(--dr-space-5) 0 var(--dr-space-4);
    padding: 0;
    border: none;
}
.dr-form-sottotitolo span {
    font-weight: 400;
    font-size: .85rem;
    color: var(--dr-ink-secondary);
}
.dr-form input.dr-input-file,
.dr-input-file {
    border: 1.5px dashed var(--dr-border);
    border-radius: var(--dr-radius-md);
    padding: var(--dr-space-5) var(--dr-space-4);
    background: var(--dr-surface-sunken);
    font-size: .9rem;
    cursor: pointer;
}
.dr-input-file::file-selector-button {
    margin-right: var(--dr-space-3);
    padding: 8px 14px;
    border: none;
    border-radius: var(--dr-radius-sm);
    background: var(--dr-primary-soft);
    color: var(--dr-primary);
    font-family: inherit;
    font-weight: 600;
    cursor: pointer;
}

/* Archivi (categorie, tag, date) */
.dr-archive-header {
    margin-bottom: var(--dr-space-6);
    padding-bottom: var(--dr-space-5);
    border-bottom: 1px solid var(--dr-border-subtle);
}
.dr-archive-descrizione {
    margin-top: var(--dr-space-2);
    text-transform: none;
    letter-spacing: normal;
    font-weight: 400;
    font-size: .95rem;
    color: var(--dr-ink-secondary);
}
.dr-page-wrapper .dr-page-article {
    background: var(--dr-surface-raised);
    border: 1px solid var(--dr-border-subtle);
    border-radius: var(--dr-radius-md);
    box-shadow: var(--dr-shadow-sm);
    padding: var(--dr-space-5);
}
.dr-page-wrapper .dr-page-article + .dr-page-article { margin-top: var(--dr-space-4); }
.dr-archive-titolo-articolo {
    font-size: 1.25rem !important;
    letter-spacing: -.01em;
    margin-bottom: var(--dr-space-1);
}
.dr-archive-titolo-articolo a {
    color: var(--dr-ink);
    text-decoration: none;
}
.dr-archive-titolo-articolo a:hover { color: var(--dr-primary); }

.dr-pagination {
    display: flex;
    justify-content: space-between;
    gap: var(--dr-space-3);
    margin-top: var(--dr-space-6);
    font-size: .9rem;
}
.dr-pagination a,
.dr-pagination span {
    display: inline-flex;
    padding: 8px 14px;
    border-radius: var(--dr-radius-sm);
    background: var(--dr-surface-raised);
    border: 1px solid var(--dr-border-subtle);
    color: var(--dr-primary);
    font-weight: 600;
    text-decoration: none;
}
.dr-pagination a:hover { background: var(--dr-primary-soft); }

/* Articolo singolo mostrato come card */
.dr-page-wrapper:has(> .dr-page-article:only-of-type) .dr-page-article,
.single .dr-page-wrapper .dr-page-article {
    padding: var(--dr-space-6);
}

/* =========================================
   SKIP LINK (accessibilità)
   ========================================= */
.dr-skip-link {
    position: absolute;
    left: -999px;
    top: auto;
    background: var(--dr-primary);
    color: var(--dr-on-primary);
    padding: var(--dr-space-3) var(--dr-space-5);
    z-index: 1000;
    border-radius: 0 0 var(--dr-radius-sm) 0;
    font-weight: 600;
}
.dr-skip-link:focus {
    left: 0;
    top: 0;
}

/* =========================================
   HEADER DEL SITO (tutte le pagine)
   ========================================= */
.dr-site-header {
    background: color-mix(in srgb, var(--dr-surface-raised) 88%, transparent);
    -webkit-backdrop-filter: saturate(160%) blur(12px);
    backdrop-filter: saturate(160%) blur(12px);
    border-bottom: 1px solid var(--dr-border-subtle);
    position: sticky;
    top: 0;
    z-index: 100;
    font-family: var(--dr-font);
}
.admin-bar .dr-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .dr-site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .dr-site-header { top: 0; } }

.dr-site-header-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: var(--dr-space-3) var(--dr-space-5);
    display: flex;
    align-items: center;
    gap: var(--dr-space-5);
    min-height: 72px;
}

.dr-site-logo {
    display: flex;
    align-items: center;
    gap: var(--dr-space-3);
    text-decoration: none;
    margin-right: auto;
}
/* .dr-site-logo img copre il caso "nome azienda testuale" (nessun logo caricato).
   .custom-logo-link / .custom-logo sono le classi che WordPress genera
   automaticamente quando carichi un logo da Aspetto → Personalizza. */
.dr-site-logo img,
.custom-logo-link {
    display: flex;
    align-items: center;
}
.custom-logo-link img.custom-logo {
    max-height: 48px !important;
    width: auto !important;
    height: auto !important;
    display: block;
}
.dr-site-logo-marchio {
    width: 40px !important;
    height: 40px !important;
    object-fit: contain;
}
.dr-site-logo-testo {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--dr-ink);
    line-height: 1.2;
}
.dr-site-logo-testo span {
    display: block;
    font-size: .7rem;
    font-weight: 600;
    color: var(--dr-ink-secondary);
    letter-spacing: .08em;
    text-transform: uppercase;
}
/* In tema scuro il monogramma (blu su trasparente) va su una piastrella bianca */
@supports (color: red) {
    .dr-tema-scuro .dr-site-logo-marchio,
    .dr-tema-scuro .custom-logo-link img.custom-logo {
        background: #ffffff;
        border-radius: var(--dr-radius-sm);
        padding: 4px;
    }
}

.dr-nav-list {
    list-style: none;
    display: flex;
    align-items: center;
    gap: var(--dr-space-1);
    margin: 0;
    padding: 0;
}
.dr-nav-list a {
    display: block;
    padding: 8px 14px;
    border-radius: var(--dr-radius-sm);
    color: var(--dr-ink-secondary);
    text-decoration: none;
    font-size: .92rem;
    font-weight: 600;
    transition: color .15s, background .15s;
}
.dr-nav-list a:hover {
    color: var(--dr-ink);
    background: var(--dr-surface-sunken);
}
.dr-nav-list .current-menu-item > a,
.dr-nav-list .current_page_item > a,
.dr-nav-list a[aria-current="page"] {
    color: var(--dr-primary);
    background: var(--dr-primary-soft);
}

.dr-site-header-actions {
    display: flex;
    align-items: center;
    gap: var(--dr-space-3);
    white-space: nowrap;
}
.dr-link-header {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1px solid var(--dr-border-subtle);
    border-radius: var(--dr-radius-sm);
    color: var(--dr-ink);
    text-decoration: none;
    font-size: .9rem;
    font-weight: 600;
    transition: background .15s, border-color .15s;
}
.dr-link-header:hover {
    background: var(--dr-surface-sunken);
    border-color: var(--dr-border);
    color: var(--dr-ink);
}
.dr-link-header .dr-icona { width: 18px; height: 18px; }

/* Menu a tendina "Account" */
.dr-account { position: relative; }
.dr-account-toggle {
    background: transparent;
    font-family: inherit;
    cursor: pointer;
}
.dr-account-toggle .dr-icona:last-child {
    width: 16px;
    height: 16px;
    transition: transform .15s;
}
.dr-account-toggle[aria-expanded="true"] {
    background: var(--dr-surface-sunken);
    border-color: var(--dr-border);
}
.dr-account-toggle[aria-expanded="true"] .dr-icona:last-child { transform: rotate(180deg); }
.dr-account-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    min-width: 220px;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: var(--dr-surface-raised);
    border: 1px solid var(--dr-border-subtle);
    border-radius: var(--dr-radius-md);
    box-shadow: var(--dr-shadow-md);
    z-index: 200;
}
.dr-account-menu[hidden] { display: none; }
.dr-account-utente {
    padding: 8px 12px 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--dr-border-subtle);
    font-size: .8rem;
    font-weight: 600;
    color: var(--dr-ink-secondary);
    white-space: normal;
}
.dr-account-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: var(--dr-radius-sm);
    color: var(--dr-ink);
    text-decoration: none;
    font-size: .9rem;
    font-weight: 600;
}
.dr-account-menu a:hover,
.dr-account-menu a:focus-visible {
    background: var(--dr-surface-sunken);
    color: var(--dr-ink);
}
.dr-account-menu .dr-icona { width: 18px; height: 18px; color: var(--dr-ink-secondary); }

/* Bottone hamburger, nascosto su desktop */
.dr-menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    background: var(--dr-surface-sunken);
    border: none;
    border-radius: var(--dr-radius-sm);
    cursor: pointer;
    padding: 0;
}
.dr-menu-toggle span:not(.screen-reader-text) {
    display: block;
    width: 18px;
    height: 2px;
    background: var(--dr-ink);
    border-radius: 2px;
    transition: transform .2s, opacity .2s;
}
.dr-menu-toggle-attivo span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.dr-menu-toggle-attivo span:nth-child(2) { opacity: 0; }
.dr-menu-toggle-attivo span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 860px) {
    .dr-site-header-inner { flex-wrap: wrap; gap: var(--dr-space-3); padding: var(--dr-space-3) var(--dr-space-4); }
    .dr-menu-toggle { display: flex; order: 3; }
    .dr-site-logo { order: 1; min-width: 0; }
    .dr-site-logo-testo { overflow-wrap: break-word; }
    .dr-site-header-actions { order: 2; }

    .dr-site-nav {
        order: 4;
        flex-basis: 100%;
        max-height: 0;
        overflow: hidden;
        transition: max-height .25s ease;
    }
    .dr-site-nav.dr-nav-aperto { max-height: 400px; }
    .dr-nav-list {
        flex-direction: column;
        align-items: stretch;
        gap: 2px;
        padding: var(--dr-space-2) 0 var(--dr-space-3);
    }
    .dr-nav-list li { width: 100%; }
    .dr-nav-list a { padding: 12px 14px; }
}

@media (max-width: 480px) {
    .dr-account-etichetta { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); } /* su smartphone resta solo l'icona */
    .dr-account-toggle { padding: 8px 10px; }
    .dr-btn-header { padding: 8px 14px; font-size: .85rem; }
    .dr-site-logo-testo { font-size: .9rem; }
}

/* =========================================
   FOOTER DEL SITO (tutte le pagine)
   ========================================= */
.dr-site-footer {
    background: var(--dr-brand-bg);
    color: var(--dr-brand-muted);
    margin-top: var(--dr-space-7);
    font-family: var(--dr-font);
}

.dr-site-footer-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: var(--dr-space-7) var(--dr-space-5) var(--dr-space-6);
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: var(--dr-space-6);
}

.dr-footer-col h3 {
    color: var(--dr-brand-ink);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin: 0 0 var(--dr-space-4);
    padding: 0;
    border: none;
}
.dr-footer-col:first-child h3 {
    font-size: 1.05rem;
    letter-spacing: -.01em;
    text-transform: none;
}
.dr-footer-col p {
    margin: 0;
    font-size: .9rem;
    line-height: 1.65;
}
.dr-footer-dati-azienda {
    margin-top: var(--dr-space-4) !important;
    padding-top: var(--dr-space-4);
    border-top: 1px solid var(--dr-brand-line);
    font-size: .82rem !important;
}
.dr-footer-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dr-footer-list li { margin-bottom: 10px; font-size: .9rem; line-height: 1.5; }
.dr-footer-list a {
    color: var(--dr-brand-ink);
    text-decoration: none;
    font-size: .9rem;
    font-weight: 500;
}
.dr-footer-list a:hover { text-decoration: underline; text-underline-offset: 3px; }

.dr-site-footer-bottom {
    border-top: 1px solid var(--dr-brand-line);
    text-align: center;
    padding: var(--dr-space-5);
}
.dr-site-footer-bottom p {
    margin: 0;
    font-size: .8rem;
}

@media (max-width: 700px) {
    .dr-site-footer-inner {
        grid-template-columns: 1fr;
        gap: var(--dr-space-5);
        padding: var(--dr-space-6) var(--dr-space-4) var(--dr-space-5);
    }
}

@media (max-width: 600px) {
    .dr-portale-wrapper { padding: var(--dr-space-4) var(--dr-space-4) var(--dr-space-7); }
    .dr-hero { padding: var(--dr-space-5); flex-direction: column; align-items: flex-start; border-radius: var(--dr-radius-md); }
    .dr-hero::before { right: -30px; top: -80px; }
    .dr-hero::after { display: none; }
    .dr-hero-testo h1 { font-size: 1.6rem; }
    .dr-hero-logo { display: none; }
    .dr-card { padding: var(--dr-space-4); }
    .dr-card--form { padding: var(--dr-space-5) var(--dr-space-4); }
    .dr-doc-item { flex-wrap: wrap; gap: var(--dr-space-2); }
    .dr-quicklinks { grid-template-columns: repeat(2, 1fr); }

    /* Righe di campi affiancati nei form (es. Indirizzo/Città in Cambio
       Residenza e Cambio IBAN): su smartphone vanno impilati uno sotto
       l'altro invece che affiancati, anche quando un campo ha un peso
       diverso impostato inline (es. flex:2 su "Residente in"). */
    .dr-form-riga { flex-direction: column; gap: 0; }
    .dr-form-riga:has(> .dr-form-nota) { grid-template-columns: 1fr; grid-auto-flow: row; }
    .dr-form-riga:has(> .dr-form-nota) > .dr-form-nota { margin-bottom: var(--dr-space-4); }
    .dr-form-riga label { flex: 1 1 100% !important; width: 100%; }
}

/* GRIGLIA SEZIONI
   Su desktop: 2 colonne, riempite "a colonna" nell'ordine del
   markup (comunicazioni, documenti, link rapidi a sinistra;
   cedolini, contatti a destra). Su mobile: una sola colonna,
   con ordine di lettura personalizzato tramite la proprietà
   CSS "order" su ciascuna card (vedi media query sotto). */
.dr-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, auto);
    grid-auto-flow: column;
    gap: var(--dr-space-5);
    align-items: start;
    min-width: 0;
}

@media (max-width: 780px) {
    .dr-grid {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        grid-auto-flow: row;
        gap: var(--dr-space-4);
    }
    .dr-card--comunicazioni { order: 1; }
    .dr-card--cedolini      { order: 2; }
    .dr-card--documenti     { order: 3; }
    .dr-card--linkrapidi    { order: 4; }
    .dr-card--contatti      { order: 5; }
}

/* =========================================
   CARD
   ========================================= */
.dr-card {
    background: var(--dr-surface-raised);
    border: 1px solid var(--dr-border-subtle);
    border-radius: var(--dr-radius-md);
    padding: var(--dr-space-5);
    margin-bottom: 0;
    box-shadow: var(--dr-shadow-sm);
    min-width: 0;
}
.dr-grid .dr-card { margin-bottom: 0; }

.dr-card-header {
    display: flex;
    align-items: center;
    gap: var(--dr-space-3);
    margin: 0 0 var(--dr-space-4);
}
.dr-card-icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--dr-radius-sm);
    background: var(--dr-primary-soft);
    color: var(--dr-primary);
    flex-shrink: 0;
}
.dr-card-icona .dr-icona { width: 20px; height: 20px; }

.dr-card h2 {
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.4;
    margin: 0 0 var(--dr-space-4);
    padding: 0;
    border: none;
    color: var(--dr-ink);
}
.dr-card-header h2 { margin: 0; }

.dr-card-nota {
    font-size: .8rem;
    color: var(--dr-ink-secondary);
    margin: var(--dr-space-4) 0 0;
}
.dr-card-nota code {
    font-size: .78rem;
    background: var(--dr-surface-sunken);
    padding: 1px 6px;
    border-radius: 4px;
}
.dr-card-footer {
    margin: var(--dr-space-4) 0 0;
    padding-top: var(--dr-space-4);
    border-top: 1px solid var(--dr-border-subtle);
}

/* Widget nella card contatti */
.dr-widget + .dr-widget { margin-top: var(--dr-space-4); }
.dr-widget h2 { font-size: 1rem; margin-bottom: var(--dr-space-2); }
.dr-widget a { color: var(--dr-primary); }

/* COMUNICAZIONI / NEWS */
.dr-news-item {
    position: relative;
    padding: var(--dr-space-3) var(--dr-space-3);
    margin: 0 calc(var(--dr-space-3) * -1);
    border-radius: var(--dr-radius-sm);
    transition: background .15s;
}
.dr-news-item + .dr-news-item {
    border-top: 1px solid var(--dr-border-subtle);
}
.dr-news-item:hover { background: var(--dr-surface-sunken); }
.dr-news-item:hover + .dr-news-item { border-top-color: transparent; }
.dr-news-item .dr-news-data {
    font-size: .75rem;
    font-weight: 600;
    color: var(--dr-ink-secondary);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.dr-news-item h3 {
    margin: var(--dr-space-1) 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.45;
}
.dr-news-item h3 a {
    color: var(--dr-ink);
    text-decoration: none;
}
/* tutta la riga è cliccabile */
.dr-news-item h3 a::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
}
.dr-news-item:hover h3 a { color: var(--dr-primary); }
.dr-news-item p { margin: 0; font-size: .9rem; line-height: 1.55; color: var(--dr-ink-secondary); }

/* DOCUMENTI HR */
.dr-doc-tabs {
    display: flex;
    gap: var(--dr-space-2);
    flex-wrap: wrap;
    margin-bottom: var(--dr-space-4);
}
.dr-doc-tab {
    padding: 6px 14px;
    border-radius: var(--dr-radius-full);
    background: var(--dr-surface-sunken);
    font-size: .82rem;
    font-weight: 600;
    color: var(--dr-ink-secondary);
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .15s, color .15s;
}
.dr-doc-tab:hover {
    background: var(--dr-primary-soft);
    color: var(--dr-primary);
}
.dr-doc-tab.attivo {
    background: var(--dr-primary);
    color: var(--dr-on-primary);
}

.dr-doc-list { list-style: none; margin: 0; padding: 0; }
.dr-doc-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dr-space-3);
    padding: 10px var(--dr-space-3);
    margin: 0 calc(var(--dr-space-3) * -1);
    border-radius: var(--dr-radius-sm);
    transition: background .15s;
}
.dr-doc-item:hover { background: var(--dr-surface-sunken); }
.dr-doc-item .dr-doc-nome {
    display: flex;
    align-items: center;
    gap: var(--dr-space-3);
    font-size: .95rem;
    font-weight: 600;
    overflow-wrap: anywhere;
    min-width: 0;
}
.dr-doc-icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--dr-radius-sm);
    background: var(--dr-surface-sunken);
    color: var(--dr-ink-secondary);
    flex-shrink: 0;
}
.dr-doc-item:hover .dr-doc-icona { background: var(--dr-surface-raised); }
.dr-doc-icona .dr-icona { width: 18px; height: 18px; }
.dr-doc-testo { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dr-doc-item .dr-doc-meta {
    font-size: .78rem;
    font-weight: 400;
    color: var(--dr-ink-secondary);
}
.dr-doc-download {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--dr-primary-soft);
    color: var(--dr-primary);
    padding: 7px 12px;
    border-radius: var(--dr-radius-sm);
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s, color .15s;
}
.dr-doc-download .dr-icona { width: 16px; height: 16px; }
.dr-doc-download:hover {
    background: var(--dr-primary);
    color: var(--dr-on-primary);
}
.dr-doc-vuoto {
    color: var(--dr-ink-secondary);
    font-size: .9rem;
    margin: 0;
    padding: var(--dr-space-5) var(--dr-space-4);
    text-align: center;
    background: var(--dr-surface-sunken);
    border-radius: var(--dr-radius-sm);
}

/* CONTATTI HR / LINK UTILI */
.dr-contatti-list { list-style: none; margin: 0; padding: 0; }
.dr-contatti-list li {
    padding: var(--dr-space-3) 0;
    border-bottom: 1px solid var(--dr-border-subtle);
    font-size: .9rem;
    color: var(--dr-ink-secondary);
}
.dr-contatti-list li strong {
    color: var(--dr-ink);
    font-weight: 600;
}
.dr-contatti-list li:first-child { padding-top: 0; }
.dr-contatti-list li:last-child { border-bottom: none; padding-bottom: 0; }
.dr-contatti-list a { color: var(--dr-primary); font-weight: 500; text-decoration: none; }
.dr-contatti-list a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* GRIGLIA LINK RAPIDI */
.dr-quicklinks {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: var(--dr-space-3);
}
.dr-quicklink {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--dr-space-3);
    background: var(--dr-surface-raised);
    border: 1px solid var(--dr-border-subtle);
    border-radius: var(--dr-radius-md);
    padding: var(--dr-space-4);
    text-align: left;
    text-decoration: none;
    color: var(--dr-ink);
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.3;
    transition: transform .15s, box-shadow .15s, border-color .15s;
}
.dr-quicklink:hover {
    border-color: var(--dr-primary);
    box-shadow: var(--dr-shadow-md);
    color: var(--dr-ink);
    transform: translateY(-2px);
}
.dr-quicklink .dr-quicklink-icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0;
    border-radius: var(--dr-radius-sm);
    background: var(--dr-primary-soft);
    color: var(--dr-primary);
    font-size: 1rem;
    transition: background .15s, color .15s;
}
.dr-quicklink:hover .dr-quicklink-icona {
    background: var(--dr-primary);
    color: var(--dr-on-primary);
}

@media (prefers-reduced-motion: reduce) {
    .dr-quicklink, .dr-quicklink:hover,
    .dr-btn-header, .dr-site-nav { transition: none; transform: none; }
}

/* =========================================
   PAGINA DI LOGIN PERSONALIZZATA
   (questo foglio di stile viene caricato anche
   su wp-login.php, vedi functions.php)
   ========================================= */
body.login {
    background: var(--dr-surface);
    font-family: var(--dr-font);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
}
body.login #login {
    width: 100%;
    max-width: 400px;
    padding: var(--dr-space-6) var(--dr-space-4);
    margin: 0 auto;
}
.login #login h1 a {
    background-size: contain;
    background-position: center;
    width: 72px;
    height: 72px;
    margin: 0 auto var(--dr-space-5);
    background-color: #ffffff;
    border-radius: var(--dr-radius-md);
    box-shadow: var(--dr-shadow-md);
    border: 10px solid #ffffff;
}
.login form {
    background: var(--dr-surface-raised) !important;
    border: 1px solid var(--dr-border-subtle) !important;
    border-radius: var(--dr-radius-lg);
    box-shadow: var(--dr-shadow-lg) !important;
    padding: var(--dr-space-6) !important;
    margin-top: 0 !important;
}
.login label {
    color: var(--dr-ink) !important;
    font-weight: 600;
    font-size: .875rem !important;
}
.login form .input,
.login input[type="text"],
.login input[type="password"] {
    background: var(--dr-surface-raised) !important;
    color: var(--dr-ink) !important;
    border: 1px solid var(--dr-border) !important;
    border-radius: var(--dr-radius-sm) !important;
    padding: 8px 12px !important;
    font-size: 1rem !important;
    box-shadow: none !important;
}
.login form .input:focus,
.login input[type="text"]:focus,
.login input[type="password"]:focus {
    border-color: var(--dr-focus) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dr-focus) 25%, transparent) !important;
}
.login .button-primary {
    background: var(--dr-primary) !important;
    border-color: var(--dr-primary) !important;
    color: var(--dr-on-primary) !important;
    border-radius: var(--dr-radius-sm) !important;
    font-weight: 600 !important;
    padding: 4px 20px !important;
    min-height: 40px !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
.login .button-primary:hover { background: var(--dr-primary-hover) !important; }
.login .button.wp-hide-pw { color: var(--dr-ink-secondary) !important; }
.login .message,
.login .notice,
.login #login_error {
    border-radius: var(--dr-radius-md);
    border-left-width: 0 !important;
    box-shadow: none !important;
    background: var(--dr-surface-raised);
    color: var(--dr-ink);
    border: 1px solid var(--dr-border-subtle) !important;
}
.login #login_error { background: var(--dr-danger-soft); color: var(--dr-danger); }
.login #nav, .login #backtoblog { text-align: center; }
.login #nav a, .login #backtoblog a { color: var(--dr-ink-secondary) !important; font-weight: 500; }
.login #nav a:hover, .login #backtoblog a:hover { color: var(--dr-primary) !important; }
.login .privacy-policy-page-link a { color: var(--dr-ink-secondary); }
