:root {
  --color-forest-950:#0b1f17;
  --color-forest-900:#123225;
  --color-forest-800:#184632;
  --color-sage-700:#526b55;
  --color-sage-500:#84977c;
  --color-sage-100:#eef2e9;
  --color-gold-700:#9f7023;
  --color-gold-600:#b8872e;
  --color-gold-500:#cf9b3c;
  --color-gold-100:#f4ead4;
  --color-clay-700:#8f4d32;
  --color-clay-50:#e66f43;
  --color-clay-500:#b96542;
  --color-cream-50:#fbf8f0;
  --color-cream-100:#f5efe2;
  --color-ink:#101512;
  --color-muted:#687169;
  --color-line:rgba(16,21,18,.12);
  --radius-sm:6px;
  --radius-md:8px;
  --radius-lg:12px;
  --shadow-soft:0 18px 60px rgba(11,31,23,.10);
  --shadow-card:0 10px 30px rgba(11,31,23,.08);

  /* Semantic Theme variables */
  --bg-body: var(--color-cream-50);
  --bg-card: rgba(255, 255, 255, 0.94);
  --bg-card-hover: #ffffff;
  --text-main: var(--color-ink);
  --text-muted: var(--color-muted);
  --border-color: var(--color-line);
  --header-bg: rgba(251, 248, 240, 0.88);
  --header-bg-scrolled: rgba(251, 248, 240, 0.96);
  --footer-bg: var(--color-forest-950);
  --shadow-active: var(--shadow-card);
  --color-link-hover: var(--color-forest-800);
  --nav-bg-collapse: rgba(251, 248, 240, 0.98);
  --nav-link-color: #26312b;
}

body:not(.admin-body){
  font-family:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-main);
  background:var(--bg-body);
  text-rendering:optimizeLegibility;
  transition: background-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), color 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
body:not(.admin-body) h1,
body:not(.admin-body) h2,
body:not(.admin-body) .display{
  font-family:"Fraunces",Georgia,serif;
  letter-spacing:-.035em;
  color:var(--text-main);
}
body:not(.admin-body) h3,
body:not(.admin-body) h4{
  letter-spacing:-.018em;
  color:var(--text-main);
}
body:not(.admin-body) a{
  text-underline-offset:.18em;
}
body:not(.admin-body) :focus-visible{
  outline:3px solid rgba(207,155,60,.5);
  outline-offset:3px;
}

