/* Generado por construir.py desde ../style.css: el mismo pie de todo el sitio. */
.footer .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.footer { font-size: 16px; line-height: 1.6; }
.footer h3.footer-label { line-height: 1.3; }
.footer ul { list-style: none; padding: 0; margin: 0; }
.footer a { text-decoration: none; }
:root {--primary: #2D1B4E; /* Prokap Violet */
    --primary-light: #4A2B7C;
    --secondary: #D4AF37; /* Bronze/Gold for CTAs */
    --accent: #FDFBF7; /* Cream/Beige background */
    --text: #333333;
    --light-grey: #F5F5F5;
    --white: #FFFFFF;
    --shadow: 0 4px 20px rgba(0,0,0,0.08);}
.plan-summary-box, .tc-container, .payment-box, .validation-box, .booking-box {background: #f8fafc;
    padding: 20px;
    border-radius: 12px;
    margin: 20px 0;
    text-align: center;
    border: 1px solid #edf2f7;}
.footer {background-color: #f7f7f7;
    padding: 60px 0 30px;
    border-top: 1px solid #eaeaea;
    color: var(--text);}
.footer-grid {display: grid;
    grid-template-columns: 1.5fr 1.5fr 1fr;
    gap: 40px;
    margin-bottom: 40px;}
.footer-section {display: flex;
    flex-direction: column;}
.footer-label {font-family: 'Outfit', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
    display: block;}
.footer-logo {height: 56px;
    max-height: 56px;
    width: auto;
    margin-bottom: 15px;
    object-fit: contain;
    align-self: flex-start; /* Ensure it stays left */}
.brand-column p {font-size: 0.9rem;
    color: #666;
    margin-bottom: 20px;}
.social-links-container {display: flex;
    flex-direction: column; /* Move icon below label */
    align-items: flex-start; /* Align both to the left on desktop */
    gap: 5px; /* Reduced gap as requested */}
.icon-svg {width: 24px;
    height: 24px;
    transition: transform 0.3s;}
.icon-svg:hover {transform: scale(1.1);}
.payment-flex-harmonious {display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: center;
    background: #fff;
    padding: 15px;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.03);}
.payment-banner {height: 30px;
    width: auto;}
.payment-logo-official {height: 35px;
    width: auto;}
.policy-list {list-style: none;
    padding: 0;
    margin: 0;}
.policy-list li {margin-bottom: 10px;}
.policy-list a {text-decoration: none;
    color: #555;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: color 0.2s;}
.policy-list a:hover {color: var(--primary);}
.policy-icon {font-size: 1.1rem;
    width: 20px;
    text-align: center;}
.footer-affiliation-wrapper {display: flex;
    flex-direction: column;
    align-items: center;
    padding: 30px 0;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    margin-bottom: 20px;
    text-align: center;}
.footer-affiliation-wrapper p {font-size: 0.8rem;
    color: #5f5f66;
    margin-bottom: 10px;}
.affiliation-logo-footer {height: 56px;
    max-height: 56px;
    width: auto;
    opacity: 0.85;
    transition: opacity 0.3s;}
.affiliation-logo-footer:hover {opacity: 1;}
.footer-bottom {text-align: center;
    font-size: 0.85rem;
    color: #5f5f66;}
@media (max-width: 768px) {
  .footer-grid {grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;}
  .footer-section {align-items: center;
        text-align: center;}
  .social-links-container {align-items: center; 
        width: 100%;}
  .payment-flex-harmonious {justify-content: center;}
  .policy-list a {justify-content: center;}
}
.payment-icons {display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;}
.payment-badge {background: #f0f0f0;
    padding: 5px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: bold;
    color: #333;
    border: 1px solid #ddd;}
@media (max-width: 768px) {
  .footer-grid {grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;}
  .footer-section {align-items: center;}
  .social-links-container {justify-content: center;}
  .payment-grid-3x2 {justify-content: center;
        max-width: 250px;
        margin-left: auto;
        margin-right: auto;}
  .policy-list a {justify-content: center;}
}
.transparent-img {mix-blend-mode: multiply !important;
    filter: contrast(1.05) brightness(1.05) !important;
    opacity: 0.95;}
.payment-grid-3x2 {display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 15px !important;
    background: transparent;
    padding: 0 !important;
    align-items: center;
    justify-items: center;}
.payment-logo-grid {height: 24px !important; /* Slightly larger for better readability */
    max-width: 100%;
    object-fit: contain;
    transition: transform 0.3s;}
.payment-logo-grid--lg {height: 34px !important;}
.pay-section {border-bottom: 1px solid #eaeaea; padding-bottom: 26px; margin-bottom: 30px;}
.paychips {display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-bottom: 16px;}
.paylogo {background: #fff; border: 1px solid #ece9f5; border-radius: 12px; height: 60px; padding: 0 20px;
    display: flex; align-items: center; justify-content: center; box-shadow: 0 3px 10px rgba(45,27,78,.06);}
.paylogo img {height: 34px; width: auto; max-width: 130px; object-fit: contain; display: block;}
.paylogo img[alt="PSE"] {height: 44px;}
.paynote {text-align: center; font-size: .78rem; color: var(--text-muted, #6b6880); margin: -4px auto 14px; max-width: 520px; line-height: 1.4;}
.paybadges {display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;}
.pbadge {display: inline-flex; align-items: center; gap: 5px; font-size: .72rem; font-weight: 600;
    color: var(--primary); background: #f3effb; border: 1px solid #e6ddf7; border-radius: 20px; padding: 5px 11px;}
.footer-grid--v2 {grid-template-columns: 1.4fr 1fr 1.2fr;}
.footer-grid--v2 .footer-label {margin-bottom: 12px;}
.policy-list a {transition: color .2s;}
.policy-list a:hover {color: var(--primary-light);}
@media (max-width: 760px) {
  .footer-grid--v2 {grid-template-columns: 1fr; gap: 26px;}
}
.payment-logo-grid:hover {filter: none;
    opacity: 1;}
.social-icon-box {margin-top: 15px !important; /* Below the title as requested */}
.large-social {width: 36px !important;
    height: 36px !important;}
