/* ==========================================================================
   Home Page Styles
   Main styles for the homepage: Kizuna Restaurant & Squareup
   Structure:
   - Layout Overrides (Curtain, Transparent Header)
   - Hero Section
   - Our Story Section
   - Announcements Section
   - Menu Preview Grid
   - About Masa Section
   - Animations & Keyframes
   - Responsive Media Queries
   ========================================================================== */

/* ==========================================================================
   1. Layout Overrides & Global Home Elements
   ========================================================================== */

/* Page loading curtain */
.page-curtain {
  background-color: var(--c-parchment);
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  transition: opacity 1s ease-in-out, visibility 1s ease-in-out;
  width: 100%;
  z-index: 990;
}

.page-curtain.fade-out {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

/* Modifier for the header to be transparent and overlay the hero section */
.header-transparent-overlay {
  -webkit-backdrop-filter: blur(0);
  backdrop-filter: blur(0);
  background-color: transparent;
  border-bottom: 1px solid rgba(255, 255, 255, 0);
  box-shadow: none;
  left: 0;
  margin: 0;
  opacity: 0;
  padding: 1.5rem 0;
  pointer-events: none;
  position: fixed;
  top: 0;
  transform: translateY(-100%);
  transition:
    backdrop-filter 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    background-color 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    border-bottom 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    padding 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  width: 100%;
  z-index: 989;
}

.header-transparent-overlay.scrolled {
  -webkit-backdrop-filter: blur(1rem);
  backdrop-filter: blur(1rem);
  background-color: rgba(212, 194, 168, 0.75);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.1);
  opacity: 1;
  padding: 0.5rem 0;
  pointer-events: auto;
  position: fixed;
  transform: translateY(0);
  z-index: 1000;
}

/* ==========================================================================
   2. Hero Section (Carousel & Logo)
   ========================================================================== */

