/* Hidden Palace: WordPress adaptation layer (block markup, template parts, core navigation, Polylang switcher). */

/* layout resets: the mockup CSS controls spacing */
.wp-site-blocks{padding:0}
:root :where(.wp-site-blocks)>*{margin-block:0}
.wp-block-group{box-sizing:border-box}
body .is-layout-flow>*{margin-block-start:0}
figure.wp-block-image{margin:0}
.wp-block-image img{box-sizing:border-box}
p:empty{display:none}

/* header part: sticky wrapper */
.hp-header-part{position:sticky;top:0;z-index:50}
.admin-bar .hp-header-part{top:32px}
@media (max-width:782px){.admin-bar .hp-header-part{top:46px}}
.site-header .brand-wrap{margin:0;flex:none}
.site-header .header-inner{flex-wrap:nowrap}
.header-tools{gap:12px;flex:none}

/* core navigation styled as the v1 primary nav */
.primary-nav-wp{font-size:.8rem;font-weight:600;letter-spacing:.02em;color:var(--teal-900)}
.primary-nav-wp .wp-block-navigation__container{gap:2px}
.primary-nav-wp .wp-block-navigation-item__content{display:block;text-decoration:none;padding:8px 9px;position:relative;color:var(--teal-900)}
.primary-nav-wp .wp-block-navigation-item__content::after{content:"";position:absolute;left:9px;right:9px;bottom:2px;height:1px;background:var(--gold);transform:scaleX(0);transition:transform .3s}
.primary-nav-wp .wp-block-navigation-item__content:hover::after,.primary-nav-wp .current-menu-item>.wp-block-navigation-item__content::after{transform:scaleX(1)}
.primary-nav-wp .wp-block-navigation__submenu-container{background:var(--ivory)!important;border:1px solid rgba(201,162,74,.35)!important;border-top:2px solid var(--gold)!important;box-shadow:var(--shadow);padding:8px 0!important;min-width:230px!important}
.primary-nav-wp .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:9px 18px}
.primary-nav-wp .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after{display:none}
.primary-nav-wp .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:var(--sand);color:var(--gold-600)}
.primary-nav-wp .wp-block-navigation__submenu-icon{color:var(--gold-600)}
.primary-nav-wp .wp-block-navigation__responsive-container-open{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(14,77,82,.3);border-radius:2px;color:var(--teal-900)}
.primary-nav-wp .wp-block-navigation__responsive-container.is-menu-open{background:var(--ivory)!important;color:var(--teal-900)!important;padding:24px 20px!important}
.primary-nav-wp .is-menu-open .wp-block-navigation-item__content{font-family:var(--serif);font-size:1.4rem;font-weight:600;padding:10px 2px}
.primary-nav-wp .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-family:var(--sans);font-size:.95rem;padding:8px 2px 8px 18px}
@media (max-width:1199px){.primary-nav-wp{order:3}}
@media (min-width:600px) and (max-width:1199px){.primary-nav-wp .wp-block-navigation__responsive-container:not(.is-menu-open){display:none}.primary-nav-wp .wp-block-navigation__responsive-container-open:not(.always-shown){display:inline-flex!important}}
@media (min-width:1200px){.primary-nav-wp .wp-block-navigation__responsive-container-open{display:none!important}.primary-nav-wp .wp-block-navigation__responsive-container{display:block!important}}

/* Polylang switcher styled as the EN/FR pill */
.lang ul,.wp-block-polylang-language-switcher ul,ul.lang{list-style:none;display:inline-flex;border:1px solid rgba(14,77,82,.3);border-radius:2px;overflow:hidden;margin:0;padding:0}
.lang li{margin:0}
.lang li a{display:block;font:700 .68rem/1 var(--sans);letter-spacing:.12em;padding:7px 9px;color:var(--teal-800);text-decoration:none;text-transform:uppercase}
.lang li.current-lang a{background:var(--teal-800);color:var(--gold-100)}
.site-footer .lang ul{border-color:rgba(227,204,143,.5)}
.site-footer .lang li a{color:var(--gold-100);text-transform:none;letter-spacing:.06em;font-size:.72rem}
.site-footer .lang li.current-lang a{background:var(--gold);color:var(--teal-950)}
.lang-foot{margin-top:20px}

