/* ─── Variables (mirror brand kit) ─── */
:root {
  --cream:      #F9F5EE;
  --cream-dark: #F2EDE2;
  --cream-mid:  #EDE6D6;
  --gold:       #B8954A;
  --gold-light: #D4B06A;
  --gold-pale:  #E8D5A8;
  --gold-deep:  #8A6D2F;
  --ink:        #1C1912;
  --ink-mid:    #3D3828;
  --ink-soft:   #6B6250;
  --ink-ghost:  #A09880;
  --serif: 'Cormorant Garamond', serif;
  --sans:  'Jost', sans-serif;
}

/* ─── Reveal animations ─── */
.kl-reveal        { opacity:0; transform:translateY(28px);  transition: opacity .8s ease, transform .8s ease; }
.kl-reveal-l      { opacity:0; transform:translateX(-28px); transition: opacity .8s ease, transform .8s ease; }
.kl-reveal-r      { opacity:0; transform:translateX(28px);  transition: opacity .8s ease, transform .8s ease; }
.kl-reveal.in,
.kl-reveal-l.in,
.kl-reveal-r.in   { opacity:1; transform:none; }

/* ─── Common section typography ─── */
.kl-section-kicker {
  font-size:11px; letter-spacing:4px; text-transform:uppercase; color:var(--gold);
  margin-bottom:16px; display:flex; align-items:center; gap:14px;
}
.kl-section-kicker::before { content:''; width:28px; height:1px; background:var(--gold); }
.kl-section-kicker--light { color:var(--gold); }
.kl-section-kicker--light::before { background:var(--gold); }

.kl-section-h2 {
  font-family:var(--serif); font-size:clamp(36px,3.5vw,58px);
  font-weight:300; line-height:1.1; color:var(--ink); margin-bottom:20px;
}
.kl-section-h2 em { font-style:italic; color:var(--gold); }
.kl-section-h2--light { color:var(--cream); }

.kl-section-intro { font-size:14px; line-height:1.9; color:var(--ink-soft); max-width:520px; font-weight:300; }
.kl-section-intro--light { color:rgba(249,245,238,.55); }

/* ─── Buttons ─── */
.kl-btn-gold {
  display:inline-block; background:var(--gold); color:#fff;
  padding:16px 38px; font-size:11px; letter-spacing:2.5px;
  text-transform:uppercase; text-decoration:none; font-family:var(--sans);
  font-weight:500; transition:background .3s;
}
.kl-btn-gold:hover { background:var(--gold-deep); color:#fff; }

.kl-btn-outline-light {
  display:inline-block; background:transparent;
  border:1px solid rgba(184,149,74,.5); color:rgba(249,245,238,.8);
  padding:15px 30px; font-size:11px; letter-spacing:2px;
  text-transform:uppercase; text-decoration:none; font-family:var(--sans);
  font-weight:400; transition:all .3s;
}
.kl-btn-outline-light:hover { border-color:var(--gold); color:var(--gold); }

.kl-see-all {
  font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--gold);
  text-decoration:none; border-bottom:1px solid var(--gold-pale); padding-bottom:4px;
  transition:border-color .3s;
}
.kl-see-all:hover { border-color:var(--gold); }

