/* Kebun Bistro rich-page heading geometry.
 * heading-system.css remains the sole font/grain/ink/paint owner.
 * This layer owns responsive size, measure, grouping and layout only.
 */
.kbn-page-experience{
  --kbn-pe-h1-size:clamp(54px,6vw,96px);
  --kbn-pe-h2-size:clamp(34px,3.2vw,56px);
  --kbn-pe-h2-compact-size:clamp(32px,2.7vw,48px);
  --kbn-pe-h3-size:clamp(22px,1.8vw,30px);
  --kbn-pe-heading-gap:clamp(32px,5vw,72px);
  --kbn-pe-heading-space:clamp(32px,4.2vw,54px);
}
.kbn-page-experience .kbn-pe-hero__copy{min-width:0;container-type:inline-size}
.kbn-page-experience .kbn-pe-hero h1{
  max-width:100%;
  font-size:var(--kbn-pe-h1-size);
  line-height:.94;
  letter-spacing:-.042em;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

/* Major shell heading: title owns the first half; support or breathing room owns the second. */
.kbn-page-experience .kbn-pe-section-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--kbn-pe-heading-gap);
  align-items:end;
  margin-bottom:var(--kbn-pe-heading-space);
}
.kbn-page-experience .kbn-pe-section-heading--solo{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.kbn-page-experience .kbn-pe-section-heading__title{
  min-width:0;
  width:100%;
  max-width:none;
  container-type:inline-size;
}
/* Major shell support is a right-edge editorial counterweight on desktop. */
.kbn-page-experience .kbn-pe-section-heading__support{
  min-width:0;
  width:100%;
  max-width:52ch;
  justify-self:end;
  margin-inline-start:auto;
  text-align:right;
  color:var(--kbn-page-muted);
  font-size:clamp(16px,1.35vw,19px);
  line-height:1.68;
}
.kbn-page-experience .kbn-pe-section-heading__support p,
.kbn-page-experience .kbn-pe-panel-heading__support p,
.kbn-page-experience .kbn-pe-cta-band__support p{margin:0 0 .85em}
.kbn-page-experience .kbn-pe-section-heading__support p:last-child,
.kbn-page-experience .kbn-pe-panel-heading__support p:last-child,
.kbn-page-experience .kbn-pe-cta-band__support p:last-child{margin-bottom:0}
.kbn-page-experience .kbn-pe-section-heading h2{
  max-width:100%;
  font-size:var(--kbn-pe-h2-size);
  line-height:1.02;
  letter-spacing:-.028em;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

/* Local/panel headings use 100% of their own local column, never 50% again. */
.kbn-page-experience .kbn-pe-inline-heading,
.kbn-page-experience .kbn-pe-panel-heading{min-width:0}
.kbn-page-experience .kbn-pe-inline-heading .kbn-pe-section-heading__title,
.kbn-page-experience .kbn-pe-panel-heading .kbn-pe-section-heading__title,
.kbn-page-experience .kbn-pe-cta-band .kbn-pe-section-heading__title{width:100%;max-width:none}
.kbn-page-experience .kbn-pe-inline-heading h2,
.kbn-page-experience .kbn-pe-panel-heading h2,
.kbn-page-experience .kbn-pe-cta-band h2{
  max-width:100%;
  font-size:var(--kbn-pe-h2-compact-size);
  line-height:1.04;
  letter-spacing:-.026em;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.kbn-page-experience .kbn-pe-panel-heading__support{
  width:min(100%,52ch);
  margin-top:20px;
  color:var(--kbn-page-muted);
  font-size:16px;
  line-height:1.66;
}
.kbn-page-experience .kbn-pe-cta-band__support{
  max-width:54ch;
  margin-top:18px;
  color:var(--kbn-page-muted);
  line-height:1.65;
}
.kbn-page-experience .kbn-pe-card__body,
.kbn-page-experience .kbn-pe-related__item,
.kbn-page-experience .kbn-pe-menu-tile__copy,
.kbn-page-experience .kbn-pe-steps li{container-type:inline-size}
.kbn-page-experience .kbn-pe-card h3,
.kbn-page-experience .kbn-pe-related__item h3,
.kbn-page-experience .kbn-pe-menu-tile h3,
.kbn-page-experience .kbn-pe-steps h3,
.kbn-page-experience .kbn-news-grid h3{
  max-width:24ch;
  font-size:var(--kbn-pe-h3-size);
  line-height:1.12;
  letter-spacing:-.018em;
  text-wrap:pretty;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.kbn-page-experience .kbn-pe-eyebrow{margin-bottom:12px}

/* Content-column-aware refinement. Viewport clamps remain the fallback. */
@container (max-width:720px){
  .kbn-pe-hero__copy h1{font-size:clamp(48px,10cqw,78px)}
}
@container (max-width:560px){
  .kbn-pe-hero__copy h1{font-size:clamp(44px,11cqw,66px)}
}
@container (max-width:620px){
  .kbn-pe-section-heading > .kbn-pe-section-heading__title h2{font-size:clamp(32px,8.5cqw,48px)}
}
@container (max-width:460px){
  .kbn-pe-section-heading > .kbn-pe-section-heading__title h2{font-size:clamp(30px,9.5cqw,40px)}
  .kbn-pe-inline-heading .kbn-pe-section-heading__title h2,
  .kbn-pe-panel-heading .kbn-pe-section-heading__title h2,
  .kbn-pe-cta-band .kbn-pe-section-heading__title h2{font-size:clamp(30px,9cqw,40px)}
}
@container (max-width:360px){
  .kbn-pe-card__body h3,
  .kbn-pe-related__item h3,
  .kbn-pe-menu-tile__copy h3,
  .kbn-pe-steps li h3{font-size:clamp(20px,8cqw,25px)}
}

/* Intermediate desktop: preserve the 50/50 major-heading rhythm while reducing type pressure. */
@media (max-width:1199px){
  .kbn-page-experience{
    --kbn-pe-h1-size:clamp(50px,6.1vw,82px);
    --kbn-pe-h2-size:clamp(34px,3.9vw,50px);
    --kbn-pe-h2-compact-size:clamp(32px,3.4vw,46px);
    --kbn-pe-heading-gap:clamp(28px,4vw,48px);
  }
  .kbn-page-experience .kbn-pe-section-heading,
  .kbn-page-experience .kbn-pe-section-heading--solo{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
}

/* Tablet landscape: stack local multi-column compositions without shrinking major headings into a tower. */
@media (max-width:960px){
  .kbn-page-experience{
    --kbn-pe-h1-size:clamp(48px,7.8vw,74px);
    --kbn-pe-h2-size:clamp(34px,5vw,48px);
    --kbn-pe-h2-compact-size:clamp(32px,4.7vw,44px);
    --kbn-pe-h3-size:clamp(22px,2.8vw,28px);
    --kbn-pe-heading-space:clamp(28px,4vw,42px);
  }
  .kbn-page-experience .kbn-pe-section-heading,
  .kbn-page-experience .kbn-pe-section-heading--solo{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:clamp(22px,3vw,32px);
    align-items:end;
  }
  .kbn-page-experience .kbn-pe-hero__grid{
    min-height:auto;
    grid-template-columns:minmax(0,1fr);
    gap:34px;
    padding-block:68px 54px;
  }
  .kbn-page-experience .kbn-pe-hero h1{max-width:100%}
  .kbn-page-experience .kbn-pe-hero__media{
    min-height:0;
    max-height:560px;
    aspect-ratio:16/10;
    transform:none;
  }
  .kbn-page-experience .kbn-pe-intro__grid,
  .kbn-page-experience .kbn-pe-split-story__grid,
  .kbn-page-experience .kbn-pe-form-panel__grid,
  .kbn-page-experience .kbn-pe-contact-panel__grid,
  .kbn-page-experience .kbn-pe-hours-panel__grid,
  .kbn-page-experience .kbn-pe-location-panel__grid,
  .kbn-page-experience .kbn-pe-cta-band__grid{
    grid-template-columns:minmax(0,1fr);
    gap:32px;
  }
  .kbn-page-experience .kbn-pe-split-story--media-left .kbn-pe-split-story__copy,
  .kbn-page-experience .kbn-pe-split-story--media-left .kbn-pe-split-story__media{order:initial}
}

/* Narrow tablet: release sticky/narrow side compositions before typography becomes awkward. */
@media (max-width:900px){
  .kbn-page-experience .kbn-pe-menu-artwork__grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .kbn-page-experience .kbn-pe-menu-artwork__copy{position:static}
}

/* Mobile/tablet heading collapse: major shell headings become full-width and return to natural reading alignment. */
@media (max-width:820px){
  .kbn-page-experience .kbn-pe-section-heading,
  .kbn-page-experience .kbn-pe-section-heading--solo{
    grid-template-columns:minmax(0,1fr);
    gap:16px;
    align-items:start;
  }
  .kbn-page-experience .kbn-pe-section-heading__title{
    width:100%;
    max-width:none;
  }
  .kbn-page-experience .kbn-pe-section-heading__support{
    width:100%;
    max-width:62ch;
    justify-self:start;
    margin-inline-start:0;
    text-align:left;
  }
}

/* Mobile scale: keep hierarchy clear without letting section titles dominate the viewport. */
@media (max-width:520px){
  .kbn-page-experience{
    --kbn-pe-h1-size:clamp(44px,12vw,60px);
    --kbn-pe-h2-size:clamp(32px,9vw,40px);
    --kbn-pe-h2-compact-size:clamp(31px,8.5vw,38px);
    --kbn-pe-h3-size:clamp(22px,6vw,27px);
    --kbn-pe-heading-space:30px;
  }
  .kbn-page-experience .kbn-pe-hero__grid{padding-block:58px 42px;gap:28px}
  .kbn-page-experience .kbn-pe-hero h1{max-width:100%}
  .kbn-page-experience .kbn-pe-section-heading__title,
  .kbn-page-experience .kbn-pe-inline-heading .kbn-pe-section-heading__title,
  .kbn-page-experience .kbn-pe-panel-heading .kbn-pe-section-heading__title,
  .kbn-page-experience .kbn-pe-cta-band .kbn-pe-section-heading__title{width:100%;max-width:none}
  .kbn-page-experience .kbn-pe-section-heading{gap:14px}
  .kbn-page-experience .kbn-pe-section-heading h2,
  .kbn-page-experience .kbn-pe-inline-heading h2,
  .kbn-page-experience .kbn-pe-panel-heading h2,
  .kbn-page-experience .kbn-pe-cta-band h2{max-width:100%;line-height:1.06}
  .kbn-page-experience .kbn-pe-section-heading__support,
  .kbn-page-experience .kbn-pe-panel-heading__support{font-size:16px;line-height:1.62}
  .kbn-page-experience .kbn-pe-eyebrow{margin-bottom:10px}
}

/* Small-phone guardrails, including 375/320-class widths. */
@media (max-width:380px){
  .kbn-page-experience{
    --kbn-pe-h1-size:clamp(42px,13vw,52px);
    --kbn-pe-h2-size:clamp(31px,9.8vw,38px);
    --kbn-pe-h2-compact-size:clamp(30px,9.4vw,36px);
    --kbn-pe-h3-size:clamp(21px,6.4vw,25px);
  }
}
@media (max-width:340px){
  .kbn-page-experience{
    --kbn-pe-h1-size:clamp(40px,13vw,46px);
    --kbn-pe-h2-size:clamp(30px,10vw,34px);
    --kbn-pe-h2-compact-size:clamp(29px,9.5vw,33px);
    --kbn-pe-h3-size:clamp(20px,6.6vw,23px);
  }
  .kbn-page-experience .kbn-pe-hero__grid{padding-block:52px 38px}
}
