:root { --kavi-border: rgba(21,35,31,.14); }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; font-size: 1.15rem; }
/* Header identity v0.6 */
.kavi-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(252,251,248,.92);
  border-bottom: 1px solid rgba(21,35,31,.10);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
/* Home: translucent header floats over the hero, inspired by the editorial travel reference without copying it. */
.home .kavi-header,
.front-page .kavi-header {
  position: absolute;
  inset: 0 0 auto 0;
  width: 100%;
  background: rgba(244,232,213,.72);
  border-bottom-color: rgba(21,35,31,.14);
  box-shadow: 0 8px 28px rgba(18,53,43,.06);
  backdrop-filter: blur(15px) saturate(115%);
  -webkit-backdrop-filter: blur(15px) saturate(115%);
}
.kavi-header__inner {
  min-height: 90px;
  padding-inline: 2rem;
  gap: 2rem;
}
.kavi-brand {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: .8rem;
  flex-shrink: 0;
  text-decoration: none;
  line-height: 1;
}
.kavi-brand__name {
  color: #15231f;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.55rem,2.5vw,2.2rem);
  font-weight: 700;
  letter-spacing: -.035em;
}
.kavi-brand__mark {
  width: 60px;
  height: 60px;
  object-fit: contain;
  flex: 0 0 auto;
}
.kavi-header__actions {
  gap: clamp(1rem,2vw,2rem);
}
.kavi-nav .wp-block-navigation-item__content {
  padding-block: .35rem;
  color: #28342f;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: .015em;
  text-decoration: none;
}
.kavi-nav .wp-block-navigation-item__content:hover {
  color: #c46a35;
}
.kavi-nav .wp-block-navigation__container {
  gap: clamp(.8rem,1.65vw,1.55rem);
}
.kavi-header__cta .wp-block-button__link {
  min-height: 42px;
  padding: .72rem 1.18rem;
  background: #1f3b31;
  color: #fff;
  border: 1px solid #1f3b31;
  font-size: 1.06rem;
  letter-spacing: .065em;
  white-space: nowrap;
  transition: transform .18s ease, background-color .18s ease;
}
.kavi-header__cta .wp-block-button__link:hover {
  background: #15231f;
  transform: translateY(-1px);
}
@media (max-width: 960px) {
  .kavi-header__inner { min-height: 74px; padding-inline: 1.25rem; }
  .kavi-header__cta { display: none; }
}
@media (max-width: 640px) {
  .kavi-header__inner { min-height: 66px; padding-inline: 1rem; }
  .kavi-brand__mark { width: 42px; height: 42px; }
  .kavi-brand__name { font-size: 1.44rem; }
  .kavi-nav .wp-block-navigation__responsive-container-open { padding: .3rem; }
  .kavi-nav .wp-block-navigation__responsive-container.is-menu-open {
    padding: 1.25rem;
    background: #fcfbf8;
  }
  .kavi-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    padding-top: 3.5rem;
  }
  .kavi-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.9rem;
    font-weight: 400;
  }
}
/* Hero v0.3 */
.kavi-hero {
  position: relative;
  isolation: isolate;
  min-height: clamp(560px, 72vh, 780px);
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background-image: url('https://kavislife.com/wp-content/uploads/2026/09/kavislife-koko-motorhome-hero.webp');
  background-size: cover;
  background-position: center center;
}
.kavi-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(8,18,16,.84) 0%, rgba(8,18,16,.62) 32%, rgba(8,18,16,.26) 58%, rgba(8,18,16,0) 88%);
}
.kavi-hero__content {
  width: 100%;
  padding: clamp(5rem,9vw,8rem) 2rem;
}
.kavi-hero__copy {
  max-width: 610px;
  margin-inline: 0 auto;
}
.kavi-hero .kavi-eyebrow {
  margin: 0 0 1.25rem;
  color: rgba(255,255,255,.86);
}
.kavi-hero h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(3.7rem,7vw,7rem);
  letter-spacing: -.055em;
  line-height: .88;
}
.kavi-hero h2 {
  max-width: 540px;
  margin: 1rem 0 0;
  color: #fff;
  font-size: clamp(1.8rem,3.2vw,3.25rem);
  letter-spacing: -.035em;
  line-height: 1.02;
}
.kavi-hero__intro {
  max-width: 510px;
  margin: 1.35rem 0 0;
  color: #fff;
  text-shadow: 0 1px 12px rgba(0,0,0,.24);
  font-size: clamp(1.16rem,1.6vw,1.34rem);
  line-height: 1.6;
}
.kavi-hero__buttons { margin-top: 1.8rem; }
.kavi-hero__buttons .wp-block-button__link {
  padding: .85rem 1.35rem;
  background: #fff;
  border: 1px solid #fff;
  color: #15231f;
  box-shadow: 0 8px 30px rgba(0,0,0,.12);
  transition: transform .18s ease, background-color .18s ease, color .18s ease;
}
.kavi-hero__buttons .wp-block-button__link:hover {
  background: #f2eee6;
  color: #15231f;
  transform: translateY(-1px);
}
.kavi-section { padding: clamp(4rem,8vw,7.5rem) 2rem; }
.kavi-section--soft { background:var(--kavi-paper-deep); }
.kavi-photo-grid { gap: .75rem; }
.kavi-photo { min-height: 210px; border-radius: 16px; background: linear-gradient(145deg,#a9b9b2,#314b43); }
.kavi-photo--large { min-height: 430px; grid-row: span 2; }
.kavi-story-card .wp-block-post-featured-image img, .wp-block-post-template .wp-block-post-featured-image img { border-radius: 14px; }
.kavi-story-card { height: 100%; }
.kavi-youtube { background: #172a24; color: #fff; }
.kavi-youtube h2, .kavi-youtube h3, .kavi-youtube a { color: #fff; }
.kavi-video-placeholder { min-height: 360px; display:flex; align-items:center; justify-content:center; border-radius:18px; background: radial-gradient(circle at 60% 30%,#b7744d,#203c34 70%); }
.kavi-footer { border-top: 1px solid var(--kavi-border); padding: 3rem 2rem 2rem; background:#fff; }
.kavi-footer__inner { gap: 1.25rem; }
.kavi-article { padding: clamp(4rem,8vw,7rem) 2rem; }
.kavi-article > .wp-block-post-content { font-size: 1.08rem; }
@media (max-width: 960px) {
  .kavi-section { padding-inline: 1.25rem; }
  .kavi-koko { gap: 2.5rem; }
}
@media (max-width: 640px) {
  .kavi-hero {
    min-height: 680px;
    align-items: flex-end;
    background-position: 62% center;
  }
  .kavi-hero::before {
    background: linear-gradient(180deg, rgba(8,18,16,.05) 18%, rgba(8,18,16,.22) 42%, rgba(8,18,16,.88) 78%, rgba(8,18,16,.94) 100%);
  }
  .kavi-hero__content { padding: 12rem 1.15rem 3rem; }
  .kavi-hero__copy { max-width: 34rem; }
  .kavi-hero h1 { font-size: clamp(3.2rem,17vw,5.2rem); }
  .kavi-hero h2 { font-size: clamp(1.7rem,8vw,2.45rem); }
  .kavi-hero__intro { font-size: 1.12rem; }
  .kavi-section { padding: 4rem 1.15rem; }
  .kavi-photo--large { min-height: 320px; }
  .kavi-video-placeholder { min-height: 230px; }
  .kavi-footer { padding-inline:1.15rem; }
}


/* Hand-drawn accent typography: retained as an optional accent utility, not used for primary section titles. */
.kavi-handwritten {
  font-family: "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
  line-height: 1.04 !important;
}
.kavi-section-heading .kavi-handwritten {
  font-size: clamp(2.8rem, 5.2vw, 4.8rem) !important;
}
.kavi-koko--brand .kavi-handwritten {
  font-size: clamp(4.6rem, 8vw, 7.4rem) !important;
}

/* Kökö section v0.4 */
.kavi-koko-section {
  background:var(--kavi-paper);
}
.kavi-koko--editorial {
  gap: clamp(2.5rem, 6vw, 6.5rem);
}
.kavi-koko__figure {
  margin: 0;
  overflow: hidden;
  border-radius: 18px;
  background: #e9e5dd;
}
.kavi-koko__figure picture,
.kavi-koko__figure img {
  display: block;
  width: 100%;
}
.kavi-koko__figure img {
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.kavi-koko__copy {
  max-width: 31rem;
}
.kavi-koko__copy .kavi-eyebrow {
  margin-bottom: 1rem;
  color: #6e746f;
}
.kavi-koko__copy h2 {
  margin-top: 0;
  margin-bottom: 1.5rem;
  color: #15231f;
  letter-spacing: -.035em;
}
.kavi-koko__copy p {
  color: #38423e;
  line-height: 1.72;
}
.kavi-koko__closing {
  margin-top: 1.65rem;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(21,35,31,.16);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.12rem, 1.6vw, 1.34rem);
  line-height: 1.55 !important;
  color: #1f3b31 !important;
}
.kavi-koko__link {
  margin-top: 1.5rem;
}
.kavi-koko__link a {
  display: inline-block;
  color: #15231f;
  font-size: .84rem;
  letter-spacing: .055em;
  text-transform: uppercase;
  text-decoration-thickness: 1px;
  text-underline-offset: .32em;
}
@media (max-width: 960px) {
  .kavi-koko--editorial { gap: 2.5rem; }
  .kavi-koko__copy { max-width: none; }
}
@media (max-width: 781px) {
  .kavi-koko--editorial { gap: 2.25rem; }
  .kavi-koko__figure { border-radius: 14px; }
  .kavi-koko__copy h2 { margin-bottom: 1.25rem; }
}

/* Viajes section v0.5 */
.kavi-travel-section { background:var(--kavi-paper); }
.kavi-travel__intro { max-width: 760px; margin: 0 auto clamp(2.5rem,5vw,4.5rem); }
.kavi-travel__intro .kavi-eyebrow { color:#6e746f; margin-bottom:1rem; }
.kavi-travel__intro h2 { margin:.1rem 0 1.2rem; color:#15231f; letter-spacing:-.035em; }
.kavi-travel__intro p:last-child { max-width:690px; color:#46504c; line-height:1.72; }
.kavi-travel-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr); grid-template-rows:repeat(2,minmax(250px,1fr)); gap:1rem; min-height:720px; }
.kavi-travel-card { min-width:0; }
.kavi-travel-card--feature { grid-row:1 / span 2; }
.kavi-travel-card__media { position:relative; display:block; width:100%; height:100%; min-height:100%; overflow:hidden; border-radius:18px; color:#fff; background:#203c34; }
.kavi-travel-card__media picture,.kavi-travel-card__media img { display:block; width:100%; height:100%; }
.kavi-travel-card__media img { position:absolute; inset:0; object-fit:cover; transition:transform .55s ease; }
.kavi-travel-card--feature img { object-position:center center; }
.kavi-travel-card--portrait img { object-position:center 48%; }
.kavi-travel-card--family img { object-position:center 42%; }
.kavi-travel-card__shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,18,16,.02) 20%,rgba(8,18,16,.18) 52%,rgba(8,18,16,.82) 100%); }
.kavi-travel-card__content { position:absolute; z-index:1; left:0; right:0; bottom:0; display:flex; flex-direction:column; align-items:flex-start; padding:clamp(1.35rem,3vw,2.5rem); }
.kavi-travel-card__meta { margin-bottom:.55rem; font-size:.74rem; letter-spacing:.12em; line-height:1.35; text-transform:uppercase; opacity:.88; }
.kavi-travel-card__content strong { max-width:620px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.55rem,2.5vw,2.65rem); font-weight:400; line-height:1.05; letter-spacing:-.025em; }
.kavi-travel-card:not(.kavi-travel-card--feature) .kavi-travel-card__content strong { font-size:clamp(1.3rem,1.75vw,1.85rem); }
.kavi-travel-card__actions { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem 1rem; margin-top:.95rem; }
.kavi-travel-card__actions a { color:#fff; font-size:.76rem; letter-spacing:.065em; line-height:1.3; text-transform:uppercase; text-decoration:none; opacity:.96; border-bottom:1px solid rgba(255,255,255,.62); padding-bottom:.18rem; }
.kavi-travel-card__actions a:hover { opacity:1; border-bottom-color:#fff; }
.kavi-travel-card__video { display:inline-flex; align-items:center; gap:.38rem; }
.kavi-travel-card__video span { font-size:.74rem; }
.kavi-travel-card__media:hover img { transform:scale(1.025); }
.kavi-travel__all { margin:2.25rem 0 0; }
.kavi-travel__all a { color:#15231f; font-size:.76rem; letter-spacing:.07em; text-transform:uppercase; text-underline-offset:.35em; }
@media (max-width:900px) {
 .kavi-travel-grid { grid-template-columns:1.25fr .75fr; min-height:620px; }
}
@media (max-width:700px) {
 .kavi-travel__intro { margin-bottom:2.25rem; }
 .kavi-travel-grid { display:flex; flex-direction:column; min-height:0; gap:.9rem; }
 .kavi-travel-card__media { min-height:360px; border-radius:14px; }
 .kavi-travel-card--feature .kavi-travel-card__media { min-height:430px; }
 .kavi-travel-card--portrait img { object-position:center 43%; }
 .kavi-travel-card__content { padding:1.35rem; }
 .kavi-travel-card__content strong,.kavi-travel-card:not(.kavi-travel-card--feature) .kavi-travel-card__content strong { font-size:clamp(1.55rem,7vw,2.15rem); }
}


/* Viajes + Videos v0.5.2 */
@media (max-width:700px) {
  .kavi-travel-card__actions { gap:.65rem .9rem; }
  .kavi-travel-card__actions a { font-size:.74rem; }
}

/* 404 page v0.8 */
.kavi-404 {
  min-height: clamp(520px, 68vh, 760px);
  display: flex;
  align-items: center;
  padding: clamp(5rem, 10vw, 9rem) 2rem;
  background:var(--kavi-paper-deep);
}
.kavi-404__inner {
  width: 100%;
  max-width: 920px;
}
.kavi-404 .kavi-eyebrow {
  margin: 0 0 1rem;
  color: #6e746f;
}
.kavi-404 h1 {
  max-width: 850px;
  margin: 0;
  color: #15231f;
  font-size: clamp(3rem, 7vw, 6.4rem);
  line-height: .94;
  letter-spacing: -.05em;
}
.kavi-404__copy {
  max-width: 650px;
  margin: 1.5rem 0 0;
  color: #46504c;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.7;
}
.kavi-404__buttons {
  margin-top: 2rem;
}
.kavi-404__buttons .wp-block-button__link {
  padding: .85rem 1.35rem;
  background: #1f3b31;
  border: 1px solid #1f3b31;
  color: #fff;
  transition: transform .18s ease, background-color .18s ease;
}
.kavi-404__buttons .wp-block-button__link:hover {
  background: #15231f;
  transform: translateY(-1px);
}
@media (max-width: 640px) {
  .kavi-404 {
    min-height: 610px;
    padding: 4rem 1.15rem;
  }
}

/* ============================================================
   KaVi's Life v0.9.0 — Kökö Brand Alignment
   Palette inspired by Kökö's cream, mint and charcoal bodywork.
   ============================================================ */
:root {
  --kavi-cream:#f4e8d5;
  --kavi-paper:#fbf7ee;
  --kavi-mint:#c7ddc8;
  --kavi-mint-soft:#e3ecdd;
  --kavi-forest:#184838;
  --kavi-forest-deep:#12352b;
  --kavi-ink:#1a2420;
  --kavi-muted:#6e746f;
  --kavi-sand:#d7b989;
  --kavi-caramel:#b8754e;
  --kavi-paper-deep:#f5eddf;
  --kavi-card:#fffaf3;
  --kavi-border:rgba(26,36,32,.14);
}
body { background:var(--kavi-paper); color:var(--kavi-ink); }
.kavi-header { background:rgba(251,247,238,.95); border-bottom-color:rgba(26,36,32,.12); }
.kavi-brand__name { color:var(--kavi-ink); }
.kavi-nav .wp-block-navigation-item__content { color:#26332e; }
.kavi-nav .wp-block-navigation-item__content:hover { color:var(--kavi-forest); }
.kavi-header__cta .wp-block-button__link { background:var(--kavi-forest); border-color:var(--kavi-forest); }
.kavi-header__cta .wp-block-button__link:hover { background:var(--kavi-forest-deep); }

.kavi-hero--koko-brand { min-height:clamp(590px,74vh,790px); }
.kavi-hero--koko-brand::before { background:linear-gradient(90deg,rgba(12,25,21,.88) 0%,rgba(12,25,21,.67) 33%,rgba(12,25,21,.24) 62%,rgba(12,25,21,.02) 88%); }
.kavi-hero--koko-brand .kavi-eyebrow { letter-spacing:.18em; font-size:.76rem; }
.kavi-hero--koko-brand h1 { font-size:clamp(4.1rem,7.5vw,7.65rem); }
.kavi-hero--koko-brand h2 { max-width:620px; font-size:clamp(1.95rem,3vw,3.15rem); }
.kavi-hero__buttons .wp-block-button__link { background:var(--kavi-cream); border-color:var(--kavi-cream); color:var(--kavi-ink); box-shadow:none; }
.kavi-hero__buttons .wp-block-button__link:hover { background:#fff8ed; color:var(--kavi-forest-deep); }

.kavi-route-strip { margin:0; padding:.95rem 1.25rem; background:var(--kavi-cream); border-bottom:1px solid var(--kavi-border); }
.kavi-route-strip p { margin:0; color:var(--kavi-forest); font-size:.71rem; font-weight:700; letter-spacing:.22em; }
.kavi-route-strip span { padding-inline:.75rem; color:var(--kavi-sand); }

.kavi-travel-section--cards { background:var(--kavi-paper); }
.kavi-section-heading { gap:2rem; margin-bottom:clamp(2rem,4vw,3.2rem); }
.kavi-section-heading > .wp-block-group { max-width:760px; margin:0; }
.kavi-section-heading .kavi-eyebrow { margin:0 0 .85rem; color:var(--kavi-forest); font-size:.74rem; letter-spacing:.16em; }
.kavi-section-heading h2 { margin:.1rem 0 .8rem; color:var(--kavi-ink); letter-spacing:-.04em; }
.kavi-section-heading p { color:#55605b; line-height:1.65; }
.kavi-section-heading__link { flex:0 0 auto; margin-bottom:.7rem !important; }
.kavi-section-heading__link a { color:var(--kavi-forest); font-size:.8rem; letter-spacing:.075em; text-transform:uppercase; text-underline-offset:.32em; }

.kavi-story-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,2vw,1.5rem); }
.kavi-story-tile { min-width:0; overflow:hidden; background:var(--kavi-card); border:1px solid rgba(26,36,32,.12); border-radius:8px; box-shadow:0 12px 34px rgba(35,43,38,.045); }
.kavi-story-tile__image { position:relative; display:block; overflow:hidden; aspect-ratio:4/3; background:#dfe5dd; }
.kavi-story-tile__image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s ease; }
.kavi-story-tile:nth-child(2) .kavi-story-tile__image img { object-position:center 43%; }
.kavi-story-tile:hover .kavi-story-tile__image img { transform:scale(1.025); }
.kavi-story-tile__badge { position:absolute; left:.85rem; bottom:.8rem; padding:.35rem .62rem; border-radius:999px; background:rgba(244,232,213,.94); color:var(--kavi-ink); font-size:.72rem; font-weight:800; letter-spacing:.11em; }
.kavi-story-tile__body { padding:1.1rem 1.15rem 1.25rem; }
.kavi-story-tile__meta { display:block; margin-bottom:.45rem; color:#717872; font-size:.68rem; letter-spacing:.115em; line-height:1.4; text-transform:uppercase; }
.kavi-story-tile h3 { margin:0 0 .55rem; color:var(--kavi-ink); font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.35rem,2vw,1.75rem); font-weight:400; line-height:1.08; letter-spacing:-.025em; }
.kavi-story-tile p { margin:0; color:#59625e; font-size:1rem; line-height:1.6; }
.kavi-story-tile__actions { display:flex; flex-wrap:wrap; gap:.65rem 1rem; margin-top:1rem; }
.kavi-story-tile__actions a { color:var(--kavi-forest); font-size:.72rem; font-weight:700; letter-spacing:.055em; text-transform:uppercase; text-decoration:none; border-bottom:1px solid rgba(24,72,56,.3); }

.kavi-koko-section--brand { position:relative; overflow:hidden; background:linear-gradient(108deg,var(--kavi-mint-soft) 0%,var(--kavi-mint-soft) 38%,var(--kavi-mint) 100%); }
.kavi-koko-section--brand::after { content:""; position:absolute; right:-7vw; bottom:-10rem; width:25rem; height:25rem; border:1px solid rgba(24,72,56,.12); border-radius:50%; box-shadow:0 0 0 42px rgba(24,72,56,.035),0 0 0 84px rgba(24,72,56,.025); pointer-events:none; }
.kavi-koko--brand { position:relative; z-index:1; gap:clamp(2.5rem,6vw,6rem); }
.kavi-koko--brand .kavi-koko__copy { max-width:34rem; }
.kavi-koko--brand .kavi-koko__copy .kavi-eyebrow { color:var(--kavi-forest); letter-spacing:.16em; }
.kavi-koko--brand .kavi-koko__copy h2 { margin:.1rem 0 .75rem; font-size:clamp(4rem,7vw,6.7rem); line-height:.9; color:var(--kavi-ink); }
.kavi-koko__lead { margin:0 0 1.15rem !important; color:var(--kavi-forest-deep) !important; font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.35rem,2.2vw,2rem); line-height:1.25 !important; }
.kavi-koko--brand .kavi-koko__copy p { color:#394942; }
.kavi-koko__figure--brand { border-radius:8px; box-shadow:0 18px 50px rgba(21,48,39,.12); transform:rotate(-.7deg); }
.kavi-koko__chapters { display:grid; grid-template-columns:1fr; gap:.5rem; margin-top:1.75rem; padding-top:1.2rem; border-top:1px solid rgba(24,72,56,.22); }
.kavi-koko__chapters span { position:relative; padding-left:1.2rem; color:var(--kavi-forest); font-size:.74rem; font-weight:800; letter-spacing:.105em; text-transform:uppercase; }
.kavi-koko__chapters span::before { content:"—"; position:absolute; left:0; color:#5e806f; }

.kavi-video-section { background:linear-gradient(180deg,var(--kavi-mint-soft) 0%,var(--kavi-cream) 17%,var(--kavi-cream) 100%); }
.kavi-video-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.kavi-video-card { display:flex; flex-direction:column; color:var(--kavi-ink); text-decoration:none; }
.kavi-video-card__media { position:relative; display:block; overflow:hidden; aspect-ratio:16/9; border-radius:7px; background:#d9dfd7; }
.kavi-video-card__media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(9,20,17,.28)); }
.kavi-video-card__media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.kavi-video-card:nth-child(2) img { object-position:center 43%; }
.kavi-video-card:hover img { transform:scale(1.025); }
.kavi-video-card__play { position:absolute; z-index:2; left:50%; top:50%; display:grid; place-items:center; width:48px; height:48px; margin:-24px 0 0 -24px; border:1px solid rgba(255,255,255,.72); border-radius:50%; background:rgba(20,55,44,.84); color:#fff; font-size:.8rem; padding-left:2px; }
.kavi-video-card__title { margin-top:.8rem; font-family:Georgia,'Times New Roman',serif; font-size:1.4rem; line-height:1.14; }
.kavi-video-card__meta { margin-top:.25rem; color:#6c746f; font-size:.71rem; letter-spacing:.09em; text-transform:uppercase; }

.kavi-manifesto { padding:clamp(3.25rem,6vw,5.25rem) 2rem; background:linear-gradient(180deg,var(--kavi-cream),var(--kavi-paper-deep)); border-block:1px solid var(--kavi-border); }
.kavi-manifesto__eyebrow { margin:0 0 1rem; color:var(--kavi-forest); font-size:.72rem; font-weight:800; letter-spacing:.18em; }
.kavi-manifesto__quote { max-width:850px; margin:0 auto; color:var(--kavi-ink); font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.9rem,3.7vw,3.55rem); line-height:1.08; letter-spacing:-.035em; }

.kavi-footer { background:var(--kavi-paper-deep); border-top-color:rgba(26,36,32,.12); }
.kavi-footer a { color:var(--kavi-forest); }

@media (max-width:900px) {
  .kavi-story-grid,.kavi-video-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kavi-story-tile:last-child,.kavi-video-card:last-child { grid-column:1 / -1; max-width:620px; }
}
@media (max-width:781px) {
  .kavi-koko--brand { flex-direction:column; }
  .kavi-koko--brand .wp-block-column { flex-basis:100% !important; width:100%; }
  .kavi-koko__figure--brand { transform:none; }
}
@media (max-width:640px) {
  .kavi-header { background:rgba(251,247,238,.97); }
  .kavi-nav .wp-block-navigation__responsive-container.is-menu-open { background:var(--kavi-paper); }
  .kavi-hero--koko-brand::before { background:linear-gradient(180deg,rgba(8,18,16,.02) 16%,rgba(8,18,16,.18) 42%,rgba(8,18,16,.90) 77%,rgba(8,18,16,.96) 100%); }
  .kavi-hero--koko-brand h1 { font-size:clamp(3.5rem,17vw,5.4rem); }
  .kavi-route-strip { padding:.8rem .75rem; }
  .kavi-route-strip p { font-size:.62rem; letter-spacing:.11em; }
  .kavi-route-strip span { padding-inline:.3rem; }
  .kavi-section-heading { display:block; margin-bottom:2rem; }
  .kavi-section-heading__link { margin-top:1rem !important; }
  .kavi-story-grid,.kavi-video-grid { grid-template-columns:1fr; }
  .kavi-story-tile:last-child,.kavi-video-card:last-child { grid-column:auto; max-width:none; }
  .kavi-story-tile__image { aspect-ratio:4/3; }
  .kavi-koko--brand .kavi-koko__copy h2 { font-size:clamp(3.8rem,20vw,5.8rem); }
  .kavi-manifesto { padding-inline:1.15rem; }
}


/* v0.9.2 readability pass */
.kavi-eyebrow { font-size: .82rem; }
.kavi-section-heading p:not(.kavi-eyebrow):not(.kavi-section-heading__link) { font-size: 1.12rem; line-height: 1.68; }
.kavi-story-tile p { font-size: 1.08rem; }
.kavi-story-tile__meta { font-size: .78rem; }
.kavi-story-tile__actions a { font-size: .79rem; }
.kavi-video-card__title { font-size: 1.55rem; }
.kavi-video-card__meta { font-size: .78rem; }
.kavi-koko--brand .kavi-koko__copy p { font-size: 1.1rem; }
.kavi-koko__chapters span { font-size: .8rem; }
.kavi-route-strip p { font-size: .78rem; }
@media (max-width: 640px) {
  body { font-size: 1.1rem; }
  .home .kavi-header, .front-page .kavi-header { background: rgba(244,232,213,.82); }
  .kavi-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--kavi-paper); }
  .kavi-section-heading .kavi-handwritten { font-size: clamp(2.5rem, 13vw, 3.8rem) !important; }
  .kavi-koko--brand .kavi-handwritten { font-size: clamp(4rem, 20vw, 6rem) !important; }
}


/* v0.9.6: Sticky is applied to Gutenberg's outer template-part header, not its inner group. */
header.wp-block-template-part:has(> .kavi-header) {
  position: sticky;
  top: 0;
  z-index: 1000;
}
.admin-bar header.wp-block-template-part:has(> .kavi-header) { top: 32px; }
@media (max-width: 782px) {
  .admin-bar header.wp-block-template-part:has(> .kavi-header) { top: 46px; }
}
@media (max-width: 600px) {
  .admin-bar header.wp-block-template-part:has(> .kavi-header) { top: 0; }
}
/* Keep the Home hero behind the translucent header while preserving normal sticky behavior. */
.home header.wp-block-template-part:has(> .kavi-header),
.front-page header.wp-block-template-part:has(> .kavi-header) { margin-bottom: -91px; }
.home .kavi-header, .front-page .kavi-header {
  position: relative;
  inset: auto;
  width: 100%;
}
@media (max-width: 960px) {
  .home header.wp-block-template-part:has(> .kavi-header),
  .front-page header.wp-block-template-part:has(> .kavi-header) { margin-bottom: -75px; }
}
@media (max-width: 640px) {
  .home header.wp-block-template-part:has(> .kavi-header),
  .front-page header.wp-block-template-part:has(> .kavi-header) { margin-bottom: -67px; }
}


/* v0.9.7 — Latest video presentation.
   Functionality remains in the independent MU-plugin. */

.kavi-video-latest {
  width: 100%;
  max-width: 100%;
  margin: 2.5rem auto 3rem;
}

.kavi-video-latest h2 {
  margin: 0 0 1.25rem;
}

.kavi-video-latest .kavi-video-link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 9;
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
  background: #27352d;
  overflow: hidden;
  border-radius: 14px;
  text-decoration: none;
  color: #fff;
}

.kavi-video-latest .kavi-video-link img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kavi-video-latest .kavi-video-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  width: 72px;
  height: 51px;
  border-radius: 14px;
  background: #c4302b;
  color: #fff;
  font: 26px/1 sans-serif;
  padding-left: 4px;
  transition: background .2s;
}

.kavi-video-latest .kavi-video-link:hover .kavi-video-play,
.kavi-video-latest .kavi-video-link:focus-visible .kavi-video-play {
  background: #a91818;
}

.kavi-video-latest h3 {
  max-width: 960px;
  margin: 1rem auto .6rem;
  font-size: clamp(1.2rem, 1.7vw, 1.6rem);
  line-height: 1.25;
  overflow-wrap: break-word;
  text-align: center;
}

.kavi-video-latest p {
  margin: .35rem 0 0;
}

.kavi-video-latest p a {
  display: inline-block;
  font-weight: 600;
  text-underline-offset: .22em;
}

.kavi-video-latest .kavi-video-fallback {
  padding: 1.5rem;
  text-align: center;
}

@media (max-width: 640px) {
  .kavi-video-latest {
    margin: 2rem auto;
  }

  .kavi-video-latest .kavi-video-link {
    border-radius: 10px;
  }

  .kavi-video-latest .kavi-video-play {
    width: 60px;
    height: 43px;
    font-size: 23px;
  }

  .kavi-video-latest h3 {
    font-size: 1.2rem;
  }
}
/* ============================================================
   KaVi's Life v0.10.0 — Ajuste visual editorial
   Recupera los fondos originales y conserva transiciones suaves.
   ============================================================ */

/* Viajes: fondo original de papel */
.kavi-travel-section,
.kavi-travel-section--cards {
  background: var(--kavi-paper);
}

/* Kökö: verde menta con transición gradual al crema */
.kavi-koko-section--brand {
  background: linear-gradient(
    180deg,
    var(--kavi-mint-soft) 0%,
    var(--kavi-mint) 76%,
    var(--kavi-paper) 100%
  );
}

/* Videos: recuperar el fondo claro de la versión anterior */
.kavi-video-section {
  background: var(--kavi-paper);
}

/* Manifiesto: recuperar su identidad crema */
.kavi-manifesto {
  background: var(--kavi-cream);
}

/* Footer: conservar el diseño nuevo */
/* No modificamos las reglas existentes de .kavi-footer */
/* v0.10.0 — Soft transitions between sections */

.kavi-travel-section--cards,
.kavi-koko-section--brand,
.kavi-video-section,
.kavi-manifesto,
.kavi-footer {
  position: relative;
  overflow: hidden;
}

.kavi-travel-section--cards > *,
.kavi-koko-section--brand > *,
.kavi-video-section > *,
.kavi-manifesto > *,
.kavi-footer > * {
  position: relative;
  z-index: 2;
}

/* ------------------------------
   VIAJES: suavizar entrada/salida
------------------------------ */

.kavi-travel-section--cards::before,
.kavi-travel-section--cards::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  pointer-events: none;
  z-index: 1;
}

.kavi-travel-section--cards::before {
  top: 0;
  height: 56px;
  background: linear-gradient(
    to bottom,
    rgba(244, 232, 213, 0.55) 0%,
    rgba(244, 232, 213, 0.18) 42%,
    rgba(244, 232, 213, 0) 100%
  );
}

.kavi-travel-section--cards::after {
  bottom: 0;
  height: 64px;
  background: linear-gradient(
    to bottom,
    rgba(199, 221, 200, 0) 0%,
    rgba(199, 221, 200, 0.38) 58%,
    rgba(199, 221, 200, 0.72) 100%
  );
}

/* ------------------------------
   KÖKÖ: unión suave + marcas curvas
------------------------------ */

.kavi-koko-section--brand::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 48px;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(251, 247, 238, 0.96) 0%,
    rgba(251, 247, 238, 0.66) 42%,
    rgba(251, 247, 238, 0) 100%
  );
}

.kavi-koko-section--brand::after {
  content: "";
  position: absolute;
  right: clamp(2rem, 6vw, 6rem);
  bottom: -8px;
  width: 240px;
  height: 120px;
  pointer-events: none;
  z-index: 1;
  opacity: 0.55;
  background:
    radial-gradient(circle at 100% 100%,
      transparent 0 66px,
      rgba(24, 72, 56, 0.08) 66px 67px,
      transparent 67px 102px,
      rgba(24, 72, 56, 0.05) 102px 103px,
      transparent 103px),
    radial-gradient(circle at 100% 100%,
      transparent 0 122px,
      rgba(24, 72, 56, 0.04) 122px 123px,
      transparent 123px);
}

/* ------------------------------
   VIDEOS: fade superior + arcos sutiles
------------------------------ */

.kavi-video-section::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 54px;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(199, 221, 200, 0.72) 0%,
    rgba(199, 221, 200, 0.32) 44%,
    rgba(251, 247, 238, 0) 100%
  );
}

.kavi-video-section::after {
  content: "";
  position: absolute;
  right: clamp(2rem, 7vw, 7rem);
  top: 0;
  width: 250px;
  height: 110px;
  pointer-events: none;
  z-index: 1;
  opacity: 0.5;
  background:
    radial-gradient(circle at 100% 0,
      transparent 0 62px,
      rgba(24, 72, 56, 0.08) 62px 63px,
      transparent 63px 100px,
      rgba(24, 72, 56, 0.05) 100px 101px,
      transparent 101px),
    radial-gradient(circle at 100% 0,
      transparent 0 118px,
      rgba(24, 72, 56, 0.04) 118px 119px,
      transparent 119px);
}

/* ------------------------------
   MANIFESTO: unión más suave
------------------------------ */

.kavi-manifesto::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 48px;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(251, 247, 238, 0.92) 0%,
    rgba(251, 247, 238, 0.48) 40%,
    rgba(244, 232, 213, 0) 100%
  );
}

/* ------------------------------
   FOOTER: fade superior para evitar corte duro
------------------------------ */

.kavi-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 58px;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(199, 221, 200, 0.68) 0%,
    rgba(199, 221, 200, 0.26) 36%,
    rgba(251, 247, 238, 0) 100%
  );
}