/* Global Variables & Base Styles */
:root {
    --mc-blue-main: #0076ce;
    --mc-green-accent: #71a850;
    --mc-green-accent-darker: #5a8a40; /* Darker green for hover */
    --mc-text-main: #4A4A4A;
    --mc-line-light: #d1e7f8; /* Defined in both, same value */
    --mc-form-line: #a9d2f4;
    --mc-form-bg: #f3f4f6;
    /* Variables de tamaño de fuente */
    --header-footer-font-size: 1.4rem;
    --body-text-font-size: 1.7rem; /* Tamaño para móvil */
    --form-label-font-size: 1.5rem; 
    --section-title-font-size: 2.5rem; /* Tamaño de título para móvil */
    --error-color: #e53e3e; /* text-red-600 approx */
    --error-color-darker: #c53030; /* text-red-700 approx for focus */
}

@media (min-width: 1024px) {
    :root {
         --body-text-font-size: 1.9rem; /* Tamaño para desktop */
         --section-title-font-size: 4rem; /* Tamaño de título para desktop */
    }
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'DM Sans', sans-serif;
    background-color: #ffffff;
    color: var(--mc-text-main);
    overflow-x: hidden; /* Evita el scroll horizontal (from index.html) */
    display: flex; /* (from gracias.html) for sticky footer pattern */
    flex-direction: column; /* (from gracias.html) */
    min-height: 100vh; /* (from gracias.html) */
}

main {
    flex: 1; /* (from gracias.html) for sticky footer content expansion */
}

blockquote {
    quotes: none;
    font-size: 1.9rem; 
}
blockquote:before, blockquote:after {
    content: none;
}

/* Common Utility Classes */
.text-mc-blue-main { 
    color: var(--mc-blue-main); /* #0076CE; (from gracias.html, matches var) */
}
.border-mc-line-light { 
    border-color: var(--mc-line-light); /* (from gracias.html) */
}
.text-green-accent {
    color: var(--mc-green-accent);
}
.bg-mc-blue-main {
    background-color: var(--mc-blue-main);
}


/* Component Specific Styles from index.html (and potentially shared) */
.btn-image {
    background-color: var(--mc-green-accent);
    font-size: 1rem; /* Tamaño base para móvil (16px) */
    font-weight: 700;
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.5rem;
    border-radius: 0.5rem; /* 8px */
    transition: transform 0.3s ease-in-out, background-color 0.3s ease-in-out, font-size 0.3s ease-in-out;
    height: 60px; /* Reduced height for better responsive aesthetics */
    cursor: pointer;
    border: none; /* Ensure no default browser borders */
    line-height: 1.2; /* Ensure text is vertically centered nicely */
    white-space: nowrap; /* Prevent text from wrapping */
}

@media (min-width: 768px) { /* md breakpoint */
    .btn-image {
        font-size: var(--header-footer-font-size); /* 1.4rem en md y superior */
    }
}

@media (min-width: 1280px) { /* xl breakpoint, where form becomes a row */
    .btn-image {
        height: 78px; /* Restored height to match Turnstile widget */
    }
}

.btn-image:hover {
    transform: scale(1.1); /* Updated scale */
    background-color: var(--mc-green-accent-darker);
}

.whatsapp-float {
    position: fixed;
    width: 60px;
    height: 60px;
    bottom: 20px;
    right: 20px;
    background-color: #25D366;
    color: #FFF;
    border-radius: 50px;
    text-align: center;
    font-size: 30px;
    box-shadow: 2px 2px 3px #999; /* from index.html */
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    /* Merged transition, gracias.html one is more specific */
    transition: transform 0.3s ease-in-out, background-color 0.3s ease-in-out, bottom 0.3s ease-in-out; 
}
.whatsapp-float:hover {
    transform: scale(1.1);
    background-color: #128C7E; /* from gracias.html for specific hover color */
}
.whatsapp-float svg { /* from gracias.html, for the SVG inside it if not sized by Tailwind */
    width: 32px;
    height: 32px;
}

/* Image transition override */
img:not(.btn-image):not(.whatsapp-float img) {
    transition: none !important;
    transform: none !important;
}

