/*
Theme Name: WP Bootstrap Starter
Theme URI: https://afterimagedesigns.com/wp-bootstrap-starter/
Author: Afterimage Designs
Author URI: https://afterimagedesigns.com/
Description:  The best WordPress starter theme based on the most powerful frameworks in the world: "_s" (by Automattic, the main people behind WordPress development), Twitter Bootstrap (the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web) and Font Awesome (or Fontawesome, a full suite of 675+ pictographic icons for easy scalable vector graphics on websites). This theme, like WordPress, is licensed under the GPL. You can use this theme as base for your next WordPress theme project and you are allowed to remove the link at the footer or do whatever you want. Your feedback on how we can continuously improve this WordPress Starter Theme Bootstrap will be highly appreciated. Page templates includes Right-sidebar (default page template), Left-Sidebar, Full-Width, Blank with container, Blank without container Page. Other features - Currently using Bootstrap v4.0.0 , Widgetized footer area, WooCommerce ready, Compatible with Contact Form 7, Compatible with Visual Composer, Compatible with Elementor Page Builder. This theme will be an active project which we will update from time to time. Check this page regularly for the updates.
Version: 3.3.2
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: wp-bootstrap-starter
Tags: blog, custom-menu, featured-images, threaded-comments, translation-ready, right-sidebar, custom-background, e-commerce, theme-options, sticky-post, full-width-template
*/


