:root {
  --cg-white: #fff;
  --cg-black: #000;
  --cg-accent-rgb: 0, 70, 85;
  --cg-danger: #e5533d;
  --cg-warning: #f4b400;
  --cg-surface-soft: #f8fbfc;
  --cg-border-soft: #3c4a571f;
  --cg-border-strong: #00465533;
  --cg-text-muted: #3c4a57bd;
  --cg-shadow-sm: 0 10px 24px #0f172a0a;
  --cg-shadow-md: 0 18px 48px #0f172a0f;
  --cg-shadow-lg: 0 24px 60px #0f172a1a;
}

.header-actions {
  align-items: center;
  gap: 12px;
  margin-left: 20px;
  display: flex;
}

.premium-box {
  background: #fff;
  border-radius: 18px;
  padding: 50px 60px;
  box-shadow: 0 10px 30px #0000000f, 0 2px 8px #0000000a;
  margin-bottom: 2px !important;
}

.link-underline-center {
  color: var(--accent-color);
  text-decoration: none;
  transition: color .25s;
  display: inline-block;
  position: relative;
}

.link-underline-center:after {
  content: "";
  background: currentColor;
  width: 0;
  height: 2px;
  transition: width .3s;
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
}

.link-underline-center:hover {
  color: var(--nav-hover-color);
}

.link-underline-center:hover:after {
  width: 100%;
}

.content-section {
  margin-bottom: 20px !important;
  padding-bottom: 10px !important;
}

.content-section h2 {
  margin-bottom: 10px !important;
}

.content-section p {
  margin-bottom: 4px !important;
}

.content-section ul {
  margin-top: 20px !important;
}

.content-section ul li {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.premium-contact-widget {
  border: 1px solid color-mix(in srgb, var(--default-color), transparent 92%);
  will-change: transform;
  background: #fff;
  border-radius: 20px;
  align-items: center;
  gap: 28px;
  padding: 32px 36px;
  transition: transform .45s cubic-bezier(.22, 1, .36, 1);
  display: flex;
  position: relative;
  overflow: hidden;
  transform: translate3d(0, 0, 0);
  box-shadow: 0 14px 40px #0000000f, 0 4px 12px #0000000a;
}

.premium-contact-widget:before {
  content: "";
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), transparent 96%),
        transparent 55%);
  transition: opacity .45s;
  position: absolute;
  inset: 0;
}

.premium-contact-widget:after {
  content: "";
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px
        color-mix(in srgb, var(--accent-color), transparent 50%);
  opacity: 0;
  transition: opacity .45s;
  position: absolute;
  inset: 0;
}

.premium-contact-widget:hover {
  transform: translate3d(0, -4px, 0);
}

.premium-contact-widget:hover:before, .premium-contact-widget:hover:after {
  opacity: 1;
}

.premium-contact-widget__icon, .premium-contact-widget__content, .premium-contact-widget__actions {
  z-index: 1;
  position: relative;
}

.premium-contact-widget__icon {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 12%),
        var(--accent-color));
  color: #fff;
  border-radius: 18px;
  justify-content: center;
  align-items: center;
  width: 72px;
  min-width: 72px;
  height: 72px;
  display: flex;
  box-shadow: 0 10px 24px #0046552e;
}

.premium-contact-widget__icon i {
  font-size: 28px;
  line-height: 1;
}

.premium-contact-widget__content {
  flex: auto;
}

.premium-contact-widget__label {
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--nav-hover-color);
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  display: inline-block;
}

.premium-contact-widget__content h4 {
  color: var(--heading-color);
  margin: 0 0 10px;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.2;
}

.premium-contact-widget__content p {
  color: color-mix(in srgb, var(--default-color), black 8%);
  max-width: 760px;
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
}

.premium-contact-widget__actions {
  flex-shrink: 0;
  align-items: center;
  display: flex;
}

.premium-contact-widget__actions .btn-booking {
  white-space: nowrap;
}

@media (width <= 991.98px) {
  .premium-contact-widget {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    padding: 28px 24px;
  }

  .premium-contact-widget .premium-contact-widget__icon {
    margin: 0 auto 20px;
  }

  .premium-contact-widget .premium-contact-widget__content, .premium-contact-widget__actions .btn-lg {
    text-align: center;
    margin: 0 auto 20px;
  }

  .premium-contact-widget__content h4 {
    font-size: 24px;
  }

  .premium-contact-widget__actions {
    width: 100%;
  }
}

@media (width <= 575.98px) {
  .premium-contact-widget {
    border-radius: 16px;
    padding: 22px 18px;
  }

  .premium-contact-widget__icon {
    border-radius: 14px;
    width: 60px;
    min-width: 60px;
    height: 60px;
  }

  .premium-contact-widget__icon i {
    font-size: 24px;
  }

  .premium-contact-widget__content h4 {
    font-size: 21px;
  }

  .premium-contact-widget__content p {
    font-size: 14px;
    line-height: 1.65;
  }

  .premium-contact-widget__actions .btn-booking {
    justify-content: center;
    width: 100%;
  }
}

.mp-minus {
  margin-bottom: -50px !important;
  padding-bottom: 0 !important;
}

footer h5 {
  padding-bottom: 16px;
}

footer h5:after {
  content: "";
  background: var(--accent-color);
  opacity: .85;
  border-radius: 999px;
  width: 42px;
  height: 2px;
  margin-top: 10px;
  display: block;
}

footer .contact-info .contact-item .footer-nav a {
  color: var(--nav-color);
}

footer .brand-section img {
  max-width: 300px;
  transition: all .3s;
}

footer .brand-section img:hover {
  transform: translateY(-2px);
}

footer {
  background: radial-gradient(circle at 20% 0%,
            color-mix(in srgb, var(--heading-color) 8%, transparent),
            transparent 45%),
        linear-gradient(180deg,
            color-mix(in srgb, var(--background-color) 94%, white),
            var(--background-color)) !important;
}

.footer .footer-bottom {
  background: linear-gradient(180deg,
        color-mix(in srgb, var(--background-color) 98%, var(--heading-color)),
        var(--background-color));
  border-top: 1px solid
        color-mix(in srgb, var(--heading-color), transparent 92%);
}

@media (width <= 991px) {
  footer .brand-section a img {
    text-align: center;
    margin: 0 auto;
    display: block;
  }

  footer .brand-section .brand-description {
    text-align: left;
  }

  footer .brand-section {
    margin-bottom: 0 !important;
  }
}

.cookie-banner {
  background: var(--surface-color);
  z-index: 9999;
  border: 1px solid color-mix(in srgb, var(--heading-color), transparent 90%);
  border-radius: 14px;
  max-width: 420px;
  padding: 22px 24px;
  animation: .6s cookieFade;
  position: fixed;
  bottom: 40px;
  right: 40px;
  box-shadow: 0 20px 60px #00000014;
}

.cookie-banner p {
  color: color-mix(in srgb, var(--default-color), transparent 20%);
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.6;
}

.cookie-banner a {
  color: var(--accent-color);
  text-decoration: none;
}

.cookie-actions {
  gap: 12px;
  display: flex;
}

.cookie-accept {
  background: var(--heading-color);
  color: #fff;
  cursor: pointer;
  border: none;
  border-radius: 8px;
  padding: 10px 18px;
  transition: all .25s;
}

.cookie-accept:hover {
  opacity: .9;
}

.cookie-decline {
  border: 1px solid color-mix(in srgb, var(--heading-color), transparent 70%);
  color: var(--heading-color);
  cursor: pointer;
  background: none;
  border-radius: 8px;
  padding: 10px 18px;
}

@keyframes cookieFade {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (width <= 768px) {
  .cookie-banner {
    max-width: none;
    bottom: 15px;
    left: 15px;
    right: 15px;
  }
}

.booking-search .search-section {
  max-width: 100%;
  margin: 0 auto;
}

.booking-search .search-title {
  color: var(--heading-color);
  letter-spacing: -.02em;
  margin-bottom: 1rem;
  font-size: 2.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.booking-search .search-subtitle {
  color: color-mix(in srgb, var(--default-color), transparent 20%);
  margin-bottom: 3rem;
  font-size: 1.125rem;
  font-weight: 300;
  line-height: 1.6;
}

.booking-search .search-input-group {
  background: var(--surface-color);
  box-shadow: 0 20px 60px
        color-mix(in srgb, var(--default-color), transparent 94%);
  border-radius: 60px;
  align-items: stretch;
  padding: 8px;
  transition: all .35s cubic-bezier(.4, 0, .2, 1);
  display: flex;
}

.booking-search .search-input-group:focus-within {
  box-shadow: 0 20px 60px color-mix(in srgb, var(--accent-color), transparent 85%),
        0 6px 20px #0000001a;
  transform: translateY(-2px);
}

.booking-search .input-wrapper {
  flex: 1;
  align-items: center;
  display: flex;
  position: relative;
}

.booking-search .input-wrapper i {
  color: color-mix(in srgb, var(--default-color), transparent 40%);
  z-index: 2;
  font-size: 1.1rem;
  position: absolute;
  left: 20px;
}

.booking-search .form-control {
  color: var(--default-color);
  background: none;
  border: none;
  padding: 20px 20px 20px 50px;
  font-size: 1rem;
}

.booking-search .form-control:focus {
  box-shadow: none !important;
  border: none !important;
  outline: none !important;
}

.booking-search .form-control::placeholder {
  color: color-mix(in srgb, var(--default-color), transparent 50%);
}

.booking-search .search-btn {
  background: var(--accent-color);
  color: var(--contrast-color);
  will-change: transform, box-shadow;
  border: none;
  border-radius: 50px;
  align-items: center;
  gap: 8px;
  padding: 18px 32px;
  font-weight: 500;
  transition: all .35s cubic-bezier(.4, 0, .2, 1);
  display: flex;
  position: relative;
  overflow: hidden;
}

.booking-search .search-btn:hover {
  background: color-mix(in srgb, var(--accent-color), black 12%);
  box-shadow: 0 10px 25px color-mix(in srgb, var(--accent-color), transparent 70%),
        0 4px 10px #0000001a;
}

.booking-search .search-btn:active {
  transform: translateY(-1px) scale(.98);
}

.booking-search .search-btn:before {
  content: "";
  background: linear-gradient(120deg, #0000, #ffffff8c, #0000);
  width: 60%;
  height: 100%;
  position: absolute;
  top: 0;
  left: -80%;
  transform: skewX(-25deg);
}

.booking-search .search-btn:hover:before {
  animation: .85s bookingShine;
}

@keyframes bookingShine {
  100% {
    left: 140%;
  }
}

@media (width <= 768px) {
  .booking-search .search-title {
    font-size: 2rem;
  }

  .booking-search .search-subtitle {
    margin-bottom: 2rem;
    font-size: 1rem;
  }

  .booking-search .search-input-group {
    border-radius: 24px;
    flex-direction: column;
    gap: 1rem;
    padding: 1.5rem;
  }

  .booking-search .search-btn {
    border-radius: 16px;
    justify-content: center;
  }

  .booking-search .form-control {
    padding: 16px 20px;
  }

  .booking-search .input-wrapper i {
    display: none;
  }
}

@media (width <= 576px) {
  .booking-search .search-title {
    font-size: 1.75rem;
  }
}

.page-title .breadcrumbs-position-60 ol {
  margin: 0 60px;
}

.btn {
  --btn-bg: var(--accent-color);
  --btn-bg-hover: color-mix(in srgb, var(--accent-color), black 12%);
  --btn-color: var(--contrast-color);
  --btn-border: transparent;
  --btn-shadow: 0 12px 28px color-mix(in srgb, var(--accent-color), transparent 70%),
        0 4px 10px #00000014;
  --btn-radius: 50px;
  vertical-align: middle;
  border: 1px solid var(--btn-border);
  border-radius: var(--btn-radius);
  background: var(--btn-bg);
  min-height: 46px;
  color: var(--btn-color);
  white-space: nowrap;
  cursor: pointer;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 12px 26px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: transform .35s cubic-bezier(.22, 1, .36, 1), box-shadow .35s cubic-bezier(.22, 1, .36, 1), background .25s, color .25s, border-color .25s;
  display: inline-flex;
  position: relative;
  overflow: hidden;
}

.btn:before {
  content: "";
  pointer-events: none;
  background: linear-gradient(120deg, #0000, #ffffff73, #0000);
  width: 55%;
  height: 100%;
  position: absolute;
  top: 0;
  left: -80%;
  transform: skewX(-25deg);
}

.btn:hover {
  background: var(--btn-bg-hover);
  color: var(--btn-color);
  box-shadow: var(--btn-shadow);
  text-decoration: none;
  transform: translateY(-2px);
}

.btn:hover:before {
  animation: .9s btnShine;
}

.btn:active {
  transform: translateY(-1px) scale(.98);
}

.btn:focus {
  outline: none;
}

.btn:focus-visible {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent-color), transparent 82%),
        var(--btn-shadow);
  outline: none;
}

.btn span, .btn i {
  z-index: 2;
  transition: transform .3s;
  position: relative;
}

.btn:hover span {
  transform: translateX(-2px);
}

.btn:hover i {
  transform: translateX(4px);
}

.btn i {
  font-size: 1em;
  line-height: 1;
}

.btn:disabled, .btn.disabled {
  opacity: .55;
  pointer-events: none;
  box-shadow: none;
}

.btn-outline {
  --btn-bg: transparent;
  --btn-bg-hover: var(--accent-color);
  --btn-color: var(--accent-color);
  --btn-border: var(--accent-color);
  --btn-shadow: 0 12px 28px color-mix(in srgb, var(--accent-color), transparent 78%),
        0 4px 10px #0000000f;
  border-width: 2px;
}

.btn-outline:before {
  background: linear-gradient(120deg, #0000, #ffffff59, #0000);
}

.btn-outline:hover {
  color: var(--contrast-color);
}

.btn-glass {
  --btn-bg: #ffffff24;
  --btn-bg-hover: #ffffff38;
  --btn-color: #fff;
  --btn-border: #ffffff59;
  --btn-shadow: 0 10px 24px #0000001f, inset 0 1px 0 #ffffff40;
  -webkit-backdrop-filter: blur(10px);
}

.btn-glass:before {
  background: linear-gradient(120deg, #0000, #ffffff4d, #0000);
}

.btn-sm {
  gap: 8px;
  min-height: 38px;
  padding: 8px 18px;
  font-size: 13px;
}

.btn-lg {
  gap: 12px;
  min-height: 56px;
  padding: 16px 34px;
  font-size: 17px;
}

.btn-full {
  width: 100%;
}

@keyframes btnShine {
  100% {
    left: 140%;
  }
}

@media (width <= 767px) {
  .btn {
    min-height: 44px;
    padding: 11px 22px;
    font-size: 14px;
  }

  .btn-lg {
    min-height: 52px;
    padding: 14px 28px;
    font-size: 16px;
  }

  .btn-sm {
    min-height: 36px;
    padding: 8px 16px;
    font-size: 12px;
  }
}

.pb-6 {
  padding-bottom: 60px;
}

.docs-links {
  padding-bottom: 40px !important;
}

.docs-links__list {
  margin: 0 !important;
  padding-left: 0 !important;
  list-style: none !important;
}

.docs-links__list li {
  margin-bottom: 12px;
  position: relative;
  padding-left: 0 !important;
  list-style: none !important;
}

.docs-links__list li::marker {
  content: none;
  display: none;
}

.docs-links__list a {
  will-change: transform;
  align-items: center;
  gap: 12px;
  font-weight: 500;
  text-decoration: none;
  transition: transform .25s, color .25s;
  display: inline-flex;
}

.docs-links__list a i {
  color: var(--accent-color);
  font-size: 18px;
  transition: transform .25s;
}

.docs-links__list a:hover {
  color: var(--accent-color);
  transform: translateX(6px);
}

.docs-links__list a:hover i {
  transform: scale(1.1);
}

.accordion-premium .accordion-item {
  border: 1px solid #0000000f;
  border-radius: 14px;
  margin-bottom: 12px;
  transition: all .3s;
  overflow: hidden;
}

.accordion-premium .accordion-button {
  box-shadow: none;
  background: #fff;
  font-weight: 600;
}

.accordion-premium .accordion-button:not(.collapsed) {
  background: var(--accent-color);
  color: #fff;
}

.accordion-premium .accordion-body {
  background: #fafafa;
}

.about-page-box {
  padding: 34px;
}

.about-premium-hero {
  margin-bottom: 38px;
}

.about-premium-content {
  max-width: 620px;
}

.about-premium-title {
  color: var(--heading-color);
  margin: 0 0 18px;
  font-size: clamp(1.4rem, 2.2vw, 2.2rem);
  font-weight: 700;
  line-height: 1.15;
}

.about-premium-title span {
  color: var(--accent-color);
  white-space: nowrap;
}

.about-premium-text {
  color: var(--default-color);
  margin-bottom: 16px;
  font-size: 16px;
  line-height: 1.8;
}

.about-premium-actions {
  text-align: center;
  margin-top: 24px;
}

.about-premium-image {
  background: #f7f7f7;
  border-radius: 24px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 18px 40px #0f172a14, 0 6px 18px #0f172a0d;
}

.about-premium-image:before {
  content: "";
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(#0b1f1605 0%, #0b1f1624 100%);
  position: absolute;
  inset: 0;
}

.about-premium-image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  min-height: 420px;
  transition: transform .8s;
  display: block;
}

.about-premium-image:hover img {
  transform: scale(1.04);
}

.about-premium-highlights {
  margin-bottom: 34px;
}

.about-highlight-card {
  background: #fff;
  border: 1px solid #0f172a0f;
  border-radius: 20px;
  height: 100%;
  padding: 24px 22px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  box-shadow: 0 10px 24px #0f172a0a;
}

.about-highlight-card:hover {
  border-color: color-mix(in srgb, var(--accent-color), white 65%);
  transform: translateY(-4px);
  box-shadow: 0 18px 34px #0f172a14;
}

.about-highlight-icon {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 14%),
        var(--accent-color));
  color: #fff;
  border-radius: 16px;
  justify-content: center;
  align-items: center;
  width: 58px;
  min-width: 58px;
  height: 58px;
  margin-bottom: 18px;
  font-size: 22px;
  display: inline-flex;
  box-shadow: 0 10px 24px #00465529;
}

.about-highlight-card h3 {
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
}

.about-highlight-card p {
  color: var(--default-color);
  margin-bottom: 0;
  font-size: 15px;
  line-height: 1.75;
}

.about-content-block {
  border-top: 1px solid #0f172a14;
  margin-top: 26px;
  padding-top: 26px;
}

.about-content-block h2 {
  margin-bottom: 16px;
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  font-weight: 700;
  line-height: 1.3;
}

.about-content-block p {
  color: var(--default-color);
  margin-bottom: 14px;
  line-height: 1.85;
}

.about-content-block--last p:last-child, .about-premium-text:last-child {
  margin-bottom: 0;
}

@media (width <= 991px) {
  .about-page-box {
    padding: 26px;
  }

  .about-premium-content {
    text-align: center;
    max-width: 100%;
  }

  .about-premium-actions {
    justify-content: center;
    display: flex;
  }

  .about-premium-image {
    max-width: 760px;
    margin: 0 auto;
  }

  .about-premium-highlights {
    margin-top: 8px;
  }
}

@media (width <= 767px) {
  .about-page-box {
    padding: 22px 18px;
  }

  .about-premium-hero {
    margin-bottom: 28px;
  }

  .about-premium-label {
    letter-spacing: .14em;
    margin-bottom: 12px;
    font-size: 11px;
  }

  .about-premium-title {
    margin-bottom: 16px;
  }

  .about-premium-image {
    border-radius: 18px;
  }

  .about-premium-image img {
    min-height: 280px;
  }

  .about-premium-highlights {
    margin-bottom: 28px;
  }

  .about-highlight-card {
    text-align: center;
    padding: 20px 18px;
  }

  .about-highlight-icon {
    margin-left: auto;
    margin-right: auto;
  }

  .about-content-block {
    margin-top: 22px;
    padding-top: 22px;
  }

  .about-content-block h2 {
    text-align: center;
    margin-bottom: 14px;
  }

  .about-content-block p {
    line-height: 1.8;
  }
}

.accessibility-banner {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 92%) 0%,
        #fff 52%,
        color-mix(in srgb, var(--accent-color), white 95%) 100%);
  border: 1px solid color-mix(in srgb, var(--accent-color), white 78%);
  border-radius: 24px;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
  padding: 30px;
  display: grid;
  position: relative;
  overflow: hidden;
  box-shadow: 0 14px 34px #0f172a0d, 0 6px 18px #0f172a08;
}

.accessibility-banner:before {
  content: "";
  background: linear-gradient(180deg,
        var(--accent-color),
        color-mix(in srgb, var(--accent-color), black 18%));
  width: 6px;
  position: absolute;
  inset: 0 auto 0 0;
}

.accessibility-banner__icon {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 10%),
        var(--accent-color));
  color: #fff;
  border-radius: 22px;
  justify-content: center;
  align-items: center;
  width: 78px;
  min-width: 78px;
  height: 78px;
  font-size: 32px;
  display: flex;
  box-shadow: 0 12px 26px #0046552e;
}

.accessibility-banner__label {
  background: color-mix(in srgb, var(--accent-color), white 88%);
  color: var(--accent-color);
  letter-spacing: .14em;
  text-transform: uppercase;
  border-radius: 999px;
  margin-bottom: 10px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
}

.accessibility-banner__content h2 {
  margin-bottom: 12px;
  font-size: clamp(1.55rem, 2vw, 2rem);
  font-weight: 700;
  line-height: 1.2;
}

.accessibility-banner__content p {
  color: var(--default-color);
  margin-bottom: 14px;
  line-height: 1.8;
}

.accessibility-banner__list {
  margin: 0 0 16px !important;
  padding: 0 !important;
  list-style: none !important;
}

.accessibility-banner__list li {
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
  display: flex;
  list-style: none !important;
}

.accessibility-banner__list li i {
  color: var(--accent-color);
  margin-top: 3px;
  font-size: 16px;
}

.accessibility-banner__note {
  margin-bottom: 0;
  font-size: 15px;
}

.accessibility-banner__actions {
  justify-content: flex-end;
  align-items: center;
  display: flex;
}

.accessibility-banner__actions .btn {
  white-space: nowrap;
}

@media (width <= 991px) {
  .accessibility-banner {
    text-align: center;
    grid-template-columns: 1fr;
    padding: 24px;
  }

  .accessibility-banner__icon {
    margin: 0 auto;
  }

  .accessibility-banner__actions {
    justify-content: center;
  }

  .accessibility-banner__list li {
    text-align: left;
    justify-content: center;
  }
}

@media (width <= 767px) {
  .accessibility-banner {
    border-radius: 18px;
    gap: 20px;
    padding: 20px 18px;
  }

  .accessibility-banner__icon {
    border-radius: 18px;
    width: 68px;
    min-width: 68px;
    height: 68px;
    font-size: 28px;
  }

  .accessibility-banner__label {
    margin-bottom: 8px;
  }
}

.lake-analysis-card__label {
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--accent-color);
  background: color-mix(in srgb, var(--accent-color), white 92%);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  display: inline-block;
}

.lake-analysis-card__content h2 {
  margin-top: 0 !important;
}

.lake-analysis-card__content a {
  margin-top: 20px !important;
}

.lake-analysis-card__image {
  text-align: right;
  max-width: 200px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}

.lake-analysis-card__image:hover {
  border-color: color-mix(in srgb, var(--accent-color), white 65%);
  cursor: zoom-in;
  transform: translateY(-4px);
  box-shadow: 0 18px 34px #0f172a14;
}

.ev-charge-banner {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 93%) 0%,
        #fff 52%,
        color-mix(in srgb, var(--accent-color), white 96%) 100%);
  border: 1px solid color-mix(in srgb, var(--accent-color), white 76%);
  border-radius: 24px;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
  padding: 30px;
  display: grid;
  position: relative;
  overflow: hidden;
  box-shadow: 0 14px 34px #0f172a0d, 0 6px 18px #0f172a08;
}

.ev-charge-banner:before {
  content: "";
  background: linear-gradient(180deg,
        var(--accent-color),
        color-mix(in srgb, var(--accent-color), black 18%));
  width: 6px;
  position: absolute;
  inset: 0 auto 0 0;
}

.ev-charge-banner__icon {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 10%),
        var(--accent-color));
  color: #fff;
  border-radius: 22px;
  justify-content: center;
  align-items: center;
  width: 78px;
  min-width: 78px;
  height: 78px;
  font-size: 32px;
  display: flex;
  box-shadow: 0 12px 26px #0046552e;
}

.ev-charge-banner__label {
  background: color-mix(in srgb, var(--accent-color), white 88%);
  color: var(--accent-color);
  letter-spacing: .14em;
  text-transform: uppercase;
  border-radius: 999px;
  margin-bottom: 10px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
}

.ev-charge-banner__content h2 {
  margin-bottom: 12px;
  font-size: clamp(1.5rem, 2vw, 1.95rem);
  font-weight: 700;
  line-height: 1.2;
}

.ev-charge-banner__content p {
  color: var(--default-color);
  margin-bottom: 14px;
  line-height: 1.8;
}

