:root {
    /* Typography */
    --font-primary: 'Roboto', sans-serif;
    --font-secondary: 'Lato', sans-serif;

    /* Monochromatic Color Scheme */
    --color-background: #FFFFFF;
    --color-background-alt: #F8F9FA; /* Slightly off-white for subtle section differentiation */
    --color-background-dark: #212529; /* For dark sections like Contact & Footer */
    --color-text-light: #F8F9FA;
    --color-text-dark: #343A40;
    --color-text-muted: #6C757D;
    --color-heading: #1A1A1A; /* Near black for strong headings */

    /* Brutalist Borders & Shadows */
    --color-border-strong: #000000;
    --color-border-medium: #333333;
    --color-border-light: #CED4DA;
    --shadow-brutalist-hard: 4px 4px 0px var(--color-border-strong);
    --shadow-brutalist-hard-alt: 3px 3px 0px var(--color-border-medium);
    --shadow-brutalist-subtle: 2px 2px 0px #E0E0E0;


    /* Call to Action Colors (from HTML example) */
    --color-cta: #007BFF;
    --color-cta-hover: #0056B3;
    --color-cta-text: #FFFFFF;
    --color-cta-outlined-text: var(--color-cta);
    --color-cta-outlined-text-hover: var(--color-cta-text);


    /* Spacing */
    --spacing-small: 0.5rem;
    --spacing-medium: 1rem;
    --spacing-large: 2rem;
    --spacing-xlarge: 4rem;

    /* Transitions */
    --transition-speed-fast: 0.2s;
    --transition-speed-normal: 0.3s;
    --transition-easing: cubic-bezier(0.25, 0.46, 0.45, 0.94); /* Slightly "drawn" feel */

    /* Hyperrealistic Textures (placeholders - replace with actual image URLs) */
    --texture-concrete-light: url('./image/textures/concrete-light.jpg'); /* data-prompt: "Subtle light concrete texture, high resolution" */
    --texture-brushed-metal-dark: url('./image/textures/brushed-metal-dark.jpg'); /* data-prompt: "Dark brushed metal texture, subtle grain" */
    --texture-paper-grained: url('./image/textures/paper-grained.jpg'); /* data-prompt: "Subtle grained paper texture, off-white" */
}

