/* Designed & Built by Point of View Web Solutions — https://www.povwebsolutions.com */
/* Page-specific styles — editorial refresh */

/* ---------- EVENTS PAGE ---------- */
.calendar-strip { padding: 20px 0 60px; }
.cal-list { display: grid; gap: 12px; }
.cal-item { background: var(--cream); border: 1px solid var(--rule); border-radius: var(--radius); overflow: hidden; transition: border-color .2s ease, box-shadow .25s ease; }
.cal-item:hover { border-color: rgba(31,24,18,.35); }
.cal-item.open { border-color: var(--ink); box-shadow: 0 18px 44px -28px rgba(31,24,18,.42); }
.cal-row {
  display: grid;
  grid-template-columns: 110px 1fr auto auto;
  gap: 28px;
  align-items: center;
  width: 100%;
  padding: 24px 28px;
  background: none;
  border: 0;
  border-radius: var(--radius);
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.cal-row:focus-visible { outline: 2px solid var(--ink); outline-offset: -4px; }
.cal-date {
  text-align: center;
  border-right: 1px solid var(--rule);
  padding-right: 28px;
}
.cal-date { display: block; }
.cal-date .month {
  display: block;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.cal-date .day {
  display: block;
  font-family: var(--serif-display);
  font-size: 2.4rem;
  line-height: 1;
  margin: 6px 0;
  color: var(--ink);
}
/* Events with no fixed date — "Any / Date / you pick". The word sits where a
   day number normally would, so it is set smaller to fit the same column. */
.cal-date.anytime .day {
  font-size: 1.5rem;
  letter-spacing: 0.01em;
}
.cal-date .year {
  display: block;
  font-family: var(--sans);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  color: var(--ink-muted);
  text-transform: uppercase;
  font-weight: 500;
}
.cal-info { display: block; }
.cal-info .cal-name {
  display: block;
  font-family: var(--serif-display);
  font-size: 1.5rem;
  line-height: 1.2;
  margin: 0 0 6px;
}
.cal-info .time {
  display: block;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-muted);
  font-weight: 500;
}
.cal-price {
  font-family: var(--serif-display);
  font-size: 1.3rem;
  color: var(--ink);
  text-align: right;
  white-space: nowrap;
}
.cal-arrow {
  position: relative;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--rule);
  display: inline-block;
  transition: background .2s ease, border-color .2s ease, transform .3s ease;
}
.cal-arrow::before, .cal-arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 13px;
  height: 1.5px;
  background: var(--ink);
  transform: translate(-50%, -50%);
  transition: opacity .2s ease, transform .3s ease;
}
.cal-arrow::after { transform: translate(-50%, -50%) rotate(90deg); }
.cal-item.open .cal-arrow { background: var(--ink); border-color: var(--ink); transform: rotate(180deg); }
.cal-item.open .cal-arrow::before, .cal-item.open .cal-arrow::after { background: #fff; }
.cal-item.open .cal-arrow::after { opacity: 0; }

/* Events with no flyer — the logo mark stands in for the artwork */
.event-card.no-flyer { grid-template-columns: 300px 1fr; }
.event-card.no-flyer .event-card-mark { background: var(--cream); display: flex; align-items: center; justify-content: center; padding: 40px; }
.event-card.no-flyer .event-card-mark img { width: 100%; max-width: 190px; height: auto; opacity: .9; }
.featured-card.no-flyer .flyer-frame.mark { background: var(--cream); display: flex; align-items: center; justify-content: center; padding: 56px; aspect-ratio: 3 / 4; }
.featured-card.no-flyer .flyer-frame.mark img { width: 100%; max-width: 240px; height: auto; opacity: .9; }
.cal-detail.text-only { grid-template-columns: minmax(0, 62ch); }
@media (max-width: 860px) {
  .event-card.no-flyer { grid-template-columns: 1fr; }
  .event-card.no-flyer .event-card-mark { padding: 30px; }
  .event-card.no-flyer .event-card-mark img { max-width: 150px; }
}

/* Expanding detail panel */
.cal-panel { height: 0; overflow: hidden; transition: height .34s cubic-bezier(.3,.8,.35,1); }
.cal-item.open .cal-panel { height: auto; }
.cal-panel-inner { padding: 0 28px 30px; border-top: 1px solid var(--rule); margin: 0 28px; padding-left: 0; padding-right: 0; }
.cal-detail { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,0.85fr); gap: 40px; align-items: start; padding-top: 28px; }
.cal-detail-text .script { display: block; font-family: var(--sans); font-size: .68rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-muted); margin: 0 0 10px; }
.cal-detail-text .tagline { font-family: var(--serif-elegant); font-style: italic; font-weight: 700; color: var(--ink); margin: 0 0 16px; font-size: 1.05rem; }
.cal-detail-text p { color: var(--ink-soft); line-height: 1.62; margin: 0 0 22px; max-width: 52ch; }
.cal-detail-text .included { margin: 0 0 22px; }
.cal-detail-text .pricing { margin: 0 0 24px; }
.cal-detail-flyer { display: flex; justify-content: center; }
.cal-detail-flyer .photo-slot { position: relative; width: auto; max-width: 100%; height: auto; aspect-ratio: auto; background: none; display: flex; justify-content: center; }
.cal-detail-flyer .photo-slot img { position: static; inset: auto; width: auto; height: auto; max-width: 100%; max-height: 720px; object-fit: contain; display: block; border-radius: 10px; box-shadow: 0 16px 36px -22px rgba(31,24,18,.4); }
@media (max-width: 860px) {
  .cal-detail { grid-template-columns: 1fr; gap: 26px; }
  .cal-detail-flyer { order: -1; }
  .cal-detail-flyer .photo-slot img { max-height: 460px; }
}
@media (max-width: 760px) {
  .cal-row { grid-template-columns: 84px 1fr auto; padding: 18px 20px; gap: 16px; }
  .cal-price { display: none; }
  .cal-panel-inner { margin: 0 20px; padding-bottom: 24px; }
}

