/* --- ROOT VARIABLES & BASIC SETUP --- */
:root {
    --bg-color-main: #eff0f5; /* Light, slightly cool gray for neumorphism base */
    --bg-color-surface: #eff0f5; /* For elements "on" the main background */
    --bg-color-dark-footer: #d1d9e6; /* Darker base for footer */
    --text-color-primary: #363A47; /* Dark grayish blue */
    --text-color-secondary: #5a6175;
    --text-color-hero: #FFFFFF; /* Specifically for hero text */
    --text-color-light: #FFFFFF; /* For dark backgrounds */
    --text-color-accent: #4a90e2; /* A calm blue for accents */
    --text-color-footer: #363A47; /* Text color for dark footer */

    --primary-cta-color: #4CAF50; /* A clear, positive green for main CTAs */
    --primary-cta-hover-color: #45a049;

    /* Neumorphic Shadows */
    --neumorphic-shadow-light: -6px -6px 12px #ffffff;
    --neumorphic-shadow-dark: 6px 6px 12px #d1d9e6;
    --neumorphic-shadow-inset-light: inset -4px -4px 8px #ffffff;
    --neumorphic-shadow-inset-dark: inset 4px 4px 8px #d1d9e6;

    --font-heading: 'Archivo Black', Impact, sans-serif;
    --font-body: 'Roboto', 'Helvetica Neue', Arial, sans-serif;

    --border-radius-sm: 8px;
    --border-radius-base: 15px;
    --border-radius-large: 25px;

    --header-height: 5rem;
    --section-padding-vertical: 4rem;
    --section-padding-vertical-mobile: 2.5rem;

    --transition-default: all 0.3s ease-in-out;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
    background-color: var(--bg-color-main);
    color: var(--text-color-primary);
}

body {
    font-family: var(--font-body);
    line-height: 1.6;
    background-color: var(--bg-color-main);
    color: var(--text-color-primary);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    padding-top: 0px !important;
}

/* Bulma overrides / enhancements */
.section {
    padding: var(--section-padding-vertical) 1.5rem;
    background-color: transparent;
}

@media screen and (max-width: 768px) {
    .section {
        padding: var(--section-padding-vertical-mobile) 1rem;
    }
}

.container {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
}

/* --- TYPOGRAPHY --- */
h1, h2, h3, h4, h5, h6, .title, .subtitle {
    font-family: var(--font-heading);
    color: var(--text-color-primary);
    font-weight: normal; /* Archivo Black is bold */
    line-height: 1.2;
    margin-bottom: 0.75em;
    text-shadow: 1px 1px 2px rgba(40,40,40,0.1); /* Darker shadow for more contrast on titles */
}