.ev-charge-banner__list {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.ev-charge-banner__list li {
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
  display: flex;
  list-style: none !important;
}

.ev-charge-banner__list li i {
  color: var(--accent-color);
  margin-top: 3px;
  font-size: 16px;
}

.ev-charge-banner__actions {
  justify-content: flex-end;
  align-items: center;
  display: flex;
}

.ev-charge-banner__actions .btn {
  white-space: nowrap;
}

@media (width <= 991px) {
  .ev-charge-banner {
    text-align: center;
    grid-template-columns: 1fr;
    padding: 24px;
  }

  .ev-charge-banner__icon {
    margin: 0 auto;
  }

  .ev-charge-banner__actions {
    justify-content: center;
  }

  .ev-charge-banner__list li {
    text-align: left;
    justify-content: center;
  }
}

@media (width <= 767px) {
  .ev-charge-banner {
    border-radius: 18px;
    gap: 20px;
    padding: 20px 18px;
  }

  .ev-charge-banner__icon {
    border-radius: 18px;
    width: 68px;
    min-width: 68px;
    height: 68px;
    font-size: 28px;
  }

  .ev-charge-banner__label {
    margin-bottom: 8px;
  }
}

@media (width <= 991px) {
  .lake-analysis-card__image {
    margin: 0 auto;
  }

  .lake-analysis-card__content {
    text-align: center;
  }

  .lake-analysis-card__content p {
    text-align: left;
  }

  .lake-analysis-card__content a {
    margin-top: 10px;
  }

  .about-premium-content p, .accessibility-banner p {
    text-align: left;
  }

  .accessibility-banner__list li {
    justify-content: left;
  }

  .ev-charge-banner .ev-charge-banner__content p {
    text-align: left;
  }
}

.route-page-box {
  padding: 34px;
}

.route-hero {
  margin-bottom: 34px;
}

.route-hero__content {
  max-width: 660px;
}

.route-hero__label, .route-section-head__label, .route-contact-banner__label {
  background: color-mix(in srgb, var(--accent-color), white 90%);
  color: var(--accent-color);
  letter-spacing: .16em;
  text-transform: uppercase;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
}

.route-hero__title {
  color: var(--heading-color);
  margin: 0 0 18px;
  font-size: clamp(1.4rem, 2.2vw, 2.2rem);
  font-weight: 700;
  line-height: 1.15;
}

.route-hero__title span {
  color: var(--accent-color);
  display: block;
}

.route-hero__text {
  color: var(--default-color);
  margin-bottom: 16px;
  font-size: 16px;
  line-height: 1.85;
}

.route-hero__actions {
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
  margin-bottom: 22px;
  display: flex;
}

.route-location-meta {
  gap: 10px;
  display: grid;
}

.route-location-meta__item {
  color: var(--default-color);
  align-items: flex-start;
  gap: 10px;
  line-height: 1.65;
  display: flex;
}

.route-location-meta__item span {
  margin-top: 4px;
}

.route-location-meta__item i {
  color: var(--accent-color);
  margin-top: 4px;
}

.route-map-card {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 93%) 0%,
        #fff 52%,
        color-mix(in srgb, var(--accent-color), white 96%) 100%);
  border: 1px solid color-mix(in srgb, var(--accent-color), white 75%);
  border-radius: 24px;
  height: 100%;
  padding: 28px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  box-shadow: 0 18px 40px #0f172a0d, 0 6px 18px #0f172a08;
}

.route-map-card:hover {
  border-color: color-mix(in srgb, var(--accent-color), white 65%);
  transform: translateY(-4px);
  box-shadow: 0 18px 34px #0f172a14;
}

.route-map-card__badge {
  color: var(--accent-color);
  background: #fff;
  border-radius: 999px;
  margin-bottom: 10px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 700;
  display: inline-block;
}

.route-map-card__top h3 {
  margin-bottom: 10px;
  font-size: 1.4rem;
  font-weight: 700;
}

.route-map-card__top p {
  color: var(--default-color);
  margin-bottom: 18px;
  line-height: 1.75;
}

.route-map-card__actions {
  gap: 12px;
  margin-bottom: 18px;
  display: grid;
}

.route-map-card__link {
  color: var(--heading-color);
  background: #fff;
  border: 1px solid #0f172a14;
  border-radius: 16px;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  text-decoration: none;
  transition: transform .25s, box-shadow .25s, border-color .25s;
  display: inline-flex;
}

.route-map-card__link:hover {
  border-color: color-mix(in srgb, var(--accent-color), white 65%);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px #0f172a0f;
}

.route-map-card__note {
  color: var(--default-color);
  align-items: flex-start;
  gap: 10px;
  line-height: 1.7;
  display: flex;
}

.route-map-card__note span {
  margin-top: 4px;
}

.route-map-card__note i {
  color: var(--accent-color);
  margin-top: 4px;
}

.route-chips {
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
  display: flex;
}

.route-chip {
  color: var(--heading-color);
  background: #fff;
  border: 1px solid #0f172a14;
  border-radius: 999px;
  padding: 10px 16px;
  font-weight: 600;
  transition: all .25s;
}

.route-chip:hover, .route-chip.is-active {
  background: var(--accent-color);
  color: #fff;
  border-color: var(--accent-color);
}

.route-stats-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 26px;
  display: grid;
}

.route-stat-card {
  background: #fff;
  border: 1px solid #0f172a0f;
  border-radius: 20px;
  height: 100%;
  padding: 24px 20px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  box-shadow: 0 10px 24px #0f172a0a;
}

.route-stat-card:hover {
  border-color: color-mix(in srgb, var(--accent-color), white 65%);
  transform: translateY(-4px);
  box-shadow: 0 18px 34px #0f172a14;
}

.route-stat-card__icon {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 14%),
        var(--accent-color));
  color: #fff;
  border-radius: 16px;
  justify-content: center;
  align-items: center;
  width: 56px;
  min-width: 56px;
  height: 56px;
  margin-bottom: 16px;
  font-size: 22px;
  display: inline-flex;
  box-shadow: 0 10px 24px #00465529;
}

.route-stat-card h3 {
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: 700;
}

.route-stat-card p {
  color: var(--default-color);
  margin-bottom: 0;
  line-height: 1.75;
}

.route-search-box {
  margin-bottom: 28px;
  position: relative;
}

.route-search-box__icon {
  color: #8b93a1;
  position: absolute;
  top: 50%;
  left: 18px;
  transform: translateY(-50%);
}

.route-search-box__input {
  background: #fff;
  border: 1px solid #0f172a14;
  border-radius: 18px;
  outline: none;
  width: 100%;
  height: 58px;
  padding: 0 18px 0 50px;
  transition: border-color .25s, box-shadow .25s;
}

.route-search-box__input:focus {
  border-color: color-mix(in srgb, var(--accent-color), white 50%);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent-color), white 85%);
}

.route-content-block {
  border-top: 1px solid #0f172a14;
  margin-top: 26px;
  padding-top: 26px;
}

.route-section-head {
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 24px;
  margin-bottom: 24px;
  display: grid;
}

.route-section-head h2 {
  margin: 0;
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  font-weight: 700;
}

.route-section-head p {
  max-width: 480px;
  color: var(--default-color);
  margin: 0;
  line-height: 1.75;
}

.accordion-route .accordion-item {
  border: 1px solid #0f172a0f;
  border-radius: 18px;
  margin-bottom: 14px;
  overflow: hidden;
  box-shadow: 0 8px 18px #0f172a08;
}

.accordion-route .accordion-button {
  box-shadow: none;
  background: #fff;
  font-weight: 700;
  line-height: 1.5;
}

.accordion-route .accordion-button:not(.collapsed) {
  background: color-mix(in srgb, var(--accent-color), white 90%);
  color: var(--heading-color);
}

.accordion-route .accordion-body {
  color: var(--default-color);
  background: #fff;
  line-height: 1.85;
}

.route-actions-inline {
  margin-top: 16px;
}

.route-howto-block h2 {
  margin-bottom: 20px;
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  font-weight: 700;
}

.route-steps-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.route-step-card {
  background: #fff;
  border: 1px solid #0f172a0f;
  border-radius: 20px;
  padding: 24px 22px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  box-shadow: 0 10px 24px #0f172a0a;
}

.route-step-card:hover {
  border-color: color-mix(in srgb, var(--accent-color), white 65%);
  transform: translateY(-4px);
  box-shadow: 0 18px 34px #0f172a14;
}

.route-step-card__num {
  letter-spacing: .16em;
  color: var(--accent-color);
  margin-bottom: 14px;
  font-size: 13px;
  font-weight: 800;
}

.route-step-card h3 {
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: 700;
}

.route-step-card p {
  color: var(--default-color);
  margin-bottom: 0;
  line-height: 1.75;
}

.route-contact-banner {
  color: #fff;
  background: linear-gradient(135deg, #0b1f16 0%, #133225 100%);
  border-radius: 24px;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  margin-top: 28px;
  padding: 30px;
  display: grid;
}

.route-contact-banner__icon {
  background: #ffffff14;
  border-radius: 20px;
  justify-content: center;
  align-items: center;
  width: 74px;
  min-width: 74px;
  height: 74px;
  font-size: 30px;
  display: flex;
}

.route-contact-banner__content h2 {
  color: #fff;
  margin-bottom: 10px;
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  font-weight: 700;
}

.route-contact-banner__content p {
  color: #ffffffdb;
  margin-bottom: 0;
  line-height: 1.8;
}

.route-contact-banner__label {
  color: #ffffffdb;
  background: #ffffff1a;
  margin-bottom: 12px;
}

.route-item.is-hidden {
  display: none;
}

@media (width <= 1199px) {
  .route-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (width <= 991px) {
  .route-page-box {
    padding: 26px;
  }

  .route-section-head {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .route-steps-grid {
    grid-template-columns: 1fr;
  }

  .route-contact-banner {
    text-align: center;
    grid-template-columns: 1fr;
  }

  .route-contact-banner__icon {
    margin: 0 auto;
  }
}

@media (width <= 767px) {
  .route-page-box {
    padding: 22px 18px;
  }

  .route-hero__content {
    text-align: center;
    max-width: 100%;
  }

  .route-hero__actions {
    justify-content: center;
  }

  .route-location-meta__item {
    text-align: left;
  }

  .route-map-card {
    border-radius: 18px;
    padding: 22px 18px;
    transition: transform .3s, box-shadow .3s, border-color .3s;
  }

  .route-stats-grid {
    grid-template-columns: 1fr;
  }

  .route-chip {
    width: 100%;
  }
}

.directory-intro {
  max-width: 860px;
  margin: 0 auto 34px;
}

.directory-intro__label {
  background: color-mix(in srgb, var(--accent-color), white 90%);
  color: var(--accent-color);
  letter-spacing: .16em;
  text-transform: uppercase;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
}

.directory-intro h2 {
  margin-bottom: 14px;
  font-size: clamp(1.7rem, 2.4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
}

.directory-intro p {
  color: var(--default-color);
  margin-bottom: 0;
  line-height: 1.85;
}

.directory-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.directory-card {
  min-height: 100%;
  color: inherit;
  background: #fff;
  border: 1px solid #0f172a0f;
  border-radius: 22px;
  grid-template-columns: auto 1fr auto;
  align-items: flex-start;
  gap: 18px;
  padding: 24px;
  text-decoration: none;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  display: grid;
  box-shadow: 0 10px 24px #0f172a0a;
}

.directory-card:hover {
  border-color: color-mix(in srgb, var(--accent-color), white 65%);
  transform: translateY(-4px);
  box-shadow: 0 18px 34px #0f172a14;
}

.directory-card__icon {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 14%),
        var(--accent-color));
  color: #fff;
  border-radius: 18px;
  justify-content: center;
  align-items: center;
  width: 58px;
  min-width: 58px;
  height: 58px;
  font-size: 22px;
  display: inline-flex;
  box-shadow: 0 10px 24px #00465529;
}

.directory-card__content h3 {
  color: var(--heading-color);
  margin-bottom: 10px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}

.directory-card__content p {
  color: var(--default-color);
  margin-bottom: 0;
  line-height: 1.75;
}

.directory-card__arrow {
  color: var(--accent-color);
  font-size: 20px;
  transition: transform .25s;
}

.directory-card:hover .directory-card__arrow {
  transform: translateX(4px);
}

@media (width <= 991px) {
  .directory-grid {
    grid-template-columns: 1fr;
  }
}

@media (width <= 767px) {
  .directory-intro {
    text-align: center;
    margin-bottom: 26px;
  }

  .directory-card {
    text-align: center;
    grid-template-columns: 1fr;
    padding: 20px 18px;
  }

  .directory-card__icon, .directory-card__arrow {
    margin: 0 auto;
  }
}

.booking-code-note {
  color: #2c3e37;
  backdrop-filter: blur(6px);
  background: #0b1f160d;
  border: 1px solid #0b1f1614;
  border-radius: 12px;
  align-items: center;
  gap: 10px;
  width: calc(100% - 60px);
  margin: 14px auto 0;
  padding: 12px 16px;
  font-size: 14px;
  line-height: 1.5;
  display: flex;
}

.booking-code-note i {
  color: var(--accent-color);
  flex-shrink: 0;
  font-size: 18px;
}

.js-open-image img:hover {
  cursor: zoom-in;
}

.cg-gallery-nav {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-self: stretch;
  gap: 24px;
  width: 100%;
  max-width: none;
  margin-top: 34px;
  display: grid;
}

.cg-gallery-card {
  --cg-card-border: #ffffff24;
  --cg-card-shadow: 0 18px 45px #0000002e;
  --cg-card-shadow-hover: 0 28px 70px #00000047;
  isolation: isolate;
  border: 1px solid var(--cg-card-border);
  background-color: var(--accent-color);
  width: 100%;
  min-width: 0;
  min-height: 340px;
  box-shadow: var(--cg-card-shadow);
  color: var(--contrast-color);
  border-radius: 28px;
  flex-direction: column;
  padding: 28px;
  text-decoration: none;
  transition: transform .45s, box-shadow .45s, border-color .45s;
  display: flex;
  position: relative;
  overflow: hidden;
}

.cg-gallery-card:before {
  content: "";
  z-index: -1;
  background: #004655ad;
  transition: background .45s;
  position: absolute;
  inset: 0;
}

.cg-gallery-card:hover {
  box-shadow: var(--cg-card-shadow-hover);
  border-color: #ffffff3d;
  transform: translateY(-10px);
}

.cg-gallery-card:hover:before {
  background: #00465594;
}

.cg-gallery-card__bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
  filter: saturate() contrast(1.02);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  transition: transform .8s, filter .45s;
  position: absolute;
  inset: 0;
  transform: scale(1);
}

.cg-gallery-card:hover .cg-gallery-card__bg {
  filter: saturate(1.05) contrast(1.06);
  transform: scale(1.08);
}

.cg-gallery-card--photo .cg-gallery-card__bg, .cg-gallery-card--video .cg-gallery-card__bg {
  background-image: var(--page-bg);
}

.cg-gallery-card__top {
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
  display: flex;
}

.cg-gallery-card__icon {
  width: 68px;
  height: 68px;
  color: var(--contrast-color);
  -webkit-backdrop-filter: blur(8px);
  background: #ffffff14;
  border: 1px solid #ffffff24;
  border-radius: 20px;
  flex: 0 0 68px;
  justify-content: center;
  align-items: center;
  font-size: 1.8rem;
  transition: transform .45s, box-shadow .45s, background .45s;
  display: inline-flex;
  box-shadow: 0 10px 30px #0000002e;
}

.cg-gallery-card:hover .cg-gallery-card__icon {
  background: #ffffff1f;
  transform: scale(1.08) rotate(-4deg);
  box-shadow: 0 18px 40px #0000003d;
}

.cg-gallery-card__badge {
  min-height: 38px;
  color: var(--contrast-color);
  letter-spacing: .08em;
  text-transform: uppercase;
  -webkit-backdrop-filter: blur(8px);
  background: #ffffff14;
  border: 1px solid #ffffff1a;
  border-radius: 999px;
  align-items: center;
  padding: 8px 14px;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.2;
  display: inline-flex;
}

.cg-gallery-card__content {
  flex: auto;
}

.cg-gallery-card__content h3 {
  color: var(--contrast-color);
  margin: 0 0 14px;
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.2;
}

.cg-gallery-card__content p {
  color: #ffffffd6;
  max-width: 95%;
  margin: 0;
  font-size: 1rem;
  line-height: 1.72;
}

.cg-gallery-card__bottom {
  border-top: 1px solid #ffffff1f;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-top: 30px;
  padding-top: 22px;
  display: flex;
}

.cg-gallery-card__link {
  color: var(--contrast-color);
  font-size: .96rem;
  font-weight: 600;
  line-height: 1.4;
  transition: opacity .35s;
}

.cg-gallery-card:hover .cg-gallery-card__link {
  opacity: .92;
}

.cg-gallery-card__arrow {
  width: 52px;
  height: 52px;
  color: var(--contrast-color);
  -webkit-backdrop-filter: blur(8px);
  background: #ffffff14;
  border: 1px solid #ffffff1f;
  border-radius: 50%;
  flex: 0 0 52px;
  justify-content: center;
  align-items: center;
  font-size: 1.2rem;
  transition: transform .4s, background .4s, box-shadow .4s;
  display: inline-flex;
}

.cg-gallery-card:hover .cg-gallery-card__arrow {
  background: #ffffff1f;
  transform: translate(6px, -4px) scale(1.06);
  box-shadow: 0 14px 30px #00000038;
}

.cg-gallery-card:focus-visible {
  box-shadow: 0 0 0 4px #ffffff14,
        var(--cg-card-shadow-hover);
  border-color: #ffffff47;
  outline: none;
}

.directory-intro__text {
  max-width: 860px;
  color: var(--default-color);
  margin: 14px auto 0;
  font-size: 1.02rem;
  line-height: 1.75;
}

.dark-background .directory-intro__text, .dark-background .cg-gallery-card__content h3, .dark-background .cg-gallery-card__link, .dark-background .cg-gallery-card__badge, .dark-background .cg-gallery-card__icon, .dark-background .cg-gallery-card__arrow {
  color: var(--contrast-color);
}

.dark-background .cg-gallery-card__content p {
  color: #ffffffd6;
}

@media (width <= 991.98px) {
  .cg-gallery-nav {
    grid-template-columns: 1fr;
  }

  .cg-gallery-card {
    min-height: 300px;
  }
}

@media (width <= 767.98px) {
  .cg-gallery-nav {
    gap: 18px;
    margin-top: 28px;
  }

  .cg-gallery-card {
    border-radius: 24px;
    min-height: auto;
    padding: 22px;
  }

  .cg-gallery-card__top {
    margin-bottom: 22px;
  }

  .cg-gallery-card__icon {
    border-radius: 17px;
    flex-basis: 58px;
    width: 58px;
    height: 58px;
    font-size: 1.45rem;
  }

  .cg-gallery-card__content h3 {
    font-size: 1.28rem;
  }

  .cg-gallery-card__content p {
    max-width: 100%;
    font-size: .95rem;
    line-height: 1.65;
  }

  .cg-gallery-card__bottom {
    margin-top: 24px;
    padding-top: 18px;
  }

  .cg-gallery-card__arrow {
    flex-basis: 46px;
    width: 46px;
    height: 46px;
    font-size: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cg-gallery-card, .cg-gallery-card:before, .cg-gallery-card__bg, .cg-gallery-card__icon, .cg-gallery-card__arrow, .cg-gallery-card__link {
    transition: none;
  }

  .cg-gallery-card:hover, .cg-gallery-card:hover .cg-gallery-card__bg, .cg-gallery-card:hover .cg-gallery-card__icon, .cg-gallery-card:hover .cg-gallery-card__arrow {
    transform: none;
  }
}

@keyframes pyntya-stars {
  to {
    opacity: .28;
  }
}

@keyframes pyntya-moon {
  to {
    transform: translateY(5px);
  }
}

@keyframes pyntya-figure {
  to {
    transform: translateY(-4px);
  }
}

.tourist-page-title__label, .tourist-eyebrow {
  color: #f4b400;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 12px;
  font-size: .76rem;
  font-weight: 800;
  display: inline-flex;
}

.tourist-guide {
  --tg-green: #004655;
  --tg-gold: #f4b400;
  --tg-text: #344b52;
  --tg-muted: #687b81;
  --tg-border: #00465521;
  background: #f3f7f8;
}

.tourist-intro {
  border: 1px solid var(--tg-border);
  background: #fff;
  border-radius: 24px;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr);
  align-items: center;
  gap: 32px;
  margin-bottom: 30px;
  padding: 38px 40px;
  display: grid;
  box-shadow: 0 18px 50px #00343f0f;
}

.tourist-intro h2, .tourist-planner h2 {
  color: var(--tg-green);
  margin: 0 0 10px;
  font-size: clamp(1.65rem, 3vw, 2.4rem);
  font-weight: 800;
}

.tourist-intro p, .tourist-planner p {
  color: var(--tg-muted);
  margin: 0;
  line-height: 1.75;
}

.tourist-intro__weather {
  color: #445b62;
  background: #fff8de;
  border-radius: 16px;
  gap: 12px;
  padding: 16px;
  font-size: .85rem;
  line-height: 1.6;
  display: flex;
}

.tourist-intro__weather i {
  color: #a77800;
  font-size: 1.15rem;
}

.tourist-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  display: grid;
}

.tourist-card {
  border: 1px solid var(--tg-border);
  background: #fff;
  border-radius: 22px;
  flex-direction: column;
  min-width: 0;
  transition: transform .25s, box-shadow .25s, border-color .25s;
  display: flex;
  overflow: hidden;
  box-shadow: 0 14px 38px #00343f0f;
}

.tourist-card:hover {
  border-color: #00465547;
  transform: translateY(-5px);
  box-shadow: 0 22px 50px #00343f1c;
}

.tourist-card[hidden] {
  display: none !important;
}

