/* ==========================================
   GOBOLD BASE THEME — MAIN.CSS
   ========================================== */
/* ===============================
   COLOR + FONT VARIABLES
   =============================== */
:root {
  --color-dark: #272020;
  --color-primary: #8e1616;
  --color-accent: #dc1e1e;
  --color-light: #FFFFFF;
  --color-grey: #D9D9D9;

  --font-display: 'oswaldregular', 'Oswald', sans-serif;
  --font-display-l: 'oswald_light', sans-serif;
  --font-display-b: 'oswald_demibold', sans-serif;
  --font-body: 'montserratlight', 'Montserrat', sans-serif;
  --font-body-r: 'montserratregular', sans-serif;
  --font-script: 'natuberegular', cursive;
}

/* ===============================
   BASE TYPOGRAPHY
   =============================== */
html {
  font-size: 18px; /* Comfortable reading base */
}

body {
  font-family: var(--font-body-r);
  font-size: clamp(17px, 1vw + 0.5rem, 19px); /* Responsive scaling */
  line-height: 1.65;
  color: var(--color-dark);
  background-color: var(--color-light);
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* ===============================
   HEADINGS
   =============================== */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display-b);
  color: var(--color-dark);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  line-height: 1.2;
  margin: 0 0 1rem;
}

/* Type scale based on 18px base */
h1 { font-size: clamp(2.6rem, 4vw + 1rem, 4rem); } /* ~46–64px */
h2 { font-size: clamp(2rem, 3vw + 0.5rem, 3rem); } /* ~36–48px */
h3 { font-size: clamp(1.6rem, 2vw + 0.3rem, 2.4rem); } /* ~28–38px */
h4 { font-size: clamp(1.3rem, 1.4vw + 0.2rem, 1.8rem); }
h5 { font-size: 1.1rem; }
h6 { font-size: 1rem; }

/* ===============================
   PARAGRAPHS & SMALL TEXT
   =============================== */
p {
  margin: 0 0 1.5rem;
  font-weight: 300;
  line-height: 1.7;
}

small, .meta, .caption {
  font-size: 0.875rem;
  opacity: 0.85;
}

/* ===============================
   LINKS & BUTTONS
   =============================== */
a {
  color: var(--color-primary);
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover {
  color: var(--color-accent);
}

button,
a.button,
.btn {
  background-color: var(--color-primary);
  color: var(--color-light);
  border: none;
  padding: 0.75rem 1.5rem;
  font-family: var(--font-display);
  font-size: 0.95rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.3s ease;
  border-radius: 2px;
}

button:hover,
a.button:hover,
.btn:hover {
  background-color: var(--color-dark);
  color: var(--color-light);
}

/* ===============================
   SECTION BACKGROUND ALTERNATION
   =============================== */
section:nth-of-type(even) { background-color: var(--color-grey); }
section:nth-of-type(odd) { background-color: var(--color-light); }

/* ===============================
   IMAGE & SVG RESET
   =============================== */
img, svg {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ===============================
   RESPONSIVE TYPOGRAPHY TWEAKS
   =============================== */

/* === TABLET (≤1024px) === */
@media (max-width: 1024px) {
  html { font-size: 17px; }

  h1 { font-size: 2.8rem; }
  h2 { font-size: 2.2rem; }
  h3 { font-size: 1.7rem; }
  h4 { font-size: 1.3rem; }

  body {
    line-height: 1.7;
  }
}

/* === MOBILE (≤768px) === */
@media (max-width: 768px) {
  html { font-size: 16px; }

  h1 { font-size: 2.2rem; }
  h2 { font-size: 1.8rem; }
  h3 { font-size: 1.4rem; }
  h4 { font-size: 1.2rem; }

  p {
    line-height: 1.75;
  }
}

/* ==================================
   INNER PAGES — STICKY HEADER
   ================================== */
.site-header-inner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background-color: var(--color-light);
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.header-inner-box {
  max-width: 1440px;
  width: 100%;
  padding: 0 64px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
}

.logo-ancho svg {
  height: 30px;
  width: auto;
  fill: currentColor;
  color: var(--color-primary);
  transition: color 0.3s ease, fill 0.3s ease;
}

.logo-ancho:hover svg {
  color: var(--color-dark);
  fill: currentColor;
}

.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  cursor: pointer;
  color: var(--color-primary);
  transition: color 0.3s ease;
}

.icon-btn:hover {
  color: var(--color-dark);
}

.header-right {
  display: flex;
  gap: 24px;
}



/* ===============================
   STICKY HEADER — FADE-IN VERSION
   =============================== */
#sticky {
  transition: opacity 0.4s ease;
  opacity: 0; /* start hidden */
  pointer-events: none; /* prevent hover/click until visible */
}

.site-sticky {
  background-color: var(--color-light);
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 80px;
  z-index: 1100;
  box-sizing: border-box;
}

.sticky-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 1440px;
  padding: 0 64px;
  height: 80px;
}

