.home-page {
  overflow-x: clip;
}

.home-page .section {
  position: relative;
}

.home-hero {
  overflow: hidden;
  padding-block: var(--space-10) var(--space-16);
}

.home-hero__ribbons {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.home-hero__ribbon {
  position: absolute;
  left: -24vw;
  width: 148vw;
  height: 56px;
  display: flex;
  align-items: center;
  white-space: nowrap;
  border-radius: var(--radius-pill);
  background: rgba(120, 132, 227, 0.16);
  color: var(--color-indigo-ribbon);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  opacity: 0.78;
}

.home-hero__ribbon--one {
  top: 28%;
  transform: rotate(-12deg);
  animation: home-ribbon-forward 28s linear infinite;
}

.home-hero__ribbon--two {
  top: 58%;
  transform: rotate(12deg);
  animation: home-ribbon-reverse 34s linear infinite;
}

.home-hero:hover .home-hero__ribbon,
.home-hero:focus-within .home-hero__ribbon,
.home-page.home-page--nav-open .home-hero__ribbon {
  animation-play-state: paused;
}

.home-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 5.2fr) minmax(0, 6.8fr);
  align-items: center;
  gap: var(--space-8);
  min-height: 700px;
}

.home-hero__grid > * { min-width: 0; width: 100%; }

.home-hero__copy {
  padding: clamp(32px, 5vw, 64px);
}

.home-hero__copy-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-hero__copy-stack > * { margin: 0; min-width: 0; }
.home-hero__copy h1 { max-width: 18ch; }
.home-hero__copy .lead { max-width: 620px; }
.home-hero__copy-stack > p:not(.lead):not(.eyebrow) { max-width: 600px; }

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  width: 100%;
}
.home-hero__actions > * { min-width: 0; }

.home-hero__visual { position: relative; padding-block-end: 32px; }
.home-hero__image { width: 100%; }
.home-hero__image > img { aspect-ratio: 3 / 2; }

.home-hero__float-card {
  position: absolute;
  z-index: 2;
  bottom: 0;
  left: -16px;
  display: flex;
  width: clamp(260px, 25vw, 290px);
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-2);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
  background: var(--color-ivory-000);
  box-shadow: var(--shadow-surface);
  color: var(--color-indigo-950);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.43;
  text-decoration: none;
  transform: rotate(-6deg);
  transition: transform var(--transition-card), box-shadow var(--transition-card);
}
.home-hero__float-card:hover { color: var(--color-indigo-950); box-shadow: var(--shadow-raised-hover), var(--shadow-inset-highlight), var(--shadow-inset-shade); transform: rotate(-6deg) translateY(-2px); }
.home-hero__float-card img { width: 100%; aspect-ratio: 3 / 2; border-radius: 16px; }
.home-hero__float-card span { padding: 0 var(--space-2) var(--space-2); }