.hero-image-container {
  align-items: center;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  height: 100vh;
  justify-content: center;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.hero-image-container::after {
  background-color: var(--c-faded-copper);
  content: '';
  height: 100%;
  left: 0;
  mix-blend-mode: multiply;
  opacity: 0.35;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

.hero-image-container::before {
  background-color: #000;
  content: '';
  height: 100%;
  left: 0;
  opacity: 0.2;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 2;
}

.hero-image-container .hero-bg-image {
  animation-duration: 24s;
  animation-iteration-count: infinite;
  animation-name: crossfade;
  animation-timing-function: linear;
  height: 100%;
  left: 0;
  object-fit: cover;
  opacity: 0;
  position: absolute;
  top: 0;
  width: 100%;
  will-change: opacity, transform;
}

.hero-image-container .hero-bg-image:nth-of-type(1) {
  animation-delay: 0s;
}

.hero-image-container .hero-bg-image:nth-of-type(2) {
  animation-delay: 6s;
}

.hero-image-container .hero-bg-image:nth-of-type(3) {
  animation-delay: 12s;
}

.hero-image-container .hero-bg-image:nth-of-type(4) {
  animation-delay: 18s;
}

.hero-logo-group {
  align-items: center;
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 991;
}

.hero-logo-group .hero-logo {
  animation: fadeInLogo 1.5s 0.5s ease-in forwards;
  filter: drop-shadow(0 0 0.625rem rgba(255, 255, 255, 0.8));
  margin: 0 0.5rem;
  max-height: 55vh;
  max-width: 70vw;
  opacity: 0;
}

.hero-main-title {
  animation: fadeInLogo 1.5s 1s ease-in forwards;
  color: var(--c-carbon-black);
  filter: drop-shadow(0 0 0.625rem rgba(255, 255, 255, 0.8));
  font-family: var(--font-serif);
  font-size: clamp(1.8rem, 5vw, 2.5rem);
  font-style: italic;
  margin-bottom: 1rem;
  opacity: 0;
  position: relative;
  text-align: center;
  z-index: 991;
}

.hero-main-title::before {
  animation: pulseGlow 4s infinite ease-in-out;
  background: radial-gradient(ellipse at center, var(--c-pale-oak) 0%, transparent 70%);
  content: '';
  filter: blur(1.25rem);
  height: 120%;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 150%;
  z-index: -1;
}

.hero-logo-text {
  animation: fadeInLogo 1.5s 1.2s ease-in forwards;
  color: var(--c-carbon-black);
  filter: drop-shadow(0 0 0.625rem rgba(255, 255, 255, 0.8));
  font-family: var(--font-serif);
  font-size: clamp(3rem, 8vw, 8rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  opacity: 0;
  position: relative;
  text-transform: none;
  z-index: 1;
}

.hero-logo-text::before {
  animation: pulseGlow 5s infinite ease-in-out reverse;
  background: radial-gradient(ellipse at center, var(--c-pale-oak) 0%, transparent 70%);
  content: '';
  filter: blur(0.9375rem);
  height: 100%;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 110%;
  z-index: -1;
}

/* ==========================================================================
   3. Our Story Section
   ========================================================================== */

/* Style for our story removed to inherit from main.css */

.our-story-content {
  display: grid;
  gap: 2.5rem;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 auto;
  max-width: 75rem;
  position: relative;
}

.our-story-content::before,
.our-story-content::after {
  content: '';
  height: 3.75rem;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  transition: all 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.5s;
  width: 3.75rem;
  z-index: 10;
}

.our-story-content::before {
  border-left: 0.1875rem solid var(--c-faded-copper);
  border-top: 0.1875rem solid var(--c-faded-copper);
  left: -1.25rem;
  top: -1.25rem;
  transform: translate(-1.875rem, -1.875rem);
}

.our-story-content::after {
  border-bottom: 0.1875rem solid var(--c-faded-copper);
  border-right: 0.1875rem solid var(--c-faded-copper);
  bottom: -1.25rem;
  right: -1.25rem;
  transform: translate(1.875rem, 1.875rem);
}

.story-column {
  align-items: center;
  border-radius: 0.75rem;
  box-shadow: 0 0.25rem 0.375rem rgba(0, 0, 0, 0.1);
  cursor: pointer;
  display: flex;
  height: 22rem;
  justify-content: center;
  opacity: 0;
  overflow: hidden;
  position: relative;
  text-align: center;
  transform: translateY(3.75rem);
  transition:
    opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1),
    transform 1.2s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.4s ease;
}

.story-column h2 {
  color: var(--c-parchment);
  font-family: var(--font-primary);
  font-size: clamp(1.2rem, 3.5vw, 1.7rem);
  font-weight: normal;
  margin: 0;
  position: absolute;
  text-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.75);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 2;
  text-transform: uppercase;
}

.story-column p {
  color: var(--c-parchment);
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0;
  opacity: 0;
  padding: 2rem;
  position: absolute;
  text-shadow: 0 0.0625rem 0.25rem rgba(0, 0, 0, 0.8);
  transform: translateY(1.25rem);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 2;
}

.story-column:hover h2 {
  opacity: 0;
  transform: translateY(-1.25rem);
}

.story-column:hover p {
  opacity: 1;
  transform: translateY(0);
}

.story-column img {
  filter: brightness(0.5) contrast(1.1);
  height: 100%;
  object-fit: cover;
  transition: filter 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  width: 100%;
}

.story-column:hover img {
  filter: brightness(0.3) contrast(1.2);
  transform: scale(1.1);
}

section.our-story.visible .story-column {
  opacity: 1;
  transform: translateY(0);
}

section.our-story.visible .our-story-content::before,
section.our-story.visible .our-story-content::after {
  opacity: 0.8;
  transform: translate(0, 0);
}

section.our-story.visible .story-column:hover {
  box-shadow: 0 1.25rem 2.5rem rgba(166, 127, 91, 0.4);
  transform: translateY(-0.5rem);
}

/* ==========================================================================
   4. Announcements Section
   ========================================================================== */

.announcements {
  align-items: center;
  background-blend-mode: overlay;
  background-color: var(--c-coffee-bean);
  background-image: url("/static/woodtexture2.webp");
  background-repeat: repeat;
  border-radius: 0.5rem;
  box-sizing: border-box;
  color: var(--c-parchment);
  display: grid;
  gap: 2.5rem;
  grid-template-columns: 1.2fr 1fr;
  min-height: 25rem;
  padding: 2.5rem;
  position: relative;
}

.announcements::before {
  background-color: rgba(26, 26, 26, 0.7);
  border-radius: 0.5rem;
  bottom: 0;
  content: '';
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

.announcement-text-container {
  position: relative;
  text-align: left;
  z-index: 2;
}

.announcement-text {
  font-size: 1rem;
  line-height: 1.6rem;
  white-space: pre-line;
}

.announcements .announcement-image {
  border-radius: 0.5rem;
  box-shadow: 0 0.5rem 1.5rem rgba(255, 255, 255, 0.176);
  filter: brightness(1.3);
  height: 100%;
  max-height: 25rem;
  position: relative;
  z-index: 2;
}

.announcements .announcement-text-container,
.announcements .announcement-image {
  opacity: 0;
  transform: translateY(1.875rem);
  transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
}

section.announcements-section.visible .announcement-text-container {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}

section.announcements-section.visible .announcement-image {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.4s;
}

/* ==========================================================================
   5. Menu Preview Grid
   ========================================================================== */

.menu-container {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  justify-content: center;
  max-width: 100%;
  text-align: center;
  width: 100%;
}

.menu-grid-top,
.menu-grid-bottom {
  display: grid;
  gap: 0.5rem;
  position: relative;
}

.menu-grid-top {
  aspect-ratio: 4 / 1;
  grid-template-columns: 1.5fr 1fr;
  height: auto;
}

.menu-grid-bottom {
  aspect-ratio: 2.5 / 1;
  grid-template-columns: 1.5fr 1fr;
  height: auto;
}

.menu-grid-top::before {
  border-left: 0.1875rem solid var(--c-faded-copper);
  border-top: 0.1875rem solid var(--c-faded-copper);
  content: '';
  height: 3.75rem;
  left: -1.25rem;
  opacity: 1;
  pointer-events: none;
  position: absolute;
  top: -1.25rem;
  width: 3.75rem;
  z-index: 10;
}

.menu-grid-bottom::after {
  border-bottom: 0.1875rem solid var(--c-faded-copper);
  border-right: 0.1875rem solid var(--c-faded-copper);
  bottom: -1.25rem;
  content: '';
  height: 3.75rem;
  opacity: 1;
  pointer-events: none;
  position: absolute;
  right: -1.25rem;
  width: 3.75rem;
  z-index: 10;
}

.menu-grid-bottom__left-group {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: 1fr 1fr;
}

.menu-column {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-height: 100%;
}

.menu-image-link {
  align-items: center;
  border-radius: 0.5rem;
  display: flex;
  justify-content: center;
  max-height: 100%;
  opacity: 0;
  overflow: hidden;
  position: relative;
  text-decoration: none;
  transform: translateY(3.75rem);
  transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.menu-image-link img {
  aspect-ratio: 4 / 3;
  display: block;
  filter: brightness(0.5);
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease, filter 0.3s ease;
  width: 100%;
}

.menu-image-link.visible {
  opacity: 1;
  transform: translateY(0);
}

.menu-image-link--tall img {
  aspect-ratio: 4 / 5;
}

.menu-image-link:hover img {
  filter: brightness(0.3);
  transform: scale(1.1);
}

.menu-image-title {
  color: var(--c-parchment);
  font-size: clamp(1.2rem, 4vw, 1.7rem);
  opacity: 0;
  position: absolute;
  text-align: center;
  text-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.75);
  transform: translateY(0.625rem);
  transition: opacity 0.5s ease-out 0.4s, transform 0.5s ease-out 0.4s;
  width: 100%;
  text-transform: uppercase;
}

.menu-image-link.visible .menu-image-title {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
   6. Owner Chef (Masa) Section
   ========================================================================== */

section.about-masa {
  opacity: 0;
  transform: translateY(3.75rem);
  transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

section.about-masa.visible {
  opacity: 1;
  transform: translateY(0);
}

.about-masa .section-title {
  position: relative;
  text-align: center;
  z-index: 3;
}

.about-masa .section-content {
  align-items: center;
  display: grid;
  gap: 4rem;
  grid-template-columns: 1fr 1.5fr;
  margin: 0 auto;
  max-width: 68.75rem;
}

.masa-photo {
  justify-self: center;
  margin-right: 3rem;
  max-width: 25rem;
  position: relative;
}

.masa-photo .masa-main-photo {
  border-radius: 1rem;
  box-shadow: 0 1.25rem 2.5rem rgba(0, 0, 0, 0.2);
  height: auto;
  object-fit: cover;
  position: relative;
  width: 100%;
  z-index: 1;
}

.masa-photo .masa-figure {
  border-radius: 0.5rem;
  box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.15);
  height: auto;
  margin: 0 !important;
  position: absolute;
  right: -3rem;
  top: -2rem;
  transition: transform 0.4s ease;
  width: 40%;
  z-index: 2;
}

.masa-photo:hover .masa-figure {
  transform: translateY(-0.3125rem);
}

.masa-description {
  color: var(--c-carbon-black);
  text-align: left;
}

.masa-description h3 {
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
  text-align: left;
}

.masa-description p {
  font-size: 1rem;
  line-height: 1.8;
  margin-bottom: 1.5rem;
}

/* ==========================================================================
   Home-Specific Title Animations
   ========================================================================== */

body[data-page="home"] .section-title {
  font-family: var(--font-serif);
  opacity: 0;
  transform: translateY(1.875rem);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}

body[data-page="home"] .section-title.visible {
  opacity: 1;
  transform: translateY(0);
}

body[data-page="home"] .section-title::after {
  background-image: url('/static/patterns/seigaiha-accent.svg');
  margin-top: -1.25rem;
}

/* ==========================================================================
   7. Keyframe Animations
   ========================================================================== */

@keyframes crossfade {
  0% {
    opacity: 0;
    transform: scale(1);
  }

  8.3% {
    opacity: 1;
  }

  25% {
    opacity: 1;
  }

  33% {
    opacity: 0;
    transform: scale(1.1);
  }

  100% {
    opacity: 0;
    transform: scale(1.1);
  }
}

@keyframes pulseGlow {

  0%,
  100% {
    opacity: 0.8;
    transform: translate(-50%, -50%) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.05);
  }
}

@keyframes fadeInLogo {
  to {
    opacity: 1;
  }
}

/* ==========================================================================
   8. Responsive Media Queries
   ========================================================================== */
/* Large Screens / Tablets (1296px) - Switch hero logo to vertical */
@media (max-width: 81rem) {
  .hero-logo-group {
    flex-direction: column;
    transform: translateY(-2vh);
  }

  .hero-logo-group .hero-logo {
    max-width: 80vw;
  }

  .hero-logo-text {
    padding: 0 1.25rem;
  }

  .hero-main-title {
    padding: 0 1.5rem;
  }

  .story-column p {
    font-size: 0.9rem;
    padding: 1.5rem;
  }
}

/* Standard Tablets */
@media (max-width: 56.5625rem) {
  .about-masa .section-content {
    gap: 2rem;
  }

  .our-story-content {
    gap: 2rem;
    grid-template-columns: repeat(3, 1fr);
    /* Keep 3 columns on standard tablets */
  }

  .story-column p {
    text-align: center;
    font-size: 0.85rem;
    padding: 1.25rem;
  }

  .story-column h2 {
    font-size: 1.35rem;
  }

  section.announcements::before {
    border-radius: 1rem;
  }
}

/* Mid-sized Screens (760px) */
@media (max-width: 47.5rem) {
  .our-story-content {
    grid-template-columns: 1fr;
  }

  .story-column {
    height: 13rem;
  }

  .story-column h2 {
    opacity: 1 !important;
    transform: translateY(-4.5rem) !important;
    letter-spacing: 0.1em;
  }

  .story-column p {
    align-items: center;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.7) 50%, transparent 100%);
    display: flex;
    font-size: 0.75rem;
    height: 100%;
    justify-content: center;
    line-height: 1.3;
    opacity: 1 !important;
    padding: 0 1rem 1rem;
    width: 100%;
  }

  /* Disable hover transitions on mobile */
  .story-column:hover h2 {
    opacity: 1 !important;
    transform: translateY(-3.5rem) !important;
  }

  .story-column:hover img {
    filter: brightness(0.5) contrast(1.1) !important;
    transform: none !important;
  }

  section.our-story.visible .story-column:hover {
    box-shadow: 0 0.25rem 0.375rem rgba(0, 0, 0, 0.1) !important;
    transform: none !important;
  }

  .about-masa .section-content {
    gap: 3rem;
    grid-template-columns: 1fr;
    text-align: center;
  }

  .hero-image-container {
    margin-bottom: 2rem;
  }

  .masa-description h3 {
    text-align: center;
  }

  .masa-description p {
    margin: 0;
    padding: 0 1rem;
  }

  .masa-photo {
    justify-self: center;
    margin: 0 auto 3rem;
    max-width: 16rem;
    padding-right: 2rem;
    position: relative;
    width: 100%;
  }

  .masa-photo .masa-figure {
    border-radius: 0.5rem;
    box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.15);
    height: auto;
    margin: 0 !important;
    position: absolute;
    right: 0rem;
    top: -1.5rem;
    width: 35%;
    z-index: 2;
  }

  .announcements {
    border-radius: 1rem;
    grid-template-columns: 1fr;
    padding: 1.5rem;
    width: calc(100% - 2rem);
    margin: 0 auto;
  }


  /* Bento Menu Mobile Overrides */
  .menu-grid-top,
  .menu-grid-bottom {
    aspect-ratio: auto;
    grid-template-columns: 1fr;
  }

  .menu-grid-bottom__left-group {
    grid-template-columns: 1fr 1fr;
  }

  .menu-image-link {
    height: 12rem;
  }

  .menu-image-link--tall {
    height: 14rem;
  }

  .menu-image-link img {
    aspect-ratio: auto;
    height: 100%;
  }

  /* Brush frame adjustments */
  .menu-grid-top::before {
    height: 2.5rem;
    left: -0.75rem;
    top: -0.75rem;
    width: 2.5rem;
  }

  .menu-grid-bottom::after {
    bottom: -0.75rem;
    height: 2.5rem;
    right: -0.75rem;
    width: 2.5rem;
    margin: 0;
  }

}