.box-left,
.box-right {
  display: flex;
  align-items: center;
}

.box-right {
  gap: 24px;
}

.logo-ancho svg {
  display: block;
  height: 40px;
  width: auto;
  color: var(--color-primary);
  fill: currentColor;
  transition: color 0.3s ease, fill 0.3s ease, transform 0.3s ease;
}

.logo-ancho:hover svg {
  color: var(--color-dark);
  fill: currentColor;
}

.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  cursor: pointer;
  height: 28px;
  transition: color 0.3s ease, fill 0.3s ease;
}

.icon-btn svg {
  height: 100%;
  width: auto;
  fill: currentColor;
}

.icon-btn:hover {
  color: var(--color-dark);
}

/* ===============================
   HAMBURGER (three-span) — base & X state
   =============================== */
.hamburger {
  position: fixed;
  top: 16px;
  right: 100px;
  width: 40px;
  height: 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  cursor: pointer;
  z-index: 2101;

  background: var(--color-light);
  padding: 12px 8px;
  border-radius: 50%;
}

.hamburger span {
  display: block;
  height: 4px;
  background: var(--color-primary);
  border-radius: 2px;
  transition: transform 0.35s cubic-bezier(.2,.9,.2,1), opacity 0.2s ease, background 0.25s ease;
}

/* Hover state */
.hamburger:hover span {
  background: var(--color-dark);
}

/* ACTIVE -> X */
.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translate(6px, 6px);
}
.hamburger.active span:nth-child(2) {
  opacity: 0;
  transform: translateX(-10px);
}
.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(6px, -6px);
}

.hamburger:focus {
  top: 16px;
  background: var(--color-light);
  padding: 12px 8px;
  border-radius: 50%;
}

/* ===============================
   SLIDE-DOWN MENU
=============================== */
.slidedown-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 60vh;
  background: var(--color-dark);
  color: var(--color-light);
  transform: translateY(-100%);
  opacity: 0;
  visibility: hidden;
  transition: transform 0.45s ease, opacity 0.45s ease;
  display: flex;
  justify-content: center;
  padding-top: 50px;
  z-index: 2100;
}

.slidedown-menu.open {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

.slidedown-inner {
  max-width: 1400px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  text-align: center;
}

.slidedown-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10rem;
  margin: 0;
  padding: 0;
}

.slidedown-list > li {
  position: relative;
}

/* Parent links and search button */
.slidedown-list > li > a,
.menu-search-button {
  font-family: var(--font-body-r);
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-light);
  font-size: 1.2rem;
  transition: color 0.3s ease;
  background: none;
  border: none;
  cursor: pointer;
}

.slidedown-list > li > a:hover,
.menu-search-button:hover {
  color: var(--color-accent);
}

/* Sub-menu */
.sub-menu {
  display: flex;
  flex-direction: column;
  margin-top: 0.5rem;
  gap: 0.5rem;
  list-style: none;
  text-align: left;
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--color-dark);
  padding: 0.5rem 1rem;
  border-radius: 4px;
  min-width: 200px;
  z-index: 2200;
}

.sub-menu li a {
  text-transform: none;
  font-size: 1rem;
  color: var(--color-light);
  opacity: 0.9;
}

.sub-menu li a:hover {
  color: var(--color-accent);
}

/* Signature SVG */
.menu-signature {
  margin-top: 1rem;
  margin-left: -2rem;
  text-align: left;
}

.menu-signature svg {
  width: 120px;
  height: auto;
  fill: var(--color-light);
  opacity: 0.85;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.menu-signature svg:hover {
  opacity: 1;
  transform: scale(1.05);
  fill: var(--color-accent);
}

/* Search overlay */
.search-overlay {
  position: fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background: rgba(0,0,0,0.85);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease;
  z-index: 3000;
}

.search-overlay.open {
  opacity: 1;
  visibility: visible;
}

.search-inner {
  max-width: 600px;
  width: 90%;
}

.search-field {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
}

.search-submit {
  display: none;
}

/* Header search toggle (SVG icon) */
.header-search-toggle {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--color-light);
}

.header-search-toggle svg {
  width: 100%;
  height: auto;
  display: block;
  color: var(--color-light);
  fill: currentColor;
}

.header-search-toggle svg:hover {
  color: var(--color-accent);
  fill: currentColor;
}

/* Hamburger */
.hamburger {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 38px;
  height: 30px;
  cursor: pointer;
  margin-right: 4rem;
}

.hamburger span {
  display: block;
  height: 5px;
  width: 100%;
  background: var(--color-primary);
  border-radius: 2px;
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.hamburger.active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* Responsive */
@media(max-width:768px){
  .slidedown-list {
    flex-direction: column;
    gap: 1.5rem;
  }

  .sub-menu {
    position: relative;
    top: auto;
    left: auto;
    text-align: center;
    gap: 1rem;
    min-width: auto;
    padding: 0;
  }
}



/* ===============================
   HERO SECTION
   =============================== */
/* === HERO SECTION === */
.hero-section {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #000;
}

.hero-image {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  object-position: center top;
  z-index: 1;
}

/* Overlay tint for contrast */
.hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
  z-index: 2;
}

