  :root{
    --navy: #0b1f3f;
    --navy-2: #122a54;
    --navy-deep: #081633;
    --red: #e2231a;
    --red-dark: #b71c17;
    --off-white: #f6f7f9;
    --paper: #ffffff;
    --ink: #17233f;
    --muted: #5c6478;
    --line: #e6e8ef;
    --header-h: 84px;
    --header-h-scrolled: 64px;
    --ease: cubic-bezier(.4,0,.2,1);
    --accent-color: #df2127; /* Accent color that represents your brand on the website. It's used for buttons, links, and other elements that need to stand out */
  --surface-color: #ffffff; /* The surface color is used as a background of boxed elements within sections, such as cards, icon boxes, or other elements that require a visual separation from the global background. */
  --contrast-color: #ffffff; /* Contrast color for text, ensuring readability against backgrounds of accent, heading, or default colors. */
  }

  :root {
  --nav-color: #ffffff;  
  --nav-hover-color: #df2127; 
  --nav-mobile-background-color: #ffffff; 
  --nav-dropdown-background-color: #ffffff; 
  --nav-dropdown-color: #40372e; 
  --nav-dropdown-hover-color: #df2127; 
}

  *{ box-sizing:border-box; }

  html{ scroll-behavior:smooth; }

  body{
    font-family:'Poppins', system-ui, sans-serif;
    color:var(--ink);
    background:var(--off-white);
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,h4,.display-font{
    font-family:'Poppins', system-ui, sans-serif;
    letter-spacing:-0.01em;
  }

  a{ text-decoration:none; }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  }

 /*--------------------------------------------------------------
# Global Header
--------------------------------------------------------------*/
.header {
  --background-color: rgba(255, 255, 255, 0);
  --default-color: #ffffff;
  --heading-color: #ffffff;
  color: var(--default-color);
  background-color: var(--background-color);
  padding: 15px 0;
  transition: all 0.5s;
  z-index: 997;
}

.header .logo {
  line-height: 1;
}

.header .logo img {
  max-height: 70px;
  margin-right: 5px;
}

.header .logo h1 {
  font-size: 30px;
  margin: 0;
  font-weight: 700;
  color: var(--heading-color);
}

.header .btn-getstarted,
.header .btn-getstarted:focus {
  color: var(--contrast-color);
  background: var(--accent-color);
  font-size: 14px;
  padding: 8px 15px;
  margin: 0 0 0 10px;
  border-radius: 50px;
  transition: 0.3s;
}

.header .btn-getstarted:hover,
.header .btn-getstarted:focus:hover {
  color: var(--contrast-color);
  background: color-mix(in srgb, var(--accent-color), transparent 15%);
}

@media (max-width: 1200px) {
  .header .logo {
    order: 1;
  }

  .header .btn-getstarted {
    order: 2;
    margin: 0 15px 0 0;
    padding: 6px 15px;
  }

  .header .navmenu {
    order: 3;
  }
}

.scrolled .header {
  box-shadow: 0px 0 18px rgba(0, 0, 0, 0.1);
}

/* Global Header on Scroll
------------------------------*/
.scrolled .header {
  --background-color: rgba(1, 17, 42, 0.9);
}

/* Light pages (no dark hero image behind the header) — keep the
   header solid/navy at all times, not just after scrolling, so the
   white logo, nav links and button stay legible against a light
   page background. Add class="light-page" to <body> on any page
   that opens straight into a white/off-white section instead of a
   .hero with a dark image or overlay. */
.light-page .header {
  --background-color: #0b1f3f;
  box-shadow: 0px 2px 18px rgba(11, 31, 63, 0.12);
}

/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/
/* Navmenu - Desktop */
@media (min-width: 1200px) {
  .navmenu {
    padding: 0;
  }

  .navmenu ul {
    margin: 0;
    padding: 0;
    display: flex;
    list-style: none;
    align-items: center;
  }

  .navmenu li {
    position: relative;
  }

  .navmenu a,
  .navmenu a:focus {
    color: var(--nav-color);
    padding: 18px 10px;
    font-size: 14px;
    font-family: var(--nav-font);
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    white-space: nowrap;
    transition: 0.3s;
  text-transform:uppercase;
  letter-spacing:1px;
  }

  .navmenu a i,
  .navmenu a:focus i {
    font-size: 12px;
    line-height: 0;
    margin-left: 5px;
    transition: 0.3s;
  }

  .navmenu li:last-child a {
    padding-right: 0;
  }

  .navmenu li:hover>a,
  .navmenu .active,
  .navmenu .active:focus {
    color: var(--nav-hover-color);
  }

  .navmenu .dropdown ul {
    margin: 0;
    padding: 10px 0;
    background: var(--nav-dropdown-background-color);
    display: block;
    position: absolute;
    visibility: hidden;
    left: 14px;
    top: 130%;
    opacity: 0;
    transition: 0.3s;
    border-radius: 4px;
    z-index: 99;
    box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1);
  }

  .navmenu .dropdown ul li {
    min-width: 200px;
  }

  .navmenu .dropdown ul a {
    padding: 10px 20px;
    font-size: 15px;
    text-transform: none;
    color: var(--nav-dropdown-color);
  }

  .navmenu .dropdown ul a i {
    font-size: 12px;
  }

  .navmenu .dropdown ul a:hover,
  .navmenu .dropdown ul .active,
  .navmenu .dropdown ul .active:hover,
  .navmenu .dropdown ul li:hover>a {
    color: var(--nav-dropdown-hover-color);
  }

  .navmenu .dropdown:hover>ul {
    opacity: 1;
    top: 100%;
    visibility: visible;
  }

  .navmenu .dropdown .dropdown ul {
    top: 0;
    left: -90%;
    visibility: hidden;
  }

  .navmenu .dropdown .dropdown:hover>ul {
    opacity: 1;
    top: 0;
    left: -100%;
    visibility: visible;
  }
}

