/* Package landing pages use the same search controls and palette as the homepage. */
.vof-package-page { font-size:16px; padding-bottom:48px; }
.vof-package-page .vof-breadcrumb { padding:24px 0; font-size:13px; gap:10px; }
.vof-package-page .vof-breadcrumb [aria-current] { color:var(--vof-muted); }
.vof-package-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:48px; padding:8px 0 32px; }
.vof-package-hero--no-image { grid-template-columns:minmax(0,760px); }
.vof-package-page h1 { font-size:clamp(34px,3.6vw,48px); line-height:1.1; margin:0 0 18px; overflow-wrap:anywhere; }
.vof-package-page h2 { font-size:28px; margin:0 0 18px; }
.vof-package-page h3 { font-size:17px; line-height:1.45; margin:0 0 8px; }
.vof-package-page .vof-package-intro { color:var(--vof-muted); max-width:58ch; line-height:1.65; margin-bottom:22px; }
.vof-package-page .vof-package-price-note { font-size:13px; color:var(--vof-muted); margin:10px 0 0; }
.vof-package-page .vof-package-edit { display:inline-flex; align-items:center; min-height:44px; margin:12px 0 0 16px; font-size:14px; }
.vof-package-photo { margin:0; min-width:0; }
.vof-package-photo img { display:block; width:100%; height:auto; aspect-ratio:3 / 2; max-height:340px; object-fit:cover; border-radius:16px; background:#e8eeea; }
.vof-package-photo figcaption { color:var(--vof-muted); font-size:12px; line-height:1.5; margin-top:8px; }
.vof-package-page .vof-package-planner { padding:0; margin:8px 0 40px; scroll-margin-top:24px; }
.vof-package-page .vof-package-planner>h2 { font-size:25px; margin-bottom:16px; }
.vof-package-planner>summary { cursor:pointer; min-height:48px; padding:14px 0; color:var(--vof-teal); font-weight:600; }
.vof-package-planner .vof-hotel-search--package .vof-hotel-search__fields { grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.25fr) auto; }
.vof-package-overview { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:48px; padding:0 0 36px; }
.vof-package-inclusion-list { list-style:none; margin:0; padding:0; }
.vof-package-inclusion-list>li { display:flex; align-items:flex-start; gap:14px; padding:20px 0; border-bottom:1px solid var(--vof-line); }
.vof-package-inclusion-list>li:first-child { padding-top:0; }
.vof-package-inclusion-list>li>div { min-width:0; flex:1; }
.vof-package-check { display:grid; place-items:center; width:28px; height:28px; flex:none; border-radius:50%; background:#e8eeea; color:var(--vof-teal); font-size:15px; font-weight:700; }
.vof-package-page .vof-package-inclusion-list p { margin:0; color:var(--vof-muted); font-size:15px; }
.vof-package-page summary { cursor:pointer; min-height:44px; padding:12px 0; font-weight:600; line-height:1.5; }
.vof-package-inclusion-details summary { color:var(--vof-teal); font-size:14px; }
.vof-package-inclusion-details .vof-package-richtext { padding:4px 0 12px; }
.vof-package-options { align-self:start; padding:28px; border-radius:16px; background:#edf2ee; border:1px solid var(--vof-line); }
.vof-package-page .vof-package-options h2 { font-size:26px; }
.vof-package-page .vof-package-options p { font-size:15px; margin:0 0 12px; }
.vof-package-visit { border-top:1px solid #cbd9d1; padding-top:20px; margin-top:20px; }
.vof-package-page .vof-package-attendance { font-size:14px; color:var(--vof-muted); }
.vof-package-options h4 { font:600 14px/1.5 var(--vo-font-body, -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif); margin:16px 0 6px; text-transform:none; letter-spacing:normal; }
.vof-package-options summary { font-size:14px; color:var(--vof-teal); }
.vof-package-confirmation { border-top:1px solid #cbd9d1; margin-top:14px; padding-top:6px; }
.vof-package-details { border-top:1px solid var(--vof-line); padding-top:32px; }
.vof-package-details>details { border-bottom:1px solid var(--vof-line); }
.vof-package-details>details>summary { padding:18px 4px; }
.vof-package-richtext { min-width:0; max-width:100%; overflow-x:auto; overflow-wrap:anywhere; font-size:15px; line-height:1.7; padding:4px 4px 20px; }
.vof-package-richtext>*:last-child { margin-bottom:0; }
.vof-package-richtext img { max-width:100%; height:auto; border-radius:8px; }
.vof-package-richtext table { width:100%; border-collapse:collapse; margin:16px 0; font-size:14px; text-align:left; }
.vof-package-richtext th,.vof-package-richtext td { padding:12px; border:1px solid var(--vof-line); vertical-align:top; white-space:normal; }
.vof-package-richtext th { background:#edf2ee; font-weight:600; }
.vof-package-richtext ul,.vof-package-richtext ol { padding-left:24px; }
.vof-package-page .vof-package-policy { margin:22px 0 0; color:var(--vof-muted); font-size:14px; }
.vof-package-next { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px 32px; margin-top:36px; border-radius:14px; background:#edf2ee; }
.vof-package-page .vof-package-next h2 { font-size:28px; margin-bottom:8px; }
.vof-package-page .vof-package-next p { margin:0; color:var(--vof-muted); font-size:15px; }
.vof-package-next .vof-primary { flex:none; }
.vof-package-page .vof-package-help { margin:24px 0 0; font-size:14px; text-align:center; }
.vof-package-mobile-cta { display:none; }
@media (max-width:1000px) {
  .vof-package-hero,.vof-package-overview { gap:28px; }
  .vof-package-planner .vof-hotel-search--package .vof-hotel-search__fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vof-package-planner [data-date-control="departure"] .vof-calendar { left:auto; right:0; }
}
@media (max-width:700px) {
  .vof-package-page { padding:0 20px 104px; }
  .vof-package-page .vof-breadcrumb { padding:20px 0; }
  .vof-package-hero { grid-template-columns:minmax(0,1fr); gap:24px; padding-bottom:24px; }
  .vof-package-page h1 { font-size:36px; }
  .vof-package-page .vof-eyebrow { margin-bottom:10px; font-size:11px; }
  .vof-package-photo img { max-height:220px; aspect-ratio:16 / 9; border-radius:12px; }
  .vof-package-page .vof-package-planner { margin-bottom:32px; }
  .vof-package-overview { grid-template-columns:minmax(0,1fr); gap:28px; padding-bottom:28px; }
  .vof-package-options { padding:22px; }
  .vof-package-next { align-items:stretch; flex-direction:column; gap:20px; padding:24px; }
  .vof-package-mobile-cta { display:flex; align-items:center; justify-content:space-between; gap:16px; position:fixed; z-index:1000; bottom:0; left:0; right:0; padding:12px 20px calc(12px + env(safe-area-inset-bottom)); background:#faf8f2; border-top:1px solid var(--vof-line); box-shadow:0 -4px 20px #28363d0a; }
  .vof-package-mobile-cta>span { min-width:0; font-size:14px; font-weight:600; }
  .vof-package-mobile-cta small { display:block; font-size:12px; font-weight:400; color:var(--vof-muted); }
  .vof-package-mobile-cta .vof-primary { flex:none; padding:12px 16px; gap:14px; font-size:15px; min-height:48px; }
}
@media (max-width:360px) {
  .vof-package-planner .vof-hotel-search--package .vof-hotel-search__fields { grid-template-columns:minmax(0,1fr); }
  .vof-package-planner [data-date-control="departure"] .vof-calendar { left:0; right:auto; }
  .vof-package-mobile-cta { padding-left:16px; padding-right:16px; gap:8px; }
  .vof-package-mobile-cta>span { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) { .vof-package-page { scroll-behavior:auto; } }
