/* style.css */

/*------------------------------------------------------------------
[Table of Contents]

1.  CSS Variables
2.  Global Styles & Resets
3.  Typography
4.  Layout (Header, Navbar, Footer, Container, Section)
5.  Components (Buttons, Cards, Modals, Forms)
6.  Section Specific Styles
    - Hero Section
    - Services Section
    - About Section (Snippet on Index)
    - Statistics Section
    - Clientele Section
    - Team Section
    - Accolades Section
    - Awards Section
    - Press Section
    - External Resources Section
    - Contact Form Section
7.  Page Specific Styles
    - Success Page
    - Privacy & Terms Pages
8.  Animations & Transitions
9.  Utility Classes
10. Responsive Design
-------------------------------------------------------------------*/

/* 1. CSS Variables
-------------------------------------------------------------------*/
:root {
    --font-primary: 'Playfair Display', serif;
    --font-secondary: 'Source Sans Pro', sans-serif;

    --color-primary: #0A2463; /* Deep Blue */
    --color-primary-darker: #071a48;
    --color-secondary: #FF9F1C; /* Bright Orange/Amber */
    --color-secondary-darker: #e08e18;
    --color-accent: #4CAF50; /* Green for success/call-to-action */
    --color-accent-darker: #3e8e41;

    --color-text-dark: #333333;
    --color-text-light: #FFFFFF;
    --color-text-medium: #555555;
    --color-text-subtle: #777777;

    --color-background-light: #FFFFFF;
    --color-background-medium: #F4F6F8; /* Very Light Grey */
    --color-background-dark: #222831; /* Dark Grey for footer */
    --color-background-hero-overlay: rgba(0, 0, 0, 0.5);

    --border-radius-small: 4px;
    --border-radius-medium: 8px;
    --border-radius-large: 16px;

    --shadow-light: 0 2px 8px rgba(0, 0, 0, 0.08);
    --shadow-medium: 0 4px 12px rgba(0, 0, 0, 0.12);

    --header-height: 70px; /* Adjust as needed */
    --footer-height: auto;
}

/* 2. Global Styles & Resets
-------------------------------------------------------------------*/
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    font-size: 16px; /* Base font size */
}

body {
    font-family: var(--font-secondary);
    color: var(--color-text-dark);
    background-color: var(--color-background-light);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden; /* Prevent horizontal scroll */
}

.main-container {
    width: 100%;
    overflow: hidden; /* Contains parallax or wide elements */
}

/* 3. Typography
-------------------------------------------------------------------*/
h1, h2, h3, h4, h5, h6, .title, .subtitle {
    font-family: var(--font-primary);
    color: var(--color-text-dark);
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 0.75em; /* Default bottom margin */
}

