/* ==== assets/css/main.css ==== */
/*
 * sodnamis — main.css
 * Global design tokens + base + layout primitives.
 * Author: sodnamis.lt
 * Tokens ported 1:1 from the Lovable reference (shadcn/ui HSL-triplet convention).
 */

/* ============================================================
   1. Design tokens
   ============================================================ */
:root {
  /* Core palette (HSL channels — use as hsl(var(--token) / <alpha>)) */
  --background: 0 0% 100%;
  --foreground: 220 50% 15%;          /* #132039 dark navy text */
  --card: 0 0% 100%;
  --card-foreground: 220 50% 15%;
  --popover: 0 0% 100%;
  --popover-foreground: 220 50% 15%;
  --primary: 220 53% 27%;             /* #203969 brand navy */
  --primary-foreground: 0 0% 100%;
  --secondary: 220 20% 95%;           /* #eef0f4 */
  --secondary-foreground: 220 50% 20%;
  --muted: 220 15% 95%;               /* #eef0f2 */
  --muted-foreground: 220 15% 45%;    /* #626d84 grey */
  --accent: 220 53% 35%;              /* lighter navy */
  --accent-foreground: 0 0% 100%;
  --destructive: 0 84% 60%;           /* sale / badge red */
  --destructive-foreground: 0 0% 100%;
  --success: 145 63% 32%;             /* cart / positive green (from catalog CTAs) */
  --success-foreground: 0 0% 100%;
  --border: 220 15% 90%;
  --input: 220 15% 90%;
  --ring: 220 53% 27%;
  --radius: 0.75rem;

  /* Gradients */
  --gradient-warm: linear-gradient(135deg, hsl(220 53% 27%) 0%, hsl(220 60% 22%) 100%);
  --gradient-hero-overlay: linear-gradient(180deg, hsl(220 30% 10% / 0.3) 0%, hsl(220 30% 10% / 0.7) 100%);
  --gradient-card: linear-gradient(180deg, hsl(0 0% 100% / 1) 0%, hsl(220 15% 97% / 1) 100%);

  /* Shadows */
  --shadow-soft: 0 4px 20px -2px hsl(220 50% 15% / 0.06);
  --shadow-card: 0 8px 30px -4px hsl(220 50% 15% / 0.1);
  --shadow-card-hover: 0 16px 40px -6px hsl(220 50% 15% / 0.16);
  --shadow-button: 0 4px 14px -2px hsl(220 53% 27% / 0.35);

  /* Typography */
  --font-heading: "Montserrat", system-ui, sans-serif;
  --font-body: "Open Sans", system-ui, sans-serif;

  /* Spacing scale (mirrors the Tailwind rhythm used in the reference) */
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-28: 7rem;

  /* Layout */
  --container-max: 1440px; /* matches variantas-4 content width (ruttl: wider layout) */
  --container-pad: 1rem;
  --header-height: 5.5rem;
}

/* Container padding is responsive (measured from variantas-4: 16 / 24 / 32px). */
@media (min-width: 768px) {
  :root { --container-pad: 1.5rem; }
}
@media (min-width: 1024px) {
  :root { --container-pad: 2rem; }
}

/* ============================================================
   2. Reset / base
   ============================================================ */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

/* Respect the OS "reduce motion" preference site-wide: near-instant transitions
   and animations, no smooth scrolling. Component JS (e.g. the category marquee)
   also checks this query and disables its own rAF loops. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;               /* 16px */
  line-height: 1.625;            /* 26px */
  color: hsl(var(--foreground));
  background: hsl(var(--background));
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: hsl(var(--foreground));
  margin: 0 0 0.5em;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.025em;
}
h1 { font-size: clamp(2rem, 3vw + 0.5rem, 2.5rem); }   /* 32 → 40px (client 2026-09-24, item 15) */
h2 { font-size: clamp(1.75rem, 2vw + 1rem, 2.25rem); font-weight: 700; }  /* → 36px */
h3 { font-size: 1.125rem; line-height: 1.55; font-weight: 600; letter-spacing: -0.02em; }  /* 18px */
h4 { font-size: 1rem; font-weight: 600; letter-spacing: -0.01em; }

p { margin: 0 0 1rem; }
p:last-child { margin-bottom: 0; }

a { color: hsl(var(--primary)); text-decoration: none; transition: color 0.2s ease; }
a:hover { color: hsl(var(--accent)); }

img { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 1rem; padding-left: 1.25rem; }

/* Accessible focus ring (keyboard only) */
:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 2px;
  border-radius: 2px;
}

/* Screen-reader-only helper */
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

/* Skip link */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 1000;
  padding: 0.75rem 1.25rem;
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  border-radius: 0 0 var(--radius) 0;
}
.skip-link:focus { left: 0; color: hsl(var(--primary-foreground)); }

/* ============================================================
   3. Layout primitives
   ============================================================ */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

.section { padding-block: var(--space-16); }
.section--lg { padding-block: var(--space-20); }
.section--muted   { background: hsl(var(--muted) / 0.3); }
.section--muted-50 { background: hsl(var(--muted) / 0.5); }
.section--secondary { background: hsl(var(--secondary) / 0.3); }
.section--accent  { background: hsl(var(--accent) / 0.1); }
.section--primary { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.section--primary h1, .section--primary h2, .section--primary h3 { color: hsl(var(--primary-foreground)); }
.section--dark    { background: hsl(var(--foreground)); color: hsl(0 0% 100% / 0.85); }
.section--dark h1, .section--dark h2, .section--dark h3 { color: #fff; }

@media (min-width: 768px) {
  .section { padding-block: var(--space-24); }
  .section--lg { padding-block: var(--space-28); }
}

/* Section heading block (pill + title + subtitle) */
.section-head { text-align: center; max-width: 46rem; margin: 0 auto var(--space-12); }
.section-head p.section-lead { color: hsl(var(--muted-foreground)); font-size: 1.0625rem; }
.section--primary .section-head p.section-lead,
.section--dark .section-head p.section-lead { color: hsl(0 0% 100% / 0.8); }

/* Eyebrow pill (e.g. "Produktai", "Kodėl mes") */
.pill {
  display: inline-block;
  padding: 0.375rem 1rem;
  margin-bottom: 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--primary));
  background: hsl(var(--primary) / 0.1);
  border-radius: 9999px;
  letter-spacing: 0.01em;
}
.section--primary .pill, .section--dark .pill {
  color: #fff; background: hsl(0 0% 100% / 0.15);
}