/* ══════════════════════════════════
   HERO
══════════════════════════════════ */
.kl-hosp-hero {
  min-height:100vh;
  padding-top:76px; /* nav height */
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; align-items:stretch;
  background:var(--ink);
}
.kl-hosp-hero__bg {
  position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(160deg,rgba(42,37,24,0.3) 0%,rgba(28,25,18,0.4) 50%,rgba(20,18,16,0.5) 100%);
}
.kl-hosp-hero__grid {
  position:absolute; inset:0; opacity:.06; pointer-events:none;
  background-image:
    repeating-linear-gradient(0deg,#B8954A 0,#B8954A 1px,transparent 1px,transparent 80px),
    repeating-linear-gradient(90deg,#B8954A 0,#B8954A 1px,transparent 1px,transparent 80px);
}
.kl-hosp-hero__chandelier {
  position:absolute; top:76px; right:8%;
  width:420px; height:520px; opacity:.18; pointer-events:none;
}
.kl-hosp-hero__content {
  position:relative; z-index:2; flex:1;
  padding:0 64px 100px;
  display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end;
}
/* Breadcrumb */
.kl-hosp-hero__breadcrumb {
  display:flex; align-items:center; gap:8px; margin-bottom:40px;
  font-size:11px; letter-spacing:2px; text-transform:uppercase;
  color:rgba(184,149,74,.7);
}
.kl-hosp-hero__breadcrumb a { color:rgba(184,149,74,.5); text-decoration:none; }
.kl-hosp-hero__breadcrumb a:hover { color:var(--gold); }
.kl-hosp-hero__breadcrumb-sep { color:rgba(184,149,74,.3); }
/* Eyebrow */
.kl-hosp-hero__eyebrow {
  font-size:11px; letter-spacing:4px; text-transform:uppercase; color:var(--gold);
  margin-bottom:24px; display:flex; align-items:center; gap:14px;
}
.kl-hosp-hero__eyebrow-line { width:36px; height:1px; background:var(--gold); }
/* H1 */
.kl-hosp-hero__h1 {
  font-family:var(--serif); font-size:clamp(48px,5vw,80px);
  font-weight:300; line-height:1.04; color:var(--cream); margin-bottom:24px;
  text-shadow: 0 2px 20px rgba(0,0,0,.35), 0 4px 40px rgba(0,0,0,.25);
}
.kl-hosp-hero__h1 em { font-style:italic; color:var(--cream); }
.kl-hosp-hero__sub {
  font-size:14px; line-height:1.9; color:rgba(249,245,238,.6);
  max-width:420px; margin-bottom:48px; font-weight:300;
}
.kl-hosp-hero__ctas { display:flex; gap:20px; align-items:center; margin-bottom:64px; flex-wrap:wrap; }
/* Trust stats */
.kl-hosp-hero__trust {
  display:flex; border-top:1px solid rgba(184,149,74,.2); padding-top:36px;
}
.kl-hosp-hero__trust-item {
  padding-right:36px; margin-right:36px;
  border-right:1px solid rgba(184,149,74,.15);
}
.kl-hosp-hero__trust-item:last-child { border:none; padding:0; margin:0; }
.kl-hosp-hero__trust-num {
  font-family:var(--serif); font-size:38px; font-weight:300; color:var(--gold); line-height:1;
}
.kl-hosp-hero__trust-num sup { font-size:16px; }
.kl-hosp-hero__trust-label {
  font-size:10px; letter-spacing:2px; text-transform:uppercase;
  color:rgba(249,245,238,.45); margin-top:4px;
}
/* Featured project card */
.kl-hosp-hero__right {
  display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-end;
}
.kl-hosp-hero__project-card {
  background:rgba(249,245,238,.05); backdrop-filter:blur(12px);
  border:1px solid rgba(184,149,74,.2); padding:36px;
  max-width:360px; width:100%;
}
.kl-hosp-hpc__kicker { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.kl-hosp-hpc__title  { font-family:var(--serif); font-size:28px; font-weight:300; color:var(--cream); line-height:1.2; margin-bottom:8px; }
.kl-hosp-hpc__hotel  { font-size:12px; letter-spacing:1px; color:rgba(249,245,238,.4); margin-bottom:12px; }
.kl-hosp-hpc__desc   { font-size:13px; line-height:1.7; color:rgba(249,245,238,.55); margin-bottom:24px; }
.kl-hosp-hpc__meta   { display:flex; gap:24px; flex-wrap:wrap; }
.kl-hosp-hpc__meta-label { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:rgba(184,149,74,.6); margin-bottom:4px; }
.kl-hosp-hpc__meta-val   { font-size:13px; color:rgba(249,245,238,.7); font-weight:300; }
/* Supplier strip */
.kl-hosp-supplier-strip {
  position:relative; z-index:2;
  background:rgba(249,245,238,.04);
  border-top:1px solid rgba(184,149,74,.15);
  border-bottom:1px solid rgba(184,149,74,.15);
  padding:18px 64px;
  display:flex; align-items:center; gap:32px;
}
.kl-hosp-ss__label {
  font-size:10px; letter-spacing:3px; text-transform:uppercase;
  color:rgba(184,149,74,.6); white-space:nowrap; flex-shrink:0;
}
.kl-hosp-ss__sep { width:1px; height:20px; background:rgba(184,149,74,.2); }
.kl-hosp-ss__brands { display:flex; gap:36px; flex-wrap:wrap; align-items:center; }
.kl-hosp-ss__brand  {
  font-size:11px; letter-spacing:2.5px; text-transform:uppercase;
  color:rgba(249,245,238,.4); font-weight:400;
}

/* ══════════════════════════════════
   SCENARIOS
══════════════════════════════════ */
.kl-hosp-scenarios { padding:120px 64px; background:var(--cream); }
.kl-hosp-scenarios__head { margin-bottom:72px; max-width:680px; }
.kl-hosp-scenarios__grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.kl-hosp-scenario {
  background:var(--cream-dark); padding:56px 48px;
  position:relative; overflow:hidden; cursor:pointer; transition:background .4s;
}
.kl-hosp-scenario:hover { background:var(--cream-mid); }
.kl-hosp-scenario::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transform:scaleX(0); transform-origin:left; transition:transform .5s;
}
.kl-hosp-scenario:hover::before { transform:scaleX(1); }
.kl-hosp-sc__header { display:flex; align-items:center; gap:16px; margin-bottom:16px; }
.kl-hosp-sc__num   { font-family:var(--serif); font-size:32px; font-weight:300; color:rgba(184,149,74,.2); line-height:1; }
.kl-hosp-sc__icon  { width:36px; height:36px; border:1px solid rgba(184,149,74,.25); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.kl-hosp-sc__subtitle { font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); }
.kl-hosp-sc__title { font-family:var(--serif); font-size:26px; font-weight:400; color:var(--ink); margin-bottom:12px; line-height:1.2; }
.kl-hosp-sc__desc  { font-size:13.5px; line-height:1.8; color:var(--ink-soft); margin-bottom:28px; font-weight:300; }
.kl-hosp-sc__solutions { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.kl-hosp-sc__solutions li {
  display:flex; align-items:flex-start; gap:10px;
  font-size:12.5px; color:var(--ink-soft);
}
.kl-hosp-sc__solutions li::before { content:'—'; color:var(--gold); flex-shrink:0; }
.kl-hosp-sc__corner {
  position:absolute; bottom:32px; right:32px;
  font-size:9px; letter-spacing:2px; text-transform:uppercase;
  color:var(--gold-pale); opacity:0; transition:opacity .3s;
}
.kl-hosp-scenario:hover .kl-hosp-sc__corner { opacity:1; }

/* ══════════════════════════════════
   CAPABILITIES
══════════════════════════════════ */
.kl-hosp-capabilities {
  padding:120px 64px; background:var(--ink); position:relative; overflow:hidden;
}
.kl-hosp-capabilities__bg {
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 80% 50%,rgba(184,149,74,.08) 0%,transparent 60%);
}
.kl-hosp-cap__head {
  position:relative; z-index:1;
  display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:80px;
}
.kl-hosp-cap__head-right { max-width:340px; }
.kl-hosp-cap__head-right p { font-size:14px; line-height:1.8; color:rgba(249,245,238,.5); font-weight:300; }
.kl-hosp-cap__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; position:relative; z-index:1; }
.kl-hosp-cap__card {
  padding:56px 40px; border:1px solid rgba(184,149,74,.1);
  position:relative; overflow:hidden; background:rgba(249,245,238,.02);
  transition:background .4s,border-color .4s;
}
.kl-hosp-cap__card:hover { background:rgba(184,149,74,.06); border-color:rgba(184,149,74,.25); }
.kl-hosp-cap__img-wrap { width:100%; aspect-ratio:16/9; overflow:hidden; margin-bottom:28px; }
.kl-hosp-cap__img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.kl-hosp-cap__card:hover .kl-hosp-cap__img { transform:scale(1.04); }
.kl-hosp-cap__num   { font-family:var(--serif); font-size:13px; color:rgba(184,149,74,.4); letter-spacing:2px; margin-bottom:32px; }
.kl-hosp-cap__icon  { width:52px; height:52px; border:1px solid rgba(184,149,74,.2); display:flex; align-items:center; justify-content:center; margin-bottom:28px; }
.kl-hosp-cap__title { font-family:var(--serif); font-size:24px; font-weight:400; color:var(--cream); margin-bottom:12px; line-height:1.2; }
.kl-hosp-cap__desc  { font-size:13px; line-height:1.8; color:rgba(249,245,238,.5); margin-bottom:24px; font-weight:300; }
.kl-hosp-cap__tags  { display:flex; flex-wrap:wrap; gap:6px; }
.kl-hosp-cap__tag   {
  font-size:10px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--gold); border:1px solid rgba(184,149,74,.25); padding:4px 10px;
}
.kl-hosp-cap__line {
  position:absolute; bottom:0; left:40px; right:40px; height:1px;
  background:linear-gradient(90deg,transparent,rgba(184,149,74,.3),transparent);
  transform:scaleX(0); transform-origin:center; transition:transform .5s;
}
.kl-hosp-cap__card:hover .kl-hosp-cap__line { transform:scaleX(1); }

