:root {
  --knc-forest: #18251d;
  --knc-moss: #40522a;
  --knc-cream: #f4f0e7;
  --knc-paper: #fbf9f4;
  --knc-gold: #b38b58;
  --knc-text-soft: #657068;
  --knc-rule: rgba(24, 37, 29, .15);
  --knc-shadow: 0 22px 70px rgba(22, 38, 28, .12);
  --knc-header-h: 92px;
  --knc-space-section: clamp(4.5rem, 8.5vw, 8.5rem);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; background: var(--knc-paper); }
.wp-site-blocks { min-height: 100vh; }
::selection { background: var(--knc-moss); color: #fff; }

.knc-header {
  position: relative;
  z-index: 100;
  height: var(--knc-header-h);
  margin: 0;
  background: rgba(251, 249, 244, .96);
  border-bottom: 1px solid var(--knc-rule);
  backdrop-filter: blur(14px);
  transition: height .3s ease, box-shadow .3s ease, background .3s ease;
}
.knc-header.is-scrolled { box-shadow: 0 10px 35px rgba(24,37,29,.08); }
.knc-header__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 176px 1fr;
  align-items: center;
  width: min(100% - 48px, 1320px);
  height: 100%;
  margin-inline: auto;
}
.knc-header__logo { grid-column: 2; justify-self: center; width: 152px; height: 76px; overflow: hidden; }
.knc-header__logo a { display: grid; place-items: center; width: 100%; height: 100%; }
.knc-header__logo img {
  width: 142px !important;
  max-width: none !important;
  height: 142px !important;
  object-fit: contain;
  transform: scale(1.38);
}
.knc-nav { min-width: 0; }
.knc-nav--left { grid-column: 1; grid-row: 1; justify-self: start; }
.knc-nav--right { grid-column: 3; grid-row: 1; justify-self: end; }
.knc-nav .wp-block-navigation__container { gap: clamp(18px, 2.1vw, 34px); }
.knc-nav .wp-block-navigation-item__content {
  position: relative;
  padding: 12px 0;
  color: var(--knc-forest);
  font-size: .86rem;
  font-weight: 500;
  letter-spacing: .015em;
}
.knc-nav .wp-block-navigation-item__content::after {
  content: '';
  position: absolute;
  left: 0; right: 100%; bottom: 5px;
  height: 1px;
  background: currentColor;
  transition: right .25s ease;
}
.knc-nav .wp-block-navigation-item__content:hover::after { right: 0; }
.knc-nav-cta .wp-block-navigation-item__content { color: var(--knc-moss); font-weight: 600; }
.knc-nav-mobile, .knc-header__book { display: none !important; }

.knc-kicker {
  margin-bottom: .9rem;
  color: var(--knc-gold);
  font-family: Manrope, sans-serif;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .18em;
  line-height: 1.4;
  text-transform: uppercase;
}