/* ── BRICOLAGE GROTESQUE ─────────────────────────── */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style:  normal;
  font-weight: 400;
  font-display: swap;
  src: url('/wp-content/themes/wp-bootstrap-starter/inc/assets/fonts/bricolage-grotesque-v9-latin-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style:  normal;
  font-weight: 500;
  font-display: swap;
  src: url('/wp-content/themes/wp-bootstrap-starter/inc/assets/fonts/bricolage-grotesque-v9-latin-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style:  normal;
  font-weight: 600;
  font-display: swap;
  src: url('/wp-content/themes/wp-bootstrap-starter/inc/assets/fonts/bricolage-grotesque-v9-latin-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style:  normal;
  font-weight: 700;
  font-display: swap;
  src: url('/wp-content/themes/wp-bootstrap-starter/inc/assets/fonts/bricolage-grotesque-v9-latin-700.woff2') format('woff2');
}

/* ── PLUS JAKARTA SANS ───────────────────────────── */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 400;
  font-display: swap;
  src: url('/wp-content/themes/wp-bootstrap-starter/inc/assets/fonts/plus-jakarta-sans-v12-latin-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 500;
  font-display: swap;
  src: url('/wp-content/themes/wp-bootstrap-starter/inc/assets/fonts/plus-jakarta-sans-v12-latin-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 600;
  font-display: swap;
  src: url('/wp-content/themes/wp-bootstrap-starter/inc/assets/fonts/plus-jakarta-sans-v12-latin-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 700;
  font-display: swap;
  src: url('/wp-content/themes/wp-bootstrap-starter/inc/assets/fonts/plus-jakarta-sans-v12-latin-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 800;
  font-display: swap;
  src: url('/wp-content/themes/wp-bootstrap-starter/inc/assets/fonts/plus-jakarta-sans-v12-latin-800.woff2') format('woff2');
}

:root {
  /* Brand */
  --blue-900: #0F1F4D;
  --blue-800: #15296B;
  --blue-700: #1E3A8A;
  --blue-600: #2754C2;
  --blue-500: #4F7BE8;
  --blue-100: #DCE5FF;
  --blue-50:  #EEF3FF;

  --yellow-500: #FACC15;
  --yellow-400: #FFD83D;
  --yellow-300: #FFE475;
  --yellow-100: #FFF4C2;
  --yellow-50:  #FFFAE0;

  /* Neutrals */
  --cream:      #F6F4EE;
  --cream-2:    #EFEDE5;
  --paper:      #FFFFFF;
  --line:       #E7E3D6;
  --line-soft:  #EFECE2;
  --paper-line: #E7E3D6;

  --ink:        #0A0E1F;
  --ink-2:      #16192B;
  --text:       #1A1F36;
  --muted:      #6B7185;
  --faint:      #9AA0B4;

  /* Type */
  --t-display: "Bricolage Grotesque", "Inter Tight", sans-serif;
  --t-body:    "Plus Jakarta Sans", "Inter", system-ui, sans-serif;

  /* Radius */
  --r-xs:  10px;
  --r-sm:  14px;
  --r-md:  20px;
  --r-lg:  28px;
  --r-xl:  36px;
  --r-2xl: 48px;
  --r-pill: 999px;

  /* Shadow */
  --sh-1: 0 1px 2px rgba(15, 31, 77, 0.05), 0 1px 1px rgba(15, 31, 77, 0.04);
  --sh-2: 0 4px 12px rgba(15, 31, 77, 0.06), 0 1px 2px rgba(15, 31, 77, 0.04);
  --sh-3: 0 10px 30px rgba(15, 31, 77, 0.08), 0 2px 4px rgba(15, 31, 77, 0.05);
  --sh-y: 0 8px 24px rgba(250, 204, 21, 0.35);
  --sh-b: 0 12px 30px rgba(30, 58, 138, 0.22);

  /* Container */
  --bleed: 20px;
  --container: 1240px;
}

@media (min-width: 720px)  { :root { --bleed: 32px; } }
@media (min-width: 1100px) { :root { --bleed: 48px; } }

* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  background: var(--cream);
  color: var(--text);
  font-family: var(--t-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-size: 16px; line-height: 1.5;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
input, textarea, select { font: inherit; color: inherit; }
::selection { background: var(--yellow-300); color: var(--ink); }

.wrap {
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--bleed);
  padding-right: var(--bleed);
}

@media (min-width: 1200px) { .wrap { max-width: 1140px; } }
@media (min-width: 1300px) { .wrap { max-width: 1270px; } }
@media (min-width: 1500px) { .wrap { max-width: 80%; } }

/* ============================================================
   Type
   ============================================================ */

.h-display {
  font-family: var(--t-display);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
}

.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 12px;
  background: var(--blue-50);
  color: var(--blue-700);
  border-radius: var(--r-pill);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.eyebrow .dot { width: 6px; height: 6px; background: var(--blue-700); border-radius: 50%; }
.eyebrow--yellow { background: var(--yellow-100); color: var(--blue-900); }
.eyebrow--yellow .dot { background: var(--yellow-500); }
.eyebrow--ondark { background: rgba(255,255,255,0.1); color: var(--yellow-300); }
.eyebrow--ondark .dot { background: var(--yellow-400); }

/* ============================================================
   Buttons
   ============================================================ */

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px;
  padding: 0 24px;
  height: 52px;
  border-radius: var(--r-pill);
  font-weight: 600; font-size: 15px;
  letter-spacing: -0.005em;
  transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
  white-space: nowrap;
  cursor: pointer;
}
.btn:active { transform: scale(0.97); }
.btn--primary {
  background: var(--yellow-500); color: var(--ink);
  box-shadow: var(--sh-y);
}
.btn--primary:hover { background: var(--yellow-400); transform: translateY(-2px); box-shadow: 0 12px 30px rgba(250, 204, 21, 0.45); }
.btn--blue { background: var(--blue-700); color: #fff; box-shadow: var(--sh-b); }
.btn--blue:hover { background: var(--blue-800); transform: translateY(-2px); }
.btn--anim:hover { transform: translateY(-2px); }
.btn--ghost-dark {
  background: rgba(255,255,255,0.08); color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.22);
  backdrop-filter: blur(8px);
}
.btn--ghost-dark:hover { background: rgba(255,255,255,0.16); }
.btn--outline {
  background: transparent; color: var(--blue-700);
  box-shadow: inset 0 0 0 1.5px var(--blue-700);
}
.btn--outline:hover { background: var(--blue-700); color: #fff; }
.btn--sm { height: 44px; padding: 0 18px; font-size: 14px; }
.btn--lg { height: 60px; padding: 0 32px; font-size: 16px; }
.btn--block { width: 100%; }
.btn .arrow {
  display: inline-grid; place-items: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: rgba(0,0,0,0.08);
  transition: transform .18s, background .18s;
  font-size: 12px;
}
.btn:hover .arrow { transform: translateX(3px); }
.btn--blue .arrow, .btn--ghost-dark .arrow { background: rgba(255,255,255,0.18); }

/* ============================================================
   Header
   ============================================================ */

   .nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-item { position: relative; }

.nav-item__row {
  display: flex;
  align-items: stretch;
}

.nav-link,
.nav-dropdown__link {
  display: flex;
  align-items: center;
  flex: 1;
  font-weight: 500;
  color: var(--text);
  transition: background .15s, color .15s;
}
.nav-link:hover,
.nav-dropdown__link:hover {
  background: var(--blue-50);
  color: var(--blue-700);
}

/* Toggle (arrow) button — separate click target from the link */
.nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  border-radius: var(--r-sm);
  transition: background .15s, color .15s;
}
.nav-toggle:hover, .nav-item__row:hover { background: var(--blue-50); color: var(--blue-700); border-radius: var(--r-pill); }
.nav-caret { transition: transform .2s ease; flex: none; }
.nav-item--dropdown.is-open > .nav-item__row .nav-caret { transform: rotate(180deg); }
.nav-dropdown .nav-item--dropdown .nav-toggle .nav-caret { transform: rotate(-90deg); }

/* ============================================================
   DESKTOP (>= 980px): floating panels, flyout nesting, hover + click
   ============================================================ */
@media (min-width: 980px) {
  .nav-menu { display: flex; align-items: center; gap: 4px; }

  .nav-link {
    padding: 10px 14px;
    border-radius: var(--r-pill);
    font-size: 14px;
  }
  .nav-item--dropdown > .nav-item__row .nav-link {
    border-radius: var(--r-pill) 0 0 var(--r-pill);
  }
  .nav-item--dropdown > .nav-item__row .nav-toggle {
    border-radius: 0 var(--r-pill) var(--r-pill) 0;
    width: 32px;
    margin-left: -10px;
  }

  /* 1st-level dropdown: opens BELOW the trigger */
  .nav-item > .nav-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 300px;
  }
  /* 2nd-level+ (flyout): opens to the RIGHT of its parent row */
  .nav-item .nav-item .nav-dropdown {
    top: -9px;
    left: calc(100% + 8px);
    min-width: 345px;
  }

  .nav-dropdown {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    box-shadow: var(--sh-y);
    padding: 8px;
    margin: 0;
    list-style: none;
    display: grid;
    gap: 2px;

    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
    z-index: 70;
  }
  .nav-item .nav-item .nav-dropdown { transform: translateX(6px); }

  /* Show on hover, keyboard focus, OR click (.is-open from JS) —
     all three work; hover is instant for mouse users, click "pins" it
     open for touch/keyboard users and stays open while moving the pointer. */
  .nav-item--dropdown:hover > .nav-dropdown,
  .nav-item--dropdown:focus-within > .nav-dropdown,
  .nav-item--dropdown.is-open > .nav-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .nav-item .nav-item--dropdown:hover > .nav-dropdown,
  .nav-item .nav-item--dropdown:focus-within > .nav-dropdown,
  .nav-item .nav-item--dropdown.is-open > .nav-dropdown {
    transform: translateX(0);
  }

  /* invisible bridges so the pointer can travel from trigger to panel
     without it closing (classic dropdown "gap" fix) */
  .nav-item > .nav-item--dropdown::after,
  .nav-item--dropdown::after {
    content: "";
    position: absolute;
    left: 0; right: -8px; top: 100%;
    height: 8px;
  }
  .nav-item .nav-item--dropdown::after {
    left: 100%; right: auto; top: 0; bottom: 0; width: 8px; height: auto;
  }

  .nav-dropdown__link {
    padding: 10px 14px;
    border-radius: var(--r-sm);
    font-size: 14px;
  }
}

/* ============================================================
   MOBILE / TABLET (< 980px): stacked accordion, click-only
   ============================================================ */
@media (max-width: 979px) {
  .nav-menu--mobile { display: flex; flex-direction: column; gap: 2px; }

  .nav-menu--mobile .nav-link {
    padding: 12px 14px;
    border-radius: var(--r-md);
    font-size: 16px;
  }
  .nav-menu--mobile .nav-item--dropdown > .nav-item__row .nav-link {
    border-radius: var(--r-md) 0 0 var(--r-md);
  }
  .nav-menu--mobile .nav-toggle {
    width: 48px;
    border-radius: 0 var(--r-md) var(--r-md) 0;
  }

  /* Submenus stack in place and collapse via max-height (animatable,
     unlike display:none, and needs no JS height calculation) */
  .nav-menu--mobile .nav-dropdown {
    list-style: none;
    margin: 0;
    padding: 0 0 0 14px;
    display: grid;
    gap: 2px;

    max-height: 0;
    overflow: hidden;
    opacity: 1;
    visibility: visible;
    transition: max-height .25s ease;
  }
  .nav-menu--mobile .nav-item--dropdown.is-open > .nav-dropdown {
    max-height: 2000px; /* generous cap so any number of items fits */
    padding-top: 4px;
    padding-bottom: 4px;
  }

  .nav-menu--mobile .nav-dropdown__link {
    padding: 10px 14px;
    border-radius: var(--r-sm);
    font-size: 15px;
    color: var(--muted);
  }
  .nav-menu--mobile .nav-dropdown__link:hover {
    color: var(--blue-700);
  }
}

.header {
  position: sticky; top: 0; z-index: 60;
  background: rgba(246, 244, 238, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line-soft);
}
.header__row {
  display: flex; align-items: center; gap: 12px;
  height: 80px;
}
.brand { display: flex; align-items: center; gap: 10px; width:70px; height:70px; }
.brand img {width: 100%;height: 100%;}
.brand__logo {
  width: 40px; height: 40px;
  background: var(--yellow-500);
  border-radius: 12px;
  display: grid; place-items: center;
  color: var(--blue-900);
  font-family: var(--t-display);
  font-weight: 700; font-size: 20px;
  box-shadow: 0 4px 12px rgba(250,204,21,0.35);
}
.brand__name { line-height: 1.05; }
.brand__name b { display: block; font-family: var(--t-display); font-weight: 700; font-size: 16px; color: var(--blue-900); letter-spacing: -0.01em; }
.brand__name small { display: block; font-size: 10px; color: var(--muted); letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600; margin-top: 2px; }

.nav { display: none; }
.header__phone { display: none; }
@media (min-width: 360px) {
  .header__phone {
display: flex;
align-items: center;
margin-left: auto;
gap: 10px;
  }
}
.header__cta { display: none; }
@media (min-width: 520px) {
  .header__cta {
display: inline-flex;
  }
}
.burger {
  margin-left: auto;
  width: 44px; height: 44px;
  border-radius: 14px;
  background: var(--paper);
  border: 1px solid var(--line);
  display: grid; place-items: center;
  position: relative;
}
.burger span, .burger span::before, .burger span::after {
  content: ""; display: block;
  width: 18px; height: 2px; background: var(--blue-900);
  border-radius: 2px;
  transition: transform .2s;
}
.burger span::before { position: absolute; transform: translateY(-6px); }
.burger span::after  { position: absolute; transform: translateY(6px); }

@media (min-width: 980px) {
  .header__row { height: 80px; gap: 24px; }
  .brand {width: 70px;height: 70px;}
  .nav { display: flex; gap: 4px; margin-left: 24px; }
  .nav a {
    padding: 10px 14px;
    border-radius: var(--r-pill);
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    transition: background .15s;
  }
  .nav a:hover { background: var(--blue-50); color: var(--blue-700); }
  .header__phone {
    display: inline-flex; align-items: center; gap: 8px;
    margin-left: auto;
    font-weight: 600; font-size: 14px;
    color: var(--blue-900);
  }
  .header__cta { display: inline-flex; }
  .burger { display: none; }
}

/* Mobile drawer */
.drawer-overlay {
  position: fixed; inset: 0; z-index: 90;
  background: rgba(10, 14, 31, 0.5);
  backdrop-filter: blur(4px);
  opacity: 0; pointer-events: none;
  transition: opacity .25s;
}
.drawer-overlay.is-open { opacity: 1; pointer-events: auto; }
.drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 100;
  width: min(88vw, 360px);
  background: var(--paper);
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(0.32, 0.72, 0, 1);
  display: flex; flex-direction: column;
  padding: 20px;
}
.drawer.is-open { transform: translateX(0); }
.drawer__head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 24px; border-bottom: 1px solid var(--line-soft); }
.drawer__close {
  width: 40px; height: 40px; border-radius: 12px;
  background: var(--cream); display: grid; place-items: center; font-size: 18px; color: var(--ink);
}
.drawer__nav { display: flex; flex-direction: column; gap: 4px; padding: 24px 0; overflow-y:auto; }
.drawer__nav a {
  padding: 14px 16px; border-radius: 14px;
  font-weight: 500; font-size: 16px; color: var(--ink-2);
  transition: background .15s;
}
.drawer__nav a:hover { background: var(--blue-50); color: var(--blue-700); }
.drawer__contact {
  margin-top: auto; padding-top: 24px; border-top: 1px solid var(--line-soft);
  display: flex; flex-direction: column; gap: 14px;
}
.drawer__contact a.tel {
  font-family: var(--t-display); font-weight: 600; font-size: 22px; color: var(--blue-900);
}

/* ============================================================
   Sections
   ============================================================ */

.section { padding: 64px 0; position: relative; }
@media (min-width: 760px) { .section { padding: 88px 0; } }
@media (min-width: 1100px) { .section { padding: 112px 0; } }

.section--blue {
  background: var(--blue-900);
  color: #fff;
}
.section--paper { background: var(--paper); }

.section__head { margin-bottom: 40px; }
@media (min-width: 760px) { .section__head { margin-bottom: 56px; } }

.section__head h2 {
  font-family: var(--t-display); font-weight: 600;
  font-size: 32px;
  line-height: 1.04; letter-spacing: -0.025em;
  color: var(--blue-900);
  margin-top: 16px;
  max-width: 720px;
  overflow-wrap: break-word;
}
@media (min-width: 600px) { .section__head h2 { font-size: 40px; } }
@media (min-width: 980px) { .section__head h2 { font-size: 52px; } }
.section--blue .section__head h2 { color: #fff; }
.section__head h2 .hl {
  background: linear-gradient(180deg, transparent 60%, var(--yellow-300) 60%);
  padding: 0 4px;
  border-radius: 4px;
}
.section--blue .section__head h2 .hl { color: var(--yellow-400); background: none; padding: 0; }
.section__head .lead {
  font-size: 16px; color: var(--muted); margin-top: 16px;
  max-width: 560px; line-height: 1.6;
}
.section--blue .section__head .lead { color: rgba(255,255,255,0.7); }

@media (min-width: 760px) {
  .section__head h2 { margin-top: 20px; }
  .section__head .lead { font-size: 17px; margin-top: 20px; }
}

.swiper .swiper-pagination .swiper-pagination-bullet {
    width: 24px;
    height: 6px;
    border-radius: 100px;
    background: var(--blue-100);
    border: 0;
    cursor: pointer;
    transition: background .2s, width .2s;
}

.swiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
background: var(--blue-700);
    width: 36px;
}

.swiper .swiper-pagination .swiper-pagination-bullet:hover {
background: var(--blue-500);
}

.breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.breadcrumb a {
  color: var(--blue-600);
  font-weight: 500;
  transition: color var(--ease);
}
.breadcrumb a:hover { color: var(--blue-700); text-decoration: underline; }
.breadcrumb .sep { color: var(--faint); user-select: none; }
.breadcrumb .current { color: var(--text); font-weight: 600; }

/* ── PAGE HERO ──────────────────────────────────── */
.page-hero {
  padding: 48px 0 56px;
  background: var(--cream);
}
@media (min-width: 768px) { .page-hero { padding: 64px 0 72px; } }
@media (min-width: 1200px) { .page-hero { padding: 80px 0 88px; } }

.page-hero h1 {
  font-family: var(--t-display);
  font-size: clamp(2rem, 5vw, 3.4rem);
  font-weight: 700;
  color: var(--blue-900);
  line-height: 1.08;
  letter-spacing: -0.025em;
  margin: 12px 0 16px;
  max-width: 720px;
  overflow-wrap: break-word;
}
.page-hero h1 .y  { color: var(--yellow-500); }
.page-hero h1 .hl { color: var(--blue-600); font-style: italic; }
.page-hero .lead  { max-width: 560px; font-size: 17px; }

/* ── PAGE-HERO BLUE (404 / thank-you) ───────────── */
.page-hero--blue {
  background: linear-gradient(135deg, var(--blue-900) 0%, var(--blue-800) 55%, var(--blue-700) 100%);
  min-height: calc(100vh - 68px);
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  padding: 64px 0;
}
.page-hero--blue::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(255,255,255,.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.032) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
}
.page-hero--blue::after {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(250,204,21,.18) 0%, transparent 60%);
  pointer-events: none;
}
.page-hero--blue .wrap { width: 100%; }

