/*
Theme Name: Curtin Springs Refresh
Description: A custom block theme scaffolded by Studio Code.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: curtin-springs-refresh
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready, style-variations
*/

/* WordPress inserts a margin-block-start equal to the block gap (24px unless
   theme.json sets styles.spacing.blockGap) between the template's top-level
   sections (header part, main, footer part) — a gap that exists even when no
   markup asks for it. Zero it so sections butt edge-to-edge and own their
   vertical rhythm via padding; this does not affect block gaps inside nested
   layouts. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* With that gap gone, main carries its own vertical padding so templates this
   theme does not author (WooCommerce shop, product, cart…) still clear the
   header and footer. A descendant selector, not a child one: WooCommerce wraps
   the single-product main in an extra group. Templates built from full-bleed
   sections opt out with is-flush and let the sections own the rhythm. */
.wp-site-blocks main {
	padding-block: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--xl);
}
.wp-site-blocks main.is-flush {
	padding-block: 0;
}

.entry-content.wp-block-post-content > .alignfull { margin-block-start: 0; }

/* Editorial rhythm */
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 24px; }
.is-style-eyebrow {
    font-family: var(--wp--preset--font-family--work-sans);
    font-size: var(--wp--preset--font-size--label);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}
.site-header { padding-block: 12px; }
.header-row { gap: 26px; }
.brand .wp-block-site-title {
    font-family: var(--wp--preset--font-family--fff-tusj);
    font-weight: 400;
    font-size: 25px;
    line-height: 1.1;
    text-transform: uppercase;
    white-space: nowrap;
}
.brand .wp-block-site-title a { text-decoration: none; }
.brand-note { font-size: 10px; margin-block-start: 7px; letter-spacing: .8px; }
.main-nav { font-size: 12px; font-weight: 500; }
.main-nav .wp-block-navigation__container { gap: 24px; }
.main-nav .wp-block-navigation__submenu-container { color: var(--wp--preset--color--brown); background: var(--wp--preset--color--white); border: 1px solid var(--wp--preset--color--muted-orange, #F3D9C9); border-radius: 4px; box-shadow: 0 12px 28px rgba(60, 49, 44, .12); padding: 8px 0; }
.main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 9px 18px; white-space: nowrap; }
.main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--primary); }
.header-cta .wp-element-button { white-space: nowrap; }
@media (min-width: 1201px) { .main-nav .booking-nav-link { display: none; } }
/* Hero: editable Jetpack slideshow (fade) layered beneath the editable headline group. */
.home-hero {
    display: grid;
    min-height: 630px;
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
.home-hero > * { grid-area: 1 / 1; margin: 0 !important; min-width: 0; }
.home-hero .home-hero-slideshow { position: absolute; inset: 0; width: 100%; max-width: none; margin: 0; }
.home-hero-slideshow .wp-block-jetpack-slideshow_container,
.home-hero-slideshow .wp-block-jetpack-slideshow_swiper-wrapper,
.home-hero-slideshow .wp-block-jetpack-slideshow_slide,
.home-hero-slideshow .wp-block-jetpack-slideshow_slide figure { height: 100% !important; margin: 0; }
.home-hero-slideshow .wp-block-jetpack-slideshow_container { width: 100%; }
.home-hero-slideshow .wp-block-jetpack-slideshow_image {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
}
.home-hero .hero-overlay {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: 68px 92px;
    pointer-events: none;
    background: linear-gradient(90deg, color-mix(in srgb, var(--wp--preset--color--brown) 85%, transparent), color-mix(in srgb, var(--wp--preset--color--brown) 45%, transparent) 58%, transparent);
}
.home-hero .hero-content { pointer-events: auto; width: 100%; }
/* Slideshow controls: grouped bottom-right, clear of the headline, above the gradient. */
.home-hero-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination,
.home-hero-slideshow .wp-block-jetpack-slideshow_button-prev,
.home-hero-slideshow .wp-block-jetpack-slideshow_button-next,
.home-hero-slideshow .wp-block-jetpack-slideshow_button-pause { z-index: 3; }
.home-hero-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination {
    position: absolute !important;
    left: auto !important;
    right: calc(var(--wp--style--root--padding-right) + 140px) !important;
    bottom: 22px !important;
    width: auto !important;
    height: 40px !important;
    padding: 0 !important;
    align-items: center;
    transform: none !important;
}
.home-hero-slideshow .swiper-pagination-simple {
    color: var(--wp--preset--color--white);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
}
.home-hero-slideshow .wp-block-jetpack-slideshow_button-prev,
.home-hero-slideshow .wp-block-jetpack-slideshow_button-next,
.home-hero-slideshow .wp-block-jetpack-slideshow_button-pause {
    top: auto !important;
    bottom: 22px !important;
    width: 40px !important;
    height: 40px !important;
    margin: 0 !important;
    border-radius: 4px;
    opacity: 1 !important;
    background-color: color-mix(in srgb, var(--wp--preset--color--white) 88%, transparent) !important;
}
.home-hero-slideshow .swiper-button-disabled { opacity: .55 !important; }
.home-hero-slideshow .wp-block-jetpack-slideshow_button-prev { left: auto !important; right: calc(var(--wp--style--root--padding-right) + 88px) !important; }
.home-hero-slideshow .wp-block-jetpack-slideshow_button-pause { left: auto !important; right: calc(var(--wp--style--root--padding-right) + 44px) !important; }
.home-hero-slideshow .wp-block-jetpack-slideshow_button-next { right: var(--wp--style--root--padding-right) !important; }
@media (max-width: 599px) {
    .home-hero-slideshow .wp-block-jetpack-slideshow_button-pause { right: var(--wp--style--root--padding-right) !important; }
    .home-hero-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination { right: calc(var(--wp--style--root--padding-right) + 54px) !important; }
}
.home-hero-slideshow a[role="button"]:focus-visible { outline: 2px solid var(--wp--preset--color--white); outline-offset: 2px; }
.hero-content h1 { max-width: 13ch; line-height: 1.08; margin-block: 24px; }
.hero-description { font-size: 19px; max-width: 40ch; line-height: 1.7; }
.hero-content .wp-block-buttons { margin-block-start: 32px; gap: 12px; }
.country-strip { padding-block: 19px; }
.country-strip p { font-size: 11px; letter-spacing: .5px; }
.welcome-section { padding-block: var(--wp--preset--spacing--xl); }
.welcome-section .wp-block-columns { gap: 80px; }
.welcome-section h2 { margin-block-start: 28px; }
.intro-lead { font-size: 25px; font-weight: 500; line-height: 1.5; margin-block-start: 0; }
.story-link { font-size: 13px; font-weight: 600; }
.story-link a { text-decoration: none; border-bottom: 1px solid var(--wp--preset--color--primary); padding-bottom: 6px; }
.discover-section { padding-block: var(--wp--preset--spacing--xl); }
.section-heading { margin-block-end: 40px; gap: 32px; }
.section-heading > p { font-size: 14px; }
.section-heading h2 { margin-block-start: 16px; }
.discovery-row { gap: 40px; }
.discovery-row + .discovery-row { margin-block-start: 60px; }
.discover-section .discovery-row .is-style-feature-story { display: flex; flex-direction: column; height: 100%; }
.discover-section .discovery-row .is-style-feature-story > .story-link { margin-top: auto; padding-top: 24px; }
.is-style-feature-story .wp-block-image { margin: 0 0 28px; }
.is-style-feature-story .wp-block-image img { aspect-ratio: 4/3; object-fit: cover; width: 100%; vertical-align: middle; }
.is-style-feature-story h3 { margin-block-start: 12px; }
.is-style-feature-story > p:not(.is-style-eyebrow):not(.story-link) { max-width: 49ch; font-size: 15px; }
.invitation-section { padding-block: 76px; }
.invitation-section .wp-block-columns { gap: 72px; }
.invitation-section h2 { margin-block-start: 20px; }
.invitation-section .wp-block-column:first-child { flex-grow: 3; }
.invitation-section .wp-block-column:last-child { flex-grow: 2; }
.invitation-section .wp-block-column:last-child > p { font-size: 22px; line-height: 1.6; }
.site-footer { padding-block: 64px 24px; }
.site-footer .wp-block-columns { gap: 48px; }
.site-footer .footer-navigation { font-family: var(--wp--preset--font-family--work-sans); font-size: 13px; }
.footer-navigation .wp-block-navigation__container { gap: 10px; }
.site-footer p { font-size: 13px; }
.site-footer a { color: var(--wp--preset--color--white); }
.site-footer .is-style-eyebrow { font-size: 11px; }
.site-footer .footer-phone { font-size: 21px; }
.site-footer .concept-note { font-size: 11px; opacity: .75; }
.footer-bottom { border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--white) 20%, transparent); padding-top: 22px; margin-block-start: 48px; }
.footer-bottom p { font-size: 10px; letter-spacing: .5px; }
/* Visitor notices: message blocks are edited under Visitor Notices in wp-admin. */
.visitor-notice-demo { padding-block: 18px; border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--brown) 16%, transparent); }
.notice-demo-row { gap: 18px 32px; }
.notice-demo-summary > p { margin-block: 0; font-size: 14px; line-height: 1.5; }
.notice-demo-summary .is-style-eyebrow { font-size: 10px; margin-bottom: 5px; }
.notice-demo-summary .notice-demo-status { font-size: 11px; margin-top: 4px; }
.notice-demo-actions { gap: 10px; }
.notice-demo-actions .wp-element-button { font-family: var(--wp--preset--font-family--work-sans); font-size: 12px; letter-spacing: 0; padding: 11px 15px; }
.notice-demo-dialog {
    box-sizing: border-box;
    width: min(680px, calc(100vw - 32px));
    max-width: none;
    max-height: calc(100dvh - 40px);
    padding: 0;
    border: 0;
    border-top: 6px solid var(--wp--preset--color--primary);
    border-radius: 4px;
    margin: auto;
    background: var(--wp--preset--color--white);
    color: var(--wp--preset--color--brown);
    font-family: var(--wp--preset--font-family--work-sans);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.notice-demo-dialog::backdrop { background: color-mix(in srgb, var(--wp--preset--color--brown) 72%, transparent); }
.notice-demo-panel { padding: 36px 40px; }
.notice-demo-panel h2 {
    font-family: var(--wp--preset--font-family--work-sans);
    font-size: var(--wp--preset--font-size--subheading);
    font-weight: 600;
    line-height: 1.2;
    text-transform: none;
    letter-spacing: -.5px;
    margin-block: 14px 18px;
}
.notice-demo-panel > p { font-size: 15px; line-height: 1.65; margin-block: 16px; }
.notice-demo-panel > .is-style-eyebrow { font-size: 10px; margin-top: 0; }
.notice-demo-panel > .notice-demo-intro { font-size: 17px; }
.notice-demo-panel > .notice-demo-meta { font-size: 12px; padding-top: 16px; border-top: 1px solid var(--wp--preset--color--sand); }
.notice-demo-example { padding: 16px 20px; border-left: 3px solid var(--wp--preset--color--primary); }
.notice-demo-example > p { font-size: 14px; line-height: 1.65; margin: 0; }
.notice-demo-panel .wp-block-buttons { gap: 12px; margin-top: 22px; }
.notice-demo-panel .wp-element-button { font-family: var(--wp--preset--font-family--work-sans); font-size: 13px; letter-spacing: 0; padding: 14px 18px; }
.notice-demo-panel > .notice-demo-footnote { font-size: 12px; margin-bottom: 0; }
.cs-notice-body { font-size: 15px; line-height: 1.65; margin-block: 16px; }
.cs-notice-body > * { margin-block: 0; }
.cs-notice-body > * + * { margin-block-start: 16px; }
.cs-notice-body :is(ul, ol) { padding-inline-start: 24px; }
.cs-notice-body :is(h1, h2, h3, h4, h5, h6) { font-family: var(--wp--preset--font-family--work-sans); font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: 0; text-transform: none; }
.cs-notice-body blockquote { margin-inline: 0; padding-inline: 16px; border-left: 3px solid var(--wp--preset--color--primary); }
.cs-notice-body a { overflow-wrap: anywhere; }
html.notice-demo-open { overflow: hidden; }
.notice-demo-dialog :focus-visible { outline: 2px solid var(--wp--preset--color--brown); outline-offset: 4px; }
@media (max-width: 781px) {
    .visitor-notice-demo { padding-block: 16px; }
    .notice-demo-panel { padding: 24px; }
    .notice-demo-panel h2 { font-size: 26px; }
    .notice-demo-dialog { max-height: calc(100dvh - 24px); }
}
/* Responsive navigation: native core dialog and click toggles, not desktop dropdown cards. */
@media (max-width: 1200px) {
    .site-header .wp-block-buttons.header-cta { display: none; }
    .site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
    .site-header .wp-block-navigation__responsive-container-open { display: flex; }
    .site-header .main-nav :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) {
        display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 12px;
        min-height: 44px; padding: 10px 14px; border: 1px solid color-mix(in srgb, var(--wp--preset--color--brown) 22%, transparent);
        border-radius: 4px; background: var(--wp--preset--color--white); color: var(--wp--preset--color--brown);
        font-family: var(--wp--preset--font-family--work-sans); font-size: 14px; font-weight: 600; line-height: 1.5; letter-spacing: .5px;
    }
    .site-header .main-nav :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) svg { width: 20px; height: 20px; }
    .site-header .main-nav .is-menu-open {
        padding: 22px max(22px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
        background: var(--wp--preset--color--sand) !important; color: var(--wp--preset--color--brown) !important;
        border-top: 3px solid var(--wp--preset--color--primary); animation: none;
        overflow-y: auto; overscroll-behavior: contain;
    }
    .site-header .main-nav .is-menu-open .wp-block-navigation__responsive-close { width: 100%; max-width: 640px; margin-inline: auto; }
    .site-header .main-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 80px; align-items: stretch; gap: 0; }
    .site-header .main-nav .is-menu-open .wp-block-navigation__container {
        width: 100%; flex-direction: column; align-items: stretch; gap: 0; text-align: left;
    }
    .site-header .main-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
        width: 100%; align-items: stretch; position: relative; gap: 0;
        border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--brown) 16%, transparent);
    }
    .site-header .main-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
        display: flex; align-items: center; width: 100%; min-height: 64px; padding: 18px 0; box-sizing: border-box;
        font-family: var(--wp--preset--font-family--work-sans); font-size: clamp(17px, 2vw, 20px); font-weight: 600; line-height: 1.45;
        text-align: left; white-space: normal; color: var(--wp--preset--color--brown);
    }
    .site-header .main-nav .is-menu-open .wp-block-navigation__container > .has-child > .wp-block-navigation-item__content { padding-right: 36px; }
    .site-header .main-nav .is-menu-open .has-child > .wp-block-navigation__submenu-icon {
        display: flex !important; position: absolute; top: 23px; right: 0; width: 18px; height: 18px; margin: 0; pointer-events: none;
    }
    .site-header .main-nav .is-menu-open .has-child > .wp-block-navigation__submenu-icon svg { width: 18px; height: 18px; }
    .site-header .main-nav .is-menu-open .has-child:has(> button[aria-expanded="true"]) > .wp-block-navigation__submenu-icon { transform: rotate(180deg); }
    .site-header .main-nav .is-menu-open .has-child > .wp-block-navigation__submenu-container {
        display: none; position: static; width: 100%; min-width: 0; height: auto; padding: 0 0 16px 14px; box-sizing: border-box;
        border: 0; border-left: 2px solid var(--wp--preset--color--primary); border-radius: 0; box-shadow: none; background: transparent;
        opacity: 1; visibility: visible; overflow: visible; gap: 0; align-items: stretch;
    }
    .site-header .main-nav .is-menu-open .has-child:has(> button[aria-expanded="true"]) > .wp-block-navigation__submenu-container { display: flex; }
    .site-header .main-nav .is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item { width: 100%; align-items: stretch; }
    .site-header .main-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
        display: flex; align-items: center; width: 100%; text-align: left; box-sizing: border-box; min-height: 44px; padding: 10px 12px;
        font-size: 15px; font-weight: 400; line-height: 1.5; white-space: normal; color: var(--wp--preset--color--brown);
    }
    .site-header .main-nav .is-menu-open .wp-block-navigation__container > .booking-nav-link { border: 0; margin-top: 26px; }
    .site-header .main-nav .is-menu-open .wp-block-navigation__container > .booking-nav-link > .wp-block-navigation-item__content {
        min-height: 44px; padding: 10px 18px; justify-content: center; background: var(--wp--preset--color--blue); border-radius: 4px;
        font-size: 14px; font-weight: 600; line-height: 1.5; letter-spacing: .5px;
    }
    .site-header .main-nav .is-menu-open .wp-block-navigation-item__content:hover,
    .site-header .main-nav :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close):hover { text-decoration: underline; text-underline-offset: 4px; }
    .site-header .main-nav :is(button, a):focus-visible { outline: 2px solid var(--wp--preset--color--brown); outline-offset: 4px; }
}
@media (max-width: 599px) {
    .site-header .wp-block-site-logo img { width: 128px; height: auto; }
}
@media (max-width: 781px) {
    .site-header { padding-block: 12px; }
    .brand .wp-block-site-title { font-size: 22px; }
    .home-hero { min-height: 590px; }
    .home-hero .hero-overlay { padding-block: 60px 96px; }
    .hero-content h1 { max-width: 13ch; }
    .hero-description { font-size: 16px; }
    /* Hero buttons inherit the standard readable button typography and spacing. */
    .country-strip .wp-block-group { gap: 8px; }
    .country-strip p { font-size: 10px; }
    .welcome-section, .discover-section { padding-block: 56px; }
    .welcome-section .wp-block-columns { gap: 30px; }
    .intro-lead { font-size: 22px; }
    .section-heading { margin-bottom: 30px; gap: 10px; }
    .discovery-row { gap: 40px; }
    .discovery-row + .discovery-row { margin-block-start: 40px; }
    .invitation-section { padding-block: 54px; }
    .invitation-section .wp-block-columns { gap: 24px; }
    .invitation-section .wp-block-column:last-child > p { font-size: 18px; }
    .site-footer { padding-block: 48px 24px; }
    .site-footer .wp-block-columns { gap: 28px; }
    .footer-bottom { margin-block-start: 32px; gap: 10px; }
}
/* General content starters: editorial spreads and useful, editable notes. */
.content-title h1 { line-height: 1.08; margin-block: 20px; }
.wp-block-group.is-style-page-header { position: relative; isolation: isolate; overflow: hidden; padding-block: 44px; }
.is-style-page-header > .wp-block-group { position: relative; z-index: 1; margin-block-start: 0; }
.is-style-page-header > .page-header-image { position: absolute; inset: 0; z-index: -1; max-width: none; width: 100%; height: 100%; margin: 0; pointer-events: none; }
.is-style-page-header > .page-header-image img { width: 100%; height: 100%; object-fit: cover; }
.is-style-page-header > .page-header-image:has(img)::after { content: ""; position: absolute; inset: 0; background: var(--wp--preset--color--brown); opacity: .65; }
.is-style-page-header:has(> .page-header-image img), .is-style-page-header:has(> .page-header-image img) :is(h1, p, .stay-breadcrumb a) { color: var(--wp--preset--color--white); }
.is-style-page-header:has(> .page-header-image img) .stay-breadcrumb a:focus-visible { outline-color: var(--wp--preset--color--white); }
.is-style-page-header h1.wp-block-heading { font-size: clamp(30px, 4vw, 52px) !important; line-height: 1.12; margin-block: 16px; }
.is-style-page-header .stay-breadcrumb { margin-bottom: 16px; }
.wp-block-group.booking-engine-section { padding-block: 40px; }
.booking-engine-section #newbook_content-container { margin-block-start: 0; }
@media (max-width: 781px) { .wp-block-group.booking-engine-section { padding-block: 32px; } }
@media (max-width: 781px) { .wp-block-group.is-style-page-header { padding-block: 32px; } }
.content-title .stay-demo-note { max-width: 80ch; border-left: 3px solid var(--wp--preset--color--primary); padding-left: 16px; }
.content-jump-nav { margin-top: 32px; font-size: 13px; font-weight: 600; }
.content-jump-nav .wp-block-navigation__container { gap: 16px 28px; }
.content-story .wp-block-columns, .content-practical .wp-block-columns { gap: 64px; align-items: flex-start; }
.content-lead { font-size: 23px; line-height: 1.55; font-weight: 500; }
.content-story-image { margin: 0; }
.content-story-image img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.content-story-image figcaption { font-size: 12px; margin-top: 12px; }
/* Registered image treatment: retain the complete archive photograph. */
.wp-block-image.is-style-archive-photo { margin: 0; }
.wp-block-image.is-style-archive-photo img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.wp-block-image.is-style-archive-photo figcaption { font-size: 12px; margin-top: 12px; }
.content-pullquote .wp-block-quote { margin-block: 24px 0; border: 0; padding: 0; }
.content-pullquote .wp-block-quote p { font-family: var(--wp--preset--font-family--lora); font-size: clamp(28px, 3.5vw, 42px); font-weight: 600; line-height: 1.35; margin: 0; }
.content-media { margin-top: 28px; }
.content-media .wp-block-media-text__media img { aspect-ratio: 4/3; object-fit: cover; }
.content-media .wp-block-media-text__content { padding: 20px 0 20px 48px; }
.is-style-practical-notes { padding: 20px 24px; background: var(--wp--preset--color--sand); border-top: 2px solid var(--wp--preset--color--primary); }
.is-style-practical-notes + .is-style-practical-notes { margin-top: 16px; }
.is-style-practical-notes summary { font-weight: 600; cursor: pointer; line-height: 1.5; }
.is-style-practical-notes summary:focus-visible { outline: 2px solid var(--wp--preset--color--brown); outline-offset: 5px; }
.is-style-practical-notes > p { margin-bottom: 0; font-size: 15px; }
.content-close .wp-block-buttons { gap: 12px; }
@media (max-width: 781px) {
    .content-story .wp-block-columns, .content-practical .wp-block-columns { gap: 32px; }
    .content-story-image img { aspect-ratio: 4/3; }
    .content-lead { font-size: 20px; }
    .content-jump-nav .wp-block-navigation__container { gap: 14px 22px; }
}
@media (max-width: 600px) {
    .content-media .wp-block-media-text__content { padding: 28px 0 0; }
    .is-style-practical-notes { padding: 18px 20px; }
}
/* Accommodation pages share the site's editorial rhythm and block styles. */
.stay-section { padding-block: 72px; }
.stay-hero { min-height: 500px; padding: 64px var(--wp--style--root--padding-left); }
.stay-hero h1, .room-title h1 { line-height: 1.08; margin-block: 20px; }
.stay-hero-intro, .room-summary { font-size: 21px; line-height: 1.6; }
.stay-hero .wp-block-buttons, .room-title .wp-block-buttons { gap: 12px; margin-block-start: 28px; }
.stay-introduction { margin-bottom: 40px; }
.stay-introduction > p:not(.is-style-eyebrow) { max-width: 72ch; }
.stay-demo-note { font-size: 12px; line-height: 1.6; }
.stay-introduction .stay-demo-note { border-left: 3px solid var(--wp--preset--color--primary); padding-left: 15px; }
.stay-section .discovery-row .is-style-feature-story > p:not(.is-style-eyebrow):not(.story-link) { min-height: 88px; }
.stay-section .discovery-row .wp-block-buttons { margin-top: 24px; }
/* Content buttons inherit theme.json button styles. */
.stay-practical .wp-block-columns { gap: 64px; }
.stay-breadcrumb { font-size: 12px; margin-bottom: 30px; }
.room-title { padding-block: 44px 56px; }
.room-title .stay-demo-note { margin-top: 24px; }
.room-facts { font-size: 14px; font-weight: 600; }
.room-gallery { padding-block: 40px; }
.room-gallery .wp-block-jetpack-tiled-gallery { margin-block: 22px; }
.room-gallery .tiled-gallery__col { justify-content: stretch; }
.room-gallery .tiled-gallery__item { display: flex; flex: 1 1 auto; }
.room-gallery .tiled-gallery__item > a { display: flex; flex: 1; }
.room-gallery .tiled-gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.room-details-columns { gap: 64px; align-items: flex-start; }
.room-details-columns > .wp-block-column:first-child { flex-grow: 3; }
.room-details-columns > .wp-block-column:last-child { flex-grow: 2; }
.room-configurations { margin-block: 28px; gap: 24px; }
.room-configurations h3 { margin-bottom: 12px; }
.room-configurations p { margin-top: 0; }
.room-amenities { padding-left: 22px; line-height: 1.9; }
.room-booking-panel { padding: 32px; border-top: 4px solid var(--wp--preset--color--primary); }
.room-booking-panel h3 { margin-top: 18px; }
.room-booking-panel .wp-block-buttons { margin-block: 26px; }
.room-rate-table { margin-block: 26px 40px; }
.room-rate-table th, .room-rate-table td { padding: 16px; border-color: color-mix(in srgb, var(--wp--preset--color--brown) 25%, transparent); text-align: left; vertical-align: top; }
.room-rate-table th { background: var(--wp--preset--color--sand); font-weight: 600; }
.room-rate-table th:nth-child(2) { width: 14%; }
.room-rate-table figcaption { font-size: 12px; margin-top: 12px; }
.content-timeline th:first-child { width: 18%; }
.content-timeline th:nth-child(2) { width: auto; }
.content-services th:first-child { width: 32%; }
.content-services th:nth-child(2) { width: auto; }
.content-practical .room-rate-table:not(.content-services):not(.content-timeline) th:nth-child(2) { width: 60%; }
.contact-details-table th { width: 28%; }
.content-practical.contact-distances .room-rate-table:not(.content-services) th:nth-child(2) { width: 32%; }
/* Form panel (registered core/group style wrapping a Jetpack form) */
.wp-block-group.is-style-form-panel { padding: 40px; background: var(--wp--preset--color--sand); border-top: 3px solid var(--wp--preset--color--primary); }
.is-style-form-panel > .wp-block-heading { margin-top: 10px; }
.is-style-form-panel > .jetpack-contact-form-container, .is-style-form-panel > .wp-block-jetpack-contact-form { margin-top: 28px; }
.is-style-form-panel .wp-block-jetpack-contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; align-items: start; }
.is-style-form-panel .contact-form__input-error { margin-top: 6px; font-size: 13px; line-height: 1.4; }
.is-style-form-panel .contact-form__error { padding: 14px 18px; border-left: 3px solid var(--wp--preset--color--primary); border-radius: 0; background: var(--wp--preset--color--white); color: var(--wp--preset--color--brown); font-size: 14px; line-height: 1.5; }
.is-style-form-panel .wp-block-jetpack-contact-form > * { grid-column: 1 / -1; width: auto; max-width: none; flex: none; margin: 0; }
.is-style-form-panel .wp-block-jetpack-contact-form > .grunion-field-width-50-wrap { grid-column: auto; }
.is-style-form-panel .grunion-field-label { margin: 0 0 8px; font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: 1.5px; text-transform: uppercase; color: var(--wp--preset--color--brown); }
.is-style-form-panel .grunion-label-required { margin-left: 6px; font-size: 11px; font-weight: 500; letter-spacing: 0.5px; text-transform: none; color: color-mix(in srgb, var(--wp--preset--color--brown) 70%, transparent); }
.is-style-form-panel :is(input.grunion-field, textarea.grunion-field, .contact-form__select-wrapper) { border: 1px solid color-mix(in srgb, var(--wp--preset--color--brown) 18%, transparent); border-radius: 4px; background: var(--wp--preset--color--white); color: var(--wp--preset--color--brown); font-size: 16px; transition: border-color .15s ease, box-shadow .15s ease; }
.is-style-form-panel :is(input.grunion-field, textarea.grunion-field) { padding: 13px 16px; line-height: 1.5; }
.is-style-form-panel .contact-form__select-wrapper select { padding: 13px 44px 13px 16px; text-overflow: ellipsis; font-size: 16px; line-height: 1.5; color: var(--wp--preset--color--brown); background: transparent; }
.is-style-form-panel textarea.grunion-field { height: 168px; min-height: 120px; resize: vertical; }
.is-style-form-panel :is(input.grunion-field, textarea.grunion-field, .contact-form__select-wrapper):hover { border-color: color-mix(in srgb, var(--wp--preset--color--brown) 40%, transparent); }
.is-style-form-panel :is(input.grunion-field, textarea.grunion-field):focus, .is-style-form-panel .contact-form__select-wrapper:focus-within { outline: none; border-color: var(--wp--preset--color--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--primary) 30%, transparent); }
.is-style-form-panel .wp-block-jetpack-contact-form > .wp-block-button { margin-top: 6px; justify-self: start; }
.is-style-form-panel .wp-block-jetpack-contact-form > .wp-block-button { min-height: 0; }
.is-style-form-panel .wp-block-jetpack-contact-form .wp-block-button .wp-block-button__link { font-size: 14px; line-height: 1.5; padding: 10px 18px; min-height: 44px; }
@media (max-width: 781px) {
    .wp-block-group.is-style-form-panel { padding: 28px 22px; }
    .is-style-form-panel .wp-block-jetpack-contact-form { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .is-style-form-panel .wp-block-jetpack-contact-form > .wp-block-button { justify-self: stretch; }
    .is-style-form-panel .wp-block-jetpack-contact-form > .grunion-field-width-50-wrap { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) { .is-style-form-panel :is(input.grunion-field, textarea.grunion-field, .contact-form__select-wrapper) { transition: none; } }
.content-story > .alignwide > .content-story-image img { aspect-ratio: 16 / 9; height: auto; object-fit: cover; }
.room-arrival { gap: 64px; }
@media (max-width: 781px) {
    .stay-section { padding-block: 48px; }
    .stay-hero { min-height: 480px; padding-block: 48px; }
    .stay-hero-intro, .room-summary { font-size: 18px; }
    .stay-introduction { margin-bottom: 30px; }
    .stay-section .discovery-row .is-style-feature-story > p:not(.is-style-eyebrow):not(.story-link) { min-height: 0; }
    .room-title { padding-block: 32px 40px; }
    .room-gallery { padding-block: 32px; }
    .room-details-columns, .room-arrival, .stay-practical .wp-block-columns { gap: 32px; }
    .room-configurations { gap: 20px; }
    .room-booking-panel { padding: 26px; }
    .room-rate-table th, .room-rate-table td { padding: 11px 8px; font-size: 13px; overflow-wrap: anywhere; }
    .room-rate-table th:nth-child(2) { width: 17%; }
    .content-timeline th:first-child { width: 28%; }
    .content-timeline th:nth-child(2) { width: auto; }
    .content-services th:first-child { width: 38%; }
    .content-services th:nth-child(2) { width: auto; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .home-hero-slideshow .swiper-slide { transition-duration: 0s !important; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
}