/* Header Navigation */
.header-nav-link {
    position: relative;
    padding: 0.5rem 0;
    padding-left: 1rem;
    transition: color 0.3s ease-in-out;
    color: var(--mc-text-main);
    white-space: nowrap;
    font-weight: 500;
    font-size: var(--header-footer-font-size);
}
.header-nav-link::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%) scale(0);
    width: 8px;
    height: 8px;
    background-color: var(--mc-blue-main);
    border-radius: 50%;
    opacity: 0;
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
}
.header-nav-link:hover {
    color: #000000;
}
.header-nav-link:hover::before {
    transform: translateY(-50%) scale(1);
    opacity: 1;
}

/* Mobile Navigation */
.mobile-nav-link {
    position: relative;
    font-size: var(--header-footer-font-size);
}

/* Concept Box */
.concept-box .concept-image {
    width: 100%;
    height: auto;
    margin-bottom: 0;
    flex-shrink: 0;
}

/* Disconnected Blue Outline */
.disconnected-blue-outline {
    position: relative;
    background-color: #ffffff;
    border-radius: 0.5rem;
    overflow: visible;
    --line-color: var(--mc-line-light); 
    --line-thickness: 2px; 
    --inner-gap: 10px;
    --protrusion-length: 25px; 
    --protrusion-offset: 5px;
    background:
        linear-gradient(to right, var(--line-color), var(--line-color)) no-repeat
            top 0px left var(--inner-gap) / calc(100% - 2 * var(--inner-gap)) var(--line-thickness),
        linear-gradient(to bottom, var(--line-color), var(--line-color)) no-repeat
            top var(--inner-gap) right 0px / var(--line-thickness) calc(100% - 2 * var(--inner-gap)),
        linear-gradient(to left, var(--line-color), var(--line-color)) no-repeat
            bottom 0px left var(--inner-gap) / calc(100% - 2 * var(--inner-gap)) var(--line-thickness),
        linear-gradient(to top, var(--line-color), var(--line-color)) no-repeat
            top var(--inner-gap) left 0px / var(--line-thickness) calc(100% - 2 * var(--inner-gap));
    background-origin: border-box;
}
.protrusion-line {
    position: absolute; 
    background-color: var(--line-color); 
    z-index: 1;
}
.protrusion-line.top-left-h { width: var(--protrusion-length); height: var(--line-thickness); top: 0; left: calc(-1 * var(--protrusion-length) - var(--protrusion-offset)); }
.protrusion-line.top-right-h { width: var(--protrusion-length); height: var(--line-thickness); top: 0; right: calc(-1 * var(--protrusion-length) - var(--protrusion-offset)); }
.protrusion-line.bottom-left-h { width: var(--protrusion-length); height: var(--line-thickness); bottom: 0; left: calc(-1 * var(--protrusion-length) - var(--protrusion-offset)); }
.protrusion-line.bottom-right-h { width: var(--protrusion-length); height: var(--line-thickness); bottom: 0; right: calc(-1 * var(--protrusion-length) - var(--protrusion-offset)); }

/* Testimonial */
.testimonial-quote-img {
    position: absolute;
    width: 40px;
    height: 40px;
    z-index: 10;
}

@media (min-width: 768px) { /* md breakpoint */
    .testimonial-quote-img {
        width: 70px;
        height: 70px;
    }
}

.testimonial-quote-img.start { top: 0; left: 0; }
.testimonial-quote-img.end { bottom: 0; right: 0; transform: rotate(180deg); }

/* Form Styles */
.form-input {
    background-color: transparent;
    border: none;
    border-bottom: 2px solid var(--mc-form-line);
    padding: 0.5rem 0;
    transition: border-color 0.3s;
    color: var(--mc-text-main);
    font-weight: 500;
    border-radius: 0; /* Remove default radius from Tailwind for select/input if any */
    font-size: var(--header-footer-font-size);
}
.form-input:focus {
    outline: none;
    border-bottom-color: var(--mc-blue-main);
}
/* Browser autofill correction */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px var(--mc-form-bg) inset !important;
    -webkit-text-fill-color: var(--mc-text-main) !important;
    transition: background-color 5000s ease-in-out 0s;
}
.form-container { 
    background-color: var(--mc-form-bg); 
}
.form-label {
    display: block;
    font-size: var(--form-label-font-size);
    font-weight: 500; /* font-medium */
    color: #374151; /* text-gray-700 */
    margin-bottom: 0.25rem; /* Reduced space between label and input */
}

