/*
  Theme: Consultoría Financiera en Argentina
  Design System: Brutalism with Hyperrealistic Textures
  Color Scheme: Split-Complementary
  Animation Style: Non-linear Movements
  Fonts: Inter (Headings), IBM Plex Sans (Body)
*/

/* CSS Variables */
:root {
  --primary-color: #0A2463; /* Deep Blue */
  --secondary-color: #D8572A; /* Burnt Orange */
  --accent-color: #FFC43D; /* Golden Yellow */

  --text-color-dark: #222222;
  --text-color-darker: #111111;
  --text-color-medium: #454545;
  --text-color-light: #FFFFFF;
  --text-color-muted: #cccccc;
  --text-on-accent: var(--primary-color); /* Text on yellow buttons */

  --background-light: #f8f9fa;
  --background-medium: #e9ecef;
  --background-dark: #222222; /* For footer and dark sections */
  --background-dark-texture: #1a1a1a; /* For textured dark backgrounds */

  --card-background: #FFFFFF;
  --card-border-color: var(--text-color-dark);
  --card-shadow-color: var(--text-color-dark);

  --font-family-headings: 'Inter', sans-serif;
  --font-family-body: 'IBM Plex Sans', sans-serif;

  --border-radius-sharp: 0px;
  --border-radius-slight: 4px;

  --transition-speed-fast: 0.15s;
  --transition-speed-normal: 0.3s;
  --transition-cubic-bounce: cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

/* Global Styles */
body {
  font-family: var(--font-family-body);
  color: var(--text-color-medium);
  background-color: var(--background-light);
  line-height: 1.7;
  font-size: 1rem; /* Base font size for 16px */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-family-headings);
  font-weight: 800;
  color: var(--text-color-dark);
  margin-top: 0;
  line-height: 1.3;
}

h1 { font-size: 2.8rem; margin-bottom: 1rem; }
h2 { font-size: 2.2rem; margin-bottom: 0.75rem; } /* Section titles are larger */
h3 { font-size: 1.8rem; margin-bottom: 0.5rem; }
h4 { font-size: 1.5rem; margin-bottom: 0.5rem; }
h5 { font-size: 1.25rem; margin-bottom: 0.25rem; }

p {
  margin-bottom: 1.25rem;
  font-size: 1.05rem; /* Slightly larger body text for readability */
}

a {
  color: var(--secondary-color);
  text-decoration: none;
  transition: color var(--transition-speed-normal) ease;
}
a:hover {
  color: var(--primary-color);
  text-decoration: underline;
}

/* Utility Classes */
.section-title {
  font-size: 2.5rem; /* Default for h2 as section title */
  font-weight: 800;
  color: var(--text-color-darker);
  text-transform: uppercase;
  letter-spacing: 1px;
  padding-bottom: 0.5rem;
  margin-bottom: 3rem; /* Spacing below title */
  position: relative;
}
/* Brutalist underline for section titles */
.section-title::after {
  content: '';
  display: block;
  width: 80px;
  height: 4px;
  background-color: var(--accent-color);
  margin: 0.75rem auto 0;
}

.parallax-bg {
  background-attachment: fixed;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.section-textured {
  background-size: cover; /* Ensure texture covers */
  background-repeat: no-repeat; /* Or repeat if it's a pattern */
  background-position: center center;
}

/* Animation on Scroll */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s var(--transition-cubic-bounce), transform 0.7s var(--transition-cubic-bounce);
}
.animate-on-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Header & Navigation */
header.sticky-top {
  border-bottom: 3px solid var(--text-color-darker);
  box-shadow: 0 4px 5px -2px rgba(0,0,0,0.2) !important;
}
.navbar {
  padding-top: 0.8rem;
  padding-bottom: 0.8rem;
  background-color: var(--background-light) !important;
}
.navbar-brand {
  font-family: var(--font-family-headings);
  font-weight: 800 !important;
  font-size: 1.8rem !important;
  color: var(--primary-color) !important;
}
.nav-link {
  font-family: var(--font-family-body);
  font-weight: 500;
  text-transform: uppercase;
  font-size: 0.9rem;
  letter-spacing: 0.5px;
  color: var(--text-color-dark) !important;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  padding: 0.5rem 0.8rem !important;
  border-bottom: 2px solid transparent;
  transition: color var(--transition-speed-fast) ease, border-color var(--transition-speed-fast) ease;
}
.nav-link:hover,
.nav-link.active {
  color: var(--secondary-color) !important;
  border-bottom-color: var(--secondary-color);
}
.navbar-toggler {
  border: 2px solid var(--text-color-dark);
  border-radius: var(--border-radius-sharp);
}
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(10, 36, 99, 1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='3' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}


