/* ═══════════════════════════════════════ */
/*  SHARED STYLES                         */
/*  Design tokens, base styles, and form  */
/*  styles shared across all pages        */
/* ═══════════════════════════════════════ */

/* ═══ DESIGN TOKENS ═══ */
:root{--white:#FFF;--off-white:#F8F9FA;--glass-bg:rgba(255,255,255,.45);--glass-border:rgba(255,255,255,.65);--glass-shadow:rgba(0,0,0,.04);--text-primary:#0A0A0B;--text-secondary:#6B7280;--text-tertiary:#9CA3AF;--accent:#0066FF;--accent-soft:rgba(0,102,255,.08);--border-light:rgba(0,0,0,.06);--border-subtle:rgba(0,0,0,.08);--bg-primary:#FFF;--bg-secondary:#F8F9FA;--radius-sm:12px;--radius-md:20px;--radius-lg:28px;--radius-xl:36px}

[data-theme="dark"]{--white:#0A0A0B;--off-white:#111113;--glass-bg:rgba(20,20,22,.6);--glass-border:rgba(255,255,255,.08);--glass-shadow:rgba(0,0,0,.2);--text-primary:#F1F1F1;--text-secondary:#9CA3AF;--text-tertiary:#6B7280;--accent:#3B82F6;--accent-soft:rgba(59,130,246,.15);--border-light:rgba(255,255,255,.08);--border-subtle:rgba(255,255,255,.1);--bg-primary:#0A0A0B;--bg-secondary:#111113}

/* ═══ RESET & BASE ═══ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:'DM Sans',-apple-system,sans-serif;background:var(--white);color:var(--text-primary);overflow-x:hidden;line-height:1.6}
body.modal-open{overflow:hidden}

/* ═══ CONTAINER & SECTION LABEL ═══ */
.container{max-width:1180px;margin:0 auto;padding:0 24px}
.section-label{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:100px;font-size:12.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(0,102,255,.1);margin-bottom:20px}
.section-label::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.7}

/* ═══ BUTTONS ═══ */
.btn-primary{display:inline-flex;align-items:center;gap:10px;padding:16px 32px;background:var(--text-primary);color:#fff;border:none;border-radius:100px;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);text-decoration:none;font-family:inherit}
.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 30px rgba(0,0,0,.18)}
.btn-primary svg{transition:transform .3s}
.btn-primary:hover svg{transform:translateX(3px)}
.btn-secondary{display:inline-flex;align-items:center;gap:10px;padding:16px 32px;background:transparent;color:var(--text-primary);border:1.5px solid var(--border-light);border-radius:100px;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);text-decoration:none;font-family:inherit}
.btn-secondary:hover{border-color:rgba(0,0,0,.15);background:rgba(0,0,0,.02);transform:translateY(-1px)}

/* ═══ FORM GROUP STYLES ═══ */
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:7px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:13px 16px;border:1.5px solid var(--border-light);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;color:var(--text-primary);background:var(--white);transition:all .2s;outline:none}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-tertiary)}
.form-group textarea{resize:vertical;min-height:80px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-submit{width:100%;margin-top:8px}
.form-note{font-size:12px;color:var(--text-tertiary);text-align:center;margin-top:14px}
.form-success{display:none;text-align:center;padding:24px 0}
.form-success.show{display:block}
.form-success.show+form{display:none}
.success-icon{width:64px;height:64px;border-radius:50%;background:rgba(34,197,94,.1);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 20px}
.form-success h3{font-family:'Instrument Serif',Georgia,serif;font-size:26px;font-weight:400;margin-bottom:10px}
.form-success p{font-size:14.5px;color:var(--text-secondary);line-height:1.6}

/* ═══ FORM LOADING & ERROR STATES ═══ */
.form-submit.loading{opacity:.7;pointer-events:none}
.form-submit.loading::after{content:'';width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;display:inline-block;margin-left:8px;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
.form-error{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2);color:#DC2626;font-size:13px;padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:14px;display:none;line-height:1.5}
.form-error.show{display:block}

/* ═══ FORM VALIDATION STATES ═══ */
.form-group input.valid,.form-group textarea.valid,.form-group select.valid{border-color:#22C55E;box-shadow:0 0 0 3px rgba(34,197,94,.1)}
.form-group input.invalid,.form-group textarea.invalid,.form-group select.invalid{border-color:#EF4444;box-shadow:0 0 0 3px rgba(239,68,68,.1)}
.form-group .field-hint{font-size:11.5px;margin-top:4px;display:none;line-height:1.4}
.form-group .field-hint.show{display:block}
.form-group .field-hint.error{color:#EF4444}
.form-group .field-hint.success{color:#22C55E}

/* ═══ PASSWORD WRAPPER & STRENGTH INDICATOR ═══ */
.password-wrapper{position:relative}
.password-wrapper input{padding-right:44px}
.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-tertiary);padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}
.password-toggle:hover{color:var(--text-primary)}
.password-strength{display:flex;gap:4px;margin-top:6px}
.password-strength-bar{flex:1;height:3px;border-radius:2px;background:var(--border-light);transition:background .3s}
.password-strength-bar.weak{background:#EF4444}
.password-strength-bar.medium{background:#F59E0B}
.password-strength-bar.strong{background:#22C55E}
.password-strength-label{font-size:11px;margin-top:2px;color:var(--text-tertiary)}

/* ═══ SHAKE ANIMATION ON ERROR ═══ */
@keyframes shake{0%,100%{transform:translateX(0)}15%,45%,75%{transform:translateX(-6px)}30%,60%,90%{transform:translateX(6px)}}
.shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97)}

/* ═══ SUCCESS CHECKMARK DRAW ═══ */
@keyframes drawCheck{0%{stroke-dashoffset:50}100%{stroke-dashoffset:0}}
@keyframes scaleIn{0%{transform:scale(0);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.success-icon-svg{width:64px;height:64px;margin:0 auto 20px;display:block}
.success-icon-svg circle{fill:rgba(34,197,94,.1);stroke:none}
.success-icon-svg path{stroke:#22C55E;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke-dasharray:50;stroke-dashoffset:50}
.form-success.show .success-icon-svg{animation:scaleIn .5s cubic-bezier(.16,1,.3,1) forwards}
.form-success.show .success-icon-svg path{animation:drawCheck .6s .3s cubic-bezier(.16,1,.3,1) forwards}

/* ═══ BUTTON PRESS FEEDBACK ═══ */
.btn-primary:active,.btn-secondary:active{transform:scale(.96)!important;transition:transform .1s!important}

/* ═══ REDUCED MOTION PREFERENCE ═══ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .ambient-orb,.particle,.trust-marquee-track,.trust-marquee{animation:none!important}
  .hero-screen,.tilt-card,.magnetic{transform:none!important}
  .cursor-glow{display:none!important}
  .reveal,.reveal-left,.reveal-right,.reveal-scale,.reveal-up,.reveal-scale-up{opacity:1!important;transform:none!important}
}

/* ═══ SCROLL MARGIN FOR DEEP LINKS ═══ */
section[id]{scroll-margin-top:100px}

/* ═══ OVERSCROLL BEHAVIOR ═══ */
html,body{overscroll-behavior:none}

/* ═══ iOS INPUT ZOOM FIX ═══ */
@media screen and (max-width:768px){
  .form-group input,.form-group select,.form-group textarea,.hero-email-capture input{font-size:16px!important}
}
