/* contact page-specific styles */
/* ============================================================
   CONTACT / QUOTE PAGE STYLES
   ============================================================ */
/* page hero (compact, sits under fixed header) */
.page-hero{
  position:relative;background:var(--cha-black);overflow:hidden;isolation:isolate;
  padding-top:calc(var(--header-h) + var(--sp-16));
  padding-bottom:var(--sp-16);
  border-bottom:var(--bw) solid var(--slate-800);
}
.page-hero__glow{
  position:absolute;z-index:-1;pointer-events:none;
  width:60vw;height:60vw;max-width:760px;max-height:760px;top:-18%;right:-12%;
  background:radial-gradient(circle, rgba(105,217,255,0.14) 0%, rgba(111,142,216,0.07) 40%, transparent 68%);
  filter:blur(10px);
}
.page-hero__texture{
  position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0.045;mix-blend-mode:screen;
  background-image:
    repeating-linear-gradient(116deg, transparent 0 40px, rgba(168,221,228,0.5) 40px 41px),
    repeating-linear-gradient(60deg, transparent 0 70px, rgba(168,221,228,0.32) 70px 71px);
  -webkit-mask-image:radial-gradient(ellipse at 80% 20%, black 0%, transparent 72%);
  mask-image:radial-gradient(ellipse at 80% 20%, black 0%, transparent 72%);
}
.page-hero__inner{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.page-hero__content{max-width:720px}
.page-hero__eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:var(--fs-overline);font-weight:600;letter-spacing:var(--ls-overline);text-transform:uppercase;
  color:var(--epoxy-blue);margin-bottom:var(--sp-4);
}
.page-hero__eyebrow::before{content:"";width:28px;height:1.5px;background:var(--epoxy-blue);display:inline-block}
.page-hero__title{
  font-family:var(--font-heading);font-weight:800;font-size:var(--fs-h1);line-height:1.08;
  letter-spacing:var(--ls-tight);color:var(--ice-white);margin-bottom:var(--sp-4);text-wrap:balance;
}
.page-hero__lead{font-size:var(--fs-body-l);line-height:1.6;color:var(--concrete-200);max-width:56ch}

/* main contact layout: form + sidebar */
.contact{position:relative;background:var(--cha-black);padding:var(--section-y) 0;overflow:hidden;isolation:isolate}
.contact__glow{
  position:absolute;z-index:-1;pointer-events:none;width:50vw;height:50vw;max-width:640px;max-height:640px;
  bottom:-16%;left:-12%;
  background:radial-gradient(circle, rgba(111,142,216,0.09) 0%, rgba(105,217,255,0.05) 42%, transparent 70%);filter:blur(10px);
}
.contact__inner{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.contact__layout{display:grid;grid-template-columns:1fr;gap:var(--sp-12)}
@media (min-width:1024px){.contact__layout{grid-template-columns:1.5fr 1fr;gap:var(--sp-16);align-items:start}}

/* form panel */
.quote-panel{
  background:var(--carbon);border:var(--bw) solid var(--slate-800);border-radius:var(--r-lg);
  padding:clamp(var(--sp-6),4vw,var(--sp-12));
}
.quote-panel__head{margin-bottom:var(--sp-8)}
.quote-panel__title{
  font-family:var(--font-heading);font-weight:800;font-size:var(--fs-h3);letter-spacing:var(--ls-tight);
  color:var(--ice-white);margin-bottom:var(--sp-2);
}
.quote-panel__sub{font-size:0.9375rem;color:var(--concrete-200);line-height:1.6}

/* form grid */
.form-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-6)}
@media (min-width:560px){.form-grid{grid-template-columns:1fr 1fr}}
.field{display:flex;flex-direction:column;gap:8px}
.field--full{grid-column:1/-1}
.field__label{
  font-size:0.875rem;font-weight:600;color:var(--mist);
  display:flex;align-items:center;gap:6px;
}
.field__req{color:var(--epoxy-blue);font-size:0.875rem}
.field__optional{color:var(--concrete-400);font-weight:400;font-size:0.8125rem}
.input,.select,.textarea{
  font-family:var(--font-body);font-size:1rem;color:var(--ice-white);
  background:var(--graphite);border:var(--bw) solid var(--slate-600);border-radius:var(--r-sm);
  padding:14px 16px;width:100%;
  transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard);
}
.input::placeholder,.textarea::placeholder{color:var(--concrete-400)}
.input:focus,.select:focus,.textarea:focus{
  outline:none;border-color:var(--epoxy-blue);box-shadow:0 0 0 3px var(--focus-ring);background:var(--carbon);
}
.textarea{resize:vertical;min-height:130px;line-height:1.55}
/* custom select arrow */
.select-wrap{position:relative}
.select{appearance:none;-webkit-appearance:none;padding-right:44px;cursor:pointer}
.select:invalid{color:var(--concrete-400)} /* show placeholder colour until chosen */
.select-wrap::after{
  content:"";position:absolute;right:16px;top:50%;width:10px;height:10px;pointer-events:none;
  border-right:2px solid var(--concrete-200);border-bottom:2px solid var(--concrete-200);
  transform:translateY(-70%) rotate(45deg);
}
.select option{background:var(--graphite);color:var(--ice-white)}

