/*
 * Anna Grace Roth — Mirrored & Scoped Astra Stylesheet
 * Scoped under .agr-site to prevent global resets from conflicting with booking controls.
 * Palette tokens:
 *   --agr-teal: #014949
 *   --agr-peach: #f2c896
 *   --agr-mint: #96ebd2
 *   --agr-blue: #066aab
 *   --agr-text: #0f172a
 *   --agr-text-secondary: #6c6770
 *   --agr-bg: #ffffff
 *   --agr-bg-alt: #f9f9f9
 *   --agr-bg-card: #fbfbfb
 */

@import url('https://fonts.googleapis.com/css2?family=Baskervville:ital,wght@0,400;0,600;1,400&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=fallback');

:root,
.agr-site {
  --agr-teal: #014949;
  --agr-peach: #f2c896;
  --agr-mint: #96ebd2;
  --agr-blue: #066aab;
  --agr-text: #0f172a;
  --agr-text-secondary: #6c6770;
  --agr-bg: #ffffff;
  --agr-bg-alt: #f9f9f9;
  --agr-bg-card: #fbfbfb;

  --ast-container-default-xlg-padding: 2.5em;
  --ast-container-default-lg-padding: 2.5em;
  --ast-container-default-slg-padding: 2em;
  --ast-container-default-md-padding: 2.5em;
  --ast-container-default-sm-padding: 2.5em;
  --ast-container-default-xs-padding: 2.4em;
  --ast-container-default-xxs-padding: 1.8em;
  --ast-normal-container-width: 1200px;
  --ast-narrow-container-width: 800px;

  --ast-global-color-0: #014949;
  --ast-global-color-1: #066aab;
  --ast-global-color-2: #0f172a;
  --ast-global-color-3: #6c6770;
  --ast-global-color-4: #f9f9f9;
  --ast-global-color-5: #f9f9f9;
  --ast-global-color-6: #014949;
  --ast-global-color-7: #f2c896;
  --ast-global-color-8: #96ebd2;
}

body.agr-site,
.agr-site {
  margin: 0;
  padding: 0;
  background-color: var(--agr-bg-alt);
  color: var(--agr-text);
  font-family: 'Libre Baskerville', serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.75;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  -webkit-font-smoothing: antialiased;
}

.agr-site *,
.agr-site *::before,
.agr-site *::after {
  box-sizing: border-box;
}

.agr-site ::selection {
  background-color: #014949;
  color: #ffffff;
}

.agr-site h1,
.agr-site h2,
.agr-site h3,
.agr-site h4,
.agr-site h5,
.agr-site h6,
.agr-site .site-title,
.agr-site .site-title a {
  font-family: 'Baskervville', serif;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.65px;
  color: var(--agr-text);
  margin-top: 0;
}

.agr-site h1 {
  font-size: 2.5rem;
  line-height: 1.4;
}

.agr-site h2 {
  font-size: 2.25rem;
  line-height: 1.3;
}

.agr-site h3 {
  font-size: 2rem;
  line-height: 1.3;
}

.agr-site h4 {
  font-size: 1.75rem;
  line-height: 1.2;
}

.agr-site h5 {
  font-size: 1.5rem;
  line-height: 1.2;
}

.agr-site h6 {
  font-size: 1.375rem;
  line-height: 1.25;
}

.agr-site a {
  color: var(--agr-teal);
  text-decoration: none;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.agr-site a:hover,
.agr-site a:focus {
  color: var(--agr-blue);
}

.agr-site button,
.agr-site input,
.agr-site select,
.agr-site textarea {
  font-family: 'Libre Baskerville', serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--agr-text);
}

/* Container & Layout */
.agr-site .ast-container,
.agr-site .agr-container {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--ast-container-default-xlg-padding);
  padding-right: var(--ast-container-default-xlg-padding);
}

.agr-site .ast-flex {
  display: flex;
  flex-wrap: wrap;
}

.agr-site .ast-inline-flex {
  display: inline-flex;
  align-items: center;
}

.agr-site .ast-grid-center-col-layout {
  justify-content: center;
  align-items: center;
  text-align: center;
}

.agr-site .site-header-section {
  justify-content: center;
  align-items: center;
}

/* Header (#masthead) */
.agr-site #masthead,
.agr-site .site-header {
  background-color: var(--agr-bg-alt);
  border-bottom: 1px solid var(--agr-peach);
  position: relative;
  z-index: 99;
}

.agr-site .ast-above-header-bar {
  background-color: var(--agr-bg-alt);
  min-height: 50px;
  padding-top: 1.25rem;
  padding-bottom: 0.5rem;
  display: block;
}

.agr-site .ast-primary-header-bar {
  background-color: var(--agr-bg-alt);
  min-height: 30px;
  padding-top: 0.25rem;
  padding-bottom: 0.85rem;
  display: block;
}

.agr-site .site-branding,
.agr-site .ast-site-identity {
  text-align: center;
  padding: 0.25rem 0;
}