.site-header{
  min-height:96px;
  padding:.45rem 0;
  background:var(--header-bg)!important;
  border-bottom:1px solid var(--border-color);
  box-shadow:none;
  backdrop-filter:blur(20px) saturate(140%);
  transition:background-color 400ms ease,box-shadow 400ms ease,min-height 400ms ease, border-color 400ms ease;
}
.site-header.is-scrolled{
  min-height:76px;
  background:var(--header-bg-scrolled)!important;
  box-shadow:0 12px 40px rgba(0,0,0,.15);
}
.brand-lockup{
  display:inline-flex;
  align-items:center;
  gap:.85rem;
  text-decoration:none!important;
}
.brand-emblem{
  width:78px!important;
  height:78px!important;
  display:grid;
  place-items:center;
  flex:none;
  transition: transform 550ms cubic-bezier(0.34, 1.6, 0.64, 1);
}
.brand-lockup:hover .brand-emblem{
  transform: scale(1.08) rotate(-4deg);
}
.brand-emblem picture,
.brand-emblem img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:1;
  border-radius:50%;
  clip-path:circle(50% at 50% 50%);
}
.brand-wordmark{
  display:flex;
  align-items:baseline;
  color:var(--text-main);
  line-height:1;
  transition: color 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.brand-wordmark strong{
  font-size:1.85rem!important;
  font-weight:800;
  letter-spacing:-.045em;
}
.brand-wordmark small{
  font-size:1.85rem!important;
  font-weight:400!important;
  letter-spacing:-.045em;
  color:var(--text-main)!important;
}
.site-header .nav-link{
  padding:.72rem .64rem!important;
  border-radius:6px;
  color:var(--nav-link-color);
  font-size:.86rem;
  font-weight:700;
  transition:color 180ms ease,background-color 180ms ease;
}
.site-header .nav-link::after{display:none!important}
.site-header .nav-link:hover,
.site-header .nav-link:focus,
.site-header .nav-link.active{
  color:var(--color-link-hover);
  background:rgba(132,151,124,.12);
}

body:not(.admin-body) .btn{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  border-radius:999px;
  padding:.68rem 1.1rem;
  font-weight:750;
  letter-spacing:0;
  transition:transform 180ms ease,box-shadow 180ms ease,background-color 180ms ease,border-color 180ms ease,color 180ms ease;
}
body:not(.admin-body) .btn:hover{transform:translateY(-2px)}
body:not(.admin-body) .btn:active{transform:translateY(0)}
body:not(.admin-body) .btn-gold,
body:not(.admin-body) .btn-primary{
  color:#171812;
  border-color:var(--color-gold-500);
  background:var(--color-gold-500);
  box-shadow:0 8px 22px rgba(159,112,35,.18);
}
body:not(.admin-body) .btn-gold:hover,
body:not(.admin-body) .btn-primary:hover{
  color:#fff;
  border-color:var(--color-gold-700);
  background:var(--color-gold-700);
}
body:not(.admin-body) .btn-pine,
body:not(.admin-body) .btn-secondary{
  color:#fff;
  border-color:var(--color-forest-800);
  background:var(--color-forest-800);
  box-shadow:0 8px 22px rgba(11,31,23,.14);
}
body:not(.admin-body) .btn-pine:hover,
body:not(.admin-body) .btn-secondary:hover{
  color:#fff;
  border-color:var(--color-forest-950);
  background:var(--color-forest-950);
}
body:not(.admin-body) .btn-outline-pine{
  color:var(--color-forest-800);
  border-color:rgba(24,70,50,.45);
  background:rgba(255,255,255,.45);
}
body:not(.admin-body) .btn-outline-pine:hover{
  color:#fff;
  border-color:var(--color-forest-800);
  background:var(--color-forest-800);
}

.section-heading h2{
  font-size:clamp(2.25rem,4.6vw,4.25rem);
  font-weight:700!important;
  line-height:.98;
}
.section-heading>a{
  color:var(--color-forest-800);
  font-weight:750;
  text-decoration:none;
}
.section-heading>a:hover{text-decoration:underline}
.eyebrow{
  color:var(--color-clay-700)!important;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.13em;
}
.guide-band{
  background:var(--color-cream-100);
  border-block:1px solid var(--color-line);
}

.business-card{
  position:relative;
  border:1px solid var(--color-line)!important;
  border-radius:var(--radius-lg)!important;
  background:rgba(255,255,255,.92)!important;
  box-shadow:var(--shadow-card)!important;
  transition:transform 240ms cubic-bezier(.22,1,.36,1),box-shadow 240ms ease,border-color 240ms ease;
}
.business-card:hover{
  transform:translateY(-4px);
  border-color:rgba(207,155,60,.5)!important;
  box-shadow:0 20px 48px rgba(11,31,23,.13)!important;
}
.business-card.tier-premium{border-top:4px solid var(--color-gold-500)!important}
.business-card.tier-basic{border-top:4px solid var(--color-sage-700)!important}
.business-card-media{
  position:relative;
  min-height:210px;
  overflow:hidden;
  background:var(--color-forest-900);
}
.business-media-fallback{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:rgba(251,248,240,.92);
  background:
    linear-gradient(rgba(255,255,255,.04),rgba(255,255,255,0)),
    url("../images/sections/local-businesses.webp") center/cover;
}
.business-media-fallback::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(11,31,23,.68);
}
.business-media-fallback span{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:76px;
  height:76px;
  border:1px solid rgba(255,255,255,.42);
  border-radius:50%;
  font-family:"Fraunces",Georgia,serif;
  font-size:1.8rem;
  font-weight:700;
  background:rgba(11,31,23,.48);
  backdrop-filter:blur(8px);
}
.business-card-img{
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  aspect-ratio:auto!important;
  object-fit:cover;
  transition:transform 700ms cubic-bezier(.22,1,.36,1);
}
.business-card:hover .business-card-img{transform:scale(1.045)}
.business-card-body{padding:1.25rem!important}
.business-card h3 a{text-decoration:none}
.business-card h3 a:hover{text-decoration:underline}

