/* Kingswell Publishing
   /submit  —  publishing enquiry: intro + four-step form
   Tokens (ink / teal / mint / gold / paper) live in tokens.css. */

/* the flat-page nav inversion + paper ground live in layout.css (shared with
   /privacy-policy). Everything below is specific to the enquiry form. */

.enq{ padding-block:clamp(120px,16vh,190px) clamp(80px,12vw,150px); }

/* scattered book pages behind the page, washed with paper so the form stays readable.
   Same fixed-layer approach as /services (see privacy.css): no background-attachment:fixed,
   which stops Chrome painting animated content. The source image is small (562px wide),
   so it tiles at its own size instead of being stretched soft. */
body.page-flat .enq.enq--pages{
  position:relative;isolation:isolate;
  clip-path:inset(0);
  background:var(--paper);
}
.enq--pages::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(rgba(234,244,241,.84), rgba(234,244,241,.84)),   /* --paper at 84% */
    url("../assets/contact-bg.jpg");
  background-size:auto, 562px auto;
  background-repeat:no-repeat, repeat;
  background-position:center, center top;
}
.enq__wrap{ max-width:1080px; }
.enq__wrap--narrow{ max-width:640px; }

/* ---------- intro ---------- */
.enq__intro{
  display:grid;
  grid-template-columns:minmax(0,60ch);
  align-items:start;
}
.enq__intro-text{ min-width:0; }
.enq__title{
  font-size:clamp(38px,6vw,76px);
  margin:.24em 0 .5em -.03em;
}
.enq__lede{
  color:rgba(7,33,31,.72);
  font-size:clamp(15px,1.1vw,17px);
  margin-bottom:1.1em;
}
.enq__before{
  grid-column:1;
  max-width:60ch;
  margin-top:clamp(28px,4vw,44px);
  padding-top:clamp(22px,3vw,32px);
  border-top:1px solid var(--rule-dark);
}
.enq__before h2{
  font-family:Unbounded,serif;font-weight:400;
  font-size:clamp(20px,2vw,26px);letter-spacing:-0.02em;
  margin-bottom:.5em;
}
.enq__before p{ color:rgba(7,33,31,.72);font-size:15px; }
.enq__before ul{ margin:1em 0;display:grid;gap:.55em; }
.enq__before li{
  position:relative;padding-left:1.6em;color:rgba(7,33,31,.82);font-size:15px;
}
.enq__before li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:7px;height:7px;background:var(--mint);border-radius:50%;
}
.enq__before-foot{ margin-top:1em;font-size:14px;color:rgba(7,33,31,.55); }

/* ---------- form card ---------- */
.enq__card{
  margin-top:clamp(40px,6vw,72px);
  background:#fff;
  border:1px solid rgba(7,33,31,.12);
  border-radius:6px;
  padding:clamp(26px,4vw,54px);
  box-shadow:0 30px 80px -60px rgba(7,33,31,.5);
}

/* spam trap — off-screen, never focusable by design */
.enq__hp{ position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden; }

.enq__summary{
  border:1px solid rgba(176,58,46,.4);
  background:rgba(176,58,46,.06);
  border-radius:4px;padding:14px 18px;margin-bottom:28px;
  font-size:14px;color:#8f2d24;
}
.enq__summary p{ font-weight:500;margin-bottom:.4em; }
.enq__summary ul{ list-style:disc;padding-left:1.2em;display:grid;gap:.2em; }

/* ---------- steps ---------- */
.enq__step{ border:0;padding:0;margin:0;min-width:0; }
.enq__step-head{ margin-bottom:clamp(22px,3vw,34px);padding:0; }
.enq__step-head h2{
  font-family:Unbounded,serif;font-weight:400;letter-spacing:-0.022em;
  font-size:clamp(24px,3vw,34px);
}
.enq__step-head p{
  margin-top:.6em;color:rgba(7,33,31,.62);font-size:14.5px;max-width:64ch;
}

.enq__grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(18px,2.4vw,30px);
}
@media (max-width:720px){ .enq__grid{ grid-template-columns:1fr; } }

