/*
Theme Name: Osteria Solare
Author: WordPress Telex
Description: A dramatic, cinematic Italian restaurant theme inspired by Caravaggio lighting — rich amber tones, deep charcoal atmosphere, and elegant serif typography that captures the soul of authentic Italian cuisine.
Version: 0.1.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: osteria-solare
Tags: block-theme, full-site-editing, restaurant, italian, dark, elegant
*/

/* Equal-height card columns */
.equal-cards > .wp-block-column {
  display: flex;
  flex-direction: column;
  flex-grow: 0;
}
.equal-cards > .wp-block-column > .wp-block-group {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.equal-cards .cta-bottom {
  margin-top: auto;
  justify-content: center;
}

.wp-site-blocks > footer {
  margin-block-start: 0;
}

/* Decorative separator */
.wp-block-separator.is-style-osteria-ornament {
  border: none !important;
  height: 40px !important;
  background: transparent !important;
  position: relative;
}
.wp-block-separator.is-style-osteria-ornament::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #E8C84A, transparent);
}
.wp-block-separator.is-style-osteria-ornament::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 6px;
  height: 6px;
  background: #E8C84A;
  border-radius: 50%;
}

/* Gold thin separator */
.wp-block-separator.is-style-gold-line {
  border: none !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, #E8C84A, transparent) !important;
  opacity: 0.4;
}

/* Navigation styling */
.osteria-nav .wp-block-navigation__container {
  gap: 2.5rem;
}
.osteria-nav .wp-block-navigation-item a {
  font-size: 0.75rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  opacity: 0.85;
  transition: opacity 0.2s, color 0.2s;
}
.osteria-nav .wp-block-navigation-item a:hover {
  opacity: 1;
  color: #E8C84A !important;
}

/* Grain overlay for hero */
.osteria-grain::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0.08;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 128px 128px;
  pointer-events: none;
}

/* Hero accent bar */
.osteria-accent-bar {
  height: 3px;
  background: linear-gradient(90deg, transparent, #8B2E16, #E8C84A, #3D5A2F, transparent);
  opacity: 0.5;
}

/* Corner decorations */
.osteria-corner-tl {
  position: absolute;
  top: 100px;
  left: 2rem;
  width: 80px;
  height: 80px;
  border-top: 1px solid #E8C84A;
  border-left: 1px solid #E8C84A;
  opacity: 0.15;
  pointer-events: none;
  z-index: 3;
}
.osteria-corner-br {
  position: absolute;
  bottom: 100px;
  right: 2rem;
  width: 80px;
  height: 80px;
  border-bottom: 1px solid #E8C84A;
  border-right: 1px solid #E8C84A;
  opacity: 0.15;
  pointer-events: none;
  z-index: 3;
}

/* Vertical side text */
.osteria-side-text {
  position: absolute;
  z-index: 3;
  font-size: 0.55rem;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  opacity: 0.2;
  writing-mode: vertical-rl;
  pointer-events: none;
}
.osteria-side-left {
  left: 2rem;
  top: 50%;
  transform: translateY(-50%);
}
.osteria-side-right {
  right: 2rem;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
}

/* Decorative vertical line */
.osteria-decorative-line {
  width: 1px;
  height: 60px;
  background: linear-gradient(180deg, transparent, #E8C84A, transparent);
  opacity: 0.6;
  margin: 0 auto 2rem;
}

/* Scroll indicator */
.osteria-scroll-indicator {
  text-align: center;
}
.osteria-scroll-indicator p {
  font-size: 0.6rem !important;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  opacity: 0.5;
}
.osteria-scroll-line {
  width: 1px;
  height: 40px;
  background: linear-gradient(180deg, #E8C84A, transparent);
  opacity: 0.4;
  margin: 0.75rem auto 0;
}

/* Menu category card hover */
.menu-category-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  overflow: hidden;
}
.menu-category-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.4);
}

/* Service card styling */
.service-card {
  border: 1px solid rgba(232, 200, 74, 0.12);
  transition: border-color 0.3s ease, transform 0.3s ease;
}
.service-card:hover {
  border-color: rgba(232, 200, 74, 0.3);
  transform: translateY(-2px);
}

/* Blog post card */
.blog-post-card {
  overflow: hidden;
  transition: transform 0.3s ease;
}
.blog-post-card:hover {
  transform: translateY(-3px);
}

/* Button styles */
.wp-block-button.is-style-osteria-primary .wp-block-button__link {
  background: #8B2E16 !important;
  color: #FFF9EF !important;
  border: 1px solid #8B2E16 !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 0.85rem 2rem !important;
  transition: background 0.3s ease, border-color 0.3s ease;
}
.wp-block-button.is-style-osteria-primary .wp-block-button__link:hover {
  background: #a33a1d !important;
  border-color: #a33a1d !important;
}

.wp-block-button.is-style-osteria-outline .wp-block-button__link {
  background: transparent !important;
  color: #E8C84A !important;
  border: 1px solid rgba(232, 200, 74, 0.4) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 0.85rem 2rem !important;
  transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.wp-block-button.is-style-osteria-outline .wp-block-button__link:hover {
  background: rgba(232, 200, 74, 0.1) !important;
  border-color: #E8C84A !important;
}

/* Fade-in animation */
@keyframes osteriaFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
.osteria-fade-up {
  animation: osteriaFadeUp 0.8s ease forwards;
}
.osteria-fade-up-delay-1 {
  animation: osteriaFadeUp 0.8s 0.15s ease forwards;
  opacity: 0;
}
.osteria-fade-up-delay-2 {
  animation: osteriaFadeUp 0.8s 0.3s ease forwards;
  opacity: 0;
}
.osteria-fade-up-delay-3 {
  animation: osteriaFadeUp 0.8s 0.45s ease forwards;
  opacity: 0;
}

/* Image hover zoom */
.osteria-image-zoom {
  overflow: hidden;
}
.osteria-image-zoom img {
  transition: transform 0.6s ease;
}
.osteria-image-zoom:hover img {
  transform: scale(1.05);
}

/* Responsive adjustments */
@media (max-width: 782px) {
  .osteria-corner-tl,
  .osteria-corner-br,
  .osteria-side-text {
    display: none;
  }
  .osteria-nav .wp-block-navigation__container {
    gap: 1.5rem;
  }
}