.title.is-1 { font-size: 3rem; }
.title.is-2, .section-title { font-size: 2.5rem; text-align: center; margin-bottom: 1.5rem; color: #222222; }
.title.is-3 { font-size: 2rem; }
.title.is-4 { font-size: 1.5rem; }
.title.is-5 { font-size: 1.25rem; }
.subtitle { color: var(--color-text-medium); font-family: var(--font-secondary); font-weight: 400; }
.subtitle.is-5 { margin-bottom: 2rem; }


p {
    margin-bottom: 1rem;
    font-size: 1.05rem;
    color: var(--color-text-medium);
}

a {
    color: var(--color-secondary);
    text-decoration: none;
    transition: color 0.3s ease;
}

a:hover {
    color: var(--color-secondary-darker);
}

strong {
    font-weight: 600; /* Source Sans Pro bold */
}

/* 4. Layout (Header, Navbar, Footer, Container, Section)
-------------------------------------------------------------------*/
.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: var(--shadow-light);
    height: var(--header-height);
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.navbar {
    min-height: var(--header-height);
}

.navbar-brand .site-title {
    font-family: var(--font-primary);
    font-size: 1.8rem;
    color: var(--color-primary);
    font-weight: 700;
}

.navbar-item {
    font-family: var(--font-secondary);
    font-weight: 600;
    color: var(--color-text-dark);
    transition: color 0.3s ease, background-color 0.3s ease;
}

.navbar-item:hover,
.navbar-item.is-active {
    color: var(--color-secondary);
    background-color: transparent !important; /* Override Bulma */
}

.navbar-burger {
    color: var(--color-primary);
    height: var(--header-height);
    width: var(--header-height);
}

.navbar-menu {
    background-color: rgba(255, 255, 255, 0.95); /* For mobile */
}

@media screen and (max-width: 1023px) {
    .navbar-menu {
        box-shadow: 0 8px 16px rgba(0,0,0,0.1);
        padding-bottom: 1rem;
    }
    .navbar-menu .navbar-item {
        padding: 0.75rem 1.5rem;
    }
}


/* Main content padding to avoid overlap with fixed header */
main {
    padding-top: var(--header-height);
}


.section {
    padding: 4rem 1.5rem; /* Default section padding */
}

.container {
    max-width: 1180px; /* Standard container width */
    margin: 0 auto;
}

.columns.is-centered {
    justify-content: center;
}

.footer.site-footer {
    background-color: var(--color-background-dark);
    color: var(--color-text-light);
    padding: 3rem 1.5rem 2rem;
}

.footer.site-footer .title {
    color: var(--color-text-light);
    font-size: 1.2rem;
    margin-bottom: 1rem;
}

.footer.site-footer p,
.footer.site-footer ul li a {
    color: #cccccc;
    font-size: 0.95rem;
}

.footer.site-footer ul li a:hover {
    color: var(--color-secondary);
}

.footer.site-footer .social-links-footer li {
    margin-bottom: 0.5rem;
}

.footer.site-footer .social-links-footer li a {
    display: inline-block;
    padding: 0.2rem 0;
    transition: transform 0.2s ease, color 0.2s ease;
}
.footer.site-footer .social-links-footer li a:hover {
    transform: translateX(5px);
}

.footer.site-footer hr {
    background-color: #444;
    margin: 2rem 0;
}

.footer.site-footer .content p {
    color: #aaaaaa;
    font-size: 0.9rem;
}


/* 5. Components (Buttons, Cards, Modals, Forms)
-------------------------------------------------------------------*/
/* Global Button Styles */
.button, button, input[type="submit"], input[type="button"] {
    font-family: var(--font-secondary);
    font-weight: 600;
    border-radius: var(--border-radius-small);
    padding: 0.75em 1.5em;
    transition: all 0.3s ease;
    cursor: pointer;
    border: 2px solid transparent;
    font-size: 1rem;
}

.button.is-primary {
    background-color: var(--color-secondary);
    border-color: var(--color-secondary);
    color: var(--color-text-light);
}
.button.is-primary:hover {
    background-color: var(--color-secondary-darker);
    border-color: var(--color-secondary-darker);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.button.is-primary:focus {
    box-shadow: 0 0 0 0.2rem rgba(255, 159, 28, 0.5); /* --color-secondary with alpha */
}

.button.is-link.is-outlined {
    background-color: transparent;
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.button.is-link.is-outlined:hover {
    background-color: var(--color-primary);
    color: var(--color-text-light);
}

.button.is-info.is-outlined { /* For modal bio buttons */
    background-color: transparent;
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.button.is-info.is-outlined:hover {
    background-color: var(--color-primary);
    color: var(--color-text-light);
}

/* Custom "Read More" link style */
a.read-more-link {
    display: inline-block;
    font-weight: 600;
    color: var(--color-secondary);
    padding: 0.3em 0;
    position: relative;
    text-decoration: none;
}
a.read-more-link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: 0;
    left: 0;
    background-color: var(--color-secondary);
    transition: width 0.3s ease;
}
a.read-more-link:hover::after {
    width: 100%;
}


/* Card Styles */
.card {
    background-color: var(--color-background-light);
    border-radius: var(--border-radius-medium);
    box-shadow: var(--shadow-light);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden; /* Ensures border-radius is respected by children */
    height: 100%; /* Make cards in a row same height if needed by Bulma columns */

    /* STROGO: Card centering content as per requirement */
    display: flex;
    flex-direction: column;
    align-items: center; /* Centers .card-image and .card-content */
    text-align: center; /* Centers text within .card-content */
}
.card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-medium);
}

.card .card-image { /* Bulma's .card-image */
    width: 100%; /* Take full width of parent (card) */
    display: flex; /* To center the figure.image if it's smaller */
    justify-content: center;
}

.card .card-image .image-container,
.card .card-image figure.image { /* Bulma .image or custom .image-container */
    margin: 0; /* Reset Bulma figure margin if any */
    width: 100%; /* Image container takes full width of card-image */
}

/* STROGO: Image container fixed height and image object-fit */
.card .card-image .image-container, /* For custom image containers */
.card .card-image figure.is-4by3, /* Specific Bulma ratio for Services */
.card .card-image figure.is-1by1, /* Specific Bulma ratio for Team */
.card .card-image figure.is-128x128 { /* Specific Bulma size for Clientele */
    overflow: hidden; /* Important for object-fit */
}

.service-card .card-image figure.is-4by3 { height: 220px; } /* Example fixed height */
.team-member-card .card-image figure.is-1by1 { height: 200px; width: 200px; border-radius: 50%;} /* Example fixed height */
.client-logos figure.is-128x128 { height: 100px; width: 100px; /* Make logos smaller */ }


.card .card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block; /* Removes bottom space */
}
.team-member-card .card-image img.is-rounded {
    border-radius: 50%; /* Ensure it's rounded if Bulma class is used */
}