/* GENERAL STYLES & BULMA OVERRIDES/ENHANCEMENTS */
body {
    font-family: var(--font-secondary);
    color: var(--color-text-dark);
    background-color: var(--color-background);
    line-height: 1.7;
    font-size: 16px; /* Base font size */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.title,
.subtitle {
    font-family: var(--font-primary);
    color: var(--color-heading);
    font-weight: 700; /* Bold headings for brutalist feel */
    margin-bottom: var(--spacing-medium);
}

.title {
    line-height: 1.2;
}
.subtitle {
    color: var(--color-text-muted);
    font-weight: 400; /* Lighter than titles */
    line-height: 1.5;
}

p {
    margin-bottom: var(--spacing-medium);
}

a {
    color: var(--color-cta);
    text-decoration: none;
    transition: color var(--transition-speed-fast) ease-in-out;
}
a:hover {
    color: var(--color-cta-hover);
    text-decoration: underline;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

.section {
    padding: var(--spacing-xlarge) var(--spacing-medium);
    position: relative; /* For parallax or pseudo-elements */
}
.section.page-title-section {
    padding-top: calc(3.25rem + var(--spacing-xlarge)); /* 3.25rem is Bulma's navbar height */
    background-color: var(--color-background-alt);
}
.section-title {
    text-align: center;
    margin-bottom: var(--spacing-large) !important;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--color-heading);
    font-size: 2.5rem; /* Prominent section titles */
}
@media screen and (max-width: 768px) {
    .section-title {
        font-size: 2rem;
    }
}


/* UTILITY CLASSES */
.centered-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.text-shadow-subtle {
    text-shadow: 1px 1px 2px rgba(0,0,0,0.2);
}
.text-white {
    color: var(--color-text-light) !important;
}
.text-white h1, .text-white h2, .text-white h3, .text-white p, .text-white .label, .text-white .subtitle {
    color: var(--color-text-light) !important;
}


/* BUTTONS (Global Brutalist Style) */
.button, button, input[type="submit"], input[type="button"], .btn {
    font-family: var(--font-primary);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 0 !important; /* Sharp edges for brutalism */
    border: 2px solid var(--color-border-strong) !important;
    padding: 0.75em 1.5em !important;
    transition: all var(--transition-speed-fast) var(--transition-easing) !important;
    box-shadow: var(--shadow-brutalist-hard-alt) !important;
    cursor: pointer;
    background-color: var(--color-background);
    color: var(--color-border-strong) !important;
}

.button:hover, button:hover, input[type="submit"]:hover, input[type="button"]:hover, .btn:hover {
    transform: translate(-2px, -2px);
    box-shadow: calc(var(--shadow-brutalist-hard-alt-x, 3px) + 2px) calc(var(--shadow-brutalist-hard-alt-y, 3px) + 2px) 0px var(--color-border-medium) !important;
    background-color: var(--color-background-alt);
}

.button.is-primary, button.is-primary, input[type="submit"].is-primary, .btn.is-primary {
    background-color: var(--color-cta) !important;
    border-color: var(--color-cta) !important;
    color: var(--color-cta-text) !important;
    box-shadow: 3px 3px 0px var(--color-cta-hover) !important;
}
.button.is-primary:hover, button.is-primary:hover, input[type="submit"].is-primary:hover, .btn.is-primary:hover {
    background-color: var(--color-cta-hover) !important;
    border-color: var(--color-cta-hover) !important;
    box-shadow: 5px 5px 0px var(--color-cta) !important;
}

.button.is-primary.is-outlined, button.is-primary.is-outlined, .btn.is-primary.is-outlined {
    background-color: transparent !important;
    border-color: var(--color-cta) !important;
    color: var(--color-cta-outlined-text) !important;
    box-shadow: 3px 3px 0px var(--color-cta) !important;
}
.button.is-primary.is-outlined:hover, button.is-primary.is-outlined:hover, .btn.is-primary.is-outlined:hover {
    background-color: var(--color-cta) !important;
    color: var(--color-cta-outlined-text-hover) !important;
    box-shadow: 5px 5px 0px var(--color-cta-hover) !important;
}

.button.is-large, button.is-large, input[type="submit"].is-large, .btn.is-large {
    font-size: 1.1rem !important;
    padding: 1em 2em !important;
}

/* Input Fields (Brutalist) */
.input, .textarea, .select select {
    border-radius: 0 !important;
    border: 2px solid var(--color-border-medium) !important;
    box-shadow: none !important;
    font-family: var(--font-secondary);
    padding: 0.75em 1em;
    transition: border-color var(--transition-speed-fast) ease-in-out;
}
.input:focus, .textarea:focus, .select select:focus {
    border-color: var(--color-cta) !important;
    box-shadow: 0 0 0 2px rgba(0,123,255,0.25) !important; /* Subtle focus ring */
}
.label {
    font-family: var(--font-primary);
    font-weight: 700;
    color: var(--color-heading);
    text-transform: uppercase;
    font-size: 0.9rem;
    letter-spacing: 0.5px;
}


/* NAVBAR */
.navbar.is-fixed-top {
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    /* background-color: rgba(255,255,255,0.9); backdrop-filter: blur(5px); /* Subtle Glassmorphism */
    /* For Brutalism, a solid color is better */
    background-color: var(--color-background-alt);
    border-bottom: 2px solid var(--color-border-strong);
}
.navbar-item.logo-text {
    font-family: var(--font-primary);
    font-weight: 700;
    font-size: 1.75rem;
    color: var(--color-heading) !important;
}
.navbar-burger span {
    background-color: var(--color-heading) !important;
    height: 2px; /* Sharper lines */
}
.navbar-menu {
    background-color: var(--color-background-alt); /* Consistent with navbar for mobile */
    border-left: 2px solid var(--color-border-strong); /* Mobile menu brutalist border */
    border-right: 2px solid var(--color-border-strong);
    border-bottom: 2px solid var(--color-border-strong);
}
.navbar-item {
    font-family: var(--font-primary);
    font-weight: 500;
    text-transform: uppercase;
    font-size: 0.9rem;
    letter-spacing: 0.5px;
}
.navbar-item:hover, .navbar-item.is-active {
    background-color: var(--color-background) !important;
    color: var(--color-cta) !important;
}


/* HERO SECTION */
#hero {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    /* background-attachment: fixed; /* Simple parallax */
    /* The linear-gradient is already applied in HTML style attribute */
    display: flex;
    align-items: center;
    justify-content: center;
}
#hero .hero-body {
    padding: var(--spacing-xlarge) var(--spacing-medium);
}
#hero .title, #hero .subtitle {
    color: var(--color-text-light) !important; /* Ensured white text via HTML, reinforced here */
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7); /* Ensured readability */
}
#hero .title.is-1 {
    font-size: clamp(2.5rem, 5vw, 4rem); /* Responsive font size */
}
#hero .subtitle.is-4 {
    font-size: clamp(1.1rem, 2.5vw, 1.5rem);
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}
/* Hand-drawn animation placeholder */
.hand-drawn-arrow {
    width: 50px;
    height: 50px;
    /* background-image: url('path-to-hand-drawn-arrow.svg'); */
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    animation: bounce-arrow 2s infinite;
    opacity: 0.7;
}
@keyframes bounce-arrow {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-15px); }
    60% { transform: translateX(-50%) translateY(-7px); }
}