.title.is-1 { font-size: 3rem; color: #222222; }
.title.is-2 { font-size: 2.5rem; margin-bottom: 1.5rem; color: #222222; }
.title.is-3 { font-size: 2rem; color: #282828;}
.title.is-4 { font-size: 1.5rem; color: #2c2c2c;}

.subtitle {
    font-family: var(--font-body);
    color: var(--text-color-secondary);
    font-weight: 400;
    line-height: 1.5;
    margin-bottom: 1.5rem;
}

p, .content p {
    font-family: var(--font-body);
    color: var(--text-color-secondary);
    margin-bottom: 1rem;
    font-size: 1rem;
    line-height: 1.7;
}

a {
    color: var(--text-color-accent);
    text-decoration: none;
    transition: var(--transition-default);
}
a:hover {
    color: var(--primary-cta-color);
    text-decoration: underline;
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;
}

/* --- GLOBAL COMPONENT STYLES --- */
.button, button, input[type="submit"], input[type="button"] {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 1rem;
    padding: 0.8em 1.8em;
    border-radius: var(--border-radius-base);
    border: none;
    background-color: var(--bg-color-surface);
    color: var(--text-color-primary);
    box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light);
    transition: var(--transition-default);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.button:hover, button:hover, input[type="submit"]:hover, input[type="button"]:hover {
    box-shadow: var(--neumorphic-shadow-inset-dark), var(--neumorphic-shadow-inset-light);
    transform: translateY(1px) translateX(1px);
    color: var(--primary-cta-color);
}
.button.is-primary, .neuromorphic-button-cta {
    background-color: var(--primary-cta-color);
    color: var(--text-color-light) !important;
    box-shadow: -3px -3px 7px rgba(255, 255, 255, 0.7) inset,
                 3px 3px 7px rgba(0, 0, 0, 0.1) inset,
                 var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light);
}
.button.is-primary:hover, .neuromorphic-button-cta:hover {
    background-color: var(--primary-cta-hover-color);
}

.input, .textarea, .neuromorphic-input, .neuromorphic-textarea {
    font-family: var(--font-body);
    background-color: var(--bg-color-surface);
    color: var(--text-color-primary);
    border: 1px solid transparent;
    border-radius: var(--border-radius-base);
    padding: 0.8em 1em;
    box-shadow: var(--neumorphic-shadow-inset-dark), var(--neumorphic-shadow-inset-light);
    transition: var(--transition-default);
}
.input::placeholder, .textarea::placeholder { color: var(--text-color-secondary); opacity: 0.7; }
.input:focus, .textarea:focus {
    outline: none;
    border-color: var(--text-color-accent);
    box-shadow: var(--neumorphic-shadow-inset-dark), var(--neumorphic-shadow-inset-light),
                0 0 0 2px rgba(74, 144, 226, 0.2);
}

.card.neuromorphic-card, .neuromorphic-card {
    background-color: var(--bg-color-surface);
    border-radius: var(--border-radius-large);
    box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light);
    padding: 1.5rem;
    transition: var(--transition-default);
    display: flex;
    flex-direction: column;
    align-items: center; /* STROGO Rule for card content alignment */
    text-align: center; /* STROGO Rule for text alignment within card */
    height: 100%;
}
.card.neuromorphic-card:hover, .neuromorphic-card:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 10px 10px 20px #c1c8d7, -10px -10px 20px #ffffff;
}
.card .card-image, .neuromorphic-card .image-container {
    margin-bottom: 1rem;
    border-radius: var(--border-radius-base);
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%; /* Ensure container takes full width of card column */
    height: 200px; /* STROGO Rule: Fixed height example, adjust as needed */
}
.card .card-image img, .neuromorphic-card .image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* STROGO Rule */
    display: block;
    margin: 0 auto; /* STROGO Rule for centering image if not full width/height */
}
.card .card-content, .neuromorphic-card .card-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%; /* Ensure content area takes full width */
}
.card .card-content .content {
     text-align: left; /* Reset for paragraph text if card is centered */
}
.card-title, .neuromorphic-card .card-title { font-size: 1.25rem; margin-bottom: 0.5rem; color: var(--text-color-primary);}
.card-subtitle, .neuromorphic-card .card-subtitle { font-size: 0.9rem; margin-bottom: 1rem; color: var(--text-color-accent); font-weight: 700;}

/* --- HEADER / NAVIGATION --- */
.header-main.is-fixed-top {
    background-color: rgba(239, 240, 245, 0.9);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    z-index: 1000;
}
.navbar.neuromorphic-nav { background-color: transparent; min-height: var(--header-height); }
.navbar-brand .navbar-item img { max-height: calc(var(--header-height) - 2rem); }
.navbar-item { font-weight: 700; color: var(--text-color-primary); padding: 0.5rem 1rem; position: relative;}
.navbar-item:hover, .navbar-item.is-active { background-color: transparent !important; color: var(--primary-cta-color) !important; }
.navbar-item::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 0; height: 3px; background-color: var(--primary-cta-color); transition: width 0.3s ease; }
.navbar-item:hover::after, .navbar-item.is-active::after { width: 60%; }
.navbar-burger { color: var(--text-color-primary); height: var(--header-height); width: var(--header-height); }
.navbar-burger span { background-color: var(--text-color-primary); height: 2px; width: 18px; left: calc(50% - 9px); }
@media screen and (max-width: 1023px) {
    .navbar-menu { background-color: var(--bg-color-main); box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light); padding: 0.5rem 0; border-bottom-left-radius: var(--border-radius-base); border-bottom-right-radius: var(--border-radius-base); }
    .navbar-item::after { display: none; }
}

