.aaf-reg-root{
  --navy-950:#0B1526; --navy-900:#101E36; --navy-800:#182A48; --navy-700:#22385E;
  --gold-500:#C9A227; --gold-400:#DDBC4E;
  --paper:#F6F3EC; --paper-dim:#EAE5D8;
  --ink:#181712; --ink-soft:#5B5A54; --line:#D8D2C0;
  --green:#2E5339; --red:#8C3B2E; --radius:2px;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.aaf-reg-root *{box-sizing:border-box;}
.aaf-reg-root a{color:inherit;}
.aaf-reg-root .aaf-hp{position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0;}

/* progress */
.aaf-progress-wrap{background:var(--navy-800); position:sticky; top:32px; z-index:50; box-shadow:0 1px 0 rgba(0,0,0,0.2);}
.aaf-progress{max-width:1140px; margin:0 auto; display:flex; padding:14px 24px;}
.aaf-step-pill{flex:1; text-align:center; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:#7C87A0; padding:8px 4px; border-bottom:2px solid #2A3B5C; transition:color .25s ease, border-color .25s ease;}
.aaf-step-pill.active{color:var(--gold-400); border-color:var(--gold-500);}
.aaf-step-pill.done{color:#B7C3DA;}

.aaf-main{max-width:1140px; margin:0 auto; padding:48px 32px 100px;}
.aaf-panel{display:none;}
.aaf-panel.active{display:block; animation:aafRise .35s ease;}
@keyframes aafRise{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}

.aaf-section-head{margin-bottom:28px;}
.aaf-section-num{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--gold-500); letter-spacing:0.1em;}
.aaf-section-head h2{font-family:'Fraunces', serif; font-weight:600; font-size:26px; margin:6px 0 4px; color:var(--navy-950);}
.aaf-section-head p{color:var(--ink-soft); font-size:14.5px; margin:0; max-width:760px;}

.aaf-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px 28px; max-width:860px;}
.aaf-grid.single{grid-template-columns:1fr; max-width:420px;}

.aaf-ref-note{
  background:#FBF6E8; border:1px solid var(--gold-500); border-radius:var(--radius);
  padding:14px 16px; margin-bottom:20px; font-size:13.5px; color:var(--navy-950); line-height:1.55;
}
.aaf-ref-note strong{font-family:'IBM Plex Mono', monospace; font-weight:600;}
.aaf-ref-note a{text-decoration:underline; color:var(--navy-900);}

.aaf-resume-root .aaf-main{max-width:520px;}
.aaf-field{display:flex; flex-direction:column; gap:7px;}
.aaf-field.span2{grid-column:1 / -1;}
.aaf-reg-root label{font-size:12.5px; font-weight:600; color:var(--navy-900); letter-spacing:0.01em;}
.aaf-reg-root label .req{color:var(--red); margin-left:2px;}
.aaf-reg-root label .opt{color:var(--ink-soft); font-weight:400; font-size:11.5px; margin-left:5px;}

.aaf-reg-root input[type=text], .aaf-reg-root input[type=email], .aaf-reg-root input[type=tel],
.aaf-reg-root input[type=url], .aaf-reg-root select, .aaf-reg-root textarea{
  font-family:'IBM Plex Sans', sans-serif; font-size:14.5px; padding:11px 12px;
  border:1px solid var(--line); border-radius:var(--radius); background:#fff; color:var(--ink);
  width:100%; transition:border-color .15s ease, box-shadow .15s ease;
}
.aaf-reg-root textarea{resize:vertical; min-height:84px;}
.aaf-reg-root input:focus, .aaf-reg-root select:focus, .aaf-reg-root textarea:focus{
  outline:none; border-color:var(--navy-700); box-shadow:0 0 0 3px rgba(34,56,94,0.12);
}
.aaf-reg-root select{appearance:none; background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6"><path d="M0 0l5 6 5-6z" fill="%23181712"/></svg>') no-repeat right 12px center;}

.aaf-reg-root .helptext{font-size:12px; color:var(--ink-soft); margin-top:2px;}
.aaf-reg-root .error-msg{font-size:12px; color:var(--red); display:none; margin-top:2px;}
.aaf-reg-root .aaf-field.invalid input, .aaf-reg-root .aaf-field.invalid select, .aaf-reg-root .aaf-field.invalid textarea{border-color:var(--red);}
.aaf-reg-root .aaf-field.invalid .error-msg{display:block;}

.aaf-reg-root fieldset{border:none; padding:0; margin:0;}
.aaf-reg-root legend{font-size:12.5px; font-weight:600; color:var(--navy-900); margin-bottom:10px; padding:0;}
.aaf-check-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px 20px;}
.aaf-reg-root .check-row, .aaf-reg-root .radio-row{display:flex; align-items:flex-start; gap:9px; font-size:14px; color:var(--ink);}
.aaf-reg-root .check-row input, .aaf-reg-root .radio-row input{margin-top:3px; accent-color:var(--navy-800);}

/* early bird banner */
.aaf-earlybird-banner{
  max-width:900px;
  display:flex; align-items:flex-start; gap:12px; flex-wrap:wrap;
  background:#FBF6E8; border:1px solid var(--gold-500); border-left:4px solid var(--gold-500);
  border-radius:var(--radius); padding:14px 16px; margin-bottom:24px;
  font-size:13.5px; color:var(--navy-950); line-height:1.5;
}
.aaf-earlybird-banner.aaf-earlybird-urgent{background:#FBEFE4; border-color:#C4712B; border-left-color:#C4712B;}
.aaf-earlybird-banner.aaf-earlybird-closed{background:#F0EFEA; border-color:var(--line); border-left-color:var(--ink-soft);}
.aaf-eb-tag{
  font-family:'IBM Plex Mono', monospace; font-size:10.5px; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase;
  background:var(--navy-950); color:var(--paper);
  padding:4px 9px; border-radius:2px; white-space:nowrap;
}
.aaf-eb-tag-closed{background:var(--ink-soft);}
.aaf-eb-text{flex:1; min-width:220px;}

.aaf-optional-tag{
  font-family:'IBM Plex Mono', monospace; font-size:10.5px; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);
  border:1px solid var(--line); padding:3px 8px; border-radius:2px;
  vertical-align:middle; margin-left:8px;
}

/* tier cards */
.aaf-tier-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin-top:8px;}
.aaf-tier-grid-rich{grid-template-columns:repeat(auto-fit,minmax(285px,1fr)); align-items:start;}
.aaf-tier-card{
  position:relative; background:#fff; border:1.5px solid var(--line); border-radius:var(--radius);
  padding:22px 20px 20px; cursor:pointer; text-align:left;
  transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.aaf-tier-card:hover{border-color:var(--navy-700); transform:translateY(-2px); box-shadow:0 8px 18px rgba(16,30,54,0.08);}
.aaf-tier-card.selected{border-color:var(--gold-500); box-shadow:0 0 0 2px rgba(201,162,39,0.35), 0 10px 20px rgba(16,30,54,0.10);}
.aaf-tier-eyebrow{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); padding-right:28px;}
.aaf-tier-name{font-family:'Fraunces', serif; font-weight:600; font-size:19px; color:var(--navy-950); margin:4px 0 12px; line-height:1.2;}
.aaf-tier-price{font-family:'IBM Plex Mono', monospace; font-size:26px; font-weight:600; color:var(--navy-900);}
.aaf-tier-price span{font-size:13px; color:var(--ink-soft); font-weight:500; margin-left:4px;}
.aaf-tier-was{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft); text-decoration:line-through; margin-top:2px;}
.aaf-tier-summary{font-size:13px; color:var(--ink-soft); margin:12px 0 0; line-height:1.5;}
.aaf-tier-benefits{
  list-style:none; padding:0; margin:14px 0 0;
  border-top:1px dashed var(--line); padding-top:12px;
}
.aaf-tier-benefits li{
  position:relative; padding-left:18px; margin-bottom:7px;
  font-size:12.5px; color:var(--ink); line-height:1.45;
}
.aaf-tier-benefits li::before{
  content:""; position:absolute; left:0; top:6px;
  width:7px; height:7px; border-radius:50%;
  background:var(--gold-500); opacity:0.7;
}
.aaf-tier-radio-dot{position:absolute; top:20px; right:18px; width:18px; height:18px; border-radius:50%; border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center;}
.aaf-tier-card.selected .aaf-tier-radio-dot{border-color:var(--gold-500);}
.aaf-tier-radio-dot::after{content:""; width:9px; height:9px; border-radius:50%; background:var(--gold-500); transform:scale(0); transition:transform .15s ease;}
.aaf-tier-card.selected .aaf-tier-radio-dot::after{transform:scale(1);}
.tier-error{color:var(--red); font-size:13px; margin-top:12px; display:none;}
.aaf-tier-card.aaf-tier-disabled{opacity:0.55; cursor:not-allowed; pointer-events:none; transform:none;}
body.aaf-processing .aaf-tier-grid{cursor:wait;}

