/*
Theme Name: Scuola DJ Online
Theme URI: https://scuoladjonline.it/
Author: Master DJ School
Author URI: https://master-dj.nl/
Description: Tema leggero per l'area corsi e il checkout di corso.scuoladjonline.it. Stile "Club Night" come il sito scuoladjonline.it: font ospitati in locale, nessun JavaScript del tema.
Version: 1.1.0
Requires at least: 6.6
Requires PHP: 8.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sdo
WC requires at least: 9.0
*/

@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:700 900;font-display:swap;src:url(assets/fonts/big-shoulders-display.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(assets/fonts/instrument-sans.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/jetbrains-mono.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ==========================================================================
   1. Tokens + base (copied 1:1 from sites/scuoladjonline/src/assets/style.css)
   ========================================================================== */
:root{--bg:#0b0714;--bg-2:#150d24;--fg:#f3eef8;--muted:#a79bb8;--line:#2c2140;--card:#140c22;--accent:#ff2e88;--accent-fg:#fff;--soft:#24122f;--todo:#5a4a00;--exp:#0e3a52;
  --cyan:#2be4ff;--lime:#d6ff3d;--violet:#5b2bff;
  --ok:#5fe3a1;--ok-soft:#0f2a1f;--err:#ff6b8b;--err-soft:#2a1020;--input:#120b1f;--radius:12px;
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;--body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.65 var(--body);overflow-wrap:break-word}
a{color:var(--accent)}
img{max-width:100%;height:auto}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.narrow{max-width:760px}
header.site{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:5}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--fg);text-decoration:none}
nav.main{display:flex;gap:16px;flex-wrap:wrap;font-size:15px}
nav.main a{color:var(--fg);text-decoration:none}
nav.main a[aria-current]{color:var(--accent)}
main{padding:24px 16px 64px}
h1{font-size:clamp(30px,5vw,46px);line-height:1.15;letter-spacing:-.02em;margin:.4em 0 .5em}
h2{font-size:clamp(23px,3.2vw,30px);line-height:1.25;margin:1.8em 0 .5em}
h3{font-size:20px;margin:1.4em 0 .3em}
.lead{font-size:20px;color:var(--muted);max-width:720px}
.answer{background:var(--soft);border-left:4px solid var(--accent);padding:14px 18px;border-radius:6px;margin:16px 0 24px}
.btn{display:inline-block;background:var(--accent);color:var(--accent-fg);padding:14px 22px;border-radius:10px;font-weight:700;text-decoration:none;margin:8px 0}
.btn.ghost{background:transparent;color:var(--fg);border:1.5px solid var(--line)}
.hero{padding:24px 0 8px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:16px 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}
.card h3{margin-top:0}
.card a.more{font-weight:600}
.checks{list-style:none;padding:0}
.checks li{padding-left:28px;position:relative;margin:6px 0}
.checks li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}
table{border-collapse:collapse;width:100%;margin:16px 0;font-size:15px;display:block;overflow-x:auto}
th,td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}
th{font-weight:700}
.faq details{border-bottom:1px solid var(--line);padding:12px 0}
.faq summary{cursor:pointer;font-weight:600}
.crumbs{font-size:14px;color:var(--muted)}
.crumbs a{color:var(--muted)}
.meta{font-size:14px;color:var(--muted)}
.toc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 20px}
.box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin:28px 0}
mark.todo{background:var(--todo);color:inherit;padding:0 3px;border-radius:3px}
mark.exp{background:var(--exp);color:inherit;padding:0 3px;border-radius:3px;display:inline-block}
footer.site{border-top:1px solid var(--line);padding:32px 0;font-size:15px;color:var(--muted)}
footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px}
footer .cols a{display:block;color:var(--muted);text-decoration:none;margin:4px 0}
footer strong{color:var(--fg)}

/* ==========================================================================
   2. WordPress glue (menus, a11y, core blocks, forms)
   ========================================================================== */