/* Inner content wrapper */
.hero-inner {
  position: relative;
  z-index: 3;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transform: translateY(60px); /* moves all hero content slightly down for better centering */
}

/* Large logo that scales consistently across browsers */
.hero-logo {
  display: block;
  max-width: 94vw;
  width: 1540px;
  height: auto;
  margin: 0 auto 2rem auto;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
  transition: transform 0.4s ease, opacity 0.4s ease;
}

/* Tagline styling */
.hero-tagline {
  font-family: 'natuberegular', cursive;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  color: var(--color-light);
  margin-top: 5rem;
  margin-bottom: 4rem; /* spacing for the arrow */
  letter-spacing: 0.5px;
  transition: opacity 0.4s ease, transform 0.4s ease;
}

/* Scroll down (now properly spaced below tagline) */
.hero-scroll-down {
  position: relative;
  margin: 0 auto;
  cursor: pointer;
  color: var(--color-light);
  height: 40px;
  width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease, transform 0.3s ease;
  z-index: 10;
  animation: bounce 2s infinite;
}

.hero-scroll-down.fade-out {
  opacity: 0;
  pointer-events: none;
}

.hero-scroll-down svg {
  height: 100%;
  width: 100%;
  fill: currentColor;
}

/* Bounce animation for arrow */
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-10px);
  }
  60% {
    transform: translateY(-5px);
  }
}

/* Smooth transition for hero scroll */
.hero-logo,
.hero-tagline,
.hero-image {
  transition: transform 0.2s ease-out, opacity 0.2s ease-out;
  will-change: transform, opacity;
}

/* Responsive tweaks */
@media (max-width: 1024px) {
  .hero-inner {
    transform: translateY(40px);
  }
  .hero-logo {
    width: 90vw;
  }
}
@media (max-width: 768px) {
  .hero-inner {
    transform: translateY(30px);
  }
  .hero-logo {
    width: 90vw;
    margin-bottom: 1rem;
  }
  .hero-tagline {
    font-size: clamp(1.4rem, 4vw, 2rem);
    margin-bottom: 2rem;
  }
}

/* ===============================
   ID SLIDER SECTION
   =============================== */
.id-slider-section {
  width: 100%;
  background-color: var(--color-grey) !important;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 9rem 0 3rem 0;
  margin-bottom: 3rem;
}

.id-slider-track {
  display: flex;
  gap: 15px;
  align-items: center;
  transition: transform 0.8s ease-in-out;
  will-change: transform;
}

.id-slide {
  flex: 0 0 auto;
  height: 40vh;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.id-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

/* Optional slight zoom for center */
.id-slide:nth-child(3) img {
  transform: scale(1.05);
}

/* ===============================
   RECENT POSTS SECTION
   =============================== */
.recent-posts-section {
  background-color: var(--color-light) !important;
  width: 100%;
  padding: 60px 0 80px 0;
  display: flex;
  justify-content: center;
}

.recent-posts-inner {
  max-width: 1400px;
  width: 100%;
  padding: 0 32px;
}

.recent-posts-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--color-dark);
  margin-bottom: 48px;
}