/* ── NOT-FOUND (404 + thank-you shared layout) ──── */
.not-found {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 20px;
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 0 16px;
}

.not-found__ring-wrap {
  position: relative;
  width: 240px; height: 240px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.not-found__ring {
  position: absolute;
  inset: 0;
  opacity: .22;
  animation: ring-spin 22s linear infinite;
  pointer-events: none;
}
@keyframes ring-spin { to { transform: rotate(360deg); } }
.not-found__ring-inner {
  position: absolute;
  inset: 24px;
  opacity: .14;
  animation: ring-spin 14s linear infinite reverse;
}

.not-found__num {
  font-family: var(--t-display);
  font-size: clamp(80px, 22vw, 160px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.05em;
  color: #fff;
  margin: 0;
  position: absolute;
  z-index: 2;
}
.not-found__num .y { color: var(--yellow-400); }

.not-found h2 {
  font-family: var(--t-display);
  font-size: clamp(1.4rem, 4vw, 2rem);
  font-weight: 700;
  color: #fff;
  margin: 0;
  letter-spacing: -0.02em;
}
.not-found > p {
  font-size: 16px;
  color: rgba(255,255,255,.68);
  max-width: 400px;
  line-height: 1.65;
  margin: 0;
}
.not-found__btns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 4px;
}

.not-found__btns a {
  flex-grow: 1;
}

/* ── THANK-YOU CHECKMARK ────────────────────────── */
.thankyou__check-wrap {
  position: relative;
  width: 120px; height: 120px;
  flex-shrink: 0;
}
.thankyou__check-wrap svg {
  width: 100%; height: 100%;
  overflow: visible;
}
.thankyou__check-bg {
  fill: rgba(255,255,255,.07);
  stroke: rgba(255,255,255,.15);
  stroke-width: 1.5;
}
.thankyou__check-ring {
  fill: none;
  stroke: rgba(250,204,21,.35);
  stroke-width: 1.5;
  stroke-dasharray: 5 10;
  animation: ring-spin 12s linear infinite;
  transform-origin: 60px 60px;
}
.thankyou__check-circle {
  fill: rgba(250,204,21,.12);
  stroke: var(--yellow-400);
  stroke-width: 2;
}
.thankyou__check-path {
  fill: none;
  stroke: var(--yellow-400);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 52;
  stroke-dashoffset: 52;
  animation: draw-check .7s .4s cubic-bezier(.2,0,0,1) forwards;
}
@keyframes draw-check { to { stroke-dashoffset: 0; } }

.thankyou__info {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--r-md);
  padding: 20px 24px;
  width: 100%;
  max-width: 380px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  text-align: left;
}
.thankyou__info-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  color: rgba(255,255,255,.78);
  line-height: 1.45;
}
.thankyou__info-row + .thankyou__info-row {
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.thankyou__info-row .ic {
  width: 32px; height: 32px;
  background: rgba(250,204,21,.14);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--yellow-400);
  flex-shrink: 0;
}
.thankyou__info-row b { display: block; color: #fff; font-weight: 600; font-size: 15px; }

.cb-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(10, 14, 31, .70);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  align-items: center;
  justify-content: center;
  z-index: 9000;
  padding: 16px;
}
/* Visible state — [hidden] removed by JS */
.cb-overlay:not([hidden]) {
  display: flex;
  animation: cb-fade .22s ease both;
}
@keyframes cb-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.cb-modal {
  background: var(--paper);
  border-radius: var(--r-xl);
  box-shadow: 0 32px 80px rgba(10, 14, 31, .38), 0 0 0 1px rgba(255, 255, 255, .06);
  padding: 40px 36px 36px;
  width: 100%;
  max-width: 440px;
  position: relative;
  animation: cb-rise .28s cubic-bezier(.2, 0, 0, 1) both;
}
@keyframes cb-rise {
  from { opacity: 0; transform: translateY(28px) scale(.96); }
  to   { opacity: 1; transform: none; }
}