.home-restaurant__intro { max-width: 650px; }
.home-restaurant__cards {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.2fr) minmax(0, 0.95fr);
  gap: var(--space-6);
  margin-block-start: var(--space-8);
}
.home-restaurant__cards > * { width: 100%; min-width: 0; }
.home-restaurant__card { position: relative; padding-block-start: 64px; }
.home-restaurant__card:nth-child(2) { transform: translateY(16px); }
.home-restaurant__accent { position: absolute; top: var(--space-6); right: var(--space-6); display: grid; width: 32px; height: 32px; place-items: center; border-radius: 12px; }
.home-restaurant__accent--sage { background: var(--color-sage-300); border-radius: 45% 55% 48% 52%; }
.home-restaurant__accent--apricot { background: var(--color-apricot-300); border-radius: 50%; box-shadow: inset -6px -5px 0 rgba(70,84,200,.08); }
.home-restaurant__accent--card { background: var(--color-indigo-700); color: #fff; font-size: 17px; }
.home-restaurant__link { display: inline-block; margin-block-start: var(--space-10); font-weight: 700; }

.home-chef { padding-block-start: var(--space-20); }
.home-chef__intro-row { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: var(--space-8); }
.home-chef__intro-row > * { width: 100%; min-width: 0; }
.home-chef__intro { max-width: 650px; }
.home-chef__dish-form { position: relative; width: min(100%, 300px); aspect-ratio: 1; margin-inline: auto; border-radius: 50%; background: var(--color-ivory-000); box-shadow: var(--shadow-surface); }
.home-chef__dish-form span { position: absolute; inset: 18%; border: 16px solid var(--color-apricot-300); border-radius: 50%; }
.home-chef__dish-form i { position: absolute; top: 30%; left: 35%; width: 45%; height: 26%; border-radius: 50%; background: var(--color-sage-300); transform: rotate(-18deg); }
.home-chef__dish-form b { position: absolute; right: 23%; bottom: 26%; width: 24px; height: 24px; border-radius: 50%; background: var(--color-indigo-500); }
.home-chef__cards { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: start; gap: var(--space-8); margin-block-start: var(--space-10); }
.home-chef__cards > * { width: 100%; min-width: 0; }
.home-chef__card { display: flex; flex-direction: column; gap: var(--space-6); color: var(--color-indigo-950); text-decoration: none; }
.home-chef__card:hover { color: var(--color-indigo-950); }
.home-chef__card--lounge { margin-block-start: var(--space-10); }
.home-chef__card-copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.home-chef__card-copy > * { margin: 0; }
.home-chef__card-copy p { max-width: 42ch; }
.home-chef__card-illustration { position: relative; display: grid; min-height: 205px; place-items: center; overflow: hidden; border-radius: 18px; background: var(--color-cloud-100); color: var(--color-indigo-700); font-size: 82px; }
.home-chef__card-illustration::before { position: absolute; width: 110px; height: 144px; border: 4px solid var(--color-indigo-700); border-radius: 20px; content: ""; transform: rotate(-12deg); }
.home-chef__card-illustration i { position: absolute; right: 22%; bottom: 16%; width: 35px; height: 35px; border-radius: 50%; background: var(--color-apricot-300); }

.home-lounge__panel { padding: clamp(24px, 4vw, 48px); border-radius: var(--radius-xl); background: var(--color-indigo-950); box-shadow: var(--shadow-raised); color: #fff; }
.home-lounge__panel h2, .home-lounge__panel h3 { color: var(--color-indigo-950); }
.home-lounge__lead h2 { color: #fff; }
.home-lounge__lead .eyebrow { color: var(--color-sage-300); }
.home-lounge__top { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: var(--space-8); }
.home-lounge__top > * { width: 100%; min-width: 0; }
.home-lounge__lead { max-width: 580px; }
.home-lounge__lead .lead { color: rgba(255,255,255,.9); }
.home-lounge__image { display: block; width: 100%; }
.home-lounge__image img { aspect-ratio: 3 / 2; }
.home-lounge__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-block-start: var(--space-8); }
.home-lounge__steps > * { width: 100%; min-width: 0; }
.home-lounge__step { display: flex; min-width: 0; gap: var(--space-3); padding: var(--space-5); border-radius: var(--radius-card); background: #fff; color: var(--color-indigo-950); }
.home-lounge__step > span { display: grid; width: 40px; min-width: 40px; height: 40px; place-items: center; border-radius: 50%; background: var(--color-indigo-700); color: #fff; font-family: var(--font-heading); font-weight: 700; }
.home-lounge__step h3 { margin-bottom: var(--space-2); }
.home-lounge__step p { margin: 0; font-size: 15px; line-height: 1.55; }
.home-lounge__action { margin-block-start: var(--space-8); }

.home-learn { background: var(--color-cloud-100); }
.home-learn__intro { max-width: 640px; margin-inline: auto; text-align: left; }
.home-learn__cards { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-8); margin-block-start: var(--space-8); }
.home-learn__cards > * { width: 100%; min-width: 0; }
.home-learn__card { color: var(--color-indigo-950); text-decoration: none; }
.home-learn__card:hover { color: var(--color-indigo-950); }
.home-learn__card p { max-width: 50ch; }
.home-learn__icon { display: grid; width: 54px; height: 54px; place-items: center; margin-bottom: var(--space-5); border-radius: 16px; font-family: var(--font-heading); font-size: 28px; }
.home-learn__icon--card { background: var(--color-cloud-100); color: var(--color-indigo-700); border: 2px solid var(--color-indigo-500); }
.home-learn__icon--willow { background: var(--color-sage-300); color: var(--color-indigo-950); font-size: 38px; }
.home-learn__action { margin-block-start: var(--space-8); }

.home-gatherings__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-10); align-items: start; }
.home-gatherings__grid > * { width: 100%; min-width: 0; }
.home-gatherings__copy { max-width: 580px; }
.home-gatherings__visual { grid-column: 2; grid-row: 1 / span 3; }
.home-gatherings__visual a { display: block; }
.home-gatherings__visual img { aspect-ratio: 3 / 2; }
.home-gatherings__plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.home-gatherings__plans > * { width: 100%; min-width: 0; }
.home-gatherings__plan { position: relative; color: var(--color-indigo-950); text-decoration: none; }
.home-gatherings__plan:hover { color: var(--color-indigo-950); }
.home-gatherings__plan p { max-width: 40ch; }
.home-gatherings__motif { position: absolute; top: 18px; right: 18px; color: var(--color-indigo-500); font-size: 24px; }
.home-gatherings__action { justify-self: start; }

.home-gallery__intro { max-width: 600px; }
.home-gallery__mosaic { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-5); margin-block-start: var(--space-8); }
.home-gallery__mosaic > * { width: 100%; min-width: 0; }
.home-gallery__side { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
.home-gallery__side > * { width: 100%; min-width: 0; }
.home-gallery__item { margin: 0; }
.home-gallery__item .image-frame { display: block; width: 100%; }
.home-gallery__item--large .image-frame > img { aspect-ratio: 3 / 2; }
.home-gallery__item figcaption { max-width: 100%; }
.home-gallery__action { margin-block-start: var(--space-8); }

.home-faq { background: var(--color-cloud-100); }
.home-faq__shell { max-width: 840px; margin-inline: auto; }
.home-faq__intro { max-width: 620px; }
.home-faq__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); margin-block-start: var(--space-8); }
.home-faq__list > * { width: 100%; min-width: 0; }
.home-faq__item { overflow: hidden; border: var(--border-subtle); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-inset-highlight), var(--shadow-inset-shade); }
.home-faq__item h3 { margin: 0; }
.home-faq__item button { display: flex; width: 100%; min-width: 0; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-5) var(--space-6); background: transparent; color: var(--color-indigo-950); font-family: var(--font-heading); font-size: 20px; font-weight: 700; line-height: 1.25; text-align: left; }
.home-faq__item button span { display: grid; width: 28px; min-width: 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--color-cloud-100); color: var(--color-indigo-700); font-family: var(--font-body); font-size: 23px; font-weight: 400; transition: transform var(--transition-control); }
.home-faq__item button[aria-expanded="true"] span { transform: rotate(45deg); }
.home-faq__answer { max-width: 660px; padding: 0 var(--space-6) var(--space-5); }
.home-faq__answer p { margin: 0; }
.home-faq__action { margin-block-start: var(--space-8); }