.knc-home-hero {
  position: relative;
  display: grid;
  min-height: min(780px, calc(100svh - var(--knc-header-h)));
  overflow: hidden;
  isolation: isolate;
  background: var(--knc-forest);
  color: #fff;
}
.knc-home-hero__media { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; }
.knc-home-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.knc-home-hero__media img { object-fit: cover; object-position: center 48%; transform: scale(1.01); }
.knc-home-hero::after {
  content: '';
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(14,25,18,.8) 0%, rgba(14,25,18,.34) 52%, rgba(14,25,18,.12) 100%), linear-gradient(0deg, rgba(14,25,18,.45), transparent 48%);
}
.knc-home-hero__content {
  position: relative;
  z-index: 2;
  align-self: end;
  width: min(100% - 48px, 1240px);
  margin-inline: auto;
  padding-block: clamp(5rem, 10vw, 8rem);
}
.knc-home-hero h1 {
  max-width: 900px;
  margin: 0 0 1rem;
  color: #fff;
  font-size: clamp(3.1rem, 5.2vw, 5.3rem);
  font-weight: 300;
  letter-spacing: -.045em;
  line-height: 1.03;
  text-wrap: balance;
}
.knc-home-hero__lead { max-width: 640px; margin: 0 0 2rem; font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.75; }
.knc-home-hero__actions, .knc-contact-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.knc-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .8rem 1.45rem;
  border: 1px solid rgba(255,255,255,.75);
  color: #fff;
  font-size: .82rem;
  font-weight: 500;
  letter-spacing: .06em;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.knc-button:hover { transform: translateY(-2px); background: #fff; color: var(--knc-forest); }
.knc-button--solid { background: #fff; color: var(--knc-forest); }
.knc-scroll-cue { position: absolute; right: clamp(24px,4vw,64px); bottom: 28px; z-index: 2; font-family: Manrope,sans-serif; font-size: .68rem; letter-spacing: .16em; writing-mode: vertical-rl; }

.knc-section { padding-block: var(--knc-space-section); }
.knc-section--compact { padding-block: clamp(3.25rem, 6vw, 6rem); }
.knc-editorial-title { max-width: 940px; margin-inline: auto; font-weight: 300; text-wrap: balance; }
.knc-intro-copy { max-width: 750px; margin: 1.5rem auto 0; color: var(--knc-text-soft); font-size: clamp(1.05rem,1.4vw,1.25rem); line-height: 1.9; }

.knc-story-grid { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(320px,.88fr); gap: clamp(2rem,6vw,6rem); align-items: center; }
.knc-story-grid--reverse { grid-template-columns: minmax(320px,.84fr) minmax(0,1.16fr); }
.knc-story-grid img { display: block; width: 100%; min-height: 520px; object-fit: cover; box-shadow: var(--knc-shadow); }
.knc-story-copy h2 { margin-top: 0; font-size: clamp(2.2rem,4vw,4.4rem); font-weight: 300; line-height: 1.16; }
.knc-story-copy p { color: var(--knc-text-soft); font-size: 1.06rem; }
.knc-text-link { display: inline-block; margin-top: 1rem; padding-bottom: .28rem; border-bottom: 1px solid currentColor; font-size: .86rem; font-weight: 600; letter-spacing: .04em; }

.knc-video-story { position: relative; overflow: hidden; background: var(--knc-forest); color: #fff; }
.knc-video-story__inner { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); gap: clamp(2.5rem,7vw,8rem); align-items: center; width: min(100% - 48px,1120px); margin: auto; padding-block: var(--knc-space-section); }
.knc-video-story__frame { position: relative; max-width: 390px; aspect-ratio: 9/16; overflow: hidden; box-shadow: 0 25px 80px rgba(0,0,0,.28); }
.knc-video-story video { width: 100%; height: 100%; object-fit: cover; }
.knc-video-story h2 { color: #fff; font-size: clamp(2.3rem,4.6vw,4.8rem); font-weight: 300; line-height: 1.15; }
.knc-video-story p { max-width: 620px; color: rgba(255,255,255,.75); font-size: 1.08rem; }

.knc-room-showcase { display: grid; grid-template-columns: repeat(12,1fr); gap: 24px; margin-top: clamp(2.5rem,5vw,4.5rem); }
.knc-room-card { position: relative; grid-column: span 6; min-height: 520px; overflow: hidden; background: #dde3dc; color: #fff; }
.knc-room-card:first-child:nth-last-child(1) { grid-column: 1 / -1; }
.knc-room-card__image, .knc-room-card__image img { position: absolute; inset: 0; width: 100%; height: 100%; }
.knc-room-card__image img { object-fit: cover; transition: transform .8s cubic-bezier(.2,.65,.25,1); }
.knc-room-card:hover img { transform: scale(1.045); }
.knc-room-card::after { content:''; position:absolute; inset:0; background: linear-gradient(0deg,rgba(12,23,16,.82),rgba(12,23,16,.02) 68%); }
.knc-room-card__body { position: absolute; z-index: 2; left: clamp(1.5rem,4vw,3.5rem); right: clamp(1.5rem,4vw,3.5rem); bottom: clamp(1.5rem,4vw,3rem); }
.knc-room-card h3 { margin: 0 0 .5rem; color: #fff; font-size: clamp(1.8rem,3vw,3.2rem); font-weight: 300; }
.knc-room-card p { max-width: 590px; margin: 0 0 1rem; color: rgba(255,255,255,.82); }
.knc-room-card a { color: #fff; }

.knc-feature-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin-top: 3rem; border-top: 1px solid var(--knc-rule); border-bottom: 1px solid var(--knc-rule); }
.knc-feature { padding: clamp(1.5rem,3vw,2.5rem); border-right: 1px solid var(--knc-rule); }
.knc-feature:last-child { border-right: 0; }
.knc-feature__number { color: var(--knc-gold); font-family: Manrope,sans-serif; font-size: .72rem; letter-spacing: .14em; }
.knc-feature h3 { margin: 1.3rem 0 .5rem; font-size: 1.35rem; font-weight: 400; }
.knc-feature p { margin: 0; color: var(--knc-text-soft); font-size: .94rem; }

.knc-gallery-mosaic { display: grid; grid-template-columns: 1.2fr .8fr .8fr; grid-template-rows: 290px 290px; gap: 16px; margin-top: 3rem; }
.knc-gallery-mosaic figure { margin: 0; overflow: hidden; }
.knc-gallery-mosaic figure:first-child { grid-row: 1/3; }
.knc-gallery-mosaic figure:nth-child(2) { grid-column: 2/4; }
.knc-gallery-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.knc-gallery-mosaic figure:hover img { transform: scale(1.035); }

.knc-contact-panel { display: grid; grid-template-columns: 1fr 1fr; background: var(--knc-forest); color: #fff; }
.knc-contact-panel__image img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.knc-contact-panel__content { display: grid; align-content: center; padding: clamp(2.5rem,7vw,7rem); }
.knc-contact-panel h2 { color: #fff; font-size: clamp(2.2rem,4vw,4rem); font-weight: 300; }
.knc-contact-panel p { color: rgba(255,255,255,.75); }
.knc-contact-panel .knc-booking-notice { color: var(--knc-forest); }

.knc-card { height: 100%; overflow: hidden; background:#fff; box-shadow: var(--knc-shadow); }
.knc-footer a { color: #fff; }
.knc-footer__logo { width:150px; height:140px; overflow:hidden; }
.knc-footer__logo img { width:160px !important; max-width:none !important; height:160px !important; object-fit:contain; transform:scale(1.35); filter:brightness(0) invert(1); }
.knc-card__body { padding: clamp(1.25rem,3vw,2.25rem); }
.knc-card img { aspect-ratio:4/3; object-fit:cover; }
.knc-image-frame img { display:block; width:100%; min-height:420px; object-fit:cover; }
.knc-page-hero img { display:block; width:100%; max-height:680px; object-fit:cover; }
.knc-prose { max-width:820px; margin-top:clamp(2.5rem,5vw,5rem); }
.knc-prose > * + * { margin-top:1.35rem; }
.knc-gallery { margin-block:clamp(2rem,4vw,4rem); }
.knc-gallery img { min-height:320px; }
.knc-meta { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; font-size:.85rem; color:var(--knc-text-soft); }
.knc-rule { border-top:1px solid var(--knc-rule); }
.knc-booking-bar { position:sticky; bottom:0; z-index:40; box-shadow:0 -12px 36px rgba(29,43,34,.12); }
.wp-block-button.is-style-outline .wp-block-button__link { background:transparent; border:1px solid currentColor; }
.wp-block-button__link { transition:transform .2s ease,background-color .2s ease,color .2s ease; }
.wp-block-button__link:hover { transform:translateY(-2px); }

.knc-js .knc-reveal, .knc-js .knc-section > .wp-block-group, .knc-js .knc-story-grid > * { opacity:0; transform:translateY(26px); transition:opacity .7s ease,transform .7s ease; }
.knc-js .is-visible { opacity:1 !important; transform:none !important; }

@media (max-width: 1080px) {
  .knc-header__inner { grid-template-columns: 1fr 150px 1fr; width:min(100% - 32px,1320px); }
  .knc-nav .wp-block-navigation__container { gap: 15px; }
  .knc-nav .wp-block-navigation-item__content { font-size:.78rem; }
}

@media (max-width: 860px) {
  :root { --knc-header-h: 76px; }
  .knc-header__inner { grid-template-columns: 1fr 140px 1fr; width:calc(100% - 32px); }
  .knc-nav { display:none !important; }
  .knc-nav-mobile { display:flex !important; grid-column:1; grid-row:1; justify-self:start; }
  .knc-nav-mobile .wp-block-navigation__responsive-container-open { display:flex; color:var(--knc-forest); }
  .knc-nav-mobile .wp-block-navigation__responsive-container { background:var(--knc-paper) !important; color:var(--knc-forest) !important; }
  .knc-nav-mobile .wp-block-navigation__responsive-container-content { padding:6rem 1.5rem 2rem; }
  .knc-nav-mobile .wp-block-navigation__container { gap:1.15rem; font-size:1.25rem; }
  .knc-header__logo { width:132px; height:66px; }
  .knc-header__logo img { width:124px !important; height:124px !important; }
  .knc-header__book { display:block !important; grid-column:3; grid-row:1; justify-self:end; margin:0; font-size:.74rem; font-weight:600; }
  .knc-story-grid, .knc-story-grid--reverse { grid-template-columns:1fr; }
  .knc-story-grid--reverse > :first-child { order:2; }
  .knc-story-grid img { min-height:390px; }
  .knc-video-story__inner { grid-template-columns:.75fr 1fr; }
  .knc-room-card { grid-column:1/-1; min-height:480px; }
  .knc-gallery-mosaic { grid-template-columns:1fr 1fr; grid-template-rows:360px 220px; }
  .knc-gallery-mosaic figure:nth-child(2) { grid-column:2; }
  .knc-contact-panel { grid-template-columns:1fr; }
  .knc-contact-panel__image img { min-height:420px; }
}

@media (max-width: 600px) {
  :root { --knc-space-section: 4.25rem; }
  .knc-header__inner { width:calc(100% - 24px); grid-template-columns:1fr 118px 1fr; }
  .knc-header__logo { width:116px; }
  .knc-header__logo img { width:112px !important; height:112px !important; transform:scale(1.42); }
  .knc-header__book a { display:inline-block; max-width:86px; text-align:right; line-height:1.25; }
  .knc-home-hero { min-height:calc(100svh - var(--knc-header-h)); }
  .knc-home-hero::after { background:linear-gradient(0deg,rgba(12,23,16,.82),rgba(12,23,16,.08) 76%); }
  .knc-home-hero__media img { object-position:58% center; }
  .knc-home-hero__content { width:calc(100% - 40px); padding-block:3.5rem; }
  .knc-home-hero h1 { font-size:clamp(2.65rem,13vw,4rem); line-height:1.05; }
  .knc-home-hero__lead { font-size:1rem; line-height:1.7; }
  .knc-scroll-cue { display:none; }
  .knc-story-grid img { min-height:320px; }
  .knc-story-copy h2 { font-size:2.35rem; }
  .knc-video-story__inner { grid-template-columns:1fr; width:calc(100% - 40px); }
  .knc-video-story__frame { width:min(78vw,340px); margin:auto; }
  .knc-video-story__copy { text-align:center; }
  .knc-room-showcase { gap:16px; }
  .knc-room-card { min-height:420px; }
  .knc-feature-list { grid-template-columns:1fr; }
  .knc-feature { border-right:0; border-bottom:1px solid var(--knc-rule); }
  .knc-feature:last-child { border-bottom:0; }
  .knc-gallery-mosaic { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:300px 180px; gap:8px; }
  .knc-gallery-mosaic figure:first-child { grid-column:1/3; grid-row:1; }
  .knc-gallery-mosaic figure:nth-child(2) { grid-column:1; grid-row:2; }
  .knc-contact-panel__image img { min-height:320px; }
  .knc-contact-panel__content { padding:3rem 1.4rem; }
  .knc-image-frame img { min-height:300px; }
  .knc-page-hero img { min-height:300px; }
  .knc-gallery img { min-height:210px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition-duration:.01ms !important; }
  .knc-js .knc-reveal,.knc-js .knc-section > .wp-block-group,.knc-js .knc-story-grid > * { opacity:1; transform:none; }
}