.cb-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
  display: grid;
  place-items: center;
  color: var(--muted);
  transition: background var(--ease), color var(--ease), border-color var(--ease);
}
.cb-modal__close:hover {
  background: var(--blue-50);
  color: var(--blue-700);
  border-color: var(--blue-100);
}

.cb-modal__icon {
  width: 56px;
  height: 56px;
  border-radius: var(--r-lg);
  background: linear-gradient(135deg, var(--blue-700) 0%, var(--blue-900) 100%);
  display: grid;
  place-items: center;
  color: var(--yellow-400);
  margin-bottom: 18px;
}

.cb-modal__title {
  font-family: var(--t-display);
  font-size: 1.55rem;
  font-weight: 700;
  color: var(--blue-900);
  line-height: 1.15;
  margin-bottom: 6px;
}
.cb-modal__sub {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.55;
  margin-bottom: 24px;
}

@media (max-width: 480px) {
  .cb-modal { padding: 32px 22px 28px; }
  .cb-modal__title { font-size: 1.3rem; }
}

.cb-modal__service-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--blue-50);
  border: 1px solid var(--blue-100);
  border-radius: var(--r-pill);
  padding: 7px 14px 7px 10px;
  margin-bottom: 20px;
  font-size: 10px;
  font-weight: 600;
  color: var(--blue-700);
  line-height: 1.3;
}
.cb-modal__service-chip svg { flex-shrink: 0; color: var(--blue-500);    display: block;
    width: 24px;
    height: 24px; }

