*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
table{border-collapse:collapse;border-spacing:0}

:root{
  --red:#FF0000;
  --red-cta:#E60000;
  --red-hover:#CC0000;
  --red-light:#FF3333;
  --red-lighter:#FF6666;
  --slate-50:#f8fafc;
  --slate-100:#f1f5f9;
  --slate-200:#e2e8f0;
  --slate-300:#cbd5e1;
  --slate-400:#94a3b8;
  --slate-500:#64748b;
  --slate-600:#475569;
  --slate-700:#334155;
  --slate-800:#1e293b;
  --slate-900:#0f172a;
  --slate-950:#020617;
  --warm-dark:#1f0b08;
  --off-white:#faf9f8;
  --white:#fff;
  --container:1280px;
  --px:1rem;
  --radius-md:.375rem;
  --radius-xl:.75rem;
  --radius-2xl:1rem;
  --header-h:5rem;
  --section-py:6rem;
  --cta-py:5rem;
  --font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06);
  --shadow-md:0 4px 6px -1px rgba(15,23,42,.08),0 2px 4px -2px rgba(15,23,42,.06);
  --shadow-lg:0 10px 15px -3px rgba(15,23,42,.08),0 4px 6px -4px rgba(15,23,42,.06);
  --shadow-xl:0 20px 25px -5px rgba(15,23,42,.1),0 8px 10px -6px rgba(15,23,42,.08);
  --transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease,opacity .6s ease;
}

@media(min-width:640px){:root{--px:1.5rem}}
@media(min-width:1024px){:root{--px:2rem}}

body.site-body{
  font-family:var(--font);
  font-size:1rem;
  line-height:1.6;
  color:var(--slate-900);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body.nav-open{overflow:hidden}

.site-wrapper{display:flex;flex-direction:column;min-height:100vh}
.site-main{flex:1 1 auto}

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--px);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.625rem 1.25rem;
  font-size:.875rem;
  font-weight:600;
  line-height:1.25;
  border:1px solid transparent;
  border-radius:var(--radius-md);
  cursor:pointer;
  transition:var(--transition);
  text-align:center;
  white-space:nowrap;
}
.btn svg{flex-shrink:0;width:1.25rem;height:1.25rem;transition:transform .2s ease}
.btn--primary{
  background:var(--red-cta);
  color:var(--white);
  box-shadow:var(--shadow-sm);
}
.btn--primary:hover{background:var(--red-hover)}
.btn--primary.btn--lg:hover svg{transform:translateX(.25rem)}
.btn--dark{background:var(--slate-900);color:var(--white)}
.btn--dark:hover{background:var(--slate-800)}
.btn--ghost{
  background:rgba(255,255,255,.1);
  color:var(--white);
  border-color:rgba(255,255,255,.1);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.btn--ghost:hover{background:rgba(255,255,255,.2)}
.btn--lg{padding:1rem 2rem;font-size:1.125rem;font-weight:600}
.btn--block{width:100%}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  height:var(--header-h);
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--slate-100);
  box-shadow:var(--shadow-sm);
}
.site-header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:var(--header-h);
}
.site-header__logo{display:flex;align-items:center;flex-shrink:0}

.site-nav--desktop{display:none;align-items:center;gap:2rem}
@media(min-width:768px){.site-nav--desktop{display:flex}}
.site-nav__list{display:flex;align-items:center;gap:2rem}
.site-nav__link{
  font-size:.875rem;
  font-weight:500;
  color:var(--slate-600);
  transition:var(--transition);
}
.site-nav__link:hover{color:var(--red-cta)}
.site-nav__cta{margin-left:.5rem;padding:.625rem 1.25rem}

.site-nav__toggle{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:.5rem;
  background:none;
  border:none;
  color:var(--slate-600);
  cursor:pointer;
  transition:var(--transition);
}
.site-nav__toggle:hover{color:var(--slate-900)}
@media(min-width:768px){.site-nav__toggle{display:none}}
.site-nav__toggle-icon{display:flex;align-items:center;justify-content:center}
.site-nav__toggle-icon--close{display:none}
.site-nav__toggle[aria-expanded="true"] .site-nav__toggle-icon--open{display:none}
.site-nav__toggle[aria-expanded="true"] .site-nav__toggle-icon--close{display:flex}

