/* Kraft Designer — Visite de la villa (page « Les espaces ») — charte Le Petit Pinarello */
.kvt{--kvt-ink:#072130;--kvt-text:#4E5C64;--kvt-muted:#8F999E;--kvt-line:#E5E0D7;--kvt-hl:#81A81D;--kvt-cream:#F7F3EE;position:relative;font-family:Raleway,"Helvetica Neue",Arial,sans-serif;color:var(--kvt-ink)}
.kvt *{box-sizing:border-box}
.kvt button{margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;box-shadow:none;text-transform:none;letter-spacing:normal;line-height:1;min-height:0}

/* En-tête */
.kvt-hero{max-width:760px;margin:0 auto 54px;text-align:center}
.kvt-eyebrow{margin:0 0 18px!important;padding:0!important;font:600 10px/1.4 Raleway,sans-serif!important;letter-spacing:.32em!important;text-transform:uppercase;color:var(--kvt-hl)!important}
.kvt-title{margin:0 0 26px!important;padding:0 0 26px!important;font:200 clamp(38px,5vw,64px)/1.08 Raleway,sans-serif!important;letter-spacing:-.01em;color:var(--kvt-ink)!important;position:relative}
.kvt-title::after{content:"";position:absolute;left:50%;bottom:0;width:120px;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--kvt-line) 20%,var(--kvt-line) 80%,transparent)}
.kvt-intro p{margin:0 0 14px!important;padding:0!important;font:300 15px/1.9 Raleway,sans-serif!important;color:var(--kvt-text)!important}

