/* ============================================================
   BOSFOR & BAŁTYK — Brand Override Layer
   Mirrors the official menu PDF design language:
   - Vanilla cream as DOMINANT surface (warm, restaurant-appropriate)
   - Royal Blue used in HERO + FOOTER bands (brand bookending)
   - Amber/Orange for CTAs + accent stripes (warm action)
   - Pattern used as ELEMENTS (corners, dividers) — never as wallpaper
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700&display=swap');

:root {
  /* === BRAND PALETTE === */
  --bb-royal:      rgb(10, 79, 186);      /* #0a4fba */
  --bb-royal-deep: rgb(7, 58, 138);       /* #073a8a */
  --bb-cyan:       rgb(4, 190, 233);      /* #04bee9 */
  --bb-amber:      rgb(234, 145, 15);     /* #ea910f */
  --bb-gold:       rgb(255, 195, 10);     /* #ffc30a */
  --bb-vanilla:    rgb(254, 248, 224);    /* #fef8e0 */
  --bb-vanilla-warm: rgb(253, 240, 200);  /* warmer cream */
  --bb-cream-deep: rgb(248, 226, 175);    /* cream w/ amber tint */
  --bb-ink:        rgb(26, 27, 28);

  /* === MAP TO TEMPLATE VARIABLES === */
  --main-color:    var(--bb-amber);       /* primary brand → amber */
  --color-one:     var(--bb-royal);       /* royal blue */
  --color-two:     var(--bb-royal-deep);  /* royal deep */
  --color-three:   rgb(122, 122, 122);    /* gray body text on cream */
  --color-four:    rgb(228, 222, 200);    /* cream border tone */
  --color-five:    var(--bb-cyan);        /* cyan highlights */
  --color-six:     var(--bb-ink);         /* near-black text on cream */
  --color-seven:   var(--bb-royal-deep);
  --color-eight:   var(--bb-royal);
  --color-gold:    var(--bb-gold);
  --white-color:   var(--bb-vanilla);

  /* Cream overlays for sections */
  --white-color-opacity:       rgba(254, 248, 224, 0.92);
  --white-color-opacity-two:   rgba(254, 248, 224, 0.70);
  --white-color-opacity-three: rgba(254, 248, 224, 0.50);
  --white-color-opacity-four:  rgba(254, 248, 224, 0.30);
  --white-color-opacity-five:  rgba(254, 248, 224, 0.12);

  /* Royal blue overlays */
  --black-color:               var(--bb-royal);
  --black-color-opacity:       rgba(10, 79, 186, 0.85);
  --black-color-opacity-two:   rgba(10, 79, 186, 0.60);
  --black-color-opacity-three: rgba(10, 79, 186, 0.40);
  --black-color-opacity-four:  rgba(10, 79, 186, 0.20);
  --black-color-opacity-five:  rgba(10, 79, 186, 0.08);

  --text-color:    var(--bb-ink);
  --heading-color: var(--bb-royal);

  /* === FONTS === */
  --font-family-Urbanist: "Montserrat", system-ui, sans-serif;
  --font-family-Fraunces: "DM Serif Display", Georgia, serif;
}

/* ============================================================
   BASE SURFACES — Warm vanilla with subtle amber wash
   ============================================================ */

body {
  background-color: var(--bb-vanilla) !important;
  background-image:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(234, 145, 15, 0.06) 0%, transparent 60%),
    radial-gradient(ellipse 90% 60% at 50% 100%, rgba(234, 145, 15, 0.05) 0%, transparent 60%),
    linear-gradient(180deg, var(--bb-vanilla) 0%, var(--bb-vanilla-warm) 100%) !important;
  background-attachment: fixed !important;
  color: var(--bb-ink) !important;
}

/* Default section bg becomes cream, not template's dark */
.section-kt,
.about-section,
.menu-card-style-section,
.special-offer,
.chef-section-1,
.testimonials-section,
.news-section,
.ig-post-section,
.instagram-section,
.reserve-section {
  background-color: transparent !important;
}

/* Sections that the template made dark — flip to cream */
.menu-card-style-section .menu-card-main {
  background-color: var(--bb-vanilla-warm) !important;
  color: var(--bb-ink) !important;
}