.site-nav--mobile{
  background:var(--white);
  border-bottom:1px solid var(--slate-100);
  overflow:hidden;
}
.site-nav--mobile[hidden]{display:none}
.site-nav--mobile__inner{padding-block:1.5rem;display:flex;flex-direction:column;gap:1rem}
.site-nav__list--mobile{flex-direction:column;align-items:stretch;gap:1rem}
.site-nav__list--mobile .site-nav__link{font-size:1rem;color:var(--slate-700)}
.site-nav--mobile .site-nav__cta{margin-left:0;margin-top:.5rem}

.site-logo{display:flex;align-items:center;gap:.625rem}
.site-logo--image{height:2.5rem;width:auto;object-fit:contain}
.site-logo--css{transition:transform .2s ease}
.site-logo--css:hover .site-logo__screen{transform:scale(1.05)}
.site-logo__tv{position:relative;flex-shrink:0}
.site-logo__screen{
  position:relative;
  width:3rem;
  height:2.25rem;
  background:var(--red);
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-md);
  border:2px solid var(--slate-900);
  transition:transform .2s ease;
}
.site-logo--light .site-logo__screen{border-color:var(--white)}
.site-logo__grid{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:repeat(8,1fr);
  grid-template-rows:repeat(5,1fr);
  gap:2px;
  padding:3px;
}
.site-logo__grid span{background:rgba(0,0,0,.75);border-radius:1px}
.site-logo__itv{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:9px;
  font-weight:900;
  letter-spacing:-.05em;
  color:#000;
  opacity:.4;
}
.site-logo__stand{
  position:absolute;
  bottom:-.25rem;
  left:50%;
  transform:translateX(-50%);
  width:1rem;
  height:.375rem;
  border-radius:var(--radius-md);
  background:var(--slate-900);
}
.site-logo--light .site-logo__stand,.site-logo--light .site-logo__base{background:var(--white)}
.site-logo__base{
  position:absolute;
  bottom:-.5rem;
  left:50%;
  transform:translateX(-50%);
  width:1.5rem;
  height:2px;
  border-radius:9999px;
  background:var(--slate-900);
}
.site-logo__text{display:flex;flex-direction:column;line-height:1;justify-content:center}
.site-logo__name{font-size:1.25rem;font-weight:900;letter-spacing:-.025em;color:var(--slate-900)}
.site-logo--light .site-logo__name{color:var(--white)}
.site-logo__tag{
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--slate-500);
}
.site-logo--light .site-logo__tag{color:var(--slate-400)}
@media(min-width:768px){
  .site-logo__screen{width:3.5rem;height:2.5rem}
  .site-logo__itv{font-size:10px}
  .site-logo__name{font-size:1.5rem}
  .site-logo__tag{font-size:.75rem}
}

.hero{position:relative;overflow:hidden}
.hero--home{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:600px;
  height:90vh;
  background:var(--slate-900);
  color:var(--white);
  text-align:center;
}
.hero__background{position:absolute;inset:0;z-index:0}
.hero__bg-image{width:100%;height:100%;object-fit:cover;opacity:.5}
.hero__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,var(--warm-dark),rgba(15,23,42,.7),rgba(31,11,8,.5));
}
.hero__content{position:relative;z-index:1;width:100%}
.hero__inner{max-width:48rem;margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:2rem}
.hero__badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.25rem .75rem;
  border-radius:9999px;
  background:rgba(230,0,0,.4);
  border:1px solid rgba(230,0,0,.6);
  color:var(--red-lighter);
  font-size:.875rem;
  font-weight:500;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.hero__badge-dot{position:relative;display:flex;width:.5rem;height:.5rem}