.recent-posts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.recent-post-card {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.recent-post-image-link {
  display: block;
  overflow: hidden;
}

.recent-post-image {
  width: 100%;
  aspect-ratio: 3 / 4; /* tall rectangle like Saveur */
  object-fit: cover;
  transition: transform 0.4s ease;
}

.recent-post-image-link:hover .recent-post-image {
  transform: scale(1.05);
}

.recent-post-heading {
  font-family: var(--font-display-l);
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  color: var(--color-dark);
  margin-top: 16px;
}

.recent-post-heading a {
  color: var(--color-dark);
  text-decoration: none;
  transition: color 0.3s ease;
}

.recent-post-heading a:hover {
  color: var(--color-accent);
}

/* Responsive layout */
@media (max-width: 1024px) {
  .recent-posts-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .recent-posts-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

/* ===============================
   GRILL SKILLS SECTION (All Views)
   =============================== */

.grill-skills-section {
  background: url('../images/smoke.png') center center / cover no-repeat;
  width: 100%;
  color: var(--color-light);
  padding: 100px 0;
}

.grill-heading {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--color-light);
  text-align: center;
  margin: 0 auto 2rem auto;
  max-width: 1400px;
  padding: 0 20px;
}

.grill-skills-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ===============================
   DESKTOP (≥1025px)
   =============================== */
.grill-desktop { display: block; }
.grill-tablet,
.grill-mobile { display: none; }

.grill-grid {
  display: grid;
  grid-template-columns: 460px 575px 345px;
  grid-gap: 20px;
  justify-content: center;
}

/* --- Image sizing based on Saveur proportions --- */
.item-1 .grill-thumb { width: 440px; height: 550px; }
.item-2 .grill-thumb { width: 555px; height: 806px; }
.item-3 .grill-thumb,
.item-4 .grill-thumb { width: 325px; height: 406px; }

.item-3, .item-4 { grid-column: 3; }
.item-3 { grid-row: 1; }
.item-4 { grid-row: 2; margin-top: -22rem; }

.grill-item { color: var(--color-light); }

.grill-thumb {
  background-size: cover;
  background-position: center;
  transition: transform 0.4s ease;
  width: 100%;
}

.grill-title {
  font-family: var(--font-display-l);
  font-size: clamp(1.1rem, 2vw, 1.6rem);
  margin-top: 0.75rem;
  text-align: left;
  color: var(--color-light);
  transition: color 0.3s ease;
}

.grill-link { text-decoration: none; color: inherit; }
.grill-link:hover .grill-thumb { transform: scale(1.03); }
.grill-link:hover .grill-title { color: var(--color-accent); }

/* ===============================
   TABLET (769px–1024px)
   =============================== */
@media (max-width: 1024px) and (min-width: 769px) {
  .grill-desktop, .grill-mobile { display: none; }
  .grill-tablet { display: block; }

  .grill-grid-tablet {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  .grill-thumb {
    width: 100%;
    aspect-ratio: 601 / 751;
    background-size: cover;
    background-position: center;
    transition: transform 0.3s ease;
  }

  .grill-thumb:hover { transform: scale(1.02); }

  .grill-title {
    font-family: var(--font-display-l);
    font-size: 1.4rem;
    color: var(--color-light);
    margin-top: 0.5rem;
    text-align: left;
    transition: color 0.3s ease;
  }

  .grill-title:hover { color: var(--color-accent); }
}

/* ===============================
   MOBILE (≤768px)
   =============================== */
@media (max-width: 768px) {
  .grill-desktop, .grill-tablet { display: none; }
  .grill-mobile { display: block; }

  .grill-grid-mobile {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .grill-thumb {
    width: 100%;
    aspect-ratio: 4 / 5;
    background-size: cover;
    background-position: center;
    transition: transform 0.3s ease;
  }

  .grill-title {
    font-family: var(--font-display-l);
    font-size: 1.3rem;
    color: var(--color-light);
    margin-top: 0.5rem;
    text-align: left;
  }

  .grill-link:hover .grill-title { color: var(--color-accent); }
}

/* ===============================
   GRILL SKILLS — BUTTON
   =============================== */
.grill-button-wrapper {
  text-align: center;
  margin-top: 3rem;
}

.grill-button {
  display: inline-block;
  background-color: var(--color-accent);
  color: var(--color-light);
  font-family: var(--font-body-r);
  font-size: 1.1rem;
  font-weight: 500 !important;
  text-transform: uppercase;
  padding: 0.9rem 2.5rem;
  border-radius: 40px;
  text-decoration:none;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.grill-button:hover {
  background-color: var(--color-light);
  transform: translateY(-2px);
}

/* ===============================
   INSTAGRAM SECTION
   =============================== */
.instagram-section {
  background-color: var(--color-grey);
  width: 100%;
  padding: 80px 20px;
  text-align: center;
}

.instagram-inner {
  max-width: 1400px;
  margin: 0 auto;
}

.instagram-heading {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--color-dark);
  margin-bottom: 2.5rem;
}

.instagram-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
  justify-items: center;
}

.instagram-thumb img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 4px;
  transition: transform 0.3s ease;
}

.instagram-thumb:hover img {
  transform: scale(1.05);
}

@media (max-width: 1024px) {
  .instagram-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}

@media (max-width: 768px) {
  .instagram-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* ===============================
   CONTENT
   =============================== */

/* ===============================
   SITE FOOTER — LEFT-ALIGNED INLINE
   =============================== */
.site-footer {
  background-color: var(--color-dark);
  color: var(--color-light);
  font-family: var(--font-body-r);
  padding: 20px 40px;
}

.footer-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 20px;
  justify-content: flex-start; /* align left */
  flex-wrap: wrap; /* allows wrapping on smaller screens */
}

/* Social Icons */
.footer-social {
  display: flex;
  gap: 24px;
  align-items: center;
}

.footer-icon {
  color: var(--color-light);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  width: 28px;
  transition: color 0.3s ease, fill 0.3s ease;
}

.footer-icon svg {
  height: 100%;
  width: 100%;
  fill: currentColor;
}

.footer-icon:hover {
  color: var(--color-accent);
  fill: currentColor;
}

/* Footer text */
.footer-text {
  display: flex;
  align-items: center;
  gap: 10px; /* spacing between items and icons */
}

.footer-text a {
  color: var(--color-light);
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer-text a:hover {
  color: var(--color-accent);
}

.footer-text p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
}

/* ===============================
   BACK TO TOP BUTTON
   =============================== */
.back-to-top {
  position: fixed;
  bottom: 40px;
  right: 40px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--color-dark);
  color: var(--color-light);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 1200;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.3s ease, background 0.3s ease;
}

