/* ========================================
   ROOT VARIABLES
   ======================================== */
:root {
    --black: #000000;
    --white: #FFFFFF;
    --primary: #B40056;
    --secondary: #D50057;
    --input: #666;
    --accent-1: #D88147;
    --primary-dark: #1C2E5D;
    
    /* Spacing */
    --border-radius-md: 0.5rem;
    --border-radius-lg: 1rem;
    --border-radius-xl: 1.5rem;
    
    /* Transitions */
    --transition-base: all 0.3s ease;
    --shadow-sm: 0 0 8px 0 rgba(12, 233, 137, 0.15);
    --shadow-md: 0 0 12px 0 rgba(0, 0, 0, 0.15);
    
    /* Typography */
    --font-primary: "Poppins", sans-serif;
}
/* poppins-latin-400-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff2) format('woff2'),
       url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* poppins-latin-700-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-700-normal.woff2) format('woff2'),
       url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-700-normal.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* ========================================
   RESETS & UTILITIES
   ======================================== */
.img-fluid {
    width: 100%;
}

.noPadding {
    padding: 0;
}

.row {
    padding: 0 !important;
    margin: 0 !important;
}

.row.no-gutters>[class^='col-'],
.row.no-gutters>[class*='col-'] {
    padding-right: 0;
    padding-left: 0;
}

::selection {
    background-color: var(--secondary);
    color: var(--primary);
}

::-webkit-scrollbar-thumb {
    background: var(--primary);
    border-radius: 10px;
    transition: var(--transition-base);
}

/* ========================================
   BASE ELEMENTS
   ======================================== */
html, body {
    position: relative;
    font-family: var(--font-primary);
    font-size: 16px;
    font-weight: 400;
    color: var(--black);
    margin: 0;
    padding: 0;
}

body {
    background-color: var(--primary);
    overflow-x: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    contain: layout style paint;
    content-visibility: auto;
    contain-intrinsic-size: 100vh 100vw;
}

body * {
    font-family: var(--font-primary);
    position: relative;
    z-index: 1;
}

body,
input,
textarea,
select {
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* ========================================
   TYPOGRAPHY
   ======================================== */
h1, h2, h3, h4, h5, h6 {
    font-display: swap;
    color: var(--white);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

h1, .h1 {
    font-size: clamp(2.625rem, 2.225rem + 0.6459vw, 3rem);
    font-weight: 800;
}

h2, .h2 {
    font-size: clamp(2.375rem, 2.2417rem + 0.2153vw, 2.5rem);
    font-weight: 700;
}

h3, .h3 {
    font-size: clamp(1.875rem, 1.475rem + 0.6459vw, 2.25rem);
    font-weight: 600;
}

p, li, label {
    font-size: clamp(1rem, 0.9167rem + 0.1736vw, 1.125rem);
    color: var(--white);
}

.small {
    font-size: 0.85em;
    text-align: center;
}

a {
    color: var(--white);
    text-decoration: underline;
    transition: var(--transition-base);
}

a:hover,
a:active,
a:focus {
    color: var(--white);
}

/* ========================================
   BUTTONS
   ======================================== */
.button {
    font-size: clamp(1rem, 0.9167rem + 0.1736vw, 1.125rem);
    font-weight: 700;
    color: var(--white);
    text-decoration: none;
    text-transform: none;
    padding: 0.675rem 1.85rem;
    background-color: var(--primary);
    border: 1px solid var(--primary);
    outline: none;
    border-radius: var(--border-radius-lg);
    transition: var(--transition-base);
    box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0);
}
.button-primary {
    background-color: var(--primary);
    border-color: var(--primary);
}
.button-accent {
    color: var(--white);
    background-color: var(--accent-1);
    border-color: var(--accent-1);
}
.button:hover, .button:focus, .button:active {
    box-shadow: var(--shadow-md);
}

form .button:hover {
    padding-inline: 2.5rem;
}

/* ========================================
   COLORS UTILITIES
   ======================================== */
.color-primary { color: var(--primary); }
.color-secondary { color: var(--secondary); }
.color-accent { color: var(--accent-1); }
.color-white { color: var(--white); }
.color-black { color: var(--black); }

/* ========================================
   BACKGROUNDS
   ======================================== */
.background-black { background-color: var(--black); }
.background-primary-dark { background-color: var(--primary-dark); }
.background-primary { background-color: var(--primary); }
.background-accent { background: var(--accent-1); }
.background-secondary { background-color: var(--secondary); }
.background-white { background-color: var(--white); }

.background-img::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
    z-index: 1;
}

