/* =========================================
   BASE STYLES & VARIABLES
   ========================================= */

html {
    box-sizing: border-box;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

html,
html[style] {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body,
body.admin-bar {
    margin-top: 0 !important;
}

@media screen and (max-width: 600px) {
    html,
    html[style],
    body {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* Ensure logo is NEVER zoomed or huge */
.pcc-logo-img {
    height: 75px !important;
    width: auto !important;
    max-width: 300px !important;
    object-fit: contain !important;
}

@media (max-width: 600px) {
    .pcc-logo-img {
        height: 40px !important;
    }
}

/* Global Reset for Theme Containers */
#primary,
#main,
.site-main,
.content-area {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

html,
body {
    overflow-x: hidden;
    max-width: 100%;
}

@media (max-width: 768px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    #page,
    .site,
    .site-content,
    .content-area,
    .site-main,
    #primary,
    #main {
        max-width: 100% !important;
        overflow-x: hidden;
    }
}

:root {
    /* Color Palette: Updated according to guidelines */
    --pcc-color-navy: rgb(35, 38, 83); /* Sfondo Header (Blu Notte) */
    --pcc-color-menu-text: #324158;    /* Testo Menù/Navigazione (Blu Ardesia) */
    --pcc-color-gold: rgb(210, 182, 136); /* Overlay / Accento (Sabbia/Bronzo) */
    
    /* System Palette (RGB values) */
    --color_0: 255, 255, 255; /* Bianco */
    --color_1: 30, 30, 30;    /* Nero/Grigio Scuro */
    --color_2: 180, 106, 44;  /* Arancione/Ruggine */
    --color_3: 105, 102, 102; /* Grigio Medio */

    --pcc-color-white: #FFFFFF;
    --pcc-color-ink: #1e1e1e;
    --pcc-color-paper: #FFFFFF;

    /* Global UI Utilities */
    --pcc-shadow-soft: 0 10px 40px rgba(0, 0, 0, 0.04);
    --pcc-shadow-hover: 0 15px 50px rgba(0, 0, 0, 0.08);
    --pcc-radius: 16px;

    /* Typography */
    --pcc-font-primary: 'Brother 1816', sans-serif;
    --pcc-font-ui: 'Brother 1816', sans-serif;
    --pcc-font-heading: 'Brother 1816', sans-serif;
    --pcc-font-body: 'Brother 1816', sans-serif;
}

/* Hide EVERYTHING from the default theme header/footer/title */
header.wp-block-template-part,
footer.wp-block-template-part,
.wp-site-blocks>header,
.wp-site-blocks>footer,
h1.wp-block-post-title,
.wp-block-post-title,
.entry-title,
.page-title,
#masthead,
#colophon,
.site-header,
.site-footer,
.wp-block-site-title {
    display: none !important;
}

body {
    background-color: var(--pcc-color-paper) !important;
    color: var(--pcc-color-ink);
    font-family: var(--pcc-font-body);
    margin: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--pcc-font-heading);
    color: var(--pcc-color-navy);
}

.pcc-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto;
    box-sizing: border-box;
}

.pcc-page-container {
    padding: clamp(24px, 5vw, 40px) clamp(16px, 4vw, 20px);
}

/* Hello Elementor constrains .site-main — reset on commerce pages */
body.woocommerce-cart #primary.site-main,
body.woocommerce-checkout #primary.site-main,
body.woocommerce-page.pcc-commerce-page #primary.site-main,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

body.woocommerce-cart .site-main > .pcc-container,
body.woocommerce-checkout .site-main > .pcc-container,
body.woocommerce-cart .site-main > .page-content,
body.woocommerce-checkout .site-main > .page-content,
body.woocommerce-cart .site-main .pcc-page-container,
body.woocommerce-checkout .site-main .pcc-page-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
}

/* =========================================
   Override Hello Elementor default #CC3366 (#c36)
   ========================================= */
body a,
body a:visited {
    color: var(--pcc-color-navy);
}

.pcc-header a.pcc-login-btn,
.pcc-header a.pcc-login-btn:visited,
.pcc-hero-mini h1,
.pcc-hero-mini h2,
.pcc-hero-mini p {
    color: #ffffff !important;
}

body a:hover,
body a:active,
body a:focus {
    color: var(--pcc-color-gold);
}

body [type='button'],
body [type='submit'],
body button:not(.pcc-mobile-menu-btn):not(.pcc-mobile-close):not(.tutor-icon):not([class*='tutor-btn']) {
    border-color: var(--pcc-color-navy);
    color: var(--pcc-color-navy);
}

body [type='button']:hover,
body [type='submit']:hover,
body button:not(.pcc-mobile-menu-btn):not(.pcc-mobile-close):not(.tutor-icon):not([class*='tutor-btn']):hover {
    background-color: var(--pcc-color-navy);
    border-color: var(--pcc-color-navy);
    color: var(--pcc-color-white);
}

/* UX FIX: Focus States for All Inputs (Accessibility) */
input:focus,
textarea:focus,
select:focus,
button:focus,
a:focus {
    outline: 2px solid var(--pcc-color-gold) !important;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(218, 165, 32, 0.2) !important;
}

/* Registration & Checkout Consent */
.pcc-checkout-legal {
    margin: 20px 0 10px !important;
    padding: 18px 20px !important;
    border: 1px solid rgba(26, 43, 74, 0.12) !important;
    border-radius: 10px !important;
    background: rgba(255, 255, 255, 0.92) !important;
}

.pcc-checkout-legal-item + .pcc-checkout-legal-item {
    margin-top: 18px !important;
    padding-top: 18px !important;
    border-top: 1px solid rgba(26, 43, 74, 0.08) !important;
}

.pcc-checkout-legal-title {
    margin: 0 0 8px !important;
    font-size: 0.95rem !important;
    color: var(--pcc-color-navy) !important;
}

.pcc-checkout-legal-body {
    margin: 0 0 12px !important;
    font-size: 0.88rem !important;
    line-height: 1.55 !important;
    color: rgba(26, 43, 74, 0.88) !important;
}

.pcc-checkout-legal-body a {
    color: var(--pcc-color-gold) !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
}

.pcc-checkout-legal-body a:hover {
    color: var(--pcc-color-navy) !important;
}

.pcc-consent-checkbox,
.pcc-checkout-consent {
    margin: 15px 0 !important;
}

.pcc-checkout-consent--optional {
    opacity: 0.95;
}

.pcc-consent-checkbox label,
.pcc-checkout-consent label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    font-size: 0.9rem !important;
    color: var(--pcc-color-navy) !important;
    cursor: pointer !important;
    line-height: 1.4 !important;
}

.pcc-consent-checkbox input,
.pcc-checkout-consent input {
    margin-top: 4px !important;
    flex-shrink: 0 !important;
}

.pcc-consent-checkbox a,
.pcc-checkout-consent a {
    color: var(--pcc-color-gold) !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}

.pcc-consent-checkbox a:hover,
.pcc-checkout-consent a:hover {
    color: var(--pcc-color-navy) !important;
}

.tutor-registration-consent {
    margin-bottom: 20px !important;
}
