:root{--bg-primary:#f8f9fa;--bg-secondary:#f1f3f5;--bg-card:#ffffff;--bg-card-hover:#f1f5f9;--bg-input:#f8fafc;--border:#e2e8f0;--border-light:#cbd5e1;--border-accent:rgba(8,145,178,0.2);--border-focus:#0891b2;--text:#0f172a;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--text-muted:#94a3b8;--accent:#0891b2;--accent-bright:#06b6d4;--accent-dim:rgba(8,145,178,0.06);--accent-glow:rgba(8,145,178,0.1);--accent-hover:#0e7490;--success:#059669;--warning:#d97706;--danger:#dc2626;--font-sans:'DM Sans',-apple-system,sans-serif;--font-mono:'JetBrains Mono',monospace;--font-display:'DM Sans',-apple-system,sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:12px}
        *{margin:0;padding:0;box-sizing:border-box}
        html{scroll-behavior:smooth}
        body{font-family:'DM Sans',-apple-system,sans-serif;background:var(--bg-primary);color:var(--text);min-height:100vh;line-height:1.7;overflow-x:hidden}
        .nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 2rem;height:72px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,0.95);backdrop-filter:blur(24px);border-bottom:1px solid var(--border)}
        .nav-brand{display:flex;align-items:center;gap:14px;text-decoration:none}
        .nav-logo{width:42px;height:42px;background:linear-gradient(135deg,var(--accent),#06b6d4);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:white}
        .nav-name{font-weight:700;font-size:16px;letter-spacing:1px;color:var(--text-primary)}
        .nav-name span{color:var(--accent-bright)}
        .nav-links{display:flex;align-items:center;gap:6px}
        .nav-links a{color:var(--text-secondary);text-decoration:none;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;transition:all 0.3s}
        .nav-links a:hover{color:var(--text-primary);background:var(--accent-dim)}
        .nav-links a.active{color:var(--accent)}
        .nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:10px;z-index:100000}
        .nav-hamburger span{width:20px;height:2px;background:var(--text-primary);border-radius:1px;transition:all 0.3s}
        .container{max-width:720px;margin:0 auto;padding:120px 1.5rem 3rem}
        footer{border-top:1px solid var(--border);margin-top:80px;padding:32px 2rem}
        .footer-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}
        .footer-left{display:flex;align-items:center;gap:12px}
        .footer-copy{font-size:13px;color:var(--text-tertiary)}
        .footer-links{display:flex;gap:24px;flex-wrap:wrap}
        .footer-links a{font-size:13px;color:var(--text-secondary);text-decoration:none;transition:color 0.3s}
        .footer-links a:hover{color:var(--accent)}
        .page-header{margin-bottom:2.5rem}
        .page-header h1{font-size:2rem;font-weight:700;margin-bottom:0.75rem}
        .page-header p{color:var(--text-secondary);font-size:16px;line-height:1.6}
        .form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:2rem}
        .form-section{margin-bottom:2rem}
        .form-section:last-child{margin-bottom:0}
        .form-section h3{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:1rem;padding-bottom:0.5rem;border-bottom:1px solid var(--border)}
        .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
        @media(max-width:600px){.form-row{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr}}
        
        .nav-dropdown-wrap{position:relative}.nav-dropdown{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);min-width:340px;padding:8px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg,12px);box-shadow:0 12px 40px rgba(0,0,0,0.1);z-index:1001}.nav-dropdown-wrap:hover .nav-dropdown,.nav-dropdown-wrap:focus-within .nav-dropdown{display:block}.nav-dropdown a{display:block;padding:12px 16px;border-radius:var(--radius-sm,6px);text-decoration:none;transition:background 0.15s}.nav-dropdown a:hover{background:var(--bg-secondary)}.nav-dropdown a strong{display:block;font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.nav-dropdown .dd-desc{display:block;font-size:13px;color:var(--text-secondary);line-height:1.4}.nav-dropdown-divider{height:1px;background:var(--border);margin:6px 0}.nav-dropdown-all strong{color:var(--accent)!important}
        @media(max-width:768px){
            .nav-links{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgb(255,255,255);flex-direction:column;align-items:center;justify-content:center;gap:24px;z-index:99999}
            .nav-links.open{display:flex}
            .nav-links a{font-size:20px;padding:12px 24px}
            .nav-hamburger{display:flex}
            .nav-dropdown-wrap{width:100%;text-align:center}.nav-dropdown{position:static;transform:none;display:block;min-width:unset;box-shadow:none;border:none;background:transparent;padding:0}.nav-dropdown a{padding:8px 24px;text-align:center}.nav-dropdown a strong{font-size:18px}.nav-dropdown .dd-desc{display:none}.nav-dropdown-divider{display:none}.nav-dropdown-wrap>a{display:none}
            .footer-inner{flex-direction:column;gap:16px;text-align:center}
            .footer-links{justify-content:center}
        }
        .form-group{margin-bottom:1rem}
        .form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}
        .form-group label .required{color:var(--danger)}
        .form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:'DM Sans',-apple-system,sans-serif;font-size:14px;transition:border-color 0.2s}
        .form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--border-focus)}
        .form-group textarea{resize:vertical;min-height:100px}
        .form-group select option{background:var(--bg-card)}
        .service-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin-bottom:1rem}
        @media(max-width:600px){.service-grid{grid-template-columns:1fr}}
        .service-option{padding:12px 16px;background:var(--bg-input);border:2px solid var(--border);border-radius:8px;cursor:pointer;transition:all 0.2s}
        .service-option:hover{border-color:var(--accent)}
        .service-option.selected{border-color:var(--accent);background:rgba(0,212,255,0.1)}
        .service-option input{display:none}
        .service-option .svc-name{font-size:14px;font-weight:600;margin-bottom:2px}
        .service-option .svc-desc{font-size:12px;color:var(--text-secondary)}
        .urgency-row{display:flex;gap:0.75rem;margin-bottom:1rem}
        .urgency-option{flex:1;padding:10px;background:var(--bg-input);border:2px solid var(--border);border-radius:8px;cursor:pointer;text-align:center;transition:all 0.2s}
        .urgency-option:hover{border-color:var(--accent)}
        .urgency-option.selected{border-color:var(--accent);background:rgba(0,212,255,0.1)}
        .urgency-option input{display:none}
        .urgency-option .urg-label{font-size:14px;font-weight:600}
        .urgency-option .urg-time{font-size:11px;color:var(--text-secondary)}
        .submit-btn{width:100%;padding:14px;background:var(--accent);color:#000;border:none;border-radius:8px;font-family:'DM Sans',-apple-system,sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:background 0.2s;margin-top:1rem}
        .submit-btn:hover{background:var(--accent-hover)}
        .submit-btn:disabled{opacity:0.6;cursor:not-allowed}
        .disclaimer{margin-top:1rem;font-size:12px;color:var(--text-secondary);text-align:center;line-height:1.5}
        .disclaimer a{color:var(--accent);text-decoration:none}
        .success-message{display:none;text-align:center;padding:3rem 2rem}
        .success-message .check{width:64px;height:64px;background:rgba(16,185,129,0.15);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;font-size:28px}
        .success-message h2{font-size:1.5rem;margin-bottom:0.75rem}
        .success-message p{color:var(--text-secondary);line-height:1.6}
        .error-banner{display:none;background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3);color:var(--danger);padding:12px 16px;border-radius:8px;margin-bottom:1rem;font-size:14px}


        /* ── Button Loading Spinner ── */
        .btn-loading { position: relative; color: transparent !important; pointer-events: none; }
        .btn-loading::after { content: ''; position: absolute; top: 50%; left: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border: 2px solid rgba(0,0,0,0.2); border-top-color: #000; border-radius: 50%; animation: btnSpin 0.6s linear infinite; }
        @keyframes btnSpin { to { transform: rotate(360deg); } }
        .skip-link { position: absolute; top: -100px; left: 16px; background: var(--accent); color: #000; padding: 12px 24px; border-radius: 0 0 8px 8px; font-weight: 700; font-size: 14px; z-index: 10001; text-decoration: none; transition: top 0.2s; }

        .skip-link:focus { top: 0; }

/* WCAG 2.1 AA touch targets */
.service-option{min-height:44px}
.urgency-option{min-height:44px}
.form-group input,.form-group select,.form-group textarea{min-height:44px}
button,.btn{min-height:44px}
:root{--text-tertiary:#64748b}

/* Fieldset styling for radio groups */
.form-fieldset{border:none;padding:0;margin:0}
.form-fieldset legend{display:contents}