body{overflow-x:clip}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;word-wrap:normal!important}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;left:8px;top:8px;z-index:100;background:var(--card);color:var(--fg);padding:10px 14px;border-radius:8px;border:1px solid var(--line)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
nav.main ul.menu{display:flex;gap:16px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
nav.main .current-menu-item>a,nav.main .current_page_item>a{color:var(--accent)}
.entry-title{word-break:normal}
.entry-content>*:first-child{margin-top:0}
.entry-content iframe,.entry-content video,.entry-content embed{max-width:100%}
.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,.wp-block-image figcaption{font-size:14px;color:var(--muted)}
.wp-block-button__link,.wp-element-button{background:var(--accent);color:var(--accent-fg);padding:14px 22px;border-radius:10px;font-weight:700;text-decoration:none;border:0}
.is-style-outline .wp-block-button__link{background:transparent;color:var(--fg);border:1.5px solid var(--line)}
.wp-block-separator,hr{border:0;border-top:1px solid var(--line);margin:28px 0}
blockquote{margin:16px 0;padding:4px 18px;border-left:4px solid var(--accent);color:var(--muted)}
.wp-block-embed__wrapper{position:relative}
.page-links,.nav-links{margin:24px 0;display:flex;gap:12px;flex-wrap:wrap}
.nav-links .page-numbers{padding:6px 12px;border:1px solid var(--line);border-radius:8px;text-decoration:none}
.nav-links .page-numbers.current{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
code,kbd,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}
pre{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px;overflow-x:auto}

/* Generic form controls (also used by WooCommerce + sdo forms) */
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=search],input[type=url],input[type=date],select,textarea{
  width:100%;max-width:100%;font:inherit;font-size:16px;color:var(--fg);background:var(--input);border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;line-height:1.4}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:18px;height:18px;vertical-align:-3px}
label{font-weight:600;font-size:15px}
button,input[type=submit],input[type=button],.button{
  display:inline-block;font:inherit;font-weight:700;background:var(--accent);color:var(--accent-fg);border:0;border-radius:10px;padding:14px 22px;cursor:pointer;text-decoration:none;line-height:1.3;text-align:center}
button:hover,input[type=submit]:hover,.button:hover,.btn:hover{filter:brightness(1.06)}
button:disabled,.button:disabled,.button.disabled{opacity:.55;cursor:not-allowed}

/* ==========================================================================
   3. WooCommerce: classic templates (notices, my account, login, tables,
      order received). The general WC stylesheet stays loaded; we restyle it.
   ========================================================================== */
.woocommerce,.woocommerce-page{font-size:16px}
.woocommerce .woocommerce-breadcrumb{display:none}

/* Buttons */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt,
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product .button{
  background:var(--accent);color:var(--accent-fg);border-radius:10px;padding:14px 22px;font-weight:700;font-size:16px;line-height:1.3;border:0}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--accent);color:var(--accent-fg);filter:brightness(1.06)}
.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled]{background:var(--accent);color:var(--accent-fg);opacity:.55;padding:14px 22px}

/* Notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-notice,
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info,.woocommerce .woocommerce-error{
  background:var(--card);color:var(--fg);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:14px 18px 14px 18px;margin:0 0 20px;list-style:none;font-size:16px}
.woocommerce-message,.woocommerce .woocommerce-message,.woocommerce-notice--success{border-left-color:var(--ok)}
.woocommerce-error,.woocommerce .woocommerce-error{border-left-color:var(--err);background:var(--err-soft)}
.woocommerce-info,.woocommerce .woocommerce-info{border-left-color:var(--accent);background:var(--soft)}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{display:none}
.woocommerce-message .button,.woocommerce-info .button,.woocommerce-error .button{float:none!important;margin:8px 12px 0 0;padding:8px 14px;font-size:14px}
.woocommerce-error li{margin:0;padding:0}
.woocommerce-store-notice,p.demo_store{background:var(--fg);color:var(--bg)}

/* Forms */
.woocommerce form .form-row{padding:0;margin:0 0 16px}
.woocommerce form .form-row label{display:block;margin-bottom:6px;line-height:1.4}
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox,.woocommerce form .form-row label.checkbox{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{background:var(--input);color:var(--fg);border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;font-size:16px;line-height:1.4}
.woocommerce form .form-row.woocommerce-invalid input.input-text{border-color:var(--err)}
.woocommerce form .form-row.woocommerce-validated input.input-text{border-color:var(--ok)}
.woocommerce form .form-row .required{color:var(--err);text-decoration:none}
.woocommerce form.login,.woocommerce form.register,.woocommerce form.checkout_coupon,.woocommerce form.lost_reset_password{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:0 0 24px}
.woocommerce .password-input{display:block;position:relative}
.woocommerce .show-password-input{background:transparent;color:var(--muted);padding:0;border:0;top:50%;transform:translateY(-50%);right:12px}
.woocommerce form .woocommerce-form-login__rememberme{display:flex;gap:8px;align-items:center;margin:8px 0}
.woocommerce form .lost_password{font-size:15px;margin:8px 0 0}
.woocommerce-password-strength{font-size:14px;padding:6px 10px;border-radius:6px;margin-top:6px}
.woocommerce-password-strength.strong{background:var(--ok-soft);color:var(--ok)}
.woocommerce-password-strength.short,.woocommerce-password-strength.bad{background:var(--err-soft);color:var(--err)}
.woocommerce-password-strength.good{background:var(--soft);color:var(--fg)}
.woocommerce-password-hint{font-size:14px;color:var(--muted)}
/* Login + register side by side on wide screens */
.woocommerce .u-columns.col2-set{display:grid;grid-template-columns:1fr;gap:24px}
.woocommerce .u-columns.col2-set::before,.woocommerce .u-columns.col2-set::after{display:none}
.woocommerce .u-columns.col2-set .col-1,.woocommerce .u-columns.col2-set .col-2{float:none;width:auto;max-width:none}
.woocommerce .u-columns.col2-set h2{margin-top:0;font-size:24px}

/* Tables */
.woocommerce table.shop_table{border:1px solid var(--line);border-radius:var(--radius);border-collapse:separate;border-spacing:0;background:var(--card);margin:16px 0 24px;display:table;overflow:hidden}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{border-top:1px solid var(--line);padding:12px 14px}
.woocommerce table.shop_table tr:first-child>th,.woocommerce table.shop_table tr:first-child>td,.woocommerce table.shop_table thead+tbody tr:first-child>*{border-top:0}
.woocommerce table.shop_table thead th{background:var(--soft);border-top:0}
.woocommerce table.shop_table tfoot th,.woocommerce table.shop_table tfoot td{font-weight:700}
.woocommerce table.my_account_orders{font-size:15px}
.woocommerce table.my_account_orders .button{padding:8px 12px;font-size:14px;margin:2px}

/* My account */
.woocommerce-account .woocommerce{display:grid;grid-template-columns:1fr;gap:24px}
.woocommerce-account .woocommerce::before,.woocommerce-account .woocommerce::after{display:none}
.woocommerce-account .woocommerce>.woocommerce-notices-wrapper{grid-column:1/-1}
.woocommerce-account .woocommerce-MyAccount-navigation,.woocommerce-account .woocommerce-MyAccount-content{float:none;width:auto}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.woocommerce-MyAccount-navigation li{flex:0 0 auto}
.woocommerce-MyAccount-navigation a{display:block;padding:9px 14px;border:1px solid var(--line);border-radius:999px;color:var(--fg);text-decoration:none;font-size:15px;background:var(--card);white-space:nowrap}
.woocommerce-MyAccount-navigation li.is-active a{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:700}
.woocommerce-MyAccount-content>p:first-child{margin-top:0}
.woocommerce-MyAccount-content fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:24px 0}
.woocommerce-MyAccount-content legend{font-weight:700;padding:0 6px}
.woocommerce-Addresses{display:grid;grid-template-columns:1fr;gap:16px}
.woocommerce-Addresses .woocommerce-Address{float:none;width:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.woocommerce-Address-title h2{font-size:20px;margin:0 0 8px}
address{font-style:normal}

/* Order received / view order */
.woocommerce-order>p.woocommerce-thankyou-order-received,.woocommerce-notice--success.woocommerce-thankyou-order-received{
  background:var(--ok-soft);border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;padding:14px 18px;font-weight:600;font-size:18px}
ul.woocommerce-order-overview,.woocommerce ul.order_details{list-style:none;margin:16px 0 24px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.woocommerce ul.order_details::before,.woocommerce ul.order_details::after{display:none}
ul.woocommerce-order-overview li,.woocommerce ul.order_details li{float:none;margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
ul.woocommerce-order-overview li strong,.woocommerce ul.order_details li strong{display:block;font-size:16px;text-transform:none;letter-spacing:0;color:var(--fg);margin-top:2px}
.woocommerce .woocommerce-customer-details address{border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:var(--card)}
.woocommerce-order-downloads table .button,.woocommerce-table--order-downloads .button{padding:8px 14px;font-size:14px}
.wc-bacs-bank-details,.woocommerce-bacs-bank-details{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}

/* Classic cart/checkout (fallback if the shortcode checkout is used) */
.woocommerce-checkout .col2-set{display:grid;grid-template-columns:1fr;gap:16px}
.woocommerce-checkout .col2-set::before,.woocommerce-checkout .col2-set::after{display:none}
.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{float:none;width:auto}
#add_payment_method #payment,.woocommerce-cart #payment,.woocommerce-checkout #payment{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--line)}
.woocommerce-checkout #payment div.payment_box{background:var(--soft);color:var(--fg)}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:var(--soft)}
.woocommerce-checkout #payment #place_order{width:100%;font-size:18px;padding:16px 22px}
.woocommerce-terms-and-conditions-wrapper{font-size:15px}
.woocommerce .quantity .qty{width:4.5em;padding:8px}
.woocommerce a.remove{color:var(--err)!important}
.woocommerce a.remove:hover{background:var(--err);color:#fff!important}

/* Single product (rarely used: products are bought via /acquista/ links) */
.woocommerce div.product .product_title{margin-top:0}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--fg);font-weight:700;font-size:24px}
.woocommerce span.onsale{background:var(--accent);color:var(--accent-fg)}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:var(--card);border-color:var(--line)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--bg)}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}