@media (max-width: 480px) {
  .cb-modal { padding: 32px 22px 28px; }
  .cb-modal__title { font-size: 1.3rem; }
}


.field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
}

.field label {
  font-size: 13px;
  font-weight: 600;
  color: var(--blue-900);
  display: flex;
}

.field input,
.field textarea {
  background: var(--cream);
  border: 1.5px solid var(--line);
  border-radius: var(--r-sm);
  padding: 14px 16px;
  font-size: 15px;
  color: var(--ink);
  outline: none;
  transition: border-color .15s, background .15s;
  width: 100%;
}

.field input::placeholder,
.field textarea::placeholder {
  color: var(--faint);
}

.field input:focus,
.field textarea:focus {
  border-color: var(--blue-700);
  background: #fff;
}

.field textarea {
  resize: vertical;
  min-height: 110px;
  max-height: 130px;
}

.form-card .legal {
  font-size: 11px;
  color: var(--muted);
  margin-top: 12px;
  text-align: center;
}

.cb-form input[type="submit"] {
  border: unset;
}

.wpcf7-spinner,
.wpcf7-response-output {
  display: none!important;
}

.wpcf7-not-valid-tip {
  position: absolute;
      font-size: 10px;
}

.form-card input[type="submit"] {
border: unset;
}