.image-1::before {
    background-image: url("https://image.comunicacion-fmf.mx/lib/fe31117473640478761576/m/1/cef62137-0fb1-4537-bb8f-5c88796aebaf.jpg");
    background-attachment: fixed;
}
.image-2::before {
    background-image: url("https://image.comunicacion-fmf.mx/lib/fe31117473640478761576/m/1/3c93fd9c-2052-4f07-ac5d-d973cd24c988.jpg");
    background-attachment: fixed;
}
.image-3::before {
    background-image: url("https://image.comunicacion-fmf.mx/lib/fe31117473640478761576/m/1/431636a7-3f19-44fc-8504-4504bc062cd9.jpg");
    background-attachment: fixed;
}
.image-4::before {
    background-image: url("https://image.comunicacion-fmf.mx/lib/fe31117473640478761576/m/1/d83aa913-998a-41a2-a65e-861c6b6cbf1b.jpg");
    background-attachment: fixed;
}
.image-5::before {
    background-image: url("https://image.comunicacion-fmf.mx/lib/fe31117473640478761576/m/1/fb3a1e2a-e3ec-4382-a931-1f24a5ac38dc.jpg");
    background-attachment: fixed;
}

/* ========================================
   LAYOUT STRUCTURE
   ======================================== */
main {
    min-height: 100dvh;
    display: grid;
    grid-template-rows: auto 1fr auto;
    contain: layout style;
    content-visibility: auto;
    contain-intrinsic-size: 100dvh 100vw;
    width: 100%;
    gap: 2.5rem;
}

.block {
    padding: 0 1rem;
    contain: layout style;
    content-visibility: auto;
    contain-intrinsic-size: 800px 100vw;
}

/* ========================================
   NAVBAR
   ======================================== */