/* Hero Section */
.hero-section {
  min-height: 85vh; /* Responsive height */
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  color: var(--text-color-light);
  padding: 4rem 0; /* Vertical padding */
}
.hero-section::before { /* Dark overlay for text readability */
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.7));
  z-index: 1;
}
.hero-section .container {
  position: relative;
  z-index: 2;
}
.hero-section h1 {
  color: var(--text-color-light); /* Explicitly white */
  font-size: 3.5rem;
  text-shadow: 2px 3px 0px rgba(0,0,0,0.6);
}
.hero-section p.lead {
  color: var(--text-color-light); /* Explicitly white */
  font-size: 1.3rem;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
}
@media (max-width: 768px) {
  .hero-section {
    min-height: 70vh;
  }
  .hero-section h1 {
    font-size: 2.5rem;
  }
  .hero-section p.lead {
    font-size: 1.1rem;
  }
}

/* Global Button Styles (Brutalist) */
.btn, button.btn, input[type="submit"].btn, input[type="button"].btn {
  font-family: var(--font-family-body);
  font-weight: 700;
  padding: 0.7rem 1.8rem;
  border-radius: var(--border-radius-sharp);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  transition: all var(--transition-speed-fast) var(--transition-cubic-bounce);
  border: 2px solid var(--text-color-darker);
  box-shadow: 3px 3px 0 var(--text-color-darker);
  cursor: pointer;
  display: inline-block;
  text-align: center;
}
.btn:hover, button.btn:hover, input[type="submit"].btn:hover, input[type="button"].btn:hover {
  transform: translate(1px, 1px);
  box-shadow: 2px 2px 0 var(--text-color-darker);
}
.btn:active, button.btn:active, input[type="submit"].btn:active, input[type="button"].btn:active {
  transform: translate(3px, 3px);
  box-shadow: 0 0 0 var(--text-color-darker);
}

/* Specific button styles, as used in HTML by .custom-btn or .custom-link-btn */
.btn.custom-btn { /* Primary Action Button */
  background-color: var(--accent-color);
  color: var(--text-on-accent);
  border-color: var(--text-color-darker); /* Consistent border */
  box-shadow: 3px 3px 0 var(--text-color-darker);
}
.btn.custom-btn:hover {
  background-color: hsl(45, 100%, 58%); /* Slightly different yellow */
  box-shadow: 2px 2px 0 var(--text-color-darker);
}

.btn.custom-link-btn { /* Outline / Link-style Button */
  background-color: transparent;
  padding: 0.5rem 1.2rem; /* Slightly smaller for link buttons */
}
.btn.btn-outline-primary.custom-link-btn {
  color: var(--primary-color);
  border-color: var(--primary-color);
  box-shadow: 2px 2px 0 var(--primary-color);
}
.btn.btn-outline-primary.custom-link-btn:hover {
  background-color: rgba(10, 36, 99, 0.05); /* Faint primary bg */
  box-shadow: 1px 1px 0 var(--primary-color);
}
.btn.btn-outline-secondary.custom-link-btn {
  color: var(--secondary-color);
  border-color: var(--secondary-color);
  box-shadow: 2px 2px 0 var(--secondary-color);
}
.btn.btn-outline-secondary.custom-link-btn:hover {
  background-color: rgba(216, 87, 42, 0.05); /* Faint secondary bg */
  box-shadow: 1px 1px 0 var(--secondary-color);
}