.foot {
  background: var(--ink);
  color: rgba(255, 255, 255, 0.7);
  padding: 56px 0 24px;
}

.foot__grid {
  display: flex;
  flex-direction: column;
  gap: 36px;
}

@media (min-width: 760px) {
  .foot__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 32px;
  }
}

.foot h4 {
  font-size: 12px;
  color: var(--yellow-400);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.foot ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 14px;
}

.foot ul a {
  color: rgba(255, 255, 255, 0.7);
  transition: color .15s;
}

.foot ul a:hover {
  color: var(--yellow-400);
}

.foot__brand p {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.55;
  margin: 16px 0 20px;
  max-width: 320px;
}

.foot__social {
  display: flex;
  gap: 8px;
}

.foot__social a {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  display: grid;
  place-items: center;
  color: rgba(255, 255, 255, 0.8);
  transition: background .2s, color .2s;
}

.foot__social a:hover {
  background: var(--yellow-500);
  color: var(--blue-900);
}

.foot__hours li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
}

.foot__hours li b {
  color: #fff;
  font-weight: 600;
}

.seo-text .h1 {
  font-family: var(--t-display);
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--blue-900);
  margin: 0 0 0.75em;
}

.seo-text h2 {
  font-family: var(--t-display);
  font-size: clamp(1.25rem, 3vw, 1.7rem);
  font-weight: 700;
  color: var(--blue-900);
  margin: 36px 0 12px;
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.seo-text h2:first-child { margin-top: 0; }
.seo-text p {
  font-size: 15px;
  color: var(--text);
  line-height: 1.75;
  margin-bottom: 16px;
}
.seo-text ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.seo-text ul li {
  font-size: 15px;
  color: var(--text);
  line-height: 1.65;
  position: relative;
  padding-left: 18px;     /* місце під буллет */
}

.seo-text ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 11px;              /* підлаштувати під line-height */
  width: 7px; height: 7px;
  background: var(--yellow-500);
  border-radius: 50%;
}