.card .card-content {
    padding: 1.5rem;
    width: 100%; /* Ensure it takes full width of parent (card) */
    flex-grow: 1; /* Allows content to fill remaining space */
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Pushes button down if card has fixed height behavior */
}
.card .card-content .title {
    margin-bottom: 0.5rem;
    color: var(--color-primary);
}
.card .card-content .subtitle {
    margin-bottom: 1rem;
    color: var(--color-text-subtle);
}
.card .card-content p {
    font-size: 0.95rem;
    margin-bottom: 1rem;
    color: var(--color-text-medium);
}


/* Modal Styles (Bulma Overrides/Enhancements) */
.modal-card {
    border-radius: var(--border-radius-medium);
    overflow: hidden;
}
.modal-card-head, .modal-card-foot {
    background-color: var(--color-background-medium);
    border-bottom: 1px solid #dbdbdb;
    border-top: 1px solid #dbdbdb;
}
.modal-card-title {
    color: var(--color-primary);
    font-family: var(--font-primary);
}
.modal-card-body {
    background-color: var(--color-background-light);
    color: var(--color-text-dark);
}
.modal-card-body p {
    font-size: 1rem;
    line-height: 1.6;
}

/* Form Styles */
.contact-form-styled .label {
    color: var(--color-text-dark);
    font-weight: 600;
    margin-bottom: 0.5rem;
    text-align: left;
}

.contact-form-styled .input,
.contact-form-styled .textarea {
    border-radius: var(--border-radius-small);
    border: 1px solid #ccc;
    padding: 0.75em 1em;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    font-size: 1rem;
    box-shadow: none; /* remove bulma default */
}
.contact-form-styled .input:focus,
.contact-form-styled .textarea:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 0.125em rgba(255, 159, 28, 0.25); /* --color-secondary with alpha */
}
.contact-form-styled .textarea {
    min-height: 120px;
    resize: vertical;
}
.contact-form-styled .button.is-primary {
    padding-top: 0.9em;
    padding-bottom: 0.9em;
    font-size: 1.1rem;
    margin-top: 1rem;
}


/* 6. Section Specific Styles
-------------------------------------------------------------------*/

/* Hero Section */
#hero {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
    color: var(--color-text-light); /* STROGO: Hero text white */
}
.hero-overlay { /* For text readability on background image */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.6)); /* Darker overlay */
    z-index: 1;
}
#hero .container {
    position: relative;
    z-index: 2; /* Above overlay */
}
#hero .hero-title {
    font-size: 3.5rem; /* Larger for hero */
    color: var(--color-text-light);
    margin-bottom: 1rem;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7); /* Ensure readability */
}
#hero .hero-subtitle {
    font-size: 1.5rem;
    color: var(--color-text-light);
    margin-bottom: 2rem;
    font-family: var(--font-secondary);
    font-weight: 400;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.7); /* Ensure readability */
}
#hero .button.is-primary {
    font-size: 1.2rem;
    padding: 1em 2.5em;
}

