/*
Theme Name: Kabob Village Child
Theme URI: https://kabobvillage.net/
Description: Child theme for Hello Elementor. Brand styles, motion and local SEO for Kabob Village Woodland Hills.
Author: Kabob Village
Template: hello-elementor
Version: 1.1.1
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: kabobvillage-child
*/

/* ==================================================================
   Tokens
   Selectors are prefixed with body.kv so they beat Elementor's default
   widget styles, while anything set in the Elementor panel still wins.
   ================================================================== */
:root {
  /* Brand maroon (sampled from the logo) carries the color; cream is the page. */
  --kv-maroon: #7a1c19;
  --kv-maroon-deep: #5e1411;
  --kv-maroon-soft: #943029;
  --kv-cream-50: #fffaf2;
  --kv-cream-100: #f8efe2;
  --kv-cream-200: #ecdcc5;
  --kv-saffron: #f0b43c;
  --kv-saffron-deep: #b7790b;
  --kv-sumac: #9b3324;
  --kv-ink: #2b1916;
  --kv-ink-soft: #66504a;
  --kv-on-dark: #fdf6ec;
  --kv-on-dark-soft: #ecd5cb;
  --kv-display: "Gloock", Georgia, serif;
  --kv-body: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --kv-fa: "Vazirmatn", Tahoma, sans-serif;
  --kv-radius: 6px;
  --kv-ease: cubic-bezier(.16, 1, .3, 1);
  --kv-header-h: 76px;
  --kv-arch: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 100V34C0 16 30 8 50 0c20 8 50 16 50 34v66z'/%3E%3C/svg%3E");
  --kv-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f0b43c' d='M12 2l3 6.6 7.1.7-5.4 4.8 1.6 7L12 17.5 5.7 21.1l1.6-7L1.9 9.3 9 8.6z'/%3E%3C/svg%3E");
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--kv-header-h) + 16px); }
body.kv {
  background: var(--kv-cream-100);
  color: var(--kv-ink);
  font: 400 1.0625rem/1.6 var(--kv-body);
  overflow-x: hidden;
}
body.kv a { color: inherit; }
body.kv :focus-visible { outline: 3px solid var(--kv-saffron); outline-offset: 3px; border-radius: 2px; }
body.kv [lang="fa"], body.kv .kv-fa .elementor-heading-title { font-family: var(--kv-fa); }

/* Inherit colors so dark sections only need one class */
body.kv .elementor-widget-heading .elementor-heading-title,
body.kv .elementor-widget-text-editor,
body.kv .elementor-widget-theme-post-title .elementor-heading-title { color: inherit; }
body.kv .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
body.kv .elementor-widget-text-editor p { margin: 0 0 1em; }

body.kv .elementor-heading-title,
body.kv .kv-prose h2, body.kv .kv-prose h3 {
  font-family: var(--kv-display); font-weight: 400; line-height: 1.08; letter-spacing: -.01em;
}

.kv-dark { color: var(--kv-on-dark); }
body.kv h1.elementor-heading-title, body.kv h2.elementor-heading-title { color: var(--kv-maroon); }
body.kv .kv-dark h1.elementor-heading-title, body.kv .kv-dark h2.elementor-heading-title, body.kv .kv-saffron h2.elementor-heading-title { color: inherit; }
.kv-saffron { color: var(--kv-ink); }
body.kv .kv-muted { color: var(--kv-ink-soft); }
body.kv .kv-dark .kv-muted { color: var(--kv-on-dark-soft); }
body.kv .kv-lede { font-size: clamp(1.125rem, 1.6vw, 1.3rem); line-height: 1.55; max-width: 34em; }
body.kv .kv-small { font-size: .98rem; }

/* Type scale */
body.kv .kv-hero-title .elementor-heading-title { font-size: clamp(2.6rem, 5.6vw, 5.4rem); line-height: 1; }
body.kv .kv-page-title .elementor-heading-title { font-size: clamp(2.6rem, 6.4vw, 5rem); }
body.kv .kv-h2 .elementor-heading-title { font-size: clamp(2.1rem, 5vw, 3.75rem); }
body.kv .kv-h3 .elementor-heading-title { font-size: clamp(1.4rem, 2.4vw, 1.75rem); }
body.kv .kv-section-head > .e-con-inner > .elementor-widget,
body.kv .kv-section-head > .elementor-widget { flex: 1 1 0; }