.hero__badge-dot::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:9999px;
  background:var(--red-light);
  opacity:.75;
  animation:ping 1.5s cubic-bezier(0,0,.2,1) infinite;
}
.hero__badge-dot::after{
  content:"";
  position:relative;
  display:block;
  width:.5rem;
  height:.5rem;
  border-radius:9999px;
  background:var(--red-light);
}
@keyframes ping{75%,100%{transform:scale(2);opacity:0}}
.hero__title{
  font-size:2.25rem;
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.025em;
  color:var(--white);
}
.hero__title-highlight{
  display:inline;
  background:linear-gradient(to right,var(--red-light),var(--red-lighter));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero__subtitle{
  font-size:1.125rem;
  line-height:1.625;
  color:var(--slate-200);
  max-width:42rem;
  margin-inline:auto;
}
.hero__actions{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1rem;
  padding-top:1rem;
  width:100%;
}
.hero__actions .btn{width:100%}
.hero__actions .btn--primary{box-shadow:0 10px 15px -3px rgba(230,0,0,.3)}
@media(min-width:640px){
  .hero__actions{flex-direction:row;width:auto}
  .hero__actions .btn{width:auto}
}
@media(min-width:768px){.hero__title{font-size:3.75rem}}
@media(min-width:1024px){.hero__title{font-size:4.5rem}.hero__subtitle{font-size:1.25rem}}

.hero--page{
  position:relative;
  background:var(--slate-900);
  color:var(--white);
  text-align:center;
  padding-block:5rem;
}
.hero__page-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom right,var(--slate-900),var(--slate-800),var(--slate-900));
  opacity:.9;
}
.hero__page-content{position:relative;z-index:1}
.hero__page-title{
  font-size:2.25rem;
  font-weight:700;
  line-height:1.15;
  margin-bottom:1.5rem;
}
.hero__page-subtitle{font-size:1.25rem;color:var(--slate-300);max-width:48rem;margin-inline:auto}
@media(min-width:768px){
  .hero--page{padding-block:8rem}
  .hero__page-title{font-size:3rem}
}
@media(min-width:1024px){.hero__page-title{font-size:3.75rem}}

.section{padding-block:var(--section-py)}
.section--alt{background:var(--off-white)}
.section--services{background:var(--white)}
.section--services.section--alt{background:var(--off-white)}
.section--about{background:var(--white);overflow:hidden}
.section--projects{background:var(--white)}
.section--testimonials{background:var(--off-white)}
.section--contact-dark{background:var(--slate-900);color:var(--white)}
.section--contact-light{background:var(--white);color:var(--slate-900)}
.section--cta{
  padding-block:var(--cta-py);
  background:var(--slate-900);
  color:var(--white);
  text-align:center;
}
.section--cta__inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1.5rem;
  max-width:56rem;
}
.section--cta__title{font-size:1.875rem;font-weight:700;line-height:1.2}
.section--cta__text{font-size:1.125rem;color:var(--slate-300);max-width:42rem}
@media(min-width:768px){.section--cta__title{font-size:2.25rem}}

.eyebrow{
  font-size:.875rem;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:.75rem;
}
.eyebrow--light{color:var(--red-light)}
.section__header{margin-bottom:4rem}
.section__header--center{text-align:center;max-width:48rem;margin-inline:auto;margin-bottom:4rem}
.section__title{
  font-size:1.875rem;
  font-weight:700;
  line-height:1.2;
  color:var(--slate-900);
  margin-bottom:1.5rem;
}
.section__title--light{color:var(--white)}
.section__intro{font-size:1.125rem;color:var(--slate-600);line-height:1.625}
.section__intro--light{color:var(--slate-300)}
@media(min-width:768px){.section__title{font-size:2.25rem}}

.grid{display:grid;gap:2rem}
.grid--services{grid-template-columns:1fr}
@media(min-width:768px){.grid--services{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.grid--services{grid-template-columns:repeat(3,1fr)}}
.grid--projects{grid-template-columns:1fr;gap:1.5rem}
@media(min-width:640px){.grid--projects{grid-template-columns:repeat(2,1fr)}}
.grid--testimonials{grid-template-columns:1fr}
@media(min-width:768px){.grid--testimonials{grid-template-columns:repeat(2,1fr)}}
.grid--stats{grid-template-columns:1fr;margin-top:4rem}
@media(min-width:768px){.grid--stats{grid-template-columns:repeat(3,1fr)}}

.card-service{
  background:var(--white);
  border:1px solid var(--slate-100);
  border-radius:var(--radius-2xl);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
  transition:var(--transition);
}
.card-service:hover{box-shadow:var(--shadow-md)}
.card-service--compact{padding:2rem}
.card-service--compact .card-service__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:4rem;
  height:4rem;
  margin-bottom:1.5rem;
  border-radius:var(--radius-xl);
  background:rgba(255,0,0,.05);
  transition:transform .2s ease;
}
.card-service--compact:hover .card-service__icon{transform:scale(1.1)}
.card-service--compact .card-service__icon svg{width:2rem;height:2rem;color:var(--red)}
.card-service--full{border-radius:var(--radius-2xl)}
.card-service--full:hover{box-shadow:var(--shadow-xl)}
.card-service__media{position:relative;height:12rem;overflow:hidden;background:var(--slate-100)}
.card-service__image{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card-service--full:hover .card-service__image{transform:scale(1.1)}
.card-service__media-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.6),transparent);
}
.card-service__icon-wrap{
  position:absolute;
  bottom:1rem;
  left:1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:.75rem;
  border-radius:var(--radius-xl);
  background:rgba(255,255,255,.95);
}
.card-service__icon-wrap svg{width:2.5rem;height:2.5rem;color:var(--red)}
.card-service__body{padding:1.5rem}
.card-service--compact .card-service__body{padding:0}
.card-service__title{
  font-size:1.25rem;
  font-weight:700;
  color:var(--slate-900);
  margin-bottom:.75rem;
}
.card-service__text{color:var(--slate-600);line-height:1.625}