/* Make visible when active */
.back-to-top.show {
  opacity: 1;
  pointer-events: all;
}

/* SVG inherits color */
.back-to-top svg {
  width: 40px;
  height: 40px;
  fill: currentColor;
  transform: rotate(180deg); /* flip vertical */
  transition: transform 0.3s ease, color 0.3s ease;
}

/* Hover effect */
.back-to-top:hover {
  background: var(--color-accent);
  transform: translateY(-4px);
}
.back-to-top:hover svg {
  color: var(--color-light);
}

/* Optional: smooth scroll for anchor jump */
html {
  scroll-behavior: smooth;
}

/* ===============================================================
PAGE & SINGLE POST (Drop Cap Removed)
================================================================== */

.single-content-wrapper {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px 80px;
  box-sizing: border-box;
}

/* === Featured Image === */
.post-featured {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.post-featured img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* === Category === */
.post-category {
  font-family: var(--font-body-r);
  font-size: 0.75rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-align: center;
  color: var(--color-dark);
  margin-top: 2rem;
  margin-bottom: 0.5rem;
  transition: color 0.3s ease;
}

.post-category a {
  color: var(--color-dark);
  text-decoration: none;
  transition: color 0.3s ease;
}

.post-category a:hover {
  color: var(--color-accent);
  text-decoration: none;
  transition: color 0.3s ease;
}

/* === Title === */
.post-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  text-align: center;
  color: var(--color-dark);
  text-transform: uppercase;

  margin-bottom: 1.5rem;
}

/* === Body Content === */
.post-content {
  max-width: 800px;
  margin: 0 auto;
  font-family: var(--font-body-r);
  font-size: 1.125rem;
  line-height: 1.8;
  color: var(--color-dark);
}

.post-content p {
  margin-bottom: 1.5rem;
}

/* Headings inside content */
.post-content h2,
.post-content h3 {
  font-family: var(--font-display);
  color: var(--color-dark);
  margin: 2.5rem 0 1rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* === SINGLE POSTS === */
.single-post .post-category {
  text-align: center;
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 0.875rem;
  color: var(--color-dark);
  margin-top: 40px;
  margin-bottom: 12px;
}

/* === PAGE TITLES (no category above) === */
.page .post-title {
  margin-top: 140px !important; /* adds breathing room below featured image */
}


/* === POST TITLES (with category above) === */
.single-post .post-title {
  margin-top: 20px; /* smaller, since category already adds spacing */
}

/* === Multiple Categories (Single Post) === */
.post-categories {
  text-align: center;
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 0.875rem;
  letter-spacing: 1px;
  margin-top: 40px;
  margin-bottom: 12px;
  color: var(--color-dark);
}

.post-categories a {
  color: var(--color-dark);
  text-decoration: none;
  transition: color 0.3s ease;
}

.post-categories a:hover {
  color: var(--color-accent);
}

/* tiny centered separator */
.post-categories .cat-sep {
  display: inline-block;
  margin: 0 6px;
  color: var(--color-dark);
  opacity: 0.6;
  font-size: 0.6rem;
  position: relative;
  top: -1px;
}



/* ================================
CATEGORY PAGES
=================================== */
.cat-wrap {
  margin-top: 80px;
}

.cat-wrap .recent-posts-title {
  text-align: center !important;
}


/* ===============================
   SEARCH RESULTS PAGE
   =============================== */
.search-results-wrapper {
  background-color: var(--color-light);
  padding-top: 140px; /* space below sticky header */
  padding-bottom: 40vh;
  display: flex;
  justify-content: center;
  width: 100%;
}

.search-results-section {
  width: 100%;
  max-width: 1400px;
  padding: 0 32px;
  box-sizing: border-box;
}

.search-results-title {
  text-align: center;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--color-dark);
  margin-bottom: 48px;
}

.search-query {
  color: var(--color-accent);
}