/* footer part */
.site-footer .foot-contact{margin:22px 0 18px}
.site-footer .foot-note{margin-top:12px;font-size:.72rem;color:rgba(252,250,245,.55)}
.site-footer .brand-wrap{margin:0}
.site-footer .foot-bottom p{margin:0}

/* buttons: flex items are the core/button wrappers */
body .wp-block-buttons{gap:12px}
.wp-block-buttons>.wp-block-button{display:flex}
.wp-block-buttons>.wp-block-button>.wp-block-button__link{flex:1 1 auto}
.wp-block-button__link svg{width:16px;height:16px;flex:none}
.wp-block-button__link .wa-ico{width:18px;height:18px}
.cp-btns>.wp-block-button,.cs-btns>.wp-block-button{flex:1 1 200px}
body .room-ctas{display:grid}
.room-ctas>.wp-block-button>.wp-block-button__link{width:100%}
.book-card .wp-block-buttons,.book-card .wp-block-button{width:100%}
@media (max-width:639px){.hero-ctas>.wp-block-button,.r-intro .ctas>.wp-block-button,.stay-body .ctas>.wp-block-button{flex:1 1 100%}}

/* images inside design wrappers */
.wp-block-image.photo img,.photo>.wp-block-image img,.hero-media .wp-block-image img{width:100%;height:100%;object-fit:cover}
.hero-media .wp-block-image{height:100%}
.hero-media .wp-block-image img{object-position:55% 50%}
.media.photo.wp-block-image,.photo.wp-block-image{display:block}
.is-card-link{position:relative}
.is-card-link h3 a{text-decoration:none;color:inherit}
.is-card-link h3 a::after{content:"";position:absolute;inset:0;z-index:1}