.card-project{
  background:var(--white);
  border:1px solid var(--slate-200);
  border-radius:var(--radius-xl);
  overflow:hidden;
  transition:var(--transition);
}
.card-project:hover{box-shadow:var(--shadow-xl)}
.card-project__media{position:relative;height:13rem;overflow:hidden;background:var(--slate-100)}
.card-project__image{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card-project:hover .card-project__image{transform:scale(1.05)}
.card-project__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(15,23,42,.5),transparent);
}
.card-project__location{
  position:absolute;
  bottom:.75rem;
  left:1rem;
  display:flex;
  align-items:center;
  gap:.375rem;
  color:var(--white);
  font-size:.875rem;
  font-weight:500;
  text-shadow:0 1px 2px rgba(0,0,0,.4);
}
.card-project__location svg{width:.875rem;height:.875rem;color:var(--red-cta);flex-shrink:0}
.card-project__body{padding:1.5rem}
.card-project__title{
  font-size:1.25rem;
  font-weight:700;
  color:var(--slate-900);
  margin-bottom:.75rem;
  transition:color .2s ease;
}
.card-project:hover .card-project__title{color:var(--red-cta)}
.card-project__text{font-size:.875rem;color:var(--slate-600);line-height:1.625}

.card-testimonial{
  position:relative;
  background:var(--white);
  padding:2rem;
  border:1px solid var(--slate-100);
  border-radius:var(--radius-2xl);
  box-shadow:var(--shadow-sm);
  transition:var(--transition);
}
.card-testimonial:hover{box-shadow:var(--shadow-lg)}
.card-testimonial__quote-icon{
  position:absolute;
  top:1.5rem;
  right:1.5rem;
  color:rgba(255,0,0,.1);
  pointer-events:none;
}
.card-testimonial__quote-icon svg{width:3rem;height:3rem}
.card-testimonial__header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}
.card-testimonial__avatar{
  width:4rem;
  height:4rem;
  border-radius:9999px;
  object-fit:cover;
  border:2px solid rgba(255,0,0,.2);
  flex-shrink:0;
}
.card-testimonial__name{font-size:1.125rem;font-weight:700;color:var(--slate-900)}
.card-testimonial__role{font-size:.875rem;color:var(--slate-600)}
.card-testimonial__company{font-size:.875rem;font-weight:500;color:var(--red)}
.card-testimonial__stars{display:flex;gap:.25rem;margin-bottom:1rem}
.card-testimonial__stars svg{width:1.25rem;height:1.25rem;fill:var(--red);color:var(--red)}
.card-testimonial__text{color:var(--slate-600);line-height:1.625;font-style:italic}

.stat-card{
  background:var(--white);
  padding:2rem;
  border:1px solid var(--slate-100);
  border-radius:var(--radius-xl);
  text-align:center;
}
.stat-card__number{font-size:2.25rem;font-weight:700;color:var(--red);margin-bottom:.5rem}
.stat-card__label{font-size:1rem;font-weight:500;color:var(--slate-600)}