.agr-site .ast-site-identity .site-title,
.agr-site .site-title {
  font-size: 2.75rem;
  display: block;
  margin: 0;
  font-family: 'Baskervville', serif;
  font-weight: 600;
  letter-spacing: 0.65px;
}

.agr-site .ast-site-identity .site-title a,
.agr-site .site-title a {
  color: var(--agr-teal);
  text-decoration: none;
}

.agr-site .ast-site-identity .site-title a:hover,
.agr-site .site-title a:hover {
  color: var(--agr-blue);
}

.agr-site .site-header .site-description,
.agr-site .site-description {
  font-family: 'Libre Baskerville', serif;
  font-size: 1.125rem;
  color: var(--agr-text-secondary);
  margin: 0.2rem 0 0;
  display: block;
}

/* Primary Navigation */
.agr-site #primary-site-navigation-desktop {
  display: flex;
  justify-content: center;
}

.agr-site .main-header-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
}

.agr-site .main-header-menu > .menu-item {
  position: relative;
  line-height: 30px;
}

.agr-site .main-header-menu > .menu-item > .menu-link {
  display: flex;
  align-items: center;
  padding: 0.35rem 1rem;
  font-family: 'Libre Baskerville', serif;
  font-size: 0.9375rem;
  color: var(--agr-text);
  text-decoration: none;
}

.agr-site .main-header-menu > .menu-item:hover > .menu-link,
.agr-site .main-header-menu > .menu-item > .menu-link:focus {
  color: var(--agr-teal);
}

.agr-site .main-header-menu > .menu-item.current-menu-item > .menu-link,
.agr-site .main-header-menu > .menu-item > .menu-link.agr-nav-active {
  color: var(--agr-teal);
  font-weight: 700;
  border-bottom: 2px solid var(--agr-peach);
}

/* Mobile Header */
.agr-site #ast-mobile-header {
  display: none;
}

.agr-site .menu-toggle {
  background: transparent;
  border: 1px solid var(--agr-teal);
  color: var(--agr-teal);
  padding: 0.45rem 0.65rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.agr-site .ast-mobile-header-content {
  display: none;
  background-color: var(--agr-bg-alt);
  border-top: 1px solid var(--agr-peach);
  padding: 0.75rem 1.25rem;
}

.agr-site #ast-mobile-header.is-open .ast-mobile-header-content {
  display: block;
}

/* Main Content Area */
.agr-site .site-content,
.agr-site #content {
  flex: 1 0 auto;
  background-color: var(--agr-bg);
  padding: 2.5rem 0 3.5rem;
}

/* Reusable Booking Components */
.agr-site .agr-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Libre Baskerville', serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.2;
  padding: 0.85rem 1.85rem;
  border: 2px solid var(--agr-teal);
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.agr-site .agr-btn-primary {
  background-color: var(--agr-teal);
  color: var(--agr-bg);
  border-color: var(--agr-teal);
}

.agr-site .agr-btn-primary:hover,
.agr-site .agr-btn-primary:focus {
  background-color: var(--agr-peach);
  color: var(--agr-teal);
  border-color: var(--agr-teal);
}

.agr-site .agr-btn-secondary {
  background-color: var(--agr-bg);
  color: var(--agr-teal);
  border-color: var(--agr-teal);
}

.agr-site .agr-btn-secondary:hover,
.agr-site .agr-btn-secondary:focus {
  background-color: var(--agr-peach);
  color: var(--agr-teal);
  border-color: var(--agr-teal);
}

.agr-site .agr-slot-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Libre Baskerville', serif;
  font-size: 0.95rem;
  font-weight: 400;
  padding: 0.65rem 1.25rem;
  color: #014949;
  background-color: #ffffff;
  border: 1.5px solid #014949;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.agr-site .agr-slot-btn:hover,
.agr-site .agr-slot-btn:focus,
.agr-site .agr-slot-btn.is-selected {
  background-color: #f2c896;
  color: #014949;
  border-color: #014949;
}

.agr-site .agr-card {
  background-color: var(--agr-bg-card);
  border: 1px solid var(--agr-peach);
  padding: 1.75rem;
  margin-bottom: 1.5rem;
}

.agr-site .agr-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  background-color: var(--agr-bg);
}

.agr-site .agr-table th,
.agr-site .agr-table td {
  padding: 0.75rem 1rem;
  text-align: left;
  border-bottom: 1px solid var(--agr-bg-alt);
}

.agr-site .agr-table th {
  font-family: 'Baskervville', serif;
  font-weight: 600;
  color: var(--agr-teal);
  border-bottom: 2px solid var(--agr-teal);
  background-color: var(--agr-bg-card);
}

.agr-site .agr-badge {
  display: inline-block;
  padding: 0.2rem 0.65rem;
  font-size: 0.8125rem;
  font-weight: 700;
  border: 1px solid var(--agr-teal);
  background-color: var(--agr-mint);
  color: var(--agr-teal);
}

.agr-site .agr-badge-peach {
  background-color: var(--agr-peach);
  color: var(--agr-teal);
}