/* Error Styling for Form Validation - Tooltip Style */
.error-message {
    display: none; /* Hidden by default */
    position: absolute;
    background-color: var(--error-color);
    color: white;
    padding: 0.5rem 0.75rem; /* 8px 12px */
    border-radius: 0.375rem; /* 6px */
    font-size: 0.875rem; /* text-sm */
    z-index: 10;
    text-align: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    line-height: 1.3;
    width: max-content; /* Adjust to content width */
    max-width: 220px; /* Max width to prevent overflow */
}

.error-message.active {
    display: block; /* Show when active */
}

/* Arrow for tooltips pointing downwards (tooltip is above input) */
.error-message::after {
    content: "";
    position: absolute;
    top: 100%; /* At the bottom of the tooltip */
    left: 50%;
    transform: translateX(-50%);
    border-width: 7px;
    border-style: solid;
    border-color: var(--error-color) transparent transparent transparent; /* Arrow pointing down */
}

/* General positioning for input field errors (above the input) */
.form-input + .error-message, 
.form-input ~ .error-message,
select + .error-message,
select ~ .error-message,
textarea + .error-message,
textarea ~ .error-message {
    bottom: calc(100% + 5px); /* Position above the input, with 5px gap */
    left: 50%;
    transform: translateX(-50%);
}


/* Specific positioning for Turnstile error message (below the widget) */
#turnstile-error {
    top: calc(100% + 5px); /* Position below the widget, with 5px gap */
    left: 50%;
    transform: translateX(-50%);
    bottom: auto; /* Override general 'above' positioning */
}

/* Arrow for Turnstile error tooltip pointing upwards (tooltip is below widget) */
#turnstile-error::after {
    bottom: 100%; /* At the top of the tooltip */
    top: auto;
    border-color: transparent transparent var(--error-color) transparent; /* Arrow pointing up */
}


.form-input.error-input {
    border-bottom-color: var(--error-color) !important;
}
.form-input.error-input:focus {
    border-bottom-color: var(--error-color-darker) !important;
}

/* Visual cue for Turnstile widget on error */
.cf-turnstile.error-input {
    outline: 2px solid var(--error-color);
    border-radius: 4px; 
}


/* Reusable Section & Text Styles */
.section-title {
    font-size: var(--section-title-font-size);
    line-height: 1.2; 
    font-weight: 600;
    margin-bottom: 1.5rem;
}
.section-body-text {
    font-size: var(--body-text-font-size);
    line-height: 1.4;
}

.page-section {
    margin-bottom: 3rem; /* mb-12 */
    padding-left: 0;
    padding-right: 0;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}
@media (min-width: 768px) { /* md breakpoint */
    .page-section {
        padding: 2.5rem; /* p-10 */
    }
}

.separator-line {
    height: 3px;
    margin: 1.5rem auto;
    position: relative;
}
.separator-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.separator-line.blue {
    background: linear-gradient(to right, transparent, var(--mc-blue-main), transparent);
}
.separator-line.green {
     background: linear-gradient(to right, transparent, var(--mc-green-accent), transparent);
}

.footer-text {
    font-size: 1rem; /* Tamaño base para móvil (16px) */
}

@media (min-width: 768px) { /* md breakpoint */
    .footer-text {
        font-size: var(--header-footer-font-size); /* 1.4rem en md y superior */
    }
}


/* Gracias Page Specific Styles */
.gracias-social-icon {
    display: inline-block;
    transition: transform 0.3s ease-in-out;
}
.gracias-social-icon:hover {
    transform: scale(1.1);
}
.gracias-social-icon img {
    display: block;
}