/* Default text colors on cream */
.menu-card-style-section h2,
.menu-card-style-section h3,
.menu-card-style-section h6,
.about-section h2,
.special-offer h2,
.chef-section-1 h2,
.testimonials-section h2,
.sec-title h2,
.title-box h2 {
  color: var(--bb-royal) !important;
}

.menu-card-style-section .desc,
.menu-card-style-section p,
.about-section p,
.about-section .text,
.special-offer p,
.special-offer .desc {
  color: var(--bb-ink) !important;
  opacity: 0.78;
}

/* Prices in amber */
.menu-card-style-section .price,
.menu-card-style-section .price span,
.offer-block-two .price {
  color: var(--bb-amber) !important;
  font-weight: 700;
}

/* Dish name links - royal blue */
.menu-card-style-section h6 a,
.offer-block-two h5 a {
  color: var(--bb-royal) !important;
}
.menu-card-style-section h6 a:hover,
.offer-block-two h5 a:hover {
  color: var(--bb-amber) !important;
}

/* Dotted line between dish name + price - amber */
.menu-list-line {
  border-bottom: 2px dotted var(--bb-amber) !important;
  opacity: 0.5;
}

/* === HERO BAND — royal blue stays (the brand anchor at top) === */
/* Template hero already uses dark bg; let our :root variables flow through */

/* === FOOTER on royal blue with gold accents === */
.main-footer {
  background-color: var(--bb-royal-deep) !important;
  color: var(--bb-vanilla) !important;
}
.main-footer h2, .main-footer h3, .main-footer h4, .main-footer h5, .main-footer h6,
.main-footer .widget-title {
  color: var(--bb-vanilla) !important;
}
.main-footer p, .main-footer li, .main-footer a {
  color: rgba(254, 248, 224, 0.80) !important;
}
.main-footer a:hover { color: var(--bb-gold) !important; }
.main-footer .footer-bottom {
  background: rgba(0, 0, 0, 0.15) !important;
  border-top: 1px solid rgba(254, 248, 224, 0.08);
}

/* Section subtitle / eyebrow */
.subtitle span,
.sub-title,
.upper-text {
  color: var(--bb-cyan) !important;
  letter-spacing: 0.25em;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 11px;
}

/* ============================================================
   PATTERN AS ELEMENTS (decorative motifs in specific spots)
   ============================================================ */

.brand-motif {
  display: inline-block;
  width: 32px; height: 32px;
  background-image: url('../images/brand/motif.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.85;
  vertical-align: middle;
}
.brand-motif--lg { width: 56px; height: 56px; }
.brand-motif--xl { width: 96px; height: 96px; }
.brand-motif--sm { width: 24px; height: 24px; }

.brand-divider {
  display: flex; align-items: center; justify-content: center;
  gap: 18px; max-width: 320px; margin: 24px auto;
}
.brand-divider::before,
.brand-divider::after {
  content: ""; flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, var(--bb-amber), transparent);
  opacity: 0.45;
}

.has-corner-motif { position: relative; }
.has-corner-motif::before,
.has-corner-motif::after {
  content: ""; position: absolute;
  width: 80px; height: 80px;
  background-image: url('../images/brand/motif.png');
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.08;
  pointer-events: none;
  z-index: 0;
}
.has-corner-motif::before { top: 20px; left: 20px; transform: rotate(-12deg); }
.has-corner-motif::after  { bottom: 20px; right: 20px; transform: rotate(12deg); }

/* Amber/orange section divider band — like menu PDF bottom strip */
.brand-amber-band {
  height: 56px;
  background: linear-gradient(135deg, var(--bb-gold), var(--bb-amber));
  display: flex; align-items: center; justify-content: center;
  color: var(--bb-royal-deep);
  font-family: var(--font-family-Urbanist);
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  font-size: 12px;
}

/* Narrow pattern strip — use sparingly */
.brand-pattern-strip {
  height: 36px;
  background-image: url('../images/brand/pattern-strip.png');
  background-size: auto 36px;
  background-repeat: repeat-x;
  opacity: 0.55;
}

/* ============================================================
   TYPOGRAPHY POLISH
   ============================================================ */

