/* ==========================================================================
   Contact (Enquire) page — page-specific styles.
   Normal flowing content page (no scroll-snap), same architecture as
   marks.css/paradigm.css/reviews.css. Shared button/nav/footer/cookie styles
   live in components.css; global .pg-col/.pg-title/.pg-headline/.pg-body
   type-scale primitives in base.css.
   ========================================================================== */

.ct-sec {
  background: linear-gradient(var(--colour-bg), var(--colour-bg)) center / 100% 100% no-repeat;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  padding: min(56px, 8dvh) 20px;
}

.ct-sec--accent {
  background: linear-gradient(var(--colour-accent), var(--colour-accent)) center / 100% 100% no-repeat;
}

.ct-back {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-top: 8px;
  font-family: var(--font-ui);
  font-weight: 400;
  font-size: min(0.8rem, 3.6cqw, 2.1dvh);
  letter-spacing: 0.08em;
  color: var(--colour-ink);
  text-transform: uppercase;
}

.ct-back:hover { color: var(--colour-accent); }

.ct-form {
  display: flex;
  flex-direction: column;
  gap: min(14px, 1.6dvh);
  margin-top: min(26px, 3dvh);
  width: 100%;
}

.ct-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.ct-field-label {
  font-family: var(--font-ui);
  font-weight: 500;
  font-size: min(0.7rem, 3cqw, 1.8dvh);
  letter-spacing: 0.1em;
  color: var(--colour-accent);
  text-transform: uppercase;
}

.ct-input,
.ct-textarea {
  width: 100%;
  box-sizing: border-box;
  background: var(--colour-card);
  border: none;
  border-radius: 10px;
  padding: min(13px, 1.5dvh) 14px;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: min(0.95rem, 4.2cqw, 2.5dvh);
  color: var(--colour-ink);
  box-shadow: 0 3px 12px rgba(58, 63, 67, 0.05);
}

.ct-textarea {
  height: calc(min(0.95rem, 4.2cqw, 2.5dvh) * 1.3 * 4 + min(13px, 1.5dvh) * 2 + 4px);
  resize: none;
}

.ct-submit { margin-top: min(6px, 0.8dvh); }

/* ===== Contact success lightbox (glass overlay, mirrors home.css .iq-success-*) ===== */
.ct-success-overlay {
  position: fixed; inset: 0; z-index: 60; background: rgba(246, 243, 238, 0.47);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
  display: none; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box;
}
.ct-success-overlay.is-open { display: flex; }

.ct-success-card {
  position: relative; width: 100%; max-width: min(460px, 92vw); max-height: 88dvh; overflow-y: auto; scrollbar-width: none;
  background: rgba(255, 255, 255, 0.50); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-radius: 18px; box-shadow: 0 20px 50px rgba(58, 63, 67, 0.18); padding: min(40px, 4.5dvh) min(30px, 6.5cqw) min(28px, 3dvh);
  box-sizing: border-box; container-type: inline-size; display: flex; flex-direction: column; align-items: center; text-align: center; gap: min(16px, 1.8dvh);
}
.ct-success-card::-webkit-scrollbar { display: none; }

.ct-success-close { position: absolute; top: min(16px, 1.8dvh); right: min(16px, 1.8dvh); background: none; border: none; cursor: pointer; padding: 4px; display: flex; }
.ct-success-close svg { transition: stroke 0.2s ease; }
.ct-success-close:hover svg { stroke: var(--colour-accent); }

.ct-received {
  font-family: var(--font-ui);
  font-weight: 400;
  -webkit-text-stroke: 0.048em currentColor;
  font-size: min(2.4rem, 8.8cqw, 4dvh);
  line-height: 1.15;
  letter-spacing: calc(0.029em + 0.2pt);
  color: var(--colour-ink);
  text-transform: uppercase;
}

.ct-thanks-copy {
  margin: 0;
  max-width: 32ch;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: min(0.95rem, 4.4cqw, 2.5dvh);
  line-height: 1.35;
  color: #5C646B;
}

.ct-success-cta { margin-top: min(10px, 1.2dvh); padding-top: min(20px, 2.2dvh); border-top: 1px solid rgba(58, 63, 67, 0.12); width: 100%; display: flex; flex-direction: column; align-items: center; gap: min(10px, 1.1dvh); }
.ct-success-cta-eyebrow { font-family: var(--font-ui); font-weight: 500; font-size: min(0.7rem, 3cqw, 1.8dvh); letter-spacing: 0.14em; color: var(--colour-accent); text-transform: uppercase; }
.ct-success-cta-copy { margin: 0; max-width: 34ch; font-family: var(--font-body); font-weight: 300; font-style: italic; font-size: min(0.88rem, 4cqw, 2.3dvh); line-height: 1.35; color: #5C646B; }
.ct-success-cta-btn { width: auto; padding-left: 26px; padding-right: 26px; margin-top: min(4px, 0.5dvh); }

.ct-alt {
  margin-top: min(69px, 8dvh);
  display: flex;
  flex-direction: column;
  gap: min(51px, 6dvh);
}

.ct-alt-block {
  display: flex;
  flex-direction: column;
  gap: min(6px, 0.8dvh);
}

.ct-alt-label {
  font-family: var(--font-ui);
  font-weight: 500;
  font-size: min(0.7rem, 3cqw, 1.8dvh);
  letter-spacing: 0.1em;
  color: var(--colour-accent);
  text-transform: uppercase;
}

.ct-email {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: min(1rem, 4.6cqw, 2.8dvh);
  color: var(--colour-ink);
}

.ct-email:hover { color: var(--colour-accent); }

.ct-social {
  display: flex;
  flex-wrap: wrap;
  gap: min(14px, 3.4cqw) min(18px, 4.4cqw);
}

.ct-social a {
  font-family: var(--font-ui);
  font-weight: 400;
  font-size: min(0.72rem, 3.1cqw, 1.8dvh);
  letter-spacing: 0.12em;
  color: var(--colour-ink);
  text-transform: uppercase;
  transition: transform 0.2s ease, color 0.2s ease;
}

.ct-social a:hover {
  color: var(--colour-accent);
  transform: translateX(5px);
}

@media (min-width: 760px) {
  .ct-sec { background-size: 100% 100%; padding-top: min(40px, 5dvh); padding-bottom: min(40px, 5dvh); }
  .ct-sec .pg-col { max-width: min(1200px, calc(100vw - 48px)); }
  .ct-sec .pg-title { font-size: min(16pt, 3dvh); }
  .ct-sec .pg-headline { font-size: min(44px, 5.2dvh); max-width: 760px; }
  .ct-sec .pg-body { font-size: min(12pt, 2.4dvh); line-height: 1.3; max-width: 640px; }

  .ct-form { max-width: 560px; }
  .ct-submit { width: 400px; align-self: flex-start; }

  .ct-success-card .ct-received { font-size: min(40px, 5dvh); }
}