.navbar {
    padding: 1.5rem 1rem;
    contain: layout style;
    content-visibility: auto;
    contain-intrinsic-size: 80px 100vw;
}
.navbar-brand {
    margin: 0;
    padding: 0;
}
.navbar picture {
    display: table;
}
.navbar-brand img {
    max-width: clamp(180px, calc(137.33px + 4.306vw), 220px);
    width: 100%;
    height: auto;
}
.nav-link {
    font-family: var(--font-primary);
    color: var(--white);
}
.navbar .button {
    color: var(--primary);
    background-color: var(--white);
}
.nav-link:hover, .nav-link:focus {
    color: var(--white);
}
.navbar-brand.v2 img {
    max-width: clamp(3.75rem, 2.4166rem + 2.1529vw, 5rem);
    width: 100%;
    height: auto;
}
.navbar-brand.v2 .partner {
    max-height: clamp(3.75rem, 2.4166rem + 2.1529vw, 5rem);
    height: 100%;
    width: auto;
    max-width: inherit;
}
.navbar.v2 {
    padding: 1.5rem 1rem;
}
.nav-gradient {
    background: linear-gradient(102deg, #1C2E5D 4.08%, #1D74AF 37.83%, #1D74AF 80.9%, #1A4686 96.44%);
    backdrop-filter: blur(22.5px);
}

/* ========================================
   FOOTER
   ======================================== */
.footer {
    padding: 2.5rem .5rem;
    contain: layout style;
    content-visibility: auto;
    contain-intrinsic-size: 200px 100vw;
}
.link-fxp {
    display: table;
    margin: 0 auto;
}
.footer hr {
    border-top-color: var(--white);
}
.footer .social {
    display: flex;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer .social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    text-decoration: none;
    border-radius: 21px;
    background-color: transparent;
    border: 1px solid transparent;
    transition: var(--transition-base);
}
.footer .social a:hover, .footer .social a:focus, .footer .social a:active {
    border-color: var(--primary);
    background-color: var(--primary);
}
.footer img.fxp {
    display: block;
    max-width: 162px;
    width: 100%;
    height: auto;
    margin: .5rem auto 0;
}

/* ========================================
   SOCIAL MEDIA ICONS
   ======================================== */
.social li a span {
    display: block;
    width: 24px;
    height: 24px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
/* Facebook SVG */
.social-facebook span {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z'/%3E%3C/svg%3E");
}
/* Instagram SVG */
.social-instagram span {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640' fill='%23fff'%3E%3Cpath d='M320.3 205C256.8 204.8 205.2 256.2 205 319.7C204.8 383.2 256.2 434.8 319.7 435C383.2 435.2 434.8 383.8 435 320.3C435.2 256.8 383.8 205.2 320.3 205zM319.7 245.4C360.9 245.2 394.4 278.5 394.6 319.7C394.8 360.9 361.5 394.4 320.3 394.6C279.1 394.8 245.6 361.5 245.4 320.3C245.2 279.1 278.5 245.6 319.7 245.4zM413.1 200.3C413.1 185.5 425.1 173.5 439.9 173.5C454.7 173.5 466.7 185.5 466.7 200.3C466.7 215.1 454.7 227.1 439.9 227.1C425.1 227.1 413.1 215.1 413.1 200.3zM542.8 227.5C541.1 191.6 532.9 159.8 506.6 133.6C480.4 107.4 448.6 99.2 412.7 97.4C375.7 95.3 264.8 95.3 227.8 97.4C192 99.1 160.2 107.3 133.9 133.5C107.6 159.7 99.5 191.5 97.7 227.4C95.6 264.4 95.6 375.3 97.7 412.3C99.4 448.2 107.6 480 133.9 506.2C160.2 532.4 191.9 540.6 227.8 542.4C264.8 544.5 375.7 544.5 412.7 542.4C448.6 540.7 480.4 532.5 506.6 506.2C532.8 480 541 448.2 542.8 412.3C544.9 375.3 544.9 264.5 542.8 227.5zM495 452C487.2 471.6 472.1 486.7 452.4 494.6C422.9 506.3 352.9 503.6 320.3 503.6C287.7 503.6 217.6 506.2 188.2 494.6C168.6 486.8 153.5 471.7 145.6 452C133.9 422.5 136.6 352.5 136.6 319.9C136.6 287.3 134 217.2 145.6 187.8C153.4 168.2 168.5 153.1 188.2 145.2C217.7 133.5 287.7 136.2 320.3 136.2C352.9 136.2 423 133.6 452.4 145.2C472 153 487.1 168.1 495 187.8C506.7 217.3 504 287.3 504 319.9C504 352.5 506.7 422.6 495 452z'/%3E%3C/svg%3E");
    background-size: 32px auto!important;
}
/* YouTube SVG */
.social-youtube span {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E");
}
/* X (Twitter) SVG */
.social-x-twitter span {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E");
}
/* TikTok SVG */
.social-tiktok span {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3C/svg%3E");
}

/* ========================================
   VISUAL EFFECTS
   ======================================== */
.bg-texture,
.background-img {
    position: relative;
}
.bg-texture *,
.background-img * {
    position: relative;
    z-index: 2;
}

/* ========================================
   CONTENT COMPONENTS
   ======================================== */
.banner {
    position: relative;
    padding-inline: clamp(0rem, -2.6667rem + 5.5556vw, 4rem);
    contain: layout style;
    content-visibility: auto;
    contain-intrinsic-size: 480px 100vw;
}

.sidebar img,
.banner img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: clamp(0.5rem, -0.1667rem + 1.3889vw, 1.5rem);
    box-shadow: 0 0 32px 0 rgba(160, 160, 160, 0.01);
    contain: layout style;
    content-visibility: auto;
}

.hero {
    padding-block: 2rem;
    contain: layout style;
    content-visibility: auto;
    contain-intrinsic-size: 300px 100vw;
}
.hero .container {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.5rem;
}
.hero .container * {
    margin: 0;
}
.hero p.width-center {
    text-align: start;
    max-width: 768px;
    width: 100%;
    margin: 0 auto;
}
.hero .content-bg {
    background-color: var(--white);
    padding: 2rem;
    border-radius: var(--border-radius-xl);
}

.content-container {
    max-width: 910px;
    width: 100%;
    margin: 0 auto;
}
/* ========================================
   FORMS
   ======================================== */
.form-content {
    border-radius: var(--border-radius-xl);
    background: rgba(0, 0, 0, 0.60);
    background-blend-mode: multiply;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25), 0 0 32px 0 rgba(12, 233, 137, 0.08);
    backdrop-filter: blur(22.5px);  
    padding: clamp(1.5rem, 1.1667rem + 0.6944vw, 2rem) clamp(0.25rem, -0.9167rem + 2.4306vw, 2rem);
    contain: layout style;
    content-visibility: auto;
    contain-intrinsic-size: 600px 100vw;
}
form p {
    font-size: clamp(0.95rem, 0.8333rem + 0.2431vw, 1.125rem);
    color: var(--white);
}
.form-select,
.form-control {
    display: block;
    font-size: clamp(0.95rem, 0.8333rem + 0.2431vw, 1.125rem);
    font-weight: 400;
    color: var(--black);
    width: 100%;
    border-radius: var(--border-radius-md);
    background-color: var(--white);
    border: 1px solid var(--white);
    padding: 1rem 1rem;
    appearance: none;
}
.form-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23666' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}
.form-select:hover, .form-select:focus, .form-select:active,
.form-control:hover, .form-control:focus, .form-control:active {
    color: var(--black);
    background-color: var(--white);
    border-color: var(--secondary);
    outline: none;
}
.label_input {
    font-size: clamp(0.95rem, 0.8333rem + 0.2431vw, 1.125rem);
    font-weight: 600;
    color: var(--white);
    padding: 2px 0px;
}
.form-check-label {
    color: #A0A0A0;
}
.form-check-label a {
    font-weight: bold;
    color: var(--accent-1);
}
.label_input.dest {
    font-size: clamp(1rem, 0.6667rem + 0.6944vw, 1.5rem);
    color: var(--white);
}

