:root {
  --navy:#082d40;
  --navy-2:#0b4054;
  --sea:#14758a;
  --sand:#c49a5a;
  --ivory:#f5f1e8;
  --paper:#fffefa;
  --muted:#6c7e84;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--ivory); color:var(--navy); font-family:"Montserrat",sans-serif; margin:0; }

.intro-screen { background:#020b10; inset:0; overflow:hidden; position:fixed; transition:opacity .8s ease, visibility .8s; z-index:9999; }
.intro-screen video { height:100%; object-fit:cover; width:100%; }
.intro-shade { background:linear-gradient(90deg,rgba(2,11,16,.78),rgba(2,11,16,.12),rgba(2,11,16,.5)); inset:0; position:absolute; }
.intro-skip { background:transparent; border:1px solid rgba(255,255,255,.6); bottom:40px; color:white; font-size:12px; letter-spacing:2px; padding:12px 20px; position:absolute; right:clamp(24px,5vw,70px); text-transform:uppercase; }
.intro-skip span { margin-left:18px; }
.intro-finished { opacity:0; pointer-events:none; visibility:hidden; }
.site-content { opacity:0; transform:translateY(12px); transition:opacity .7s ease .25s, transform .7s ease .25s; }
.site-ready .site-content { opacity:1; transform:none; }

.premium-nav { background:rgba(255,254,250,.95); border-bottom:1px solid rgba(8,45,64,.1); padding:14px 0; }
.nav-logo { align-items:center; background:var(--navy); border-radius:50%; display:flex; height:48px; justify-content:center; width:48px; }
.nav-logo img { filter:brightness(0) invert(1); height:33px; width:33px; }
.navbar-brand strong,.navbar-brand small { display:block; letter-spacing:2px; }
.navbar-brand strong { color:var(--navy); font-family:"Montserrat",sans-serif; font-size:18px; font-weight:500; line-height:1; }
.navbar-brand small { color:var(--muted); font-size:8px; margin-top:4px; }
.nav-phone { align-items:flex-end; color:var(--navy); flex-direction:column; text-decoration:none; }
.nav-phone span { color:var(--muted); font-size:9px; letter-spacing:2px; text-transform:uppercase; }
.nav-phone strong { font-family:"Montserrat",sans-serif; font-size:16px; font-weight:500; letter-spacing:.5px; }

.public-hero { background:linear-gradient(118deg,#082d40 0%,#0b4054 55%,#0f5b69 100%); color:white; min-height:calc(100vh - 77px); overflow:hidden; position:relative; }
.public-hero::before { border:1px solid rgba(196,154,90,.18); border-radius:50%; content:""; height:680px; left:-280px; position:absolute; top:-330px; width:680px; }
.hero-glow { background:radial-gradient(circle,rgba(20,117,138,.38),transparent 67%); height:760px; position:absolute; right:-230px; top:-260px; width:760px; }
.min-vh-75 { min-height:calc(100vh - 77px); padding:65px 0; }
.section-kicker { color:var(--sand); font-size:10px; font-weight:600; letter-spacing:3px; }
.hero-copy h1 { font-family:"Montserrat",sans-serif; font-size:clamp(46px,6.2vw,82px); font-weight:300; letter-spacing:-4px; line-height:.94; margin:24px 0 34px; }
.hero-copy h1 em { color:#d7b776; font-style:normal; font-weight:300; }
.hero-copy>p { color:#c2d0d2; font-family:"Montserrat",sans-serif; font-size:15px; font-weight:300; letter-spacing:.2px; line-height:1.8; max-width:520px; }
.hero-details { border-top:1px solid rgba(255,255,255,.16); display:flex; gap:35px; margin-top:38px; padding-top:25px; }
.hero-details>div { align-items:flex-start; display:flex; gap:11px; }
.hero-details span { color:var(--sand); }
.hero-details p { color:#aebfc2; font-size:11px; line-height:1.6; margin:0; }
.hero-links { align-items:center; display:flex; flex-wrap:wrap; gap:24px; margin-top:25px; }
.hero-links>a { align-items:center; border:1px solid rgba(255,255,255,.24); color:white; display:flex; gap:12px; min-width:200px; padding:12px 15px; text-decoration:none; transition:.2s; }
.hero-links>a:hover { background:rgba(255,255,255,.08); border-color:var(--sand); }
.hero-links>a .link-icon { color:var(--sand); font-size:19px; }
.hero-links>a small { color:#8fa8ae; display:block; font-size:7px; letter-spacing:2px; margin-bottom:2px; }
.hero-links>a span:nth-child(2) { font-size:11px; font-weight:500; letter-spacing:.4px; }
.hero-links>a b { color:var(--sand); font-weight:400; margin-left:auto; }
.social-mini { align-items:center; display:flex; gap:8px; }
.social-mini a { align-items:center; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:white; display:flex; font-size:10px; font-weight:600; height:30px; justify-content:center; text-decoration:none; text-transform:uppercase; width:30px; }
.social-mini a:hover { background:var(--sand); border-color:var(--sand); color:var(--navy); }
.social-mini>span { color:#91a8ad; font-size:9px; letter-spacing:.5px; margin-left:3px; }

.reservation-card-public { background:var(--paper); border:1px solid rgba(196,154,90,.3); box-shadow:0 28px 80px rgba(0,0,0,.25); color:var(--navy); padding:clamp(28px,4vw,48px); position:relative; }
.reservation-card-public::before { border-left:1px solid var(--sand); border-top:1px solid var(--sand); content:""; height:34px; left:12px; position:absolute; top:12px; width:34px; }
.card-heading { margin-bottom:25px; }
.card-heading h2,.hours-section h2 { font-family:"Montserrat",sans-serif; font-size:34px; font-weight:300; letter-spacing:-1.5px; margin:8px 0; }
.card-heading p { color:var(--muted); font-size:12px; }
.form-label { color:#2a4c59; font-size:10px; font-weight:600; letter-spacing:1px; margin-bottom:7px; text-transform:uppercase; }
.form-label small { color:#8b999c; text-transform:none; }
.form-control,.form-select { background:#faf9f5; border:0; border-bottom:1px solid #cad4d5; border-radius:0; color:var(--navy); font-size:13px; padding:12px 9px; }
.form-control:focus,.form-select:focus { background:white; border-color:var(--sea); box-shadow:0 2px 0 rgba(20,117,138,.12); }
.area-options { display:grid; gap:10px; grid-template-columns:1fr 1fr; }
.area-options input { opacity:0; position:absolute; }
.area-options span { border:1px solid #d5dcda; cursor:pointer; display:block; font-size:12px; padding:11px; text-align:center; transition:.2s; }
.area-options input:checked+span { background:var(--navy); border-color:var(--navy); color:white; }
.event-mode .area-options { grid-template-columns:1fr; }
.event-mode .area-options span::after {
  color:#9fb0b5;
  content:" · espacio exclusivo para eventos";
  font-size:8px;
  font-weight:300;
}
.btn-reserve { align-items:center; background:var(--navy); border:0; color:white; display:flex; font-size:11px; font-weight:600; justify-content:space-between; letter-spacing:2px; padding:16px 20px; text-transform:uppercase; transition:.2s; width:100%; }
.btn-reserve:hover { background:var(--sea); }
.btn-reserve:disabled { cursor:wait; opacity:.7; }
.btn-reserve b { color:var(--sand); font-size:17px; }
.privacy-note { color:#8a979a; display:block; font-size:9px; line-height:1.5; margin-top:9px; text-align:center; }
.public-message { border-radius:2px; font-size:11px; line-height:1.5; margin:0 0 10px; }
.public-message.success { background:#e6f0e8; color:#2b6138; padding:10px; }
.public-message.error { background:#f9e7e2; color:#923a2b; padding:10px; }

.hours-section { background:var(--ivory); padding:80px 0; }
.hours-section p { color:var(--muted); font-family:"Montserrat",sans-serif; font-size:14px; font-weight:300; line-height:1.8; max-width:460px; }
.hours-grid { display:grid; grid-template-columns:1fr 1fr; }
.hours-grid div { border-bottom:1px solid #d7d8d1; display:flex; flex-direction:column; padding:18px 12px; }
.hours-grid div:nth-child(odd) { border-right:1px solid #d7d8d1; }
.hours-grid span { color:var(--sea); font-size:9px; letter-spacing:2px; text-transform:uppercase; }
.hours-grid strong { font-family:"Montserrat",sans-serif; font-size:15px; font-weight:400; letter-spacing:.2px; margin-top:8px; }
.public-footer { background:#051f2d; color:#829ba3; padding:30px 0; }
.public-footer img { filter:brightness(0) invert(1); height:60px; object-fit:contain; width:150px; }
.public-footer p { font-size:10px; margin:0; }
.public-footer a { color:#d7b776; font-family:"Montserrat",sans-serif; font-size:15px; font-weight:500; text-decoration:none; }
.footer-contact { align-items:center; display:flex; gap:8px; }
.footer-contact a:last-child { color:#9fb0b5; font-size:10px; font-weight:400; }

.location-section { background:#e9e5dc; padding:0 0 80px; }
.location-card { align-items:center; background:var(--navy); color:white; display:flex; justify-content:space-between; overflow:hidden; padding:55px clamp(28px,6vw,75px); position:relative; }
.location-card::after { border:1px solid rgba(196,154,90,.18); border-radius:50%; content:""; height:380px; position:absolute; right:-130px; top:-190px; width:380px; }
.location-card h2 { font-size:clamp(34px,4vw,52px); font-weight:300; letter-spacing:-2px; line-height:1.08; margin:12px 0 18px; }
.location-card p { color:#9eb1b6; font-size:11px; line-height:1.7; margin:0; }
.location-actions { min-width:280px; position:relative; z-index:1; }
.directions-button { align-items:center; background:var(--sand); color:var(--navy); display:flex; font-size:10px; font-weight:600; justify-content:space-between; letter-spacing:1.5px; padding:15px 17px; text-decoration:none; text-transform:uppercase; }
.directions-button:hover { background:#d5b477; color:var(--navy); }
.social-links { display:grid; gap:8px; grid-template-columns:1fr 1fr; margin-top:10px; }
.social-links a { align-items:center; border:1px solid rgba(255,255,255,.2); color:white; display:flex; font-size:9px; gap:9px; letter-spacing:.5px; padding:10px; text-decoration:none; }
.social-links b { align-items:center; background:rgba(255,255,255,.1); border-radius:50%; display:flex; height:25px; justify-content:center; text-transform:uppercase; width:25px; }
.social-links a:hover { border-color:var(--sand); }

@media (max-width:991px) {
  .hero-copy { text-align:center; }
  .hero-copy>p { margin-left:auto; margin-right:auto; }
  .hero-details { justify-content:center; text-align:left; }
  .reservation-card-public { margin-bottom:25px; }
  .location-card { align-items:flex-start; flex-direction:column; gap:35px; }
  .location-actions { width:100%; }
}
@media (max-width:575px) {
  .hero-copy h1 { font-size:46px; letter-spacing:-2.5px; }
  .hero-details { align-items:flex-start; flex-direction:column; gap:15px; }
  .hours-grid { grid-template-columns:1fr; }
  .hours-grid div:nth-child(odd) { border-right:0; }
  .reservation-card-public { padding:30px 20px; }
  .hero-links { align-items:flex-start; flex-direction:column; }
  .hero-links>a { width:100%; }
  .location-card { padding:38px 22px; }
  .social-links { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .intro-screen { display:none; }
  .site-content { opacity:1; transform:none; }
}

/* Premium refinement */
.premium-nav {
  background:#061f2c;
  border-bottom:1px solid rgba(196,154,90,.22);
  padding:18px 0;
}
.navbar-brand strong { color:#fff; font-size:16px; letter-spacing:3.5px; }
.navbar-brand small { color:#8da3aa; letter-spacing:2.5px; }
.nav-logo { background:transparent; border:1px solid rgba(196,154,90,.7); height:52px; width:52px; }
.nav-logo img { height:35px; width:35px; }
.nav-phone span { color:#78919a; }
.nav-phone strong { color:#d2b06d; letter-spacing:1px; }

.public-hero {
  background:
    radial-gradient(circle at 78% 17%,rgba(20,117,138,.2),transparent 34%),
    linear-gradient(125deg,#041922 0%,#082d40 58%,#0b3c4d 100%);
  min-height:calc(100vh - 89px);
}
.public-hero::before { border-color:rgba(196,154,90,.12); height:820px; left:-390px; top:-420px; width:820px; }
.public-hero::after {
  background:linear-gradient(90deg,var(--sand),transparent);
  bottom:0;
  content:"";
  height:1px;
  left:0;
  opacity:.6;
  position:absolute;
  width:48%;
}
.min-vh-75 { min-height:calc(100vh - 89px); padding:78px 0 88px; }
.hero-glow { opacity:.5; }
.hero-watermark {
  filter:brightness(0) invert(1);
  height:620px;
  left:-45px;
  object-fit:contain;
  opacity:.025;
  pointer-events:none;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:620px;
}
.vertical-signature {
  bottom:80px;
  color:rgba(255,255,255,.2);
  font-size:7px;
  left:28px;
  letter-spacing:4px;
  position:absolute;
  transform:rotate(-90deg);
  transform-origin:left center;
}
.hero-copy { padding-left:35px; position:relative; }
.hero-number {
  color:rgba(196,154,90,.38);
  font-size:10px;
  left:0;
  letter-spacing:2px;
  position:absolute;
  top:5px;
}
.section-kicker { letter-spacing:3.8px; }
.hero-copy h1 {
  font-size:clamp(48px,6vw,80px);
  letter-spacing:-4.5px;
  line-height:.98;
  margin:30px 0 30px;
  max-width:650px;
}
.hero-copy h1 em { color:#d9bc7d; position:relative; }
.hero-copy h1 em::after {
  background:var(--sand);
  bottom:-12px;
  content:"";
  height:1px;
  left:3px;
  opacity:.65;
  position:absolute;
  width:64px;
}
.hero-copy>p { color:#a8bbc0; font-size:13px; letter-spacing:.4px; line-height:1.9; max-width:480px; }
.hero-details { border-color:rgba(196,154,90,.22); max-width:520px; }
.hero-links>a { backdrop-filter:blur(8px); background:rgba(255,255,255,.025); }

.reservation-card-public {
  background:#fbfaf5;
  border:1px solid rgba(196,154,90,.58);
  box-shadow:0 40px 110px rgba(0,0,0,.44);
  margin-left:auto;
  max-width:570px;
  padding:54px 52px 36px;
}
.reservation-card-public::before { height:48px; left:14px; top:14px; width:48px; }
.reservation-card-public::after {
  border-bottom:1px solid var(--sand);
  border-right:1px solid var(--sand);
  bottom:14px;
  content:"";
  height:48px;
  position:absolute;
  right:14px;
  width:48px;
}
.concierge-label {
  align-items:center;
  color:#819198;
  display:flex;
  font-size:7px;
  gap:8px;
  letter-spacing:2.5px;
  margin-bottom:18px;
}
.concierge-label span { background:var(--sand); height:1px; width:27px; }
.request-switch {
  background:#ebe8df;
  border-radius:28px;
  display:grid;
  gap:4px;
  grid-template-columns:1fr 1fr;
  margin-bottom:24px;
  padding:4px;
}
.request-switch input { opacity:0; position:absolute; }
.request-switch span {
  align-items:center;
  border-radius:23px;
  color:#6d7e83;
  cursor:pointer;
  display:flex;
  font-size:9px;
  gap:8px;
  justify-content:center;
  letter-spacing:.7px;
  padding:11px 8px;
  transition:.2s;
}
.request-switch input:checked+span {
  background:#082d40;
  box-shadow:0 5px 15px rgba(8,45,64,.18);
  color:white;
}
.request-switch i { color:var(--sand); font-size:12px; }
.event-fields[hidden] { display:none!important; }
.event-fields {
  animation:eventReveal .35s ease;
  border-left:2px solid rgba(196,154,90,.65);
  padding-left:14px;
}
@keyframes eventReveal {
  from { opacity:0; transform:translateY(-6px); }
  to { opacity:1; transform:none; }
}
.card-heading { border-bottom:1px solid #e2ddd2; margin-bottom:23px; padding-bottom:20px; }
.card-heading h2 { color:#092e40; font-size:36px; margin:10px 0 7px; }
.card-heading p { margin:0; }
.form-label { color:#536b75; font-size:8px; letter-spacing:1.7px; }
.form-control,.form-select { background:transparent; border-color:#cdd4d2; font-size:12px; padding:11px 5px; }
.form-control::placeholder { color:#a5afb0; font-weight:300; }
.area-options span { background:#f7f5ef; border-color:#d8d6cd; letter-spacing:.5px; }
.area-options input:checked+span { background:#082d40; border-color:#082d40; }
.btn-reserve { background:#082d40; min-height:53px; padding:16px 21px; }
.btn-reserve:hover { background:#104d5e; box-shadow:0 8px 25px rgba(8,45,64,.18); transform:translateY(-1px); }
.reservation-assurance {
  border-top:1px solid #e3dfd5;
  color:#819094;
  display:flex;
  font-size:7px;
  justify-content:space-between;
  letter-spacing:.6px;
  margin-top:22px;
  padding-top:15px;
  position:relative;
  z-index:2;
}
.reservation-assurance span::first-letter { color:#8f733e; }

.experience-strip { background:#041922; border-top:1px solid rgba(196,154,90,.15); color:white; padding:29px 0; }
.experience-line { align-items:center; display:flex; justify-content:center; }
.experience-line article { align-items:center; display:flex; gap:13px; min-width:190px; }
.experience-line article>span { color:#c6a464; font-size:9px; letter-spacing:1px; }
.experience-line small,.experience-line strong { display:block; }
.experience-line small { color:#6f8991; font-size:7px; letter-spacing:2px; margin-bottom:3px; }
.experience-line strong { font-size:10px; font-weight:400; letter-spacing:.6px; }
.experience-line i { background:linear-gradient(90deg,rgba(196,154,90,.05),rgba(196,154,90,.55),rgba(196,154,90,.05)); height:1px; margin:0 25px; width:90px; }

.hours-section { background:#f7f4ed; padding:105px 0 95px; }
.hours-section h2 { color:#082d40; font-size:42px; margin:14px 0 18px; }
.hours-grid { background:#fffefa; border:1px solid #ddd8cc; box-shadow:0 18px 55px rgba(8,45,64,.06); padding:15px 24px; }
.hours-grid div { padding:20px 18px; }
.location-section { background:#f7f4ed; padding-bottom:105px; }
.location-card { box-shadow:0 30px 80px rgba(8,45,64,.18); }
.public-footer { border-top:1px solid rgba(196,154,90,.2); padding:38px 0; }

@media (max-width:991px) {
  .hero-copy { padding-left:0; }
  .hero-number,.vertical-signature { display:none; }
  .reservation-card-public { margin-left:auto; margin-right:auto; }
  .experience-line i { margin:0 12px; width:35px; }
  .experience-line article { min-width:auto; }
}
@media (max-width:575px) {
  .premium-nav { padding:12px 0; }
  .nav-logo { height:44px; width:44px; }
  .hero-copy h1 { font-size:45px; letter-spacing:-3px; }
  .min-vh-75 { padding-top:55px; }
  .reservation-card-public { padding:42px 22px 28px; }
  .reservation-assurance { align-items:flex-start; flex-direction:column; gap:6px; }
  .experience-line { align-items:flex-start; flex-direction:column; gap:17px; padding-left:22px; }
  .experience-line i { display:none; }
  .hours-section { padding:72px 0; }
  .hours-section h2 { font-size:35px; }
  .location-section { padding-bottom:72px; }
}

/* Seamless hours transition */
.hours-section {
  background:linear-gradient(to bottom,#041922 0,#041922 92px,#f7f4ed 92px,#f7f4ed 100%);
  overflow:hidden;
  padding:38px 0 110px;
  position:relative;
}
.hours-section::before {
  background:rgba(196,154,90,.12);
  border-radius:50%;
  content:"";
  height:300px;
  left:-160px;
  position:absolute;
  top:-210px;
  width:560px;
}
.hours-shell {
  background:#fbfaf5;
  border:1px solid rgba(196,154,90,.25);
  border-radius:42px 8px 42px 8px;
  box-shadow:0 35px 90px rgba(8,45,64,.14);
  margin:0;
  overflow:hidden;
  padding:clamp(38px,6vw,72px);
  position:relative;
}
.hours-shell::after {
  background:var(--navy);
  border-radius:50%;
  content:"";
  height:260px;
  opacity:.035;
  position:absolute;
  right:-130px;
  top:-150px;
  width:260px;
}
.hours-section h2 {
  font-size:clamp(36px,4.2vw,52px);
  letter-spacing:-2.7px;
  line-height:1.06;
  margin:16px 0 22px;
}
.hours-section p {
  color:#687d84;
  font-size:12px;
  line-height:1.9;
  max-width:400px;
}
.hours-note {
  align-items:center;
  color:#8b9697;
  display:flex;
  font-size:8px;
  gap:9px;
  letter-spacing:1px;
  margin-top:26px;
  text-transform:uppercase;
}
.hours-note i {
  background:var(--sand);
  border-radius:50%;
  box-shadow:0 0 0 4px rgba(196,154,90,.12);
  height:5px;
  width:5px;
}
.hours-grid {
  background:transparent;
  border:0;
  box-shadow:none;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0 0 0 clamp(0px,3vw,38px);
  position:relative;
  z-index:1;
}
.hours-grid::before {
  background:linear-gradient(var(--sand),rgba(196,154,90,.08));
  content:"";
  height:calc(100% - 30px);
  left:22px;
  opacity:.45;
  position:absolute;
  top:15px;
  width:1px;
}
.hours-grid div,
.hours-grid div:nth-child(odd) {
  align-items:center;
  background:#f3f1eb;
  border:0;
  border-radius:0 26px 26px 0;
  display:grid;
  grid-template-columns:115px 1fr;
  padding:14px 20px;
  position:relative;
  transition:background .2s,transform .2s;
}
.hours-grid div::before {
  background:#fbfaf5;
  border:1px solid var(--sand);
  border-radius:50%;
  content:"";
  height:9px;
  left:-20px;
  position:absolute;
  width:9px;
}
.hours-grid div:nth-child(even) { margin-left:16px; }
.hours-grid div:hover { background:#ece8df; transform:translateX(4px); }
.hours-grid span { font-size:8px; letter-spacing:1.7px; }
.hours-grid strong { font-size:13px; margin:0; text-align:right; }
.location-section { background:#f7f4ed; }

@media (max-width:991px) {
  .hours-section { padding-top:34px; }
  .hours-shell { border-radius:32px 8px 32px 8px; }
  .hours-grid { margin-top:28px; padding-left:28px; }
  .hours-grid::before { left:6px; }
}
@media (max-width:575px) {
  .hours-section { background:linear-gradient(to bottom,#041922 0,#041922 58px,#f7f4ed 58px); padding:22px 12px 75px; }
  .hours-shell { border-radius:25px 6px 25px 6px; padding:38px 20px; }
  .hours-grid { display:flex; padding-left:24px; }
  .hours-grid::before { left:5px; }
  .hours-grid div,.hours-grid div:nth-child(odd) { grid-template-columns:1fr; padding:13px 16px; }
  .hours-grid div:nth-child(even) { margin-left:8px; }
  .hours-grid strong { margin-top:5px; text-align:left; }
  .hours-grid div::before { left:-22px; }
}

/* Premium map and authentic social icons */
.location-card {
  align-items:stretch;
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(420px,1.22fr);
  padding:0;
}
.location-copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(38px,5vw,70px);
  position:relative;
  z-index:2;
}
.location-copy h2 { margin-bottom:25px; }
.address-line { align-items:flex-start; display:flex; gap:13px; }
.address-line>i { color:var(--sand); font-size:19px; margin-top:2px; }
.address-line p { margin:0; }
.location-copy .directions-button {
  align-self:flex-start;
  gap:12px;
  justify-content:flex-start;
  margin-top:28px;
  min-width:220px;
}
.location-copy .directions-button>span { margin-left:auto; }
.social-block { border-top:1px solid rgba(255,255,255,.14); margin-top:35px; padding-top:23px; }
.social-block>small { color:#6f8991; display:block; font-size:7px; letter-spacing:2.5px; margin-bottom:11px; }
.social-links { display:flex; gap:10px; }
.social-links a {
  border-radius:30px;
  min-width:116px;
  padding:8px 13px 8px 8px;
  transition:background .2s,border-color .2s,transform .2s;
}
.social-links a:hover { background:rgba(255,255,255,.08); transform:translateY(-2px); }
.social-links b { background:rgba(196,154,90,.14); color:#d7b776; font-size:13px; }
.social-handle { color:#718b93; display:block; font-size:8px; letter-spacing:1px; margin-top:12px; }
.map-wrap {
  min-height:510px;
  overflow:hidden;
  position:relative;
}
.map-wrap::after {
  background:linear-gradient(90deg,rgba(8,45,64,.28),transparent 35%);
  content:"";
  inset:0;
  pointer-events:none;
  position:absolute;
}
.map-wrap iframe {
  border:0;
  filter:saturate(.72) contrast(1.05);
  height:100%;
  inset:0;
  position:absolute;
  width:100%;
}
.map-badge {
  align-items:center;
  background:#fffefa;
  bottom:25px;
  box-shadow:0 14px 40px rgba(8,45,64,.25);
  color:var(--navy);
  display:flex;
  gap:11px;
  left:25px;
  padding:12px 16px;
  position:absolute;
  z-index:2;
}
.map-badge>i { color:var(--sea); font-size:20px; }
.map-badge>span { font-size:9px; font-weight:600; letter-spacing:1.3px; }
.map-badge small { color:#829297; display:block; font-size:7px; font-weight:400; letter-spacing:.4px; margin-top:2px; }
.social-mini i { font-size:13px; }
.footer-contact i { margin-right:3px; }

@media (max-width:991px) {
  .location-card { grid-template-columns:1fr; }
  .map-wrap { min-height:430px; width:100%; }
}
@media (max-width:575px) {
  .location-copy { padding:40px 23px; }
  .location-copy .directions-button { width:100%; }
  .social-links { flex-direction:column; }
  .social-links a { width:100%; }
  .map-wrap { min-height:350px; }
  .map-badge { bottom:15px; left:15px; }
}

/* Responsive form legibility */
.reservation-card-public .card-heading p {
  font-size:13px;
  line-height:1.65;
}
.reservation-card-public .form-label {
  font-size:10px;
  letter-spacing:1.4px;
  margin-bottom:9px;
}
.reservation-card-public .form-label small {
  font-size:9px;
}
.reservation-card-public .form-control,
.reservation-card-public .form-select {
  font-size:14px;
  line-height:1.45;
  min-height:46px;
  padding:12px 8px;
}
.reservation-card-public textarea.form-control {
  line-height:1.6;
  min-height:78px;
}
.tolerance-note {
  align-items:center;
  background:#f3f7f5;
  border:1px solid #d9e4df;
  border-left:3px solid #c69a55;
  display:flex;
  gap:13px;
  padding:13px 15px;
}
.tolerance-note > i {
  color:#9b7337;
  font-size:19px;
  flex:0 0 auto;
}
.tolerance-note p {
  color:#314c4b;
  display:flex;
  flex-direction:column;
  font-size:11px;
  line-height:1.5;
  margin:0;
}
.tolerance-note strong {
  color:#082d40;
  font-size:10px;
  letter-spacing:.9px;
  text-transform:uppercase;
}
.event-mode .tolerance-wrap {
  display:none;
}
.request-switch span {
  font-size:10px;
  min-height:43px;
}
.request-switch i {
  font-size:14px;
}
.area-options span {
  align-items:center;
  display:flex;
  font-size:12px;
  justify-content:center;
  min-height:47px;
}
.event-mode .area-options span::after {
  font-size:9px;
}
.btn-reserve {
  font-size:12px;
  min-height:56px;
}
.privacy-note {
  font-size:10px;
  line-height:1.65;
  margin-top:11px;
}
.public-message {
  font-size:12px;
  line-height:1.6;
}
.reservation-assurance {
  font-size:8px;
  line-height:1.5;
}

@media (min-width:992px) and (max-width:1199px) {
  .public-hero .container { max-width:960px; }
  .reservation-card-public { padding-left:38px; padding-right:38px; }
  .hero-copy h1 { font-size:57px; }
  .hero-copy { padding-right:18px; }
}

@media (min-width:768px) and (max-width:991px) {
  .min-vh-75 { padding:64px 0 80px; }
  .hero-copy { margin:0 auto 22px; max-width:690px; }
  .reservation-card-public { max-width:690px; padding:52px 48px 36px; }
  .reservation-card-public .form-control,
  .reservation-card-public .form-select { font-size:15px; min-height:49px; }
  .request-switch span { font-size:11px; min-height:46px; }
  .area-options span { font-size:13px; min-height:49px; }
  .btn-reserve { font-size:12px; min-height:58px; }
}

@media (max-width:767px) {
  .reservation-card-public {
    margin-left:auto;
    margin-right:auto;
    max-width:560px;
  }
  .reservation-card-public .row.g-3 {
    --bs-gutter-y:1.15rem;
  }
  .reservation-card-public .form-label {
    font-size:11px;
    letter-spacing:1.2px;
  }
  .reservation-card-public .form-control,
  .reservation-card-public .form-select {
    font-size:16px;
    min-height:52px;
    padding:13px 8px;
  }
  .reservation-card-public textarea.form-control {
    min-height:94px;
  }
  .request-switch span {
    font-size:11px;
    min-height:48px;
  }
  .area-options span {
    font-size:14px;
    min-height:52px;
  }
  .event-mode .area-options span::after {
    font-size:10px;
  }
  .btn-reserve {
    font-size:12px;
    min-height:60px;
  }
  .privacy-note {
    font-size:11px;
    padding:0 6px;
  }
  .public-message {
    font-size:13px;
  }
  .reservation-assurance {
    font-size:9px;
  }
}

@media (max-width:420px) {
  .reservation-card-public { padding:38px 18px 26px; }
  .card-heading h2 { font-size:31px; letter-spacing:-1.2px; }
  .request-switch { border-radius:18px; }
  .request-switch span {
    border-radius:15px;
    flex-direction:column;
    font-size:10px;
    gap:3px;
    line-height:1.25;
    min-height:54px;
    text-align:center;
  }
  .event-mode .area-options span {
    align-items:center;
    flex-direction:column;
    line-height:1.45;
  }
  .event-mode .area-options span::after { display:block; }
}
