/* ==========================================================================
IP Week @ SG 2026 — homepage stylesheet
Upload this file to the live theme as: themes/default/css/homepage.css
========================================================================== */

/* Base */
html, body { background: #000; overflow-x: clip; }
body { margin: 0; padding: 0; font-family: 'Rubik', sans-serif; color: #e6e8ec; overflow-x: hidden; overflow-x: clip; }

/* Foundational resets (previously provided by theme stylesheet.css) */
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
a:hover { color: #E34A21; text-decoration: none; }

/* Header hero image wrapper (from sections/header-img.html include) */
.main-ipweek-header,
.header-img,
header { width: 100%; overflow: hidden; }
.main-ipweek-header img,
.header-img img,
header > img { width: 100%; height: auto; display: block; }

/* Partners block (white background sections in home.html) */
.partners-bg { background: #fff; color: #000; width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; overflow-x: hidden; box-sizing: border-box; }
.partners-bg img { max-width: 100%; height: auto; }
.partners-bg .container, .partners-bg .container-fluid, .partners-bg .row { max-width: 100%; }
.partners-bg .row { margin-left: 0; margin-right: 0; }

/* ===== Scoped under .ipw26 (dark theme) ===== */
.ipw26 { font-family: 'Rubik', sans-serif; color: #e6e8ec; line-height: 1.6; background: #000; }
.ipw26 h1, .ipw26 h2, .ipw26 h3, .ipw26 h4 { font-family: 'Rubik', sans-serif; color: #fff; }
.ipw26 a { color: inherit; }
.ipw26 .ipw-eyebrow { display: inline-block; font-size: .75rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: #E34A21; }
.ipw26 .ipw-btn { display: inline-flex; align-items: center; gap: .55rem; padding: .8rem 1.5rem; border-radius: 6px; font-weight: 500; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; border: 0; cursor: pointer; }
.ipw26 .ipw-btn-primary { background: #E34A21; color: #fff; box-shadow: 0 8px 24px -8px rgba(227,74,33,.55); }
.ipw26 .ipw-btn-primary:hover { background: #d96a4c; transform: translateY(-2px); color: #fff; }
.ipw26 .ipw-btn-ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.45); }
.ipw26 .ipw-btn-ghost:hover { background: rgba(255,255,255,.1); color: #fff; }
.ipw26 .ipw-btn-light { background: #fff; color: #000; }
.ipw26 .ipw-btn-light:hover { background: #f0f0f0; color: #000; transform: translateY(-2px); }

/* Navbar */
.ipw26 .ipw-nav { position: sticky; top: 0; z-index: 1000; padding: 1rem 0; backdrop-filter: blur(20px); background-color: rgba(0, 0, 0, 0.1); width: 100%; opacity: 1; }
.ipw26 .ipw-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; width: 100%; box-sizing: border-box; margin: 0 auto; }
.ipw26 .ipw-nav-brand { display: inline-flex; align-items: center; gap: .6rem; color: #fff; text-decoration: none; flex-shrink: 0; }
.ipw26 .ipw-nav-brand .ipw-nav-logo { display: block; height: 72px; width: auto; flex-shrink: 0; }
.ipw26 .ipw-nav-menu { display: flex; align-items: center; gap: .2rem; list-style: none; padding: .4rem .6rem; margin: 0; background: rgba(255,255,255,.12); border-radius: 5px; border: 0; }
.ipw26 .ipw-nav-menu > li { position: relative; }
.ipw26 .ipw-nav-menu > li > a, .ipw26 .ipw-nav-menu > li > button { display: inline-flex; align-items: center; gap: .35rem; padding: .5rem .85rem; color: rgba(255,255,255,.7); text-decoration: none; font-weight: 600; font-size: .85rem; border-radius: 6px; transition: color .2s ease, background .2s ease; background: transparent; border: 0; cursor: pointer; font-family: inherit; }
.ipw26 .ipw-nav-menu > li > a:hover, .ipw26 .ipw-nav-menu > li > button:hover, .ipw26 .ipw-nav-menu > li.is-open > button { color: #fff; background: transparent; }
.ipw26 .ipw-nav-menu > li > a.is-active { color: #fff; background: transparent; }
.ipw26 .ipw-nav-menu .caret { font-size: .65rem; transition: transform .2s ease; }
.ipw26 .ipw-nav-menu > li.is-open .caret { transform: rotate(180deg); }
.ipw26 .ipw-nav-dropdown { position: absolute; top: calc(100% + .35rem); left: 0; min-width: 220px; background: #fff; border-radius: 10px; box-shadow: 0 20px 50px -20px rgba(0,0,0,.55); padding: .5rem; list-style: none; margin: 0; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
.ipw26 .ipw-nav-menu > li.is-open .ipw-nav-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.ipw26 .ipw-nav-dropdown a { display: block; padding: .55rem .85rem; color: #1a1f2e; text-decoration: none; border-radius: 6px; font-size: .9rem; }
.ipw26 .ipw-nav-dropdown a:hover { background: rgba(227,74,33,.08); color: #E34A21; }
.ipw26 .ipw-nav-cta { background: linear-gradient(#000, #000) padding-box, linear-gradient(135deg, #00d4ff 0%, #2dd17a 35%, #f1c40f 65%, #ff4d4d 100%) border-box; color: #fff; padding: .75rem 1.25rem; border-radius: 0px; font-weight: 700; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; white-space: nowrap; border: 2px solid transparent; transition: transform .2s ease, filter .2s ease; }
.ipw26 .ipw-nav-cta:hover { color: #fff; transform: translateY(-1px); filter: brightness(1.15) saturate(1.2); }
.ipw26 .ipw-nav-right { display: flex; align-items: center; gap: 1rem; }
.ipw26 .ipw-nav-toggle { display: none; background: transparent; border: 1px solid rgba(255,255,255,.25); color: #fff; width: 40px; height: 40px; border-radius: 8px; cursor: pointer; align-items: center; justify-content: center; }
.ipw26 .ipw-nav-mobile-cta { display: none; }

/* Hero (image background) */
.ipw26 .ipw-hero { position: relative; display: flex; align-items: center; padding: 0; overflow: hidden; color: #fff; background: #000; margin: 0; }
.ipw26 .ipw-hero-inner { position: relative; padding: 3rem 2rem 4rem; border-radius: 0; overflow: hidden; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; isolation: isolate; }
.ipw26 .ipw-hero-bg { position: absolute; inset: 0; background-image: url('https://media.ipweek2025.sg/sites/ipweek/medias/IP_Week_IP_Marketplace_Stage6.jpg'); background-size: cover; background-position: center; opacity: .75; filter: saturate(1.15); z-index: 0; }
.ipw26 video.ipw-hero-bg { width: 100%; height: 100%; object-fit: cover; object-position: center; background: #000; background-image: none; z-index: 0; }
.ipw26 video.ipw-hero-bg.is-video { opacity: 1; filter: saturate(1.15) brightness(1.05) contrast(1.05); z-index: 0; }

/* CSS-art hero background */
.ipw26 .ipw-hero-bg.is-art {
background-image: none;
opacity: 1;
filter: none;
background-color: #1a0a14;
background-image:
conic-gradient(from -30deg at 50% 65%,
transparent 0deg, rgba(255,210,120,.12) 8deg, transparent 18deg,
transparent 50deg, rgba(255,210,120,.16) 62deg, transparent 75deg,
transparent 110deg, rgba(255,210,120,.10) 122deg, transparent 135deg,
transparent 210deg, rgba(255,210,120,.14) 222deg, transparent 235deg,
transparent 290deg, rgba(255,210,120,.16) 302deg, transparent 315deg),
radial-gradient(ellipse 55% 60% at 18% 35%, rgba(255,122,61,.85) 0%, transparent 65%),
radial-gradient(ellipse 40% 55% at 82% 55%, rgba(0,180,220,.70) 0%, transparent 65%),
radial-gradient(ellipse 50% 40% at 52% 92%, rgba(241,196,15,.60) 0%, transparent 65%),
radial-gradient(ellipse 30% 70% at 28% 80%, rgba(220,40,80,.55) 0%, transparent 70%),
radial-gradient(ellipse 35% 40% at 72% 22%, rgba(170,70,200,.55) 0%, transparent 70%),
radial-gradient(ellipse 25% 30% at 8% 60%, rgba(120,40,180,.55) 0%, transparent 70%),
linear-gradient(90deg,
rgba(60,15,25,.85) 0%, rgba(60,15,25,.85) 7%,
transparent 8%, transparent 22%,
rgba(40,12,20,.75) 23%, rgba(40,12,20,.75) 31%,
transparent 32%, transparent 60%,
rgba(40,12,20,.75) 61%, rgba(40,12,20,.75) 70%,
transparent 71%, transparent 87%,
rgba(55,18,28,.85) 88%, rgba(55,18,28,.85) 100%),
radial-gradient(ellipse 110% 90% at 50% 50%, #3a1a24 0%, #0b0608 95%);
background-blend-mode: screen, screen, screen, screen, screen, screen, screen, multiply, normal;
}
.ipw26 .ipw-hero-bg.is-art::after {
content: "";
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch' /><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0' /></filter><rect width='100%' height='100%' filter='url(%23n)' /></svg>");
mix-blend-mode: overlay;
opacity: .35;
pointer-events: none;
}

.ipw26 .ipw-hero-wordmark { position: relative; z-index: 2; display: block; width: 100%; max-width: 520px; height: auto; margin: 0 auto 1.25rem; }

.ipw26 .ipw-hero-inner > h1, .ipw26 .ipw-hero-inner > .ipw-hero-cta, .ipw26 .ipw-hero-inner > .ipw-hero-wordmark { position: relative; z-index: 2; }
.ipw26 .ipw-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.3) 60%, rgba(0,0,0,.6) 100%); pointer-events: none; z-index: 1; }
.ipw26 .ipw-hero .container { position: relative; z-index: 2; }
.ipw26 .ipw-hero h1 { font-size: clamp(1.6rem, 3.6vw, 3rem); font-weight: 900; line-height: 1.1; margin: 1rem 0 2rem; letter-spacing: -.02em; text-transform: uppercase; }
.ipw26 .ipw-hero h1 .accent { color: #fff; }
.ipw26 .ipw-hero .lead { font-size: clamp(1rem, 1.3vw, 1.15rem); color: rgba(255,255,255,.82); max-width: 640px; margin-bottom: 2rem; font-weight: 300; }
.ipw26 .ipw-hero-meta { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-bottom: 2rem; }
.ipw26 .ipw-hero-meta div { display: flex; align-items: center; gap: .55rem; color: rgba(255,255,255,.9); font-weight: 500; font-size: .95rem; }
.ipw26 .ipw-hero-meta i { color: #E34A21; }
.ipw26 .ipw-hero-cta { display: flex; flex-wrap: wrap; gap: .85rem; justify-content: center; }
.ipw26 .ipw-hero-cta .ipw-btn-light { padding: 1rem 2rem; border-radius: 2px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: .9rem; }

/* Sections (all dark) */
.ipw26 .ipw-section { padding: 4.5rem 0; background: #000; }

/* Programme tables — top-align cell content so titles sit flush with the top of the image */
.table.programme > tbody > tr > td { vertical-align: top; }

/* Accordion built on native <details>/<summary> — works without JS or data-* attributes (survives CMS sanitization).
   Dark luxurious aesthetic matching the IPW26 palette. */
.accordion { background: transparent; display: flex; flex-direction: column; gap: .75rem; }

.accordion details.accordion-item { position: relative; background: linear-gradient(140deg, #1a1f2e 0%, #0e1118 100%); border: 1px solid rgba(255,255,255,.08); border-radius: 6px; overflow: hidden; transition: border-color .3s ease, box-shadow .3s ease, transform .2s ease; }
.accordion details.accordion-item::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: transparent; transition: background .3s ease; pointer-events: none; }
.accordion details.accordion-item:hover { border-color: rgba(227,74,33,.4); transform: translateY(-1px); }
.accordion details.accordion-item:hover::before { background: rgba(227,74,33,.55); }
.accordion details.accordion-item[open] { background: linear-gradient(140deg, #1f2535 0%, #11151d 100%); border-color: rgba(227,74,33,.5); box-shadow: 0 24px 60px -28px rgba(227,74,33,.45); transform: translateY(0); }
.accordion details.accordion-item[open]::before { background: linear-gradient(180deg, #E34A21 0%, #ff7a3d 100%); }

.accordion details.accordion-item > summary { cursor: pointer; list-style: none; padding: 1.25rem 1.75rem; font-weight: 600; font-size: 1.02rem; color: #e6e8ec; display: flex; align-items: center; justify-content: space-between; gap: 1rem; transition: color .25s ease; letter-spacing: -.005em; }
.accordion details.accordion-item > summary::-webkit-details-marker { display: none; }
.accordion details.accordion-item > summary:hover { color: #fff; }
.accordion details.accordion-item[open] > summary { color: #fff; }

.accordion details.accordion-item > summary::after { content: ""; flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); background-color: transparent; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23e6e8ec' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m4 6 4 4 4-4'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: center; background-size: 16px; transition: transform .35s cubic-bezier(.4,0,.2,1), background-color .25s ease, border-color .25s ease; }
.accordion details.accordion-item:hover > summary::after { border-color: rgba(227,74,33,.6); }
.accordion details.accordion-item[open] > summary::after { background-color: #E34A21; border-color: #E34A21; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m4 6 4 4 4-4'/%3e%3c/svg%3e"); transform: rotate(180deg); }

.accordion .accordion-body { color: rgba(255,255,255,.78); background: transparent; padding: .25rem 1.75rem 1.75rem; line-height: 1.7; font-size: .95rem; border-top: 1px solid rgba(255,255,255,.06); margin-top: .5rem; padding-top: 1.5rem; }
.accordion .accordion-body img { max-width: 180px; height: auto; margin: 0 0 1.25rem; display: block; padding: .85rem 1.25rem; background: #fff; border-radius: 4px; }
.accordion .accordion-body p { margin-bottom: 1rem; }
.accordion .accordion-body p:last-child { margin-bottom: 0; }
.accordion .accordion-body a { color: #E34A21; text-decoration: none; border-bottom: 1px solid rgba(227,74,33,.35); transition: color .2s ease, border-color .2s ease; }
.accordion .accordion-body a:hover { color: #ff7a3d; border-bottom-color: #ff7a3d; }
.accordion .accordion-body a:has(> img) { border-bottom: 0; display: inline-block; }

/* Section-scoped CSS-art background — same palette as the hero, slightly toned down */
.ipw26 .ipw-section.is-art { position: relative; overflow: hidden; background: #1a0a14; }
.ipw26 .ipw-section.is-art::before {
content: "";
position: absolute; inset: 0; z-index: 0; pointer-events: none;
background-image:
radial-gradient(ellipse 55% 60% at 18% 35%, rgba(255,122,61,.70) 0%, transparent 65%),
radial-gradient(ellipse 40% 55% at 82% 55%, rgba(0,180,220,.55) 0%, transparent 65%),
radial-gradient(ellipse 50% 40% at 52% 92%, rgba(241,196,15,.50) 0%, transparent 65%),
radial-gradient(ellipse 30% 70% at 28% 80%, rgba(220,40,80,.45) 0%, transparent 70%),
radial-gradient(ellipse 35% 40% at 72% 22%, rgba(170,70,200,.45) 0%, transparent 70%),
radial-gradient(ellipse 25% 30% at 8% 60%, rgba(120,40,180,.45) 0%, transparent 70%),
radial-gradient(ellipse 110% 90% at 50% 50%, #3a1a24 0%, #0b0608 95%);
background-blend-mode: screen, screen, screen, screen, screen, screen, normal;
}
.ipw26 .ipw-section.is-art::after {
content: "";
position: absolute; inset: 0; z-index: 0; pointer-events: none;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch' /><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0' /></filter><rect width='100%' height='100%' filter='url(%23n)' /></svg>");
mix-blend-mode: overlay;
opacity: .3;
}
.ipw26 .ipw-section.is-art > .container,
.ipw26 .ipw-section.is-art > .container-fluid { position: relative; z-index: 1; }
.ipw26 .ipw-section h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; margin-bottom: 1rem; line-height: 1.15; letter-spacing: -.01em; }
.ipw26 .ipw-section .ipw-section-intro { font-size: 1.02rem; color: rgba(255,255,255,.7); max-width: 720px; margin: 0 auto 3rem; }

/* Photo gallery strip */
.ipw26 .ipw-photo-strip { padding-top: 0; margin: 0; }
.ipw26 .ipw-photo-strip img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/3; border-radius: 2px; transition: transform .35s ease; display: block; }
.ipw26 .ipw-photo-strip a { display: block; overflow: hidden; border-radius: 2px; }
.ipw26 .ipw-photo-strip a:hover img { transform: scale(1.05); }

/* Orange stats bar */
.ipw26 .ipw-stats-bar { background: #000; padding: 0; }
.ipw26 .ipw-stats-bar-fill { background: #E34A21; border-radius: 0; padding: 3.5rem 3rem; }

/* Flush hero + orange stats bar with the viewport edges on mobile */
.ipw26 .ipw-hero > .container,
.ipw26 .ipw-hero > .container > .row,
.ipw26 .ipw-stats-bar > .container,
.ipw26 .ipw-stats-bar > .container > .row {
--bs-gutter-x: 0;
}
.ipw26 .ipw-stats-bar-fill .col-4 { display: flex; justify-content: center; }
.ipw26 .ipw-stat-bar-item { text-align: left; color: #fff; padding: 0; display: inline-block; }
.ipw26 .ipw-stat-bar-item .num { font-size: clamp(2rem, 6vw, 3.5rem); font-weight: 600; line-height: 1; display: inline-flex; align-items: baseline; gap: .25rem; }
.ipw26 .ipw-stat-bar-item .num .gt { opacity: 1; margin-right: .25rem; font-weight: 500; }
.ipw26 .ipw-stat-bar-item .label { font-size: 1.1rem; letter-spacing: .02em; text-transform: none; opacity: 1; margin-top: .75rem; font-weight: 500; }

/* Welcome strip */
.ipw26 .ipw-welcome { padding: 4rem 0 1rem; text-align: center; }
.ipw26 .ipw-welcome h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 700; color: #fff; max-width: 720px; margin: 0 auto; }

/* Banner CTA card (existing reg banner) */
.ipw26 .ipw-banner-card { background: #11151d; border-radius: 2px; box-shadow: 0 30px 60px -30px rgba(0,0,0,.55); overflow: hidden; border: 1px solid rgba(255,255,255,.06); }
.ipw26 .ipw-banner-card a { display: block; }
.ipw26 .ipw-banner-card img { width: 100%; height: auto; display: block; transition: transform .4s ease; }
.ipw26 .ipw-banner-card a:hover img { transform: scale(1.02); }

/* Cross/plus-shape 4-card grid — fills col-10 */
.ipw26 .ipw-quick-grid { padding: 3rem 0 6rem; }
.ipw26 .ipw-cross-grid { position: relative; width: 100%; height: 660px; margin: 0 auto; }
.ipw26 .ipw-qcard.ipw-qcard-top { top: 0; left: 34%; } /* Visiting Singapore — top centre */
.ipw26 .ipw-qcard.ipw-qcard-left { top: 170px; left: 0; } /* About IP Week — mid left */
.ipw26 .ipw-qcard.ipw-qcard-right { top: 170px; left: 68%; } /* Partners — mid right */
.ipw26 .ipw-qcard.ipw-qcard-bottom { top: 340px; left: 34%; } /* Programme — bottom centre */

.ipw26 .ipw-qcard { position: absolute; width: 32%; height: 320px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 1.5rem; overflow: hidden; border-radius: 2px; padding: 2.25rem 2.5rem; text-decoration: none; color: #fff; background-color: #0a0a0f; background-image: radial-gradient(ellipse 90% 85% at 92% 95%, rgba(228,160,55,.35) 0%, rgba(228,160,55,.18) 30%, rgba(228,160,55,.06) 60%, transparent 95%), radial-gradient(ellipse 85% 80% at 92% 15%, rgba(206,80,40,.4) 0%, rgba(206,80,40,.18) 30%, rgba(206,80,40,.05) 60%, transparent 95%), radial-gradient(ellipse 110% 100% at 18% 22%, rgba(95,42,145,.5) 0%, rgba(95,42,145,.28) 28%, rgba(95,42,145,.1) 55%, transparent 90%); border: 1px solid rgba(255,255,255,.1); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; text-align: left; }
.ipw26 .ipw-qcard:hover { transform: translateY(-4px); border-color: rgba(227,74,33,.45); color: #fff; box-shadow: 0 24px 50px -25px rgba(0,0,0,.7); }
.ipw26 .ipw-qcard .qcard-title { display: block; width: 100%; font-size: 1.5rem; font-weight: 700; line-height: 1.25; margin: 0; padding: 0; color: #fff; letter-spacing: .01em; text-align: left; }
.ipw26 .ipw-qcard .view-details { display: inline-flex; align-items: center; gap: .6rem; color: #fff; font-weight: 600; font-size: .9rem; margin: 0; }
.ipw26 .ipw-qcard .view-details .arrow-circle { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid rgba(255,255,255,.7); font-size: .75rem; transition: background .2s ease, border-color .2s ease, transform .25s ease; flex-shrink: 0; }
.ipw26 .ipw-qcard:hover .view-details .arrow-circle { background: #E34A21; border-color: #E34A21; transform: translateX(3px); }

/* Guest of honour — Bootstrap col-6 / col-6 split, mirrors .feat-img pattern */
.ipw26 .ipw-goh-section { padding: 4rem 0; background: transparent; }
.ipw26 .ipw-goh-h > [class*="col-"]:first-child { padding-right: 2.5rem; padding-left: 0; }
.ipw26 .ipw-goh-h .goh-img { width: 100%; max-width: 420px; aspect-ratio: 1/1; background-size: cover; background-position: center top; background-color: #11151d; border-radius: 2px; box-shadow: 0 24px 60px -24px rgba(0,0,0,.6); margin: 0; display: block; object-fit: cover; }
.ipw26 .ipw-goh-h .goh-body { padding: 2rem 0; align-self: center; }
.ipw26 .ipw-goh-h .goh-headline { font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: 900; line-height: 1.05; letter-spacing: -.01em; margin: 0 0 1rem; color: #fff; text-transform: uppercase; white-space: nowrap; }
.ipw26 .ipw-goh-h h3 { font-size: 1.05rem; font-weight: 700; margin: 0 0 .85rem; color: #fff; }
.ipw26 .ipw-goh-h .goh-role { color: rgba(255,255,255,.65); font-weight: 500; font-size: .9rem; line-height: 1.55; margin: 0; }

/* Feature cards (Discover Singapore / Our Venue) */
.ipw26 .ipw-feature { display: flex; align-items: stretch; gap: 0; border-radius: 2px; overflow: hidden; background: linear-gradient(140deg, #1a1f2e 0%, #0e1118 100%); border: 1px solid rgba(255,255,255,.06); margin-bottom: 1.5rem; }
.ipw26 .ipw-feature.reverse { flex-direction: row-reverse; }
.ipw26 .ipw-feature .feat-body { flex: 1 1 50%; padding: 2.5rem; display: flex; flex-direction: column; justify-content: center; }
.ipw26 .ipw-feature .feat-img { flex: 1 1 50%; min-height: 280px; background-size: cover; background-position: center; }
.ipw26 .ipw-feature h2 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); font-weight: 800; margin: .5rem 0 1rem; }
.ipw26 .ipw-feature p { color: rgba(255,255,255,.8); font-size: .95rem; margin-bottom: 1.5rem; }

/* Feature rows — Bootstrap col-6 / col-6 with big headlines */
.ipw26 .ipw-feature-row { margin-bottom: 0; --bs-gutter-x: 0; align-items: center; }
.ipw26 .ipw-feature-row > [class*="col-"]:first-child { padding-left: 0; padding-right: 2.5rem; }
.ipw26 .ipw-feature-row > [class*="col-"]:last-child { padding-left: 2.5rem; padding-right: 0; }
.ipw26 .ipw-feature-row.flex-md-row-reverse > [class*="col-"]:first-child { padding-left: 2.5rem; padding-right: 0; }
.ipw26 .ipw-feature-row.flex-md-row-reverse > [class*="col-"]:last-child { padding-left: 0; padding-right: 2.5rem; }
.ipw26 .ipw-feature-row .feat-body { padding: 2rem 0; align-self: center; }
.ipw26 .ipw-feature-row.flex-md-row-reverse .feat-body { padding: 2rem 0; align-self: center; }
.ipw26 .ipw-feature-row .feat-img { width: 100%; min-height: 320px; background-size: cover; background-position: center; border-radius: 2px; box-shadow: 0 24px 60px -24px rgba(0,0,0,.6); object-fit: cover; }
.ipw26 .ipw-feature-row h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); font-weight: 900; line-height: 1.05; letter-spacing: -.01em; text-transform: uppercase; color: #fff; margin: 0 0 1.25rem; }
.ipw26 .ipw-feature-row p { color: rgba(255,255,255,.7); font-size: 1rem; margin-bottom: 1.5rem; }

/* Partner-with-us — dark card */
.ipw26 .ipw-partner-with { background: #11151d; border-radius: 2px; padding: 3rem; box-shadow: 0 24px 50px -28px rgba(0,0,0,.55); border: 1px solid rgba(255,255,255,.06); color: #e6e8ec; }
.ipw26 .ipw-partner-with .icon-wrap { width: 80px; height: 80px; border-radius: 50%; background: rgba(227,74,33,.15); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1rem; }
.ipw26 .ipw-partner-with .icon-wrap i { color: #E34A21; font-size: 2rem; }
.ipw26 .ipw-partner-with h2 { color: #fff; }
.ipw26 .ipw-partner-with > p { color: rgba(255,255,255,.7); }
.ipw26 .ipw-partner-benefits { list-style: none; padding: 0; margin: 1.5rem 0; }
.ipw26 .ipw-partner-benefits li { padding: .5rem 0 .5rem 2rem; position: relative; color: rgba(255,255,255,.75); }
.ipw26 .ipw-partner-benefits li::before { content: "\f00c"; font-family: "Font Awesome 5 Free", "FontAwesome"; font-weight: 900; position: absolute; left: 0; top: .5rem; color: #E34A21; }

/* Partners — tiered grid (dark) */
.ipw26 .ipw-tier { margin-bottom: 2.5rem; }
.ipw26 .ipw-tier-head { text-align: center; margin-bottom: 1.5rem; }
.ipw26 .ipw-tier-head .tier-label { display: inline-block; font-size: .75rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.7); padding: .35rem 1rem; background: #000; position: relative; z-index: 2; }
.ipw26 .ipw-tier-head .tier-label.platinum { color: #fff; }
.ipw26 .ipw-tier-head .tier-label.gold { color: #e6b840; }
.ipw26 .ipw-tier-head .tier-label.silver { color: #c5cad1; }
.ipw26 .ipw-tier-head .tier-divider { height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.12) 30%, rgba(255,255,255,.12) 70%, transparent); margin-top: -.85rem; }
.ipw26 .ipw-logo-cell { display: flex; align-items: center; justify-content: center; padding: 1rem; background: #fff; border-radius: 2px; transition: transform .25s ease, box-shadow .25s ease; min-height: 110px; }
.ipw26 .ipw-logo-cell:hover { transform: translateY(-3px); box-shadow: 0 14px 28px -16px rgba(227,74,33,.35); }
.ipw26 .ipw-logo-cell img { max-width: 100%; max-height: 80px; height: auto; width: auto; object-fit: contain; }
.ipw26 .ipw-logo-cell.tier-platinum { min-height: 160px; padding: 1.5rem 2rem; }
.ipw26 .ipw-logo-cell.tier-platinum img { max-height: 110px; }
.ipw26 .ipw-logo-cell.tier-gold { min-height: 140px; padding: 1.25rem 1.5rem; }
.ipw26 .ipw-logo-cell.tier-gold img { max-height: 95px; }

/* Singapore Passion banner */
.ipw26 .ipw-passion { position: relative; min-height: 380px; display: flex; align-items: flex-end; padding: 3rem 0; overflow: hidden; background: #000; border-radius: 2px; margin: 1.5rem 0; }
.ipw26 .ipw-passion.is-feat { aspect-ratio: 16/9; min-height: 0; padding: 0; align-items: stretch; border-radius: 4px; }
.ipw26 .ipw-passion-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(1.15); }
.ipw26 .ipw-passion .container { position: relative; z-index: 2; }
.ipw26 .ipw-passion .act { font-size: .7rem; font-weight: 700; letter-spacing: .32em; color: rgba(255,255,255,.65); margin-bottom: .35rem; display: block; }
.ipw26 .ipw-passion h2 { font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 900; color: #fff; letter-spacing: -.01em; line-height: 1; margin: 0; text-transform: uppercase; }
.ipw26 .ipw-passion h2 .accent { color: #E34A21; }

/* GFIP Speakers */
.ipw26 .ipw-gfip-head { text-align: center; margin-bottom: 2.5rem; }
.ipw26 .ipw-gfip-head h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); font-weight: 900; color: #fff; letter-spacing: .04em; }
.ipw26 .ipw-gfip-head h2 .reg { font-size: .55em; vertical-align: super; opacity: .7; }
.ipw26 .ipw-speaker { background: linear-gradient(140deg, #1a1f2e 0%, #0e1118 100%); border-radius: 2px; overflow: hidden; transition: transform .25s ease; height: 100%; display: flex; flex-direction: column; }
.ipw26 .ipw-speaker:hover { transform: translateY(-4px); border-color: rgba(227,74,33,.35); }
.ipw26 .ipw-speaker .photo { aspect-ratio: 1/1; background-size: cover; background-position: center; background-color: #11151d; }
.ipw26 .ipw-speaker .body { padding: 1.25rem 1.25rem 1.5rem; }
.ipw26 .ipw-speaker .name { font-size: 1.05rem; font-weight: 700; color: #fff; margin-bottom: .25rem; }
.ipw26 .ipw-speaker .role { font-size: .85rem; color: rgba(255,255,255,.65); font-weight: 300; }

/* Speaker detail modal */
#speakerModal { font-family: 'Rubik', sans-serif; color: #e6e8ec; }
#speakerModal .modal-content { background: #11151d; color: #e6e8ec; border: 1px solid rgba(255,255,255,.08); border-radius: 4px; box-shadow: 0 30px 60px -20px rgba(0,0,0,.6); }
#speakerModal .modal-body { padding: 1.75rem 1.5rem; }
#speakerModal .modal-footer { border-top: 1px solid rgba(255,255,255,.08); padding: 1rem 1.5rem; }
#speakerModal .modal-footer .btn-secondary { background: transparent; border: 1px solid rgba(255,255,255,.4); color: #fff; padding: .5rem 1.25rem; border-radius: 2px; font-weight: 500; transition: background .2s ease, border-color .2s ease; }
#speakerModal .modal-footer .btn-secondary:hover { background: rgba(255,255,255,.08); border-color: #fff; color: #fff; }

#speakerModal .speaker-image-wrapper { background: #1a1f2e; border-radius: 2px; overflow: hidden; }
#speakerModal .speaker-image { width: 100%; height: auto; display: block; }
#speakerModal .speaker-name { color: #fff; font-weight: 700; font-size: 1.05rem; line-height: 1.25; }
#speakerModal .speaker-company { color: rgba(255,255,255,.65); font-size: .9rem; margin-top: .25rem; }

#speakerModal .modal-title { color: #fff; font-weight: 800; font-size: clamp(1.4rem, 2.4vw, 1.85rem); letter-spacing: -.005em; line-height: 1.2; margin-bottom: .5rem; text-align: left; }
#speakerModal .speaker-position { color: rgba(255,255,255,.75); font-weight: 500; font-size: .95rem; line-height: 1.5; text-align: left !important; }

#speakerModal .speaker-involvement-block { padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.08); }
#speakerModal .speaker-involvement-title { color: #fff; font-weight: 700; font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; margin-bottom: .5rem; }
#speakerModal .speaker-involvement-list ul { list-style: none; padding: 0; margin: 0; }
#speakerModal .speaker-involvement-list li { padding: .55rem 0; border-top: 1px solid rgba(255,255,255,.06); color: rgba(255,255,255,.78); font-size: .9rem; }
#speakerModal .speaker-involvement-list li:first-child { border-top: 0; }

#speakerModal .speaker-description { color: rgba(255,255,255,.8); line-height: 1.65; font-size: .95rem; }
#speakerModal .speaker-description p { margin-bottom: .85rem; }
#speakerModal .speaker-description p:last-child { margin-bottom: 0; }
#speakerModal .speaker-description a { color: #E34A21; }
#speakerModal .speaker-description a:hover { color: #ff7a3d; }

/* Mobile: stack everything left-aligned and keep the speaker image rectangular. */
@media (max-width: 767.98px) {
    #speakerModal .speaker-image-wrapper,
    #speakerModal .speaker-image { border-radius: 2px !important; border: 0 !important; }
    #speakerModal .modal-title,
    #speakerModal .speaker-name,
    #speakerModal .speaker-company,
    #speakerModal .speaker-position,
    #speakerModal .speaker-description,
    #speakerModal .speaker-involvement-title,
    #speakerModal .speaker-involvement-list,
    #speakerModal .speaker-involvement-list li { text-align: left !important; }
}

/* Stat card */
.ipw26 .ipw-stat-card { display: grid; grid-template-columns: 1.4fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 0; height: 100%; min-height: 280px; background: #1f0a14; border-radius: 2px; overflow: hidden; border: 1px solid rgba(255,255,255,.08); }
.ipw26 .ipw-stat-card .stat-num { grid-column: 1; grid-row: 1 / span 2; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.5rem; border-right: 1px solid rgba(255,255,255,.08); background: #2a0d18; }
.ipw26 .ipw-stat-card .stat-num .num { font-size: clamp(2.4rem, 5vw, 3.6rem); font-weight: 800; color: #fff; line-height: 1; }
.ipw26 .ipw-stat-card .stat-num .label { font-size: 1.1rem; font-weight: 700; color: #fff; margin-top: .35rem; }
.ipw26 .ipw-stat-card .stat-logo { display: flex; align-items: center; justify-content: center; padding: 1.25rem; color: rgba(255,255,255,.6); font-weight: 500; font-size: .9rem; border-bottom: 1px solid rgba(255,255,255,.08); border-right: 1px solid rgba(255,255,255,.08); }
.ipw26 .ipw-stat-card .stat-logo:nth-child(3),
.ipw26 .ipw-stat-card .stat-logo:nth-child(5) { border-right: 0; }
.ipw26 .ipw-stat-card .stat-logo:nth-child(4),
.ipw26 .ipw-stat-card .stat-logo:nth-child(5) { border-bottom: 0; }

/* Featured speakers mini list (photo left, light text on dark backdrop) */
.ipw26 .ipw-speakers-list-head { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; color: #fff; margin: 0 0 1.5rem; }
.ipw26 .ipw-speaker-mini { display: flex; flex-direction: row; align-items: center; gap: 1rem; text-align: left; }
.ipw26 .ipw-speaker-mini .photo { width: 56px; height: 56px; border-radius: 50%; background-size: cover; background-position: center; background-color: #11151d; flex-shrink: 0; border: 1px solid rgba(255,255,255,.15); }
.ipw26 .ipw-speaker-mini .name { font-size: 1rem; font-weight: 700; color: #fff; line-height: 1.2; }
.ipw26 .ipw-speaker-mini .org { font-size: .9rem; color: rgba(255,255,255,.7); margin-top: .15rem; }

/* Day heading + session cards */
.ipw26 .ipw-day-block { margin-top: 3.5rem; }
.ipw26 .ipw-day-head { font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 900; color: #fff; text-align: center; margin: 0 0 2rem; letter-spacing: -.01em; }

.ipw26 .ipw-day-photo { width: 100%; aspect-ratio: 16/10; background-size: cover; background-position: center; background-color: #11151d; border-radius: 2px; }

/* Session card (photo on top, title + More Details below) */
.ipw26 .ipw-session-card { background: #11151d; border-radius: 2px; overflow: hidden; height: 100%; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.08); }
.ipw26 .ipw-session-card .photo { width: 100%; aspect-ratio: 4/3; background-size: cover; background-position: center; background-color: #11151d; }
.ipw26 .ipw-session-card .body { padding: 1.5rem 1.75rem 1.75rem; display: flex; flex-direction: column; gap: 1.5rem; flex-grow: 1; }
.ipw26 .ipw-session-card .title { font-size: 1rem; font-weight: 700; color: #fff; line-height: 1.4; margin: 0; }
.ipw26 .ipw-session-card .more-details { display: inline-flex; align-items: center; gap: .75rem; color: #fff; text-decoration: none; font-weight: 600; font-size: .95rem; margin-top: auto; position: relative; isolation: isolate; }
.ipw26 .ipw-session-card .more-details .arrow-circle { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,255,255,.7); font-size: .85rem; flex-shrink: 0; transition: transform .45s cubic-bezier(.4,0,.2,1), background .3s ease, color .3s ease, border-color .3s ease; will-change: transform; }
.ipw26 .ipw-session-card .more-details .md-label { transition: transform .45s cubic-bezier(.4,0,.2,1); will-change: transform; }
.ipw26 .ipw-session-card .more-details:hover .arrow-circle { transform: translateX(115px); background: #fff; color: #000; border-color: #fff; }
.ipw26 .ipw-session-card .more-details:hover .md-label { transform: translateX(-50px); }

/* Expert Insights From Our Speakers */
.ipw26 .ipw-insights-section { background: #000; }
.ipw26 .ipw-insights-intro { padding-right: 1rem; }
.ipw26 .ipw-insights-head { font-size: clamp(2rem, 3.6vw, 3rem); font-weight: 900; color: #fff; line-height: 1.05; letter-spacing: -.01em; margin: 0 0 2.5rem; text-shadow: -2px 0 rgba(0,212,255,.35), 2px 0 rgba(255,80,80,.30); }
.ipw26 .ipw-insights-stat { margin-bottom: 2rem; }
.ipw26 .ipw-insights-stat .num { font-size: clamp(2.4rem, 5vw, 3.6rem); font-weight: 900; color: rgba(255,255,255,.18); line-height: 1; }
.ipw26 .ipw-insights-stat .label { font-size: .85rem; color: rgba(255,255,255,.6); letter-spacing: .08em; margin-top: .35rem; }
.ipw26 .ipw-insights-more { display: inline-block; padding: .85rem 1.6rem; background: linear-gradient(#000, #000) padding-box, linear-gradient(135deg, #00d4ff 0%, #2dd17a 35%, #f1c40f 65%, #ff4d4d 100%) border-box; border: 2px solid transparent; color: #fff; text-decoration: none; font-size: .9rem; font-weight: 500; border-radius: 2px; transition: filter .2s ease; }
.ipw26 .ipw-insights-more:hover { color: #fff; filter: brightness(1.15) saturate(1.2); }

.ipw26 .ipw-insights-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; align-items: start; }
.ipw26 .ipw-insights-grid .grid-col { display: flex; flex-direction: column; gap: 1.5rem; }
.ipw26 .ipw-insights-grid .grid-col:nth-child(1) { padding-top: 200px; }
.ipw26 .ipw-insights-grid .grid-col:nth-child(2) { padding-top: 0; }
.ipw26 .ipw-insights-grid .grid-col:nth-child(3) { padding-top: 80px; }

.ipw26 .ipw-insight-card { position: relative; background: #11151d; border-radius: 2px; overflow: hidden; border: 1px solid rgba(255,255,255,.06); }
.ipw26 .ipw-insight-card .photo { width: 100%; aspect-ratio: 1/1.05; background-size: cover; background-position: center top; background-color: #1a1f2e; }
.ipw26 .ipw-insight-card .icon-circle { position: absolute; left: 1.25rem; bottom: 5.25rem; width: 40px; height: 40px; border-radius: 50%; background: #0a0d14; border: 1px solid rgba(255,255,255,.12); display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: .9rem; z-index: 2; }
.ipw26 .ipw-insight-card .body { padding: 1.25rem 1.25rem 1.5rem; }
.ipw26 .ipw-insight-card .name { font-size: 1.05rem; font-weight: 700; color: #fff; line-height: 1.2; }
.ipw26 .ipw-insight-card .org { font-size: .85rem; color: rgba(255,255,255,.6); margin-top: .25rem; }

@media (max-width: 991.98px) {
.ipw26 .ipw-insights-grid .grid-col:nth-child(1),
.ipw26 .ipw-insights-grid .grid-col:nth-child(3) { padding-top: 0; }
.ipw26 .ipw-insights-head { text-shadow: -1px 0 rgba(0,212,255,.35), 1px 0 rgba(255,80,80,.30); }
}

/* Contact section (form + map) */
.ipw26 .ipw-contact-section { background: #000; }
.ipw26 .ipw-contact-head { font-size: clamp(2rem, 4vw, 3rem); font-weight: 900; color: #fff; line-height: 1.1; letter-spacing: -.01em; margin: 0 0 2.5rem; }
.ipw26 .ipw-contact-form .form-group { margin-bottom: 1.5rem; }
.ipw26 .ipw-contact-form label { display: block; font-size: .85rem; color: rgba(255,255,255,.6); margin-bottom: .35rem; }
.ipw26 .ipw-contact-form input,
.ipw26 .ipw-contact-form textarea { width: 100%; background: transparent; border: 0; border-bottom: 2px solid rgba(255,255,255,.55); padding: .5rem 0; color: #fff; font-family: inherit; font-size: .95rem; outline: none; transition: border-color .2s ease, box-shadow .2s ease; border-radius: 0; }
.ipw26 .ipw-contact-form input:hover,
.ipw26 .ipw-contact-form textarea:hover { border-bottom-color: rgba(255,255,255,.8); }
.ipw26 .ipw-contact-form input:focus,
.ipw26 .ipw-contact-form textarea:focus { border-bottom-color: #E34A21; box-shadow: 0 2px 0 0 #E34A21; }
.ipw26 .ipw-contact-form textarea { resize: vertical; min-height: 60px; }
.ipw26 .ipw-contact-submit { display: block; width: 100%; padding: .95rem 1.5rem; background: linear-gradient(#000, #000) padding-box, linear-gradient(135deg, #00d4ff 0%, #2dd17a 35%, #f1c40f 65%, #ff4d4d 100%) border-box; border: 2px solid transparent; color: #fff; font-size: .9rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; border-radius: 2px; cursor: pointer; transition: filter .2s ease; margin-top: 1.5rem; font-family: inherit; }
.ipw26 .ipw-contact-submit:hover { filter: brightness(1.15) saturate(1.2); }
.ipw26 .ipw-contact-map { width: 100%; height: 100%; min-height: 400px; border-radius: 2px; overflow: hidden; background: #11151d; }
.ipw26 .ipw-contact-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* CakePHP-rendered [form name="..."] shortcode on the homepage */
.ipw26 form[class^="form-"] .form-group,
.ipw26 form[class*=" form-"] .form-group { margin: 0 0 1.5rem; }
.ipw26 form[class^="form-"] .form-group.mt-3,
.ipw26 form[class*=" form-"] .form-group.mt-3 { margin-top: 0 !important; }
.ipw26 form[class^="form-"] label,
.ipw26 form[class*=" form-"] label { display: block; font-size: .85rem; color: rgba(255,255,255,.6); margin-bottom: .35rem; font-weight: 400; }
.ipw26 form[class^="form-"] .form-control,
.ipw26 form[class*=" form-"] .form-control { width: 100%; background: transparent; border: 0; border-bottom: 2px solid rgba(255,255,255,.55); padding: .5rem 0; color: #fff; font-family: inherit; font-size: .95rem; outline: none; transition: border-color .2s ease, box-shadow .2s ease; border-radius: 0; box-shadow: none; }
.ipw26 form[class^="form-"] .form-control:hover,
.ipw26 form[class*=" form-"] .form-control:hover { border-bottom-color: rgba(255,255,255,.8); }
.ipw26 form[class^="form-"] .form-control:focus,
.ipw26 form[class*=" form-"] .form-control:focus { border-bottom-color: #E34A21; box-shadow: 0 2px 0 0 #E34A21; background: transparent; color: #fff; }
.ipw26 form[class^="form-"] textarea.form-control,
.ipw26 form[class*=" form-"] textarea.form-control { resize: vertical; min-height: 60px; }
.ipw26 form[class^="form-"] .btn-primary,
.ipw26 form[class*=" form-"] .btn-primary { display: block; width: 100%; padding: .95rem 1.5rem; background: linear-gradient(#000, #000) padding-box, linear-gradient(135deg, #00d4ff 0%, #2dd17a 35%, #f1c40f 65%, #ff4d4d 100%) border-box; border: 2px solid transparent; color: #fff; font-size: .9rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; border-radius: 2px; cursor: pointer; transition: filter .2s ease; margin-top: 1.5rem; font-family: inherit; }
.ipw26 form[class^="form-"] .btn-primary:hover,
.ipw26 form[class*=" form-"] .btn-primary:hover { filter: brightness(1.15) saturate(1.2); background: linear-gradient(#000, #000) padding-box, linear-gradient(135deg, #00d4ff 0%, #2dd17a 35%, #f1c40f 65%, #ff4d4d 100%) border-box; color: #fff; }

/* Back-to-top floating button */
#backToTopBtn {
position: fixed !important;
bottom: 1.5rem !important;
right: 1.5rem !important;
top: auto !important;
left: auto !important;
width: 48px !important;
height: 48px !important;
min-width: 0 !important;
min-height: 0 !important;
max-width: 48px !important;
max-height: 48px !important;
padding: 0 !important;
margin: 0 !important;
border: 0 !important;
border-radius: 50% !important;
background: #E34A21 !important;
cursor: pointer;
z-index: 999 !important;
display: none !important;
align-items: center;
justify-content: center;
overflow: hidden;
transition: background 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
opacity: 0;
}
#backToTopBtn:hover { background: #ff5a2e !important; transform: translateY(-2px); }
#backToTopBtn.show { display: inline-flex !important; opacity: 1; }
#backToTopBtn img {
width: 24px !important;
height: 24px !important;
max-width: 24px !important;
max-height: 24px !important;
object-fit: contain !important;
display: block !important;
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
filter: brightness(0) invert(1) opacity(.7);
transition: filter .2s ease;
}
#backToTopBtn:hover img { filter: brightness(0) invert(1) opacity(1); }

/* Footer */
.ipw26 .ipw-footer { background: #000; padding: 2.5rem 0 2rem; border-top: 1px solid rgba(255,255,255,.06); }
.ipw26 .ipw-footer-nav { list-style: none; padding: 0; margin: 0 0 1.5rem; display: flex; justify-content: center; flex-wrap: wrap; gap: .75rem 2rem; }
.ipw26 .ipw-footer-nav a { color: rgba(255,255,255,.55); text-decoration: none; font-size: .9rem; font-weight: 500; transition: color .2s ease; }
.ipw26 .ipw-footer-nav a.is-active, .ipw26 .ipw-footer-nav a:hover { color: #fff; }
.ipw26 .ipw-footer-social { display: flex; justify-content: center; gap: .75rem; }
.ipw26 .ipw-footer-social a { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.08); display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: .9rem; transition: background .2s ease; }
.ipw26 .ipw-footer-social a:hover { background: rgba(255,255,255,.2); }

/* FAQ section */
.ipw26 .ipw-faq-section { background: #000; }
.ipw26 .ipw-faq-head { font-size: clamp(2rem, 4vw, 3rem); font-weight: 900; color: #fff; line-height: 1.05; letter-spacing: -.01em; margin: 0 0 2rem; }
.ipw26 .ipw-faq-photo { width: 100%; aspect-ratio: 4/3; background-size: cover; background-position: center; background-color: #11151d; border-radius: 2px; }
.ipw26 .ipw-faq-list { display: flex; flex-direction: column; gap: .75rem; }
.ipw26 .ipw-faq-item { background: #11151d; border-radius: 2px; border: 1px solid rgba(255,255,255,.06); overflow: hidden; transition: border-color .2s ease; }
.ipw26 .ipw-faq-item[open] { border-color: rgba(227,74,33,.6); }
.ipw26 .ipw-faq-item summary { list-style: none; cursor: pointer; padding: 1.15rem 1.4rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: #fff; font-weight: 700; font-size: 1rem; }
.ipw26 .ipw-faq-item summary::-webkit-details-marker { display: none; }
.ipw26 .ipw-faq-item summary::after { content: "+"; flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4); display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 1.15rem; line-height: 1; font-weight: 500; }
.ipw26 .ipw-faq-item[open] summary::after { content: "\2212"; background: #fff; color: #000; border-color: #fff; }
.ipw26 .ipw-faq-item .answer { padding: 0 1.4rem 1.4rem; color: rgba(255,255,255,.65); font-size: .9rem; line-height: 1.65; }

/* Tickets section */
.ipw26 .ipw-tickets-section { background: radial-gradient(ellipse 70% 40% at 28% -10%, rgba(120,40,180,.30) 0%, transparent 60%), radial-gradient(ellipse 70% 40% at 75% -10%, rgba(241,196,15,.18) 0%, transparent 60%), #000; }
.ipw26 .ipw-tickets-head { font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 900; color: #fff; text-align: center; margin: 0 0 3rem; letter-spacing: -.01em; line-height: 1.15; }
.ipw26 .ipw-ticket-card { background: #11151d; border-radius: 2px; padding: 2rem; height: 100%; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.06); }
.ipw26 .ipw-ticket-card .tier { font-size: 1.05rem; font-weight: 700; color: #fff; margin-bottom: 1.75rem; }
.ipw26 .ipw-ticket-card .price { font-size: clamp(1.7rem, 2.6vw, 2.2rem); font-weight: 800; color: #fff; margin-bottom: 1.25rem; line-height: 1.1; }
.ipw26 .ipw-ticket-card .desc { font-size: .9rem; color: rgba(255,255,255,.65); line-height: 1.65; margin-bottom: 2rem; flex-grow: 1; }
.ipw26 .ipw-ticket-cta { display: block; text-align: center; padding: .95rem 1.5rem; border: 1px solid rgba(255,255,255,.5); color: rgba(255,255,255,.85); text-decoration: none; font-size: .95rem; font-weight: 500; border-radius: 2px; transition: background .2s ease, color .2s ease, filter .2s ease; }
.ipw26 .ipw-ticket-cta:hover { background: rgba(255,255,255,.06); color: #fff; }
.ipw26 .ipw-ticket-cta.is-featured { background: linear-gradient(#11151d, #11151d) padding-box, linear-gradient(135deg, #00d4ff 0%, #2dd17a 35%, #f1c40f 65%, #ff4d4d 100%) border-box; border: 2px solid transparent; color: #fff; font-weight: 700; }
.ipw26 .ipw-ticket-cta.is-featured:hover { filter: brightness(1.15) saturate(1.2); background: linear-gradient(#11151d, #11151d) padding-box, linear-gradient(135deg, #00d4ff 0%, #2dd17a 35%, #f1c40f 65%, #ff4d4d 100%) border-box; }

/* Generic 3x2 stat-grid (e.g. Duration + sponsor logos) */
.ipw26 .ipw-stat-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: 1fr 1fr; gap: 0; height: 100%; min-height: 260px; background: #1f0a14; border-radius: 2px; overflow: hidden; border: 1px solid rgba(255,255,255,.08); }
.ipw26 .ipw-stat-card-grid .stat-cell { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.25rem; color: rgba(255,255,255,.6); font-weight: 500; font-size: .9rem; border-right: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08); text-align: center; }
.ipw26 .ipw-stat-card-grid .stat-cell:nth-child(3n) { border-right: 0; }
.ipw26 .ipw-stat-card-grid .stat-cell:nth-child(n+4) { border-bottom: 0; }
.ipw26 .ipw-stat-card-grid .stat-cell .stat-label { font-size: .85rem; color: rgba(255,255,255,.7); font-weight: 500; }
.ipw26 .ipw-stat-card-grid .stat-cell .stat-value { font-size: 1.45rem; font-weight: 800; color: #fff; line-height: 1.2; margin-top: .35rem; }

/* Closing */
.ipw26 .ipw-closing { background: linear-gradient(135deg, #E34A21 0%, #ff7a3d 100%); color: #fff; padding: 4rem 0; text-align: center; }
.ipw26 .ipw-closing h2 { font-weight: 900; margin-bottom: .5rem; color: #fff; }
.ipw26 .ipw-closing p { font-size: 1.1rem; opacity: .95; margin-bottom: 0; }

/* Mobile */
@media (max-width: 991.98px) {
.ipw26 .ipw-nav-toggle { display: inline-flex; }
.ipw26 .ipw-nav-menu { position: absolute; top: 100%; left: 1rem; right: 1rem; flex-direction: column; align-items: stretch; background: rgba(0,0,0,.97); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; padding: .5rem; margin-top: .5rem; gap: .15rem; box-shadow: 0 30px 60px -20px rgba(0,0,0,.5); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
.ipw26 .ipw-nav.is-menu-open .ipw-nav-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.ipw26 .ipw-nav-menu > li > a, .ipw26 .ipw-nav-menu > li > button { width: 100%; justify-content: space-between; padding: .75rem 1rem; }
.ipw26 .ipw-nav-dropdown { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: rgba(255,255,255,.04); margin: .25rem 0 .5rem; padding: .25rem; max-height: 0; overflow: hidden; transition: max-height .25s ease, padding .25s ease; }
.ipw26 .ipw-nav-menu > li.is-open .ipw-nav-dropdown { max-height: 400px; padding: .35rem; }
.ipw26 .ipw-nav-dropdown a { color: rgba(255,255,255,.85); }
.ipw26 .ipw-nav-cta { display: none; }
.ipw26 .ipw-nav-menu li.ipw-nav-mobile-cta { display: block !important; margin-top: .75rem !important; padding-top: .75rem !important; border-top: 1px solid rgba(255,255,255,.1) !important; background: transparent !important; }
.ipw26 .ipw-nav-menu li.ipw-nav-mobile-cta > a { display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; padding: .75rem 1.25rem !important; background: linear-gradient(#000, #000) padding-box, linear-gradient(135deg, #00d4ff 0%, #2dd17a 35%, #f1c40f 65%, #ff4d4d 100%) border-box !important; color: #fff !important; font-weight: 700 !important; font-size: .85rem !important; letter-spacing: .06em !important; text-transform: uppercase !important; border-radius: 0 !important; border: 2px solid transparent !important; white-space: nowrap !important; text-decoration: none !important; }
.ipw26 .ipw-feature { flex-direction: column !important; }
.ipw26 .ipw-feature .feat-img { min-height: 220px; }
.ipw26 .ipw-goh-h .goh-body { padding-left: 0; padding-top: 1.5rem; text-align: center; }
.ipw26 .ipw-goh-h .goh-img { max-width: 280px; margin: 0 auto; }
.ipw26 .ipw-feature-row .feat-body { padding: 1.5rem 0 0 0 !important; }
.ipw26 .ipw-feature-row .feat-img { min-height: 240px; max-width: 100%; }
.ipw26 .ipw-cross-grid { width: 100%; height: auto; max-width: 320px; display: flex; flex-direction: column; gap: 1rem; }
.ipw26 .ipw-cross-grid > .ipw-qcard { position: static; width: 100%; height: 140px; top: auto; left: auto; }
}
@media (max-width: 767.98px) {
.ipw26 .ipw-hero { padding: 0 0 3rem; }
.ipw26 .ipw-section { padding: 3rem 0; }
.ipw26 .ipw-welcome { padding: 2.5rem 0 .5rem; }
.ipw26 .ipw-quick-grid { padding: 2rem 0 3rem; }
.ipw26 .ipw-hero-cta .ipw-btn { width: 100%; justify-content: center; }
.ipw26 .ipw-partner-with { padding: 2rem 1.5rem; }
.ipw26 .ipw-logo-cell { min-height: 90px; padding: .75rem; }
.ipw26 .ipw-logo-cell.tier-platinum { min-height: 130px; }
.ipw26 .ipw-nav-brand .label small { display: none; }
.ipw26 .ipw-feature .feat-body { padding: 1.75rem; }
.partners-bg { padding-bottom: 5rem; }
/* Full-bleed images on mobile. */
.ipw26 .ipw-goh-section > .container,
.ipw26 .ipw-goh-section .row {
--bs-gutter-x: 0;
max-width: none;
}
.ipw26 .ipw-goh-h > [class*="col-"],
.ipw26 .ipw-feature-row > [class*="col-"] {
padding-left: 0 !important;
padding-right: 0 !important;
}
.ipw26 .ipw-goh-h .goh-body,
.ipw26 .ipw-feature-row .feat-body {
padding: 1.5rem 1rem 0 1rem !important;
}
.ipw26 .ipw-goh-h .goh-img,
.ipw26 .ipw-feature-row .feat-img {
max-width: none;
border-radius: 0;
box-shadow: none;
}
}
#backToTopBtn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

@media (max-width: 767.98px) {
#backToTopBtn { bottom: 1rem; right: 1rem; width: 40px; height: 40px; }
#backToTopBtn svg { width: 18px; height: 18px; }
}

@media (prefers-reduced-motion: reduce) {
#backToTopBtn { transition: none; }
#backToTopBtn:hover { transform: none; }
}