/* Sommaire collant */
.kvt-nav__holder{margin:0 calc(50% - 50vw) 10px}
.kvt-nav{position:relative;z-index:50;padding:12px max(16px,calc(50vw - 600px));background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--kvt-line);border-bottom:1px solid var(--kvt-line);transition:box-shadow .3s ease}
.kvt-nav.is-stuck{position:fixed;left:0;right:0;top:0;box-shadow:0 10px 30px rgba(7,33,48,.08);border-top-color:transparent}
.kvt-nav__track{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;justify-content:safe center}
.kvt-nav__track::-webkit-scrollbar{display:none}
.kvt-nav__item{display:flex;align-items:center;gap:10px;flex:none;padding:5px 14px 5px 5px;border:1px solid transparent;color:var(--kvt-ink)!important;text-decoration:none!important;transition:border-color .25s ease,background-color .25s ease}
.kvt-nav__item img{width:38px;height:38px;object-fit:cover;display:block;filter:saturate(.85);transition:filter .25s ease}
.kvt-nav__item span{display:flex;flex-direction:column;gap:4px;font:500 10px/1.2 Raleway,sans-serif;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.kvt-nav__item em{font-style:normal;font-weight:600;font-size:9px;letter-spacing:.24em;color:var(--kvt-hl)}
.kvt-nav__item:hover{border-color:var(--kvt-line)}
.kvt-nav__item.is-active{border-color:var(--kvt-ink);background:var(--kvt-cream)}
.kvt-nav__item.is-active img{filter:none}
.kvt-nav__item:focus-visible{outline:2px solid var(--kvt-hl);outline-offset:2px}

/* Zones */
.kvt-zone{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(30px,5vw,80px);align-items:center;padding:clamp(56px,8vw,110px) 0;border-bottom:1px solid var(--kvt-line);scroll-margin-top:90px}
.kvt-zone:last-child{border-bottom:0}
.kvt-zone.is-reversed .kvt-zone__text{order:2}
.kvt-zone__num{display:flex;align-items:baseline;gap:14px;margin:0 0 18px!important;padding:0!important;font:200 34px/1 Raleway,sans-serif!important;color:#C9C2B4!important}
.kvt-zone__num span{font:600 10px/1.4 Raleway,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:var(--kvt-hl)}
.kvt-zone__title{margin:0 0 24px!important;padding:0 0 22px!important;border-bottom:1px solid var(--kvt-line);font:200 clamp(30px,3.4vw,46px)/1.12 Raleway,sans-serif!important;color:var(--kvt-ink)!important}
.kvt-zone__story p{margin:0 0 14px!important;padding:0!important;font:300 14px/1.95 Raleway,sans-serif!important;color:var(--kvt-text)!important}
.kvt-zone__points{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:24px 0 30px!important;padding:0!important;list-style:none!important}
.kvt-zone__points li{position:relative;margin:0!important;padding:0 0 0 18px!important;font:400 12px/1.55 Raleway,sans-serif;letter-spacing:.02em;color:var(--kvt-ink);list-style:none!important}
.kvt-zone__points li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:1px;background:var(--kvt-hl)}
.kvt-zone__more{display:inline-flex!important;align-items:center;gap:12px;padding:15px 24px!important;border:1px solid var(--kvt-ink)!important;color:var(--kvt-ink)!important;font:600 10px/1 Raleway,sans-serif!important;letter-spacing:.24em!important;text-transform:uppercase!important;transition:background-color .25s ease,color .25s ease}
.kvt-zone__more svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;transition:transform .25s ease}
.kvt-zone__more:hover{background:var(--kvt-ink)!important;color:#fff!important}
.kvt-zone__more:hover svg{transform:translateX(4px)}
.kvt-zone__more:focus-visible,.kvt-mosaic__item:focus-visible{outline:2px solid var(--kvt-hl);outline-offset:3px}

/* Mosaïque d'une zone : 1 grande + 4 */
.kvt-mosaic{display:grid;gap:8px;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));height:clamp(320px,38vw,560px)}
.kvt-mosaic--1{grid-template-columns:1fr;grid-template-rows:1fr}
.kvt-mosaic--2{grid-template-columns:2fr 1fr;grid-template-rows:1fr}
.kvt-mosaic--3{grid-template-columns:2fr 1fr}
.kvt-mosaic--4 .kvt-mosaic__item:nth-child(4){grid-column:2/4}
.kvt-mosaic__item{position:relative;display:block!important;overflow:hidden;background:#E9E4DA;cursor:zoom-in}
.kvt-mosaic__item.is-main{grid-row:1/3}
.kvt-mosaic--2 .kvt-mosaic__item.is-main,.kvt-mosaic--1 .kvt-mosaic__item.is-main{grid-row:auto}
.kvt-mosaic__item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .4s ease}
.kvt-mosaic__item:hover img{transform:scale(1.045);filter:brightness(.93)}
.kvt-mosaic__more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(7,33,48,.45);color:#fff;font:200 28px/1 Raleway,sans-serif;letter-spacing:.04em;transition:background-color .3s ease}
.kvt-mosaic__item:hover .kvt-mosaic__more{background:rgba(7,33,48,.6)}

@media(max-width:980px){
  .kvt-zone{grid-template-columns:1fr;gap:30px}
  .kvt-zone.is-reversed .kvt-zone__text{order:0}
  .kvt-zone__media{order:-1}
  .kvt-mosaic{height:clamp(280px,62vw,520px)}
}
@media(max-width:767px){
  .kvt-hero{margin-bottom:34px}
  .kvt-intro p{font-size:14px!important;line-height:1.8!important}
  .kvt-nav{padding:10px 16px}
  .kvt-nav__track{justify-content:flex-start}
  .kvt-nav__item img{width:32px;height:32px}
  .kvt-zone{padding:48px 0}
  .kvt-zone__points{grid-template-columns:1fr}
  .kvt-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:2fr 1fr 1fr;height:auto;aspect-ratio:3/4}
  .kvt-mosaic .kvt-mosaic__item.is-main{grid-column:1/3;grid-row:auto}
  .kvt-mosaic--4 .kvt-mosaic__item:nth-child(4){grid-column:auto}
  .kvt-mosaic--1,.kvt-mosaic--2{aspect-ratio:4/3;grid-template-rows:1fr}
  .kvt-zone__more{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){.kvt-mosaic__item img,.kvt-zone__more svg{transition:none}}
