.contact-page{overflow-x:hidden}.section-space-sm{padding:70px 0}.contact-hero{position:relative;min-height:92vh;display:flex;align-items:center;padding:140px 0 90px;overflow:hidden;background:radial-gradient(circle at 15% 20%,rgba(124,58,237,.16),transparent 30%),radial-gradient(circle at 85% 70%,rgba(16,185,129,.12),transparent 30%)}.contact-orb{position:absolute;border-radius:999px;filter:blur(80px);pointer-events:none}.contact-orb-one{width:340px;height:340px;background:rgba(124,58,237,.18);top:12%;left:-8%}.contact-orb-two{width:300px;height:300px;background:rgba(6,182,212,.13);right:-5%;bottom:0}.contact-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:70px;align-items:center}.contact-hero h1{font-size:clamp(3.2rem,6.4vw,6.7rem);line-height:.95;letter-spacing:-.065em;margin:24px 0}.contact-hero h1 em,.section-heading em,.business-copy em,.contact-cta-panel em{font-family:serif;font-weight:400}.contact-hero-copy>p{max-width:690px;font-size:1.14rem;line-height:1.8;color:var(--text-muted)}.contact-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.contact-availability{display:flex;gap:13px;align-items:center;margin-top:30px}.availability-dot{width:12px;height:12px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 7px rgba(34,197,94,.13)}.contact-availability div{display:flex;flex-direction:column}.contact-availability small{color:var(--text-muted);margin-top:3px}.contact-hero-panel{position:relative;padding:28px;border:1px solid var(--border-color);border-radius:30px;background:rgba(255,255,255,.65);backdrop-filter:blur(20px);box-shadow:0 30px 90px rgba(15,23,42,.12)}[data-theme=dark] .contact-hero-panel{background:rgba(13,18,29,.72)}.hero-contact-card{display:flex;gap:16px;align-items:center;padding:20px;border-radius:20px;background:var(--surface);border:1px solid var(--border-color);margin-bottom:14px}.hero-contact-card div{display:flex;flex-direction:column;gap:4px}.hero-contact-card small{color:var(--text-muted)}.hero-contact-card a,.hero-contact-card strong{color:var(--text);font-weight:700}.hero-contact-note{display:flex;gap:12px;padding:17px;margin-top:18px;color:var(--text-muted);font-size:.92rem;line-height:1.55}.quick-contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:42px}.quick-contact-card{position:relative;display:flex;min-height:220px;flex-direction:column;padding:26px;border:1px solid var(--border-color);border-radius:24px;background:var(--surface);transition:.3s ease}.quick-contact-card:hover{transform:translateY(-7px);box-shadow:0 24px 60px rgba(15,23,42,.1);border-color:rgba(124,58,237,.35)}.quick-contact-card>span{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:rgba(124,58,237,.1);color:#7c3aed;margin-bottom:25px}.quick-contact-card small,.quick-contact-card em{color:var(--text-muted);font-style:normal}.quick-contact-card strong{margin:8px 0 20px;font-size:1.05rem}.contact-form-section{background:var(--surface-alt)}.contact-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:32px;align-items:start}.contact-form-wrap,.contact-side-panel{background:var(--surface);border:1px solid var(--border-color);border-radius:28px}.contact-form-wrap{padding:38px}.contact-form-heading{margin-bottom:32px}.contact-form-heading h2{font-size:clamp(2.1rem,4vw,3.6rem);letter-spacing:-.045em;margin:12px 0}.contact-form-heading p{color:var(--text-muted);line-height:1.7}.form-progress{display:flex;align-items:center;margin-bottom:35px}.form-progress span{display:flex;align-items:center;gap:8px;color:var(--text-muted)}.form-progress span b{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--border-color)}.form-progress span.active{color:var(--text)}.form-progress span.active b{background:#7c3aed;color:#fff;border-color:#7c3aed}.form-progress i{flex:1;height:1px;background:var(--border-color);margin:0 12px}.contact-step{display:none}.contact-step.active{display:block}.contact-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-fields-grid label,.contact-select-row label,.message-field{display:flex;flex-direction:column;gap:9px;font-weight:600}.contact-fields-grid input,.contact-select-row select,.message-field textarea{width:100%;padding:15px 16px;border:1px solid var(--border-color);border-radius:14px;background:var(--surface-alt);color:var(--text);font:inherit;outline:none}.contact-fields-grid input:focus,.contact-select-row select:focus,.message-field textarea:focus{border-color:#7c3aed;box-shadow:0 0 0 4px rgba(124,58,237,.1)}.form-actions{display:flex;justify-content:space-between;gap:15px;margin-top:30px}.service-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.service-choice-grid label input{position:absolute;opacity:0}.service-choice-grid label span{display:flex;align-items:center;gap:10px;padding:16px;border:1px solid var(--border-color);border-radius:15px;cursor:pointer;background:var(--surface-alt)}.service-choice-grid input:checked+span{border-color:#7c3aed;background:rgba(124,58,237,.1);color:#6d28d9}.contact-select-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.contact-upload{display:flex;align-items:center;gap:15px;border:1px dashed var(--border-color);border-radius:18px;padding:20px;margin-top:18px;cursor:pointer}.contact-upload input{display:none}.contact-upload>span{display:flex;flex-direction:column;flex:1}.contact-upload small{color:var(--text-muted);margin-top:4px}.contact-consent{display:flex;gap:10px;align-items:flex-start;margin-top:18px;color:var(--text-muted);font-size:.92rem}.contact-form-error{color:#dc2626;min-height:20px}.contact-success{display:none;text-align:center;padding:25px}.contact-success.active{display:block}.contact-success>span{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:rgba(34,197,94,.13);color:#16a34a;margin:0 auto 20px}.contact-side-panel{padding:30px;position:sticky;top:110px}.contact-side-panel h3{font-size:2rem;margin:14px 0 28px}.contact-side-panel ol{list-style:none;padding:0;margin:0}.contact-side-panel li{display:flex;gap:14px;padding:20px 0;border-top:1px solid var(--border-color)}.contact-side-panel li b{color:#7c3aed}.contact-side-panel li div{display:flex;flex-direction:column;gap:6px}.contact-side-panel li span{color:var(--text-muted);line-height:1.55}.side-trust{display:flex;gap:12px;padding:18px;border-radius:16px;background:var(--surface-alt);margin-top:20px}.side-trust div{display:flex;flex-direction:column}.side-trust span{color:var(--text-muted);font-size:.9rem;margin-top:4px}.booking-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:45px}.booking-card{display:flex;flex-direction:column;min-height:320px;padding:26px;border:1px solid var(--border-color);border-radius:24px;background:var(--surface)}.booking-card>span{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;background:rgba(6,182,212,.11);color:#0891b2;margin-bottom:28px}.booking-card h3{font-size:1.35rem;margin:8px 0}.booking-card p{color:var(--text-muted);line-height:1.65}.booking-card a{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-weight:700;color:#7c3aed}.business-layout{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}.business-copy h2{font-size:clamp(2.5rem,5vw,5rem);line-height:1;margin:18px 0}.business-copy>p{color:var(--text-muted);line-height:1.75}.business-copy dl{margin-top:30px}.business-copy dl div{display:grid;grid-template-columns:145px 1fr;padding:15px 0;border-top:1px solid var(--border-color)}.business-copy dt{color:var(--text-muted)}.business-copy dd{margin:0;font-weight:600}.map-placeholder{min-height:500px;display:grid;place-items:center;text-align:center;padding:40px;border-radius:30px;border:1px solid var(--border-color);background:linear-gradient(135deg,var(--surface-alt),var(--surface));position:relative;overflow:hidden}.map-placeholder>svg{width:70px;height:70px;color:#7c3aed}.map-placeholder span{font-size:1.5rem;font-weight:800}.map-placeholder small{color:var(--text-muted);max-width:320px}.social-panel{display:grid;grid-template-columns:.8fr 1.2fr;gap:45px;align-items:center;padding:42px;border:1px solid var(--border-color);border-radius:30px;background:var(--surface)}.social-panel h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1;margin:15px 0}.social-links-premium{display:grid;grid-template-columns:1fr 1fr;gap:12px}.social-links-premium a{display:grid;grid-template-columns:45px 1fr auto;gap:14px;align-items:center;padding:17px;border:1px solid var(--border-color);border-radius:16px;transition:.25s}.social-links-premium a:hover{transform:translateY(-3px);border-color:#7c3aed}.social-links-premium a>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#111827;color:#fff;font-weight:800}.social-links-premium div{display:flex;flex-direction:column}.social-links-premium small{color:var(--text-muted);margin-top:3px}.faq-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px}.contact-faq-list details{border-top:1px solid var(--border-color)}.contact-faq-list details:last-child{border-bottom:1px solid var(--border-color)}.contact-faq-list summary{display:flex;justify-content:space-between;align-items:center;padding:24px 0;font-size:1.08rem;font-weight:700;cursor:pointer;list-style:none}.contact-faq-list p{color:var(--text-muted);line-height:1.75;padding:0 50px 24px 0}.contact-cta-panel{text-align:center;padding:75px 30px;border-radius:34px;background:linear-gradient(135deg,#111827,#312e81);color:#fff}.contact-cta-panel h2{font-size:clamp(2.8rem,6vw,6rem);line-height:.98;margin:18px 0}.contact-cta-panel p{color:rgba(255,255,255,.72);font-size:1.1rem}.contact-cta-panel>div{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:28px}.mobile-contact-cta{display:none;position:fixed;left:16px;right:16px;bottom:16px;z-index:80;align-items:center;justify-content:center;gap:10px;padding:15px;border-radius:999px;background:#7c3aed;color:#fff;font-weight:800;box-shadow:0 16px 45px rgba(76,29,149,.35);transform:translateY(120px);opacity:0;transition:.3s}.mobile-contact-cta.is-visible{transform:translateY(0);opacity:1}
@media(max-width:1000px){.contact-hero-grid,.business-layout,.social-panel,.faq-layout{grid-template-columns:1fr}.contact-form-layout{grid-template-columns:1fr}.contact-side-panel{position:static}.quick-contact-grid,.booking-grid{grid-template-columns:1fr 1fr}.social-links-premium{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.contact-hero{min-height:auto;padding:125px 0 65px}.contact-hero-grid{gap:40px}.contact-hero h1{font-size:3.2rem}.contact-hero-actions .button{width:100%}.quick-contact-grid,.booking-grid,.social-links-premium,.contact-fields-grid,.contact-select-row{grid-template-columns:1fr}.service-choice-grid{grid-template-columns:1fr 1fr}.contact-form-wrap{padding:24px 18px}.contact-side-panel{padding:24px 20px}.form-progress small{display:none}.business-copy dl div{grid-template-columns:1fr;gap:6px}.map-placeholder{min-height:360px}.social-panel{padding:28px 20px}.contact-cta-panel{padding:55px 20px}.mobile-contact-cta{display:flex}.site-footer{padding-bottom:90px}.section-space-sm{padding:52px 0}}

/* Contact Page v3.1 premium polish */
.contact-form-section{padding-top:clamp(92px,10vw,150px);padding-bottom:clamp(92px,10vw,150px);background:linear-gradient(180deg,var(--surface-alt),var(--surface-alt) 65%,var(--surface))}
.contact-form-layout{gap:38px}
.contact-form-wrap{position:relative;overflow:hidden;padding:clamp(28px,4vw,52px);border-radius:34px;box-shadow:0 28px 80px rgba(15,23,42,.09)}
.contact-form-wrap:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#7c3aed,#06b6d4,#22c55e)}
.contact-form-wrap:after{content:"";position:absolute;width:260px;height:260px;right:-120px;top:-120px;border-radius:50%;background:rgba(124,58,237,.08);filter:blur(8px);pointer-events:none}
.contact-form-heading{position:relative;z-index:1;padding-bottom:30px;border-bottom:1px solid var(--border-color);margin-bottom:30px}
.contact-form-title-row{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.contact-form-title-row h2{margin-bottom:0}
.form-response-badge{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:10px 14px;border:1px solid rgba(34,197,94,.25);border-radius:999px;background:rgba(34,197,94,.09);color:#15803d;font-size:.82rem;font-weight:750}
[data-theme=dark] .form-response-badge{color:#86efac}
.form-benefit-row{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:20px}
.form-benefit-row span{display:inline-flex;align-items:center;gap:7px;color:var(--text-muted);font-size:.88rem;font-weight:600}
.form-benefit-row svg{width:17px;height:17px;color:#7c3aed}
.form-progress{position:relative;z-index:1;padding:14px;border:1px solid var(--border-color);border-radius:18px;background:var(--surface-alt)}
.form-progress span{min-width:max-content;font-size:.9rem;font-weight:700}
.form-progress span b{width:38px;height:38px;background:var(--surface);box-shadow:0 5px 16px rgba(15,23,42,.06)}
.contact-step{position:relative;z-index:1;animation:contactStepIn .35s ease both}
@keyframes contactStepIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.contact-fields-grid{gap:22px}
.contact-fields-grid label,.contact-select-row label,.message-field{gap:10px;font-size:.9rem}
.contact-fields-grid input,.contact-select-row select,.message-field textarea{min-height:58px;padding:17px 18px;border-radius:16px;background:var(--surface);transition:border-color .2s,box-shadow .2s,transform .2s}
.message-field textarea{min-height:190px;resize:vertical}
.contact-fields-grid input:hover,.contact-select-row select:hover,.message-field textarea:hover{border-color:rgba(124,58,237,.45)}
.contact-fields-grid input:focus,.contact-select-row select:focus,.message-field textarea:focus{transform:translateY(-1px);box-shadow:0 0 0 4px rgba(124,58,237,.1),0 12px 30px rgba(15,23,42,.06)}
.contact-step fieldset{padding:0;border:0;margin:0}
.contact-step legend{font-size:1rem;font-weight:800;margin-bottom:16px}
.service-choice-grid{gap:14px}
.service-choice-grid label span{min-height:88px;flex-direction:column;justify-content:center;text-align:center;padding:17px 12px;border-radius:18px;background:var(--surface);transition:.25s ease}
.service-choice-grid label span svg{width:24px;height:24px;color:#7c3aed}
.service-choice-grid label:hover span{transform:translateY(-3px);border-color:rgba(124,58,237,.38);box-shadow:0 12px 28px rgba(15,23,42,.07)}
.service-choice-grid input:checked+span{box-shadow:inset 0 0 0 1px #7c3aed,0 12px 30px rgba(124,58,237,.12)}
.contact-upload{min-height:112px;padding:24px;border-radius:20px;background:var(--surface-alt);transition:.25s}
.contact-upload:hover{border-color:#7c3aed;background:rgba(124,58,237,.045);transform:translateY(-2px)}
.contact-upload>svg{width:34px;height:34px;color:#7c3aed}
.contact-upload>b{padding:9px 13px;border-radius:12px;background:var(--surface);border:1px solid var(--border-color);font-size:.82rem}
.contact-side-panel{border-radius:30px;box-shadow:0 25px 70px rgba(15,23,42,.07);overflow:hidden}
.contact-side-panel:before{content:"";display:block;height:4px;margin:-30px -30px 28px;background:linear-gradient(90deg,#06b6d4,#7c3aed)}

.contact-business{padding-top:clamp(120px,12vw,190px);padding-bottom:clamp(95px,10vw,150px)}
.map-card{overflow:hidden;border:1px solid var(--border-color);border-radius:32px;background:var(--surface);box-shadow:0 28px 80px rgba(15,23,42,.12)}
.map-card iframe{display:block;width:100%;height:430px;border:0;filter:saturate(.92) contrast(.98)}
.map-card-info{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:22px}
.map-card-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;background:rgba(124,58,237,.1);color:#7c3aed}
.map-card-info div{display:flex;flex-direction:column;gap:3px}
.map-card-info small,.map-card-info p{color:var(--text-muted)}
.map-card-info p{margin:0;font-size:.88rem}
.map-card-info .button{white-space:nowrap}

.contact-social{padding-top:clamp(75px,8vw,120px);padding-bottom:clamp(80px,9vw,135px)}
.social-panel{padding:clamp(32px,5vw,58px);box-shadow:0 28px 80px rgba(15,23,42,.07)}
.social-links-premium a{min-height:84px;padding:18px;border-radius:19px;background:var(--surface-alt)}
.social-links-premium a:hover{box-shadow:0 16px 34px rgba(15,23,42,.08)}
.social-links-premium .social-brand-icon{width:46px;height:46px;border-radius:15px;background:#111827;color:#fff}
.social-links-premium .social-brand-icon svg{width:23px;height:23px}

.contact-faq{padding-top:clamp(90px,10vw,145px);padding-bottom:clamp(120px,13vw,195px)}
.contact-final-cta{padding-top:0;padding-bottom:clamp(120px,12vw,185px)}
.contact-final-cta+.mobile-contact-cta+footer,.contact-final-cta~.site-footer{margin-top:0}

@media(max-width:700px){
.contact-form-section{padding-top:80px;padding-bottom:80px}.contact-form-wrap{padding:28px 18px;border-radius:25px}.contact-form-title-row{display:block}.form-response-badge{margin-top:18px;white-space:normal}.form-benefit-row{display:grid;gap:10px}.form-progress{padding:10px}.form-progress i{margin:0 7px}.service-choice-grid{grid-template-columns:1fr 1fr}.service-choice-grid label span{min-height:96px}.contact-upload{align-items:flex-start;flex-wrap:wrap}.contact-upload>b{margin-left:48px}.contact-business{padding-top:100px}.map-card iframe{height:330px}.map-card-info{grid-template-columns:auto 1fr}.map-card-info .button{grid-column:1/-1;width:100%;justify-content:center}.contact-social{padding-top:65px;padding-bottom:85px}.contact-faq{padding-top:75px;padding-bottom:120px}.contact-final-cta{padding-bottom:120px}
}

/* =========================================================
   CONTACT FORM VISIBILITY FIX — v3.2
   Strong input boundaries + complete 3-step progress system
   ========================================================= */
.contact-form-wrap {
  border: 1px solid rgba(124, 58, 237, .22);
  background:
    radial-gradient(circle at 100% 0, rgba(124, 58, 237, .07), transparent 32%),
    var(--surface);
}

.contact-form-wrap form {
  position: relative;
  z-index: 2;
}

/* Progress bar: show full step labels and visible connectors */
.form-progress {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: auto minmax(36px, 1fr) auto minmax(36px, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 20px 22px;
  margin: 0 0 38px;
  border: 1px solid var(--border-color);
  border-radius: 22px;
  background: var(--surface-alt);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45);
}

.form-progress > span {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  min-width: max-content;
  color: var(--text-muted);
  font-weight: 750;
  opacity: 1;
}

.form-progress > span b {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(100, 116, 139, .28);
  border-radius: 50%;
  background: var(--surface);
  color: var(--text);
  font-size: 1rem;
  line-height: 1;
  box-shadow: 0 9px 24px rgba(15, 23, 42, .08);
  transition: border-color .25s ease, background .25s ease, color .25s ease, transform .25s ease;
}

.form-progress > span small {
  display: inline !important;
  color: inherit;
  font-size: .94rem;
  font-weight: 750;
  letter-spacing: -.01em;
}

.form-progress > i {
  position: relative;
  width: 100%;
  height: 3px;
  margin: 0;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(100, 116, 139, .22);
}

.form-progress > i::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #7c3aed, #4f46e5);
  transition: width .35s ease;
}

.form-progress > span.active {
  color: var(--text);
}

.form-progress > span.active b {
  border-color: transparent;
  background: linear-gradient(135deg, #8b5cf6, #6d28d9);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(124, 58, 237, .28);
}

.form-progress > span.is-complete b {
  border-color: rgba(124, 58, 237, .35);
  background: rgba(124, 58, 237, .12);
  color: #7c3aed;
}

.form-progress > i.is-complete::after {
  width: 100%;
}

/* Labels */
.contact-fields-grid label,
.contact-select-row label,
.message-field {
  gap: 10px;
  color: var(--text);
  font-size: .96rem;
  font-weight: 750;
}

/* All visible inputs */
.contact-fields-grid input,
.contact-select-row select,
.message-field textarea {
  min-height: 58px;
  padding: 16px 18px;
  border: 1.5px solid rgba(100, 116, 139, .36);
  border-radius: 16px;
  background: var(--surface);
  color: var(--text);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .55),
    0 5px 14px rgba(15, 23, 42, .035);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease, transform .2s ease;
}

.message-field textarea {
  min-height: 180px;
  resize: vertical;
  line-height: 1.65;
}

.contact-fields-grid input::placeholder,
.message-field textarea::placeholder {
  color: rgba(100, 116, 139, .78);
  opacity: 1;
}

.contact-fields-grid input:hover,
.contact-select-row select:hover,
.message-field textarea:hover {
  border-color: rgba(124, 58, 237, .48);
}

.contact-fields-grid input:focus,
.contact-select-row select:focus,
.message-field textarea:focus {
  border-color: #7c3aed;
  background: var(--surface);
  box-shadow:
    0 0 0 4px rgba(124, 58, 237, .12),
    0 12px 30px rgba(124, 58, 237, .08);
  transform: translateY(-1px);
}

.contact-fields-grid input:user-invalid,
.contact-select-row select:user-invalid,
.message-field textarea:user-invalid {
  border-color: #ef4444;
}

/* Service cards and upload area should also feel like form controls */
.service-choice-grid label span {
  min-height: 76px;
  border: 1.5px solid rgba(100, 116, 139, .32);
  background: var(--surface);
  box-shadow: 0 5px 15px rgba(15, 23, 42, .035);
}

.service-choice-grid label span:hover {
  border-color: rgba(124, 58, 237, .5);
  transform: translateY(-2px);
}

.service-choice-grid input:checked + span {
  border-color: #7c3aed;
  background: linear-gradient(135deg, rgba(124, 58, 237, .13), rgba(79, 70, 229, .08));
  box-shadow: 0 0 0 3px rgba(124, 58, 237, .09);
}

.contact-upload {
  border: 1.5px dashed rgba(124, 58, 237, .48);
  background: rgba(124, 58, 237, .045);
}

.contact-upload:hover {
  border-color: #7c3aed;
  background: rgba(124, 58, 237, .075);
}

/* Dark theme contrast */
[data-theme="dark"] .contact-form-wrap {
  border-color: rgba(139, 92, 246, .32);
  background:
    radial-gradient(circle at 100% 0, rgba(124, 58, 237, .13), transparent 34%),
    var(--surface);
}

[data-theme="dark"] .form-progress {
  border-color: rgba(148, 163, 184, .19);
  background: rgba(255, 255, 255, .025);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035);
}

[data-theme="dark"] .form-progress > span b {
  border-color: rgba(148, 163, 184, .3);
  background: rgba(255, 255, 255, .035);
  box-shadow: none;
}

[data-theme="dark"] .contact-fields-grid input,
[data-theme="dark"] .contact-select-row select,
[data-theme="dark"] .message-field textarea,
[data-theme="dark"] .service-choice-grid label span {
  border-color: rgba(148, 163, 184, .28);
  background: rgba(255, 255, 255, .025);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
}

[data-theme="dark"] .contact-fields-grid input::placeholder,
[data-theme="dark"] .message-field textarea::placeholder {
  color: rgba(203, 213, 225, .55);
}

/* Tablet/mobile: compact but still fully readable */
@media (max-width: 760px) {
  .form-progress {
    grid-template-columns: auto 1fr auto 1fr auto;
    gap: 7px;
    padding: 16px 12px;
    border-radius: 18px;
  }

  .form-progress > span {
    display: grid;
    justify-items: center;
    gap: 7px;
    min-width: 54px;
    text-align: center;
  }

  .form-progress > span b {
    width: 39px;
    height: 39px;
  }

  .form-progress > span small {
    font-size: .72rem;
    line-height: 1;
  }

  .form-progress > i {
    height: 2px;
  }

  .contact-fields-grid input,
  .contact-select-row select,
  .message-field textarea {
    min-height: 56px;
    font-size: 16px;
  }
}

@media (max-width: 430px) {
  .form-progress {
    gap: 4px;
    padding-inline: 9px;
  }

  .form-progress > span {
    min-width: 48px;
  }

  .form-progress > span small {
    font-size: .66rem;
  }

  .form-progress > span b {
    width: 36px;
    height: 36px;
    font-size: .9rem;
  }
}


/* =========================================================
   CONTACT PAGE — NAVIGATION STATE & MOBILE MENU SAFETY
   ========================================================= */
.contact-page .desktop-nav > a[aria-current="page"],
.contact-page .desktop-nav > a.is-active {
  color: var(--primary);
  font-weight: 700;
}

.contact-page .desktop-nav > a[aria-current="page"]::after,
.contact-page .desktop-nav > a.is-active::after {
  transform: scaleX(1);
  opacity: 1;
}

.contact-page .mobile-menu a[aria-current="page"],
.contact-page .mobile-menu a.is-active {
  color: var(--primary);
  background: color-mix(in srgb, var(--primary) 10%, transparent);
  border-color: color-mix(in srgb, var(--primary) 25%, transparent);
}

.contact-page .mobile-menu a[aria-current="page"] svg,
.contact-page .mobile-menu a.is-active svg {
  color: var(--primary);
}
