/* ==========================================================================
   Reyden's Retreat theme
   Colours are taken from the logo: forest green, palm green, cream paper.
   ========================================================================== */

:root {
	--rr-paper: #FCFCF0;
	--rr-paper-2: #F3F4E2;
	--rr-forest: #1E5A2C;
	--rr-palm: #4E8F3A;
	--rr-leaf: #3E7F33;
	--rr-ink: #22301F;
	--rr-muted: #5D6B57;
	--rr-line: #D9DCC4;
	--rr-card: #FFFFFF;
	--rr-gold: #F09A1E;
	--rr-rust: #A8471A;
	--rr-serif: "Marcellus", "Trajan Pro", "Times New Roman", serif;
	--rr-sans: "Jost", "Avenir Next", "Segoe UI", system-ui, sans-serif;
	--rr-header-h: 88px;
	color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--rr-header-h) + 8px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

body {
	margin: 0;
	background: var(--rr-paper);
	color: var(--rr-ink);
	font: 400 17px/1.65 var(--rr-sans);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--rr-forest); }
a:hover { color: var(--rr-palm); }
:focus-visible { outline: 3px solid var(--rr-gold); outline-offset: 3px; }

h1, h2, h3, h4 { font-family: var(--rr-serif); font-weight: 400; color: var(--rr-forest); line-height: 1.15; margin: 0 0 .5em; }
h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.9rem, 4vw, 2.8rem); }
h3 { font-size: 1.4rem; }
p { margin: 0 0 1em; }

.rr-wrap { width: min(1160px, 92vw); margin-inline: auto; }
.rr-narrow { max-width: 760px; }
.rr-section { padding: clamp(4rem, 9vw, 7rem) 0; }
.rr-section--tint { background: var(--rr-paper-2); }
.rr-section-title { margin-bottom: .6em; }
.rr-section-head { max-width: 640px; margin-bottom: 2.4rem; }
.rr-eyebrow { font-family: var(--rr-serif); color: var(--rr-leaf); font-size: 1.2rem; margin: 0 0 .3rem; }
.rr-eyebrow--light { color: var(--rr-gold); }

.rr-skip { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--rr-forest); color: #fff; padding: .6rem 1rem; }
.rr-skip:focus { left: 1rem; top: 1rem; }

/* Buttons ---------------------------------------------------------------- */
.rr-btn,
.rr-booker--plugin input[type="submit"],
.rr-booker--plugin button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
	display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
	border: 0; border-radius: 3px; cursor: pointer;
	padding: .85rem 1.5rem;
	background: var(--rr-forest); color: #fff;
	font: 500 .98rem var(--rr-sans); text-decoration: none; line-height: 1.2;
	transition: background .2s;
}
.rr-btn:hover,
.rr-booker--plugin input[type="submit"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
	background: var(--rr-palm); color: #fff;
}
.rr-btn--ghost { background: transparent; color: var(--rr-forest); border: 1.5px solid var(--rr-forest); }
.rr-btn--ghost:hover { background: var(--rr-forest); color: #fff; }
.rr-btn--light { background: var(--rr-paper); color: var(--rr-forest); }
.rr-btn--light:hover { background: #fff; color: var(--rr-forest); }

/* Header ----------------------------------------------------------------- */
.rr-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--rr-paper);
	border-bottom: 1px solid var(--rr-line);
	transition: box-shadow .2s;
}
.admin-bar .rr-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rr-header { top: 46px; } }
.rr-header.is-scrolled { box-shadow: 0 6px 24px -18px rgba(30, 90, 44, .6); }
.rr-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; height: var(--rr-header-h); }
.rr-brand { display: block; flex: none; line-height: 0; }
.rr-logo { height: 64px; width: auto; }
.rr-nav .rr-menu, .rr-nav ul { list-style: none; margin: 0; padding: 0; }
.rr-nav .rr-menu { display: flex; gap: 1.4rem; }
.rr-nav li { position: relative; }
.rr-nav a { text-decoration: none; color: var(--rr-ink); font-size: .97rem; padding: .4rem 0; display: block; }
.rr-nav a:hover, .rr-nav .current-menu-item > a, .rr-nav .current_page_item > a { color: var(--rr-leaf); }
.rr-nav .sub-menu, .rr-nav .children {
	position: absolute; top: 100%; left: -1rem; min-width: 200px;
	background: var(--rr-card); border: 1px solid var(--rr-line); padding: .5rem 1rem;
	box-shadow: 0 14px 30px -20px rgba(30, 90, 44, .5);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: .18s;
}
.rr-nav li:hover > .sub-menu, .rr-nav li:focus-within > .sub-menu,
.rr-nav li:hover > .children, .rr-nav li:focus-within > .children { opacity: 1; visibility: visible; transform: none; }
.rr-menu-toggle { display: none; background: none; border: 0; font: inherit; color: var(--rr-forest); cursor: pointer; padding: .5rem; }