.about-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:4rem;
  align-items:center;
}
@media(min-width:1024px){.about-grid{grid-template-columns:1fr 1fr}}
.about-grid__text{font-size:1.125rem;color:var(--slate-600);line-height:1.625;margin-bottom:1.5rem}
.about-grid__list{display:flex;flex-direction:column;gap:1rem;margin-bottom:2.5rem}
.about-grid__list li{
  display:flex;
  align-items:center;
  gap:.75rem;
  font-weight:500;
  color:var(--slate-700);
}
.about-grid__check{display:flex;flex-shrink:0;color:var(--red)}
.about-grid__check svg{width:1.5rem;height:1.5rem}
.about-grid__media{position:relative}
.about-grid__images{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.about-grid__img{
  width:100%;
  height:16rem;
  object-fit:cover;
  border-radius:var(--radius-2xl);
  box-shadow:var(--shadow-lg);
}
.about-grid__img--offset{margin-top:2rem}
.about-grid__featured{
  width:100%;
  height:31.25rem;
  object-fit:cover;
  border-radius:var(--radius-2xl);
  box-shadow:var(--shadow-xl);
}
.about-grid__media::before{
  content:"";
  position:absolute;
  z-index:-1;
  bottom:-1.5rem;
  right:-1.5rem;
  width:12rem;
  height:12rem;
  border-radius:9999px;
  background:rgba(255,0,0,.1);
  filter:blur(48px);
}
.about-grid__images::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-1.5rem;
  left:-1.5rem;
  width:12rem;
  height:12rem;
  border-radius:9999px;
  background:rgba(255,51,51,.1);
  filter:blur(48px);
}

.contact-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:3rem;
}
@media(min-width:1024px){
  .section--contact-dark .contact-grid{grid-template-columns:1fr 2fr}
  .section--contact-light .contact-grid{grid-template-columns:1fr 1fr}
}
.section--contact-dark .section__header{margin-bottom:4rem}
.section--contact-light .contact-grid__info .section__title{margin-bottom:1.5rem}
.section--contact-light .contact-grid__info .section__intro{margin-bottom:2rem}
.contact-grid__info{display:flex;flex-direction:column;gap:2rem}
.contact-item{display:flex;align-items:flex-start;gap:1rem}
.contact-item__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:.75rem;
  border-radius:var(--radius-xl);
  flex-shrink:0;
}
.section--contact-dark .contact-item__icon{
  background:rgba(230,0,0,.5);
  border:1px solid var(--red-cta);
}
.section--contact-dark .contact-item__icon svg{color:var(--red-lighter)}
.section--contact-light .contact-item__icon{background:rgba(255,0,0,.1)}
.section--contact-light .contact-item__icon svg{color:var(--red)}
.contact-item h3{font-size:1.125rem;font-weight:600;margin-bottom:.25rem}
.section--contact-dark .contact-item h3{color:var(--white)}
.section--contact-light .contact-item h3{color:var(--slate-900)}
.contact-item p{font-size:.875rem;line-height:1.5}
.section--contact-dark .contact-item p{color:var(--slate-400)}
.section--contact-light .contact-item p{color:var(--slate-600)}
.contact-item a{font-weight:500;transition:var(--transition)}
.section--contact-dark .contact-item a{color:var(--red-lighter)}
.section--contact-dark .contact-item a:hover{color:var(--red-light)}
.section--contact-light .contact-item a{color:var(--slate-600)}
.section--contact-light .contact-item a:hover{color:var(--red)}
.contact-map{
  height:20rem;
  border-radius:var(--radius-2xl);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  border:1px solid var(--slate-200);
}
.contact-map iframe{width:100%;height:100%;border:0;display:block}