/* CARD STYLES (Global) */
.card {
    background-color: var(--color-background);
    border: 2px solid var(--color-border-medium);
    box-shadow: var(--shadow-brutalist-hard-alt);
    transition: transform var(--transition-speed-fast) var(--transition-easing),
                box-shadow var(--transition-speed-fast) var(--transition-easing);
    height: 100%; /* For Bulma columns to have equal height cards */
    display: flex;
    flex-direction: column;
    /* align-items: center; /* Centers card-image and card-content if they are not full width */
    text-align: left; /* Default text align for content inside */
}
.card:hover {
    transform: translate(-3px, -3px);
    box-shadow: 6px 6px 0px var(--color-border-strong);
}
.card .card-header {
    background-color: transparent;
    border-bottom: 2px solid var(--color-border-medium);
    box-shadow: none;
    padding: var(--spacing-small) var(--spacing-medium);
}
.card .card-header-title {
    padding: var(--spacing-small) 0;
    font-size: 1.2rem;
    color: var(--color-heading);
    font-weight: 700;
}
.card .card-image, .card .image-container { /* .image-container is from HTML example */
    width: 100%; /* Image container takes full width of card */
    /* Fixed height for image containers as requested */
    height: 200px; /* Example fixed height, adjust as needed */
    overflow: hidden;
    border-bottom: 2px solid var(--color-border-medium); /* Separator for brutalist look */
    display: flex; /* To center the image if it's smaller (though object-fit handles it) */
    align-items: center;
    justify-content: center;
    background-color: var(--color-background-alt); /* Placeholder bg for image area */
}
.card .card-image img, .card .image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures image covers the container */
    display: block;
}
.card .card-content {
    padding: var(--spacing-medium);
    flex-grow: 1; /* Allows content to fill space, pushing footer down */
    display: flex;
    flex-direction: column;
}
.card .card-content .title, .card .card-content .subtitle {
    margin-bottom: var(--spacing-small);
}
.card .card-content ul {
    list-style: none; /* Remove default bullets */
    padding-left: 0;
    margin-top: var(--spacing-small);
}
.card .card-content ul li {
    padding-left: 1.5em;
    position: relative;
    margin-bottom: var(--spacing-small);
}
.card .card-content ul li::before {
    content: "»"; /* "Hand-drawn" style bullet */
    position: absolute;
    left: 0;
    color: var(--color-cta);
    font-weight: bold;
    font-family: var(--font-primary); /* Consistent with headings */
}
.card .card-footer {
    border-top: 2px solid var(--color-border-medium);
    background-color: transparent;
    padding: 0;
    margin-top: auto; /* Pushes footer to bottom */
}
.card .card-footer-item {
    padding: var(--spacing-medium);
    font-weight: 700;
    text-transform: uppercase;
    border-right: none !important; /* Remove Bulma's default footer item border */
}
.card .card-footer-item:not(:last-child) {
    /* border-right: 2px solid var(--color-border-medium) !important; /* Brutalist separator */
}
.card .card-footer-item.button { /* Ensure button styles apply if a button is a footer item */
    width: 100%;
    box-shadow: none !important; /* Remove button shadow if it's flush in footer */
    border-top: none !important; /* Remove button's own top border if it's already separated by card-footer border */
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
}
.card .card-footer-item.button:hover {
    transform: none; /* No translate for footer buttons */
}
/* To center content inside cards that do not use card-image/card-content structure (e.g., simple info cards) */
.card.is-centered-content .card-content {
    align-items: center;
    text-align: center;
}


