:root{color-scheme:light;--ink:#172f48;--muted:#46617b;--paper:#eef5fb;--card:#fafdff;--line:#cbddec;--accent:#24557e;--ice:#d6eaff}
*{box-sizing:border-box}html{scroll-padding-top:1rem}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 "Avenir Next",system-ui,sans-serif}header{border-bottom:1px solid var(--line);background:var(--card)}.bar,main,footer{width:min(100% - 2rem,880px);margin:auto}.bar{min-height:65px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:1.2rem;font-weight:750;letter-spacing:-.035em}main{padding:1.5rem 0 3rem}.hero{background:linear-gradient(120deg,#173654,#285d86);color:#f7fbff;border-radius:1.25rem;padding:clamp(1.4rem,5vw,3.5rem)}h1,h2{font-family:Georgia,serif;font-weight:500;line-height:1.05;letter-spacing:-.035em}h1{font-size:clamp(2.45rem,7vw,4.25rem);margin:0}h2{font-size:clamp(1.9rem,5vw,2.5rem);margin:0 0 .85rem}h3{font-size:1.08rem;margin:0 0 .25rem}p{margin:.5rem 0 1rem}p:last-child{margin-bottom:0}.dates{color:var(--ice);font-size:.92rem;font-weight:600}.hero>p:not(.dates){max-width:50ch}.hero .notice{color:var(--ink)}nav{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 2rem}nav a{background:var(--card);border:1px solid var(--line);border-radius:2rem;padding:.45rem .8rem;text-decoration:none;font-weight:650}a{color:inherit;text-underline-offset:3px}main>section{margin-top:2rem}.card{background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:clamp(1rem,3vw,1.5rem);margin-bottom:.65rem}.card .button+h3{margin-top:1rem}.button,button{display:inline-block;border:1px solid transparent;border-radius:.55rem;padding:.62rem .9rem;background:var(--accent);color:white;font:inherit;font-weight:650;text-decoration:none;cursor:pointer}.button.light{background:var(--ice);color:var(--ink)}button.quiet{background:transparent;color:#773d32;border-color:#cfa99e}button:disabled{cursor:default}.inline{display:inline}.row,.columns{display:flex;gap:.75rem;justify-content:space-between}.columns>*{flex:1;min-width:0}label{display:block;font-weight:650;margin-bottom:.85rem}input,textarea{font:inherit;color:inherit;background:white;border:1px solid #829cb5;border-radius:.45rem;padding:.55rem .65rem;margin-top:.3rem;width:100%;display:block}textarea{resize:vertical}.hint,footer{color:var(--muted);font-size:.92rem}.status,.notice{background:#e0eefb;color:var(--ink);border-radius:.55rem;padding:.35rem .65rem;font-size:.88rem}.notice{padding:.8rem 1rem}.check+.check{border-top:1px solid var(--line)}.check-button{background:none;color:var(--ink);padding:.65rem .1rem;width:100%;display:flex;gap:.7rem;text-align:left;align-items:center}.box{width:1.4rem;height:1.4rem;border:1px solid #4f7497;border-radius:.3rem;flex:none;display:grid;place-items:center}.check-button[aria-pressed=true] .box{background:var(--accent);color:white}footer{border-top:1px solid var(--line);padding:1.2rem 0 2rem}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #286aa4;outline-offset:3px}@media(max-width:480px){.columns{display:block}.row{align-items:flex-start}main{padding-top:1rem}.hero{border-radius:1rem}}

.map-image{display:block;width:min(100%,640px);height:auto;border-radius:.65rem}

.cabin-photo {
  margin: .8rem 0 0;
  overflow: hidden;
  border-radius: 1rem;
}
.cabin-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center 56%;
}
@media (max-width: 480px) {
  .cabin-photo img { aspect-ratio: 4 / 3; }
}

input.inline-check{display:inline-block;width:auto;margin-right:.35rem}

textarea.auto-height{resize:none;overflow-y:hidden}

.save-status {
  position: sticky;
  top: .5rem;
  z-index: 1;
  margin: 0 0 .85rem;
  padding: .6rem .8rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: var(--paper);
  font-weight: 650;
}
.save-status:empty { margin: 0; padding: 0; border: 0; }
.save-status[data-save-status="saved"] {
  color: #174d2f;
  background: #e3f5e9;
  border-color: #a4cfb1;
}
.save-status[data-save-status="error"] {
  color: #773d32;
  background: #fff0ec;
  border-color: #cfa99e;
}