/* ==========================================================================
   4. WooCommerce blocks: Checkout, Cart, Order confirmation
   ========================================================================== */
.wp-block-woocommerce-checkout,.wp-block-woocommerce-cart{font-size:16px;color:var(--fg)}
.wc-block-components-title.wc-block-components-title,.wc-block-components-checkout-step__title{font-size:20px;font-weight:700;color:var(--fg)}
.wc-block-components-checkout-step__description{color:var(--muted)}
.wc-block-components-form .wc-block-components-text-input input[type],.wc-block-components-text-input input[type],
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-blocks-components-select .wc-blocks-components-select__select,.wc-block-components-textarea{
  background:var(--input)!important;color:var(--fg)!important;border:1.5px solid var(--line)!important;border-radius:10px!important}
.wc-block-components-text-input input:focus,.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus{
  border-color:var(--accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)!important;outline:none!important}
.wc-block-components-text-input label,.wc-blocks-components-select .wc-blocks-components-select__label,.wc-block-components-combobox .wc-block-components-combobox-control label{color:var(--muted)!important}
.wc-block-components-text-input.has-error input,.wc-block-components-combobox.has-error input{border-color:var(--err)!important}
.wc-block-components-validation-error{color:var(--err)}
.wc-blocks-components-select .wc-blocks-components-select__container{background:var(--input);border-radius:10px}
.wc-blocks-components-select .wc-blocks-components-select__expand{fill:var(--fg)}
.components-form-token-field__suggestions-list,.wc-block-components-combobox .components-form-token-field__suggestions-list{background:var(--card)!important;color:var(--fg)}

/* Checkbox (order bump, withdrawal waiver, terms) */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]{background:var(--input);border:1.5px solid var(--line);border-radius:5px;width:20px;height:20px;min-width:20px}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}
.wc-block-components-checkbox .wc-block-components-checkbox__mark{fill:var(--accent-fg)}
.wc-block-components-checkbox label{font-weight:400;align-items:flex-start}
.wc-block-checkout__terms,.wc-block-components-checkbox__label{font-size:15px;line-height:1.5}

/* Radio (payment methods) */
.wc-block-components-radio-control .wc-block-components-radio-control__input{border:1.5px solid var(--line);background:var(--input)}
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked{border-color:var(--accent)}
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before{background:var(--accent)}
.wc-block-components-radio-control-accordion-option,.wc-block-checkout__payment-method .wc-block-components-radio-control__option{color:var(--fg)}
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option{border-color:var(--line)!important}
.wc-block-checkout__payment-method .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted{box-shadow:inset 0 0 0 1.5px var(--accent)!important;border-radius:10px}
.wc-block-checkout__payment-method .wc-block-components-radio-control--highlight-checked::after{border-color:var(--line)!important}

/* Buttons */
.wc-block-components-button:not(.is-link){background:var(--accent);color:var(--accent-fg);border:0;border-radius:10px;font-weight:700;font-size:16px;min-height:52px;padding:14px 22px}
.wc-block-components-button:not(.is-link):hover,.wc-block-components-button:not(.is-link):focus{background:var(--accent);color:var(--accent-fg);filter:brightness(1.06)}
.wc-block-components-button:not(.is-link) .wc-block-components-button__text{color:inherit}
.wc-block-components-checkout-place-order-button{width:100%;font-size:18px!important;min-height:56px}
.wc-block-components-button.is-link,.wc-block-components-checkout-return-to-cart-button{color:var(--muted)}
.wc-block-components-button:disabled{opacity:.55}

/* Sidebar: order summary */
.wc-block-checkout__sidebar .wc-block-components-order-summary,.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block{background:var(--card);border:1px solid var(--line)!important;border-radius:var(--radius);padding:4px 16px}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title{padding-top:12px}
.wc-block-components-totals-wrapper{border-color:var(--line)!important}
.wc-block-components-totals-item__label,.wc-block-components-order-summary-item__description{color:var(--fg)}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{font-size:20px;font-weight:700}
.wc-block-components-totals-footer-item-tax,.wc-block-components-totals-item__description,.wc-block-components-product-metadata{color:var(--muted);font-size:14px}
.wc-block-components-order-summary-item__quantity{background:var(--accent)!important;color:var(--accent-fg)!important;border:2px solid var(--card)!important;box-shadow:none!important}
.wc-block-components-order-summary-item__image img{border-radius:8px}
.wc-block-components-product-name{color:var(--fg);font-weight:600}
.wc-block-components-formatted-money-amount{color:inherit}
.wc-block-components-sale-badge,.wc-block-components-product-badge{background:var(--soft);color:var(--accent);border-color:var(--accent);border-radius:6px}
.wc-block-components-panel__button{color:var(--fg)}
.wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__button{min-height:48px}