/* Services Section */
#services .service-card .card-content .title {
    font-size: 1.3rem; /* Slightly smaller for card titles */
}

/* About Section Snippet */
#about .content.is-medium {
    font-size: 1.1rem;
    line-height: 1.8;
}
#about .button.is-link.is-outlined {
    margin-top: 1.5rem;
}

/* Statistics Section */
#statistics {
    background-color: var(--color-background-medium); /* Default, if image doesn't load */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 5rem 1.5rem;
}
#statistics .section-title, #statistics .subtitle {
    color: var(--color-text-dark); /* Ensure contrast on light bg image */
    text-shadow: 1px 1px 2px rgba(255,255,255,0.5); /* If bg is light but textured */
}
.stat-item .stat-number {
    font-family: var(--font-primary);
    font-size: 3.5rem;
    color: var(--color-primary);
    margin-bottom: 0.25rem;
}
.stat-item .stat-label {
    font-family: var(--font-secondary);
    font-size: 1.1rem;
    color: var(--color-text-medium);
}

/* Clientele Section */
#clientele .client-logos .column {
    padding: 1rem;
}
#clientele .client-logos img {
    max-height: 80px; /* Adjust as needed */
    width: auto;
    filter: grayscale(100%);
    opacity: 0.7;
    transition: filter 0.3s ease, opacity 0.3s ease;
}
#clientele .client-logos img:hover {
    filter: grayscale(0%);
    opacity: 1;
}

/* Team Section */
#team {
    background-color: var(--color-background-medium);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
#team .section-title, #team .subtitle {
    color: var(--color-text-dark);
}
.team-member-card .card-content .title {
    font-size: 1.25rem;
}
.team-member-card .card-content .subtitle {
    font-size: 0.9rem;
    color: var(--color-secondary);
}
.team-member-card .button.is-small {
    margin-top: 0.5rem;
}


/* Accolades Section */
.accolade-card {
    background-color: var(--color-background-medium); /* Slightly different bg for emphasis */
    border-left: 5px solid var(--color-secondary);
    text-align: left; /* Override card text-align:center for this type */
    align-items: flex-start; /* Override card align-items:center */
}
.accolade-card .card-content {
    text-align: left;
}
.accolade-card .title {
    color: var(--color-primary);
}

/* Awards Section */
#awards {
    background-color: var(--color-background-light); /* Default */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
#awards .section-title, #awards .subtitle {
    color: var(--color-text-dark);
}
.award-card {
    padding: 1.5rem;
    border: 1px solid #e0e0e0;
}
.award-card .title.is-5 {
    color: var(--color-primary);
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}
.award-card figure.image-container img {
    max-width: 64px; /* Ensure icon size is controlled */
    height: auto;
}

/* Press Section */
.press-mention-card {
    text-align: left; /* Override card text-align:center */
    align-items: flex-start; /* Override card align-items:center */
}
.press-mention-card .card-content {
    text-align: left;
}
.press-mention-card .title.is-4 {
    color: var(--color-primary);
}

/* External Resources Section */
#external-resources {
    background-color: var(--color-background-medium);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
#external-resources .section-title, #external-resources .subtitle {
    color: var(--color-text-dark);
}
.resource-link-item.box { /* Bulma .box */
    background-color: var(--color-background-light);
    margin-bottom: 1.5rem;
    text-align: left;
    box-shadow: var(--shadow-light);
    border-radius: var(--border-radius-medium);
}
.resource-link-item .title.is-5 a {
    color: var(--color-primary);
}
.resource-link-item .title.is-5 a:hover {
    color: var(--color-secondary);
}
.resource-link-item p {
    font-size: 0.95rem;
}

/* Contact Form Section on Index */
#contact-form-section {
    padding-bottom: 5rem;
}


