/*!
Theme Name: visit-calhouns-county-theme
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: visit-calhouns-county-theme
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

visit-calhouns-county-theme is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/


/* =============================================================
   HEADER SEARCH DROPDOWN
   ============================================================= */
.search-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  min-width: 280px;
  background: #fff;
  border: 1px solid #e0e0e0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .13);
  z-index: 9999;
  border-radius: 2px;
  overflow: hidden;
}

.search-dropdown__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  text-decoration: none;
  color: #22372b;
  font-size: 13px;
  border-bottom: 1px solid #f0f0f0;
  transition: background .15s ease;
}

.search-dropdown__item:hover {
  background: #fcfaed;
}

.search-dropdown__title {
  flex: 1;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search-dropdown__type {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: #85af9a;
  white-space: nowrap;
}

.search-dropdown__all {
  display: block;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .3px;
  color: #22372b;
  text-decoration: none;
  text-align: right;
  background: #fafafa;
}

.search-dropdown__all:hover {
  text-decoration: underline;
}


/* =============================================================
   LISTING LIGHTBOX
   ============================================================= */

/* Card click affordance */
.dir-card[data-post-id],
.event-card[data-post-id],
.fp-card[data-post-id] {
  cursor: pointer;
}

.dir-card[data-post-id] .img-box,
.event-card[data-post-id] .event-img-wrapper {
  position: relative;
  overflow: hidden;
}

.fp-card[data-post-id] .fp-card__img-wrap {
  position: relative;
  overflow: hidden;
}

.dir-card[data-post-id] .img-box::after,
.event-card[data-post-id] .event-img-wrapper::after,
.fp-card[data-post-id] .fp-card__img-wrap::after {
  content: 'View Details';
  position: absolute;
  inset: 0;
  background: rgba(34, 55, 43, 0.65);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.dir-card[data-post-id]:hover .img-box::after,
.event-card[data-post-id]:hover .event-img-wrapper::after,
.fp-card[data-post-id]:hover .fp-card__img-wrap::after {
  opacity: 1;
}

a.know-card {
  text-decoration: none;
  color: inherit;
  display: block;
}

/* Overlay */
.vcc-lightbox-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
  z-index: 99999;
  overflow-y: auto;
  padding: 40px 20px;
  align-items: flex-start;
  justify-content: center;
}

.vcc-lightbox-overlay.is-open {
  display: flex;
}

body.vcc-lightbox-open {
  overflow: hidden;
}

/* Modal inner */
.vcc-lightbox-inner {
  background: #fff;
  width: 100%;
  max-width: 920px;
  border-radius: 4px;
  position: relative;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.32);
  overflow: hidden;
  margin: auto;
}

/* Close button */
.vcc-lightbox-close {
  position: absolute;
  top: 12px;
  right: 16px;
  background: none;
  border: none;
  font-size: 30px;
  line-height: 1;
  color: #22372b;
  cursor: pointer;
  z-index: 10;
  padding: 2px 8px;
  opacity: 0.6;
  transition: opacity 0.2s;
}

.vcc-lightbox-close:hover {
  opacity: 1;
}

/* Loading spinner */
.vcc-lightbox-spinner {
  display: none;
  align-items: center;
  justify-content: center;
  min-height: 260px;
}

/* Content grid */
.vcc-lightbox-content {
  display: grid;
  grid-template-columns: 40% 60%;
  min-height: 300px;
}

/* Image column */
.lb-img-col {
  overflow: hidden;
}

.lb-img-col img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  min-height: 320px;
}

/* Info column */
.lb-info-col {
  padding: 36px 32px 32px;
  overflow-y: auto;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.lb-badge {
  display: inline-block;
  background: #22372b;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 2px;
  align-self: flex-start;
}

.lb-title {
  font-size: 26px;
  line-height: 1.2;
  color: #22372b;
  margin: 0;
}

.lb-location {
  font-size: 12px;
  color: #85af9a;
  margin: 0;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
}

.lb-description {
  font-size: 14px;
  line-height: 1.65;
  color: #444;
  padding-top: 12px;
  border-top: 1px solid #eaeaea;
}

.lb-description p {
  margin: 0 0 0.75em;
}

.lb-description p:last-child {
  margin-bottom: 0;
}

/* Detail rows */
.lb-details {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 4px;
}

.lb-meta-row {
  font-size: 13px;
  color: #333;
  line-height: 1.4;
}

.lb-meta-row a {
  color: #22372b;
  text-decoration: underline;
}

.lb-meta-row a:hover {
  opacity: 0.75;
}

/* Hours table */
.lb-hours {
  border-top: 1px solid #eaeaea;
  padding-top: 14px;
}

.lb-hours h4,
.lb-amenities h4 {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #22372b;
  margin: 0 0 10px;
}

.lb-hours-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.lb-hours-table tr td {
  padding: 4px 8px 4px 0;
  color: #333;
  vertical-align: top;
}

.lb-hours-table tr td:first-child {
  font-weight: 600;
  min-width: 90px;
  color: #22372b;
}

/* Amenities */
.lb-amenities {
  border-top: 1px solid #eaeaea;
  padding-top: 14px;
}

.lb-amenities-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.lb-amenities-list li {
  font-size: 12px;
  background: #f0f6f2;
  color: #22372b;
  padding: 4px 12px;
  border-radius: 20px;
  font-weight: 500;
}

/* CTA buttons */
.lb-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 6px;
  margin-top: auto;
}

.lb-btn {
  display: inline-flex;
  align-items: center;
  padding: 10px 22px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 2px;
  transition: background 0.2s ease, color 0.2s ease;
  cursor: pointer;
  border: 2px solid #22372b;
}

.lb-btn--primary {
  background: #22372b;
  color: #fff;
}

.lb-btn--primary:hover {
  background: #1a2b21;
  border-color: #1a2b21;
  color: #fff;
}

.lb-btn--secondary {
  background: transparent;
  color: #22372b;
}

.lb-btn--secondary:hover {
  background: #22372b;
  color: #fff;
}

/* Map embed */
.lb-map {
  border-top: 1px solid #eaeaea;
  padding-top: 14px;
}

.lb-map iframe {
  width: 100%;
  border: 0;
  border-radius: 2px;
  display: block;
}

/* Error state */
.lb-error {
  padding: 40px;
  text-align: center;
  color: #888;
  font-size: 14px;
  grid-column: 1 / -1;
}

/* Mobile */
@media (max-width: 680px) {
  .vcc-lightbox-overlay {
    padding: 0;
    align-items: flex-end;
  }

  .vcc-lightbox-inner {
    border-radius: 12px 12px 0 0;
    max-height: 92vh;
    overflow-y: auto;
  }

  .vcc-lightbox-content {
    grid-template-columns: 1fr;
  }

  .lb-img-col img {
    min-height: 200px;
    max-height: 240px;
  }

  .lb-info-col {
    padding: 24px 20px 28px;
    max-height: none;
  }

  .lb-title {
    font-size: 20px;
  }
}
