/* ===== Location (Venue / Directions / Accommodation) ===== */
.venue-description { margin-bottom: 25px; line-height: 1.7; }
.venue-links { display: flex; flex-wrap: wrap; gap: 15px; margin-top: auto; padding-top: 30px; }

.directions-card { overflow: hidden; }
.directions-header h2 { font-size: 1.8rem; }
.transport-option { padding: 20px; border-radius: 10px; background-color: rgba(0,0,0,0.02); border: 1px solid rgba(0,0,0,0.05); }
.transport-option h3 { display: flex; align-items: center; margin-bottom: 15px; color: var(--brown); }
.transport-option h3 i { margin-right: 10px; color: var(--orange); width: 25px; text-align: center; font-size: 1.2rem; }
.transport-option p { margin-bottom: 10px; }

/* ===== Booking (cards + help) ===== */
.booking-section { padding: 60px 0; }

/* ===== Yarnstock Barn Dance ===== */
.barn-page { background: #fffaf2; color: #352218; }
.barn-page h1,.barn-page h2,.barn-page h3,.home-barn-promo h2 { color: #402113; }
.barn-hero { position: relative; overflow: hidden; padding: clamp(48px,7vw,92px) 0; color: #fff; background: radial-gradient(circle at 85% 10%,rgba(232,164,36,.22),transparent 30%),linear-gradient(135deg,#3d170d,#73301b 52%,#0f5555); }
.barn-hero::after { content:""; position:absolute; inset:auto 0 0; height:8px; background:linear-gradient(90deg,#df9f20 0 25%,#b73d19 25% 50%,#0b6666 50% 75%,#efc05c 75%); }
.barn-hero-grid { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr); align-items:center; gap:clamp(34px,5vw,74px); }
.barn-hero h1 { margin:.35rem 0 1rem; color:#fff; font-size:clamp(2.65rem,5vw,5.45rem); line-height:.94; letter-spacing:-.045em; }
.barn-hero h1 span { color:#f6bd47; }
.barn-kicker { display:flex; align-items:center; gap:.55rem; margin:0 0 .7rem; color:#a93618; font-size:.82rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.barn-hero .barn-kicker { color:#f6bd47; }
.barn-lead { max-width:660px; margin:0; color:#fff8ed; font-size:clamp(1.08rem,1.7vw,1.34rem); line-height:1.62; }
.barn-hero-facts { display:grid; gap:.75rem; margin:1.6rem 0; }
.barn-hero-facts span { display:flex; align-items:center; gap:.75rem; color:#fff; }
.barn-hero-facts i { width:1.45rem; color:#f6bd47; text-align:center; }
.barn-hero-actions,.home-barn-actions { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }
.barn-button { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; min-height:48px; padding:.78rem 1.18rem; border:2px solid transparent; border-radius:12px; font-weight:800; line-height:1.2; text-decoration:none; transition:transform .18s ease,box-shadow .18s ease,background .18s ease; }
.barn-button:hover { transform:translateY(-2px); text-decoration:none; }
.barn-button--primary { background:#efad2f; color:#321d12; box-shadow:0 8px 20px rgba(22,10,5,.18); }
.barn-button--primary:hover { background:#ffd073; color:#321d12; }
.barn-button--quiet { border-color:rgba(255,255,255,.55); color:#fff; background:rgba(255,255,255,.08); }
.home-barn-promo .barn-button--quiet { border-color:#9b7a66; color:#4b2a1b; background:#fff; }
.barn-button--light { background:#fff9ec; color:#522315; }
.barn-included-note { display:flex; align-items:center; gap:.55rem; margin:1rem 0 0; color:#fff7e8; font-weight:700; }
.barn-included-note i { color:#70d0b9; }
.barn-poster-frame { margin:0; overflow:hidden; border:7px solid rgba(255,255,255,.94); border-radius:18px; background:#fff; box-shadow:0 26px 55px rgba(20,8,4,.36); transform:rotate(1deg); }
.barn-poster-frame img { display:block; width:100%; height:auto; }
.barn-poster-frame figcaption { padding:.7rem 1rem; color:#4d2d20; font-size:.85rem; font-weight:700; text-align:center; }
.barn-narrow { max-width:1040px; }
.barn-story,.barn-schedule-section,.barn-tickets-section { padding:clamp(52px,7vw,88px) 0; }
#evening-plan,#guest-tickets { scroll-margin-top:72px; }
.barn-story { background:#fff; text-align:center; }
.barn-story h2,.barn-section-heading h2,.barn-ticket-explainer>h2 { margin:.2rem auto 1rem; max-width:820px; font-size:clamp(2rem,3.6vw,3.25rem); line-height:1.08; letter-spacing:-.03em; }
.barn-story>.container>.barn-kicker,.barn-section-heading .barn-kicker { justify-content:center; }
.barn-story-intro { font-size:1.2rem; font-weight:650; }
.barn-story p { max-width:820px; margin-left:auto; margin-right:auto; line-height:1.72; }
.barn-promise-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2.3rem; text-align:left; }
.barn-promise-grid article { padding:1.45rem; border:1px solid #eadfd4; border-radius:16px; background:#fffaf4; }
.barn-promise-grid i { color:#af3d1d; font-size:1.45rem; }
.barn-promise-grid h3 { margin:.75rem 0 .35rem; }
.barn-promise-grid p { margin:0; font-size:.96rem; }
.barn-schedule-section { background:#f2eadf; }
.barn-section-heading { text-align:center; margin-bottom:2rem; }
.barn-schedule { list-style:none; margin:0; padding:0; display:grid; gap:.8rem; }
.barn-schedule li { display:grid; grid-template-columns:180px 1fr; gap:1.25rem; align-items:center; padding:1.1rem 1.25rem; border:1px solid #e0d2c4; border-radius:14px; background:#fff; box-shadow:0 5px 15px rgba(63,33,18,.06); }
.barn-schedule time { color:#a23217; font-size:1.15rem; font-weight:900; }
.barn-schedule h3 { margin:0 0 .15rem; }
.barn-schedule p { margin:0; color:#654f43; }
.barn-ticket-grid { display:grid; grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr); gap:clamp(30px,5vw,68px); align-items:start; }
.barn-entry-choice { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1rem; margin-top:1rem; padding:1.15rem; border:1px solid #e0d2c4; border-radius:14px; background:#fff; }
.barn-entry-choice--included { border-color:#9dcfc5; background:#edf8f5; }
.barn-entry-choice>i { width:2rem; color:#0b6967; font-size:1.5rem; text-align:center; }
.barn-entry-choice h3,.barn-entry-choice p { margin:0; }
.barn-entry-choice p { margin-top:.25rem; color:#654f43; line-height:1.45; }
.barn-entry-choice>strong { color:#a23217; font-size:1.2rem; white-space:nowrap; }
.barn-ticket-panel { padding:clamp(22px,4vw,36px); border:1px solid #d6c4b6; border-radius:20px; background:#fff; box-shadow:0 18px 42px rgba(64,35,18,.12); }
.barn-ticket-panel-head { display:flex; align-items:center; gap:1rem; padding-bottom:1.2rem; border-bottom:1px solid #eadfd4; }
.barn-price { display:grid; place-items:center; width:82px; height:82px; border-radius:50%; color:#fff; background:#a6381d; font-size:1.65rem; font-weight:900; }
.barn-ticket-panel-head p,.barn-ticket-panel-head h2 { margin:0; }
.barn-ticket-form { display:grid; gap:1rem; margin-top:1.2rem; }
.barn-form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.barn-field { display:grid; gap:.4rem; min-width:0; }
.barn-field label { color:#462719; font-weight:800; }
.barn-field input,.barn-field select { width:100%; min-height:50px; padding:.7rem .85rem; border:1px solid #bba99c; border-radius:10px; background:#fff; color:#2d201a; font:inherit; }
.barn-field input:focus,.barn-field select:focus { outline:3px solid rgba(18,112,106,.2); border-color:#12706a; }
.barn-field small { color:#6e5c52; }
.barn-total { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.1rem; border-radius:12px; background:#f4eee7; font-weight:800; }
.barn-total strong { color:#a23217; font-size:1.45rem; }
.barn-check { display:flex; align-items:flex-start; gap:.7rem; line-height:1.45; }
.barn-check input { width:20px; height:20px; flex:0 0 auto; margin-top:.1rem; accent-color:#0d6d68; }
.barn-pay-button { width:100%; border:0; cursor:pointer; font:inherit; }
.barn-secure-note { margin:0; color:#6e5c52; font-size:.9rem; text-align:center; }
.barn-alert { display:flex; gap:.65rem; margin:1rem 0 0; padding:.9rem 1rem; border-radius:10px; line-height:1.45; }
.barn-alert--warning { color:#69420d; background:#fff2cf; }
.barn-alert--error { color:#7d2222; background:#fce7e7; }
.barn-closed { padding:2rem 0 .5rem; text-align:center; }
.barn-closed>i { color:#a6381d; font-size:2rem; }
.barn-final-cta { padding:clamp(44px,6vw,72px) 0; color:#fff; background:#0c5c5d; text-align:center; }
.barn-final-cta i { color:#f3b33a; font-size:2rem; }
.barn-final-cta h2 { max-width:800px; margin:.65rem auto .4rem; color:#fff; }
.barn-final-cta p { margin:0 auto 1.2rem; }
.barn-success-wrap { max-width:760px; padding:48px 18px; }
.barn-success-card { text-align:center; }
.barn-success-icon { color:#14816f; font-size:3rem; }
.barn-success-icon--warning { color:#b46b22; }
.barn-success-card .barn-kicker { justify-content:center; margin-top:1rem; }
.barn-success-facts { display:flex; justify-content:center; flex-wrap:wrap; gap:1rem; margin:1.3rem 0; color:#60463a; }
.home-barn-promo { padding:clamp(50px,7vw,86px) 0; background:#f5ede2; }
.home-barn-grid { display:grid; grid-template-columns:minmax(300px,.86fr) minmax(0,1.14fr); gap:clamp(30px,5vw,70px); align-items:center; }
.home-barn-poster { display:block; overflow:hidden; border:6px solid #fff; border-radius:16px; box-shadow:0 18px 40px rgba(66,35,18,.2); }
.home-barn-poster img { display:block; width:100%; height:auto; transition:transform .25s ease; }
.home-barn-poster:hover img { transform:scale(1.018); }
.home-barn-copy h2 { margin:.25rem 0 .9rem; font-size:clamp(2rem,3.4vw,3.35rem); line-height:1.06; letter-spacing:-.035em; }
.home-barn-copy>p { line-height:1.65; }
.home-barn-facts { display:grid; gap:.8rem; margin:1.4rem 0; padding:0; list-style:none; }
.home-barn-facts li { display:flex; gap:.85rem; align-items:flex-start; }
.home-barn-facts i { width:1.5rem; margin-top:.2rem; color:#a6381d; text-align:center; }
.booking-card--barn-dance .booking-header { color:#fff; background:linear-gradient(135deg,#7b2916,#0f6261); }
.booking-card--barn-dance .booking-header h3,.booking-card--barn-dance .booking-header i { color:#fff; }
@media (max-width:900px) {
  .barn-hero-grid,.barn-ticket-grid,.home-barn-grid { grid-template-columns:1fr; }
  .barn-poster-frame { max-width:680px; transform:none; }
  .home-barn-poster { max-width:680px; }
}
@media (max-width:680px) {
  .barn-hero { padding:42px 0 50px; }
  .barn-hero h1 { font-size:clamp(2.45rem,12vw,3.8rem); }
  .barn-hero-actions,.home-barn-actions { align-items:stretch; flex-direction:column; }
  .barn-button { width:100%; }
  .barn-promise-grid { grid-template-columns:1fr; }
  .barn-schedule li { grid-template-columns:1fr; gap:.35rem; }
  .barn-form-row { grid-template-columns:1fr; }
  .barn-entry-choice { grid-template-columns:auto 1fr; }
  .barn-entry-choice>strong { grid-column:2; }
  .barn-ticket-panel-head { align-items:flex-start; }
  .barn-price { width:68px; height:68px; font-size:1.35rem; }
}

/* default 1-col, wider cols at breakpoints */
.booking-container { display: grid; grid-template-columns: 1fr; gap: 2rem; margin-bottom: 3rem; }
@media (min-width: 768px) { .booking-container { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) {
  .booking-container { grid-template-columns: repeat(2, 1fr); max-width: 1000px; margin: 0 auto 3rem auto; }
}

/* Keep the stall card readable even when an older shared card stylesheet is cached. */
.booking-section .booking-card--stall .booking-header {
  background-color: #2a9d8f;
  color: #fff;
}
.booking-section .booking-card--stall .booking-header h3 { color: #fff; }
.booking-section .booking-card--stall .booking-header i { color: #f0b429; }
.booking-section .booking-card--stall .booking-content { background-color: #fff; color: #3c2415; }
.booking-section .booking-card--stall .booking-content p { color: #3c2415; }

/* ===== Contact ===== */
.contact-details-list { list-style-type: none; margin-bottom: 25px; }
.contact-details-list li a { color: var(--teal); text-decoration: none; transition: color 0.3s; }
.contact-details-list li a:hover { color: var(--orange); text-decoration: underline; }

/* ===== Thank You ===== */
.thank-you-card { max-width: 900px; margin: 0 auto; }
.thank-you-icon { font-size: 4rem; color: var(--teal); margin-bottom: 20px; }
.thank-you-main-text { font-size: 1.2rem; margin-bottom: 15px; max-width: 700px; margin-left: auto; margin-right: auto; color: var(--brown); }
.response-time { color: #666; font-style: italic; margin-bottom: 40px; font-size: 1rem; }
.next-steps-section { margin: 40px 0; }
.next-steps-section h3 { font-size: 1.5rem; color: var(--brown); margin-bottom: 30px; font-weight: 600; }
.thank-you-actions { display: flex; justify-content: center; gap: 20px; margin-top: 40px; padding-top: 30px; border-top: 1px solid rgba(0,0,0,0.1); }
.thank-you-btn { padding: 14px 28px; font-size: 1rem; }
.thank-you-btn.primary { background-color: var(--yellow); color: var(--brown); }
.thank-you-btn.secondary { background-color: var(--teal); color: white; }
.thank-you-btn:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,0.15); }
.thank-you-btn.primary:hover { background-color: var(--brown); color: white; }
.thank-you-btn.secondary:hover { background-color: var(--orange); }

/* ===== Coming Soon ===== */
.coming-soon-card { max-width: 700px; margin: 0 auto; padding: 40px; text-align: center; }
.coming-soon-text { font-size: 1.2rem; margin-bottom: 30px; color: var(--brown); }
.coming-soon-info { margin: 30px 0; text-align: left; background-color: rgba(233,196,106,0.1); padding: 20px; border-radius: 8px; }
.coming-soon-actions { display: flex; justify-content: center; margin-top: 40px; padding-top: 30px; border-top: 1px solid rgba(0,0,0,0.1); }
.coming-soon-btn { min-width: 180px; padding: 14px 28px; }
.coming-soon-btn.return { background-color: var(--yellow); color: var(--brown); }
.coming-soon-btn:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,0.15); }
.coming-soon-btn.return:hover { background-color: var(--teal); color: white; }

/* ===== Privacy Policy ===== */
.privacy-container { max-width: 900px; margin: 0 auto; }
.effective-date, .website-link, .contact-email { margin: 5px 0; font-size: 1.1rem; }
.policy-section { margin-bottom: 30px; }
.policy-section h3 {
  color: var(--brown); font-size: 1.4rem; margin-bottom: 15px;
  border-bottom: 2px solid var(--yellow); padding-bottom: 8px; display: inline-block;
}
.policy-list li { position: relative; padding-left: 25px; margin-bottom: 10px; line-height: 1.5; color: #555; }
.policy-list li:before { content: "•"; color: var(--orange); font-size: 1.5rem; position: absolute; left: 0; top: -2px; }
.privacy-footer {
  padding: 20px; background-color: #f9f9f9; text-align: center;
  border-top: 1px solid #eee; color: #777; font-size: 0.9rem;
}

/* Responsiveness for privacy and coming soon */
@media (max-width: 768px) {
  .privacy-content { padding: 25px 20px; }
  .privacy-header h2 { font-size: 1.7rem; }
  .effective-date, .website-link, .contact-email { font-size: 1rem; }
  .policy-section h3 { font-size: 1.3rem; }

  .coming-soon-card { padding: 30px 20px; }
  .coming-soon-card h2 { font-size: 2rem; }
  .coming-soon-text { font-size: 1.1rem; }
}
