/* ===== Base ===== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Dosis", "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: #2b2b2b;
  background: #fbf8f3;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: inline-block; }
a { color: #187481; text-decoration: none; transition: color .2s; }
a:hover { color: #e6b043; }
h1, h2, h3, h4, h5, h6 { font-family: "Handlee", Georgia, serif; color: #1d394f; margin: 0 0 .6em; line-height: 1.25; }
h1 { font-size: 2.4rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.6rem; }
p { margin: 0 0 1em; }
hr { border: 0; border-top: 1px solid #e5dfd2; margin: 2em 0; }

/* ===== Bootstrap-like grid (subset) ===== */
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
.row { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.row > [class*="col-"] { padding: 0 15px; width: 100%; }

@media (min-width: 576px) {
  .col-sm-1  { width: 8.3333%; }
  .col-sm-2  { width: 16.6667%; }
  .col-sm-3  { width: 25%; }
  .col-sm-4  { width: 33.3333%; }
  .col-sm-6  { width: 50%; }
  .col-sm-8  { width: 66.6667%; }
  .col-sm-9  { width: 75%; }
  .col-sm-12 { width: 100%; }
}
@media (min-width: 768px) {
  .col-md-3  { width: 25%; }
  .col-md-4  { width: 33.3333%; }
  .col-md-6  { width: 50%; }
  .col-md-8  { width: 66.6667%; }
  .col-md-9  { width: 75%; }
  .col-md-12 { width: 100%; }
}
@media (min-width: 992px) {
  .col-lg-3  { width: 25%; }
  .col-lg-4  { width: 33.3333%; }
  .col-lg-6  { width: 50%; }
  .col-lg-8  { width: 66.6667%; }
  .col-lg-12 { width: 100%; }
}
.hidden-xs { display: block; }
.visible-xs { display: none; }
@media (max-width: 767px) {
  .hidden-xs { display: none !important; }
  .visible-xs { display: block !important; }
}

/* ===== Header / nav ===== */
header.site-header {
  position: relative;
  width: 100%;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  margin-bottom: 40px;
  height: auto !important;
}
header.site-header > .container { padding-top: 18px; padding-bottom: 8px; }
header.site-header .header-menu.logo-is-centered { text-align: center; }
header.site-header .header-menu .logo a {
  display: inline-block;
  padding: 0 !important;
  margin: 0 !important;
}
header.site-header .header-menu .logo img {
  max-width: 280px;
  width: auto !important;
  min-width: 0 !important;
  height: auto;
}

/* primary horizontal nav band */
.full-menu.menu-centered {
  background: #1d394f;
  margin-top: 8px;
}
.full-menu.menu-centered .menu-container > .logo { display: none; } /* hide duplicate logo inside nav */
header.site-header .full-menu.menu-centered .main-menu .nav,
ul#menu-main-menu.nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  text-align: center;
}
ul#menu-main-menu.nav > li {
  position: relative;
  margin: 0;
  padding: 0;
}
ul#menu-main-menu.nav > li > a {
  display: block;
  padding: 18px 22px;
  font-family: "Dosis", "Segoe UI", sans-serif;
  font-size: 16px !important;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #fff !important;
  background: transparent !important;
  border-radius: 0;
}
ul#menu-main-menu.nav > li:hover > a,
ul#menu-main-menu.nav > li.current-menu-item > a {
  color: #e6b043 !important;
  text-decoration: none !important;
}
ul#menu-main-menu.nav > li.current-menu-item > a {
  box-shadow: inset 0 -3px 0 #e6b043;
}

/* submenu */
ul#menu-main-menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  list-style: none;
  margin: 0 !important;
  padding: 12px !important;
  min-width: 220px;
  background: #1d394f !important;
  border-radius: 6px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s, visibility .2s;
  z-index: 100;
}
ul#menu-main-menu > li:hover > .sub-menu { opacity: 1; visibility: visible; }
ul#menu-main-menu .sub-menu li { list-style: none; margin: 0 0 4px; }
ul#menu-main-menu .sub-menu li:last-child { margin-bottom: 0; }
ul#menu-main-menu .sub-menu a {
  display: block;
  padding: 10px 16px;
  background: transparent !important;
  border-radius: 4px !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: 15px;
  font-weight: 500;
  text-transform: none;
  text-align: left;
  letter-spacing: .02em;
}
ul#menu-main-menu .sub-menu a:hover {
  background: #e6b043 !important;
  color: #1d394f !important;
}

/* hide secondary blocks we don't need */
.header-menu .header-links,
.header-menu .header-widgets { display: none; }