/* ══════════════════════════════════
   CASES
══════════════════════════════════ */
.kl-hosp-cases { padding:120px 64px; background:var(--cream); }
.kl-hosp-cases__head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:64px; }
.kl-hosp-cases__grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:24px; }
.kl-hosp-cases__grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.kl-hosp-cases__empty  { padding:48px; text-align:center; color:var(--ink-ghost); font-size:14px; border:1px dashed rgba(184,149,74,.3); }

.kl-hosp-case { position:relative; overflow:hidden; }
.kl-hosp-case__visual-link { display:block; text-decoration:none; }
.kl-hosp-case__visual {
  aspect-ratio:3/4; position:relative; overflow:hidden; background:var(--ink-mid);
}
.kl-hosp-case__visual--wide { aspect-ratio:16/7; }
.kl-hosp-case__visual-inner {
  position:absolute; inset:0; transition:transform .7s ease;
  background-size:cover; background-position:center;
}
.kl-hosp-case:hover .kl-hosp-case__visual-inner { transform:scale(1.04); }
.kl-hosp-case__overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(28,25,18,.85) 0%,rgba(28,25,18,.3) 40%,transparent 70%);
}
.kl-hosp-case__info {
  position:absolute; bottom:0; left:0; right:0; padding:32px 28px;
  z-index:2;
}
.kl-hosp-case__location { font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:rgba(184,149,74,.7); margin-bottom:6px; }
.kl-hosp-case__name     { font-family:var(--serif); font-size:22px; font-weight:300; color:var(--cream); line-height:1.2; }
.kl-hosp-case__type     { font-size:11px; color:rgba(249,245,238,.5); margin-top:4px; }
.kl-hosp-case__badge {
  position:absolute; top:20px; right:20px; z-index:3;
  font-size:9px; letter-spacing:2px; text-transform:uppercase;
  color:var(--gold); border:1px solid rgba(184,149,74,.4);
  background:rgba(28,25,18,.5); backdrop-filter:blur(8px); padding:5px 12px;
}

