/* Preserve the original palette, typography and cards while restoring native page flow. */
html { overflow: auto; height: auto; scroll-padding-top: 7rem; }
body { position: static; overflow: visible; min-width: 0; height: auto; }
#app-wrapper { height: auto; overflow: visible; }
main { outline: none; }
section, #enquiry-terms { scroll-margin-top: 7rem; }
.fade-in, .fade-in.visible { opacity: 1; transform: none; }
[hidden] { display: none !important; }
* { box-sizing: border-box; }
img { max-width: 100%; }
button, input, select, textarea { font: inherit; }
input:not([type="checkbox"]), select, textarea { min-width: 0; max-width: 100%; border: 2px solid #8b8a80; background: #FDF6F0; color: #2B2B2B; }
input, select, button { min-height: 44px; }
textarea { resize: vertical; }
input[type="checkbox"] { min-height: 24px; min-width: 24px; width: 24px; height: 24px; flex-shrink: 0; accent-color: #2E5C5B; }
.activity-checkbox { appearance: auto; border: initial; }
.activity-checkbox:checked::after { content: none; }
a, button, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #1F3B2D !important; outline-offset: 4px; box-shadow: 0 0 0 6px #FDF6F0 !important; }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 100; padding: .75rem 1rem; background: #FDF6F0; color: #1F3B2D; transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.btn-coral { background: #FF6F3C; color: #123024 !important; }
.btn-coral:hover { background: #f98c65; }
.enquiry-link { color: #1F3B2D; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
/* Coral retains its accent role; normal text gets a readable contextual tone. */
[style*="color: #FF6F3C"] { color: #a13514 !important; }
#home [style*="color: #FF6F3C"], #visit-planning [style*="color: #FF6F3C"], #events > div > .text-center > span, #offers [style*="color: #FF6F3C"], #contact [style*="color: #FF6F3C"] { color: #ffae8f !important; }
.text-xs, .step-label { font-size: .875rem; line-height: 1.5; }
footer { color: #e7ded7; }
footer [style*="rgba(253, 246, 240, 0."] { color: #e7ded7 !important; }
#home { padding-top: 9rem; padding-bottom: 5rem; min-height: 100svh; }
.hero-scroll { position: static; transform: none; margin-top: 3rem; }
.hero-scroll a { color: #e7ded7 !important; }
.menu-toggle { display: none; padding: .6rem .8rem; border: 1px solid #1F3B2D; border-radius: 999px; color: #1F3B2D; }
#mobile-navigation { max-height: calc(100svh - 6rem); overflow: auto; padding-top: 1rem; }
#mobile-navigation a { display: block; padding: .7rem .5rem; }
#navbar .desktop-navigation { gap: 1rem; }
#navbar a[href="#home"] { flex-shrink: 0; }
#navbar .nav-enquiry { white-space: nowrap; }
.business-note, .terms-note { background: #e7ded7; color: #1F3B2D; padding: 1rem; border-radius: .75rem; line-height: 1.65; }
.rate-note { color: #1F3B2D; font-weight: 600; font-size: 1rem; }
#enquiry-controls { min-width: 0; }
.enquiry-steps { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 2rem; list-style: none; }
.enquiry-steps li { padding: .5rem .7rem; border-radius: 999px; background: #FDF6F0; font-size: .875rem; }
.enquiry-steps [aria-current="step"] { background: #1F3B2D; color: #FDF6F0; }
.form-step { animation: none; }
.form-actions, .draft-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.form-actions button, .draft-actions > * { border-radius: 999px; padding: .8rem 1.25rem; font-weight: 600; text-align: center; }
.secondary-button { background: #FDF6F0; color: #1F3B2D; border: 2px solid #1F3B2D; }
.acknowledgement { display: flex; align-items: flex-start; gap: .75rem; margin: 1rem 0; cursor: pointer; }
.activity-card { gap: .75rem; }
.activity-card:has(input:checked) { border-color: #2E5C5B; background: #ecf1eb !important; }
.form-error { color: #8b2315; background: #fff4ed; border: 2px solid #8b2315; padding: 1rem; margin-top: 1rem; border-radius: .75rem; }
[aria-invalid="true"] { border-color: #8b2315 !important; }
.enquiry-summary { color: #FDF6F0; line-height: 1.7; }
#plan-summary { white-space: pre-line; overflow-wrap: anywhere; }
#enquiry-draft { font-size: 1rem; line-height: 1.65; }
summary { cursor: pointer; list-style-position: inside; min-height: 44px; }
summary::marker { color: #2E5C5B; }
.contact-details dt { font-weight: 600; color: #FDF6F0; margin-top: 1.25rem; }
.contact-details dd { color: #e7ded7; margin-top: .4rem; overflow-wrap: anywhere; }
.contact-details a { text-decoration: underline; }
.photo-slot { position: relative; height: 100%; width: 100%; min-height: 10rem; background: #2E5C5B; }
.photo-slot img { height: 100%; width: 100%; object-fit: cover; }
.photo-caption { position: absolute; bottom: 0; inset-inline: 0; padding: .6rem .8rem; background: rgba(31,59,45,.95); color: #FDF6F0; font-size: .875rem; }
[data-brand-mark] img { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 1199px) {
  #navbar .desktop-navigation { display: none; }
  .menu-toggle { display: inline-block; }
}
@media (min-width: 1200px) { #mobile-navigation { display: none; } }
@media (max-width: 640px) {
  #navbar > div { padding: .75rem 1rem; }
  #navbar .nav-enquiry { display: none; }
  #navbar a[href="#home"] { gap: .5rem; }
  #navbar .tracking-widest { font-size: .75rem; letter-spacing: .06em; }
  #home h1 { font-size: clamp(2.6rem, 10vw, 3.5rem); }
  section { padding-inline: 1rem !important; padding-block: 4rem; }
  #home { padding-top: 8rem; }
  #home .sm\:flex-row > a { width: 100%; padding-inline: 1rem; }
  #enquiry-form { padding: 1.25rem; }
  .form-actions > *, .draft-actions > * { flex: 1 1 100%; }
  #gallery .grid-cols-2 { grid-template-columns: 1fr; }
  #dining .grid-cols-2 { gap: .75rem; }
  #accommodation .flex.items-end { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .price-summary-card { position: static; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  html, #app-wrapper { scroll-behavior: auto; }
  .card-hover:hover, .gallery-item:hover { transform: none; }
}
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-photo-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(15,38,27,.86),rgba(15,38,27,.65)); }
[data-brand-mark] { background: white !important; overflow: hidden; }
.grid > * { min-width: 0; }
#navbar > div > .flex { flex-wrap: wrap; gap: .75rem; }
p, h1, h2, h3, li { overflow-wrap: break-word; }