/* mobile header */
header.mobile-menu { display: none; }
.mob-menu-header-holder { display: none; }
@media (max-width: 991px) {
  header.site-header .full-menu.menu-centered { display: none; }
  header.site-header { margin-bottom: 20px; }
  header.mobile-menu {
    display: block;
    background: #fff;
    border-top: 1px solid #eadfc6;
    padding: 10px 0;
  }
  header.mobile-menu .mobile-logo { display: none; }
  header.mobile-menu .mobile-toggles { text-align: center; padding: 6px 0; }
  header.mobile-menu .mobile-toggles a.toggle-menu {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: #1d394f;
    color: #fff;
    border-radius: 4px;
  }
  header.mobile-menu .mobile-toggles a.toggle-menu svg { fill: #fff; }
  header.mobile-menu .mobile-menu--content {
    display: none;
    padding: 16px 0;
  }
  header.mobile-menu.is-open .mobile-menu--content { display: block; }
  ul.mobile-menu {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  ul.mobile-menu li { border-bottom: 1px solid #eee; }
  ul.mobile-menu a {
    display: block;
    padding: 12px 16px;
    color: #1d394f;
    font-weight: 600;
  }
  ul.mobile-menu .sub-menu { padding-left: 16px; list-style: none; }
}

/* ===== Page container ===== */
.page-container {
  max-width: 1200px;
  margin: 0 auto 60px;
  padding: 0 20px;
}
.page-container.standalone-container { padding-top: 10px; }

/* SiteOrigin Page Builder rows */
.panel-layout { display: block; }
.panel-grid {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -15px 30px;
}
.panel-grid-cell {
  flex: 1;
  padding: 0 15px;
  min-width: 0;
}
.panel-grid-cell.panel-grid-cell-empty { display: none; }
.so-panel { margin-bottom: 0; }
.textwidget { line-height: 1.7; }
.textwidget p { margin: 0 0 1em; }
.textwidget img { border-radius: 4px; }

/* Hero / banner image */
.panel-grid:first-child .textwidget img { width: 100%; border-radius: 0; }

/* "Buttons" (image-based view-menus / book-a-table) */
.textwidget a img {
  transition: transform .25s ease, box-shadow .25s ease;
  border-radius: 4px;
}
.textwidget a:hover img {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(29,57,79,.18);
}

/* Card-ish blocks (intro, hours, vouchers) */
.panel-widget-style {
  background: #fff;
  border: 1px solid #ebe3d2;
  border-radius: 8px;
  padding: 28px 32px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.panel-widget-style p { margin: 0 0 .9em; }
.panel-widget-style p:last-child { margin-bottom: 0; }

@media (max-width: 780px) {
  .panel-grid { flex-direction: column; }
  .panel-grid-cell { width: 100% !important; padding: 0 15px; margin-bottom: 20px; }
}

/* Headings inside widgets */
.so-premium-web-font {
  display: inline-block;
  margin-bottom: 12px;
  font-family: "Handlee", "Shadows Into Light Two", cursive !important;
  color: #1d394f !important;
}

/* Inline emphasis used in original copy: teal italics */
.textwidget p span[style*="#187481"],
.textwidget p span[style*="187481"] {
  /* leave inline color, just refine */
}

/* ===== Forms (book-a-table page typically) ===== */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="search"],
select,
textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid #d9d2bf;
  border-radius: 4px;
  background: #fff;
  font-family: inherit;
  font-size: 15px;
  color: #2b2b2b;
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #187481;
  box-shadow: 0 0 0 3px rgba(24,116,129,.15);
}
button, input[type="submit"], .btn {
  display: inline-block;
  padding: 11px 22px;
  background: #187481;
  color: #fff;
  border: 0;
  border-radius: 4px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s;
}
button:hover, input[type="submit"]:hover, .btn:hover { background: #e6b043; color: #1d394f; }

/* Search box */
.search-input-env { position: relative; }
.search-input-env .form-control { padding-right: 44px; }
.mobile-search-button {
  position: absolute;
  right: 4px; top: 4px;
  background: transparent;
  padding: 6px 10px;
}
.mobile-search-button svg { fill: #1d394f; }

/* ===== Gallery ===== */
.gallery, .wp-block-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
  list-style: none;
  margin: 20px 0;
  padding: 0;
}
.gallery .gallery-item, .wp-block-gallery .wp-block-image {
  margin: 0 !important;
  width: auto !important;
}
.gallery img, .wp-block-gallery img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  transition: transform .25s ease, box-shadow .25s ease;
}
.gallery img:hover { transform: scale(1.02); box-shadow: 0 6px 18px rgba(0,0,0,.18); }

/* ===== Footer ===== */
footer.site-footer {
  background: #1d394f !important;
  color: #d8e3ec;
  padding: 40px 0 24px;
  margin-top: 40px;
}
footer.site-footer a { color: #e6b043; }
footer.site-footer a:hover { color: #ffaf1c; }
footer.site-footer p { margin: 0 0 .6em; }
footer.site-footer .footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08) !important;
  padding-top: 18px;
  text-align: center;
  font-size: 14px;
}
footer.site-footer .expand-footer { display: none; }

/* ===== Misc ===== */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.map-responsive { overflow: hidden; padding-bottom: 56.25%; position: relative; height: 0; border-radius: 6px; }
.map-responsive iframe { position: absolute; left: 0; top: 0; width: 100%; height: 100%; border: 0; }

/* Hide leftover WordPress/booking widgets that won't render without their CSS */
.mobmenu-overlay, .mobmenu-panel { display: none !important; }
