:root {
  --blue: #5674e0;
  --blue-dark: #2b3978;
  --text: #232327;
  --muted: #4a4b52;
  --line: #d7d8df;
  --white: #fff;
  --cream: #f1f2f6;
  --shadow: 0 18px 40px rgba(26, 31, 52, 0.08);
  --shadow-strong: 0 24px 56px rgba(26, 31, 52, 0.18);
  --radius: 8px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); font-family: "IBM Plex Sans", sans-serif; background: #fafafa; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
.text-link { color: var(--blue); font-weight: 700; }
p { margin: 0; color: var(--muted); line-height: 1.7; }
h1, h2, h3 { margin: 0; color: var(--text); font-family: "Space Grotesk", sans-serif; line-height: 1; text-transform: uppercase; }
h1 { font-size: clamp(2.9rem, 7vw, 5.2rem); letter-spacing: -0.03em; }
h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
h3 { font-size: 1.65rem; }
ul { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; }
.container { width: min(calc(100% - 2rem), var(--max)); margin: 0 auto; }
.skip-link { position: absolute; left: -9999px; top: 1rem; z-index: 100; padding: 0.8rem 1rem; background: var(--blue); color: var(--white); }
.skip-link:focus { left: 1rem; }
.icon { display: inline-flex; align-items: center; justify-content: center; width: 1.05rem; height: 1.05rem; font-size: 1.05rem; line-height: 1; }
.icon svg { width: 100%; height: 100%; }
.icon i { font-size: inherit; line-height: 1; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, 0.985); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.site-header__inner { display: flex; align-items: center; justify-content: flex-start; gap: 1.35rem; min-height: 88px; }
.brand { flex: 0 0 auto; }
.brand img { width: clamp(220px, 20vw, 340px); height: auto; object-fit: contain; }
.site-nav { display: flex; align-items: stretch; gap: 1.35rem; margin-left: auto; }
.site-nav > a, .nav-dropdown summary { position: relative; display: inline-flex; align-items: center; min-height: 88px; padding: 0; color: var(--text); font-size: 0.85rem; font-weight: 700; letter-spacing: 0.04em; line-height: 1; text-transform: uppercase; white-space: nowrap; list-style: none; cursor: pointer; }
.site-nav > a::after, .nav-dropdown summary::before { content: ""; position: absolute; left: 0; right: 0; bottom: 12px; height: 2px; background: var(--blue); opacity: 0; transform: scaleX(0); transform-origin: center; transition: transform 0.24s ease, opacity 0.24s ease; }
.site-nav > a.is-active::after, .site-nav > a:hover::after, .nav-dropdown[open] summary::before, .nav-dropdown:hover summary::before, .nav-dropdown:focus-within summary::before { opacity: 1; transform: scaleX(1); }
.nav-dropdown { position: relative; display: flex; align-items: stretch; }
.nav-dropdown summary { gap: 0.5rem; outline: none; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown__chevron { display: inline-flex; align-items: center; justify-content: center; width: 0.75rem; height: 0.75rem; margin-top: 0.02rem; transition: transform 0.22s ease; }
.nav-dropdown__chevron .icon { width: 100%; height: 100%; font-size: 0.72rem; }
.nav-dropdown[open] .nav-dropdown__chevron, .nav-dropdown:hover .nav-dropdown__chevron, .nav-dropdown:focus-within .nav-dropdown__chevron { transform: rotate(180deg); }
.nav-dropdown__menu { position: absolute; top: calc(100% - 0.25rem); left: 50%; z-index: 20; display: grid; gap: 0.55rem; min-width: 280px; padding: 1rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(-50%) translateY(10px); transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s step-end; }
.nav-dropdown[open] .nav-dropdown__menu, .nav-dropdown:hover .nav-dropdown__menu, .nav-dropdown:focus-within .nav-dropdown__menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); transition-timing-function: ease, ease, step-start; }
.nav-dropdown__menu a { color: var(--muted); font-size: 0.95rem; text-transform: none; }
.nav-dropdown__menu a:hover { color: var(--blue); }