.category-tile{
  min-height:96px;
  border:1px solid var(--border-color)!important;
  border-radius:var(--radius-lg)!important;
  background:var(--bg-card)!important;
  box-shadow:0 8px 24px rgba(0,0,0,0.06);
  transition:transform 220ms cubic-bezier(.22,1,.36,1),border-color 220ms ease,background-color 220ms ease;
}
.category-tile:hover{
  transform:translateY(-3px);
  border-color:var(--color-gold-500)!important;
  background:var(--bg-card-hover)!important;
}
.category-tile i{
  color:var(--color-forest-800)!important;
  background:var(--color-sage-100)!important;
  border:1px solid rgba(82,107,85,.10);
  transition: background-color 0.4s ease, color 0.4s ease;
}


.site-footer{
  margin-top:0!important;
  padding-top:1rem;
  color:#f7f2e7;
  background:var(--footer-bg)!important;
  border-top:5px solid var(--color-gold-600);
  transition: background-color 0.4s ease;
}
.footer-brand{
  display:inline-flex!important;
  align-items:center;
  gap:.7rem;
  margin:0 0 1rem!important;
  color:#fff!important;
  text-decoration:none;
}
.footer-brand img{display:block;width:72px;height:72px;object-fit:cover;aspect-ratio:1;border-radius:50%;clip-path:circle(50% at 50% 50%)}
.footer-brand span{font-size:1.6rem;letter-spacing:-.04em}
.footer-brand strong{font-weight:800}
.site-footer h3{color:var(--color-gold-500)}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.footer-bottom{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.5rem;
  color:rgba(251,248,240,.7);
}

@media (max-width:991px){
  .site-header{min-height:80px}
  .brand-emblem{width:64px!important;height:64px!important}
  .brand-wordmark strong,.brand-wordmark small{font-size:1.5rem!important}
  .site-header .navbar-collapse{
    margin-top:.75rem;
    padding:1rem;
    border:1px solid var(--border-color);
    border-radius:8px;
    background:var(--nav-bg-collapse);
    box-shadow:var(--shadow-card);
  }
  .site-header .nav-item .btn{width:100%;margin-top:.35rem}
}
@media (max-width:575px){
  .brand-emblem{width:52px!important;height:52px!important}
  .brand-wordmark strong,.brand-wordmark small{font-size:1.25rem!important}
  .footer-bottom{display:grid}
}

/* Custom Scrollbars for Modern Look */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: var(--bg-body);
}
::-webkit-scrollbar-thumb {
  background: var(--color-sage-500);
  border: 2px solid var(--bg-body);
  border-radius: 99px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--color-forest-800);
}

/* Weather Widget Styles */
.weather-card {
  padding: 1.5rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-color);
  background: var(--bg-card);
  box-shadow: var(--shadow-active);
  transition: background-color 0.4s ease, border-color 0.4s ease, transform 0.4s var(--spring-easing);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.weather-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.weather-temp-group {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.weather-temp {
  font-size: 2.2rem;
  font-weight: 800;
  font-family: "Fraunces", Georgia, serif;
  color: var(--text-main);
  line-height: 1;
}
.weather-icon {
  font-size: 2.4rem;
  animation: float-icon 4s ease-in-out infinite;
}
@keyframes float-icon {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
.weather-meta {
  font-size: 0.88rem;
  color: var(--text-muted);
}
.weather-rec {
  border-top: 1px dashed var(--border-color);
  padding-top: 0.85rem;
  font-size: 0.94rem;
  line-height: 1.45;
}
.weather-rec-label {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--color-clay-500);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.25rem;
  display: block;
}

/* Itinerary Planner Styles */
.itinerary-section {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  padding: 3rem 2rem;
  margin-top: 3.5rem;
  box-shadow: var(--shadow-active);
  transition: background-color 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}
.itinerary-tabs {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 2.5rem;
  flex-wrap: wrap;
}
.itinerary-tab-btn {
  border: 1px solid var(--border-color);
  background: var(--bg-body);
  color: var(--text-main);
  padding: 0.65rem 1.35rem;
  border-radius: 99px;
  font-weight: 700;
  font-size: 0.94rem;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
  transition: transform 0.3s var(--spring-easing), background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.itinerary-tab-btn:hover {
  transform: translateY(-2px);
  border-color: var(--color-gold-500);
  background: var(--bg-card-hover);
}
.itinerary-tab-btn:active {
  transform: translateY(0) scale(0.97);
}
.itinerary-tab-btn.active {
  background: var(--color-forest-800);
  color: #ffffff;
  border-color: var(--color-forest-800);
  box-shadow: 0 4px 12px rgba(24, 70, 50, 0.22);
}
.itinerary-timeline {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
  padding-left: 2.5rem;
}
.itinerary-timeline::before {
  content: "";
  position: absolute;
  left: 9px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: var(--border-color);
}
.itinerary-item {
  position: relative;
  margin-bottom: 2.5rem;
  opacity: 0;
  transform: translateY(28px) scale(0.97);
  transition: opacity 750ms var(--smooth-easing), transform 750ms var(--spring-easing);
  will-change: transform, opacity;
}
.itinerary-item.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.itinerary-item:last-child {
  margin-bottom: 0;
}
.itinerary-item::before {
  content: "";
  position: absolute;
  left: -37px;
  top: 7px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--color-gold-500);
  border: 4px solid var(--bg-card);
  box-shadow: 0 0 0 2px var(--border-color);
  transition: background-color 0.3s ease, border-color 0.3s ease;
  z-index: 2;
}
.itinerary-time {
  font-family: "Fraunces", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--color-clay-500);
  margin-bottom: 0.45rem;
  display: block;
  transition: color 0.4s ease;
}
.itinerary-content {
  background: var(--bg-body);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 1.5rem;
  box-shadow: 0 4px 15px rgba(0,0,0,0.015);
  transition: background-color 0.4s ease, border-color 0.4s ease;
}
.itinerary-title {
  font-size: 1.25rem;
  font-weight: 750;
  margin-bottom: 0.45rem;
  color: var(--text-main);
  transition: color 0.4s ease;
}
.itinerary-content p {
  transition: color 0.4s ease;
}