/* Card Styles */
.card, .brutalist-card {
    border-radius: var(--border-radius-sharp) !important;
    border: 2px solid var(--card-border-color);
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: var(--card-background); /* Ensure bg for non-brutalist cards too */
    margin-bottom: 1.5rem; /* Consistent spacing for cards */
}
.brutalist-card {
    box-shadow: 4px 4px 0px var(--card-shadow-color);
    transition: transform var(--transition-speed-fast) ease-out, box-shadow var(--transition-speed-fast) ease-out;
}
.brutalist-card:hover {
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0px var(--secondary-color);
}

/* Card Image Container (div.card-image from HTML) */
.card .card-image {
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    width: 100%;
    border-bottom: 2px solid var(--card-border-color);
}
/* Image itself within .card-image */
.card .card-image img {
    display: block;
    width: 100%; /* Default: image takes full width of its container */
}

/* News Card Image (img.card-img-top inside div.card-image) */
.card .card-image:has(img.card-img-top) { /* Style the container */
    height: 220px; /* Fixed height for consistent news images */
    padding: 0;
    background-color: var(--background-medium); /* Fallback bg */
}
.card .card-image img.card-img-top {
    height: 100%;
    object-fit: cover;
    border-bottom: none; /* Container has border */
}

/* Awards Card Icon (img inside div.card-image.text-center.p-3) */
.card .card-image.text-center { /* HTML structure for awards card images */
    height: 140px;
    background-color: #f0f0f0; /* From inline style */
    padding: 1rem; /* From p-3 class */
}
.card .card-image.text-center img {
    width: auto; /* Let HTML attributes or max-width control */
    max-width: 80px;
    max-height: 80px;
    object-fit: contain;
}

/* Card Content Area (div.card-content from HTML) */
.card .card-content {
    padding: 1.5rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
.card .card-content .card-title { /* h5.card-title */
    font-family: var(--font-family-headings);
    color: var(--primary-color);
    margin-bottom: 0.75rem;
    font-weight: 700;
    font-size: 1.3rem;
}
.card .card-content .card-text { /* p.card-text */
    font-size: 0.95rem;
    color: var(--text-color-medium);
    flex-grow: 1; /* Text takes available space */
    margin-bottom: 1rem;
}
.card .card-content .btn,
.card .card-content .custom-link-btn {
    margin-top: auto; /* Pushes button to bottom */
    align-self: flex-start; /* Default button alignment */
}
.card .card-content .text-muted {
    font-size: 0.85rem;
}

/* Resource Cards specific styling */
.resource-card {
    border: 1px solid var(--background-medium);
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    transition: box-shadow var(--transition-speed-normal) ease, transform var(--transition-speed-normal) ease;
}
.resource-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.resource-card .card-body { padding: 1.5rem; }
.resource-card .card-title { font-size: 1.15rem; color: var(--primary-color); }
.resource-card .card-text { font-size: 0.9rem; margin-bottom: 1rem; }

/* Vision Section */
.progress {
    height: 25px !important;
    border-radius: var(--border-radius-sharp);
    background-color: var(--background-medium);
    border: 1px solid var(--text-color-dark);
    box-shadow: inset 1px 1px 2px rgba(0,0,0,0.1);
}
.progress-bar {
    font-weight: 700;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-color-light); /* Default, override per bar */
    border-radius: var(--border-radius-sharp);
}
.progress-bar[style*="background-color: #FFC43D"] { /* Yellow bar */
    color: var(--text-color-darker);
}

/* Clientele Section */
#clientele.bg-dark-texture {
    background-color: var(--background-dark-texture);
}
#clientele .section-title,
#clientele p {
    color: var(--text-color-light);
}
#clientele .section-title::after { background-color: var(--accent-color); }

