/* KCT site styles. Loaded after kct.css.
   Inner pages reuse the homepage type, colour, buttons, bands and mosaic. */
.phero{height:clamp(420px,62vh,640px)}
.phero .band-copy .display{margin-bottom:var(--s3)}
.phero-sm{height:clamp(300px,42vh,440px)}
.phero .band-dates{font:500 14px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#F1EADC;margin:var(--s3) 0 0}
.crumbs{font-size:13px;letter-spacing:.06em;color:var(--moss);padding:var(--s4) 0 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"/";margin-right:6px;color:#B5AA96}
.crumbs a{color:var(--moss)}
.subnav{position:sticky;top:76px;z-index:15;background:rgba(246,242,234,.97);border-bottom:1px solid var(--linen)}
.subnav ul{list-style:none;margin:0 auto;padding:0 var(--s5);max-width:var(--wrap);display:flex;gap:var(--s5);overflow-x:auto;scrollbar-width:none}
.subnav ul::-webkit-scrollbar{display:none}
.subnav a{display:flex;align-items:center;min-height:52px;white-space:nowrap;font:500 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--navy);border-bottom:2px solid transparent}
.subnav a:hover,.subnav a[aria-current]{border-bottom-color:var(--gold)}
.sec{padding:var(--s8) 0}
.sec-alt{background:var(--linen)}
.sec-paper{background:var(--paper)}
.sec-head{max-width:46em;margin-bottom:var(--s6)}
.sec-head .body-lg{margin:0}
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7)}
.exp{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s7)}
.exp li{padding:14px 0;border-bottom:1px solid #D9CFBD;color:var(--navy)}
.note-sm{font-size:14px;color:var(--moss);margin:var(--s4) 0 0}
/* "Details to follow": neutral public state for hotel-dependent data */
.tbc{background:var(--paper);border:1px solid #DDD3C2;border-left:3px solid var(--gold);padding:var(--s6);max-width:46em}
.tbc-h{font:italic 500 28px/1.2 var(--serif);color:var(--navy);margin:0 0 var(--s3)}
.tbc p{margin:0 0 var(--s3)}.tbc p:last-child{margin-bottom:0}
/* terms components */
.terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--s5)}
.term{background:var(--paper);border:1px solid #DDD3C2;padding:var(--s5) var(--s5) var(--s4)}
.term h3{font-size:26px;line-height:1.15;margin:0 0 var(--s3)}
.term p{margin:0 0 var(--s3)}
.term ul{margin:0 0 var(--s3);padding-left:1.1em}.term li{margin-bottom:6px}
.lead-terms{max-width:46em;margin:0 0 var(--s6)}
.lead-terms p{font-size:19px;margin:0 0 var(--s3)}
.sub-h{font-size:clamp(28px,2.6vw,38px);margin:var(--s7) 0 var(--s4)}
.sub-h:first-child{margin-top:0}
/* edition cards */
.ecards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:var(--s6)}
.ecard{position:relative;background:var(--paper);border:1px solid #DDD3C2;display:grid;grid-template-columns:1.25fr 1fr;min-height:420px}
.ecard .ec-img{position:relative;overflow:hidden}
.ecard .ec-img picture,.ecard .ec-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ecard .ec-body{padding:var(--s6);display:flex;flex-direction:column;position:relative}
.ecard h2{font-size:clamp(32px,3vw,44px);line-height:1.05;margin:0 0 var(--s2)}
.ecard .ec-loc{font:italic 500 22px/1.3 var(--serif);color:var(--navy);margin:0 0 var(--s3)}
.ecard .ec-dates{font:500 13px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--moss);margin:0 0 var(--s4)}
.ecard .ec-link{position:absolute;inset:0;z-index:3}
.ecard .ec-link:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
.ecard .pstamp{position:absolute;right:var(--s5);bottom:var(--s5);width:120px;height:120px}
.ecard .page-cta{margin-top:auto}
.lines{font:italic 500 clamp(26px,2.6vw,36px)/1.3 var(--serif);color:var(--navy);margin:0}
/* inquiry CTA band */
.cta-band{background:var(--navy);color:var(--ivory);padding:var(--s8) 0;text-align:center}
.cta-band h2{color:var(--ivory)}
.cta-band p{color:#E6DFD2;max-width:36em;margin:0 auto}
/* forms */
.form{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4) var(--s5);max-width:860px}
.form .full{grid-column:1/-1}
.field label,.field legend{display:block;font:500 13px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin:0 0 8px}
.field .opt{text-transform:none;letter-spacing:0;color:var(--moss);font-weight:400}
.field input,.field select,.field textarea{width:100%;min-height:52px;font:400 17px/1.4 var(--sans);color:var(--ink);background:#fff;border:1.5px solid #B9AE9B;border-radius:var(--r);padding:12px 14px}
.field textarea{min-height:150px;resize:vertical}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-color:var(--navy)}
.field [aria-invalid="true"]{border-color:#9B2C1F}
.err{display:block;color:#9B2C1F;font-size:14px;margin-top:6px;min-height:0}
fieldset.field{border:0;padding:0;margin:0}
.radios{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5)}
.radios label,.check label{display:flex;align-items:center;gap:10px;min-height:44px;font:400 16px/1.4 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);margin:0}
.radios input,.check input{width:22px;height:22px;min-height:0;accent-color:var(--navy)}
.check label{align-items:flex-start}.check input{margin-top:2px}
.form-status{grid-column:1/-1;padding:var(--s4);border:1px solid #DDD3C2;background:var(--paper);display:none}
.form-status.show{display:block}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s5)}
.ccard{background:var(--paper);border:1px solid #DDD3C2;padding:var(--s6)}
.ccard h2{font-size:30px;margin:0 0 var(--s3)}
.ccard p{margin:0 0 var(--s4)}
.page-title{padding:var(--s7) 0 var(--s5)}
.page-title .display-sm{margin-bottom:var(--s3)}
@media (max-width:900px){.cols-2,.exp{grid-template-columns:1fr}.ecard{grid-template-columns:1fr}.ecard .ec-img{min-height:300px}}
@media (max-width:640px){
 .subnav{top:64px}.subnav ul{padding:0 var(--s4);gap:var(--s4)}.subnav a{font-size:12px;min-height:48px}
 .sec{padding:var(--s7) 0}
 .tbc{padding:var(--s5)}.tbc-h{font-size:24px}
 .term h3{font-size:23px}
 .form{grid-template-columns:1fr}
 .ecard .pstamp{width:96px;height:96px;right:var(--s4);bottom:var(--s4)}
 .ecard .ec-body{padding:var(--s5)}
 .phero{height:62svh;min-height:420px}
 .phero-sm{height:44svh;min-height:300px}
 .page-title{padding:var(--s6) 0 var(--s4)}
}


.preview-note{max-width:860px;margin:0 0 var(--s5);padding:var(--s4) var(--s5);border:1px solid #D9CFBC;border-left:4px solid var(--gold);background:var(--paper);color:var(--ink)}.preview-note p{margin:0;font:400 17px/1.55 var(--sans)}.preview-note a{font-weight:500}

/* Shared mobile header: same quiet Menu control and compact brand as the homepage. Desktop header unchanged. */
.menu{display:none}
.brand-sub .bs-x{white-space:nowrap}
@media (max-width:1400px){
 .site-header .menu{display:block;margin-left:0}
 .menu summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 4px 0 12px;border:0;background:none;color:var(--navy);cursor:pointer;font:500 13px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}
 .menu summary::-webkit-details-marker{display:none}
 .menu summary:focus-visible{outline:3px solid var(--navy);outline-offset:-3px;border-radius:2px}
 .hm-ico{position:relative;display:block;width:20px;height:7px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor}
 .menu[open] .hm-ico{border-color:transparent}
 .menu[open] .hm-ico::before,.menu[open] .hm-ico::after{content:"";position:absolute;left:0;top:2.5px;width:20px;height:1.5px;background:currentColor;transform:rotate(45deg)}
 .menu[open] .hm-ico::after{transform:rotate(-45deg)}
 .menu-panel{position:absolute;left:0;right:0;top:100%;display:flex;flex-direction:column;background:var(--ivory);border-bottom:1px solid #D5CAB6;padding:4px 24px 14px;max-height:calc(100vh - 52px);max-height:calc(100svh - 52px);overflow:auto}
 .menu-panel a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid var(--linen);color:var(--navy);text-decoration:none;font:500 14px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
 .menu-panel a:focus-visible{outline:3px solid var(--navy);outline-offset:-3px}
 .menu-panel a.mp-wa{border-bottom:0;color:var(--moss)}
}
@media (max-width:820px){
 .site-header .hdr{height:auto;min-height:52px;padding:0 6px 0 14px;gap:10px}
 .site-header .hdr-cta{display:none}
 .site-header .brand{min-height:44px;gap:11px;flex:0 1 auto;min-width:0}
 .site-header .brand-seal{width:36px;height:36px;margin-left:3px;box-shadow:0 0 0 1.5px var(--navy),0 0 0 3px var(--gold)}
 .site-header .brand-text{gap:5px;min-width:0}
 .site-header .brand-kct{height:17px;width:auto}
 .site-header .brand-sub{font-size:11px;letter-spacing:.15em;white-space:normal;line-height:1.15}
 .brand-sub .bs-x{display:none}
 .site-header .menu{flex:none;margin-left:auto}
 .menu-panel{padding:4px 16px 14px}
}
@media (max-width:340px){.site-header .brand-sub{letter-spacing:.03em;white-space:nowrap}.site-header .brand{gap:9px}.site-header .hdr{gap:4px}}
@media (max-width:820px){.subnav{top:53px}}

/* Inquiry and other inner titles: keep the side gutter on phones (the title padding shorthand had removed it) */
@media (max-width:640px){.page-title{padding-left:var(--s4);padding-right:var(--s4)}}

/* full-site additions: tap targets, narrow-screen wrapping */
.crumbs a{display:inline-flex;align-items:center;min-height:44px}
.crumbs li{display:flex;align-items:center}
.crumbs ol{gap:0 6px}
.crumbs{padding-top:0}
.ecards>*,.cards>*{min-width:0}
@media (max-width:640px){
 main :where(div,h2,h3,h4,p,li,a,span,dd,dt,label),.ft-brand,.ft-sub,.ft-tag,.ft-nav a,.ft-contact a,.ft-contact span{overflow-wrap:anywhere}
 .btn{max-width:100%;box-sizing:border-box;white-space:normal;text-align:center;line-height:1.2;padding-top:12px;padding-bottom:12px}
}
@media (min-width:1401px){
 .site-header .nav{gap:var(--s5)}
 .site-header .nav a{white-space:nowrap;font-size:13px;letter-spacing:.1em}
 .site-header .brand{flex:none}
}
/* Room for the Book button beside Inquire without sideways scrolling. */
@media (min-width:1401px) and (max-width:1680px){
 .site-header .hdr{gap:14px}
 .site-header .nav{gap:10px}
 .site-header .nav a{letter-spacing:.04em}
}
@media (max-width:900px){.ecard{grid-template-columns:minmax(0,1fr)}.ecard .ec-body{min-width:0}}
@media (max-width:640px){.sticky-cta{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.sticky-cta .btn{padding:0 8px}}
@media (max-width:640px){main .dl{white-space:normal}.ecard .btn,.ecard .page-cta{max-width:100%;white-space:normal}}

/* launch 2026-11-01: keep in-page anchors clear of the sticky header */
:where([id]){scroll-margin-top:96px}

/* Modernisation pass: a quick page-entrance fade, plus reveal-on-scroll for
   sections and cards (class added by motion.js, not markup). Both are inert
   under prefers-reduced-motion. */
body{animation:page-in .5s ease both}
@keyframes page-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1);will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
 body{animation:none}
 .reveal{opacity:1;transform:none;transition:none}
}