.seo-text ul li strong {
  font-weight: 700;
  /* НЕ робимо display: block — strong залишається inline */
}

.seo-text__img {
  min-height: 400px;
  overflow: hidden;
  object-fit: cover;
  border-radius: var(--r-lg);
  margin: 15px 0;
}

  #breadcrumbs {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--text);
    margin-bottom: 24px;
    flex-wrap: wrap;

    }

    #breadcrumbs span a {
            color: var(--text);
    font-weight: 500;
    transition: color var(--ease);
    }
#breadcrumbs span a:hover {
        color: var(--blue-700);
}
    #breadcrumbs span.breadcrumb_last {
    
     color: var(--blue-600);
    font-weight: 600;
    }

.hero{padding: 28px 0 0;}

.counter-home{padding-bottom: 0}
@media (min-width: 1100px){.counter-home{padding: 0;margin-bottom: -50px;margin-top: 50px}}

.split-hero {background: var(--cream);padding: 56px 0;overflow: hidden;}
@media (min-width: 768px)  { .split-hero { padding: 72px 0; } }
@media (min-width: 1100px) { .split-hero { padding: 88px 0; } }

.post-sidebar {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (min-width: 768px) {
  .post-sidebar { position: sticky; top: 88px; }
}
.sidebar-widget {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 22px;
}
.sidebar-widget__title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 16px;
}

