/* Site-wide tweaks layered on top of the exported CSS chunks. */

/* Home banner: move the logo block left so "Powering Future Tech" sits clear of the busy background,
   and give the left side a soft shade for legibility. */
@media (min-width: 992px) {
    .banner_textbox { padding-left: 4%; }
    .banner_section .video_box { position: relative; }
    .banner_section .video_box:after { content: ""; position: absolute; inset: 0; pointer-events: none;
        background: linear-gradient(90deg, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .35) 35%, rgba(0, 0, 0, 0) 65%); }
}
/* Banner video slightly darker overall. */
.banner_section .video_box video { filter: brightness(.55); }

/* Three banner CTAs (Conference, Hackathon, TALTalks) on one line on desktop, same colour. */
@media (min-width: 992px) {
    .banner_buttonbox a { padding: 10px 26px; margin-right: 14px; white-space: nowrap; }
}

/* About Us "From Problem to Possibility": theme green with orange icon chips instead of the default blue. */
.core_section.possibility_section { background-color: #107f44; background-image: linear-gradient(135deg, #107f44 0%, #0b6436 100%); }
.possibility_section .core_list span { background-color: #e8480c; }
.possibility_section .core_list:hover span { background-color: #fff; }
.possibility_section .core_list:hover span img { filter: brightness(0) saturate(100%) invert(33%) sepia(95%) saturate(2400%) hue-rotate(5deg); }

/* Partner "Visit website" links (About Us and Partners). */
.visit_link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; padding: 8px 18px; border: 1.5px solid #e8480c; border-radius: 50px; color: #e8480c; font-size: 14px; font-weight: 600; text-decoration: none; transition: background-color .2s, color .2s; }
.visit_link:hover { background-color: #e8480c; color: #fff; }
.visit_links { display: flex; flex-wrap: wrap; gap: 8px 10px; }
/* Button sits on the logo row, pushed to the right; wraps under the logo on narrow screens. */
.logo_row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; }
.logo_row > img { flex: 0 1 auto; min-width: 0; }
.logo_row .visit_link { margin-top: 0; flex-shrink: 0; }

/* Terms & Conditions link inside the registration consent checkboxes. */
.declaration_text a.terms_link { color: #e8480c; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Speaker slider: keep each photo inside its card (the exported CSS lets wide photos overflow and overlap). */
.testi_img { overflow: hidden; border-radius: 25px; }
.testi_img img { width: 100%; min-width: 0; max-width: 100%; aspect-ratio: 9 / 8; object-fit: cover; object-position: top center; display: block; }
@media (max-width: 575px) {
    .testimonials_box { padding: 24px 28px; }
    .testimonials_innerbox:hover { margin: 0 0 30px; }
}

/* Short pages (e.g. Sponsors "Coming Soon"): fill the screen so the footer sits at the bottom, no empty band below it. */
body.page_short { min-height: 100vh; display: flex; flex-direction: column; }
body.page_short > main { flex: 1 0 auto; display: flex; flex-direction: column; position: relative; }
body.page_short > main > .aboutus_page_mainbox { flex: 1 0 auto; display: flex; flex-direction: column; justify-content: center; }
body.page_short > main > .aboutus_page_mainbox > section { margin-bottom: 0 !important; padding: 80px 0 !important; }
body.page_short > footer { flex-shrink: 0; }

/* Terms & Conditions pages: keep the content above the site's decorative top gradient (main:before). */
.terms_page { position: relative; }
.terms_page > .container { position: relative; z-index: 2; }
/* Start the beige band right under the header, so the space above the title is beige, not white. */
main.terms_page::before { top: 0; }

/* Footer social icons in their real brand colours. */
.footer_social_iconbox { display: flex; flex-wrap: wrap; gap: 12px; }
.footer_social_iconbox a.social_icon { width: 42px; height: 42px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin: 0; box-shadow: 0 6px 14px #0000001f; transition: transform .2s, box-shadow .2s; }
.footer_social_iconbox a.social_icon:hover { transform: translateY(-3px); box-shadow: 0 10px 20px #00000029; }
.footer_social_iconbox a.social_icon svg { width: 22px; height: 22px; display: block; }
.footer_social_iconbox a.social_youtube svg { width: 26px; height: 26px; }
.social_facebook { background: #1877f2; }
.social_linkedin { background: #0a66c2; }
.social_instagram { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
.social_youtube { background: #ff0000; }

/* Date / venue strip: the website's green instead of the darker exported green. */
.about_datebox { background-color: #107f44; }

/* Partner cards: logo and "Visit" button(s) on one row; two buttons stack on the right. */
.logo_row { flex-wrap: nowrap; }
.logo_row > img { max-width: 62%; height: auto; }
.logo_row .visit_links { flex-direction: column; align-items: flex-end; gap: 8px; }
@media (max-width: 575px) {
    .logo_row { flex-wrap: wrap; }
    .logo_row > img { max-width: 100%; }
    .logo_row .visit_links { flex-direction: row; align-items: center; }
}

/* About Us intro: highlighted lead line and a Connect → Create → Transform chip row. */
.about_lead { position: relative; padding: 18px 22px 18px 26px; border-radius: 16px; background: linear-gradient(135deg, #fff2e9, #ffffff 70%); border-left: 5px solid #e8480c; box-shadow: 0 10px 26px #e8480c14; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.55; color: #14284a; }
.about_lead b { color: #107f44; }
.about_brand { font-family: Roboto-Black, sans-serif; letter-spacing: .02em; background: linear-gradient(90deg, #e8480c, #c00709); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cct_flow { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; vertical-align: middle; margin: 4px 2px; }
.cct_flow > span:not(.cct_arrow) { padding: 4px 14px; border-radius: 100px; color: #fff; font-weight: 800; font-size: 13.5px; letter-spacing: .08em; box-shadow: 0 4px 10px #0000001a; }
.cct_c { background: #e8480c; }
.cct_r { background: #107f44; }
.cct_t { background: #007bb7; }
.cct_arrow { color: #58657b; font-weight: 700; }

/* Home banner: SIU / SMCW / SUHRC website links as a vertical list on the right of the banner
   (white circle + red icon + name, with a thin white line on the left). Below the buttons on small screens. */
.banner_buttonbox:after { content: ""; display: table; clear: both; }
/* Measure from the banner text area, not from an intermediate row/column. */
@media (min-width: 992px) { .banner_textbox *:has(.banner_sites) { position: static; } }
.banner_sites { display: flex; flex-direction: column; gap: 22px; position: absolute; right: 3%; top: 50%; transform: translateY(-50%); padding: 6px 0 6px 28px; border-left: 1.5px solid rgba(255, 255, 255, .75); z-index: 6; }
.banner_sites a { display: flex; align-items: center; gap: 14px; color: #fff; text-decoration: none; font-family: Roboto-SemiBold, sans-serif; font-size: 17px; letter-spacing: .03em; }
.banner_sites .bs_icon { width: 54px; height: 54px; border-radius: 50%; background: #fff; display: grid; place-items: center; box-shadow: 0 8px 20px rgba(0, 0, 0, .3); transition: transform .2s, box-shadow .2s; }
.banner_sites .bs_icon svg { width: 26px; height: 26px; fill: #e41b15; }
.banner_sites a:hover .bs_icon { transform: scale(1.08); box-shadow: 0 10px 26px rgba(0, 0, 0, .4); }
.banner_sites a:hover .bs_name { color: #f9b48a; }
@media (max-width: 991px) {
    .banner_sites { position: static; transform: none; flex-direction: row; justify-content: center; flex-wrap: wrap; gap: 14px 22px; border-left: 0; padding: 0; margin-top: 10px; clear: both; }
    .banner_sites a { font-size: 15px; gap: 10px; }
    .banner_sites .bs_icon { width: 44px; height: 44px; }
    .banner_sites .bs_icon svg { width: 22px; height: 22px; }
}

/* Footer credit: Matrix Bricks logo. */
.craftedby_text { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.craftedby_text a.credit_logo img { height: 34px; width: auto; max-width: 140px; display: block; }
@media (max-width: 767px) { .craftedby_text { justify-content: center; } }

/* About Us intro: text and the event photo collage side by side (no overlap); image below the text on small screens. */
.about_hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 40px; align-items: stretch; margin-bottom: 40px; padding: 36px; border-radius: 26px;
    background: linear-gradient(135deg, #fff7f1 0%, #ffffff 55%, #eef7fc 100%); box-shadow: 0 18px 45px #1b253314; }
.about_hero_text { align-self: center; }
.about_hero_text .text16_black { margin-bottom: 0 !important; }
/* The image's left half is empty space; crop to the photo collage on the right. */
.about_hero_img { display: block; width: 100%; height: 100%; min-height: 420px; object-fit: cover; object-position: right center; border-radius: 20px; }
@media (max-width: 991px) {
    .about_hero { grid-template-columns: 1fr; gap: 24px; padding: 24px; }
    .about_hero_img { min-height: 0; height: 260px; object-position: 85% center; }
}

/* Registration forms: separate, required Terms & Conditions checkbox. */
.terms_accept .terms_accept_item { border: 1.5px solid #f6c3a6; background: #fff7f1; border-radius: 14px; padding: 14px 16px; }
.terms_accept .terms_accept_item:has(input:checked) { border-color: #107f44; background: #effaf4; }
/* Conference: payment details stay locked until the Terms & Conditions box is ticked. */
.payment_lock { position: relative; }
.payment_lock_note { display: none; }
.payment_lock.is_locked > :not(.payment_lock_note) { opacity: .35; filter: grayscale(.4); pointer-events: none; user-select: none; }
.payment_lock.is_locked .payment_lock_note { display: block; margin-bottom: 14px; padding: 10px 14px; border-radius: 10px; background: #fff4e5; color: #8a4b00; font-weight: 600; font-size: 14px; border: 1px dashed #f3c27a; }

/* Sponsors page: one row per sponsor, logo in the left column and details in the right. Managed in Admin -> Sponsors. */
.sponsor_list { display: grid; gap: 28px; max-width: 1080px; margin: 0 auto; }
.sponsor_card { display: grid; grid-template-columns: minmax(0, 36%) minmax(0, 1fr); border-radius: 22px; overflow: hidden; background: #fff; border: 1px solid #f0e4da; box-shadow: 0 14px 36px #1b253312; }
.sponsor_logo { position: relative; display: flex; align-items: center; justify-content: center; padding: 32px 36px; background: linear-gradient(160deg, #fff6ef 0%, #ffffff 55%, #f1f8fc 100%); border-right: 1px solid #f0e4da; }
.sponsor_logo:before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, #e8480c, #c00805); }
.sponsor_logo.is_dark { background: linear-gradient(160deg, #1b2233 0%, #263049 100%); border-right-color: transparent; }
.sponsor_logo img { width: 100%; max-width: 260px; max-height: 140px; height: auto; object-fit: contain; }
.sponsor_logo_text { font-family: Roboto-Black, sans-serif; font-size: 26px; color: #14284a; text-align: center; }
.sponsor_logo.is_dark .sponsor_logo_text { color: #fff; }
.sponsor_body { padding: 30px 38px 32px; }
.sponsor_category { display: inline-block; margin-bottom: 10px; padding: 4px 14px; border-radius: 100px; background: #fff2e9; color: #e8480c; font-weight: 700; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; }
.sponsor_name { margin: 0 0 2px; font-family: Roboto-Black, sans-serif; font-size: clamp(24px, 2.2vw, 30px); color: #c00805; line-height: 1.2; }
.sponsor_company { color: #58657b; font-weight: 600; font-size: 15px; }
.sponsor_text { margin: 14px 0 0; line-height: 1.7; color: #2b3445; }
.sponsor_head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 10px; }
.sponsor_head .sponsor_category { margin-bottom: 0; }
.sponsor_head .visit_link { margin-top: 0; flex-shrink: 0; }
@media (max-width: 767px) {
    .sponsor_card { grid-template-columns: 1fr; }
    .sponsor_logo { border-right: 0; border-bottom: 1px solid #f0e4da; padding: 26px 24px; }
    .sponsor_logo:before { right: 0; bottom: auto; width: auto; height: 4px; }
    .sponsor_body { padding: 24px 22px 28px; }
}

/* Registration forms: the T&C tick box unlocks only after the participant opens the T&C page. */
.terms_gate_note { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-bottom: 12px; padding: 12px 14px; border-radius: 12px; background: #fff4e5; border: 1px dashed #f3c27a; color: #8a4b00; font-size: 14px; font-weight: 600; }
.terms_gate_note.is_opened { background: #effaf4; border-color: #9fd8b8; color: #107f44; }
.terms_gate_note.is_nudged { animation: terms_nudge .45s ease; }
@keyframes terms_nudge { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }
.terms_open_btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 100px; background: #e8480c; color: #fff !important; font-weight: 700; font-size: 14px; text-decoration: none !important; white-space: nowrap; box-shadow: 0 6px 14px #e8480c33; }
.terms_open_btn:hover { background: #c93c08; }
.terms_gate_note.is_opened .terms_open_btn { background: #fff; color: #107f44 !important; border: 1.5px solid #107f44; box-shadow: none; }
.terms_accept.is_gated .terms_accept_item { opacity: .55; cursor: not-allowed; }
.terms_accept.is_gated .terms_accept_item input { pointer-events: none; }