/* Match the same grid as category/recent posts */
.search-results-section .recent-posts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.search-results-section .recent-post-card {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.search-results-section .recent-post-image-link {
  display: block;
  overflow: hidden;
}

.search-results-section .recent-post-image {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.search-results-section .recent-post-image-link:hover .recent-post-image {
  transform: scale(1.05);
}

.search-results-section .recent-post-heading {
  font-family: var(--font-display-l);
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  color: var(--color-dark);
  margin-top: 16px;
}

.search-results-section .recent-post-heading a {
  color: var(--color-dark);
  text-decoration: none;
  transition: color 0.3s ease;
}

.search-results-section .recent-post-heading a:hover {
  color: var(--color-accent);
}

.no-results {
  font-family: var(--font-body-r);
  font-size: 1.125rem;
  text-align: center;
  color: var(--color-dark);
  margin-top: 40px;
}

/* ===============================
   REFINED SEARCH BAR STYLE
   =============================== */
.no-results-search {
  margin-top: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.no-results-search form {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 540px;
  background-color: #f7f7f7; /* soft neutral background */
  border: 1px solid var(--color-grey);
  border-radius: 50px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: all 0.3s ease;
}

.no-results-search form:focus-within {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 2px rgba(220, 30, 30, 0.15);
}

.no-results-search input[type="search"] {
  flex: 1;
  padding: 0.9rem 1.25rem 0.9rem 1.25rem;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--color-dark);
  border: none;
  outline: none;
  background: transparent;
}

.no-results-search input::placeholder {
  color: #999;
  opacity: 1;
}

.no-results-search button,
.no-results-search input[type="submit"] {
  background-color: var(--color-primary);
  color: var(--color-light);
  border: none;
  padding: 0.9rem 1.75rem;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 0.9rem;
  cursor: pointer;
  border-radius: 50px;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.no-results-search button:hover,
.no-results-search input[type="submit"]:hover {
  background-color: var(--color-accent);
  transform: translateY(-1px);
}

/* Responsive adjustments */
@media (max-width: 640px) {
  .no-results-search form {
    max-width: 90%;
  }

  .no-results-search input[type="search"] {
    padding: 0.75rem 1rem;
  }

  .no-results-search button {
    padding: 0.75rem 1.25rem;
  }
}

/* ================================
SEARCH FORM 
=================================== */

/* === Custom Search Form === */
.search-form {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 500px;
  margin: 40px auto 0;
  padding: 6px;
  border: 2px solid var(--color-dark);
  border-radius: 50px;
  overflow: hidden;
  background-color: var(--color-light);
  box-sizing: border-box;
}

/* === Search Input === */
.search-form .search-field {
  flex: 1;
  height: 56px; /* ensures consistent height with button */
  padding: 0 1rem;
  font-family: var(--font-body-r);
  font-size: 1rem;
  color: var(--color-dark);
  border: none;
  outline: none;
  background: transparent;
  box-sizing: border-box;
  appearance: none; /* remove Safari/iOS quirks */
}

/* Remove browser default “x” cancel icon */
.search-form .search-field::-webkit-search-decoration,
.search-form .search-field::-webkit-search-cancel-button,
.search-form .search-field::-webkit-search-results-button,
.search-form .search-field::-webkit-search-results-decoration {
  display: none;
}

/* === Search Button === */
.search-form .search-submit {
  background-color: var(--color-primary);
  color: var(--color-light);
  font-family: var(--font-display-d) !important;
  font-size: 2rem !important;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: none;
  padding: 0.25rem 1.25rem 0.5rem 1.25rem !important;
  border-radius: 0 50px 50px 0;
  cursor: pointer;
  transition: background-color 0.3s ease;
  height: 56px;
}

.search-form .search-submit:hover {
  background-color: var(--color-accent);
}

/* =============================================================
   RECIPE TWO-COLUMN LAYOUT
================================================================ */
/* === Post Subtitle === */
.post-subtitle {
  font-family: var(--font-script);
  text-transform: capitalize !important;
  font-size: clamp(1.1rem, 1.6vw, 1.5rem);
  color: var(--color-accent);
  text-align: center;
  margin-top: 0.5rem;
  margin-bottom: 2.5rem;
  opacity: 0.95;
  line-height: 1.3;
}

.single-recipe .recipe-wrapper {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 40px;
  max-width: 1400px;
  margin: 60px auto 100px;
  padding: 0 32px;
  box-sizing: border-box;
}

.single-recipe .recipe-left,
.single-recipe .recipe-right {
  display: flex;
  flex-direction: column;
  gap: 20px;
  box-sizing: border-box;
}

.single-recipe .recipe-left {
  border-right: 1px solid var(--color-border, #ddd);
  padding-right: 32px;
}

.single-recipe .recipe-right {
  padding-left: 32px;
}

/* ========================================
   GUTENBERG BLOCK STYLES
   ======================================== */

/* Quantity (e.g. "Per 4 persone") */
.is-style-qty {
  font-weight: bold;
  font-size: 1rem;
  margin-bottom: 0.5rem;
  color: var(--color-dark);
}

/* H2: “Ingredienti” */
.is-style-heading-1 {
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 1.5rem;
  margin: 1.5rem 0 1rem;
  color: var(--color-dark);
}

/* Divider between ingredient groups */
.is-style-list-div {
  margin: 1rem 0;
  border-bottom: 1px solid var(--color-accent);
  text-transform: uppercase;
}

/* Ingredient list */
.is-style-recipe-list {
  margin: 0 0 1.5rem 1rem;
  padding-left: 1rem;
  list-style-type: disc;
  line-height: 1.6;
  color: var(--color-dark);
}

/* Intro paragraph (appears at top of right column) */
.is-style-intro {
  font-style: italic;
  font-size: 1.125rem;
  line-height: 1.8;
  color: var(--color-dark);
  margin-bottom: 1.5rem;
}

/* H3: “Passi” */
.is-style-heading-2 {
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 1.25rem;
  margin: 2rem 0 1rem;
  color: var(--color-dark);
}

/* Divider between steps or sections */
.is-style-step-div {
  margin: 1rem 0;
  border-bottom: 1px dashed var(--color-accent);
  text-transform: uppercase;
}

/* ========================================
   RESPONSIVE LAYOUT
   ======================================== */
@media (max-width: 1024px) {
  .single-recipe .recipe-wrapper {
    grid-template-columns: 1fr;
  }

  .single-recipe .recipe-left {
    border-right: none;
    border-bottom: 1px solid var(--color-border, #ddd);
    padding-right: 0;
    padding-bottom: 24px;
  }

  .single-recipe .recipe-right {
    padding-left: 0;
  }
}

/* === Print button styling === */
.recipe-print-wrapper {
    max-width: 1400px;
    margin: 0 auto 20px; /* centers the button */
    padding: 0 32px;
    text-align: right;
}


.recipe-print-button {
    text-align: right;
    margin-bottom: 20px;
}

.recipe-print-button button {
    background-color: var(--color-accent);
    color: var(--color-light);
    font-family: var(--font-display-d);
    font-size: 1rem;
    text-transform: uppercase;
    border: none;
    border-radius: 6px;
    padding: 0.5rem 1rem;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.recipe-print-button button:hover {
    background-color: var(--color-dark);
}

/* === Print-specific styles === */
.think_celestial {
    display: none; /* hidden on screen */
}

/* === Print-specific styles for recipes === */
@media print {
    /* Hide everything by default except recipe */
    body * {
        visibility: hidden;
    }

    .single-recipe,
    .single-recipe * {
        visibility: visible;
    }

    /* Container setup */
    .single-recipe {
        width: 100%;
        max-width: 800px;
        margin: 0 auto;
        font-size: 12pt;
        font-weight: normal;
        line-height: 1.4;
    }

    /* Hide featured image */
    .post-featured {
        max-width: 300px;
        /*display: none;*/
    }

    /* Recipe wrapper: force two columns */
    .single-recipe .recipe-wrapper {
        display: grid !important;
        grid-template-columns: 1fr 2fr !important;
        gap: 20px !important;
        width: 100%;
        margin: 0 auto;
    }

    .single-recipe .recipe-left,
    .single-recipe .recipe-right {
        display: flex;
        flex-direction: column;
        font-size: 12pt !important;
        font-weight: normal !important;
        line-height: 1.4 !important;
    }

    /* Print button hidden */
    .recipe-print-button {
        display: none;
    }

    /* Think Celestial footer */
    .think_celestial {
        display: block !important;
        border-top: 1px solid var(--color-dark);
        margin-top: 20px;
        padding-top: 10px;
        font-size: 0.75rem !important;
        font-style: italic !important;
        text-align: center;
    }

    /* Optional: remove colors and backgrounds for cleaner print */
    * {
        background: none !important;
        color: #000 !important;
    }
}

/* ==============================================================
RECIPES PAGE
================================================================= */
.recipes-header-inner {
    padding-top: 140px; /* space below sticky header */
    max-width: 1400px;
    margin: 0 auto 40px;
    padding-left: 32px;
    padding-right: 32px;
    text-align: center;
}

/* === Recipes Page === */
.recipes-page .recipes-header {
    max-width: 1400px;
    margin: 60px auto 40px;
    padding: 0 32px;
    text-align: center;
}

.recipes-page .recipes-header h1 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--color-dark);
    margin-bottom: 24px;
    text-align: center;
}

.recipes-page .search-form {
    max-width: 500px;
    margin: 0 auto;
}

.recipes-grid-wrapper {
    max-width: 1400px;
    margin: 0 auto 100px;
    padding: 0 32px;
}

.recipes-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.recipe-category-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--color-dark);
    transition: transform 0.3s ease;
}

.recipe-category-card:hover {
    transform: translateY(-5px);
}

.recipe-thumb img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 8px;
}

.recipe-info {
    margin-top: 12px;
    text-align: center;
}

.recipe-cat-title {
    font-family: var(--font-display-l);
    font-size: 1.2rem;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.recipe-post-title {
    font-family: var(--font-body-r);
    font-size: 1rem;
}

/* Responsive */
@media (max-width: 1024px) {
    .recipes-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .recipes-grid {
        grid-template-columns: 1fr;
    }
}


/* ==============================================================
   POPULAR POSTS SHORTCODES (Post Popolari / BBQ Popolari)
   =============================================================== */

/* Wrapper */
.popular-posts-section {
  max-width: 1400px;
  margin: 80px auto;
  padding: 0 32px;
  box-sizing: border-box;
  text-align: center;
}

/* Heading */
.popular-posts-heading {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  text-transform: uppercase;
  color: var(--color-dark);
  margin-bottom: 40px;
}

/* Grid Layout */
.popular-posts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 24px;
  justify-content: center;
}

/* Card */
.popular-post-card {
  text-align: left;
  text-decoration: none;
  color: var(--color-dark);
  transition: transform 0.3s ease;
}

.popular-post-card:hover {
  transform: translateY(-4px);
}

/* Thumbnail */
.popular-post-card img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 8px;
  margin-bottom: 12px;
}