/* Navmenu - Mobile */
@media (max-width: 1199px) {
  .mobile-nav-toggle {
    color: var(--nav-color);
    font-size: 28px;
    line-height: 0;
    margin-right: 10px;
    cursor: pointer;
    transition: color 0.3s;
  }

  .navmenu {
    padding: 0;
    z-index: 9997;
  }

  .navmenu ul {
    display: none;
    list-style: none;
    position: absolute;
    inset: 60px 20px 20px 20px;
    padding: 10px 0;
    margin: 0;
    border-radius: 6px;
    background-color: var(--nav-mobile-background-color);
    overflow-y: auto;
    transition: 0.3s;
    z-index: 9998;
    box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1);
  }

  .navmenu a,
  .navmenu a:focus {
    color: var(--nav-dropdown-color);
    padding: 10px 20px;
    font-family: var(--nav-font);
    font-size: 17px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    white-space: nowrap;
    transition: 0.3s;
  }

  .navmenu a i,
  .navmenu a:focus i {
    font-size: 12px;
    line-height: 0;
    margin-left: 5px;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: 0.3s;
    background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
  }

  .navmenu a i:hover,
  .navmenu a:focus i:hover {
    background-color: var(--accent-color);
    color: var(--contrast-color);
  }

  .navmenu a:hover,
  .navmenu .active,
  .navmenu .active:focus {
    color: var(--nav-dropdown-hover-color);
  }

  .navmenu .active i,
  .navmenu .active:focus i {
    background-color: var(--accent-color);
    color: var(--contrast-color);
    transform: rotate(180deg);
  }

  .navmenu .dropdown ul {
    position: static;
    display: none;
    z-index: 99;
    padding: 10px 0;
    margin: 10px 20px;
    background-color: var(--nav-dropdown-background-color);
    border: 1px solid color-mix(in srgb, var(--default-color), transparent 90%);
    box-shadow: none;
    transition: all 0.5s ease-in-out;
  }

  .navmenu .dropdown ul ul {
    background-color: rgba(33, 37, 41, 0.1);
  }

  .navmenu .dropdown>.dropdown-active {
    display: block;
    background-color: rgba(33, 37, 41, 0.03);
  }

  .mobile-nav-active {
    overflow: hidden;
  }

  .mobile-nav-active .mobile-nav-toggle {
    color: #fff;
    position: absolute;
    font-size: 32px;
    top: 15px;
    right: 15px;
    margin-right: 0;
    z-index: 9999;
  }

  .mobile-nav-active .navmenu {
    position: fixed;
    overflow: hidden;
    inset: 0;
    background: rgba(33, 37, 41, 0.8);
    transition: 0.3s;
  }

  .mobile-nav-active .navmenu>ul {
    display: block;
  }
}


  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    padding-top:var(--header-h);
    display:flex;
    align-items:center;
    overflow:hidden;
    background:var(--navy-deep);
  }
  .hero-media{
    position:absolute;
    inset:0;
    z-index:0;
  }
  .hero-media video,
  .hero-media .hero-fallback-img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 60%;
  }
  .hero-media::after{
    content:"";
    position:absolute;
    inset:0;
    background:
      linear-gradient(90deg, rgba(8,17,38,.92) 0%, rgba(8,17,38,.72) 38%, rgba(8,17,38,.35) 62%, rgba(8,17,38,.1) 100%),
      linear-gradient(180deg, rgba(8,17,38,.35) 0%, rgba(8,17,38,.15) 30%, rgba(8,17,38,.55) 100%);
  }

  .hero-content{ position:relative; z-index:2; padding:3.5rem 0; }

  .hero-eyebrow-figure{
    font-family:'Poppins',sans-serif;
    font-weight:900;
    font-size:clamp(1.9rem, 4vw, 3.0rem);
    color:#fff;
    letter-spacing:-0.01em;
    opacity:0;
    animation:riseIn .7s var(--ease) .15s forwards;
    line-height: 1.2;
    margin-bottom: 15px;
  }
  .hero-headline{
    font-family:'Poppins',sans-serif;
    font-weight:900;
    font-size:clamp(1.6rem, 3.1vw, 2.15rem);
    color:#fff;
    line-height:1.12;
    margin-top:.15rem;
    opacity:0;
    animation:riseIn .7s var(--ease) .3s forwards;
  }
  .hero-headline .accent{ color:var(--red); }

  .hero-copy{
    color:#c8d1e6;
    max-width:520px;
    font-size:.98rem;
    line-height:1.65;
    margin-top:1.1rem;
    opacity:0;
    animation:riseIn .7s var(--ease) .45s forwards;
  }

  .hero-facts{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem 1.75rem;
    margin-top:1.75rem;
    opacity:0;
    animation:riseIn .7s var(--ease) .6s forwards;
  }
  .hero-fact{
    display:flex; align-items:center; gap:.55rem;
    color:#eef1fa;
    font-size:.85rem;
    font-weight:600;
  }
  .hero-fact i{ color:var(--red); font-size:1rem; }

  @keyframes riseIn{
    from{ opacity:0; transform:translateY(18px); }
    to{ opacity:1; transform:translateY(0); }
  }

  /* Register card */
  .register-card{
    background:#fff;
    border-radius:14px;
    padding:1.85rem 1.75rem 2rem;
    box-shadow:0 30px 60px -15px rgba(3,10,26,.55);
    opacity:0;
    animation:riseIn .7s var(--ease) .5s forwards;
    transition:transform .4s var(--ease);
  }
  .register-card:hover{ transform:translateY(-4px); }
  .register-card h3{
    font-size:1.3rem;
    font-weight:800;
    color:var(--navy);
    margin-bottom:.15rem;
  }
  .register-card p.sub{
    color:var(--muted);
    font-size:.82rem;
    margin-bottom:1.1rem;
  }
  .register-card label{
    font-size:.72rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--muted);
    margin-bottom:.3rem;
  }
  .register-card .form-control,
  .register-card .form-select{
    border:1px solid var(--line);
    border-radius:8px;
    padding:.62rem .8rem;
    font-size:.9rem;
    transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
  }
  .register-card .form-control:focus,
  .register-card .form-select:focus{
    border-color:var(--red);
    box-shadow:0 0 0 .2rem rgba(226,35,26,.12);
  }
  .btn-register{
    background:var(--red);
    border:none;
    color:#fff;
    font-weight:800;
    letter-spacing:.03em;
    padding:.75rem 1rem;
    border-radius:8px;
    width:100%;
    transition:background-color .25s var(--ease), transform .2s var(--ease), box-shadow .25s var(--ease);
  }
  .btn-register:hover{
    background:var(--red-dark);
    color:#fff;
    transform:translateY(-2px);
    box-shadow:0 12px 22px -8px rgba(226,35,26,.55);
  }
  .register-note{
    text-align:center;
    font-size:.74rem;
    color:var(--muted);
    margin-top:.85rem;
  }

  .scroll-cue{
    position:absolute;
    left:50%; bottom:1.6rem;
    transform:translateX(-50%);
    z-index:2;
    color:#c8d1e6;
    font-size:.7rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    display:flex; flex-direction:column; align-items:center; gap:.4rem;
    opacity:.85;
  }
  .scroll-cue .dot-track{
    width:1.5px; height:34px;
    background:rgba(255,255,255,.25);
    position:relative;
    overflow:hidden;
    border-radius:2px;
  }
  .scroll-cue .dot-track::after{
    content:"";
    position:absolute;
    left:0; top:-40%;
    width:100%; height:40%;
    background:var(--red);
    animation:scrollDot 1.8s ease-in-out infinite;
  }
  @keyframes scrollDot{
    0%{ top:-40%; }
    60%{ top:100%; }
    100%{ top:100%; }
  }

  /* ---------- Stats bar ---------- */
  .stats-bar{
    background:var(--navy);
    padding:2.1rem 0;
  }
  .stat-item{
    display:flex; align-items:center; gap:1rem;
  }
  .stat-icon{
    width:52px; height:52px;
    flex:0 0 auto;
    border:1.5px solid rgba(255,255,255,.25);
    border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    color:#fff;
    font-size:1.3rem;
    transition:border-color .3s var(--ease), background-color .3s var(--ease);
  }
  .stat-item:hover .stat-icon{
    border-color:var(--red);
    background:rgba(226,35,26,.12);
  }
  .stat-number{
    font-family:'Poppins',sans-serif;
    font-weight:800;
    font-size:1.5rem;
    color:#fff;
    line-height:1;
  }
  .stat-label{
    color:#a9b4cf;
    font-size:.78rem;
    margin-top:.25rem;
    line-height:1.3;
  }

  /* ---------- Reveal on scroll ---------- */
  .reveal{
    opacity:0;
    transform:translateY(26px);
    transition:opacity .7s var(--ease), transform .7s var(--ease);
  }
  .reveal.in-view{ opacity:1; transform:translateY(0); }

  /* ---------- Section: Why / Who / Focus ---------- */
  .section-pad{ padding:5rem 0; }
  .eyebrow{
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--red);
    margin-bottom:.6rem;
  }
  .section-title{
    font-weight: 800;
    font-size: 2.0rem;
    color: var(--navy);
    margin-bottom: 1.1rem;
    text-transform: uppercase;
  }
  .lede{
    color:var(--muted);
    font-size:.95rem;
    line-height:1.75;
  }
  .check-list{ list-style:none; padding:0; margin:0; }
  .check-list li{
    display:flex; align-items:flex-start; gap:.65rem;
    font-size:.92rem;
    color:var(--ink);
    padding:.5rem 0;
    border-bottom:1px dashed var(--line);
  }
  .check-list li:last-child{ border-bottom:0; }
  .check-list li i{ color:var(--red); margin-top:.3rem; font-size:.6rem; }

  .focus-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.65rem .85rem;
  }
  .focus-item{
    display:flex; align-items:center; gap:.65rem;
  }
  .focus-num{
    width:30px; height:30px;
    flex:0 0 auto;
    background:var(--red);
    color:#fff;
    font-family:'Poppins',sans-serif;
    font-weight:800;
    font-size:.72rem;
    border-radius:6px;
    display:flex; align-items:center; justify-content:center;
    transition:transform .25s var(--ease);
  }
  .focus-item:hover .focus-num{ transform:scale(1.08) rotate(-3deg); }
  .focus-item span.txt{ font-size:.86rem; color:var(--ink); }

  /* ---------- Legacy banner ---------- */
  .legacy-banner{
    background:linear-gradient(115deg, var(--navy-deep) 0%, var(--navy) 100%);
    border-radius:16px;
    padding:2.6rem clamp(1.5rem,4vw,3.2rem);
    position:relative;
    overflow:hidden;
  }
  .legacy-banner .trophy{
    width:56px; height:56px;
    border:1.5px solid rgba(255,255,255,.3);
    border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    color:#fff; font-size:1.5rem;
    margin-bottom:1rem;
  }
  .legacy-banner h3{
    color:#fff;
    font-weight:800;
    font-size:1.25rem;
    margin-bottom:.7rem;
  }
  .legacy-banner p{
    color:#b7c1de;
    font-size:.92rem;
    max-width:560px;
    margin-bottom:0;
  }
  .skyline{
    position:absolute;
    right:-10px; bottom:-10px;
    opacity:.9;
    width:min(46vw, 340px);
  }

  /* ---------- Take part cards ---------- */
  .part-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:1.6rem 1.5rem;
    height:100%;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  }
  .part-card:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 34px -18px rgba(11,31,63,.28);
    border-color:transparent;
  }
  .part-card.highlight{
    border-color:var(--red);
    background:linear-gradient(180deg, rgba(226,35,26,.05), #fff 40%);
  }
  .part-icon{
    width:65px; height:65px;
    border-radius:10px;
    background: #e2e2e3;
    display:flex; align-items:center; justify-content:center;
    color:var(--navy);
    font-size:1.25rem;
    margin-bottom:1rem;
    transition:background-color .3s var(--ease), color .3s var(--ease);
  }
  .part-card:hover .part-icon{ background:var(--red); color:#fff; }
  .part-card h4{
    font-size:1rem;
    font-weight:800;
    color:var(--navy);
    margin-bottom:.5rem;
  }
  .part-card .tag{
    display:inline-block;
    font-size:.68rem;
    font-weight:700;
    color:var(--muted);
    letter-spacing:.03em;
    margin-bottom:.5rem;
  }
  .part-card p{
    color:var(--muted);
    font-size:.85rem;
    line-height:1.6;
    margin-bottom:1rem;
  }
  .contact-line{
    font-size:.82rem;
    color:var(--ink);
    border-top:1px dashed var(--line);
    padding-top:.75rem;
    margin-top:auto;
  }
  .contact-line a{ color:var(--navy); font-weight:700; }
  .contact-line a:hover{ color:var(--red); }
  .part-card.highlight .contact-line{ border-top-color:rgba(226,35,26,.25); }
  .star-tag{ color:var(--red); }

  /* ---------- Footer ---------- */
  .site-footer{
    background:var(--navy-deep);
    color:#8ea0c6;
    padding:2.2rem 0;
    font-size:.82rem;
  }
  .site-footer a{ color:#c6d0e6; }
  .site-footer a:hover{ color:var(--red); }

  /* Back to top */
  .back-to-top{
    position:fixed;
    right:1.4rem; bottom:1.4rem;
    width:44px; height:44px;
    border-radius:50%;
    background:var(--red);
    color:#fff;
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden;
    transform:translateY(12px);
    transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
    z-index:900;
    box-shadow:0 10px 20px -8px rgba(226,35,26,.6);
  }
  .back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
  .back-to-top:hover{ background:var(--red-dark); color:#fff; }

  @media (max-width: 991.98px){
    .main-nav{
      background:var(--navy-deep);
      margin-top:.75rem;
      border-radius:10px;
      padding:.5rem;
    }
    .header-meta{ display:none !important; }
    .focus-grid{ grid-template-columns:1fr; }
  }

  @media (max-width: 767.98px){
    .hero{ min-height:auto; padding-bottom:3rem; }
    .register-card{ margin-top:2rem; }
  }

  /* ---------- Counter animation ---------- */
  .stat-number.counter{ transition:color .3s var(--ease); }
  .stat-item.counted .stat-icon{
    animation:counterPop .5s var(--ease);
  }
  @keyframes counterPop{
    0%{ transform:scale(1); }
    45%{ transform:scale(1.14); border-color:var(--red); }
    100%{ transform:scale(1); }
  }

  /* ---------- Demand console (Market Intelligence) ---------- */
  .demand-console{
    position:relative;
    background:var(--navy-deep);
    color:#fff;
    overflow:hidden;
    background-image:
      linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
    background-size:36px 36px;
  }
  .demand-console::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(60% 55% at 15% 0%, rgba(226,35,26,.14), transparent 60%),
               radial-gradient(50% 50% at 100% 100%, rgba(255,255,255,.06), transparent 60%);
    pointer-events:none;
  }
  .demand-console .container{ position:relative; z-index:1; }
  .demand-console .eyebrow{ color:#ff8f88; }
  .demand-console .section-title{ color:#fff; }
  .demand-console .lede{ color:#c3cde3; }

  .console-status{
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    font-family:'JetBrains Mono', monospace;
    font-size:.7rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#8fa0c9;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.12);
    border-radius:999px;
    padding:.4rem .9rem .4rem .7rem;
    margin-bottom:1.5rem;
  }
  .live-dot{
    width:7px; height:7px;
    border-radius:50%;
    background:var(--red);
    flex:0 0 auto;
    animation:livePulse 1.8s ease-out infinite;
  }
  @keyframes livePulse{
    0%{ box-shadow:0 0 0 0 rgba(226,35,26,.55); }
    70%{ box-shadow:0 0 0 7px rgba(226,35,26,0); }
    100%{ box-shadow:0 0 0 0 rgba(226,35,26,0); }
  }
  @media (prefers-reduced-motion: reduce){
    .live-dot{ animation:none; }
  }

  .console-headline{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    gap:1.75rem 2.5rem;
    padding:2rem 0 2.25rem;
    border-bottom:1px solid rgba(255,255,255,.14);
    margin-bottom:2.5rem;
  }
  .big-figure{
    font-family:'JetBrains Mono', monospace;
    font-weight:700;
    font-size:clamp(3rem, 7vw, 5.25rem);
    line-height:1;
    color:#fff;
    white-space:nowrap;
  }
  .big-figure .unit{ font-size:.42em; color:var(--red); margin-left:.25rem; }
  .figure-caption{
    font-family:'JetBrains Mono', monospace;
    font-size:.72rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#8fa0c9;
    margin-top:.6rem;
    max-width:280px;
  }
  .figure-col{ flex:0 0 auto; }
  .figure-note{
    flex:1 1 320px;
    color:#c3cde3;
    font-size:.92rem;
    line-height:1.75;
    max-width:460px;
    padding-bottom:.35rem;
  }

  .console-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1.5rem;
  }
  @media (max-width: 991.98px){
    .console-grid{ grid-template-columns:1fr; }
  }

  .console-module{
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.12);
    border-radius:14px;
    padding:1.6rem 1.4rem;
  }
  .console-module-head{
    display:flex;
    align-items:center;
    gap:.6rem;
    padding-bottom:1rem;
    margin-bottom:1.35rem;
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  .console-module-head i{ color:var(--red); font-size:1.05rem; }
  .console-module-head span{
    font-family:'JetBrains Mono', monospace;
    font-size:.68rem;
    letter-spacing:.09em;
    text-transform:uppercase;
    color:#8fa0c9;
  }
  .console-module h5{
    font-family:'Poppins',sans-serif;
    font-weight:800;
    font-size:1rem;
    color:#fff;
    margin:0 0 1.3rem;
  }

  /* readout rows (region module) */
  .readout-row{ margin-bottom:1.15rem; }
  .readout-row:last-child{ margin-bottom:0; }
  .readout-top{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:.5rem;
    margin-bottom:.4rem;
  }
  .readout-name{ font-weight:700; font-size:.85rem; color:#fff; }
  .readout-value{ font-family:'JetBrains Mono', monospace; font-size:.8rem; color:var(--red); flex:0 0 auto; }
  .readout-track{ height:6px; border-radius:999px; background:rgba(255,255,255,.09); overflow:hidden; }
  .readout-fill{ height:100%; width:0%; border-radius:999px; background:var(--red); transition:width 1.4s var(--ease); }
  .readout-fill.muted{ background:#59699a; }
  .readout-detail{ font-size:.74rem; color:#8fa0c9; margin-top:.4rem; line-height:1.5; }

  /* dial gauges (plant-type module) */
  .dial-row{ display:flex; gap:1.25rem; }
  .dial{ flex:1; text-align:center; }
  .dial-ring{
    width:82px; height:82px;
    margin:0 auto .8rem;
    border-radius:50%;
    background:conic-gradient(var(--red) 0%, rgba(255,255,255,.09) 0);
    display:flex; align-items:center; justify-content:center;
    position:relative;
  }
  .dial-ring::before{
    content:"";
    position:absolute; inset:7px;
    background:#0c1c3c;
    border-radius:50%;
  }
  .dial-value{
    position:relative; z-index:1;
    font-family:'JetBrains Mono', monospace;
    font-weight:700;
    font-size:.98rem;
    color:#fff;
  }
  .dial-label{ font-size:.72rem; color:#8fa0c9; line-height:1.45; }
  .exceptions-note{
    display:flex;
    align-items:flex-start;
    gap:.5rem;
    font-family:'JetBrains Mono', monospace;
    font-size:.7rem;
    line-height:1.6;
    color:#8fa0c9;
    margin:1.4rem 0 0;
    padding-top:1.2rem;
    border-top:1px dashed rgba(255,255,255,.14);
  }
  .exceptions-note i{ color:var(--red); margin-top:.15rem; }

  /* segmented bar (end-market module) */
  .segbar{
    display:flex;
    height:10px;
    border-radius:999px;
    overflow:hidden;
    background:rgba(255,255,255,.09);
    margin-bottom:1rem;
  }
  .segbar-seg{ height:100%; width:0%; transition:width 1.4s var(--ease); }
  .segbar-seg.seg-red{ background:var(--red); }
  .segbar-seg.seg-mid{ background:#7c8ab0; }
  .segbar-seg.seg-dim{ background:#3c4970; }
  .seg-legend{
    display:flex;
    flex-wrap:wrap;
    gap:.5rem 1.1rem;
    font-size:.74rem;
    color:#c3cde3;
    margin-bottom:1.3rem;
  }
  .seg-legend .dot{
    display:inline-block;
    width:8px; height:8px;
    border-radius:50%;
    margin-right:.4rem;
    vertical-align:middle;
  }
  .shift-line{
    display:flex;
    align-items:center;
    gap:.7rem;
    font-family:'JetBrains Mono', monospace;
    font-size:.72rem;
    line-height:1.6;
    color:#c3cde3;
    padding-top:1.1rem;
    border-top:1px dashed rgba(255,255,255,.14);
  }
  .shift-line i{ color:var(--red); flex:0 0 auto; }

  /* ---------- Why Cement Expo (image collage) ---------- */
  .why-collage{
    position:relative;
    padding:0 1.75rem 2.5rem 0;
  }
  .why-img-main{
    border-radius:20px;
    overflow:hidden;
    aspect-ratio:4/3.1;
    box-shadow:0 30px 50px -24px rgba(11,31,63,.35);
  }
  .why-img-main img{
    width:100%; height:100%;
    object-fit:cover;
    transition:transform .8s var(--ease);
  }
  .why-collage:hover .why-img-main img{ transform:scale(1.06); }
  .why-img-sub{
    position:absolute;
    left:-1.25rem;
    bottom:-.5rem;
    width:52%;
    aspect-ratio:1/1;
    border-radius:16px;
    overflow:hidden;
    border:6px solid var(--paper);
    box-shadow:0 20px 34px -16px rgba(11,31,63,.3);
  }
  .why-img-sub img{ width:100%; height:100%; object-fit:cover; }
  .why-badge{
    position:absolute;
    top:1.5rem;
    right:-.75rem;
    display:flex;
    align-items:center;
    gap:.75rem;
    max-width:220px;
    background:var(--paper);
    border-radius:14px;
    padding:.9rem 1.1rem;
    box-shadow:0 20px 34px -16px rgba(11,31,63,.32);
  }
  .why-badge-icon{
    flex:0 0 auto;
    width:40px; height:40px;
    border-radius:10px;
    background:var(--red);
    color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:1.05rem;
  }
  .why-badge-num{
    font-family:'Poppins',sans-serif;
    font-weight:900;
    font-size:1.1rem;
    color:var(--navy);
    line-height:1.1;
  }
  .why-badge-label{ font-size:.7rem; color:var(--muted); line-height:1.35; }
  @media (max-width: 575.98px){
    .why-collage{ padding:0 1rem 3.5rem 0; }
    .why-badge{ right:0; }
    .hero-eyebrow-figure{padding: 0px 15px;}
    .hero-headline{padding: 0px 15px;}
    .hero-copy{padding: 0px 15px;}
    .hero-fact{padding: 0px 15px;font-size: .75rem;}
    .header .logo img {max-height: 50px !important;}
    .header .btn-getstarted {padding: 6px 6px;font-size: 12px;}
  }

  /* ---------- Who You Will Meet (card grid) ---------- */
  .who-card{
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:center;
    gap:1rem;
    height:100%;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    padding:1.1rem 1.25rem;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease);
  }
  .who-card::before{
    content:"";
    position:absolute;
    left:0; top:0; bottom:0;
    width:4px;
    background:var(--red);
    transform:scaleY(0);
    transform-origin:bottom;
    transition:transform .35s var(--ease);
  }
  .who-card:hover{
    transform:translateX(6px);
    box-shadow:0 16px 28px -18px rgba(11,31,63,.28);
    border-color:transparent;
  }
  .who-card:hover::before{ transform:scaleY(1); }
  .who-icon{
    flex:0 0 auto;
    width:48px; height:48px;
    border-radius:12px;
    background:var(--off-white);
    color:var(--navy);
    display:flex; align-items:center; justify-content:center;
    font-size:1.2rem;
    transition:background-color .3s var(--ease), color .3s var(--ease), transform .35s var(--ease);
  }
  .who-card:hover .who-icon{
    background:var(--red);
    color:#fff;
    transform:scale(1.08) rotate(-4deg);
  }
  .who-label{ font-weight:700; font-size:.9rem; color:var(--ink); line-height:1.35; }

  /* ---------- Standalone Focus Areas ---------- */
  .focus-tile{
    position:relative;
    overflow:hidden;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    padding:1.75rem 1.25rem 1.5rem;
    height:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:.75rem;
    box-shadow:0 2px 12px -8px rgba(11,31,63,.14);
    transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
  }
  .focus-tile:hover{
    transform:translateY(-7px) scale(1.02);
    box-shadow:0 22px 34px -16px rgba(11,31,63,.32);
    border-color:transparent;
  }
  .focus-tile::after{
    content:"";
    position:absolute;
    left:0; bottom:0;
    height:3px;
    width:0%;
    background:var(--red);
    transition:width .4s var(--ease);
  }
  .focus-tile:hover::after{ width:100%; }

  .focus-icon{
    position:relative;
    width:50px; height:50px;
    border-radius:12px;
    background:var(--off-white);
    color:var(--navy);
    display:flex; align-items:center; justify-content:center;
    font-size:1.35rem;
    z-index:1;
    transition:background-color .35s var(--ease), color .35s var(--ease), transform .45s cubic-bezier(.34,1.56,.64,1);
  }
  .focus-icon::before{
    content:"";
    position:absolute;
    inset:-6px;
    border-radius:16px;
    border:1.5px solid var(--red);
    opacity:0;
    transform:scale(.75);
    transition:opacity .4s var(--ease), transform .4s var(--ease);
  }
  .focus-tile:hover .focus-icon{
    background:var(--red);
    color:#fff;
    transform:rotate(-6deg) scale(1.1);
  }
  .focus-tile:hover .focus-icon::before{
    opacity:1;
    transform:scale(1);
  }
  .focus-tile .txt{
    position:relative;
    z-index:1;
    font-size:.92rem;
    font-weight:700;
    color:var(--ink);
    line-height:1.35;
  }

  @keyframes tilePopIn{
    from{ opacity:0; transform:translateY(24px) scale(.92); }
    to{ opacity:1; transform:translateY(0) scale(1); }
  }
  .focus-grid-wide [class*="col-"].reveal{
    opacity:0;
    transform:translateY(24px) scale(.92);
    transition:opacity .6s var(--ease), transform .6s var(--ease);
  }
  .focus-grid-wide [class*="col-"].reveal.in-view{
    opacity:1;
    transform:translateY(0) scale(1);
  }
  @media (prefers-reduced-motion: reduce){
    .focus-tile, .focus-icon, .focus-tile::after{ transition:none; }
  }

  /* ---------- Speakers ---------- */
  .speaker-card{
    text-align:center;
    background:var(--paper);
    border:1px solid var(--red);
    border-radius:12px;
    padding:1.75rem 1rem;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease);
    min-height: 250px;
  }
  .speaker-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 30px -16px rgba(11,31,63,.25);
  }
  .speaker-avatar{
    width:100px; height:100px;
    margin:0 auto .9rem;
    border-radius:50%;
    background:var(--off-white);
    color:var(--navy);
    display:flex; align-items:center; justify-content:center;
    font-size:1.6rem;
  }
  .speaker-name{
    font-weight:700;
    font-size:.9rem;
    color:var(--navy);
  }
  .speaker-role{
    font-size:.76rem;
    color:var(--muted);
    margin-top:.15rem;
  }

  /* ---------- Agenda ---------- */
  .agenda-tabs .nav-link{
    color:var(--navy);
    font-weight:700;
    font-size:.85rem;
    background:var(--off-white);
    border-radius:999px;
    padding:.55rem 1.3rem;
    margin-right:.5rem;
    transition:background-color .25s var(--ease), color .25s var(--ease);
  }
  .agenda-tabs .nav-link.active{
    background:var(--red);
    color:#fff;
  }
  .agenda-list{
    list-style:none;
    margin:0; padding:0;
    border:1px solid var(--line);
    border-radius:12px;
    overflow:hidden;
  }
  .agenda-list li{
    display:flex;
    align-items:center;
    gap:1.25rem;
    padding:1rem 1.25rem;
    border-bottom:1px solid var(--line);
    transition:background-color .25s var(--ease);
  }
  .agenda-list li:last-child{ border-bottom:0; }
  .agenda-list li:hover{ background:var(--off-white); }
  .agenda-list .time{
    flex:0 0 auto;
    width:70px;
    font-family:'Poppins',sans-serif;
    font-weight:800;
    font-size:.82rem;
    color:var(--red);
  }
  .agenda-list .what{
    font-size:.9rem;
    color:var(--ink);
  }

  /* ---------- Sub-page hero badge ---------- */
  .hero-badge{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    background: rgba(226, 35, 26);
    border: 1px solid rgba(226, 35, 26, .45);
    color: #ffffff;
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    padding:.45rem .9rem;
    border-radius:999px;
    margin-bottom:1.1rem;
  }
  .hero-badge i{ font-size:.7rem; }

  /* ---------- Stats supporting note ---------- */
  .stats-note{
    text-align:center;
    color:#c9d2e8;
    font-size:.85rem;
    font-style:italic;
    line-height:1.7;
    max-width:760px;
    margin:1.5rem auto 0;
  }

  /* ---------- Reason cards (Why This Expo, Why Now) ---------- */
  .reason-card{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    padding:1.6rem 1.5rem;
    height:100%;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease);
  }
  .reason-card:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 34px -18px rgba(11,31,63,.28);
  }
  .reason-num{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px; height:34px;
    border-radius:9px;
    background:var(--red);
    color:#fff;
    font-family:'Poppins',sans-serif;
    font-weight:800;
    font-size:.8rem;
    margin-bottom:1.1rem;
  }
  .reason-card h4{
    font-size:1rem;
    font-weight:800;
    color:var(--navy);
    margin-bottom:.55rem;
    line-height:1.35;
  }
  .reason-card p{
    font-size:.86rem;
    color:var(--muted);
    line-height:1.65;
    margin:0;
  }
  .proof-note{
    font-style:italic;
    color:var(--muted);
    font-size:.88rem;
    line-height:1.7;
    margin-top:1.5rem;
    padding-top:1.25rem;
    border-top:1px dashed var(--line);
  }

  /* ---------- Trio strip (More than an exhibition / conference) ---------- */
  .trio-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1rem;
  }
  @media (max-width: 767.98px){
    .trio-grid{ grid-template-columns:1fr; }
  }
  .trio-item{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    padding:1.6rem 1.4rem;
    text-align:center;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .trio-item:hover{
    transform:translateY(-5px);
    box-shadow:0 18px 30px -16px rgba(11,31,63,.25);
  }
  .trio-item i{
    font-size:1.6rem;
    color:var(--red);
    margin-bottom:.85rem;
    display:block;
  }
  .trio-item strong{
    display:block;
    font-size:.95rem;
    color:var(--navy);
    margin-bottom:.35rem;
  }
  .trio-item span{ font-size:.82rem; color:var(--muted); line-height:1.55; }

  /* ---------- Business case table ---------- */
  .case-table-wrap{
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
    overflow-x:auto;
  }
  table.case-table{
    width:100%;
    border-collapse:collapse;
    min-width:560px;
  }
  .case-table th{
    background:var(--navy-deep);
    color:#fff;
    text-align:left;
    font-size:.75rem;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    padding:.9rem 1.25rem;
  }
  .case-table td{
    padding:1rem 1.25rem;
    font-size:.88rem;
    color:var(--ink);
    border-top:1px solid var(--line);
    vertical-align:top;
    line-height:1.55;
  }
  .case-table tr:nth-child(even) td{ background:var(--off-white); }
  .case-table td:first-child{
    font-weight:700;
    color:var(--navy);
    width:32%;
  }

  /* ---------- FAQ accordion ---------- */
  .faq-accordion .accordion-item{
    border:1px solid var(--line);
    border-radius:12px;
    overflow:hidden;
    margin-bottom:.75rem;
  }
  .faq-accordion .accordion-item:last-child{ margin-bottom:0; }
  .faq-accordion .accordion-button{
    font-weight:700;
    font-size:.92rem;
    color:var(--navy);
    padding:1.1rem 1.3rem;
    background:#fff;
  }
  .faq-accordion .accordion-button:not(.collapsed){
    background:var(--off-white);
    color:var(--red);
    box-shadow:none;
  }
  .faq-accordion .accordion-button:focus{
    box-shadow:none;
    border-color:var(--line);
  }
  .faq-accordion .accordion-body{
    font-size:.86rem;
    color:var(--muted);
    line-height:1.75;
    padding:0 1.3rem 1.3rem;
  }

  /* ---------- Delegate page extras ---------- */
  .takeaway{
    display:flex;
    align-items:flex-start;
    gap:.5rem;
    font-size:.8rem;
    font-style:italic;
    color:var(--red);
    margin-top:.9rem;
    padding-top:.9rem;
    border-top:1px dashed var(--line);
  }
  .takeaway i{ margin-top:.15rem; flex:0 0 auto; }
  .matters-block{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:16px;
    padding:clamp(1.5rem, 3vw, 2.5rem);
  }
  .matters-block p{
    color:var(--muted);
    font-size:.95rem;
    line-height:1.85;
    margin:0;
  }
  .matters-block strong{ color:var(--navy); }
  .speaker-more-note{
    text-align:center;
    color:var(--muted);
    font-size:.85rem;
    font-style:italic;
    line-height:1.7;
    max-width:820px;
    margin:2rem auto 0;
  }

  /* ---------- Speaker photos (Partners & Speakers pages) ---------- */
  .speaker-avatar{ overflow:hidden; position:relative; }
  .speaker-avatar img{
    width:100%; height:100%;
    border-radius:50%;
    object-fit:cover;
    position:absolute; inset:0;
  }
  .speaker-avatar i{ display:none; }
  .speaker-avatar.img-fallback img{ display:none; }
  .speaker-avatar.img-fallback i{ display:flex; }
  .speaker-card.goh{ border-color:var(--red); }
  .speaker-card.goh .speaker-avatar{ width:88px; height:88px; }
  .speaker-card.goh .speaker-tag{
    display:inline-block; font-size:.65rem; font-weight:700; letter-spacing:.06em;
    color:var(--red); text-transform:uppercase; margin-bottom:.4rem;
  }

  /* ---------- Partner tier grid ---------- */
  .tier-block{ margin-bottom:2.6rem; }
  .tier-block:last-child{ margin-bottom:0; }
  .tier-label{
    display:block; align-items:center; gap:.75rem;
    font-size:1.50rem; font-weight:800; letter-spacing:.1em;
    color:var(--navy); text-transform:uppercase;
    margin-bottom:1.1rem;
    text-align: center;
  }
  /*.tier-label::after{
    content:""; flex:1 1 auto; height:1px; background:var(--line);
  }*/
  .tier-label .count{
    font-weight:600; color:var(--muted); letter-spacing:0; text-transform:none;
  }
  .partner-logo-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    height:100%;
    display:flex; align-items:center; justify-content:center;
    padding:1.4rem 1.2rem;
    min-height:110px;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
  }
  .partner-logo-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 30px -16px rgba(11,31,63,.22);
    border-color:transparent;
  }
  .partner-logo-card img{
    max-width:100%; max-height:110px;
    object-fit:contain;
    filter:grayscale(15%);
  }
  .tier-block.tier-presenting .partner-logo-card{ min-height:140px; padding:2rem; }
  .tier-block.tier-presenting .partner-logo-card img{ max-height:76px; }
  .past-partners-note{
    text-align:center;
    color:var(--muted);
    font-size:.85rem;
    max-width:760px;
    margin:0 auto 2.5rem;
  }

  /* ---------- Gallery ---------- */
  .gallery-tabs{
    display:flex; flex-wrap:wrap; gap:.6rem;
    justify-content:center;
    margin-bottom:2.6rem;
  }
  .gallery-tab-btn{
    background:var(--off-white);
    border:none;
    color:var(--navy);
    font-weight:700;
    font-size:.82rem;
    letter-spacing:.02em;
    padding:.6rem 1.4rem;
    border-radius:999px;
    cursor:pointer;
    transition:background .3s var(--ease), color .3s var(--ease), transform .2s var(--ease);
  }
  .gallery-tab-btn .count{ opacity:.65; font-weight:600; margin-left:.25rem; }
  .gallery-tab-btn:hover{ transform:translateY(-1px); }
  .gallery-tab-btn.active, .gallery-tab-btn:hover{ background:var(--red); color:#fff; }

  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
    gap:1rem;
  }
  .gallery-item{
    position:relative;
    border-radius:12px;
    overflow:hidden;
    aspect-ratio:4/3;
    background:var(--off-white);
    cursor:pointer;
    opacity:1;
    transform:scale(1);
    transition:opacity .4s var(--ease), transform .4s var(--ease), box-shadow .35s var(--ease);
  }
  .gallery-item:hover{ box-shadow:0 20px 34px -18px rgba(11,31,63,.35); }
  .gallery-item.filtering-out{ opacity:0; transform:scale(.88); pointer-events:none; }
  .gallery-item img{
    width:100%; height:100%;
    object-fit:cover;
    display:block;
    transition:transform .6s var(--ease);
  }
  .gallery-item:hover img{ transform:scale(1.09); }
  .gallery-item-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(11,31,63,0) 45%, rgba(8,22,51,.82) 100%);
    opacity:0;
    transition:opacity .3s var(--ease);
    display:flex; align-items:flex-end;
    padding:.85rem 1rem;
  }
  .gallery-item:hover .gallery-item-overlay{ opacity:1; }
  .gallery-item-overlay span{
    color:#fff; font-size:.72rem; font-weight:700;
    letter-spacing:.06em; text-transform:uppercase;
    display:flex; align-items:center; gap:.4rem;
  }
  .gallery-item-overlay i{ font-size:.85rem; }

  /* ---------- Lightbox ---------- */
  .lightbox{
    position:fixed; inset:0; z-index:9999;
    background:rgba(8,17,38,.96);
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden;
    transition:opacity .35s var(--ease), visibility 0s linear .35s;
  }
  .lightbox.active{
    opacity:1; visibility:visible;
    transition:opacity .35s var(--ease), visibility 0s linear 0s;
  }
  .lightbox-inner{
    max-width:88vw; max-height:82vh;
    display:flex; align-items:center; justify-content:center;
  }
  .lightbox-inner img{
    max-width:88vw; max-height:82vh;
    border-radius:10px;
    display:block;
    opacity:0;
    transform:scale(.96);
    transition:opacity .35s var(--ease), transform .35s var(--ease);
    box-shadow:0 40px 80px -24px rgba(0,0,0,.6);
  }
  .lightbox-inner img.show{ opacity:1; transform:scale(1); }
  .lightbox-close,
  .lightbox-prev,
  .lightbox-next{
    position:fixed;
    width:46px; height:46px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.25);
    color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:1.05rem;
    cursor:pointer;
    transition:background .25s var(--ease), border-color .25s var(--ease), transform .2s var(--ease);
  }
  .lightbox-close:hover,
  .lightbox-prev:hover,
  .lightbox-next:hover{
    background:var(--red); border-color:var(--red);
    transform:scale(1.06);
  }
  .lightbox-close{ top:22px; right:22px; }
  .lightbox-prev{ left:22px; top:50%; transform:translateY(-50%); }
  .lightbox-next{ right:22px; top:50%; transform:translateY(-50%); }
  .lightbox-prev:hover, .lightbox-next:hover{ transform:translateY(-50%) scale(1.06); }
  .lightbox-counter{
    position:fixed; bottom:22px; left:50%; transform:translateX(-50%);
    color:#c6d0e6; font-size:.78rem; letter-spacing:.06em;
    font-family:'JetBrains Mono', monospace;
  }
  .lightbox-caption{
    position:fixed; bottom:52px; left:50%; transform:translateX(-50%);
    color:#8ea0c6; font-size:.75rem; letter-spacing:.03em; text-transform:uppercase;
  }
  @media (max-width:768px){
    .lightbox-prev{ left:8px; }
    .lightbox-next{ right:8px; }
    .lightbox-close{ top:12px; right:12px; }
  }

  /* ---------- Thank You page ---------- */
  .thankyou-section{
    min-height:calc(100vh - var(--header-h));
    display:flex;
    align-items:center;
    padding:8rem 0 5rem;
  }
  .thankyou-card{
    max-width:600px;
    margin:0 auto;
    text-align:center;
  }
  .thankyou-icon{
    width:104px; height:104px;
    margin:0 auto 1.8rem;
    border-radius:20px;
    background:#fff;
    border:1px solid var(--line);
    box-shadow:0 20px 40px -20px rgba(11,31,63,.2);
    display:flex; align-items:center; justify-content:center;
    opacity:0;
    transform:scale(.7);
    animation:thankyouPop .6s var(--ease) .1s forwards;
  }
  .thankyou-icon svg{ width:60px; height:60px; }
  .thankyou-icon .tick-circle{
    stroke:#22c55e;
    stroke-width:3;
    fill:none;
    stroke-dasharray:170;
    stroke-dashoffset:170;
    animation:thankyouCircle .7s var(--ease) .3s forwards;
  }
  .thankyou-icon .tick-check{
    stroke:#22c55e;
    stroke-width:4;
    fill:none;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-dasharray:44;
    stroke-dashoffset:44;
    animation:thankyouCheck .4s var(--ease) 1s forwards;
  }
  @keyframes thankyouPop{
    to{ opacity:1; transform:scale(1); }
  }
  @keyframes thankyouCircle{
    to{ stroke-dashoffset:0; }
  }
  @keyframes thankyouCheck{
    to{ stroke-dashoffset:0; }
  }
  .thankyou-eyebrow{
    font-size:.72rem; font-weight:700; letter-spacing:.14em;
    text-transform:uppercase; color:var(--red);
    margin-bottom:.7rem;
    opacity:0; transform:translateY(10px);
    animation:thankyouFadeUp .6s var(--ease) .5s forwards;
  }
  .thankyou-card h1{
    font-weight:800; font-size:1.9rem; color:var(--navy);
    margin-bottom:.9rem;
    opacity:0; transform:translateY(10px);
    animation:thankyouFadeUp .6s var(--ease) .6s forwards;
  }
  .thankyou-card p.sub{
    color:var(--muted); font-size:.98rem; line-height:1.75;
    max-width:480px; margin:0 auto 1rem;
    opacity:0; transform:translateY(10px);
    animation:thankyouFadeUp .6s var(--ease) .7s forwards;
  }
  .thankyou-details{
    display:flex; flex-wrap:wrap; gap:.6rem 1.4rem;
    justify-content:center;
    margin:1.4rem 0 2rem;
    opacity:0; transform:translateY(10px);
    animation:thankyouFadeUp .6s var(--ease) .8s forwards;
  }
  .thankyou-details .hero-fact{ color:var(--ink); }
  .thankyou-actions{
    display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center;
    opacity:0; transform:translateY(10px);
    animation:thankyouFadeUp .6s var(--ease) .9s forwards;
  }
  .btn-thankyou{
    display:inline-flex; align-items:center; gap:.5rem;
    background:var(--red);
    color:#fff;
    font-weight:800;
    font-size:.82rem;
    letter-spacing:.04em;
    text-transform:uppercase;
    padding:.85rem 1.8rem;
    border-radius:8px;
    border:none;
    transition:background-color .25s var(--ease), transform .2s var(--ease), box-shadow .25s var(--ease);
  }
  .btn-thankyou:hover{
    background:var(--red-dark); color:#fff;
    transform:translateY(-2px);
    box-shadow:0 14px 26px -10px rgba(226,35,26,.5);
  }
  .btn-thankyou.outline{
    background:#fff; color:var(--navy);
    border:1.5px solid var(--line);
  }
  .btn-thankyou.outline:hover{
    background:var(--off-white); color:var(--navy);
    box-shadow:none;
  }
  @keyframes thankyouFadeUp{
    to{ opacity:1; transform:translateY(0); }
  }
  @media (prefers-reduced-motion: reduce){
    .thankyou-icon, .thankyou-eyebrow, .thankyou-card h1, .thankyou-card p.sub, .thankyou-details, .thankyou-actions{
      animation:none !important; opacity:1 !important; transform:none !important;
    }
    .tick-circle, .tick-check{ animation:none !important; stroke-dashoffset:0 !important; }
  }

  /* ---------- Legal pages (Privacy / Refund / Terms) ---------- */
  .legal-hero{
    padding:9.5rem 0 3rem;
  }
  .legal-hero .breadcrumb-line{
    font-size:.78rem; color:var(--muted); margin-bottom:.9rem;
  }
  .legal-hero .breadcrumb-line a{ color:var(--navy); font-weight:600; }
  .legal-hero .breadcrumb-line a:hover{ color:var(--red); }
  .legal-hero h1{
    font-weight:800; font-size:2rem; color:var(--navy); margin-bottom:.6rem;
    text-transform:uppercase;
  }
  .legal-hero .updated-note{ color:var(--muted); font-size:.85rem; }

  .legal-wrap{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:16px;
    padding:clamp(1.6rem, 4vw, 3rem);
  }
  .legal-wrap h2{
    font-weight:800; font-size:1.15rem; color:var(--navy);
    margin:2.2rem 0 .9rem;
    text-transform:uppercase;
    letter-spacing:.02em;
  }
  .legal-wrap h2:first-child{ margin-top:0; }
  .legal-wrap h3{
    font-weight:700; font-size:1rem; color:var(--navy);
    margin:1.6rem 0 .7rem;
  }
  .legal-wrap p{
    color:var(--muted);
    font-size:.92rem;
    line-height:1.85;
    margin-bottom:1rem;
  }
  .legal-wrap ul, .legal-wrap ol{
    color:var(--muted);
    font-size:.92rem;
    line-height:1.85;
    padding-left:1.3rem;
    margin-bottom:1rem;
  }
  .legal-wrap ul{ list-style-type:disc; }

  /* Numbered clauses use a manual CSS counter rather than the native
     ::marker — some icon-font stacks (Font Awesome / Bootstrap Icons
     loaded globally on this site) can hijack the default list marker
     glyph in certain browsers, showing an icon instead of a number. */
  .legal-wrap ol.clause-list{
    list-style:none;
    padding-left:0;
    counter-reset:clause;
  }
  .legal-wrap ol.clause-list > li{
    position:relative;
    padding-left:2.1rem;
    counter-increment:clause;
  }
  .legal-wrap ol.clause-list > li::before{
    content:counter(clause) ".";
    position:absolute;
    left:0; top:0;
    font-weight:800;
    color:var(--navy);
    font-family:'Poppins', system-ui, sans-serif;
    font-size:.9rem;
  }
  .legal-wrap li{ margin-bottom:.4rem; }
  .legal-wrap strong{ color:var(--ink); }
  .legal-wrap a{ color:var(--red); font-weight:600; text-decoration:underline; }
  .legal-wrap a:hover{ color:var(--red-dark); }
  .legal-wrap .callout{
    background:var(--off-white);
    border-left:3px solid var(--red);
    border-radius:8px;
    padding:1rem 1.2rem;
    font-size:.88rem;
    color:var(--ink);
    margin:1.6rem 0;
  }
  .legal-toc{
    background:var(--off-white);
    border-radius:12px;
    padding:1.3rem 1.4rem;
    margin-bottom:2rem;
  }
  .legal-toc .toc-title{
    font-size:.7rem; font-weight:800; letter-spacing:.1em;
    text-transform:uppercase; color:var(--red);
    margin-bottom:.6rem;
  }
  .legal-toc ol{
    columns:2; column-gap:1.5rem;
    margin:0; padding-left:0;
    font-size:.83rem;
    list-style:none;
    counter-reset:toc;
  }
  .legal-toc li{
    margin-bottom:.5rem;
    break-inside:avoid;
    padding-left:1.5rem;
    position:relative;
    counter-increment:toc;
  }
  .legal-toc li::before{
    content:counter(toc) ".";
    position:absolute;
    left:0; top:0;
    font-weight:800;
    color:var(--red);
  }
  .legal-toc a{ color:var(--ink); font-weight:600; }
  .legal-toc a:hover{ color:var(--red); }
  @media (max-width:576px){
    .legal-toc ol{ columns:1; }
  }

  /* ---------- Confetti (thank-you pages) ---------- */
  .confetti-container{
    position:fixed; inset:0;
    overflow:hidden;
    pointer-events:none;
    z-index:9998;
  }
  .confetti-piece{
    position:absolute;
    top:-24px;
    opacity:.95;
    animation-name:confettiFall;
    animation-timing-function:cubic-bezier(.35,0,.65,1);
    animation-fill-mode:forwards;
    will-change:transform, opacity;
  }
  @keyframes confettiFall{
    0%{ transform:translateY(0) translateX(0) rotate(0deg); opacity:1; }
    85%{ opacity:1; }
    100%{ transform:translateY(108vh) translateX(var(--drift, 40px)) rotate(600deg); opacity:0; }
  }
.btn-getstarted,
.btn-getstarted:focus {
  color: var(--contrast-color);
  background: var(--accent-color);
  font-size: 14px;
  padding: 8px 25px;
  margin: 0 0 0 30px;
  border-radius: 50px;
  transition: 0.3s;
}

.btn-getstarted:hover,
.btn-getstarted:focus:hover {
  color: var(--contrast-color);
  background: color-mix(in srgb, var(--accent-color), transparent 15%);
}
/* ---------- Pricing / Payment page ---------- */
  .pricing-savings-strip{
    display:flex; align-items:center; justify-content:center; gap:.6rem;
    background:var(--off-white);
    border-radius:999px;
    padding:.7rem 1.4rem;
    font-size:.82rem;
    font-weight:700;
    color:var(--navy);
    max-width:fit-content;
    margin:0 auto 2.6rem;
  }
  .pricing-savings-strip i{ color:var(--red); }

  .pricing-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
    gap:1.75rem;
    align-items:stretch;
  }
  .price-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    padding:2.2rem;
    position:relative;
    display:flex;
    flex-direction:column;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
  }
  .price-card:hover{
    transform:translateY(-6px);
    box-shadow:0 24px 46px -22px rgba(11,31,63,.28);
  }
  .price-card.featured{
    border-color:var(--red);
    box-shadow:0 24px 50px -18px rgba(226,35,26,.22);
  }
  .price-card.featured:hover{ box-shadow:0 30px 56px -18px rgba(226,35,26,.3); }
  .price-card .price-badge{
    position:absolute; top:-14px; left:50%; transform:translateX(-50%);
    background:var(--red); color:#fff;
    font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
    padding:.4rem 1.1rem; border-radius:999px;
    white-space:nowrap;
    box-shadow:0 10px 18px -6px rgba(226,35,26,.5);
  }
  .price-card .tier-name{
    font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
    color:var(--navy); text-align:center; margin-bottom:1rem;
  }
  .price-card.featured .tier-name{ color:var(--red); }
  .price-card .price-row{ text-align:center; margin-bottom:.3rem; }
  .price-card .price-row .amount{ font-size:2.5rem; font-weight:800; color:var(--navy); }
  .price-card .price-row .currency{ font-size:1.1rem; font-weight:700; vertical-align:top; margin-right:.1rem; }
  .price-card .price-row .period{ font-size:.8rem; color:var(--muted); font-weight:600; }
  .price-card .price-strike{
    text-align:center; color:var(--muted); text-decoration:line-through;
    font-size:.85rem; margin-bottom:.5rem;
  }
  .price-card .price-deadline{
    text-align:center; font-size:.78rem; color:var(--muted);
    margin-bottom:1.8rem;
    padding-bottom:1.6rem;
    border-bottom:1px solid var(--line);
  }
  .price-card .price-deadline strong{ color:var(--ink); }
  .price-card .benefit-list{
    list-style:none; padding:0; margin:0 0 1.8rem; flex:1 1 auto;
  }
  .price-card .benefit-list li{
    display:flex; align-items:flex-start; gap:.6rem;
    font-size:.87rem; color:var(--ink);
    padding:.55rem 0;
  }
  .price-card .benefit-list li i{
    color:#22c55e; margin-top:.15rem; font-size:.85rem; flex-shrink:0;
  }
  .price-card .benefit-list li.bonus{ font-weight:700; }
  .price-card .benefit-list li.bonus i{ color:var(--red); }
  .btn-price{
    display:block; text-align:center;
    background:var(--navy); color:#fff;
    font-weight:800; font-size:.82rem; letter-spacing:.03em; text-transform:uppercase;
    padding:.85rem 1.5rem; border-radius:8px;
    transition:background-color .25s var(--ease), transform .2s var(--ease);
  }
  .btn-price:hover{ background:#132a52; color:#fff; transform:translateY(-2px); }
  .price-card.featured .btn-price{ background:var(--red); }
  .price-card.featured .btn-price:hover{ background:var(--red-dark); }

  .pricing-note{
    text-align:center; color:var(--muted); font-size:.82rem;
    max-width:640px; margin:2.2rem auto 0;
  }

  .payment-methods{
    display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center;
    margin-top:1.6rem;
  }
  .payment-methods span{
    display:inline-flex; align-items:center; gap:.4rem;
    background:var(--off-white); color:var(--ink);
    font-size:.76rem; font-weight:700;
    padding:.4rem .9rem; border-radius:999px;
  }
  .payment-methods span i{ color:var(--red); }