@charset "UTF-8";
:root {
  --layout-gap: 32px; }

/* ==============================
   MOBILE FIRST
============================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  transition: all 0.25s ease; }
  .site-header .cart-menu-item a {
    color: #f8f4eb !important;
    font-weight: 600 !important;
    text-decoration: none !important; }

.footer-menu {
  padding: 0;
  margin: 0; }
  .footer-menu li, .footer-menu ul li {
    padding: 0;
    margin: 0 !important;
    list-style-type: none; }
  .footer-menu ul {
    padding: 0 0 0 20px;
    margin: 0; }

.site-title {
  display: none; }

#masthead a {
  text-decoration: none !important; }

#primary-menu a {
  color: #f8f4eb;
  font-weight: 600; }
  @media (min-width: 1024px) {
    #primary-menu a {
      font-size: 1.125em; } }

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  /* allow nav to drop */
  /*padding: 12px 16px;*/
  background: #4f3909; }

/* Row 1 elements stay inline */
.header-left {
  display: flex;
  align-items: center;
  gap: 12px; }

.header-utilities {
  display: flex;
  order: 2;
  gap: 12px;
  flex-shrink: 0;
  /* prevents shrinking */ }

/* Nav forced to second row */
.main-navigation {
  flex-basis: 100%;
  /* 🔥 THIS is the key */
  order: 3;
  /* ensures it is last */ }

.main-navigation ul {
  display: none;
  flex-direction: column;
  padding: 16px 0;
  margin: 0;
  list-style: none;
  gap: 12px; }

.main-navigation.toggled ul {
  display: flex; }

/* --------------------------------
   LEFT GROUP (Logo + Hamburger)
-------------------------------- */
.header-left {
  display: flex;
  align-items: center;
  gap: 12px; }

/* Logo */
.site-branding {
  width: 70px;
  margin: 5px 0; }

/* --------------------------------
   Hamburger
-------------------------------- */
.menu-toggle {
  position: relative;
  width: 20px;
  /* slightly tighter */
  height: 14px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0; }

.menu-toggle span,
.menu-toggle::before,
.menu-toggle::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: #f8f4eb;
  transition: all 0.3s ease; }

.menu-toggle::before {
  top: 0; }

.menu-toggle span {
  top: 50%;
  transform: translateY(-50%); }

.menu-toggle::after {
  bottom: 0; }

/* Open state */
.menu-toggle.is-active::before {
  transform: rotate(45deg);
  top: 50%; }

.menu-toggle.is-active::after {
  transform: rotate(-45deg);
  bottom: auto;
  top: 50%; }

.menu-toggle.is-active span {
  opacity: 0; }

/* --------------------------------
   Utility Nav (Right)
-------------------------------- */
.header-utilities {
  display: flex;
  gap: 12px;
  flex-shrink: 0; }

.utility-menu {
  display: flex;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0; }

.utility-menu li:first-child a {
  padding: 6px 10px;
  background: #f74d00;
  color: white;
  font-weight: 600;
  text-transform: uppercase;
  font-size: .875em; }
  @media (min-width: 1024px) {
    .utility-menu li:first-child a {
      padding: 12px 15px;
      font-size: 1em; } }

.utility-menu a {
  white-space: nowrap; }

/* --------------------------------
   Main Navigation (collapsed)
-------------------------------- */
.main-navigation {
  width: 100%; }

.main-navigation ul {
  display: none;
  flex-direction: column;
  list-style: none;
  padding: 16px 0;
  margin: 0;
  gap: 12px; }

.main-navigation.toggled ul {
  display: flex; }

/* ==============================
   DESKTOP
============================== */
/* ==============================
   DESKTOP
============================== */
@media (min-width: 1024px) {
  /* Header transition base */
  .site-header {
    transition: box-shadow 0.25s ease, padding 0.25s ease;
    background: #fff; }

  /* Shadow when scrolling */
  .site-header.is-scrolled {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06); }

  /* Header inner spacing transition */
  .site-header .header-inner {
    transition: padding 0.25s ease; }

  /* Branding container controls layout */
  .site-header .site-branding {
    width: 130px;
    transition: width 0.25s ease; }

  /* Shrink branding container */
  .site-header.is-scrolled .site-branding {
    width: 70px; }

  /* Logo image animation */
  .site-header .site-branding img {
    width: 100%;
    height: auto;
    transition: transform 0.25s ease; }

  /* Subtle logo shrink */
  .site-header.is-scrolled .site-branding img {
    transform: scale(1); }

  /* Header row */
  .header-inner {
    display: flex;
    align-items: center;
    padding: 0 24px;
    gap: 40px;
    flex-wrap: nowrap;
    /* 🔥 stop wrapping on desktop */ }

  /* Hide hamburger */
  .menu-toggle {
    display: none; }

  /* Logo size for desktop */
  .site-branding {
    max-width: 130px;
    margin: 10px 0; }

  /* --------------------------------
     Main Navigation
  -------------------------------- */
  .main-navigation {
    flex: 1;
    /* KEY: fills space between logo and utilities */
    display: flex;
    align-items: center;
    width: auto;
    order: 1; }

  .main-navigation ul {
    display: flex !important;
    flex-direction: row;
    gap: 28px;
    list-style: none;
    margin: 0;
    padding: 0; }

  .main-navigation a {
    white-space: nowrap; }

  /* --------------------------------
     Utility Navigation (far right)
  -------------------------------- */
  .header-utilities {
    flex-shrink: 0;
    /* prevents wrapping */ }

  .utility-menu {
    display: flex;
    order: 2;
    gap: 28px;
    list-style: none;
    margin: 0;
    padding: 0;
    white-space: nowrap;
    /* forces single line */ } }