.kv-star { width: 14px; height: 14px; fill: currentColor; flex: none; display: inline-block; vertical-align: middle; }

/* ==================================================================
   Buttons (Elementor Button widget + class)
   ================================================================== */
body.kv .kv-btn .elementor-button {
  min-height: 48px; padding: .85em 1.5em; border-radius: 999px;
  border: 1.5px solid transparent; font: 600 1rem/1 var(--kv-body);
  white-space: nowrap; display: inline-flex; align-items: center;
  transition: background-color .2s, color .2s, border-color .2s, transform .2s var(--kv-ease);
}
body.kv .kv-btn .elementor-button:active { transform: scale(.97); }
body.kv .kv-btn--saffron .elementor-button { background: var(--kv-saffron); color: var(--kv-ink); }
body.kv .kv-btn--saffron .elementor-button:hover { background: #f6c55f; }
body.kv .kv-btn--ghost .elementor-button { background: transparent; color: var(--kv-ink); border-color: currentColor; }
body.kv .kv-dark .kv-btn--ghost .elementor-button { color: var(--kv-on-dark); }
body.kv .kv-btn--ghost .elementor-button:hover { background: var(--kv-maroon); color: var(--kv-on-dark); border-color: var(--kv-maroon); }
body.kv .kv-dark .kv-btn--ghost .elementor-button:hover { background: var(--kv-on-dark); color: var(--kv-maroon); border-color: var(--kv-on-dark); }
body.kv .kv-btn--ink .elementor-button { background: var(--kv-maroon); color: var(--kv-on-dark); }
body.kv .kv-btn--ink .elementor-button:hover { background: var(--kv-maroon-deep); }
body.kv .kv-btn--line .elementor-button { background: transparent; color: var(--kv-ink); border-color: var(--kv-ink); }
body.kv .kv-btn--line .elementor-button:hover { background: var(--kv-maroon); color: var(--kv-on-dark); }
body.kv .kv-btn-row { --gap: 12px; }

body.kv .kv-text-link { font-weight: 600; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; text-decoration-color: var(--kv-saffron); }
body.kv .kv-text-link:hover { text-decoration-color: currentColor; }

/* ==================================================================
   Header (Theme Builder header)
   ================================================================== */
body.kv .kv-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background-color: var(--kv-maroon) !important;
  transition: background-color .3s, box-shadow .3s, transform .35s var(--kv-ease);
}
body.kv .kv-header.is-hidden { transform: translateY(-100%); box-shadow: none; }
body.elementor-editor-active .kv-header.is-hidden { transform: none; }
body.kv.admin-bar .kv-header { top: 32px; }
@media (max-width: 782px) { body.kv.admin-bar .kv-header { top: 46px; } }
body.kv .kv-header.is-solid { box-shadow: 0 6px 24px rgba(60, 12, 10, .18); }
body.kv.kv-nav-open .kv-header { background-color: var(--kv-maroon) !important; }
body.kv .kv-logo img { width: 100%; height: auto; }

/* Desktop menu */
body.kv .kv-nav .elementor-nav-menu--main .elementor-item {
  color: var(--kv-on-dark); font: 500 .98rem/1 var(--kv-body); padding: 10px 14px; border-radius: 999px;
  transition: background-color .2s;
}
body.kv .kv-nav .elementor-nav-menu--main .elementor-item:hover { background: rgba(238,237,233,.1); color: var(--kv-on-dark); }
body.kv .kv-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--kv-saffron); }