/* 7. Page Specific Styles
-------------------------------------------------------------------*/
/* Success Page */
body.success-page {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
.success-page main {
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding-top: 0; /* Override main padding if header is not on success page */
}
.success-page .success-container {
    max-width: 600px;
    padding: 2rem;
}
.success-page .success-icon {
    font-size: 4rem;
    color: var(--color-accent);
    margin-bottom: 1rem;
}
.success-page .title {
    color: var(--color-primary);
}
.success-page .button {
    margin-top: 1.5rem;
}

/* Privacy & Terms Pages */
body.privacy-page main,
body.terms-page main {
    padding-top: calc(var(--header-height) + 40px); /* Header height + extra space */
    padding-bottom: 40px;
}
.privacy-page .content-section,
.terms-page .content-section {
    max-width: 800px;
    margin: 0 auto;
}
.privacy-page .content-section h1,
.terms-page .content-section h1 {
    font-size: 2.2rem;
    margin-bottom: 1.5rem;
    color: var(--color-primary);
}
.privacy-page .content-section h2,
.terms-page .content-section h2 {
    font-size: 1.5rem;
    margin-top: 2rem;
    margin-bottom: 1rem;
    color: var(--color-primary);
}


/* 8. Animations & Transitions
-------------------------------------------------------------------*/
/* Elements to be animated on scroll (JS will add .is-visible) */
.scroll-animate {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.scroll-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.scroll-animate-group .scroll-animate {
    transition-delay: calc(var(--animation-order, 0) * 0.15s);
}

/* Microinteractions - example for buttons already included in button styles */
/* Parallax items (JS will handle transform) */
[data-parallax-item] {
    transition: transform 0.2s ease-out; /* Smooth out JS-driven parallax */
}

/* "Drawn" style animation example for section titles (optional) */
.section-title::after {
    content: '';
    display: block;
    width: 80px;
    height: 3px;
    background-color: var(--color-secondary);
    margin: 0.5em auto 0;
    opacity: 0;
    transform: scaleX(0);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
    transition-delay: 0.2s;
}
.section.is-visible .section-title::after, /* If section gets is-visible */
.section-title.animate-in::after { /* Or manually trigger */
    opacity: 1;
    transform: scaleX(1);
}

/* 9. Utility Classes
-------------------------------------------------------------------*/
.has-text-centered {
    text-align: center !important;
}
.mt-1 { margin-top: 0.5rem !important; }
.mt-2 { margin-top: 1rem !important; }
.mt-3 { margin-top: 1.5rem !important; }
.mt-4 { margin-top: 2rem !important; }
.mt-5 { margin-top: 3rem !important; }

.mb-1 { margin-bottom: 0.5rem !important; }
.mb-2 { margin-bottom: 1rem !important; }
.mb-3 { margin-bottom: 1.5rem !important; }
.mb-4 { margin-bottom: 2rem !important; }
.mb-5 { margin-bottom: 3rem !important; }

/* For background images requiring dark overlay for text readability */
.has-background-overlay::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--color-background-hero-overlay);
    z-index: 1;
}
.has-background-overlay > * {
    position: relative;
    z-index: 2;
}


/* 10. Responsive Design
-------------------------------------------------------------------*/
@media screen and (max-width: 1023px) { /* Bulma's 'tablet' breakpoint and down */
    .navbar-menu {
        text-align: center;
    }
    .navbar-item {
        justify-content: center;
    }
    .navbar-end .buttons {
        justify-content: center;
    }
}

@media screen and (max-width: 768px) { /* Bulma's 'mobile' breakpoint */
    .title.is-1, #hero .hero-title { font-size: 2.5rem; }
    .title.is-2, .section-title { font-size: 2rem; }
    .title.is-3, #hero .hero-subtitle { font-size: 1.3rem; }

    .section {
        padding: 3rem 1rem;
    }

    #hero .button.is-primary {
        font-size: 1rem;
        padding: 0.8em 1.8em;
    }

    .columns.is-mobile { /* If you use .is-mobile for tighter spacing on mobile */
        margin-left: -0.5rem;
        margin-right: -0.5rem;
    }
    .columns.is-mobile > .column {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

    .footer.site-footer .columns > .column {
        text-align: center;
        margin-bottom: 1.5rem;
    }
    .footer.site-footer ul {
        padding-left: 0;
    }
    .team-member-card .card-image figure.is-1by1 { height: 150px; width: 150px; }
}
.navbar-burger{
    display: none;
}