.header-contact, .button { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; border-radius: 999px; border: 0; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
.header-contact, .button--primary, .button:not(.button--outline) { background: var(--blue-dark); color: var(--white); }
.header-contact { min-height: 2.65rem; margin-left: 1rem; padding: 0.72rem 1.18rem; flex: 0 0 auto; }
.button { min-height: 2.95rem; padding: 0.85rem 1.25rem; }
.button--small { min-height: 2.55rem; padding: 0.7rem 1.05rem; }
.button--outline { background: var(--white); color: var(--blue-dark); border: 2px solid var(--blue); }
.button:hover, .header-contact:hover, .carousel__arrow:hover { transform: translateY(-1px); }
.header-contact .icon, .button .icon { width: 1rem; height: 1rem; font-size: 1rem; }
.icon--whatsapp { width: 1.02rem; height: 1.02rem; font-size: 1.02rem; }

.nav-toggle { display: none; border: 1px solid var(--line); background: var(--white); border-radius: var(--radius); width: 2.9rem; height: 2.9rem; }
.nav-toggle span { display: block; width: 1.2rem; height: 2px; margin: 0.24rem auto; background: var(--text); }

.section { padding: 5.5rem 0; }
.section--white { background: var(--white); }
.section--cream { background: var(--cream); }
.section--pattern { position: relative; background-color: var(--cream); background-image: url("/assets/site/Buildlux-Pattern.jpg"); background-repeat: repeat; background-size: 164px; }
.section--pattern::before { content: ""; position: absolute; inset: 0; background: rgba(241, 242, 246, 0.92); }
.section--pattern > .container { position: relative; z-index: 1; }

.section-divider { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-bottom: 1rem; color: var(--blue); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.section-divider::before, .section-divider::after { content: ""; flex: 1 1 0; max-width: 180px; height: 1px; border-top: 1px dashed rgba(36, 63, 150, 0.3); }
.section-divider--left { justify-content: flex-start; }
.section-divider--left::after { max-width: 260px; }
.section-divider--left::before { display: none; }
.section-heading { max-width: 760px; margin: 0 auto 2.5rem; text-align: center; }
.section-heading h2 { text-transform: none; letter-spacing: -0.02em; }
.section-heading--compact p { margin-top: 0.85rem; }
.section-actions { margin-top: 2rem; }
.section-actions--center { display: flex; justify-content: center; }

.home-hero, .page-hero-block, .cta-banner-faithful, .testimonial-band { position: relative; overflow: hidden; }
.home-hero { min-height: 680px; padding: 7.75rem 0 15rem; color: var(--white); }
.home-hero__slide, .page-hero-block, .cta-banner-faithful__background, .testimonial-band__background { background-position: center; background-repeat: no-repeat; background-size: cover; }
.home-hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  animation:
    heroCrossfadeA 16s ease-in-out infinite,
    heroScale 16s ease-out infinite;
  transform-origin: center center;
}
.home-hero__slide--one { opacity: 1; }
.home-hero__slide--two {
  animation-name: heroCrossfadeB, heroScale;
}
.home-hero__overlay, .page-hero-block__overlay { content: ""; position: absolute; inset: 0; background: rgba(0, 22, 56, 0.76); }
.home-hero__overlay {
  background:
    linear-gradient(90deg, rgba(5, 12, 27, 0.82) 0%, rgba(6, 13, 29, 0.68) 40%, rgba(10, 18, 35, 0.54) 100%);
}
.cta-banner-faithful::before, .testimonial-band::before { content: ""; position: absolute; inset: 0; }
.testimonial-band::before { background: rgba(7, 13, 28, 0.74); }
.cta-banner-faithful::before { background: rgba(7, 13, 28, 0.84); }
.home-hero__content, .page-hero-block__content, .cta-banner-faithful__content { position: relative; z-index: 1; }
.home-hero__content {
  width: min(100%, 720px);
  max-width: 720px;
  margin: 0;
  padding: 1.2rem 0 2rem 1.55rem;
  text-align: left;
}
.home-hero__content::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15rem;
  bottom: 2.2rem;
  width: 3px;
  border-radius: 999px;
  background: repeating-linear-gradient(
    to bottom,
    rgba(24, 70, 154, 0.96) 0 11px,
    rgba(24, 70, 154, 0) 11px 15px
  );
  transform: scaleY(0);
  transform-origin: top center;
  opacity: 0;
  animation: heroAccentIn 0.75s cubic-bezier(0.22, 0.61, 0.36, 1) 0.12s forwards;
}
.home-hero__content h1, .page-hero-block__content h1, .cta-banner-faithful__content h2 { color: var(--white); }
.home-hero__content p, .page-hero-block__content p, .cta-banner-faithful__content p { margin-top: 1.25rem; color: rgba(255, 255, 255, 0.88); }
.home-hero__content h1 {
  max-width: 13.6ch;
  margin: 0;
  font-size: clamp(2.65rem, 4.2vw, 4.35rem);
  line-height: 0.96;
  opacity: 0;
  transform: translate3d(-18px, 18px, 0);
  animation: heroCopyIn 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) 0.24s forwards;
}
.home-hero__content .hero-actions {
  justify-content: flex-start;
  margin-top: 2.15rem;
  opacity: 0;
  transform: translate3d(-10px, 18px, 0);
  animation: heroCopyIn 0.85s cubic-bezier(0.22, 0.61, 0.36, 1) 0.42s forwards;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: 2rem; }
.hero-actions--center { justify-content: center; }

