.home-page {
  background: var(--color-cloud-100);
}

.home-page a:focus-visible {
  outline: 3px solid var(--color-focus-ring);
  outline-offset: 2px;
}

.home-hero {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 720px;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  padding: 56px var(--page-padding);
  isolation: isolate;
}

.home-hero__image,
.home-hero__overlay {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
}

.home-hero__image { object-fit: cover; object-position: center 42%; }
.home-hero__overlay { z-index: -1; background: linear-gradient(180deg, rgba(32,32,79,.16) 0%, rgba(32,32,79,.36) 52%, rgba(232,241,247,.54) 100%); }
.home-hero__panel { display:flex; width:clamp(560px,56vw,700px); min-width:0; flex-direction:column; align-items:flex-start; gap:var(--space-4); border:var(--border-subtle); border-radius:var(--radius-xl); background:rgba(255,255,255,.95); box-shadow:var(--shadow-raised); padding:var(--space-7); }
.home-hero__panel h1, .home-hero__panel p { margin:0; }
.home-hero__panel p { max-width:50ch; font-size:var(--text-lg); line-height:var(--leading-lg); }
.home-hero__eyebrow { border-radius:var(--radius-pill); background:var(--color-mustard-400); padding:6px 12px; font-size:var(--text-sm); font-weight:700; line-height:var(--leading-sm); }
.home-hero__actions { display:flex; width:100%; min-width:0; flex-wrap:wrap; gap:var(--space-3); }
.home-hero__actions > * { width:auto; min-width:0; }

.home-pillars__intro { width:100%; max-width:620px; }
.home-pillars__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--grid-gap); margin-top:var(--space-6); }
.home-pillar-card { display:flex; min-width:0; min-height:330px; flex-direction:column; align-items:flex-start; gap:var(--space-3); border:var(--border-subtle); border-radius:var(--radius-lg); background:var(--color-white-100); box-shadow:var(--shadow-card); padding:var(--space-5); color:var(--color-indigo-900); text-decoration:none; transition:transform var(--transition-fast),box-shadow var(--transition-fast); }
.home-pillar-card h3, .home-pillar-card p { margin:0; }
.home-pillar-card p { width:100%; }
.home-pillar-card__link { margin-top:auto; color:var(--color-indigo-700); font-family:var(--font-heading); font-weight:700; }
.home-pillar-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-raised); color:var(--color-indigo-900); }
.home-pillar-card__shape { display:block; width:56px; height:42px; flex:0 0 auto; border-radius:18px; }
.home-pillar-card__shape--plate { border:10px solid var(--color-mustard-400); background:var(--color-white-100); box-shadow:inset 0 0 0 5px var(--color-cloud-200); }
.home-pillar-card__shape--table { width:64px; background:var(--color-indigo-500); box-shadow:0 9px 0 rgba(32,32,79,.12), inset 0 3px rgba(255,255,255,.22); }

.home-food { background:var(--color-cloud-200); }
.home-food__layout { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); align-items:center; gap:56px; }
.home-food__media { width:100%; min-width:0; margin:0; aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius-lg); box-shadow:var(--shadow-card); }
.home-food__media img { width:100%; height:100%; object-fit:cover; }
.home-food__copy { display:flex; width:100%; min-width:0; max-width:520px; flex-direction:column; align-items:flex-start; gap:var(--space-4); }
.home-food__copy h2, .home-food__copy p, .home-food__copy ol { margin:0; }
.home-food__lead { font-size:var(--text-lg); line-height:var(--leading-lg); font-weight:500; }
.home-food__steps { display:flex; width:100%; min-width:0; flex-direction:column; gap:var(--space-3); padding:0; list-style:none; }
.home-food__steps li { display:grid; grid-template-columns:32px minmax(0,1fr); align-items:start; gap:var(--space-3); }
.home-food__steps li > span { display:flex; width:32px; min-width:32px; height:32px; align-items:center; justify-content:center; border-radius:50%; background:var(--color-mustard-400); font-family:var(--font-heading); font-weight:800; }
.home-food__steps li > div { min-width:0; max-width:42ch; }

