/* =============================================================
   Homepage — YESSSS hero (reference match)
   ============================================================= */

.home-cafe .hp-yesno {
  position: relative;
  overflow: hidden;
  padding: clamp(60px, 9vw, 108px) clamp(16px, 4vw, 40px);
  background:
    radial-gradient(ellipse 100% 85% at 50% 48%, #4a9230 0%, #3f8228 32%, #396d1b 58%, #2f5a17 82%, #244412 100%);
}

.home-cafe .hp-yesno .container {
  position: relative;
  z-index: 1;
  max-width: 1140px;
  padding-inline: clamp(12px, 3vw, 24px);
}

.home-cafe .hp-yesno__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  margin: 0 auto;
}

/* ---- Headline ---- */
.home-cafe .hp-yesno__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin: 0;
  width: 100%;
  font-family: var(--font-primary);
  font-size: clamp(1.6rem, 4.6vw, 3rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.2);
}

.home-cafe .hp-yesno__title-line {
  display: block;
}

.home-cafe .hp-yesno__title em {
  font-style: italic;
  font-weight: 800;
}

.home-cafe .hp-yesno__lead {
  margin: clamp(20px, 2.8vw, 30px) 0 0;
  max-width: 900px;
  font-family: var(--font-primary);
  font-size: clamp(0.72rem, 1.55vw, 1.02rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
}

/* ---- YESSSS (per-letter slice) ---- */
.home-cafe .hp-yesno__hero {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: clamp(40px, 6.5vw, 68px) 0 clamp(24px, 3.5vw, 38px);
}

.home-cafe .hp-yesno__yes {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.home-cafe .hp-yesno__yes-word {
  position: relative;
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  --hp-yes-size: clamp(3.2rem, 18.5vw, 11.8rem);
  --hp-yes-gap: clamp(0.5rem, 1.2vw, 0.9rem);
  --hp-yes-letter-gap: clamp(0.45rem, 2.2vw, 1.35rem);
}

.home-cafe .hp-yesno__yes-scale {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 100%;
}

.home-cafe .hp-yesno__yes-grid {
  position: relative;
  display: inline-block;
  max-width: 100%;
  line-height: 0.74;
  container-type: inline-size;
}

.home-cafe .hp-yesno__yes-letters {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: center;
  gap: var(--hp-yes-letter-gap);
}

.home-cafe .hp-yesno__yes-char {
  position: relative;
  flex: 0 0 auto;
  text-align: center;
}

.home-cafe .hp-yesno__yes-top,
.home-cafe .hp-yesno__yes-bot {
  display: block;
  font-family: var(--font-primary);
  font-size: var(--hp-yes-size);
  font-weight: 900;
  letter-spacing: 0.04em;
  color: #fff;
}

.home-cafe .hp-yesno__yes-top {
  clip-path: inset(0 0 calc(50% + var(--hp-yes-gap) / 2) 0);
  filter: drop-shadow(0 4px 7px rgba(0, 0, 0, 0.28));
}

.home-cafe .hp-yesno__yes-bot {
  position: absolute;
  left: 0;
  top: 0;
  clip-path: inset(calc(50% + var(--hp-yes-gap) / 2) 0 0 0);
}

/* Tags sit in the slice gap, anchored to each letter column */
.home-cafe .hp-yesno__yes-tag {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: max-content;
  max-width: calc(var(--hp-yes-size) * 1.75 + var(--hp-yes-letter-gap));
  font-family: var(--font-primary);
  font-size: clamp(0.24rem, 3.1cqi, 1.42rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  pointer-events: none;
}

.home-cafe .hp-yesno__yes-tag--long {
  max-width: calc(var(--hp-yes-size) * 2.35 + var(--hp-yes-letter-gap));
  font-size: clamp(0.22rem, 2.65cqi, 1.3rem);
  letter-spacing: 0.018em;
}

@media screen and (min-width: 768px) and (max-width: 991px) {
  .home-cafe .hp-yesno__yes-tag {
    font-size: 14px;
    letter-spacing: 0.028em;
  }

  .home-cafe .hp-yesno__yes-tag--long {
    font-size: 14px;
    letter-spacing: 0.022em;
  }
}

@media screen and (min-width: 992px) {
  .home-cafe .hp-yesno__yes-tag {
    font-size: 20px;
    letter-spacing: 0.028em;
  }

  .home-cafe .hp-yesno__yes-tag--long {
    font-size: 20px;
    letter-spacing: 0.022em;
  }
}

.home-cafe .hp-yesno__yes-char--between .hp-yesno__yes-tag {
  left: calc(100% + var(--hp-yes-letter-gap) / 2);
}

/* ---- Closing line ---- */
.home-cafe .hp-yesno__motto {
  margin: 0;
  font-family: var(--font-primary);
  font-size: clamp(1.05rem, 2.6vw, 1.55rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
}

.home-cafe .hp-yesno__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@supports not (container-type: inline-size) {
  .home-cafe .hp-yesno__yes-tag {
    font-size: clamp(0.24rem, 2.8vw, 1.42rem);
  }

  .home-cafe .hp-yesno__yes-tag--long {
    font-size: clamp(0.22rem, 2.55vw, 1.3rem);
  }

  @media screen and (min-width: 768px) {
    .home-cafe .hp-yesno__yes-tag {
      font-size: clamp(0.92rem, 3.2vw, 1.72rem);
    }

    .home-cafe .hp-yesno__yes-tag--long {
      font-size: clamp(0.84rem, 2.9vw, 1.58rem);
    }
  }
}

@media screen and (max-width: 991px) {
  .home-cafe .hp-yesno__title {
    font-size: clamp(1.35rem, 5.4vw, 2.3rem);
  }

  .home-cafe .hp-yesno__lead {
    letter-spacing: 0.08em;
  }
}

@media screen and (max-width: 767px) {
  .home-cafe .hp-yesno {
    padding-top: 48px;
    padding-bottom: 48px;
  }

  .home-cafe .hp-yesno__title {
    font-size: clamp(1.18rem, 6.4vw, 1.95rem);
    letter-spacing: 0.035em;
  }

  .home-cafe .hp-yesno__lead {
    font-size: clamp(0.62rem, 2.9vw, 0.86rem);
    letter-spacing: 0.07em;
    line-height: 1.55;
  }

  .home-cafe .hp-yesno__yes-word {
    /* 80px where it fits; eases down on the narrowest phones so the
       six letters are never clipped by the section's overflow */
    --hp-yes-size: min(80px, 18.5vw);
    --hp-yes-gap: min(12px, 2.5vw);
    --hp-yes-letter-gap: min(20px, 4.2vw);
  }

  .home-cafe .hp-yesno__yes-tag {
    font-size: min(10px, 2.1vw);
    letter-spacing: 0.012em;
    max-width: calc(var(--hp-yes-size) * 1.95 + var(--hp-yes-letter-gap));
  }

  .home-cafe .hp-yesno__yes-tag--long {
    font-size: min(10px, 2vw);
    max-width: calc(var(--hp-yes-size) * 2.7 + var(--hp-yes-letter-gap));
  }
}

@media screen and (max-width: 577px) {
  .home-cafe .hp-yesno {
    overflow-x: clip;
    padding-inline: 10px;
  }

  .home-cafe .hp-yesno .container {
    padding-inline: 6px;
  }

  .home-cafe .hp-yesno__title {
    font-size: clamp(1rem, 5.8vw, 1.5rem);
    letter-spacing: 0.035em;
  }

  .home-cafe .hp-yesno__lead {
    font-size: clamp(0.52rem, 2.5vw, 0.68rem);
    letter-spacing: 0.05em;
    line-height: 1.6;
    padding-inline: 2px;
  }

  .home-cafe .hp-yesno__hero {
    margin-top: 28px;
    margin-bottom: 18px;
  }

  .home-cafe .hp-yesno__yes-scale {
    width: 100%;
    overflow: visible;
  }

  .home-cafe .hp-yesno__yes-grid {
    transform: none;
    max-width: calc(100vw - 24px);
  }

  .home-cafe .hp-yesno__yes-tag {
    letter-spacing: 0.01em;
    max-width: calc(var(--hp-yes-size) * 1.95 + var(--hp-yes-letter-gap));
  }

  .home-cafe .hp-yesno__yes-tag--long {
    max-width: calc(var(--hp-yes-size) * 2.6 + var(--hp-yes-letter-gap));
  }

  .home-cafe .hp-yesno__motto {
    font-size: clamp(0.88rem, 4.2vw, 1.05rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-cafe .hp-yesno__title,
  .home-cafe .hp-yesno__yes-top {
    text-shadow: none;
    filter: none;
  }
}