.agr-site .agr-badge-muted {
  background-color: var(--agr-bg-alt);
  color: var(--agr-text-secondary);
  border-color: var(--agr-text-secondary);
}

.agr-site .agr-alert {
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  border-left: 4px solid var(--agr-teal);
  background-color: var(--agr-mint);
  color: var(--agr-teal);
}

.agr-site .agr-alert-peach,
.agr-site .agr-alert-warning {
  background-color: var(--agr-peach);
  border-left-color: var(--agr-teal);
  color: var(--agr-text);
}

.agr-site .agr-input,
.agr-site .agr-select,
.agr-site .agr-textarea {
  width: 100%;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--agr-text-secondary);
  background-color: var(--agr-bg);
  color: var(--agr-text);
}

.agr-site .agr-input:focus,
.agr-site .agr-select:focus,
.agr-site .agr-textarea:focus {
  outline: none;
  border-color: var(--agr-teal);
}

/* Footer (#colophon) */
.agr-site #colophon,
.agr-site .site-footer {
  background-color: var(--agr-teal);
  color: var(--agr-bg);
  padding: 3rem 0 2rem;
  margin-top: auto;
  position: relative;
  overflow: hidden;
}

.agr-site .agr-footer-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
  position: relative;
  z-index: 2;
}

.agr-site .agr-footer-brand h3 {
  color: var(--agr-peach);
  font-size: 1.85rem;
  margin-bottom: 0.25rem;
}

.agr-site .agr-footer-brand h5 {
  color: var(--agr-mint);
  font-size: 1.125rem;
  margin-bottom: 1rem;
  font-weight: 400;
}

.agr-site .agr-footer-contact {
  color: var(--agr-bg);
  line-height: 1.8;
}

.agr-site .agr-footer-contact a,
.agr-site .agr-footer-policies a,
.agr-site .agr-footer-socials a {
  color: var(--agr-peach);
  text-decoration: none;
}

.agr-site .agr-footer-contact a:hover,
.agr-site .agr-footer-policies a:hover,
.agr-site .agr-footer-socials a:hover {
  color: var(--agr-mint);
}

.agr-site .agr-footer-socials {
  display: flex;
  gap: 1rem;
  margin-top: 1rem;
  align-items: center;
}

.agr-site .agr-footer-social-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.75rem;
  border: 1px solid var(--agr-peach);
  color: var(--agr-peach);
}

.agr-site .agr-footer-social-link svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.agr-site .agr-footer-clover {
  width: 72px;
  height: auto;
  opacity: 0.85;
  display: block;
  margin-bottom: 0.75rem;
}

.agr-site .agr-footer-bottom {
  margin-top: 2.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--agr-mint);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-size: 0.9rem;
}

.agr-site .agr-footer-policies {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}

/* ==========================================================================
   Astra Responsive Breakpoint Boundaries (1400px, 922px, 768px, 767px)
   ========================================================================== */

@media (min-width: 1400px) {
  .agr-site .ast-container,
  .agr-site .agr-container {
    max-width: 1200px;
    padding-left: var(--ast-container-default-xlg-padding);
    padding-right: var(--ast-container-default-xlg-padding);
  }
}

@media (max-width: 922px) {
  .agr-site #ast-desktop-header {
    display: none;
  }

  .agr-site #ast-mobile-header {
    display: block;
  }

  .agr-site .site-title,
  .agr-site .ast-site-identity .site-title {
    font-size: 2.25rem;
  }

  .agr-site .site-header .site-description {
    font-size: 1.125rem;
  }

  .agr-site h1 {
    font-size: 2.25rem;
  }

  .agr-site h2 {
    font-size: 2rem;
  }

  .agr-site h3 {
    font-size: 1.875rem;
  }

  .agr-site .ast-mobile-header-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1.25rem;
  }

  .agr-site #ast-mobile-header .site-branding {
    text-align: left;
  }

  .agr-site #ast-mobile-header .main-header-menu {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 768px) {
  .agr-site .ast-container,
  .agr-site .agr-container {
    padding-left: var(--ast-container-default-xs-padding);
    padding-right: var(--ast-container-default-xs-padding);
  }

  .agr-site .site-title,
  .agr-site .ast-site-identity .site-title {
    font-size: 1.625rem;
  }

  .agr-site .site-header .site-description {
    font-size: 1rem;
  }

  .agr-site h1 {
    font-size: 2rem;
  }

  .agr-site h2 {
    font-size: 1.75rem;
  }

  .agr-site h3 {
    font-size: 1.75rem;
  }

  .agr-site .agr-btn {
    padding: 0.75rem 1.5rem;
  }
}

@media (max-width: 767px) {
  .agr-site .ast-container,
  .agr-site .agr-container {
    padding-left: var(--ast-container-default-xxs-padding);
    padding-right: var(--ast-container-default-xxs-padding);
  }

  .agr-site .agr-footer-inner,
  .agr-site .agr-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }

  .agr-site .agr-card {
    padding: 1.25rem;
  }
}
