/* contact.css — page-private layout extracted from styles.css. Shared tokens, nav, hero runtime, CTA/FAQ contract stay in styles.css. */
.official-hero--contact{
  --hero-image: url("assets/heroes/cocoon/showroom-pair.webp");
  background-position: center 52%;
}
.product-experience > .official-hero + .contact-simple__enquiry{
  padding-top: var(--product-after-hero-space);
}
.product-experience .official-hero--contact{
  --hero-image: url("assets/heroes/cocoon/showroom-pair.webp");
  --hero-position: center 52%;
}
/* Contact lead qualification */
.contact-lead{
  background: var(--page-canvas);
}
@keyframes contact-lead-step-in {
  from {
    opacity: 0;
    transform: translateY(0.55rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Contact: use the shared product hero; only enquiry/content styles stay local. */
.contact-lead{
  --contact-width: var(--content-rail-width);
  background: var(--page-canvas);
}
/* Contact: compact enquiry flow. */
.contact-simple{
  --contact-width: min(1080px, calc(100% - clamp(2.4rem, 6vw, 7.5rem)));
}
.contact-simple__enquiry{
  position: relative;
  width: var(--contact-width);
  margin: 0 auto;
  padding: var(--product-after-hero-space) 0 clamp(5.5rem, 9vw, 8rem);
}
.contact-simple__enquiry::before{
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: rgb(0 0 0 / 14%);
  content: "";
}
.contact-simple__form{
  width: min(100%, 880px);
  margin: 0 auto;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-top: 2px solid #1F9A94;
  background: rgb(181 190 165 / 18%);
}
.contact-simple__field-grid :is(input, select, textarea):focus{
  border-color: #1F9A94;
  outline: 2px solid rgb(31 154 148 / 22%);
  outline-offset: 3px;
}
.contact-simple__status{
  min-height: 1.35rem;
  margin: 1rem 0 0;
  color: #1F9A94;
  font-family: var(--font-glacial);
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.45;
}
.contact-simple__success :is(.label, h3, p){
  color: #EFECE7;
}
@media (prefers-reduced-motion: reduce) {.contact-simple :is(input, select, textarea, .button){
    transition: none;
  }}
/* Contact choice-led enquiry refinement. */
.contact-simple__form{
  width: min(100%, 1080px);
  padding: 0;
  border-top: 0;
  background: transparent;
}
.contact-simple__field-grid :is(input, select, textarea):focus{
  border-color: #000000;
  outline-color: rgb(181 190 165 / 72%);
}
.contact-simple__status{
  color: #B87F45;
}
.contact-simple__success :is(.label, h3, p){
  color: #000000;
}
/* Contact: one calm enquiry desk, rather than a questionnaire of cards. */
.contact-simple__enquiry{
  width: min(1080px, calc(100% - clamp(2.4rem, 6vw, 7.5rem)));
  padding-bottom: clamp(6.5rem, 10vw, 9rem);
}
.contact-simple__form{
  width: 100%;
  margin: 0;
}
/* Contact: WhatsApp is the handoff; the form only prepares the conversation. */
/* Contact: a concise WhatsApp brief with no manual fields. */
/* Contact: guided qualification with WhatsApp-first channel choice. */
.contact-simple__enquiry--guided{
  display: grid;
  grid-template-columns: minmax(18rem, 0.68fr) minmax(0, 1.32fr);
  gap: clamp(2.25rem, 5vw, 5rem);
  width: min(1160px, calc(100% - clamp(2.4rem, 6vw, 7.5rem)));
  align-items: stretch;
  scroll-margin-top: 7rem;
}
.contact-guide__contact{
  display: flex;
  min-height: 41rem;
  flex-direction: column;
  padding: clamp(2rem, 3vw, 2.75rem);
  border: 1px solid var(--surface-line);
  background: var(--surface);
  color: var(--ink);
}
.contact-guide__contact .label,
.contact-guide__contact-list dt{
  color: var(--copper);
}
.contact-guide__contact h2{
  max-width: 8ch;
  margin: 0.72rem 0 1rem;
  color: var(--ink);
  font-size: clamp(2.65rem, 3.8vw, 4rem);
  line-height: 0.96;
  letter-spacing: -0.035em;
}
.contact-guide__contact > p{
  max-width: 27ch;
  margin: 0;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.62;
}
.contact-guide__contact-list{
  display: grid;
  gap: 0;
  margin: auto 0 0;
}
.contact-guide__contact-list > div{
  padding: 1rem 0 1.05rem;
  border-top: 1px solid var(--surface-line);
}
.contact-guide__contact-list dt{
  margin-bottom: 0.35rem;
  font-family: var(--font-glacial);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.contact-guide__contact-list dd{
  margin: 0;
  color: var(--ink);
  font-size: 0.95rem;
  line-height: 1.5;
}
.contact-guide__contact-list a{
  color: var(--ink);
  text-decoration-color: var(--copper);
  text-underline-offset: 0.3em;
}
.contact-guide__contact .contact-guide__appointment{
  max-width: none;
  padding-top: 1rem;
  border-top: 1px solid var(--surface-line);
  font-family: var(--font-glacial);
  font-size: 0.74rem;
  line-height: 1.45;
}
.contact-simple__form.contact-guide{
  display: flex;
  width: 100%;
  min-height: 41rem;
  flex-direction: column;
  margin: 0;
  padding: 0;
  border-top: 3px solid var(--ink);
  background: var(--surface);
  scroll-margin-top: 5.5rem;
}
.contact-guide__header{
  padding: 1.3rem clamp(1.5rem, 3vw, 2.6rem) 0;
}
.contact-guide__meta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.contact-guide__meta > span:last-child{
  color: var(--ink-soft);
  font-family: var(--font-glacial);
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.contact-guide__progress{
  height: 2px;
  margin-top: 1rem;
  overflow: hidden;
  background: var(--surface-line);
}
.contact-guide__progress span{
  display: block;
  width: 20%;
  height: 100%;
  background: var(--ink);
  transition: width 320ms cubic-bezier(0.2, 0.72, 0.2, 1);
}
.contact-guide__stage{
  display: grid;
  flex: 1;
  min-height: 0;
  padding: clamp(2.15rem, 4vw, 3.4rem) clamp(1.5rem, 3vw, 2.6rem) clamp(1.55rem, 3vw, 2.5rem);
}
.contact-guide__screen{
  position: relative;
  display: block;
  min-inline-size: 0;
  min-height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
}
.contact-guide__screen[hidden]{
  display: none !important;
}
.contact-guide__screen.is-active{
  animation: contact-guide-in 280ms cubic-bezier(0.2, 0.72, 0.2, 1) both;
}
.contact-guide__screen.is-active.is-reverse{
  animation-name: contact-guide-back-in;
}
/* Question steps only: lock the title band so option cards never jump. */
fieldset.contact-guide__screen{
  /* title 9.5rem + gap + helper 3rem */
  padding-top: 13rem;
}
fieldset.contact-guide__screen > legend{
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  display: block;
  width: 100%;
  max-width: min(28ch, 100%);
  height: 9.5rem;
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: var(--ink);
  font-family: var(--font-glacial);
  font-size: clamp(1.7rem, 2.5vw, 2.55rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
  text-wrap: balance;
}
fieldset.contact-guide__screen > legend > span{
  display: block;
  margin-bottom: 0.55rem;
  color: var(--copper);
  font-family: var(--font-glacial);
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}
fieldset.contact-guide__screen > p{
  position: absolute;
  top: 9.75rem;
  right: 0;
  left: 0;
  max-width: 42ch;
  height: 3rem;
  margin: 0;
  overflow: hidden;
  color: var(--ink-soft);
  font-size: 0.96rem;
  line-height: 1.5;
}
.contact-guide__choices{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 0 0 5.75rem;
  min-height: calc((5.5rem * 3) + (0.65rem * 2));
  align-content: start;
}
.contact-guide__choice{
  position: relative;
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr) auto;
  gap: 0.75rem;
  width: 100%;
  min-width: 0;
  height: 5.5rem;
  min-height: 5.5rem;
  max-height: 5.5rem;
  align-items: center;
  padding: 0.75rem 1rem;
  border: 1px solid var(--surface-line);
  background: var(--surface);
  color: var(--ink);
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}
.contact-guide__choice-label{
  overflow: hidden;
  font-family: var(--font-glacial);
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1.28;
  overflow-wrap: anywhere;
  hyphens: auto;
}
.contact-guide__choice input,
.contact-guide__reply input{
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.contact-guide__choice-index{
  color: var(--copper);
  font-family: var(--font-glacial);
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  font-variant-numeric: tabular-nums;
}
.contact-guide__choice::after{
  width: 0.72rem;
  height: 0.72rem;
  border: 1px solid var(--surface-line);
  border-radius: 50%;
  content: "";
  flex: 0 0 0.72rem;
}
.contact-guide__choice:hover{
  border-color: var(--ink);
  background: var(--page-canvas);
  transform: translateY(-1px);
}
.contact-guide__choice:has(input:checked),
.contact-guide__choice.is-selected{
  border-color: var(--ink);
  background: var(--section-canvas);
  box-shadow: inset 0 0 0 1px var(--ink);
}
.contact-guide__choice:has(input:checked)::after,
.contact-guide__choice.is-selected::after{
  border-color: var(--ink);
  background: var(--ink);
  box-shadow: inset 0 0 0 2px var(--section-canvas);
}
.contact-guide__follow-up{
  display: grid;
  align-content: start;
  min-height: 4.75rem;
  margin-top: -4.75rem;
  margin-bottom: 1rem;
}
.contact-guide__follow-up[hidden]{
  visibility: hidden;
  pointer-events: none;
  display: grid !important;
}
.contact-guide__follow-up-field{
  display: grid;
  gap: 0.45rem;
}
.contact-guide__follow-up-field > span{
  color: var(--ink-soft);
  font-family: var(--font-glacial);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.contact-guide__follow-up-field input{
  width: 100%;
  min-height: 2.85rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--surface-line);
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-size: 0.95rem;
  line-height: 1.4;
}
.contact-guide__follow-up-field input:focus{
  border-color: var(--ink);
  outline: 2px solid rgb(0 0 0 / 12%);
  outline-offset: 2px;
}
.contact-guide__follow-up--notice{
  margin-top: 0;
  margin-bottom: 0;
  min-height: 0;
  padding: 1.05rem 1.15rem 1.15rem;
  border: 1px solid var(--ink);
  background: var(--section-canvas);
}
.contact-guide__follow-up--notice[hidden]{
  display: none !important;
}
.contact-guide__shop-note{
  max-width: 46ch;
  margin: 0;
  color: var(--ink);
  font-size: 0.98rem;
  line-height: 1.45;
}
.contact-guide__shop-note strong{
  display: block;
  margin-bottom: 0.35rem;
  font-family: var(--font-glacial);
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}
fieldset.contact-guide__screen--location{
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding-top: 0;
  align-content: start;
}
fieldset.contact-guide__screen--location > legend{
  position: static;
  top: auto;
  right: auto;
  left: auto;
  display: block;
  width: 100%;
  max-width: min(16ch, 100%);
  height: auto;
  min-height: 0;
  margin: 0;
  overflow: visible;
  font-size: clamp(2.15rem, 3.4vw, 3.35rem);
  line-height: 0.96;
}
fieldset.contact-guide__screen--location > legend > span{
  margin-bottom: 0.65rem;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
}
fieldset.contact-guide__screen--location > p{
  position: static;
  top: auto;
  right: auto;
  left: auto;
  max-width: 42ch;
  height: auto;
  margin: 0;
  overflow: visible;
  color: var(--ink);
  font-size: 1.02rem;
  line-height: 1.45;
}
.contact-guide__location-stack{
  display: grid;
  gap: 0.65rem;
  width: min(100%, 34rem);
  margin: 0.35rem 0 0;
  align-content: start;
}
.contact-guide__location-stack > .contact-guide__choice,
.contact-guide__location-overseas > .contact-guide__choice{
  width: 100%;
}
.contact-guide__location-overseas{
  display: grid;
  gap: 0;
  border: 1px solid transparent;
}
.contact-guide__location-overseas:has(input:checked),
.contact-guide__location-overseas.is-selected{
  border-color: var(--ink);
  background: var(--section-canvas);
  box-shadow: inset 0 0 0 1px var(--ink);
}
.contact-guide__location-overseas:has(input:checked) > .contact-guide__choice,
.contact-guide__location-overseas.is-selected > .contact-guide__choice{
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  transform: none;
}
.contact-guide__follow-up--location{
  margin: 0;
  min-height: 0;
  padding: 0 1rem 1rem;
  border: 0;
  background: transparent;
}
.contact-guide__follow-up--location[hidden]{
  display: none !important;
}
fieldset.contact-guide__screen--location .contact-guide__follow-up-field > span{
  color: var(--ink);
  font-size: 0.86rem;
  letter-spacing: 0.02em;
}
fieldset.contact-guide__screen--location .contact-guide__follow-up-field input{
  min-height: 3.15rem;
  border-color: var(--ink);
  background: var(--surface);
  font-size: 1.02rem;
}
fieldset.contact-guide__screen[data-contact-screen="product-interest"] .contact-guide__choices{
  min-height: calc((5.5rem * 2) + 0.65rem);
  margin-bottom: 1.15rem;
}
fieldset.contact-guide__screen[data-contact-screen="product-interest"] .contact-guide__follow-up--notice{
  min-height: 5.5rem;
}
fieldset.contact-guide__screen[data-contact-screen="product-interest"] .contact-guide__follow-up--notice[hidden]{
  display: grid !important;
  visibility: hidden;
  pointer-events: none;
}
.contact-guide__choice:has(input:focus-visible),
.contact-guide__reply:has(input:focus-visible),
.contact-guide__choice:focus-within,
.contact-guide__reply:focus-within{
  outline: 2px solid var(--copper);
  outline-offset: 3px;
}
.contact-guide__chrome{
  display: grid;
  grid-template-columns: minmax(6.5rem, 1fr) auto;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0;
  min-height: 5.75rem;
  padding: 1.15rem clamp(1.5rem, 3vw, 2.6rem) 1.35rem;
  border-top: 1px solid var(--surface-line);
}
.contact-guide__chrome-actions{
  display: grid;
  justify-items: end;
}
.contact-guide__chrome-actions > *{
  grid-area: 1 / 1;
  min-width: 13.5rem;
  justify-self: end;
}
.contact-guide__chrome .button:disabled{
  cursor: not-allowed;
  opacity: 0.55;
  transform: none;
}
.contact-guide__chrome .is-ghost,
.contact-guide__back.is-ghost{
  visibility: hidden;
  pointer-events: none;
}
.contact-guide__back{
  justify-self: start;
  min-width: 6.5rem;
  padding: 0.7rem 0;
  border: 0;
  background: transparent;
  color: var(--ink-soft);
  cursor: pointer;
  font-family: var(--font-glacial);
  font-size: 0.79rem;
  font-weight: 800;
  text-align: left;
  text-underline-offset: 0.28em;
}
.contact-guide__back:hover{
  color: var(--ink);
  text-decoration: underline;
}
.contact-guide__handoff > h3{
  max-width: 15ch;
  margin-top: 0.65rem;
  color: var(--ink);
  font-size: clamp(2.1rem, 3.55vw, 3.45rem);
  line-height: 0.98;
  letter-spacing: -0.025em;
}
.contact-guide__summary{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 1.7rem 0 0;
  border-top: 1px solid var(--surface-line);
}
.contact-guide__summary > div{
  min-width: 0;
  padding: 0.8rem 0.75rem 0.85rem 0;
  border-bottom: 1px solid var(--surface-line);
}
.contact-guide__summary > div:nth-child(even){
  padding-right: 0;
  padding-left: 0.9rem;
  border-left: 1px solid var(--surface-line);
}
.contact-guide__summary dt{
  margin-bottom: 0.25rem;
  color: var(--copper);
  font-family: var(--font-glacial);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.contact-guide__summary dd{
  margin: 0;
  color: var(--ink);
  font-family: var(--font-glacial);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.35;
}
/* Contact owns channel choice in-form — never show the site WhatsApp FAB here. */
body:has(.contact-simple) .floating-cta,
body.contact-page-shell .floating-cta{
  display: none !important;
}
.contact-guide__reply-methods{
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 0.65rem;
  min-inline-size: 0;
  margin: 1.35rem 0 0;
  padding: 0;
  border: 0;
}
.contact-guide__reply{
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.55rem;
  min-width: 0;
  min-height: 5rem;
  align-items: center;
  padding: 0.9rem 1rem;
  border: 1px solid var(--surface-line);
  background: var(--surface);
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}
.contact-guide__reply:hover{
  border-color: var(--ink);
  background: var(--page-canvas);
  transform: translateY(-1px);
}
.contact-guide__reply:has(input:checked),
.contact-guide__reply.is-selected{
  border-color: var(--ink);
  background: var(--section-canvas);
  box-shadow: inset 0 0 0 1px var(--ink);
}
.contact-guide__reply span{
  display: grid;
  gap: 0.18rem;
}
.contact-guide__reply strong,
.contact-guide__reply small,
.contact-guide__reply em{
  font-family: var(--font-glacial);
}
.contact-guide__reply strong{
  color: var(--ink);
  font-size: 0.9rem;
}
.contact-guide__reply small{
  color: var(--ink-soft);
  font-size: 0.72rem;
  line-height: 1.35;
}
.contact-guide__reply em{
  color: var(--copper);
  font-size: 0.62rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.contact-guide__handoff .contact-simple__status{
  min-height: 0;
  margin: 0;
}
.contact-guide__handoff .contact-guide__handoff-note{
  max-width: none;
  margin-top: 0.75rem;
  color: var(--ink-soft);
  font-family: var(--font-glacial);
  font-size: 0.72rem;
  line-height: 1.45;
}
@keyframes contact-guide-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
@keyframes contact-guide-back-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
@media (min-width: 901px) {.contact-simple__enquiry--guided{
    grid-auto-rows: 48.5rem;
    align-items: start;
  }
.contact-guide__contact,
.contact-simple__form.contact-guide{
    height: 48.5rem;
    min-height: 48.5rem;
  }
.contact-guide__stage{
    overflow: hidden;
    min-height: 0;
  }
.contact-guide__screen{
    min-height: 100%;
  }}
@media (max-width: 900px) {.contact-simple__enquiry--guided{
    grid-template-columns: 1fr;
    gap: 2rem;
  }
.contact-guide__contact{
    min-height: 0;
  }
.contact-guide__contact-list{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 2rem;
    border-top: 1px solid rgb(0 0 0 / 24%);
  }
.contact-guide__contact-list > div{
    padding-right: 1rem;
    border-top: 0;
  }
.contact-guide__contact-list > div + div{
    padding-left: 1rem;
    border-left: 1px solid rgb(0 0 0 / 24%);
  }}
@media (prefers-reduced-motion: reduce) {.contact-guide__screen.is-active,
.contact-guide__screen.is-active.is-reverse{
    animation: none;
  }
.contact-guide__choice,
.contact-guide__reply,
.contact-guide__progress span{
    transition: none;
  }}
/* contact.css: one consolidated <=700px sheet (last-wins cascade flattened). */
@media (max-width: 700px) {.contact-lead{
    --contact-width: min(100% - 1.6rem, 640px);
  }
.contact-simple{
    --contact-width: min(100% - 1.6rem, 640px);
  }
.contact-simple__form{
    padding: 1.35rem 1rem;
  }
/* Keep the photographic Contact Hero. Hide only the contact-info panel.
     Mobile: flow the title/helper (no absolute band) so long questions cannot
     overlap options; keep a min-height + choice/follow-up reserve so Continue
     does not jump between short steps. Never max-height clip. */
.official-hero--contact,
.product-experience .official-hero--contact{
    --hero-image-position: 50% 64%;
    --hero-position: 50% 64%;
    --hero-image-scale: 1.12;
  }
.product-experience .official-hero--contact .official-hero__image{
    transform: scale(var(--hero-image-scale, 1)) translateY(-6%);
    transform-origin: 50% 64%;
  }
.contact-simple__enquiry--guided{
    width: min(100% - 1.6rem, 640px);
    padding-bottom: 1.5rem;
    gap: 0;
  }
.contact-simple__form.contact-guide{
    /* Content-sized shell — no forced empty flex band under options. */
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }
.contact-guide__contact,
.contact-guide__header,
.contact-guide__stage{
    padding-right: 1.15rem;
    padding-left: 1.15rem;
  }
.contact-guide__header{
    flex-shrink: 0;
    padding-top: 1.25rem;
  }
.contact-guide__progress{
    margin-top: 0.85rem;
  }
.contact-guide__stage{
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    min-height: 0;
    /* Air under GUIDED ENQUIRY before the question. */
    padding-top: 1.65rem;
    padding-bottom: 0.75rem;
    overflow: visible;
  }
/* Normal-flow title on mobile, but sized to the longest question so Continue
     does not jump between short and long steps. Choices lock to the 5-option max. */
fieldset.contact-guide__screen{
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    padding-top: 0;
    min-height: 0;
  }
fieldset.contact-guide__screen > legend{
    position: static;
    top: auto;
    right: auto;
    left: auto;
    /* Eyebrow + up to ~3 title lines (longest mobile questions). */
    min-height: 5.6rem;
    height: auto;
    max-height: none;
    margin: 0 0 0.55rem;
    overflow: visible;
    font-size: clamp(1.4rem, 6.2vw, 1.85rem);
    line-height: 1.15;
  }
fieldset.contact-guide__screen > legend > span{
    margin-bottom: 0.35rem;
    font-size: 0.64rem;
  }
fieldset.contact-guide__screen > p{
    position: static;
    top: auto;
    right: auto;
    left: auto;
    /* Two helper lines reserved on every step. */
    min-height: 2.55rem;
    height: auto;
    max-height: none;
    margin: 0 0 1.05rem;
    overflow: visible;
    font-size: 0.88rem;
    line-height: 1.45;
  }
.contact-guide__choices,
.contact-guide__location-stack{
    grid-template-columns: 1fr;
    gap: 0.45rem;
    width: 100%;
    /* Lock to the largest question (5 options). Shorter lists / location pack to the top. */
    height: calc((3.15rem * 5) + (0.45rem * 4));
    min-height: calc((3.15rem * 5) + (0.45rem * 4));
    max-height: calc((3.15rem * 5) + (0.45rem * 4));
    margin: 0;
    align-content: start;
    align-items: stretch;
  }
.contact-guide__location-stack{
    display: grid;
  }
.contact-guide__location-overseas{
    gap: 0.45rem;
  }
.contact-guide__choice{
    height: 3.15rem;
    min-height: 3.15rem;
    max-height: 3.15rem;
    gap: 0.55rem;
    padding: 0.55rem 0.8rem;
    grid-template-columns: 1.7rem minmax(0, 1fr) auto;
  }
.contact-guide__choice-label{
    font-size: 0.82rem;
    line-height: 1.25;
  }
.contact-guide__choice-index{
    font-size: 0.62rem;
  }
/* No empty follow-up gap under answers; only occupy space when revealed. */
.contact-guide__follow-up{
    min-height: 0;
    margin-top: 0.45rem;
    margin-bottom: 0;
  }
.contact-guide__follow-up[hidden]{
    display: none !important;
    visibility: visible;
    pointer-events: auto;
  }
.contact-guide__follow-up:not([hidden]){
    min-height: 3rem;
  }
.contact-guide__follow-up--location{
    margin-top: 0;
    padding: 0 0.8rem 0.75rem;
  }
fieldset.contact-guide__screen[data-contact-screen="product-interest"] .contact-guide__choices{
    height: calc((3.15rem * 5) + (0.45rem * 4));
    min-height: calc((3.15rem * 5) + (0.45rem * 4));
    max-height: calc((3.15rem * 5) + (0.45rem * 4));
    margin-bottom: 0;
  }
fieldset.contact-guide__screen[data-contact-screen="product-interest"] .contact-guide__follow-up--notice{
    min-height: 0;
  }
fieldset.contact-guide__screen[data-contact-screen="product-interest"] .contact-guide__follow-up--notice[hidden]{
    display: none !important;
  }
fieldset.contact-guide__screen[data-contact-screen="product-interest"] .contact-guide__follow-up--notice:not([hidden]){
    min-height: 3rem;
  }
/* Keep location on the same title/helper band as every other step. */
fieldset.contact-guide__screen--location{
    gap: 0;
  }
fieldset.contact-guide__screen--location > legend{
    max-width: min(18ch, 100%);
    min-height: 5.6rem;
    margin: 0 0 0.55rem;
    font-size: clamp(1.4rem, 6.2vw, 1.85rem);
    line-height: 1.15;
  }
fieldset.contact-guide__screen--location > legend > span{
    margin-bottom: 0.35rem;
    font-size: 0.64rem;
  }
fieldset.contact-guide__screen--location > p{
    min-height: 2.55rem;
    margin: 0 0 1.05rem;
    font-size: 0.88rem;
    line-height: 1.45;
  }
.contact-guide__contact-list,
.contact-guide__reply-methods,
.contact-guide__summary{
    grid-template-columns: 1fr;
  }
.contact-guide__contact-list > div + div{
    padding-left: 0;
    border-top: 1px solid rgb(0 0 0 / 24%);
    border-left: 0;
  }
.contact-guide__chrome{
    position: sticky;
    bottom: 0;
    z-index: 3;
    flex-shrink: 0;
    min-height: 4.35rem;
    padding: 0.85rem 1.15rem calc(0.95rem + env(safe-area-inset-bottom, 0px));
    background: var(--surface);
    box-shadow: 0 -1px 0 var(--surface-line);
  }
.contact-guide__chrome-actions > *{
    width: 100%;
    min-width: 0;
  }
.contact-guide__summary > div:nth-child(even){
    padding-left: 0;
    border-left: 0;
  }
/* Final handoff: denser scan, channel cards first-class, no duplicate WhatsApp chip. */
.contact-guide__handoff > .label{
    font-size: 0.62rem;
  }
.contact-guide__handoff > h3{
    max-width: 12ch;
    margin-top: 0.35rem;
    font-size: clamp(1.7rem, 7.2vw, 2.15rem);
    line-height: 1.02;
  }
.contact-guide__handoff > p{
    margin: 0.45rem 0 0;
    font-size: 0.86rem;
    line-height: 1.4;
  }
.contact-guide__summary{
    margin-top: 1rem;
  }
.contact-guide__summary > div{
    padding: 0.55rem 0 0.58rem;
  }
.contact-guide__summary dt{
    margin-bottom: 0.12rem;
    font-size: 0.58rem;
  }
.contact-guide__summary dd{
    font-size: 0.78rem;
    line-height: 1.3;
  }
.contact-guide__reply-methods{
    gap: 0.5rem;
    margin-top: 1rem;
  }
.contact-guide__reply{
    min-height: 3.85rem;
    padding: 0.7rem 0.85rem;
    gap: 0.45rem;
  }
.contact-guide__reply strong{
    font-size: 0.86rem;
  }
.contact-guide__reply small{
    font-size: 0.68rem;
  }
.contact-guide__reply em{
    font-size: 0.58rem;
  }
.contact-guide__handoff .contact-guide__handoff-note{
    margin-top: 0.55rem;
    margin-bottom: 0.15rem;
    font-size: 0.7rem;
    line-height: 1.4;
  }
.contact-simple__enquiry--guided .contact-simple__form.contact-guide{
    order: 1;
  }
.contact-simple__enquiry--guided .contact-guide__contact{
    display: none;
  }}
.official-hero--contact{
  --hero-image-position: center 52%;
}