/* Checkboxes & Radio */
.form-check-input {
    border-color: var(--white);
    background-color: transparent;
}
.form-check-input:checked {
    background-color: var(--primary);
    border-color: var(--primary);
}
.form-check-input:checked[type=radio] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
}
.form-check-input:checked[type=checkbox] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}

/* Input Elements */
input::placeholder {
    color: var(--input)!important;
}
input[type="month"]::-webkit-calendar-picker-indicator {
    filter: invert(1) brightness(0.5);
    background-image: none;
}
.input-icon {
    position: relative;
}
.input-icon input {
    padding-right: 2rem;
}
.input-icon::after {
    content: "";
    text-align: center;
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    width: 3rem;
    height: 1.85rem;
    opacity: 1;
    z-index: 2;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M216 64C229.3 64 240 74.7 240 88L240 128L400 128L400 88C400 74.7 410.7 64 424 64C437.3 64 448 74.7 448 88L448 128L480 128C515.3 128 544 156.7 544 192L544 480C544 515.3 515.3 544 480 544L160 544C124.7 544 96 515.3 96 480L96 192C96 156.7 124.7 128 160 128L192 128L192 88C192 74.7 202.7 64 216 64zM216 176L160 176C151.2 176 144 183.2 144 192L144 240L496 240L496 192C496 183.2 488.8 176 480 176L216 176zM144 288L144 480C144 488.8 151.2 496 160 496L480 496C488.8 496 496 488.8 496 480L496 288L144 288z" fill="%23666"/></svg>');
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto 100%;
    background-color: var(--white);
}

/* ========================================
   FORM VARIANTS
   ======================================== */