/* Notices (Store API) */
.wc-block-components-notice-banner{background:var(--card)!important;color:var(--fg)!important;border:1px solid var(--line)!important;border-left:4px solid var(--accent)!important;border-radius:8px!important;font-size:15px}
.wc-block-components-notice-banner.is-error{border-left-color:var(--err)!important;background:var(--err-soft)!important}
.wc-block-components-notice-banner.is-success{border-left-color:var(--ok)!important;background:var(--ok-soft)!important}
.wc-block-components-notice-banner.is-info{background:var(--soft)!important}
.wc-block-components-notice-banner>svg{fill:currentColor;background:transparent!important;color:var(--accent)}
.wc-block-components-notice-banner.is-error>svg{color:var(--err)}
.wc-block-components-notice-banner.is-success>svg{color:var(--ok)}
.wc-block-components-notice-banner .wc-block-components-button.is-link{color:var(--accent)}
.wc-block-components-spinner::after{border-color:var(--accent-fg) var(--accent-fg) transparent}
.wc-block-components-express-payment__title-container::before,.wc-block-components-express-payment__title-container::after{border-color:var(--line)!important}
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__content{border-color:var(--line)!important}
.wc-block-components-express-payment__title{color:var(--muted);background:var(--bg)}
.wc-block-checkout__actions_row{gap:16px}

/* Block order confirmation */
.wc-block-order-confirmation-status{margin-bottom:24px}
.wc-block-order-confirmation-status h1,.wp-block-woocommerce-order-confirmation-status h1{font-size:clamp(26px,4vw,38px)}
.wc-block-order-confirmation-summary-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:12px 16px}
.wc-block-order-confirmation-totals__table,.wc-block-order-confirmation-downloads__table{background:var(--card);border-radius:var(--radius)}
.wc-block-order-confirmation-billing-address,.wc-block-order-confirmation-shipping-address{border-color:var(--line)!important;border-radius:var(--radius)}

/* Empty cart / mini cart */
.wc-block-cart__empty-cart__title{font-size:24px}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-onsale{display:none}

/* ==========================================================================
   5. sdo-corsi components (learner area, course, lesson, certificate).
      Markup: wp-content/plugins/sdo-corsi/templates/*. The plugin's own
      sdo-corsi.css is disabled (sdo_load_css filter) and folded in here.
   ========================================================================== */
main.wrap{padding-top:8px;padding-bottom:64px}
.sdo-main{padding-top:24px}
.sdo-crumbs{font-size:14px;color:var(--muted);margin:0 0 8px}
.sdo-crumbs a{color:var(--muted)}
.sdo-btn{cursor:pointer;border:0;font:inherit;font-weight:700;line-height:1.3}
.sdo-btn.ghost,.sdo-btn--ghost{background:transparent;color:var(--fg);border:1.5px solid var(--line)}
.sdo-btn[disabled]{opacity:.6;cursor:progress}
.sdo-notice{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:12px 16px;margin:0 0 20px}
.sdo-notice--error{border-left-color:var(--err);background:var(--err-soft)}
.sdo-notice--success{border-left-color:var(--ok);background:var(--ok-soft)}