/* Hero Container */
.hero {
  position: relative;
  height: 70vh;
  min-height: 500px;
  background-image: url("your-image.jpg");
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat; }

/* Optional dark overlay for text readability */
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 0.4)); }

/* Text Content Position */
.home-cards-section {
  margin: 80px 0; }

.hero-content {
  position: absolute;
  left: var(--layout-gap);
  bottom: 12%;
  max-width: 520px;
  color: white; }

/* Typography */
.hero h1 {
  font-size: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: 1rem;
  line-height: 1.1; }

.hero p {
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  margin-bottom: 1.8rem;
  opacity: 0.9; }

/* CTA Button */
.hero-button {
  display: inline-block;
  padding: 14px 28px;
  text-decoration: none;
  background: #f8f4eb;
  color: #4f3909;
  font-weight: 600;
  border-radius: 3px;
  transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease; }
  .hero-button:visited {
    background: #f8f4eb;
    color: #4f3909; }

.hero-button:hover {
  transform: translateY(-2px);
  opacity: 0.92;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); }

.hero-seo-image {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap; }

.home-cards-grid {
  display: grid;
  gap: 32px;
  grid-template-columns: 1fr; }

.home-card, .home-card:visited {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  text-decoration: none;
  color: #404040; }

.home-card:hover {
  transform: translateY(-3px); }

.home-card-image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden; }

/* Tablet */
@media (min-width: 768px) {
  .home-cards-grid {
    grid-template-columns: repeat(2, 1fr); } }
/* Optional large desktop scaling */
@media (min-width: 1024px) {
  .home-cards-grid {
    grid-template-columns: repeat(4, 1fr); } }
.page-intro-content h2 {
  font-size: 1.75em; }

/* ------------------------------
   Shared Event Styles
------------------------------ */
.event-meta {
  font-size: 14px;
  opacity: 0.8;
  line-height: 1.4; }

.event-closed-badge {
  display: inline-block;
  padding: 10px 16px;
  background: #222;
  color: white;
  font-size: 13px;
  border-radius: 3px;
  margin-bottom: 24px; }

.event-single .event-type-badge {
  position: relative;
  top: auto;
  left: auto;
  display: inline-block;
  margin-bottom: 8px;
  font-size: 11px;
  letter-spacing: .04em;
  text-transform: uppercase; }

/* ===============================
   Single Event Page - Mobile First
   =============================== */
.event-single .grid-container {
  max-width: 100%; }

.event-description ul {
  padding: 0;
  margin: 20px 0 20px 40px; }

.event-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "photo" "info";
  gap: 1.5rem;
  width: 100%;
  max-width: 100%; }

/* Prevent grid children from expanding beyond column */
.event-left,
.event-right {
  min-width: 0; }

.event-right {
  grid-area: photo; }

.event-left {
  grid-area: info; }

.event-featured-image img {
  width: 100%;
  height: auto;
  margin-bottom: 1.5rem; }

/* Form wrapper for full-width fields */
.event-reservation-form-wrapper .form-field {
  margin-bottom: 1rem; }
.event-reservation-form-wrapper label {
  display: block;
  margin-bottom: 0.25rem;
  font-weight: 500; }
.event-reservation-form-wrapper input,
.event-reservation-form-wrapper textarea,
.event-reservation-form-wrapper select,
.event-reservation-form-wrapper button {
  width: 100%;
  box-sizing: border-box;
  padding: 0.5rem;
  font-size: 1rem; }
.event-reservation-form-wrapper button {
  padding: 15px 15px;
  background: #728a34;
  color: #f8f4eb;
  font-weight: 600;
  border-radius: 0px;
  font-size: 1.125em;
  border: none; }
  .event-reservation-form-wrapper button:hover {
    background: #f74d00; }

/* Desktop / Large Screens */
@media screen and (min-width: 1024px) {
  .event-columns {
    grid-template-columns: minmax(0, 60%) minmax(0, 40%);
    grid-template-areas: "info photo";
    gap: 2rem; } }
/* ===============================
   Archive Events Grid
=============================== */
.events-archive-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 1rem; }
  .events-archive-grid a,
  .events-archive-grid a:link,
  .events-archive-grid a:hover {
    color: #404040 !important;
    text-decoration: none; }

@media screen and (min-width: 768px) {
  .events-archive-grid {
    grid-template-columns: repeat(2, 1fr); } }
@media screen and (min-width: 1024px) {
  .events-archive-grid {
    grid-template-columns: repeat(3, 1fr); } }
/* Archive Card */
.events-archive-card {
  text-decoration: none;
  color: inherit;
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column; }

/* Image wrapper and badge */
.events-card-image {
  position: relative;
  width: 100%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center; }
  .events-card-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
    max-height: 300px; }
  .events-card-image .event-type-badge {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    background: rgba(34, 34, 34, 0.85);
    color: #fff;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    border-radius: 3px;
    z-index: 2;
    white-space: nowrap; }
    .events-card-image .event-type-badge.transactional {
      font-weight: 600;
      font-size: 0.8rem; }

