:root{
  --brand:#1D4E5F;--brand-d:#143845;--brand-l:#E2EEF1;--accent:#E3A857;--accent-d:#A86A1C;--accent-l:#F4CF98;--on-accent:#1B2A30;
  --ink:#15242A;--muted:#5C6E74;--line:#DCE6E8;--bg:#F4EFE7;--page:#fff;--dark:#0F2A33;
  --ring:rgba(29,78,95,.2);--tag-bg:#FBF0E0;--tag-fg:#8A5615;
  --sans:"Avenir Next","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  --head:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  --shadow:0 24px 48px -28px rgba(15,42,51,.5);--btn-r:999px;
}
h1,h2,h3{font-weight:700;letter-spacing:-.015em}
.crest{width:42px;height:42px;border:2px solid var(--brand);border-radius:50% 50% 8px 8px;display:grid;place-items:center;font-family:var(--head);font-weight:700;color:var(--brand);flex:none;font-size:.95rem}
.footer .crest{border-color:var(--accent);color:var(--accent)}.footer .brand__sub{color:var(--accent-l)}

.hero{position:relative;min-height:min(86vh,760px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--dark)}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,42,51,.15) 0%,rgba(15,42,51,.35) 45%,rgba(15,42,51,.9) 100%)}
.hero__bg .photo-tag{z-index:2;top:12px;bottom:auto}
.hero__in{position:relative;z-index:1;padding:120px 0 64px}
.hero h1{font-size:clamp(2.5rem,5.4vw,4.6rem);color:#fff;max-width:17ch;margin-bottom:.35em}
.hero__lead{font-size:1.15rem;color:rgba(255,255,255,.86);max-width:54ch}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 30px}
.eyebrow--light{color:var(--accent-l)}
.promo{display:inline-flex;flex-wrap:wrap;gap:12px;align-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px);border-radius:16px;padding:10px 16px 10px 10px;font-size:.92rem}
.promo__tag{background:var(--accent);color:var(--on-accent);font-weight:800;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;padding:5px 10px;border-radius:10px}
.promo a{color:var(--accent-l);font-weight:700}

