/*
Theme Name: Dunmore Farm
Description: Block theme for Dunmore Farm. For the move off Squarespace it follows the current site's look (18 Oct 2026); Pip Compton's identity follows in the design stream. The Squarespace fonts can't come across, so type follows Pip's identity: OFL stand-ins for Mrs Eaves, Gill Sans and Orator until web licences are bought.
Version: 0.2.0
Requires at least: 7.0
Requires PHP: 8.3
Text Domain: dunmore
*/

/* Short labels in the Orator stand-in. Never for prices, instructions or body text. */
.is-style-label {
	font-family: var(--wp--preset--font-family--label);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate);
}

/* Marks text still to be migrated. Visible on purpose. */
.is-style-placeholder {
	border: 1px dashed var(--wp--preset--color--line);
	padding: 1rem 1.25rem;
	color: var(--wp--preset--color--slate);
}

hr.wp-block-separator {
	border: 0;
	border-top: 1px dashed var(--wp--preset--color--line);
	opacity: 1;
}

.skip-link:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
	z-index: 100;
	background: var(--wp--preset--color--white);
	padding: 0.75rem 1rem;
}

/* Header: menu left, wordmark centre, cart and Book right (as on Squarespace). */
.dunmore-header {
	background: var(--wp--preset--color--paper);
	position: relative;
	z-index: 20;
}
.dunmore-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
	padding: 1.5rem clamp(1rem, 1.4vw, 1.25rem);
	max-width: none;
}
.dunmore-header__nav { justify-self: start; }
.dunmore-header__actions { justify-self: end; gap: 2.5rem; }
.dunmore-wordmark img {
	display: block;
	width: clamp(150px, 15vw, 210px);
	height: auto;
}
.dunmore-header .wp-block-navigation a {
	text-decoration: none;
	padding-block: 0.625rem;
}
.dunmore-header .wp-block-navigation a:hover,
.dunmore-header .wp-block-navigation .current-menu-item > a {
	text-decoration: underline;
	text-underline-offset: 6px;
}
.dunmore-header .dunmore-book .wp-block-button__link {
	padding: 1rem 2rem;
	white-space: nowrap;
}
.dunmore-header .wc-block-mini-cart__button { color: var(--wp--preset--color--ink); }

/* Footer: dark green, three columns, then the guest and shop pages. */
.dunmore-footer {
	color: #C9CCC3;
	font-size: 0.875rem;
	padding: 3.5rem clamp(1rem, 1.4vw, 1.25rem) 2.5rem;
	margin-top: 0;
}
.dunmore-footer a { color: inherit; text-decoration: none; }
.dunmore-footer a:hover { color: var(--wp--preset--color--white); text-decoration: underline; }
.dunmore-footer p { margin: 0 0 1rem; }
.dunmore-footer__inner {
	display: grid;
	grid-template-columns: 2fr 1fr 2fr;
	gap: 2rem 3rem;
	align-items: start;
}
.dunmore-footer__name { color: var(--wp--preset--color--white); font-weight: 600; }
.dunmore-footer__links { margin: 0; padding: 0; list-style: none; }
.dunmore-footer__links li { margin: 0 0 0.85rem; font-weight: 600; }
.dunmore-footer__base { margin-top: 5rem; }
.dunmore-footer__small { margin: 0 0 1rem; padding: 0; list-style: none; line-height: 1.6; }
.dunmore-footer__copy { font-size: 0.75rem; opacity: 0.8; }
.dunmore-footer .dunmore-signup { margin-top: 0; }
.dunmore-footer .dunmore-signup__title { font-family: inherit; font-size: inherit; color: var(--wp--preset--color--white); }

/* Book Your Stay sits in the menu only when it opens on a phone; elsewhere it's the header button. */
.dunmore-header__nav .dunmore-nav-book { display: none; }
.dunmore-header__nav .is-menu-open .dunmore-nav-book { display: flex; margin-top: 1rem; }
.dunmore-header__nav .wp-block-navigation__responsive-container.is-menu-open .dunmore-nav-book .wp-block-navigation-item__content { display: inline-flex; min-height: 0; border: 1px solid currentColor; padding: 0.875rem 1.5rem; align-items: center; }