/* Event card (large, repeated) */
.event-card {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  background: var(--cream);
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--rule);
  box-shadow: 0 30px 60px -50px rgba(31,24,18,0.4);
  margin-bottom: 40px;
}
.event-card:nth-child(even) {
  grid-template-columns: 1fr 1.1fr;
}
.event-card:nth-child(even) .event-card-photo { order: 2; }
.event-card-photo { aspect-ratio: 4/5; overflow: hidden; }
/* Flyer posters shown whole (no crop) */
.event-card-photo.flyer { aspect-ratio: 3/4; background: var(--bg-2); }
.event-card-photo.flyer .photo-slot img,
.event-card-photo.flyer .photo { object-fit: contain; }
.event-card:hover .event-card-photo.flyer .photo { transform: none; }
.event-card-photo .photo { width: 100%; height: 100%; transition: transform .6s ease; }
.event-card:hover .event-card-photo .photo { transform: scale(1.03); }
.event-card-body { padding: 56px 48px; display: flex; flex-direction: column; justify-content: center; }
.event-card-body .script {
  font-size: 0.72rem;
  margin-bottom: 12px;
  font-family: var(--sans);
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.event-card-body h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin-bottom: 10px; line-height: 1.1; }
.event-card-body .tagline { font-family: var(--serif-elegant); font-style: italic; color: var(--ink-soft); margin-bottom: 20px; font-size: 1.05rem; }
.event-card-body p { color: var(--ink-soft); margin-bottom: 20px; line-height: 1.65; }

@media (max-width: 880px) {
  .event-card, .event-card:nth-child(even) { grid-template-columns: 1fr; }
  .event-card:nth-child(even) .event-card-photo { order: 0; }
  .event-card-body { padding: 36px 28px; }
}