/* Force All Hero Text to Remain White (High Legibility Overlay Fix) */
.home-hero-content h1,
.home-hero-content h2,
.home-hero-content p,
.home-hero-content .eyebrow,
.business-profile-hero h1,
.business-profile-hero p,
.business-profile-hero .eyebrow,
.things-hero h1,
.things-hero p,
.things-hero .eyebrow,
.page-hero h1,
.page-hero p,
.page-hero .eyebrow {
  color: #ffffff !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45), 0 1px 2px rgba(0, 0, 0, 0.35) !important;
}

/* Force Footer Titles to Remain White (High Contrast Fix) */
.site-footer h3,
.site-footer .h6 {
  color: #ffffff !important;
}

/* Things Place Card Image Layout */
.things-place-card {
  overflow: hidden !important;
}
.things-place-media {
  position: relative;
  margin: -1.5rem -1.5rem 1.25rem -1.5rem;
  height: 200px;
  overflow: hidden;
  border-bottom: 1px solid var(--border-color);
}
.things-place-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--smooth-easing);
}
.things-place-card:hover .things-place-media img {
  transform: scale(1.05);
}

/* Force Call-to-Action band text to remain high-contrast white */
.cta-band h2,
.cta-band .h2,
.cta-band p:not(.eyebrow) {
  color: #ffffff !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35) !important;
}
.cta-band .eyebrow {
  color: var(--color-gold-500) !important;
}

/* Fix Hero Slider overlay blocking clicks */
.home-hero-texture {
  pointer-events: none !important;
}

/* Things Place Card Image Layout */
.things-place-card {
  overflow: hidden !important;
}
.things-place-media {
  position: relative;
  margin: -1.5rem -1.5rem 1.25rem -1.5rem;
  height: 200px;
  overflow: hidden;
  border-bottom: 1px solid var(--border-color);
}
.things-place-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--smooth-easing);
}
.things-place-card:hover .things-place-media img {
  transform: scale(1.05);
}

/* Fix premium homepage card circle outline inheritance bug */
.home-editorial-card::after {
  border-radius: 8px !important;
  border: none !important;
  background: transparent !important;
}

/* Homepage explore cards round logo badge positioning & styling */
.home-editorial-card .home-activity-icon {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem !important;
  right: auto !important;
  z-index: 2;
  width: 58px !important;
  height: 58px !important;
  display: grid;
  place-items: center;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.16) !important;
  backdrop-filter: blur(8px) !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15) !important;
}
.home-editorial-card .home-activity-icon picture,
.home-editorial-card .home-activity-icon img {
  width: 36px !important;
  height: 36px !important;
  display: block;
  object-fit: contain !important;
  border-radius: 0 !important;
  clip-path: none !important;
  background: transparent !important;
  border: none !important;
}