/* ══════════════════════════════════
   PROCESS
══════════════════════════════════ */
.kl-hosp-process {
  padding:120px 64px; background:var(--ink); position:relative; overflow:hidden;
}
.kl-hosp-process__head { max-width:640px; margin-bottom:72px; }
.kl-hosp-process__steps {
  display:grid; grid-template-columns:repeat(5,1fr); gap:1px; position:relative;
}
.kl-hosp-process__steps::before {
  content:''; position:absolute; top:36px; left:0; right:0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(184,149,74,.2),transparent);
  pointer-events:none;
}
.kl-hosp-process__step {
  padding:0 32px 0 0; position:relative;
}
.kl-hosp-process__step-img-wrap { width:100%; aspect-ratio:3/2; overflow:hidden; margin-bottom:24px; }
.kl-hosp-process__step-img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.kl-hosp-process__step:hover .kl-hosp-process__step-img { transform:scale(1.04); }
.kl-hosp-process__step-num {
  font-family:var(--serif); font-size:48px; font-weight:300;
  color:rgba(184,149,74,.15); line-height:1; margin-bottom:28px;
}
.kl-hosp-process__step-title {
  font-family:var(--serif); font-size:20px; font-weight:400;
  color:var(--cream); margin-bottom:12px; line-height:1.2;
}
.kl-hosp-process__step-desc {
  font-size:13px; line-height:1.8; color:rgba(249,245,238,.45); font-weight:300;
}

/* ══════════════════════════════════
   ENQUIRY — now uses shared .kl-cta-section in main.css
══════════════════════════════════ */

/* ══════════════════════════════════
   RESPONSIVE
══════════════════════════════════ */
@media (max-width:1200px) {
  .kl-hosp-hero__content { grid-template-columns:1fr; gap:48px; }
  .kl-hosp-hero__right   { align-items:flex-start; }
  .kl-hosp-hero__chandelier { display:none; }
  .kl-hosp-cap__head     { flex-direction:column; gap:24px; }
  .kl-hosp-cap__grid     { grid-template-columns:repeat(2,1fr); }
  .kl-hosp-process__steps { grid-template-columns:repeat(3,1fr); gap:40px; }
  .kl-hosp-process__steps::before { display:none; }
}
@media (max-width:1024px) {
  .kl-hosp-hero__content { padding:0 36px 80px; }
  .kl-hosp-scenarios,
  .kl-hosp-capabilities,
  .kl-hosp-cases,
  .kl-hosp-process { padding:80px 36px; }
  .kl-hosp-scenarios__grid { grid-template-columns:1fr; }
  .kl-hosp-supplier-strip  { padding:18px 36px; }
}
@media (max-width:768px) {
  .kl-hosp-hero__content  { padding:0 24px 64px; }
  .kl-hosp-hero__ctas     { flex-direction:column; align-items:flex-start; }
  .kl-hosp-hero__trust    { flex-wrap:wrap; gap:24px; }
  .kl-hosp-hero__trust-item { border:none; padding:0; margin:0; }
  .kl-hosp-cap__grid      { grid-template-columns:1fr; }
  .kl-hosp-cases__grid-3  { grid-template-columns:1fr; }
  .kl-hosp-cases__grid-2  { grid-template-columns:1fr; }
  .kl-hosp-process__steps { grid-template-columns:1fr 1fr; }
  .kl-hosp-scenarios,
  .kl-hosp-capabilities,
  .kl-hosp-cases,
  .kl-hosp-process { padding:64px 24px; }
  .kl-hosp-supplier-strip { flex-wrap:wrap; gap:16px; padding:18px 24px; }
}
@media (max-width:480px) {
  .kl-hosp-process__steps { grid-template-columns:1fr; }
}
