.escape-hero { padding: 72px 0 62px; overflow: hidden; }
.escape-hero-grid { display: grid; grid-template-columns: 1fr .9fr; gap: 58px; align-items: center; }
.escape-hero h1 { font-size: clamp(3.5rem, 7vw, 6.6rem); }
.escape-hero-image { min-height: 570px; overflow: hidden; border-radius: 180px 180px 38px 38px; box-shadow: var(--shadow); }
.escape-hero-image img { height: 100%; min-height: 570px; object-fit: cover; }
.application-note { max-width: 610px; margin-top: 22px; color: var(--ink-soft); font-size: .9rem; }
.escape-facts { padding: 28px 0; background: var(--navy); color: var(--white); }
.fact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; }
.fact-grid div { padding: 10px 26px; border-left: 1px solid rgba(255,255,255,.18); }
.fact-grid div:first-child { border-left: 0; }
.fact-grid span, .fact-grid strong { display: block; }
.fact-grid span { margin-bottom: 3px; color: rgba(255,255,255,.65); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.package-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.package-card { display: flex; flex-direction: column; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.package-card.featured { border: 2px solid var(--dusty); box-shadow: var(--shadow); }
.package-card h3 { font-size: 2.35rem; }
.package-card h3 small { display: block; margin-top: 7px; font-size: .86rem; letter-spacing: 0; color: var(--ink-soft); }
.package-card > p:not(.package-label) { flex: 1; color: var(--ink-soft); }
.package-label { margin: 0 0 12px; color: var(--dusty); font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.payment-callout { margin-top: 24px; padding: 20px 22px; border-radius: 14px; background: var(--sky); color: var(--ink-soft); }
.check-list, .plain-list { margin: 0; padding: 0; list-style: none; }
.check-list { display: grid; gap: 12px; }
.check-list li { position: relative; padding-left: 30px; }
.check-list li::before { content: "âœ“"; position: absolute; left: 0; top: 0; color: var(--dusty); font-weight: 900; }
.timeline { display: grid; gap: 0; max-width: 920px; }
.timeline article { display: grid; grid-template-columns: 105px 1fr; gap: 28px; padding: 28px 0; border-top: 1px solid var(--line); }
.timeline article:first-child { border-top: 0; }
.timeline article > span { color: var(--dusty); font-size: .82rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.timeline h3 { margin-bottom: 7px; }
.timeline p { margin: 0; color: var(--ink-soft); }
.details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.plain-list { display: grid; gap: 12px; }
.plain-list li { padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.16); }
.application-hero h1 { max-width: 900px; }
.application-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 48px; align-items: start; }
.application-form { max-width: none; }
.application-form fieldset { display: grid; gap: 16px; margin: 0 0 18px; padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.72); }
.application-form legend { padding: 0 8px; font-size: 1.18rem; font-weight: 800; }
.optional { color: var(--ink-soft); font-size: .8rem; font-weight: 500; }
.package-options { display: grid; gap: 12px; }
.package-option { display: grid; grid-template-columns: auto 1fr; gap: 13px; align-items: center; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 14px; cursor: pointer; }
.package-option:has(input:checked) { border-color: var(--dusty); background: var(--sky); box-shadow: 0 0 0 1px var(--dusty); }
.package-option input, .checkbox-label input { width: auto; margin: 0; }
.package-option strong, .package-option small { display: block; }
.package-option small { margin-top: 2px; color: var(--ink-soft); font-weight: 500; }
.checkbox-label { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; font-weight: 500; }
.checkbox-label input { margin-top: 5px; }
.guest-fields p { margin-top: 0; color: var(--ink-soft); }
.guest-fields[hidden] { display: none; }
.application-layout[hidden], .signing-panel[hidden], .guest-invitation-status[hidden] { display: none; }
.turnstile-widget { min-height: 66px; }
.application-form button[disabled] { cursor: not-allowed; opacity: .62; transform: none; box-shadow: none; }
.signing-panel { max-width: 980px; margin-inline: auto; }
.docuseal-frame { min-height: 720px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow); }
.docuseal-frame docuseal-form { display: block; min-height: 720px; }
.guest-invitation-status { margin-bottom: 22px; }
.application-summary { position: sticky; top: 102px; padding: 28px; border-radius: var(--radius-md); background: var(--navy); color: var(--white); box-shadow: var(--shadow); }
.application-summary h2 { font-size: 2.05rem; }
.application-summary p { color: rgba(255,255,255,.78); }
.application-summary strong { color: var(--white); }
.application-summary hr { margin: 24px 0; border: 0; border-top: 1px solid rgba(255,255,255,.18); }
.summary-price { margin: -10px 0 12px; font-size: 2rem; font-weight: 800; color: var(--white) !important; }
.summary-small { font-size: .84rem; }

@media (max-width: 840px) {
  .escape-hero-grid, .details-grid, .application-layout { grid-template-columns: 1fr; }
  .escape-hero-image { min-height: 430px; }
  .escape-hero-image img { min-height: 430px; }
  .fact-grid { grid-template-columns: 1fr 1fr; }
  .fact-grid div:nth-child(3) { border-left: 0; }
  .package-grid { grid-template-columns: 1fr; }
  .application-summary { position: static; order: -1; }
}

@media (max-width: 560px) {
  .escape-hero { padding-top: 44px; }
  .escape-hero h1 { font-size: 3.55rem; }
  .fact-grid { grid-template-columns: 1fr; }
  .fact-grid div { border-left: 0; border-top: 1px solid rgba(255,255,255,.18); }
  .fact-grid div:first-child { border-top: 0; }
  .timeline article { grid-template-columns: 1fr; gap: 8px; }
  .application-form fieldset { padding: 20px 16px; }
}