.client-logo {
    max-height: 50px;
    margin: 1rem 0.5rem;
    filter: brightness(0.8) contrast(1.2) grayscale(20%); /* Subtle texture effect */
    opacity: 0.9;
    transition: all var(--transition-speed-normal) ease;
}
.client-logo:hover {
    filter: brightness(1) contrast(1) grayscale(0%);
    opacity: 1;
    transform: scale(1.05);
}
.stat-widget {
    padding: 1.5rem;
    margin-bottom: 1rem;
    border-radius: var(--border-radius-sharp);
    border: 2px solid var(--accent-color);
    background-color: rgba(255,255,255,0.05);
}
.stat-widget h3 { color: var(--accent-color); font-weight: 800; }
.stat-widget p { color: var(--text-color-muted); margin-bottom: 0; }

/* Awards Section */
#caseStudiesSlider .carousel-inner {
    border-radius: var(--border-radius-sharp);
    border: 2px solid var(--secondary-color);
    padding: 2rem;
    background-color: var(--background-medium);
}
#caseStudiesSlider img.rounded-circle {
    border: 3px solid var(--secondary-color);
    width: 150px; /* Fixed size for consistency */
    height: 150px;
    object-fit: cover;
}
#caseStudiesSlider .carousel-control-prev-icon,
#caseStudiesSlider .carousel-control-next-icon {
    background-color: var(--text-color-darker); /* From inline style */
    border-radius: 50%;
    padding: 1.2rem; /* Make icons larger */
    background-size: 50%; /* Adjust icon size within */
}
#caseStudiesSlider .carousel-indicators button {
    background-color: var(--text-color-dark);
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin: 0 5px;
    border: 1px solid var(--text-color-darker);
}
#caseStudiesSlider .carousel-indicators button.active {
    background-color: var(--secondary-color);
}


/* FAQ Section */
.accordion-brutalist .accordion-item {
    border: 2px solid var(--text-color-dark);
    margin-bottom: 12px;
    border-radius: var(--border-radius-sharp);
    box-shadow: 3px 3px 0px var(--text-color-dark);
    background-color: var(--card-background);
}
.accordion-brutalist .accordion-header {
    margin-bottom: 0;
}
.accordion-brutalist .accordion-button {
    background-color: transparent;
    color: var(--primary-color);
    font-weight: 700;
    font-size: 1.1rem;
    border-radius: var(--border-radius-sharp);
    border-bottom: 2px solid transparent; /* Remove default bootstrap internal border */
    box-shadow: none !important; /* Remove bootstrap focus shadow */
}
.accordion-brutalist .accordion-button:not(.collapsed) {
    background-color: var(--accent-color) !important;
    color: var(--text-on-accent) !important;
    border-bottom-color: var(--text-color-dark) !important;
}
.accordion-brutalist .accordion-button::after { /* Brutalist arrow */
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    margin-left: auto;
    content: "+"; /* Plus for collapsed */
    font-size: 1.8rem;
    font-weight: bold;
    background-image: none; /* Remove Bootstrap SVG */
    transform: none;
    transition: transform var(--transition-speed-fast) ease-in-out;
    text-align: center;
    line-height: 1;
}
.accordion-brutalist .accordion-button:not(.collapsed)::after {
    content: "\2013"; /* Minus for expanded (en-dash) */
    transform: none;
}
.accordion-brutalist .accordion-body {
    padding: 1.5rem;
    font-size: 0.95rem;
}

/* Contact Section */
#contact {
  background-color: var(--primary-color); /* From inline HTML */
}
#contact .section-title,
#contact p.lead {
  color: var(--text-color-light);
}
#contact .section-title::after { background-color: var(--accent-color); }

