:root {
	--bg: #f6f4ec;
    --dark-green: #16321f;
    --mid-green: #1c5c33;
    --darker-green: #123f22;
    --pale-green: #e3eedd;
    --lighter-green: #cfe3c9;
    --muted-green: #45564a;
    --soft-green: #6b7f6f;
    --card-border: #e4e1d4;
    --white: #ffffff;
    --tan-bg: #f0e4d8;
    --tan-text: #6e4520;
    --tan-text-dark: #543416;
    --tan-accent: #8a5a2b;
    --tan-dot: #c98a3d;
    --open-dot: #3d9a5f;
    --dark-muted: #9fb8a5;
    --dark-border: #4e6a56;
    --cta-text: #b9cbbd;
}
@keyframes pulse-dot { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
.page-main {
	max-width: 1200px;
	margin: 0 auto;
	padding: 56px 13px 96px;
	display: flex;
	flex-direction: column;
	gap: 72px;
}
h1, h2 {
	margin: 0;
}
/* ── Buttons ── */
.btn-solid {
    background-color: var(--gp);
    color: var(--white);
    font-weight: 600;
    font-size: 15px;
    padding: 14px 26px;
    border-radius: 999px;
    text-decoration: none;
    display: inline-block;
}
.btn-solid:hover {
	background-color: #000;
	cursor: pointer;
}
.btn-outline {
    background-color: transparent;
    color: var(--gp);
    font-weight: 600;
    font-size: 15px;
    padding: 13px 26px;
    border-radius: 999px;
    border: 1.5px solid var(--gp);
    text-decoration: none;
    display: inline-block;
}
.btn-outline:hover {
	background-color: var(--gp);
	cursor: pointer;
}
.btn-closed-cta {
    background: var(--tan-text);
    color: var(--bg);
    font-weight: 600;
    font-size: 15px;
    padding: 13px 26px;
    border-radius: 999px;
    margin-top: 6px;
    text-decoration: none;
    display: inline-block;
}
.btn-closed-cta:hover { background: var(--tan-text-dark); text-decoration: none; }
.btn-cta-primary {
    background-color: var(--white);
    color: var(--gp);
    font-weight: 700;
    font-size: 16px;
    padding: 16px 28px;
    border-radius: 999px;
    text-align: center;
    text-decoration: none;
    display: block;
}
.btn-cta-primary:hover {
	background-color: #000;
	color: var(--white);
	cursor: pointer;
}
.btn-cta-outline {
    background-color: transparent;
    color: var(--white);
    font-weight: 600;
    font-size: 16px;
    padding: 15px 28px;
    border-radius: 999px;
    border: 1.5px solid var(--white);
    text-align: center;
    text-decoration: none;
    display: block;
}
.btn-cta-outline:hover {
	background-color: var(--white);
	color: var(--gp);
	cursor: pointer;
}

  /* ── Hero ── */
  .hero-section {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 56px;
    align-items: center;
  }

  .hero-content {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .hero-badges {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
  }

  .badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 7px 14px;
    border-radius: 999px;
  }

  .badge-open { background: var(--pale-green); color: var(--mid-green); }
  .badge-closed { background: var(--tan-bg); color: var(--tan-accent); }

  .is-hidden { display: none !important; }

  .badge-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--open-dot);
    animation: pulse-dot 2s ease-in-out infinite;
  }
  .badge-dot.is-closed-now { background: var(--tan-dot); }

  .badge-closed .badge-dot { background: var(--tan-dot); animation: none; }

  .badge-location {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--soft-green);
  }

  .hero-title {
    font-weight: 500;
    font-size: 58px;
    line-height: 1.05;
    color: var(--dark-green);
    text-wrap: pretty;
  }
  .hero-title em { color: var(--gp); }

  .hero-description {
    font-size: 18px;
    line-height: 1.55;
    color: var(--muted-green);
    margin: 0;
    max-width: 46ch;
  }

  .hero-address {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--muted-green);
    font-size: 15px;
  }
  .hero-address-icon { font-size: 17px; }

  .hero-buttons {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
  }

  .hero-image-wrap {
    position: relative;
    height: 460px;
    border-radius: 24px;
    overflow: hidden;
  }