body.kv .kv-header-phone .elementor-button { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; background: transparent; color: var(--kv-on-dark); font: 600 1rem/1 var(--kv-body); padding: 10px 6px; }
body.kv .kv-header-phone .elementor-button::before {
  content: ""; display: inline-block; flex: none; width: 18px; height: 18px; background: var(--kv-saffron);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.kv .kv-header-order .elementor-button { min-height: 42px; padding: .7em 1.15em; font-size: .95rem; }

/* Mobile / tablet menu: the Nav Menu widget's dropdown, shown as a full-screen panel.
   It renders the same WordPress menu as the desktop bar. */
body.kv .kv-nav .elementor-menu-toggle {
  width: 46px; height: 46px; border: 1.5px solid rgba(238,237,233,.4); border-radius: 50%;
  background: transparent; color: var(--kv-on-dark); margin-left: auto;
}
body.kv .kv-nav .elementor-menu-toggle svg { fill: currentColor; width: 20px; height: 20px; }
@media (max-width: 1024px) {
  body.kv .kv-header-phone { display: none; }
  body.kv .kv-nav-wrap { order: 3; flex: 0 0 auto !important; width: auto !important; }
  body.kv .kv-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: fixed; top: var(--kv-header-h); left: 0; right: 0; bottom: 0; width: auto !important;
    margin: 0 !important; padding: 16px 16px 120px; background: var(--kv-maroon); overflow-y: auto;
    max-height: none !important; transform: none !important; opacity: 0; visibility: hidden;
    transition: opacity .3s, visibility 0s .3s;
  }
  body.kv .kv-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { opacity: 1; visibility: visible; transition: opacity .3s; }
  body.kv.admin-bar .kv-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container { top: calc(var(--kv-header-h) + 46px); }
  body.kv .kv-nav .elementor-nav-menu--dropdown li + li { border-top: 1px solid rgba(238,237,233,.12); }
  body.kv .kv-nav .elementor-nav-menu--dropdown a.elementor-item,
  body.kv .kv-nav .elementor-nav-menu--dropdown a.elementor-item:hover {
    background: transparent; color: var(--kv-on-dark); padding: 16px 0; font: 400 2rem/1.1 var(--kv-display); justify-content: flex-start;
  }
  body.kv .kv-nav .elementor-nav-menu--dropdown a.elementor-item-active { color: var(--kv-saffron); }
}

/* Mobile action bar (same destinations as the header buttons) */
body.kv .kv-action-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  display: grid; grid-template-columns: repeat(3, 1fr); --gap: 0; gap: 0;
  background: var(--kv-maroon); border-top: 1px solid rgba(238,237,233,.12); padding-bottom: env(safe-area-inset-bottom);
}
body.kv .kv-action-bar .elementor-widget-button { width: 100%; }
body.kv .kv-action-bar .elementor-button {
  width: 100%; min-height: 60px; border-radius: 0; background: transparent; color: var(--kv-on-dark);
  font: 600 .85rem/1 var(--kv-body); justify-content: center; padding: 0 4px;
}
body.kv .kv-action-bar .kv-bar-order .elementor-button { background: var(--kv-saffron); color: var(--kv-ink); }
body.kv.kv-nav-open .kv-action-bar { display: none; }
@media (max-width: 767px) { body.kv { padding-bottom: calc(60px + env(safe-area-inset-bottom)); } }
@media (min-width: 768px) { body.kv .kv-action-bar { display: none; } }

/* ==================================================================
   Arch frame (Persian pointed arch) on Image widgets
   ================================================================== */
body.kv .kv-arch img {
  width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5;
  -webkit-mask: var(--kv-arch) center / 100% 100% no-repeat; mask: var(--kv-arch) center / 100% 100% no-repeat;
}
body.kv .kv-arch--tall img { aspect-ratio: 5 / 6; }
body.kv .kv-arch--plate { width: min(320px, 70vw); }
body.kv .kv-arch--plate img { aspect-ratio: 1; }

/* ==================================================================
   Home hero + the single load sequence
   ================================================================== */