.home-visit__panel { position: relative; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-8); overflow: hidden; padding: clamp(24px, 4vw, 48px); border-radius: var(--radius-xl); background: var(--color-indigo-700); color: #fff; box-shadow: var(--shadow-raised); }
.home-visit__panel > * { min-width: 0; }
.home-visit__intro { position: relative; z-index: 1; max-width: 560px; }
.home-visit__intro h2 { color: #fff; }
.home-visit__intro .eyebrow { color: var(--color-sage-300); }
.home-visit__intro .lead { color: rgba(255,255,255,.92); }
.home-visit__accent { position: relative; display: block; min-height: 155px; }
.home-visit__accent span { position: absolute; right: 16%; top: 12%; width: 160px; height: 160px; border: 18px solid rgba(255,255,255,.18); border-radius: 50%; }
.home-visit__accent i { position: absolute; right: 6%; bottom: 0; width: 100px; height: 42px; border-radius: 100% 0 100% 0; background: var(--color-sage-300); transform: rotate(-28deg); }
.home-visit__tiles { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .8fr) minmax(0, 1.1fr); gap: var(--space-4); }
.home-visit__tiles > * { width: 100%; min-width: 0; }
.home-visit__tile { padding: var(--space-5); border-radius: var(--radius-card); background: #fff; color: var(--color-indigo-950); box-shadow: var(--shadow-inset-highlight), var(--shadow-inset-shade); }
.home-visit__tile h3 { margin-bottom: var(--space-2); }
.home-visit__tile p { margin-bottom: var(--space-3); }
.home-visit__tile > :last-child { margin-bottom: 0; }
.home-visit__new-tab { font-size: 12px; }
.home-visit__action { justify-self: start; }

.home-closing__intro { max-width: 560px; margin-inline: auto; text-align: left; }
.home-closing__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin-block-start: var(--space-8); }
.home-closing__cards > * { width: 100%; min-width: 0; }
.home-closing__card { display: flex; min-height: 300px; flex-direction: column; align-items: flex-start; gap: var(--space-4); color: var(--color-indigo-950); text-decoration: none; }
.home-closing__card:hover { color: var(--color-indigo-950); }
.home-closing__card > * { margin: 0; }
.home-closing__card p { max-width: 40ch; }
.home-closing__card > span:last-child { margin-top: auto; color: var(--color-indigo-700); font-weight: 700; }
.home-closing__form { display: grid; width: 74px; height: 74px; place-items: center; border-radius: 22px; font-family: var(--font-heading); font-size: 40px; }
.home-closing__form--food { position: relative; background: var(--color-cloud-100); }
.home-closing__form--food span { width: 48px; height: 48px; border: 10px solid var(--color-apricot-300); border-radius: 50%; }
.home-closing__form--cards { background: var(--color-indigo-700); color: #fff; transform: rotate(-6deg); }

@keyframes home-ribbon-forward { from { margin-left: -8%; } to { margin-left: 8%; } }
@keyframes home-ribbon-reverse { from { margin-left: 8%; } to { margin-left: -8%; } }

@media (max-width: 980px) {
  .home-lounge__top { grid-template-columns: minmax(0, 1fr); }
  .home-lounge__image { max-width: 620px; }
}

@media (max-width: 900px) {
  .home-hero__grid, .home-gatherings__grid { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .home-hero__visual { max-width: 760px; }
  .home-hero__float-card { left: 24px; width: 240px; }
  .home-restaurant__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-restaurant__card:nth-child(2) { transform: none; }
  .home-chef__intro-row { grid-template-columns: minmax(0, 1fr); }
  .home-chef__dish-form { margin-inline: 0; }
  .home-gatherings__visual { grid-column: 1; grid-row: auto; }
  .home-gatherings__plans { grid-column: 1; }
  .home-gatherings__action { grid-column: 1; }
  .home-visit__tiles { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1.1fr); }
  .home-visit__tile--address { grid-column: 1 / -1; }
}

@media (max-width: 860px) {
  .home-gallery__mosaic { grid-template-columns: minmax(0, 1fr); }
  .home-gallery__side { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 820px) {
  .home-learn__cards { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
}

@media (max-width: 760px) {
  .home-hero { padding-block-start: var(--space-6); }
  .home-hero__ribbon { height: 42px; opacity: .52; font-size: 10px; }
  .home-hero__ribbon--one { top: 20%; transform: rotate(-8deg); }
  .home-hero__ribbon--two { top: 58%; transform: rotate(8deg); }
  .home-hero__copy { padding: var(--space-6); }
  .home-hero__actions { flex-direction: column; }
  .home-hero__actions > * { width: 100%; }
  .home-hero__image > img { aspect-ratio: 4 / 5; }
  .home-hero__float-card { right: 12px; bottom: -10px; left: auto; width: 210px; }
  .home-hero__visual { padding-block-end: 42px; }
  .home-restaurant__cards, .home-chef__cards, .home-lounge__steps, .home-gatherings__plans, .home-visit__panel, .home-visit__tiles { grid-template-columns: minmax(0, 1fr); }
  .home-restaurant__cards { gap: var(--space-4); }
  .home-chef__card--lounge { margin-block-start: 0; }
  .home-chef__dish-form { display: none; }
  .home-lounge__panel { border-radius: var(--radius-card); }
  .home-lounge__steps { gap: var(--space-4); }
  .home-lounge__step { padding: var(--space-5); }
  .home-gatherings__grid { gap: var(--space-6); }
  .home-faq__item button { padding: var(--space-5); font-size: 18px; }
  .home-faq__answer { padding: 0 var(--space-5) var(--space-5); }
  .home-visit__panel { border-radius: var(--radius-card); gap: var(--space-6); }
  .home-visit__accent { display: none; }
  .home-visit__tile--address { grid-column: auto; }
  .home-visit__action { width: 100%; }
}

@media (max-width: 720px) {
  .home-closing__cards { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
}

@media (max-width: 620px) {
  .home-gatherings__plans { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero__ribbon { animation: none; }
}