.contact-form {
  border-radius: var(--border-radius-sharp);
  border: 2px solid var(--accent-color) !important; /* From inline HTML, but !important for Bootstrap */
  background-color: rgba(255,255,255, 0.03) !important; /* From inline HTML */
  box-shadow: 5px 5px 0px var(--accent-color);
}
.contact-form .form-label {
  color: var(--accent-color) !important; /* From inline HTML */
  font-weight: 500;
  margin-bottom: 0.3rem;
}
.contact-form .custom-input { /* Bootstrap .form-control */
  background-color: rgba(0,0,0,0.15);
  border: 1px solid var(--accent-color);
  color: var(--text-color-light);
  padding: 0.8rem 1rem;
  border-radius: var(--border-radius-sharp);
  font-size: 1rem;
}
.contact-form .custom-input::placeholder {
  color: rgba(255,255,255,0.5);
}
.contact-form .custom-input:focus {
  background-color: rgba(0,0,0,0.25);
  border-color: var(--accent-color);
  box-shadow: 0 0 0 0.2rem rgba(255, 196, 61, 0.25); /* Accent focus glow */
  color: var(--text-color-light);
}
#contact .text-center a {
    color: var(--accent-color) !important;
}
#contact .text-center a:hover {
    color: var(--text-color-light) !important;
}


/* Footer */
footer {
  background-color: var(--background-dark); /* From inline HTML */
  color: var(--text-color-muted);
  padding: 3rem 0 1.5rem 0;
  border-top: 3px solid var(--text-color-darker);
}
footer h5 {
  color: var(--accent-color) !important; /* From inline HTML */
  font-family: var(--font-family-headings);
  font-weight: 700;
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
footer p.small {
  color: var(--text-color-muted);
  font-size: 0.9rem;
  line-height: 1.6;
}
footer .list-unstyled li {
  margin-bottom: 0.5rem;
}
footer .footer-link {
  color: var(--text-color-muted);
  transition: color var(--transition-speed-normal) ease, padding-left var(--transition-speed-normal) ease;
  font-size: 0.95rem;
}
footer .footer-link:hover {
  color: var(--accent-color);
  text-decoration: none;
  padding-left: 5px; /* Slight indent on hover */
}
footer hr {
  border-color: #444444 !important; /* From inline HTML */
  margin-top: 2rem;
  margin-bottom: 1.5rem;
}
footer .text-center p.small {
    font-size: 0.85rem;
}

/* Specific Page Styles */
/* For success.html */
.success-page-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  text-align: center;
  padding: 2rem;
  background-color: var(--background-light);
}
.success-page-container h1 {
  color: var(--primary-color);
  font-size: 3rem;
}
.success-page-container p {
  font-size: 1.2rem;
  color: var(--text-color-medium);
  max-width: 600px;
}
.success-page-container .btn {
  margin-top: 1.5rem;
}

/* For privacy.html and terms.html */
.privacy-page-content,
.terms-page-content {
  padding-top: 120px; /* Space for fixed header */
  padding-bottom: 4rem;
  min-height: calc(100vh - 100px); /* Approx footer height */
}
.privacy-page-content .container h1,
.terms-page-content .container h1 {
    margin-bottom: 2rem;
    text-align: center;
    font-size: 2.8rem;
}
.privacy-page-content .container h2,
.terms-page-content .container h2 {
    margin-top: 2.5rem;
    margin-bottom: 1rem;
    font-size: 1.8rem;
    color: var(--primary-color);
}
.privacy-page-content .container p,
.terms-page-content .container p,
.privacy-page-content .container li,
.terms-page-content .container li {
    font-size: 1.05rem;
    color: var(--text-color-medium);
}

/* Responsive adjustments */
@media (max-width: 992px) {
  .section-title { font-size: 2rem; }
  .hero-section h1 { font-size: 2.8rem; }
  .hero-section p.lead { font-size: 1.15rem; }
  .nav-link { margin-left: 0; margin-right: 0; }
}
@media (max-width: 576px) {
  .hero-section h1 { font-size: 2.2rem; }
  .section-title { font-size: 1.8rem; margin-bottom: 2rem; }
  h1 { font-size: 2.2rem; }
  h2 { font-size: 1.8rem; }
  p { font-size: 1rem; }
  .btn { padding: 0.6rem 1.2rem; font-size: 0.9rem;}
  .card .card-content { padding: 1rem; }
  .card .card-content .card-title { font-size: 1.1rem; }
  .card .card-content .card-text { font-size: 0.9rem; }
  .contact-form { padding: 1.5rem !important; }
}