.hero__bg img,
.hero__bg picture,
.service-banner__bg img,
.service-banner__bg picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Current NL/EN glyphs use lossless subsets; the complete parent faces remain
 * registered as an automatic fallback for any future character outside this
 * unicode range. Glyph outlines, hinting and advance widths are unchanged. */
@font-face {
  font-family: "Neue Plak Subset";
  src: url("../fonts/NeuePlak-Regular-live.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0020-0022, U+0025-005B, U+005D, U+0061-007A, U+007C, U+00A0, U+00A9, U+00B2, U+00BB, U+00E0, U+00E8-00E9, U+00EB, U+00EF, U+00F3, U+00F6, U+00FC, U+2013-2014, U+2018-2019, U+201C-201D;
}

@font-face {
  font-family: "Neue Plak Subset";
  src: url("../fonts/NeuePlak-SemiBold-live.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0020-0022, U+0025-005B, U+005D, U+0061-007A, U+007C, U+00A0, U+00A9, U+00B2, U+00BB, U+00E0, U+00E8-00E9, U+00EB, U+00EF, U+00F3, U+00F6, U+00FC, U+2013-2014, U+2018-2019, U+201C-201D;
}

@font-face {
  font-family: "Neue Plak Full";
  src: url("/wp-content/themes/365group/assets/vendor/supress/fonts/NeuePlak-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000, U+000D, U+0023-0024, U+005C, U+005E-0060, U+007B, U+007D-007E, U+00A1-00A8, U+00AA, U+00AC-00B1, U+00B3-00BA, U+00BC-00DF, U+00E1-00E7, U+00EA, U+00EC-00EE, U+00F0-00F2, U+00F4-00F5, U+00F7-00FB, U+00FD-017E, U+018F, U+0192, U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+02C6-02C7, U+02C9, U+02D8-02DD, U+0300-0304, U+0306-0308, U+030A-030C, U+0312, U+0326-0328, U+0335-0338, U+0394, U+03A9, U+03BC, U+03C0, U+1E80-1E85, U+1E9E, U+1EF2-1EF3, U+2009, U+2011, U+201A, U+201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+2070, U+2074-208E, U+2099, U+20AC, U+20B9-20BA, U+20BC, U+2113, U+2117, U+2122, U+2126, U+212E, U+2202, U+2206, U+220F, U+2211-2212, U+2215, U+2219-221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25CA, U+FB00-FB04, U+FEFF;
}

@font-face {
  font-family: "Neue Plak Full";
  src: url("/wp-content/themes/365group/assets/vendor/supress/fonts/NeuePlak-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000, U+000D, U+0023-0024, U+005C, U+005E-0060, U+007B, U+007D-007E, U+00A1-00A8, U+00AA, U+00AC-00B1, U+00B3-00BA, U+00BC-00DF, U+00E1-00E7, U+00EA, U+00EC-00EE, U+00F0-00F2, U+00F4-00F5, U+00F7-00FB, U+00FD-017E, U+018F, U+0192, U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+02C6-02C7, U+02C9, U+02D8-02DD, U+0300-0304, U+0306-0308, U+030A-030C, U+0312, U+0326-0328, U+0335-0338, U+0394, U+03A9, U+03BC, U+03C0, U+1E80-1E85, U+1E9E, U+1EF2-1EF3, U+2009, U+2011, U+201A, U+201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+2070, U+2074-208E, U+2099, U+20AC, U+20B9-20BA, U+20BC, U+2113, U+2117, U+2122, U+2126, U+212E, U+2202, U+2206, U+220F, U+2211-2212, U+2215, U+2219-221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25CA, U+FB00-FB04, U+FEFF;
}

body,
button,
input,
select,
textarea {
  font-family: "Neue Plak Subset", "Neue Plak Full", sans-serif;
}

/* Keep above-the-fold decoration at its original scale. The parent theme's
 * endless pulse makes an unchanged decorative layer extend LCP reporting and
 * keeps raster work active; the static frame has identical dimensions. */
.home .hero::after,
.project-archive .heading::after,
.team-archive .heading::after,
.heading--service::after,
.cg-trustindex-fallback .card-testimonials::before {
  animation: none;
}

/* Lossless raster of the parent's embedded bitmap SVG. At the rendered
 * 670px width this is pixel-identical, but avoids decoding a 1,549px PNG
 * hidden inside a 158KB SVG wrapper during the homepage's first paint. */
.home .hero::after {
  background-image: url("../images/logomark-transparent.png");
}

/* Large decorative backgrounds stay out of the initial request queue. The
 * homepage controller restores them shortly before their section enters the
 * viewport; dimensions and foreground content never depend on these images. */
.home .card-testimonials::before,
.home .cta__holder,
.home .footer .footer__bottom {
  background-image: none;
}

.home .card-testimonials.cg-deferred-bg-ready::before {
  background-image: url("/wp-content/themes/365group/assets/vendor/supress/images/logomark2.svg");
}

.home .cta__holder.cg-deferred-bg-ready {
  background-image: url("/wp-content/themes/365group/assets/vendor/supress/images/action-bg.jpg");
}

.home .footer .footer__bottom.cg-deferred-bg-ready {
  background-image: url("/wp-content/themes/365group/assets/vendor/supress/images/footer-bg.jpg");
}

@media (max-width: 767px) {
  @supports (width: 100dvw) {
    .cg-cookie-banner {
      right: auto;
      width: calc(100dvw - 20px);
      top: 100dvh;
      bottom: auto;
      transform: translateY(calc(-100% - 10px));
    }
  }
}

.hero--makel {
  position: relative;
  overflow: hidden;
}

.hero--makel::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 38%;
  pointer-events: none;
  background: radial-gradient(62% 82% at 50% 96%, rgba(255, 96, 63, 0.72) 0%, rgba(255, 96, 63, 0.26) 40%, rgba(255, 96, 63, 0) 76%);
  z-index: 2;
}

.hero--makel .hero__shape-six {
  position: absolute;
  right: 4%;
  bottom: -13%;
  z-index: 2;
  font-size: clamp(220px, 28vw, 560px);
  line-height: 0.86;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.14);
  user-select: none;
  pointer-events: none;
  animation: cgHeroPulse 7.2s ease-in-out infinite;
}

@keyframes cgHeroPulse {
  0% { transform: translateY(0); opacity: 0.12; }
  50% { transform: translateY(-8px); opacity: 0.2; }
  100% { transform: translateY(0); opacity: 0.12; }
}

.navbar__brand img {
  max-width: 100%;
  height: auto;
}

.card-cases__image img,
.card-property__image img,
.card-process__image img,
.quote-section__image img,
.action__bg img,
.image-text__image > img,
.large-image img,
.management__logo img {
  width: 100%;
  display: block;
}

.card-cases__image figure {
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.card-cases__image figure img {
  height: 100%;
  object-fit: cover;
}

.card-cases__content-inner p:last-child {
  margin-bottom: 0;
}

.card-property__image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.card-property__image img,
.card-blog__image img,
.card-tasks__image img,
.locations-block__image img,
.brands-slider__slide img {
  height: 100%;
  object-fit: cover;
}

.fast-facts__block .h2 > span {
  display: inline-block;
  min-width: 1ch;
}

.service-list__content h2 a {
  color: inherit;
}

.service-list__content ul {
  margin: 0;
  padding-left: 18px;
}

.brands-slider .brands-slider__slide {
  display: flex;
  align-items: center;
  justify-content: center;
}

.brands-slider .brands-slider__slide a,
.brands-slider .brands-slider__slide img {
  display: block;
  width: 100%;
}

.management__logo img {
  width: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.tasks-section .card-tasks__content ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tasks-section .card-tasks__content p:last-child {
  margin-bottom: 0;
}

.locations-block__image img {
  border-radius: 16px;
}

.cases-slider .card-cases,
.recent-blog .card-blog {
  height: 100%;
}

.recent-blog .card-blog__content .btn {
  padding-left: 0;
}

@media (max-width: 767px) {
  .hero--makel .hero__shape-six {
    right: -8%;
    bottom: -17%;
    font-size: clamp(180px, 62vw, 340px);
  }

  .hero--makel::after {
    height: 46%;
  }

  .locations-block__image {
    margin-top: 20px;
  }

  .tasks-section .card-tasks__content {
    margin-top: 0;
  }
}

/* ── Hero heading mobile fix ── */
.hero__top h1,
.case-banner__content h1 {
  font-size: clamp(28px, 8vw, 44px);
  line-height: 1.1;
  word-break: break-word;
  overflow-wrap: break-word;
  hyphens: none;
  -webkit-hyphens: none;
}

/* ── Project/Team archive heading mobile fix ── */
@media (max-width: 1023px) {
  .project-archive .heading,
  .team-archive .heading {
    padding-top: 170px;
    padding-bottom: 120px;
  }
  .project-archive .heading + .cases-list,
  .team-archive .heading + .team-section {
    margin-top: -80px;
  }
}

/* ── Project archive: card-cases figure aspect-ratio override ── */
.project-archive .card-cases__image figure {
  aspect-ratio: 456 / 512;
}
@media (max-width: 767px) {
  .project-archive .card-cases__image figure {
    aspect-ratio: 4 / 3;
  }
}

/* ── Project archive: card-cases img fill figure ── */
.project-archive .card-cases__image figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Help home: match live FAQ spacing when the videos block precedes FAQ blocks. */
.help-videos + .questions-section {
  background: #F9F6FF;
  padding-top: var(--py-section);
  padding-bottom: 130px;
  margin-bottom: 0;
  border-radius: 32px;
}

@media (min-width: 1024px) {
  .help-videos + .questions-section {
    padding-bottom: 250px;
  }
}

@media (min-width: 1440px) {
  .help-videos + .questions-section {
    padding-bottom: 350px;
  }
}

@media (min-width: 1600px) {
  .help-videos + .questions-section {
    margin-left: 50px;
    margin-right: 50px;
    width: calc(100% - 100px);
  }
}

/* Help home: mirror live's 60px breathing room between stacked FAQ blocks. */
.help-videos + .questions-section .questions-section__item-row:not(:last-child) .questions-section__list {
  margin-bottom: 60px;
}

/* Accessibility tokens keep the expressive brand palette available for
 * decoration while assigning WCAG-safe colors to text and keyboard focus. */
:root {
  --cg-color-accent-text: #586aca;
  --cg-color-muted-text: #66708f;
  --cg-color-navbar-muted: #8087a1;
  --cg-color-focus: #ff603f;
}

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 100000;
  transform: translateY(calc(-100% - 20px));
  border-radius: 8px;
  padding: 12px 18px;
  background: #fff;
  color: #000e43;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.15s ease;
}

.skip-link:focus-visible {
  transform: translateY(0);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
.cg-form input:focus-visible,
.cg-form select:focus-visible,
.cg-form textarea:focus-visible {
  outline: 3px solid var(--cg-color-focus) !important;
  outline-offset: 3px !important;
}

.cg-cookie-banner a:focus-visible,
.cg-cookie-banner button:focus-visible,
.cg-cookie-banner input:focus-visible {
  outline-color: #fff !important;
  box-shadow: 0 0 0 5px #000e43;
}

.cg-cookie-banner__inner:focus {
  outline: none;
}

.navbar__top,
.navbar__top-left {
  color: var(--cg-color-navbar-muted);
}

.navbar__top-right ul li:not(.is-active) a:not(:hover) {
  color: var(--cg-color-navbar-muted);
}

.intro h2 strong,
.management h2 strong,
.tasks-section > .container > .row h2 strong,
.testimonials__top h2 strong,
.locations-block h2 strong {
  color: var(--cg-color-accent-text);
}

.video-block__content h2.h6,
.testimonials__top,
.testimonials__top .tesimonials__text strong,
.card-testimonials__name span,
.recent-blog .card-blog__content,
.footer .footer__top .footer__button address {
  color: var(--cg-color-muted-text);
}

.cg-cookie-banner__actions .button-primary {
  color: #000e43;
}

.card-tasks__title h3 {
  color: #fff;
}

.card-blog__content h3 {
  font-weight: 600;
}

.mobile-nav .mobile-nav__nav ul li .mobile-nav__submenu-toggle {
  position: absolute;
  top: 24px;
  right: 10px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 6px;
  padding: 0;
  background: transparent;
  color: var(--cg-color-accent-text);
  font-size: 22px;
  transition: var(--speed-default);
}

.mobile-nav .mobile-nav__nav ul li.sub-open > .mobile-nav__submenu-toggle {
  transform: rotate(180deg);
}