.gravity-form-wrap{padding:2rem;border-radius:var(--radius-2xl)}
.gravity-form-wrap--dark{
  background:var(--slate-800);
  border:1px solid var(--slate-700);
  box-shadow:var(--shadow-xl);
}
.gravity-form-wrap--light{
  background:var(--off-white);
  border:1px solid var(--slate-200);
  box-shadow:var(--shadow-sm);
}
.gravity-form-wrap__placeholder{font-size:.875rem;color:var(--slate-500);text-align:center;padding:2rem}
.gravity-form-wrap .gform_wrapper{margin:0}
.gravity-form-wrap .gform_heading{display:none}
.gravity-form-wrap .gform_fields{display:grid;gap:1.5rem}
.gravity-form-wrap .gfield{margin:0;padding:0}
.gravity-form-wrap .gfield_label,.gravity-form-wrap label{
  display:block;
  font-size:.875rem;
  font-weight:500;
  margin-bottom:.5rem;
}
.gravity-form-wrap--dark .gfield_label,.gravity-form-wrap--dark label{color:var(--slate-300)}
.gravity-form-wrap--light .gfield_label,.gravity-form-wrap--light label{color:var(--slate-700)}
.gravity-form-wrap input[type="text"],
.gravity-form-wrap input[type="email"],
.gravity-form-wrap input[type="tel"],
.gravity-form-wrap input[type="url"],
.gravity-form-wrap input[type="number"],
.gravity-form-wrap select,
.gravity-form-wrap textarea{
  width:100%;
  padding:.75rem 1rem;
  border-radius:var(--radius-md);
  border:1px solid;
  font-size:1rem;
  line-height:1.5;
  transition:var(--transition);
  appearance:none;
  -webkit-appearance:none;
}
.gravity-form-wrap--dark input[type="text"],
.gravity-form-wrap--dark input[type="email"],
.gravity-form-wrap--dark input[type="tel"],
.gravity-form-wrap--dark input[type="url"],
.gravity-form-wrap--dark input[type="number"],
.gravity-form-wrap--dark select,
.gravity-form-wrap--dark textarea{
  background:rgba(15,23,42,.5);
  border-color:var(--slate-700);
  color:var(--white);
}
.gravity-form-wrap--dark input::placeholder,.gravity-form-wrap--dark textarea::placeholder{color:var(--slate-500)}
.gravity-form-wrap--light input[type="text"],
.gravity-form-wrap--light input[type="email"],
.gravity-form-wrap--light input[type="tel"],
.gravity-form-wrap--light input[type="url"],
.gravity-form-wrap--light input[type="number"],
.gravity-form-wrap--light select,
.gravity-form-wrap--light textarea{
  background:var(--white);
  border-color:var(--slate-300);
  color:var(--slate-900);
}
.gravity-form-wrap input:focus,
.gravity-form-wrap select:focus,
.gravity-form-wrap textarea:focus{
  outline:none;
  box-shadow:0 0 0 2px var(--red-light);
  border-color:transparent;
}
.gravity-form-wrap textarea{resize:vertical;min-height:6rem}
.gravity-form-wrap .gform_footer{margin-top:1.5rem;padding:0}
.gravity-form-wrap .gform_button,.gravity-form-wrap input[type="submit"]{
  width:100%;
  padding:1rem 1.5rem;
  background:var(--red-cta);
  color:var(--white);
  font-weight:600;
  font-size:1rem;
  border:none;
  border-radius:var(--radius-md);
  cursor:pointer;
  transition:var(--transition);
}
.gravity-form-wrap .gform_button:hover,.gravity-form-wrap input[type="submit"]:hover{background:var(--red-hover)}
.gravity-form-wrap--light .gform_button,.gravity-form-wrap--light input[type="submit"]{box-shadow:var(--shadow-sm)}
.gravity-form-wrap .gfield--width-half{grid-column:span 1}
@media(min-width:640px){
  .gravity-form-wrap .gform_fields:has(.gfield--width-half){grid-template-columns:repeat(2,1fr)}
}
.gravity-form-wrap .validation_message,.gravity-form-wrap .gfield_error .validation_message{color:var(--red-light);font-size:.875rem;margin-top:.25rem}
.gravity-form-wrap .gfield_description{font-size:.875rem;color:var(--slate-500);margin-top:.25rem}

.project-group{margin-bottom:5rem}
.project-group:last-child{margin-bottom:0}
.project-group__header{
  display:flex;
  align-items:center;
  gap:.75rem;
  margin-bottom:2rem;
}
.project-group__header svg{color:var(--red-cta);flex-shrink:0}
.project-group__header h2{font-size:1.5rem;font-weight:700;color:var(--slate-900)}
@media(min-width:768px){.project-group__header h2{font-size:1.875rem}}

.page-simple{padding-block:var(--section-py)}
.page-simple__inner{max-width:48rem}
.page-simple__header{margin-bottom:2rem;text-align:center}
.page-simple__title{
  font-size:2rem;
  font-weight:700;
  color:var(--slate-900);
  line-height:1.2;
  margin-bottom:1.5rem;
}
.page-simple__image{
  width:100%;
  max-height:24rem;
  object-fit:cover;
  border-radius:var(--radius-2xl);
  margin-bottom:1.5rem;
  box-shadow:var(--shadow-lg);
}
@media(min-width:768px){.page-simple__title{font-size:2.5rem}}