/* --- HERO SECTION --- */
#hero {
    position: relative;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    color: var(--text-color-hero);
    display: flex;
    align-items: center;
    min-height: 100vh;
}
.hero-background-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.65)); z-index: 1; }
#hero .hero-body { position: relative; z-index: 2; width: 100%; padding-top: calc(var(--header-height) + 2rem); padding-bottom: 2rem; }
.hero-title { font-size: 3.5rem; color: var(--text-color-hero) !important; text-shadow: 2px 2px 8px rgba(0,0,0,0.7); margin-bottom: 1rem; }
.hero-subtitle { font-size: 1.5rem; color: var(--text-color-hero) !important; opacity: 0.9; margin-bottom: 2rem; max-width: 700px; margin-left: auto; margin-right: auto; }
.hero-content-left { text-align: left; }
@media screen and (max-width: 1023px) { .hero-content-left { text-align: center; } }
.form-card-top {
    padding: 2rem 1.5rem; background-color: rgba(239, 240, 245, 0.92); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px);
    border-radius: var(--border-radius-large); box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light);
}
.form-card-top .form-title { color: var(--text-color-primary); font-size: 1.5rem; margin-bottom: 0.5rem; }
.form-card-top .form-subtitle { color: var(--text-color-secondary); margin-bottom: 1.5rem; font-size: 0.9rem; }
.form-card-top .field .input, .form-card-top .field .textarea { background-color: #ffffff; }
.parallax-layer-1, .parallax-layer-2 { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; background-repeat: no-repeat; z-index: 0; opacity: 0.2; }

/* --- GENERAL SECTION STYLING --- */
.section-title { margin-bottom: 1rem; text-transform: uppercase; letter-spacing: 1px; position: relative; padding-bottom: 0.75rem; }
.section-title::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 70px; height: 4px; background-color: var(--primary-cta-color); border-radius: 2px; }
.section-subtitle { max-width: 700px; margin-left: auto; margin-right: auto; margin-bottom: 3rem; }
.has-background-light-texture { background-size: cover; background-position: center; background-repeat: no-repeat; position: relative; }
.has-background-light-texture .container { position: relative; z-index: 1; }

/* --- INSTRUCTORS SECTION --- */
.instructor-card .card-image { height: 220px; margin-bottom: 1.5rem; }
.instructor-card .card-image img { border-radius: 50%; width: 160px; height: 160px; object-fit: cover; border: 4px solid var(--bg-color-surface); box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light); }
.instructor-card .card-content { padding-top: 0; }

/* --- BEHIND THE SCENES SECTION --- */
.neuromorphic-image-frame img { border-radius: var(--border-radius-large); box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light); }

/* --- PARTNERS SECTION --- */
.partner-logo img { max-width: 140px; max-height: 70px; object-fit: contain; margin-bottom: 0.75rem; filter: grayscale(70%); transition: var(--transition-default); }
.partner-logo:hover img { filter: grayscale(0%); transform: scale(1.05); }
.partner-name { font-size: 0.9rem; color: var(--text-color-secondary); font-weight: 600; }

/* --- ACCOLADES / TESTIMONIALS SECTION --- */
.testimonial-card { padding: 2rem; }
.testimonial-text { font-style: italic; font-size: 1.1rem; line-height: 1.7; color: var(--text-color-primary); margin-bottom: 1.5rem; position: relative; padding-left: 2.5rem; }
.testimonial-text::before { content: '“'; font-family: var(--font-heading); font-size: 3rem; color: var(--primary-cta-color); position: absolute; left: 0; top: -0.5rem; opacity: 0.8; }
.testimonial-author { font-weight: 700; color: var(--text-color-accent); text-align: right; margin-top: 1rem; }

/* --- OUR PROCESS SECTION --- */
.process-step { padding: 2rem 1.5rem; text-align: center; }
.process-step .step-icon img { width: 60px; height: 60px; margin-bottom: 1.5rem; padding: 8px; background-color: var(--bg-color-surface); border-radius: 50%; box-shadow: var(--neumorphic-shadow-inset-dark), var(--neumorphic-shadow-inset-light); transition: var(--transition-default); }
.process-step:hover .step-icon img { transform: scale(1.1); }
.process-step .step-title { font-size: 1.2rem; color: var(--text-color-primary); }

/* --- EXTERNAL RESOURCES SECTION --- */
.resource-card { padding: 1.5rem; margin-bottom: 1.5rem; }
.resource-card .resource-link:hover .resource-title { color: var(--primary-cta-color); text-decoration: underline; }
.resource-card .resource-title { color: var(--text-color-accent); font-size: 1.15rem; margin-bottom: 0.5rem; }

/* --- INNOVATION SECTION --- */
.neuromorphic-widget { padding: 1.5rem; text-align: center; }
.neuromorphic-widget .widget-value { font-size: 2.8rem; color: var(--primary-cta-color); }
.neuromorphic-widget .widget-label { font-size: 1rem; color: var(--text-color-secondary); }

/* --- AWARDS SECTION --- */
.award-item.neuromorphic-card-flat { padding: 1.5rem; text-align: center; }
.award-logo { width: 70px; height: 70px; object-fit: contain; margin-bottom: 1rem; }
.award-title { font-size: 1.05rem; }

/* --- CONTACT SECTION (SECONDARY) --- */
#contact-secondary .content-text { max-width: 650px; margin-left: auto; margin-right: auto; margin-bottom: 2rem; }
#contact-secondary .button.is-large { padding: 1em 2.5em; font-size: 1.1rem; }

