/* Shared, intent-aware enquiry. Existing brand palette is unchanged. */
[hidden] { display: none !important; }
button.text-link { cursor: pointer; background: transparent; border-top: 0; border-left: 0; border-right: 0; }
.hero__grid { grid-template-columns: minmax(0, 1fr); }
.hero__copy { max-width: 680px; }
.hero__reassurance { margin: .85rem 0 0; color: rgba(255,255,255,.72); font-size: .75rem; }
.ownership__invitation { max-width: 36rem; margin-top: 2rem; font-size: .9rem; }
.visit-invitation { align-self: center; padding: clamp(1.8rem,4vw,3.5rem); border: 1px solid var(--rule); color: var(--charcoal); background: var(--paper); }
.visit-invitation h3 { font-family: var(--display); font-size: clamp(2rem,3.5vw,3.1rem); font-weight: 400; line-height: 1.12; margin: .8rem 0 1.2rem; }
.visit-invitation > p:not(.section-index) { color: var(--slate); }
.visit-invitation .button { margin-block: .8rem; }
.visit-invitation small { display: block; color: var(--slate); font-size: .75rem; }
.is-enquiry-open { position: fixed; width: var(--enquiry-page-width,100%); top: var(--enquiry-scroll-offset); overflow: hidden; }
.enquiry-dialog { position: fixed; inset: var(--enquiry-top,0px) 0 auto; width: 100vw; height: var(--enquiry-vh,100dvh); max-width: none; max-height: none; margin: 0; padding: 1.25rem; border: 0; overflow: hidden; background: transparent; color: var(--charcoal); }
.enquiry-dialog[open] { display: flex; align-items: center; justify-content: center; }
.enquiry-dialog::backdrop { background: rgba(16,16,25,.66); backdrop-filter: blur(8px); }
.enquiry-dialog.is-entered::backdrop { animation: enquiry-backdrop-in 360ms ease both; }
.enquiry-dialog.is-closing::backdrop { animation: enquiry-backdrop-out 260ms ease both; }
.enquiry-dialog__panel { display: flex; flex-direction: column; width: min(100%,480px); max-height: calc(var(--enquiry-vh,100dvh) - 2.5rem); border: 1px solid rgba(194,151,81,.25); border-radius: 16px; overflow: hidden; background: var(--paper); box-shadow: 0 25px 90px rgba(0,0,0,.24); opacity: 1; transform: translate3d(0,0,0); }
.enquiry-dialog[open] .enquiry-dialog__panel { will-change: transform, opacity; }
.enquiry-dialog__header { position: relative; flex: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.5rem .15rem; }
.enquiry-dialog__header .section-index { margin: 0; font-size: .61rem; letter-spacing: .12em; }
.enquiry-dialog__handle { display: none; }
.enquiry-dialog__close { flex: none; width: 44px; height: 44px; border: 1px solid var(--rule); border-radius: 50%; color: var(--charcoal); background: transparent; cursor: pointer; font-size: 1.45rem; line-height: 1; }
.enquiry-dialog__scroll { padding: .35rem 1.5rem 1.2rem; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scroll-padding: 1rem; }
.enquiry-dialog h2 { margin: 0 0 .55rem; font-family: var(--display); font-size: 2.05rem; font-weight: 400; line-height: 1.13; letter-spacing: -.025em; }
.enquiry-dialog h2:focus { outline: none; }
#enquiry-description { margin: 0; color: var(--slate); font-size: .82rem; line-height: 1.6; }
.enquiry-dialog__facts { display: flex; gap: .55rem; align-items: center; flex-wrap: wrap; border-block: 1px solid var(--rule); padding-block: .45rem; margin: .7rem 0 .85rem; font-size: .65rem; color: var(--champagne-ink); font-weight: 600; }
.enquiry-dialog__facts p { display: flex; justify-content: space-between; gap: .75rem; width: 100%; margin: 0; color: var(--charcoal); font-size: .68rem; font-weight: 400; }
.enquiry-dialog__facts strong { flex: none; color: var(--champagne-ink); font-weight: 600; }
.enquiry-dialog__purpose { margin: -.25rem 0 .85rem; color: var(--slate); font-size: .64rem; line-height: 1.5; }
.capture-form { display: grid; gap: .8rem; }
.capture-form__names { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.capture-form label { min-width: 0; display: block; }
.capture-field > label, .capture-preference legend { margin-bottom: .4rem; font-size: .72rem; font-weight: 600; }
.capture-field > label span, .capture-preference legend span { color: var(--slate); font-size: .63rem; font-weight: 400; }
.capture-field__error { margin: .4rem 0 0; color: #943b2e; font-size: .7rem; line-height: 1.5; }
.capture-field > label > span { display: inline; margin: 0; }
.capture-preference legend { display: block; margin: 0 0 .4rem; font-size: .68rem; font-weight: 600; line-height: 1.5; }
.capture-form label em, .capture-preference legend em { color: var(--slate); font-size: .61rem; font-weight: 400; font-style: normal; }
.capture-form input[type=text], .capture-form input[type=tel] { display: block; width: 100%; min-width: 0; height: 50px; padding: .7rem .8rem; border: 1px solid #d6d2c9; border-radius: 6px; color: var(--charcoal); background: #fff; font-family: var(--sans); font-size: 16px; line-height: 1.3; transition: border-color 150ms ease, box-shadow 150ms ease; }
.capture-form input::placeholder { color: #777971; font-size: .84rem; }
.capture-form input[type=text]:focus, .capture-form input[type=tel]:focus { border-color: var(--champagne); outline: none; box-shadow: 0 0 0 3px rgba(194,151,81,.15); }
.capture-phone { display: flex; align-items: stretch; min-width: 0; border: 1px solid #d6d2c9; border-radius: 6px; background: #fff; transition: border-color 150ms ease, box-shadow 150ms ease; }
.capture-phone > span { display: grid; place-items: center; padding-inline: .85rem; border-right: 1px solid #e3dfd7; color: var(--slate); font-size: .85rem; }
.capture-phone input[type=tel] { height: 48px; border: 0; background: transparent; }
.capture-phone:focus-within { border-color: var(--champagne); box-shadow: 0 0 0 3px rgba(194,151,81,.15); }
.capture-phone input[type=tel]:focus { box-shadow: none; }
.capture-form input[aria-invalid=true] { border-color: #a04434; }
.capture-preference { border: 0; min-width: 0; padding: 0; margin: 0; }
.capture-preference__options { display: grid; grid-template-columns: 1fr 1fr 1.35fr; gap: .4rem; }
.capture-preference__options label { position: relative; cursor: pointer; }
.capture-preference__options input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.capture-preference__options label > span { display: grid !important; place-items: center; margin: 0 !important; min-height: 44px; padding: .5rem .25rem; border: 1px solid #d6d2c9; border-radius: 5px; font-size: .7rem !important; background: #fff; }
.capture-preference__options strong { font-size: .7rem; font-weight: 600; line-height: 1.4; }
.capture-preference__options small { font-size: .58rem; line-height: 1.5; }
.capture-preference__options input[aria-invalid=true] + span { border-color: #a04434; }
.capture-preference__options input:checked + span { background: var(--charcoal); border-color: var(--charcoal); color: #fff; box-shadow: inset 0 -2px var(--champagne); }
.capture-preference__options input:focus-visible + span, .enquiry-dialog button:focus-visible { outline: 2px solid var(--champagne-ink); outline-offset: 3px; }
.capture-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.capture-form__consent { margin: 0; font-size: .65rem; color: var(--slate); line-height: 1.6; }
.capture-form__submit { display: flex; align-items: center; justify-content: center; gap: .65rem; min-height: 52px; width: 100%; padding: .85rem .65rem; border: 1px solid var(--charcoal); border-radius: 6px; color: #fff; background: var(--charcoal); cursor: pointer; font-size: .78rem; font-weight: 600; line-height: 1.4; box-shadow: inset 0 -2px rgba(194,151,81,.5); }
.capture-form__submit:disabled { opacity: .75; cursor: wait; }
.capture-form__spinner { display: none; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.3); border-top-color: #fff; border-radius: 50%; animation: capture-spin 700ms linear infinite; }
.capture-form__submit[aria-busy=true] .capture-form__spinner { display: block; }
.capture-form__error { display: block; margin: .4rem 0 0; color: #943b2e; font-size: .7rem; line-height: 1.5; }
#enquiry-status:empty { display: none; }
#enquiry-status { margin: 0; font-size: .72rem; color: var(--moss); }
.mobile-sticky { display: flex; gap: .5rem; align-items: center; position: fixed; z-index: 90; bottom: 0; left: 50%; width: min(calc(100% - 2rem),430px); padding: .65rem; margin-bottom: max(.8rem,env(safe-area-inset-bottom)); border: 1px solid rgba(194,151,81,.24); border-radius: 12px; background: rgba(250,248,243,.97); box-shadow: 0 5px 30px rgba(0,0,0,.16); backdrop-filter: blur(12px); visibility: hidden; opacity: 0; pointer-events: none; transform: translate(-50%,120%); transition: transform 240ms ease, opacity 180ms ease, visibility 240ms; }
.mobile-sticky.is-visible { visibility: visible; opacity: 1; pointer-events: auto; transform: translate(-50%,0); }
.mobile-sticky button { flex: 1; min-height: 48px; padding: .6rem .45rem; border: 1px solid var(--charcoal); border-radius: 6px; background: var(--charcoal); color: #fff; font-size: .67rem; line-height: 1.3; font-weight: 600; cursor: pointer; }
.mobile-sticky button + button { background: transparent; color: var(--charcoal); border-color: var(--rule); }
.landing-page { padding-bottom: calc(var(--sticky-height,85px) + env(safe-area-inset-bottom)); }
.has-sticky-enquiry .header-enquiry { visibility: hidden; }
.has-sticky-enquiry .hero__actions, .has-sticky-enquiry .hero__reassurance { visibility: hidden; }
@media (min-width: 901px) { .mobile-sticky { display: none; } .landing-page { padding-bottom: 0; } }
.fulfilment-note { margin: .8rem 0; color: var(--slate); font-size: .8rem; }
.thank-you-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.thank-you-actions .button { min-height: 52px; }
@keyframes capture-spin { to { transform: rotate(360deg); } }
@keyframes enquiry-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes enquiry-backdrop-out { from { opacity: 1; } to { opacity: 0; } }
.cta-icon { display: block; flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.cta-primary { position: relative; isolation: isolate; overflow: hidden; gap: .6rem; }
.cta-primary > span, .cta-primary > svg { position: relative; z-index: 1; }
.cta-primary::after { position: absolute; inset: -35% -65%; z-index: 0; content: ""; pointer-events: none; background: linear-gradient(110deg, transparent 41%, rgba(194,151,81,.12) 47%, rgba(255,255,255,.22) 50%, rgba(194,151,81,.12) 53%, transparent 59%); transform: translate3d(-65%,0,0); opacity: 0; }
.cta-primary.is-cta-in-view::after { animation: cta-quiet-sheen 9s ease-in-out 1.8s infinite; }
.is-enquiry-open .cta-primary::after { animation-play-state: paused; }
.cta-primary:active { transform: translateY(1px); }
.mobile-sticky .cta-primary { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; }
.mobile-sticky .cta-icon, .header-enquiry .cta-icon { width: 16px; height: 16px; }
.capture-form:not([data-intent="brochure"]) .cta-icon--download, .capture-form[data-intent="brochure"] .cta-icon--arrow { display: none; }
.capture-form__submit[aria-busy=true] .cta-icon { display: none; }
@keyframes cta-quiet-sheen {
  0%, 9% { transform: translate3d(-65%,0,0); opacity: 0; }
  12% { opacity: 1; }
  25% { transform: translate3d(65%,0,0); opacity: 0; }
  100% { transform: translate3d(65%,0,0); opacity: 0; }
}
@media (max-width: 640px) {
  .enquiry-dialog { padding: 0; align-items: flex-end !important; }
  .enquiry-dialog__panel { width: 100%; max-height: calc(var(--enquiry-vh,100dvh) - 12px); border-radius: 20px 20px 0 0; border-bottom: 0; }
  .header-enquiry .cta-icon { display: none; }
  .enquiry-dialog__header { padding: .8rem 1.25rem .15rem; }
  .enquiry-dialog__handle { display: block; position: absolute; top: .5rem; left: 50%; width: 34px; height: 4px; margin-left: -17px; background: #c9c4b9; border-radius: 4px; }
  .enquiry-dialog__scroll { padding: .35rem 1.25rem max(1rem,env(safe-area-inset-bottom)); }
  .enquiry-dialog h2 { font-size: clamp(1.55rem,6.7vw,1.85rem); max-width: 20rem; }
  .capture-form { gap: .75rem; }
  .hero__reassurance { font-size: .65rem; max-width: 28rem; }
  .hero__actions .text-link { text-transform: none; }
  .thank-you-actions { align-items: stretch; flex-direction: column; }
  .thank-you-actions .button { justify-content: center; }
}
@media (max-width: 360px) {
  .enquiry-dialog__facts { padding-block: .35rem; margin-block: .5rem .65rem; }
  .capture-form { gap: .65rem; }
  .capture-preference__options { grid-template-columns: 1fr 1fr 1.7fr; }
}
@media (prefers-reduced-motion: reduce) {
  .enquiry-dialog__panel, .mobile-sticky { transition: none; }
  .enquiry-dialog::backdrop, .cta-primary::after { animation: none !important; }
  .cta-primary:active { transform: none; }
  .capture-form__spinner { animation-duration: 1.5s; }
}