@media (max-width: 1080px) {
	.rr-menu-toggle { display: block; }
	.rr-header__btn { display: none; }
	.rr-nav { display: none; position: absolute; top: var(--rr-header-h); left: 0; right: 0; background: var(--rr-paper); border-bottom: 1px solid var(--rr-line); }
	.rr-nav.is-open { display: block; }
	.rr-nav .rr-menu { flex-direction: column; gap: 0; padding: .5rem 4vw 1rem; }
	.rr-nav a { padding: .65rem 0; }
	.rr-nav .sub-menu, .rr-nav .children { position: static; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; padding: 0 0 0 1rem; background: none; }
}
@media (max-width: 480px) { .rr-logo { height: 46px; } }

/* Hero ------------------------------------------------------------------- */
.rr-hero, .rr-page-hero {
	position: relative; overflow: hidden; color: #fff; text-align: center;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.rr-hero { min-height: min(820px, calc(100svh - var(--rr-header-h))); padding: 5rem 4vw 9.5rem; }
.rr-page-hero { min-height: 420px; padding: 5rem 4vw; }
.rr-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center 35%; }
.rr-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,32,18,.38) 0%, rgba(14,32,18,.48) 50%, rgba(14,32,18,.72) 100%); }
.rr-hero__bg--empty { background: linear-gradient(160deg, var(--rr-palm), var(--rr-forest)); }
.rr-hero__inner { position: relative; z-index: 1; }
.rr-hero h1, .rr-page-hero h1 { color: #fff; margin: 0; text-shadow: 0 2px 24px rgba(0,0,0,.25); }
.rr-hero h1 { font-size: clamp(3rem, 8vw, 6.2rem); letter-spacing: .01em; }
.rr-page-hero h1 { font-size: clamp(2.6rem, 6vw, 4.6rem); }
.rr-hero__tag { font-family: var(--rr-serif); font-style: italic; font-size: clamp(1.15rem, 2.4vw, 1.6rem); color: #fff; margin: .6rem 0 0; }
.rr-hero__tag--above { margin: 0 0 .4rem; font-size: 1.3rem; }
.rr-hero .rr-booker { position: absolute; left: 50%; bottom: 2.5rem; transform: translateX(-50%); z-index: 2; }
@media (max-width: 760px) {
	.rr-hero { min-height: auto; padding: 6rem 5vw 2rem; }
	.rr-hero .rr-booker { position: relative; left: auto; bottom: auto; transform: none; margin-top: 3rem; width: 100%; }
}

.rr-page-title { padding: clamp(3.5rem, 8vw, 6rem) 0 1rem; }

/* Booking bar (fallback form and MotoPress search form) ------------------ */
.rr-booker {
	width: min(980px, 92vw); margin: 0 auto;
	background: var(--rr-card); border: 1px solid var(--rr-line);
	box-shadow: 0 18px 40px -24px rgba(30, 90, 44, .45);
	display: grid; grid-template-columns: 1fr 1fr 1fr auto; text-align: left; color: var(--rr-ink);
}
.rr-booker label { display: block; min-width: 0; padding: .9rem 1.2rem; border-right: 1px solid var(--rr-line); font-size: .78rem; color: var(--rr-muted); }
.rr-booker input, .rr-booker select { display: block; width: 100%; min-width: 0; border: 0; background: transparent; font: 500 1rem var(--rr-sans); color: var(--rr-ink); padding: .15rem 0; }
.rr-booker > .rr-btn { border-radius: 0; padding-inline: 2rem; }
@media (max-width: 760px) {
	.rr-booker { grid-template-columns: 1fr 1fr; }
	.rr-booker label { border-bottom: 1px solid var(--rr-line); }
	.rr-booker label:nth-child(3) { grid-column: 1 / -1; border-right: 0; }
	.rr-booker > .rr-btn { grid-column: 1 / -1; padding: 1rem; }
}
/* MotoPress Hotel Booking search form laid out as a bar */
.rr-booker--plugin { display: block; padding: 1rem 1.2rem; }
.rr-booker--plugin form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .8rem 1.2rem; margin: 0; }
.rr-booker--plugin form > p, .rr-booker--plugin form > div { margin: 0; flex: 1 1 150px; }
.rr-booker--plugin .mphb-required-fields-tip, .rr-booker--plugin br { display: none; }
.rr-booker--plugin label { display: block; padding: 0; border: 0; font-size: .78rem; color: var(--rr-muted); }
.rr-booker--plugin input[type="text"], .rr-booker--plugin select {
	width: 100%; border: 1px solid var(--rr-line); border-radius: 3px; padding: .6rem .7rem; background: var(--rr-paper); font: 500 1rem var(--rr-sans);
}
.rr-booker--plugin .mphb_sc_search-submit-button-wrapper { flex: 0 0 auto; }
.rr-booker--page { margin: 0 0 2rem; }

.rr-facts { display: flex; justify-content: center; flex-wrap: wrap; gap: .4rem 2rem; padding: 1.1rem 4vw; color: var(--rr-muted); font-size: .9rem; }
.rr-admin-note { background: #FFF6E6; border-left: 3px solid var(--rr-gold); padding: .7rem 1rem; font-size: .9rem; }
.rr-enquiry { background: var(--rr-card); border-left: 3px solid var(--rr-forest); padding: .8rem 1rem; }

/* Photos ----------------------------------------------------------------- */
.rr-photo { position: relative; background-size: cover; background-position: center; background-color: #DCE3C8; border-radius: 4px; }
.rr-photo--empty { display: flex; align-items: flex-end; padding: 1rem; background: linear-gradient(160deg, #9CC77E, #2F6E3A); }
.rr-photo--empty span { background: rgba(0,0,0,.42); color: #fff; font-size: .85rem; padding: .25rem .6rem; border-radius: 2px; }
.rr-arch { aspect-ratio: 4 / 5; border-radius: 180px 180px 4px 4px; }
.rr-photo--landscape { aspect-ratio: 5 / 4; }

/* Layout helpers --------------------------------------------------------- */
.rr-split { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 6vw, 5rem); }
.rr-split--center { align-items: center; }
@media (max-width: 800px) {
	.rr-split { grid-template-columns: 1fr; }
	.rr-split--flip > :first-child { order: 2; }
}

/* House card ------------------------------------------------------------- */
.rr-house-card { display: grid; grid-template-columns: 1.3fr 1fr; background: var(--rr-card); border: 1px solid var(--rr-line); }
.rr-house-card__photo { min-height: 420px; border-radius: 0; }
.rr-house-card__body { padding: clamp(1.6rem, 4vw, 3rem); }
.rr-price { font-size: .95rem; color: var(--rr-muted); }
.rr-price b { font-family: var(--rr-serif); font-weight: 400; font-size: 2rem; color: var(--rr-leaf); }
.rr-specs { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.2rem; margin: 1.4rem 0 1.8rem; padding: 1.2rem 0; border-block: 1px solid var(--rr-line); list-style: none; }
.rr-specs li { display: flex; gap: .6rem; align-items: center; font-size: .98rem; }
.rr-specs svg { flex: none; width: 22px; height: 22px; stroke: var(--rr-palm); fill: none; stroke-width: 1.6; }
@media (max-width: 800px) { .rr-house-card { grid-template-columns: 1fr; } .rr-house-card__photo { min-height: 260px; } }

/* Rooms ------------------------------------------------------------------ */
.rr-rooms { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin-top: 1.4rem; }
.rr-room { background: var(--rr-card); border: 1px solid var(--rr-line); }
.rr-room__photo { aspect-ratio: 3 / 2; border-radius: 0; }
.rr-room__body { padding: 1.4rem 1.6rem; }
.rr-room h3 { font-size: 1.3rem; margin-bottom: .3rem; }
.rr-room p { margin: 0; color: var(--rr-muted); font-size: .97rem; }
.rr-badge { display: inline-block; background: var(--rr-forest); color: #fff; font: 600 .7rem var(--rr-sans); letter-spacing: .08em; text-transform: uppercase; padding: .22rem .55rem; border-radius: 2px; vertical-align: middle; margin-left: .4rem; }
@media (max-width: 700px) { .rr-rooms { grid-template-columns: 1fr; } }

/* Bands (review, closing CTA) -------------------------------------------- */
.rr-band { background: var(--rr-forest); color: var(--rr-paper); text-align: center; padding: clamp(4rem, 9vw, 6.5rem) 0; }
.rr-band h2 { color: var(--rr-paper); }
.rr-band p { max-width: 62ch; margin-inline: auto; }
.rr-review blockquote { font-family: var(--rr-serif); font-size: clamp(1.4rem, 3vw, 2.1rem); line-height: 1.35; margin: 0 auto 1rem; max-width: 32ch; }
.rr-stars { color: var(--rr-gold); letter-spacing: .2em; }
.rr-review__cite { opacity: .8; margin: 0 auto; }
.rr-cta p { opacity: .85; margin-bottom: 1.6rem; }

/* Amenities, points and policies ----------------------------------------- */
.rr-amenities { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.2rem 2rem; }
.rr-amenities h3 { font-size: 1.2rem; padding-bottom: .5rem; border-bottom: 2px solid var(--rr-leaf); display: inline-block; margin-bottom: .8rem; }
.rr-amenities ul { list-style: none; margin: 0; padding: 0; font-size: .97rem; }
.rr-amenities li { padding: .28rem 0 .28rem 1.2rem; position: relative; }
.rr-amenities li::before { content: ""; position: absolute; left: 0; top: .82em; width: 6px; height: 6px; border-radius: 50%; background: var(--rr-palm); }
@media (max-width: 860px) { .rr-amenities { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .rr-amenities { grid-template-columns: 1fr; } }

.rr-points, .rr-policies { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rr-line); }
.rr-points > div, .rr-policies > div { padding: 1.7rem 1.6rem 1.7rem 0; border-bottom: 1px solid var(--rr-line); }
.rr-points > div:nth-child(3n+2), .rr-points > div:nth-child(3n),
.rr-policies > div:nth-child(3n+2), .rr-policies > div:nth-child(3n) { padding-left: 1.6rem; }
.rr-points > div:not(:nth-child(3n)), .rr-policies > div:not(:nth-child(3n)) { border-right: 1px solid var(--rr-line); }
.rr-points h3, .rr-policies h3 { font-size: 1.2rem; margin-bottom: .5rem; }
.rr-points p { margin: 0; color: var(--rr-muted); font-size: .95rem; }
.rr-policies ul { margin: 0; padding-left: 1.1rem; color: var(--rr-muted); font-size: .94rem; }
.rr-policies li { margin: .25rem 0; }
@media (max-width: 860px) {
	.rr-points, .rr-policies { grid-template-columns: 1fr; }
	.rr-points > div, .rr-policies > div { border-right: 0 !important; padding-left: 0 !important; }
}

.rr-story p { font-size: 1.05rem; }
.rr-call { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; }
.rr-call a { font-weight: 500; }

/* Gallery strip ---------------------------------------------------------- */
.rr-gallery { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.rr-gallery__item { aspect-ratio: 2 / 3; border-radius: 0; }
@media (max-width: 760px) { .rr-gallery { grid-template-columns: repeat(2, 1fr); } .rr-gallery__item:nth-child(5) { display: none; } }

/* Location --------------------------------------------------------------- */
.rr-near { list-style: none; margin: 1.4rem 0 0; padding: 0; border-top: 1px solid var(--rr-line); }
.rr-near li { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--rr-line); font-size: .97rem; }
.rr-near b { font-weight: 500; }
.rr-near span { color: var(--rr-muted); white-space: nowrap; }
.rr-map { aspect-ratio: 4 / 3; border-radius: 4px; overflow: hidden; border: 1px solid var(--rr-line); background: var(--rr-paper-2); }
.rr-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Contact ---------------------------------------------------------------- */
.rr-contact { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin: 1rem 0 2rem; }
.rr-contact h3 { font-size: 1.2rem; }
@media (max-width: 760px) { .rr-contact { grid-template-columns: 1fr; } }

/* Editor content --------------------------------------------------------- */
.rr-content > * { max-width: 1160px; margin-left: auto; margin-right: auto; }
.rr-content > p, .rr-content > ul, .rr-content > ol, .rr-content > h2, .rr-content > h3,
.rr-content > h4, .rr-content > blockquote, .rr-content > .wp-block-buttons { max-width: 760px; margin-left: 0; }
.rr-content > .alignfull { max-width: none; width: 100vw; margin-left: calc(50% - 50vw); }
.rr-content h2 { margin-top: 1.6em; }
.rr-content > :first-child { margin-top: 0; }
.rr-content .wp-block-button__link { background: var(--rr-forest); color: #fff; border-radius: 3px; }
.rr-content .wp-block-image img { border-radius: 4px; }
.rr-content .rr-lead { font-size: 1.15rem; color: var(--rr-muted); }

/* Footer ----------------------------------------------------------------- */
.rr-footer { background: var(--rr-paper); border-top: 1px solid var(--rr-line); padding: 3.5rem 0 2rem; font-size: .95rem; }
.rr-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem; align-items: start; }
.rr-logo--footer { height: auto; width: 100%; max-width: 340px; }
.rr-footer__tag { margin-top: 1rem; color: var(--rr-muted); }
.rr-footer h4 { font-size: 1.1rem; margin: 0 0 .5rem; }
.rr-footer p { margin: 0; color: var(--rr-muted); }
.rr-footer__legal { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-top: 3rem; padding-top: 1.4rem; border-top: 1px solid var(--rr-line); font-size: .82rem; color: var(--rr-muted); }
.rr-footer__menu { display: flex; gap: 1rem; list-style: none; margin: 0; padding: 0; }
.rr-footer__menu a { color: var(--rr-muted); }
@media (max-width: 800px) { .rr-footer__grid { grid-template-columns: 1fr 1fr; } .rr-footer__grid > :first-child { grid-column: 1 / -1; } }

/* Blog fallback ---------------------------------------------------------- */
.rr-post { margin-bottom: 2.5rem; }
.rr-post h2 a { text-decoration: none; }

/* Elementor pages -------------------------------------------------------- */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor a { color: var(--rr-forest); font-weight: 500; }
.elementor-widget-heading .rr-badge { font-size: .7rem; }
.rr-lead, .rr-lead p { font-size: 1.15rem; }
p.rr-facts { display: flex; justify-content: center; flex-wrap: wrap; gap: .4rem 2rem; padding: 0; font-size: .9rem; margin: 0; }
.rr-list { list-style: none; margin: 0; padding: 0; font-size: .97rem; }
.rr-list li { padding: .28rem 0 .28rem 1.2rem; position: relative; }
.rr-list li::before { content: ""; position: absolute; left: 0; top: .82em; width: 6px; height: 6px; border-radius: 50%; background: var(--rr-palm); }
.rr-spec-list .elementor-icon-list-items { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem 1.2rem; padding: 1.1rem 0; border-block: 1px solid var(--rr-line); }
.rr-spec-list .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.rr-placeholder { border: 1.5px dashed var(--rr-line); background: var(--rr-card); padding: 1.4rem; }
.rr-hero-search { width: 100%; }
.rr-hero-search .rr-booker { width: min(980px, 100%); margin: 0 auto; }
.elementor-widget-html.rr-map { aspect-ratio: 4 / 3; width: 100%; }
.elementor-widget-html.rr-map--wide { aspect-ratio: 16 / 7; margin-top: 1.5rem; }
.elementor-widget-html.rr-map .elementor-widget-container { height: 100%; }
.rr-map iframe { width: 100%; height: 100%; border: 0; display: block; border-radius: 4px; }
.rr-stars p { letter-spacing: .2em; }
@media (max-width: 760px) { .elementor-widget-html.rr-map--wide { aspect-ratio: 4 / 3; } }

/* Hero: title in the middle, booking bar sitting at the bottom of the photo */
.e-con:has(> .rr-hero-search),
.e-con-inner:has(> .rr-hero-search) { --padding-bottom: 40px; padding-bottom: 40px !important; }
.e-con:has(> .rr-hero-search) > .elementor-widget:first-child,
.e-con-inner:has(> .rr-hero-search) > .elementor-widget:first-child { margin-top: auto; }
.elementor-widget.rr-hero-search { margin-top: auto !important; padding-top: 32px; }