body.kv .kv-hero-title .line { display: block; overflow: hidden; padding-bottom: .06em; }
body.kv .kv-hero-title .line > span { display: block; }
body.kv .kv-kicker { display: flex; align-items: center; gap: 10px; color: var(--kv-maroon-soft); font-weight: 600; margin: 0; }
body.kv .kv-facts { display: flex; flex-wrap: wrap; gap: 10px 28px; padding-top: 22px; border-top: 1px solid var(--kv-cream-200); font-size: .95rem; color: var(--kv-ink-soft); }
body.kv .kv-facts a { text-decoration: none; }
body.kv .kv-facts strong { display: block; color: var(--kv-maroon); font-weight: 600; }
body.kv .kv-hero-media { position: relative; }
body.kv .kv-hero-media img { max-height: 78vh; aspect-ratio: 4 / 5.2; }
body.kv .kv-hero-media::after {
  content: ""; position: absolute; left: -6%; right: -6%; top: 58%; height: 3px; background: var(--kv-saffron); border-radius: 2px; transform-origin: left;
}

.js body.kv .kv-hero-title .line > span { transform: translateY(105%); }
.js body.kv .kv-hero-media img { clip-path: inset(100% 0 0 0); }
.js body.kv .kv-hero-media::after { transform: scaleX(0); }
.js body.kv .kv-fade { opacity: 0; transform: translateY(14px); }
.kv-loaded body.kv .kv-hero-title .line > span { transform: none; transition: transform 1s var(--kv-ease); }
.kv-loaded body.kv .kv-hero-title .line:nth-child(2) > span { transition-delay: .09s; }
.kv-loaded body.kv .kv-hero-title .line:nth-child(3) > span { transition-delay: .18s; }
.kv-loaded body.kv .kv-hero-media img { clip-path: inset(0 0 0 0); transition: clip-path 1.25s var(--kv-ease) .15s; }
.kv-loaded body.kv .kv-hero-media::after { transform: scaleX(1); transition: transform 1s var(--kv-ease) .85s; }
.kv-loaded body.kv .kv-fade { opacity: 1; transform: none; transition: opacity .7s .45s, transform .7s var(--kv-ease) .45s; }
/* Never hide content inside the Elementor editor */
body.elementor-editor-active .kv-hero-title .line > span,
body.elementor-editor-active .kv-hero-media img,
body.elementor-editor-active .kv-fade,
body.elementor-editor-active .kv-reveal img { transform: none !important; clip-path: none !important; opacity: 1 !important; }

/* Marquee of dish names */
body.kv .kv-marquee { background: var(--kv-saffron); color: var(--kv-ink); overflow: hidden; padding: 16px 0; }
body.kv .kv-marquee__track { display: flex; width: max-content; animation: kv-marquee 48s linear infinite; }
body.kv .kv-marquee__group { display: flex; align-items: center; gap: 28px; padding-right: 28px; font: 400 clamp(1.25rem, 2.2vw, 1.75rem)/1 var(--kv-display); white-space: nowrap; }
body.kv .kv-marquee:hover .kv-marquee__track { animation-play-state: paused; }
@keyframes kv-marquee { to { transform: translateX(-50%); } }

/* ==================================================================
   Cards
   ================================================================== */
body.kv .kv-dish { text-decoration: none; align-content: start; justify-content: flex-start; }
body.kv .kv-dish__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--kv-radius); transition: transform .8s var(--kv-ease); }
body.kv .kv-dish__img { overflow: hidden; border-radius: var(--kv-radius); }
body.kv .kv-dish:hover .kv-dish__img img { transform: scale(1.04); }
body.kv .kv-dish--lead .kv-dish__img img { aspect-ratio: 4 / 5; }
body.kv .kv-dish__title .elementor-heading-title { font-size: clamp(1.4rem, 2.2vw, 1.85rem); }
body.kv .kv-dish--lead .kv-dish__title .elementor-heading-title { font-size: clamp(1.6rem, 3vw, 2.4rem); }
body.kv .kv-fa .elementor-heading-title { color: var(--kv-saffron); font-size: 1.05rem; white-space: nowrap; }
@media (max-width: 1024px) { body.kv .kv-dish--lead { grid-row: auto !important; } body.kv .kv-dish--lead .kv-dish__img img { aspect-ratio: 4 / 3; } }