/* SECTION SPECIFIC STYLES */

/* Our Process Section */
#process .process-card .card-content {
    text-align: center;
}
#process .progress.is-primary {
    background-color: var(--color-border-light); /* Track color */
    height: 10px; /* Slimmer and sharper */
    border-radius: 0;
}
#process .progress.is-primary::-webkit-progress-bar {
    background-color: var(--color-border-light);
    border-radius: 0;
}
#process .progress.is-primary::-webkit-progress-value {
    background-color: var(--color-cta);
    border-radius: 0;
    transition: width var(--transition-speed-normal) ease-in-out;
}
#process .progress.is-primary::-moz-progress-bar {
    background-color: var(--color-cta);
    border-radius: 0;
}
#process .process-card .title.is-4 {
    margin-bottom: var(--spacing-small);
    color: var(--color-heading);
}

/* Methodology, History, Sustainability, Careers (common layout pattern) */
#methodology, #history, #sustainability, #careers {
    /* background-color: var(--color-background-alt); Using .section-textured from HTML */
}
#methodology .content p, #history .content p, #sustainability .content p, #careers .content p {
    font-size: 1.1rem;
    line-height: 1.8;
}
#methodology .image-container, #history .image-container, #sustainability .image-container, #careers .image-container {
    border: 2px solid var(--color-border-medium);
    box-shadow: var(--shadow-brutalist-hard-alt);
}
/* History Carousel Placeholder */
.history-carousel-placeholder {
    border: 2px dashed var(--color-border-light);
    padding: var(--spacing-medium);
    text-align: center;
    color: var(--color-text-muted);
}
.history-carousel-placeholder p {
    margin-bottom: var(--spacing-small);
}


/* Pricing Section */
#pricing .pricing-card.featured-plan {
    border: 3px solid var(--color-cta);
    box-shadow: 6px 6px 0px var(--color-cta-hover);
    position: relative; /* For ribbon */
}
#pricing .is-ribbon-wrapper { /* From HTML */
  overflow: hidden;
  position: absolute;
  right: -3px; /* Align with border */
  top: -3px;  /* Align with border */
  width: 150px;
  height: 150px;
  z-index: 1;
}
#pricing .is-ribbon {
  background-color: var(--color-cta);
  color: var(--color-cta-text);
  font-size: 0.9rem;
  font-weight: bold;
  left: -35px; /* Adjust for rotation */
  padding: 8px 0;
  position: relative;
  text-align: center;
  top: 35px; /* Adjust for rotation */
  transform: rotate(45deg);
  width: 200px; /* Ensure text fits */
  box-shadow: 0 2px 3px rgba(0,0,0,.2);
}
#pricing .pricing-card .card-header-title {
    text-align: center; /* Bulma override */
    display: block; /* Bulma override */
}
#pricing .pricing-card .title.is-4 { /* Price itself */
    font-size: 2rem;
    color: var(--color-cta);
    margin-bottom: var(--spacing-small);
}