/* file upload (placeholder, front-end ready) */
.filedrop{
  display:flex;align-items:center;gap:14px;
  border:1.5px dashed var(--slate-600);border-radius:var(--r-sm);
  padding:16px;background:var(--graphite);cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard);
}
.filedrop:hover{border-color:rgba(105,217,255,0.5);background:var(--carbon)}
.filedrop__icon{width:40px;height:40px;flex:0 0 auto;border-radius:var(--r-sm);display:grid;place-items:center;background:rgba(105,217,255,0.07);border:var(--bw) solid rgba(105,217,255,0.18);color:var(--epoxy-blue)}
.filedrop__icon svg{width:22px;height:22px}
.filedrop__text{font-size:0.875rem;color:var(--concrete-200);line-height:1.4}
.filedrop__text strong{display:block;color:var(--mist);font-weight:600}
.filedrop input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.filedrop__names{font-size:0.8125rem;color:var(--epoxy-blue);margin-top:8px}

/* consent + submit */
.form-foot{margin-top:var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-6)}
.form-note{font-size:0.8125rem;color:var(--concrete-400);line-height:1.5}
.btn--block{width:100%;padding:18px 32px;font-size:1.0625rem}
.form-error{display:none;font-size:0.8125rem;color:var(--error);margin-top:4px}
.input.invalid,.select.invalid,.textarea.invalid{border-color:var(--error)}
.field.has-error .form-error{display:block}
/* success message */
.form-success{
  display:none;align-items:flex-start;gap:14px;padding:var(--sp-6);border-radius:var(--r-md);
  background:rgba(79,209,165,0.08);border:var(--bw) solid rgba(79,209,165,0.3);margin-bottom:var(--sp-6);
}
.form-success.show{display:flex}
.form-success svg{width:24px;height:24px;color:var(--success);flex:0 0 auto;margin-top:1px}
.form-success p{font-size:0.9375rem;color:var(--mist);line-height:1.5}
.form-success strong{color:var(--ice-white);display:block;margin-bottom:2px;font-family:var(--font-heading)}
/* error banner (matches success block, error colour) */
.form-errorbox{
  display:none;align-items:flex-start;gap:14px;padding:var(--sp-6);border-radius:var(--r-md);
  background:rgba(242,104,92,0.08);border:var(--bw) solid rgba(242,104,92,0.3);margin-bottom:var(--sp-6);
}
.form-errorbox.show{display:flex}
.form-errorbox svg{width:24px;height:24px;color:var(--error);flex:0 0 auto;margin-top:1px}
.form-errorbox p{font-size:0.9375rem;color:var(--mist);line-height:1.5}
.form-errorbox strong{color:var(--ice-white);display:block;margin-bottom:2px;font-family:var(--font-heading)}
/* submitting / loading state on the button */
.btn.is-loading{position:relative;color:transparent !important;pointer-events:none;opacity:0.85}
.btn.is-loading::after{content:"";position:absolute;top:50%;left:50%;width:18px;height:18px;margin:-9px 0 0 -9px;
  border:2px solid rgba(5,5,5,0.35);border-top-color:var(--cha-black);border-radius:50%;animation:btnspin 0.6s linear infinite}