/* Learner area (/la-mia-area/, shortcode [sdo_area]) */
.sdo-area{margin:0 0 32px}
.sdo-area__hello{font-size:20px;color:var(--muted);margin:0 0 8px}
.sdo-area__title{margin-top:1em}
.sdo-area__courses{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.sdo-area__empty,.sdo-area__login{max-width:560px}
.sdo-area__login h2{margin-top:0}
.sdo-area__login form p{margin:0 0 14px}
.sdo-area__login .login-remember label{font-weight:400;display:flex;gap:8px;align-items:center}
.sdo-area__login .login-submit input[type=submit]{width:100%}
.sdo-area__lost{font-size:15px;margin:4px 0 0}

/* Course card */
.sdo-course-card{display:flex;flex-direction:column;gap:8px}
.sdo-course-card__image{display:block;margin:-18px -18px 6px;border-radius:12px 12px 0 0;overflow:hidden;aspect-ratio:16/9;background:var(--soft)}
.sdo-course-card__image img{display:block;width:100%;height:100%;object-fit:cover}
.sdo-course-card__title{margin:0;font-size:20px;line-height:1.3}
.sdo-course-card__title a{color:var(--fg);text-decoration:none}
.sdo-course-card__title a:hover{color:var(--accent)}
.sdo-course-card__actions{margin:auto 0 0;display:flex;flex-wrap:wrap;gap:8px}
.sdo-course-card__actions .btn{margin:0}
.sdo-course-card.is-completed{border-color:var(--ok)}
.sdo-course-card.is-completed .sdo-progress__bar{background:var(--ok)}

/* Progress: .sdo-progress > .sdo-progress__track > .sdo-progress__bar + .sdo-progress__label */
.sdo-progress{margin:10px 0}
.sdo-progress__track{height:10px;background:var(--line);border-radius:999px;overflow:hidden}
.sdo-progress__bar{height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .3s ease}
.sdo-progress__label{margin:6px 0 0;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}

/* Course overview: modules -> lessons */
.sdo-course{margin:0 0 32px}
.sdo-course__header{margin-bottom:24px}
.sdo-course__title{margin-top:.2em}
.sdo-course__header .sdo-progress{max-width:560px}
.sdo-course__actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.sdo-course__actions .btn{margin:0}
.sdo-course__content{max-width:760px;margin:0 0 24px}
.sdo-course__empty{color:var(--muted)}
.sdo-modules{margin:0;padding:0}
.sdo-module{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin:0 0 16px;scroll-margin-top:80px}
.sdo-module__header{margin-bottom:8px}
.sdo-module__title{margin:0;font-size:20px;line-height:1.3}
.sdo-module__number{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700;margin-bottom:2px}
.sdo-module__meta{margin:4px 0 0}
.sdo-module__intro{color:var(--muted);font-size:16px;margin-top:8px}
.sdo-module__intro p{margin:.4em 0}
.sdo-module.is-completed{border-color:color-mix(in srgb,var(--ok) 55%,var(--line))}
.sdo-module.is-completed .sdo-module__meta{color:var(--ok);font-weight:600}
.sdo-lesson-list{list-style:none;margin:8px 0 0;padding:0}
.sdo-lesson-item{display:flex;align-items:center;gap:12px;padding:10px 0;min-height:48px;border-top:1px solid var(--line)}
.sdo-lesson-item__tick{flex:0 0 22px;height:22px;border:2px solid var(--line);border-radius:50%;position:relative;background:var(--bg)}
.sdo-lesson-item.is-completed .sdo-lesson-item__tick{background:var(--ok);border-color:var(--ok)}
.sdo-lesson-item.is-completed .sdo-lesson-item__tick::after{content:"✓";position:absolute;inset:0;color:#fff;font-size:13px;line-height:18px;text-align:center;font-weight:700}
.sdo-lesson-item__link{flex:1;min-width:0;color:var(--fg);text-decoration:none}
.sdo-lesson-item__link:hover{color:var(--accent)}
.sdo-lesson-item.is-completed .sdo-lesson-item__link{color:var(--muted)}
.sdo-lesson-item__duration{white-space:nowrap;font-variant-numeric:tabular-nums}

/* Lesson page */
.sdo-lesson{margin:0 0 32px}
.sdo-lesson__header{margin-bottom:8px}
.sdo-lesson__title{margin:.2em 0 .2em}
.sdo-lesson__duration{margin:0}
.sdo-lesson__content{max-width:760px;margin:16px 0}
.sdo-video__note{margin:0 0 16px}
.sdo-attachments{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:20px 0;max-width:760px}
.sdo-attachments__title{font-size:18px;margin:0 0 6px}
.sdo-attachments__list{list-style:none;margin:0;padding:0}
.sdo-attachments__list li{margin:6px 0}
.sdo-attachments__list a::before{content:"↓ ";font-weight:700}

/* Responsive 16:9 video (Vimeo iframe from sdo_vimeo_embed_html()) */
.sdo-video{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden;margin:16px 0 6px}
@supports not (aspect-ratio:16/9){.sdo-video{height:0;padding-top:56.25%}}
.sdo-video iframe,.sdo-video video{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:600px){.sdo-video{margin-left:-16px;margin-right:-16px;width:auto;border-radius:0}}

/* Mark as completed */
.sdo-complete{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin:24px 0;max-width:760px}
.sdo-complete-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.sdo-complete__button{margin:0;min-height:48px}
.sdo-complete__status{order:2;margin:0;font-weight:600;color:var(--ok);min-height:1em}
.sdo-complete__status:empty{display:none}
.sdo-lesson.is-completed .sdo-complete__status::before{content:"✓ "}
.sdo-complete .sdo-progress{margin:14px 0 0}
.sdo-complete__notice{background:var(--ok-soft);border-left:4px solid var(--ok);border-radius:8px;padding:12px 16px;margin:14px 0 0}
.sdo-complete__notice[hidden]{display:none}
.sdo-complete__notice p{margin:4px 0}

/* Previous / overview / next */
.sdo-lesson-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch;margin:28px 0;padding-top:20px;border-top:1px solid var(--line)}
.sdo-lesson-nav a{text-decoration:none}
.sdo-lesson-nav__prev,.sdo-lesson-nav__next{display:flex;flex-direction:column;justify-content:center;padding:12px 16px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);line-height:1.35;min-width:0}
.sdo-lesson-nav__prev.is-empty,.sdo-lesson-nav__next.is-empty{border:0;background:none;padding:0}
a.sdo-lesson-nav__prev:hover,a.sdo-lesson-nav__next:hover{border-color:var(--accent)}
.sdo-lesson-nav__next{text-align:right}
.sdo-lesson-nav__label{font-size:13px;color:var(--muted)}
.sdo-lesson-nav__title{font-weight:600;color:var(--fg)}
.sdo-lesson-nav__overview{align-self:center;font-size:15px;font-weight:600}
@media (max-width:600px){
  .sdo-lesson-nav{grid-template-columns:1fr 1fr}
  .sdo-lesson-nav__overview{grid-column:1/-1;grid-row:2;text-align:center}
}

