/* Continental House — shared styles. Page layouts are inline in each page (from the design). */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fffff9; color: #021400; }
img { max-width: 100%; }
a { color: #021400; }
a:hover { color: #535f50; }
:focus-visible { outline: 2px solid #021400; outline-offset: 3px; }
[hidden] { display: none !important; }

.skip { position: absolute; left: 16px; top: -60px; z-index: 200; background: #021400; color: #fffff9; padding: 12px 16px; font-family: 'Courier Prime', monospace; font-size: 13px; }
.skip:focus { top: 16px; color: #fffff9; }

body.has-modal { overflow: hidden; }

/* ---------- feature slideshow + lightbox + newsletter dialogs ---------- */
.dlg { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: clamp(0px, 3vw, 40px); overflow-y: auto; background: rgba(2, 20, 0, 0.94); font-family: 'EB Garamond', Garamond, Georgia, serif; }
.dlg--light { background: rgba(2, 20, 0, 0.6); padding: 16px; }
.dlg__panel { background: #fffff9; color: #021400; width: 100%; max-width: 1280px; max-height: 100%; overflow: auto; display: flex; flex-wrap: wrap; }
.dlg__media { flex: 999 1 560px; min-width: 0; background: #021400; display: flex; flex-direction: column; }
.dlg__media > img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: contain; background: #021400; }
.dlg__thumbs { display: flex; gap: 8px; padding: 12px; overflow-x: auto; }
.dlg__thumbs button { all: unset; cursor: pointer; opacity: .55; }
.dlg__thumbs button[aria-current="true"] { opacity: 1; outline: 2px solid #fffff9; outline-offset: 2px; }
.dlg__thumbs img { display: block; width: 72px; height: 48px; object-fit: cover; }
.dlg__body { flex: 1 1 340px; min-width: 0; box-sizing: border-box; padding: 28px 32px 32px; display: flex; flex-direction: column; gap: 20px; }
.dlg__bar { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #021400; padding-bottom: 8px; }
.dlg__kicker, .mono { font-family: 'Courier Prime', 'Courier New', monospace; font-size: 12px; letter-spacing: 0.02em; text-transform: uppercase; }
.dlg__title { margin: 0; font-family: Apris, Marcellus, Georgia, serif; font-weight: 400; font-size: clamp(36px, 4vw, 52px); line-height: 0.9; letter-spacing: 0.035em; text-transform: uppercase; }
.dlg__text { margin: 0; font-size: 21px; line-height: 1.3; }
.dlg__foot { margin-top: auto; display: flex; flex-direction: column; gap: 16px; }
.dlg__meta { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-top: 1px solid #021400; padding-top: 8px; font-family: 'Courier Prime', monospace; font-size: 13px; letter-spacing: -0.025em; }
.dlg__meta span:first-child { color: #535f50; }
.dlg__nav { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.dlg__nav a { margin-left: auto; display: inline-flex; align-items: center; min-height: 44px; font-family: 'Courier Prime', monospace; font-size: 13px; letter-spacing: -0.025em; text-underline-offset: 4px; }

.btn-line { all: unset; box-sizing: border-box; cursor: pointer; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 16px; border: 1px solid currentColor; font-family: 'Courier Prime', monospace; font-size: 13px; }
.btn-line:hover { background: #021400; color: #fffff9; }
.btn-line:focus-visible, .linkbtn:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.linkbtn { all: unset; cursor: pointer; min-height: 44px; display: inline-flex; align-items: center; font-family: 'Courier Prime', monospace; font-size: 13px; letter-spacing: -0.025em; text-decoration: underline; text-underline-offset: 4px; }

/* history lightbox */
.lb { flex-direction: column; gap: 16px; color: #fffff9; background: rgba(2, 20, 0, 0.96); }
.lb img { display: block; max-width: min(100%, 1100px); max-height: calc(100vh - 160px); width: auto; height: auto; background: #fffff9; }
.lb__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 24px; max-width: 1100px; font-family: 'Courier Prime', monospace; font-size: 13px; }
.lb .btn-line:hover { background: #fffff9; color: #021400; }

/* newsletter */
.nl { position: relative; background: #fffff9; color: #021400; width: 100%; max-width: 520px; max-height: 100%; overflow: auto; box-sizing: border-box; padding: clamp(28px, 4vw, 48px); display: flex; flex-direction: column; gap: 16px; }
.nl label.f { display: flex; flex-direction: column; gap: 6px; font-family: 'Courier Prime', monospace; font-size: 13px; }
.nl input[type=email], .nl input[type=text] { min-height: 48px; box-sizing: border-box; padding: 10px 12px; background: #fffff9; color: #021400; border: 1px solid #021400; border-radius: 0; font-family: 'EB Garamond', Georgia, serif; font-size: 19px; }
.nl .chk { display: flex; align-items: center; gap: 10px; min-height: 36px; font-size: 19px; }
.nl .chk input { accent-color: #021400; width: 18px; height: 18px; margin: 0; }
.nl__close { position: absolute; top: 8px; right: 8px; }
.nl__submit { all: unset; box-sizing: border-box; display: block; width: 100%; cursor: pointer; min-height: 48px; line-height: 48px; text-align: center; background: #021400; color: #fffff9; font-family: 'Courier Prime', monospace; font-size: 13px; }
.nl__submit:hover { background: #535f50; }

/* ---------- availability calendar ---------- */
.nbtn { all: unset; box-sizing: border-box; cursor: pointer; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #021400; font-family: 'Courier Prime', monospace; font-size: 13px; }
.nbtn:hover { background: #021400; color: #fffff9; }
.nbtn:disabled { opacity: .3; cursor: default; background: none; color: #021400; }
.cal { margin-top: 20px; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-left: 1px solid #021400; border-top: 1px solid #021400; }
.cal > div { border-right: 1px solid #021400; border-bottom: 1px solid #021400; min-width: 0; }
.cal__dow { padding: 8px 0; text-align: center; font-family: 'Courier Prime', monospace; font-size: 12px; text-transform: uppercase; }
.cal__day { all: unset; box-sizing: border-box; width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: center; font-family: 'Courier Prime', monospace; font-size: 14px; cursor: pointer; }
.cal__day:hover:not(:disabled) { outline: 1px solid #021400; outline-offset: -1px; }
.cal__day:focus-visible { outline: 2px solid #021400; outline-offset: -2px; }
.cal__day:disabled { cursor: default; color: rgba(2, 20, 0, 0.3); }
.cal__day.is-booked { color: #535f50; text-decoration: line-through; background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(2, 20, 0, 0.12) 6px 7px); }
.cal__day.is-chosen { background: #021400; color: #fffff9; text-decoration: none; }
.cal__day.is-depart { box-shadow: inset 0 0 0 2px #021400; }
.cal__day.is-today { font-weight: 700; }
.cal-key { display: inline-block; width: 14px; height: 14px; vertical-align: -2px; margin-right: 6px; border: 1px solid #021400; }
.cal-key--booked { background: repeating-linear-gradient(135deg, transparent 0 3px, rgba(2, 20, 0, 0.35) 3px 4px); }
.cal-key--chosen { background: #021400; }

.form-ok { color: #021400 !important; }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* header: long single-line wordmark on wider screens, stacked on phones */
@media (min-width: 980px) { .site-header .hlogo { height: 20px !important; } }

/* ---------- small screens: collapsible menu ---------- */
.menu-btn { all: unset; display: none; box-sizing: border-box; cursor: pointer; min-height: 44px; padding: 0 14px; border: 1px solid #021400; font-family: 'Courier Prime', monospace; font-size: 13px; letter-spacing: 0.02em; text-transform: uppercase; }
@media (max-width: 860px) {
  .site-header .menu-btn { display: inline-flex; align-items: center; }
  .site-header .hnav { display: none !important; width: 100%; flex-direction: column; gap: 0 !important; padding-top: 4px; }
  .site-header.is-open .hnav { display: flex !important; }
  .site-header.is-open .hnav a { border-top: 1px solid #021400; }
  .site-header > div { column-gap: 10px !important; }
  .site-header .hbook { order: 2; padding: 0 12px !important; }
  .site-header .menu-btn { order: 3; }
  .site-header .hnav { order: 4; }
  .site-header img { height: 32px !important; }
}

/* reviews carousel */
.rv__track { display: flex; gap: 32px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-bottom: 4px; }
.rv__track::-webkit-scrollbar { display: none; }
.rv__track:focus-visible { outline: 2px solid #021400; outline-offset: 4px; }
.rv__item { flex: 0 0 min(340px, 82vw); scroll-snap-align: start; border-top: 1px solid #021400; padding-top: 16px !important; }
.rv__nav { display: flex; gap: 12px; margin-top: 28px; }

/* photo carousel */
.gal__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.gal__track::-webkit-scrollbar { display: none; }
.gal__item { flex: 0 0 100%; scroll-snap-align: start; }
.gal__btn { border-color: #fffff9; color: #fffff9; }
.gal__btn:hover { background: #fffff9; color: #021400; }
.gal__btn:disabled { color: #fffff9; }
.gal--light .gal__btn { border-color: #021400; color: #021400; }
.gal--light .gal__btn:hover { background: #021400; color: #fffff9; }
.gal--light .gal__btn:disabled { color: #021400; background: none; }
.gal__track:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.vg-gal { grid-column: span 2; max-width: 680px; }
@media (min-width: 1040px) { .vg-gal { grid-column: 2 / -1; } }