.image-slot {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.image-slot img {
	height: 100%;
}

  /* ── Details / info grid ── */
  .details-section {
    display: grid;
    grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);
    gap: 24px;
  }

  .card {
    background: var(--white);
    border: 1px solid var(--card-border);
    border-radius: 20px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 18px;
  }

  .card-title {
    font-style: italic;
    font-weight: 600;
    font-size: 30px;
    color: var(--gp-other);
  }

  .hours-list {
    display: flex;
    flex-direction: column;
  }

  .hours-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    padding: 11px 12px;
    border-radius: 10px;
    border-bottom: 1px solid #f0eee3;
    background: transparent;
    font-weight: 400;
    color: var(--muted-green);
  }

  .hours-row.is-today {
    background: var(--pale-green);
    font-weight: 600;
    color: var(--mid-green);
  }

  .hours-label { font-size: 15px; }
  .hours-time { font-size: 15px; font-variant-numeric: tabular-nums; }

  .hours-note {
    margin: 0;
    font-size: 13px;
    color: var(--soft-green);
  }

  .side-column {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .card-dark {
    background: var(--gp-other);
    color: var(--white);
    border-radius: 20px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .card-dark .card-title { color: var(--white); }

  .contact-info {
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 15px;
    line-height: 1.5;
  }

  .contact-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .contact-label {
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--dark-muted);
  }

  .contact-phone-link {
    color: var(--bg);
    font-weight: 600;
  }
  .contact-phone-link:hover { color: var(--lighter-green); }

  .card-offer {
    flex: 1;
  }

  .offerings-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  .offering-chip {
    background: var(--gp);
    color: var(--gp-light);
    font-size: 14px;
    font-weight: 500;
    padding: 8px 15px;
    border-radius: 999px;
  }
.image-slot iframe {
    width: 100%;
    height: 100%;
}
  /* ── Closed notice ── */
  .closed-notice {
    display: flex;
    background: var(--tan-bg);
    border-radius: 20px;
    padding: 40px;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }

  .closed-title {
    font-style: italic;
    font-weight: 600;
    font-size: 32px;
    color: var(--tan-text);
  }

  .closed-text {
    margin: 0;
    font-size: 16px;
    line-height: 1.55;
    color: var(--tan-text);
    max-width: 60ch;
  }

  .closed-link {
    color: var(--tan-text);
    font-weight: 600;
  }

  /* ── Map ── */
  .map-section {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .map-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
  }

  .map-title {
    font-weight: 500;
    font-size: 40px;
    color: var(--dark-green);
  }
  .map-title em { color: var(--mid-green); }

  .map-link { font-weight: 600; font-size: 15px; }

  .map-container {
    position: relative;
    height: 380px;
  }

  .map-image-wrap {
    position: absolute;
    inset: 0;
    border-radius: 24px;
    overflow: hidden;
  }

  .map-pin-overlay {
    position: absolute;
    left: 20px;
    bottom: 20px;
    background: var(--white);
    border-radius: 14px;
    padding: 14px 20px;
    box-shadow: 0 8px 28px rgba(22,50,31,.18);
    display: flex;
    align-items: center;
    gap: 10px;
    pointer-events: none;
  }

  .map-pin-icon { font-size: 17px; }
  .map-pin-text { font-size: 14px; font-weight: 600; color: var(--dark-green); }

  /* ── CTA ── */
.cta-section {
	background-color: var(--gp);
	border-radius: 24px;
	padding: 56px;
	display: grid;
	grid-template-columns: minmax(0,1.4fr) minmax(0,1fr);
	gap: 40px;
	align-items: center;
}
.cta-content {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.cta-eyebrow {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gp-light);
}
.cta-title {
    font-weight: 500;
    font-size: 42px;
    line-height: 1.1;
    color: var(--white);
}
.cta-title em {
	color: var(--lighter-green);
}
.cta-text {
    margin: 0;
    font-size: 16px;
    line-height: 1.55;
    color: var(--white);
    max-width: 52ch;
}
.cta-buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
}
@media (max-width: 760px) {
	.hero-section, .details-section, .cta-section {
		grid-template-columns: 1fr;
	}
}