body.kv .kv-cat__img img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 999px 999px var(--kv-radius) var(--kv-radius); }
@media (max-width: 767px) {
  body.kv .kv-cats { grid-auto-flow: column !important; grid-template-columns: none !important; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
  body.kv .kv-cat { scroll-snap-align: start; }
}

body.kv .kv-callout { border: 1.5px solid var(--kv-ink); border-radius: var(--kv-radius); padding: 28px 36px; margin-top: 16px; }
body.kv .kv-callout__star svg { width: 40px; height: 40px; color: var(--kv-saffron-deep); }
@media (max-width: 767px) { body.kv .kv-callout { padding: 24px; } }

body.kv .kv-review { background: var(--kv-maroon-deep); border-radius: var(--kv-radius); padding: 30px 28px; }
body.kv .kv-review__quote blockquote { margin: 0; font: 400 1.3rem/1.4 var(--kv-display); }
body.kv .kv-review__by { margin-top: auto; font-size: .92rem; color: var(--kv-on-dark-soft); }
body.kv .kv-stars { display: inline-block; width: 88px; height: 16px; margin-right: 10px; vertical-align: -2px; background: var(--kv-star) left / 16px 16px repeat-x; }
@media (min-width: 1025px) { body.kv .kv-review:nth-child(2) { transform: translateY(40px); } }

body.kv .kv-banner { min-height: 520px; justify-content: center; }

/* Visit / hours */
body.kv .kv-visit { margin: 0; display: grid; gap: 22px; }
body.kv .kv-visit dt { font-weight: 600; margin-bottom: 4px; }
body.kv .kv-visit dd { margin: 0; }
body.kv address { font-style: normal; }
body.kv .kv-hours { width: 100%; max-width: 440px; border-collapse: collapse; margin: 0; font-size: 1rem; }
body.kv .kv-hours td { padding: 8px 0; border: 0; border-bottom: 1px solid var(--kv-cream-200); background: transparent; }
body.kv .kv-hours td:first-child { padding-right: 12px; }
body.kv .kv-hours td:last-child { text-align: right; white-space: nowrap; }
body.kv .kv-hours tr.is-today td { font-weight: 700; }
body.kv .kv-hours tbody > tr:nth-child(odd) > td { background: transparent; }
body.kv .kv-map iframe { border-radius: var(--kv-radius); display: block; }

/* FAQ (Toggle widget, outputs FAQPage schema) */
body.kv .kv-faq { max-width: 880px; }
body.kv .kv-faq .elementor-toggle-item { border: 0; border-bottom: 1px solid rgba(238,237,233,.14); margin: 0; }
body.kv .kv-faq .elementor-tab-title { border: 0; padding: 22px 0; display: flex; flex-direction: row-reverse; justify-content: space-between; gap: 16px; font: 400 clamp(1.2rem, 2vw, 1.45rem)/1.3 var(--kv-display); }
body.kv .kv-faq .elementor-tab-title a, body.kv .kv-faq .elementor-tab-title .elementor-toggle-icon { color: inherit; }
body.kv .kv-faq .elementor-tab-content { border: 0; padding: 0 0 24px; max-width: 64ch; color: var(--kv-on-dark-soft); font: 400 1.0625rem/1.6 var(--kv-body); }
body.kv .kv-faq-section:not(.kv-dark) .elementor-toggle-item { border-color: var(--kv-cream-200); }
body.kv .kv-faq-section:not(.kv-dark) .elementor-tab-content { color: var(--kv-ink-soft); }

/* Posts / archive (Posts + Archive Posts widgets, classic skin) */
body.kv .kv-posts .elementor-post { display: flex; flex-direction: column; gap: 14px; }
body.kv .kv-posts .elementor-post__thumbnail { border-radius: var(--kv-radius); overflow: hidden; }
body.kv .kv-posts .elementor-post__thumbnail img { transition: transform .8s var(--kv-ease); }
body.kv .kv-posts .elementor-post:hover .elementor-post__thumbnail img { transform: translate(-50%, -50%) scale(1.04); }
body.kv .kv-posts .elementor-post__title, body.kv .kv-posts .elementor-post__title a { font: 400 1.55rem/1.15 var(--kv-display); color: inherit; margin: 6px 0 8px; }
body.kv .kv-posts .elementor-post__title a:hover { text-decoration: underline; text-decoration-color: var(--kv-saffron); text-underline-offset: 5px; }
body.kv .kv-posts .elementor-post__meta-data { color: var(--kv-ink-soft); font-size: .9rem; }
body.kv .kv-posts .elementor-post__excerpt p { color: var(--kv-ink-soft); margin: 0; font-size: 1rem; }
body.kv .kv-dark .kv-posts .elementor-post__meta-data,
body.kv .kv-dark .kv-posts .elementor-post__excerpt p { color: var(--kv-on-dark-soft); }
body.kv .kv-posts .elementor-pagination { margin-top: 56px; display: flex; justify-content: center; gap: 8px; }
body.kv .kv-posts .elementor-pagination .page-numbers { min-width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; text-decoration: none; font-weight: 600; }
body.kv .kv-posts .elementor-pagination .page-numbers.current { background: var(--kv-ink); color: var(--kv-cream-100); }

/* Inner page hero */
body.kv .kv-crumbs, body.kv .kv-crumbs a { color: var(--kv-on-dark-soft); font-size: .9rem; text-decoration: none; }
body.kv .kv-crumbs a:hover { text-decoration: underline; }
body.kv .kv-crumbs p { margin: 0; }
body.kv .kv-page-hero__media { align-self: flex-end; }
body.kv .kv-page-hero__media img { aspect-ratio: 4 / 4.4; }
@media (min-width: 1025px) { body.kv .kv-page-hero__media { margin-bottom: -97px; } body.kv .kv-page-hero { overflow: visible; } }
@media (max-width: 1024px) { body.kv .kv-page-hero__media img { aspect-ratio: 5 / 4; } }

/* About */
body.kv .kv-value .elementor-heading-title::before {
  content: ""; display: inline-block; width: 14px; height: 14px; margin-right: 12px; vertical-align: .1em; background: var(--kv-saffron);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0L14.53 5.9 20.49 3.51 18.1 9.47 24 12 18.1 14.53 20.49 20.49 14.53 18.1 12 24 9.47 18.1 3.51 20.49 5.9 14.53 0 12 5.9 9.47 3.51 3.51 9.47 5.9Z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0L14.53 5.9 20.49 3.51 18.1 9.47 24 12 18.1 14.53 20.49 20.49 14.53 18.1 12 24 9.47 18.1 3.51 20.49 5.9 14.53 0 12 5.9 9.47 3.51 3.51 9.47 5.9Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.kv .kv-gallery__img img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--kv-radius); }