/* ---------- HERD PAGE ---------- */
.herd-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  padding: 30px 0 60px;
}
.herd-card {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--cream);
  border: 1px solid var(--rule);
  cursor: pointer;
  transition: border-color .25s, transform .25s;
}
.herd-card:hover { border-color: var(--ink-muted); transform: translateY(-2px); }
.herd-card .photo {
  aspect-ratio: 1/1.15;
  transition: transform .6s ease;
}
.herd-card:hover .photo { transform: scale(1.04); }
.herd-name {
  padding: 18px 18px 20px;
  text-align: center;
  background: var(--cream);
  border-top: 1px solid var(--rule);
}
.herd-name .name {
  font-family: var(--serif-display);
  color: var(--ink);
  font-size: 1.3rem;
  line-height: 1.1;
}
.herd-name .role {
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-muted);
  font-weight: 500;
  margin-top: 6px;
}
.herd-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(31,24,18,0.0) 0%, rgba(31,24,18,0.88) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 22px 22px 88px;
  opacity: 0;
  transition: opacity .3s ease;
  color: var(--cream);
}
.herd-card:hover .herd-overlay { opacity: 1; }
.herd-overlay .blurb {
  font-family: var(--serif-elegant);
  font-style: italic;
  font-size: 1rem;
  line-height: 1.5;
  text-wrap: pretty;
}

@media (max-width: 880px) {
  .herd-grid { grid-template-columns: repeat(2, 1fr); }
  .herd-overlay { opacity: 1; background: linear-gradient(180deg, transparent 40%, rgba(31,24,18,0.88) 100%); }
}

.other-animals {
  padding: 80px 0;
  background: var(--bg-2);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  text-align: center;
}
.other-animals h2 { margin-bottom: 14px; }
.other-animals p { max-width: 580px; margin: 0 auto 30px; color: var(--ink-soft); line-height: 1.65; }
.other-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 40px;
}
.other-card {
  background: var(--cream);
  border-radius: var(--radius);
  border: 1px solid var(--rule);
  overflow: hidden;
  transition: border-color .25s, transform .25s;
}
.other-card:hover { border-color: var(--ink-muted); transform: translateY(-2px); }
.other-card .photo { aspect-ratio: 4/3; }
.other-card-body { padding: 20px 22px 22px; text-align: left; }
.other-card .name { font-family: var(--serif-display); font-size: 1.2rem; }
.other-card .desc { font-size: 0.9rem; color: var(--ink-soft); margin-top: 6px; line-height: 1.55; }
@media (max-width: 760px) { .other-grid { grid-template-columns: 1fr; } }

/* ---------- ABOUT PAGE ---------- */
.about-hero { padding: 60px 0 80px; }
.about-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.about-hero-photo {
  aspect-ratio: 4/5;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 30px 60px -50px rgba(31,24,18,0.35);
}
.about-body { padding: 60px 0 100px; }
.about-body p { font-size: 1.08rem; color: var(--ink-soft); line-height: 1.75; }
.about-body p.lead { font-size: 1.4rem; font-family: var(--serif-elegant); font-style: italic; color: var(--ink); margin-bottom: 32px; line-height: 1.5; }
.about-sig {
  margin-top: 40px;
  font-family: var(--script);
  color: var(--blush-deep);
  font-size: 1.8rem;
  line-height: 1;
}

.pillars {
  padding: 100px 0;
  background: var(--bg-2);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 56px;
}
.pillar {
  text-align: center;
  padding: 20px 24px;
}
.pillar .num {
  font-family: var(--serif-display);
  color: var(--ink);
  font-size: 1.8rem;
  line-height: 1;
  margin-bottom: 12px;
  display: block;
  font-style: italic;
}
.pillar h3 { font-family: var(--serif-display); font-size: 1.4rem; margin-bottom: 14px; }
.pillar p { color: var(--ink-soft); font-size: 0.98rem; line-height: 1.65; }
@media (max-width: 880px) {
  .about-hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .pillars-grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ---------- PRIVATE EXPERIENCES ---------- */
.exp-card {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  background: var(--cream);
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--rule);
  margin-bottom: 40px;
  box-shadow: 0 30px 60px -50px rgba(31,24,18,0.4);
}
.exp-card-photo { overflow: hidden; min-height: 100%; }
.exp-card-photo .photo { width: 100%; height: 100%; min-height: 100%; transition: transform .6s; }
.exp-card-photo .photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 880px) { .exp-card-photo { aspect-ratio: 5/6; } }
.exp-card:hover .exp-card-photo .photo { transform: scale(1.03); }
.exp-card-body { padding: 56px 48px; display: flex; flex-direction: column; justify-content: center; }
.exp-card-body .script {
  font-size: 0.72rem;
  margin-bottom: 12px;
  font-family: var(--sans);
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.exp-card-body h2 { font-size: clamp(1.9rem, 3vw, 2.4rem); margin-bottom: 18px; line-height: 1.1; }
.exp-card-body p { color: var(--ink-soft); font-size: 1rem; line-height: 1.65; }

.exp-checks { list-style: none; padding: 0; margin: 22px 0 28px; }
.exp-checks li { padding-left: 22px; position: relative; margin-bottom: 10px; color: var(--ink-soft); font-size: 0.96rem; }
.exp-checks li::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--blush);
  position: absolute; left: 0; top: 10px;
}