.page-default{padding-block:var(--section-py)}
.entry__title{
  font-size:2rem;
  font-weight:700;
  margin-bottom:1.5rem;
  color:var(--slate-900);
}

.entry-content{font-size:1.0625rem;line-height:1.75;color:var(--slate-700)}
.entry-content>*+*{margin-top:1.25em}
.entry-content h1{font-size:2.25rem;font-weight:700;color:var(--slate-900);line-height:1.2;margin-top:2em;margin-bottom:.5em}
.entry-content h2{font-size:1.875rem;font-weight:700;color:var(--slate-900);line-height:1.25;margin-top:1.75em;margin-bottom:.5em}
.entry-content h3{font-size:1.5rem;font-weight:600;color:var(--slate-900);line-height:1.3;margin-top:1.5em;margin-bottom:.5em}
.entry-content h4{font-size:1.25rem;font-weight:600;color:var(--slate-900);line-height:1.35;margin-top:1.25em;margin-bottom:.5em}
.entry-content p{margin-bottom:1em}
.entry-content a{color:var(--red-cta);text-decoration:underline;text-underline-offset:2px;transition:var(--transition)}
.entry-content a:hover{color:var(--red-hover)}
.entry-content ul,.entry-content ol{padding-left:1.5em;margin-bottom:1em}
.entry-content ul{list-style:disc}
.entry-content ol{list-style:decimal}
.entry-content li{margin-bottom:.375em}
.entry-content li::marker{color:var(--red)}
.entry-content img{border-radius:var(--radius-xl);margin-block:1.5em;box-shadow:var(--shadow-md)}
.entry-content blockquote{
  border-left:4px solid var(--red);
  padding-left:1.25rem;
  margin-block:1.5em;
  font-style:italic;
  color:var(--slate-600);
}
.entry-content table{width:100%;margin-block:1.5em;font-size:.9375rem;border:1px solid var(--slate-200);border-radius:var(--radius-md);overflow:hidden}
.entry-content th,.entry-content td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--slate-200)}
.entry-content th{background:var(--off-white);font-weight:600;color:var(--slate-900)}
.entry-content tr:last-child td{border-bottom:none}
.entry-content strong{font-weight:600;color:var(--slate-900)}

.site-footer{
  background:var(--slate-950);
  color:var(--slate-300);
  padding-block:3rem;
  border-top:1px solid var(--slate-900);
}
@media(min-width:1024px){.site-footer{padding-block:4rem}}
.site-footer__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:2.5rem;
}
@media(min-width:768px){.site-footer__grid{grid-template-columns:repeat(4,1fr);gap:2rem}}
.site-footer__brand{max-width:20rem}
.site-footer__logo{display:inline-flex;margin-bottom:1.5rem}
.site-footer__tagline{font-size:.875rem;color:var(--slate-400);margin-bottom:1.5rem;line-height:1.625}
.site-footer__certs{display:flex;flex-direction:column;gap:.5rem;font-size:.75rem;color:var(--slate-500)}
.site-footer__heading{
  font-size:1rem;
  font-weight:600;
  color:var(--white);
  margin-bottom:1rem;
}
.site-footer__links{display:flex;flex-direction:column;gap:.75rem;font-size:.875rem}
.site-footer__link{color:var(--slate-300);transition:var(--transition)}
.site-footer__link:hover{color:var(--red-light)}
.site-footer__contact{display:flex;flex-direction:column;gap:1rem;font-size:.875rem}
.site-footer__contact li{display:flex;align-items:flex-start;gap:.75rem;line-height:1.5}
.site-footer__icon{display:flex;flex-shrink:0;color:var(--red-light)}
.site-footer__icon svg{width:1.25rem;height:1.25rem}
.site-footer__bar{
  margin-top:3rem;
  padding-top:2rem;
  border-top:1px solid var(--slate-800);
}
.site-footer__bar-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1rem;
  font-size:.875rem;
  color:var(--slate-500);
  text-align:center;
}
@media(min-width:768px){
  .site-footer__bar-inner{flex-direction:row;justify-content:space-between;text-align:left}
}

.reveal{
  opacity:0;
  transform:translateY(1.5rem);
  transition:opacity .6s ease,transform .6s ease;
  transition-delay:var(--reveal-delay,0s);
}
.reveal.is-visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero__badge-dot::before{animation:none}
}