@media (min-width: 1025px) {
  body.kv .kv-gallery > .kv-gallery__img:first-child { grid-column: span 2; grid-row: span 2; }
  body.kv .kv-gallery > .kv-gallery__img:first-child img { height: 100%; }
}
body.kv .kv-sister { background: var(--kv-maroon-deep); color: var(--kv-on-dark); border-radius: var(--kv-radius); padding: clamp(28px, 4vw, 44px); }
body.kv .kv-sister .kv-muted { color: var(--kv-on-dark-soft); }

/* Catering */
body.kv .kv-occasions { background: var(--kv-cream-200); border: 1px solid var(--kv-cream-200); border-radius: var(--kv-radius); overflow: hidden; }
body.kv .kv-occasion { background: var(--kv-cream-100); padding: 28px; }
body.kv .kv-platter__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--kv-radius); }
body.kv .kv-step { padding-top: 22px; border-top: 1.5px solid currentColor; }
body.kv .kv-step-num { font: 400 2.6rem/1 var(--kv-display); color: var(--kv-saffron); margin: 0 0 6px; }
body.kv .kv-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 26px; }
body.kv .kv-contact-list strong { display: block; margin-bottom: 4px; }
body.kv .kv-contact-list a { font-size: 1.1rem; }
body.kv .kv-form-card { background: var(--kv-cream-50); border-radius: var(--kv-radius); padding: clamp(24px, 4vw, 44px); }

