/* Layers stay below the WordPress admin bar; preserve scene < header < dialog < skip link. */
/* All selectors are scoped. Without successful JavaScript startup, Woodmart stays visible. */
:root { --ksn-menu-bg:#f1eee8; --ksn-menu-text:#514d45; --ksn-booking-bg:#42574e; --ksn-booking-text:#fff; --ksn-panel-width:480px; --ksn-admin-top:0px; --ksn-header-h:96px; --ksn-panel-w:min(var(--ksn-panel-width), 42vw); --ksn-ease:cubic-bezier(.22,.68,0,1); }
.ksn-root { display:none; font-family:inherit; color:var(--ksn-menu-text); }
html.ksn-ready .ksn-root { display:block; }
.ksn-root *, .ksn-root *::before, .ksn-root *::after, .ksn-shortcode *, .ksn-preview-header * { box-sizing:border-box; }
.ksn-root [hidden], .ksn-preview-header [hidden] { display:none!important; }
.ksn-root button, .ksn-shortcode button, .ksn-preview-header button { font:inherit; border:0; border-radius:0; min-height:0; box-shadow:none; text-shadow:none; cursor:pointer; appearance:none; }
.ksn-root a, .ksn-preview-header a { text-decoration:none; color:inherit; box-shadow:none; }
.ksn-root button:focus-visible, .ksn-root a:focus-visible, .ksn-shortcode button:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.ksn-root p, .ksn-root h2 { margin:0; color:inherit; }
html.ksn-ready.ksn-replace-header .whb-header, html.ksn-ready.ksn-replace-header .whb-sticky-header, html.ksn-ready.ksn-replace-header .whb-clone { display:none!important; }
html.ksn-ready.ksn-replace-header.ksn-header-space .website-wrapper { padding-top:var(--ksn-header-h)!important; }
.ksn-header { position:fixed; inset:var(--ksn-admin-top) 0 auto; height:var(--ksn-header-h); z-index:9000; display:flex; align-items:center; padding:0 4vw 0 0; gap:32px; color:#fff; background:linear-gradient(180deg,rgba(0,0,0,.22),transparent); transition:background .2s,color .2s,opacity .2s; }
.ksn-solid .ksn-header, .ksn-preview-solid { background:var(--ksn-menu-bg); color:var(--ksn-menu-text); box-shadow:0 1px 0 rgba(0,0,0,.06); }
.ksn-header-actions, .ksn-shortcode { display:inline-flex; align-items:stretch; flex-shrink:0; }
.ksn-root .ksn-trigger, .ksn-shortcode .ksn-trigger, .ksn-preview-header .ksn-trigger { display:inline-flex; align-items:center; justify-content:center; gap:12px; height:var(--ksn-header-h); padding:0 30px; min-width:148px; margin:0; font-size:14px; line-height:1; font-weight:600; text-transform:uppercase; letter-spacing:.15em; transition:background .2s,color .2s; }
.ksn-root .ksn-trigger--menu, .ksn-shortcode .ksn-trigger--menu, .ksn-preview-header .ksn-trigger--menu { background:var(--ksn-menu-bg); color:var(--ksn-menu-text); }
.ksn-root .ksn-trigger--book, .ksn-shortcode .ksn-trigger--book, .ksn-preview-header .ksn-trigger--book { background:var(--ksn-booking-bg); color:var(--ksn-booking-text); }
.ksn-root .ksn-trigger:hover, .ksn-shortcode .ksn-trigger:hover { filter:brightness(.94); }
.ksn-hamburger { width:19px; display:grid; gap:4px; }
.ksn-hamburger i { display:block; height:1.5px; width:19px; background:currentColor; }
.ksn-brand { display:inline-flex; flex-direction:column; justify-content:center; color:inherit; }
/* Centre the logo in the whole header, independently of the controls on either side. */
.ksn-header-brand { position:absolute; left:50%; top:50%; transform:translate(-50%, -50%); margin:0; text-align:center; }
.ksn-brand-image { display:block; width:190px; max-width:100%; }
.ksn-brand-image img { display:block; width:100%; height:68px; object-fit:contain; filter:brightness(0); opacity:.8; }
.ksn-header-brand .ksn-brand-image img { filter:brightness(0) invert(1); opacity:1; }
.ksn-solid .ksn-header-brand .ksn-brand-image img, .ksn-preview-solid .ksn-brand-image img { filter:brightness(0); opacity:.8; }
.ksn-brand-type > span { font-family:Georgia,'Times New Roman',serif; font-size:30px; line-height:1.1; letter-spacing:-.035em; }
.ksn-brand-type small { display:block; margin-top:8px; font-size:8px; font-weight:500; letter-spacing:.22em; }
.ksn-header-end { margin-left:auto; }
.ksn-languages { display:flex; gap:17px; align-items:center; }
.ksn-languages a { padding:8px 0; font-size:11px; line-height:1.4; font-weight:600; letter-spacing:.12em; opacity:.65; }
#ksn-root .ksn-languages a { color:inherit; font-weight:600; }
.ksn-languages a[aria-current], .ksn-languages a:hover { opacity:1; text-decoration:underline; text-underline-offset:5px; }
.ksn-dialog { position:fixed; inset:var(--ksn-admin-top) 0 0; z-index:9010; outline:none; }
.ksn-backdrop { position:absolute; inset:0; background:rgba(19,23,20,.24); opacity:0; transition:opacity .44s var(--ksn-ease); cursor:pointer; }
.ksn-panel { position:absolute; top:0; bottom:0; left:0; width:var(--ksn-panel-w); padding:36px 46px 32px; background:var(--ksn-menu-bg); color:var(--ksn-menu-text); overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; transform:translateX(-103%); transition:transform .44s var(--ksn-ease),background-color .22s,color .22s; scrollbar-width:thin; scrollbar-color:currentColor transparent; }
.ksn-is-open .ksn-panel { transform:translateX(0); }
.ksn-is-open .ksn-backdrop { opacity:1; }
.ksn-root[data-panel="book"] .ksn-panel { background:var(--ksn-booking-bg); color:var(--ksn-booking-text); }
.ksn-root[data-panel="book"] .ksn-panel .ksn-brand-image img { filter:brightness(0) invert(1); opacity:1; }
.ksn-panel-top { position:relative; display:flex; align-items:center; justify-content:center; min-height:62px; margin-bottom:32px; }
.ksn-panel-top > .ksn-brand { max-width:calc(100% - 112px); text-align:center; }
.ksn-panel-top .ksn-brand-image { width:182px; }
.ksn-panel-top .ksn-brand-image img { height:62px; }
.ksn-root .ksn-close { display:flex; align-items:center; gap:9px; padding:10px 0 10px 10px; margin:0; background:transparent; color:inherit; font-size:10px; letter-spacing:.08em; text-transform:uppercase; flex-shrink:0; }
.ksn-panel-top .ksn-close { position:absolute; right:0; top:50%; transform:translateY(-50%); }
.ksn-cross { position:relative; display:block; width:18px; height:18px; }
.ksn-cross::before, .ksn-cross::after { content:''; position:absolute; left:8px; top:0; width:1.5px; height:18px; background:currentColor; transform:rotate(45deg); }
.ksn-cross::after { transform:rotate(-45deg); }
.ksn-panel-tabs { display:flex; align-items:center; flex-wrap:wrap; gap:0 20px; border-bottom:1px solid; border-color:color-mix(in srgb,currentColor 20%,transparent); margin-bottom:32px; }
.ksn-tab-switches { display:flex; align-self:stretch; gap:25px; }
.ksn-panel-tabs > .ksn-languages { margin-left:auto; gap:12px; }
.ksn-root .ksn-switch { display:inline-flex; gap:10px; padding:14px 0; margin:0 0 -1px; background:none; color:inherit; border-bottom:2px solid transparent; font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:600; opacity:.65; }
.ksn-root .ksn-switch[aria-pressed="true"] { border-bottom-color:currentColor; opacity:1; }
.ksn-root .ksn-eyebrow { font-family:inherit; font-size:9px; text-transform:uppercase; font-weight:500; letter-spacing:.18em; line-height:1.6; margin-bottom:17px; opacity:.7; }
.ksn-root .ksn-tree, .ksn-root .ksn-tree ul { list-style:none; margin:0; padding:0; }
.ksn-root .ksn-tree li { display:block; position:relative; width:auto; padding:0; margin:0; border:0; }
.ksn-root .ksn-tree li::before, .ksn-root .ksn-tree li::after, .ksn-root .ksn-tree a::after { display:none!important; }
.ksn-root .ksn-tree a { display:block; position:static; padding:13px 0; font-size:13px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; line-height:1.55; color:inherit; background:none; white-space:normal; }
.ksn-root .ksn-tree a:hover, .ksn-root .ksn-tree .current-menu-item > a, .ksn-root .ksn-tree .current-menu-item > .ksn-menu-row > a { text-decoration:underline; text-underline-offset:5px; }
.ksn-menu-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ksn-menu-row > a { flex:1; min-width:0; }
.ksn-root .ksn-expand { display:flex; justify-content:center; align-items:center; flex-shrink:0; width:44px; height:44px; margin:0 -10px 0 0; padding:0; color:inherit; background:transparent; }
.ksn-chevron { width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s; }
.ksn-expand[aria-expanded="true"] .ksn-chevron { transform:rotate(225deg) translate(-2px,-1px); }
.ksn-root .ksn-tree ul.sub-menu, .ksn-root .ksn-tree .ksn-submenu { display:block; position:static!important; inset:auto!important; float:none; width:auto!important; min-width:0!important; max-width:none!important; padding:2px 0 10px 17px; margin:0 0 10px 0; background:transparent; color:inherit; box-shadow:none; border:0; border-left:1px solid; border-color:color-mix(in srgb,currentColor 20%,transparent); opacity:1!important; visibility:visible!important; transform:none!important; pointer-events:auto!important; }
.ksn-root .ksn-tree .ksn-submenu a { padding:9px 0; font-size:12px; font-weight:400; text-transform:none; letter-spacing:.02em; }
.ksn-root .ksn-tree [hidden] { display:none!important; }
.ksn-root .ksn-book-title { font-family:Georgia,'Times New Roman',serif; font-size:34px; font-weight:400; line-height:1.15; letter-spacing:-.025em; margin-bottom:16px; }
.ksn-root .ksn-intro { font-size:12px; line-height:1.85; opacity:.8; max-width:34em; }
.ksn-booking-cards { margin-top:26px; }
.ksn-booking-card { border-top:1px solid; border-color:color-mix(in srgb,currentColor 22%,transparent); padding:23px 0 25px; }
.ksn-card-top { display:flex; justify-content:space-between; gap:20px; font-size:10px; letter-spacing:.17em; font-weight:600; text-transform:uppercase; }
.ksn-card-top span:last-child { opacity:.45; font-weight:400; letter-spacing:0; }
.ksn-root .ksn-booking-card p { font-size:12px; line-height:1.7; opacity:.8; margin:9px 0 16px; }
.ksn-root .ksn-booking-link { display:flex; align-items:center; justify-content:space-between; gap:15px; border:1px solid; border-color:color-mix(in srgb,currentColor 45%,transparent); padding:15px 17px; font-size:11px; font-weight:600; line-height:1.5; letter-spacing:.1em; text-transform:uppercase; transition:background .2s; }
/* Woodmart loads a:hover after this stylesheet. Keep our button colour in every state. */
#ksn-root .ksn-booking-link,
#ksn-root .ksn-booking-link:visited,
#ksn-root .ksn-booking-link:hover,
#ksn-root .ksn-booking-link:focus,
#ksn-root .ksn-booking-link:active { color:var(--ksn-booking-text); border-color:var(--ksn-booking-text); text-decoration:none; }
#ksn-root .ksn-booking-link span { color:inherit; }
.ksn-booking-link span:last-child { font-size:19px; font-weight:400; line-height:1; }
.ksn-root .ksn-booking-link:hover { background:rgba(255,255,255,.1); }
.ksn-gift { display:flex; align-items:center; justify-content:space-between; padding:16px 0; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.ksn-extra { padding:15px 0; }
.ksn-panel-footer { margin-top:34px; padding-top:25px; border-top:1px solid; border-color:color-mix(in srgb,currentColor 20%,transparent); }
.ksn-contact { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.ksn-contact a { font-size:11px; line-height:1.65; overflow-wrap:anywhere; }
.ksn-contact a:hover { text-decoration:underline; }
.ksn-contact address { margin:12px 0 20px; font:inherit; font-size:10px; line-height:1.9; letter-spacing:.03em; opacity:.7; }
.ksn-custom-booking { margin-top:24px; overflow-wrap:anywhere; }
.ksn-custom-booking .vc_row { margin-left:0!important; margin-right:0!important; left:auto!important; width:auto!important; }
.ksn-custom-booking .vc_column_container>.vc_column-inner { padding-left:0; padding-right:0; }
.ksn-custom-booking p { margin-bottom:1em; }
.ksn-root .ksn-skip { position:fixed; top:calc(var(--ksn-admin-top) + 8px); left:8px; z-index:9020; padding:12px 20px; background:var(--ksn-menu-bg); color:var(--ksn-menu-text); transform:translateY(-180%); }
.ksn-root .ksn-skip:focus { transform:translateY(0); }
.ksn-scene, .ksn-page-frame { display:contents; }
.ksn-scene--active { display:block; position:fixed; inset:var(--ksn-admin-top) 0 0; perspective:1600px; z-index:8990; pointer-events:none; background:var(--ksn-menu-bg); transition:background-color .22s; }
.ksn-scene--active[data-panel="book"] { background:var(--ksn-booking-bg); }
.ksn-scene--active .ksn-page-frame { display:block; position:absolute; inset:0; overflow:hidden; background:var(--ksn-menu-bg); transform-origin:0 50%; transform:translateX(0) rotateY(0) scale(1); transition:transform .44s var(--ksn-ease); backface-visibility:hidden; box-shadow:0 10px 60px rgba(0,0,0,.15); }
.ksn-scene--turned .ksn-page-frame { transform:translateX(calc(var(--ksn-panel-w) + 36px)) rotateY(-13deg) scale(.85); }
.ksn-scene--active .ksn-preview-header { position:absolute; inset:0 0 auto; pointer-events:none; }
html.ksn-open .ksn-header:not(.ksn-preview-header) { visibility:hidden; opacity:0; pointer-events:none; }
html.ksn-open .ksn-shortcode { visibility:hidden; }
@media (max-width:1200px) { .ksn-header { gap:24px; } .ksn-panel { padding:30px 32px; } .ksn-root .ksn-trigger, .ksn-preview-header .ksn-trigger { min-width:124px; padding:0 24px; } }
@media (max-width:1024px) { :root { --ksn-header-h:80px; --ksn-panel-w:min(var(--ksn-panel-width), 88vw); } .ksn-header { padding-right:24px; } .ksn-header-brand .ksn-brand-image { width:165px; } .ksn-header-brand .ksn-brand-image img { height:58px; } .ksn-backdrop { background:rgba(19,23,20,.5); } }
@media (max-width:767px) {
    :root { --ksn-header-h:72px; --ksn-panel-w:100%; }
    .ksn-header { padding-right:max(12px, env(safe-area-inset-right)); gap:0; }
    .ksn-root .ksn-header .ksn-trigger, .ksn-preview-header .ksn-trigger { width:clamp(62px, 19.2vw, 82px); min-width:0; padding:0 6px; font-size:9.5px; gap:5px; letter-spacing:.07em; }
    .ksn-hamburger { width:13px; gap:3px; } .ksn-hamburger i { width:13px; }
    .ksn-header-brand { width:52px; min-width:0; }
    .ksn-header-brand .ksn-brand-image { width:52px; } .ksn-header-brand .ksn-brand-image img { height:48px; }
    .ksn-header-brand .ksn-brand-type > span, .ksn-header-brand .ksn-brand-type small { display:none; }
    .ksn-header-brand .ksn-brand-type::after { content:'KS'; font-family:Georgia,'Times New Roman',serif; font-size:34px; line-height:1; letter-spacing:-.1em; }
    .ksn-header-end { display:block; margin-left:auto; }
    .ksn-header-end .ksn-languages { gap:4px; }
    .ksn-header-end .ksn-languages a { display:inline-flex; align-items:center; justify-content:center; min-width:24px; min-height:44px; padding:8px 3px; font-size:10px; letter-spacing:.08em; }
    .ksn-panel { padding:20px 27px max(28px, env(safe-area-inset-bottom)); }
    .ksn-panel-top { margin-bottom:15px; }
    .ksn-panel-tabs { margin-bottom:25px; }
    .ksn-root .ksn-book-title { font-size:33px; max-width:330px; }
    .ksn-panel-top .ksn-brand-image { width:170px; }
    .ksn-root .ksn-close { min-height:44px; }
    .ksn-contact a { font-size:12px; }
    .ksn-panel .ksn-languages a { padding:12px 3px; min-width:24px; text-align:center; font-size:11px; }
}
@media (max-width:359px) { .ksn-panel { padding-left:21px; padding-right:21px; } }
@media (prefers-reduced-motion:reduce) { .ksn-root *, .ksn-scene--active .ksn-page-frame { transition:none!important; animation:none!important; scroll-behavior:auto!important; } }
@media print { .ksn-root, .ksn-shortcode { display:none!important; } html.ksn-ready.ksn-replace-header .whb-header { display:block!important; } html.ksn-ready.ksn-replace-header.ksn-header-space .website-wrapper { padding-top:0!important; } }