body, p, li, a, td, th, input, textarea, button, .auto-container {
  font-family: var(--font-family-Urbanist);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.sec-title h1, .sec-title h2, .sec-title h3,
.logo a, .heading {
  font-family: var(--font-family-Fraunces) !important;
  letter-spacing: 0.005em;
}

.brand-amp,
h1 .amp, h2 .amp, h3 .amp {
  color: var(--bb-gold);
  font-style: italic;
  font-weight: 400;
}

/* ============================================================
   BUTTONS — Amber gradient (like menu CTAs) with High Contrast Text
   ============================================================ */

.theme-btn, .btn-style-one, .btn-style-two {
  background: linear-gradient(135deg, var(--bb-gold), var(--bb-amber)) !important;
  color: var(--bb-royal-deep) !important;
  font-weight: 700 !important;
  letter-spacing: 1px;
  text-transform: uppercase;
  border: 2px solid var(--bb-royal-deep) !important; /* Premium deep blue frame for high visibility */
  transition: all 0.25s ease;
}

/* Ensure inner text spans are always high-contrast deep royal blue on amber background */
.theme-btn .btn-wrap .text-one,
.btn-style-one .btn-wrap .text-one,
.btn-style-two .btn-wrap .text-one {
  color: var(--bb-royal-deep) !important;
  font-weight: 700 !important;
}

/* Ensure sliding hover text is premium vanilla cream on royal blue background */
.theme-btn .btn-wrap .text-two,
.btn-style-one .btn-wrap .text-two,
.btn-style-two .btn-wrap .text-two {
  color: var(--bb-vanilla) !important;
  font-weight: 700 !important;
}

.theme-btn:hover, .btn-style-one:hover, .btn-style-two:hover {
  background: var(--bb-royal) !important;
  color: var(--bb-vanilla) !important;
  border-color: var(--bb-royal) !important;
  transform: translateY(-2px);
}

.theme-btn:hover .btn-wrap .text-two,
.btn-style-one:hover .btn-wrap .text-two,
.btn-style-two:hover .btn-wrap .text-two {
  color: var(--bb-vanilla) !important;
}

/* Theme color spans */
.theme_color {
  color: var(--bb-amber) !important;
}

/* Links */
a { color: var(--bb-amber); }
a:hover { color: var(--bb-royal); }

/* ============================================================
   FORM FIELDS — Cream surface, blue accents
   ============================================================ */

input[type="text"], input[type="tel"], input[type="email"],
input[type="number"], textarea, select {
  background: rgba(254, 248, 224, 0.7) !important;
  border: 1.5px solid rgba(10, 79, 186, 0.2) !important;
  color: var(--bb-ink) !important;
  border-radius: 8px;
  font-family: var(--font-family-Urbanist);
}
input:focus, textarea:focus, select:focus {
  border-color: var(--bb-amber) !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(234, 145, 15, 0.15);
}

/* ============================================================
   PRELOADER — Royal blue + cream "BB" letters
   ============================================================ */

.preloader, .handle-preloader, .animation-preloader {
  background: var(--bb-royal) !important;
}
.txt-loading .letters-loading,
.txt-loading .letters-loading::before {
  color: var(--bb-vanilla) !important;
}
.spinner {
  border-color: var(--bb-gold) !important;
  border-top-color: transparent !important;
}

/* ============================================================
   HEADER on cream background
   ============================================================ */

.main-header.header-down,
.header-top {
  background: rgba(254, 248, 224, 0.96) !important;
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(10, 79, 186, 0.08);
}
.header-top .top-info li,
.header-top .top-info a {
  color: var(--bb-royal) !important;
}
.header-upper {
  background: rgba(254, 248, 224, 0.94) !important;
  border-bottom: 1px solid rgba(10, 79, 186, 0.06);
}
.main-menu .navigation > li > a {
  color: var(--bb-royal) !important;
  font-weight: 600;
}
.main-menu .navigation > li:hover > a,
.main-menu .navigation > li.current > a {
  color: var(--bb-amber) !important;
}

/* ============================================================
   NAVIGATION DROPDOWNS & SIDEBAR OVERRIDES
   ============================================================ */

.main-menu .navigation > li > ul,
.mega-menu,
.menu-inner,
.hidden-bar .inner-box,
.info-bar .inner-box {
  background-color: var(--bb-vanilla) !important;
  border: 1px solid rgba(10, 79, 186, 0.1) !important;
}
.main-menu .navigation > li > ul > li > a,
.mega-menu .title a,
.hidden-bar .side-menu ul li a,
.info-bar h5,
.info-bar li,
.info-bar a {
  color: var(--bb-royal) !important;
}
.main-menu .navigation > li > ul > li > a:hover,
.mega-menu .title a:hover,
.hidden-bar .side-menu ul li a:hover,
.info-bar a:hover {
  color: var(--bb-amber) !important;
}

/* ============================================================
   TESTIMONIALS TEXT READABILITY
   ============================================================ */

.testimonials-section .quote-text,
.testimonials-section .auth-title,
.testimonials-section .label {
  color: var(--bb-ink) !important;
}
.testimonials-section .value {
  color: var(--bb-royal) !important;
  font-weight: 700;
}

/* ============================================================
   RESERVATION SPLIT SECTION READABILITY
   ============================================================ */

.reserve-section {
  background-color: var(--bb-vanilla-warm) !important;
}
.reserve-section .title-box h2,
.reserve-section .request-info,
.reserve-section .request-info a,
.reserve-section .desc h5,
.reserve-section .desc .text {
  color: var(--bb-royal) !important;
}
.reserve-section .request-info a:hover {
  color: var(--bb-amber) !important;
}

/* ============================================================
   NEWS/BLOG POSTS TEXT READABILITY
   ============================================================ */

.news-block h4 a {
  color: var(--bb-royal) !important;
  font-family: var(--font-family-Fraunces) !important;
}
.news-block h4 a:hover {
  color: var(--bb-amber) !important;
}
.news-block .date,
.news-block .cat {
  color: var(--bb-amber) !important;
  font-family: var(--font-family-Urbanist) !important;
  font-weight: 600;
  text-transform: uppercase;
}

/* ============================================================
   SCROLL TO TOP BUTTON
   ============================================================ */

.scroll-to-top {
  background-color: var(--bb-amber) !important;
  color: var(--bb-royal-deep) !important;
}
.scroll-to-top:hover {
  background-color: var(--bb-royal) !important;
  color: var(--bb-vanilla) !important;
}

/* ============================================================
   ACCESSIBILITY
   ============================================================ */

*:focus-visible {
  outline: 3px solid var(--bb-gold) !important;
  outline-offset: 3px;
  border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   HEADER LOGO SCALING & ALIGNMENT
   ============================================================ */

.main-header .main-box .logo-box {
  padding: 10px 0px !important; /* reduced to fit much larger logo */
}
.main-header .main-box .logo-box .logo img {
  height: 80px !important; /* increased significantly from 64px for bold visibility */
  max-height: 90px !important;
  width: auto !important;
  transition: all 300ms ease;
  filter: drop-shadow(0px 2px 4px rgba(10, 79, 186, 0.15));
}

.fixed-header .main-box .logo-box {
  padding: 6px 0px !important;
}
.fixed-header .main-box .logo-box .logo img {
  height: 58px !important; /* highly visible scrolled logo */
  transition: all 300ms ease;
}

/* Align navigation links vertically with the new logo height */
.main-menu .navigation > li {
  padding: 38px 0px !important; /* centered with 80px logo */
}
.fixed-header .main-menu .navigation > li {
  padding: 22px 0px !important; /* centered with 58px logo */
}

/* Align action buttons */
.main-header .header-upper .links-box {
  padding-top: 36px !important;
  padding-bottom: 36px !important;
}
.fixed-header .header-upper .links-box {
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}


/* Inline heading badges alignment */
.about-section h2 img {
  height: 1.6em !important; /* scales beautifully with the font size! */
  width: auto !important;
  vertical-align: middle !important;
  margin: 0 6px !important;
  position: relative;
  top: -2px;
  display: inline-block !important;
}

/* ============================================================
   SPECIALS SLIDER HOVER ANIMATION ADJUSTMENT
   ============================================================ */

/* Stop the rotation animation on popular main dishes/specials slider plates */
/* Replace with an elegant, modern scale zoom-in effect */
.offer-block-two .inner-box:hover .image img {
  transform: scale(1.05) !important; /* Elegant zoom instead of rotation */
}

/* ============================================================
   FIX SITE-WIDE SQUEEZED AND DISTORTED IMAGES
   ============================================================ */

/* Enforce cover cropping instead of stretching/squeezing */
.about-section .floating-images img,
.chef-section-1 .chef-image img,
.news-block .image img,
.news-block .image-box img,
.offer-block-two .image img,
.menu-card-style-section img,
.menu-card-style-section .image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Specific aspect ratio rules to ensure visual alignment and perfect proportions */
.chef-section-1 .chef-image.image1 img {
  aspect-ratio: 1 / 1 !important;
}
.chef-section-1 .chef-image.image2 img {
  width: 75% !important;
  aspect-ratio: 1 / 1 !important;
  margin-left: auto;
}
.chef-section-1 .chef-image.image3 img {
  width: 75% !important;
  aspect-ratio: 1 / 1.25 !important;
  margin-left: auto;
}

.about-section .abt-image1 img {
  aspect-ratio: 1 / 1.4 !important;
}
.about-section .abt-image2 img {
  aspect-ratio: 1.4 / 1 !important;
}
.about-section .abt-image3 img {
  aspect-ratio: 1 / 1.4 !important;
}

/* Force standard blog thumbnail heights to prevent squeezing */
.news-block .image-box img,
.news-block .image img {
  height: 260px !important;
}

/* ============================================================
   SVG BRAND PRELOADER ANIMATION
   ============================================================ */

.preloader {
  background-color: var(--bb-vanilla) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.preloader .handle-preloader {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
}

.brand-loader-svg {
  width: 150px;
  height: 150px;
  animation: loader-spin 20s linear infinite;
  filter: drop-shadow(0px 4px 8px rgba(10, 79, 186, 0.15));
}

.loader-part {
  transform-origin: 35.5px 38.5px; /* Center of the SVG viewBox (0 0 71 74) */
}

/* Animate each element / path quadrant with separate keyframes and offsets */
.brand-loader-svg .ring-left {
  animation: ring-pulse-left 2s ease-in-out infinite alternate;
}
.brand-loader-svg .ring-right {
  animation: ring-pulse-right 2s ease-in-out infinite alternate;
  animation-delay: 0.2s;
}

.brand-loader-svg .part-orange-left {
  animation: quad-pulse-left 2.5s ease-in-out infinite alternate;
  animation-delay: 0.4s;
}
.brand-loader-svg .part-orange-right {
  animation: quad-pulse-right 2.5s ease-in-out infinite alternate;
  animation-delay: 0.6s;
}

.brand-loader-svg .leaf-left {
  animation: leaf-pulse-left 1.8s ease-in-out infinite alternate;
  animation-delay: 0.8s;
}
.brand-loader-svg .leaf-right {
  animation: leaf-pulse-right 1.8s ease-in-out infinite alternate;
  animation-delay: 1.0s;
}

.brand-loader-svg .core-left,
.brand-loader-svg .core-right {
  animation: core-pulse 1.5s ease-in-out infinite alternate;
  animation-delay: 1.2s;
}

/* Keyframes for rotation and breathing effects */
@keyframes loader-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes ring-pulse-left {
  0% { transform: scale(0.9) translate(-1.5px, -1.5px); opacity: 0.8; }
  100% { transform: scale(1) translate(0, 0); opacity: 1; }
}
@keyframes ring-pulse-right {
  0% { transform: scale(0.9) translate(1.5px, 1.5px); opacity: 0.8; }
  100% { transform: scale(1) translate(0, 0); opacity: 1; }
}

@keyframes quad-pulse-left {
  0% { transform: scale(0.85) rotate(-3deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes quad-pulse-right {
  0% { transform: scale(0.85) rotate(3deg); }
  100% { transform: scale(1) rotate(0deg); }
}

@keyframes leaf-pulse-left {
  0% { transform: scale(0.8) translate(-1px, 0); opacity: 0.7; }
  100% { transform: scale(1) translate(0, 0); opacity: 1; }
}
@keyframes leaf-pulse-right {
  0% { transform: scale(0.8) translate(1px, 0); opacity: 0.7; }
  100% { transform: scale(1) translate(0, 0); opacity: 1; }
}

@keyframes core-pulse {
  0% { transform: scale(0.75); }
  100% { transform: scale(1.1); }
}

/* Ensure menu card plate cutouts blend seamlessly with no border-radius rectangle shadows */
.offer-block-three .inner-box .image img,
.offer-block-three .inner-box.special-box .image img {
  border-radius: 0 !important; /* Removes the 8px rounded corner clipping of the vanilla canvas */
  box-shadow: none !important;
  border: none !important;
}


