/*
Theme Name: HallPro Demo – Ashcombe Village Hall
Theme URI: https://hallpro-demo.modulefest.com/
Author: ModuleFest
Description: The website of Ashcombe Village Hall - a made-up village hall that shows what HallPro puts on a hall's own website: what's on, events, hire charges and booking. Built for the HallPro demo.
Version: 1.0.1
Requires at least: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: hallpro-demo-theme
*/

/* ---------------------------------------------------------------- base */

:root {
	--ah-cream: #fbf7ef;
	--ah-paper: #ffffff;
	--ah-sand: #f3ecdf;
	--ah-line: #e7dfcf;
	--ah-green: #1f4d3a;
	--ah-green-deep: #163a2b;
	--ah-sage: #dfe9dc;
	--ah-brick: #b5543a;
	--ah-brick-soft: #f6e1d8;
	--ah-honey: #e0a23b;
	--ah-honey-soft: #fbefd6;
	--ah-ink: #1e2a25;
	--ah-muted: #5c6b63;
	--ah-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	--ah-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--ah-radius: 18px;
	--ah-shadow: 0 1px 2px rgba(30, 42, 37, .05), 0 18px 40px -26px rgba(22, 58, 43, .45);
}

body {
	background: var(--ah-cream);
	color: var(--ah-ink);
	-webkit-font-smoothing: antialiased;
}

a { color: var(--ah-green); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--ah-brick); }

h1, h2, h3, h4 { font-family: var(--ah-serif); letter-spacing: -.01em; }

.ah-wrap { max-width: 1160px; margin: 0 auto; padding: 0 clamp(18px, 4vw, 32px); }

/* --------------------------------------------------------- demo ribbon */

.ah-demo {
	background: linear-gradient(90deg, #0a6d7d, #12b5ce);
	color: #fff;
	font: 500 .88rem/1.4 var(--ah-sans);
	text-align: center;
	padding: .55rem 1rem;
}
.ah-demo a { color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap; }
.ah-demo a:hover { text-decoration: underline; color: #fff; }
.ah-demo b { font-weight: 700; }

/* --------------------------------------------------------------- header */

.ah-header { background: var(--ah-cream); border-bottom: 1px solid var(--ah-line); position: sticky; top: 0; z-index: 20; }
.admin-bar .ah-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ah-header { top: 0; position: relative; } }
.ah-header .ah-wrap { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 76px; flex-wrap: wrap; }
.ah-brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--ah-ink); }
.ah-brand:hover { color: var(--ah-ink); }
.ah-brand svg { flex: none; }
.ah-brand strong { display: block; font: 700 1.28rem/1.05 var(--ah-serif); letter-spacing: -.01em; }
.ah-brand small { display: block; font: 600 .7rem/1.3 var(--ah-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ah-brick); margin-top: .2rem; }