/* --- FOOTER --- */
.footer.neuromorphic-footer {
    background-color: var(--bg-color-dark-footer);
    color: var(--text-color-footer);
    padding: 3rem 1.5rem 2rem;
    border-top-left-radius: var(--border-radius-large);
    border-top-right-radius: var(--border-radius-large);
    box-shadow: var(--neumorphic-shadow-inset-light), var(--neumorphic-shadow-inset-dark);
    margin-top: var(--section-padding-vertical);
}
.footer .footer-title { color: var(--text-color-footer); font-size: 1.1rem; margin-bottom: 1rem; text-transform: uppercase; letter-spacing: 0.5px; }
.footer p, .footer ul li { color: var(--text-color-secondary); font-size: 0.95rem; margin-bottom: 0.5rem; }
.footer a { color: var(--text-color-accent); }
.footer a:hover { color: var(--primary-cta-color); }
.footer .social-links-text li a { display: inline-block; padding: 0.25rem 0; }
.footer .content p { color: var(--text-color-secondary); font-size: 0.9rem; margin-top: 2rem; }

/* --- PAGE-SPECIFIC STYLES --- */
body.page-success { display: flex; flex-direction: column; min-height: 100vh; }
.success-page-container { flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; padding: var(--section-padding-vertical) 1.5rem; }
.success-content { background-color: var(--bg-color-surface); padding: 3rem; border-radius: var(--border-radius-large); box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light); max-width: 600px; }
.success-content .icon { font-size: 4rem; color: var(--primary-cta-color); margin-bottom: 1.5rem; }

body.page-privacy, body.page-terms, body.page-about, body.page-contacts { padding-top: var(--header-height); }
.content-page-section { padding: var(--section-padding-vertical) 1.5rem; background-color: var(--bg-color-light); border-radius: var(--border-radius-large); margin: var(--section-padding-vertical-mobile) auto; max-width: 900px; box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light); }
.content-page-section .title.is-1, .content-page-section .title.is-2 { text-align: center; margin-bottom: 2rem; }
.content-page-section h3, .content-page-section .title.is-3 { margin-top: 2rem; }
.content-page-section ul { list-style: disc; padding-left: 25px; }

.contact-page-form-container { background-color: var(--bg-color-surface); padding: 2rem; border-radius: var(--border-radius-large); box-shadow: var(--neumorphic-shadow-dark), var(--neumorphic-shadow-light); }
.contact-details-column .icon { color: var(--text-color-accent); margin-right: 0.75rem; }
.contact-map-container { border-radius: var(--border-radius-base); overflow: hidden; height: 350px; box-shadow: var(--neumorphic-shadow-inset-dark), var(--neumorphic-shadow-inset-light); }
.contact-map-container iframe { width: 100%; height: 100%; border: 0; }

/* --- SCROLL REVEAL & ANIMATIONS --- */

.animated-text-hero span { opacity: 0; transform: translateY(20px); display: inline-block; transition: opacity 0.5s ease, transform 0.5s ease; }

/* --- RESPONSIVE ADJUSTMENTS --- */
@media screen and (max-width: 768px) {
    .hero-title { font-size: 2.5rem; }
    .hero-subtitle { font-size: 1.2rem; }
    .hero-form-container { margin-top: 2rem; }
    .columns.is-reversed-mobile { flex-direction: column-reverse; }
    .title.is-1 { font-size: 2.2rem; }
    .title.is-2 { font-size: 1.8rem; }
    .footer .columns { text-align: center; }
    .footer .column { margin-bottom: 1.5rem; }
}
@media screen and (max-width: 480px) {
    .hero-title { font-size: 2rem; }
    .hero-subtitle { font-size: 1rem; }
    .form-card-top { padding: 1.5rem 1rem; }
    .button, button, input[type="submit"], input[type="button"] { padding: 0.7em 1.5em; font-size: 0.9rem; }
    .input, .textarea { padding: 0.7em 0.8em; }
}

/* Ensure background images cover and don't repeat */
[style*="background-image"] {
    background-size: cover !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
}

/* Read more link style example */
.read-more-link {
    display: inline-block;
    margin-top: 1rem;
    font-weight: 700;
    color: var(--text-color-accent);
    text-decoration: none;
    padding: 0.5em 0;
    position: relative;
}
.read-more-link::after {
    content: '→';
    margin-left: 0.5em;
    transition: margin-left 0.2s ease-in-out;
}
.read-more-link:hover {
    color: var(--primary-cta-color);
    text-decoration: none;
}
.read-more-link:hover::after {
    margin-left: 0.8em;
}
.title.is-4.card-title{
    margin-bottom: 20px !important;
}