:root{
  --ink:#183b42;
  --green:#075a73;
  --pale:#eaf4f3;
  --gold:#e8782e;
  --paper:#fffdf8;
  --sand:#faf6ed;
  --muted:#557278;
  --line:#d7e6e7;
  --deep:#043b4c;
  --orange:#e8782e;
  --orange-dark:#cf6120;
  --shadow:0 15px 40px #043b4c14
}

body{
  background:
    radial-gradient(circle at 100% 8%,#80bec11c 0 14rem,transparent 14.1rem),
    linear-gradient(180deg,var(--paper),var(--sand));
  background-attachment:fixed
}

.hero{
  min-height:198px;
  padding-top:18px;
  padding-bottom:27px;
  background:
    radial-gradient(circle at 88% 12%,#80bec12e 0 9rem,transparent 9.1rem),
    linear-gradient(130deg,var(--paper),var(--sand) 58%,var(--pale));
  color:var(--ink);
  border-bottom:1px solid #075a7317;
  border-radius:0 0 34px 34px;
  box-shadow:0 14px 34px #043b4c29
}

.brand{
  justify-content:flex-start;
  min-height:52px
}

.brand-logo{
  display:block;
  width:176px;
  max-width:58vw;
  height:52px;
  object-fit:contain;
  object-position:left center;
  filter:invert(27%) sepia(45%) saturate(1034%) hue-rotate(143deg) brightness(86%) contrast(94%)
}

.app-version{
  margin-left:auto;
  padding:6px 9px;
  color:var(--green);
  background:#ffffff8c;
  border:1px solid #075a732b;
  border-radius:999px;
  font-size:10px;
  letter-spacing:.04em;
  white-space:nowrap
}

.hero h1{
  margin-top:19px;
  font-size:clamp(28px,6.5vw,38px)
}

.hero p{color:var(--muted);opacity:1}

.install{
  top:14px;
  right:14px;
  min-height:40px;
  backdrop-filter:blur(6px)
}

.install{
  color:var(--green);
  background:#ffffffb8;
  border-color:#075a7340
}

.install:not([hidden])~h1{margin-top:28px}

body:has(.install:not([hidden])) .app-version{display:none}

.notice{
  color:#674318;
  background:#fff3df;
  border-color:#f3c79b
}

h2,h3{color:var(--deep)}

.quick-card,
article,
.catalog-group{
  border:1px solid #075a7315;
  box-shadow:var(--shadow)
}

.quick-card{
  min-height:124px;
  padding:15px;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease
}

.quick-card:hover,
.quick-card:focus-visible{
  border-color:#075a7342;
  box-shadow:0 18px 38px #043b4c1c;
  transform:translateY(-2px);
  outline:none
}

.quick-card span,
.private-card>span,
.wifi-icon{color:var(--green)}

.round-icon{
  color:var(--orange);
  background:#fff0df
}

.private-card{
  background:linear-gradient(120deg,var(--pale),#fffefa)
}

.button-link{
  min-height:44px;
  border:0;
  background:var(--orange);
  box-shadow:0 9px 20px #e8782e28;
  cursor:pointer;
  transition:background-color .18s ease,transform .18s ease
}

.button-link:hover,
.button-link:focus-visible{
  background:var(--orange-dark);
  transform:translateY(-1px);
  outline:3px solid #e8782e2c;
  outline-offset:2px
}

.bottom-nav{
  height:76px;
  padding-bottom:max(6px,env(safe-area-inset-bottom));
  border-top:1px solid #075a7315;
  box-shadow:0 -8px 28px #043b4c14
}

.bottom-nav button.active{color:var(--green)}
.filter-row button.active{background:var(--green);border-color:var(--green)}
.catalog-group h3{background:var(--pale)}
.date-strip div{background:var(--pale)}
.credential{background:#fffefa}

.reservation-form input:focus,
.reservation-form select:focus,
.reservation-form textarea:focus,
.access-form input:focus{
  border-color:var(--green);
  box-shadow:0 0 0 4px #075a731f;
  outline:none
}

.access-gate{
  padding:22px;
  overflow:auto;
  color:var(--ink);
  background:
    radial-gradient(circle at 8% 10%,#e8782e21 0 9rem,transparent 9.1rem),
    radial-gradient(circle at 94% 90%,#80bec12b 0 14rem,transparent 14.1rem),
    linear-gradient(145deg,var(--paper),var(--sand) 58%,var(--pale))
}

.access-gate>.gate-card{
  width:min(100%,430px);
  max-width:430px;
  margin:auto;
  padding:30px;
  color:var(--ink);
  background:var(--paper);
  border:1px solid #075a731f;
  border-radius:20px;
  box-shadow:0 24px 65px #043b4c20
}

.gate-logo{
  display:block;
  width:min(100%,210px);
  max-height:88px;
  margin:0 auto 19px;
  object-fit:contain;
  filter:invert(27%) sepia(45%) saturate(1034%) hue-rotate(143deg) brightness(86%) contrast(94%)
}

.gate-eyebrow{
  margin:0 0 7px!important;
  color:var(--orange);
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase
}

.access-gate h1{
  margin:0 0 10px;
  color:var(--deep);
  font-size:clamp(30px,8vw,39px);
  line-height:1.08
}

.access-gate p{
  color:var(--muted)
}

.access-form{
  margin:18px 0 15px
}

.access-form label{
  color:var(--deep)
}

.access-form input{
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  text-transform:uppercase
}

.access-gate .button-link{
  color:#fff;
  background:var(--orange)
}

.access-gate .button-link:hover,
.access-gate .button-link:focus-visible{
  background:var(--orange-dark)
}

.access-error{
  margin-bottom:13px!important;
  padding:10px;
  color:#8b381c!important;
  background:#fff0e7;
  border-radius:9px
}

.gate-phone{
  display:inline-block;
  color:var(--green);
  font-size:14px;
  text-decoration:none
}

.gate-phone:hover{text-decoration:underline}

@media(max-width:520px){
  body{padding-bottom:79px}
  .hero{min-height:181px;padding:15px 17px 24px;border-radius:0 0 25px 25px}
  .brand{min-height:45px}
  .brand-logo{width:150px;height:45px}
  .app-version{font-size:9px;padding:5px 7px}
  .hero h1{margin-top:15px;font-size:28px}
  .hero p{font-size:14px}
  .install{top:15px;right:17px;min-height:38px;padding:7px 9px;font-size:12px}
  main{padding:16px 13px}
  .notice{margin-bottom:18px}
  .quick-grid{gap:10px}
  .quick-card{min-height:112px;padding:13px;border-radius:14px}
  .quick-card span{font-size:25px}
  .quick-card strong{font-size:15px}
  article{padding:15px;border-radius:15px}
  .access-gate{align-items:flex-start;padding:12px}
  .access-gate>.gate-card{margin:auto;padding:24px 19px;border-radius:17px}
  .gate-logo{width:min(100%,180px);max-height:76px;margin-bottom:16px}
  .gate-eyebrow{font-size:10px}
  .access-gate h1{font-size:31px}
  .access-gate p{font-size:14px;line-height:1.45}
  .access-form{margin:15px 0 13px}
  .bottom-nav{height:70px}
}

@media(max-width:350px){
  .app-version{display:none}
  .quick-grid{grid-template-columns:1fr}
  .quick-card{min-height:0}
}

@media(max-height:650px){
  .access-gate{padding-top:8px;padding-bottom:8px}
  .access-gate>.gate-card{padding-top:20px;padding-bottom:20px}
  .gate-logo{max-height:65px;margin-bottom:12px}
  .gate-eyebrow{margin-bottom:4px!important}
  .access-gate h1{font-size:29px}
  .access-form{margin-top:12px}
}

@media(prefers-reduced-motion:reduce){
  .page.active{animation:none}
  .quick-card,.button-link{transition:none}
}

.brand-link{display:inline-flex;border-radius:12px}
.brand-link:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.language-control{position:absolute;right:18px;top:62px;display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800}
.language-control select{min-height:38px;padding:0 9px;color:var(--deep,#043b4c);background:#fff;border:1px solid #ffffff88;border-radius:10px;font-weight:800}
.weather-card{display:grid;grid-template-columns:1fr auto;gap:14px;color:#fff;background:linear-gradient(125deg,#043b4c,#075a73)}
.weather-card h2{margin:3px 0 5px}.weather-card>strong{font:700 42px Georgia,serif}.weather-forecast{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding-top:12px;border-top:1px solid #ffffff38}.forecast-day{text-align:center;font-size:11px}.forecast-day span,.forecast-day b{display:block}.forecast-day span{margin:4px 0;font-size:20px}
.events-list{display:grid;gap:10px;margin-bottom:20px}.event-card{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:12px;background:#fff;border-radius:16px;padding:14px;box-shadow:0 3px 15px #17413912}.event-date{padding:7px 3px;color:#fff;background:#075a73;border-radius:11px;text-align:center}.event-date b,.event-date span{display:block}.event-date b{font-size:19px}.event-date span{font-size:10px;font-weight:800;text-transform:uppercase}.event-card h3{margin:0}.event-card p{margin-top:3px;color:var(--muted);font-size:12px}.event-kind{padding:6px 8px;color:#9b420e;background:#fff0e5;border-radius:99px;font-size:10px;font-weight:800}
.wifi-modal[hidden]{display:none}.wifi-modal{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:16px;background:#043b4c99;backdrop-filter:blur(5px)}.wifi-modal-card{position:relative;width:min(100%,500px);max-height:92vh;overflow:auto;padding:22px;background:#fffdf8;border-radius:22px;box-shadow:0 28px 80px #022b3952}.wifi-modal-close{position:absolute;right:15px;top:15px;width:38px;height:38px;border:0;border-radius:50%;color:#075a73;background:#eaf4f3;font-size:22px}.wifi-plans{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.wifi-plans label{display:flex;flex-direction:column;gap:5px;padding:15px;background:#fff;border:2px solid var(--line);border-radius:14px;cursor:pointer}.wifi-plans label:has(input:checked){border-color:#075a73;background:#eaf4f3}.wifi-plans input{position:absolute;opacity:0}.wifi-plans b{color:#e8782e;font:700 24px Georgia,serif}.wifi-consent{display:flex;align-items:flex-start;gap:10px;margin:15px 0;font-size:13px}.wifi-consent input{margin-top:3px}.wifi-confirm{width:100%;border:0;margin-top:0}.wifi-confirm:disabled{cursor:not-allowed;opacity:.5}.wifi-purchase-result{margin-top:12px!important}
@media(max-width:520px){.language-control{top:60px;right:17px}.language-control span{display:none}.weather-forecast{gap:2px}.event-card{grid-template-columns:52px 1fr}.event-kind{display:none}}

.home-section-heading{display:flex;align-items:center;gap:11px;margin:25px 2px 10px}.home-section-heading h2{margin:1px 0 0}.home-section-heading .eyebrow{margin:0}.home-section-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;color:var(--green);background:var(--pale);border-radius:13px;font-size:23px;font-weight:800}.stay-schedule{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}.stay-schedule>div{padding:11px;background:#fff8ee;border:1px solid #f5dfc5;border-radius:11px}.stay-schedule small,.stay-schedule strong{display:block}.stay-schedule small{margin-bottom:3px;color:var(--muted);font-size:11px}.stay-schedule strong{color:var(--orange-dark);font-size:18px}.stay-advice{margin:12px 0;padding:11px 12px;color:var(--deep);background:var(--pale);border-radius:11px;font-size:13px}.home-action-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px}.home-action-card .button-link{margin:0;white-space:nowrap}.home-hours{margin-top:9px;color:var(--muted);font-size:13px}.important-info{padding-top:7px}.important-row{display:flex;justify-content:space-between;gap:18px;padding:12px 2px;border-bottom:1px solid var(--line)}.important-row span{color:var(--muted)}.important-row strong{text-align:right;font-size:13px}.important-row.warning strong{padding:4px 8px;color:#9b420e;background:#fff0e5;border-radius:99px}.emergency-links{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:15px 0}.emergency-links a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;color:var(--deep);background:#f5f8f7;border:1px solid var(--line);border-radius:11px;text-decoration:none}.emergency-links small{color:var(--muted);font-size:10px}.emergency-links strong{font-size:20px}.reception-call{display:flex;justify-content:space-between;gap:12px;margin:0 0 10px;padding:13px;color:#fff;background:var(--green);border-radius:11px;text-decoration:none}.reception-call strong{white-space:nowrap}

@media(max-width:520px){.home-action-card{grid-template-columns:1fr}.home-action-card .button-link{width:100%;text-align:center}.important-row{align-items:center}.emergency-links{grid-template-columns:repeat(2,1fr)}.reception-call{flex-direction:column;gap:3px}.reception-call strong{font-size:18px}}