/* Title */
.popular-post-card h3 {
  font-family: var(--font-body-r);
  font-size: 1rem;
  line-height: 1.4;
  color: var(--color-dark);
}

/* Responsive */
@media (max-width: 1024px) {
  .popular-posts-grid {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  }
}

@media (max-width: 640px) {
  .popular-posts-section {
    margin: 60px auto;
  }

  .popular-posts-heading {
    font-size: 1.5rem;
  }
}

/* ===============================
   POPULAR RECIPES SECTION (About Page)
   =============================== */
.about-page .popular-recipes-section {
  background-color: var(--color-light);
  width: 100%;
  padding: 60px 0 80px 0;
  display: flex;
  justify-content: center;
}

.about-page .popular-recipes-inner {
  max-width: 1400px;
  width: 100%;
  padding: 0 32px;
}

.about-page .popular-recipes-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--color-dark);
  margin-bottom: 48px;
}

/* identical grid as category & front page */
.about-page .popular-recipes-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.about-page .recent-post-card {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.about-page .recent-post-image-link {
  display: block;
  overflow: hidden;
}

.about-page .recent-post-image {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.about-page .recent-post-image-link:hover .recent-post-image {
  transform: scale(1.05);
}

.about-page .recent-post-heading {
  font-family: var(--font-display-l);
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  color: var(--color-dark);
  margin-top: 16px;
}

.about-page .recent-post-heading a {
  color: var(--color-dark);
  text-decoration: none;
  transition: color 0.3s ease;
}

.about-page .recent-post-heading a:hover {
  color: var(--color-accent);
}

/* Responsive layout */
@media (max-width: 1024px) {
  .about-page .popular-recipes-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .about-page .popular-recipes-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

/* =============================================================
   ABOUT PAGE HEADER & TITLE
   ============================================================= */
.about-header-inner {
  max-width: 1400px;
  margin: 60px auto 40px;
  padding: 0 32px;
  text-align: center;
  box-sizing: border-box;
}

.about-page-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--color-dark);
  margin-bottom: 24px;
  line-height: 1.2;
}

/* Ensure spacing from sticky header */
@media (min-width: 1024px) {
  .about-header-inner {
    padding-top: 80px; /* adjust if sticky header overlaps */
  }
}

/* Content inner wrapper */
.about-content-inner {
  max-width: 1000px;
  margin: 0 auto 80px;
  padding: 0 32px;
  box-sizing: border-box;
}

.about-page-content {
  font-family: var(--font-body-r);
  color: var(--color-dark);
  line-height: 1.7;
}

/* =========================================
HOLIDAY SECTIONS
============================================ */
/* ===============================
   THANKSGIVING SECTION
   =============================== */
.thanksgiving-section {
  /*background: url('../images/harvest-sm.png') center/cover no-repeat;*/

  background-image: url('../images/harvest.png');
  background-size:cover;
  background-repeat: no-repeat;
  background-position: center top;
  background-color: var(--color-dark); /* fallback background */


  color: var(--color-light);
  width: 100%;
  padding: 60px 0 80px 0;
  display: flex;
  justify-content: center;
}

.thanksgiving-inner {
  max-width: 1100px;
  width: 100%;
  padding: 0 32px;
  text-align: center;
}

.thanksgiving-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--color-light);
  margin-bottom: 48px;

}