/* ============================================================
   4. Buttons
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.7rem 1.5rem;
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.2;
  border: 1px solid transparent;
  border-radius: var(--radius);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease;
  text-align: center;
}
.btn:active { transform: translateY(1px); }
/* Prominent hero / section CTAs stay pills (lovable uses rounded-full there). */
.btn--pill { border-radius: 9999px; }
.btn--primary {
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  box-shadow: var(--shadow-button);
}
.btn--primary:hover { background: hsl(var(--accent)); color: #fff; }
.btn--outline {
  background: transparent;
  color: hsl(var(--primary));
  border-color: hsl(var(--border));
}
.btn--outline:hover { background: hsl(var(--secondary)); color: hsl(var(--primary)); }
.btn--success { background: hsl(var(--success)); color: #fff; }
.btn--success:hover { background: hsl(var(--success) / 0.9); color: #fff; }
.btn--white { background: #fff; color: hsl(var(--primary)); }
.btn--white:hover { background: hsl(var(--secondary)); }
.btn--block { width: 100%; }
.btn--sm { padding: 0.5rem 1rem; font-size: 0.875rem; }

/* ============================================================
   5. Cards & badges
   ============================================================ */
.card {
  background: var(--gradient-card);
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-4px); }

.badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.6rem;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 9999px;
  letter-spacing: 0.02em;
}
.badge--sale { background: hsl(var(--destructive)); color: hsl(var(--destructive-foreground)); }

/* ============================================================
   6. Reusable grids
   ============================================================ */
.grid { display: grid; gap: 1.5rem; }
.grid--2 { grid-template-columns: 1fr; }
.grid--3 { grid-template-columns: 1fr; }
.grid--4 { grid-template-columns: repeat(2, 1fr); }

@media (min-width: 768px) {
  .grid--2 { grid-template-columns: repeat(2, 1fr); }
  .grid--3 { grid-template-columns: repeat(2, 1fr); }
  .grid--4 { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1024px) {
  .grid--3 { grid-template-columns: repeat(3, 1fr); }
}

/* Utility */
.text-center { text-align: center; }
.mt-8 { margin-top: 2rem; }
.mt-12 { margin-top: 3rem; }
.stack > * + * { margin-top: 1rem; }
.container--narrow { max-width: 820px; }
.no-scroll { overflow: hidden; }

/* Star rating (shared: topbar, testimonials) */
.stars { display: inline-flex; gap: 1px; line-height: 1; color: hsl(220 15% 80%); font-size: 1rem; }
.stars .star--on { color: #f5a623; }

/* Pagination */
.pagination { display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: center; margin-top: 3rem; }
.pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 2.5rem; height: 2.5rem; padding: 0 0.6rem;
  border: 1px solid hsl(var(--border)); border-radius: var(--radius);
  color: hsl(var(--foreground)); font-weight: 600;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover { background: hsl(var(--primary)); color: #fff; border-color: hsl(var(--primary)); }

/* Entry (WYSIWYG) content spacing */
.entry-content { font-size: 1.0625rem; }
.entry-content > * + * { margin-top: 1.25rem; }
.entry-content h2 { margin-top: 2rem; }
.entry-content img { border-radius: var(--radius); }
.entry-content a { text-decoration: underline; }

/* Supplier document list (product „Dokumentai" tab) */
.sod-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.sod-docs__item { margin: 0; }
.sod-docs__link { display: flex; align-items: center; gap: .5rem; padding: .75rem 1rem;
	border: 1px solid var(--sod-border, #e5e7eb); border-radius: .5rem; text-decoration: none;
	color: inherit; font-weight: 500; }
.sod-docs__link:hover, .sod-docs__link:focus-visible { border-color: var(--sod-accent, #2f6f3e); }
.sod-docs__ext { color: #6b7280; font-weight: 400; }

/* ==== assets/css/components/header.css ==== */
/*
 * sodnamis — header.css (Trustpilot strip, sticky header, category bar, mobile drawer)
 * Metrics measured from variantas-4 @1440 — see docs/superpowers/specs/2026-07-15-*.
 * Author: sodnamis.lt
 */

/* ---------- Trustpilot strip ---------- */
.trustbar { background: hsl(var(--background)); }
.trustbar__inner { padding-block: 14px 12px; }
.trustbar__widget {
  display: flex; align-items: center; justify-content: center; gap: 0.4rem;
  height: 24px; font-size: 0.8125rem; color: hsl(var(--muted-foreground));
}
.trustbar__label { font-weight: 700; color: hsl(var(--foreground)); }
.trustbar__src { font-weight: 600; }

/* ---------- Mobile contact bar (ref: div.bg-muted.border-b.lg:hidden, 33px) ---------- */
.contactbar { background: hsl(var(--muted)); border-bottom: 1px solid hsl(var(--border)); }
/* Keep the top strips above the catalog filter scrim (z-45) so opening the
   mobile filter drawer doesn't darken the header area. */
.trustbar, .contactbar { position: relative; z-index: 46; }
.contactbar__inner {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
  gap: 12px; padding: 6px 16px;
}
.contactbar a {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.875rem; font-weight: 500; line-height: 1.25rem;
  color: hsl(var(--foreground) / 0.8); white-space: nowrap;
  transition: color 0.2s ease;
}
.contactbar a:hover { color: hsl(var(--primary)); }
.contactbar__divider { width: 1px; height: 16px; background: hsl(var(--border)); }
@media (min-width: 1024px) { .contactbar { display: none; } }

/* ---------- Sticky header ---------- */
.site-header {
  /* ruttl UIAMCliG: above the cat-bar (120) so top-row dropdowns don't tuck under it. */
  position: sticky; top: 0; z-index: 140;
  background: hsl(var(--background) / 0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid hsl(var(--border));
  transition: box-shadow 0.3s ease;
}
.site-header.is-stuck { box-shadow: var(--shadow-soft); }

/* Desktop row — 64px content + 12px block padding = 88px (ref: 88).
   NOTE: the desktop/mobile visibility switch lives at the END of this file, after
   both rows are declared — otherwise the later base rule wins over the media query. */
.site-header__desktop { align-items: center; padding-block: 12px; }

/* Logo. Sized to the reference's image (64px tall / ~105px wide) so swapping in
   the real asset does not reflow the row. The text wordmark is a placeholder —
   no custom logo has been uploaded yet. */
.site-header__logo { display: inline-flex; align-items: center; flex-shrink: 0; }
/* Scoped under .site-header to outrank WC core's `.woocommerce-page img{height:auto}`
   (0,1,1), which otherwise unsizes the logo to natural 250x153 on shop pages. */
.site-header .site-header__logo-img { height: 64px; width: auto; }
.brand { display: inline-flex; flex-direction: column; justify-content: center; line-height: 1.1; height: 64px; }
.brand__mark { font-family: var(--font-heading); font-weight: 800; font-size: 1.5rem; color: hsl(var(--primary)); letter-spacing: -0.02em; }
.brand__tag { font-size: 0.5rem; letter-spacing: 0.06em; text-transform: uppercase; color: hsl(var(--muted-foreground)); white-space: nowrap; }

/* Primary nav.
   min-width:0 + wrapping labels are load-bearing, not cosmetic: the Lithuanian
   labels are longer than the reference's English, and with nowrap the row
   overflowed 1216px and pushed the CTA off-screen. The reference wraps its own
   longer labels ("About Us", "Completed Projects") for the same reason. */
.site-nav { display: flex; align-items: center; margin-left: 2rem; min-width: 0; }
.site-nav__divider { width: 1px; height: 24px; background: hsl(var(--border)); margin-right: 20px; flex-shrink: 0; }
.site-nav__list { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; min-width: 0; }
.site-nav__list a {
  display: block; padding: 8px 12px;
  font-size: 0.875rem; font-weight: 500; line-height: 1.25rem;
  color: hsl(var(--foreground) / 0.7);
  border-radius: calc(var(--radius) - 2px);
  white-space: normal;
  transition: color 0.2s ease, background 0.2s ease;
}
.site-nav__list a:hover,
.site-nav__list .current-menu-item > a { color: hsl(var(--foreground)); }

/* Utility actions */
.site-header__actions { display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0; margin-left: auto; }

.header-link {
  display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px;
  font-size: 0.875rem; font-weight: 400; line-height: 1.25rem;
  color: hsl(var(--foreground) / 0.6);
  border-radius: calc(var(--radius) - 2px);
  white-space: nowrap; transition: color 0.2s ease;
}
.header-link:hover { color: hsl(var(--foreground)); }
/* Ref hides the label below xl (1280) — icon stays. */
.header-link__label { display: none; }
@media (min-width: 1280px) { .header-link__label { display: inline; } }
/* Email is the widest actions item — keep its label hidden until 1440 so the
   enlarged (16px) top nav stays on one line at 1280–1366; phone label stays from 1280. */
.header-link[href^="mailto:"] .header-link__label { display: none; }
@media (min-width: 1440px) { .header-link[href^="mailto:"] .header-link__label { display: inline; } }

/* Language switcher */
.lang-switch { position: relative; }
.lang-switch__toggle {
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent; border: none; cursor: pointer;
  padding: 6px 10px; border-radius: calc(var(--radius) - 2px);
  font-size: 0.875rem; font-weight: 500; color: hsl(var(--foreground) / 0.7);
  transition: color 0.2s ease, background 0.2s ease;
}
.lang-switch__toggle:hover { color: hsl(var(--primary)); background: hsl(var(--primary) / 0.05); }
.lang-switch__flag { font-size: 1rem; line-height: 1; }
.lang-switch__menu {
  position: absolute; right: 0; top: calc(100% + 0.25rem);
  min-width: 6rem; margin: 0; padding: 0.35rem; list-style: none;
  background: hsl(var(--popover)); border: 1px solid hsl(var(--border));
  border-radius: var(--radius); box-shadow: var(--shadow-card); z-index: 130;
}
.lang-switch__menu a { display: block; padding: 0.4rem 0.6rem; border-radius: 0.4rem; font-weight: 600; color: hsl(var(--foreground)); }
.lang-switch__menu a:hover { background: hsl(var(--secondary)); }

/* Cart */
.cart-btn {
  display: inline-flex; flex-direction: column; align-items: center;
  padding: 10px; border-radius: calc(var(--radius) - 2px);
  color: hsl(var(--foreground) / 0.6); transition: color 0.2s ease, background 0.2s ease;
}
.cart-btn:hover { color: hsl(var(--foreground)); background: hsl(var(--muted) / 0.5); }
.cart-btn__label { font-size: 10px; font-weight: 500; margin-top: 2px; line-height: 1; }
.cart-btn--bare { flex-direction: row; padding: 8px; }

/* Quote CTA — fully rounded (ref: 9999px). */
.btn-quote {
  display: inline-flex; align-items: center; justify-content: center;
  margin-left: 8px; padding: 10px 20px;
  font-size: 1rem; font-weight: 600; line-height: 1.25rem;
  color: hsl(var(--primary-foreground)); background: hsl(var(--primary));
  border-radius: 9999px; white-space: nowrap;
  box-shadow: var(--shadow-soft);
  transition: background 0.2s ease, box-shadow 0.2s ease;
}
.btn-quote:hover { background: hsl(var(--primary) / 0.9); color: hsl(var(--primary-foreground)); box-shadow: var(--shadow-card); }

/* Mobile row — hamburger left, logo centred, cart right. */
.site-header__mobile {
  position: relative;
  align-items: center; justify-content: space-between;
  padding-block: 12px;
}
.site-header__logo--mobile {
  position: absolute; left: 50%; transform: translateX(-50%); z-index: 0;
}
.site-header__logo--mobile .site-header__logo-img,
.site-header__logo--mobile .brand { height: 56px; }
.site-header__logo--mobile .brand__mark { font-size: 1.5rem; }
.hamburger {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 8px; background: transparent; border: none; cursor: pointer;
  color: hsl(var(--foreground)); border-radius: calc(var(--radius) - 2px); z-index: 1;
}
.hamburger:hover { background: hsl(var(--muted) / 0.5); }
.site-header__mobile .cart-btn { z-index: 1; }

/* ---------- Category bar (sibling of <header>, desktop only) ---------- */
.cat-bar { display: none; }
@media (min-width: 1024px) {
  /* Desktop: the header scrolls away and the category bar pins to the top
     (matches variantas-4). Mobile keeps the sticky header — no cat-bar there. */
  .site-header { position: relative; }
  .cat-bar {
    display: block;
    border-top: 1px solid hsl(var(--border) / 0.5);
    border-bottom: 1px solid hsl(var(--border) / 0.5);
    background: hsl(var(--background) / 0.95);
    backdrop-filter: blur(12px);
    position: sticky; top: 0; z-index: 120;
    transition: box-shadow 0.3s ease;
  }
  .cat-bar.is-stuck { box-shadow: var(--shadow-soft); }
}
/* Wider than .container by design — ref uses max-w-[1440px] / 24px. */
.cat-bar__inner { max-width: 1440px; margin-inline: auto; padding-inline: 1.5rem; }
.cat-bar__nav { display: flex; align-items: center; justify-content: center; gap: 0; flex-wrap: wrap; }
.cat-bar__item { display: inline-flex; }
.cat-bar__offers,
.cat-bar__link {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 12px 16px;
  font-size: 0.875rem; font-weight: 500; line-height: 1.5;   /* 14px (client) */
  letter-spacing: 0.35px; white-space: nowrap; text-decoration: none;
  color: hsl(var(--foreground) / 0.6);
  transition: color 0.2s ease;
}
.cat-bar__offers { color: hsl(var(--destructive)); }
.cat-bar__offers:hover { color: hsl(var(--destructive) / 0.8); }
.cat-bar__link:hover,
.cat-bar__item:hover .cat-bar__link { color: hsl(var(--foreground)); }
.cat-bar__chev { transition: transform 0.2s ease; }

/* Full-width hover mega-menu (illustration cards for parent + children). */
.cat-mega {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 130;
  background: hsl(var(--background)); border-bottom: 1px solid hsl(var(--border));
  box-shadow: var(--shadow-card-hover);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  padding: 2rem 0;
}
.cat-bar__item:hover .cat-mega,
.cat-bar__item:focus-within .cat-mega,
.cat-bar__item.is-open .cat-mega { opacity: 1; visibility: visible; transform: translateY(0); }
.cat-bar__toggle { display: inline-flex; align-items: center; padding: 0 0.15rem; margin: 0; background: none; border: 0; color: inherit; cursor: pointer; }
.cat-bar__item:hover .cat-bar__chev,
.cat-bar__item.is-open .cat-bar__chev { transform: rotate(180deg); }
/* 4-up card grid, centred with side margins (ref = 4×272px cards, 16px gap). */
.cat-mega__grid {
  max-width: 1200px; margin-inline: auto; padding-inline: 1.5rem;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem;
}
.cat-mega__card {
  display: flex; flex-direction: column; align-items: center; gap: 0.75rem;
  padding: 1.25rem; border-radius: var(--radius);
  background: hsl(var(--secondary) / 0.3); border: 1px solid hsl(var(--border) / 0.6);
  text-decoration: none; color: hsl(var(--foreground));
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
/* ruttl f38t7PF9: no hover move-up — highlight the border + icon instead. */
.cat-mega__card:hover { background: hsl(var(--secondary) / 0.6); border-color: hsl(var(--primary)); box-shadow: var(--shadow-card); }
/* Category illustrations are fixed-grey SVGs (not currentColor), so fade them
   with opacity: lighter at rest, full ("current" colour) on card hover. */
.cat-mega__ico { display: flex; align-items: center; justify-content: center; width: 100%; height: 60px; opacity: 0.5; transition: opacity 0.2s ease; }
.cat-mega__card:hover .cat-mega__ico { opacity: 1; }
.cat-mega__ico svg { display: block; width: auto; height: 100%; max-width: 100%; }
.cat-mega__name { font-weight: 600; font-size: 0.9375rem; text-align: center; letter-spacing: normal; }
.cat-mega__more { font-size: 0.8rem; font-weight: 500; color: hsl(var(--muted-foreground)); letter-spacing: normal; }

/* ruttl U1za83uJ: nav + category names 14→15px. UIAMCliG: larger util icons.
   Email E2: header menu → 16px (nav + util links + lang switch, one consistent row). */
.site-nav__list a, .header-link, .lang-switch__toggle { font-size: 0.875rem; }   /* 14px (client) */
.header-link svg, .cart-btn svg { width: 20px; height: 20px; }
.lang-switch__flag { font-size: 1.2rem; }

/* ---------- Mobile drawer ---------- */
.mobile-drawer { position: fixed; inset: 0; z-index: 200; }
.mobile-drawer__backdrop { position: absolute; inset: 0; z-index: 1; background: hsl(220 30% 10% / 0.5); opacity: 0; transition: opacity 0.25s ease; }
.mobile-drawer.is-open .mobile-drawer__backdrop { opacity: 1; }
.mobile-drawer__panel {
  position: absolute; top: 0; left: 0; height: 100%; z-index: 2;
  width: min(88vw, 360px); background: hsl(var(--background));
  padding: 1.5rem; overflow-y: auto;
  transform: translateX(-100%); transition: transform 0.25s ease;
  box-shadow: var(--shadow-card-hover);
}
.mobile-drawer.is-open .mobile-drawer__panel { transform: translateX(0); }
.mobile-drawer__close { position: absolute; top: 0.75rem; right: 1rem; font-size: 2rem; line-height: 1; background: none; border: none; cursor: pointer; color: hsl(var(--foreground)); }
.mobile-drawer__list { list-style: none; margin: 1rem 0 0; padding: 0; }
.mobile-drawer__list li { border-bottom: 1px solid hsl(var(--border)); }
.mobile-drawer__list a { display: block; padding: 0.9rem 0; font-family: var(--font-heading); font-weight: 600; color: hsl(var(--foreground)); }
.mobile-drawer__list a:hover { color: hsl(var(--primary)); }
.mobile-drawer__list .sub-menu { list-style: none; margin: 0 0 0 1rem; padding: 0; }
.mobile-drawer__list .sub-menu a { font-weight: 500; font-size: 0.9375rem; color: hsl(var(--muted-foreground)); }
.mobile-drawer__contacts { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1.5rem; }
.mobile-drawer__contacts a { font-size: 0.875rem; color: hsl(var(--muted-foreground)); }

/* ---------- Desktop / mobile row switch ----------
   Declared LAST so it beats the base display rules above regardless of source
   order. lg = 1024px, matching the reference's breakpoint. */
.site-header__desktop { display: none; }
.site-header__mobile { display: flex; }
@media (min-width: 1024px) {
  .site-header__desktop { display: flex; }
  .site-header__mobile { display: none; }
}

/* ---------- Mobile drawer: Produktai accordion (variantas-4 deep nav) ---------- */
/* Mobile drawer order: "Produktai" lifted to the top; language switcher sits
   in its former place (below the primary links). */
.mobile-drawer__panel nav { display: flex; flex-direction: column; }
.mobile-drawer__acc { order: -1; margin-top: 1.5rem; border-bottom: 1px solid hsl(var(--border)); padding-bottom: 0.5rem; }
.mobile-drawer__acc-toggle {
	display: flex; align-items: center; justify-content: space-between; width: 100%;
	padding: 0.75rem 0.75rem; border: 0; background: transparent; cursor: pointer;
	font: inherit; font-weight: 600; color: hsl(var(--foreground)); border-radius: 0.5rem;
}
.mobile-drawer__acc-toggle:hover { background: hsl(var(--muted) / 0.6); }
.mobile-drawer__acc-chevron { transition: transform 0.25s ease; flex: 0 0 auto; }
.mobile-drawer__acc-toggle[aria-expanded="true"] .mobile-drawer__acc-chevron { transform: rotate(180deg); }
/* Mobile language switcher — a full-width drawer row with an inline (static) menu. */
.lang-switch--mobile { margin-top: 0.75rem; border-top: 1px solid hsl(var(--border)); padding-top: 0.5rem; }
.lang-switch--mobile .lang-switch__toggle { width: 100%; justify-content: flex-start; gap: 0.6rem; padding: 0.9rem 0.75rem; font-family: var(--font-heading); font-weight: 600; font-size: 1rem; color: hsl(var(--foreground)); }
.lang-switch--mobile .lang-switch__flag { font-size: 1.2rem; }
.lang-switch--mobile .lang-switch__toggle svg { margin-left: auto; transition: transform 0.2s ease; }
.lang-switch--mobile .lang-switch__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.lang-switch--mobile .lang-switch__menu { position: static; min-width: 0; margin: 0; padding: 0 0 0.25rem 2.35rem; background: none; border: 0; box-shadow: none; }
.lang-switch--mobile .lang-switch__menu[hidden] { display: none; }
.lang-switch--mobile .lang-switch__menu a { padding: 0.5rem 0.6rem; }
/* Collapse via grid-template-rows 1fr<->0fr instead of a magic max-height: the
   panel animates to its true content height with no arbitrary cap, so it stays
   smooth even if the category list grows past a fixed pixel ceiling. */
.mobile-drawer__acc-panel { display: grid; grid-template-rows: 1fr; transition: grid-template-rows 0.25s ease; }
.mobile-drawer__acc-panel.is-collapsed { grid-template-rows: 0fr; }
.mobile-drawer__acc-inner { overflow: hidden; min-height: 0; }
.mobile-drawer__sublist { list-style: none; margin: 0; padding: 0; }
.mobile-drawer__sublist a,
.mobile-drawer__offers,
.mobile-drawer__all {
	display: block; padding: 0.6rem 0.75rem 0.6rem 1.5rem; border-radius: 0.5rem;
	color: hsl(var(--muted-foreground)); text-decoration: none; font-size: 0.9375rem;
}
.mobile-drawer__sublist a:hover,
.mobile-drawer__offers:hover,
.mobile-drawer__all:hover { background: hsl(var(--muted) / 0.6); color: hsl(var(--foreground)); }
.mobile-drawer__sublist .current-menu-item > a { color: hsl(var(--primary)); font-weight: 600; }
.mobile-drawer__offers { color: hsl(var(--primary)); font-weight: 600; }
/* Categories with their illustration SVG icons in the Produktai submenu (email E6). */
.mobile-drawer__cats { list-style: none; margin: 0; padding: 0; }
.mobile-cat { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem 0.5rem 1.25rem; border-radius: 0.5rem; color: hsl(var(--muted-foreground)); text-decoration: none; font-size: 0.9375rem; }
.mobile-cat:hover, .mobile-cat:focus-visible { background: hsl(var(--muted) / 0.6); color: hsl(var(--foreground)); }
.mobile-cat__ico { display: inline-flex; align-items: center; justify-content: center; width: 1.4rem; height: 1.4rem; flex: 0 0 auto; color: hsl(var(--primary)); }
.mobile-cat__ico svg { width: 100%; height: 100%; display: block; }
.mobile-cat__name { font-weight: 500; }
.mobile-drawer__all { font-weight: 600; color: hsl(var(--foreground)); }

/* Basket count badge on the header cart button. */
.cart-btn { position: relative; }
.cart-btn__count { position: absolute; top: -0.35rem; right: -0.35rem; min-width: 1.25rem; height: 1.25rem; padding: 0 0.35rem; border-radius: 9999px; background: hsl(var(--primary)); color: #fff; font-size: 0.7rem; font-weight: 700; line-height: 1.25rem; text-align: center; }
.cart-btn__count[hidden] { display: none; }

/* ==== assets/css/components/footer.css ==== */
/*
 * sodnamis — footer.css
 * Author: sodnamis.lt
 */
.site-footer { background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); }
.site-footer__grid {
  display: grid; gap: 2.5rem; padding-block: 4rem 2rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .site-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }

.site-footer__brand .brand__mark--footer { font-family: var(--font-heading); font-weight: 800; font-size: 1.6rem; color: hsl(var(--primary)); }
/* Custom logo: the_custom_logo() renders at full natural size otherwise. Ref footer = h-10. */
.site-footer__brand .custom-logo-link { display: inline-block; line-height: 0; }
.site-footer__brand .custom-logo { height: 52px; width: auto; } /* ruttl ztDEqJeO: enlarge */
.site-footer__company { margin-top: 1rem; line-height: 1.7; }
.site-footer__company strong { color: hsl(var(--foreground)); }
.site-footer__company a, .site-footer__list a { color: hsl(var(--muted-foreground)); }
.site-footer__company a:hover, .site-footer__list a:hover { color: hsl(var(--primary)); }
/* ruttl lvZmoiPf: contact rows with icons (address/phone/email/hours). */
.site-footer__contact { list-style: none; margin: 0.85rem 0 0; padding: 0; display: grid; gap: 0.55rem; }
.site-footer__contact li { display: flex; align-items: flex-start; gap: 0.55rem; font-size: 0.9rem; line-height: 1.4; }
.site-footer__ico { flex: 0 0 auto; color: hsl(var(--primary)); margin-top: 0.05rem; }
.site-footer__ico svg { width: 18px; height: 18px; }
.site-footer__contact a { color: hsl(var(--muted-foreground)); text-decoration: none; }
.site-footer__contact a:hover { color: hsl(var(--primary)); }
.site-footer__hours { margin-top: 0.5rem; font-size: 0.875rem; }
.site-footer__social { display: flex; gap: 0.75rem; margin-top: 1rem; }
/* variantas-4: 36px round button, bg background + border, muted icon; hover turns
   text + border primary (no solid fill). */
.site-footer__social .icon-btn { width: 2.25rem; height: 2.25rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: hsl(var(--background)); border: 1px solid hsl(var(--border)); color: hsl(var(--muted-foreground)); transition: color 0.15s ease, border-color 0.15s ease; }
.site-footer__social .icon-btn:hover { color: hsl(var(--primary)); border-color: hsl(var(--primary)); }
/* Award badge under the social icons (e.g. "Strongest in Lithuania"). */
.site-footer__award { margin-top: 1.25rem; }
.site-footer__award img { display: block; width: auto; height: auto; max-width: 128px; }

.site-footer__title { font-size: 0.875rem; font-weight: 700; color: hsl(var(--foreground)); margin-bottom: 1rem; text-transform: uppercase; letter-spacing: 0.04em; }   /* 14px (client) */
.site-footer__list { list-style: none; margin: 0; padding: 0; }
.site-footer__list li { margin-bottom: 0.6rem; }

.site-footer__bottom { border-top: 1px solid hsl(var(--border)); }
.site-footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.25rem; font-size: 0.8125rem; flex-wrap: wrap; }
.back-to-top {
  display: inline-flex; align-items: center; gap: 0.4rem;
  background: hsl(var(--primary)); color: #fff; border: none; cursor: pointer;
  padding: 0.5rem 1rem; border-radius: 9999px; font-weight: 600; font-size: 0.8125rem;
  opacity: 0.6; transition: opacity 0.2s ease, transform 0.2s ease;
}
.back-to-top:hover { opacity: 1; transform: translateY(-2px); }
.back-to-top.is-visible { opacity: 1; }

/* Bottom-bar links (privacy policy) — inline, same muted tone as the copyright line. */
.site-footer__bottom-links { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.site-footer__bottom-links a { color: inherit; text-decoration: none; opacity: 0.85; }
.site-footer__bottom-links a:hover, .site-footer__bottom-links a:focus-visible { opacity: 1; text-decoration: underline; }

/* Footer logo from the theme option (client 2026-09-25: "blogo dydžio, neproporcingas"). Same box the
   custom logo gets; the image scales inside it and keeps its ratio. */
.site-footer__brand .site-footer__logo-img { display: block; width: auto; max-width: 200px; height: auto; max-height: 56px; object-fit: contain; margin-bottom: 1rem; }

/* ==== assets/css/components/hero.css ==== */
/*
 * sodnamis — hero.css
 * Author: sodnamis.lt
 */
.hero { position: relative; isolation: isolate; }
.hero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.hero__img { width: 100%; height: 100%; object-fit: cover; }
.hero__overlay { position: absolute; inset: 0; background: var(--gradient-hero-overlay); }

.hero__content {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
  min-height: clamp(360px, 52vh, 620px);
  padding-block: 4rem;
  color: #fff;
  max-width: 640px;
}
.hero__title { color: #fff; margin-bottom: 1rem; text-shadow: 0 2px 12px hsl(220 30% 10% / 0.4); }
.hero__subtitle { color: hsl(0 0% 100% / 0.9); font-size: 1.125rem; margin-bottom: 1.75rem; max-width: 34rem; }
.hero__cta { font-size: 1rem; padding: 0.85rem 1.75rem; }

@media (max-width: 767px) {
  .hero__content { align-items: center; text-align: center; min-height: 420px; }
  .hero__subtitle { margin-inline: auto; }
}

/* ==== assets/css/components/product-card.css ==== */
/*
 * sodnamis — product-card.css
 * Featured card (.house-card) matched 1:1 to the variantas-4 reference metrics,
 * plus the simpler catalog card (.prod-card). Author: sodnamis.lt
 */

/* ============================================================
   Featured card (.house-card)
   ============================================================ */
.house-card {
  display: flex; flex-direction: column;
  background: hsl(var(--card));
  border-radius: 1rem;                 /* rounded-2xl = 16px */
  overflow: hidden;
  box-shadow: 0 10px 15px -3px hsl(220 50% 15% / 0.1), 0 4px 6px -4px hsl(220 50% 15% / 0.1); /* shadow-lg */
  color: hsl(var(--foreground));
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
/* ruttl eeSA32GI: no hover move-up, keep the shadow only. */
.house-card:hover { box-shadow: var(--shadow-card-hover); }

.house-card__media { position: relative; height: 18rem; overflow: hidden; }   /* h-72 = 288px */
.house-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.house-card:hover .house-card__media img { transform: scale(1.04); }
.house-card__scrim { position: absolute; inset: 0; background: linear-gradient(to top, hsl(var(--foreground) / 0.7), hsl(var(--foreground) / 0.2) 40%, transparent 70%); }

.house-card__flag {
  position: absolute; z-index: 10;
  padding: 0.5rem 1.25rem;             /* px-5 py-2 */
  border-radius: 9999px;
  background: hsl(var(--destructive)); color: #fff;
  font-size: 1.25rem; font-weight: 700; letter-spacing: 0.05em;   /* 20px (client email E8) */
  box-shadow: 0 20px 25px -5px hsl(220 40% 10% / 0.25);
}
.house-card__flag--sale { top: 0.75rem; left: 0.75rem; text-transform: uppercase; }
.house-card__flag--pct  { bottom: 0.75rem; right: 0.75rem; }

.house-card__pricepill {
  position: absolute; top: 1rem; right: 1rem; z-index: 10;
  padding: 0.5rem 1rem; border-radius: 9999px;
  background: hsl(var(--primary)); color: #fff;
  font-family: var(--font-body); font-weight: 600; font-size: 0.875rem;
  box-shadow: var(--shadow-card);
}
.house-card__dots { position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%); display: flex; gap: 0.375rem; z-index: 5; }
.house-card__dots i { display: block; height: 0.5rem; width: 0.5rem; border-radius: 9999px; background: hsl(0 0% 100% / 0.6); transition: width 0.2s ease; }
.house-card__dots i.is-active { width: 1.25rem; background: #fff; }
/* Image slider (dots switch the crossfading slides; card stays a link) */
.house-card__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.5s ease, transform 0.5s ease; }
.house-card__slide.is-active { opacity: 1; }
.house-card__dot { display: block; height: 0.5rem; width: 0.5rem; padding: 0; border: 0; border-radius: 9999px; background: hsl(0 0% 100% / 0.6); transition: width 0.2s ease; cursor: pointer; }
.house-card__dot:hover { background: hsl(0 0% 100% / 0.85); }
.house-card__dot.is-active { width: 1.25rem; background: #fff; }

.house-card__body { padding: 1.5rem; display: flex; flex-direction: column; gap: 1.25rem; flex: 1; }  /* p-6 space-y-5 */
.house-card__title { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 600; line-height: 2rem; color: hsl(var(--foreground)); margin: 0 0 0.5rem; }
.house-card__desc { color: hsl(var(--muted-foreground)); font-size: 0.875rem; line-height: 1.625; margin: 0; }

/* 2×2 spec-icon grid */
.house-card__specs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; padding: 1rem; border-radius: 0.75rem; background: hsl(var(--secondary) / 0.5); }
.house-card__spec { display: flex; align-items: center; gap: 0.75rem; }
.house-card__spec-ico { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; flex-shrink: 0; border-radius: 0.5rem; background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); }
.house-card__spec-key { margin: 0; font-size: 0.75rem; color: hsl(var(--muted-foreground)); }
.house-card__spec-val { margin: 0; font-weight: 600; color: hsl(var(--foreground)); }

/* Benefits */
.house-card__benefits { display: flex; flex-direction: column; gap: 0.75rem; }
.house-card__benefits h4 { margin: 0; font-size: 0.875rem; font-weight: 600; color: hsl(var(--foreground)); }
.house-card__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.house-card__tag { padding: 0.25rem 0.7rem; border-radius: 9999px; background: hsl(var(--secondary)); color: hsl(var(--secondary-foreground)); font-size: 0.75rem; font-weight: 600; }

/* Foot: price + actions */
.house-card__foot { margin-top: auto; padding-top: 1rem; border-top: 1px solid hsl(var(--border)); }
.house-card__price { margin-bottom: 1rem; }
.house-card__was-label { margin: 0 0 0.25rem; font-size: 0.75rem; color: hsl(var(--muted-foreground)); }
.house-card__was { margin: 0 0 0.25rem; font-size: 1rem; color: hsl(var(--muted-foreground)); text-decoration: line-through; }
.house-card__now { margin: 0; font-family: var(--font-heading); font-size: 1.5625rem; font-weight: 700; color: hsl(var(--foreground)); }   /* 25px (client email E8) */
.house-card__now--sale { color: hsl(var(--destructive)); }

.house-card__actions { display: flex; gap: 0.75rem; }
.house-card__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.75rem 1rem; border-radius: 0.75rem;
  font-family: var(--font-body); font-weight: 600; font-size: 0.9375rem;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.house-card__btn--primary { flex: 1; background: hsl(var(--primary)); color: #fff; box-shadow: var(--shadow-soft); }
.house-card:hover .house-card__btn--primary { background: hsl(var(--accent)); }
.house-card__btn--outline { border: 2px solid hsl(var(--primary)); color: hsl(var(--primary)); }

/* ============================================================
   Catalog card (.prod-card) — simpler, with Add-to-Cart
   ============================================================ */
.prod-card { display: flex; flex-direction: column; background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 1rem; overflow: hidden; box-shadow: var(--shadow-card); transition: box-shadow 0.25s ease, transform 0.25s ease; }
.prod-card:hover { box-shadow: var(--shadow-card-hover); } /* ruttl eeSA32GI: no move-up, shadow only */
.prod-card__media { position: relative; height: 12rem; overflow: hidden; }   /* h-48 = 192px */
.prod-card__media img { width: 100%; height: 100%; object-fit: cover; }
/* Catalog card image slider (ruttl b3sW9FQk): slides + dots (arrows shared below). */
.prod-card__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.4s ease; }
.prod-card__slide.is-active { opacity: 1; }
.prod-card__dots { position: absolute; bottom: 0.7rem; left: 50%; transform: translateX(-50%); display: flex; gap: 0.35rem; z-index: 3; }
.prod-card__dot { display: block; height: 0.45rem; width: 0.45rem; padding: 0; border: 0; border-radius: 9999px; background: hsl(0 0% 100% / 0.6); cursor: pointer; transition: width 0.2s ease; }
.prod-card__dot:hover { background: hsl(0 0% 100% / 0.85); }
.prod-card__dot.is-active { width: 1.1rem; background: #fff; }
/* Shared card-slider prev/next arrows (featured + catalog); reveal on hover / touch. */
.card-slider__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; display: grid; place-content: center; width: 2rem; height: 2rem; padding: 0 0 0.12rem; border: 0; border-radius: 50%; background: hsl(0 0% 100% / 0.9); color: hsl(var(--foreground)); font-size: 1.3rem; line-height: 1; cursor: pointer; opacity: 0; transition: opacity 0.15s ease, background 0.15s ease; box-shadow: var(--shadow-card); }
.house-card__media:hover .card-slider__arrow, .prod-card__media:hover .card-slider__arrow, .card-slider__arrow:focus-visible { opacity: 1; }
.card-slider__arrow:hover { background: #fff; }
.card-slider__arrow--prev { left: 0.6rem; }
.card-slider__arrow--next { right: 0.6rem; }
@media (hover: none) { .card-slider__arrow { opacity: 1; } }
.prod-card__flag { position: absolute; z-index: 2; padding: 0.35rem 0.9rem; border-radius: 9999px; background: hsl(var(--destructive)); color: #fff; font-size: 1.25rem; font-weight: 700; box-shadow: var(--shadow-card); }   /* 20px "Akcija"/"-30%" (client email E8) */
.prod-card__flag--sale { top: 0.75rem; left: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; }
.prod-card__flag--pct { bottom: 0.75rem; right: 0.75rem; }
.prod-card__body { padding: 1.1rem 1.25rem 1.25rem; display: flex; flex-direction: column; gap: 0.6rem; flex: 1; }
/* ruttl q874OtCa: price directly under the product title. */
.prod-card__title { order: 0; }
.prod-card__price { order: 1; }
.prod-card__desc { order: 2; }
.prod-card__specs { order: 3; }
.prod-card__cart { order: 4; }
.prod-card__title { margin: 0; font-family: var(--font-heading); font-size: 1.1rem; font-weight: 600; }
.prod-card__title a { color: hsl(var(--foreground)); }
.prod-card__title a:hover { color: hsl(var(--primary)); }
.prod-card__desc { margin: 0; color: hsl(var(--muted-foreground)); font-size: 0.9rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.prod-card__specs { display: flex; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.prod-card__specs li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 0.15rem; padding: 0.5rem 0.2rem; background: hsl(var(--secondary) / 0.5); border-radius: 0.4rem; text-align: center; }
.prod-card__spec-icon { color: hsl(var(--primary)); margin-bottom: 0.1rem; }
.prod-card__spec-val { font-family: var(--font-heading); font-weight: 700; font-size: 0.85rem; color: hsl(var(--foreground)); }
.prod-card__spec-key { font-size: 0.65rem; color: hsl(var(--muted-foreground)); }
.prod-card__price { margin: 0.15rem 0 0; display: flex; align-items: baseline; gap: 0.4rem; }
.prod-card__price del { color: hsl(var(--muted-foreground)); font-size: 1.125rem; }   /* 18px old price (client email E8) */
.prod-card__price .now { font-family: var(--font-heading); font-weight: 800; font-size: 1.5625rem; color: hsl(var(--primary)); line-height: 1.1; }   /* 25px current price on catalog + cross-sell cards (client); product page price = 45px (woocommerce.css) */
.prod-card__price { flex-wrap: wrap; }
.prod-card__price .now--sale { color: hsl(var(--destructive)); }
.prod-card__cart { margin-top: auto; width: 100%; background: hsl(var(--success)); color: #fff; }
.prod-card__cart:hover { background: hsl(var(--success) / 0.9); color: #fff; }

/* List view (toggle in the toolbar): single-column horizontal cards. Row layout
   only from 640px up — on phones the grid is already 1-col, so list == grid. */
.catalog__grid.is-list { grid-template-columns: 1fr; }
@media (min-width: 640px) {
  .catalog__grid.is-list .prod-card { flex-direction: row; align-items: stretch; }
  .catalog__grid.is-list .prod-card__media { flex: 0 0 300px; height: auto; }
  .catalog__grid.is-list .prod-card__body { flex: 1; }
  .catalog__grid.is-list .prod-card__cart { width: auto; align-self: flex-start; padding-inline: 1.5rem; }
}

/* Contract p.7 — above the market's direct-purchase limit the card offers a quote instead of the basket. */
.prod-card__cart--quote { background: hsl(var(--primary)); }
.prod-card__cart--quote:hover { background: hsl(var(--primary) / 0.9); color: #fff; }

/* ==== assets/css/components/testimonials.css ==== */
/*
 * sodnamis — testimonials.css
 * Author: sodnamis.lt
 */
.testimonials__score { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: 0.5rem; }
.testimonials__score-num { font-family: var(--font-heading); font-weight: 800; font-size: 1.5rem; color: hsl(var(--foreground)); }

.testimonial { display: flex; flex-direction: column; gap: 0.75rem; padding: 1.5rem; }
.testimonial .stars { font-size: 1.05rem; }
.testimonial__title { font-family: var(--font-heading); font-weight: 700; color: hsl(var(--foreground)); }
.testimonial__text { margin: 0; color: hsl(var(--muted-foreground)); font-style: normal; }
.testimonial__author { display: flex; align-items: center; gap: 0.75rem; margin-top: auto; padding-top: 0.5rem; font-size: 0.9rem; }
.testimonial__avatar {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.5rem; height: 2.5rem; border-radius: 9999px;
  background: hsl(var(--primary)); color: #fff; font-family: var(--font-heading); font-weight: 700;
}

/* Trustpilot (client 2026-09-17 doc point 1; ref variantas-4). The header strip reuses .trustbar
   (header.css); the page block is Trustpilot's iframe, so only the frame gets styled here. */
.trustbar--live .trustpilot-widget { min-height: 24px; }
.reviews-tp .trustpilot-widget { min-height: 200px; }
.reviews-share { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; }
.reviews-share__btn--tp { background: #00b67a; border-color: #00b67a; }
.reviews-share__btn--tp:hover { background: #009c68; border-color: #009c68; }
.reviews-share__btn--google { background: #4285f4; border-color: #4285f4; }
.reviews-share__btn--google:hover { background: #3367d6; border-color: #3367d6; }

/* ==== assets/css/components/cta.css ==== */
/*
 * sodnamis — cta.css
 * Author: sodnamis.lt
 */

/* ---------- Simple CTA (variantas-4 inner pages) ----------
   ref: section py-16 (288px total), inner text-center max-w-2xl mx-auto,
   title mb-4, lead mb-8, buttons px-8 py-3 rounded-full, gap-4. */
.cta-simple__inner { max-width: 42rem; margin-inline: auto; text-align: center; }
.cta-simple__title { margin-bottom: 1rem; font-size: 1.5rem; }
@media (min-width: 768px) { .cta-simple__title { font-size: 1.875rem; } }
.cta-simple__lead { margin: 0 0 2rem; color: hsl(var(--muted-foreground)); }
.cta-simple__actions { display: flex; flex-direction: column; gap: 1rem; justify-content: center; }
@media (min-width: 640px) { .cta-simple__actions { flex-direction: row; } }

/* Solid pill — pairs with .btn-pill-outline (defined in category-grid.css). */
.btn-pill {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 32px; border-radius: 9999px;
  background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
  font-family: var(--font-heading); font-weight: 600; font-size: 0.9375rem;
  transition: background 0.2s ease;
}
.btn-pill:hover { background: hsl(var(--primary) / 0.9); color: hsl(var(--primary-foreground)); }
.cta-simple .btn-pill-outline:hover { background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); }

.cta-band { position: relative; overflow: hidden; }
.cta-band__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
  flex-wrap: wrap;
}
.cta-band__text { max-width: 40rem; }
.cta-band__text h2 { margin-bottom: 0.5rem; }
.cta-band__btn { flex-shrink: 0; font-size: 1rem; padding: 0.85rem 1.75rem; }
@media (max-width: 767px) {
  .cta-band__inner { flex-direction: column; align-items: flex-start; text-align: left; }
}

/* ==== assets/css/components/category-grid.css ==== */
/*
 * sodnamis — category-grid.css
 * Full-bleed auto-scrolling carousel of portrait category cards.
 * Metrics measured from variantas-4 @1440: card 320x444, media 320x400 (4:5),
 * radius 16px, NO shadow, gap 20px, track padding 16/24/32, pb 16px.
 * Author: sodnamis.lt
 */

.category-grid__head { max-width: 768px; margin-inline: auto; margin-bottom: 40px; }
@media (min-width: 768px) { .category-grid__head { margin-bottom: 48px; } }

/* Wrapper exists only to anchor the absolute scroll buttons (ref: div.relative). */
.category-carousel-wrap { position: relative; }

/* Scroll buttons — 48px, white/90, pinned 32px from each edge, vertically
   centred on the carousel. Hidden below 768px in the reference (touch users
   swipe instead). */
.carousel-nav {
  display: none;
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 10;
  width: 48px; height: 48px; border-radius: 9999px;
  align-items: center; justify-content: center;
  background: hsl(var(--background) / 0.9);
  color: hsl(var(--foreground));
  border: 1px solid hsl(var(--border) / 0.6);
  box-shadow: var(--shadow-card);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.carousel-nav:hover { background: hsl(var(--background)); color: hsl(var(--primary)); }
.carousel-nav--prev { left: 16px; }
.carousel-nav--next { right: 16px; }
@media (min-width: 768px) { .carousel-nav { display: inline-flex; } }
@media (min-width: 1024px) {
  .carousel-nav--prev { left: 32px; }   /* ref: lg:left-8 */
  .carousel-nav--next { right: 32px; }
}

/* "View all products" — ref: rounded-full, border-2 primary, px-6 py-3. */
.btn-pill-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;   /* center content when full-width, e.g. mobile CTA (email E7) */
  padding: 12px 24px; border-radius: 9999px;
  border: 2px solid hsl(var(--primary));
  color: hsl(var(--primary)); background: transparent;
  font-family: var(--font-heading); font-weight: 600; font-size: 0.9375rem;
  transition: background 0.2s ease, color 0.2s ease;
}
.btn-pill-outline:hover { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }

/* Full-bleed: the carousel is NOT inside .container — cards must reach the
   viewport edge and scroll past it. Padding mirrors the container's responsive
   inline padding so the first card lines up with the heading above. */
.category-carousel {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 16px;
  padding-inline: var(--container-pad);
  -webkit-overflow-scrolling: touch;
  /* ref: scrollbar-hide */
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.category-carousel::-webkit-scrollbar { display: none; }

/* Snap and a programmatic marquee are mutually hostile: with
   scroll-snap-type:x mandatory the browser reverts every scrollLeft write back
   to the nearest snap point, so the drift measures exactly 0px/s. JS adds
   .is-marquee once it takes over; snap stays for manual/reduced-motion users. */
.category-carousel.is-marquee { scroll-snap-type: none; }

.category-carousel__track { display: flex; gap: 20px; width: max-content; }

.category-card {
  flex: 0 0 auto;
  width: 280px;
  scroll-snap-align: start;
  text-decoration: none;
  color: inherit;
}
@media (min-width: 640px) { .category-card { width: 320px; } }

.category-card__media {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;           /* 320 x 400 in the reference */
  border-radius: 1rem;           /* rounded-2xl */
  overflow: hidden;
  margin-bottom: 16px;
  /* ref has NO shadow on the media — only the hover arrow carries one. */
}
.category-card__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.7s ease;   /* ref: duration-700 */
}
.category-card:hover .category-card__media img { transform: scale(1.05); }

/* Gradient scrim — hidden until hover (ref: from-foreground/60 via-transparent). */
.category-card__scrim {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, hsl(var(--foreground) / 0.6), transparent 50%, transparent);
  opacity: 0; transition: opacity 0.3s ease;
}
.category-card:hover .category-card__scrim,
.category-card:focus-visible .category-card__scrim { opacity: 1; }

/* Hover arrow — rises into place bottom-right (ref: w-11 h-11, translate-y-4). */
.category-card__arrow {
  position: absolute; right: 16px; bottom: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 9999px;
  background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
  box-shadow: var(--shadow-card-hover);
  opacity: 0; transform: translateY(16px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  pointer-events: none;
}
.category-card:hover .category-card__arrow,
.category-card:focus-visible .category-card__arrow { opacity: 1; transform: translateY(0); }

.category-card__label { display: block; }
.category-card__label h3 {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1.125rem; font-weight: 600;   /* text-lg / semibold */
  color: hsl(var(--foreground));
  transition: color 0.3s ease;
}
.category-card:hover .category-card__label h3 { color: hsl(var(--primary)); }

@media (prefers-reduced-motion: reduce) {
  .category-card__media img,
  .category-card__scrim,
  .category-card__arrow { transition: none; }
}


/* ==== assets/css/components/usp.css ==== */
/*
 * sodnamis — usp.css (why-choose-us cards + stat bar)
 * Author: sodnamis.lt
 */
.usp-card { padding: 1.75rem 1.5rem; text-align: left; }
/* Features grid: 1 col (mobile) -> 2 (md) -> 4 (lg), matching the reference. */
.usp__list { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 768px) { .usp__list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .usp__list { grid-template-columns: repeat(4, 1fr); } }
/* Email E5: smaller icons, lighter (primary-tinted) by default, and the current
   solid-primary colour on hover. */
.usp-card__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.5rem; height: 2.5rem; border-radius: var(--radius);
  background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); margin-bottom: 1rem;
  transition: background 0.2s ease, color 0.2s ease;
}
.usp-card__icon svg { width: 20px; height: 20px; }
.usp-card:hover .usp-card__icon,
.usp-card:focus-within .usp-card__icon {
  background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
}
.usp-card h3 { margin-bottom: 0.4rem; }

.usp__stats {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
  margin-top: 2.5rem; background: hsl(var(--primary));
  border-radius: var(--radius); overflow: hidden;
}
@media (min-width: 768px) { .usp__stats { grid-template-columns: repeat(4, 1fr); } }
.usp__stat {
  display: flex; flex-direction: column; align-items: center; gap: 0.25rem;
  padding: 1.75rem 1rem; background: hsl(var(--primary)); color: #fff; text-align: center;
}
.usp__stat-num { font-family: var(--font-heading); font-weight: 800; font-size: 2rem; }
.usp__stat-label { font-size: 0.85rem; color: hsl(0 0% 100% / 0.8); }

/* ==== assets/css/components/pages.css ==== */
/*
 * sodnamis — pages.css (inner-page layouts)
 * Author: sodnamis.lt
 */

/* ---------- Page banner ---------- */
/* ruttl DYb3SaP5/n5pjRxKy: centered page hero (matches the ref). */
.page-banner { padding-block: 2.25rem 2.5rem; text-align: center; }
/* Inner-page/category title = ref's 36px (the global h1 clamp grows to 56px, which
   is the homepage-hero scale — too large for an archive header). */
.page-banner__title { font-size: 2.25rem; line-height: 1.1; letter-spacing: -0.9px; margin: 0 0 0.75rem; }
.page-banner__subtitle { max-width: 42rem; margin: 0 auto; }

/* ---------- Manager / sales block (home) ---------- */
.manager__inner { display: grid; gap: 2.5rem; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) { .manager__inner { grid-template-columns: 0.9fr 1.1fr; } }
.manager__photo { width: 100%; border-radius: var(--radius); box-shadow: var(--shadow-card); object-fit: cover; }
.manager__card { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; margin-top: 1.25rem; }
.manager__avatar, .projects-manager__card .projects-manager__photo {
  flex-shrink: 0;
}
.manager__avatar {
  display: inline-flex; align-items: center; justify-content: center;
  width: 3rem; height: 3rem; border-radius: 9999px; background: hsl(var(--primary)); color: #fff;
  font-family: var(--font-heading); font-weight: 700; font-size: 1.2rem;
}

/* ---------- Catalog ---------- */
.catalog__layout { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .catalog__layout { grid-template-columns: 260px 1fr; } }
.catalog__filters-title { font-size: 1.1rem; margin-bottom: 1rem; }
.catalog__filters { align-self: start; }
/* Korekcijos #6: the panel scrolls on its own under the pointer instead of moving the page. */
@media (min-width: 1024px) { .catalog__filters { position: sticky; top: calc(var(--header-height) + 1rem); max-height: calc(100vh - var(--header-height) - 2rem); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; } }
.filter-group { padding-block: 1rem; border-bottom: 1px solid hsl(var(--border)); }
.filter-group__title { font-size: 0.95rem; margin-bottom: 0.6rem; }
.filter-group__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.filter-group__list label { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; color: hsl(var(--muted-foreground)); cursor: pointer; }
.filter-group__note { margin-top: 1rem; font-size: 0.8rem; }
@media (max-width: 1023px) {
  .catalog__filters { border: 1px solid hsl(var(--border)); border-radius: var(--radius); padding: 1rem 1.25rem; }
}

/* ---------- Catalog filter states (functional filtering) ---------- */
.catalog__filters .filter-count { color: hsl(var(--muted-foreground)); font-size: 0.8em; }
.catalog__filters label.is-empty { opacity: 0.45; cursor: not-allowed; }
.filter-price { display: flex; gap: 0.5rem; }
.filter-price input { width: 50%; padding: 0.4rem 0.6rem; border: 1px solid hsl(var(--border)); border-radius: 0.4rem; }
.filter-actions { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; }
.filter-reset { font-size: 0.875rem; color: hsl(var(--muted-foreground)); }
.catalog__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.catalog__pagination { margin-top: 2rem; display: flex; justify-content: center; gap: 0.4rem; }
/* Infinite scroll sets [hidden] on the pager; this class-level display must yield to it. */
.catalog__pagination[hidden] { display: none; }
.catalog__empty { grid-column: 1 / -1; color: hsl(var(--muted-foreground)); }

/* ---------- About ---------- */
.about-who__inner { display: grid; gap: 2.5rem; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) { .about-who__inner { grid-template-columns: 1fr 1fr; } }
.about-who__media img { width: 100%; border-radius: var(--radius); box-shadow: var(--shadow-card); }
.step-card { padding: 1.75rem 1.5rem; }
.step-card__num { font-family: var(--font-heading); font-weight: 800; font-size: 1.75rem; color: hsl(var(--primary) / 0.35); }

/* ---------- Contact ---------- */
/* Centered hero */
.contact-hero { padding-block: 4rem 3.5rem; background: linear-gradient(180deg, hsl(var(--muted) / 0.5) 0%, hsl(var(--background)) 100%); text-align: center; }
.contact-hero__eyebrow { display: inline-block; margin-bottom: 0.75rem; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: hsl(var(--primary)); }
.contact-hero__title { margin: 0 0 1rem; }
.contact-hero__lead { max-width: 42rem; margin: 0 auto; color: hsl(var(--muted-foreground)); font-size: 1.0625rem; }

/* Contact cards — centered with circular icon */
.contact-card { padding: 2rem 1.5rem; text-align: center; }
.contact-card__ico { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; margin-bottom: 1rem; border-radius: 9999px; background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); }
.contact-card h3 { margin-bottom: 0.35rem; }
.contact-card a { font-weight: 600; }
.contact-card p { margin: 0; }

/* Form (left) + locations (right) */
.contact-form-wrap { display: grid; gap: 3rem; grid-template-columns: 1fr; align-items: start; }
@media (min-width: 900px) { .contact-form-wrap { grid-template-columns: 1.1fr 0.9fr; } }
.contact-form-wrap__form > h2 { margin-bottom: 0.35rem; }
.contact-form { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 1.1rem; }
.contact-form__note { margin: 0; font-size: 0.8rem; }
.contact-form__row { display: grid; gap: 1.1rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .contact-form__row { grid-template-columns: 1fr 1fr; } }
.form-row { display: flex; flex-direction: column; gap: 0.4rem; }
.form-row label { font-size: 0.85rem; font-weight: 600; color: hsl(var(--foreground)); }
.form-row input, .form-row textarea {
  width: 100%; padding: 0.7rem 0.9rem; font: inherit; font-size: 0.95rem;
  border: 1px solid hsl(var(--input)); border-radius: 0.5rem; background: hsl(var(--background)); color: hsl(var(--foreground));
}
.form-row input:disabled, .form-row textarea:disabled { background: hsl(var(--secondary) / 0.4); cursor: not-allowed; }
.contact-form .btn { align-self: flex-start; }

/* Contact Form 7 integration: keep CF7's output on the theme's .contact-form
   layout. CF7 wraps each field in a .wpcf7-form-control-wrap span and appends a
   validation tip / response banner + spinner. */
.contact-form .wpcf7-form-control-wrap { display: block; width: 100%; }
.contact-form .wpcf7-not-valid-tip { color: hsl(var(--destructive)); font-size: 0.8rem; margin-top: 0.3rem; }
.contact-form input.wpcf7-not-valid,
.contact-form textarea.wpcf7-not-valid { border-color: hsl(var(--destructive)); }
.wpcf7 .wpcf7-response-output { margin: 1.1rem 0 0; padding: 0.75rem 1rem; border-radius: var(--radius); border: 1px solid hsl(var(--border)); font-size: 0.9rem; }
.wpcf7 form.sent .wpcf7-response-output { border-color: hsl(142 55% 40%); background: hsl(142 55% 40% / 0.08); color: hsl(142 55% 26%); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: hsl(var(--destructive)); background: hsl(var(--destructive) / 0.06); color: hsl(var(--destructive)); }
.wpcf7-spinner { margin: 0 0 0 0.6rem; }

.contact-loc + .contact-loc { margin-top: 2rem; }
.contact-loc h3 { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.35rem; font-size: 1.05rem; }
.contact-loc__ico { display: inline-flex; align-items: center; justify-content: center; width: 2.2rem; height: 2.2rem; flex-shrink: 0; border-radius: 0.5rem; background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); }
.contact-loc p { margin: 0 0 0.85rem; }
.contact-loc__map { display: block; width: 100%; height: 14rem; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--muted) / 0.5); }

/* Team cards */
.team-card { padding: 0; overflow: hidden; text-align: left; }
.team-card img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.team-card__body { padding: 1.1rem 1.25rem 1.25rem; }
.team-card h3 { margin-bottom: 0.15rem; font-size: 1rem; }
.team-card__body > .section-lead { margin-bottom: 0.6rem; }
.team-card__contact { margin: 0.25rem 0 0; font-size: 0.85rem; color: hsl(var(--muted-foreground)); display: flex; align-items: center; gap: 0.4rem; }
.team-card__contact a { color: inherit; text-decoration: none; }
.team-card__contact a:hover { color: hsl(var(--primary)); }
.team-card__contact-ico { display: inline-flex; flex: 0 0 auto; color: hsl(var(--primary)); } /* ruttl fKCCD2Uy: lucide icons */
.team-card__rating { margin: 0.1rem 0 0.5rem; font-size: 0.85rem; font-weight: 600; color: hsl(var(--primary)); }

/* ---------- Projects ---------- */
.projects-manager__card { display: inline-flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; }
.projects-manager__photo { width: 4rem; height: 4rem; border-radius: 9999px; object-fit: cover; }
/* ref: grid-cols-2 md:3 lg:4, gap-4, aspect-square, rounded-xl, NO shadow. */
.gallery-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .gallery-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .gallery-grid { grid-template-columns: repeat(4, 1fr); } }
.gallery-grid__item { margin: 0; border-radius: 0.75rem; overflow: hidden; }
.gallery-grid__item img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; transition: transform 0.5s ease; }
.gallery-grid__item:hover img { transform: scale(1.05); }
/* Per-photo product link (ruttl YmmSigMu) — hover/focus reveals a CTA chip. */
.gallery-grid__item--link { position: relative; }
.gallery-grid__link { display: block; position: relative; }
.gallery-grid__link::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, hsl(var(--primary) / 0.55), transparent 55%); opacity: 0; transition: opacity 0.3s ease; }
.gallery-grid__item--link:hover .gallery-grid__link::after,
.gallery-grid__link:focus-visible::after { opacity: 1; }
.gallery-grid__cta { position: absolute; left: 0.75rem; bottom: 0.75rem; z-index: 1; display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.35rem 0.7rem; border-radius: 9999px; background: #fff; color: hsl(var(--primary)); font-size: 0.8rem; font-weight: 600; font-family: var(--font-heading); opacity: 0; transform: translateY(6px); transition: opacity 0.3s ease, transform 0.3s ease; }
.gallery-grid__item--link:hover .gallery-grid__cta,
.gallery-grid__link:focus-visible .gallery-grid__cta { opacity: 1; transform: translateY(0); }
.gallery__head { margin-bottom: 2.5rem; }                    /* ref: mb-10 */
.gallery__lead { max-width: 36rem; margin-inline: auto; }    /* ref: max-w-xl mx-auto */

/* Optional square image strip under a text block — the reference's page hero. */
.text-strip { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); margin-top: 3rem; }
@media (min-width: 768px) { .text-strip { grid-template-columns: repeat(4, 1fr); } }
.text-strip__item { margin: 0; border-radius: 0.75rem; overflow: hidden; }
.text-strip__item img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; transition: transform 0.5s ease; }
.text-strip__item:hover img { transform: scale(1.05); }

/* ---------- Manager contact card (ref: max-w-xl, rounded-2xl, p-8, border) ---------- */
.manager-card__box {
  max-width: 36rem; margin-inline: auto; text-align: center;
  background: hsl(var(--card, var(--background)));
  border: 1px solid hsl(var(--border)); border-radius: 1rem;
  padding: 2rem; box-shadow: var(--shadow-soft);
}
.manager-card__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 4rem; height: 4rem; margin: 0 auto 1rem; border-radius: 9999px;
  background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); overflow: hidden;
}
.manager-card__photo { width: 100%; height: 100%; object-fit: cover; }
.manager-card__title { margin: 0 0 0.25rem; font-size: 1.5rem; font-weight: 600; }
.manager-card__name { margin: 0 0 1rem; font-size: 1.125rem; font-weight: 500; color: hsl(var(--foreground)); }
.manager-card__contacts { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; }
@media (min-width: 640px) { .manager-card__contacts { flex-direction: row; } }
.manager-card__contacts a { display: inline-flex; align-items: center; gap: 0.5rem; color: hsl(var(--muted-foreground)); }
.manager-card__contacts a:hover { color: hsl(var(--primary)); }

/* ---------- Map embed ---------- */
.map-embed__head { margin-bottom: 2.5rem; }
.map-embed__head .section-lead { max-width: 36rem; margin-inline: auto; }
.map-embed__frame {
  border-radius: 1rem; overflow: hidden;
  border: 1px solid hsl(var(--border)); box-shadow: var(--shadow-soft);
  background: hsl(var(--background));
}
.map-embed__frame iframe { display: block; width: 100%; border: 0; }
.map-embed__placeholder {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem;
  height: var(--map-h, 500px); color: hsl(var(--muted-foreground)); background: hsl(var(--muted) / 0.5);
}
.map-embed__placeholder p { margin: 0; font-weight: 600; }
/* GDPR click-to-load consent facade (ruttl 0HOwsDMD). */
.map-embed__consent {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem;
  height: var(--map-h, 500px); padding: 2rem; text-align: center;
  color: hsl(var(--muted-foreground)); background: hsl(var(--muted) / 0.5);
}
.map-embed__consent svg { color: hsl(var(--primary)); }
.map-embed__consent-text { margin: 0; max-width: 30rem; }
.map-embed__fallback { color: hsl(var(--primary)); text-decoration: underline; }

/* ---------- Careers ---------- */
.career-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.career-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; flex-wrap: wrap; }
.career-item__title { margin: 0; font-size: 1.15rem; }
.career-item__title a { color: hsl(var(--foreground)); }
.career-item__title a:hover { color: hsl(var(--primary)); }
.career-item__meta { display: flex; gap: 1rem; margin: 0.35rem 0 0; flex-wrap: wrap; }
.career-empty { padding: 3rem 1.5rem; }
.single-career__apply { padding: 1.75rem; }

/* ---------- Blog: post cards ---------- */
.post-card { display: flex; flex-direction: column; }
.post-card__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.post-card:hover .post-card__media img { transform: scale(1.05); }
.post-card__body { padding: 1.25rem; display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.post-card__date { font-size: 0.8rem; color: hsl(var(--muted-foreground)); text-transform: uppercase; letter-spacing: 0.03em; }
.post-card__title { margin: 0; font-size: 1.1rem; }
.post-card__title a { color: hsl(var(--foreground)); }
.post-card__title a:hover { color: hsl(var(--primary)); }
.post-card__more { margin-top: auto; font-weight: 600; font-size: 0.9rem; }

/* ---------- Single post ---------- */
.single-post__header { padding-block: 3rem; }
.single-post__title { margin: 0.5rem 0 0.5rem; max-width: 48rem; }
/* Korekcijos #7: hero image no wider than the text column, so it need not be huge to look sharp. */
.single-post__thumb { margin-top: 2rem; max-width: 780px; margin-inline: auto; }
.single-post__img { width: 100%; border-radius: var(--radius); box-shadow: var(--shadow-card); }
.single-post__content { max-width: 780px; }
.no-results { text-align: center; color: hsl(var(--muted-foreground)); padding: 3rem 0; }

/* ---------- 404 ---------- */
.error-404 { text-align: center; }
.error-404__code { font-family: var(--font-heading); font-weight: 800; font-size: clamp(4rem, 12vw, 8rem); color: hsl(var(--primary) / 0.15); line-height: 1; display: block; }
.error-404__search { max-width: 26rem; margin: 1.5rem auto 0; }
.error-404__search .search-form { display: flex; gap: 0.5rem; }
.error-404__search input[type="search"] { flex: 1; padding: 0.65rem 0.85rem; border: 1px solid hsl(var(--input)); border-radius: 0.5rem; font: inherit; }
.error-404__search input[type="submit"] { padding: 0.65rem 1.1rem; border: none; border-radius: 0.5rem; background: hsl(var(--primary)); color: #fff; font-weight: 600; cursor: pointer; }
.error-404__actions { display: flex; gap: 0.75rem; justify-content: center; flex-wrap: wrap; }

/* Career page — editable "values" section (ruttl ZFdUmJJm, matches lovable
   /career "¿Por qué trabajar?": centered cards, 48px tinted circle icon). */
.values__list { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px) { .values__list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .values__list { grid-template-columns: repeat(4, 1fr); } }
.values-card { padding: 1.5rem; text-align: center; box-shadow: none; }
.values-card:hover { box-shadow: none; transform: none; }
.values-card__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 3rem; height: 3rem; border-radius: 9999px;
  background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); margin-bottom: 1rem;
}
.values-card__title { font-family: var(--font-heading); font-size: 1rem; font-weight: 600; color: hsl(var(--foreground)); margin: 0 0 0.4rem; }
.values-card__text { font-size: 0.875rem; line-height: 1.45; color: hsl(var(--muted-foreground)); margin: 0; }

/* FAQ page (ruttl VBta5VTJ) — categorised accordion, self-contained (woocommerce.css
   does not load on non-WC pages so the .sodnamis-faq base is redefined here). */
.faq-cat { margin-bottom: 2.5rem; }
.faq-cat:last-of-type { margin-bottom: 0; }
.faq-cat__title { font-size: 1.5rem; margin: 0 0 1rem; }
.faq-cat .sodnamis-faq { border-top: 1px solid hsl(var(--border)); }
.faq-cat .sodnamis-faq__item { border-bottom: 1px solid hsl(var(--border)); }
.faq-cat .sodnamis-faq__item summary { cursor: pointer; list-style: none; padding: 1rem 2rem 1rem 0; position: relative; font-family: var(--font-heading); font-weight: 600; }
.faq-cat .sodnamis-faq__item summary::-webkit-details-marker { display: none; }
.faq-cat .sodnamis-faq__item summary::after { content: ''; position: absolute; right: 0.25rem; top: 1.2rem; width: 0.5rem; height: 0.5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform 0.2s ease; }
.faq-cat .sodnamis-faq__item[open] summary::after { transform: rotate(-135deg); }
.faq-cat .sodnamis-faq__a { padding: 0 0 1rem; color: hsl(var(--muted-foreground)); line-height: 1.6; }
.faq-cat .sodnamis-faq__a > * { margin: 0; }
.faq-cat .sodnamis-faq__a > * + * { margin-top: 0.75rem; }
.sodnamis-faq__todo, .cc-section__todo { color: hsl(var(--muted-foreground)); font-style: italic; }

/* Customer Care page (ruttl VBta5VTJ) — policy sections + "still have questions" card. */
.customer-care { display: flex; flex-direction: column; gap: 2.5rem; }
.cc-section__title { display: flex; align-items: center; gap: 0.7rem; font-size: 1.5rem; margin: 0 0 1rem; }
.cc-section__icon { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; border-radius: 9999px; background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); }
.cc-section__body { color: hsl(var(--muted-foreground)); line-height: 1.7; }
.cc-section__body > * { margin: 0; }
.cc-section__body > * + * { margin-top: 1rem; }
.cc-section__body :where(h3, h4) { color: hsl(var(--foreground)); font-family: var(--font-heading); font-weight: 600; font-size: 1.125rem; margin-top: 1.5rem; }
.cc-section__body :where(ul, ol) { padding-left: 1.25rem; }
.cc-section__body strong { color: hsl(var(--foreground)); }
.cc-help { text-align: center; padding: 2rem; }
.cc-help__title { font-size: 1.5rem; margin: 0 0 0.5rem; }
.cc-help__contacts { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 2rem; margin: 1.5rem 0; padding: 0; }
.cc-help__contacts li { display: inline-flex; align-items: center; gap: 0.5rem; }
.cc-help__ico { display: inline-flex; color: hsl(var(--primary)); }
.cc-help__contacts a { color: inherit; }

/* ==== assets/css/components/blocks.css ==== */
/*
 * sodnamis — blocks.css
 * Sections matching the variantas-4 homepage: offers banner, finder, showroom,
 * prices band, FAQ, video. Author: sodnamis.lt
 */

.section--sm { padding-block: var(--space-12); }
@media (min-width: 768px) { .section--sm { padding-block: var(--space-16); } }

/* Gradient-highlighted heading fragment */
.gradient-text {
  background: var(--gradient-warm);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ---------- Offers banner (slanted image collage) ---------- */
/* ruttl GLGEYxu5: single responsive banner (desktop + mobile upload). */
.offers-banner {
  position: relative; display: block;
  min-height: clamp(300px, 42vw, 460px);
  overflow: hidden; isolation: isolate;
  background: hsl(var(--primary));
}
/* Image banner: defined AFTER the base so these resets win (email #3). Without
   this, the base min-height + navy background showed as a blue gap under a
   shorter banner image. */
.offers-banner--image { display: block; line-height: 0; min-height: 0; background: none; }
.offers-banner__img { width: 100%; height: auto; display: block; }
.offers-banner__strip { position: absolute; inset: -2px -8% ; display: flex; gap: 6px; transform: skewX(-8deg); }
.offers-banner__slide { flex: 1 1 0; min-width: 0; overflow: hidden; }
.offers-banner__slide img { width: 100%; height: 100%; object-fit: cover; transform: skewX(8deg) scale(1.22); }
.offers-banner__overlay { position: absolute; inset: 0; transform: skewX(8deg); background: var(--gradient-hero-overlay); }
.offers-banner__content {
  position: absolute; inset: 0; z-index: 2;
  display: flex; align-items: center; justify-content: center; gap: clamp(1rem, 6vw, 5rem);
}
.offers-banner__title {
  color: #fff; margin: 0; text-align: center;
  font-family: var(--font-heading); font-weight: 800; letter-spacing: 0.06em;
  font-size: clamp(1.75rem, 5vw, 3.75rem); text-transform: uppercase;
  text-shadow: 0 4px 24px hsl(220 40% 8% / 0.5);
}
.offers-banner__badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: clamp(3.5rem, 7vw, 5.25rem); aspect-ratio: 1; border-radius: 9999px;
  background: hsl(var(--destructive)); color: #fff;
  font-family: var(--font-heading); font-weight: 800; font-size: clamp(0.9rem, 1.6vw, 1.35rem);
  box-shadow: 0 8px 24px hsl(0 60% 30% / 0.4); flex-shrink: 0;
}
@media (max-width: 640px) { .offers-banner__badge { display: none; } }

/* ---------- Page intro band (text block, gradient + centered) ----------
   ref /about: pt-16 md:pt-20 pb-16, bg-gradient-to-b from-primary/10 to-background,
   inner max-w-4xl mx-auto text-center. */
.block-text--gradient {
  background: linear-gradient(to bottom, hsl(var(--primary) / 0.1), hsl(var(--background)));
  padding-block: 4rem 4rem;
}
@media (min-width: 768px) { .block-text--gradient { padding-block: 5rem 4rem; } }
/* Centred variant: the CONTAINER goes full width (beating .container--narrow's
   820px) and the TEXT column alone is capped at 56rem — the reference narrows its
   copy but lets the image strip below span the whole container. */
.block-text--center .container { max-width: var(--container-max); }
.block-text--center .block-text__head { max-width: 56rem; margin-inline: auto; text-align: center; }
.block-text--center .pill { margin-bottom: 1.5rem; }
.block-text--center h1,
.block-text--center h2 { margin-bottom: 1.5rem; }
.block-text--center .entry-content:empty { display: none; }
/* When a text block is the page hero its heading is the h1 — match the 36px
   inner-page scale (the global h1 clamp grows to 56px, the homepage-hero size). */
.block-text h1 { font-size: 2.25rem; line-height: 1.1; letter-spacing: -0.9px; }

/* ---------- About story (prose + stat cards + media) ---------- */
.story__grid { display: grid; gap: 3rem; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 1024px) { .story__grid { grid-template-columns: 1fr 1fr; } }
.story__title { margin-bottom: 1.5rem; font-size: 1.5rem; }
@media (min-width: 768px) { .story__title { font-size: 1.875rem; } }   /* text-2xl md:text-3xl */
.story__body { color: hsl(var(--muted-foreground)); line-height: 1.625; }
.story__body p { margin: 0 0 1rem; }
.story__body p:last-child { margin-bottom: 0; }
.story__body strong { color: hsl(var(--primary)); font-weight: 600; }

.story__stats-panel {
  background: linear-gradient(to bottom right, hsl(var(--primary) / 0.2), hsl(var(--primary) / 0.05));
  border-radius: 1.5rem; padding: 2rem;
}
@media (min-width: 1024px) { .story__stats-panel { padding: 3rem; } }
.story__stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.stat-card {
  background: hsl(var(--background)); border-radius: 1rem;
  padding: 1.5rem; text-align: center; box-shadow: var(--shadow-card);
}
.stat-card__value { font-family: var(--font-heading); font-size: 2.25rem; font-weight: 700; color: hsl(var(--primary)); line-height: 1.1; }
/* Mobile: shrink the numbers so "10 000+" stays on one line in the 2-col grid (email E22). */
@media (max-width: 640px) { .stat-card__value { font-size: 1.75rem; white-space: nowrap; } }
.stat-card__label { margin: 0.5rem 0 0; font-size: 0.875rem; color: hsl(var(--muted-foreground)); }

.story__media {
  position: relative; display: block; margin-top: 3rem;
  border-radius: 1.5rem; overflow: hidden; box-shadow: var(--shadow-card-hover);
}
.story__media-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.story__media-scrim { position: absolute; inset: 0; background: hsl(var(--foreground) / 0.3); }
.story__play {
  position: absolute; inset: 0; margin: auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 5rem; height: 5rem; border-radius: 9999px;
  background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
  box-shadow: var(--shadow-card-hover); transition: transform 0.2s ease;
}
@media (min-width: 768px) { .story__play { width: 6rem; height: 6rem; } }
.story__media:hover .story__play { transform: scale(1.06); }
.story__play svg { margin-left: 0.2rem; }
.story__duration {
  position: absolute; right: 1rem; bottom: 1rem;
  padding: 0.25rem 0.75rem; border-radius: 9999px;
  background: hsl(var(--foreground) / 0.8); color: hsl(var(--background));
  font-size: 0.875rem; font-weight: 500;
}

/* ---------- Factory band ---------- */
.factory__card {
  display: flex; flex-direction: column; align-items: center; gap: 1.5rem;
  padding: 2rem; border-radius: 1.5rem;
  background: linear-gradient(to right, hsl(var(--primary)), hsl(var(--primary) / 0.8));
  color: hsl(var(--primary-foreground));
  text-align: center;
}
@media (min-width: 768px) {
  .factory__card { flex-direction: row; padding: 3rem; text-align: left; }
}
.factory__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 5rem; height: 5rem; flex-shrink: 0;
  border-radius: 1rem; background: hsl(var(--primary-foreground) / 0.2);
}
.factory__title { margin: 0 0 0.5rem; font-size: 1.5rem; color: hsl(var(--primary-foreground)); }
.factory__lead { margin: 0 0 1rem; color: hsl(var(--primary-foreground) / 0.9); }
.factory__addr {
  display: flex; align-items: center; justify-content: center; gap: 0.5rem;
  margin: 0; color: hsl(var(--primary-foreground) / 0.8);
}
@media (min-width: 768px) { .factory__addr { justify-content: flex-start; } }
.factory__addr svg { flex-shrink: 0; }
.factory__media { margin-top: 2.5rem; }
.factory__img {
  width: 100%; max-height: 500px; object-fit: cover; display: block;
  border-radius: 1rem; box-shadow: var(--shadow-card);
}

/* ---------- Find Your Perfect Home ---------- */
.finder__inner { max-width: 64rem; margin-inline: auto; }
.finder__head { margin-bottom: var(--space-8); }
.finder__head h2 { margin-bottom: 0.35rem; }
.finder__card { padding: 1.5rem; }
@media (min-width: 768px) { .finder__card { padding: 2rem; } }
.finder__grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .finder__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .finder__grid { grid-template-columns: repeat(4, 1fr); } }
.finder__field { display: flex; flex-direction: column; gap: 0.4rem; }
.finder__field label { font-size: 0.85rem; font-weight: 600; color: hsl(var(--foreground)); }
.finder__field select {
  height: 2.75rem; padding: 0 0.75rem; font: inherit; font-size: 0.9rem;
  border: 1px solid hsl(var(--input)); border-radius: 0.5rem; background: hsl(var(--background)); color: hsl(var(--foreground));
}
.finder__field select:disabled { background: hsl(var(--secondary) / 0.5); cursor: not-allowed; }
.finder__btn { display: flex; width: fit-content; margin: 1.25rem auto 0; }

/* ---------- Visit showroom (navy band) ---------- */
.visit__eyebrow { display: inline-block; margin-bottom: 0.75rem; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: hsl(0 0% 100% / 0.6); }
.visit__grid { display: grid; gap: 2rem; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 1024px) { .visit__grid { grid-template-columns: 3fr 2fr; gap: 3rem; } }
.visit__media { border-radius: var(--radius); overflow: hidden; }
.visit__media img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; }
.visit__card {
  display: flex; flex-direction: column; gap: 2rem;
  padding: 1.5rem; border-radius: var(--radius);
  background: hsl(0 0% 100% / 0.07); backdrop-filter: blur(6px); border: 1px solid hsl(0 0% 100% / 0.1);
}
@media (min-width: 768px) { .visit__card { padding: 2rem; } }
.visit__text { color: hsl(0 0% 100% / 0.8); font-size: 1.0625rem; margin: 0; }
.visit__info { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.25rem; }
.visit__info li { display: flex; align-items: flex-start; gap: 0.75rem; color: hsl(0 0% 100% / 0.85); font-size: 0.95rem; }
.visit__info strong { color: #fff; }
.visit__info a { color: hsl(0 0% 100% / 0.6); text-decoration: none; }
.visit__info a:hover { color: #fff; text-decoration: underline; }
.visit__ico { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; flex-shrink: 0; border-radius: 0.6rem; background: hsl(0 0% 100% / 0.1); color: #fff; }
.visit__btn { margin-top: auto; align-self: flex-start; }

/* ---------- Prices band ---------- */
.prices-band { padding-block: 3rem; background: hsl(var(--accent) / 0.08); }   /* py-12 = 48px, no md bump */
.prices-band__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.prices-band__text h2 { margin-bottom: 0.35rem; }
.prices-band__text p { margin: 0; max-width: 44rem; }

/* ---------- Blog preview ---------- */
.blog-preview__grid .post-card__title { font-size: 1rem; }

/* ---------- FAQ accordion ---------- */
.faq__list { max-width: 48rem; margin-inline: auto; display: flex; flex-direction: column; gap: 1rem; }
.faq__item { border: 1px solid hsl(var(--border)); border-radius: var(--radius); padding: 0 1.5rem; background: hsl(var(--background)); transition: background 0.2s ease; }
.faq__item[open] { background: hsl(var(--muted) / 0.5); }
.faq__q {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.25rem 0; cursor: pointer; list-style: none;
  font-family: var(--font-heading); font-weight: 600; color: hsl(var(--foreground));
}
.faq__q::-webkit-details-marker { display: none; }
.faq__item[open] .faq__q { color: hsl(var(--primary)); }
.faq__chevron { flex-shrink: 0; transition: transform 0.2s ease; }
.faq__item[open] .faq__chevron { transform: rotate(180deg); }
.faq__a { padding: 0 0 1.25rem; color: hsl(var(--muted-foreground)); }
.faq__a p { margin: 0; }

/* ---------- Video ---------- */
.video-block__frame { position: relative; max-width: 64rem; margin-inline: auto; border-radius: 1.5rem; overflow: hidden; box-shadow: var(--shadow-card-hover); }
.video-block__thumb { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.video-block__scrim { position: absolute; inset: 0; background: hsl(var(--foreground) / 0.3); }
.video-block__play {
  position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center;
  border: none; background: transparent; cursor: pointer;
}
.video-block__play svg { display: inline-flex; align-items: center; justify-content: center; width: 6rem; height: 6rem; padding: 1.7rem; margin-left: 0.15rem; border-radius: 9999px; background: hsl(var(--primary)); color: #fff; box-shadow: var(--shadow-card-hover); transition: transform 0.2s ease; }
.video-block__play:hover svg { transform: scale(1.06); }

/* ---------- Contact CTA (dark, newsletter + contact card) ---------- */
.cta-contact { position: relative; overflow: hidden; }
.cta-contact__blob { position: absolute; width: 24rem; height: 24rem; border-radius: 9999px; filter: blur(80px); z-index: 0; }
.cta-contact__blob--a { top: 0; left: 0; background: hsl(var(--primary) / 0.25); transform: translate(-50%, -50%); }
.cta-contact__blob--b { bottom: 0; right: 0; background: hsl(var(--accent) / 0.25); transform: translate(50%, 50%); }
.cta-contact__grid { position: relative; z-index: 1; display: grid; gap: 3rem; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 1024px) { .cta-contact__grid { grid-template-columns: 1fr 1fr; gap: 4rem; } }
.cta-contact__lead h2 { color: #fff; margin-bottom: 1rem; }
.cta-contact__lead .section-lead { color: hsl(0 0% 100% / 0.7); margin-bottom: 1.5rem; }
.cta-contact__newsletter { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.cta-contact__newsletter input {
  flex: 1 1 14rem; min-width: 0; height: 3rem; padding: 0 1rem 0 1rem;
  border: 1px solid hsl(0 0% 100% / 0.2); border-radius: 9999px;
  background: hsl(0 0% 100% / 0.08); color: #fff; font: inherit;
}
.cta-contact__newsletter input::placeholder { color: hsl(0 0% 100% / 0.5); }
.cta-contact__card { padding: 2rem; background: hsl(0 0% 100% / 0.06); border: 1px solid hsl(0 0% 100% / 0.1); backdrop-filter: blur(6px); }
.cta-contact__card h3 { color: #fff; margin-bottom: 1.25rem; }
.cta-contact__list { list-style: none; margin: 0 0 0.5rem; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.cta-contact__list li { display: flex; align-items: center; gap: 0.75rem; color: hsl(0 0% 100% / 0.85); }
.cta-contact__list a { color: hsl(0 0% 100% / 0.85); }
.cta-contact__list a:hover { color: #fff; }
.cta-contact__ico { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; flex-shrink: 0; border-radius: 0.6rem; background: hsl(var(--primary)); color: #fff; }

/* ---------- Manager / "we manufacture" (centered text) ---------- */
.manager-lead__inner { max-width: 56rem; margin-inline: auto; text-align: center; }
.manager-lead__inner h2 { margin-bottom: 1.5rem; }
.manager-lead__text { margin-inline: auto; }

/* ---------- Inline video playback (about story + video block) ---------- */
button.story__play, button.video-block__play { padding: 0; font: inherit; cursor: pointer; border: 0; }
button.video-block__play { background: transparent; }
.story__media.has-video, .video-block__frame.has-video { cursor: pointer; }
/* Keep the 16:9 box when the JS swaps the thumbnail out for the player. */
.story__media, .video-block__frame { aspect-ratio: 16 / 9; }
.story__media.is-playing, .video-block__frame.is-playing { background: #000; }
.sod-video-embed { width: 100%; height: 100%; border: 0; display: block; background: #000; object-fit: contain; }

/* ---------- Mobile fixes ---------- */
/* Blog preview: one post per column on phones (was 2 via .grid--4). */
@media (max-width: 639px) {
  .blog-preview__grid { grid-template-columns: 1fr; }
}
/* Prices band: stack on mobile and centre the CTA (was left when it wrapped). */
@media (max-width: 767px) {
  .prices-band__inner { flex-direction: column; align-items: stretch; }
  .prices-band__inner > .btn { align-self: center; }
}

/* ruttl jSzjMaW2: editable advantage chips after the video. */
.video-block__perks { list-style: none; margin: 1.75rem 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; }
.video-block__perk { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.6rem 1.1rem; border: 1px solid hsl(var(--border)); border-radius: 9999px; background: hsl(var(--background)); font-weight: 600; font-size: 0.9rem; color: hsl(var(--foreground)); }
.video-block__perk-ico { color: hsl(var(--primary)); display: inline-flex; flex: 0 0 auto; }

/* Third-party review widgets (Trustindex) pasted into a text block: keep them at a readable
   width and centred under the heading (client 2026-09-28: "reikėtų išcentruoti"). */
.block-text__head .ti-widget { max-width: 64rem; margin-inline: auto; }

/* ==== assets/css/components/catalog.css ==== */
/*
 * sodnamis — catalog.css
 * Sidebar category list + mobile filter drawer for the catalog/category filter UI.
 * Author: sodnamis.lt
 */

/* Catalog/category grid sits close under the banner (ref), not the default
   96px .section gap. */
.catalog { padding-block: 2.5rem 4rem; }

/* ---------- Sidebar category list ---------- */
.cat-list { gap: 0.15rem; }
.cat-list a { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.4rem 0.5rem; border-radius: 0.5rem; text-decoration: none; color: hsl(var(--foreground)); font-size: 0.9rem; line-height: 1.25; }
.cat-list a:hover { background: hsl(var(--muted) / 0.6); }
.cat-list a[aria-current="page"] { background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); font-weight: 700; }
.cat-list .cat-count { color: hsl(var(--muted-foreground)); font-size: 0.8em; flex: 0 0 auto; }
.cat-list a[aria-current="page"] .cat-count { color: hsl(var(--primary)); }
.cat-list__all a { font-weight: 600; }
.cat-list__sub { list-style: none; margin: 0.15rem 0 0.35rem; padding: 0 0 0 0.75rem; border-left: 2px solid hsl(var(--border)); display: flex; flex-direction: column; gap: 0.1rem; }
.cat-list__sub a { font-size: 0.85rem; color: hsl(var(--muted-foreground)); padding: 0.3rem 0.5rem; }
.cat-list__sub a[aria-current="page"] { color: hsl(var(--primary)); }
.cat-list__item { display: flex; flex-wrap: wrap; align-items: center; }
.cat-list__item > a { flex: 1 1 auto; min-width: 0; }
.cat-list__toggle { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; background: none; border: 0; color: hsl(var(--muted-foreground)); cursor: pointer; }
.cat-list__chevron { transition: transform 0.2s ease; }
.cat-list__toggle[aria-expanded="false"] .cat-list__chevron { transform: rotate(-90deg); }
.cat-list__sub { flex: 0 0 100%; }
.cat-list__sub.is-collapsed { display: none; }

/* ---------- Mobile filter drawer (behaviour in Task 5) ---------- */
.catalog__filter-toggle { display: none; }
/* Filter drawer header: title + close "x" (mobile drawer only). */
.catalog__filters-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.catalog__filters-close { display: none; align-items: center; justify-content: center; width: 2rem; height: 2rem; font-size: 1.75rem; line-height: 1; color: hsl(var(--muted-foreground)); background: none; border: 0; border-radius: 9999px; cursor: pointer; }
.catalog__filters-close:hover { background: hsl(var(--muted) / 0.6); color: hsl(var(--foreground)); }
@media (max-width: 768px) { .catalog__filters-close { display: inline-flex; } }
@media (max-width: 768px) {
	.catalog__filter-toggle {
		display: inline-flex; align-items: center; gap: 0.5rem;
		position: fixed; z-index: 40; right: 1rem; bottom: 1rem;
		padding: 0.75rem 1.25rem; border: 0; border-radius: 9999px;
		background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
		font: inherit; font-weight: 600; box-shadow: 0 6px 20px hsl(var(--primary) / 0.35); cursor: pointer;
	}
	/* Hide the floating pill while the drawer is open (it sits at z40, below the
	   z50 drawer, so it would otherwise be buried under the open sheet). The scrim
	   and the "Rodyti rezultatus" button close the drawer and restore it. */
	.catalog__filter-toggle.is-drawer-open { display: none; }
	.catalog__filter-toggle .badge { background: hsl(var(--primary-foreground)); color: hsl(var(--primary)); border-radius: 9999px; padding: 0 0.4rem; font-size: 0.75rem; }
	.catalog__filters {
		position: fixed; z-index: 50; left: 0; right: 0; bottom: 0; max-height: 85vh; max-height: 85dvh; overflow-y: auto; overscroll-behavior: contain;
		transform: translateY(100%); transition: transform 0.25s ease;
		background: hsl(var(--background)); border-radius: 1rem 1rem 0 0; padding: 1.25rem; box-shadow: 0 -8px 30px rgb(0 0 0 / 0.2);
	}
	.catalog__filters.is-open { transform: translateY(0); }
		.catalog__filters-head { position: sticky; top: 0; z-index: 2; margin: -1.25rem -1.25rem 0.5rem; padding: 1.25rem 1.25rem 0.75rem; background: hsl(var(--background)); }
	.catalog__scrim { display: none; position: fixed; inset: 0; z-index: 45; background: rgb(0 0 0 / 0.4); }
	.catalog__scrim.is-open { display: block; }
	/* Mobile drawer bottom bar (email E21): reset + apply side by side; the
	   desktop .filter-actions (redundant Filtruoti/Išvalyti) is hidden here. */
	.filter-actions { display: none; }
	.catalog__apply-bar { display: flex; gap: 0.6rem; margin-top: 1rem; }
	.catalog__apply-bar .catalog__reset { flex: 0 0 auto; }
	.catalog__apply-bar .catalog__apply { display: block; flex: 1 1 auto; width: auto; margin-top: 0; }
}
@media (min-width: 769px) {
	.catalog__apply-bar { display: none; }
}

/* ---------- Filter search ---------- */
/* Search now lives in the results toolbar (above the grid), matching the ref. */
.catalog__search { flex: 1 1 260px; }
.catalog__search input { width: 100%; padding: 0.6rem 0.9rem; border: 1px solid hsl(var(--border)); border-radius: 0.5rem; font: inherit; background: hsl(var(--background)); }
.catalog__toolbar-meta { display: flex; align-items: center; gap: 1rem; flex: 0 0 auto; }
.catalog__toolbar-meta .catalog__count { margin: 0; }
/* ruttl MAMAgnaN: style the sort <select> so it fits the theme (was native/unstyled). */
.catalog__sort { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: hsl(var(--muted-foreground)); white-space: nowrap; }
.catalog__sort select {
  appearance: none; -webkit-appearance: none;
  padding: 0.45rem 2rem 0.45rem 0.8rem;
  border: 1px solid hsl(var(--border)); border-radius: 0.5rem;
  background-color: hsl(var(--background)); color: hsl(var(--foreground));
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 0.6rem center;
  font-size: 0.875rem; font-weight: 500; cursor: pointer; transition: border-color 0.15s ease;
}
.catalog__sort select:hover { border-color: hsl(var(--primary)); }
.catalog__sort select:focus-visible { outline: 2px solid hsl(var(--primary)); outline-offset: 1px; }
/* Grid/list view toggle (ref /houses toolbar). */
.catalog__view { display: inline-flex; gap: 2px; padding: 2px; border: 1px solid hsl(var(--border)); border-radius: 0.5rem; }
.catalog__view-btn { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 32px; padding: 0; border: 0; border-radius: 0.4rem; background: transparent; color: hsl(var(--muted-foreground)); cursor: pointer; transition: background 0.15s ease, color 0.15s ease; }
.catalog__view-btn:hover { color: hsl(var(--foreground)); }
.catalog__view-btn.is-active { background: hsl(var(--primary)); color: #fff; }
@media (max-width: 639px) { .catalog__view { display: none; } }

/* ---------- Collapsible filter groups ---------- */
.filter-group__toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 0.5rem 0; border: 0; background: transparent; cursor: pointer; font: inherit; font-weight: 600; color: hsl(var(--foreground)); }
.filter-group__chevron { transition: transform 0.2s ease; }
.filter-group__toggle[aria-expanded="false"] .filter-group__chevron { transform: rotate(-90deg); }
.filter-group__list.is-collapsed { display: none; }

/* ---------- Price dual-handle slider ---------- */
.price-slider { position: relative; height: 34px; margin: 0.25rem 0 0.75rem; }
.price-slider__range { position: absolute; left: 0; top: 12px; width: 100%; margin: 0; -webkit-appearance: none; appearance: none; background: transparent; pointer-events: none; }
.price-slider__track { position: absolute; left: 0; right: 0; top: 15px; height: 4px; border-radius: 2px; background: hsl(var(--border)); }
.price-slider__fill { position: absolute; top: 15px; height: 4px; border-radius: 2px; background: hsl(var(--primary)); }
.price-slider__range::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 16px; height: 16px; border-radius: 50%; background: hsl(var(--primary)); border: 2px solid #fff; box-shadow: var(--shadow-card); cursor: pointer; }
.price-slider__range::-moz-range-thumb { pointer-events: auto; width: 16px; height: 16px; border-radius: 50%; background: hsl(var(--primary)); border: 2px solid #fff; cursor: pointer; }
/* Firefox paints a default grey track on range inputs; the two stacked handles
   sit over our own .price-slider__track, so blank Firefox's native track out. */
.price-slider__range::-moz-range-track { background: transparent; border: 0; }
.price-slider__values { position: absolute; bottom: -6px; left: 0; right: 0; font-size: 0.8rem; color: hsl(var(--muted-foreground)); text-align: center; }

/* Infinite-scroll sentinel + spinner (ruttl Jl3OZm81). */
.catalog__sentinel { display: flex; justify-content: center; align-items: center; padding: 1.5rem 0; min-height: 1px; }
.catalog__sentinel.is-loading::after { content: ""; width: 1.75rem; height: 1.75rem; border: 3px solid hsl(var(--border)); border-top-color: hsl(var(--primary)); border-radius: 50%; animation: sod-catalog-spin 0.7s linear infinite; }
@keyframes sod-catalog-spin { to { transform: rotate(360deg); } }

/* ============ Below-grid content (variantas-4 /houses) ============ */
/* Lovable padding rhythm: prose/discover/contact = py-16 md:py-20; offers = py-12
   (USP + FAQ keep .section = py-16 md:py-24). */
.cat-py20 { padding-block: var(--space-16); }
@media (min-width: 768px) { .cat-py20 { padding-block: var(--space-20); } }
.cat-py12 { padding-block: var(--space-12); }
@media (min-width: 768px) { .cat-py12 { padding-block: var(--space-12); } }

/* 1. Intro prose (bg-secondary/30 via .section--secondary). */
.cat-content { text-align: center; }
.cat-content__title { font-size: clamp(1.75rem, 4vw, 2.5rem); margin-bottom: 1rem; }
.cat-content__text { max-width: 46rem; margin: 0 auto; color: hsl(var(--muted-foreground)); font-size: 1.05rem; line-height: 1.7; }
.cat-content__text > *:last-child { margin-bottom: 0; }
.cat-content__btn { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1.75rem; }

/* 2. Discover — 2 columns (text + callout card). */
.cat-discover__grid { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 1024px) { .cat-discover__grid { grid-template-columns: 1fr 1fr; } }
.cat-discover__title { font-size: clamp(1.5rem, 3.5vw, 2.25rem); margin-bottom: 0.75rem; }
.cat-discover__text { color: hsl(var(--muted-foreground)); font-size: 1.05rem; line-height: 1.7; margin-bottom: 1.5rem; }
.cat-discover__card { text-align: center; padding: 2rem; background: hsl(var(--secondary) / 0.5); border: 1px solid hsl(var(--border)); border-radius: var(--radius); }
.cat-discover__ico { display: inline-flex; width: 3rem; height: 3rem; align-items: center; justify-content: center; margin-bottom: 0.75rem; background: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); border-radius: 9999px; }
.cat-discover__card-title { font-size: 1.15rem; margin-bottom: 0.4rem; }
.cat-discover__card-text { color: hsl(var(--muted-foreground)); font-size: 0.95rem; line-height: 1.6; margin-bottom: 1.25rem; }
/* Mobile: centre the text-column CTA under the stacked copy (client). */
@media (max-width: 1023px) { .cat-discover__col .btn { display: flex; width: fit-content; margin-inline: auto; } }

/* 3. USP → 3 columns at lg (usp.css is 4-col; the category USP uses 3). */
@media (min-width: 1024px) { .cat-usp .usp__list { grid-template-columns: repeat(3, 1fr); } }

/* 4. Offers band (navy). */
.cat-offers { display: flex; align-items: center; gap: 1.1rem; padding: 1.4rem 1.9rem; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-radius: var(--radius); text-decoration: none; }
.cat-offers__ico { display: inline-flex; width: 3rem; height: 3rem; align-items: center; justify-content: center; background: hsl(0 0% 100% / 0.12); border-radius: 9999px; flex: 0 0 auto; }
.cat-offers__txt { display: flex; flex-direction: column; }
.cat-offers__txt strong { font-family: var(--font-heading); font-size: 1.3rem; }
.cat-offers__txt span { color: hsl(var(--primary-foreground) / 0.8); font-size: 0.95rem; }
.cat-offers__btn { margin-left: auto; padding: 0.6rem 1.4rem; background: #fff; color: hsl(var(--primary)); border-radius: 9999px; font-weight: 600; flex: 0 0 auto; }
@media (max-width: 600px) { .cat-offers { flex-wrap: wrap; justify-content: center; text-align: center; } .cat-offers__btn { margin-left: 0; } }

/* 5. FAQ. */
.cat-faq__title { text-align: center; font-size: clamp(1.5rem, 3.5vw, 2.25rem); margin-bottom: 2rem; }
.cat-faq__list { max-width: 820px; margin: 0 auto; }
.cat-faq__item { border-bottom: 1px solid hsl(var(--border)); }
.cat-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 0; font-family: var(--font-heading); font-weight: 600; cursor: pointer; list-style: none; }
.cat-faq__q::-webkit-details-marker { display: none; }
.cat-faq__q::after { content: ""; flex: 0 0 auto; width: 0.6rem; height: 0.6rem; border-right: 2px solid hsl(var(--muted-foreground)); border-bottom: 2px solid hsl(var(--muted-foreground)); transform: rotate(45deg); transition: transform 0.2s ease; margin-top: -0.25rem; }
.cat-faq__item[open] .cat-faq__q::after { transform: rotate(-135deg); margin-top: 0.15rem; }
.cat-faq__a { padding: 0 0 1.1rem; color: hsl(var(--muted-foreground)); line-height: 1.7; }
.cat-faq__a > *:last-child { margin-bottom: 0; }

/* 6. Contact section (bg-secondary/30, centered) — NOT a navy band. */
.cat-contact { text-align: center; }
.cat-contact__title { font-size: clamp(1.5rem, 3.5vw, 2.25rem); margin-bottom: 0.75rem; }
.cat-contact__text { max-width: 42rem; margin: 0 auto 1.5rem; color: hsl(var(--muted-foreground)); font-size: 1.05rem; line-height: 1.7; }


/* Phone width: the toolbar meta (result count + sort + view toggle) is longer than the screen
   in Spanish ("28 modelos encontrados", "Ordenar: Más recientes") — 35 px of horizontal scroll
   on /es/ category pages (audit 2026-09-26). Let it wrap instead of overflowing. */
@media (max-width: 560px) {
  .catalog__toolbar-meta { flex: 1 1 100%; flex-wrap: wrap; min-width: 0; row-gap: 0.5rem; }
  .catalog__sort { white-space: normal; max-width: 100%; }
  .catalog__sort select { max-width: 100%; min-width: 0; }
}

/* ==== assets/css/components/booking.css ==== */
/*
 * Booking / visit request modal — loaded globally (the modal appears on the
 * single product buy-card AND on the homepage visit_showroom block), so these
 * rules must NOT live in woocommerce.css (which only loads on WooCommerce pages).
 *
 * Author: sodnamis.lt
 */

/* Navy header + inline calendar (variantas-4: "Schedule a Showroom Visit"). */
.sod-booking-modal { position: fixed; inset: 0; z-index: 320; display: flex; align-items: flex-start; justify-content: center; padding: 1.5rem; background: hsl(var(--foreground) / 0.6); overflow-y: auto; }
.sod-booking-modal[hidden] { display: none; }
.sod-booking-modal__panel { position: relative; width: min(420px, 100%); margin: auto; background: hsl(var(--card)); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-card); }
/* Navy header band */
.sod-booking-modal__header { position: relative; padding: 0.8rem clamp(1rem, 3.5vw, 1.3rem); background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.sod-booking-modal__title { display: flex; align-items: center; gap: 0.45rem; margin: 0; font-size: 1.1rem; color: inherit; }
.sod-booking-modal__title svg { flex: 0 0 auto; width: 17px; height: 17px; }
.sod-booking-modal__meta { margin: 0.2rem 0 0; font-size: 0.74rem; line-height: 1.35; color: hsl(var(--primary-foreground) / 0.8); }
.sod-booking-modal__close { position: absolute; top: 0.4rem; right: 0.5rem; width: 2rem; height: 2rem; font-size: 1.5rem; line-height: 1; color: hsl(var(--primary-foreground)); background: none; border: 0; border-radius: 9999px; cursor: pointer; opacity: 0.85; }
.sod-booking-modal__close:hover { background: hsl(0 0% 100% / 0.15); opacity: 1; }
/* Body */
.sod-booking-modal__body { padding: 0.8rem clamp(1rem, 3.5vw, 1.3rem) 1rem; }
.sod-booking-modal__product { margin: 0 0 0.45rem; font-size: 0.78rem; color: hsl(var(--muted-foreground)); }
.sod-booking-modal__label { margin: 0 0 0.3rem; font-family: var(--font-heading); font-weight: 600; font-size: 0.88rem; }
/* Inline calendar */
.sod-cal { margin-bottom: 0.3rem; }
.sod-cal__head { display: flex; align-items: center; justify-content: center; gap: 0.65rem; margin-bottom: 0.25rem; }
.sod-cal__month { font-family: var(--font-heading); font-weight: 600; font-size: 0.88rem; min-width: 8rem; text-align: center; }
.sod-cal__nav { width: 1.65rem; height: 1.65rem; display: inline-flex; align-items: center; justify-content: center; font-size: 1.05rem; line-height: 1; color: hsl(var(--foreground)); background: none; border: 1px solid hsl(var(--border)); border-radius: calc(var(--radius) - 4px); cursor: pointer; }
.sod-cal__nav:hover:not([disabled]) { background: hsl(var(--muted) / 0.5); }
.sod-cal__nav[disabled] { opacity: 0.35; cursor: default; }
.sod-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; }
.sod-cal__wd { text-align: center; font-size: 0.66rem; font-weight: 600; color: hsl(var(--muted-foreground)); padding: 0.1rem 0; }
.sod-cal__day { height: 1.7rem; display: inline-flex; align-items: center; justify-content: center; font-size: 0.8rem; color: hsl(var(--foreground)); background: none; border: 0; border-radius: calc(var(--radius) - 4px); cursor: pointer; }
.sod-cal__day:hover:not(.is-disabled):not(.is-selected) { background: hsl(var(--primary) / 0.1); }
.sod-cal__day.is-disabled { color: hsl(var(--muted-foreground) / 0.4); cursor: default; }
.sod-cal__day.is-today:not(.is-selected) { background: hsl(var(--muted) / 0.6); font-weight: 600; }
.sod-cal__day.is-selected { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); font-weight: 600; }
.sod-cal__day--empty { visibility: hidden; }
.sod-cal__selected { margin: 0.35rem 0 0.65rem; font-size: 0.8rem; color: hsl(var(--muted-foreground)); min-height: 1.1em; }
.sod-cal__selected.is-set { color: hsl(var(--primary)); font-weight: 600; }
/* Two-step flow: step 1 = date + time, step 2 = contact fields. */
.sod-step[hidden] { display: none; }
.sod-times { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 0.9rem; }
.sod-time { padding: 0.4rem 0.7rem; font-size: 0.82rem; color: hsl(var(--foreground)); background: none; border: 1px solid hsl(var(--border)); border-radius: 9999px; cursor: pointer; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
.sod-time:hover { border-color: hsl(var(--primary) / 0.5); }
.sod-time.is-selected { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: hsl(var(--primary)); }
.sod-next:disabled { opacity: 0.5; cursor: not-allowed; }
.sod-back, .sod-qback { display: inline-flex; align-items: center; gap: 0.25rem; margin: 0 0 0.4rem; padding: 0; font-size: 0.82rem; color: hsl(var(--muted-foreground)); background: none; border: 0; cursor: pointer; }
.sod-back:hover, .sod-qback:hover { color: hsl(var(--primary)); }
/* "Toliau" between quote steps: a little breathing room above it. */
.sod-quote-form .sod-qnext { margin-top: 0.6rem; }
.sod-step__summary { margin: 0 0 0.55rem; padding: 0.4rem 0.6rem; font-size: 0.85rem; font-weight: 600; color: hsl(var(--primary)); background: hsl(var(--primary) / 0.08); border-radius: calc(var(--radius) - 4px); }
.sod-step__summary:empty { display: none; }
/* Contact form (step 2). The base .contact-form lays rows out with flex `gap`,
   NOT margins — override the gaps (and its 1.5rem top margin) to tighten. */
.sod-date-native { display: none; }
.sod-booking-form.contact-form { margin-top: 0.25rem; gap: 0.5rem; }
.sod-booking-form .contact-form__row { gap: 0.5rem; }
.sod-booking-form .form-row { gap: 0.15rem; }
.sod-booking-form .form-row label { font-size: 0.8rem; }
.sod-booking-form input, .sod-booking-form select, .sod-booking-form textarea { padding-block: 0.4rem; }
.sod-booking-form textarea { min-height: 2.4rem; }
.sod-booking-form select { width: 100%; }
.sod-booking-form .wpcf7-response-output { margin: 0.75rem 0 0; border-radius: calc(var(--radius) - 4px); }
/* Quote form ("Gauti pasiūlymą") GDPR consent: a small checkbox inline with its
   label text (not the full-width input the other fields get). */
.sod-quote-form .form-row--consent { display: block; font-size: 0.82rem; line-height: 1.4; color: hsl(var(--muted-foreground)); }
.sod-quote-form .form-row--consent .wpcf7-form-control-wrap,
.sod-quote-form .form-row--consent .wpcf7-acceptance,
.sod-quote-form .form-row--consent .wpcf7-list-item { display: block; width: 100%; margin: 0; }
.sod-quote-form .form-row--consent label { display: flex; align-items: flex-start; gap: 0.5rem; margin: 0; }
.sod-quote-form .form-row--consent .wpcf7-list-item-label { flex: 1 1 auto; min-width: 0; }
.sod-quote-form .form-row--consent input[type="checkbox"] { width: 1.05rem; height: 1.05rem; min-width: 1.05rem; margin: 0.1rem 0 0; flex: 0 0 auto; accent-color: hsl(var(--primary)); }
/* Compact the quote form (9 fields) so the modal stays short — tighter row gaps,
   smaller labels + input padding. */
.sod-quote-form.contact-form { gap: 0.35rem; }
.sod-quote-form .form-row { gap: 0.1rem; }
.sod-quote-form .form-row label { font-size: 0.78rem; line-height: 1.25; }
.sod-quote-form input, .sod-quote-form select { padding-block: 0.3rem; }
.sod-quote-form .form-row--consent { font-size: 0.78rem; margin-top: 0.15rem; }