.ah-nav { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; font: 600 .95rem/1 var(--ah-sans); }
.ah-nav a { color: var(--ah-ink); text-decoration: none; padding: .6rem .8rem; border-radius: 999px; }
.ah-nav a:hover { background: var(--ah-sand); color: var(--ah-green); }
.ah-nav a.ah-nav-cta { background: var(--ah-green); color: #fff; padding: .7rem 1.15rem; margin-left: .35rem; }
.ah-nav a.ah-nav-cta:hover { background: var(--ah-green-deep); color: #fff; }
@media (max-width: 900px) {
	.ah-header .ah-wrap { padding-top: .75rem; padding-bottom: .75rem; }
	.ah-nav { width: 100%; gap: .15rem; overflow-x: auto; flex-wrap: nowrap; padding-bottom: .25rem; }
	.ah-nav a { white-space: nowrap; }
}

/* ----------------------------------------------------------------- hero */

.ah-hero { position: relative; overflow: hidden; background:
	radial-gradient(900px 420px at 85% 10%, var(--ah-honey-soft) 0%, transparent 60%),
	radial-gradient(700px 380px at 5% 100%, var(--ah-sage) 0%, transparent 60%),
	var(--ah-cream); }
.ah-hero .ah-wrap { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; padding-top: clamp(40px, 7vw, 88px); padding-bottom: clamp(40px, 7vw, 88px); }
.ah-eyebrow { display: inline-flex; align-items: center; gap: .5rem; font: 700 .75rem/1 var(--ah-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ah-brick); background: var(--ah-brick-soft); padding: .5rem .8rem; border-radius: 999px; margin: 0 0 1.1rem; }
.ah-hero h1 { font-size: clamp(2.4rem, 5.4vw, 4.1rem); line-height: 1.02; margin: 0 0 1.1rem; color: var(--ah-green-deep); font-weight: 700; }
.ah-hero h1 em { font-style: italic; color: var(--ah-brick); font-weight: 600; }
.ah-lede { font: 400 clamp(1.05rem, 1.6vw, 1.22rem)/1.6 var(--ah-sans); color: var(--ah-muted); max-width: 34em; margin: 0 0 1.8rem; }
.ah-buttons { display: flex; flex-wrap: wrap; gap: .75rem; }
.ah-btn { display: inline-flex; align-items: center; gap: .5rem; font: 700 1rem/1 var(--ah-sans); padding: .95rem 1.4rem; border-radius: 999px; text-decoration: none; border: 2px solid transparent; transition: transform .12s ease, background-color .15s ease, box-shadow .15s ease; }
.ah-btn:hover { transform: translateY(-1px); }
.ah-btn-primary { background: var(--ah-green); color: #fff; box-shadow: 0 12px 24px -14px rgba(22, 58, 43, .9); }
.ah-btn-primary:hover { background: var(--ah-green-deep); color: #fff; }
.ah-btn-ghost { background: transparent; color: var(--ah-green); border-color: var(--ah-green); }
.ah-btn-ghost:hover { background: var(--ah-green); color: #fff; }
.ah-btn-light { background: #fff; color: var(--ah-green-deep); }
.ah-btn-light:hover { background: var(--ah-honey-soft); color: var(--ah-green-deep); }
.ah-hero-art { position: relative; }
.ah-hero-art svg { width: 100%; height: auto; display: block; filter: drop-shadow(0 30px 40px rgba(22, 58, 43, .18)); }
@media (max-width: 860px) {
	.ah-hero .ah-wrap { grid-template-columns: 1fr; }
	.ah-hero-art { max-width: 520px; margin: 0 auto; order: -1; }
}

/* ------------------------------------------------------------- at a glance */

.ah-glance { background: var(--ah-green); color: #fff; }
.ah-glance .ah-wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; padding-top: 0; padding-bottom: 0; }
.ah-glance div { padding: 1.4rem 1.1rem; display: flex; gap: .85rem; align-items: center; }
.ah-glance svg { flex: none; opacity: .95; }
.ah-glance strong { display: block; font: 700 1.05rem/1.2 var(--ah-serif); }
.ah-glance span { display: block; font: 400 .88rem/1.35 var(--ah-sans); opacity: .82; }
@media (max-width: 900px) { .ah-glance .ah-wrap { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .ah-glance .ah-wrap { grid-template-columns: 1fr; } .ah-glance div { padding: 1rem .25rem; } }

/* --------------------------------------------------------------- sections */

.ah-section { padding: clamp(56px, 8vw, 104px) 0; }
.ah-section-sand { background: var(--ah-sand); }
.ah-head { max-width: 680px; margin: 0 0 2.2rem; }
.ah-head-center { margin-left: auto; margin-right: auto; text-align: center; }
.ah-kicker { font: 700 .76rem/1 var(--ah-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--ah-brick); margin: 0 0 .8rem; }
.ah-head h2 { font-size: clamp(1.9rem, 3.6vw, 2.75rem); line-height: 1.1; margin: 0 0 .8rem; color: var(--ah-green-deep); }
.ah-head p { font: 400 1.08rem/1.6 var(--ah-sans); color: var(--ah-muted); margin: 0; }

.ah-two { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(20px, 3vw, 40px); align-items: start; }
@media (max-width: 900px) { .ah-two { grid-template-columns: 1fr; } }

.ah-card { background: var(--ah-paper); border: 1px solid var(--ah-line); border-radius: var(--ah-radius); padding: clamp(22px, 3vw, 34px); box-shadow: var(--ah-shadow); }
.ah-card > h3:first-child { margin-top: 0; }
.ah-card-title { display: flex; align-items: center; gap: .6rem; font: 700 1.35rem/1.2 var(--ah-serif); color: var(--ah-green-deep); margin: 0 0 1rem; }

/* ------------------------------------------------------------------ rooms */

.ah-rooms { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.4vw, 28px); }
@media (max-width: 900px) { .ah-rooms { grid-template-columns: 1fr; } }
.ah-room { background: var(--ah-paper); border: 1px solid var(--ah-line); border-radius: var(--ah-radius); overflow: hidden; box-shadow: var(--ah-shadow); display: flex; flex-direction: column; }
.ah-room-art { aspect-ratio: 16 / 9; display: grid; place-items: center; }
.ah-room-art svg { width: 62%; height: auto; }
.ah-room-1 .ah-room-art { background: linear-gradient(135deg, var(--ah-sage), #c9dccb); }
.ah-room-2 .ah-room-art { background: linear-gradient(135deg, var(--ah-honey-soft), #f5dfae); }
.ah-room-3 .ah-room-art { background: linear-gradient(135deg, var(--ah-brick-soft), #efc9b9); }
.ah-room-body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.ah-room h3 { margin: 0; font-size: 1.45rem; color: var(--ah-green-deep); }
.ah-room-cap { font: 700 .78rem/1 var(--ah-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ah-brick); }
.ah-room p { margin: 0; color: var(--ah-muted); font: 400 .98rem/1.55 var(--ah-sans); }
.ah-room ul { margin: .3rem 0 0; padding: 0; list-style: none; display: grid; gap: .4rem; font: 400 .93rem/1.4 var(--ah-sans); }
.ah-room li { display: flex; gap: .5rem; align-items: flex-start; }
.ah-room li::before { content: ""; flex: none; width: .5rem; height: .5rem; border-radius: 50%; background: var(--ah-honey); margin-top: .45em; }
.ah-room-price { margin-top: auto !important; padding-top: .9rem; border-top: 1px dashed var(--ah-line); color: var(--ah-ink) !important; font-weight: 600 !important; }

/* ------------------------------------------------------------- hire band */

.ah-band { background: var(--ah-green); color: #fff; border-radius: calc(var(--ah-radius) + 6px); padding: clamp(28px, 5vw, 56px); display: grid; grid-template-columns: 1.3fr auto; gap: 2rem; align-items: center; position: relative; overflow: hidden; }
.ah-band::after { content: ""; position: absolute; right: -80px; top: -80px; width: 280px; height: 280px; border-radius: 50%; background: rgba(224, 162, 59, .18); }
.ah-band h2 { font-size: clamp(1.8rem, 3.2vw, 2.5rem); line-height: 1.12; margin: 0 0 .7rem; color: #fff; }
.ah-band p { margin: 0; font: 400 1.06rem/1.6 var(--ah-sans); color: rgba(255, 255, 255, .85); max-width: 36em; }
.ah-band .ah-buttons { position: relative; z-index: 1; }
@media (max-width: 800px) { .ah-band { grid-template-columns: 1fr; } }

/* -------------------------------------------------------------- roof fund */

.ah-roof { display: grid; grid-template-columns: auto 1fr auto; gap: clamp(18px, 3vw, 36px); align-items: center; background: var(--ah-honey-soft); border: 1px solid #f1dcae; border-radius: var(--ah-radius); padding: clamp(22px, 4vw, 40px); }
.ah-roof h3 { margin: 0 0 .4rem; font-size: 1.6rem; color: var(--ah-green-deep); }
.ah-roof p { margin: 0; color: #6b5a3a; font: 400 1rem/1.55 var(--ah-sans); }
@media (max-width: 760px) { .ah-roof { grid-template-columns: 1fr; text-align: left; } }

/* ---------------------------------------------------------------- find us */

.ah-find { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 40px); }
@media (max-width: 860px) { .ah-find { grid-template-columns: 1fr; } }
.ah-map { border-radius: var(--ah-radius); overflow: hidden; border: 1px solid var(--ah-line); box-shadow: var(--ah-shadow); background: #e9efe4; min-height: 300px; }
.ah-map svg { width: 100%; height: 100%; display: block; }
.ah-facts { display: grid; gap: 1.1rem; margin: 0; }
.ah-facts div { display: grid; grid-template-columns: 44px 1fr; gap: .9rem; align-items: start; }
.ah-facts dt { width: 44px; height: 44px; border-radius: 12px; background: var(--ah-sage); display: grid; place-items: center; color: var(--ah-green); }
.ah-facts dd { margin: 0; font: 400 1rem/1.55 var(--ah-sans); color: var(--ah-muted); }
.ah-facts dd strong { display: block; color: var(--ah-ink); font: 700 1.05rem/1.3 var(--ah-serif); margin-bottom: .1rem; }

/* ------------------------------------------------------------------ footer */

.ah-footer { background: var(--ah-green-deep); color: rgba(255, 255, 255, .78); padding: clamp(44px, 6vw, 72px) 0 1.6rem; font: 400 .95rem/1.6 var(--ah-sans); }
.ah-footer a { color: #fff; }
.ah-footer .ah-brand, .ah-footer .ah-brand:hover { color: #fff; }
.ah-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; }
@media (max-width: 800px) { .ah-footer-grid { grid-template-columns: 1fr; } }
.ah-footer h4 { color: #fff; font: 700 .78rem/1 var(--ah-sans); letter-spacing: .16em; text-transform: uppercase; margin: .4rem 0 1rem; }
.ah-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.ah-footer ul a { text-decoration: none; }
.ah-footer ul a:hover { text-decoration: underline; color: #fff; }
.ah-footer-base { margin-top: 2.6rem; padding-top: 1.4rem; border-top: 1px solid rgba(255, 255, 255, .14); display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: .86rem; }

/* ----------------------------------------------------------- inner pages */

.ah-page-head { background:
	radial-gradient(700px 300px at 90% 0%, var(--ah-honey-soft) 0%, transparent 60%),
	var(--ah-sand); border-bottom: 1px solid var(--ah-line); padding: clamp(40px, 6vw, 72px) 0 clamp(32px, 5vw, 56px); }
.ah-page-head h1 { font-size: clamp(2.1rem, 4.6vw, 3.3rem); line-height: 1.06; margin: 0; color: var(--ah-green-deep); }
.ah-page-body { padding: clamp(36px, 5vw, 64px) 0 clamp(56px, 8vw, 96px); }
.ah-page-body .ah-wrap > .wp-block-post-content { max-width: 860px; margin: 0 auto; font: 400 1.06rem/1.7 var(--ah-sans); }
.ah-page-body .ah-wrap > .wp-block-post-content > p:first-child { font-size: 1.18rem; color: var(--ah-muted); }

/* --------------------------------------------- HallPro's own public output */

.modulefest-demo-note, .hallpro-demo-note {
	background: var(--ah-honey-soft) !important;
	border: 1px solid #f1dcae !important;
	border-left: 0 !important;
	border-radius: 999px !important;
	padding: .55rem 1rem !important;
	font: 500 .88rem/1.4 var(--ah-sans);
	color: #6b5a3a;
	display: inline-block;
	margin: 0 0 1.4rem !important;
}
.modulefest-demo-note em, .hallpro-demo-note em { font-style: normal; }

/* What's on */
.hallpro-whats-on h2 { font-size: 1.35rem; color: var(--ah-green-deep); margin: 1.4rem 0 .9rem; display: flex; align-items: center; gap: .6rem; }
.hallpro-whats-on h2:first-of-type { margin-top: 0; }
.hallpro-whats-on h2::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--ah-brick); }
.hallpro-wo-events { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .6rem; }
.hallpro-wo-events li { background: var(--ah-brick-soft); border-radius: 14px; padding: .85rem 1.1rem; font: 400 .98rem/1.5 var(--ah-sans); }
.hallpro-wo-events a { color: var(--ah-green-deep); text-decoration: none; }
.hallpro-wo-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .85rem; }
.hallpro-wo-group { background: var(--ah-paper); border: 1px solid var(--ah-line); border-radius: 14px; padding: 1rem 1.1rem; }
.hallpro-wo-group h3 { margin: 0 0 .35rem; font-size: 1.12rem; color: var(--ah-green-deep); }
.hallpro-wo-group p { margin: .25rem 0; font: 400 .93rem/1.5 var(--ah-sans); color: var(--ah-muted); }
.hallpro-wo-when { color: var(--ah-brick) !important; font-weight: 600 !important; }
.hallpro-wo-contact a { font-size: .9rem; word-break: break-all; }

/* Events */
.hallpro-events { display: grid; gap: 1rem; }
.hallpro-event { background: var(--ah-paper); border: 1px solid var(--ah-line); border-radius: 16px; padding: 1.2rem 1.35rem; display: grid; gap: .3rem; position: relative; overflow: hidden; }
.hallpro-event::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(var(--ah-honey), var(--ah-brick)); }
.hallpro-event h3 { margin: 0; font-size: 1.3rem; }
.hallpro-event h3 a { color: var(--ah-green-deep); text-decoration: none; }
.hallpro-event p { margin: 0; font: 400 .98rem/1.55 var(--ah-sans); color: var(--ah-muted); }
.hallpro-event-when { color: var(--ah-brick) !important; font-weight: 600 !important; }
.hallpro-event-btn, .hallpro-submit, .hallpro-enquiry-form button[type=submit], .hallpro-enquiry-form input[type=submit] {
	display: inline-flex !important; align-items: center; margin-top: .5rem;
	background: var(--ah-green) !important; color: #fff !important; border: 0 !important;
	font: 700 .95rem/1 var(--ah-sans) !important; padding: .8rem 1.2rem !important; border-radius: 999px !important;
	text-decoration: none !important; cursor: pointer;
}
.hallpro-event-btn:hover, .hallpro-submit:hover { background: var(--ah-green-deep) !important; }

/* Hire charges */
.hallpro-prices { display: grid; gap: 1.2rem; }
.hallpro-price-room { background: var(--ah-paper); border: 1px solid var(--ah-line); border-radius: var(--ah-radius); padding: 1.4rem 1.5rem; box-shadow: var(--ah-shadow); }
.hallpro-price-room h3 { margin: 0; font-size: 1.5rem; color: var(--ah-green-deep); }
.hallpro-price-room h4 { font: 700 .78rem/1 var(--ah-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ah-brick); margin: 1.3rem 0 .5rem; }
.hallpro-price-cap { margin: .2rem 0 .9rem; font: 600 .9rem/1 var(--ah-sans); color: var(--ah-muted); }
.hallpro-price-table { width: 100%; border-collapse: collapse; font: 400 .98rem/1.45 var(--ah-sans); }
.hallpro-price-table th, .hallpro-price-table td { padding: .65rem .2rem; border-bottom: 1px solid var(--ah-line); text-align: left; vertical-align: top; }
.hallpro-price-table td { text-align: right; font-weight: 700; color: var(--ah-green-deep); white-space: nowrap; }
.hallpro-price-table th { font-weight: 500; }
.hallpro-price-table small { color: var(--ah-muted); font-weight: 400; }
.hallpro-price-group th { font: 700 .74rem/1 var(--ah-sans) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--ah-brick); padding-top: 1.1rem !important; border-bottom: 0 !important; }
.hallpro-price-notes { font: 400 .95rem/1.6 var(--ah-sans); color: var(--ah-muted); }

/* Booking calendar and form */
.hallpro-calendar, .hallpro-form-wrap { background: var(--ah-paper); border: 1px solid var(--ah-line); border-radius: var(--ah-radius); padding: clamp(18px, 3vw, 28px); box-shadow: var(--ah-shadow); margin-bottom: 1.4rem; }
.hallpro-enquiry-form input[type=text], .hallpro-enquiry-form input[type=email], .hallpro-enquiry-form input[type=tel],
.hallpro-enquiry-form input[type=date], .hallpro-enquiry-form input[type=time], .hallpro-enquiry-form input[type=number],
.hallpro-enquiry-form select, .hallpro-enquiry-form textarea {
	width: 100%; padding: .7rem .85rem; border: 1.5px solid var(--ah-line); border-radius: 12px; font: 400 1rem/1.4 var(--ah-sans); background: #fff;
}
.hallpro-enquiry-form input:focus, .hallpro-enquiry-form select:focus, .hallpro-enquiry-form textarea:focus { outline: none; border-color: var(--ah-green); box-shadow: 0 0 0 4px rgba(31, 77, 58, .12); }

/* ---- 1.0.0 polish: booking page, hero wrap, repeated demo notes ---- */
.ah-hero h1 em { white-space: nowrap; }
.ah-card .hallpro-demo-note, .ah-card .modulefest-demo-note { display: none; }

.ah-page-body .hallpro-calendar, .ah-page-body .hallpro-form-wrap { max-width: none; }
.hallpro-room-switch { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1.2rem; }
.hallpro-room-switch a { display: inline-flex; padding: .5rem 1rem; border-radius: 999px; border: 1.5px solid var(--ah-line) !important; background: var(--ah-cream) !important; color: var(--ah-green-deep) !important; font: 600 .92rem/1 var(--ah-sans); text-decoration: none; }
.hallpro-room-switch a:hover { border-color: var(--ah-green) !important; }
.hallpro-room-switch a.hallpro-active { background: var(--ah-green) !important; border-color: var(--ah-green) !important; color: #fff !important; }
.hallpro-cal-nav { display: flex; align-items: center; justify-content: space-between; margin: 0 0 .9rem; font-family: var(--ah-sans); }
.hallpro-cal-nav strong { font: 700 1.35rem/1.1 var(--ah-serif); color: var(--ah-green-deep); }
.hallpro-cal-nav a { font-weight: 600; color: var(--ah-green); text-decoration: none; padding: .35rem .75rem; border-radius: 999px; background: var(--ah-sage); font-size: .9rem; }
.hallpro-cal-grid { width: 100%; border-collapse: separate !important; border-spacing: 5px; table-layout: fixed; font-family: var(--ah-sans); margin: 0 -5px; width: calc(100% + 10px); }
.hallpro-cal-grid th { font: 700 .72rem/1 var(--ah-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ah-muted); padding: .3rem 0 .5rem; border: 0 !important; background: none !important; }
.hallpro-cal-grid td { border: 0 !important; border-radius: 10px; height: 64px; padding: .45rem .5rem !important; vertical-align: top; }
.hallpro-cal-grid td.hallpro-day-blank { background: transparent !important; }
.hallpro-day-free { background: var(--ah-sage) !important; }
.hallpro-day-booked { background: var(--ah-brick-soft) !important; }
.hallpro-day-num { display: block; font: 700 1rem/1 var(--ah-sans); color: var(--ah-green-deep); }
.hallpro-day-booked .hallpro-day-num { color: var(--ah-brick); }
.hallpro-day-status { display: block; margin-top: .3rem; font-size: .7rem; color: var(--ah-muted); }
.hallpro-day-past { opacity: .42; }
.hallpro-day-today { box-shadow: inset 0 0 0 2px var(--ah-honey) !important; outline: 0 !important; }
.hallpro-cal-legend { font: 500 .88rem/1 var(--ah-sans); color: var(--ah-muted); margin: 1rem 0 0; display: flex; align-items: center; gap: .45rem; }
.hallpro-legend-swatch { display: inline-block; width: 14px; height: 14px; border-radius: 4px; border: 0 !important; }
.hallpro-form-wrap::before { content: "Tell us about your booking"; display: block; font: 700 1.5rem/1.2 var(--ah-serif); color: var(--ah-green-deep); margin: 0 0 1.1rem; }
.hallpro-enquiry-form { display: grid; grid-template-columns: 1fr 1fr; gap: .2rem 1.1rem; font-family: var(--ah-sans); }
.hallpro-enquiry-form > * { grid-column: 1 / -1; margin: 0 0 .7rem; }
.hallpro-enquiry-form > p:has(#hallpro_name), .hallpro-enquiry-form > p:has(#hallpro_email),
.hallpro-enquiry-form > p:has(#hallpro_phone), .hallpro-enquiry-form > p:has(#hallpro_hirer_type),
.hallpro-enquiry-form > p:has(#hallpro_start_time), .hallpro-enquiry-form > p:has(#hallpro_end_time) { grid-column: auto; }
.hallpro-rate-display { background: var(--ah-honey-soft); border-radius: 12px; padding: .7rem 1rem; font-weight: 600; color: var(--ah-green-deep); }
.hallpro-rate-display:empty { display: none; }
.hallpro-enquiry-form label { font: 600 .92rem/1.4 var(--ah-sans); color: var(--ah-ink); }
.hallpro-enquiry-form input, .hallpro-enquiry-form select, .hallpro-enquiry-form textarea { max-width: none !important; margin-top: .35rem; box-sizing: border-box; }
.hallpro-enquiry-form select { appearance: auto; }
.hallpro-hp-field { display: none !important; }
.hallpro-extras { border: 1.5px solid var(--ah-line) !important; border-radius: 14px !important; padding: .6rem 1.1rem 1rem !important; background: var(--ah-cream); }
.hallpro-extras legend { font: 700 .95rem/1 var(--ah-sans); padding: 0 .4rem !important; color: var(--ah-green-deep); }
.hallpro-extra { display: flex !important; gap: .75rem !important; align-items: flex-start; padding: .7rem 0; margin: 0 !important; border-bottom: 1px dashed var(--ah-line); font-weight: 400 !important; }
.hallpro-extra:last-child { border-bottom: 0; }
.hallpro-extra input[type=checkbox] { width: 20px; height: 20px; margin: .1rem 0 0; accent-color: var(--ah-green); flex: none; }
.hallpro-enquiry-form .hallpro-extra-qty { width: 4.6em !important; flex: none; margin: 0 !important; padding: .35rem .5rem !important; }
.hallpro-extra small { color: var(--ah-muted); font-weight: 400; font-size: .85rem; }
.hallpro-enquiry-form button[type=submit], .hallpro-enquiry-form input[type=submit] { justify-self: start; padding: .95rem 1.6rem !important; }
@media (max-width: 640px) {
	.hallpro-enquiry-form { grid-template-columns: 1fr; }
	.hallpro-enquiry-form > p { grid-column: 1 / -1 !important; }
	.hallpro-cal-grid { border-spacing: 3px; margin: 0 -3px; width: calc(100% + 6px); }
	.hallpro-cal-grid td { height: 48px; padding: .3rem !important; border-radius: 7px; }
	.hallpro-day-status { display: none; }
}
.ah-page-body .hallpro-price-table { max-width: none; }
.ah-page-body > .ah-wrap > .entry-content > .modulefest-demo-note, .ah-page-body .modulefest-demo-note { border-radius: 14px; font-size: .95rem; }
@media (max-width: 600px) {
	.ah-nav { flex-wrap: wrap; overflow: visible; row-gap: .3rem; }
	.ah-nav a { padding: .5rem .65rem; font-size: .9rem; }
	.ah-nav a.ah-nav-cta { margin-left: auto; }
}
/* What's on: the next few weeks as a diary */
.hallpro-wo-days { margin: .4rem 0 0; background: var(--ah-paper); border: 1px solid var(--ah-line); border-radius: var(--ah-radius); overflow: hidden; display: grid; grid-template-columns: minmax(150px, 220px) 1fr; }
.hallpro-wo-days dt, .hallpro-wo-days dd { margin: 0; padding: .85rem 1.1rem; border-top: 1px solid var(--ah-line); }
.hallpro-wo-days dt:first-of-type, .hallpro-wo-days dt:first-of-type + dd { border-top: 0; }
.hallpro-wo-days dt { font: 700 .95rem/1.35 var(--ah-sans); color: var(--ah-green-deep); background: var(--ah-sand); }
.hallpro-wo-days dd ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.hallpro-wo-days li { font: 500 .98rem/1.4 var(--ah-sans); }
.hallpro-wo-time { display: inline-block; min-width: 9.5em; font-weight: 700; color: var(--ah-brick); }
.hallpro-wo-room { color: var(--ah-muted); font-weight: 400; }
.ah-card .hallpro-wo-days { grid-template-columns: 1fr; border-radius: 14px; }
.ah-card .hallpro-wo-days dt { padding: .55rem .9rem; font-size: .88rem; }
.ah-card .hallpro-wo-days dd { border-top: 0; padding: .6rem .9rem .8rem; }
.ah-card .hallpro-wo-time { display: block; min-width: 0; font-size: .85rem; }
@media (max-width: 600px) {
	.hallpro-wo-days { grid-template-columns: 1fr; }
	.hallpro-wo-days dd { border-top: 0; }
	.hallpro-wo-time { display: block; }
}
.hallpro-wo-days > dt, .hallpro-wo-days > dd, .hallpro-wo-days dd ul { margin: 0 !important; }
.hallpro-wo-days > dd { display: flex; align-items: center; }
.ah-card .hallpro-wo-days > dd { display: block; }
/* Event page and ticket form */
.hallpro-event-page { background: var(--ah-paper); border: 1px solid var(--ah-line); border-radius: var(--ah-radius); padding: clamp(22px, 4vw, 40px); box-shadow: var(--ah-shadow); position: relative; overflow: hidden; font-family: var(--ah-sans); }
.hallpro-event-page::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, var(--ah-honey), var(--ah-brick)); }
.hallpro-event-page h2, .hallpro-event-page h3 { margin-top: 0; font-size: clamp(1.7rem, 3vw, 2.2rem); color: var(--ah-green-deep); }
.hallpro-ticket-form { margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px dashed var(--ah-line); display: grid; grid-template-columns: 1fr 1fr; gap: .2rem 1.1rem; }
.hallpro-ticket-form > * { margin: 0 0 .8rem; }
.hallpro-ticket-form > p:has(button), .hallpro-ticket-form > button, .hallpro-ticket-form > div, .hallpro-ticket-form > fieldset { grid-column: 1 / -1; }
.hallpro-ticket-form label { font: 600 .92rem/1.4 var(--ah-sans); color: var(--ah-ink); }
.hallpro-ticket-form input[type=text], .hallpro-ticket-form input[type=email], .hallpro-ticket-form input[type=number] {
	display: block; width: 100%; max-width: none !important; box-sizing: border-box; margin-top: .35rem; padding: .7rem .85rem; border: 1.5px solid var(--ah-line); border-radius: 12px; font: 400 1rem/1.4 var(--ah-sans); background: #fff;
}
.hallpro-ticket-form input:focus { outline: none; border-color: var(--ah-green); box-shadow: 0 0 0 4px rgba(31, 77, 58, .12); }
.hallpro-ticket-form button { display: inline-flex; align-items: center; background: var(--ah-green) !important; color: #fff !important; border: 0 !important; font: 700 .98rem/1 var(--ah-sans) !important; padding: .95rem 1.5rem !important; border-radius: 999px !important; cursor: pointer; margin: .2rem .5rem .2rem 0; }
.hallpro-ticket-form button:hover { background: var(--ah-green-deep) !important; }
.hallpro-ticket-form button + button { background: var(--ah-brick) !important; }
@media (max-width: 600px) { .hallpro-ticket-form { grid-template-columns: 1fr; } }