/* Sidebar related posts */
.sidebar-posts { display: flex; flex-direction: column; gap: 16px; }
.sidebar-post {
  display: flex;
  gap: 12px;
  text-decoration: none;
  color: inherit;
}
.sidebar-post__thumb {
  width: 64px;
  height: 48px;
  border-radius: var(--r-sm);
  object-fit: cover;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--blue-700), var(--blue-900));
}
.sidebar-post__info { min-width: 0; }
.sidebar-post__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--blue-900);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color .15s;
}
.sidebar-post:hover .sidebar-post__title { color: var(--blue-600); }
.sidebar-post__date { font-size: 11px; color: var(--faint); margin-top: 4px; }

/* Sidebar CTA widget */
.sidebar-cta {
  background: linear-gradient(155deg, var(--blue-900) 0%, var(--blue-700) 100%);
  border-color: transparent;
  position: relative;
  overflow: hidden;
}
.sidebar-cta::before {
  content: '';
  position: absolute;
  top: -1px; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--yellow-500), transparent);
}
.sidebar-cta .sidebar-widget__title { color: rgba(255, 255, 255, .4); }
.sidebar-cta__heading {
  font-family: var(--t-display);
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.25;
  margin-bottom: 6px;
}
.sidebar-cta__sub {
  font-size: 13px;
  color: rgba(255, 255, 255, .6);
  line-height: 1.6;
  margin-bottom: 18px;
}

.col-seo {

}

@media (min-width: 760px) {
  .col-seo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 56px;
    align-items: start;
  }
}

@media (min-width: 1440px) {
  .seo-text__img {
    min-height: 500px;
  }
}