/* generic content pages (page hero + prose) */
.page-hero-lite{background:var(--sand);padding:48px 0 44px;border-bottom:1px solid rgba(201,162,74,.25)}
.page-hero-grid{display:grid;gap:28px;align-items:center}
@media (min-width:900px){.page-hero-grid.has-img{grid-template-columns:1.1fr .9fr;gap:48px}}
.page-hero-lite .page-h1{font-size:clamp(2.3rem,6vw,3.9rem);margin:14px 0 14px;color:var(--teal-900);text-wrap:balance}
.page-hero-lite .lede{margin-bottom:6px}
.page-hero-img{aspect-ratio:4/3;overflow:hidden;box-shadow:var(--shadow)}
.page-hero-img img{width:100%;height:100%;object-fit:cover}
.prose-section{padding:56px 0 70px}
.prose{max-width:760px}
.prose>*+*{margin-top:1.05em}
.prose h2{font-size:clamp(1.8rem,4vw,2.5rem);margin-top:1.6em;color:var(--teal-900)}
.prose h3{font-size:1.45rem;margin-top:1.3em;color:var(--teal-900)}
.prose>h2:first-child{margin-top:0}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.4em}
.prose a:not(.wp-block-button__link){color:var(--teal-700);text-decoration-color:var(--gold);text-underline-offset:3px}
.prose .wp-block-image{margin:1.6em 0}
.prose .hp-inline-photo img{width:100%;height:auto;max-height:520px;object-fit:cover;box-shadow:var(--shadow)}
.prose .wp-block-buttons{margin-top:1.2em}
.prose .wp-block-quote{margin:1.4em 0}
.prose .wp-block-quote.is-placeholder{font-family:var(--sans);font-style:normal;font-size:.95rem}
.prose .faq-list{margin-top:1em}
.prose .faq-cta{font-size:.9rem;color:var(--muted)}
.img-needed{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border:1px dashed #C99A2E;background:#FFF9E8;font-size:.85rem;color:#5a4a1f;line-height:1.5}
.img-needed svg{width:18px;height:18px;flex:none;margin-top:2px;color:#A07C2C}
.page-hero-lite .img-needed{margin-top:14px}
.legal-note{padding:16px 18px;border-left:3px solid var(--gold);background:#FFF9E8;font-size:.9rem}

/* FAQ accordions (core/details) outside the mockup sections */
.faq-list .wp-block-details{border-bottom:1px solid rgba(201,162,74,.35);padding:16px 0}
.faq-list .wp-block-details summary{cursor:pointer;font-family:var(--serif);font-weight:600;font-size:1.25rem;color:var(--teal-900);list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq-list .wp-block-details summary::-webkit-details-marker{display:none}
.faq-list .wp-block-details summary::after{content:"+";color:var(--gold-600);font-family:var(--sans);font-weight:700}
.faq-list .wp-block-details[open] summary::after{content:"–"}
.faq-list .wp-block-details summary .pm{display:none}
.faq-list .wp-block-details>*+*{margin-top:10px}

/* single post */
.post-hero{background:var(--sand);padding:44px 0 34px}
.post-head{max-width:860px}
.post-head .eyebrow a{text-decoration:none;color:inherit}
.post-h1{font-size:clamp(2.2rem,5.5vw,3.6rem);margin:14px 0;color:var(--teal-900);text-wrap:balance}
.post-meta{gap:6px 16px;font-size:.82rem;color:var(--muted)}
.post-meta a{color:var(--teal-700)}
.post-cover-wrap{margin-top:-10px}
.post-cover img{width:100%;max-height:560px;object-fit:cover;box-shadow:var(--shadow)}
.prose-wrap{display:grid;justify-items:center;padding:40px 0 70px}
.author-box{max-width:760px;margin-top:40px;padding:20px 22px;border:1px solid rgba(201,162,74,.35);background:var(--ivory)}

/* blog index */
.post-grid{display:grid;gap:24px;list-style:none;padding:0;margin-top:34px}
@media (min-width:700px){.post-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.post-grid{grid-template-columns:repeat(3,1fr)}}
.post-card{background:#fff;border:1px solid rgba(201,162,74,.3);height:100%}
.post-card-media img{aspect-ratio:16/10;object-fit:cover;width:100%}
.post-card-body{padding:18px 20px 22px}
.post-card-title{font-size:1.5rem;margin:8px 0}
.post-card-title a{text-decoration:none;color:var(--teal-900)}
.hp-latest{list-style:none;padding:0!important}
.hp-latest li{margin:0 0 14px}

/* mockup review placeholders + gallery placeholders converted to groups */
.review .q{margin:0}
.hp-figcaption{margin:0}

/* sticky mobile bar: admin preview spacing */
@media (min-width:900px){body{padding-bottom:0}}

/* ---- preview QA fixes (round 1) ---- */
/* Header: the Book Now button only shows from 900px (as in the mockup); the burger + EN/FR pill carry mobile. */
@media (max-width:899px){.site-header .header-book{display:none!important}}
/* Headings inherit their section colour (hero, dark bands, photo cards), like the static mockup. */
.hero h1{color:inherit}
.hero h1 em{color:var(--gold-300)}
/* No sideways scrolling on phones. */
.wp-site-blocks{overflow-x:clip}
/* Grid children must be allowed to shrink below their content width. */
.prose-wrap>.prose{width:100%;min-width:0}
.book-side{grid-template-columns:minmax(0,1fr)}
.book-side>*,.book-grid>*{min-width:0}
.call-strip .wp-block-buttons{flex-wrap:wrap}
/* [to confirm] chips inside running text may wrap. */
.prose .tbc,.prose .img-needed .tbc,summary .tbc{white-space:normal}
.prose{overflow-wrap:break-word}
/* Gallery items that became a single core/image figure keep their tile shape. */
.gallery>figure.wp-block-image.photo{position:relative;inset:auto;aspect-ratio:4/3;margin:0}
.gallery>figure.wp-block-image.photo.tall{aspect-ratio:auto}
.gallery>figure.wp-block-image.photo img{position:absolute;inset:0;width:100%;height:100%}
/* Photo overlay labels (caption chip, credit, "All photos") carried in the image caption. */
.photo>figcaption.wp-element-caption:has(>.cap,>.more){display:contents}
/* Prose rhythm must beat the flow-layout margin reset above. */
.wp-site-blocks .prose>*+*{margin-block-start:1.05em}
.wp-site-blocks .prose>h2{margin-block-start:1.6em}
.wp-site-blocks .prose>h3{margin-block-start:1.3em}
.wp-site-blocks .prose>:first-child{margin-block-start:0}
.wp-site-blocks .prose>.wp-block-image,.wp-site-blocks .prose>.hp-inline-photo{margin-block:1.6em}
.wp-site-blocks .prose>.wp-block-details+.wp-block-details{margin-block-start:0}
.call-strip{grid-template-columns:minmax(0,1fr)}
@media (max-width:480px){.wp-block-button>.wp-block-button__link,.btn{white-space:normal;text-align:center}}
@media (max-width:640px){.tbc{white-space:normal}}
/* Buttons that sit in grid/flex CTA rows fill their cell, as in the mockup. */
.room-ctas>.wp-block-button,.room-ctas>.wp-block-button>.wp-block-button__link,.cs-btns>.wp-block-button>.wp-block-button__link,.cp-btns>.wp-block-button>.wp-block-button__link{width:100%}
.primary-nav-wp .wp-block-navigation-item__content{white-space:nowrap}
/* Mockup .btn-* classes sit on the core/button wrapper too: only the inner link is the visual button. */
.wp-block-button[class*="btn-"],.wp-block-button[class*="btn-"]:hover{padding:0;background:none;border:0;box-shadow:none;min-height:0}

/* v1.0.10: layouts after hidden photo-needed boxes (inc/notes.php adds these classes). Kept here because hp-inline.css is regenerated by gen/site.py. */
.stay-card.hp-no-media{grid-template-columns:minmax(0,1fr)!important}
.dining-media.hp-ph-gone{grid-template-rows:1fr;min-height:420px}
.dining-media.hp-ph-gone .tall{grid-row:auto}
.mosaic.hp-ph-gone .main{position:relative}
@media (min-width:640px){.mosaic.hp-ph-gone>*{grid-row:span 2}.mosaic.hp-ph-gone>*:nth-child(n+3){display:none}}
@media (min-width:900px){.mosaic.hp-ph-gone{grid-template-columns:2.1fr 1fr 1fr}.mosaic.hp-ph-gone>*:nth-child(3){display:block}}
/* v1.0.11: attraction cards keep their decorative background even when the photo-needed label is removed (p:empty is hidden above). */
.exp>p.ph:empty{display:flex}
/* v1.0.11: location section without the map placeholder: the address card takes the full width. */
.loc-grid:not(:has(.map)){grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.loc-grid:not(:has(.map)) .addr{display:grid;grid-template-columns:1.25fr 1fr;column-gap:48px;row-gap:18px;align-items:start;align-content:start}
.loc-grid:not(:has(.map)) .addr>figure{grid-column:1;grid-row:1 / span 3;margin:0;height:100%}
.loc-grid:not(:has(.map)) .addr>figure img{width:100%;height:100%;object-fit:cover}
.loc-grid:not(:has(.map)) .addr>*:not(figure){grid-column:2}}
/* v1.0.11: room card without a photo: centre its content so the card does not look half empty next to a card with a photo. */
.room.hp-ph-gone{border-top:3px solid var(--gold)}
.room.hp-ph-gone .room-body{justify-content:center}
/* v1.0.14: a gallery photo marked hp-wide (the spiral staircase on the Whole House pages) spans the full row from 640 px up, so a 10-photo gallery has no empty cells; on phones it is a normal cell. */
@media (min-width:640px){.gallery>figure.wp-block-image.photo.hp-wide{grid-column:1 / -1;aspect-ratio:2/1}}

/* 1.0.15: mobile menu fix. The header's backdrop-filter made .site-header the containing block for the core
 * navigation overlay (position:fixed), so the open menu was clipped to the 72px header bar. The blur now lives on a
 * pseudo-element, so the overlay covers the viewport again. Open menu: deep teal panel, white and gold links. */
.site-header{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:rgba(252,250,245,.96);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px)}
html.has-modal-open .site-header{z-index:100000}
html.has-modal-open .m-bar{display:none!important}
html.has-modal-open,html.has-modal-open body{overflow:hidden}
.primary-nav-wp .wp-block-navigation__responsive-container.is-menu-open{position:fixed!important;inset:0!important;width:100%!important;height:100vh!important;height:100dvh!important;background:var(--teal-900)!important;color:#fff!important;padding:18px 22px calc(28px + env(safe-area-inset-bottom))!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch}
.primary-nav-wp .is-menu-open .wp-block-navigation__responsive-close,.primary-nav-wp .is-menu-open .wp-block-navigation__responsive-dialog{width:100%;max-width:560px;margin-inline:auto}
.primary-nav-wp .is-menu-open .wp-block-navigation__responsive-container-close{position:absolute;top:0;right:0;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:#fff;border:1px solid rgba(227,204,143,.6);border-radius:2px;background:transparent}
.primary-nav-wp .is-menu-open .wp-block-navigation__responsive-container-close svg{width:26px;height:26px;fill:currentColor}
.primary-nav-wp .is-menu-open .wp-block-navigation__responsive-container-close:hover,.primary-nav-wp .is-menu-open .wp-block-navigation__responsive-container-close:focus-visible{color:var(--gold-300);border-color:var(--gold)}
.primary-nav-wp .is-menu-open .wp-block-navigation__responsive-container-content{padding-top:60px!important;align-items:stretch!important}
.primary-nav-wp .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container{gap:0!important;width:100%;align-items:stretch!important;justify-content:flex-start!important}
.primary-nav-wp .is-menu-open .wp-block-navigation-item{width:100%;align-items:stretch!important}
.primary-nav-wp .is-menu-open .wp-block-navigation-item__content{display:flex!important;align-items:center;min-height:48px;width:100%;color:#fff!important;font-family:var(--serif);font-size:1.35rem;font-weight:600;line-height:1.2;padding:8px 2px!important;border-bottom:1px solid rgba(201,162,74,.28);white-space:normal}
.primary-nav-wp .is-menu-open .wp-block-navigation-item__content::after{display:none}
.primary-nav-wp .is-menu-open .wp-block-navigation-item__content:hover,.primary-nav-wp .is-menu-open .wp-block-navigation-item__content:focus-visible,.primary-nav-wp .is-menu-open .current-menu-item>.wp-block-navigation-item__content{color:var(--gold-300)!important}
.primary-nav-wp .is-menu-open .wp-block-navigation__submenu-container{position:static!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0 0 6px!important;min-width:0!important;width:100%!important;opacity:1!important;visibility:visible!important;height:auto!important;overflow:visible!important}
.primary-nav-wp .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-family:var(--sans);font-size:1rem;font-weight:500;min-height:44px;padding:8px 2px 8px 18px!important;color:var(--gold-100)!important;border-bottom:1px solid rgba(201,162,74,.14)}
.primary-nav-wp .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:transparent;color:var(--gold-300)!important}
.primary-nav-wp .is-menu-open .wp-block-navigation-item__content[href$="/book/"],.primary-nav-wp .is-menu-open .wp-block-navigation-item__content[href$="/fr/reserver/"]{justify-content:center;margin:18px 0 6px;min-height:52px;background:var(--gold);color:var(--teal-950)!important;border:0;border-radius:2px;font-family:var(--sans);font-size:.82rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.primary-nav-wp .is-menu-open .wp-block-navigation-item__content[href$="/book/"]:hover,.primary-nav-wp .is-menu-open .wp-block-navigation-item__content[href$="/fr/reserver/"]:hover{background:var(--gold-300);color:var(--teal-950)!important}
.primary-nav-wp .is-menu-open .wp-block-navigation-item:has(>.wp-block-navigation-item__content[href$="/book/"]),.primary-nav-wp .is-menu-open .wp-block-navigation-item:has(>.wp-block-navigation-item__content[href$="/fr/reserver/"]){order:99}