/* Elementor Pro Form */
body.kv .kv-form .elementor-field-group { margin-bottom: 18px; }
body.kv .kv-form .elementor-field-label { font-weight: 600; font-size: .95rem; color: var(--kv-ink); margin-bottom: 6px; }
body.kv .kv-form .elementor-field-textual,
body.kv .kv-form .elementor-select-wrapper select {
  min-height: 50px; padding: 12px 14px; font: 400 1rem var(--kv-body); color: var(--kv-ink);
  background: var(--kv-cream-50); border: 1.5px solid #c9ccc7; border-radius: var(--kv-radius);
}
body.kv .kv-form .elementor-field-textual:focus, body.kv .kv-form select:focus { outline: none; border-color: var(--kv-ink); box-shadow: 0 0 0 3px rgba(148,48,41,.25); }
body.kv .kv-form .elementor-button { min-height: 52px; border-radius: 999px; background: var(--kv-maroon); color: var(--kv-on-dark); font: 600 1rem var(--kv-body); }
body.kv .kv-form .elementor-button:hover { background: var(--kv-maroon-deep); }
body.kv .kv-form .elementor-message-success { color: #2f3f1f; background: #e6efdc; padding: 14px 16px; border-radius: var(--kv-radius); }
body.kv .kv-form .elementor-message-danger, body.kv .kv-form .elementor-error .elementor-field-textual { color: var(--kv-sumac); border-color: var(--kv-sumac); }

/* Single post */
body.kv .kv-post-meta, body.kv .kv-post-meta a { color: var(--kv-on-dark-soft); font-size: .92rem; }
body.kv .kv-post-title .elementor-heading-title { max-width: 18ch; }
body.kv .kv-post-image-wrap { margin-top: -88px; }
body.kv .kv-post-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--kv-radius); }
body.kv .kv-prose { max-width: 68ch; font-size: 1.125rem; line-height: 1.7; }
body.kv .kv-prose h2 { font-size: clamp(1.8rem, 3.2vw, 2.4rem); margin: 1.6em 0 .5em; }
body.kv .kv-prose h3 { font-size: 1.45rem; margin: 1.4em 0 .4em; }
body.kv .kv-prose a { text-decoration-color: var(--kv-saffron); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
body.kv .kv-prose img { border-radius: var(--kv-radius); }
body.kv .kv-prose blockquote { margin: 1.6em 0; padding-left: 22px; border-left: 3px solid var(--kv-saffron); font: 400 1.4rem/1.45 var(--kv-display); }
body.kv .kv-toc .elementor-toc__header { border: 0; padding: 0 0 10px; }
body.kv .kv-toc .elementor-toc__header-title { font: 600 1rem var(--kv-body); }
body.kv .kv-toc { background: var(--kv-cream-50); border: 0; border-radius: var(--kv-radius); padding: 20px 24px; }
body.kv .kv-toc .elementor-toc__body { padding: 0; }
@media (min-width: 1025px) { body.kv .kv-toc-wrap { position: sticky; top: calc(var(--kv-header-h) + 24px); } }
body.kv .kv-share .elementor-share-btn { border-radius: 999px; }

/* CTA strip / footer / 404 */
body.kv .kv-cta-title .elementor-heading-title { font-size: clamp(2rem, 4.6vw, 3.4rem); max-width: 16ch; }
body.kv .kv-footer { font-size: .97rem; color: var(--kv-on-dark-soft); }
body.kv .kv-footer-title .elementor-heading-title { font: 600 .95rem var(--kv-body); color: var(--kv-on-dark); }
body.kv .kv-footer a:not(.elementor-social-icon) { text-decoration: none; display: inline-block; padding: 4px 0; }
body.kv .kv-footer a:not(.elementor-social-icon):hover { color: var(--kv-on-dark); text-decoration: underline; }
body.kv .kv-footer-logo img { width: 108px; }
body.kv .kv-footer-nav .elementor-item { color: var(--kv-on-dark-soft); padding: 6px 0 !important; font-weight: 400; }
body.kv .kv-footer-nav .elementor-item:hover { color: var(--kv-on-dark); }
body.kv .kv-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
body.kv .kv-social .elementor-social-icon { display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; border: 1.5px solid rgba(238,237,233,.25); width: 44px; height: 44px; }
body.kv .kv-social .elementor-social-icon svg { width: 18px; height: 18px; }
body.kv .kv-social .elementor-social-icon:hover { border-color: var(--kv-on-dark-soft); }
body.kv .kv-social .elementor-social-icon:hover svg { fill: var(--kv-on-dark); }
body.kv .kv-social .elementor-social-icon svg { fill: var(--kv-on-dark-soft); }
body.kv .kv-footer-bottom { margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(238,237,233,.12); font-size: .88rem; }
body.kv .kv-404 { text-align: center; }
body.kv .kv-404 .kv-muted { max-width: 46ch; margin-inline: auto; }
body.kv .kv-center { justify-content: center; }
body.kv .kv-inline-links { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; }

/* Scroll reveal, used on a few images */
.js body.kv .kv-reveal img { clip-path: inset(12% 0 0 0); opacity: 0; transition: clip-path 1.1s var(--kv-ease), opacity .8s; }
.js body.kv .kv-reveal.is-in img { clip-path: inset(0 0 0 0); opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.kv *, body.kv *::before, body.kv *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .js body.kv .kv-hero-title .line > span, .js body.kv .kv-hero-media img, .js body.kv .kv-hero-media::after,
  .js body.kv .kv-fade, .js body.kv .kv-reveal img { transform: none; clip-path: none; opacity: 1; }
}

/* Flex helpers: Elementor gives nested containers width:100% by default */
body.kv .e-con.kv-auto { --width: auto; width: auto; flex: 0 0 auto; }
body.kv .e-con.kv-grow { --width: auto; width: auto; flex: 1 1 0; min-width: 0; }
body.kv .kv-logo-wrap .elementor-widget-image { width: 100%; }
body.kv .kv-logo img { width: 96px; max-width: none; }
@media (max-width: 767px) { body.kv .kv-logo img { width: 84px; } }
body.kv .kv-marquee-wrap .elementor-widget-html { width: 100%; min-width: 0; }
body.kv .kv-hero { overflow: hidden; }

/* Elementor global fonts point at the brand fonts (override of Site Settings > Global Fonts) */
body.kv {
  --e-global-typography-primary-font-family: "Gloock";
  --e-global-typography-primary-font-weight: 400;
  --e-global-typography-secondary-font-family: "Hanken Grotesk";
  --e-global-typography-secondary-font-weight: 500;
  --e-global-typography-text-font-family: "Hanken Grotesk";
  --e-global-typography-text-font-weight: 400;
  --e-global-typography-accent-font-family: "Hanken Grotesk";
  --e-global-typography-accent-font-weight: 600;
  --e-global-color-primary: #7a1c19;
  --e-global-color-secondary: #5e1411;
  --e-global-color-text: #66504a;
  --e-global-color-accent: #f0b43c;
}
body.kv .kv-faq .elementor-toggle-title { font: inherit; color: inherit; }
body.kv .kv-review .elementor-widget { width: 100%; }
body.kv .kv-footer-logo, body.kv .kv-footer-logo img { text-align: left; margin-left: 0; }
body.kv .kv-social .elementor-social-icons-wrapper { justify-content: flex-start; text-align: left; }
body.kv .kv-footer-nav .elementor-item.elementor-item-active { color: var(--kv-on-dark); }
body.kv .e-con.kv-btn-row { --width: auto; width: auto; }
body.kv .elementor-widget-theme-post-content,
body.kv .elementor-widget-theme-post-content :is(h2, h3, h4, li, p, figcaption) { color: inherit; }
body.kv .kv-prose figcaption { color: var(--kv-ink-soft); font-size: .92rem; }
body.kv .kv-post-meta .elementor-icon-list-text, body.kv .kv-post-meta a { color: var(--kv-on-dark-soft); }
@media (max-width: 1024px) { body.kv .kv-header-actions { margin-left: auto; } }

/* Spacing comes from container gaps only: drop Elementor's default widget bottom margin (Site Settings > Layout > Widgets Space) */
body.kv .e-con > .elementor-widget,
body.kv .e-con > .e-con-inner > .elementor-widget { margin-block-end: 0; }
body.kv .kv-header-row, body.kv .kv-header-actions { align-items: center; }