.photographer {
  padding: 100px 0;
  background: var(--bg-2);
  border-top: 1px solid var(--rule);
}
.photographer-grid {
  display: grid;
  grid-template-columns: 0.8fr 1fr;
  gap: 64px;
  align-items: center;
}
.photographer-photo { aspect-ratio: 4/5; border-radius: var(--radius-lg); overflow: hidden; max-width: 380px; box-shadow: 0 30px 60px -50px rgba(31,24,18,0.35); }
.exp-card-flip { grid-template-columns: 1.1fr 1fr; }
@media (max-width: 880px) {
  .exp-card, .exp-card-flip { grid-template-columns: 1fr; }
  .exp-card-flip .exp-card-photo { order: -1; }
  .exp-card-body { padding: 36px 28px; }
  .photographer-grid { grid-template-columns: 1fr; gap: 36px; }
}

/* ---------- CONTACT & FAQ ---------- */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  padding: 40px 0 90px;
}
.contact-card {
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  padding: 44px 40px;
}
.contact-card h3 { font-family: var(--serif-display); font-size: 1.5rem; margin-bottom: 8px; }
.contact-card p.sub { color: var(--ink-soft); margin-bottom: 28px; font-size: 0.98rem; line-height: 1.6; }
.contact-list { list-style: none; padding: 0; margin: 0; }
.contact-list li {
  display: flex; gap: 16px; align-items: flex-start;
  padding: 16px 0; border-bottom: 1px solid var(--rule);
}
.contact-list li:last-child { border-bottom: none; }
.contact-list .ico {
  width: 36px; height: 36px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--blush-soft);
  display: grid; place-items: center;
  color: var(--blush-deep);
}
.contact-list .label {
  font-family: var(--sans);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-muted);
  font-weight: 500;
  margin-bottom: 4px;
}
.contact-list .value { font-family: var(--serif-elegant); font-size: 1.05rem; color: var(--ink); }
.contact-list a.value { color: var(--ink); transition: color .2s; }
.contact-list a.value:hover { color: var(--blush-deep); }

.contact-form { display: flex; flex-direction: column; gap: 16px; }
.contact-form label {
  font-family: var(--sans);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-muted);
  font-weight: 500;
  margin-bottom: 6px;
  display: block;
}
.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 13px 16px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: var(--cream);
  font-family: var(--sans);
  font-size: 0.95rem;
  color: var(--ink);
  transition: border-color .15s;
}
.contact-form input:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--ink);
}
.contact-form textarea { min-height: 130px; resize: vertical; }
.contact-form .field { margin-bottom: 8px; }

.faq-section { padding: 70px 0 100px; }
.faq-list { max-width: 820px; margin: 40px auto 0; }
.faq-item {
  border-bottom: 1px solid var(--rule);
  padding: 4px 0;
}
.faq-q {
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  padding: 26px 0;
  font-family: var(--serif-display);
  font-size: 1.2rem;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  font-weight: 400;
  line-height: 1.3;
}
.faq-q .chev {
  font-family: var(--sans);
  font-size: 1.2rem;
  color: var(--ink-muted);
  transition: transform .3s;
  flex: 0 0 auto;
}
.faq-item.open .faq-q .chev { transform: rotate(45deg); color: var(--ink); }
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease, padding .35s ease;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.7;
}
.faq-item.open .faq-a {
  max-height: 500px;
  padding: 0 0 26px;
}