.enq__field{ display:flex;flex-direction:column;gap:8px;margin-bottom:clamp(18px,2.4vw,26px); }
.enq__grid .enq__field{ margin-bottom:0; }
.enq__field label{
  font-family:Unbounded,serif;font-size:15px;letter-spacing:-0.01em;color:var(--ink);
}
.enq__field .req{ color:#b03a2e;margin-left:2px; }

.enq__field input,
.enq__field select,
.enq__field textarea{
  width:100%;
  font:inherit;font-size:15px;
  color:var(--ink);
  background:rgba(18,124,110,.05);
  border:1px solid rgba(7,33,31,.16);
  border-radius:4px;
  padding:12px 14px;
  transition:border-color .2s, box-shadow .2s, background .2s;
}
.enq__field textarea{ resize:vertical;min-height:96px;line-height:1.55; }
.enq__field input::placeholder,
.enq__field textarea::placeholder{ color:rgba(7,33,31,.4); }
.enq__field input:focus,
.enq__field select:focus,
.enq__field textarea:focus{
  outline:none;
  border-color:var(--teal);
  background:#fff;
  box-shadow:0 0 0 3px rgba(18,124,110,.16);
}

.enq__phone{ display:flex;gap:8px; }
.enq__phone select{ flex:0 0 auto;width:auto;min-width:96px; }
.enq__phone input{ flex:1 1 auto; }

.enq__field.is-invalid input,
.enq__field.is-invalid select,
.enq__field.is-invalid textarea{
  border-color:#b03a2e;background:rgba(176,58,46,.05);
}
.enq__error{ color:#b03a2e;font-size:13px; }

.enq__recaptcha{ margin-top:24px;max-width:100%;overflow-x:auto; }
.enq__recaptcha .enq__error{ margin-top:8px; }
/* the reCAPTCHA widget itself is a fixed ~304px iframe; scale it down rather
   than let it force the card wider than very narrow phones */
@media (max-width:360px){
  .enq__recaptcha .g-recaptcha{ transform:scale(.86);transform-origin:0 0; }
}

/* ---------- review step ---------- */
.enq__review-lead{ font-size:15px;color:rgba(7,33,31,.8); }
.enq__review-points{
  list-style:none;margin:1em 0;display:grid;gap:.5em;
}
.enq__review-points li{
  position:relative;padding-left:1.6em;font-size:15px;color:rgba(7,33,31,.82);
}
.enq__review-points li::before{
  content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;
  border-radius:50%;background:var(--mint);
}
.enq__review-note{
  margin:1.2em 0 1.8em;font-size:14px;color:rgba(7,33,31,.6);
  padding-left:1em;border-left:2px solid var(--teal);
}
.enq__check{ margin:16px 0; }
.enq__check label{
  display:flex;gap:12px;align-items:flex-start;cursor:pointer;
  font-size:14.5px;color:rgba(7,33,31,.82);line-height:1.5;
}
.enq__check input{
  flex:0 0 auto;width:18px;height:18px;margin-top:2px;accent-color:var(--teal);
}
.enq__check.is-invalid label{ color:#b03a2e; }
.enq__privacy,
.enq__consent{ font-size:13px;color:rgba(7,33,31,.55);margin:14px 0; }
.enq__privacy a{ color:var(--teal);text-decoration:underline;text-underline-offset:2px; }
.enq__consent{ margin-top:20px; }

/* ---------- progress + controls ---------- */
.enq__foot{
  margin-top:clamp(30px,4vw,44px);
  padding-top:clamp(22px,3vw,30px);
  border-top:1px solid rgba(7,33,31,.12);
}
.enq__progress{ display:flex;align-items:center;gap:14px;margin-bottom:22px; }
.enq__progress-label{
  font-family:Unbounded,serif;font-size:13px;color:rgba(7,33,31,.55);
  flex:0 0 auto;min-width:3ch;
}
.enq__progress-track{
  flex:1 1 auto;height:6px;border-radius:999px;
  background:rgba(7,33,31,.12);overflow:hidden;
}
.enq__progress-fill{
  display:block;height:100%;width:25%;border-radius:999px;
  background:var(--teal);transition:width .45s var(--ease-out-expo);
}

.enq__controls{ display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap; }
.enq__controls [data-next],
.enq__controls [data-submit]{ margin-left:auto; }
.enq__btn{
  appearance:none;border:0;cursor:pointer;
  font:inherit;font-size:15px;font-weight:500;
  background:var(--teal);color:#fff;
  padding:13px 30px;border-radius:999px;
  transition:transform .3s var(--ease-out-expo), background .3s, opacity .3s;
}
.enq__btn:hover{ transform:translateY(-2px);background:#0f6a5e; }
.enq__btn--ghost{
  background:transparent;color:var(--ink);
  box-shadow:inset 0 0 0 1px rgba(7,33,31,.28);
}
.enq__btn--ghost:hover{ background:rgba(7,33,31,.04); }
.enq__btn--back{
  display:inline-flex;align-items:center;gap:10px;margin-top:32px;text-decoration:none;
}
.enq__btn--back .arrow{ transition:transform .4s var(--ease-out-expo); }
.enq__btn--back:hover .arrow{ transform:translateX(-5px); }

@media (prefers-reduced-motion:reduce){
  .enq__btn:hover{ transform:none; }
  .enq__progress-fill{ transition:none; }
}
