/* =========================================================================
   MADZHARO — overrides on top of the Framy Webflow template
   (framy.webflow.css stays the template's own stylesheet, only recoloured).
   ========================================================================= */

/* ---------- Fonts (self-hosted) ----------
   The site is Bulgarian, and the template's Italiana / Poppins have no Cyrillic. To keep every
   line in ONE typeface, the template's family names are mapped to Cyrillic-capable faces:
     "Italiana" (display) -> Forum       (Latin + Cyrillic files)
     "Poppins"  (text)    -> Montserrat  (Latin + Cyrillic files, variable weight)
   so the template CSS needs no font-family changes. Each Cyrillic/Latin pair must share the exact
   same weight descriptor, otherwise browsers treat them as different faces. */
@font-face {
  font-family: Italiana;
  src: url("/assets/fonts/forum-latin.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  size-adjust: 106%;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Italiana;
  src: url("/assets/fonts/forum-cyrillic.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  size-adjust: 106%;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: Poppins;
  src: url("/assets/fonts/montserrat-latin.woff2") format("woff2");
  font-weight: 100 300; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Poppins;
  src: url("/assets/fonts/montserrat-cyrillic.woff2") format("woff2");
  font-weight: 100 300; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: Poppins;
  src: url("/assets/fonts/montserrat-latin.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Poppins;
  src: url("/assets/fonts/montserrat-cyrillic.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: Poppins;
  src: url("/assets/fonts/montserrat-latin.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Poppins;
  src: url("/assets/fonts/montserrat-cyrillic.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: Poppins;
  src: url("/assets/fonts/montserrat-latin.woff2") format("woff2");
  font-weight: 600 900; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Poppins;
  src: url("/assets/fonts/montserrat-cyrillic.woff2") format("woff2");
  font-weight: 600 900; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

:root {
  --indigo: #1d1868;
  --indigo-deep: #100645;
  --accent-one: #dfe2f0;
  --bg-main: #f4f5f9;
}

html {
  /* standard (not Bulgarian-localised) Cyrillic letterforms */
  font-feature-settings: "locl" 0;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  overflow-x: clip; /* clip (not hidden) keeps position: sticky working */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: var(--bg-main);
}
::selection { background: var(--indigo); color: #fff; }

/* Bulgarian does not use Title Case — keep the template's look, drop the capitalisation */
html[lang="bg"] h2:not(.h1),
html[lang="bg"] h3,
html[lang="bg"] .title-hero { text-transform: none; }
html[lang="bg"] h1, html[lang="bg"] h2, html[lang="bg"] h3,
html[lang="bg"] h4, html[lang="bg"] h5 { hyphens: manual; }

a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
  outline: 1px solid var(--indigo);
  outline-offset: 4px;
}
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 3000;
  background: var(--indigo); color: #fff; padding: 10px 16px; font-size: 13px;
}
.skip-link:focus { left: 10px; top: 10px; color: #fff; }

/* in-page link targets sit 80px above their section so the fixed header never covers the title */
.anchor-host { position: relative; }
.anchor-offset { position: absolute; top: -80px; left: 0; width: 1px; height: 1px; pointer-events: none; visibility: hidden; }

/* The template's image-reveal curtain animates its height from a bottom anchor,
   which moves its top edge and is counted as layout shift (CLS). Anchoring it
   at the top keeps the wipe while its start position never moves. */
.colour-loading.bg-accent-one.bottom { top: 0%; bottom: auto; }

/* ---------- Logo ---------- */
.brand { width: 150px; }
.logotype-image { display: block; width: 100%; height: auto; }
.footer-logo { width: 140px; }
.footer-logo img { display: block; width: 100%; height: auto; }
@media screen and (max-width: 991px) { .brand, .brand.w--current { width: 130px; } }
@media screen and (max-width: 767px) { .brand { width: 120px; } }
@media screen and (max-width: 479px) { .brand { width: 112px; } }

/* loading screen mark */
.loading-image { width: 30px; height: auto; }

/* ---------- Announcement ---------- */
.text-info-line a { color: #fff; margin-left: 6px; letter-spacing: 2px; }
.text-info-line a:hover { color: var(--accent-one); }

/* ---------- Header icons (replace search / cart) ---------- */
.nav-icon-link {
  width: 40px; height: 40px; margin-right: 6px;
  display: flex; justify-content: center; align-items: center;
  color: #000; transition: color .2s;
}
.nav-icon-link:hover { color: var(--indigo); }
.nav-icon-link svg { width: 18px; height: 18px; display: block; }
.cart-button.call-button { color: #fff; margin-left: 4px; display: flex; flex: none; }
.cart-button.call-button svg { width: 16px; height: 16px; display: block; }
.cart-button.call-button:hover { color: #fff; }
@media screen and (max-width: 479px) {
  .nav-icon-link.hide-mobile { display: none; }
}

/* Webflow anchors the menu overlay at the hamburger's x-position; pin it to the
   right edge so the open menu never widens the page on phones */
@media screen and (max-width: 991px) {
  .w-nav[data-animation] .w-nav-overlay { position: fixed !important; top: 0 !important; left: 0 !important; right: auto !important; }
}
/* mobile menu: contact block in place of the template's mobile search */
.nav-contact-mobile { display: none; }
@media screen and (max-width: 991px) {
  .nav-contact-mobile {
    display: flex; flex-direction: column; gap: 6px;
    margin-top: 50px; padding-top: 30px; border-top: 1px solid rgba(0,0,0,.15); width: 80%;
  }
  .nav-contact-phone { font-family: Italiana, sans-serif; font-size: 34px; line-height: 1.2; color: var(--indigo); }
  .nav-contact-mobile span { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; opacity: .6; }
  .nav-contact-social { display: flex; gap: 24px; margin-top: 14px; }
  .nav-contact-social a { color: #000; font-size: 15px; }
}

/* ---------- Hero / section images ---------- */
/* the template's grey "Background Image" placeholder sits behind every image box; not needed */
.vertical-image, .hero-image, .features-image-small { background-color: var(--accent-one); }
.vertical-image { background-image: none; }
.hero-image._01 {
  background-image: url("/assets/img/hero-01-1200.webp");
  background-image: image-set(url("/assets/img/hero-01-700.webp") 1x, url("/assets/img/hero-01-1200.webp") 2x);
  background-position: 50% 30%;
}
.hero-image._02, .hero-image._03 {
  background-image: url("/assets/img/hero-02-700.webp");
  background-image: image-set(url("/assets/img/hero-02-400.webp") 1x, url("/assets/img/hero-02-700.webp") 2x);
  background-position: 50% 20%;
}
.slider-image._01 { background-image: url("/assets/img/slider-01-1000.webp"); background-image: image-set(url("/assets/img/slider-01-600.webp") 1x, url("/assets/img/slider-01-1000.webp") 2x); }
.slider-image._02 { background-image: url("/assets/img/slider-02-1000.webp"); background-image: image-set(url("/assets/img/slider-02-600.webp") 1x, url("/assets/img/slider-02-1000.webp") 2x); }
.slider-image._03 { background-image: url("/assets/img/slider-03-872.webp"); background-image: image-set(url("/assets/img/slider-03-600.webp") 1x, url("/assets/img/slider-03-872.webp") 2x); }
.instagram-content._01 { background-image: url("/assets/img/ig-01-600.webp"); }
.instagram-content._02 { background-image: url("/assets/img/ig-02-600.webp"); }
.instagram-content._03 { background-image: url("/assets/img/ig-03-552.webp"); }
.instagram-content._04 { background-image: url("/assets/img/ig-04-600.webp"); }

/* QC Control page */
.our-story-image { background-image: url("/assets/img/qc-hero-1000.webp"); background-image: image-set(url("/assets/img/qc-hero-600.webp") 1x, url("/assets/img/qc-hero-1000.webp") 2x); }
.about-owner-image { background-image: url("/assets/img/qc-owner-1000.webp"); background-image: image-set(url("/assets/img/qc-owner-600.webp") 1x, url("/assets/img/qc-owner-1000.webp") 2x); }
.features-image._01 { background-image: url("/assets/img/qc-feature-01-1400.webp"); background-image: image-set(url("/assets/img/qc-feature-01-900.webp") 1x, url("/assets/img/qc-feature-01-1400.webp") 2x); }
.features-image._02 { background-image: url("/assets/img/qc-feature-02-1400.webp"); background-image: image-set(url("/assets/img/qc-feature-02-900.webp") 1x, url("/assets/img/qc-feature-02-1400.webp") 2x); }
.features-image._03 { background-image: url("/assets/img/qc-feature-03-1400.webp"); background-image: image-set(url("/assets/img/qc-feature-03-900.webp") 1x, url("/assets/img/qc-feature-03-1400.webp") 2x); }
.features-image-small.features-image-small-01 { background-image: url("/assets/img/qc-detail-01-600.webp"); background-image: image-set(url("/assets/img/qc-detail-01-400.webp") 1x, url("/assets/img/qc-detail-01-600.webp") 2x); }
.features-image-small.features-image-small-02 { background-image: url("/assets/img/qc-detail-02-582.webp"); background-image: image-set(url("/assets/img/qc-detail-02-400.webp") 1x, url("/assets/img/qc-detail-02-582.webp") 2x); }
.features-image-small.features-image-small-03 { background-image: url("/assets/img/qc-detail-03-600.webp"); background-image: image-set(url("/assets/img/qc-detail-03-400.webp") 1x, url("/assets/img/qc-detail-03-600.webp") 2x); }
.sign-up-image-one { background-image: url("/assets/img/qc-join-01-500.webp"); background-image: image-set(url("/assets/img/qc-join-01-300.webp") 1x, url("/assets/img/qc-join-01-500.webp") 2x); }
.sign-up-image-two { background-image: url("/assets/img/qc-join-02-700.webp"); background-image: image-set(url("/assets/img/qc-join-02-400.webp") 1x, url("/assets/img/qc-join-02-700.webp") 2x); }

/* ---------- Collections (big type sections) ---------- */
/* .h3 = the template's h3 look on an h2 */
.h3 { margin-top: 20px; margin-bottom: 10px; font-family: Italiana, sans-serif; font-size: 70px; font-weight: 400; line-height: 1.2; text-transform: capitalize; }
html[lang="bg"] .h3 { text-transform: none; }
@media screen and (max-width: 767px) { .h3 { font-size: 50px; } }
/* .h5 = the template's h5 look */
.h5 { margin-top: 10px; margin-bottom: 10px; font-family: Italiana, sans-serif; font-size: 26px; font-weight: 400; line-height: 1.2; text-transform: none; }
/* .h4 = the template's h4 look */
.h4 { margin-top: 10px; margin-bottom: 10px; font-family: Italiana, sans-serif; font-size: 40px; font-weight: 400; line-height: 1.2; text-transform: none; }
/* .h1 = the template's h1 look on an h2 (one real h1 per page) */
.h1 { text-transform: uppercase; margin-top: 20px; margin-bottom: 10px; font-family: Italiana, sans-serif; font-size: 12vw; font-weight: 400; line-height: 1; }
@media screen and (max-width: 991px) { .h1 { font-size: 13vw; } }
@media screen and (max-width: 479px) { .h1 { font-size: 20vw; } }
/* Collection titles: one whole word, sized so the widest (ШЕВИЦИ ≈ 3.95em) always fits its
   column; the right/left edge stays where the template's OUT/FITS ends (−20vw offset). */
html[lang="bg"] .collections-title-wrapper { width: 100%; }
.collection-title { white-space: nowrap; font-size: 9vw; margin-top: 0; }
@media screen and (max-width: 767px) {
  html[lang="bg"] .collections-title-wrapper { width: 90vw; }
  .collection-title { font-size: 16vw; }
}
@media screen and (max-width: 479px) { .collection-title { font-size: 17vw; } }
.category-preview-link {
  color: var(--indigo); font-size: 15px; font-weight: 500; letter-spacing: 1px;
  text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px;
}
.category-preview-link::after { content: " →"; }
.category-preview-link:hover { color: #000; }

/* ---------- Catalogue ---------- */
.catalog-intro {
  max-width: 560px; margin: 20px auto 0; text-align: center;
  font-size: 15px; line-height: 24px;
}
.catalog-intro a, .feature-grid-wrapper p a { color: var(--indigo); white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.catalog-filters {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 8px 40px; margin-top: 40px;
}
.catalog-filter {
  background: none; border: 0; padding: 4px 0; cursor: pointer;
  font-family: Italiana, sans-serif; font-size: 22px; line-height: 1.2; color: #000;
  border-bottom: 1px solid transparent; transition: color .2s, border-color .2s;
}
.catalog-filter:hover { color: var(--indigo); }
.catalog-filter[aria-pressed="true"] { color: var(--indigo); border-bottom-color: var(--indigo); }
.catalog-filter sup { font-family: Poppins, sans-serif; font-size: 10px; margin-left: 3px; opacity: .85; top: -.8em; }

.featured-pieces-wrapper.catalog { min-height: 0; }
.collection-list.catalog-grid {
  width: 100%; flex-wrap: wrap; justify-content: center; align-items: flex-start;
}
.featured-pieces-collection.catalog-item {
  width: 25%; padding: 0; margin-bottom: 70px; float: none; display: block;
}
.catalog-item[hidden] { display: none !important; }
.catalog-item .featured-product-wrapper { margin-left: 10px; margin-right: 10px; }
@media screen and (min-width: 991.02px) {
  .catalog-item.is-offset { padding-top: 70px; }
}
.catalog-item .featured-product-image { display: block; overflow: hidden; }
.catalog-item .featured-product-image img {
  display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover;
  background-color: var(--accent-one);
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.catalog-item .featured-product-image:hover img { transform: scale(1.03); }
.catalog-badge {
  font-size: 10px; letter-spacing: 2px; text-transform: uppercase; line-height: 1.4;
  color: var(--indigo); margin-top: 6px;
}
.catalog-item .featured-product-title-wrapper { margin-top: 6px; }
.catalog-item .featured-product-name {
  font-family: Italiana, sans-serif; font-size: 22px; line-height: 1.2; display: block;
}
.catalog-item .product-price { margin-top: 4px; opacity: .72; }
.catalog-note {
  max-width: 640px; margin: 10px auto 0; text-align: center;
}
.catalog-note .paragraph-smallest { margin: 0 0 6px; }
.catalog-note .paragraph-lighter { opacity: .78; }

@media screen and (max-width: 991px) {
  .featured-pieces-collection.catalog-item { width: 33.333%; }
  .catalog-item .featured-product-wrapper { width: auto; margin-bottom: 0; }
}
@media screen and (max-width: 767px) {
  .featured-pieces-collection.catalog-item { width: 50%; display: block; margin-bottom: 44px; }
  .catalog-item .featured-product-wrapper { width: auto; margin-left: 8px; margin-right: 8px; }
  .catalog-filters { gap: 6px 26px; margin-top: 24px; }
  .catalog-filter { font-size: 20px; }
}
@media screen and (max-width: 479px) {
  .catalog-filters { gap: 6px 16px; }
  .catalog-filter { font-size: 18px; }
}
@media screen and (max-width: 479px) {
  .featured-pieces-collection.catalog-item { width: 50%; padding: 0; justify-content: initial; }
  .catalog-item .featured-product-wrapper { width: auto; margin-left: 6px; margin-right: 6px; }
  .catalog-item .featured-product-name { font-size: 19px; }
  .catalog-badge { font-size: 9px; letter-spacing: 1.5px; }
  .catalog-item .product-price { font-size: 12px; line-height: 1.45; }
  .collection-list.catalog-grid { margin-left: -6px; margin-right: -6px; width: calc(100% + 12px); }
}

/* ---------- Catalogue: closing plate ----------
   The last cell of the grid (written by build_catalog.py, resized by madzharo.js when filtering).
   It fills the empty cells of the last row – cols − (models mod cols) – so every row ends flush,
   or becomes a full-width band when the last row is already complete.
   Column counts 4 / 3 / 2 must match the card widths above. The .02 / .98 breakpoints are the exact
   complements of the cards' max-width: 991px / 767px, so zoomed (fractional) viewport widths never fall
   between them. */
.catalog-end { width: 100%; padding: 0; margin-bottom: 70px; --s: 1; --g: 20px; --lift: 0px; }
.catalog-end-inner { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0 calc(var(--g) / 2); }
/* invisible spacer = exactly one card image (3:4), so the plate is as tall as the photos beside it;
   --lift adds the 70px stagger, so a wide plate runs from the top of a high image to the bottom of a low one */
.catalog-end-inner::before {
  content: ""; grid-area: 1 / 1; justify-self: start; align-self: start;
  width: calc((100% + var(--g)) / var(--s) - var(--g)); aspect-ratio: 3 / 4; margin-bottom: var(--lift);
}
.catalog-end-panel {
  grid-area: 1 / 1; min-width: 0;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  text-align: center; padding: clamp(20px, 2.2vw, 32px); background-color: var(--bg-main);
}
.catalog-end .catalog-badge { margin-top: 0; }
.catalog-end-title {
  margin: 12px 0 0; font-family: Italiana, sans-serif; font-weight: 400;
  font-size: clamp(30px, 2.5vw, 36px); line-height: 1.1; color: #000; text-wrap: balance;
}
.catalog-end-text {
  max-width: 340px; margin: 14px auto 0;
  font-size: 15px; line-height: 24px; font-weight: 400; color: #3d3d4f; text-wrap: balance;
}
.catalog-end .catalog-end-button {
  width: auto; height: 50px; flex: none;
  margin-top: clamp(18px, 1.8vw, 26px); padding-left: 32px; padding-right: 32px;
}
.catalog-end .catalog-end-button:focus-visible { outline: 2px solid var(--indigo); outline-offset: 3px; }

@media screen and (min-width: 991.02px) {
  .catalog-end[data-lg="1"] { width: 25%; }
  .catalog-end[data-lg="2"] { width: 50%; --s: 2; }
  .catalog-end[data-lg="3"] { width: 75%; --s: 3; }
  .is-staggered .catalog-end[data-lg="1"] { padding-top: 70px; }   /* always in the 4th (low) column */
  .is-staggered .catalog-end[data-lg="2"],
  .is-staggered .catalog-end[data-lg="3"] { --lift: 70px; }
  .catalog-end[data-lg="4"] .catalog-end-inner::before { display: none; }
  .catalog-end[data-lg="4"] .catalog-end-panel { padding: 48px 40px; }
}
@media screen and (min-width: 767.02px) and (max-width: 991px) {
  .catalog-end[data-md="1"] { width: 33.333%; }
  .catalog-end[data-md="2"] { width: 66.666%; --s: 2; }   /* not 66.667%: the row must never exceed 100% */
  .catalog-end-panel { padding: 20px 24px; }
  .catalog-end-title { font-size: 28px; }
  .catalog-end-text { margin-top: 10px; font-size: 14px; line-height: 22px; }
  .catalog-end .catalog-end-button { margin-top: 18px; }
  .catalog-end[data-md="3"] .catalog-end-inner::before { display: none; }
  .catalog-end[data-md="3"] .catalog-end-panel { padding: 44px 32px; }
  .catalog-end[data-md="3"] .catalog-end-title { font-size: 32px; }
  .catalog-end[data-md="3"] .catalog-end-text { margin-top: 14px; font-size: 15px; line-height: 24px; }
  .catalog-end[data-md="3"] .catalog-end-button { margin-top: 24px; }
}
@media screen and (max-width: 767px) {
  .catalog-end { margin-bottom: 44px; --g: 16px; }
  .catalog-end[data-sm="1"] { width: 50%; }
  .catalog-end[data-sm="2"] .catalog-end-inner::before { display: none; }
  .catalog-end[data-sm="2"] .catalog-end-panel { padding: 36px 20px; }
  .catalog-end[data-sm="2"] .catalog-end-title { font-size: 28px; }
  .catalog-end[data-sm="2"] .catalog-end-text { font-size: 14px; line-height: 22px; }
  .catalog-end[data-sm="2"] .catalog-end-button { margin-top: 22px; }
}
@media screen and (max-width: 479px) { .catalog-end { --g: 12px; } }

/* one-column plate (same size as a single photo): from 1280px it has room for the full content;
   below that it keeps badge, title and an underlined phone link */
@media screen and (min-width: 991.02px) {
  .catalog-end[data-lg="1"] .catalog-end-panel { padding: 24px 20px; }
  .catalog-end[data-lg="1"] .catalog-end-title { font-size: clamp(26px, 2vw, 30px); }
}
@media screen and (min-width: 1280px) {
  .catalog-end[data-lg="1"] .catalog-end-text { max-width: 240px; margin-top: 12px; font-size: 14px; line-height: 22px; }
  .catalog-end[data-lg="1"] .catalog-end-button { margin-top: 20px; }
}
@media screen and (min-width: 991.02px) and (max-width: 1279.98px) {
  .catalog-end[data-lg="1"] .catalog-end-text { display: none; }
}
@media screen and (min-width: 767.02px) and (max-width: 991px) {
  .catalog-end[data-md="1"] .catalog-end-panel { padding: 20px 16px; }
  .catalog-end[data-md="1"] .catalog-end-title { font-size: 26px; }
  .catalog-end[data-md="1"] .catalog-end-text { display: none; }
}
@media screen and (max-width: 767px) {
  .catalog-end[data-sm="1"] .catalog-end-panel { padding: 16px 12px; }
  .catalog-end[data-sm="1"] .catalog-end-title { font-size: 20px; margin-top: 8px; }
  .catalog-end[data-sm="1"] .catalog-end-text { display: none; }
}
@media screen and (max-width: 479px) {
  .catalog-end[data-sm="1"] .catalog-end-panel { padding: 12px 10px; }
  .catalog-end[data-sm="1"] .catalog-end-title { font-size: 18px; }
}
@media screen and (min-width: 991.02px) and (max-width: 1279.98px) {
  .catalog-end[data-lg="1"] .catalog-end-button, .catalog-end[data-lg="1"] .catalog-end-button:hover {
    height: auto; padding: 4px 0; margin-top: 14px; background-color: transparent; border: 0;
    color: var(--indigo); font-size: 15px; letter-spacing: .5px; text-transform: none; white-space: nowrap;
    text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
  }
}
@media screen and (min-width: 767.02px) and (max-width: 991px) {
  .catalog-end[data-md="1"] .catalog-end-button, .catalog-end[data-md="1"] .catalog-end-button:hover {
    height: auto; padding: 4px 0; margin-top: 14px; background-color: transparent; border: 0;
    color: var(--indigo); font-size: 15px; letter-spacing: .5px; text-transform: none; white-space: nowrap;
    text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
  }
}
@media screen and (max-width: 767px) {
  .catalog-end[data-sm="1"] .catalog-end-button, .catalog-end[data-sm="1"] .catalog-end-button:hover {
    height: auto; padding: 4px 0; margin-top: 10px; background-color: transparent; border: 0;
    color: var(--indigo); font-size: 14px; letter-spacing: .5px; text-transform: none; white-space: nowrap;
    text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
  }
}
/* compact link: larger tap area (about 46px tall) without moving anything */
@media screen and (min-width: 991.02px) and (max-width: 1279.98px) {
  .catalog-end[data-lg="1"] .catalog-end-button::after { content: ""; position: absolute; inset: -9px -12px; }
}
@media screen and (min-width: 767.02px) and (max-width: 991px) {
  .catalog-end[data-md="1"] .catalog-end-button::after { content: ""; position: absolute; inset: -9px -12px; }
}
@media screen and (max-width: 767px) {
  .catalog-end[data-sm="1"] .catalog-end-button::after { content: ""; position: absolute; inset: -9px -12px; }
}

/* ---------- Quick view (product details without leaving the page) ---------- */
.qv {
  position: fixed; inset: 0; z-index: 2000;
  display: flex; justify-content: center; align-items: center;
  padding: 3vw;
}
.qv[hidden] { display: none; }
.qv-bg { position: absolute; inset: 0; background: rgba(16, 6, 69, .55); opacity: 0; transition: opacity .35s; }
.qv-panel {
  position: relative; width: 100%; max-width: 1240px; max-height: 100%;
  background: var(--bg-main); overflow: hidden;
  display: grid; grid-template-columns: 1fr 1fr;
  opacity: 0; transform: translateY(24px);
  transition: opacity .35s, transform .45s cubic-bezier(.2,.7,.2,1);
}
.qv.is-open .qv-bg { opacity: 1; }
.qv.is-open .qv-panel { opacity: 1; transform: none; }
.qv-gallery { position: relative; background: var(--accent-one); min-height: 0; border-right: 1px solid #000; }
.qv-main { position: relative; width: 100%; height: 100%; max-height: calc(100vh - 6vw); aspect-ratio: 3 / 4; overflow: hidden; }
.qv-main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .3s; }
.qv-thumbs {
  position: absolute; left: 16px; bottom: 16px; display: flex; gap: 8px; z-index: 2;
}
.qv-thumb {
  width: 54px; height: 72px; padding: 0; border: 1px solid rgba(255,255,255,.7);
  background: #fff center / cover no-repeat; cursor: pointer; opacity: .75; transition: opacity .2s, border-color .2s;
}
.qv-thumb[aria-current="true"] { opacity: 1; border-color: #000; }
.qv-thumb:hover { opacity: 1; }
.qv-nav {
  position: absolute; top: 50%; z-index: 2; width: 44px; height: 44px; margin-top: -22px;
  border: 0; border-radius: 50%; background: rgba(244,245,249,.85); cursor: pointer;
  display: flex; justify-content: center; align-items: center; color: #000;
}
.qv-nav svg { width: 18px; height: 18px; }
.qv-prev { left: 14px; } .qv-next { right: 14px; }
.qv-content {
  position: relative; overflow-y: auto; padding: 70px 5vw 50px;
  display: flex; flex-direction: column; justify-content: flex-start;
  max-height: calc(100vh - 6vw);
}
.qv-badge { font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: var(--indigo); }
.qv-title { margin: 14px 0 10px; font-size: 52px; line-height: 1.05; text-transform: none; }
.qv-price { font-size: 18px; opacity: .75; }
.qv-desc { margin: 30px 0 30px; }
.qv-facts { margin: 0 0 34px; padding: 0; list-style: none; }
.qv-facts li { font-size: 14px; line-height: 22px; padding: 7px 0; border-top: 1px solid rgba(0,0,0,.12); display: flex; justify-content: space-between; gap: 20px; }
.qv-facts li:last-child { border-bottom: 1px solid rgba(0,0,0,.12); }
.qv-facts span:first-child { opacity: .55; }
.qv-actions { display: flex; flex-direction: column; gap: 10px; }
.qv-actions .button-basic-one, .qv-actions .button-basic-two-outlined { width: 100%; height: 60px; padding-left: 20px; padding-right: 20px; }
.qv-actions .button-basic-two-outlined { color: #000; transition: background-color .2s, color .2s; }
.qv-actions .button-basic-two-outlined:hover { background: #000; color: #fff; }
.qv-acc { margin-top: 36px; }
.qv-acc-item { border-top: 1px solid rgba(61,58,49,.2); }
.qv-acc-item:last-child { border-bottom: 1px solid rgba(61,58,49,.2); }
.qv-acc-btn {
  width: 100%; height: 60px; background: none; border: 0; padding: 0; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center;
  font-family: Poppins, sans-serif; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--indigo);
}
.qv-acc-icon { position: relative; width: 16px; height: 16px; flex: none; }
.qv-acc-icon::before, .qv-acc-icon::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: #000; transition: transform .3s; }
.qv-acc-icon::after { transform: rotate(90deg); }
.qv-acc-btn[aria-expanded="true"] .qv-acc-icon::after { transform: rotate(0deg); }
.qv-acc-panel { overflow: hidden; height: 0; transition: height .35s ease; }
.qv-acc-panel p { font-size: 14px; line-height: 22px; margin: 0 0 22px; padding-right: 30px; }
.qv-close {
  position: absolute; top: 14px; right: 14px; z-index: 5; width: 50px; height: 50px;
  background: none; border: 0; cursor: pointer; transform: rotate(45deg);
  display: flex; justify-content: center; align-items: center;
}
.qv-close span { position: absolute; width: 30px; height: 1px; background: #000; }
.qv-close span + span { transform: rotate(90deg); }
body.qv-lock { overflow: hidden; }
.qv-close:focus-visible { outline: none; box-shadow: 0 0 0 1px var(--indigo); border-radius: 50%; }

@media screen and (max-width: 991px) {
  .qv { padding: 0; align-items: stretch; }
  .qv-panel { display: block; max-height: none; height: 100%; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .qv-gallery { border-right: 0; border-bottom: 1px solid #000; }
  .qv-main { max-height: none; height: auto; }
  .qv-content { max-height: none; overflow: visible; padding: 34px 5vw 60px; }
  .qv-actions {
    position: sticky; bottom: 0; z-index: 3; margin: 0 -5vw; padding: 12px 5vw;
    background: var(--bg-main); border-top: 1px solid rgba(0,0,0,.08);
  }
  .qv-actions .button-basic-one, .qv-actions .button-basic-two-outlined { height: 52px; }
  .qv-title { font-size: 42px; }
  .qv-close { position: fixed; top: 10px; right: 10px; background: rgba(244,245,249,.9); border-radius: 50%; }
}
@media screen and (max-width: 479px) {
  .qv-title { font-size: 36px; }
  .qv-desc { margin: 20px 0; }
  .qv-thumb { width: 44px; height: 58px; }
  .qv-content { padding: 28px 20px 48px; }
  .qv-actions { margin: 0 -20px; padding: 10px 20px; }
}

/* ---------- Feature grid / footer ---------- */
.feature-grid-wrapper .h5 { margin-top: 14px; }
.footer-links-wrapper .link-footer { line-height: 1.5; }
.footer-title-wrapper { width: auto; }
.footer-address { font-size: 14px; line-height: 22px; margin: 8px 0 0; opacity: .7; }
.footer-cta { display: flex; align-items: center; gap: 10px; width: 100%; }
.footer-cta .field-like {
  flex: 1; height: 50px; display: flex; align-items: center;
  border-bottom: 1px solid #000; font-size: 18px; color: #000; padding-left: 10px;
  background-color: rgba(244, 245, 249, .3);
}
.footer-cta .field-like:hover { color: var(--indigo); }
.footer-cta .button-basic-one { flex: none; color: #f4f5f9; }
.copyright-wrapper .copyright { color: #dfe2f0; }
.copyright .link-white { font-size: inherit; }
.copyright .link-white:hover { color: #fff; }
@media screen and (max-width: 991px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-wrapper.no-border { grid-column: 1 / -1; }
}
@media screen and (max-width: 767px) {
  .footer-cta { flex-direction: column; align-items: stretch; }
  .footer-cta .field-like { justify-content: center; padding-left: 0; }
}
@media screen and (max-width: 479px) {
  .footer-grid { grid-template-columns: 1fr; }
  .footer-title-wrapper { width: auto; }
}

/* ---------- QC Control page ---------- */
.qc-eyebrow { font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: var(--indigo); margin-bottom: 0; }
.qc-list { margin: 0; padding: 0; list-style: none; }
.qc-list li { position: relative; padding-left: 22px; margin-bottom: 10px; }
.qc-list li::before { content: ""; position: absolute; left: 0; top: 10px; width: 8px; height: 8px; border-radius: 50%; background: #000; }
.statement-content-wrapper.right .qc-list li { padding-left: 0; padding-right: 22px; }
.statement-content-wrapper.right .qc-list li::before { left: auto; right: 0; }
.qc-contact-lines { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.qc-contact-lines a {
  color: #f4f5f9; font-size: 18px; line-height: 1.4; padding: 12px 0;
  border-bottom: 1px solid #dfe2f0; display: flex; justify-content: space-between; gap: 20px;
}
.qc-contact-lines a span:first-child { opacity: .6; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; align-self: center; }
.qc-contact-lines a:hover { color: #fff; border-bottom-color: #fff; }
.sign-up-content-wrapper .button-basic-accent-one-form { align-self: flex-start; color: #000; }
@media screen and (max-width: 767px) {
  .sign-up-content-wrapper .button-basic-accent-one-form { align-self: stretch; }
  .qc-contact-lines a { font-size: 16px; }
}

/* QC hero title: "CONTROL" must fit the half-width column the way "STORY" does */
.qc-title { font-size: 6.4vw; line-height: 1.05; }
@media screen and (max-width: 767px) { .qc-title { font-size: 13.5vw; } }
.qc-signature { font-family: Italiana, sans-serif; font-size: 30px; line-height: 1.2; color: var(--indigo); }
.statement-content-wrapper .h4 { margin-bottom: 14px; }
@media screen and (max-width: 479px) { .h4 { font-size: 32px; } }

/* 404 */
.utility-logo { width: 150px; height: auto; display: block; }
.h2-404 { margin: 0 0 20px; font-family: Italiana, sans-serif; font-size: 7vw; font-weight: 400; line-height: 1.2; text-transform: none; }
@media screen and (max-width: 767px) { .h2-404 { font-size: 20vw; } }


/* ---------- Contacts page ----------
   The template's "Contact Us" section: details on the left, the map where the template has its form. */
.contacts-grid { height: auto; min-height: calc(100vh - 150px); }
.contacts .contact-us-content { justify-content: center; }
.contacts-title { margin: 0 0 6px; }   /* size = the template's h3 (.h3) */
.contact-block { margin-top: 30px; }
.contact-block .h5 { margin: 0 0 8px; }
.contact-block p { margin: 0; font-size: 15px; line-height: 24px; }
.contact-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
.contact-big-link {
  display: inline-block; margin-top: 6px; font-family: Italiana, sans-serif; font-size: 36px; line-height: 1.2;
  color: var(--indigo); letter-spacing: .5px; white-space: nowrap;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px;
}
.contact-link {
  display: inline-block; padding: 4px 0; font-size: 15px; line-height: 22px; color: var(--indigo);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
}
.contact-big-link:hover, .contact-link:hover { color: #000; }
.contact-block p + .contact-link { margin-top: 6px; }
.contact-arrow::after { content: "\00a0→"; content: "\00a0→" / ""; }
.contact-muted { color: #4a4a5c; font-size: 14px; }
.contact-block p.contact-muted { margin-top: 4px; font-size: 14px; }
.contact-social { display: flex; flex-wrap: wrap; gap: 0 28px; }

/* map (Leaflet + OpenStreetMap tiles, see madzharo.js) */
.contact-map {
  position: relative; z-index: 0; isolation: isolate; width: 100%;
  height: clamp(340px, 60vh, 600px); background-color: var(--accent-one);
  display: flex; align-items: center; justify-content: center;
}
.contact-map.leaflet-container { display: block; font-family: Poppins, sans-serif; background-color: var(--bg-main); }
.contact-map .leaflet-tile-pane { filter: grayscale(1) contrast(.85) brightness(1.06); }
/* tiles land on fractional pixels on high-density screens; a half-pixel overlap (with normal blending instead of
   Leaflet's plus-lighter) removes the hairline seams between them */
.contact-map .leaflet-tile-container img.leaflet-tile { width: 256.5px !important; height: 256.5px !important; mix-blend-mode: normal; }
.contact-map-fallback { color: var(--indigo); text-decoration: underline; text-underline-offset: 4px; }
.map-pin { background: none; border: 0; }
.map-pin svg { display: block; width: 30px; height: 40px; filter: drop-shadow(0 2px 3px rgba(16, 6, 69, .3)); }
.leaflet-tooltip.map-label {
  padding: 7px 10px; border: 0; border-radius: 0; box-shadow: none;
  background: var(--indigo); color: #f4f5f9;
  font-family: Poppins, sans-serif; font-size: 11px; font-weight: 500; line-height: 1.3; letter-spacing: 2px; text-transform: uppercase;
}
.leaflet-tooltip-top.map-label::before { border-top-color: var(--indigo); }
.contact-map .leaflet-bar { border: 1px solid rgba(0, 0, 0, .25); border-radius: 0; box-shadow: none; }
.contact-map .leaflet-bar a, .contact-map .leaflet-bar a:hover {
  width: 36px; height: 36px; line-height: 34px; border-radius: 0; color: var(--indigo); font-weight: 300;
}
.contact-map .leaflet-bar a:first-child, .contact-map .leaflet-bar a:last-child { border-radius: 0; }
.contact-map .leaflet-control-attribution { font-size: 11px; background: rgba(244, 245, 249, .85); color: #4a4a5c; }
.contact-map .leaflet-control-attribution a { color: var(--indigo); }

@media screen and (max-width: 991px) {
  .contacts-grid { min-height: 0; }
  .contacts .two-column-contacts-wrapper { padding-top: 40px; padding-bottom: 40px; align-items: flex-start; }
  .contact-big-link { font-size: 30px; }
  .contact-columns { grid-template-columns: 1fr; }
  .contact-map { height: clamp(380px, 56vh, 600px); }
}
@media screen and (max-width: 767px) {
  .contacts .two-column-contacts-wrapper { padding-top: 0; padding-bottom: 0; }
  .contacts .two-column-contacts-wrapper.right-border { padding-top: 8px; border-right: 0; }
  .contacts .contact-us-content { width: 100%; padding: 32px 5vw; }
  .contact-map { height: 380px; }
}
@media screen and (max-width: 479px) {
  .contacts-title { font-size: 42px; }
  .contact-columns { grid-template-columns: 1fr; }
  .contact-big-link { font-size: 28px; }
  .contact-map { height: 340px; }
}


/* ---------- Mobile refinements ---------- */
@media screen and (min-width: 768px) and (max-width: 991px) {
  .main-statement-wrapper { width: 72vw; }
}
@media screen and (max-width: 767px) {
  /* the template hides the bar on phones; IX2 sets an inline display, so enforce it */
  .announcement.bg-accent-two { display: none !important; }
}
@media screen and (max-width: 479px) {
  .hero-title-wrapper { width: 90vw; margin-left: 5vw; }
  .title-hero { font-size: 14vw; }
}
@media screen and (max-width: 767px) {
  .main-statement-wrapper { width: 100%; }
  .main-statement-wrapper .h3 { font-size: 40px; }
  .section._100-vh { min-height: 0; padding-top: 80px; padding-bottom: 40px; }
}
@media screen and (max-width: 479px) {
  .main-statement-wrapper .h3 { font-size: 34px; }
  .title-mobile { font-size: 40px; }
  .paragraph-bigger { font-size: 22px; line-height: 28px; }
  .instagram-wrapper h4 { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-item .featured-product-image img, .qv-panel, .qv-bg { transition: none; }
}

/* =========================================================================
   Visibility & contrast pass
   ========================================================================= */

/* Body copy: Montserrat/Poppins 300 reads too faint on light backgrounds */
body { font-weight: 400; color: #111; }
p { color: #1a1a1f; }

/* Hero: decorative lines quieter so they don't cut through the title */
.shape._01, .shape._02 { opacity: .22; }
/* Hero title: solid black with a soft light halo so it stays legible over the photo */
.title-hero {
  color: #0b0b10;
  text-shadow: 0 0 2px rgba(244, 245, 249, .9), 0 0 22px rgba(244, 245, 249, .95), 0 0 48px rgba(244, 245, 249, .7);
}
/* Hero CTA: the template's full-width bar, filled in brand indigo */
.hero-content-wrapper-button .button-basic-two-outlined {
  background-color: var(--indigo); border-color: var(--indigo); color: #fff;
  font-size: 13px; font-weight: 500; letter-spacing: 5px;
  box-shadow: 0 14px 40px -18px rgba(16, 6, 69, .55);
  transition: background-color .3s, box-shadow .3s;
}
.hero-content-wrapper-button .button-wrapper:hover .button-basic-two-outlined { background-color: #2a2391; box-shadow: 0 18px 46px -18px rgba(16, 6, 69, .7); }
.hero-content-wrapper-button .button-hover.bg-accent-two { background-color: #fff; opacity: .12; }
.hero-content-wrapper-button .label-button::after { content: "  →"; letter-spacing: 0; }

/* Buttons everywhere: a touch heavier text */
.button-basic-one, .button-basic-two-outlined, .button-basic-accent-one-form { font-weight: 500; }

/* Announcement bar */
.text-info-line { font-size: 11px; color: #e9ebf6; }

/* Nav links */
.nav-link { color: #111; }

/* Catalogue cards */
.catalog-badge { font-size: 11px; font-weight: 500; }
.catalog-item .product-price { opacity: 1; color: #3d3d4f; font-size: 14px; }
.catalog-intro { font-size: 16px; }
.catalog-note .paragraph-smallest { font-size: 13px; line-height: 21px; }
.catalog-note .paragraph-lighter { opacity: 1; color: #4a4a5c; }
.catalog-filter { color: #111; }

/* Quick view */
.qv-price { opacity: 1; color: #3d3d4f; }
.qv-facts span:first-child { opacity: 1; color: #5a5a6c; }

/* QC page */
.qc-eyebrow { font-size: 12px; font-weight: 500; }
.qc-contact-lines a span:first-child { opacity: .85; }
.paragraph-light { color: #eef0f8; }

/* Footer */
.footer-address { opacity: 1; color: #3d3d4f; }
.copyright, .copyright-wrapper .copyright { font-size: 11px; letter-spacing: 1.5px; color: #e9ebf6; }

@media screen and (max-width: 479px) {
  .catalog-badge { font-size: 10px; }
  .catalog-item .product-price { font-size: 13px; }
  .hero-content-wrapper-button .button-basic-two-outlined { font-size: 12px; letter-spacing: 3px; padding-left: 20px; padding-right: 20px; }
}

/* =========================================================================
   Audit fixes (layout, overflow, legibility)
   ========================================================================= */

/* Headings and paragraphs: balanced lines, no lonely last words */
h1, h2, h3, h4, h5, .h1, .h3, .h4, .h5, .title-hero, .qv-title { text-wrap: balance; }
p, .catalog-intro, .qv-desc { text-wrap: pretty; }
.nowrap { white-space: nowrap; }

/* Announcement bar: the 26px line box was clipped by the 20px bar */
.announcement .text-info-line { line-height: 20px; }

/* Main navigation: make the current page / hover clearly different */
.nav-link.w--current, .nav-link:hover { color: var(--indigo); }
.nav-link.w--current { text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 1px; }

/* Keyboard focus visible on indigo backgrounds */
.bg-accent-two a:focus-visible, .bg-accent-two button:focus-visible, .bg-accent-two [tabindex]:focus-visible,
.cart-button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* Mobile menu: logo stays visible above the open panel; contact block aligned with the links */
@media screen and (max-width: 991px) {
  .nav-bar-logo-wrapper { position: relative; z-index: 1002; }
  .nav-contact-mobile { width: 100%; text-align: left; align-items: flex-start; }
  .nav-contact-phone { font-size: 30px; }
  .nav-contact-mobile span { opacity: 1; color: #4a4a5c; font-size: 12px; letter-spacing: 1.5px; }
}

/* Footer: the template pins two columns to grid column 3 and spans the newsletter title to line 5,
   which creates implicit columns (page overflow) once our footer uses 2 / 1 columns */
@media screen and (max-width: 991px) {
  #w-node-_404fd523-c74e-edd4-3d5d-3a5828b20d29-28b20d07,
  #w-node-_404fd523-c74e-edd4-3d5d-3a5828b20d36-28b20d07 { grid-area: auto; }
  #w-node-div-block-28b20d07,
  #w-node-_404fd523-c74e-edd4-3d5d-3a5828b20d44-28b20d07 { grid-column: 1 / -1; grid-row: auto; }
  .newsletter-grid { grid-template-columns: 1fr; }
}
@media screen and (max-width: 599px) { .footer-grid { grid-template-columns: 1fr; } }
/* Footer headings on one line in narrow columns */
/* (footer heading sizing: see final polish below) */
/* Footer phone reads as a link, not an empty input */
.footer-cta .field-like { color: var(--indigo); font-weight: 500; letter-spacing: 1px; }
.footer-cta .field-like:hover { color: #000; }
.copyright-wrapper .div-block .copyright:last-child { margin-right: 0; }

/* Catalogue small print */
.catalog-filter sup { font-family: Poppins, sans-serif; font-size: 12px; font-weight: 500; opacity: .8; }
.catalog-note .paragraph-smallest { font-size: 14px; line-height: 22px; font-weight: 400; }

/* QC page */
.about-owner-content .title-wrapper.relative-left .h4 {
  position: relative; z-index: 2;
  text-shadow: 0 0 2px rgba(223, 226, 240, .95), 0 0 18px rgba(223, 226, 240, .95), 0 0 36px rgba(223, 226, 240, .8);
}
.section.section-padding.bg-main .statement.min-100-px { min-height: 0; }
@media screen and (max-width: 767px) {
  /* keep the template's image-first order, but bring the title into the first screen */
  .our-story-image-width .vertical-image { padding-bottom: 95%; }
}
@media screen and (max-width: 479px) {
  .qc-contact-lines a { flex-wrap: wrap; column-gap: 20px; row-gap: 2px; }
  .qc-contact-lines a span:first-child { flex-basis: 100%; }
}


/* =========================================================================
   Final polish (second verification round)
   ========================================================================= */

/* background photos never tile (a 1px strip of the opposite edge showed with cover + repeat) */
.vertical-image, .hero-image, .slider-image, .instagram-content, .features-image, .features-image-small,
.our-story-image, .about-owner-image, .sign-up-image-one, .sign-up-image-two { background-repeat: no-repeat; }

/* Halo behind headings that overlap photos: tight, so it doesn't fog the picture */
.title-hero { text-shadow: 0 0 2px rgba(244, 245, 249, .95), 0 0 12px rgba(244, 245, 249, .9); }
.about-owner-content .title-wrapper.relative-left .h4 {
  text-shadow: 0 0 2px rgba(223, 226, 240, 1), 0 0 8px rgba(223, 226, 240, 1), 0 0 16px rgba(223, 226, 240, .9);
}

/* Footer: 3 columns until there is room for the template's 5 */
.footer-title-wrapper h5, .footer-title-wrapper .h5,
#w-node-div-block-28b20d07 h5, #w-node-div-block-28b20d07 .h5 { white-space: nowrap; font-size: clamp(20px, 1.8vw, 26px); }
@media screen and (min-width: 992px) and (max-width: 1279px) {
  .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-wrapper.no-border { grid-column: 1 / -1; }
}
@media screen and (max-width: 479px) { #w-node-div-block-28b20d07 { text-align: center; } }

/* Small print at 12px minimum on desktop */
.catalog-badge, .qv-badge { font-size: 12px; }
.copyright, .copyright-wrapper .copyright, .text-info-line { font-size: 12px; }
@media screen and (max-width: 479px) { .catalog-badge { font-size: 11px; letter-spacing: 1px; } }
@media screen and (max-width: 379px) { .catalog-badge { letter-spacing: .5px; } }

/* Focus rings not clipped by the template's overflow:hidden wrappers */
.nav-link-wrapper:focus-within { overflow: visible; }
.announcement a:focus-visible, .announcement .close-icon-wrapper:focus-visible { outline-offset: -2px; }

/* Same logo size on every page (the template's .brand.w--current rule only exists for the home page) */
@media screen and (max-width: 767px) { .brand, .brand.w--current { width: 120px; } }
@media screen and (max-width: 479px) { .brand, .brand.w--current { width: 112px; } }

/* Mobile: no stray desktop column dividers; QC owner photo full width like the other photos */
@media screen and (max-width: 767px) {
  .two-column-slider-wrapper.right-border, .two-column-our-story-wrapper.right-border { border-right: 0; }
  .about-owner-image-width { width: 60vw; }
}
@media screen and (max-width: 479px) {
  .about-owner-content-wrapper.right { justify-content: center; }
  .about-owner-image-width { width: 90vw; }
}

/* QC "Какво правим за вас": centred like the template's one-line title in the same box */
.title-wrapper._50 h2 { text-align: center; }
@media screen and (max-width: 479px) { .title-wrapper._50 { width: 100%; } }

/* Mobile menu divider: same inset on both sides */
@media screen and (max-width: 991px) { .nav-contact-mobile { width: calc(100% - 5vw); } }

/* Quick view close button: smaller on phones so it covers less text while scrolling */
@media screen and (max-width: 991px) {
  .qv-close { width: 44px; height: 44px; }
  .qv-close span { width: 22px; }
}

/* Catalogue: cards keep their size when a filter shows fewer models */
.featured-pieces-wrapper.catalog > .collection-list-wrapper { width: 100%; }
@media screen and (max-width: 767px) {
  /* QC hero: less dead space between the photo and the title on phones */
  .two-column-our-story-wrapper.right-border { padding-top: 0; }
  .content-our-story { padding-top: 10px; }
}
@media screen and (max-width: 767px) {
  /* right-aligned paragraphs read poorly on a phone: align with the heading */
  .about-owner-content.right { text-align: left; align-items: flex-start; }
}

/* Safety net for the template's intro (Webflow IX2 runs on requestAnimationFrame, which pauses in
   background tabs and never runs if webflow.js is slow/blocked): show the hero photos after 4 s and fade the
   loader out 6 s after the first paint at the latest. Normally IX2 finishes ~1.4 s after webflow.js has run. */
/* Loader from the very first paint. The template hides .loading-animation in CSS and only shows it once
   webflow.js (~280 kB) has run, so on a real connection the bare page flashed before the loader. These are the
   values of the first frame of the IX2 "Loading" animation (a-54), so IX2 takes over without a jump.
   Only with JS (.w-mod-js is set by the inline script in <head>); without JS there is no loader at all. */
.w-mod-js .loading-animation.bg-accent-one { display: flex; opacity: 1; }
.w-mod-js .loading-animation .line-loading-01.left, .w-mod-js .loading-animation .line-loading-03.right { height: 0%; }
.w-mod-js .loading-animation .line-loading-02.top, .w-mod-js .loading-animation .line-loading-04.bottom { width: 0%; }
.w-mod-js .loading-animation .loading-image { transform: translate3d(0, 100px, 0); }
.loading-animation { z-index: 1500; }   /* above the announcement bar (z-index 1000, later in the page) */

@keyframes madz-failsafe-hide { to { opacity: 0; visibility: hidden; } }
@keyframes madz-failsafe-show { to { opacity: 1; transform: none; } }
@keyframes madz-failsafe-uncover { to { opacity: 0; } }
.loading-animation { animation: madz-failsafe-hide .4s ease 6s forwards; }
.hero-image-width { animation: madz-failsafe-show .6s ease 4s forwards; }
.hero-image-width .colour-loading { animation: madz-failsafe-uncover .6s ease 4s forwards; }
@media (prefers-reduced-motion: reduce) {
  .loading-animation { animation-duration: .01s; animation-delay: 1.5s; }
}