@media (max-width: 880px) {
  .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
.contact-grid > * { min-width: 0; }
.form-msg { font-family: var(--sans); font-size: .88rem; line-height: 1.5; margin: 12px 0 0; }
.form-msg.good { color: #4a7c59; }
.form-msg.bad { color: #a8433a; }
.contact-card { min-width: 0; }
.contact-card a, .contact-list a, .contact-list li { overflow-wrap: anywhere; }
@media (max-width: 620px) {
  .contact-card { padding: 30px 22px; }
  .contact-form input, .contact-form textarea, .contact-form select { font-size: 16px; padding: 13px 14px; }
  .contact-form button { width: 100%; min-height: 52px; justify-content: center; }
  .faq-q { min-height: 52px; }
}

/* Season poster + data-driven events */
.season-poster-sec { padding: 8px 0 40px; }
.season-poster { max-width: 620px; margin: 0 auto; border: 1px solid var(--rule); background: var(--bg-2); }
.season-poster .photo-slot { aspect-ratio: 3/4; }
.season-poster .photo-slot img { width: 100%; height: 100%; object-fit: contain; display: block; }
.cal-empty { font-family: var(--serif-elegant); font-style: italic; color: var(--ink-soft); padding: 24px 0; }
.event-card-body .event-meta { margin: 0 0 20px; font-family: var(--sans); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-muted); display: flex; gap: 18px; flex-wrap: wrap; }
.event-card-body .event-meta span { display: inline-flex; align-items: center; gap: 8px; }
.event-card-body .event-meta span::before { content: "\2022"; color: var(--blush); font-size: 1.4em; line-height: 0; }
.flyer-frame .photo-slot { width: 100%; height: 100%; }
.flyer-frame .photo-slot img { object-fit: contain; }

/* ---------- MOMENTS (photo gallery) ---------- */
.moments-sec{padding:46px 0 10px}
.moments-sec-all{padding:26px 0 80px}
.m-featured{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
.m-featured .m-photo:first-child{grid-row:span 2}
.m-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:16px}
.m-grid .m-photo{margin:0}
.m-grid .m-photo img{aspect-ratio:4/5;width:100%;height:100%}
.m-grid .m-clip{grid-row:span 2}
.m-grid .m-clip video{aspect-ratio:auto;width:100%;height:100%;object-fit:cover}
.m-photo{overflow:hidden;border-radius:var(--radius-lg);background:#efe7dc;box-shadow:0 24px 50px -46px rgba(31,24,18,.5)}
.m-photo img,.m-photo video{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.m-clip video{aspect-ratio:9/16;background:#2a211a}
.m-featured .m-clip video{aspect-ratio:9/16}
.m-featured .m-photo:first-child.m-clip video{aspect-ratio:auto;height:100%;min-height:420px}
.m-photo:hover img{transform:scale(1.035)}
.m-featured .m-photo{height:100%}
.m-featured .m-photo img{aspect-ratio:4/5}
.m-featured .m-photo:first-child img{aspect-ratio:auto;height:100%;min-height:420px}
.moments-follow{padding:70px 0 90px;text-align:center;background:var(--tan-soft)}
.moments-follow h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:8px 0 14px}
.moments-follow p{color:var(--ink-soft);max-width:520px;margin:0 auto}
.m-empty{color:var(--ink-muted);text-align:center;padding:40px 0}
@media (max-width:900px){.m-grid{grid-template-columns:repeat(2,1fr)}.m-featured{grid-template-columns:1fr}.m-featured .m-photo:first-child{grid-row:auto}.m-featured .m-photo:first-child img{aspect-ratio:4/5;min-height:0}.m-featured .m-photo:first-child.m-clip video{aspect-ratio:9/16;min-height:0}}
@media (max-width:560px){.m-grid{grid-template-columns:repeat(2,1fr);gap:10px}.m-featured{gap:10px}.m-grid .m-clip{break-inside:avoid}}

/* ---------- RENTALS / PETTING ZOO ---------- */
.rentals{padding:20px 0 80px}
.rental-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
.rental-card{background:#fff;border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 60px -50px rgba(31,24,18,.4)}
.rental-card .photo{aspect-ratio:4/3;overflow:hidden}
.rental-card .photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.rental-card:hover .photo img{transform:scale(1.04)}
.rental-body{padding:26px 24px 28px;display:flex;flex-direction:column;gap:14px;flex:1}
.rental-body h3{font-size:1.35rem;margin:0;line-height:1.15}
.rental-price{font-family:var(--serif-display);font-size:1.55rem;line-height:1;color:var(--ink)}
.rental-price span{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-top:8px;line-height:1.4}
.rental-body p{margin:0;color:var(--ink-soft);font-size:.96rem;line-height:1.6}
.rental-note{font-size:.86rem !important;color:var(--ink-muted) !important}
.rental-packages{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.rental-packages li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding-bottom:12px;border-bottom:1px solid var(--rule);font-size:.94rem}
.rental-packages li:last-child{border-bottom:none;padding-bottom:0}
.rental-packages strong{font-weight:700}
.rental-packages span{font-weight:700;white-space:nowrap}
.rental-packages em{grid-column:1/-1;font-style:normal;font-size:.84rem;color:var(--ink-muted);line-height:1.5}
.rental-body .btn{margin-top:auto;align-self:flex-start}
.rental-disclaimer{margin:34px auto 0;text-align:center;max-width:620px;font-size:.82rem;letter-spacing:.04em;color:var(--ink-muted)}
@media (max-width:980px){.rental-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto}}

/* ---------- Extra detail blocks inside an event ---------- */
.cal-extras{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px 28px;margin:24px 0 4px;padding-top:22px;border-top:1px solid var(--rule)}
.cal-extra h4{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 10px;font-weight:700}
.cal-extra p{font-size:.86rem;color:var(--ink-muted);margin:0 0 8px;line-height:1.5}
.cal-extra ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.cal-extra li{font-size:.92rem;color:var(--ink-soft);line-height:1.45}
.menu-sec{padding:10px 0 80px}
.menu-sec .menu-head{text-align:center;max-width:560px;margin:0 auto 28px}
.menu-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.menu-modal{position:fixed;inset:0;z-index:120;background:rgba(31,24,18,.86);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}
.menu-modal[hidden]{display:none}
.menu-modal-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:min(560px,100%)}
.menu-modal-inner img{display:block;width:100%;height:auto;max-height:88vh;object-fit:contain;border-radius:10px;box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}
.menu-close{position:absolute;top:-14px;right:-14px;width:44px;height:44px;border-radius:50%;border:none;background:#fff;color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.menu-close:hover{background:var(--tan-soft)}
@media(max-width:560px){.menu-modal{padding:16px;align-items:flex-start}.menu-modal-inner{margin-top:44px}.menu-close{top:-48px;right:0}.menu-modal-inner img{max-height:none}}

/* ---------- Month dividers in the calendar ---------- */
.cal-month{display:flex;align-items:center;gap:18px;margin:38px 0 18px}
.cal-month:first-child{margin-top:0}
.cal-month span{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ink-muted);white-space:nowrap}
.cal-month::after{content:"";flex:1;height:1px;background:var(--rule)}

/* ---- Privacy & booking terms ----
   A page of plain text, set narrow enough to read comfortably. Nothing
   here is used anywhere else. */
.legal { padding: 90px 0 100px; }
.legal h1 { margin: 14px 0 6px; }
.legal h2 { font-size: 1.28rem; margin: 46px 0 12px; }
.legal h3 { font-size: 1rem; margin: 26px 0 6px; color: var(--ink); }
.legal p { color: var(--ink-soft); line-height: 1.72; margin: 0 0 16px; }
.legal a { color: var(--blush); }
.legal-updated { font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.legal-lede { font-size: 1.08rem; line-height: 1.7; margin-top: 26px; }
.legal-list { color: var(--ink-soft); line-height: 1.72; margin: 0 0 16px; padding-left: 22px; }
.legal-list li { margin-bottom: 9px; }
@media (max-width: 760px) { .legal { padding: 62px 0 70px; } }
