/* Shared enquiry form on the home and contact pages. */
.story-offer-card, .story-offer-card * { box-sizing: border-box; }
.geo-story .story-offer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin: 0 var(--frame, 16px) 60px;
  padding: clamp(72px, 8vw, 120px) 0;
  border: 0;
  border-radius: 24px;
  background: #131416;
  color: #f6f6f3;
}
.geo-story .story-offer::before,
.geo-story .story-offer::after {
  position: absolute;
  z-index: -1;
  width: 700px;
  height: 700px;
  border: 100px solid #ffffff08;
  border-radius: 50%;
  content: '';
  pointer-events: none;
}
.geo-story .story-offer::before { top: -370px; left: -260px; }
.geo-story .story-offer::after { right: 18%; bottom: -520px; }
.geo-story .story-offer-grid {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  align-items: start;
  gap: clamp(40px, 5vw, 80px);
}
.story-offer-copy { position: relative; z-index: 1; padding-top: 42px; }
.story-offer-kicker {
  display: inline-flex;
  width: fit-content;
  margin: 0 0 28px;
  padding: 10px 16px;
  border: 1px solid #454648;
  border-radius: 999px;
  background: #232426;
  color: #ff754f;
  font: 650 13px/1.2 var(--font-display);
}
.geo-story .story-offer h2 {
  max-width: 15ch;
  margin: 0;
  color: #f6f6f3;
  font: 550 clamp(42px, 4.1vw, 68px)/1.08 var(--font-display);
  letter-spacing: -.05em;
  text-wrap: balance;
}
.geo-story .story-offer h2 span { color: #a0a1a4; }
.story-offer-intro {
  max-width: 560px;
  margin: 32px 0 0;
  color: #d2d3d1;
  font: 400 clamp(16px, 1.25vw, 19px)/1.65 var(--font-display);
}
.story-offer-hint {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  max-width: 510px;
  margin: 48px 0 0;
  color: #f6f6f3;
  font: 550 17px/1.5 var(--font-display);
}
.story-offer-hint::before {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  margin-top: 7px;
  border-radius: 50%;
  background: #ff754f;
  box-shadow: -9px 0 0 #a0a1a4;
  content: '';
}
.story-offer-small { margin: 42px 0 0; color: #9fa2a5; font: 400 13px/1.6 var(--font-display); }
.story-offer-card {
  position: relative;
  z-index: 1;
  min-width: 0;
  padding: clamp(18px, 2vw, 28px);
  border: 1px solid #313234;
  border-radius: 22px;
  background: #08090a;
  box-shadow: 0 28px 70px #0006;
}
.story-offer-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.story-offer-field { min-width: 0; }
.story-offer-field--wide { grid-column: 1 / -1; }
.story-offer-field label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
.story-offer-field :is(input, textarea) {
  display: block;
  width: 100%;
  min-height: 62px;
  margin: 0;
  padding: 18px 20px;
  border: 1px solid #414244;
  border-radius: 10px;
  outline: none;
  background: #262728;
  color: #f6f6f3;
  font: 400 15px/1.45 var(--font-display);
  transition: border-color .2s, box-shadow .2s;
}
.story-offer-field textarea { min-height: 145px; resize: vertical; }
.story-offer-field :is(input, textarea)::placeholder { color: #a8aaad; opacity: 1; }
.story-offer-field :is(input, textarea):focus-visible { border-color: #ff754f; box-shadow: 0 0 0 3px #ff754f30; }
.story-offer-consent {
  display: block;
  margin: 22px 0;
  color: #d9d9d7;
  font: 400 13px/1.55 var(--font-display);
}
.story-offer-consent a,
.story-offer-result a:not(.story-offer-action) { color: #f6f6f3; text-decoration-color: #ff754f; text-underline-offset: 3px; }
.story-offer-submit,
.story-offer-action {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  max-width: 100%;
  min-height: 56px;
  padding: 15px 22px;
  border: 0;
  border-radius: 999px;
  background: #ff754f;
  color: #191b1e;
  font: 650 14px/1.3 var(--font-display);
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.story-offer-submit:hover,
.story-offer-action:hover { background: #ff8a69; transform: translateY(-2px); }
.story-offer-submit span { font-size: 22px; }
.story-offer-form-note { margin: 16px 0 0; color: #9fa2a5; font: 400 12px/1.55 var(--font-display); }
.story-offer-result {
  margin-top: 22px;
  padding: 22px;
  border: 1px solid #975139;
  border-radius: 14px;
  background: #271d1a;
  color: #f6f6f3;
  font: 400 14px/1.55 var(--font-display);
}
.story-offer-result[hidden] { display: none; }
.story-offer-result strong { display: block; margin-bottom: 6px; font-size: 17px; }
.story-offer-result p { margin: 0 0 15px; }
.story-offer-result-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.story-offer-action--secondary { border: 1px solid #a0a1a4; background: transparent; color: #f6f6f3; }
.story-offer-action--secondary:hover { background: #2d2e30; }
.geo-story .story-offer :is(a, button, input, textarea):focus-visible { outline: 2px solid #ff8a69; outline-offset: 3px; }

@media (max-width: 1050px) {
  .geo-story .story-offer-grid { grid-template-columns: 1fr; gap: 42px; }
  .story-offer-copy { padding-top: 0; }
  .geo-story .story-offer h2 { max-width: 21ch; }
  .story-offer-hint { margin-top: 28px; }
  .story-offer-small { margin-top: 22px; }
}
@media (max-width: 640px) {
  html[data-offer-visible] .mobile-cta { opacity: 0 !important; pointer-events: none !important; transform: translateY(110%) !important; }
  .geo-story .story-offer { margin: 0 10px 36px; padding: 52px 0; border-radius: 19px; }
  .geo-story .story-offer .wrap { padding-inline: 22px; }
  .geo-story .story-offer h2 { font-size: clamp(34px, 9vw, 46px); }
  .story-offer-intro { margin-top: 25px; font-size: 16px; }
  .story-offer-hint { font-size: 15px; }
  .story-offer-card { padding: 15px; }
  .story-offer-form-grid { grid-template-columns: 1fr; gap: 12px; }
  .story-offer-field--wide { grid-column: auto; }
  .story-offer-field :is(input, textarea) { min-height: 56px; padding: 16px; }
  .story-offer-field textarea { min-height: 138px; }
  .story-offer-submit { width: 100%; }
  .story-offer-result-actions > * { width: 100%; }
}