.amen{background:var(--brand);color:#fff}
.amen__in{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.amen__item{display:grid;justify-items:center;text-align:center;gap:2px;padding:26px 12px;border-right:1px solid rgba(255,255,255,.12)}
.amen__item:last-child{border-right:0}
.amen__item .ic{width:32px;height:32px;color:var(--accent);margin-bottom:6px;stroke-width:1.5}
.amen__item small{color:rgba(255,255,255,.68)}

.seg{display:flex;justify-content:center;gap:6px;background:var(--bg);padding:6px;border-radius:999px;width:max-content;margin:0 auto 30px}
.seg button{border:0;background:none;padding:10px 20px;border-radius:999px;font-weight:700;color:var(--muted);cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.seg button[aria-selected="true"]{background:var(--brand);color:#fff}
.rates{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px}
.rate{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.rate .ph img{aspect-ratio:16/10;object-fit:cover;width:100%}
.rate__b{padding:22px;display:flex;flex-direction:column;flex:1}
.rate h3{margin:0 0 4px}
.rate__time{color:var(--muted);font-size:.88rem;margin-bottom:12px;display:flex;gap:6px;align-items:center}
.rate__price{font-family:var(--head);font-size:2rem;font-weight:700;color:var(--brand);line-height:1}
.rate__price small{font-family:var(--sans);font-size:.85rem;color:var(--muted);font-weight:600}
.rate ul{list-style:none;padding:0;margin:14px 0 18px;display:grid;gap:6px;flex:1}
.rate li{display:flex;gap:8px;font-size:.92rem}
.rate li .ic{color:var(--accent-d);margin-top:2px}
.rate .btn{align-self:flex-start}
.rate--hot{border-color:var(--accent);box-shadow:0 0 0 3px rgba(227,168,87,.25)}
.ribbon{display:inline-block;align-self:flex-start;background:var(--accent);color:var(--on-accent);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;padding:4px 10px;border-radius:999px;margin-bottom:10px}
.calc{padding:24px 26px}
.calc__head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:10px}
.calc__head h3{margin:0}
.calc__row{display:grid;grid-template-columns:1.4fr .7fr .8fr 1fr;gap:16px;align-items:end}
.calc__out{background:var(--bg);border-radius:14px;padding:10px 14px;margin-bottom:14px;display:grid}
.calc__out b{font-family:var(--head);font-size:1.6rem;color:var(--brand);line-height:1.1}

.cal{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:start}
.calendar{margin-top:20px;padding:22px}
.calendar__bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.calendar__bar b{font-family:var(--head);font-size:1.25rem}
.iconbtn{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--ink)}
.iconbtn:disabled{opacity:.35;cursor:not-allowed}
.iconbtn .ic{width:20px;height:20px}
.calendar__dow,.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.calendar__dow span{text-align:center;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:4px 0}
.cd{aspect-ratio:1;border-radius:12px;border:1.5px solid transparent;background:#EDF5F1;color:var(--ink);font-weight:700;cursor:pointer;display:grid;place-items:center;position:relative;font-size:.95rem;padding:0}
.cd:hover:not(:disabled){border-color:var(--brand)}
.cd--day{background:#FCEFD9}
.cd--day::after{content:"";position:absolute;bottom:6px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.cd--full,.cd:disabled{background:#F1F1F1;color:#B7BEC0;cursor:not-allowed;text-decoration:line-through}
.cd--blank{background:none;cursor:default}
.cd[aria-selected="true"]{background:var(--brand);color:#fff;border-color:var(--brand)}
.cd--today{box-shadow:inset 0 0 0 2px var(--accent)}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.78rem;color:var(--muted);margin:14px 0 6px}
.legend span{display:inline-flex;gap:6px;align-items:center}
.lg{width:14px;height:14px;border-radius:4px;display:inline-block}
.lg--open{background:#EDF5F1;border:1px solid #CFE3DA}.lg--day{background:#FCEFD9;border:1px solid var(--accent)}.lg--full{background:#F1F1F1;border:1px solid #DDD}.lg--pick{background:var(--brand)}
.picked{background:var(--brand-l);border-radius:14px;padding:12px 14px;margin:6px 0 4px;display:flex;gap:10px;align-items:center;font-weight:700}
.picked .ic{color:var(--brand);width:24px;height:24px}
.picked small{display:block;font-weight:500;color:var(--muted)}

.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:12px}
.g{position:relative;border:0;padding:0;border-radius:18px;overflow:hidden;cursor:zoom-in;background:#0B1F26}
.g img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.g:hover img{transform:scale(1.04)}
.g--tall{grid-row:span 2}
.g--wide{grid-column:span 2}
.lightbox{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);max-height:92vh;color:#fff}
.lightbox::backdrop{background:rgba(5,15,18,.88)}
.lightbox img{max-height:80vh;width:auto;max-width:100%;border-radius:16px;margin:0 auto}
.lightbox p{text-align:center;font-size:.85rem;margin:10px 0 0;color:rgba(255,255,255,.8)}
.lightbox__x{position:absolute;right:10px;top:10px;z-index:2}

.evs{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.evs__pic{border-radius:28px}
.evs__pic img{aspect-ratio:4/3.4;object-fit:cover;width:100%}
.evlist{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:8px 0 26px}
.evlist div{display:flex;gap:12px;align-items:flex-start}
.evlist .ic{width:40px;height:40px;padding:9px;border-radius:12px;background:var(--brand-l);color:var(--brand)}
.evlist b{display:block}
.evlist span{font-size:.9rem;color:var(--muted)}
.evlist b{color:var(--ink)}
.visit{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.visit__ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}

@media (max-width:900px){
  .rates{grid-template-columns:1fr 1fr}
  .cal,.evs,.visit{grid-template-columns:1fr;gap:32px}
  .calc__row{grid-template-columns:1fr 1fr}
  .amen__in{grid-template-columns:repeat(3,1fr)}
  .gallery{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .hero{min-height:620px}
  .hero__in{padding:90px 0 40px}
  .hero__lead{font-size:1.02rem}
  .amen__in{grid-template-columns:repeat(2,1fr)}
  .amen__item{border-bottom:1px solid rgba(255,255,255,.12);padding:18px 8px}
  .amen__item:last-child{grid-column:span 2}
  .seg{width:100%}
  .seg button{flex:1;justify-content:center;padding:10px 8px;font-size:.9rem}
  .rates{grid-template-columns:1fr}
  .calc__row{grid-template-columns:1fr 1fr;gap:0 12px}
  .calc__out{grid-column:span 2}
  .calendar{padding:14px}
  .calendar__dow,.calendar__grid{gap:4px}
  .cd{border-radius:9px;font-size:.88rem}
  .gallery{grid-auto-rows:150px;gap:8px}
  .g--wide{grid-column:span 2}
  .evlist{grid-template-columns:1fr}
}
.gallery{grid-auto-flow:dense}
@media (max-width:768px){
  .calc__row>.field:first-child{grid-column:span 2}
  .g--wide{grid-column:span 2}
  .g--tall{grid-row:span 2}
}