/* External Resources Section */
#external-resources .resource-card .title.is-5 a {
    color: var(--color-cta);
    font-weight: 700;
}
#external-resources .resource-card .title.is-5 a:hover {
    color: var(--color-cta-hover);
}
#external-resources .resource-card .is-size-6 {
    color: var(--color-text-muted);
    font-size: 0.9rem !important;
}

/* Textured Sections (General) */
.section-textured {
    /* background-image: var(--texture-paper-grained); */
    background-color: var(--color-background-alt); /* Fallback */
    background-size: cover;
    background-repeat: no-repeat;
}
.section-textured-light {
    /* background-image: var(--texture-concrete-light); */
    background-color: #FDFDFD; /* Fallback */
    background-size: cover;
    background-repeat: no-repeat;
}
.section-textured-dark {
    /* background-image: var(--texture-brushed-metal-dark); */
    background-color: var(--color-background-dark); /* Fallback */
    background-size: cover;
    background-repeat: no-repeat;
    color: var(--color-text-light);
}
.section-textured-dark .section-title,
.section-textured-dark .label,
.section-textured-dark .title,
.section-textured-dark .subtitle,
.section-textured-dark .contact-info p,
.section-textured-dark .contact-info a {
    color: var(--color-text-light) !important;
}
.section-textured-dark .input,
.section-textured-dark .textarea,
.section-textured-dark .select select {
    background-color: #495057; /* Darker input background */
    border-color: var(--color-border-medium) !important;
    color: var(--color-text-light);
}
.section-textured-dark .input::placeholder,
.section-textured-dark .textarea::placeholder {
    color: #adb5bd; /* Lighter placeholder text */
}
.section-textured-dark .input:focus,
.section-textured-dark .textarea:focus,
.section-textured-dark .select select:focus {
    border-color: var(--color-cta) !important;
    background-color: #5a6268;
}


/* Contact Section */
#contact {
    /* Uses .section-textured-dark */
}
#contact-form .field, #contact-page-form .field { /* Increased spacing for form fields */
    margin-bottom: var(--spacing-medium);
}
#contact .contact-info h4.title {
    margin-bottom: var(--spacing-medium);
}
#contact .contact-info p {
    margin-bottom: var(--spacing-small);
}
#contact .contact-info a {
    font-weight: 600;
}
.map-placeholder {
    border: 2px solid var(--color-border-medium);
    background-color: #495057; /* Dark placeholder for map */
}

/* Read More Link Style */
.read-more-link {
    display: inline-block;
    font-family: var(--font-primary);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-cta);
    padding: var(--spacing-small) 0; /* Only bottom padding if underline effect desired */
    position: relative;
    transition: color var(--transition-speed-fast) ease;
}
.read-more-link::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 2px;
    bottom: 0;
    left: 0;
    background-color: var(--color-cta);
    transform: scaleX(0.5); /* Start smaller */
    transform-origin: left;
    transition: transform var(--transition-speed-normal) var(--transition-easing);
}
.read-more-link:hover {
    color: var(--color-cta-hover);
    text-decoration: none;
}
.read-more-link:hover::after {
    transform: scaleX(1);
    background-color: var(--color-cta-hover);
}


