/* WordPress wrappers must not change the approved prototype geometry. */
.wp-site-blocks { padding: 0; }
.wp-site-blocks > *, .wp-block-post-content > * { margin-block-start: 0; margin-block-end: 0; }
.wp-block-post-content { max-width: none; }
.wp-block-post-content p { max-width: none; }
figure, .wp-block-table { margin: 0; }
.pc-icon { display: inline-block; flex-shrink: 0; width:24px; height:24px; }
.pc-menu-items { display:flex; align-items:center; gap:inherit; list-style:none; padding:0; margin:0; }
.mobile-menu .pc-menu-items { display:contents; }
.mobile-menu .pc-menu-items a { display:block; padding:12px 8px; }
.mobile-menu summary { min-width:44px; min-height:44px; }
:where(a,button,summary,input):focus-visible { outline:3px solid #bb4d2c; outline-offset:4px; }
.availability-layout { grid-template-columns:minmax(0,1fr); min-width:0; }
.availability-layout > * { min-width:0; max-width:100%; }
.pc-calendar { box-sizing:border-box; max-width:100%; min-width:0; overflow:hidden; padding:2px; width:100%; }
.pc-calendar .owac-calendar-container,
.pc-calendar .main.regularslider.owac,
.pc-calendar .owacregular { box-sizing:border-box; max-width:100%; min-width:0; width:100%; }
/* Status colours, plugin classes and event handlers remain plugin-owned. */
.pc-calendar-notice { background:var(--paper); border:1px solid var(--stone); padding:28px; }
.pc-default-page { min-height:55vh; }
.pc-default-page > h1 { margin-bottom:30px; }
.pc-default-page .wp-block-post-content a { text-decoration:underline; }
.full-gallery-grid > figure { position:relative; overflow:hidden; min-width:0; margin:0; }
.full-gallery-grid > figure a { display:block; height:100%; }
.full-gallery-grid > figure img { width:100%; height:100%; object-fit:cover; }
.full-gallery-grid > figure figcaption { position:absolute; bottom:0; left:0; right:0; padding:30px 18px 15px; background:linear-gradient(transparent,rgba(0,0,0,.75)); color:white; pointer-events:none; }
.full-gallery-grid > figure:nth-child(1), .full-gallery-grid > figure:nth-child(6), .full-gallery-grid > figure:nth-child(13) { grid-column:span 2; }
.full-gallery-grid > figure.portrait { grid-row:span 2; }
dialog.pc-lightbox { border:0; padding:60px 20px 24px; max-width:100vw; max-height:100dvh; width:100vw; height:100dvh; background:rgba(0,0,0,.94); color:white; }
dialog.pc-lightbox::backdrop { background:rgba(0,0,0,.8); }
.pc-lightbox figure { display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; }
.pc-lightbox img { max-height:calc(100dvh - 130px); max-width:100%; object-fit:contain; }
.pc-lightbox figcaption { margin-top:14px; }
.pc-lightbox button { position:absolute; right:20px; top:12px; width:44px; height:44px; font-size:30px; color:white; background:transparent; border:1px solid white; cursor:pointer; }
@media(min-width:1061px) and (max-width:1450px) { .desktop-nav { display:none; } .mobile-menu { display:block; } .mobile-menu nav { background:var(--paper); position:absolute; right:0; top:48px; width:330px; padding:15px; display:flex; flex-direction:column; gap:14px; border:1px solid var(--line); } }
@media(max-width:820px) {
  .full-gallery-grid > figure:nth-child(n), .full-gallery-grid > figure.portrait { grid-column:span 1; grid-row:span 1; }
  .inner-hero:has(h1) { min-height:330px; height:auto; padding-block:55px; }
  .inner-hero-copy { position:relative; top:auto; transform:none; }
  .inner-hero > img, .inner-hero-shade { position:absolute; inset:0; height:100%; width:100%; }
  .footer-contact { max-width:100%; overflow-wrap:anywhere; }
  .footer-contact > * { max-width:100%; }
}
@media(max-width:360px) { .brand {gap:4px;} .brand-name {font-size:23px;} .brand-mark {width:60px;} .header-inner {width:calc(100% - 24px); gap:6px;} }
