:root{
  --brand:#218CCF;
  --brand-dark:#0A4E73;
  --border:#dbe7f1;
  --ink:#0a3246;
  --error:#b42318;
  --success:#0b7d3a;
}

/* Layout */
.wrap{ max-width:1160px; margin:0 auto; padding:0 16px; }
.section-pad{ padding:60px 0; }

/* Hero (contact/enquiry style) */
.hero-contact{
  position:relative;
  padding:120px 0 70px;
  background:#0A4E73 center/cover no-repeat;
  color:#fff;
}
.hero-contact .overlay{
  position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(10,78,115,.88),rgba(33,140,207,.55),rgba(18,216,224,.35));
}
.hero-contact .wrap{
  position:relative;
  z-index:1;
}
.hero-contact h1{ margin:0 0 8px; font-weight:900; }
.hero-contact .sub-title{ margin:0; opacity:.95; max-width:760px; }

/* Page head (request/private-sale style) */
.page-head{
  padding:40px 0;
  background:linear-gradient(180deg,#f7fbff,#fff);
  border-bottom:1px solid var(--border);
  text-align:center;
}
.page-head .form-head{
  font-size:2rem;
  font-weight:800;
  color:var(--brand-dark);
  margin:0;
}
.page-head .sub{
  color:#64748b;
  font-size:1.05rem;
  margin-top:6px;
}

/* Cards */
.card.soft,
.form-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:0 12px 32px rgba(15,23,42,.06);
}
.form-card{
  padding:24px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.form-card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(0,0,0,.08);
}
.glass{
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
}

/* Tabs */
.ce-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding:10px;
  border:1px solid rgba(219,231,241,.9);
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#f8fbff);
}
.ce-tab{
  appearance:none;
  border:1px solid #e6eef4;
  background:#fff;
  color:var(--brand-dark);
  border-radius:999px;
  padding:.55rem .95rem;
  font-weight:800;
  cursor:pointer;
}
.ce-tab.active{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
}
.ce-panel{ margin-top:8px; }
.ce-panel[hidden]{ display:none; }

/* Forms */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-field{ display:flex; flex-direction:column; gap:6px; }
.form-field.span-2{ grid-column:1 / -1; }

label{ font-weight:800; color:var(--brand-dark); }
.req{ color:var(--error); }

input, select, textarea{
  border:1px solid #e6eef4;
  border-radius:12px;
  padding:.7rem .9rem;
  font-weight:600;
  color:var(--ink);
  background:#fff;
  outline:0;
}
input:focus, select:focus, textarea:focus{
  border-color:#cfeaf7;
  box-shadow:0 0 0 .2rem rgba(33,140,207,.12);
}

/* Validation */
.invalid-feedback{
  display:none;
  color:var(--error);
  font-size:.9rem;
  font-weight:600;
}
input:invalid.touched ~ .invalid-feedback,
select:invalid.touched ~ .invalid-feedback,
textarea:invalid.touched ~ .invalid-feedback{
  display:block;
}

/* Alerts (shared) */
.alert-box{
  margin:10px 0 16px;
  padding:12px 14px;
  border-radius:12px;
  font-weight:700;
  text-align:center;
  transition: opacity .25s ease, transform .25s ease;
}
.alert-box.hidden{ display:none; }
.alert-box.ok{ background:#e8f5e9; color:var(--success); border:1px solid #cfe8d5; }
.alert-box.err{ background:#fdecea; color:var(--error); border:1px solid #f5c2c0; }

/* Buttons */
.form-actions{ display:flex; gap:10px; align-items:center; margin-top:16px; }

.btn{
  border:0;
  cursor:pointer;
  border-radius:999px;
  font-weight:800;
  padding:.7rem 1.4rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  transition:all .2s ease;
  text-decoration:none;
}
.btn.btn-brand{ background:var(--grad-brand, linear-gradient(135deg,#0A4E73,#218CCF,#12D8E0)); color:#fff; box-shadow:0 10px 22px rgba(33,140,207,.22); transition:transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.btn.btn-brand:hover{ transform:translateY(-2px); box-shadow:var(--glow-electric, 0 0 0 1px rgba(18,216,224,.18), 0 18px 40px rgba(18,216,224,.16)); }
.btn.btn-outline-secondary{
  border:1px solid var(--border);
  color:var(--brand-dark);
  background:#fff;
}
.btn:disabled{ opacity:.6; cursor:not-allowed; }

/* Spinner */
.btn-send .spin,
.btn-send .btn-spinner{
  display:none;
  width:1.05rem;
  height:1.05rem;
}
.btn-send .spin svg,
.btn-send .btn-spinner svg{ width:100%; height:100%; }
.btn-send .spin circle,
.btn-send .btn-spinner circle{
  fill:none;
  stroke:#fff;
  stroke-width:4;
  stroke-linecap:round;
  stroke-dasharray:126;
  stroke-dashoffset:110;
  animation:spin 1s linear infinite;
  transform-origin:center;
}
.btn-send.loading .spin,
.btn-send.loading .btn-spinner{ display:inline-flex; }
.btn-send.loading .lbl{ opacity:.85; }

@keyframes spin{
  to{ transform:rotate(360deg); stroke-dashoffset:0; }
}

/* Consent checkbox (privacy/consent confirmation before submit) */
.form-check{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:10px 12px;
  padding-left:0;
  margin:20px 0 16px;
}
.form-check-input{
  margin:3px 0 0;
  flex:0 0 auto;
  width:1.15em;
  height:1.15em;
  cursor:pointer;
  accent-color:var(--brand);
}
.form-check-label{
  flex:1 1 auto;
  min-width:0;
  font-weight:500;
  color:#4b5d6c;
  line-height:1.55;
  font-size:.95rem;
  cursor:pointer;
}
.form-check .invalid-feedback{
  flex-basis:100%;
  margin:2px 0 0;
  padding-left:calc(1.15em + 12px);
}

/* Recaptcha */
.recaptcha-box{ margin-top:12px; }

/* Honeypot */
.hp{ display:none !important; }

/* ✅ Fade-in: ONLY active when JS is enabled */
html.js .fade-in{
  opacity:0;
  transform:translateY(12px);
  transition:opacity .6s ease, transform .6s ease;
}
html.js .fade-in.in-view{
  opacity:1;
  transform:translateY(0);
}

/* No-JS fallback: visible */
html:not(.js) .fade-in{
  opacity:1;
  transform:none;
}

/* Responsive */
@media (max-width:820px){
  .form-grid{ grid-template-columns:1fr; }
}