@keyframes btnspin{to{transform:rotate(360deg)}}

/* sidebar */
.contact-aside{display:flex;flex-direction:column;gap:var(--sp-6)}
.aside-card{
  background:var(--graphite);border:var(--bw) solid var(--slate-800);border-radius:var(--r-md);padding:var(--sp-8);
}
.aside-card--accent{
  background:
    radial-gradient(120% 130% at 100% 0%, rgba(111,142,216,0.14) 0%, transparent 55%),
    var(--carbon);
  border-color:rgba(105,217,255,0.22);
}
.aside-card__label{
  font-size:var(--fs-overline);font-weight:600;letter-spacing:var(--ls-overline);text-transform:uppercase;
  color:var(--epoxy-blue);margin-bottom:var(--sp-3);
}
.aside-card__phone{
  display:inline-flex;align-items:center;gap:12px;margin-bottom:var(--sp-4);color:var(--ice-white);
  transition:color var(--dur-fast) var(--ease-standard);
}
.aside-card__phone:hover{color:var(--epoxy-blue)}
.aside-card__phone-icon{width:46px;height:46px;flex:0 0 auto;border-radius:var(--r-full);display:grid;place-items:center;background:rgba(105,217,255,0.08);border:var(--bw) solid rgba(105,217,255,0.22);color:var(--epoxy-blue)}
.aside-card__phone-icon svg{width:22px;height:22px}
.aside-card__phone-num{font-family:var(--font-heading);font-weight:800;font-size:1.5rem;letter-spacing:var(--ls-tight);line-height:1.1}
.aside-card__hint{font-size:0.875rem;color:var(--concrete-200);line-height:1.55;margin-bottom:var(--sp-6)}
.aside-card .btn{width:100%;margin-bottom:var(--sp-3)}
.aside-card .btn:last-child{margin-bottom:0}
.aside-card__title{font-family:var(--font-heading);font-weight:700;font-size:var(--fs-h4);color:var(--ice-white);letter-spacing:var(--ls-tight);margin-bottom:var(--sp-4)}

/* trust list */
.assure-list{display:flex;flex-direction:column;gap:var(--sp-4)}
.assure-item{display:flex;align-items:flex-start;gap:12px}
.assure-item__icon{width:38px;height:38px;flex:0 0 auto;border-radius:var(--r-sm);display:grid;place-items:center;background:rgba(105,217,255,0.07);border:var(--bw) solid rgba(105,217,255,0.18);color:var(--epoxy-blue)}
.assure-item__icon svg{width:20px;height:20px}
.assure-item__text strong{display:block;color:var(--ice-white);font-family:var(--font-heading);font-weight:700;font-size:0.9375rem;margin-bottom:2px;letter-spacing:var(--ls-tight)}
.assure-item__text span{font-size:0.875rem;color:var(--concrete-200);line-height:1.5}

/* service area card */
.area-card__text{font-size:0.9375rem;color:var(--concrete-200);line-height:1.6;margin-bottom:var(--sp-4)}
.area-suburbs{display:flex;flex-wrap:wrap;gap:8px}
.area-chip{font-size:0.8125rem;color:var(--mist);background:var(--graphite);border:var(--bw) solid var(--slate-800);border-radius:var(--r-full);padding:6px 12px}

/* hours */
.hours-row{display:flex;justify-content:space-between;gap:var(--sp-4);padding:8px 0;border-bottom:var(--bw) solid var(--slate-800);font-size:0.875rem}
.hours-row:last-child{border-bottom:none}
.hours-row span:first-child{color:var(--concrete-200)}
.hours-row span:last-child{color:var(--mist);font-weight:600}
