/*
 * Shared public navigation actions.
 * All themes expose the same destinations; only the colour tokens change.
 */
body {
  --pnt-accent: var(--ui-accent, #c2410c);
  --pnt-accent-strong: var(--ui-accent-strong, #9a3412);
  --pnt-on-accent: var(--ui-on-accent, #fff);
  --pnt-text: #334155;
  --pnt-muted: #475569;
  --pnt-surface: rgba(255, 255, 255, .92);
  --pnt-surface-hover: #f8fafc;
  --pnt-border: #cbd5e1;
  --pnt-menu: #fff;
  --pnt-shadow: 0 16px 40px rgba(15, 23, 42, .16);
}

body.theme-goldnight,
body.theme-luxe,
body.theme-neoncity,
body.theme-midnight,
body.theme-carbonsport,
body.theme-oceanblue,
body.theme-terra,
body.theme-ecogreen {
  --pnt-text: #f8fafc;
  --pnt-muted: #e2e8f0;
  --pnt-surface: rgba(255, 255, 255, .07);
  --pnt-surface-hover: rgba(255, 255, 255, .13);
  --pnt-border: rgba(255, 255, 255, .28);
  --pnt-menu: #18181c;
  --pnt-shadow: 0 18px 44px rgba(0, 0, 0, .38);
}

body.theme-elegant {
  --pnt-accent: #c2410c;
  --pnt-accent-strong: #9a3412;
  --pnt-on-accent: #fff;
}

body.theme-luxe,
body.theme-blackpro,
body.theme-goldnight {
  --pnt-accent: #c9a24b;
  --pnt-accent-strong: #e3c777;
  --pnt-on-accent: #171717;
}

body.theme-sakuragold {
  --pnt-accent: #a02555;
  --pnt-accent-strong: #7a0f3e;
  --pnt-on-accent: #fff;
  --pnt-text: #4a0d28;
  --pnt-muted: #6f2946;
  --pnt-surface: rgba(255, 255, 255, .72);
  --pnt-surface-hover: rgba(255, 255, 255, .94);
  --pnt-border: rgba(122, 15, 62, .34);
  --pnt-menu: #fffaf7;
}

body.theme-sakura {
  --pnt-accent: #be185d;
  --pnt-accent-strong: #9d174d;
  --pnt-on-accent: #fff;
}

body.theme-canyon,
body.theme-terra {
  --pnt-accent: #c2410c;
  --pnt-accent-strong: #9a3412;
  --pnt-on-accent: #fff;
}

body.theme-ivoryzen {
  --pnt-accent: #57534e;
  --pnt-accent-strong: #44403c;
  --pnt-on-accent: #fff;
}

body.theme-oceanblue {
  --pnt-accent: #0369a1;
  --pnt-accent-strong: #075985;
  --pnt-on-accent: #fff;
}

body.theme-ecogreen {
  --pnt-accent: #047857;
  --pnt-accent-strong: #065f46;
  --pnt-on-accent: #fff;
}

.pnt-actions {
  display: flex;
  align-items: center;
  gap: .4rem;
  flex-shrink: 0;
}

.pnt-actions .pnt-action,
.pnt-language > summary {
  min-height: 36px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .38rem;
  border: 1px solid var(--pnt-border) !important;
  border-radius: 9px;
  padding: .42rem .68rem;
  background: var(--pnt-surface) !important;
  color: var(--pnt-text) !important;
  -webkit-text-fill-color: var(--pnt-text) !important;
  font-family: inherit;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.pnt-actions .pnt-action:hover,
.pnt-language > summary:hover {
  background: var(--pnt-surface-hover) !important;
  border-color: var(--pnt-accent) !important;
  transform: translateY(-1px);
}

.pnt-actions .pnt-action--bookings {
  background: var(--pnt-accent) !important;
  border-color: var(--pnt-accent) !important;
  color: var(--pnt-on-accent) !important;
  -webkit-text-fill-color: var(--pnt-on-accent) !important;
  box-shadow: 0 5px 16px color-mix(in srgb, var(--pnt-accent) 24%, transparent);
}

.pnt-actions .pnt-action--bookings:hover {
  background: var(--pnt-accent-strong) !important;
  border-color: var(--pnt-accent-strong) !important;
}

.pnt-actions svg,
.pnt-mobile-tools svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pnt-language {
  position: relative;
}

.pnt-language > summary {
  list-style: none;
}

.pnt-language > summary::-webkit-details-marker {
  display: none;
}

.pnt-language .pnt-chevron {
  width: 12px;
  height: 12px;
  transition: transform .18s ease;
}

.pnt-language[open] .pnt-chevron {
  transform: rotate(180deg);
}

.pnt-language-menu {
  position: absolute;
  top: calc(100% + .55rem);
  right: 0;
  z-index: 1200;
  width: 168px;
  box-sizing: border-box;
  padding: .4rem;
  border: 1px solid var(--pnt-border);
  border-radius: 12px;
  background: var(--pnt-menu);
  box-shadow: var(--pnt-shadow);
}

.pnt-language-menu button {
  width: 100%;
  min-height: 36px;
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  gap: .45rem;
  border: 0;
  border-radius: 8px;
  padding: .42rem .55rem;
  background: transparent;
  color: var(--pnt-text);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}

.pnt-language-menu button:hover {
  background: var(--pnt-surface-hover);
}

.pnt-language-menu strong {
  color: var(--pnt-accent-strong);
  font-size: .72rem;
}

.pnt-language-menu span {
  color: var(--pnt-text);
  font-size: .78rem;
}

.pnt-mobile-tools {
  display: none;
  margin-top: .65rem;
  padding-top: .85rem;
  border-top: 1px solid var(--pnt-border);
}

.pnt-mobile-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
}

body .pnt-mobile-tools a.pnt-mobile-link {
  min-height: 46px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border: 1px solid var(--pnt-border) !important;
  border-radius: 10px !important;
  padding: .65rem .7rem !important;
  background: var(--pnt-surface) !important;
  color: var(--pnt-text) !important;
  -webkit-text-fill-color: var(--pnt-text) !important;
  font-size: .82rem !important;
  font-weight: 750 !important;
  line-height: 1.25;
  text-align: center;
  text-decoration: none !important;
}

body .pnt-mobile-tools a.pnt-mobile-link:first-child {
  background: var(--pnt-accent) !important;
  border-color: var(--pnt-accent) !important;
  color: var(--pnt-on-accent) !important;
  -webkit-text-fill-color: var(--pnt-on-accent) !important;
}

.pnt-mobile-language {
  margin-top: .75rem;
}

.pnt-mobile-language-label {
  display: flex;
  align-items: center;
  gap: .38rem;
  margin-bottom: .5rem;
  color: var(--pnt-muted);
  font-size: .75rem;
  font-weight: 700;
}

.pnt-mobile-language-buttons {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .35rem;
}

.pnt-mobile-language-buttons button {
  min-height: 38px;
  border: 1px solid var(--pnt-border) !important;
  border-radius: 8px;
  background: var(--pnt-surface) !important;
  color: var(--pnt-text) !important;
  font-family: inherit;
  font-size: .7rem;
  font-weight: 800;
  cursor: pointer;
}

.pnt-mobile-language-buttons button:hover {
  border-color: var(--pnt-accent) !important;
  color: var(--pnt-accent-strong) !important;
}

/* Keep the Google toolbar from shifting themed headers after translation. */
.goog-te-banner-frame,
.goog-te-menu-frame,
.goog-te-balloon-frame,
#goog-gt-tt,
.goog-te-gadget,
.goog-te-combo {
  display: none !important;
  visibility: hidden !important;
}

html,
body {
  top: 0 !important;
}

@media (max-width: 1180px) {
  body.theme-goldnight .gn-nav-phone,
  body.theme-elegant .el-phone,
  body.theme-luxe .lx-phone {
    display: none !important;
  }
}

/*
 * The light header has four primary links. Switch those links to the existing
 * hamburger at tablet widths while keeping the three account tools visible.
 */
@media (min-width: 769px) and (max-width: 1024px) {
  .lt-nav .lt-nav-links {
    display: none !important;
  }

  .lt-nav .lt-btn-blue.lt-hide-mob {
    display: none !important;
  }

  .lt-nav .lt-hamburger {
    position: static !important;
    display: inline-flex !important;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
  }

  .lt-mobile-menu {
    position: fixed;
    top: 70px;
    left: 1rem;
    right: 1rem;
    z-index: 1001;
    max-height: calc(100dvh - 86px);
    overflow-y: auto;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: .85rem 1rem 1rem;
    box-shadow: 0 18px 50px rgba(15, 23, 42, .18);
  }
}

@media (max-width: 1024px) {
  body.theme-elegant .pnt-actions,
  body.theme-luxe .pnt-actions {
    display: none;
  }

  body.theme-elegant .pnt-mobile-tools,
  body.theme-luxe .pnt-mobile-tools {
    display: block;
  }
}

@media (max-width: 900px) {
  body.theme-goldnight .pnt-actions {
    display: none;
  }

  body.theme-goldnight .pnt-mobile-tools {
    display: block;
  }
}

@media (max-width: 768px) {
  .lt-nav .pnt-actions {
    display: none;
  }

  .lt-mobile-menu .pnt-mobile-tools {
    display: block;
  }
}

@media (max-width: 390px) {
  .pnt-mobile-links {
    grid-template-columns: 1fr;
  }
}
