/* Orfinitalia — integrazione WordPress del design system (bundle.css). */

/* L'attributo hidden vince sempre sui display dei componenti (banner cookie, barra mobile, viste del banner) */
.or [hidden] { display: none !important; }


body { margin: 0; background: #fff; }
.or-main { display: block; }

/* Accesso rapido al contenuto */
.or-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; padding: 10px 16px; border-radius: var(--radius-md); background: var(--navy); color: #fff; font-weight: 700; text-decoration: none; }
.or-skip:focus { left: 16px; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }

/* Barra mobile e menu */
.or-mbar[hidden] { display: none; }
html.is-menu-open { overflow: hidden; }
@media (max-width: 1099.98px) { html.has-mbar body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); } }
.or-hero__note { margin-top: 12px; max-width: 540px; }

/* Blocchi Gutenberg dentro il testo */
.or-content p:empty { display: none; }
.or-content > .wp-block-heading { margin-bottom: 0; }
.or-content img { max-width: 100%; height: auto; }

/* Articoli con il template classico: classi dei contenuti del sito precedente */
.or-content--legacy table { width: 100%; border-collapse: collapse; font-size: 16px; }
.or-content--legacy th, .or-content--legacy td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.or-content--legacy th { color: var(--navy); background: var(--surface-alt); }
.or-content--legacy h3 { font-size: 20px; line-height: 26px; font-weight: 800; color: var(--navy); margin-top: 12px; }
.or-content .orfin-cta { padding: 20px; border-radius: var(--radius-lg); background: var(--tint-blue); display: grid; gap: 12px; }
.or-content .orfin-cta > :first-child { margin-top: 0; }
.or-content .orfin-button, .or-content a.orfin-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 20px; border-radius: var(--radius-md); background: var(--yellow); color: var(--on-yellow); font-weight: 700; text-decoration: none; }
.or-content .orfin-button:hover { background: var(--yellow-hover); }
.or-content .orfin-disclaimer { font-size: 14px; line-height: 21px; color: var(--ink-muted); }