/* order summary */
.aaf-order-summary{
  background:#fff; border:1.5px solid var(--navy-900); border-radius:var(--radius);
  padding:22px 24px; margin-top:32px; max-width:620px;
}
.aaf-order-empty{font-size:13.5px; color:var(--ink-soft); padding:4px 0 10px;}
.aaf-order-saving{
  margin-top:12px; font-size:12.5px; color:var(--green); font-weight:600;
}

/* review */
.review-box{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; margin-bottom:24px;}
.review-row{display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--paper-dim); font-size:14px;}
.review-row:last-child{border-bottom:none;}
.review-row .k{color:var(--ink-soft);}
.review-row .v{font-weight:600; color:var(--navy-950); text-align:right;}
.review-total{display:flex; justify-content:space-between; align-items:baseline; padding-top:14px; margin-top:4px; border-top:1.5px solid var(--navy-900);}
.review-total .k{font-family:'Fraunces', serif; font-size:16px; font-weight:600; color:var(--navy-950);}
.review-total .v{font-family:'IBM Plex Mono', monospace; font-size:24px; font-weight:600; color:var(--navy-950);}

/* nav */
.aaf-nav-row{display:flex; justify-content:space-between; align-items:center; margin-top:40px; gap:16px;}
.aaf-reg-root button{font-family:'IBM Plex Sans', sans-serif; font-size:14.5px; font-weight:600; border-radius:var(--radius); cursor:pointer; padding:13px 26px; border:1.5px solid transparent; transition:background .15s ease, color .15s ease, border-color .15s ease;}
.aaf-reg-root .btn-primary{background:var(--navy-950); color:var(--paper);}
.aaf-reg-root .btn-primary:hover{background:var(--navy-800);}
.aaf-reg-root .btn-ghost{background:transparent; color:var(--navy-900); border-color:var(--line);}
.aaf-reg-root .btn-ghost:hover{border-color:var(--navy-700);}
.aaf-reg-root .btn-gold{background:var(--gold-500); color:var(--navy-950);}
.aaf-reg-root .btn-gold:hover{background:var(--gold-400);}
.aaf-reg-root button:disabled{opacity:0.5; cursor:not-allowed;}
.aaf-spacer{flex:1;}

/* success */
.aaf-success{display:none; text-align:center; padding:40px 0;}
.aaf-panel[data-panel="success"].active .aaf-success{display:block;}
.aaf-success .check{width:56px; height:56px; border-radius:50%; background:var(--green); display:flex; align-items:center; justify-content:center; margin:0 auto 20px;}
.aaf-success .check svg{width:26px; height:26px;}
.aaf-success h2{font-family:'Fraunces', serif; font-size:22px; margin:0 0 8px; color:var(--navy-950);}
.aaf-success p{color:var(--ink-soft); font-size:14px; margin:0 0 4px;}

@media (max-width:1180px){
  .aaf-main{padding-left:24px; padding-right:24px;}
}

@media (max-width:600px){
  .aaf-grid{grid-template-columns:1fr;}
  .aaf-check-grid{grid-template-columns:1fr;}
  .aaf-main{padding:36px 16px 80px;}
  .aaf-progress-wrap{top:0;}
}