.home-offline__panel { position:relative; display:grid; grid-template-columns:minmax(0,7fr) minmax(260px,5fr); gap:var(--space-6); overflow:hidden; border-radius:var(--radius-xl); background:var(--color-indigo-900); box-shadow:var(--shadow-raised); padding:56px; color:var(--color-white-100); }
.home-offline__content { display:flex; min-width:0; max-width:560px; flex-direction:column; align-items:flex-start; gap:var(--space-4); }
.home-offline__content h2, .home-offline__content p { margin:0; color:var(--color-white-100); }
.home-offline__rule { border-radius:var(--radius-md); background:rgba(255,255,255,.14); padding:var(--space-4); font-family:var(--font-heading); font-size:var(--text-lg); font-weight:700; line-height:var(--leading-lg); }
.home-offline__button { position:relative; z-index:1; display:inline-flex; min-height:48px; align-items:center; justify-content:center; border-radius:var(--radius-md); background:var(--color-white-100); padding:12px 18px; color:var(--color-indigo-900); font-family:var(--font-heading); font-weight:700; text-decoration:none; }
.home-offline__guide { position:relative; z-index:1; display:flex; min-width:0; align-self:end; flex-direction:column; align-items:flex-start; gap:var(--space-3); border-radius:var(--radius-lg); background:var(--color-white-100); padding:var(--space-5); color:var(--color-indigo-900); text-decoration:none; box-shadow:var(--shadow-card); }
.home-offline__guide h3, .home-offline__guide p { margin:0; }
.home-offline__guide > span:last-child { color:var(--color-indigo-700); font-family:var(--font-heading); font-weight:700; }
.home-offline__guide-tag { border-radius:var(--radius-pill); background:rgba(240,120,99,.2); padding:4px 10px; font-size:var(--text-xs); font-weight:700; }
.home-offline__card-shape { position:absolute; top:-42px; right:12%; width:130px; height:180px; border:2px solid rgba(255,255,255,.16); border-radius:28px; background:var(--color-indigo-500); transform:rotate(18deg); }

.home-guide__top { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); align-items:center; gap:var(--space-7); }
.home-guide__copy { width:100%; min-width:0; max-width:500px; }
.home-guide__media { width:100%; min-width:0; margin:0; aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius-lg); box-shadow:var(--shadow-card); }
.home-guide__media img { width:100%; height:100%; object-fit:cover; }
.home-guide__tips { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--grid-gap); margin-top:var(--space-6); }
.home-guide__tip { min-width:0; border-radius:var(--radius-lg); background:var(--color-white-100); box-shadow:var(--shadow-card); padding:var(--space-5); }
.home-guide__tip h3 { font-size:var(--text-lg); }

.home-private { background:var(--color-cloud-200); }
.home-private__panel { position:relative; display:flex; min-width:0; flex-direction:column; align-items:flex-start; gap:var(--space-6); overflow:hidden; border:var(--border-subtle); border-radius:var(--radius-xl); background:var(--color-white-100); box-shadow:var(--shadow-card); padding:56px; }
.home-private__intro { width:100%; min-width:0; max-width:560px; }
.home-private__intro p { margin-bottom:0; }
.home-private__scenarios { display:grid; width:100%; min-width:0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-5); }
.home-private__scenarios article { min-width:0; border-top:1px solid rgba(32,32,79,.12); padding-top:var(--space-4); }
.home-private__scenarios span { color:var(--color-coral-500); font-family:var(--font-heading); font-weight:800; }
.home-private__scenarios h3 { margin-top:var(--space-2); font-size:var(--text-lg); }
.home-private__scenarios p { margin-bottom:0; }
.home-private__actions { display:flex; min-width:0; flex-wrap:wrap; align-items:center; gap:var(--space-4); }
.home-private__actions > * { width:auto; min-width:0; }
.home-private__coral-shape { position:absolute; right:-34px; top:34px; width:126px; height:126px; border-radius:42px; background:var(--color-coral-500); opacity:.35; transform:rotate(18deg); }

.home-gallery__intro { width:100%; max-width:520px; }
.home-gallery__grid { display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:var(--grid-gap); margin-top:var(--space-6); }
.home-gallery__frame { display:flex; min-width:0; flex-direction:column; gap:var(--space-2); color:var(--color-indigo-900); font-weight:600; text-decoration:none; }
.home-gallery__frame img { width:100%; min-width:0; object-fit:cover; border-radius:var(--radius-xl); box-shadow:var(--shadow-card); }
.home-gallery__frame--wide img { aspect-ratio:16/9; }
.home-gallery__frame--portrait img { aspect-ratio:4/5; }

.home-faq { background:var(--color-cloud-200); }
.home-faq__layout { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); align-items:start; gap:var(--space-7); }
.home-faq__intro { width:100%; min-width:0; max-width:420px; }
.home-faq__list { display:flex; min-width:0; flex-direction:column; gap:var(--space-3); }
.home-faq__list details { width:100%; margin:0; }
.home-faq__list summary { position:relative; min-height:52px; padding-right:52px; list-style:none; }
.home-faq__list summary::-webkit-details-marker { display:none; }
.home-faq__list summary::after { position:absolute; top:50%; right:var(--space-4); width:20px; height:2px; background:var(--color-indigo-700); content:""; transform:translateY(-50%); }
.home-faq__list summary::before { position:absolute; top:50%; right:calc(var(--space-4) + 9px); width:2px; height:20px; background:var(--color-indigo-700); content:""; transform:translateY(-50%); }
.home-faq__list details[open] summary::before { display:none; }
.home-faq__list details p { max-width:58ch; }