.hero-metrics { position: relative; z-index: 2; margin-top: -7rem; padding-bottom: 3rem; }
.metric-grid, .specialty-grid, .service-grid-faithful, .benefit-grid-faithful, .contact-grid-faithful { display: grid; gap: 1.5rem; }
.metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.metric-card { display: flex; gap: 1.05rem; align-items: flex-start; min-height: 140px; padding: 1.25rem 1.35rem; background: var(--blue-dark); color: var(--white); border-radius: var(--radius); box-shadow: var(--shadow-strong); }
.metric-card > div:last-child { flex: 1 1 auto; padding-top: 0.05rem; }
.metric-card h3, .metric-card p { color: var(--white); }
.metric-card h3 { font-family: "IBM Plex Mono", monospace; font-size: 1rem; font-weight: 700; line-height: 1.35; letter-spacing: 0; text-transform: none; }
.metric-card p { margin-top: 0.35rem; font-family: "IBM Plex Sans", sans-serif; font-size: 1rem; line-height: 1.55; }
.metric-card__icon, .specialty-card__icon, .benefit-card-faithful__icon { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; flex: 0 0 auto; }
.metric-card__icon { width: 3.45rem; height: 3.45rem; background: var(--white); color: var(--blue-dark); }
.metric-card__icon .icon { width: 1.45rem; height: 1.45rem; font-size: 1.45rem; }
.specialty-card__icon, .benefit-card-faithful__icon { width: 3.7rem; height: 3.7rem; background: var(--blue-dark); color: var(--white); }
.specialty-card__icon .icon, .benefit-card-faithful__icon .icon { width: 1.35rem; height: 1.35rem; font-size: 1.35rem; }
.specialty-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.specialty-card, .service-card-faithful, .benefit-card-faithful, .contact-card-faithful, .blog-card, .sidebar-card { padding: 2rem 1.5rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.specialty-card, .service-card-faithful { display: flex; flex-direction: column; align-items: center; text-align: center; }
.specialty-card__icon, .benefit-card-faithful__icon { margin-bottom: 1rem; }
.specialty-card p, .service-card-faithful p, .benefit-card-faithful p, .contact-card-faithful p { margin-top: 0.85rem; }
.specialty-card .button, .service-card-faithful .button { margin-top: 1.25rem; }
.specialty-card { min-height: 318px; justify-content: flex-start; }
.specialty-card p { min-height: 5.4rem; }
.specialty-card .button { margin-top: auto; }
.service-grid-faithful { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.service-card-faithful { justify-content: space-between; min-height: 238px; padding: 1.9rem 1.45rem; }
.service-card-faithful h3 { font-size: 1.1rem; line-height: 1.1; }
.service-card-faithful p { font-size: 0.98rem; line-height: 1.65; }

.carousel { --carousel-gap: 1.75rem; --carousel-columns: 1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; }
.carousel__viewport { overflow: hidden; }
.carousel__viewport.is-draggable { cursor: grab; user-select: none; touch-action: pan-y; }
.carousel__viewport.is-dragging { cursor: grabbing; }
.carousel__viewport.is-draggable * { user-select: none; }
.carousel__list { display: flex; gap: 0; align-items: stretch; transition: transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1); will-change: transform; }
.carousel__page { flex: 0 0 100%; min-width: 100%; display: flex; justify-content: center; gap: var(--carousel-gap); align-items: center; }
.carousel__item { min-width: 0; flex: 0 0 calc((100% - (var(--carousel-gap) * (var(--carousel-columns) - 1))) / var(--carousel-columns)); max-width: calc((100% - (var(--carousel-gap) * (var(--carousel-columns) - 1))) / var(--carousel-columns)); }
.carousel__item[hidden] { display: none !important; }
.carousel__item--logo { display: flex; align-items: center; justify-content: center; min-height: 112px; padding: 0.35rem 0.3rem; }
.carousel__item--logo img { width: 100%; max-width: 196px; max-height: 84px; object-fit: contain; transition: transform 0.28s ease, opacity 0.28s ease, filter 0.28s ease; }
.carousel__item--logo:hover img { transform: translateY(-2px) scale(1.03); }
.carousel__arrow { display: inline-flex; align-items: center; justify-content: center; width: 3.15rem; height: 3.15rem; border: 1px solid #d6dce8; border-radius: 999px; background: var(--white); color: var(--muted); cursor: pointer; }
.carousel__arrow[disabled] { opacity: 0.38; cursor: default; transform: none; }
.carousel__arrow--prev .icon { transform: rotate(180deg); }
.carousel__dots { grid-column: 1 / -1; display: flex; justify-content: center; gap: 0.45rem; margin-top: 0.85rem; }
.carousel__dots button { width: 0.55rem; height: 0.55rem; padding: 0; border: 0; border-radius: 999px; background: #c8ccd8; cursor: pointer; }
.carousel__dots button.is-active { background: var(--blue); }
.carousel--logos .carousel__viewport { min-height: 122px; padding: 0.5rem 0 0.25rem; }
.carousel--logos .carousel__page { min-height: 122px; align-items: center; }
.carousel--logos .carousel__list { align-items: center; }
.carousel--testimonials .carousel__item { flex-basis: 100%; max-width: 100%; }

.testimonial-band { padding: 7rem 0; }
.testimonial-band__background, .cta-banner-faithful__background { position: absolute; inset: 0; transform: scale(1.04); }
.testimonial-band__background { filter: brightness(0.46) saturate(0.94); }
.cta-banner-faithful__background { filter: brightness(0.34) saturate(0.92); }
.testimonial-frame { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; padding: 2.35rem; background: var(--white); border-radius: calc(var(--radius) + 2px); box-shadow: var(--shadow-strong); }
.testimonial-card-faithful { display: grid; justify-items: center; gap: 1rem; padding: 1.5rem; text-align: center; background: var(--cream); border-radius: var(--radius); }
.testimonial-card-faithful__avatar { width: 84px; height: 84px; border-radius: 999px; overflow: hidden; background: var(--white); }
.testimonial-card-faithful__avatar img { width: 100%; height: 100%; object-fit: cover; }
.testimonial-card-faithful strong { font-family: "Space Grotesk", sans-serif; font-size: 1.1rem; text-transform: uppercase; color: var(--blue); }
.testimonial-card-faithful span { color: var(--muted); font-size: 0.95rem; }

.about-grid-faithful, .service-intro-faithful__card, .form-layout-faithful, .article-layout { display: grid; gap: 2rem; }
.about-grid-faithful { grid-template-columns: 1fr minmax(280px, 420px); align-items: center; }
.about-copy-faithful p { margin-top: 1rem; }
.check-list { display: grid; gap: 0.85rem; margin: 1.5rem 0; list-style: none; }
.check-list li { position: relative; padding-left: 1.7rem; }
.check-list li::before { content: "\f058"; position: absolute; left: 0; top: 0.08rem; font-family: "Font Awesome 5 Free"; font-weight: 900; font-size: 0.98rem; line-height: 1; color: var(--blue); }
.about-logo-faithful { justify-self: center; }
.about-logo-faithful img { width: min(100%, 420px); height: auto; object-fit: contain; }

.cta-banner-faithful { padding: 6rem 0; }
.cta-banner-faithful__content { max-width: 760px; margin: 0 auto; text-align: center; }

.page-hero-block { min-height: 440px; padding: 8rem 0 7rem; background-image: var(--hero-image); }
.page-hero-block--compact { min-height: 360px; padding: 8rem 0 5rem; }
.page-hero-block__overlay { background: rgba(0, 22, 56, 0.76); }
.page-hero-block__content { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; text-align: center; }
.page-hero-block__content h1 { position: relative; display: inline-block; padding-bottom: 1.3rem; }
.page-hero-block__content h1::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.1rem;
  height: 0.9rem;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 28' fill='none'%3E%3Cpath d='M4 21.5C103.7 10.9 204.5 5.6 260 6c74.9.5 165.3 9.2 256 17.5' stroke='%2318469a' stroke-width='7' stroke-linecap='round'/%3E%3C/svg%3E")
    center / 100% 100% no-repeat;
  transform: scaleX(0);
  transform-origin: left center;
  opacity: 0;
}
.page-hero-block__content.is-visible h1::after { animation: titleUnderlineDraw 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) 0.2s forwards; }

.service-intro-faithful { position: relative; z-index: 3; margin-top: -5.5rem; padding-bottom: 3rem; }
.service-intro-faithful__card { grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr); gap: 0; background: var(--cream); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-strong); }
.service-intro-faithful__copy { padding: 2.25rem 2.5rem 2.1rem; }
.service-intro-faithful__copy p { margin-top: 1rem; }
.feature-stack { display: grid; gap: 1rem; margin: 1.5rem 0; }
.feature-row { display: flex; gap: 0.9rem; align-items: flex-start; }
.feature-row .icon { margin-top: 0.18rem; color: var(--blue); }
.feature-row strong { display: block; font-family: "Space Grotesk", sans-serif; font-size: 1.1rem; text-transform: none; }
.service-intro-faithful__media { position: relative; min-height: 430px; }
.service-intro-faithful__media img { width: 100%; height: 100%; object-fit: cover; }
.service-intro-faithful__badge { position: absolute; left: 1.25rem; bottom: 1.25rem; padding: 1rem 1.15rem; background: rgba(17, 30, 66, 0.92); color: var(--white); border-radius: var(--radius); }
.service-intro-faithful__badge strong { display: block; font-size: 2rem; font-family: "IBM Plex Mono", monospace; }
.benefit-grid-faithful { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.benefit-card-faithful { text-align: center; }
.benefit-card-faithful__icon { margin: 0 auto 1rem; background: var(--blue); }

.gallery-grid-faithful { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.35rem; }
.gallery-grid-faithful--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.gallery-grid-faithful__item { overflow: hidden; border-radius: var(--radius); }
.gallery-grid-faithful__link { position: relative; display: block; width: 100%; height: 100%; color: var(--white); text-decoration: none; overflow: hidden; cursor: pointer; }
.gallery-grid-faithful__item img { display: block; width: 100%; height: 100%; min-height: 160px; object-fit: cover; transition: transform 0.35s ease, filter 0.35s ease; }
.gallery-grid-faithful__overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(17, 30, 66, 0.36); color: var(--white); font-family: "Space Grotesk", sans-serif; font-size: 1.25rem; font-weight: 700; letter-spacing: 0.02em; opacity: 0; transition: opacity 0.28s ease, background 0.28s ease; }
.gallery-grid-faithful__link:hover img,
.gallery-grid-faithful__link:focus-visible img { transform: scale(1.03); filter: brightness(0.78); }
.gallery-grid-faithful__link:hover .gallery-grid-faithful__overlay,
.gallery-grid-faithful__link:focus-visible .gallery-grid-faithful__overlay { opacity: 1; background: rgba(17, 30, 66, 0.5); }
.gallery-grid-faithful__link:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }

.contact-grid-faithful { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.contact-card-faithful h3 { font-size: 1.35rem; }
.contact-card-faithful .button { margin-top: 1rem; }
.form-layout-faithful { grid-template-columns: 0.92fr 1.08fr; align-items: start; }
.contact-form-faithful { display: grid; gap: 1rem; padding: 2rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }

.field-grid, .field-row, .form-actions, .blog-card__meta, .blog-card__footer { display: flex; gap: 1rem; align-items: center; }
.field-grid, .field-row { align-items: stretch; }
.field { display: grid; gap: 0.55rem; width: 100%; color: var(--text); font-size: 0.95rem; font-weight: 700; }
.field input, .field select, .field textarea { width: 100%; padding: 0.95rem 1rem; color: var(--text); background: var(--white); border: 1px solid #d6dce9; border-radius: var(--radius); }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid rgba(36, 63, 150, 0.15); border-color: var(--blue); }
.form-feedback { color: var(--muted); font-size: 0.95rem; }

.blog-toolbar { display: grid; gap: 1rem; margin-bottom: 2rem; padding: 1.5rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.filter-group { display: flex; flex-wrap: wrap; gap: 0.65rem; }
.filter-chip { padding: 0.65rem 0.9rem; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--muted); font-weight: 700; cursor: pointer; }
.filter-chip.is-active { background: var(--blue); color: var(--white); border-color: var(--blue); }
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.8rem; }
.blog-card { display: grid; gap: 1rem; }
.blog-card__meta, .blog-card__footer { justify-content: space-between; color: var(--blue); font-size: 0.84rem; font-weight: 700; text-transform: uppercase; }
.blog-card__footer a { color: var(--blue); }
.blog-empty { margin-top: 1rem; text-align: center; }

.article-layout { grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr); align-items: start; }
.article-layout--single { grid-template-columns: 1fr; }
.article-body, .sidebar-card { padding: 2rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.article-body { display: grid; gap: 1rem; }
.article-body h2 { margin-top: 0.5rem; }
.article-body ul { display: grid; gap: 0.8rem; padding-left: 1.2rem; }
.article-sidebar { display: grid; gap: 1rem; position: sticky; top: 112px; align-self: start; }
.sidebar-card--dark { background: var(--blue-dark); border-color: transparent; }
.sidebar-card--dark h3, .sidebar-card--dark p { color: var(--white); }
.sidebar-links { display: grid; gap: 0.85rem; list-style: none; margin-top: 1rem; }
.sidebar-links a { color: var(--blue); }

.site-footer { padding: 2rem 0 1.5rem; background: var(--white); border-top: 1px solid var(--line); }
.footer-brand { display: inline-flex; align-items: center; }
.footer-brand img { width: clamp(220px, 18vw, 320px); height: auto; object-fit: contain; }
.footer-grid { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 2rem; align-items: start; }
.footer-card h3 { margin-bottom: 0.9rem; font-size: 1.2rem; }
.footer-card a { display: block; margin-bottom: 0.55rem; color: var(--muted); }
.footer-bottom { padding-top: 1.25rem; margin-top: 1.25rem; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.92rem; text-align: center; }

.floating-whatsapp { position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 60; display: inline-flex; align-items: center; justify-content: center; width: 3.7rem; height: 3.7rem; border-radius: 999px; background: #5fd36a; color: var(--white); box-shadow: 0 18px 30px rgba(20, 45, 20, 0.28); }
.floating-whatsapp .icon { width: 1.6rem; height: 1.6rem; font-size: 1.6rem; }

[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }
[data-blog-card][hidden] { display: none !important; }

@keyframes heroCrossfadeA {
  0%, 40% { opacity: 1; }
  50%, 90% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes heroCrossfadeB {
  0%, 40% { opacity: 0; }
  50%, 90% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes heroScale {
  0% { transform: scale(1); }
  100% { transform: scale(1.08); }
}

@keyframes heroAccentIn {
  0% { transform: scaleY(0); opacity: 0; }
  100% { transform: scaleY(1); opacity: 1; }
}

@keyframes heroCopyIn {
  0% { opacity: 0; transform: translate3d(-18px, 18px, 0); }
  100% { opacity: 1; transform: none; }
}

@keyframes titleUnderlineDraw {
  0% { transform: scaleX(0.08); opacity: 0; }
  55% { transform: scaleX(1.04); opacity: 1; }
  100% { transform: scaleX(1); opacity: 1; }
}

@keyframes backgroundFloat {
  0% { transform: scale(1.05) translate3d(0, 0, 0); }
  100% { transform: scale(1.11) translate3d(-1.75%, -1.25%, 0); }
}

@keyframes logoMarquee {
  0% { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(-50%, 0, 0); }
}

body { background: #fff; }

.site-header__inner {
  min-height: 74px;
  gap: 2rem;
}

.brand img {
  width: clamp(250px, 22vw, 355px);
}

.site-nav {
  align-items: center;
  gap: 1.35rem;
}

.site-nav > a,
.nav-dropdown summary {
  min-height: 74px;
  padding: 0;
  font-size: 0.8rem;
  letter-spacing: 0.03em;
}

.header-contact {
  min-height: 2.6rem;
  margin-left: clamp(0.9rem, 1.8vw, 1.8rem);
  padding: 0.72rem 1.28rem;
  flex: 0 0 auto;
  align-self: center;
  white-space: nowrap;
}

.header-contact .icon,
.button .icon {
  width: 0.92rem;
  height: 0.92rem;
  font-size: 0.92rem;
}

.home-hero {
  min-height: 560px;
  padding: 5.6rem 0 8.35rem;
}

.home-hero__overlay {
  background: linear-gradient(90deg, rgba(4, 11, 24, 0.72) 0%, rgba(7, 14, 28, 0.62) 38%, rgba(9, 16, 31, 0.58) 100%);
}

.home-hero__content {
  width: min(100%, 780px);
  max-width: 780px;
  margin-left: clamp(1rem, 5.5vw, 5.2rem);
  padding: 0.8rem 0 1.2rem 1.35rem;
}

.home-hero__content::before {
  top: 0.15rem;
  bottom: 1.5rem;
}

.home-hero__content h1 {
  max-width: 14.2ch;
  font-size: clamp(2.55rem, 3.9vw, 4.1rem);
  line-height: 0.96;
}

.hero-actions {
  margin-top: 1.7rem;
}

.hero-metrics {
  margin-top: -4rem;
}

.metric-grid {
  gap: 1.45rem;
  align-items: stretch;
}

.metric-card {
  min-height: 144px;
  padding: 1.55rem 1.55rem 1.45rem;
  gap: 1.15rem;
}

.metric-card h3 {
  font-family: "IBM Plex Mono", monospace;
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.04;
  text-transform: uppercase;
}

.metric-card p {
  font-size: 1rem;
  line-height: 1.55;
}

.metric-card__icon {
  width: 3.8rem;
  height: 3.8rem;
}

.metric-card__icon .icon {
  width: 1.62rem;
  height: 1.62rem;
  font-size: 1.62rem;
}

.specialty-grid,
.service-grid-faithful,
.benefit-grid-faithful {
  align-items: stretch;
}

.specialty-card {
  min-height: 288px;
  padding: 2.1rem 1.6rem 1.8rem;
  justify-content: flex-start;
}

.specialty-card__icon {
  width: 4.9rem;
  height: 4.9rem;
  margin-bottom: 1.35rem;
}

.specialty-card__icon .icon {
  width: 2.18rem;
  height: 2.18rem;
  font-size: 2.18rem;
}

.specialty-card h3 {
  min-height: 3.15rem;
  font-size: 1.28rem;
  line-height: 1.05;
  text-transform: none;
  letter-spacing: -0.02em;
}

.specialty-card p {
  flex: 1 1 auto;
  font-size: 1rem;
  line-height: 1.72;
}

.specialty-card .button {
  margin-top: auto;
}

.service-card-faithful {
  min-height: 238px;
  padding: 1.95rem 1.45rem;
}

.service-card-faithful h3 {
  font-size: 1.2rem;
  line-height: 1.06;
  text-transform: none;
  letter-spacing: -0.01em;
}

.service-card-faithful p {
  font-size: 0.98rem;
}

.benefit-card-faithful__icon {
  width: 4rem;
  height: 4rem;
}

.benefit-card-faithful__icon .icon {
  width: 1.52rem;
  height: 1.52rem;
  font-size: 1.52rem;
}

.section--pattern {
  background-size: 156px;
}

.section--pattern::before {
  background: rgba(248, 243, 234, 0.92);
}

.section--pattern-benefits .section-heading h2,
.service-intro-faithful__copy h2,
.about-copy-faithful h2,
.benefit-card-faithful h3,
.blog-card h3,
.contact-card-faithful h3 {
  text-transform: none;
  letter-spacing: -0.02em;
}

.section--pattern-benefits .section-heading h2 {
  font-size: clamp(2.35rem, 4vw, 3.4rem);
}

.section--pattern-benefits .section-heading p {
  max-width: 760px;
  margin: 0.9rem auto 0;
}

.benefit-grid-faithful {
  gap: 1.7rem;
}

.benefit-card-faithful {
  min-height: 300px;
  padding: 2.35rem 1.9rem 2rem;
}

.benefit-card-faithful__icon {
  width: 5.7rem;
  height: 5.7rem;
  margin-bottom: 1.45rem;
}

.benefit-card-faithful__icon .icon {
  width: 2.52rem;
  height: 2.52rem;
}

.benefit-card-faithful h3 {
  font-size: 1.42rem;
  line-height: 1.08;
}

.benefit-card-faithful p {
  font-size: 1rem;
  line-height: 1.72;
}

.page-hero-block {
  min-height: 400px;
  padding: 7rem 0 5.5rem;
}

.page-hero-block--compact {
  min-height: 340px;
  padding: 6.5rem 0 4.5rem;
}

.page-hero-block__content {
  max-width: 980px;
}

.page-hero-block__content h1 {
  max-width: 11.5ch;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(2.8rem, 4.6vw, 4.55rem);
  line-height: 0.94;
  text-transform: uppercase;
}

.page-hero-block__content p {
  max-width: 820px;
  margin: 1.15rem auto 0;
  font-size: 1.05rem;
}

.page-article .page-hero-block__content {
  max-width: 860px;
}

.page-article .page-hero-block__content h1 {
  max-width: 16ch;
  font-size: clamp(2.25rem, 3.45vw, 3.4rem);
  line-height: 1.02;
  text-transform: none;
  letter-spacing: -0.025em;
}

.service-intro-faithful {
  margin-top: -4.6rem;
}

.service-intro-faithful__copy {
  padding: 2.55rem 2.65rem 2.35rem;
}

.service-intro-faithful__copy h2 {
  max-width: 23.5ch;
  font-size: clamp(1.48rem, 1.88vw, 2.12rem);
  line-height: 1.06;
  letter-spacing: -0.02em;
}

.service-intro-faithful__copy p {
  max-width: 43ch;
  font-size: 0.96rem;
  line-height: 1.66;
}

.feature-row {
  gap: 1rem;
}

.feature-row .icon {
  width: 1.78rem;
  height: 1.78rem;
  font-size: 1.78rem;
  margin-top: 0.08rem;
  flex: 0 0 1.78rem;
}

.feature-row strong {
  font-size: 1.24rem;
  text-transform: none;
  line-height: 1.08;
}

@media (max-width: 1024px) {
  .article-sidebar {
    position: static;
    top: auto;
  }
}

.cta-banner-faithful {
  padding: 4.8rem 0;
}

.cta-banner-faithful__background {
  animation: backgroundFloat 18s ease-in-out infinite alternate;
}

.cta-banner-faithful__background {
  filter: brightness(0.28) saturate(0.75);
}

.cta-banner-faithful__content {
  max-width: 1120px;
}

.cta-banner-faithful__content h2 {
  font-size: clamp(2.1rem, 3.3vw, 3rem);
  white-space: nowrap;
  text-transform: none;
  letter-spacing: -0.02em;
  line-height: 1.04;
  margin-bottom: 1.45rem;
}

.logo-marquee {
  position: relative;
  overflow: hidden;
  padding: 0.35rem 0 0.15rem;
}

.logo-marquee::before,
.logo-marquee::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 28px;
  z-index: 2;
  pointer-events: none;
}

.logo-marquee::before {
  left: 0;
  background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 100%);
}

.logo-marquee::after {
  right: 0;
  background: linear-gradient(270deg, #fff 0%, rgba(255, 255, 255, 0) 100%);
}

.logo-marquee__track {
  display: flex;
  align-items: center;
  gap: clamp(0.08rem, 0.45vw, 0.35rem);
  width: max-content;
  animation: logoMarquee 78s linear infinite;
  will-change: transform;
}

.logo-marquee__item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 204px;
  min-height: 108px;
  overflow: hidden;
}

.logo-marquee__item img {
  max-width: 168px;
  max-height: 82px;
  object-fit: contain;
  transform: scale(1.68);
  transform-origin: center center;
  opacity: 1;
}

.testimonial-band {
  padding: 6.5rem 0;
}

.testimonial-band__background {
  transform: none;
  filter: brightness(0.38) saturate(0.9);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.testimonial-frame {
  max-width: 840px;
  padding: 2.35rem;
}

@media (min-width: 1025px) {
  .testimonial-band__background {
    background-attachment: fixed;
  }
}

@media (max-width: 1024px) {
  .testimonial-band__background {
    background-attachment: scroll;
  }
}

.testimonial-slider__viewport {
  overflow: hidden;
  cursor: grab;
  touch-action: pan-y;
}

.testimonial-slider__viewport.is-dragging {
  cursor: grabbing;
}

.testimonial-slider__track {
  display: flex;
  transition: transform 0.65s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}

.testimonial-slide {
  flex: 0 0 100%;
  min-width: 100%;
}

.testimonial-card-faithful {
  min-height: 372px;
  padding: 2rem 2.25rem;
}

.testimonial-card-faithful p {
  font-size: 0.98rem;
  line-height: 1.72;
}

.testimonial-card-faithful strong {
  text-transform: uppercase;
}

.testimonial-slider__dots {
  display: flex;
  justify-content: center;
  gap: 0.48rem;
  margin-top: 1rem;
}

.testimonial-slider__dots button {
  width: 0.58rem;
  height: 0.58rem;
  border: 0;
  border-radius: 999px;
  background: #c8ccd8;
  cursor: pointer;
}

.testimonial-slider__dots button.is-active {
  background: var(--blue);
}

.about-copy-faithful p {
  max-width: 640px;
}

.blog-toolbar {
  gap: 1.1rem;
  max-width: 980px;
  margin: 0 auto 2.5rem;
}

@media (max-width: 1024px) {
  .metric-grid, .specialty-grid, .service-grid-faithful, .benefit-grid-faithful, .contact-grid-faithful, .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-grid-faithful, .service-intro-faithful__card, .form-layout-faithful, .article-layout, .footer-grid { grid-template-columns: 1fr; }
  .gallery-grid-faithful { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .nav-toggle { display: inline-block; }
  .site-nav { position: absolute; top: calc(100% + 0.5rem); left: 1rem; right: 1rem; display: none; flex-direction: column; align-items: stretch; gap: 0.9rem; padding: 1rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
  .site-nav.is-open { display: flex; }
  .nav-dropdown__menu { position: static; min-width: 0; margin-top: 0.75rem; transform: none; box-shadow: none; }
  .site-nav > a.is-active::after, .site-nav > a:hover::after, .nav-dropdown[open] summary::after, .nav-dropdown:hover summary::after { display: none; }
  .home-hero { min-height: 620px; padding: 6.6rem 0 12rem; }
  .home-hero__content { width: min(100%, 500px); padding: 0.8rem 0 1.35rem 1.15rem; }
  .home-hero__content::before { top: 0.1rem; bottom: 1.45rem; width: 2px; }
  .home-hero__content h1 { max-width: 11.5ch; font-size: 2.45rem; }
  .page-hero-block { min-height: 320px; padding: 7rem 0 4.5rem; }
  .page-hero-block__content h1 { padding-bottom: 1rem; }
  .page-hero-block__content h1::after { height: 0.72rem; }
  .hero-metrics { margin-top: -5.5rem; }
  .metric-grid, .specialty-grid, .service-grid-faithful, .benefit-grid-faithful, .contact-grid-faithful, .blog-grid, .gallery-grid-faithful { grid-template-columns: 1fr; }
  .carousel { grid-template-columns: 1fr; }
  .carousel__arrow { display: none; }
  .carousel__page { gap: 1rem; }
  .brand img { width: 220px; }
  .field-grid, .field-row, .form-actions { flex-direction: column; align-items: stretch; }
  .section { padding: 4.25rem 0; }
  h1 { font-size: 2.6rem; }
}

@media (max-width: 760px) {
  .site-header__inner {
    min-height: 76px;
  }

  .site-nav > a,
  .nav-dropdown summary {
    min-height: auto;
    padding: 0;
  }

  .header-contact {
    margin-left: 0;
    justify-content: center;
  }

  .home-hero {
    min-height: 520px;
    padding: 5.75rem 0 9.5rem;
  }

  .home-hero__content {
    margin-left: 0;
    max-width: 100%;
  }

  .home-hero__content h1,
  .page-hero-block__content h1,
  .service-intro-faithful__copy h2,
  .cta-banner-faithful__content h2 {
    max-width: none;
    white-space: normal;
  }

  .hero-metrics {
    margin-top: -3rem;
  }

  .metric-card,
  .benefit-card-faithful,
  .specialty-card,
  .service-card-faithful {
    min-height: 0;
  }

  .logo-marquee::before,
  .logo-marquee::after {
    width: 18px;
  }

  .logo-marquee__track {
    gap: 0.35rem;
    animation-duration: 56s;
  }

  .logo-marquee__item {
    width: 146px;
    min-height: 84px;
  }

  .logo-marquee__item img {
    max-width: 122px;
    max-height: 58px;
    transform: scale(1.34);
  }

  .testimonial-frame {
    padding: 1.55rem;
  }

  .testimonial-card-faithful {
    padding: 1.45rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  [data-reveal] { opacity: 1; transform: none; }
  .home-hero__content::before,
  .home-hero__content h1,
  .home-hero__content .hero-actions { opacity: 1; transform: none; }
  .page-hero-block__content h1::after { transform: translateX(-50%); opacity: 1; }
}