.thanksgiving-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.thanksgiving-card {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.thanksgiving-image-link {
  display: block;
  overflow: hidden;
  border-radius: 2px;
}

.thanksgiving-image {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.thanksgiving-image-link:hover .thanksgiving-image {
  transform: scale(1.05);
}

.thanksgiving-heading {
  font-family: var(--font-display-l);
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  color: var(--color-light);
  margin-top: 16px;
}

.thanksgiving-heading a {
  color: var(--color-light);
  text-decoration: none;
  transition: color 0.3s ease;
}

.thanksgiving-heading a:hover {
  color: var(--color-accent);
}

/* Button */
.thanksgiving-button-wrapper {
  display: flex;
  justify-content: center;
  margin-top: 48px;
}

.thanksgiving-button {
  display: inline-block;
  background-color: var(--color-accent);
  color: var(--color-light);
  font-family: var(--font-body-r);
  font-size: 1.1rem;
  font-weight: 500 !important;
  text-transform: uppercase;
  padding: 0.9rem 2.5rem;
  border-radius: 40px;
  text-decoration:none;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.thanksgiving-button:hover {
  background-color: var(--color-light);
  transform: translateY(-2px);
}


/* Responsive layout */
@media (max-width: 1024px) {
  .thanksgiving-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .thanksgiving-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