/* Touch targets */
.wp-block-button__link,
.wp-block-navigation-item__content {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

@media (max-width: 781px) {
	/* Phone: menu button left, wordmark centre, cart right; the film carries Book. */
	.dunmore-header__inner { padding: 1rem; }
	.dunmore-header .dunmore-book { display: none; }
	.dunmore-wordmark img { width: 128px; }
	.dunmore-footer__inner { grid-template-columns: 1fr; }
	.dunmore-footer__base { margin-top: 3rem; }
}

/* Booking button and its demonstration note */
.dunmore-booking-note {
	max-width: 40rem;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	color: var(--wp--preset--color--slate);
}
/* Booking search ([dunmore_booking_search]): our own form, or Preno's widget
   restyled with the site's fonts, colours and borders. */
.dunmore-booking-search__form { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; align-items: end; }
.dunmore-booking-search__form label { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.dunmore-booking-search__form input, .dunmore-booking-search__form select { box-sizing: border-box; height: 3rem; min-width: 10rem; padding: 0.7rem 0.8rem; border: 1px solid #a6aaa4; border-radius: 0; background: #fff; color: var(--wp--preset--color--ink); font: inherit; font-size: 1rem; letter-spacing: 0; text-transform: none; }
.dunmore-booking-search__form button { height: 3rem; }
.dunmore-booking-search__form button,
.dunmore-booking-search--preno .Configure-quickBook-Widget .btn.searchBtn { padding: 0.75rem 1.75rem !important; border: 0 !important; border-radius: 0 !important; background: var(--wp--preset--color--forest) !important; color: #fff !important; font-family: var(--wp--preset--font-family--sans) !important; font-size: 0.875rem !important; font-weight: 600 !important; letter-spacing: 0.06em !important; text-transform: uppercase; cursor: pointer; }
.dunmore-booking-search__form button:hover, .dunmore-booking-search__form button:focus-visible { background: var(--wp--preset--color--ink) !important; }
@media (max-width: 600px) { .dunmore-booking-search__form label, .dunmore-booking-search__form input, .dunmore-booking-search__form select, .dunmore-booking-search__form button, .dunmore-booking-search--preno .Configure-quickBook-Widget .btn.searchBtn { width: 100% !important; } }
.dunmore-booking-search--preno .Configure-quickBook-Widget .btn.searchBtn { white-space: nowrap; }
.dunmore-booking-search--preno .App, .dunmore-booking-search--preno .MbsSearchWidget { background-color: transparent !important; }
.dunmore-booking-search--preno .Configure-quickBook-Widget,
.dunmore-booking-search--preno .Configure-quickBook-Widget * { font-family: var(--wp--preset--font-family--sans) !important; }
/* Preno's widget laid out like our own form (Bec preferred its look, S59):
   separate Arrive and Depart boxes, a Guests box, the button on the same line;
   Preno's calendar, with its nightly prices, opens as before. */
.dunmore-booking-search--preno .MbsSearchWidget { display: flex !important; flex-wrap: wrap; gap: 1rem; justify-content: center; align-items: flex-end; padding: 0 !important; box-shadow: none !important; }
.dunmore-booking-search--preno .MbsSearchWidget > .formGroup,
.dunmore-booking-search--preno .searchBlock { margin: 0 !important; padding: 0 !important; width: auto !important; flex: 0 0 auto; }
.dunmore-booking-search--preno .checkInOutForm { display: flex !important; gap: 1rem; border: 0 !important; padding: 0 !important; background: none !important; width: auto !important; }
.dunmore-booking-search--preno .flexi-date-checkBox,
.dunmore-booking-search--preno .mbs-arrow { display: none !important; }
.dunmore-booking-search--preno .checkinOut,
.dunmore-booking-search--preno .inputRoom { display: flex !important; flex-direction: column; gap: 0.35rem; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; width: auto !important; text-align: left !important; }
.dunmore-booking-search--preno .lbl { position: static !important; margin: 0 !important; padding: 0 !important; background: none !important; color: var(--wp--preset--color--ink) !important; font-size: 0.75rem !important; font-weight: 600 !important; letter-spacing: 0.06em !important; text-transform: uppercase; text-align: left !important; }
.dunmore-booking-search--preno .checkinOut .checkinDate,
.dunmore-booking-search--preno .inputRoom .checkinDate { box-sizing: border-box; display: flex !important; align-items: center; height: 3rem !important; min-width: 10rem; margin: 0 !important; padding: 0 0.8rem !important; border: 1px solid #a6aaa4 !important; border-radius: 0 !important; background: #fff !important; color: var(--wp--preset--color--ink) !important; font-size: 1rem !important; text-align: left !important; cursor: pointer; }
.dunmore-booking-search--preno .inputRoom .checkinDate { min-width: 12rem; }
.dunmore-booking-search--preno .inputRoom .checkinDate input { border: 0 !important; padding: 0 !important; background: none !important; font-size: 1rem !important; color: inherit !important; cursor: pointer; }
.dunmore-booking-search--preno .inputRoom .lbl { font-size: 0 !important; }
.dunmore-booking-search--preno .inputRoom .lbl::before { content: "Guests"; font-size: 0.75rem; }
.dunmore-booking-search--preno .Configure-quickBook-Widget .btn.searchBtn { height: 3rem; }
.dunmore-booking-search--preno .checkinOut { position: relative; z-index: 1; }
.dunmore-booking-search--preno .checkinOut .checkinDate { width: 10rem; outline: 1px solid #a6aaa4; outline-offset: -1px; }
/* On phones Preno swaps the guest box for adult and child counters. */
.dunmore-booking-search--preno .guestsearchTxt { margin: 0 !important; text-align: left; }
.dunmore-booking-search--preno .guestsearchTxt > br,
.dunmore-booking-search--preno .guest_Rooms_Count { display: none !important; }
.dunmore-booking-search--preno .guestsearchTxt > .widgetLabel { display: block; margin: 0 0 0.35rem !important; font-size: 0 !important; font-weight: 600 !important; }
.dunmore-booking-search--preno .guestsearchTxt > .widgetLabel::before { content: "Guests"; font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--ink); }
.dunmore-booking-search--preno .guestgroup, .dunmore-booking-search--preno .add-aroom, .dunmore-booking-search--preno .guest-count-input { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.dunmore-booking-search--preno .selectrow { gap: 1rem; }
.dunmore-booking-search--preno .selectrow label { font-size: 0.75rem !important; }
.dunmore-booking-search--preno .inc-div { display: flex; height: 3rem; border: 1px solid #a6aaa4; background: #fff; }
.dunmore-booking-search--preno .inc-div .incr-btn { width: 3rem; border: 0 !important; border-radius: 0 !important; background: #fff !important; color: var(--wp--preset--color--ink) !important; font-size: 1.25rem !important; }
.dunmore-booking-search--preno .inc-div .incr-btn:disabled { opacity: 0.3; }
.dunmore-booking-search--preno .inc-div .quantity { flex: 1; min-width: 0; border: 0 !important; text-align: center; font-size: 1rem !important; background: #fff !important; }
@media (max-width: 600px) {
	.dunmore-booking-search--preno .checkinOut, .dunmore-booking-search--preno .guestsearchTxt, .dunmore-booking-search--preno .selectrow > div { width: 100% !important; flex: 1; }
	.dunmore-booking-search--preno .Configure-quickBook-Widget .checkInOutForm,
	.dunmore-booking-search--preno .Configure-quickBook-Widget .searchinOut,
	.dunmore-booking-search--preno .Configure-quickBook-Widget .checkinOut .checkinDate { width: 100% !important; max-width: none !important; }
	.dunmore-booking-search--preno .MbsSearchWidget,
	.dunmore-booking-search--preno .checkInOutForm { flex-direction: column; align-items: stretch; }
	.dunmore-booking-search--preno .MbsSearchWidget > .formGroup,
	.dunmore-booking-search--preno .searchBlock,
	.dunmore-booking-search--preno .checkinOut .checkinDate,
	.dunmore-booking-search--preno .inputRoom .checkinDate { width: 100% !important; }
}
.dunmore-booking-search + .dunmore-booking-note { margin: 1rem auto 0; text-align: center; }
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Newsletter signup (MailPoet form inside .dunmore-signup) */
.dunmore-signup {
	margin-top: var(--wp--preset--spacing--40);
	max-width: 26rem;
}
.dunmore-signup__title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	margin: 0 0 0.25rem;
}
.dunmore-signup__note {
	font-size: var(--wp--preset--font-size--small);
	margin: 0 0 0.75rem;
}
.dunmore-signup .mailpoet_paragraph {
	margin-bottom: 0.75rem;
}
.dunmore-signup label,
.dunmore-signup .mailpoet_text_label {
	display: block;
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: 0.25rem;
}
.dunmore-signup input[type="email"],
.dunmore-signup input[type="text"] {
	width: 100%;
	min-height: 44px;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font: inherit;
}
/* Matches the theme's buttons; MailPoet sets an inline transparent border. */
.dunmore-signup input[type="submit"] {
	min-height: 44px;
	padding: 0.625rem 1.25rem;
	border: 1px solid var(--wp--preset--color--bark) !important;
	background: transparent;
	color: var(--wp--preset--color--bark);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}
.dunmore-signup input[type="submit"]:hover,
.dunmore-signup input[type="submit"]:focus-visible {
	background: var(--wp--preset--color--bark);
	color: var(--wp--preset--color--paper);
}
.dunmore-footer .dunmore-signup input[type="submit"] {
	border-color: #C9CCC3 !important;
	background: transparent;
	color: #C9CCC3;
	font-weight: 600;
	letter-spacing: 0.12em;
}
.dunmore-footer .dunmore-signup input[type="email"],
.dunmore-footer .dunmore-signup input[type="text"] {
	background: #C9CCC3;
	border-color: #C9CCC3;
}
.dunmore-footer .dunmore-signup input[type="submit"]:hover,
.dunmore-footer .dunmore-signup input[type="submit"]:focus-visible {
	background: #C9CCC3;
	color: var(--wp--preset--color--forest);
	border-color: #C9CCC3 !important;
}
/* After signing up, MailPoet floats the thank-you line over the hidden
   fields, centred in a narrow column; keep it in the flow, under the heading. */
.mailpoet_form.mailpoet_form_successfully_send .mailpoet_validate_success {
	position: static !important;
	transform: none !important;
	text-align: left !important;
}
.mailpoet_form.mailpoet_form_successfully_send .mailpoet_message { padding: 0 !important; }
.dunmore-signup .mailpoet_message p {
	color: inherit !important;
	/* The thank-you line sits under the heading, left-aligned like it. */
	text-align: left !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Stay: the per-guest rates table (site/content/fixes/stay-rates.new.html). */
.dunmore-rates table {
	border-collapse: collapse;
	width: 100%;
	max-width: 36rem;
	font-variant-numeric: tabular-nums;
}
.dunmore-rates th,
.dunmore-rates td {
	border: 0;
	border-bottom: 1px solid currentColor;
	padding: 0.6rem 0.75rem 0.6rem 0;
	text-align: left;
}
.dunmore-rates th {
	font-weight: 600;
}

/* Journal: the posts page's own introduction above the list (dunmore-journal.php). */
.dunmore-posts-intro {
	margin-bottom: var(--wp--preset--spacing--50);
}

/* Opening films (Cover blocks with dunmore-film--NAME; functions.php). They fill
   the screen below the header, as on Squarespace. */
.dunmore-film.wp-block-cover {
	min-height: calc(100svh - 112px);
	margin-block: 0;
	padding: 2rem clamp(1rem, 4vw, 3rem);
}
.dunmore-film h1,
.dunmore-film h2 { color: var(--wp--preset--color--paper); }
.dunmore-film p { color: var(--wp--preset--color--paper); font-weight: 600; max-width: 34rem; margin-inline: auto; }
.dunmore-film .dunmore-links { margin-top: 3.5rem; }
.dunmore-film a { color: inherit; text-decoration: none; }
.dunmore-film a:hover { text-decoration: underline; }
/* iPhones draw their own play circle when they block autoplay; the film's own button does that job. */
.dunmore-film video::-webkit-media-controls-start-playback-button { display: none !important; -webkit-appearance: none; }
.dunmore-film__toggle {
	position: absolute;
	right: clamp(1rem, 2vw, 1.5rem);
	bottom: clamp(1rem, 2vw, 1.5rem);
	z-index: 2;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(237, 237, 237, 0.7);
	border-radius: 50%;
	background: rgba(23, 23, 23, 0.25);
	cursor: pointer;
	display: grid;
	place-items: center;
}
.dunmore-film__toggle span {
	width: 10px;
	height: 12px;
	border-left: 3px solid var(--wp--preset--color--paper);
	border-right: 3px solid var(--wp--preset--color--paper);
}
.dunmore-film__toggle[aria-pressed="true"] span {
	width: 0;
	height: 0;
	border: 0;
	border-left: 11px solid var(--wp--preset--color--paper);
	border-top: 7px solid transparent;
	border-bottom: 7px solid transparent;
	margin-left: 3px;
}
.dunmore-film__toggle:focus-visible { outline: 3px solid var(--wp--preset--color--paper); outline-offset: 3px; }
@media (max-width: 781px) {
	.dunmore-film.wp-block-cover { min-height: calc(100svh - 70px); }
}

/* Page sections, spaced like Squarespace's. */
main > .wp-block-post-content > .dunmore-section,
.dunmore-section { padding-block: clamp(3.5rem, 8vw, 7rem); margin-block: 0; }
.dunmore-section + .dunmore-section { padding-top: 0; }
.dunmore-intro p { font-size: 1.0625rem; }
.dunmore-split { gap: clamp(2rem, 6vw, 6rem); }
.dunmore-split h2 { margin-bottom: 2.5rem; }
.dunmore-pair { gap: 0.75rem; }
.dunmore-pair h2 { margin-top: 1rem; margin-bottom: 2rem; }
.dunmore-pair .wp-block-column { padding-bottom: 2rem; }
.dunmore-more { margin-top: 2.5rem; }
.dunmore-more a { color: #6B6B6B; }
.dunmore-closing .is-style-display,
h2.is-style-display { font-size: var(--wp--preset--font-size--xx-large); }
.dunmore-closing .wp-block-image { margin-block: 0.5rem 1rem; }
main#main { margin-top: 0; }
main#main > .wp-block-post-content > .alignfull:first-child { margin-top: 0; }
/* Sections set their own width (their constrained contentSize), so the page's
   narrower content width doesn't cap them. */
.wp-block-post-content > .dunmore-section:not(.alignwide):not(.alignfull) { max-width: none; }

/* Pages that open with a film or title photo: it carries the title. */
body:has(.wp-block-post-content > :is(.dunmore-film, .dunmore-hero):first-child) main#main { padding-top: 0 !important; }
body:has(.wp-block-post-content > :is(.dunmore-film, .dunmore-hero):first-child) main#main > .wp-block-group:first-child:has(.wp-block-post-title) { display: none; }
main#main > .wp-block-post-content > .dunmore-hero:first-child { margin-top: 0; }
.dunmore-film .dunmore-film__wide { max-width: 72rem; }

/* Stay: Before You Arrive in four columns. */
.dunmore-facts { gap: 1.5rem; margin-top: 2.5rem; margin-bottom: 3rem; }
.dunmore-facts p { font-size: 0.875rem; }
.dunmore-facts strong { display: inline-block; color: var(--wp--preset--color--ink); }

/* Stay: guest notes and the photo grid. */
.dunmore-quotes { gap: 1.5rem; margin-top: 2rem; }
.dunmore-quotes p { font-size: 0.875rem; }
.dunmore-quote__name { color: var(--wp--preset--color--ink); }
.wp-block-gallery.dunmore-gallery { gap: 0.5rem; margin-top: 4rem; padding-inline: 0.5rem; }
@media (max-width: 781px) {
	.wp-block-gallery.dunmore-gallery.columns-5 > .wp-block-image { width: calc(50% - 0.25rem) !important; flex-grow: 0; }
}

/* Layouts rebuilt by scripts/build-layout-fix.py. */
.dunmore-hero.wp-block-cover {
	min-height: min(78svh, 760px);
	margin-block: 0;
}
.dunmore-hero h1 { color: var(--wp--preset--color--paper); }
.dunmore-centred { text-align: center; }
.dunmore-centred .wp-block-image img { margin-inline: auto; }
.wp-block-group.dunmore-tint { background: #D3D6D1; }
.dunmore-row { gap: 0.75rem; }
.dunmore-row h2, .dunmore-row h3 { margin-top: 1rem; }
.dunmore-feature .wp-block-image { margin-bottom: 1.5rem; }
.dunmore-inline-film video { width: 100%; height: auto; display: block; }
@media (max-width: 781px) {
	.dunmore-hero.wp-block-cover { min-height: 60svh; }
}
.dunmore-hero p { color: var(--wp--preset--color--paper); max-width: 40rem; margin-inline: auto; text-align: center; }
.dunmore-hero a { color: inherit; }

/* Text over photos and films stays readable on bright frames. */
.dunmore-hero :is(h1, h2, p),
.dunmore-film :is(h1, h2, p) { text-shadow: 0 1px 18px rgba(0, 0, 0, 0.45), 0 0 2px rgba(0, 0, 0, 0.35); }

/* Contact: the map (content fix contact-map). */
.dunmore-map { margin: 1rem auto 2rem; max-width: 760px; }
.dunmore-map iframe { display: block; width: 100%; height: 380px; border: 0; }
.dunmore-map figcaption { font-size: 0.875rem; margin-top: 0.5rem; }

/* Regional guides (Food and Wine, Nature, Family): each place's name sits on its
   own line above its description, and a name with a dash after it reads
   "Name – description", as on the live pages. */
:is(.page-foodandwine, .page-nature-near-dunmore, .page-family-friendly) .wp-block-post-content p > a:first-child:has(> strong:only-child) { display: block; }
:is(.page-foodandwine, .page-nature-near-dunmore, .page-family-friendly) .wp-block-post-content p > a:first-child + strong { margin-inline: 0.35em; font-weight: 400; }
:is(.page-foodandwine, .page-nature-near-dunmore, .page-family-friendly) .wp-block-post-content p > a:first-child:has(+ strong) { font-weight: 600; }

/* Shoppe: the live layout, title and introduction centred, a category menu,
   four columns of products with no buttons, "Sold Out" under the price. */
.dunmore-shop .wp-block-woocommerce-product-categories select { min-height: 44px; padding: 0.5rem 2.5rem 0.5rem 1rem; border: 1px solid var(--wp--preset--color--bark); background-color: transparent; font: inherit; }
.dunmore-shop .wp-block-woocommerce-product-categories .wc-block-product-categories__button { display: none; }
.dunmore-shop__categories { margin-block: 2rem 3rem; }
/* Categories as one line across the page on desktop, as on the live Shoppe
   (S55); phones keep the dropdown, as the live site does. */
.dunmore-shop .dunmore-shop__category-line { display: none; }
@media (min-width: 782px) {
	.dunmore-shop .dunmore-shop__categories { max-width: var(--wp--style--global--wide-size); }
	.dunmore-shop .dunmore-shop__category-line { display: block; }
	.dunmore-shop__category-line li { white-space: nowrap; }
	.dunmore-shop .dunmore-shop__category-select { display: none; }
	.dunmore-shop__category-line ul { display: flex; flex-wrap: wrap; justify-content: center; margin: 0; padding: 0; list-style: none; }
	.dunmore-shop__category-line li { margin: 0; }
	.dunmore-shop__category-line li + li::before { content: "|"; padding-inline: 1rem; color: var(--wp--preset--color--bark); opacity: 0.4; }
	.dunmore-shop__category-line a { font-size: 0.875rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none; }
	.dunmore-shop__category-line a:hover, .dunmore-shop__category-line a:focus-visible { text-decoration: underline; }
}
.dunmore-shop .wc-block-product-template { gap: 2.5rem 1.25rem; }
.dunmore-shop .dunmore-shop__title { font-size: 1rem; margin-block: 1rem 0.25rem; }
.dunmore-shop .dunmore-shop__title a { text-decoration: none; }
.dunmore-shop .wc-block-components-product-price { font-size: 0.8125rem; letter-spacing: 0.08em; }
.dunmore-shop .wc-block-product.outofstock .wc-block-components-product-price::after { content: "Sold Out"; display: block; margin-top: 0.25rem; letter-spacing: 0; }
.dunmore-shop .wc-block-components-product-sale-badge { display: none; }

/* Footer signup on one line (field, then Subscribe), as on the live footer. */
.dunmore-footer .mailpoet_form_form { display: flex; flex-wrap: wrap; gap: 0 0.5rem; align-items: stretch; }
.dunmore-footer .mailpoet_form_form > .mailpoet_paragraph { margin-bottom: 0.75rem !important; }
.dunmore-footer .mailpoet_form_form > .mailpoet_paragraph:has(input[type=email]) { flex: 1 1 12rem; }
.dunmore-footer .mailpoet_form_form > .mailpoet_paragraph:has(input[type=submit]) { flex: 0 0 auto; }
.dunmore-footer .mailpoet_form_form > .mailpoet_paragraph:not(:has(input[type=email], input[type=submit])) { order: 3; flex-basis: 100%; }
.dunmore-footer .mailpoet_form_form .mailpoet_text_label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.dunmore-footer .mailpoet_form_form input[type=email] { width: 100% !important; background: #fff !important; border-color: #fff !important; }
.dunmore-footer .mailpoet_form_form .mailpoet_message { order: 4; flex-basis: 100%; }

/* Stay: the six cottage features as photo cards, as on the live page. */
.dunmore-amenities-wrap { margin-block: var(--wp--preset--spacing--60); }
.dunmore-amenities { gap: 2.5rem 4rem; margin-bottom: 2.5rem; }
.dunmore-amenities .wp-block-image { margin-bottom: 1rem; }
.dunmore-amenity__title { font-size: 1.125rem; margin: 0 0 0.5rem; }

/* Contact and Our Story: two columns as on the live pages. */
.dunmore-contact .dunmore-contact__label { margin: 1.75rem 0 0.25rem; }
.dunmore-contact .wp-block-image img { width: 100%; height: auto; }
.dunmore-about .dunmore-about__quote { border: 0; padding: 2rem 1rem; margin: 0; text-align: center; }
.dunmore-about .dunmore-about__quote p { font-size: 1rem; font-style: italic; line-height: 1.6; }

/* Journal stories: a run of photos in rows of three (a gallery on the live site). */
.dunmore-post-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin-block: 2rem; }
.dunmore-post-gallery .wp-block-image { margin: 0 !important; max-width: none !important; }
.dunmore-post-gallery img { width: 100%; height: 100%; aspect-ratio: 2 / 3; object-fit: cover; }

/* Product page: the photos fill their column, as on the live site. */
.dunmore-product .wp-block-woocommerce-product-image-gallery { max-width: none; }
.dunmore-product .woocommerce-product-gallery { width: 100% !important; float: none !important; }

/* Phone menu: Journal and Contact show only when the phone menu opens (S45),
   and Shoppe moves up to second (S46), so each menu has its own Shoppe link. */
.dunmore-header__nav .dunmore-nav-phone { display: none; }
.dunmore-header__nav .is-menu-open .dunmore-nav-phone { display: flex; }
.dunmore-header__nav .wp-block-navigation__responsive-container.is-menu-open .dunmore-nav-desktop { display: none !important; }

/* Footer, shorter (S45): less padding, the small pages in a row. */
.dunmore-footer { padding-block: 2.75rem 1.5rem; }
.dunmore-footer__base { margin-top: 2.5rem; }
.dunmore-footer__small { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
@media (max-width: 781px) {
	.dunmore-footer { padding-block: 2.25rem 1.25rem; }
	.dunmore-footer__inner { gap: 1.75rem; }
	.dunmore-footer__links { columns: 2; column-gap: 1.5rem; }
	.dunmore-footer__links li { margin: 0; break-inside: avoid; }
	.dunmore-footer__links a { display: inline-block; padding-block: 0.5rem; }
	.dunmore-footer__small a { display: inline-block; padding-block: 0.375rem; }
	.dunmore-footer__base { margin-top: 1.75rem; }
}

/* Email and Call bar along the bottom on phones, as on the live site (S45). */
.dunmore-callbar { display: none; }
@media (max-width: 781px) {
	.dunmore-callbar {
		display: grid;
		grid-template-columns: 1fr 1fr;
		position: fixed;
		inset: auto 0 0 0;
		z-index: 90;
		background: var(--wp--preset--color--paper);
		border-top: 1px solid rgba(0, 0, 0, 0.12);
		padding-bottom: env(safe-area-inset-bottom);
	}
	.dunmore-callbar a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		min-height: 56px;
		color: var(--wp--preset--color--ink);
		font-size: 0.8125rem;
		font-weight: 600;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		text-decoration: none;
	}
	.dunmore-callbar a + a { border-left: 1px solid rgba(0, 0, 0, 0.12); }
	body { padding-bottom: calc(57px + env(safe-area-inset-bottom)); }
}

/* Experience: the Dunmore Larder, dark green and centred as on the live site (S45). */
.dunmore-larder { color: #C9CCC3; }
.dunmore-larder h2 { color: var(--wp--preset--color--white); }
.dunmore-larder .dunmore-larder__sub { font-size: 1.0625rem; color: #B9C6C9; }
.dunmore-larder a { color: var(--wp--preset--color--white); }
.dunmore-larder .wp-block-image img { max-width: 100%; height: auto; }

/* Buttons on a closing photo: Book the Cottage, Plan Your Gathering, Discover the Region. */
.dunmore-cta-row { gap: 1rem 2rem; margin-top: 2rem; }
.dunmore-cta .wp-block-button__link {
	background: var(--wp--preset--color--forest);
	border-color: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--white);
	min-width: 16rem;
	justify-content: center;
}
.dunmore-cta .wp-block-button__link:hover,
.dunmore-cta .wp-block-button__link:focus-visible { background: var(--wp--preset--color--white); color: var(--wp--preset--color--forest); }
@media (max-width: 781px) {
	.dunmore-cta-row { flex-direction: column; align-items: stretch; }
	.dunmore-cta .wp-block-button__link { width: 100%; min-width: 0; }
}

/* A page that ends on a full-width photo meets the footer with no gap, as on the live site. */
main:has(> .wp-block-post-content > .alignfull:last-child) { padding-bottom: 0 !important; }
main:has(> .wp-block-post-content > .alignfull:last-child) + * { margin-block-start: 0; }

/* Shoppe: four columns from tablet width up. WooCommerce's grid allows for larger text and drops to three at 15px. */
@media (min-width: 782px) {
	.dunmore-shop .wc-block-product-template__responsive.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Product reviews (brought across from Squarespace, S45): a quiet list under the product. */
.dunmore-reviews { margin-top: var(--wp--preset--spacing--60); border-top: 1px solid rgba(0, 0, 0, 0.12); padding-top: var(--wp--preset--spacing--40); }
.dunmore-reviews > * { max-width: 760px; }
.dunmore-reviews .wc-block-product-review-rating__container { justify-content: flex-start; text-align: left; }
.dunmore-reviews .wc-block-product-review-rating__stars { margin-inline: 0 auto; }
.dunmore-reviews .wp-block-woocommerce-product-review-template { list-style: none; margin: 0; padding: 0; }
.dunmore-reviews .wp-block-woocommerce-product-review-template > li { padding-block: 1.25rem; border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.dunmore-reviews .dunmore-reviews__by { gap: 0.25rem 0.75rem; font-size: var(--wp--preset--font-size--small); opacity: 0.8; }
.dunmore-reviews .dunmore-reviews__by > * { margin: 0; }

/* Contact: the enquiry form under the photo, as on the live site. */
.dunmore-enquiry { margin-top: var(--wp--preset--spacing--40); max-width: 40rem; }
.dunmore-enquiry p { margin: 0 0 1.25rem; }
.dunmore-enquiry label { display: block; font-size: var(--wp--preset--font-size--small); font-weight: 600; margin-bottom: 0.375rem; }
.dunmore-enquiry input[type="text"],
.dunmore-enquiry input[type="email"],
.dunmore-enquiry select,
.dunmore-enquiry textarea { width: 100%; box-sizing: border-box; font: inherit; padding: 0.625rem 0.75rem; border: 1px solid rgba(0, 0, 0, 0.35); border-radius: 0; background: transparent; color: inherit; }
.dunmore-enquiry select { min-height: 44px; }
.dunmore-enquiry__trap { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dunmore-enquiry__notice { padding: 0.75rem 1rem; border-left: 3px solid var(--wp--preset--color--forest); background: rgba(255, 255, 255, 0.6); }
.dunmore-enquiry__notice--error { border-left-color: #8A2B1F; }
.dunmore-enquiry .cf-turnstile { margin: 0 0 1.25rem; }

/* Header (S46): the menu, wordmark, cart and Book Your Stay share one centre
   line (WordPress gave all but the first a 20px top margin), and Book Your Stay
   is filled green like the other buttons. */
.dunmore-header__inner > * { margin-block: 0 !important; }
.dunmore-header .wp-block-navigation .wp-block-navigation-item__content { display: inline-flex; align-items: center; }
.dunmore-header .dunmore-book .wp-block-button__link {
	background: var(--wp--preset--color--forest);
	border-color: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--white);
}
.dunmore-header .dunmore-book .wp-block-button__link:hover,
.dunmore-header .dunmore-book .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--forest);
}

/* Centred sections with lists (Stay rates, Gather pricing): the lines centre
   without bullets. */
.dunmore-centred .wp-block-list { list-style: none; padding-inline-start: 0; }
.dunmore-centred .wp-block-table table { margin-inline: auto; }
.dunmore-centred .wp-block-table th,
.dunmore-centred .wp-block-table td { text-align: center; }
.dunmore-centred .wp-block-buttons { justify-content: center; }
.dunmore-centred .dunmore-booking-note { margin-inline: auto; }

/* Stay (S46): more room under the film, Rates & Availability and Book Your
   Stay centred, and section headings one size. */
.page-stay .wp-block-post-content > .dunmore-film + * { margin-block-start: clamp(3rem, 7vw, 6rem); }
.page-stay .dunmore-stay-centred { margin-block: clamp(3rem, 6vw, 5rem); }
.page-stay .dunmore-stay-centred h2:not(:first-child) { margin-top: clamp(3rem, 6vw, 4.5rem); }
.page-stay .wp-block-post-content h2,
.page-stay .wp-block-post-content > h3 { font-size: var(--wp--preset--font-size--x-large); }

/* Gather (S46): Scenes from the Farm keeps its even crops, with room around
   each photo as on the live page: three columns and wide gutters. */
.page-gather .dunmore-section:has(+ .dunmore-gallery) { padding-bottom: 0; }
.page-gather .wp-block-gallery.dunmore-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 4.5vw, 4.5rem) clamp(1rem, 5.5vw, 5.5rem);
	margin-top: clamp(2rem, 4vw, 3.5rem);
	padding-inline: clamp(1rem, 4vw, 4rem);
	padding-bottom: clamp(3rem, 6vw, 5rem);
}
.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image { width: auto !important; margin: 0 !important; }
.page-gather .wp-block-gallery.dunmore-gallery img { aspect-ratio: 4 / 5; width: 100%; height: auto; object-fit: cover; }
@media (max-width: 781px) {
	.page-gather .wp-block-gallery.dunmore-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Experience (S46): Enhancing your stay sits closer to its three photos. */
.page-experience .dunmore-section.dunmore-centred:has(+ .dunmore-section .dunmore-row) { padding-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.page-experience .dunmore-section.dunmore-centred + .dunmore-section:has(.dunmore-row) { padding-top: 0 !important; }

/* Footer signup: the optional first name above the email field (S46). */
.dunmore-footer .mailpoet_form_form > .mailpoet_paragraph:has(input[data-automation-id="form_first_name"]) { order: -1 !important; flex-basis: 100%; }
.dunmore-footer .mailpoet_form_form input[data-automation-id="form_first_name"] { width: 100% !important; background: #fff !important; border-color: #fff !important; }
.dunmore-footer .mailpoet_form_form .mailpoet_paragraph:has(input[data-automation-id="form_first_name"]) .mailpoet_text_label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Book Your Stay in the phone menu, green like the header button (S46). */
.dunmore-header__nav .wp-block-navigation__responsive-container.is-menu-open .dunmore-nav-book .wp-block-navigation-item__content { background: var(--wp--preset--color--forest); border-color: var(--wp--preset--color--forest); color: var(--wp--preset--color--white); }

/* Products with options: Add to Cart before an option is chosen stays readable
   (WooCommerce fades it to half strength, below the contrast minimum). */
.single_add_to_cart_button.disabled { opacity: 1 !important; color: #5E564C !important; border-color: currentColor !important; }

/* Bec, 28 Oct 2026 (S53). Text below the opening photo is one width, 760px, on
   every page but Stay (left until Preno is in): Home's closing, Gather's
   Farmer's Table, Explore's introduction and the Experience Larder were wider. */
body:not(.page-stay) .wp-block-post-content > .dunmore-section:is(.dunmore-closing, .dunmore-feature, .dunmore-centred, .dunmore-larder) > :where(:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright)) { max-width: 760px; }

/* Experience Larder: the two photos side by side above the text, together as
   wide as the text. */
.dunmore-larder { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 376px) minmax(0, 376px) minmax(0, 1fr); column-gap: 8px; }
.dunmore-larder > * { grid-column: 2 / 4; order: 2; width: 100%; }
.dunmore-larder > h2, .dunmore-larder > .dunmore-larder__sub { order: 0; }
.dunmore-larder > .wp-block-image { grid-column: auto / span 1; order: 1; margin: 0.5rem 0 1.5rem !important; }
.dunmore-larder > .wp-block-image:first-of-type { grid-column: 2; }
.dunmore-larder > .wp-block-image:last-of-type { grid-column: 3; }
.dunmore-larder .wp-block-image img { width: 100% !important; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 600px) {
	.dunmore-larder { grid-template-columns: 0 minmax(0, 1fr) minmax(0, 1fr) 0; column-gap: 6px; }
}

/* Gather: when the last row of photos is short, its photos widen to fill it,
   at the same height as the rows above (three a row on desktop, two on phones). */
@media (min-width: 782px) {
	.page-gather .wp-block-gallery.dunmore-gallery { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image { grid-column: span 2; }
	.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image:nth-child(3n+1):nth-last-child(2),
	.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image:nth-child(3n+1):nth-last-child(2) + .wp-block-image { grid-column: span 3; }
	.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image:nth-child(3n+1):nth-last-child(2) img,
	.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image:nth-child(3n+1):nth-last-child(2) + .wp-block-image img { aspect-ratio: 32 / 25; }
	.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image:nth-child(3n+1):last-child { grid-column: 1 / -1; }
	.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image:nth-child(3n+1):last-child img { aspect-ratio: 12 / 5; }
}
@media (max-width: 781px) {
	.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image:nth-child(odd):last-child { grid-column: 1 / -1; }
	.page-gather .wp-block-gallery.dunmore-gallery > .wp-block-image:nth-child(odd):last-child img { aspect-ratio: 8 / 5; }
}

/* A product's name at the section heading size, not the page title size: it
   sits beside the photo, as on the live site. */
.dunmore-product h1.wp-block-post-title { font-size: var(--wp--preset--font-size--x-large); }

/* Outline buttons the same size as filled ones (WordPress gives the outline
   style its own padding and a 2px border), e.g. the two on You're on the list. */
.wp-block-button.is-style-outline > .wp-block-button__link { padding: 1rem 2.25rem; border-width: 1px; }
