
:root{
  --bg:#f8f6f2;
  --bg-soft:#ffffff;
  --sand:#efe7dc;
  --line:#ddd6cb;
  --text:#1e2931;
  --muted:#5f6b72;
  --navy:#163248;
  --lake:#1ea9c8;
  --lake-dark:#0f6f8c;
  --sage:#a6c36f;
  --gold:#d7b36a;
  --shadow:0 18px 40px rgba(22,50,72,.12);
  --radius:28px;
  --radius-sm:18px;
  --container:min(1180px, calc(100% - 40px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{width:var(--container);margin:0 auto}
.topbar{
  background:linear-gradient(90deg,var(--navy),#204c65);
  color:#e6f7fb;
  font-size:14px;
}
.topbar-inner{
  display:flex;justify-content:space-between;gap:16px;align-items:center;
  padding:10px 0;
}
.top-link{color:#fff;font-weight:600}
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(248,246,242,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(221,214,203,.9);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  min-height:84px;
}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{
  width:54px;height:54px;border-radius:18px;
  background:linear-gradient(180deg,#eefafc,#d8f0f6);
  display:grid;place-items:center;
  box-shadow:0 10px 20px rgba(21,90,138,.14);
  overflow:hidden;
}
.brand-mark svg{width:40px;height:40px}
.brand-text strong{
  display:block;font-family:Georgia,"Times New Roman",serif;
  font-size:30px;line-height:1;letter-spacing:-.03em;
}
.brand-text small{
  display:block;color:var(--muted);font-size:13px;margin-top:2px;
  letter-spacing:.08em;text-transform:uppercase
}
.main-nav{display:flex;align-items:center;gap:28px}
.main-nav a{
  font-weight:700;font-size:15px;color:#34424a;
  position:relative
}
.main-nav a:after{
  content:"";position:absolute;left:0;bottom:-8px;width:0;height:2px;
  background:var(--lake);transition:.25s ease
}
.main-nav a:hover:after,.main-nav a:focus:after{width:100%}
.menu-toggle{display:none;background:none;border:0;padding:0;width:44px}
.menu-toggle span{display:block;height:2px;background:var(--navy);margin:7px 0;border-radius:2px}

.hero-slider{position:relative;min-height:88vh;overflow:hidden}

.hero-slider.single-hero{min-height:84vh}
.hero-slider.single-hero .hero-content{grid-template-columns:minmax(0,760px) 260px}
.hero-slider.single-hero .slider-dots{display:none}
.hero-slider.single-hero .slide{position:relative;opacity:1}

.hospitality-home .section-head{max-width:720px;margin-bottom:28px}
.hospitality-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}
.hospitality-card{
  display:grid;
  grid-template-columns:200px minmax(0,1fr);
  background:#fff;
  border-radius:var(--radius);
  border:1px solid var(--line);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.hospitality-card img{width:100%;height:100%;min-height:220px;object-fit:cover}
.hospitality-card .card-body{padding:22px 22px 20px}
.hospitality-card h3{font-size:34px;line-height:.96;margin:0 0 12px;font-family:Georgia,"Times New Roman",serif;letter-spacing:-.04em}
.hospitality-card p{margin:0 0 14px;color:var(--muted)}
.hospitality-card .small-kicker{display:block;color:#9a7532;font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px}
.hospitality-card .card-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.hospitality-card .card-actions a{color:var(--lake-dark);font-weight:800}
.hospitality-note{
  margin-top:18px;
  color:var(--muted);
  font-size:16px;
}

.partner-grid.wide{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.partner-grid.wide .partner-card{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:stretch}
.partner-grid.wide .partner-card img{height:100%;min-height:240px}
.partner-grid.wide .card-body{display:flex;flex-direction:column;justify-content:center}
.partner-grid.wide .card-body h3{font-size:36px;line-height:.98}
.partner-grid.wide .card-body p{font-size:17px;margin-bottom:14px}
.partner-grid.wide .partner-card a{margin-top:auto}

.slide{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity .8s ease;
}
.slide.active{opacity:1;position:relative}
.overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,34,46,.74),rgba(16,34,46,.35) 55%,rgba(16,34,46,.08))}
.hero-content{
  min-height:88vh;display:grid;grid-template-columns:minmax(0,700px) 260px;
  align-items:center;gap:32px;position:relative;z-index:2;
}
.glass{
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:var(--shadow);
  backdrop-filter:blur(14px);
}
.hero-panel{
  padding:36px;border-radius:34px;color:#fff;max-width:720px
}
.hero-panel h1{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(42px,6vw,78px);line-height:.95;letter-spacing:-.05em;
  margin:14px 0 18px;
}
.hero-panel p{font-size:18px;max-width:620px;color:#eff7fa}
.eyebrow{
  display:inline-flex;align-items:center;padding:8px 14px;border-radius:999px;
  border:1px solid rgba(215,179,106,.45);
  background:rgba(239,231,220,.5);
  color:#9a7532;font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase
}
.hero-actions,.cta-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 22px;border-radius:18px;font-weight:800;transition:.2s ease;
  border:1px solid transparent
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(135deg,var(--lake),var(--lake-dark));color:#fff;box-shadow:0 12px 30px rgba(30,169,200,.25)}
.btn-secondary{background:rgba(255,255,255,.92);color:var(--navy);border-color:rgba(255,255,255,.7)}

.hero-side{
  border-radius:28px;padding:16px;display:grid;gap:12px
}
.side-card{
  background:rgba(255,255,255,.88);border-radius:20px;padding:18px;
  color:var(--text)
}
.side-card strong{display:block;font-size:28px;font-family:Georgia,"Times New Roman",serif}
.side-card span{display:block;color:var(--muted);font-size:14px}
.slider-dots{
  position:absolute;left:0;right:0;bottom:36px;z-index:5;
  display:flex;gap:10px
}
.slider-dots button{
  width:12px;height:12px;border-radius:50%;border:0;background:rgba(255,255,255,.45);cursor:pointer
}
.slider-dots button.active{background:#fff}

.section{padding:96px 0}
.section-light{background:#fff}
.section-accent{background:linear-gradient(180deg,#fbfaf7,#f1ece4)}
.section-head{max-width:760px;margin-bottom:34px}
.section-head.compact{margin-bottom:24px}
.section-head h2{
  font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,4vw,54px);
  line-height:1.02;letter-spacing:-.04em;margin:14px 0 12px
}
.section-head p{color:var(--muted);font-size:18px}
.intro-grid,.story-split,.parking-grid,.hospitality-split,.article-layout{
  display:grid;grid-template-columns:1.1fr .9fr;gap:42px;align-items:start
}
.intro-grid h2,.story-copy h2,.page-hero-inner h1,.rich-text h2,.cta-box h2{
  font-family:Georgia,"Times New Roman",serif;line-height:1.03;letter-spacing:-.04em
}
.intro-grid h2,.story-copy h2,.rich-text h2,.cta-box h2{font-size:clamp(30px,4vw,48px);margin:12px 0}
.intro-grid p,.story-copy p,.rich-text p{font-size:18px;color:var(--muted)}
.intro-facts,.parking-cards,.sidebar-stack{display:grid;gap:16px}
.fact,.mini-stat,.side-info,.experience,.partner-card,.attraction-card,.parking-card,.parking-detail,.faq-card,.story-panel{
  border-radius:var(--radius);background:var(--bg-soft);border:1px solid var(--line);box-shadow:var(--shadow)
}
.fact{padding:22px}
.fact strong{display:block;font-size:20px;margin-bottom:6px}
.fact span{color:var(--muted)}

.cards-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px
}
.card{overflow:hidden}
.attraction-card img,.partner-card img{height:240px;width:100%;object-fit:cover}
.attraction-card.featured{grid-column:span 2}
.attraction-card.featured img{height:300px}
.card-body{padding:22px}
.card-body h3{
  margin:0 0 10px;font-size:28px;line-height:1.05;
  font-family:Georgia,"Times New Roman",serif;letter-spacing:-.03em
}
.card-body p{margin:0;color:var(--muted)}
.card-links{margin-top:14px;display:flex;gap:18px;flex-wrap:wrap}
.card-links a,.partner-card a,.parking-card a{
  color:var(--lake-dark);font-weight:800
}
.tick-list,.faq-list,.rich-text ul,.side-info ul{
  margin:18px 0 0;padding-left:20px;color:var(--muted)
}
.story-panel{padding:20px;display:grid;gap:14px}
.mini-stat{padding:18px}
.mini-stat span{display:block;font-size:28px;font-family:Georgia,"Times New Roman",serif;color:var(--navy)}
.mini-stat small{color:var(--muted)}
.experience-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.experience{padding:24px}
.experience h3{margin:0 0 10px;font-size:22px}
.experience p{margin:0;color:var(--muted)}
.parking-card,.faq-card,.parking-detail,.side-info{padding:24px}
.parking-card h3,.faq-card h3,.parking-detail h3,.side-info h3{margin:0 0 10px;font-size:24px;font-family:Georgia,"Times New Roman",serif}
.parking-card p,.faq-card li,.parking-detail p,.parking-detail ul,.side-info li{color:var(--muted)}
.parking-detail-grid{grid-template-columns:repeat(3,1fr)}
.partner-grid{grid-template-columns:repeat(4,1fr)}
.partner-grid.wide .partner-card img{height:220px}
.page-hero{
  min-height:54vh;background-size:cover;background-position:center;position:relative
}
.page-hero.slim{min-height:52vh}
.page-hero-inner{
  position:relative;z-index:2;min-height:52vh;display:flex;flex-direction:column;
  justify-content:flex-end;padding-bottom:54px;color:#fff;max-width:760px
}
.page-hero-inner h1{
  font-size:clamp(40px,5vw,68px);margin:14px 0 12px
}
.page-hero-inner p{font-size:19px;color:#edf4f6}
.rich-text h2{margin-top:0}
.rich-text ul li{margin-bottom:10px}
.cta-section{padding-top:0}
.cta-box{
  background:linear-gradient(135deg,var(--navy),#235779);
  color:#fff;border-radius:36px;padding:42px;display:grid;
  grid-template-columns:1fr auto;gap:24px;align-items:center;
  box-shadow:0 22px 60px rgba(21,50,72,.22)
}
.cta-box p{color:#e9f5f8;font-size:18px}
.site-footer{
  background:#10232f;color:#e4edf1;margin-top:30px
}
.footer-grid{
  display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:24px;padding:48px 0 24px
}
.site-footer h3,.site-footer h4{
  margin:0 0 14px;font-family:Georgia,"Times New Roman",serif
}
.site-footer p,.site-footer li,.footer-bottom{color:#b7c8cf}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.site-footer a:hover{color:#fff}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);padding:18px 0 26px;
  display:flex;justify-content:space-between;gap:20px;font-size:14px
}

@media (max-width:1100px){
  .hero-content,.intro-grid,.story-split,.parking-grid,.hospitality-split,.article-layout,.cta-box{grid-template-columns:1fr}
  .hospitality-grid,.partner-grid.wide{grid-template-columns:1fr}
  .hospitality-card,.partner-grid.wide .partner-card{grid-template-columns:1fr}
  .cards-grid,.experience-grid,.partner-grid,.parking-detail-grid{grid-template-columns:1fr 1fr}
  .attraction-card.featured{grid-column:auto}
  .attraction-card.featured img{height:240px}
  .hero-side{max-width:320px}
}
@media (max-width:760px){
  .hero-slider.single-hero{min-height:78vh}
  .hospitality-card h3,.partner-grid.wide .card-body h3{font-size:30px}
  .hospitality-card img,.partner-grid.wide .partner-card img{min-height:200px}

  .topbar-inner,.footer-bottom{flex-direction:column;align-items:flex-start}
  .main-nav{
    position:absolute;top:84px;left:0;right:0;background:rgba(248,246,242,.98);
    border-bottom:1px solid var(--line);padding:18px 20px;display:none;flex-direction:column;align-items:flex-start
  }
  .main-nav.open{display:flex}
  .menu-toggle{display:block}
  .hero-content{min-height:86vh;padding:110px 0 100px}
  .hero-panel{padding:26px}
  .hero-panel p,.section-head p,.intro-grid p,.story-copy p,.rich-text p,.cta-box p,.page-hero-inner p{font-size:17px}
  .cards-grid,.experience-grid,.partner-grid,.parking-detail-grid,.footer-grid{grid-template-columns:1fr}
  .header-inner{min-height:76px}
  .brand-text strong{font-size:26px}
  .section{padding:72px 0}
  .page-hero-inner{padding-bottom:36px}
  .cta-box{padding:28px}
}


/* Premium refinement */
.site-header{box-shadow:0 10px 28px rgba(16,35,47,.05)}
.hero-slider.single-hero .hero-content{padding-top:48px;padding-bottom:56px}
.hero-panel{
  background:linear-gradient(180deg,rgba(14,27,36,.42),rgba(14,27,36,.24));
  box-shadow:0 24px 70px rgba(8,20,28,.18);
}
.hero-side{background:rgba(255,255,255,.12)}
.hero-panel p{max-width:560px}
.hospitality-card,.partner-grid.wide .partner-card{
  background:#fff;
  border:1px solid rgba(211,202,191,.9);
  box-shadow:0 18px 40px rgba(22,50,72,.08);
}
.hospitality-card .card-body,.partner-grid.wide .card-body{background:#fff}
.hospitality-card h3,.partner-grid.wide .card-body h3{color:#1d2730}
.hospitality-card .card-actions a,.partner-grid.wide .partner-card a{display:inline-flex;align-items:center;gap:8px}
.hospitality-card .card-actions a::after,.partner-grid.wide .partner-card a::after{content:'→';font-size:14px}
.page-hero.slim .page-hero-inner{max-width:760px}
.page-hero.slim .overlay{background:linear-gradient(90deg,rgba(16,34,46,.82),rgba(16,34,46,.36) 58%,rgba(16,34,46,.1))}

@media (max-width:900px){
  .topbar{font-size:13px}
  .topbar-inner{padding:9px 0}
  .hero-slider.single-hero{min-height:72vh}
  .hero-slider.single-hero .hero-content{padding-top:124px;padding-bottom:34px}
  .hero-panel{padding:24px 22px;border-radius:26px;max-width:none;width:100%}
  .hero-panel h1{font-size:clamp(34px,10vw,52px);line-height:.94;margin:12px 0 14px}
  .hero-panel p{font-size:16px;line-height:1.5;max-width:none}
  .hero-actions{gap:10px}
  .hero-actions .btn{width:100%}
  .hero-side{display:none}
  .hospitality-grid{gap:18px}
  .hospitality-card{grid-template-columns:1fr;border-radius:24px}
  .hospitality-card img{aspect-ratio:16/10;height:auto;min-height:0;max-height:260px}
  .hospitality-card .card-body{padding:20px}
  .hospitality-card h3{font-size:30px;line-height:1.02}
  .hospitality-card p{font-size:16px}
  .partner-grid.wide{grid-template-columns:1fr;gap:18px}
  .partner-grid.wide .partner-card{grid-template-columns:1fr}
  .partner-grid.wide .partner-card img{aspect-ratio:16/10;height:auto;min-height:0;max-height:280px}
  .partner-grid.wide .card-body{padding:20px}
  .partner-grid.wide .card-body h3{font-size:30px;line-height:1.02;margin-bottom:10px}
  .partner-grid.wide .card-body p{font-size:16px;margin-bottom:10px}
  .page-hero.slim{min-height:42vh}
  .page-hero-inner{min-height:42vh;padding-bottom:28px}
  .page-hero-inner h1{font-size:clamp(34px,9vw,46px);line-height:.98}
}

@media (max-width:760px){
  :root{--container:min(1180px, calc(100% - 28px))}
  .topbar-inner{align-items:flex-start;gap:6px}
  .topbar .top-link{font-weight:700}
  .header-inner{min-height:78px;gap:12px}
  .brand{gap:12px;min-width:0;flex:1}
  .brand-mark{width:52px;height:52px;border-radius:16px;flex:0 0 52px}
  .brand-text strong{font-size:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand-text small{font-size:12px;letter-spacing:.12em}
  .menu-toggle{display:block;flex:0 0 44px}
  .main-nav{top:78px;padding:14px 18px 18px;border-top:1px solid rgba(221,214,203,.8);box-shadow:0 18px 30px rgba(16,35,47,.08)}
  .main-nav a{font-size:16px;padding:8px 0;width:100%}
  .hero-slider.single-hero{min-height:64vh}
  .hero-slider.single-hero .slide{background-position:center center}
  .hero-slider.single-hero .overlay{background:linear-gradient(180deg,rgba(16,34,46,.18) 0%,rgba(16,34,46,.52) 42%,rgba(16,34,46,.74) 100%)}
  .hero-content{min-height:64vh;align-items:end;gap:0;padding:106px 0 24px}
  .hero-panel{padding:18px 16px 16px;border-radius:22px;background:rgba(14,27,36,.42);backdrop-filter:blur(10px)}
  .eyebrow{font-size:11px;padding:7px 12px}
  .hero-panel h1{font-size:clamp(28px,11vw,40px);line-height:.96;max-width:10ch;word-break:normal}
  .hero-panel p{font-size:15px;margin-bottom:0}
  .btn{padding:13px 16px;border-radius:16px}
  .section-head h2,.intro-grid h2,.story-copy h2,.rich-text h2,.cta-box h2{font-size:clamp(28px,8vw,36px);line-height:1.04}
  .section-head p,.intro-grid p,.story-copy p,.rich-text p,.cta-box p,.page-hero-inner p{font-size:16px}
  .intro-grid,.story-split,.parking-grid,.hospitality-split,.article-layout{gap:24px}
  .card-body{padding:18px}
  .card-body h3{font-size:24px;line-height:1.06}
  .attraction-card img,.partner-card img,.attraction-card.featured img{height:auto;aspect-ratio:4/3}
  .hospitality-home .section-head,.section-head.compact{margin-bottom:20px}
  .hospitality-grid,.partner-grid.wide{gap:16px}
  .hospitality-card,.partner-grid.wide .partner-card{border-radius:22px;overflow:hidden}
  .hospitality-card img,.partner-grid.wide .partner-card img{width:100%;display:block;aspect-ratio:16/10;object-fit:cover}
  .hospitality-card .card-body,.partner-grid.wide .card-body{position:relative;z-index:1;background:#fff}
  .hospitality-card h3,.partner-grid.wide .card-body h3{font-size:24px;line-height:1.05;margin:0 0 10px}
  .hospitality-card p,.partner-grid.wide .card-body p{font-size:15px;line-height:1.55;color:var(--muted)}
  .hospitality-note{font-size:15px;line-height:1.55}
  .page-hero.slim{min-height:38vh}
  .page-hero-inner{padding-top:120px;justify-content:flex-end}
  .page-hero-inner h1{font-size:clamp(28px,9vw,36px);line-height:1.02}
  .cta-box{padding:22px;border-radius:28px}
  .footer-grid{padding:34px 0 18px}
}

@media (max-width:420px){
  .brand-text strong{font-size:22px}
  .hero-panel h1{font-size:26px;max-width:11ch}
  .hero-actions .btn{font-size:15px}
  .hospitality-card h3,.partner-grid.wide .card-body h3{font-size:22px}
}