/* Card content */
.events-card-content {
  padding: 0.75rem 0.5rem; }
  .events-card-content h3 {
    margin: 0.5rem 0;
    font-size: 1.1rem; }
  .events-card-content p {
    margin: 0;
    font-size: 0.875rem;
    opacity: 0.85; }

/* Past event appearance */
.past-event {
  opacity: 0.85; }
  .past-event img {
    filter: grayscale(40%); }

/* Pagination */
.archive-pagination {
  margin-top: 2rem;
  text-align: center; }

/* ===============================
Event Type Badge Colors
=============================== */
.event-type-badge {
  position: absolute;
  top: .5rem;
  left: .5rem;
  padding: .35rem .6rem;
  font-size: 12px;
  font-weight: 600;
  border-radius: 4px;
  color: #fff; }
  .event-type-badge.informational {
    background: #6b7280; }
  .event-type-badge.transactional {
    background: #1d4ed8; }
  .event-type-badge.pay_on_site {
    background: #059669; }

/* ----------------------------
   General Work Section Styles
---------------------------- */
.work-section ul {
  padding-left: 20px;
  line-height: 1.8; }

.work-intro {
  max-width: 700px; }

.work-cta {
  text-align: center;
  padding: 60px 0; }

.trust-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  font-size: 14px;
  opacity: 0.85;
  margin-bottom: 40px; }

/* ----------------------------
   FAQ Accordion Styles
---------------------------- */
.faq-accordion {
  border-bottom: 1px solid #e5e5e5;
  padding: 20px 0; }

.faq-question {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: none;
  border: none;
  text-align: left;
  font-size: 18px;
  font-weight: 500;
  cursor: pointer;
  padding: 0; }

.faq-title {
  max-width: 90%; }

.faq-indicator {
  width: 18px;
  height: 18px;
  position: relative; }

.faq-indicator::before,
.faq-indicator::after {
  content: "";
  position: absolute;
  background: #222;
  transition: transform 0.25s ease; }

.faq-indicator::before {
  width: 100%;
  height: 2px;
  top: 50%;
  left: 0;
  transform: translateY(-50%); }

.faq-indicator::after {
  width: 2px;
  height: 100%;
  left: 50%;
  top: 0;
  transform: translateX(-50%); }

/* Rotate into minus when active */
.faq-accordion.active .faq-indicator::after {
  transform: translateX(-50%) scaleY(0); }

/* Smooth height animation */
.faq-answer {
  overflow: hidden;
  height: 0;
  transition: height 0.3s ease; }

.faq-answer-inner {
  padding-top: 14px;
  line-height: 1.6; }

/* ----------------------------
   Service Offering Styles
---------------------------- */
.service-offering {
  background: white;
  padding: 20px 30px 30px 30px;
  margin-bottom: 30px;
  border: 2px solid rgba(217, 196, 152, 0.45);
  border-radius: 6px; }

.service-offering a,
.service-offering a:link,
.service-offering a:visited {
  color: #75581a; }

.service-offering h2 {
  margin-bottom: 12px; }

.service-offering a:first-of-type {
  padding: 6px 10px;
  background: #728a34;
  border-radius: 4px;
  color: #f8f4eb;
  font-weight: 500;
  text-decoration: none;
  margin-right: 8px; }

.service-offering a:first-of-type:hover {
  background: #f74d00; }

/* ----------------------------
   Service Expandable Content (Accordion)
---------------------------- */
.service-accordion {
  /* optional: can add border/padding if desired */ }

.service-click {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: none;
  background: #f8f4eb;
  padding: 20px;
  text-align: left;
  cursor: pointer;
  font-weight: 600;
  font-size: 1.25em; }

.service-title {
  max-width: 90%; }

.service-indicator {
  width: 18px;
  height: 18px;
  position: relative; }

.service-indicator::before,
.service-indicator::after {
  content: "";
  position: absolute;
  background: #222;
  transition: transform 0.25s ease; }

.service-indicator::before {
  width: 100%;
  height: 2px;
  top: 50%;
  left: 0;
  transform: translateY(-50%); }

.service-indicator::after {
  width: 2px;
  height: 100%;
  left: 50%;
  top: 0;
  transform: translateX(-50%); }

/* Rotate into minus when active */
.service-accordion.active .faq-indicator::after {
  transform: translateX(-50%) scaleY(0); }

/* Smooth height animation */
.service-answer {
  overflow: hidden;
  height: 0;
  transition: height 0.3s ease;
  background: #f8f4eb !important; }

.service-answer-inner {
  padding: 0px 20px 20px 20px; }

/* ----------------------------
   Service Offering Content Layout
---------------------------- */
.service-offering-content {
  display: flex;
  flex-direction: column;
  /* mobile: stack image above text */
  gap: 20px; }

/* Image styling for mobile */
.service-offering-content > div:first-child img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
  object-fit: cover; }

@media (max-width: 1023px) {
  .service-offering-wrapper > div:first-of-type {
    margin: 20px 0 0 0; } }
/* ----------------------------
   Desktop layout for service offerings
---------------------------- */
@media (min-width: 1024px) {
  /* Overall service offering */
  .service-offering {
    display: flex;
    gap: 40px; }

  /* Title column */
  .service-offering-title {
    width: 30%;
    max-width: 350px;
    flex-shrink: 0; }

  /* Content + image wrapper */
  .service-offering-wrapper {
    display: flex;
    flex: 1;
    gap: 20px;
    flex-wrap: nowrap;
    align-items: stretch;
    /* ensures image height matches text */ }

  /* Text content */
  .service-offering-wrapper > div:first-child {
    flex: 1;
    display: flex;
    flex-direction: column; }

  /* Image container (last element) */
  .service-offering-wrapper > div:last-child {
    flex: 0 0 300px;
    /* fixed width for all images */
    display: block;
    height: auto;
    border-radius: 6px;
    overflow: hidden; }

  /* Image itself */
  .service-offering-wrapper > div:last-child img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* crops proportionally */
    display: block; }

  /* Accordion spans full width under content + image */
  .service-accordion {
    width: 100%;
    margin-top: 20px; } }
/* ----------------------------
   FAQ Section Layout
---------------------------- */
.faq-section {
  max-width: 90%;
  padding-left: var(--layout-gap);
  padding-right: var(--layout-gap);
  margin: 60px auto; }

@media (min-width: 1024px) {
  .faq-section {
    max-width: 60%; } }
body.admin-bar {
  margin-top: 0 !important; }

body {
  background: #f8f4eb !important; }

#page.site {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh; }

#content {
  flex: 1; }

.page {
  margin: 0 !important; }

.fullwidth-section {
  padding-left: 15px;
  padding-right: 15px; }

@media (min-width: 740px) {
  .fullwidth-section {
    padding-left: var(--layout-gap);
    padding-right: var(--layout-gap); } }
.grid-container {
  /*    max-width:1400px;
      margin:0 auto;*/ }

.page-intro-content {
  width: 70%;
  margin: 80px auto;
  text-align: center; }
  .page-intro-content p {
    font-size: 1.125em; }

.breadcrumbs a,
.breadcrumbs a:link,
.breadcrumbs a:visited,
.faq-wrapper a,
.faq-wrapper a:link,
.faq-wrapper a:visited,
.service-offering-content a,
.service-offering-content a:link,
.service-offering-content a:visited {
  color: #4f3909;
  padding: 0;
  background: transparent;
  border-radius: 0px;
  font-weight: 400;
  text-decoration: underline;
  margin-right: 0; }
  .breadcrumbs a:hover,
  .breadcrumbs a:link:hover,
  .breadcrumbs a:visited:hover,
  .faq-wrapper a:hover,
  .faq-wrapper a:link:hover,
  .faq-wrapper a:visited:hover,
  .service-offering-content a:hover,
  .service-offering-content a:link:hover,
  .service-offering-content a:visited:hover {
    color: #f74d00;
    background: transparent; }

.bottom-page-padding {
  padding-bottom: 60px; }

/* ===============================
Portfolio Grid
================================ */
.portfolio-grid {
  display: grid;
  gap: 32px;
  grid-template-columns: 1fr; }

/* Card */
.portfolio-card a {
  display: block;
  position: relative;
  text-decoration: none; }

.portfolio-card a, .portfolio-card a:link, .portfolio-card a:visited {
  color: #404040 !important; }

/* Image */
.portfolio-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.portfolio-card figure,
.portfolio-card .wp-post-image {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden; }

/* Category Label Overlay */
.portfolio-category-label {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(0, 0, 0, 0.65);
  color: white;
  font-size: 12px;
  letter-spacing: 0.04em;
  padding: 6px 10px;
  text-transform: uppercase; }

/* Title */
.portfolio-card h3 {
  margin-top: 12px;
  font-size: 18px;
  line-height: 1.3; }

/* ===============================
Tablet
================================ */
@media (min-width: 768px) {
  .portfolio-grid {
    grid-template-columns: repeat(2, 1fr); } }
/* ===============================
Desktop
================================ */
@media (min-width: 1024px) {
  .portfolio-grid {
    grid-template-columns: repeat(3, 1fr); } }
/* ===============================
Portfolio Single Page
================================ */
.portfolio-single {
  max-width: 1200px;
  margin: 0 auto; }

/* Breadcrumbs */
.breadcrumbs {
  font-size: .875em;
  margin: 20px 0px; }

/* Description */
.portfolio-description {
  margin-bottom: 40px;
  line-height: 1.6; }

/* ===============================
Portfolio Gallery Grid
================================ */
.portfolio-gallery-grid {
  display: grid;
  gap: 32px;
  grid-template-columns: 1fr; }

/* Gallery Item */
.portfolio-gallery-item a {
  display: block; }

.portfolio-gallery-item img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover; }

/* Caption */
.portfolio-caption {
  margin-top: 8px;
  font-size: 14px;
  color: #555; }

/* ===============================
Tablet
================================ */
@media (min-width: 768px) {
  .portfolio-gallery-grid {
    grid-template-columns: repeat(2, 1fr); } }
/* ===============================
Desktop
================================ */
@media (min-width: 1024px) {
  .portfolio-gallery-grid {
    grid-template-columns: repeat(3, 1fr); } }
/* Max width/height for images */
.glightbox-container .gslide img {
  max-width: 90vw;
  /* 90% of viewport width */
  max-height: 80vh;
  /* 80% of viewport height */
  object-fit: contain; }

/* Optional: adjust caption style */
.glightbox-caption {
  color: #fff;
  font-size: 1rem; }

/* ===============================
   SHOP / STAKE FILTER BUTTONS
=============================== */
.shop-filters,
.stake-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  /* adds consistent spacing */
  margin-bottom: 1.5rem; }

/* buttons */
.shop-filters button,
.stake-filters button {
  background: white;
  border: none;
  padding: 0.4rem 0.75rem;
  font-size: 1em;
  cursor: pointer;
  border-radius: 0;
  transition: all .2s ease; }

/* hover */
.shop-filters button:hover,
.stake-filters button:hover {
  background: #f3efe6;
  /* subtle feedback */ }

/* active */
.shop-filters button.active,
.stake-filters button.active {
  background: #4f3909;
  color: #f8f4eb; }

/* ===============================
   FILTERED ITEM ANIMATION
=============================== */
.shop-card,
.stake-card {
  transition: opacity .25s ease, transform .25s ease; }

/* hidden items */
.hidden {
  opacity: 0;
  transform: scale(0.96);
  pointer-events: none;
  position: absolute; }

/* ===============================
   SHOP PRODUCT GRID
=============================== */
.shop-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 1rem; }

.shop-grid a,
.shop-grid a:link,
.shop-grid a:hover {
  color: #404040 !important;
  text-decoration: none; }

@media screen and (min-width: 768px) {
  .shop-grid {
    grid-template-columns: repeat(2, 1fr); } }
@media screen and (min-width: 1024px) {
  .shop-grid {
    grid-template-columns: repeat(3, 1fr); } }
/* ===============================
   PRODUCT CARD
=============================== */
.shop-card {
  overflow: hidden;
  display: flex;
  flex-direction: column; }

/* ===============================
   SINGLE PRODUCT PAGE - MOBILE FIRST
=============================== */
.single-product-page {
  margin: 0;
  padding: 1rem 0;
  width: 100%; }

/* Product hero: stacked by default */
.product-hero {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: 2rem; }

/* Product image (hero) */
.product-image {
  width: 100%;
  height: auto;
  overflow: hidden;
  position: relative; }

.hero-image {
  width: 100%;
  height: auto;
  /* natural aspect ratio */
  display: block; }

/* Category badge */
.category-badge {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  background: rgba(34, 34, 34, 0.85);
  color: #fff;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  border-radius: 3px;
  z-index: 2;
  text-transform: uppercase; }

/* Product info */
.product-info {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

/* Product title */
.product-title {
  font-size: 1.75rem;
  margin: 0; }

/* Product description */
.product-description {
  font-size: 1rem;
  line-height: 1.6; }

/* Price */
.product-price {
  font-size: 1.25rem;
  font-weight: 600; }

/* Add to cart button */
.product-add-to-cart button, .product-add-to-cart [type="button"], .product-add-to-cart [type="submit"] {
  margin-top: 30px !important;
  border-radius: 0 !important;
  padding: 20px 0 !important;
  width: 100%; }

/* Additional gallery */
.product-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 2rem; }

.gallery-thumb {
  width: 30%;
  aspect-ratio: 5 / 6;
  /* enforce uniform cropping */
  object-fit: cover;
  /* crop to fill */
  display: block; }

.gallery-thumb.active-thumb {
  border: 2px solid #222;
  opacity: 0.9; }

/* Reviews */
.product-reviews {
  margin-bottom: 2rem; }

/* Related products */
.related-products h2 {
  margin-bottom: 1rem; }

.related-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; }

.related-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit; }

.related-thumb {
  width: 100%;
  height: auto;
  /* natural aspect ratio */
  display: block;
  margin-bottom: 0.5rem; }

.related-title {
  font-size: 0.95rem;
  margin-bottom: 0.25rem; }

.related-price {
  font-size: 0.85rem;
  opacity: 0.85; }

/* ===============================
   DESKTOP (min-width: 1024px)
=============================== */
@media screen and (min-width: 1024px) {
  .product-hero {
    flex-direction: row;
    gap: 2rem;
    width: 100%;
    align-items: flex-start; }

  .product-image,
  .product-info {
    flex: 1 1 50%;
    min-width: 0; }

  .hero-image {
    width: 100%;
    height: auto; }

  .product-title {
    font-size: 2rem; }

  .product-description {
    font-size: 1.05rem; }

  .related-grid {
    grid-template-columns: repeat(4, 1fr); }

  .gallery-thumb {
    width: auto;
    max-height: 200px; } }
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb {
  font-size: .92em;
  color: #404040;
  padding: 20px 0 0 0; }

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb a {
  color: #4f3909; }

.woocommerce-cart-form {
  font-size: .877em; }
  .woocommerce-cart-form .variation-Option p {
    margin: 0 !important; }

.woocommerce a.remove {
  display: block;
  font-size: 1.5em;
  height: 1em;
  width: 1em;
  text-align: center;
  line-height: 1;
  border-radius: 100%;
  color: #f74d00 !important;
  text-decoration: none;
  font-weight: 700;
  border: 0; }

.woocommerce a.remove:hover {
  color: #4f3909 !important;
  background: transparent !important; }

.col2-set .col-1, .woocommerce-page .col2-set .col-1, .col2-set .col-1, .woocommerce-page .col2-set .col-2 {
  width: 100% !important;
  box-sizing: border-box;
  margin-bottom: 2rem;
  /* space between columns */
  float: none;
  /* remove any floats */ }

.woocommerce {
  font-size: 100% !important; }

.checkout {
  max-width: 800px;
  margin: 0 auto; }

.woocommerce-page #primary {
  padding-left: var(--layout-gap);
  padding-right: var(--layout-gap); }

.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt {
  background-color: #728a34;
  color: #fff;
  -webkit-font-smoothing: antialiased;
  color: #f8f4eb !important; }
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:hover {
    background-color: #4f3909 !important; }

.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled {
  background: #888888 !important; }
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled:hover {
    background-color: #888888 !important; }

#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment {
  background: rgba(79, 57, 9, 0.07);
  border-radius: 5px; }

#add_payment_method #payment div.payment_box, .woocommerce-cart #payment div.payment_box, .woocommerce-checkout #payment div.payment_box {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  padding: 1em;
  margin: 1em 0;
  font-size: .92em;
  border-radius: 2px;
  line-height: 1.5;
  background-color: white;
  color: #515151; }

#add_payment_method #payment div.payment_box::before, .woocommerce-cart #payment div.payment_box::before, .woocommerce-checkout #payment div.payment_box::before {
  content: "";
  display: block;
  border: 1em solid white;
  border-right-color: transparent;
  border-left-color: transparent;
  border-top-color: transparent;
  position: absolute;
  top: -.75em;
  left: 0;
  margin: -1em 0 0 2em; }

/* All WooCommerce notices */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info {
  border: 1px solid #ccc;
  /* subtle border */
  background-color: #f9f9f9;
  /* very light background */
  color: #333;
  /* main text color */
  padding: 1rem 1.2rem;
  /* comfortable padding */
  border-radius: 4px;
  /* subtle rounding */
  margin-bottom: 1.5rem;
  /* space below messages */
  font-size: 0.95rem; }

/* Different message types can have subtle color accents */
.woocommerce .woocommerce-message {
  border-color: #1a4d2e;
  /* brand green border */
  background-color: #f0f7f3;
  /* very light green background */
  color: #1a4d2e;
  /* text color */ }

.woocommerce .woocommerce-error {
  border-color: #cc3c3c;
  /* subtle red */
  background-color: #fdf2f2;
  /* very light red */
  color: #cc3c3c; }

.woocommerce .woocommerce-info {
  border-color: #1e73be;
  /* subtle blue */
  background-color: #f0f4fa;
  /* very light blue */
  color: #1e73be; }

/* Buttons inside messages as text links */
.woocommerce .woocommerce-message a.button,
.woocommerce .woocommerce-error a.button,
.woocommerce .woocommerce-info a.button {
  background: none;
  border: none;
  color: #1a4d2e;
  /* brand link color */
  text-decoration: underline;
  font-weight: normal;
  padding: 0;
  cursor: pointer; }

.woocommerce .woocommerce-message a.button:hover,
.woocommerce .woocommerce-error a.button:hover,
.woocommerce .woocommerce-info a.button:hover {
  color: #133721;
  /* darker brand green on hover */ }

/* Remove icons from all messages */
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-error::before,
.woocommerce .woocommerce-info::before {
  content: none !important;
  /* remove the icon */
  display: none !important;
  /* hide the pseudo-element entirely */ }

.woocommerce .woocommerce-error::before {
  content: none !important;
  display: none !important; }

.woocommerce-page .post-navigation {
  display: none; }

@media screen and (min-width: 1024px) {
  .woocommerce-checkout {
    display: block !important;
    gap: 2rem;
    /* space between any children */ }

  body.woocommerce-checkout #order_review_heading {
    display: none !important; } }
.digital-delivery-notice {
  margin-top: 10px;
  padding: 20px;
  background-color: #d2e9ff; }

.session-card-image {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  /* square for galleries */
  overflow: hidden; }

.session-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.session-card-title {
  padding: 16px;
  text-align: center;
  font-weight: 600; }

.gallery-card-link {
  text-decoration: none;
  color: inherit;
  display: block; }

.gallery-card-image {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden; }

.gallery-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.gallery-card-title {
  padding: 16px;
  text-align: center;
  font-weight: 600; }

/* =========================================================
   Purchase Layout
========================================================= */
.photo-purchase-layout {
  display: grid;
  grid-template-columns: 2.5fr 1.5fr;
  width: 100%;
  align-items: start;
  gap: 40px; }

/* Mobile stack */
@media (max-width: 1024px) {
  .photo-purchase-layout {
    grid-template-columns: 1fr;
    gap: 0px; } }
/* =========================================================
   Image Column
========================================================= */
.single-image {
  width: 100%; }

.single-image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover; }

/* =========================================================
   Options Column
========================================================= */
.photo-options-column {
  display: flex;
  flex-direction: column;
  gap: 16px; }

/* Sticky options on desktop */
@media (min-width: 901px) {
  .photo-options-column {
    position: sticky;
    top: 120px;
    align-self: start;
    margin-top: -15px; } }
/* =========================================================
   Option Groups
========================================================= */
.photo-option-group {
  border: none;
  padding: 0;
  margin: 0; }
  .photo-option-group legend {
    padding-top: 15px; }

/* Group Title */
.option-group-title {
  font-weight: 600;
  display: block;
  margin: 12px 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.25em; }
  .option-group-title:nth-of-type(2), .option-group-title :nth-of-type(3) {
    margin-top: 12px; }

/* Group description toggle */
.group-info-toggle {
  font-size: 13px;
  background: none;
  border: 1px solid #ccc;
  padding: 2px 6px;
  cursor: pointer; }

/* Hidden description by default */
.group-description {
  display: none;
  font-size: 14px;
  color: #555;
  margin-bottom: 12px; }

.group-description.show {
  display: block; }

/* =========================================================
   Radio Option Styling (Single Line Compact)
========================================================= */
.photo-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5px 14px;
  cursor: pointer;
  transition: all .2s ease;
  margin-bottom: 4px;
  background: #fcfcfb; }

/* Hide radio buttons */
.photo-option input[type="radio"] {
  display: none; }

/* Hover */
.photo-option:hover {
  background: #d9c498; }

/* Active selection state */
.photo-option:has(input[type="radio"]:checked) {
  background: #f74d00; }

/* Option content wrapper */
.option-content {
  display: flex;
  justify-content: space-between;
  width: 100%;
  gap: 16px;
  align-items: center; }

/* Name */
.option-name {
  font-weight: 600;
  white-space: nowrap; }

/* Price */
.option-price {
  font-weight: 600;
  white-space: nowrap; }

/* Turn text white on hover */
.photo-option:hover .option-name,
.photo-option:hover .option-price {
  color: white; }

/* Turn text white when selected */
.photo-option:has(input[type="radio"]:checked) .option-name,
.photo-option:has(input[type="radio"]:checked) .option-price {
  color: white; }

/* Description (hidden for compact layout) */
.option-description {
  display: none; }

/* =========================================================
   Add To Cart Button
========================================================= */
.single-add-to-cart {
  margin-top: 24px;
  padding: 14px;
  background: #728a34;
  color: #fff;
  border: none;
  cursor: pointer;
  font-weight: 600;
  text-align: center;
  width: 100%;
  transition: background .2s ease; }

.single-add-to-cart:hover {
  background: #f74d00; }

/* =========================================================
   Back Link
========================================================= */
.back-to-gallery {
  margin-top: 40px;
  font-size: 14px; }

.back-to-gallery a {
  text-decoration: none;
  color: #0073e6; }

.back-to-gallery a:hover {
  text-decoration: underline; }

.no-sessions-fallback {
  text-align: center;
  padding: 4rem 1rem; }
  .no-sessions-fallback h2 {
    font-size: 2rem;
    margin-bottom: 1rem; }
  .no-sessions-fallback p {
    font-size: 1.125rem;
    opacity: 0.8; }

.session-list {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

.session-list-item {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #e0e0e0;
  padding: 0.75rem 0; }

.session-list-link {
  display: flex;
  align-items: center;
  width: 100%;
  text-decoration: none;
  color: inherit; }

.session-list-image img {
  width: 120px;
  height: 80px;
  object-fit: cover;
  border-radius: 4px;
  margin-right: 1rem; }

.session-list-meta {
  display: flex;
  flex-direction: column; }

.session-list-name {
  font-weight: 600;
  font-size: 1.1rem;
  color: #4f3909 !important; }
  .session-list-name:hover {
    color: #ff6600 !important; }

.session-list-date {
  font-size: 0.9rem;
  color: #666; }

.offerings-list {
  width: 100%;
  padding: 0.5rem;
  margin: 0;
  list-style: none;
  padding-left: 0.5rem;
  padding-right: 0.5rem; }
  .offerings-list .offering-item {
    width: 100%;
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column; }
    .offerings-list .offering-item:nth-child(2n) {
      background-color: #ffffff; }
    .offerings-list .offering-item > div {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 0.25rem; }
      .offerings-list .offering-item > div .offering-name {
        font-weight: 600; }
      .offerings-list .offering-item > div .offering-price {
        font-weight: 600; }
    .offerings-list .offering-item .offering-description {
      font-style: italic;
      font-size: 0.875em;
      margin: 0; }

@media screen and (min-width: 1024px) {
  .offerings-list {
    padding-left: 1rem;
    padding-right: 1rem; }
    .offerings-list .offering-item {
      padding: 1rem 1.5rem; }
      .offerings-list .offering-item > div {
        justify-content: space-between; } }
.session-promo-banner {
  display: flex;
  border-radius: 4px;
  margin-bottom: 20px;
  text-align: center;
  font-weight: 500;
  flex-wrap: wrap;
  background: #177fdf; }
  .session-promo-banner div {
    color: #f8f4eb;
    width: 100%;
    font-weight: 300; }
  .session-promo-banner div:first-of-type {
    padding: 5px 10px 0px 10px; }
    @media screen and (min-width: 1024px) {
      .session-promo-banner div:first-of-type {
        font-size: 1.25em; } }
  .session-promo-banner div:last-of-type {
    padding: 0px 10px 5px 10px;
    font-size: .875em; }
    @media screen and (min-width: 1024px) {
      .session-promo-banner div:last-of-type {
        font-size: 1em; } }

a.copy-coupon {
  font-weight: 700;
  text-transform: uppercase;
  color: #f8f4eb !important;
  display: inline-block;
  background: #105da3 !important;
  padding: 2px 8px;
  border-radius: 4px;
  text-decoration: none; }

#promo-timer {
  margin-top: 3px;
  font-weight: bold; }

/* Make all input and textarea fields full width */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
  width: 100%;
  padding: 12px 15px;
  /* vertical + horizontal padding */
  margin-bottom: 15px;
  /* spacing between fields */
  box-sizing: border-box;
  /* ensures padding doesn’t break width */
  border: 1px solid #ccc;
  /* optional: subtle border */
  border-radius: 5px;
  /* optional: rounded corners */
  font-size: 16px;
  /* optional: consistent font size */ }

/* Style the submit button */
.wpcf7-form input[type="submit"] {
  padding: 12px 25px;
  border: none;
  border-radius: 2px;
  background-color: #728a34;
  /* example: green to match outdoors vibe */
  color: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease; }

.wpcf7-form input[type="submit"]:hover {
  background-color: #f74d00;
  /* slightly darker on hover */ }

/* Optional: spacing for labels */
.wpcf7-form label {
  display: block;
  margin-bottom: 5px;
  font-weight: 500; }

#post-363 {
  max-width: 800px;
  margin: 0 auto !important; }

.site-footer {
  flex-shrink: 0;
  background-color: #4f3909;
  color: #fff;
  margin-top: auto;
  width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
  /* prevents horizontal scroll */
  /* Tablet: 2 columns */
  /* Desktop: 4 columns */ }
  .site-footer a,
  .site-footer a:link,
  .site-footer a:visited {
    color: white;
    text-decoration: none; }
  .site-footer .footer__cta {
    display: block;
    width: 100%;
    text-align: center;
    background-color: #ff6600;
    color: #fff;
    text-transform: uppercase;
    font-weight: bold;
    padding: 1rem;
    font-size: 1.25em;
    margin-bottom: 2rem;
    text-decoration: none;
    transition: background 0.3s;
    box-sizing: border-box; }
    .site-footer .footer__cta:hover {
      background-color: #cc5200; }
  .site-footer .footer-inner {
    margin: 0 auto;
    padding: 0 1rem;
    /* prevents content overflow */
    box-sizing: border-box; }
    .site-footer .footer-inner .footer-grid {
      display: flex;
      flex-direction: column;
      /* mobile stacked */
      flex-wrap: wrap;
      gap: 1rem;
      /* gap between items */
      margin-bottom: 2rem;
      box-sizing: border-box; }
      .site-footer .footer-inner .footer-grid .footer-column,
      .site-footer .footer-inner .footer-grid .footer-column-graphic {
        flex: 1 1 100%;
        /* mobile: full width */
        display: block;
        box-sizing: border-box; }
      .site-footer .footer-inner .footer-grid .footer-column-graphic {
        text-align: center;
        margin-bottom: 1rem; }
        .site-footer .footer-inner .footer-grid .footer-column-graphic img {
          max-width: 200px;
          height: auto;
          display: block;
          margin: 0 auto; }
      .site-footer .footer-inner .footer-grid .footer-column .footer-menu {
        list-style: none;
        padding: 0; }
        .site-footer .footer-inner .footer-grid .footer-column .footer-menu li {
          margin-bottom: 0.5rem; }
          .site-footer .footer-inner .footer-grid .footer-column .footer-menu li a {
            color: #fff;
            text-decoration: none;
            transition: color 0.3s; }
            .site-footer .footer-inner .footer-grid .footer-column .footer-menu li a:hover {
              color: #ff6600; }
    .site-footer .footer-inner .footer-social {
      display: flex;
      justify-content: center;
      gap: 1rem;
      list-style: none;
      padding: 0;
      margin: 0;
      box-sizing: border-box;
      font-size: 3em; }
      .site-footer .footer-inner .footer-social li a {
        color: #fff;
        font-weight: bold;
        text-decoration: none; }
        .site-footer .footer-inner .footer-social li a:hover {
          color: #ff6600; }
    .site-footer .footer-inner .site-info {
      text-align: center;
      font-size: 0.875rem;
      color: #aaa;
      margin: 30px 0 60px 0; }
  @media (min-width: 600px) {
    .site-footer .footer-inner .footer-grid {
      flex-direction: row;
      flex-wrap: wrap; }
      .site-footer .footer-inner .footer-grid .footer-column,
      .site-footer .footer-inner .footer-grid .footer-column-graphic {
        flex: 1 1 calc(50% - 0.5rem);
        /* 2 columns with gap adjustment */ }
      .site-footer .footer-inner .footer-grid .footer-column-graphic {
        flex-basis: 100%;
        /* graphic spans full width */ } }
  @media (min-width: 1024px) {
    .site-footer .footer-inner .footer-grid {
      flex-wrap: nowrap; }
      .site-footer .footer-inner .footer-grid .footer-column,
      .site-footer .footer-inner .footer-grid .footer-column-graphic {
        flex: 0 0 calc(25% - 0.75rem);
        /* 4 columns */ } }