/* FOOTER */
.footer {
    background-color: var(--color-background-dark);
    color: var(--color-text-light);
    padding: var(--spacing-large) var(--spacing-medium);
    border-top: 5px solid var(--color-border-strong); /* Brutalist thick border */
}
.footer .title.is-5 {
    color: var(--color-text-light);
    margin-bottom: var(--spacing-medium);
    text-transform: uppercase;
    letter-spacing: 1px;
}
.footer p, .footer ul li {
    color: #adb5bd; /* Muted light text */
    font-size: 0.95rem;
    margin-bottom: var(--spacing-small);
}
.footer a {
    color: var(--color-cta); /* Use CTA color for links in footer */
    font-weight: 500;
}
.footer a:hover {
    color: var(--color-cta-hover);
    text-decoration: underline;
}
.footer hr {
    background-color: var(--color-border-medium);
    height: 1px;
    margin: var(--spacing-medium) 0;
}
.footer .content p { /* Copyright text */
    color: #adb5bd;
    font-size: 0.9rem;
}
/* Footer social links (text-based) */
.footer ul li a[target="_blank"] { /* Targeting social links */
    /* Add specific styles if needed, e.g., slightly bolder or different hover */
}


/* SUCCESS.HTML PAGE */
body.success-page { /* Add class="success-page" to body tag of success.html */
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
body.success-page .main-container {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
body.success-page .section { /* The section containing .success-box */
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.success-box {
    background-color: var(--color-background-alt);
    border: 2px solid var(--color-border-medium);
    box-shadow: var(--shadow-brutalist-hard);
    padding: var(--spacing-xlarge) !important;
    max-width: 600px;
    width: 100%;
}
.success-box .title.is-2 {
    color: var(--color-cta);
}


/* PRIVACY.HTML & TERMS.HTML PAGE */
body.legal-page .section { /* Add class="legal-page" to body tag of privacy/terms.html */
    padding-top: calc(3.25rem + var(--spacing-large)) !important; /* Navbar height + extra padding */
}
body.legal-page .section .content h2.title {
    margin-top: var(--spacing-large);
    margin-bottom: var(--spacing-small);
    border-bottom: 2px solid var(--color-border-light);
    padding-bottom: var(--spacing-small);
}
body.legal-page .section .content p, body.legal-page .section .content ul li {
    font-size: 1.05rem;
    margin-bottom: var(--spacing-medium);
}


/* Parallax effect for background images (applied via HTML style attribute) */
/* Ensure the element has a background-image and a height for parallax to be visible */
.has-parallax-background {
    background-attachment: fixed;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}


/* Simple hand-drawn animation for borders on hover - example */
/* Apply .wobble-border-on-hover to elements */
.wobble-border-on-hover {
    position: relative;
}
.wobble-border-on-hover:hover {
    /* This requires more complex SVG or pseudo-elements for a true hand-drawn look */
    /* Simple alternative: slightly jittery box-shadow */
    /* animation: jitter-shadow 0.3s infinite alternate; */
}
@keyframes jitter-shadow {
    0% { box-shadow: 3px 3px 0px var(--color-border-medium); }
    50% { box-shadow: 2px 4px 0px var(--color-border-medium), -1px -1px 0px var(--color-border-light); }
    100% { box-shadow: 4px 2px 0px var(--color-border-medium); }
}

/* Responsive adjustments */
@media screen and (max-width: 1023px) { /* Bulma's tablet breakpoint */
    .navbar-menu.is-active {
        border-top: 2px solid var(--color-border-strong);
        box-shadow: 0 8px 16px rgba(10,10,10,.1);
    }
}

@media screen and (max-width: 768px) { /* Bulma's mobile breakpoint */
    .section {
        padding: var(--spacing-large) var(--spacing-small);
    }
    .columns.is-vcentered .column:not(:last-child) {
         margin-bottom: var(--spacing-large); /* Space between stacked columns on mobile */
    }
    #hero .title.is-1 {
        font-size: 2.2rem;
    }
    #hero .subtitle.is-4 {
        font-size: 1.1rem;
    }
    .card .card-image, .card .image-container {
        height: 180px; /* Adjust image height for mobile if needed */
    }
}

/* Ensure text on images is readable */
.image-text-overlay { /* Parent container for image and text */
    position: relative;
}
.image-text-overlay::before { /* The dark overlay */
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)); /* Adjust opacity */
    z-index: 1;
}
.image-text-overlay > * { /* Text content */
    position: relative;
    z-index: 2;
}
html,body{
    overflow-x: hidden;
}