/* ANNCON 2026 - additions for the multi-page build */

/* Active nav link */
.links a.active{color:var(--cyan); font-weight:600;}

/* Page banner (inner pages) */
.page-banner{position:relative; margin-top:76px; padding:92px 24px 72px; background:
  radial-gradient(ellipse 700px 380px at 15% 0%, rgba(63,203,99,0.16), transparent 60%),
  radial-gradient(ellipse 700px 420px at 90% 20%, rgba(27,79,160,0.28), transparent 55%),
  #0F1F4D; color:#fff; text-align:center; overflow:hidden;}
.page-banner .eyebrow{color:#7ee2a0;}
.page-banner h1{font-size:clamp(30px,4.5vw,48px); margin-top:14px; color:#fff;}
.page-banner p{max-width:640px; margin:14px auto 0; color:rgba(255,255,255,0.78); font-size:15.5px; line-height:1.7;}
.page-banner .crumbs{margin-top:22px; font-family:'JetBrains Mono'; font-size:11px; letter-spacing:0.1em; color:rgba(255,255,255,0.55);}
.page-banner .crumbs a{color:rgba(255,255,255,0.8); text-decoration:none;}

/* Alerts */
.site-alert{padding:14px 18px; border-radius:12px; font-size:14px; margin-bottom:18px; border:1px solid;}
.site-alert-success{background:rgba(47,125,60,0.1); border-color:rgba(47,125,60,0.35); color:#1d5c28;}
.site-alert-error{background:rgba(190,40,40,0.08); border-color:rgba(190,40,40,0.3); color:#8f1f1f;}
.site-alert-info{background:rgba(27,79,160,0.08); border-color:rgba(27,79,160,0.3); color:#173f7d;}

/* Forms */
.form-panel{background:var(--panel); border:1px solid var(--border-glass); border-radius:var(--radius); padding:34px; box-shadow:0 18px 50px rgba(15,31,77,0.07);}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-grid .full{grid-column:1 / -1;}
@media(max-width:680px){.form-grid{grid-template-columns:1fr;}}
.f-group label{display:block; font-size:12.5px; font-weight:600; color:var(--text-mid); margin-bottom:7px; font-family:'JetBrains Mono'; letter-spacing:0.04em;}
.f-group input, .f-group select, .f-group textarea{width:100%; padding:12px 14px; border-radius:10px; border:1px solid var(--border-glass); background:#fff; font-family:'Inter'; font-size:14px; color:var(--text-hi); transition:border .2s, box-shadow .2s;}
.f-group input:focus, .f-group select:focus, .f-group textarea:focus{outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px var(--cyan-soft);}
.f-group textarea{min-height:120px; resize:vertical;}
.f-hint{font-size:11.5px; color:var(--text-low); margin-top:6px;}
.hp-field{position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden;}

/* Price summary card */
.price-summary{background:linear-gradient(135deg, #0F1F4D, #16346e); color:#fff; border-radius:var(--radius); padding:26px; position:sticky; top:100px;}
.price-summary .row{display:flex; justify-content:space-between; font-size:13.5px; padding:9px 0; border-bottom:1px solid rgba(255,255,255,0.12);}
.price-summary .row.total{font-size:19px; font-weight:700; border-bottom:none; padding-top:14px; font-family:'Space Grotesk';}
.price-summary .save{color:#7ee2a0;}

/* Vote cards */
.vote-cat{margin-bottom:44px;}
.vote-cat h3{font-size:21px; margin-bottom:6px;}
.vote-cat .vc-desc{font-size:13.5px; color:var(--text-mid); margin-bottom:18px;}
.nominee-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:16px;}
.nominee-card{background:var(--panel); border:1.5px solid var(--border-glass); border-radius:16px; padding:20px; cursor:pointer; transition:all .2s ease; position:relative;}
.nominee-card:hover{border-color:var(--cyan); transform:translateY(-2px); box-shadow:0 12px 32px rgba(15,31,77,0.1);}
.nominee-card.selected{border-color:var(--cyan); background:var(--cyan-soft);}
.nominee-card.voted{border-color:var(--cyan); background:var(--cyan-soft); cursor:default;}
.nominee-card img{width:64px; height:64px; border-radius:50%; object-fit:cover; margin-bottom:12px; border:2px solid var(--border-glass);}
.nominee-card .nm{font-weight:700; font-family:'Space Grotesk'; font-size:15.5px;}
.nominee-card .org{font-size:12.5px; color:var(--text-mid); margin-top:3px;}
.nominee-card .tick{position:absolute; top:14px; right:14px; width:26px; height:26px; border-radius:50%; background:var(--cyan); color:#fff; display:none; align-items:center; justify-content:center;}
.nominee-card.selected .tick, .nominee-card.voted .tick{display:flex;}
.vote-locked{font-family:'JetBrains Mono'; font-size:11px; color:var(--cyan); background:var(--cyan-soft); border:1px solid rgba(47,125,60,0.3); border-radius:8px; padding:6px 12px; display:inline-block; margin-top:12px;}

/* OTP boxes */
.otp-panel{max-width:520px; margin:0 auto;}
.otp-code-input{letter-spacing:0.6em; font-family:'JetBrains Mono'; font-size:22px; text-align:center;}

/* Generic content page prose */
.prose{max-width:820px; margin:0 auto; font-size:15.5px; line-height:1.85; color:var(--text-mid);}
.prose h2,.prose h3{color:var(--text-hi); margin:28px 0 12px;}

/* Ticket cards on register page */
.tk-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; margin-bottom:30px;}
.tk-card{background:var(--panel); border:1.5px solid var(--border-glass); border-radius:18px; padding:26px; cursor:pointer; transition:all .2s ease; position:relative;}
.tk-card:hover{transform:translateY(-3px); box-shadow:0 14px 40px rgba(15,31,77,0.1);}
.tk-card.selected{border-color:var(--cyan); box-shadow:0 0 0 3px var(--cyan-soft);}
.tk-card .tk-badge{position:absolute; top:-11px; right:18px; background:var(--cyan); color:#fff; font-family:'JetBrains Mono'; font-size:10px; letter-spacing:0.08em; padding:5px 12px; border-radius:999px;}
.tk-card h3{font-size:17px;}
.tk-card .tk-price{font-family:'Space Grotesk'; font-size:26px; font-weight:700; margin:12px 0 4px; color:var(--blue);}
.tk-card .tk-was{font-size:13px; color:var(--text-low); text-decoration:line-through;}
.tk-card ul{list-style:none; margin-top:14px;}
.tk-card ul li{font-size:13px; color:var(--text-mid); padding:5px 0 5px 22px; position:relative;}
.tk-card ul li::before{content:'✓'; position:absolute; left:0; color:var(--cyan); font-weight:700;}

/* Sponsor tier headings */
.tier-block{margin-bottom:40px;}
.tier-block h3{font-size:14px; font-family:'JetBrains Mono'; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-low); margin-bottom:18px;}
.sp-logo-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:16px;}
.sp-logo-card{background:var(--panel); border:1px solid var(--border-glass); border-radius:14px; padding:22px; display:flex; align-items:center; justify-content:center; min-height:100px;}
.sp-logo-card img{max-width:100%; max-height:64px; object-fit:contain;}

/* ============================================================
   PREMIUM UPGRADE PACK
   ============================================================ */

/* ---------- Premium speaker cards (notched plate + hover sweep) ---------- */
.sp-card{position:relative; background:#fff; border-radius:26px; padding:12px; cursor:pointer;
  border:2px solid transparent; box-shadow:0 6px 26px rgba(15,31,77,0.07);
  transition:border-color .35s ease, transform .35s ease, box-shadow .35s ease;}
.sp-card:hover{border-color:#1B4FA0; transform:translateY(-6px); box-shadow:0 22px 54px rgba(15,31,77,0.18);}
.sp-media{position:relative; border-radius:18px; overflow:hidden; aspect-ratio:0.82;
  background:
    radial-gradient(ellipse 120% 60% at 30% -10%, rgba(72,110,208,0.55), transparent 55%),
    radial-gradient(ellipse 100% 70% at 85% 15%, rgba(38,64,140,0.6), transparent 60%),
    linear-gradient(160deg, #16276b 0%, #0c1638 55%, #101f52 100%);}
.sp-media::before{content:''; position:absolute; inset:0; opacity:.5; background:
  linear-gradient(115deg, transparent 28%, rgba(255,255,255,0.08) 33%, transparent 40%),
  linear-gradient(100deg, transparent 55%, rgba(255,255,255,0.06) 62%, transparent 70%),
  linear-gradient(125deg, transparent 72%, rgba(255,255,255,0.07) 80%, transparent 88%);}
.sp-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center;}
.sp-sweep{position:absolute; inset:0; opacity:0; transition:opacity .4s ease;
  background:linear-gradient(to top, #1B4FA0 0%, rgba(37,99,235,0.88) 26%, rgba(37,99,235,0.25) 58%, transparent 78%);}
.sp-card:hover .sp-sweep{opacity:1;}
.sp-socials{position:absolute; left:50%; bottom:118px; display:flex; gap:10px; z-index:3;
  opacity:0; transform:translate(-50%, 16px); transition:opacity .35s ease .08s, transform .35s ease .08s;}
.sp-card:hover .sp-socials{opacity:1; transform:translate(-50%, 0);}
.sp-soc{width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1.5px solid rgba(255,255,255,0.65); background:rgba(255,255,255,0.1); color:#fff; backdrop-filter:blur(4px);
  transition:background .25s, transform .25s;}
.sp-soc:hover{background:#fff; color:#1B4FA0; transform:scale(1.1);}
.sp-soc svg{width:17px; height:17px;}
.sp-plate{position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:82%; z-index:2;
  background:#fff; border-radius:22px 22px 0 0; padding:16px 12px 14px; text-align:center;}
.sp-plate::before,.sp-plate::after{content:''; position:absolute; bottom:0; width:22px; height:22px; background:transparent;}
.sp-plate::before{left:-22px; border-bottom-right-radius:22px; box-shadow:11px 11px 0 11px #fff;}
.sp-plate::after{right:-22px; border-bottom-left-radius:22px; box-shadow:-11px 11px 0 11px #fff;}
.sp-plate .nm{font-family:'Space Grotesk'; font-weight:700; font-size:16.5px; color:var(--blue); line-height:1.25;}
.sp-plate .rl{font-size:12.5px; color:#1B4FA0; font-weight:600; margin-top:4px;}
.sp-track-pill{position:absolute; top:12px; left:12px; z-index:3; font-family:'JetBrains Mono'; font-size:9.5px;
  letter-spacing:0.08em; padding:5px 10px; border-radius:7px; background:rgba(15,31,77,0.72); color:#fff; backdrop-filter:blur(3px);}

/* ---------- Keynote accordion showcase ---------- */
.keynote-section{background:
  radial-gradient(ellipse 900px 480px at 12% 0%, rgba(63,203,99,0.1), transparent 55%),
  radial-gradient(ellipse 800px 520px at 92% 100%, rgba(27,79,160,0.35), transparent 60%),
  #0B1638; padding:90px 24px; color:#fff;}
.keynote-section .eyebrow{color:#7ee2a0;}
.keynote-section h2{color:#fff;}
.keynote-section .section-head p{color:rgba(255,255,255,0.65);}
.kn-strip{display:flex; gap:12px; height:520px; margin-top:44px;}
.kn-panel{position:relative; flex:1; min-width:0; border-radius:22px; overflow:hidden; cursor:pointer;
  transition:flex 0.65s cubic-bezier(0.4, 0, 0.2, 1);
  background:
    radial-gradient(ellipse 120% 60% at 30% -10%, rgba(72,110,208,0.5), transparent 55%),
    linear-gradient(160deg, #1a2c70 0%, #0c1638 60%, #14224f 100%);}
.kn-panel.open{flex:3.2;}
.kn-panel img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center;
  filter:grayscale(65%) brightness(0.75); transition:filter .6s ease;}
.kn-panel.open img{filter:grayscale(0%) brightness(1);}
.kn-shade{position:absolute; inset:0; background:linear-gradient(to top, rgba(6,12,34,0.92) 0%, rgba(6,12,34,0.25) 40%, transparent 65%);}
.kn-vname{position:absolute; bottom:22px; left:50%; transform:translateX(-50%) rotate(180deg); writing-mode:vertical-rl;
  font-family:'Space Grotesk'; font-weight:600; font-size:15px; color:rgba(255,255,255,0.85); letter-spacing:0.04em;
  white-space:nowrap; opacity:1; transition:opacity .3s ease;}
.kn-panel.open .kn-vname{opacity:0;}
.kn-info{position:absolute; left:26px; right:26px; bottom:24px; opacity:0; transform:translateY(16px);
  transition:opacity .5s ease .25s, transform .5s ease .25s;}
.kn-panel.open .kn-info{opacity:1; transform:translateY(0);}
.kn-info .kn-badge{display:inline-block; font-family:'JetBrains Mono'; font-size:10px; letter-spacing:0.14em;
  color:#7ee2a0; border:1px solid rgba(126,226,160,0.45); border-radius:999px; padding:5px 12px; margin-bottom:12px;
  background:rgba(63,203,99,0.12);}
.kn-info .kn-name{font-family:'Space Grotesk'; font-weight:700; font-size:clamp(20px,2.4vw,30px); color:#fff; line-height:1.15;}
.kn-info .kn-role{font-size:14px; color:#7ee2a0; font-weight:600; margin-top:6px;}
.kn-info .kn-org{font-size:12.5px; color:rgba(255,255,255,0.6); margin-top:3px;}
.kn-info .kn-bio{font-size:13px; color:rgba(255,255,255,0.72); line-height:1.65; margin-top:12px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; max-width:480px;}
@media(max-width:860px){
  .kn-strip{flex-direction:column; height:auto;}
  .kn-panel{flex:none; height:88px;}
  .kn-panel.open{flex:none; height:420px;}
  .kn-vname{writing-mode:horizontal-tb; transform:none; left:22px; bottom:auto; top:50%; margin-top:-10px;}
}

/* ---------- Premium track cards ---------- */
.track-card{position:relative; overflow:hidden; transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;}
.track-card::after{content:''; position:absolute; inset:0; opacity:0; pointer-events:none; transition:opacity .4s ease;
  background:linear-gradient(135deg, rgba(47,125,60,0.07) 0%, rgba(27,79,160,0.07) 100%);}
.track-card:hover{transform:translateY(-6px); border-color:rgba(47,125,60,0.45); box-shadow:0 20px 48px rgba(15,31,77,0.13);}
.track-card:hover::after{opacity:1;}
.track-card .track-icon{transition:transform .35s ease, background .35s ease;}
.track-card:hover .track-icon{transform:scale(1.08) rotate(-4deg);}

/* ---------- Premium ticket cards ---------- */
.tk-card{overflow:hidden;}
.tk-card::before{content:''; position:absolute; top:0; left:0; right:0; height:4px; border-radius:18px 18px 0 0;
  background:linear-gradient(90deg, #2F7D3C, #3FCB63, #1B4FA0); opacity:0; transition:opacity .35s ease;}
.tk-card:hover::before, .tk-card.selected::before{opacity:1;}

/* ---------- Announcement bar ---------- */
.announce-bar{position:fixed; top:0; left:0; right:0; z-index:60; background:linear-gradient(90deg, #0F1F4D, #1B4FA0, #0F1F4D);
  color:#fff; font-size:13px; text-align:center; padding:9px 44px; font-weight:500;}
.announce-bar a{color:#7ee2a0; font-weight:700; text-decoration:none; margin-left:8px;}
.announce-bar .ann-x{position:absolute; right:12px; top:50%; transform:translateY(-50%); background:none; border:none;
  color:rgba(255,255,255,0.7); cursor:pointer; font-size:16px; line-height:1; padding:4px;}
body.has-announce header{top:37px;}
body.has-announce .page-banner{margin-top:113px;}

/* ---------- Countdown strip ---------- */
.countdown-wrap{background:linear-gradient(135deg, #0F1F4D 0%, #16346e 100%); border-radius:var(--radius);
  padding:40px 30px; text-align:center; color:#fff; position:relative; overflow:hidden;}
.countdown-wrap::before{content:''; position:absolute; inset:0; background:
  radial-gradient(ellipse 500px 260px at 85% 10%, rgba(63,203,99,0.14), transparent 60%); pointer-events:none;}
.cd-grid{display:flex; justify-content:center; gap:clamp(14px,4vw,38px); margin-top:24px; flex-wrap:wrap;}
.cd-cell{min-width:86px;}
.cd-num{font-family:'Space Grotesk'; font-weight:700; font-size:clamp(34px,5vw,52px); color:#fff; line-height:1;
  background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.14); border-radius:14px; padding:16px 10px;}
.cd-lbl{font-family:'JetBrains Mono'; font-size:10.5px; letter-spacing:0.16em; color:#7ee2a0; margin-top:10px; text-transform:uppercase;}

/* ---------- Footer design credit ---------- */
.design-credit{font-size:12px; color:var(--text-low);}
.design-credit a{color:var(--cyan); font-weight:600; text-decoration:none;}
.design-credit a:hover{color:var(--bright);}