.home-start__intro { width:100%; max-width:520px; }
.home-start__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--grid-gap); margin-top:var(--space-6); }
.home-start__grid a { display:flex; min-width:0; min-height:190px; flex-direction:column; align-items:flex-start; gap:var(--space-3); border:var(--border-subtle); border-radius:var(--radius-lg); background:var(--color-white-100); box-shadow:var(--shadow-card); padding:var(--space-5); color:var(--color-indigo-900); text-decoration:none; transition:transform var(--transition-fast),box-shadow var(--transition-fast); }
.home-start__grid a h3, .home-start__grid a p { margin:0; }
.home-start__grid a > span:last-child { margin-top:auto; color:var(--color-indigo-700); font-family:var(--font-heading); font-weight:700; }
.home-start__grid a:hover { transform:translateY(-2px); box-shadow:var(--shadow-raised); color:var(--color-indigo-900); }

.home-location__panel { position:relative; display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); align-items:center; overflow:hidden; border:var(--border-subtle); border-radius:var(--radius-xl); background:var(--color-white-100); box-shadow:var(--shadow-card); padding:var(--space-7); }
.home-location__copy { display:flex; min-width:0; max-width:540px; flex-direction:column; align-items:flex-start; gap:var(--space-4); }
.home-location__copy h2, .home-location__copy p { margin:0; }
.home-location__address { max-width:440px; font-family:var(--font-heading); font-size:var(--text-xl); font-weight:800; line-height:var(--leading-xl); }
.home-location__table-shape { justify-self:center; width:180px; height:116px; border:15px solid var(--color-indigo-500); border-radius:48px; box-shadow:0 16px 0 rgba(32,32,79,.09); }

.home-final__panel { position:relative; display:flex; min-width:0; max-width:960px; margin-inline:auto; flex-direction:column; align-items:center; gap:var(--space-4); overflow:hidden; border-radius:var(--radius-xl); background:var(--color-indigo-700); padding:56px; color:var(--color-white-100); text-align:center; box-shadow:var(--shadow-raised); }
.home-final__copy { display:flex; width:100%; min-width:0; max-width:520px; flex-direction:column; align-items:center; gap:var(--space-4); }
.home-final__copy h2, .home-final__copy p { margin:0; color:var(--color-white-100); }
.home-final__copy .button-secondary { width:auto; position:relative; z-index:1; }
.home-final__detail { position:absolute; right:-20px; bottom:-36px; width:136px; height:160px; border-radius:30px; background:var(--color-mustard-400); transform:rotate(18deg); }

@media (max-width:1020px) {
  .home-start__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px) {
  .home-pillars__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-pillars__grid > :nth-child(3) { grid-column:1 / -1; }
  .home-food__layout, .home-guide__top, .home-faq__layout { grid-template-columns:minmax(0,1fr); gap:var(--space-6); }
  .home-food__copy, .home-guide__copy, .home-faq__intro { max-width:none; }
  .home-offline__panel { grid-template-columns:minmax(0,1fr); padding:var(--space-6); }
  .home-offline__guide { width:100%; align-self:auto; max-width:420px; }
  .home-guide__tips, .home-private__scenarios { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-guide__tips > :nth-child(3), .home-private__scenarios > :nth-child(3) { grid-column:1 / -1; }
}

@media (max-width:760px) {
  .home-hero { min-height:680px; padding:var(--space-5) 0; }
  .home-hero__image { object-position:center center; }
  .home-hero__panel { width:calc(100% - 32px); padding:var(--space-5); }
  .home-hero__actions { flex-direction:column; align-items:stretch; }
  .home-hero__actions > * { width:100%; }
  .home-location__panel { grid-template-columns:minmax(0,1fr); padding:var(--space-6); }
  .home-location__table-shape { position:absolute; right:-42px; bottom:-44px; width:126px; height:82px; opacity:.32; }
}

@media (max-width:639px) {
  .home-hero__panel { gap:var(--space-3); }
  .home-hero__panel p { max-width:none; font-size:var(--text-base); }
  .home-pillars__grid, .home-guide__tips, .home-private__scenarios, .home-gallery__grid, .home-start__grid { grid-template-columns:minmax(0,1fr); gap:var(--space-4); }
  .home-pillars__grid > :nth-child(3), .home-guide__tips > :nth-child(3), .home-private__scenarios > :nth-child(3) { grid-column:auto; }
  .home-pillar-card { min-height:0; }
  .home-food__layout { gap:var(--space-5); }
  .home-offline__panel, .home-private__panel, .home-final__panel { padding:var(--space-5); }
  .home-offline__card-shape { right:-56px; width:110px; height:154px; opacity:.55; }
  .home-offline__content { gap:var(--space-3); }
  .home-offline__button { width:100%; }
  .home-private__scenarios { gap:0; }
  .home-private__scenarios article { padding-block:var(--space-4); }
  .home-private__actions { width:100%; flex-direction:column; align-items:stretch; }
  .home-private__actions > * { width:100%; }
  .home-gallery__frame--portrait img { aspect-ratio:4/3; }
  .home-final__copy .button-secondary { width:100%; }
  .home-final__detail { width:90px; height:112px; opacity:.7; }
}

@media (prefers-reduced-motion: reduce) {
  .home-pillar-card, .home-start__grid a { transition:none; }
}