/* Help block (aside.sdo-help.box) */
.sdo-help{background:var(--soft);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:18px 20px;margin:28px 0;max-width:760px}
.sdo-help__title{margin:0 0 4px;font-size:20px}
.sdo-help__text{margin:0}
.sdo-help__actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.sdo-help__actions .btn{margin:0}

/* Certificate (screen: always "paper", also in dark mode) */
.sdo-certificate-actions{text-align:center;margin:0 0 16px}
.sdo-certificate-actions .meta{margin:4px 0 0}
.sdo-certificate{position:relative;max-width:960px;margin:0 auto;aspect-ratio:297/210;background:#fff;color:#17171c;border:1px solid var(--line);border-radius:4px;padding:6% 8%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.10)}
.sdo-certificate::before{content:"";position:absolute;inset:14px;border:2px solid #e2471f;border-radius:2px;pointer-events:none}
.sdo-certificate::after{content:"";position:absolute;inset:20px;border:1px solid #e6e3de;pointer-events:none}
.sdo-certificate p{margin:0}
.sdo-certificate__school{font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:14px;color:#e2471f}
.sdo-certificate__title{font-size:clamp(24px,4vw,40px);margin:.4em 0 .7em;letter-spacing:-.01em;color:#17171c}
.sdo-certificate__intro{color:#5d5d68}
.sdo-certificate__name{font-size:clamp(26px,5vw,46px);font-weight:700;line-height:1.15;margin:.2em 0 .35em!important;border-bottom:1px solid #e6e3de;padding:0 24px .15em}
.sdo-certificate__course{font-size:clamp(18px,2.6vw,26px);font-weight:600;margin:.2em 0!important}
.sdo-certificate__date{color:#5d5d68;margin-top:.3em!important}
.sdo-certificate__footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;width:100%;margin-top:6%;font-size:13px;color:#5d5d68}
.sdo-certificate__footer a{color:inherit}
.sdo-certificate__code strong{letter-spacing:.06em;color:#17171c}
@media (max-width:640px){
  .sdo-certificate{aspect-ratio:auto;padding:40px 26px}
  .sdo-certificate__footer{flex-direction:column;align-items:center;margin-top:28px}
}
.sdo-certificate-verify{max-width:560px}
.sdo-certificate-verify__form input[type=text]{max-width:360px;text-transform:uppercase;letter-spacing:.06em}

/* ==========================================================================
   6. Wider screens
   ========================================================================== */
@media (min-width:768px){
  .woocommerce .u-columns.col2-set{grid-template-columns:1fr 1fr}
  .woocommerce-checkout .col2-set{grid-template-columns:1fr 1fr;gap:32px}
  .woocommerce-Addresses{grid-template-columns:1fr 1fr}
}
@media (min-width:900px){
  .woocommerce-account .woocommerce{grid-template-columns:220px 1fr;gap:32px;align-items:start}
  .woocommerce-MyAccount-navigation ul{flex-direction:column;overflow:visible}
  .woocommerce-MyAccount-navigation a{border-radius:10px;white-space:normal}
}

/* ==========================================================================
   7. Print: generic + certificate on one A4 landscape sheet
   ========================================================================== */
@media print{
  :root{--bg:#fff;--fg:#000;--muted:#444;--line:#ccc;--card:#fff;--soft:#fff}
  body{background:#fff!important;color:#000;font-size:12pt}
  header.site,footer.site,#wpadminbar,.skip-link,.sdo-no-print,.sdo-lesson-nav,.sdo-help,.sdo-complete,.sdo-video,.woocommerce-MyAccount-navigation{display:none!important}
  html{margin-top:0!important}
  main{padding:0!important}
  a{color:#000;text-decoration:none}
  .sdo-certificate-page main{max-width:none;margin:0}
  .sdo-certificate{width:100%;height:100%;max-width:none;aspect-ratio:auto;margin:0;border:0;border-radius:0;box-shadow:none;padding:16mm 22mm;page-break-inside:avoid;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sdo-certificate-page .sdo-certificate{height:186mm}
  .sdo-certificate::before{inset:4mm}
  .sdo-certificate::after{inset:6mm}
}
/* Certificate page only: A4 landscape via a named page (Chrome 85+, Firefox 110+, Safari 18.2+).
   Other pages (order receipts etc.) keep the browser default (portrait). */
@page{margin:12mm}
@page sdo-certificate{size:A4 landscape;margin:12mm}
body.sdo-certificate-page{page:sdo-certificate}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Certificate signature (teacher name from sdo-corsi settings) */
.sdo-certificate__signature{margin:28px auto 8px;text-align:center;max-width:260px}
.sdo-certificate__signature-line{display:block;border-bottom:1px solid currentColor;opacity:.5;margin-bottom:6px;height:36px}
.sdo-certificate__signature-name{margin:0;font-weight:700}
.sdo-certificate__signature-role{margin:0;font-size:13px;opacity:.7}

/* Downloads in the learner area (sdo-shop) */
.sdo-downloads{margin-top:28px}
.sdo-downloads__list{list-style:none;padding:0;margin:12px 0 0}
.sdo-downloads__item{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.sdo-downloads__item .btn{margin:0;padding:8px 16px}

/* ==========================================================================
   Club Night layer (gekozen design 1-11-2026; same tokens as scuoladjonline.it)
   ========================================================================== */
a{color:var(--cyan)}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
h1,h2,h3,.sdo-course-card h3,.sdo-module h2,.sdo-module h3{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;text-wrap:balance}
h1{font-weight:900;font-size:clamp(42px,7vw,84px);line-height:.95;letter-spacing:.01em}
h2{font-weight:900;font-size:clamp(30px,4.4vw,52px);line-height:1}
h3{font-weight:700;line-height:1.05}
header.site{position:sticky;top:env(safe-area-inset-top,0px);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.logo{font-family:var(--display);font-weight:900;font-size:24px;letter-spacing:.04em;text-transform:uppercase}
.logo span{color:var(--accent)}
nav.main{font-size:16px;font-weight:500;align-items:center}
nav.main a{opacity:.85}
nav.main a[aria-current],nav.main .current-menu-item>a{opacity:1}
/* Buttons: neon pill */
.btn,.sdo-btn,.button,button.button,.wp-element-button,.wc-block-components-button:not(.is-link),input[type=submit]{border-radius:999px!important;font-weight:600!important;box-shadow:0 10px 36px -14px var(--accent)}
.btn:active,.sdo-btn:active,.button:active,.wc-block-components-button:active{transform:scale(.97)}
/* Progress: magenta to cyan */
.sdo-progress__bar{background:linear-gradient(90deg,var(--accent),var(--cyan))}
.sdo-course-card.is-completed .sdo-progress__bar{background:linear-gradient(90deg,var(--ok),var(--cyan))}
/* Cards and boxes: hard edges like the flyer grid */
.sdo-course-card,.sdo-module,.box,.woocommerce-MyAccount-content,.wc-block-components-sidebar{border-color:var(--line)}
.sdo-lesson-item.is-completed .sdo-lesson-item__tick{background:var(--accent);border-color:var(--accent);color:#fff}
.meta,.crumbs,.sdo-breadcrumbs,th{font-family:var(--mono);letter-spacing:.06em}
/* WooCommerce blocks inherit the body face */
.wc-block-components-text-input input,.wc-block-components-combobox input,.wc-block-components-select select,.wc-block-checkout,.wc-block-cart{font-family:var(--body)}
.wc-block-components-title,.wc-block-components-checkout-step__title{font-family:var(--display)!important;text-transform:uppercase;letter-spacing:.02em}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{font-family:var(--display);font-size:28px!important;text-transform:uppercase}
@media (max-width:760px){header.site .wrap{flex-wrap:nowrap}.logo{font-size:20px}}
@media (prefers-reduced-motion:reduce){.btn:active,.sdo-btn:active,.button:active{transform:none}}

.sdo-downloads h2{margin-top:0}

.sdo-thankyou h2,.sdo-welcome p{margin-top:0}
.sdo-thankyou{margin:24px 0}