/* Allineamenti di WordPress */
.alignleft { float: left; margin: 0 16px 8px 0; }
.alignright { float: right; margin: 0 0 8px 16px; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text { font-size: 14px; color: var(--ink-muted); }

/* Pagina del preventivo */
.or-preventivo__form:empty { display: none; }
html.has-cookie .or-mbar { display: none; }

/* Passi "Come funziona": card di altezza uguale, contenuto allineato in alto */
.or .or-step { align-content: start; }

/* Header mobile: solo logo e hamburger. Il preventivo è nella barra in basso e in ogni pagina; il bottone torna da 768 px. */
.or .or-menu > summary { justify-content: center; width: 48px; height: 48px; padding: 0; margin-right: -8px; }
.or .or-menu > summary .or-ico { width: 26px; height: 26px; stroke-width: 2.2; }
.or .or-menu[open] > summary .or-ico--menu, .or .or-menu:not([open]) > summary .or-ico--close { display: none; }
@media (max-width: 767.98px) { .or .or-header__cta { display: none; } }
/* Menu mobile aperto: copre tutta la pagina sotto l'header */
.or .or-menu__panel { min-height: calc(100vh - 64px); min-height: calc(100dvh - 64px); }
html.is-menu-open { overflow: hidden; }

/* Contenuti esistenti (articoli e pagine non rifatte): niente più largo dello schermo */
.or .or-article__grid, .or .or-legal { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1100px) { .or .or-article__grid { grid-template-columns: minmax(0, 720px) 340px; } }
.or .or-legal, .or .or-content { overflow-wrap: break-word; }
.or .or-legal img, .or .or-builder img, .or .or-content img, .or .or-legal figure img { max-width: 100%; height: auto; }
.or .or-legal figure, .or .or-content figure { margin: 0; }
.or .or-legal figcaption, .or .or-content figcaption { margin-top: 8px; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.or .orfin-table-wrap { overflow-x: auto; }
.or .orfin-table-wrap > .or-table-wrap { border: 0; }
.or .or-legal table { width: 100%; border-collapse: collapse; font-size: 16px; }
.or .or-legal th, .or .or-legal td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.or .orfin-comparison-table caption { caption-side: top; padding: 10px 12px; text-align: left; font-weight: 700; color: var(--navy); }
.or .or-table-wrap:focus-visible { outline: 3px solid var(--focus, #115ca9); outline-offset: 2px; }
.or .or-content { grid-template-columns: minmax(0, 1fr); }
.or .or-content > *, .or .or-article__body > * { min-width: 0; }
/* Parole lunghe nei titoli ("contemporaneamente?") su telefono */
.or h1, .or h2, .or h3 { overflow-wrap: break-word; hyphens: manual; }
/* Articoli esistenti: "In breve" e paragrafo d'apertura con lo stile del design system */
.or .or-content .orfin-in-breve { display: grid; gap: 8px; padding: 16px 20px; border-radius: var(--radius-lg); background: var(--tint-blue); border: 1px solid #d5e3f0; }
.or .or-content .orfin-in-breve h2 { margin: 0; font-size: 20px; line-height: 26px; }
.or .or-content .orfin-in-breve ul { margin: 0; }
.or .or-content .orfin-lead { font-size: 19px; line-height: 30px; color: var(--ink); }
.or .or-content .orfin-comparison-table { overflow-x: auto; }
.or .or-article__headwrap, .or .or-legal { grid-template-columns: minmax(0, 1fr); }
.or .or-byline > * { min-width: 0; }
/* Elenchi nei contenuti esistenti (il design system li azzera) */
.or .or-legal ul, .or .or-content--legacy ul, .or .or-content .orfin-in-breve ul { list-style: disc; padding-left: 22px; display: grid; gap: 6px; }
.or .or-legal ol, .or .or-content--legacy ol { list-style: decimal; padding-left: 24px; display: grid; gap: 6px; }
.or .or-legal li::marker, .or .or-content--legacy li::marker { color: var(--navy); }
/* Guide curate nelle pagine autore */
.or .or-legal ul.orfin-profile-articles { list-style: none; padding: 0; gap: 12px; }
.or .orfin-profile-articles li { display: grid; gap: 2px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.or .orfin-profile-articles time { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.or .or-legal ul, .or .or-legal ol, .or .or-content--legacy ul, .or .or-content--legacy ol, .or .or-content .orfin-in-breve ul { grid-template-columns: minmax(0, 1fr); }
.or .or-legal li, .or .or-content--legacy li { overflow-wrap: anywhere; }

/* CTA nel testo: riquadro giallo con bordo (il giallo segnala solo le azioni), bottone pieno blu (contrasto 11,6:1). */
.or-ctainline { border: 1px solid #f0d77e; border-left: 6px solid var(--yellow); }
.or-ctainline .or-btn--primary, .or-ctainline .or-btn--secondary { background: var(--navy); color: var(--on-navy); border-color: var(--navy); }
.or-ctainline .or-btn--primary:hover, .or-ctainline .or-btn--secondary:hover { background: var(--ink); border-color: var(--ink); color: var(--on-navy); }
.or-ctainline :focus-visible { outline-color: var(--navy); }
/* Lettura lunga (articoli classici, pagine legali e pagine esistenti): 18px su computer, righe di circa 75 caratteri. */
@media (min-width: 768px) {
  .or .or-content--legacy, .or .or-legal { font-size: 18px; line-height: 30px; }
  .or .or-content--legacy { max-width: 680px; }
}
/* Pagine landing dei plugin (Lavora con noi): a tutta larghezza, con i colori e le forme del design system. */
.or .or-landing__head { display: grid; gap: 12px; max-width: 760px; margin-bottom: 24px; }
.or .orfin-careers { --oc-navy: var(--navy); --oc-blue: var(--link); --oc-yellow: var(--yellow); --oc-ink: var(--ink); --oc-soft: var(--tint-blue); font-size: 17px; line-height: 28px; }
.or .orfin-careers h2, .or .orfin-careers h3 { line-height: 1.2; letter-spacing: -0.02em; font-weight: 800; }
.or .orfin-careers .oc-intro { max-width: 760px; font-size: 19px; line-height: 30px; }
.or .orfin-careers .oc-panel { background: var(--navy); border-radius: var(--radius-lg); }
.or .orfin-careers .oc-panel .oc-label { background: rgba(255, 255, 255, .14); color: #fff; }
.or .orfin-careers .oc-panel h2 { margin: 12px 0; }
.or .orfin-careers .oc-panel :focus-visible { outline-color: var(--focus-ring-on-dark); }
.or .orfin-careers .oc-btn { min-height: 52px; padding: 12px 22px; border-radius: var(--radius-md); font-size: 17px; font-weight: 700; color: var(--on-yellow) !important; }
.or .orfin-careers .oc-btn:hover { background: var(--yellow-hover); }
.or .orfin-careers .oc-btn--light, .or .orfin-careers .oc-btn--light:hover { background: #fff; }
.or .orfin-careers .oc-card, .or .orfin-careers .oc-step { border-color: var(--border); border-radius: var(--radius-lg); box-shadow: none; }
.or .orfin-careers .oc-card ul { list-style: disc; padding-left: 22px; }
.or .orfin-careers .oc-card li { margin: 4px 0; }
.or .orfin-careers .oc-jobs .oc-card { display: flex; flex-direction: column; }
.or .orfin-careers .oc-jobs .oc-card .oc-btn { margin-top: auto; align-self: flex-start; }
.or .orfin-careers .oc-jobs .oc-card > .oc-label { align-self: flex-start; }
.or .orfin-careers .oc-label { background: var(--tint-blue); color: var(--navy); font-size: 13px; }
.or .orfin-careers .oc-note { background: var(--tint-blue); border-left-color: var(--yellow); }
.or .orfin-careers .oc-final { background: var(--surface-alt); border-color: var(--border); border-radius: var(--radius-lg); }
.or .orfin-careers .oc-field label { font-size: 16px; font-weight: 700; }
.or .orfin-careers .oc-field input, .or .orfin-careers .oc-field select, .or .orfin-careers .oc-field textarea { min-height: 48px; border-color: var(--border-control); border-radius: var(--radius-md); font-size: 17px; }
.or .orfin-careers .oc-field input[type="file"] { padding: 10px; background: var(--surface-alt); }
.or .orfin-careers .oc-field textarea { min-height: 120px; }
.or .orfin-careers .oc-field small, .or .orfin-careers .oc-required { font-size: 14px; color: var(--ink-muted); }
.or .orfin-careers .oc-consent { font-size: 16px; }
.or .orfin-careers .oc-form button.oc-btn { min-width: 260px; }
.or .orfin-careers :focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
@media (max-width: 559.98px) { .or .orfin-careers .oc-form button.oc-btn { width: 100%; min-width: 0; } }

/* Trasparenza: documenti in schede, due colonne da 768px. */
.or .or-legal--wide { max-width: 1120px; }
.or .orfin-transparency { display: grid; gap: 20px; }
.or .orfin-transparency .orfin-legal-intro { max-width: 760px; margin: 0; padding: 16px 20px; border-left: 5px solid var(--yellow); border-radius: 0 12px 12px 0; background: var(--tint-blue); }
.or .orfin-doc-section { padding: 20px 16px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: #fff; }
.or .orfin-doc-section h2 { margin: 0 0 16px; padding-bottom: 12px; border-bottom: 2px solid var(--yellow); color: var(--navy); font-size: 22px; line-height: 28px; font-weight: 800; }
.or .orfin-doc-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.or .orfin-doc-card { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 64px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-alt); color: var(--navy); text-decoration: none; }
.or .orfin-doc-card:hover { border-color: var(--navy); background: var(--tint-blue); }
.or .orfin-doc-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; background: var(--tint-yellow); color: var(--navy); font-size: 12px; line-height: 1; font-weight: 800; }
.or .orfin-doc-card strong { display: block; color: var(--navy); font-size: 16px; line-height: 22px; overflow-wrap: anywhere; }
.or .orfin-doc-card small { display: block; margin-top: 2px; color: var(--ink-muted); font-size: 14px; line-height: 20px; }
.or .orfin-doc-action { white-space: nowrap; color: var(--link); font-size: 14px; line-height: 20px; font-weight: 700; text-decoration: underline; }
@media (max-width: 559.98px) { .or .orfin-doc-card { grid-template-columns: 40px minmax(0, 1fr); } .or .orfin-doc-action { grid-column: 2; } }
@media (min-width: 768px) {
  .or .orfin-doc-section { padding: 24px 28px; }
  .or .orfin-doc-section h2 { font-size: 26px; line-height: 32px; }
  .or .orfin-doc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
}