.form-content.background-white {
    border: 1px solid var(--secondary);
    background: linear-gradient(180deg, #FFF 86.78%, rgba(81, 120, 173, 0.26) 119.52%, rgba(37, 86, 152, 0.07) 119.53%), #FFF;
    box-shadow: 0 0 32px 0 rgba(12, 233, 137, 0.08);
}
.form-content.background-white .form-check-label {
    color: var(--black);
}
.form-content.background-white .label_input {
    color: #666;
}
.form-content.background-white .form-select, 
.form-content.background-white .form-control {
    color: var(--black);
    border-color: #666;
    background-color: #E8E8E8;
}
.form-content.background-white .form-check-input {
    border-color: var(--primary);
}
.form-content.background-white .input-icon::after {
    color: #666;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M216 64C229.3 64 240 74.7 240 88L240 128L400 128L400 88C400 74.7 410.7 64 424 64C437.3 64 448 74.7 448 88L448 128L480 128C515.3 128 544 156.7 544 192L544 480C544 515.3 515.3 544 480 544L160 544C124.7 544 96 515.3 96 480L96 192C96 156.7 124.7 128 160 128L192 128L192 88C192 74.7 202.7 64 216 64zM216 176L160 176C151.2 176 144 183.2 144 192L144 240L496 240L496 192C496 183.2 488.8 176 480 176L216 176zM144 288L144 480C144 488.8 151.2 496 160 496L480 496C488.8 496 496 488.8 496 480L496 288L144 288z" fill="%23666"/></svg>');
    background-color: #E8E8E8;
}
.form-content.background-white .form-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23666' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}
/* ========================================
   SPECIAL PAGES
   ======================================== */
.ty-page {
    padding-block: 3rem;
    contain: layout style;
    content-visibility: auto;
    contain-intrinsic-size: 100vh 100vw;
}
.ty-page .hero {
    height: 100%;
}
.ty-page .hero .container {
    justify-content: center;
    height: 100%;
}
.ty-page .container-bg {
    padding: 3rem 1.5rem; 
    border-radius: 24px;
    background: rgba(0, 0, 0, 0.45);
    background-blend-mode: multiply;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25), 0 0 32px 0 rgba(12, 233, 137, 0.08);
    backdrop-filter: blur(22.5px);
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media only screen and (max-width: 1992px) and (min-width: 1280px) {
    .container-fluid.px-lg-5 {
        padding-inline: 6rem !important;
    }
}
@media only screen and (max-width: 991px) {
    .form-check-label {
        flex: 1;
    }
    
    .ty-page {
        padding-block: 0;
    }
    
    /* Reduce content-visibility complexity on mobile */
    .block, .hero, .form-content, .banner, .navbar, .footer {
        contain: layout;
        content-visibility: visible;
    }
}

@media only screen and (max-width: 376px) {
    .container, .container-fluid {
        padding-inline: 0;
    }
}

/* Mobile text size adjustment - 30% smaller */
@media only screen and (max-width: 767px) {
    h1, .h1 {
        font-size: clamp(1.8375rem, 1.5575rem + 0.4521vw, 2.1rem);
    }
    
    h2, .h2 {
        font-size: clamp(1.6625rem, 1.5692rem + 0.1507vw, 1.75rem);
    }
    
    p, li, label {
        font-size: clamp(0.7rem, 0.6417rem + 0.1215vw, 0.7875rem);
    }
    
    .form-check-label {
        font-size: 0.8em; /* 20% smaller than default */
    }
}

/* Hidden utility class */
.hidden {
    display: none !important;
}

/* ========================================
   QUIZ GAME CSS - BEGIN
   ======================================== */

/* Quiz Container */
.quiz-container {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 2rem;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

/* Timer */
.timer-container {
    margin-bottom: 1.5rem;
}

.timer-bar {
    width: 100%;
    height: 12px;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.timer-progress {
    height: 100%;
    background: linear-gradient(90deg, #28a745 0%, #ffc107 50%, #dc3545 100%);
    width: 100%;
    transition: width 1s linear;
}

/* Game Content Layout */
.game-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: start;
}

/* Question Section */
.question-section {
    order: 1;
}

.question-badge {
    background: #ffc107;
    color: #000;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: bold;
    text-transform: uppercase;
}

.question-title {
    font-size: 1.5rem;
    font-weight: bold;
    color: #fff;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

/* Options Grid */
.options-grid {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.option-button {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    padding: 1rem 1.25rem;
    border-radius: 12px;
    font-size: 1rem;
    text-align: left;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.option-button:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
}

.option-button.selected {
    background: rgba(255, 193, 7, 0.6);
    border-color: #ffc107;
    pointer-events: none;
}

.option-button.correct {
    background: rgba(40, 167, 69, 0.8);
    border-color: #28a745;
}

.option-button.incorrect {
    background: rgba(220, 53, 69, 0.8);
    border-color: #dc3545;
}

/* Feedback Message */
.feedback-message {
    text-align: center;
    font-size: 1.25rem;
    font-weight: bold;
    min-height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.feedback-message.success {
    color: #28a745;
}

.feedback-message.error {
    color: #dc3545;
}

.feedback-message.timeout {
    color: #ffc107;
}

/* Player Card */
.card-section {
    order: 2;
    display: flex;
    justify-content: center;
}

.player-card {
    background: linear-gradient(135deg, #006847 0%, #00843d 50%, #006847 100%);
    width: 16rem;
    height: 20rem;
    border-radius: 16px;
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border: 4px solid rgba(255, 255, 255, 0.6);
    position: relative;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5), inset 0 0 20px rgba(255, 255, 255, 0.4);
    transition: height 0.3s ease;
}

.player-card.hint-visible {
    height: 22.5rem;
}

.card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.card-badge {
    background: #dc3545;
    color: #fff;
    font-size: 0.5rem;
    font-weight: 900;
    padding: 0.125rem 0.25rem;
    border-radius: 2px;
    text-transform: uppercase;
    letter-spacing: -0.5px;
}

.card-edition {
    font-size: 0.6875rem;
    font-weight: bold;
    color: rgba(255, 255, 255, 0.8);
}

.card-image {
    width: 100%;
    height: 13rem;
    background: rgba(255, 255, 255, 0.2);
    border: 2px dashed rgba(255, 255, 255, 0.3);
    border-radius: 8px;
    overflow: hidden;
    margin-top: 0.5rem;
}

.card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card-footer {
    background: rgba(0, 0, 0, 0.3);
    border-radius: 4px;
    padding: 0.25rem;
    margin-top: 0.5rem;
    text-align: center;
}

/* Hint Button */
.hint-button {
    background: rgba(255, 193, 7, 0.9);
    border: none;
    color: #000;
    font-size: 0.75rem;
    font-weight: bold;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
    width: 100%;
}

.hint-button:hover {
    background: rgba(255, 193, 7, 1);
    transform: translateY(-1px);
}

/* Hint Text */
.hint-text {
    font-size: 0.625rem;
    color: rgba(255, 255, 255, 0.9);
    text-align: center;
    margin-top: 0.25rem;
    padding: 0.25rem;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 4px;
    line-height: 1.2;
}

/* Result Screen */
.result-title {
    font-size: 2.5rem;
    font-weight: bold;
    color: #ffc107;
    margin-bottom: 1rem;
}

.result-score {
    font-size: 1.5rem;
    font-weight: bold;
    color: #fff;
    margin-bottom: 2rem;
}

.result-badge {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 1.5rem;
    border-radius: 12px;
    margin: 0 auto 2rem;
}

.badge-title {
    font-size: 1.5rem;
    font-weight: 900;
    margin-bottom: 0.5rem;
}

.badge-desc {
    color: rgba(255, 255, 255, 0.8);
    font-size: 1rem;
    line-height: 1.5;
}

/* Responsive Design */
@media (max-width: 991px) {
    .game-content {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .question-section {
        order: 1;
    }
    
    .card-section {
        order: 2;
    }
    
    .player-card {
        width: 14rem;
        height: 17.5rem;
    }
    
    .card-image {
        height: 11rem;
    }
}

@media (max-width: 576px) {
    .quiz-container {
        padding: 1rem;
    }
    
    .question-title {
        font-size: 1.25rem;
    }
    
    .player-card {
        width: 12rem;
        height: 15rem;
    }
    
    .card-image {
        height: 9.5rem;
    }
    
    .result-title {
        font-size: 2rem;
    }
    
    .result-score {
        font-size: 1.25rem;
    }
}

/* Hide title when results are shown */
body.showing-results .hero h1 {
    display: none;
}

/* ========================================
   QUIZ GAME CSS - END
   ======================================== */