.tourist-card__visual {
  color: #fff;
  background: linear-gradient(135deg, #004655, #0b7186);
  justify-content: center;
  align-items: center;
  min-height: 116px;
  display: flex;
  position: relative;
}

.tourist-card__visual i {
  opacity: .9;
  font-size: 2.6rem;
}

.tourist-card__visual span {
  backdrop-filter: blur(6px);
  background: #00000047;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: .69rem;
  font-weight: 700;
  position: absolute;
  bottom: 12px;
  left: 14px;
}

.tourist-card__visual--nature {
  background: linear-gradient(135deg, #235c44, #5e8e61);
}

.tourist-card__visual--history {
  background: linear-gradient(135deg, #704b33, #ae7952);
}

.tourist-card__visual--water {
  background: linear-gradient(135deg, #006579, #28a1b3);
}

.tourist-card__visual--culture {
  background: linear-gradient(135deg, #5b466e, #9974aa);
}

.tourist-card__body {
  flex-direction: column;
  flex: 1;
  padding: 20px;
  display: flex;
}

.tourist-card__tags {
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 12px;
  display: flex;
}

.tourist-card__tags span {
  color: var(--tg-green);
  background: #00465512;
  border-radius: 999px;
  padding: 5px 8px;
  font-size: .68rem;
  font-weight: 800;
}

.tourist-card h3 {
  color: var(--tg-green);
  margin: 0 0 10px;
  font-size: 1.13rem;
  font-weight: 800;
  line-height: 1.35;
}

.tourist-card p {
  color: var(--tg-muted);
  margin: 0 0 15px;
  font-size: .86rem;
  line-height: 1.7;
}

.tourist-card ul {
  color: #536970;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: auto 0 17px;
  padding: 0;
  font-size: .76rem;
  list-style: none;
  display: flex;
}

.tourist-card li {
  align-items: center;
  gap: 6px;
  display: flex;
}

.tourist-card li i {
  color: var(--tg-gold);
}

.tourist-card__actions {
  border-top: 1px solid #e4ebed;
  flex-wrap: wrap;
  gap: 9px;
  padding-top: 15px;
  display: flex;
}

.tourist-card__actions a {
  color: #fff;
  background: var(--tg-green);
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 8px 11px;
  font-size: .76rem;
  font-weight: 750;
  text-decoration: none;
  display: inline-flex;
}

.tourist-card__actions .tourist-card__more {
  border: 1px solid var(--tg-border);
  color: var(--tg-green);
  background: #fff;
}

@media (width <= 1199.98px) {
  .tourist-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (width <= 767.98px) {
  .tourist-intro {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 24px 22px;
  }

  .tourist-grid {
    grid-template-columns: 1fr;
  }

  .tourist-card:hover {
    transform: none;
  }
}

.tourist-detail {
  background: #f3f7f8;
}

.tourist-detail__layout {
  grid-template-columns: minmax(0, 1fr) 330px;
  align-items: start;
  gap: 24px;
  display: grid;
}

.tourist-detail__main, .tourist-detail__aside {
  background: #fff;
  border: 1px solid #00465521;
  border-radius: 24px;
  box-shadow: 0 18px 48px #00343f12;
}

.tourist-detail__main {
  padding: 0;
  position: relative;
  overflow: hidden;
}

.tourist-detail__gallery {
  background: #dce7e9;
  border-radius: 18px;
  margin: 18px 18px 0;
  overflow: hidden;
}

.tourist-detail__gallery .carousel-item {
  aspect-ratio: 16 / 9;
}

.tourist-detail__gallery picture, .tourist-detail__gallery img {
  width: 100%;
  height: 100%;
  display: block;
}

.tourist-detail__gallery img {
  object-fit: cover;
}

.tourist-detail__gallery:after {
  content: "";
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(#0000, #00232b6b);
  height: 38%;
  position: absolute;
  inset: auto 0 0;
}

.tourist-detail__gallery .carousel-control-prev, .tourist-detail__gallery .carousel-control-next {
  opacity: 1;
  backdrop-filter: blur(7px);
  background: #00343fa8;
  border: 1px solid #ffffff6b;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  margin: 0 16px;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
}

.tourist-detail__gallery .carousel-control-prev:hover, .tourist-detail__gallery .carousel-control-next:hover {
  background: #004655;
}

.tourist-detail__gallery .carousel-control-prev-icon, .tourist-detail__gallery .carousel-control-next-icon {
  width: 18px;
  height: 18px;
}

.tourist-detail__indicators {
  z-index: 2;
  gap: 8px;
  margin-bottom: 16px;
}

.tourist-detail__indicators [data-bs-target] {
  box-sizing: border-box;
  opacity: 1;
  background: none;
  border: 2px solid #ffffffeb;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  margin: 0;
  transition: background .2s, transform .2s;
}

.tourist-detail__indicators .active {
  background: #f4b400;
  transform: scale(1.18);
}

.tourist-detail__content {
  padding: 36px 38px 40px;
}

.tourist-detail__intro-row {
  align-items: center;
  gap: 18px;
  margin-bottom: 20px;
  display: flex;
}

.tourist-detail__intro-row .tourist-eyebrow {
  margin-bottom: 7px;
}

.tourist-detail__intro-row h2 {
  margin: 0;
}

.tourist-detail__icon {
  color: #004655;
  background: #f4b4002b;
  border-radius: 19px;
  flex: 0 0 68px;
  place-items: center;
  width: 68px;
  height: 68px;
  margin: 0;
  font-size: 1.9rem;
  display: grid;
}

.tourist-detail__main h2 {
  color: #004655;
  margin: 0 0 15px;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  font-weight: 800;
}

.tourist-detail__copy p {
  color: #536970;
  margin: 0 0 15px;
  line-height: 1.85;
}

.tourist-detail__main .tourist-detail__section {
  color: inherit;
  border-top: 1px solid #e2eaec;
  margin: 28px 0 0;
  padding: 26px 0 0;
  scroll-margin-top: 0;
  background: none !important;
}

.tourist-detail__section h2 {
  margin: 0 0 18px;
}

.tourist-detail__list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.tourist-detail__list li {
  color: #425960;
  background: #f5f8f9;
  border-radius: 13px;
  align-items: flex-start;
  gap: 11px;
  min-height: 54px;
  padding: 14px 16px;
  font-size: .88rem;
  line-height: 1.55;
  display: flex;
}

.tourist-detail__list i {
  color: #0a7a62;
  flex: none;
  margin-top: 2px;
}

.tourist-detail__list--tips i {
  color: #b27f00;
}

.tourist-detail__aside {
  padding: 24px;
  position: sticky;
  top: 150px;
}

.tourist-detail__aside h2 {
  color: #004655;
  margin: 0 0 18px;
  font-size: 1.25rem;
  font-weight: 800;
}

.tourist-detail__aside dl {
  margin: 0 0 22px;
}

.tourist-detail__aside dl > div {
  border-bottom: 1px solid #e2eaec;
  padding: 14px 0;
}

.tourist-detail__aside dt {
  color: #63777d;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: .75rem;
  display: flex;
}

.tourist-detail__aside dt i {
  color: #f4b400;
}

.tourist-detail__aside dd {
  color: #30484f;
  margin: 0;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.5;
}

.tourist-detail__route {
  justify-content: center;
  width: 100%;
}

.tourist-detail__back {
  color: #004655;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 15px;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  display: flex;
}

@media (width <= 991.98px) {
  .tourist-detail__layout {
    grid-template-columns: 1fr;
  }

  .tourist-detail__aside {
    position: static;
  }
}

@media (width <= 1199.98px) {
  .tourist-detail__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (width <= 575.98px) {
  .tourist-detail__main, .tourist-detail__aside {
    border-radius: 20px;
  }

  .tourist-detail__aside {
    padding: 21px;
  }

  .tourist-detail__gallery {
    border-radius: 14px;
    margin: 10px 10px 0;
  }

  .tourist-detail__content {
    padding: 26px 21px 28px;
  }

  .tourist-detail__intro-row {
    align-items: flex-start;
  }

  .tourist-detail__icon {
    border-radius: 15px;
    flex-basis: 54px;
    width: 54px;
    height: 54px;
    font-size: 1.5rem;
  }

  .tourist-detail__main .tourist-detail__section {
    margin-top: 24px;
    padding-top: 22px;
  }

  .tourist-detail__section h2 {
    margin-bottom: 14px;
  }

  .tourist-detail__list {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .tourist-detail__list li {
    min-height: 0;
    padding: 12px 13px;
  }

  .tourist-detail__gallery .carousel-control-prev, .tourist-detail__gallery .carousel-control-next {
    width: 38px;
    height: 38px;
    margin: 0 9px;
  }
}

.cg-albums-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 34px;
  display: grid;
}

.cg-album-card {
  isolation: isolate;
  background-color: var(--accent-color);
  border-radius: 28px;
  min-height: 360px;
  text-decoration: none;
  transition: transform .45s, box-shadow .45s;
  display: block;
  position: relative;
  overflow: hidden;
  box-shadow: 0 18px 45px #0000002e;
}

.cg-album-card:before {
  content: "";
  z-index: 1;
  background: #004655a3;
  transition: background .4s;
  position: absolute;
  inset: 0;
}

.cg-album-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 28px 70px #00000047;
}

.cg-album-card:hover:before {
  background: #0046558a;
}

.cg-album-card__bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  filter: saturate() contrast(1.02);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  transition: transform .85s, filter .45s;
  position: absolute;
  inset: 0;
  transform: scale(1);
}

.cg-album-card:hover .cg-album-card__bg {
  filter: saturate(1.05) contrast(1.06);
  transform: scale(1.08);
}

.cg-album-card__body {
  z-index: 2;
  flex-direction: column;
  min-height: 360px;
  padding: 26px;
  display: flex;
  position: relative;
}

.cg-album-card__meta {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: auto;
  display: flex;
}

.cg-album-card__tag, .cg-album-card__count {
  letter-spacing: .08em;
  text-transform: uppercase;
  min-height: 36px;
  color: var(--contrast-color);
  -webkit-backdrop-filter: blur(8px);
  background: #ffffff14;
  border: 1px solid #ffffff1f;
  border-radius: 999px;
  align-items: center;
  padding: 8px 14px;
  font-size: .76rem;
  font-weight: 700;
  display: inline-flex;
}

.cg-album-card__content h3 {
  color: var(--contrast-color);
  margin: 0 0 12px;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.2;
}

.cg-album-card__content p {
  color: #ffffffd6;
  margin: 0;
  font-size: .98rem;
  line-height: 1.7;
}

.cg-album-card__footer {
  border-top: 1px solid #ffffff1f;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-top: 24px;
  padding-top: 18px;
  display: flex;
}

.cg-album-card__link {
  color: var(--contrast-color);
  font-size: .96rem;
  font-weight: 600;
  line-height: 1.4;
}

.cg-album-card__arrow {
  width: 48px;
  height: 48px;
  color: var(--contrast-color);
  -webkit-backdrop-filter: blur(8px);
  background: #ffffff14;
  border: 1px solid #ffffff1f;
  border-radius: 50%;
  flex: 0 0 48px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  transition: transform .4s, background .4s, box-shadow .4s;
  display: inline-flex;
}

.cg-album-card:hover .cg-album-card__arrow {
  background: #ffffff1f;
  transform: translateX(6px) translateY(-4px) scale(1.06);
  box-shadow: 0 14px 30px #00000038;
}

.cg-album-card:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 4px #ffffff14, 0 28px 70px #00000047;
}

@media (width <= 1199.98px) {
  .cg-albums-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (width <= 767.98px) {
  .cg-albums-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .cg-album-card, .cg-album-card__body {
    min-height: 320px;
  }

  .cg-album-card {
    border-radius: 24px;
  }

  .cg-album-card__body {
    padding: 22px;
  }

  .cg-album-card__meta {
    flex-wrap: wrap;
    margin-bottom: 16px;
  }

  .cg-album-card__content h3 {
    font-size: 1.28rem;
  }

  .cg-album-card__content p {
    font-size: .95rem;
    line-height: 1.65;
  }

  .cg-album-card__footer {
    margin-top: 20px;
    padding-top: 16px;
  }

  .cg-album-card__arrow {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    font-size: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cg-album-card, .cg-album-card:before, .cg-album-card__bg, .cg-album-card__arrow {
    transition: none;
  }
}

.cg-album-toolbar {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin: 0 0 24px;
  display: flex;
}

.cg-album-back {
  min-height: 46px;
  color: var(--heading-color);
  background: var(--surface-color);
  border: 1px solid #0046551f;
  border-radius: 999px;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  text-decoration: none;
  transition: transform .35s, border-color .35s, box-shadow .35s;
  display: inline-flex;
}

.cg-album-back:hover {
  border-color: #00465538;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px #00000014;
}

.cg-album-stats {
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  display: flex;
}

.cg-album-stats__item {
  min-height: 42px;
  color: var(--heading-color);
  background: #0046550f;
  border: 1px solid #00465514;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  display: inline-flex;
}

.cg-album-view {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.cg-album-view__item {
  background: var(--surface-color);
  aspect-ratio: 4 / 3;
  isolation: isolate;
  border-radius: 22px;
  text-decoration: none;
  transition: transform .4s, box-shadow .4s;
  display: block;
  position: relative;
  overflow: hidden;
  box-shadow: 0 16px 38px #0000001a;
}

.cg-album-view__item:before {
  content: "";
  opacity: 0;
  z-index: 1;
  background: #0046552e;
  transition: opacity .35s;
  position: absolute;
  inset: 0;
}

.cg-album-view__item:after {
  content: "";
  width: 58px;
  height: 58px;
  color: var(--contrast-color);
  opacity: 0;
  z-index: 2;
  background: #004655b8;
  border: 1px solid #ffffff29;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  font-family: bootstrap-icons;
  transition: opacity .35s, transform .35s;
  display: inline-flex;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(.88);
}

.cg-album-view__item:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 46px #00000029;
}

.cg-album-view__item:hover:before {
  opacity: 1;
}

.cg-album-view__item:hover:after {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.cg-album-view__item img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: transform .7s;
  display: block;
}

.cg-album-view__item:hover img {
  transform: scale(1.06);
}

@media (width <= 991.98px) {
  .cg-album-view {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (width <= 575.98px) {
  .cg-album-toolbar {
    margin: 24px 0 20px;
  }

  .cg-album-view {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .cg-album-view__item {
    border-radius: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cg-album-back, .cg-album-view__item, .cg-album-view__item:before, .cg-album-view__item:after, .cg-album-view__item img {
    transition: none;
  }
}

.cg-video-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 34px;
  display: grid;
}

.cg-video-card {
  background: var(--surface-color);
  border: 1px solid #0046551a;
  border-radius: 26px;
  flex-direction: column;
  text-decoration: none;
  transition: transform .4s, box-shadow .4s, border-color .4s;
  display: flex;
  overflow: hidden;
  box-shadow: 0 18px 45px #00000014;
}

.cg-video-card:hover {
  border-color: #0046552e;
  transform: translateY(-8px);
  box-shadow: 0 24px 54px #00000024;
}

.cg-video-card__thumb {
  aspect-ratio: 16 / 9;
  background: var(--accent-color);
  position: relative;
  overflow: hidden;
}

.cg-video-card__thumb:before {
  content: "";
  z-index: 1;
  background: #00465547;
  transition: background .35s;
  position: absolute;
  inset: 0;
}

.cg-video-card:hover .cg-video-card__thumb:before {
  background: #0046552e;
}

.cg-video-card__thumb img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: transform .7s;
  display: block;
}

.cg-video-card:hover .cg-video-card__thumb img {
  transform: scale(1.05);
}

.cg-video-card__play {
  z-index: 2;
  width: 74px;
  height: 74px;
  color: var(--contrast-color);
  background: #004655c7;
  border: 1px solid #ffffff29;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  font-size: 2rem;
  transition: transform .35s, background .35s;
  display: inline-flex;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  box-shadow: 0 14px 34px #0000002e;
}

.cg-video-card:hover .cg-video-card__play {
  background: #004655e0;
  transform: translate(-50%, -50%) scale(1.08);
}

.cg-video-card__duration {
  z-index: 2;
  min-height: 34px;
  color: var(--contrast-color);
  background: #004655bd;
  border: 1px solid #ffffff1f;
  border-radius: 999px;
  align-items: center;
  padding: 6px 12px;
  font-size: .78rem;
  font-weight: 700;
  display: inline-flex;
  position: absolute;
  bottom: 16px;
  right: 16px;
}

.cg-video-card__body {
  padding: 22px 22px 24px;
}

.cg-video-card__meta {
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  display: flex;
}

.cg-video-card__tag {
  letter-spacing: .08em;
  text-transform: uppercase;
  min-height: 34px;
  color: var(--heading-color);
  background: #0046550f;
  border: 1px solid #00465514;
  border-radius: 999px;
  align-items: center;
  padding: 6px 12px;
  font-size: .76rem;
  font-weight: 700;
  display: inline-flex;
}

.cg-video-card__body h3 {
  color: var(--heading-color);
  margin: 0 0 12px;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.2;
}

.cg-video-card__body p {
  color: var(--default-color);
  margin: 0;
  font-size: .98rem;
  line-height: 1.7;
}

@media (width <= 991.98px) {
  .cg-video-grid {
    grid-template-columns: 1fr;
  }
}

@media (width <= 575.98px) {
  .cg-video-grid {
    gap: 18px;
  }

  .cg-video-card {
    border-radius: 22px;
  }

  .cg-video-card__play {
    width: 64px;
    height: 64px;
    font-size: 1.7rem;
  }

  .cg-video-card__body {
    padding: 18px 18px 20px;
  }

  .cg-video-card__body h3 {
    font-size: 1.16rem;
  }

  .cg-video-card__body p {
    font-size: .94rem;
    line-height: 1.65;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cg-video-card, .cg-video-card__thumb:before, .cg-video-card__thumb img, .cg-video-card__play {
    transition: none;
  }
}

.contact-premium {
  position: relative;
}

.contact-premium__stack {
  flex-direction: column;
  gap: 18px;
  height: 100%;
  display: flex;
}

.contact-card {
  background: var(--surface-color);
  border: 1px solid #00465514;
  border-radius: 26px;
  align-items: flex-start;
  gap: 18px;
  padding: 24px;
  transition: transform .35s, box-shadow .35s, border-color .35s;
  display: flex;
  box-shadow: 0 18px 44px #0000000f;
}

.contact-card:hover {
  border-color: #00465526;
  transform: translateY(-4px);
  box-shadow: 0 24px 56px #0000001a;
}

.contact-card--accent {
  background: linear-gradient(180deg, #0046550d, #00465505),
        var(--surface-color);
}

.contact-card--grow {
  flex: auto;
}

.contact-card__icon {
  width: 68px;
  height: 68px;
  color: var(--contrast-color);
  background: var(--accent-color);
  border-radius: 22px;
  flex: 0 0 68px;
  justify-content: center;
  align-items: center;
  font-size: 1.55rem;
  display: inline-flex;
  box-shadow: 0 16px 34px #00465538;
}

.contact-card__content {
  flex: auto;
  min-width: 0;
}

.contact-card__content h2 {
  color: var(--heading-color);
  margin: 0 0 10px;
  font-size: 1.18rem;
  line-height: 1.3;
}

.contact-card__content address, .contact-card__content p, .contact-card__content li, .contact-card__content a {
  color: var(--default-color);
  font-size: 1rem;
  line-height: 1.75;
}

.contact-card__content a {
  text-decoration: none;
  transition: color .3s;
}

.contact-card__content a:hover {
  color: var(--accent-color);
}

.contact-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.contact-list li + li {
  margin-top: 6px;
}

.contact-card__actions {
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
  display: flex;
}

.contact-pill {
  min-height: 42px;
  color: var(--heading-color);
  background: #0046550f;
  border: 1px solid #00465514;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  font-size: .94rem;
  font-weight: 600;
  text-decoration: none;
  transition: transform .3s, border-color .3s, background .3s;
  display: inline-flex;
}

.contact-pill:hover {
  background: #00465514;
  border-color: #00465529;
  transform: translateY(-2px);
}

.contact-card__subphones {
  border-top: 1px solid #00465514;
  margin-top: 18px;
  padding-top: 18px;
}

.contact-card__subphones h3 {
  color: var(--heading-color);
  margin: 0 0 12px;
  font-size: 1rem;
  line-height: 1.3;
}

.contact-list--extended li {
  flex-direction: column;
  gap: 4px;
  padding: 10px 0;
  display: flex;
}

.contact-label {
  color: #3c4a57b3;
  font-size: .85rem;
  font-weight: 600;
}

.contact-list--extended a {
  color: var(--accent-color);
  font-size: 1rem;
  font-weight: 700;
}

.contact-form-card {
  background: linear-gradient(180deg, #0046550a, #00465504),
        var(--surface-color);
  border: 1px solid #00465514;
  border-radius: 30px;
  height: 100%;
  padding: 34px;
  box-shadow: 0 22px 60px #00000014;
}

.contact-form-card__header {
  margin-bottom: 26px;
}

.contact-form-card__label, .contact-section-head__label {
  letter-spacing: .08em;
  text-transform: uppercase;
  min-height: 34px;
  color: var(--accent-color);
  background: #0046550f;
  border: 1px solid #0046551a;
  border-radius: 999px;
  align-items: center;
  padding: 7px 14px;
  font-size: .76rem;
  font-weight: 700;
  display: inline-flex;
}

.contact-form-card__header h2 {
  color: var(--heading-color);
  margin: 14px 0 12px;
  font-size: 2rem;
  line-height: 1.15;
}

.contact-form-card__header p {
  color: var(--default-color);
  font-size: 1rem;
  line-height: 1.75;
}

.contact-premium .form-label {
  color: var(--heading-color);
  margin-bottom: 8px;
  font-size: .95rem;
  font-weight: 700;
}

.contact-premium .form-control, .contact-premium .form-select {
  min-height: 58px;
  color: var(--default-color);
  box-shadow: none;
  background-color: #fff;
  border: 1px solid #0046551f;
  border-radius: 18px;
  padding: 14px 18px;
  transition: border-color .3s, box-shadow .3s, background-color .3s;
}

.contact-premium textarea.form-control {
  resize: vertical;
  min-height: 180px;
}

.contact-premium .form-control::placeholder, .contact-premium .form-select {
  color: #3c4a5794;
}

.contact-premium .form-control:focus, .contact-premium .form-select:focus {
  border-color: #00465547;
  box-shadow: 0 0 0 4px #00465514;
}

.contact-premium .form-check-input:checked {
  background-color: var(--accent-color);
  border-color: var(--accent-color);
}

.contact-captcha-placeholder {
  background: #00465508;
  border: 1px dashed #0046552e;
  border-radius: 18px;
  min-height: 92px;
  padding: 10px;
}

.contact-captcha-placeholder__inner {
  min-height: 70px;
  color: var(--default-color);
  background: #ffffffb3;
  border-radius: 14px;
  justify-content: center;
  align-items: center;
  font-weight: 600;
  display: flex;
}

.contact-premium .btn-submit {
  background: var(--accent-color);
  min-height: 56px;
  color: var(--contrast-color);
  border: 0;
  border-radius: 18px;
  align-items: center;
  gap: 10px;
  padding: 14px 24px;
  font-weight: 700;
  transition: transform .3s, box-shadow .3s, background .3s;
  display: inline-flex;
}

.contact-premium .btn-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px #00465538;
}

.contact-shortcuts-section {
  margin-top: 50px;
}

.contact-shortcuts {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  display: grid;
}

.contact-shortcut-card {
  background: var(--surface-color);
  border: 1px solid #00465514;
  border-radius: 22px;
  align-items: flex-start;
  gap: 14px;
  padding: 20px;
  text-decoration: none;
  transition: transform .35s, box-shadow .35s, border-color .35s;
  display: flex;
  box-shadow: 0 16px 40px #0000000d;
}

.contact-shortcut-card:hover {
  border-color: #00465524;
  transform: translateY(-3px);
  box-shadow: 0 22px 50px #00000014;
}

.contact-shortcut-card__icon {
  width: 54px;
  height: 54px;
  color: var(--accent-color);
  background: #0046550f;
  border-radius: 16px;
  flex: 0 0 54px;
  justify-content: center;
  align-items: center;
  font-size: 1.2rem;
  display: inline-flex;
}

.contact-shortcut-card__content {
  flex: auto;
  min-width: 0;
}

.contact-shortcut-card__content h3 {
  color: var(--heading-color);
  margin: 0 0 8px;
  font-size: 1.02rem;
}

.contact-shortcut-card__content p {
  color: var(--default-color);
  margin: 0;
  font-size: .92rem;
  line-height: 1.65;
}

.contact-shortcut-card__arrow {
  color: var(--accent-color);
  align-self: center;
  font-size: 1.1rem;
}

.map-container-premium {
  margin-top: 50px;
}

.map-card {
  background: var(--surface-color);
  border: 1px solid #00465514;
  border-radius: 34px;
  overflow: hidden;
  box-shadow: 0 24px 64px #00000014;
}

.map-card__header {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  padding: 28px 28px 22px;
  display: flex;
}

.map-card__header h2 {
  color: var(--heading-color);
  margin: 14px 0 10px;
  font-size: 1.8rem;
  line-height: 1.2;
}

.map-card__header p {
  max-width: 760px;
  color: var(--default-color);
  font-size: 1rem;
  line-height: 1.75;
}

.map-card__frame {
  border-top: 1px solid #00465514;
  overflow: hidden;
}

.map-card__frame iframe {
  display: block;
}

@media (width <= 1199.98px) {
  .contact-shortcuts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (width <= 991.98px) {
  .contact-form-card {
    padding: 26px;
  }

  .contact-shortcuts {
    grid-template-columns: 1fr;
  }

  .map-card__header {
    padding: 24px 22px 20px;
  }
}

@media (width <= 767.98px) {
  .contact-card {
    border-radius: 22px;
    padding: 18px;
  }

  .contact-card__icon {
    border-radius: 18px;
    flex-basis: 58px;
    width: 58px;
    height: 58px;
    font-size: 1.25rem;
  }

  .contact-form-card {
    border-radius: 24px;
    padding: 22px;
  }

  .contact-form-card__header h2 {
    font-size: 1.6rem;
  }

  .contact-premium .form-control, .contact-premium .form-select {
    border-radius: 16px;
    min-height: 54px;
    padding: 13px 16px;
  }

  .contact-shortcut-card {
    border-radius: 18px;
    padding: 16px;
  }

  .map-container-premium {
    margin-top: 40px;
  }

  .map-card {
    border-radius: 24px;
  }

  .map-card__header h2 {
    font-size: 1.45rem;
  }
}

@media (width <= 575.98px) {
  .contact-list--extended li {
    gap: 6px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-card, .contact-pill, .contact-premium .form-control, .contact-premium .form-select, .contact-premium .btn-submit, .contact-shortcut-card {
    transition: none;
  }
}

.accordion-button:not(.collapsed):after {
  filter: brightness(0) invert();
}

.error-404-page {
  position: relative;
}

.error-page-title .heading-title {
  letter-spacing: -.04em;
  font-size: clamp(4rem, 10vw, 7rem);
  line-height: .9;
}

.error-404, .error-404-shell {
  position: relative;
}

.error-404-main-card, .error-404-side-card {
  background: linear-gradient(180deg,
            #ffffffeb,
            #fffffff5),
        var(--surface-color);
  border: 1px solid #00465514;
  border-radius: 34px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 24px 64px #00000014;
}

.error-404-main-card:before, .error-404-side-card:before {
  content: "";
  pointer-events: none;
  background: radial-gradient(circle at 100% 0, #0046550d, #0000 24%), linear-gradient(135deg, #ffffff24, #0000 42%);
  position: absolute;
  inset: 0;
}

.error-404-main-card {
  padding: 34px;
}

.error-404-main-card__top {
  z-index: 1;
  position: relative;
}

.error-404-main-card__pill {
  letter-spacing: .08em;
  text-transform: uppercase;
  min-height: 40px;
  color: var(--accent-color);
  background: #0046550f;
  border: 1px solid #0046551a;
  border-radius: 999px;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  font-size: .8rem;
  font-weight: 700;
  display: inline-flex;
}

.error-404-main-card__code-wrap {
  margin: 26px 0 16px;
  position: relative;
}

.error-404-main-card__glow {
  filter: blur(18px);
  z-index: 0;
  background: radial-gradient(circle, #00465524, #0000 68%);
  border-radius: 50%;
  width: 220px;
  height: 220px;
  position: absolute;
  top: 12px;
  left: 0;
}

.error-404-main-card__code {
  z-index: 1;
  letter-spacing: -.06em;
  color: var(--heading-color);
  text-shadow: 0 12px 28px #00465514;
  text-align: center;
  font-size: clamp(5rem, 12vw, 9rem);
  font-weight: 800;
  line-height: .9;
  position: relative;
}

.error-404-main-card__content {
  z-index: 1;
  position: relative;
}

.error-404-main-card__content h2 {
  color: var(--heading-color);
  text-align: center;
  margin: 0 0 12px;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1.15;
}

.error-404-main-card__content p {
  max-width: 760px;
  color: var(--default-color);
  margin: 0;
  font-size: 1rem;
  line-height: 1.82;
}

.error-404-main-card__actions {
  flex-wrap: wrap;
  place-content: flex-start space-between;
  align-items: baseline;
  gap: 14px;
  margin-top: 28px;
  display: flex;
}

.error-404-side-card {
  flex-direction: column;
  display: flex;
}

.error-404-side-card__visual {
  background: linear-gradient(180deg, #004655f0, #004655c7),
        var(--page-bg) center center / cover no-repeat;
  align-items: flex-end;
  min-height: 280px;
  padding: 24px;
  display: flex;
  position: relative;
}

.error-404-side-card__visual:before {
  content: "";
  background: radial-gradient(circle at 0 0, #ffffff1f, #0000 25%), radial-gradient(circle at 100% 100%, #ffffff14, #0000 26%);
  position: absolute;
  inset: 0;
}

.error-404-side-card__compass {
  width: 74px;
  height: 74px;
  color: var(--contrast-color);
  -webkit-backdrop-filter: blur(8px);
  background: #ffffff1f;
  border: 1px solid #ffffff29;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  font-size: 1.7rem;
  display: inline-flex;
  position: absolute;
  top: 22px;
  right: 22px;
}

.error-404-side-card__badge {
  z-index: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  min-height: 38px;
  color: var(--contrast-color);
  backdrop-filter: blur(8px);
  background: #ffffff1a;
  border: 1px solid #ffffff24;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  font-size: .76rem;
  font-weight: 700;
  display: inline-flex;
  position: relative;
}

.error-404-side-card__body {
  padding: 24px;
}

.error-404-side-card__body h2 {
  color: var(--heading-color);
  margin: 0 0 12px;
  font-size: 1.42rem;
  line-height: 1.2;
}

.error-404-side-card__body p {
  color: var(--default-color);
  margin: 0;
  font-size: .96rem;
  line-height: 1.78;
}

.error-404-links {
  gap: 12px;
  margin-top: 22px;
  display: grid;
}

.error-404-link-card {
  background: #0046550a;
  border: 1px solid #0046550f;
  border-radius: 18px;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  min-height: 58px;
  padding: 14px 16px;
  text-decoration: none;
  transition: transform .3s, background .3s, border-color .3s;
  display: flex;
}

.error-404-link-card:hover {
  background: #0046550f;
  border-color: #0046551a;
  transform: translateX(4px);
}

.error-404-link-card__left {
  align-items: center;
  gap: 12px;
  min-width: 0;
  display: flex;
}

.error-404-link-card__icon {
  width: 42px;
  height: 42px;
  color: var(--accent-color);
  background: #00465514;
  border-radius: 14px;
  flex: 0 0 42px;
  justify-content: center;
  align-items: center;
  font-size: 1rem;
  display: inline-flex;
}

.error-404-link-card__content {
  min-width: 0;
}

.error-404-link-card__content strong {
  color: var(--heading-color);
  font-size: .96rem;
  line-height: 1.3;
  display: block;
}

.error-404-link-card__content span {
  color: #3c4a57c7;
  margin-top: 2px;
  font-size: .84rem;
  line-height: 1.45;
  display: block;
}

.error-404-link-card__arrow {
  color: var(--accent-color);
  font-size: 1rem;
}

.error-404-contact-widget {
  margin-top: 0;
}

@media (width <= 991.98px) {
  .error-404-features {
    grid-template-columns: 1fr;
  }
}

@media (width <= 767.98px) {
  .error-404-main-card, .error-404-side-card {
    border-radius: 24px;
  }

  .error-404-main-card {
    padding: 24px 20px;
  }

  .error-404-side-card__body, .error-404-side-card__visual {
    padding: 20px;
  }

  .error-404-main-card__content h2, .error-404-side-card__body h2 {
    font-size: 1.55rem;
  }

  .error-404-side-card__visual {
    min-height: 220px;
  }

  .error-404-side-card__compass {
    width: 62px;
    height: 62px;
    font-size: 1.4rem;
  }
}

.cg-reels-panel {
  --cg-reels-radius: 28px;
  --cg-reels-shadow: 0 24px 64px #00000024;
  --cg-reels-border: #00465514;
  background: linear-gradient(180deg,
            #ffffffe0,
            #fffffff5),
        var(--surface-color);
  border: 1px solid var(--cg-reels-border);
  box-shadow: var(--cg-reels-shadow);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 32px;
  padding: 16px;
  position: relative;
  overflow: hidden;
}

.cg-reels-panel:before {
  content: "";
  pointer-events: none;
  background: radial-gradient(circle at 100% 0, #0046550d, #0000 26%), linear-gradient(135deg, #ffffff24, #0000 42%);
  position: absolute;
  inset: 0;
}

.cg-reels-panel__header {
  z-index: 2;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  display: flex;
  position: relative;
}

.cg-reels-panel__eyebrow {
  letter-spacing: .08em;
  text-transform: uppercase;
  min-height: 36px;
  color: var(--accent-color);
  background: #0046550f;
  border: 1px solid #0046551a;
  border-radius: 999px;
  align-items: center;
  gap: 10px;
  padding: 7px 14px;
  font-size: .76rem;
  font-weight: 700;
  display: inline-flex;
}

.cg-reels-panel__dot {
  background: var(--accent-color);
  border-radius: 50%;
  width: 8px;
  height: 8px;
  box-shadow: 0 0 0 6px #00465514;
}

.cg-reels-panel__mute {
  width: 42px;
  height: 42px;
  color: var(--contrast-color);
  background: var(--accent-color);
  cursor: pointer;
  border: 0;
  border-radius: 14px;
  flex: 0 0 42px;
  justify-content: center;
  align-items: center;
  transition: transform .3s, box-shadow .3s;
  display: inline-flex;
  box-shadow: 0 12px 28px #0046552e;
}

.cg-reels-panel__mute:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px #0046553d;
}

.cg-reels-panel__progress {
  z-index: 2;
  background: #00465514;
  border-radius: 999px;
  width: 100%;
  height: 5px;
  margin-bottom: 14px;
  position: relative;
  overflow: hidden;
}

.cg-reels-panel__progress span {
  border-radius: inherit;
  background: linear-gradient(90deg,
        var(--accent-color),
        #004655b8);
  width: 0%;
  height: 100%;
  transition: width .12s linear;
  display: block;
}

.cg-reels-panel__viewport {
  position: relative;
}

.cg-reels-slide {
  aspect-ratio: 9 / 16;
  border-radius: var(--cg-reels-radius);
  background: var(--accent-color);
  width: 100%;
  text-decoration: none;
  display: block;
  position: relative;
  overflow: hidden;
  box-shadow: 0 18px 38px #00000029;
}

.cg-reels-slide__image {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: transform .8s;
  display: block;
}

.cg-reels-panel:hover .cg-reels-slide__image {
  transform: scale(1.04);
}

.cg-reels-slide__overlay {
  background: linear-gradient(#00465529 0%, #0046551f 24%, #004655c2 100%);
  position: absolute;
  inset: 0;
}

.cg-reels-slide__top {
  z-index: 2;
  justify-content: flex-start;
  display: flex;
  position: absolute;
  top: 14px;
  left: 14px;
  right: 14px;
}

.cg-reels-slide__badge {
  letter-spacing: .08em;
  text-transform: uppercase;
  min-height: 34px;
  color: var(--contrast-color);
  backdrop-filter: blur(8px);
  background: #ffffff1f;
  border: 1px solid #ffffff24;
  border-radius: 999px;
  align-items: center;
  padding: 7px 12px;
  font-size: .72rem;
  font-weight: 700;
  display: inline-flex;
}

.cg-reels-slide__content {
  z-index: 2;
  color: var(--contrast-color);
  position: absolute;
  bottom: 98px;
  left: 18px;
  right: 18px;
}

.cg-reels-slide__content h3 {
  color: var(--contrast-color);
  margin: 0 0 10px;
  font-size: 1.28rem;
  font-weight: 700;
  line-height: 1.18;
}

.cg-reels-slide__content p {
  color: #ffffffeb;
  margin: 0;
  font-size: .92rem;
  line-height: 1.7;
}

.cg-reels-slide__actions {
  z-index: 2;
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
  position: absolute;
  bottom: 18px;
  left: 18px;
  right: 18px;
}

.cg-reels-action {
  min-height: 42px;
  color: var(--contrast-color);
  -webkit-backdrop-filter: blur(8px);
  cursor: pointer;
  background: #ffffff1f;
  border: 1px solid #ffffff24;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  font-size: .86rem;
  font-weight: 600;
  transition: transform .3s, background .3s, border-color .3s;
  display: inline-flex;
}

.cg-reels-action:hover {
  background: #ffffff2e;
  transform: translateY(-2px);
}

.cg-reels-action.is-liked {
  background: #ffffff38;
  border-color: #ffffff38;
}

.cg-reels-action.is-liked i {
  color: #ff6b81;
}

.cg-reels-nav {
  z-index: 3;
  width: 48px;
  height: 48px;
  color: var(--contrast-color);
  -webkit-backdrop-filter: blur(8px);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  background: #004655c7;
  border: 0;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  transition: opacity .3s, transform .3s, background .3s;
  display: inline-flex;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 0 14px 28px #0000002e;
}

.cg-reels-nav:hover {
  background: #004655eb;
}

.cg-reels-nav--prev {
  top: 14px;
}

.cg-reels-nav--next {
  bottom: 14px;
}

.cg-reels-panel:hover .cg-reels-nav {
  opacity: 1;
  pointer-events: auto;
}

.cg-reels-panel__footer {
  z-index: 2;
  margin-top: 14px;
  position: relative;
}

.cg-reels-thumbs {
  scrollbar-width: none;
  gap: 8px;
  padding-bottom: 2px;
  display: flex;
  overflow-x: auto;
}

.cg-reels-thumbs::-webkit-scrollbar {
  display: none;
}

.cg-reels-thumb {
  cursor: pointer;
  opacity: .72;
  background: #00465514;
  border: 2px solid #0000;
  border-radius: 12px;
  flex: 0 0 44px;
  width: 44px;
  height: 62px;
  transition: transform .3s, border-color .3s, opacity .3s;
  overflow: hidden;
}

.cg-reels-thumb img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.cg-reels-thumb.is-active {
  border-color: var(--accent-color);
  opacity: 1;
}

.cg-reels-thumb:hover {
  opacity: 1;
  transform: translateY(-2px);
}

@media (width <= 991.98px) {
  .cg-reels-panel {
    max-width: 420px;
    margin-inline: auto;
  }

  .cg-reels-nav {
    opacity: 1;
    pointer-events: auto;
  }
}

@media (width <= 575.98px) {
  .cg-reels-panel {
    border-radius: 24px;
    padding: 14px;
  }

  .cg-reels-slide {
    border-radius: 22px;
  }

  .cg-reels-slide__content {
    bottom: 90px;
    left: 14px;
    right: 14px;
  }

  .cg-reels-slide__actions {
    bottom: 14px;
    left: 14px;
    right: 14px;
  }

  .cg-reels-action {
    min-height: 40px;
    padding: 9px 12px;
    font-size: .8rem;
  }

  .cg-reels-slide__content h3 {
    font-size: 1.12rem;
  }

  .cg-reels-slide__content p {
    font-size: .86rem;
  }
}

.territory-entry {
  --entry-bg: var(--surface-color);
  --entry-surface: var(--background-color);
  --entry-border: #3c4a571f;
  --entry-border-strong: #0046552e;
  --entry-text: var(--default-color);
  --entry-muted: #3c4a57bd;
  --entry-title: var(--heading-color);
  --entry-accent: var(--accent-color);
  --entry-accent-soft: #00465512;
  --entry-danger: #e5533d;
  --entry-success: #0f9d7a;
  --entry-shadow: 0 16px 40px #1018280f;
  position: relative;
}

.territory-entry .premium-box {
  background: var(--entry-bg);
  border: 1px solid var(--entry-border);
  box-shadow: var(--entry-shadow);
  border-radius: 22px;
}

.territory-entry .entry-price-card {
  background: var(--entry-bg);
  border: 1px solid var(--entry-border);
  height: 100%;
  box-shadow: var(--entry-shadow);
  border-radius: 22px;
  padding: 24px;
  transition: all .3s;
  position: relative;
  overflow: hidden;
}

.territory-entry .entry-price-card:hover {
  border-color: #00465547;
  transform: translateY(-6px);
  box-shadow: 0 22px 48px #10182814;
}

.territory-entry .entry-price-card:before {
  content: "";
  pointer-events: none;
  background: radial-gradient(circle, #0046551a 0%, #0000 72%);
  border-radius: 50%;
  width: 170px;
  height: 170px;
  position: absolute;
  top: -55px;
  right: -55px;
}

.territory-entry .entry-price-card__top {
  z-index: 1;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 18px;
  display: flex;
  position: relative;
}

.territory-entry .entry-price-card__head {
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  display: flex;
}

.territory-entry .entry-price-card__icon {
  background: var(--entry-accent-soft);
  width: 52px;
  height: 52px;
  color: var(--entry-accent);
  border-radius: 16px;
  justify-content: center;
  align-items: center;
  font-size: 1.3rem;
  display: inline-flex;
}

.territory-entry .entry-price-card__price {
  white-space: nowrap;
  align-items: flex-end;
  gap: 8px;
  line-height: 1;
  display: flex;
}

.territory-entry .entry-price-card__price strong {
  color: var(--entry-title);
  font-size: 2.7rem;
  font-weight: 800;
}

.territory-entry .entry-price-card__price span {
  color: var(--entry-muted);
  padding-bottom: 6px;
  font-weight: 700;
}

.territory-entry .entry-price-card__content {
  z-index: 1;
  position: relative;
}

.territory-entry .entry-price-card__content h3 {
  color: var(--entry-title);
  margin: 0 0 8px;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.45;
}

.territory-entry .entry-price-card__content p {
  color: var(--entry-muted);
  margin: 0;
  font-size: .95rem;
  line-height: 1.7;
}

.territory-entry .entry-card {
  border-radius: 22px;
  padding: 26px;
}

.territory-entry .entry-card__header {
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 20px;
  display: flex;
}

.territory-entry .entry-card__header--between {
  justify-content: space-between;
  gap: 20px;
}

.territory-entry .entry-card__header-main {
  align-items: flex-start;
  gap: 14px;
  display: flex;
}

.territory-entry .entry-card__icon {
  background: var(--entry-accent-soft);
  width: 50px;
  height: 50px;
  color: var(--entry-accent);
  border-radius: 16px;
  flex: 0 0 50px;
  justify-content: center;
  align-items: center;
  font-size: 1.2rem;
  display: inline-flex;
}

.territory-entry .entry-card__header h3 {
  color: var(--entry-title);
  margin: 0 0 5px;
  font-size: 1.2rem;
  font-weight: 800;
}

.territory-entry .entry-card__header p {
  color: var(--entry-muted);
  margin: 0;
  font-size: .92rem;
  line-height: 1.6;
}

.territory-entry .entry-card__body p {
  color: var(--entry-text);
  margin: 0 0 14px;
  line-height: 1.75;
}

.territory-entry .entry-schedule__item {
  border: 1px solid var(--entry-border-strong);
  background: linear-gradient(135deg, #00465514, #0046550a);
  border-radius: 18px;
  padding: 20px 22px;
}

.territory-entry .entry-schedule__label {
  color: var(--entry-muted);
  margin-bottom: 6px;
  font-size: .86rem;
  font-weight: 600;
  display: block;
}

.territory-entry .entry-schedule__value {
  color: var(--entry-title);
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.2;
  display: block;
}

.territory-entry .entry-benefits {
  margin: 0;
  padding: 0;
  list-style: none;
}

.territory-entry .entry-benefit-card {
  border: 1px solid var(--entry-border);
  background: linear-gradient(#eef3f78c 0%, #fff 100%);
  border-radius: 18px;
  align-items: flex-start;
  gap: 14px;
  height: 100%;
  padding: 18px;
  transition: all .3s;
  display: flex;
}

.territory-entry .entry-benefit-card:hover {
  border-color: #00465533;
  transform: translateY(-4px);
  box-shadow: 0 16px 30px #1018280d;
}

.territory-entry .entry-benefit-card__icon {
  background: var(--entry-accent-soft);
  width: 48px;
  height: 48px;
  color: var(--entry-accent);
  border-radius: 14px;
  flex: 0 0 48px;
  justify-content: center;
  align-items: center;
  font-size: 1.2rem;
  display: inline-flex;
}

.territory-entry .entry-benefit-card__content strong {
  color: var(--entry-title);
  margin-bottom: 8px;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.5;
  display: block;
}

.territory-entry .entry-benefit-card__content span {
  color: var(--entry-muted);
  font-size: .94rem;
  line-height: 1.75;
  display: block;
}

.territory-entry .entry-feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.territory-entry .entry-feature-item {
  background: var(--entry-surface);
  border: 1px solid var(--entry-border);
  border-radius: 16px;
  align-items: flex-start;
  gap: 12px;
  min-height: 100%;
  padding: 15px 16px;
  display: flex;
}

.territory-entry .entry-feature-item__icon {
  background: var(--entry-accent-soft);
  width: 38px;
  height: 38px;
  color: var(--entry-accent);
  border-radius: 12px;
  flex: 0 0 38px;
  justify-content: center;
  align-items: center;
  font-size: 1rem;
  display: inline-flex;
}

.territory-entry .entry-feature-item span {
  color: var(--entry-text);
  font-size: .94rem;
  line-height: 1.65;
}

.territory-entry .entry-feature-grid--service .entry-feature-item__icon {
  background: #00465517;
}

.territory-entry .entry-rules-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.territory-entry .entry-rule-item {
  background: linear-gradient(#e5533d0d 0%, #fff 100%);
  border: 1px solid #e5533d1f;
  border-radius: 16px;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  display: flex;
}

.territory-entry .entry-rule-item__icon {
  width: 40px;
  height: 40px;
  color: var(--entry-danger);
  background: #e5533d14;
  border-radius: 12px;
  flex: 0 0 40px;
  justify-content: center;
  align-items: center;
  font-size: 1rem;
  display: inline-flex;
}

.territory-entry .entry-rule-item span {
  color: var(--entry-text);
  font-size: .95rem;
  line-height: 1.7;
}

.territory-entry .entry-card {
  margin: 0 !important;
}

.entry-price-card__content {
  padding-bottom: 20px !important;
}

@media (width <= 991.98px) {
  .territory-entry .entry-feature-grid, .territory-entry .entry-rules-grid {
    grid-template-columns: 1fr;
  }

  .territory-entry .entry-card__header--between {
    flex-direction: column;
    align-items: flex-start;
  }

  .entry-price-card__content {
    padding-bottom: 20px;
  }

  .territory-entry .mt-1 {
    margin-top: 0 !important;
  }

  .territory-entry .entry-card {
    margin: 0 !important;
  }

  .entry-schedule {
    margin-bottom: 30px;
  }
}

@media (width <= 767.98px) {
  .territory-entry .entry-price-card, .territory-entry .entry-card {
    padding: 20px;
  }

  .territory-entry .entry-price-card__top {
    flex-direction: column;
    align-items: flex-start;
  }

  .territory-entry .entry-price-card__price strong {
    font-size: 2.2rem;
  }

  .territory-entry .entry-feature-grid {
    grid-template-columns: 1fr;
  }

  .territory-entry .entry-benefit-card {
    padding: 16px;
  }
}

.territory-entry .h-100 {
  padding-bottom: 0 !important;
}

.gazebo-service {
  --gz-bg: #eef3f7;
  --gz-surface: #fff;
  --gz-surface-2: #f8fbfc;
  --gz-border: #3c4a571f;
  --gz-border-strong: #00465538;
  --gz-text: #3c4a57;
  --gz-muted: #3c4a57bd;
  --gz-title: #004655;
  --gz-accent: #004655;
  --gz-accent-soft: #00465514;
  --gz-accent-soft-2: #0046550a;
  --gz-contrast: #fff;
  --gz-warning: #fff6f3;
  --gz-warning-border: #e5533d29;
  --gz-warning-icon: #e5533d;
  --gz-shadow: 0 18px 50px #0f172a0f;
  --gz-shadow-hover: 0 24px 55px #0f172a1a;
  --gz-radius-xl: 28px;
  --gz-radius-lg: 22px;
  --gz-radius-md: 18px;
  --gz-radius-sm: 14px;
  background: none;
}

.gazebo-service *, .gazebo-service :before, .gazebo-service :after {
  box-sizing: border-box;
}

.gazebo-layout {
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: start;
  gap: 24px;
  margin-top: 24px;
  display: grid;
}

.gazebo-main {
  gap: 24px;
  display: grid;
}

.gazebo-sidebar {
  gap: 24px;
  display: grid;
  position: sticky;
  top: 120px;
}

.gazebo-card, .gazebo-contact, .gazebo-summary {
  background: var(--gz-surface);
  border: 1px solid var(--gz-border);
  border-radius: var(--gz-radius-xl);
  box-shadow: var(--gz-shadow);
}

.gazebo-card {
  padding: 28px;
}

.gazebo-card__head {
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 22px;
  display: flex;
}

.gazebo-card__head--space {
  justify-content: space-between;
  gap: 20px;
}

.gazebo-card__head-group {
  align-items: flex-start;
  gap: 16px;
  display: flex;
}

.gazebo-card__icon {
  background: linear-gradient(135deg,
        var(--gz-accent-soft),
        #0046551f);
  width: 54px;
  height: 54px;
  color: var(--gz-accent);
  border-radius: 18px;
  flex: 0 0 54px;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem;
  display: inline-flex;
}

.gazebo-card__title {
  color: var(--gz-title);
  margin: 0 0 6px;
  font-size: 1.32rem;
  font-weight: 800;
  line-height: 1.35;
}

.gazebo-card__subtitle {
  color: var(--gz-muted);
  margin: 0;
  font-size: .94rem;
  line-height: 1.65;
}

.gazebo-card__body {
  color: var(--gz-text);
}

.gazebo-pricing {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  display: grid;
}

.gazebo-price-box {
  border: 1px solid var(--gz-border);
  background: linear-gradient(#fff 0%, #f8fbfc 100%);
  border-radius: 22px;
  min-height: 140px;
  padding: 20px 22px;
  transition: transform .3s, box-shadow .3s, border-color .3s, background .3s;
  position: relative;
  overflow: hidden;
}

.gazebo-price-box:before {
  content: "";
  pointer-events: none;
  background: radial-gradient(circle, #00465514 0%, #0000 72%);
  border-radius: 50%;
  width: 140px;
  height: 140px;
  transition: transform .3s, opacity .3s;
  position: absolute;
  top: -42px;
  right: -42px;
}

.gazebo-price-box:hover {
  box-shadow: var(--gz-shadow-hover);
  background: linear-gradient(#fff 0%, #eff7f9 100%);
  border-color: #0046553d;
  transform: translateY(-6px);
}

.gazebo-price-box:hover:before {
  transform: scale(1.1);
}

.gazebo-price-box--featured {
  border-color: var(--gz-border-strong);
  background: linear-gradient(#0046550d 0%, #fff 100%);
}

.gazebo-price-box__top {
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  display: flex;
}

.gazebo-price-box__icon {
  background: var(--gz-accent-soft);
  width: 56px;
  height: 56px;
  color: var(--gz-accent);
  border-radius: 18px;
  flex: 0 0 56px;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem;
  transition: transform .3s, background .3s;
  display: inline-flex;
}

.gazebo-price-box:hover .gazebo-price-box__icon {
  background: #0046551f;
  transform: scale(1.08);
}

.gazebo-price-box__price {
  color: var(--gz-title);
  text-align: right;
  white-space: nowrap;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;
}

.gazebo-price-box__price span {
  color: var(--gz-muted);
  font-size: .98rem;
  font-weight: 700;
}

.gazebo-price-box__label {
  color: var(--gz-title);
  font-size: 1.02rem;
  font-weight: 800;
  line-height: 1.45;
}

.gazebo-extras {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.gazebo-extra-item {
  border: 1px solid var(--gz-border);
  border-radius: var(--gz-radius-md);
  background: var(--gz-surface-2);
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  transition: transform .3s, box-shadow .3s, border-color .3s, background .3s;
  display: flex;
}

.gazebo-extra-item:hover {
  background: linear-gradient(#f8fbfc 0%, #eef3f7b3 100%);
  border-color: #00465533;
  transform: translateY(-4px);
  box-shadow: 0 16px 35px #0f172a0f;
}

.gazebo-extra-item__icon {
  background: var(--gz-accent-soft);
  width: 46px;
  height: 46px;
  color: var(--gz-accent);
  border-radius: 14px;
  flex: 0 0 46px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  transition: transform .3s, background .3s;
  display: inline-flex;
}

.gazebo-extra-item:hover .gazebo-extra-item__icon {
  background: #0046551f;
  transform: scale(1.08);
}

.gazebo-extra-item__info {
  flex-direction: column;
  gap: 4px;
  display: flex;
}

.gazebo-extra-item__info strong {
  color: var(--gz-title);
  font-size: .98rem;
  font-weight: 800;
  line-height: 1.45;
}

.gazebo-extra-item__info span {
  color: var(--gz-muted);
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.5;
}

.gazebo-slider {
  border-radius: 22px;
  position: relative;
  overflow: hidden;
}

.gazebo-slider__inner, .gazebo-slider__image {
  border-radius: 22px;
}

.gazebo-slider__image {
  object-fit: cover;
  width: 100%;
  height: 460px;
  display: block;
}

.gazebo-slider__indicators {
  margin-bottom: 18px;
}

.gazebo-slider__indicators [data-bs-target] {
  border-radius: 50%;
  width: 10px;
  height: 10px;
}

.gazebo-slider__control {
  width: 10%;
}

.gazebo-copy {
  color: var(--gz-text);
  margin: 0 0 18px;
  line-height: 1.85;
}

.gazebo-types {
  gap: 14px;
  display: grid;
}

.gazebo-types__item {
  border: 1px solid var(--gz-border);
  border-radius: var(--gz-radius-md);
  background: linear-gradient(#eef3f773 0%, #fff 100%);
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  display: flex;
}

.gazebo-types__icon {
  background: var(--gz-accent-soft);
  width: 46px;
  height: 46px;
  color: var(--gz-accent);
  border-radius: 14px;
  flex: 0 0 46px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  display: inline-flex;
}

.gazebo-types__content h4 {
  color: var(--gz-title);
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: 800;
}

.gazebo-types__content p {
  color: var(--gz-text);
  margin: 0;
  line-height: 1.75;
}

.gazebo-alerts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.gazebo-alert {
  border: 1px solid var(--gz-warning-border);
  border-radius: var(--gz-radius-md);
  background: linear-gradient(#fff5f2bf 0%, #fff 100%);
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  display: flex;
}

.gazebo-alert__icon {
  width: 46px;
  height: 46px;
  color: var(--gz-warning-icon);
  background: #e5533d14;
  border-radius: 14px;
  flex: 0 0 46px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  display: inline-flex;
}

.gazebo-alert__content strong {
  color: var(--gz-title);
  margin-bottom: 6px;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
  display: block;
}

.gazebo-alert__content p {
  color: var(--gz-text);
  margin: 0;
  font-size: .95rem;
  line-height: 1.75;
}

.gazebo-contact {
  padding: 28px;
}

.gazebo-contact__badge {
  background: var(--gz-accent-soft);
  min-height: 34px;
  color: var(--gz-accent);
  text-transform: uppercase;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 6px 12px;
  font-size: .8rem;
  font-weight: 800;
  display: inline-flex;
}

.gazebo-contact__title {
  color: var(--gz-title);
  margin: 0 0 10px;
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.3;
}

.gazebo-contact__text {
  color: var(--gz-muted);
  margin: 0 0 18px;
  line-height: 1.75;
}

.gazebo-contact__phone {
  color: var(--gz-title);
  margin-bottom: 18px;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  display: inline-block;
}

.gazebo-summary {
  padding: 28px;
}

.gazebo-summary__title {
  color: var(--gz-title);
  margin: 0 0 18px;
  font-size: 1.2rem;
  font-weight: 800;
}

.gazebo-summary__list {
  gap: 12px;
  display: grid;
}

.gazebo-summary__item {
  border: 1px solid var(--gz-border);
  background: var(--gz-surface-2);
  border-radius: 16px;
  flex-direction: column;
  gap: 5px;
  padding: 14px 16px;
  display: flex;
}

.gazebo-summary__key {
  color: var(--gz-muted);
  font-size: .85rem;
  line-height: 1.45;
}

.gazebo-summary__value {
  color: var(--gz-title);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
}

@media (width <= 1399.98px) {
  .gazebo-pricing {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (width <= 1199.98px) {
  .gazebo-layout {
    grid-template-columns: 1fr;
  }

  .gazebo-sidebar {
    position: static;
  }

  .gazebo-slider__image {
    height: 400px;
  }
}

@media (width <= 991.98px) {
  .gazebo-extras, .gazebo-alerts {
    grid-template-columns: 1fr;
  }

  .gazebo-card__head--space {
    flex-direction: column;
    align-items: flex-start;
  }

  .gazebo-slider__image {
    height: 340px;
  }
}

@media (width <= 767.98px) {
  .gazebo-card, .gazebo-contact, .gazebo-summary {
    border-radius: 22px;
    padding: 22px;
  }

  .gazebo-card__head, .gazebo-card__head-group {
    gap: 12px;
  }

  .gazebo-card__icon {
    border-radius: 14px;
    flex-basis: 48px;
    width: 48px;
    height: 48px;
    font-size: 1.1rem;
  }

  .gazebo-pricing {
    grid-template-columns: 1fr;
  }

  .gazebo-price-box__top {
    align-items: center;
  }

  .gazebo-price-box__price {
    font-size: 1.7rem;
  }

  .gazebo-slider__image {
    height: 260px;
  }

  .gazebo-contact__phone {
    font-size: 1.28rem;
  }
}

.restaurant-service {
  --rs-surface: #fff;
  --rs-surface-2: #f8fbfc;
  --rs-border: #3c4a571f;
  --rs-border-strong: #00465538;
  --rs-text: #3c4a57;
  --rs-muted: #3c4a57bd;
  --rs-title: #004655;
  --rs-accent: #004655;
  --rs-accent-soft: #00465514;
  --rs-accent-soft-2: #0046550a;
  --rs-warning: #fff6f3;
  --rs-warning-border: #e5533d29;
  --rs-warning-icon: #e5533d;
  --rs-contrast: #fff;
  --rs-shadow: 0 18px 50px #0f172a0f;
  --rs-shadow-hover: 0 24px 55px #0f172a1a;
  --rs-radius-xl: 28px;
  --rs-radius-lg: 22px;
  --rs-radius-md: 18px;
  --rs-radius-sm: 14px;
}

.restaurant-service *, .restaurant-service :before, .restaurant-service :after {
  box-sizing: border-box;
}

.restaurant-layout {
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: start;
  gap: 24px;
  display: grid;
}

.restaurant-main {
  gap: 24px;
  display: grid;
}

.restaurant-sidebar {
  gap: 24px;
  display: grid;
  position: sticky;
  top: 120px;
}

.restaurant-panel, .restaurant-contact, .restaurant-summary {
  background: var(--rs-surface);
  border: 1px solid var(--rs-border);
  border-radius: var(--rs-radius-xl);
  box-shadow: var(--rs-shadow);
}

.restaurant-panel {
  padding: 28px;
}

.restaurant-panel__head {
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 22px;
  display: flex;
}

.restaurant-panel__head--space {
  justify-content: space-between;
  gap: 20px;
}

.restaurant-panel__head-group {
  align-items: flex-start;
  gap: 16px;
  display: flex;
}

.restaurant-panel__icon {
  background: linear-gradient(135deg,
        var(--rs-accent-soft),
        #0046551f);
  width: 54px;
  height: 54px;
  color: var(--rs-accent);
  border-radius: 18px;
  flex: 0 0 54px;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem;
  display: inline-flex;
}

.restaurant-panel__title {
  color: var(--rs-title);
  margin: 0 0 6px;
  font-size: 1.32rem;
  font-weight: 800;
  line-height: 1.35;
}

.restaurant-panel__subtitle {
  color: var(--rs-muted);
  margin: 0;
  font-size: .94rem;
  line-height: 1.65;
}

.restaurant-panel__body {
  color: var(--rs-text);
}

.restaurant-copy {
  color: var(--rs-text);
  margin: 0 0 16px;
  line-height: 1.85;
}

.restaurant-copy:last-child {
  margin-bottom: 0;
}

.restaurant-slider {
  border-radius: 22px;
  position: relative;
  overflow: hidden;
}

.restaurant-slider__inner, .restaurant-slider__image {
  border-radius: 22px;
}

.restaurant-slider__image {
  object-fit: cover;
  width: 100%;
  height: 460px;
  display: block;
}

.restaurant-slider__indicators {
  margin-bottom: 18px;
}

.restaurant-slider__indicators [data-bs-target] {
  border-radius: 50%;
  width: 10px;
  height: 10px;
}

.restaurant-slider__control {
  width: 10%;
}

.restaurant-feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.restaurant-feature-card {
  border: 1px solid var(--rs-border);
  border-radius: var(--rs-radius-md);
  background: linear-gradient(#f8fbfc 0%, #fff 100%);
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  display: flex;
}

.restaurant-feature-card:hover {
  border-color: #0046552e;
  transform: translateY(-4px);
  box-shadow: 0 16px 35px #0f172a0f;
}

.restaurant-feature-card__icon {
  background: var(--rs-accent-soft);
  width: 46px;
  height: 46px;
  color: var(--rs-accent);
  border-radius: 14px;
  flex: 0 0 46px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  display: inline-flex;
}

.restaurant-feature-card__content h4 {
  color: var(--rs-title);
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: 800;
}

.restaurant-feature-card__content p {
  color: var(--rs-text);
  margin: 0;
  line-height: 1.7;
}

.restaurant-alert-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.restaurant-alert-card {
  border: 1px solid var(--rs-warning-border);
  border-radius: var(--rs-radius-md);
  background: linear-gradient(#fff5f2bf 0%, #fff 100%);
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  display: flex;
}

.restaurant-alert-card--accent {
  border-color: var(--rs-border-strong);
  background: linear-gradient(#0046550d 0%, #fff 100%);
}

.restaurant-alert-card__icon {
  width: 46px;
  height: 46px;
  color: var(--rs-warning-icon);
  background: #e5533d14;
  border-radius: 14px;
  flex: 0 0 46px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  display: inline-flex;
}

.restaurant-alert-card--accent .restaurant-alert-card__icon {
  background: var(--rs-accent-soft);
  color: var(--rs-accent);
}

.restaurant-alert-card__content strong {
  color: var(--rs-title);
  margin-bottom: 6px;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
  display: block;
}

.restaurant-alert-card__content p {
  color: var(--rs-text);
  margin: 0;
  font-size: .95rem;
  line-height: 1.75;
}

.restaurant-btn, .restaurant-contact__button {
  border: 1px solid var(--rs-accent);
  background: var(--rs-accent);
  min-height: 48px;
  color: var(--rs-contrast);
  border-radius: 14px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: all .3s;
  display: inline-flex;
}

.restaurant-btn:hover, .restaurant-contact__button:hover {
  color: var(--rs-contrast);
  background: color-mix(in srgb, var(--rs-accent), #fff 10%);
}

.restaurant-contact {
  padding: 28px;
}

.restaurant-contact__badge {
  background: var(--rs-accent-soft);
  min-height: 34px;
  color: var(--rs-accent);
  text-transform: uppercase;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 6px 12px;
  font-size: .8rem;
  font-weight: 800;
  display: inline-flex;
}

.restaurant-contact__title {
  color: var(--rs-title);
  margin: 0 0 10px;
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.3;
}

.restaurant-contact__text {
  color: var(--rs-muted);
  margin: 0 0 18px;
  line-height: 1.75;
}

.restaurant-contact__phone {
  color: var(--rs-title);
  margin-bottom: 18px;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  display: inline-block;
}

.restaurant-summary {
  padding: 28px;
}

.restaurant-summary__title {
  color: var(--rs-title);
  margin: 0 0 18px;
  font-size: 1.2rem;
  font-weight: 800;
}

.restaurant-summary__list {
  gap: 12px;
  display: grid;
}

.restaurant-summary__item {
  border: 1px solid var(--rs-border);
  background: var(--rs-surface-2);
  border-radius: 16px;
  flex-direction: column;
  gap: 5px;
  padding: 14px 16px;
  display: flex;
}

.restaurant-summary__key {
  color: var(--rs-muted);
  font-size: .85rem;
  line-height: 1.45;
}

.restaurant-summary__value {
  color: var(--rs-title);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
}

@media (width <= 1199.98px) {
  .restaurant-layout {
    grid-template-columns: 1fr;
  }

  .restaurant-sidebar {
    position: static;
  }

  .restaurant-slider__image {
    height: 400px;
  }
}

@media (width <= 991.98px) {
  .restaurant-feature-grid, .restaurant-alert-grid {
    grid-template-columns: 1fr;
  }

  .restaurant-panel__head--space {
    flex-direction: column;
    align-items: flex-start;
  }

  .restaurant-slider__image {
    height: 340px;
  }
}

@media (width <= 767.98px) {
  .restaurant-panel, .restaurant-contact, .restaurant-summary {
    border-radius: 22px;
    padding: 22px;
  }

  .restaurant-panel__head, .restaurant-panel__head-group {
    gap: 12px;
  }

  .restaurant-panel__icon {
    border-radius: 14px;
    flex-basis: 48px;
    width: 48px;
    height: 48px;
    font-size: 1.1rem;
  }

  .restaurant-slider__image {
    height: 260px;
  }

  .restaurant-btn, .restaurant-contact__button {
    width: 100%;
  }

  .restaurant-contact__phone {
    font-size: 1.28rem;
  }
}

.sauna-service {
  --sn-surface: #fff;
  --sn-surface-2: #f8fbfc;
  --sn-border: #3c4a571f;
  --sn-border-strong: #00465538;
  --sn-text: #3c4a57;
  --sn-muted: #3c4a57bd;
  --sn-title: #004655;
  --sn-accent: #004655;
  --sn-accent-soft: #00465514;
  --sn-accent-soft-2: #0046550a;
  --sn-warning-border: #e5533d29;
  --sn-warning-icon: #e5533d;
  --sn-contrast: #fff;
  --sn-shadow: 0 18px 50px #0f172a0f;
  --sn-shadow-hover: 0 24px 55px #0f172a1a;
  --sn-radius-xl: 28px;
  --sn-radius-md: 18px;
}

.sauna-service *, .sauna-service :before, .sauna-service :after {
  box-sizing: border-box;
}

.sauna-layout {
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: start;
  gap: 24px;
  display: grid;
}

.sauna-main {
  gap: 24px;
  display: grid;
}

.sauna-sidebar {
  gap: 24px;
  display: grid;
  position: sticky;
  top: 120px;
}

.sauna-panel, .sauna-booking, .sauna-schedule {
  background: var(--sn-surface);
  border: 1px solid var(--sn-border);
  border-radius: var(--sn-radius-xl);
  box-shadow: var(--sn-shadow);
}

.sauna-panel {
  padding: 28px;
}

.sauna-panel__head {
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 22px;
  display: flex;
}

.sauna-panel__icon {
  background: linear-gradient(135deg,
        var(--sn-accent-soft),
        #0046551f);
  width: 54px;
  height: 54px;
  color: var(--sn-accent);
  border-radius: 18px;
  flex: 0 0 54px;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem;
  display: inline-flex;
}

.sauna-panel__title {
  color: var(--sn-title);
  margin: 0 0 6px;
  font-size: 1.32rem;
  font-weight: 800;
  line-height: 1.35;
}

.sauna-panel__subtitle {
  color: var(--sn-muted);
  margin: 0;
  font-size: .94rem;
  line-height: 1.65;
}

.sauna-panel__body {
  color: var(--sn-text);
}

.sauna-copy {
  color: var(--sn-text);
  margin: 0 0 16px;
  line-height: 1.85;
}

.sauna-copy:last-child {
  margin-bottom: 0;
}

.sauna-slider {
  border-radius: 22px;
  position: relative;
  overflow: hidden;
}

.sauna-slider__inner, .sauna-slider__image {
  border-radius: 22px;
}

.sauna-slider__image {
  object-fit: cover;
  width: 100%;
  height: 460px;
  display: block;
}

.sauna-slider__indicators {
  margin-bottom: 18px;
}

.sauna-slider__indicators [data-bs-target] {
  border-radius: 50%;
  width: 10px;
  height: 10px;
}

.sauna-slider__control {
  width: 10%;
}

.sauna-feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.sauna-feature-card {
  border: 1px solid var(--sn-border);
  border-radius: var(--sn-radius-md);
  background: linear-gradient(#f8fbfc 0%, #fff 100%);
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  display: flex;
}

.sauna-feature-card:hover {
  border-color: #0046552e;
  transform: translateY(-4px);
  box-shadow: 0 16px 35px #0f172a0f;
}

.sauna-feature-card__icon {
  background: var(--sn-accent-soft);
  width: 46px;
  height: 46px;
  color: var(--sn-accent);
  border-radius: 14px;
  flex: 0 0 46px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  display: inline-flex;
}

.sauna-feature-card__content h4 {
  color: var(--sn-title);
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: 800;
}

.sauna-feature-card__content p {
  color: var(--sn-text);
  margin: 0;
  line-height: 1.7;
}

.sauna-alert-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.sauna-alert-card {
  border: 1px solid var(--sn-warning-border);
  border-radius: var(--sn-radius-md);
  background: linear-gradient(#fff5f2bf 0%, #fff 100%);
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  display: flex;
}

.sauna-alert-card--accent {
  border-color: var(--sn-border-strong);
  background: linear-gradient(#0046550d 0%, #fff 100%);
}

.sauna-alert-card__icon {
  width: 46px;
  height: 46px;
  color: var(--sn-warning-icon);
  background: #e5533d14;
  border-radius: 14px;
  flex: 0 0 46px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  display: inline-flex;
}

.sauna-alert-card--accent .sauna-alert-card__icon {
  background: var(--sn-accent-soft);
  color: var(--sn-accent);
}

.sauna-alert-card__content strong {
  color: var(--sn-title);
  margin-bottom: 6px;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
  display: block;
}

.sauna-alert-card__content p {
  color: var(--sn-text);
  margin: 0;
  font-size: .95rem;
  line-height: 1.75;
}

.sauna-booking, .sauna-schedule {
  padding: 28px;
}

.sauna-booking__badge {
  background: var(--sn-accent-soft);
  min-height: 34px;
  color: var(--sn-accent);
  text-transform: uppercase;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 6px 12px;
  font-size: .8rem;
  font-weight: 800;
  display: inline-flex;
}

.sauna-booking__title, .sauna-schedule__title {
  color: var(--sn-title);
  margin: 0 0 10px;
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.3;
}

.sauna-booking__text {
  color: var(--sn-muted);
  margin: 0 0 18px;
  line-height: 1.75;
}

.sauna-booking__price {
  border: 1px solid var(--sn-border);
  background: var(--sn-surface-2);
  border-radius: 16px;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 18px;
  padding: 14px 16px;
  display: flex;
}

.sauna-booking__price-label {
  color: var(--sn-muted);
  font-size: .85rem;
  line-height: 1.45;
}

.sauna-booking__price-value {
  color: var(--sn-title);
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.3;
}

.sauna-booking__phone {
  color: var(--sn-title);
  margin-bottom: 18px;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  display: inline-block;
}

.sauna-booking__button {
  border: 1px solid var(--sn-accent);
  background: var(--sn-accent);
  min-height: 48px;
  color: var(--sn-contrast);
  border-radius: 14px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: all .3s;
  display: inline-flex;
}

.sauna-booking__button:hover {
  color: var(--sn-contrast);
  background: color-mix(in srgb, var(--sn-accent), #fff 10%);
}

.sauna-schedule__list {
  gap: 12px;
  display: grid;
}

.sauna-schedule__item {
  border: 1px solid var(--sn-border);
  background: var(--sn-surface-2);
  border-radius: 16px;
  flex-direction: column;
  gap: 5px;
  padding: 14px 16px;
  display: flex;
}

.sauna-schedule__key {
  color: var(--sn-muted);
  font-size: .85rem;
  line-height: 1.45;
}

.sauna-schedule__value {
  color: var(--sn-title);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
}

@media (width <= 1199.98px) {
  .sauna-layout {
    grid-template-columns: 1fr;
  }

  .sauna-sidebar {
    position: static;
  }

  .sauna-slider__image {
    height: 400px;
  }
}

@media (width <= 991.98px) {
  .sauna-feature-grid, .sauna-alert-grid {
    grid-template-columns: 1fr;
  }

  .sauna-slider__image {
    height: 340px;
  }
}

@media (width <= 767.98px) {
  .sauna-panel, .sauna-booking, .sauna-schedule {
    border-radius: 22px;
    padding: 22px;
  }

  .sauna-panel__head {
    gap: 12px;
  }

  .sauna-panel__icon {
    border-radius: 14px;
    flex-basis: 48px;
    width: 48px;
    height: 48px;
    font-size: 1.1rem;
  }

  .sauna-slider__image {
    height: 260px;
  }

  .sauna-booking__button {
    width: 100%;
  }

  .sauna-booking__phone {
    font-size: 1.28rem;
  }
}

.service-detail {
  --sd-surface: #fff;
  --sd-surface-2: #f8fbfc;
  --sd-border: #3c4a571f;
  --sd-border-strong: #00465538;
  --sd-text: #3c4a57;
  --sd-muted: #3c4a57bd;
  --sd-title: #004655;
  --sd-accent: #004655;
  --sd-accent-soft: #00465514;
  --sd-accent-soft-2: #0046550d;
  --sd-warning-border: #e5533d29;
  --sd-warning-icon: #e5533d;
  --sd-contrast: #fff;
  --sd-shadow: 0 18px 48px #0f172a0f;
  --sd-shadow-hover: 0 24px 60px #0f172a1a;
  --sd-radius-xl: 28px;
  --sd-radius-lg: 22px;
  --sd-radius-md: 18px;
  --sd-radius-sm: 14px;
}

.service-detail *, .service-detail :before, .service-detail :after {
  box-sizing: border-box;
}

.service-detail__hero {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 24px;
  margin-bottom: 24px;
  display: grid;
}

.service-detail__hero-media, .service-detail__hero-content, .service-detail-card, .service-detail-contact, .service-detail-summary {
  background: var(--sd-surface);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-xl);
  box-shadow: var(--sd-shadow);
}

.service-detail__hero-media {
  min-height: 420px;
  overflow: hidden;
}

.service-detail__hero-image {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}

.service-detail__hero-content {
  background: radial-gradient(circle at 100% 0, #0046551a, #0000 28%), linear-gradient(#fffffff5 0%, #f8fbfc 100%);
  flex-direction: column;
  justify-content: center;
  padding: 34px;
  display: flex;
}

.service-detail__eyebrow {
  background: var(--sd-accent-soft);
  min-height: 34px;
  color: var(--sd-accent);
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 999px;
  align-self: flex-start;
  align-items: center;
  margin-bottom: 14px;
  padding: 6px 14px;
  font-size: .8rem;
  font-weight: 800;
  display: inline-flex;
}

.service-detail__title {
  color: var(--sd-title);
  margin: 0 0 12px;
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 800;
  line-height: 1.15;
}

.service-detail__text {
  color: var(--sd-muted);
  margin: 0 0 22px;
  font-size: 1rem;
  line-height: 1.85;
}

.service-detail__actions {
  flex-wrap: wrap;
  gap: 12px;
  display: flex;
}

.service-detail__btn, .service-detail-link-btn, .service-detail-contact__button {
  border-radius: 14px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 18px;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: all .3s;
  display: inline-flex;
}

.service-detail__btn--primary, .service-detail-link-btn, .service-detail-contact__button {
  border: 1px solid var(--sd-accent);
  background: var(--sd-accent);
  color: var(--sd-contrast);
}

.service-detail__btn--primary:hover, .service-detail-link-btn:hover, .service-detail-contact__button:hover {
  color: var(--sd-contrast);
  background: color-mix(in srgb, var(--sd-accent), #fff 10%);
}

.service-detail__btn--secondary {
  border: 1px solid var(--sd-border-strong);
  background: var(--sd-surface);
  color: var(--sd-title);
}

.service-detail__btn--secondary:hover {
  border-color: var(--sd-accent);
  color: var(--sd-accent);
}

.service-detail__layout {
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: start;
  gap: 24px;
  display: grid;
}

.service-detail__main {
  gap: 24px;
  display: grid;
}

.service-detail__sidebar {
  gap: 24px;
  display: grid;
  position: sticky;
  top: 100px;
}

.service-detail-card {
  padding: 28px;
}

.service-detail-card__head {
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 22px;
  display: flex;
}

.service-detail-card__head--between {
  justify-content: space-between;
  gap: 20px;
}

.service-detail-card__head-group {
  align-items: flex-start;
  gap: 16px;
  display: flex;
}

.service-detail-card__icon {
  background: linear-gradient(135deg,
        var(--sd-accent-soft),
        #0046551f);
  width: 54px;
  height: 54px;
  color: var(--sd-accent);
  border-radius: 18px;
  flex: 0 0 54px;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem;
  display: inline-flex;
}

.service-detail-card__title {
  color: var(--sd-title);
  margin: 0 0 6px;
  font-size: 1.32rem;
  font-weight: 800;
  line-height: 1.35;
}

.service-detail-card__subtitle {
  color: var(--sd-muted);
  margin: 0;
  font-size: .94rem;
  line-height: 1.65;
}

.service-detail-card__body {
  color: var(--sd-text);
}

.service-detail-copy {
  margin: 0 0 16px;
  line-height: 1.85;
}

.service-detail-copy:last-child {
  margin-bottom: 0;
}

.service-detail-features {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.service-detail-feature {
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-md);
  background: linear-gradient(#f8fbfc 0%, #fff 100%);
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  display: flex;
}

.service-detail-feature:hover {
  border-color: #0046552e;
  transform: translateY(-4px);
  box-shadow: 0 16px 35px #0f172a0f;
}

.service-detail-feature__icon {
  background: var(--sd-accent-soft);
  width: 46px;
  height: 46px;
  color: var(--sd-accent);
  border-radius: 14px;
  flex: 0 0 46px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  display: inline-flex;
}

.service-detail-feature__content h3 {
  color: var(--sd-title);
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: 800;
}

.service-detail-feature__content p {
  margin: 0;
  line-height: 1.7;
}

.service-detail-slider {
  border-radius: 22px;
  position: relative;
  overflow: hidden;
}

.service-detail-slider__inner, .service-detail-slider__image {
  border-radius: 22px;
}

.service-detail-slider__image {
  object-fit: cover;
  width: 100%;
  height: 460px;
  display: block;
}

.service-detail-slider__indicators {
  margin-bottom: 18px;
}

.service-detail-slider__indicators [data-bs-target] {
  border-radius: 50%;
  width: 10px;
  height: 10px;
}

.service-detail-slider__control {
  width: 10%;
}

.service-detail-alerts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.service-detail-alert {
  border: 1px solid var(--sd-warning-border);
  border-radius: var(--sd-radius-md);
  background: linear-gradient(#fff5f2bf 0%, #fff 100%);
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  display: flex;
}

.service-detail-alert__icon {
  width: 46px;
  height: 46px;
  color: var(--sd-warning-icon);
  background: #e5533d14;
  border-radius: 14px;
  flex: 0 0 46px;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  display: inline-flex;
}

.service-detail-alert__content strong {
  color: var(--sd-title);
  margin-bottom: 6px;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
  display: block;
}

.service-detail-alert__content p {
  margin: 0;
  font-size: .95rem;
  line-height: 1.75;
}

.service-detail-contact, .service-detail-summary {
  padding: 28px;
}

.service-detail-contact__badge {
  background: var(--sd-accent-soft);
  min-height: 34px;
  color: var(--sd-accent);
  text-transform: uppercase;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 6px 12px;
  font-size: .8rem;
  font-weight: 800;
  display: inline-flex;
}

.service-detail-contact__title, .service-detail-summary__title {
  color: var(--sd-title);
  margin: 0 0 10px;
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.3;
}

.service-detail-contact__text {
  color: var(--sd-muted);
  margin: 0 0 18px;
  line-height: 1.75;
}

.service-detail-contact__phone {
  color: var(--sd-title);
  margin-bottom: 18px;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  display: inline-block;
}

.service-detail-summary__list {
  gap: 12px;
  display: grid;
}

.service-detail-summary__item {
  border: 1px solid var(--sd-border);
  background: var(--sd-surface-2);
  border-radius: 16px;
  flex-direction: column;
  gap: 5px;
  padding: 14px 16px;
  display: flex;
}

.service-detail-summary__key {
  color: var(--sd-muted);
  font-size: .85rem;
  line-height: 1.45;
}

.service-detail-summary__value {
  color: var(--sd-title);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
}

@media (width <= 1199.98px) {
  .service-detail__hero, .service-detail__layout {
    grid-template-columns: 1fr;
  }

  .service-detail__sidebar {
    position: static;
  }

  .service-detail-slider__image, .service-detail__hero-media {
    height: 380px;
    min-height: 380px;
  }
}

@media (width <= 991.98px) {
  .service-detail-features, .service-detail-alerts {
    grid-template-columns: 1fr;
  }

  .service-detail-card__head--between {
    flex-direction: column;
    align-items: flex-start;
  }

  .service-detail-slider__image, .service-detail__hero-media {
    height: 320px;
    min-height: 320px;
  }
}

@media (width <= 767.98px) {
  .service-detail__hero-content, .service-detail-card, .service-detail-contact, .service-detail-summary {
    border-radius: 22px;
    padding: 22px;
  }

  .service-detail__title {
    font-size: 1.8rem;
  }

  .service-detail-card__head, .service-detail-card__head-group {
    gap: 12px;
  }

  .service-detail-card__icon {
    border-radius: 14px;
    flex-basis: 48px;
    width: 48px;
    height: 48px;
    font-size: 1.1rem;
  }

  .service-detail__actions {
    flex-direction: column;
  }

  .service-detail__btn, .service-detail-link-btn, .service-detail-contact__button {
    width: 100%;
  }

  .service-detail-slider__image, .service-detail__hero-media {
    height: 240px;
    min-height: 240px;
  }

  .service-detail-contact__phone {
    font-size: 1.28rem;
  }
}

.announcements-page {
  --ap-surface: #fff;
  --ap-surface-2: #f8fbfc;
  --ap-border: #3c4a571f;
  --ap-border-strong: #00465533;
  --ap-text: #3c4a57;
  --ap-muted: #3c4a57bd;
  --ap-title: #004655;
  --ap-accent: #004655;
  --ap-accent-soft: #00465514;
  --ap-warning: #fff6f3;
  --ap-warning-border: #e5533d24;
  --ap-warning-icon: #e5533d;
  --ap-contrast: #fff;
  --ap-shadow: 0 18px 48px #0f172a0f;
  --ap-shadow-hover: 0 24px 60px #0f172a1a;
  --ap-radius-xl: 28px;
  --ap-radius-lg: 22px;
  --ap-radius-md: 18px;
  --ap-radius-sm: 14px;
}

.announcements-page *, .announcements-page :before, .announcements-page :after {
  box-sizing: border-box;
}

.announcements-page__hero {
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-xl);
  box-shadow: var(--ap-shadow);
  background: radial-gradient(circle at 100% 0, #0046551a, #0000 28%), linear-gradient(#fffffff5 0%, #f8fbfc 100%);
  padding: 34px;
  position: relative;
  overflow: hidden;
}

.announcements-page__eyebrow {
  background: var(--ap-accent-soft);
  min-height: 34px;
  color: var(--ap-accent);
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 999px;
  align-items: center;
  margin-bottom: 14px;
  padding: 6px 14px;
  font-size: .8rem;
  font-weight: 800;
  display: inline-flex;
}

.announcements-page__title {
  color: var(--ap-title);
  margin: 0 0 12px;
  font-size: clamp(2rem, 3vw, 2.7rem);
  font-weight: 800;
  line-height: 1.15;
}

.announcements-page__text {
  max-width: 900px;
  color: var(--ap-muted);
  margin: 0;
  font-size: 1rem;
  line-height: 1.85;
}

.announcements-empty {
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-xl);
  box-shadow: var(--ap-shadow);
  background: linear-gradient(#f8fbfc 0%, #fff 100%);
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 24px;
  padding: 26px 28px;
  display: flex;
}

.announcements-empty__icon {
  background: var(--ap-accent-soft);
  width: 56px;
  height: 56px;
  color: var(--ap-accent);
  border-radius: 18px;
  flex: 0 0 56px;
  justify-content: center;
  align-items: center;
  font-size: 1.3rem;
  display: inline-flex;
}

.announcements-empty__content h2 {
  color: var(--ap-title);
  margin: 0 0 8px;
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.35;
}

.announcements-empty__content p {
  color: var(--ap-muted);
  margin: 0;
  line-height: 1.8;
}

.announcements-list {
  gap: 18px;
  display: grid;
}

.announcement-card {
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius-xl);
  background: var(--ap-surface);
  box-shadow: var(--ap-shadow);
  padding: 24px 26px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}

.announcement-card:hover {
  border-color: var(--ap-border-strong);
  box-shadow: var(--ap-shadow-hover);
  transform: translateY(-4px);
}

.announcement-card__top {
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 16px;
  display: flex;
}

.announcement-card__icon {
  background: var(--ap-accent-soft);
  width: 50px;
  height: 50px;
  color: var(--ap-accent);
  border-radius: 16px;
  flex: 0 0 50px;
  justify-content: center;
  align-items: center;
  font-size: 1.15rem;
  display: inline-flex;
}

.announcement-card__meta {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  display: flex;
}

.announcement-card__badge, .announcement-card__date {
  border-radius: 999px;
  align-items: center;
  min-height: 34px;
  padding: 6px 12px;
  font-size: .82rem;
  line-height: 1;
  display: inline-flex;
}

.announcement-card__badge {
  color: #fff;
  background: #004655e6;
  font-weight: 700;
}

.announcement-card__badge--soft {
  color: var(--ap-accent);
  background: #00465514;
}

.announcement-card__badge--neutral {
  color: var(--ap-text);
  background: #3c4a5714;
}

.announcement-card__date {
  background: var(--ap-surface-2);
  color: var(--ap-muted);
  border: 1px solid var(--ap-border);
  font-weight: 600;
}

.announcement-card__body {
  padding-left: 68px;
}

.announcement-card__title {
  color: var(--ap-title);
  margin: 0 0 10px;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.45;
}

.announcement-card__text {
  color: var(--ap-text);
  margin: 0;
  line-height: 1.85;
}

@media (width <= 767.98px) {
  .announcements-page__hero, .announcements-empty, .announcement-card {
    border-radius: 22px;
    padding: 22px;
  }

  .announcements-page__title {
    font-size: 1.8rem;
  }

  .announcements-empty {
    gap: 14px;
  }

  .announcements-empty__icon, .announcement-card__icon {
    border-radius: 14px;
    flex-basis: 48px;
    width: 48px;
    height: 48px;
    font-size: 1.1rem;
  }

  .announcement-card__top {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .announcement-card__meta {
    justify-content: flex-start;
  }

  .announcement-card__body {
    padding-left: 0;
  }
}

.vacancies-page {
  --vp-surface: #fff;
  --vp-surface-2: #f8fbfc;
  --vp-border: #3c4a571f;
  --vp-border-strong: #00465533;
  --vp-text: #3c4a57;
  --vp-muted: #3c4a57bd;
  --vp-title: #004655;
  --vp-accent: #004655;
  --vp-accent-soft: #00465514;
  --vp-contrast: #fff;
  --vp-shadow: 0 18px 48px #0f172a0f;
  --vp-shadow-hover: 0 24px 60px #0f172a1a;
  --vp-radius-xl: 28px;
  --vp-radius-lg: 22px;
  --vp-radius-md: 18px;
  --vp-radius-sm: 14px;
}

.vacancies-page *, .vacancies-page :before, .vacancies-page :after {
  box-sizing: border-box;
}

.vacancies-page__hero {
  border: 1px solid var(--vp-border);
  border-radius: var(--vp-radius-xl);
  box-shadow: var(--vp-shadow);
  background: radial-gradient(circle at 100% 0, #0046551a, #0000 28%), linear-gradient(#fffffff5 0%, #f8fbfc 100%);
  margin-bottom: 24px;
  padding: 34px;
  position: relative;
  overflow: hidden;
}

.vacancies-page__eyebrow {
  background: var(--vp-accent-soft);
  min-height: 34px;
  color: var(--vp-accent);
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 999px;
  align-items: center;
  margin-bottom: 14px;
  padding: 6px 14px;
  font-size: .8rem;
  font-weight: 800;
  display: inline-flex;
}

.vacancies-page__title {
  color: var(--vp-title);
  margin: 0 0 12px;
  font-size: clamp(2rem, 3vw, 2.7rem);
  font-weight: 800;
  line-height: 1.15;
}

.vacancies-page__text {
  max-width: 900px;
  color: var(--vp-muted);
  margin: 0;
  font-size: 1rem;
  line-height: 1.85;
}

.vacancies-empty {
  border: 1px solid var(--vp-border);
  border-radius: var(--vp-radius-xl);
  box-shadow: var(--vp-shadow);
  background: linear-gradient(#f8fbfc 0%, #fff 100%);
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 24px;
  padding: 26px 28px;
  display: flex;
}

.vacancies-empty__icon {
  background: var(--vp-accent-soft);
  width: 56px;
  height: 56px;
  color: var(--vp-accent);
  border-radius: 18px;
  flex: 0 0 56px;
  justify-content: center;
  align-items: center;
  font-size: 1.3rem;
  display: inline-flex;
}

.vacancies-empty__content h2 {
  color: var(--vp-title);
  margin: 0 0 8px;
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.35;
}

.vacancies-empty__content p {
  color: var(--vp-muted);
  margin: 0;
  line-height: 1.8;
}

.vacancies-list {
  gap: 18px;
  display: grid;
}

.vacancy-card {
  border: 1px solid var(--vp-border);
  border-radius: var(--vp-radius-xl);
  background: var(--vp-surface);
  box-shadow: var(--vp-shadow);
  padding: 24px 26px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}

.vacancy-card:hover {
  border-color: var(--vp-border-strong);
  box-shadow: var(--vp-shadow-hover);
  transform: translateY(-4px);
}

.vacancy-card__top {
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 16px;
  display: flex;
}

.vacancy-card__icon {
  background: var(--vp-accent-soft);
  width: 50px;
  height: 50px;
  color: var(--vp-accent);
  border-radius: 16px;
  flex: 0 0 50px;
  justify-content: center;
  align-items: center;
  font-size: 1.15rem;
  display: inline-flex;
}

.vacancy-card__meta {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  display: flex;
}

.vacancy-card__badge, .vacancy-card__status {
  border-radius: 999px;
  align-items: center;
  min-height: 34px;
  padding: 6px 12px;
  font-size: .82rem;
  line-height: 1;
  display: inline-flex;
}

.vacancy-card__badge {
  color: #fff;
  background: #004655e6;
  font-weight: 700;
}

.vacancy-card__badge--soft {
  color: var(--vp-accent);
  background: #00465514;
}

.vacancy-card__badge--neutral {
  color: var(--vp-text);
  background: #3c4a5714;
}

.vacancy-card__status {
  background: var(--vp-surface-2);
  color: var(--vp-muted);
  border: 1px solid var(--vp-border);
  font-weight: 600;
}

.vacancy-card__body {
  padding-left: 68px;
}

.vacancy-card__title {
  color: var(--vp-title);
  margin: 0 0 10px;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.45;
}

.vacancy-card__text {
  color: var(--vp-text);
  margin: 0 0 16px;
  line-height: 1.85;
}

.vacancy-card__info {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.vacancy-card__info-item {
  border: 1px solid var(--vp-border);
  background: var(--vp-surface-2);
  border-radius: 14px;
  padding: 12px 14px;
}

.vacancy-card__info-label {
  color: var(--vp-muted);
  margin-bottom: 5px;
  font-size: .8rem;
  line-height: 1.4;
  display: block;
}

.vacancy-card__info-value {
  color: var(--vp-title);
  font-size: .94rem;
  font-weight: 800;
  line-height: 1.45;
  display: block;
}

@media (width <= 767.98px) {
  .vacancies-page__hero, .vacancies-empty, .vacancy-card {
    border-radius: 22px;
    padding: 22px;
  }

  .vacancies-page__title {
    font-size: 1.8rem;
  }

  .vacancies-empty {
    gap: 14px;
  }

  .vacancies-empty__icon, .vacancy-card__icon {
    border-radius: 14px;
    flex-basis: 48px;
    width: 48px;
    height: 48px;
    font-size: 1.1rem;
  }

  .vacancy-card__top {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .vacancy-card__meta {
    justify-content: flex-start;
  }

  .vacancy-card__body {
    padding-left: 0;
  }

  .vacancy-card__info {
    grid-template-columns: 1fr;
  }
}

.reviews-page {
  --rp-surface: #fff;
  --rp-surface-2: #f8fbfc;
  --rp-border: #3c4a571f;
  --rp-border-strong: #00465538;
  --rp-text: #3c4a57;
  --rp-muted: #3c4a57bd;
  --rp-title: #004655;
  --rp-accent: #004655;
  --rp-accent-soft: #00465514;
  --rp-accent-soft-2: #0046550d;
  --rp-gold: #f4b400;
  --rp-gold-soft: #f4b4001f;
  --rp-shadow: 0 18px 48px #0f172a0f;
  --rp-shadow-hover: 0 24px 60px #0f172a1a;
  --rp-radius-xl: 28px;
  --rp-radius-lg: 22px;
  --rp-radius-md: 18px;
  --rp-radius-sm: 14px;
}

.reviews-page *, .reviews-page :before, .reviews-page :after {
  box-sizing: border-box;
}

.reviews-page__hero {
  grid-template-columns: minmax(0, 1.2fr) 360px;
  gap: 24px;
  margin-bottom: 24px;
  display: grid;
}

.reviews-page__hero-main, .reviews-page__hero-side, .reviews-empty, .review-card, .reviews-cta, .reviews-stat-box {
  background: var(--rp-surface);
  border: 1px solid var(--rp-border);
  border-radius: var(--rp-radius-xl);
  box-shadow: var(--rp-shadow);
}

.reviews-page__hero-main {
  background: radial-gradient(circle at 100% 0, #0046551a, #0000 28%), linear-gradient(#fffffff5 0%, #f8fbfc 100%);
  padding: 34px;
}

.reviews-page__hero-side {
  align-items: stretch;
  padding: 24px;
  display: flex;
}

.reviews-page__eyebrow {
  background: var(--rp-accent-soft);
  min-height: 34px;
  color: var(--rp-accent);
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 999px;
  align-items: center;
  margin-bottom: 14px;
  padding: 6px 14px;
  font-size: .8rem;
  font-weight: 800;
  display: inline-flex;
}

.reviews-page__title {
  color: var(--rp-title);
  margin: 0 0 12px;
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 800;
  line-height: 1.15;
}

.reviews-page__text {
  max-width: 900px;
  color: var(--rp-muted);
  margin: 0 0 22px;
  font-size: 1rem;
  line-height: 1.85;
}

.reviews-page__hero-actions {
  flex-wrap: wrap;
  gap: 12px;
  display: flex;
}

.reviews-page__btn {
  border-radius: 14px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 18px;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: all .3s;
  display: inline-flex;
}

.reviews-page__btn--primary {
  border: 1px solid var(--rp-accent);
  background: var(--rp-accent);
  color: #fff;
}

.reviews-page__btn--primary:hover {
  color: #fff;
  background: color-mix(in srgb, var(--rp-accent), #fff 10%);
}

.reviews-page__btn--secondary {
  border: 1px solid var(--rp-border-strong);
  background: var(--rp-surface);
  color: var(--rp-title);
}

.reviews-page__btn--secondary:hover {
  border-color: var(--rp-accent);
  color: var(--rp-accent);
}

.reviews-score-card {
  border: 1px solid var(--rp-border);
  background: linear-gradient(#f8fbfc 0%, #fff 100%);
  border-radius: 22px;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  padding: 24px;
  display: flex;
}

.reviews-score-card__top {
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  display: flex;
}

.reviews-score-card__icon {
  background: var(--rp-gold-soft);
  width: 56px;
  height: 56px;
  color: var(--rp-gold);
  border-radius: 18px;
  flex: 0 0 56px;
  justify-content: center;
  align-items: center;
  font-size: 1.35rem;
  display: inline-flex;
}

.reviews-score-card__label {
  color: var(--rp-muted);
  margin-bottom: 4px;
  font-size: .9rem;
  line-height: 1.5;
  display: block;
}

.reviews-score-card__value {
  color: var(--rp-title);
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1;
}

.reviews-score-card__stars {
  color: var(--rp-gold);
  gap: 8px;
  margin-bottom: 16px;
  font-size: 1.15rem;
  display: flex;
}

.reviews-score-card__meta {
  color: var(--rp-muted);
  font-size: .92rem;
  line-height: 1.65;
}

.reviews-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 24px;
  display: grid;
}

.reviews-stat-box {
  align-items: center;
  gap: 14px;
  padding: 18px;
  display: flex;
}

.reviews-stat-box__icon {
  background: var(--rp-accent-soft);
  width: 50px;
  height: 50px;
  color: var(--rp-accent);
  border-radius: 16px;
  flex: 0 0 50px;
  justify-content: center;
  align-items: center;
  font-size: 1.15rem;
  display: inline-flex;
}

.reviews-stat-box__label {
  color: var(--rp-muted);
  margin-bottom: 5px;
  font-size: .82rem;
  line-height: 1.4;
  display: block;
}

.reviews-stat-box__value {
  color: var(--rp-title);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
  display: block;
}

.reviews-empty {
  background: linear-gradient(#f8fbfc 0%, #fff 100%);
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 24px;
  padding: 26px 28px;
  display: flex;
}

.reviews-empty__icon {
  background: var(--rp-accent-soft);
  width: 56px;
  height: 56px;
  color: var(--rp-accent);
  border-radius: 18px;
  flex: 0 0 56px;
  justify-content: center;
  align-items: center;
  font-size: 1.3rem;
  display: inline-flex;
}

.reviews-empty__content h2 {
  color: var(--rp-title);
  margin: 0 0 8px;
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.35;
}

.reviews-empty__content p {
  color: var(--rp-muted);
  margin: 0;
  line-height: 1.8;
}

.reviews-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.review-card {
  flex-direction: column;
  min-height: 100%;
  padding: 24px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  display: flex;
}

.review-card:hover {
  border-color: var(--rp-border-strong);
  box-shadow: var(--rp-shadow-hover);
  transform: translateY(-5px);
}

.review-card__head {
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
  display: flex;
}

.review-card__author {
  align-items: center;
  gap: 12px;
  min-width: 0;
  display: flex;
}

.review-card__avatar {
  background: linear-gradient(135deg,
        var(--rp-accent-soft),
        #00465529);
  width: 48px;
  height: 48px;
  color: var(--rp-accent);
  border-radius: 50%;
  flex: 0 0 48px;
  justify-content: center;
  align-items: center;
  font-size: 1rem;
  font-weight: 800;
  display: inline-flex;
}

.review-card__author-meta {
  min-width: 0;
}

.review-card__name {
  color: var(--rp-title);
  margin: 0 0 4px;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.4;
}

.review-card__date {
  color: var(--rp-muted);
  font-size: .84rem;
  line-height: 1.4;
  display: block;
}

.review-card__rating {
  color: var(--rp-gold);
  flex: none;
  gap: 4px;
  font-size: .95rem;
  display: flex;
}

.review-card__body {
  flex: auto;
}

.review-card__text {
  color: var(--rp-text);
  margin: 0;
  line-height: 1.85;
}

.review-card__footer {
  border-top: 1px solid var(--rp-border);
  margin-top: 18px;
  padding-top: 16px;
}

.review-card__source {
  color: var(--rp-muted);
  align-items: center;
  gap: 8px;
  font-size: .88rem;
  font-weight: 700;
  display: inline-flex;
}

.reviews-cta {
  background: radial-gradient(circle at 100% 0, #00465514, #0000 28%), linear-gradient(#fff 0%, #f8fbfc 100%);
  margin-top: 24px;
  padding: 28px;
}

.reviews-cta__content {
  align-items: center;
  gap: 18px;
  display: flex;
}

.reviews-cta__icon {
  background: var(--rp-accent-soft);
  width: 58px;
  height: 58px;
  color: var(--rp-accent);
  border-radius: 18px;
  flex: 0 0 58px;
  justify-content: center;
  align-items: center;
  font-size: 1.35rem;
  display: inline-flex;
}

.reviews-cta__text h2 {
  color: var(--rp-title);
  margin: 0 0 8px;
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.35;
}

.reviews-cta__text p {
  color: var(--rp-muted);
  margin: 0;
  line-height: 1.8;
}

.reviews-load-more {
  text-align: center;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: 26px;
  display: flex;
}

.reviews-load-more__status {
  color: var(--rp-muted);
  margin: 0;
  font-size: .9rem;
}

.reviews-load-more__button {
  cursor: pointer;
  border: 0;
}

.reviews-load-more__button:disabled {
  cursor: wait;
  opacity: .75;
}

.reviews-load-more__button.is-loading i {
  animation: .8s linear infinite reviews-spin;
}

.review-card--new {
  animation: .35s both review-reveal;
}

@keyframes reviews-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes review-reveal {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
}

@media (width <= 1199.98px) {
  .reviews-page__hero {
    grid-template-columns: 1fr;
  }

  .reviews-stats, .reviews-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .reviews-load-more__button.is-loading i, .review-card--new {
    animation: none;
  }
}

@media (width <= 767.98px) {
  .reviews-page__hero-main, .reviews-page__hero-side, .reviews-empty, .review-card, .reviews-cta, .reviews-stat-box {
    border-radius: 22px;
    padding: 22px;
  }

  .reviews-page__title {
    font-size: 1.85rem;
  }

  .reviews-page__hero-actions {
    flex-direction: column;
  }

  .reviews-page__btn {
    width: 100%;
  }

  .reviews-stats, .reviews-list {
    grid-template-columns: 1fr;
  }

  .reviews-empty, .reviews-cta__content {
    gap: 14px;
  }

  .reviews-empty {
    flex-direction: column;
  }

  .review-card__head {
    flex-direction: column;
    align-items: flex-start;
  }

  .reviews-score-card__value {
    font-size: 2.1rem;
  }
}

.services-extra__title {
  opacity: .7;
  font-weight: 600;
}

.services-extra__item {
  color: var(--cg-text-muted, #6c757d);
  background: #fff9;
  border-radius: 50px;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  font-size: 14px;
  text-decoration: none;
  transition: all .25s;
  display: inline-flex;
}

.services-extra__item i {
  font-size: 16px;
}

.services-extra__item:hover {
  color: var(--cg-primary, #0d6efd);
  background: #0d6efd14;
  transform: translateY(-2px);
}

.room-detail {
  padding: 40px 0;
}

.room-detail-label, .section-eyebrow {
  color: #e0a800;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 12px;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
}

.room-detail-hero {
  padding: 0;
  overflow: hidden;
}

.room-detail-media {
  border-radius: 18px 18px 0 0;
  position: relative;
  overflow: hidden;
}

.room-detail-media img {
  object-fit: cover;
  width: 100%;
  height: 520px;
}

.room-detail-price {
  -webkit-backdrop-filter: blur(14px);
  box-shadow: var(--sh2);
  z-index: 2;
  color: var(--heading-color);
  background: #ffffffdb;
  border: 1px solid #ffffffa6;
  border-radius: 14px;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  display: flex;
  position: absolute;
  top: 16px;
  right: 16px;
}

.room-detail-price strong {
  font-size: 34px;
  line-height: 1;
}

.room-detail-price span {
  font-size: 13px;
  font-weight: 600;
}

.room-detail-tags {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
  position: absolute;
  bottom: 22px;
  left: 22px;
  right: 22px;
}

.room-detail-tags span {
  color: var(--heading-color);
  backdrop-filter: blur(12px);
  background: #ffffffdb;
  border-radius: 999px;
  padding: 9px 13px;
  font-size: 13px;
  font-weight: 700;
}

.room-detail-body {
  padding: 32px;
}

.room-detail-body h2, .room-detail-card h2, .room-detail-cta h2 {
  color: var(--heading-color);
  font-weight: 700;
}

.room-detail-body p, .room-detail-card p, .room-detail-cta p {
  color: var(--default-color);
  line-height: 1.75;
}

.room-detail-kpis {
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 24px 0 0;
  display: grid;
}

.room-detail-kpis div {
  background: color-mix(in srgb, var(--accent-color), transparent 94%);
  border-radius: 18px;
  padding: 17px;
}

.room-detail-kpis span {
  color: var(--default-color);
  margin-bottom: 5px;
  font-size: 13px;
  display: block;
}

.room-detail-kpis strong {
  color: var(--heading-color);
  font-size: 20px;
}

.room-detail-link {
  color: var(--heading-color);
  align-items: center;
  gap: 8px;
  font-weight: 700;
  display: inline-flex;
}

.room-detail-link:hover {
  color: #e0a800;
}

.room-card-head {
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 22px;
  display: flex;
}

.room-muted {
  color: var(--default-color);
  font-size: 14px;
}

.room-plan-grid, .room-amenities-columns {
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  display: grid;
}

.room-plan-grid--single {
  grid-template-columns: 1fr;
}

.room-plan-item {
  background: color-mix(in srgb, var(--accent-color), transparent 95%);
  border-radius: 22px;
  padding: 22px;
}

.room-plan-badge {
  color: #fff;
  background: var(--accent-color);
  border-radius: 999px;
  margin-bottom: 12px;
  padding: 7px 11px;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
}

.room-plan-item h3, .room-amenities-columns h3, .room-booking-widget h3, .room-recommend-widget h3, .room-contact-widget h3 {
  color: var(--heading-color);
  font-size: 21px;
  font-weight: 700;
}

.room-plan-item ul, .room-check-list {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.room-plan-item li, .room-check-list li {
  color: var(--default-color);
  margin-bottom: 11px;
  padding-left: 26px;
  line-height: 1.55;
  position: relative;
}

.room-plan-item li:before, .room-check-list li:before {
  content: "";
  color: #e0a800;
  font-family: bootstrap-icons;
  font-weight: 400;
  position: absolute;
  top: 0;
  left: 0;
}

.room-gallery-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
  display: grid;
}

.room-gallery-grid a {
  border-radius: 18px;
  display: block;
  overflow: hidden;
}

.room-gallery-grid img {
  object-fit: cover;
  width: 100%;
  height: 170px;
  transition: transform .35s;
}

.room-gallery-grid a:hover img {
  transform: scale(1.06);
}

.room-amenities-columns > div {
  background: color-mix(in srgb, var(--accent-color), transparent 95%);
  border-radius: 22px;
  padding: 24px;
}

.room-detail-cta {
  background: linear-gradient(135deg, var(--accent-color), #0b1f16);
  border-radius: 26px;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 30px;
  display: flex;
}

.room-detail-cta h2, .room-detail-cta p {
  color: #fff;
}

.room-sidebar {
  position: sticky;
  top: 120px;
}

.room-booking-widget h3, .room-recommend-widget h3, .room-contact-widget h3 {
  margin-bottom: 20px;
}

.room-form-group {
  margin-bottom: 16px;
}

.room-form-group label {
  color: var(--heading-color);
  margin-bottom: 7px;
  font-size: 13px;
  font-weight: 700;
  display: block;
}

.room-form-group input, .room-form-group select {
  border: 1px solid color-mix(in srgb, var(--accent-color), transparent 82%);
  width: 100%;
  height: 48px;
  color: var(--default-color);
  background: #fff;
  border-radius: 14px;
  outline: none;
  padding: 0 14px;
}

.room-form-group input:focus, .room-form-group select:focus {
  border-color: var(--accent-color);
}

.room-sidebar-room {
  border-bottom: 1px solid
        color-mix(in srgb, var(--accent-color), transparent 88%);
  gap: 13px;
  padding: 13px 0;
  display: flex;
}

.room-sidebar-room:last-child {
  border-bottom: 0;
}

.room-sidebar-room img {
  object-fit: cover;
  border-radius: 14px;
  width: 84px;
  height: 70px;
}

.room-sidebar-room strong {
  color: var(--heading-color);
  font-size: 14px;
  line-height: 1.35;
  display: block;
}

.room-sidebar-room span {
  color: #e0a800;
  margin-top: 5px;
  font-size: 13px;
  font-weight: 700;
  display: block;
}

.room-contact-widget p {
  color: var(--default-color);
  line-height: 1.65;
}

@media (width <= 991px) {
  .room-sidebar {
    position: static;
  }

  .room-detail-media img {
    height: 420px;
  }
}

@media (width <= 767px) {
  .room-card-head, .room-detail-cta {
    flex-direction: column;
    align-items: flex-start;
  }

  .room-plan-grid, .room-amenities-columns, .room-detail-kpis {
    grid-template-columns: 1fr;
  }

  .room-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .room-detail-body {
    padding: 24px;
  }
}

@media (width <= 575px) {
  .room-detail-media img {
    height: 310px;
  }

  .room-detail-price {
    top: 14px;
    right: 14px;
  }

  .room-detail-price strong {
    font-size: 26px;
  }

  .room-detail-tags {
    bottom: 14px;
    left: 14px;
    right: 14px;
  }

  .room-gallery-grid {
    grid-template-columns: 1fr;
  }

  .room-gallery-grid img {
    height: 220px;
  }
}

.cg-booking-widget {
  border: 1px solid #19452f1f;
  box-shadow: 0 20px 45px #0b1f1614;
}

.cg-booking-grid {
  gap: 16px;
  display: grid;
}

.cg-field label, .cg-check span {
  color: #173d2a;
  margin-bottom: 7px;
  font-size: 13px;
  font-weight: 700;
  display: block;
}

.cg-field input, .cg-field select {
  color: #10261b;
  background: #fff;
  border: 1px solid #173d2a2e;
  border-radius: 14px;
  outline: none;
  width: 100%;
  height: 48px;
  padding: 0 14px;
  transition: all .25s;
}

.cg-field input:focus, .cg-field select:focus {
  border-color: #b98b3f;
  box-shadow: 0 0 0 4px #b98b3f1f;
}

.cg-check {
  cursor: pointer;
  background: #fbfaf6;
  border: 1px solid #173d2a24;
  border-radius: 14px;
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  display: flex;
}

.cg-check input {
  accent-color: #173d2a;
  width: 18px;
  height: 18px;
}

.cg-check span {
  margin: 0;
}

.cg-gallery-main {
  background: #f5f2ea;
  border-radius: 22px;
  position: relative;
  overflow: hidden;
}

.cg-gallery-main img {
  object-fit: cover;
  width: 100%;
  height: 430px;
  transition: transform .35s;
  display: block;
}

.cg-gallery-main:hover img {
  transform: scale(1.03);
}

.cg-gallery-thumbs {
  margin-top: 16px;
}

.cg-gallery-thumbs .swiper-slide {
  width: 120px;
}

.cg-gallery-thumbs button {
  cursor: pointer;
  opacity: .72;
  background: none;
  border: 2px solid #0000;
  border-radius: 14px;
  width: 100%;
  padding: 0;
  transition: all .25s;
  overflow: hidden;
}

.cg-gallery-thumbs button img {
  object-fit: cover;
  width: 100%;
  height: 82px;
  display: block;
}

.cg-gallery-thumbs button.cg-active, .cg-gallery-thumbs button:hover {
  opacity: 1;
  border-color: #b98b3f;
}

@media (width <= 768px) {
  .cg-gallery-main img {
    height: 280px;
  }

  .cg-gallery-thumbs .swiper-slide {
    width: 96px;
  }

  .cg-gallery-thumbs button img {
    height: 68px;
  }
}

.cg-booking-widget {
  border: 1px solid var(--border-color, #ddd);
  background: #fff;
  border-radius: 22px;
  width: 100%;
  padding: 68px 76px 62px;
}

.cg-booking-divider {
  background: #0000000f;
  border-radius: 4px;
  width: 100%;
  height: 4px;
  overflow: hidden;
}

#cgBookingForm {
  margin-top: 38px;
}

.cg-booking-field {
  margin-bottom: 20px;
}

.cg-input-wrap {
  width: 100%;
  position: relative;
}

.cg-booking-field select {
  appearance: auto;
  cursor: pointer;
}

.cg-booking-option {
  margin: 12px 0;
}

.cg-checkbox {
  cursor: pointer;
  color: var(--default-color);
  align-items: center;
  gap: 8px;
  font-size: 20px;
  line-height: 1.25;
  display: inline-flex;
}

.cg-checkbox-title {
  display: inline-block;
}

.cg-booking-button {
  background: var(--accent-color);
  color: #fff;
  cursor: pointer;
  border: 0;
  justify-content: center;
  align-items: center;
  min-width: 160px;
  height: 48px;
  margin-top: 2px;
  padding: 0 18px;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  transition: all .25s;
  display: inline-flex;
}

@media (width <= 991px) {
  .cg-booking-widget {
    padding: 48px 42px;
  }
}

@media (width <= 575px) {
  .cg-booking-widget {
    border-radius: 18px;
    padding: 34px 24px;
  }

  .cg-input-wrap input, .cg-booking-field select {
    height: 62px;
    font-size: 17px;
  }

  .cg-booking-field label, .cg-checkbox {
    font-size: 17px;
  }
}

.cg-booking-widget {
  border: 1px solid var(--border-color, #e2e2e2);
  background: #fff;
  border-radius: 22px;
  padding: 34px 36px 36px;
}

.cg-booking-header {
  margin-bottom: 28px;
}

.cg-booking-divider {
  background: #0000000f;
  border-radius: 10px;
  width: 210px;
  height: 4px;
}

.cg-booking-divider span {
  background: var(--accent-color);
  border-radius: 10px;
  width: 64px;
  height: 100%;
  display: block;
}

#cgBookingForm {
  gap: 16px;
  display: grid;
}

.cg-booking-field {
  margin: 0;
}

.cg-booking-field label {
  color: var(--accent-color);
  margin-bottom: 8px;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.2;
  display: block;
}

.cg-input-wrap input, .cg-booking-field select {
  border: 1px solid var(--border-color, #dedede);
  width: 100%;
  height: 56px;
  color: var(--default-color);
  box-shadow: none;
  background: #fff;
  border-radius: 0;
  outline: none;
  padding: 0 18px;
  font-size: 17px;
  font-weight: 400;
}

.cg-input-wrap input {
  cursor: pointer;
}

.cg-input-wrap input:focus, .cg-booking-field select:focus {
  border-color: var(--accent-color);
}

.cg-booking-field select {
  cursor: pointer;
}

.cg-checkbox {
  color: var(--default-color);
  cursor: pointer;
  align-items: center;
  gap: 9px;
  margin: -2px 0;
  font-size: 16px;
  line-height: 1.3;
  display: inline-flex;
}

.cg-checkbox input {
  width: 15px;
  height: 15px;
  accent-color: var(--accent-color);
  margin: 0;
}

.cg-hidden {
  display: none !important;
}

.cg-booking-button {
  background: var(--accent-color);
  color: #fff;
  cursor: pointer;
  border: 0;
  border-radius: 0;
  width: 100%;
  height: 54px;
  margin-top: 4px;
  font-size: 17px;
  font-weight: 600;
  transition: all .25s;
}

.cg-booking-button:hover {
  opacity: .92;
}

@media (width <= 1199px) {
  .cg-booking-widget {
    padding: 30px 28px;
  }
}

@media (width <= 575px) {
  .cg-booking-widget {
    padding: 28px 22px;
  }

  .cg-input-wrap input, .cg-booking-field select {
    height: 52px;
    font-size: 16px;
  }
}

.cg-premium-check {
  cursor: pointer;
  user-select: none;
  align-items: center;
  gap: 12px;
  display: flex;
}

.cg-premium-check input {
  display: none;
}

.cg-premium-check-box {
  background: #fff;
  border: 1px solid #00000026;
  border-radius: 6px;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  transition: all .25s;
  position: relative;
}

.cg-premium-check:hover .cg-premium-check-box {
  border-color: var(--accent-color);
}

.cg-premium-check input:checked + .cg-premium-check-box {
  background: var(--accent-color);
  border-color: var(--accent-color);
}

.cg-premium-check input:checked + .cg-premium-check-box:after {
  content: "";
  border: 2px solid #fff;
  border-width: 0 2px 2px 0;
  width: 5px;
  height: 10px;
  position: absolute;
  top: 3px;
  left: 7px;
  transform: rotate(45deg);
}

.cg-premium-check-text {
  color: var(--default-color);
  font-size: 16px;
  font-weight: 500;
}

.cg-premium-select {
  position: relative;
}

.cg-premium-select:after {
  content: "";
  border-right: 2px solid var(--accent-color);
  border-bottom: 2px solid var(--accent-color);
  pointer-events: none;
  width: 8px;
  height: 8px;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-70%) rotate(45deg);
}

.cg-premium-select select {
  width: 100%;
  height: 56px;
  color: var(--default-color);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: #fff;
  border: 1px solid #e1e5e8;
  border-radius: 12px;
  padding: 0 50px 0 18px;
  font-size: 16px;
  font-weight: 500;
  transition: all .25s;
}

.cg-premium-select select:hover {
  border-color: #0000002e;
}

.cg-premium-select select:focus {
  border-color: var(--accent-color);
  outline: none;
}

.cg-booking-header h2 {
  color: var(--heading-color);
  font-size: 1.53333rem;
  font-weight: 700;
}

.cg-room-gallery {
  background: #fff;
  border: 1px solid #0000000f;
  border-radius: 28px;
  padding: 30px 34px 34px;
  position: relative;
  overflow: hidden;
}

.cg-gallery-head {
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-bottom: 26px;
  display: flex;
}

.cg-gallery-head h2 {
  color: var(--heading-color);
  margin: 0;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.2;
}

.cg-gallery-head span {
  color: var(--default-color);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
}

.cg-gallery-slider {
  margin-left: -2px;
  margin-right: -2px;
  padding: 0 2px;
  overflow: hidden;
}

.cg-gallery-slider .swiper-wrapper {
  align-items: stretch;
}

.cg-gallery-slider .swiper-slide {
  width: 270px;
  height: auto;
}

.cg-gallery-item {
  background: #0000000a;
  border-radius: 24px;
  width: 100%;
  height: 235px;
  display: block;
  overflow: hidden;
}

.cg-gallery-item img {
  object-fit: cover;
  border-radius: 24px;
  width: 100%;
  height: 100%;
  transition: transform .35s;
  display: block;
}

.cg-gallery-item:hover img {
  transform: scale(1.04);
}

.cg-gallery-nav {
  justify-content: flex-end;
  gap: 12px;
  margin-top: 24px;
  padding-right: 8px;
  display: flex;
}

.cg-gallery-prev, .cg-gallery-next {
  width: 54px;
  height: 54px;
  color: var(--accent-color);
  cursor: pointer;
  background: #fff;
  border: 1px solid #00000014;
  border-radius: 17px;
  justify-content: center;
  align-items: center;
  transition: all .25s;
  display: inline-flex;
}

.cg-gallery-prev i, .cg-gallery-next i {
  font-size: 23px;
  line-height: 1;
}

.cg-gallery-prev:hover, .cg-gallery-next:hover {
  background: var(--accent-color);
  border-color: var(--accent-color);
  color: #fff;
}

.cg-gallery-prev.swiper-button-disabled, .cg-gallery-next.swiper-button-disabled {
  opacity: .35;
  cursor: default;
  pointer-events: none;
}

@media (width <= 1199px) {
  .cg-room-gallery {
    padding: 28px 28px 32px;
  }

  .cg-gallery-slider .swiper-slide {
    width: 245px;
  }

  .cg-gallery-item {
    height: 215px;
  }
}

@media (width <= 575px) {
  .cg-room-gallery {
    border-radius: 22px;
    padding: 22px 18px 26px;
  }

  .cg-gallery-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-bottom: 20px;
  }

  .cg-gallery-head h2 {
    font-size: 21px;
  }

  .cg-gallery-head span {
    font-size: 14px;
  }

  .cg-gallery-slider {
    margin-left: 0;
    margin-right: 0;
    padding: 0;
  }

  .cg-gallery-slider .swiper-slide {
    width: 210px;
  }

  .cg-gallery-item {
    border-radius: 20px;
    height: 180px;
  }

  .cg-gallery-item img {
    border-radius: 20px;
  }

  .cg-gallery-nav {
    margin-top: 18px;
    padding-right: 0;
  }

  .cg-gallery-prev, .cg-gallery-next {
    border-radius: 15px;
    width: 48px;
    height: 48px;
  }

  .cg-gallery-prev i, .cg-gallery-next i {
    font-size: 21px;
  }
}

.booking-confirm-page {
  padding: 48px 0 80px;
}

.booking-confirm-page .container {
  max-width: 1080px;
}

.booking-confirm-hero {
  background: var(--accent-color);
  color: #fff;
  text-align: center;
  border-radius: 18px;
  margin-bottom: 22px;
  padding: 34px 42px;
  box-shadow: 0 20px 50px #00000014;
}

.booking-confirm-hero h1 {
  color: #fff;
  margin: 0 0 14px;
  font-size: 31px;
  font-weight: 700;
  line-height: 1.2;
}

.booking-confirm-hero p {
  color: #ffffffeb;
  margin: 0;
  font-size: 15px;
  font-weight: 500;
}

.booking-confirm-layout {
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: start;
  gap: 22px;
  display: grid;
}

.booking-confirm-card, .booking-summary-card {
  border: 1px solid var(--border-color, #00000014);
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 18px 45px #0000000f;
}

.booking-confirm-card {
  padding: 18px;
}

.booking-summary-card {
  padding: 22px;
  position: sticky;
  top: 110px;
}

.booking-status-box {
  background: #b9464614;
  border: 1px solid #b9464629;
  border-radius: 12px;
  gap: 14px;
  margin-bottom: 22px;
  padding: 18px;
  display: flex;
}

.booking-status-icon {
  background: var(--accent-color);
  color: #fff;
  border-radius: 9px;
  flex: 0 0 30px;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  font-size: 17px;
  display: flex;
}

.booking-status-box h2 {
  color: var(--heading-color);
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 700;
}

.booking-status-box p {
  color: var(--default-color);
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
}

.booking-form-grid {
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  display: grid;
}

.booking-form-group {
  margin-bottom: 14px;
}

.booking-form-group label {
  color: var(--default-color);
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 500;
  display: block;
}

.booking-form-group input, .booking-form-group textarea {
  border: 1px solid var(--border-color, #0000002e);
  width: 100%;
  color: var(--default-color);
  background: #fff;
  outline: none;
  font-size: 14px;
  transition: all .25s;
}

.booking-form-group input {
  height: 38px;
  padding: 0 12px;
}

.booking-form-group input:focus, .booking-form-group textarea:focus {
  border-color: var(--accent-color);
  box-shadow: 0 0 0 3px #0000000a;
}

.booking-section-line {
  background: var(--accent-color);
  height: 1px;
  margin: 6px 0 20px;
}

.booking-note-box {
  border: 1px solid var(--border-color, #0000001a);
  background: #fff;
  border-radius: 12px;
  margin-bottom: 14px;
  padding: 14px 16px;
}

.booking-note-box strong {
  color: var(--heading-color);
  margin-bottom: 4px;
  font-size: 14px;
  display: block;
}

.booking-note-box span {
  color: var(--default-color);
  font-size: 13px;
  display: block;
}

.booking-child-field {
  max-width: 230px;
}

.booking-agreements {
  gap: 10px;
  margin: 18px 0;
  display: grid;
}

.booking-check {
  border: 1px solid var(--border-color, #0000001a);
  cursor: pointer;
  background: #fff;
  border-radius: 8px;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin-bottom: 12px;
  padding: 10px 12px;
  display: flex;
}

.booking-check input {
  display: none;
}

.booking-check span {
  background: #fff;
  border: 1px solid #0000002e;
  border-radius: 5px;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  position: relative;
}

.booking-check input:checked + span {
  background: var(--accent-color);
  border-color: var(--accent-color);
}

.booking-check input:checked + span:after {
  content: "";
  border: 2px solid #fff;
  border-width: 0 2px 2px 0;
  width: 5px;
  height: 10px;
  position: absolute;
  top: 2px;
  left: 6px;
  transform: rotate(45deg);
}

.booking-check strong {
  color: var(--default-color);
  font-size: 13px;
  font-weight: 500;
}

.booking-check a {
  color: var(--accent-color);
  font-weight: 700;
}

.booking-final-text {
  color: var(--default-color);
  margin: 0 0 20px;
  font-size: 13px;
  line-height: 1.6;
}

.booking-submit-line {
  background: var(--border-color, #00000014);
  height: 1px;
  margin-bottom: 18px;
}

.booking-confirm-btn {
  background: var(--accent-color);
  color: #fff;
  cursor: pointer;
  border: 0;
  border-radius: 11px;
  width: 100%;
  height: 52px;
  font-size: 15px;
  font-weight: 700;
  transition: all .25s;
}

.booking-confirm-btn:hover {
  opacity: .92;
  transform: translateY(-1px);
}

.booking-summary-card h2 {
  color: var(--heading-color);
  margin: 0 0 20px;
  font-size: 20px;
  font-weight: 700;
}

.booking-summary-list {
  gap: 0;
  display: grid;
}

.booking-summary-list div, .booking-summary-total div {
  border-bottom: 1px dashed #00000026;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 13px 0;
  display: flex;
}

.booking-summary-list span, .booking-summary-total span {
  color: var(--default-color);
  font-size: 13px;
}

.booking-summary-list strong, .booking-summary-total strong {
  color: var(--heading-color);
  text-align: right;
  font-size: 14px;
  font-weight: 700;
}

.booking-summary-total {
  border-top: 1px solid var(--accent-color);
  margin-top: 14px;
  padding-top: 10px;
}

.booking-summary-total div {
  border-bottom: 0;
  padding: 9px 0;
}

.booking-summary-total strong {
  color: var(--accent-color);
}

@media (width <= 991px) {
  .booking-confirm-layout {
    grid-template-columns: 1fr;
  }

  .booking-summary-card {
    position: static;
  }
}

@media (width <= 575px) {
  .booking-confirm-page {
    padding: 32px 0 54px;
  }

  .booking-confirm-hero {
    padding: 28px 22px;
  }

  .booking-confirm-hero h1 {
    font-size: 25px;
  }

  .booking-form-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .booking-confirm-card, .booking-summary-card {
    padding: 16px;
  }
}

.booking-check-error {
  background: #b946460f;
  border-color: #b946468c;
}

.booking-form-group input, .booking-form-group textarea, .booking-form-group select {
  border: 1px solid var(--border-color, #00000024);
  width: 100%;
  color: var(--default-color);
  background: #fff;
  border-radius: 8px;
  outline: none;
  font-size: 14px;
  transition: all .25s;
}

.booking-form-group input, .booking-form-group select {
  height: 42px;
  padding: 0 14px;
}

.booking-form-group textarea {
  resize: vertical;
  min-height: 104px;
  padding: 14px;
}

.booking-form-group input:focus, .booking-form-group textarea:focus, .booking-form-group select:focus {
  border-color: var(--accent-color);
  box-shadow: 0 0 0 4px #0000000a;
}

.booking-check-live {
  transition: all .25s;
  position: relative;
}

.booking-check-live:hover {
  border-color: var(--accent-color);
  transform: translateY(-1px);
  box-shadow: 0 10px 26px #0000000f;
}

.booking-check-live:hover span {
  border-color: var(--accent-color);
}

.booking-check strong small {
  color: var(--default-color);
  opacity: .75;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 500;
  display: block;
}

.booking-dynamic-box {
  border: 1px solid var(--border-color, #0000001a);
  background: #00000004;
  border-radius: 14px;
  margin: 12px 0 16px;
  padding: 16px;
}

.booking-children-ages {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.booking-confirm-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
  transform: none;
}

.booking-confirm-btn:disabled:hover {
  opacity: .45;
  transform: none;
}

.is-hidden {
  display: none !important;
}

@media (width <= 575px) {
  .booking-children-ages {
    grid-template-columns: 1fr;
  }
}

.cg-booking-success-page {
  padding: 44px 0 80px;
}

.cg-booking-success-page .container {
  max-width: 1240px;
}

.cg-success-hero {
  background: var(--accent-color);
  color: #fff;
  text-align: center;
  border-radius: 18px;
  margin-bottom: 24px;
  padding: 34px 42px;
  box-shadow: 0 22px 55px #00000014;
}

.cg-success-hero h1 {
  color: #fff;
  margin: 0 0 20px;
  font-size: 31px;
  font-weight: 700;
  line-height: 1.25;
}

.cg-success-hero p {
  color: #fffffff0;
  max-width: 980px;
  margin: 0 auto;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.7;
}

.cg-success-layout {
  grid-template-columns: minmax(0, 1fr) 470px;
  align-items: start;
  gap: 24px;
  display: grid;
}

.cg-success-card, .cg-success-summary {
  border: 1px solid var(--border-color, #00000014);
  background: #fff;
  border-radius: 17px;
  box-shadow: 0 20px 45px #0000000f;
}

.cg-success-card {
  padding: 18px;
}

.cg-success-card-head {
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 22px;
  display: flex;
}

.cg-success-card-head h2, .cg-success-summary h2 {
  color: var(--heading-color);
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
}

.cg-success-card-head p {
  color: var(--default-color);
  margin: 0;
  font-size: 13px;
}

.cg-success-card-head p b {
  color: var(--accent-color);
  margin: 0 8px;
}

.cg-booking-code-box {
  border: 1px solid var(--border-color, #0000001a);
  background: #00000004;
  border-radius: 13px;
  width: 290px;
  padding: 14px;
}

.cg-booking-code-box > span {
  color: var(--default-color);
  margin-bottom: 8px;
  font-size: 12px;
  display: block;
}

.cg-booking-code-box div {
  gap: 10px;
  display: flex;
}

.cg-booking-code-box strong {
  border: 1px solid var(--border-color, #0000001a);
  min-width: 120px;
  height: 42px;
  color: var(--heading-color);
  letter-spacing: .04em;
  background: #fff;
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  padding: 0 14px;
  font-size: 14px;
  font-weight: 800;
  display: inline-flex;
}

.cg-booking-code-box button {
  background: var(--accent-color);
  color: #fff;
  cursor: pointer;
  border: 0;
  border-radius: 10px;
  height: 42px;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 700;
  transition: all .25s;
}

.cg-booking-code-box button:hover {
  opacity: .92;
  transform: translateY(-1px);
}

.cg-booking-code-box small {
  color: var(--default-color);
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.45;
  display: block;
}

.cg-success-alert {
  background: #b9464614;
  border: 1px solid #b9464629;
  border-radius: 13px;
  gap: 15px;
  margin-bottom: 22px;
  padding: 18px;
  display: flex;
}

.cg-success-alert-icon {
  background: var(--accent-color);
  color: #fff;
  border-radius: 10px;
  flex: 0 0 34px;
  justify-content: center;
  align-items: center;
  width: 34px;
  height: 34px;
  font-size: 19px;
  display: flex;
}

.cg-success-alert h3 {
  color: var(--heading-color);
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 700;
}

.cg-success-alert p {
  color: var(--default-color);
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}

.cg-success-line {
  background: var(--accent-color);
  height: 1px;
  margin: 0 0 22px;
}

.cg-success-steps {
  gap: 14px;
  display: grid;
}

.cg-success-step {
  border: 1px solid var(--border-color, #0000001a);
  background: #fff;
  border-radius: 14px;
  gap: 15px;
  padding: 17px 18px;
  transition: all .25s;
  display: flex;
}

.cg-success-step:hover {
  border-color: var(--accent-color);
  transform: translateY(-1px);
  box-shadow: 0 14px 30px #0000000f;
}

.cg-success-step > span {
  width: 34px;
  height: 34px;
  color: var(--accent-color);
  background: #005b701a;
  border-radius: 10px;
  flex: 0 0 34px;
  justify-content: center;
  align-items: center;
  font-size: 15px;
  font-weight: 800;
  display: flex;
}

.cg-success-step h3 {
  color: var(--heading-color);
  margin: 0 0 5px;
  font-size: 15px;
  font-weight: 700;
}

.cg-success-step p {
  color: var(--default-color);
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}

.cg-success-summary {
  padding: 24px;
  position: sticky;
  top: 110px;
}

.cg-summary-list {
  display: grid;
}

.cg-summary-list div, .cg-summary-total div {
  border-bottom: 1px dashed #00000026;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 14px 0;
  display: flex;
}

.cg-summary-list span, .cg-summary-total span {
  color: var(--default-color);
  font-size: 14px;
}

.cg-summary-list strong, .cg-summary-total strong {
  color: var(--heading-color);
  text-align: right;
  font-size: 14px;
  font-weight: 800;
}

.cg-summary-total {
  border-top: 1px solid var(--accent-color);
  margin-top: 16px;
  padding-top: 14px;
}

.cg-summary-total div {
  border-bottom: 0;
  padding: 9px 0;
}

.cg-summary-total strong {
  color: var(--accent-color);
}

.cg-success-home-btn {
  background: var(--accent-color);
  color: #fff;
  border-radius: 13px;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 54px;
  margin-top: 28px;
  font-size: 15px;
  font-weight: 800;
  text-decoration: none;
  transition: all .25s;
  display: inline-flex;
}

.cg-success-home-btn:hover {
  color: #fff;
  opacity: .92;
  transform: translateY(-1px);
  box-shadow: 0 14px 32px #0000001f;
}

@media (width <= 1199px) {
  .cg-success-layout {
    grid-template-columns: minmax(0, 1fr) 410px;
  }
}

@media (width <= 991px) {
  .cg-success-layout {
    grid-template-columns: 1fr;
  }

  .cg-success-summary {
    position: static;
  }
}

@media (width <= 767px) {
  .cg-booking-success-page {
    padding: 30px 0 56px;
  }

  .cg-success-hero {
    padding: 28px 22px;
  }

  .cg-success-hero h1 {
    font-size: 25px;
  }

  .cg-success-card-head {
    flex-direction: column;
  }

  .cg-booking-code-box {
    width: 100%;
  }
}

@media (width <= 480px) {
  .cg-booking-code-box div {
    flex-direction: column;
  }

  .cg-booking-code-box strong, .cg-booking-code-box button {
    width: 100%;
  }
}

.cg-unavailable-page {
  padding: 44px 0 80px;
}

.cg-unavailable-page .container {
  max-width: 1120px;
}

.cg-unavailable-hero {
  background: var(--accent-color);
  text-align: center;
  color: #fff;
  border-radius: 17px;
  margin-bottom: 22px;
  padding: 34px 40px;
  box-shadow: 0 22px 55px #00000014;
}

.cg-unavailable-hero h1 {
  color: #fff;
  margin: 0 0 18px;
  font-size: 31px;
  font-weight: 800;
  line-height: 1.2;
}

.cg-unavailable-hero p {
  color: #fffffff0;
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
}

.cg-unavailable-card {
  border: 1px solid var(--border-color, #00000014);
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 18px 45px #0000000f;
}

.cg-request-card {
  margin-bottom: 22px;
  padding: 16px;
}

.cg-alert-box {
  background: #b9464614;
  border: 1px solid #b9464629;
  border-radius: 12px;
  gap: 14px;
  padding: 16px;
  display: flex;
}

.cg-alert-icon {
  background: var(--accent-color);
  color: #fff;
  border-radius: 9px;
  flex: 0 0 30px;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  font-weight: 800;
  display: flex;
}

.cg-alert-box h2 {
  color: var(--heading-color);
  margin: 0 0 5px;
  font-size: 15px;
  font-weight: 800;
}

.cg-alert-box p {
  color: var(--default-color);
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}

.cg-request-line, .cg-card-line, .cg-room-option-line {
  background: var(--accent-color);
  height: 1px;
}

.cg-request-line {
  margin: 18px 0;
}

.cg-request-grid {
  grid-template-columns: 1.1fr 1fr 1fr;
  gap: 10px;
  display: grid;
}

.cg-request-item {
  border: 1px solid var(--border-color, #0000001a);
  background: #fff;
  border-radius: 11px;
  min-height: 66px;
  padding: 14px 16px;
}

.cg-request-item span {
  color: var(--default-color);
  margin-bottom: 6px;
  font-size: 13px;
  display: block;
}

.cg-request-item strong {
  color: var(--heading-color);
  font-size: 14px;
  font-weight: 800;
}

.cg-request-item small, .cg-date-options small, .cg-room-option span {
  border: 1px solid var(--border-color, #0000001a);
  color: var(--default-color);
  border-radius: 999px;
  margin-top: 8px;
  padding: 4px 10px;
  font-size: 12px;
  line-height: 1;
  display: inline-flex;
}

.cg-unavailable-layout {
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 22px;
  display: grid;
}

.cg-dates-card, .cg-alt-card {
  padding: 18px;
}

.cg-card-head {
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 18px;
  display: flex;
}

.cg-card-head h2 {
  color: var(--heading-color);
  margin: 0 0 5px;
  font-size: 18px;
  font-weight: 800;
}

.cg-card-head p {
  color: var(--default-color);
  margin: 0;
  font-size: 13px;
}

.cg-card-head > span {
  color: var(--accent-color);
  white-space: nowrap;
  background: #005b701a;
  border: 1px solid #005b7040;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 700;
}

.cg-card-line {
  margin-bottom: 20px;
}

.cg-date-options, .cg-room-options {
  gap: 14px;
  display: grid;
}

.cg-option-row, .cg-room-option {
  border: 1px solid var(--border-color, #0000001a);
  background: #fff;
  border-radius: 14px;
  transition: all .25s;
  box-shadow: 0 10px 26px #00000009;
}

.cg-option-row {
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  min-height: 78px;
  padding: 14px;
  display: flex;
}

.cg-option-row:hover, .cg-room-option:hover {
  border-color: var(--accent-color);
  transform: translateY(-1px);
  box-shadow: 0 16px 34px #00000012;
}

.cg-option-row strong {
  color: var(--heading-color);
  font-size: 14px;
  font-weight: 800;
  display: block;
}

.cg-option-row button, .cg-room-option button {
  background: var(--accent-color);
  color: #fff;
  cursor: pointer;
  border: 0;
  border-radius: 10px;
  min-width: 116px;
  height: 42px;
  padding: 0 18px;
  font-size: 14px;
  font-weight: 800;
  transition: all .25s;
  box-shadow: 0 10px 22px #00000024;
}

.cg-option-row button:hover, .cg-room-option button:hover {
  opacity: .92;
  transform: translateY(-1px);
}

.cg-room-option {
  padding: 16px;
}

.cg-room-option-top {
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  display: flex;
}

.cg-room-option h3 {
  color: var(--heading-color);
  margin: 0;
  font-size: 15px;
  font-weight: 800;
}

.cg-room-option-line {
  margin: 16px 0 12px;
}

.cg-price-row {
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 4px 0;
  display: flex;
}

.cg-price-row span {
  color: var(--default-color);
  font-size: 13px;
}

.cg-price-row strong {
  color: var(--accent-color);
  font-size: 14px;
  font-weight: 800;
}

@media (width <= 991px) {
  .cg-unavailable-layout, .cg-request-grid {
    grid-template-columns: 1fr;
  }
}

@media (width <= 575px) {
  .cg-unavailable-page {
    padding: 32px 0 56px;
  }

  .cg-unavailable-hero {
    padding: 28px 20px;
  }

  .cg-unavailable-hero h1 {
    font-size: 24px;
  }

  .cg-card-head, .cg-room-option-top, .cg-option-row {
    flex-direction: column;
    align-items: stretch;
  }

  .cg-option-row button, .cg-room-option button {
    width: 100%;
  }
}

.home-page {
  background: #eef5f8;
}

.home-hero {
  background: #eef5f8;
  padding: 190px 0 34px;
}

.home-hero-grid {
  background: #fff;
  border-radius: 34px;
  grid-template-columns: minmax(0, 1fr) 520px;
  align-items: stretch;
  gap: 34px;
  padding: 34px;
  display: grid;
  box-shadow: 0 24px 70px #00000014;
}

.home-hero-content {
  padding: 42px 22px;
}

.home-hero-content h1 {
  max-width: 760px;
  color: var(--heading-color);
  letter-spacing: -.04em;
  margin: 16px 0 22px;
  font-size: clamp(38px, 5vw, 68px);
  font-weight: 700;
  line-height: 1.04;
}

.home-hero-content p {
  max-width: 610px;
  color: var(--default-color);
  margin: 0;
  font-size: 18px;
  line-height: 1.75;
}

.home-hero-actions {
  align-items: center;
  gap: 22px;
  margin-top: 34px;
  display: flex;
}

.home-text-link {
  color: var(--accent-color);
  border-bottom: 1px solid var(--accent-color);
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}

.home-hero-media {
  border-radius: 28px;
  height: 220px;
  overflow: hidden;
}

.home-hero-media img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}

.home-booking-panel {
  z-index: 5;
  background: #fff;
  border-radius: 24px;
  grid-template-columns: repeat(3, minmax(0, 1fr)) 180px;
  gap: 14px;
  margin: -34px 34px 0;
  padding: 22px;
  display: grid;
  position: relative;
  box-shadow: 0 22px 55px #0000001a;
}

.home-booking-panel label {
  color: var(--heading-color);
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 700;
  display: block;
}

.home-booking-panel input, .home-booking-panel select {
  width: 100%;
  height: 54px;
  color: var(--default-color);
  background: #fff;
  border: 1px solid #0000001f;
  border-radius: 14px;
  outline: none;
  padding: 0 15px;
  font-size: 14px;
}

.home-booking-panel input:focus, .home-booking-panel select:focus {
  border-color: var(--accent-color);
}

.home-booking-panel .btn-booking {
  justify-content: center;
  align-self: end;
  align-items: center;
  height: 54px;
  display: inline-flex;
}

.home-stats {
  padding: 42px 0;
}

.home-stats-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  display: grid;
}

.home-stats-grid div {
  background: #fff;
  border: 1px solid #0000000f;
  border-radius: 22px;
  padding: 24px;
}

.home-stats-grid div:hover {
  padding: 40px;
}

.home-stats-grid strong {
  color: var(--heading-color);
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 700;
  display: block;
}

.home-stats-grid span {
  color: var(--default-color);
  font-size: 14px;
  line-height: 1.5;
}

.home-section {
  background: #fff;
  padding: 76px 0;
}

.home-muted {
  background: #eef5f8;
}

.home-section-head {
  max-width: 760px;
  margin-bottom: 34px;
}

.home-section-head h2 {
  color: var(--heading-color);
  letter-spacing: -.025em;
  margin: 10px 0 14px;
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.12;
}

.home-section-head p {
  color: var(--default-color);
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
}

.home-room-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  display: grid;
}

.home-room-card {
  background: #fff;
  border: 1px solid #00000012;
  border-radius: 28px;
  transition: all .25s;
  overflow: hidden;
  box-shadow: 0 18px 48px #0000000e;
}

.home-room-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 26px 68px #00000017;
}

.home-room-card img {
  object-fit: cover;
  width: 100%;
  height: 270px;
  display: block;
}

.home-room-card div {
  padding: 24px;
}

.home-room-card span {
  color: var(--accent-color);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 800;
  display: block;
}

.home-room-card h3 {
  color: var(--heading-color);
  margin: 0 0 10px;
  font-size: 22px;
  font-weight: 700;
}

.home-room-card p {
  color: var(--default-color);
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.65;
}

.home-room-card a {
  color: var(--accent-color);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}

.home-service-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.home-service-grid a {
  background: #fff;
  border: 1px solid #00000012;
  border-radius: 24px;
  min-height: 112px;
  padding: 24px;
  text-decoration: none;
  transition: all .25s;
}

.home-service-grid a:hover {
  border-color: var(--accent-color);
  transform: translateY(-3px);
}

.home-service-grid strong {
  color: var(--heading-color);
  margin-bottom: 8px;
  font-size: 17px;
  font-weight: 700;
  display: block;
}

.home-service-grid span {
  color: var(--default-color);
  font-size: 14px;
  line-height: 1.5;
  display: block;
}

.home-experience {
  grid-template-columns: minmax(0, 1fr) 500px;
  align-items: center;
  gap: 34px;
  display: grid;
}

.home-experience h2 {
  color: var(--heading-color);
  margin: 12px 0 18px;
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.12;
}

.home-experience p {
  color: var(--default-color);
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
}

.home-experience img {
  object-fit: cover;
  border-radius: 30px;
  width: 100%;
  height: 650px;
  display: block;
}

.home-feature-list {
  gap: 12px;
  margin-top: 28px;
  display: grid;
}

.home-feature-list div {
  background: #eef5f8;
  border-radius: 18px;
  align-items: center;
  gap: 14px;
  padding: 16px;
  display: flex;
}

.home-feature-list strong {
  color: var(--accent-color);
  font-size: 13px;
  font-weight: 800;
}

.home-feature-list span {
  color: var(--heading-color);
  font-size: 15px;
  font-weight: 700;
}

.home-gallery-grid {
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 18px;
  display: grid;
}

.home-gallery-grid a {
  border-radius: 26px;
  height: 260px;
  display: block;
  overflow: hidden;
}

.home-gallery-grid a:first-child {
  grid-row: span 2;
  height: 538px;
}

.home-gallery-grid img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: all .35s;
}

.home-gallery-grid a:hover img {
  transform: scale(1.04);
}

.home-cta {
  background: var(--accent-color);
  color: #fff;
  border-radius: 30px;
  justify-content: space-between;
  align-items: center;
  gap: 34px;
  padding: 42px;
  display: flex;
}

.home-cta h2 {
  color: #fff;
  margin: 10px 0 12px;
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.1;
}

.home-cta p {
  color: #ffffffdb;
  max-width: 580px;
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}

.home-cta .section-eyebrow {
  color: #ffffffbf;
}

.home-cta .btn-booking {
  color: var(--accent-color);
  white-space: nowrap;
  background: #fff;
}

@media (width <= 1199px) {
  .home-hero-grid, .home-experience {
    grid-template-columns: 1fr;
  }

  .home-booking-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-booking-panel .btn-booking {
    grid-column: span 2;
  }

  .home-stats-grid, .home-room-grid, .home-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (width <= 767px) {
  .home-hero {
    padding: 135px 0 30px;
  }

  .home-hero-grid {
    border-radius: 24px;
    padding: 20px;
  }

  .home-hero-content {
    padding: 22px 4px;
  }

  .home-hero-content p {
    font-size: 15px;
  }

  .home-hero-actions, .home-cta {
    flex-direction: column;
    align-items: flex-start;
  }

  .home-hero-media {
    border-radius: 20px;
    min-height: 280px;
  }

  .home-booking-panel {
    grid-template-columns: 1fr;
    margin: 18px 0 0;
  }

  .home-booking-panel .btn-booking {
    grid-column: auto;
    width: 100%;
  }

  .home-stats-grid, .home-room-grid, .home-service-grid, .home-gallery-grid {
    grid-template-columns: 1fr;
  }

  .home-gallery-grid a, .home-gallery-grid a:first-child {
    grid-row: auto;
    height: 230px;
  }

  .home-experience img {
    height: 280px;
  }

  .home-section {
    padding: 54px 0;
  }

  .home-cta {
    border-radius: 24px;
    padding: 28px 24px;
  }
}

.home-stats-top-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.home-stats-top-card {
  min-height: 100%;
  color: inherit;
  background: #fff;
  border: 1px solid #0f172a0f;
  border-radius: 22px;
  grid-template-columns: auto 1fr auto;
  align-items: flex-start;
  gap: 18px;
  padding: 24px;
  text-decoration: none;
  transition: transform .3s, box-shadow .3s, border-color .3s;
  display: grid;
  box-shadow: 0 10px 24px #0f172a0a;
}

.home-stats-top-card:hover {
  border-color: color-mix(in srgb, var(--accent-color), white 65%);
  transform: translateY(-4px);
  box-shadow: 0 18px 34px #0f172a14;
}

.home-stats-top-card__icon {
  background: linear-gradient(135deg,
        color-mix(in srgb, var(--accent-color), white 14%),
        var(--accent-color));
  color: #fff;
  border-radius: 18px;
  justify-content: center;
  align-items: center;
  width: 58px;
  min-width: 58px;
  height: 58px;
  font-size: 22px;
  display: inline-flex;
  box-shadow: 0 10px 24px #00465529;
}

.home-stats-top-card__content h3 {
  color: var(--heading-color);
  margin-bottom: 10px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}

.home-stats-top-card__content p {
  color: var(--default-color);
  margin-bottom: 0;
  line-height: 1.75;
}

.home-stats-card__arrow {
  color: var(--accent-color);
  font-size: 20px;
  transition: transform .25s;
}

.home-stats-top-card:hover .directory-card__arrow {
  transform: translateX(4px);
}

@media (width <= 991px) {
  .home-stats-top-grid {
    grid-template-columns: 1fr;
  }
}

@media (width <= 767px) {
  .home-stats-top-intro {
    text-align: center;
    margin-bottom: 26px;
  }

  .home-stats-top-card {
    text-align: center;
    grid-template-columns: 1fr;
    padding: 20px 18px;
  }

  .home-stats-top-card__icon, .home-stats-top-card__arrow {
    margin: 0 auto;
  }
}

.alert-info {
  color: #fff6f3 !important;
  background-color: #055160 !important;
  border: 1px solid #3c4a571f !important;
}

.cg-booking-code-box {
  width: min(100%, 340px);
}

.cg-booking-code-box div {
  align-items: stretch;
}

.cg-booking-code-box strong {
  white-space: nowrap;
  min-width: 150px;
  min-height: 46px;
}

.cg-booking-code-box button {
  white-space: nowrap;
  min-width: 128px;
  min-height: 46px;
}

.booking-lookup-result__head.booking-confirm-hero {
  max-width: 1120px;
  margin: 0 auto 42px;
}

.booking-lookup-result__aside .room-contact-widget {
  margin-top: 0 !important;
}

.contact-shortcuts--socials {
  grid-template-columns: repeat(5, 1fr);
  gap: 15px;
  display: grid;
}

.contact-shortcuts-soc {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
  display: grid;
}

@media (width >= 768px) {
  .contact-shortcuts--socials {
    grid-template-columns: repeat(5, 1fr);
  }
}

.contact-shortcuts--socials .contact-shortcut-card {
  align-items: center;
  padding-top: 15px;
  padding-bottom: 15px;
  display: flex;
}

.contact-shortcuts--socials .contact-shortcut-card__content {
  align-items: center;
  margin: 0;
  display: flex;
}

.contact-shortcuts--socials .contact-shortcut-card__content h3 {
  margin: 0;
  line-height: 1;
}

.docs-links__list {
  padding-left: 0;
  list-style: none;
}

.docs-links__list li:before {
  content: none;
  display: none;
}

.docs-links__list .active {
  font-weight: 700;
}

.site-map {
  --map-ink: #17343b;
  --map-muted: #65777b;
  --map-accent: #005464;
  --map-gold: #c59a52;
  --map-line: #0054641f;
}

.site-map__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  display: grid;
}

.site-map__group {
  border: 1px solid var(--map-line);
  background: #ffffffeb;
  border-radius: 26px;
  padding: clamp(22px, 3vw, 32px);
  box-shadow: 0 16px 50px #1f353a12;
}

.site-map__group:last-child {
  grid-column: 1 / -1;
}

.site-map__group-head {
  border-bottom: 1px solid var(--map-line);
  align-items: center;
  gap: 16px;
  margin-bottom: 6px;
  padding-bottom: 20px;
  display: flex;
}

.site-map__group-head h2 {
  color: var(--map-ink);
  margin: 0 0 4px;
  font-size: 1.25rem;
}

.site-map__group-head p {
  color: var(--map-muted);
  margin: 0;
  font-size: .9rem;
}

.site-map__links {
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-map__links li + li {
  border-top: 1px solid var(--map-line);
}

.site-map__links a {
  color: var(--map-ink);
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 15px 4px;
  text-decoration: none;
  transition: color .25s, padding .25s;
  display: flex;
}

.site-map__links a:hover {
  color: var(--map-accent);
  padding-left: 10px;
}

.site-map__links a > span {
  gap: 3px;
  display: grid;
}

.site-map__links strong {
  font-size: .98rem;
}

.site-map__links small {
  color: var(--map-muted);
  line-height: 1.45;
}

.site-map__links a > i {
  color: var(--map-gold);
}

@media (width <= 991.98px) {
  .site-map__grid {
    grid-template-columns: 1fr;
  }

  .site-map__group:last-child {
    grid-column: auto;
  }
}

@media (width <= 575.98px) {
  .site-map__group {
    border-radius: 20px;
  }
}

.home-feature-list a:hover {
  letter-spacing: 1px;
  color: var(--nav-hover-color) !important;
}
.form-honeypot {
  position: absolute;
  left: -9999px;
}

