
/* ============================================================
   Perfect Theme v3.4.0
   Premium water-service visual system
   ============================================================ */
:root{
  --perfect-primary: #1F74E8;
  --perfect-primary-strong: #0F4FBF;
  --perfect-accent: #C4122F;
  --perfect-surface: #FFFFFF;
  --perfect-surface-soft: #F4F9FF;
  --perfect-text: #16304B;
  --perfect-text-soft: #5B6472;
  --perfect-border: rgba(31,116,232,.14);
  --perfect-ring: rgba(31,116,232,.18);
  --perfect-button-text: #FFFFFF;
  --perfect-button-radius: 999px;
  --perfect-header-shadow: 0 20px 60px rgba(15,79,191,.12);
  --perfect-card-shadow: 0 22px 60px rgba(16,38,63,.08);
  --perfect-glow-shadow: 0 22px 55px rgba(31,116,232,.22);
  --pf-header-shell-opacity: .06;
  --pf-header-shell-opacity-scrolled: .96;
  --pf-nav-fill: 0;
  --pf-nav-hover-fill: .08;
  --pf-header-blur: 14px;
  --pf-header-radius: 22px;
  --pf-header-inner-max: 1140px;
  --pf-logo-max-width: 260px;
  --pf-logo-max-height: 72px;
  --pf-badge-max-width: 210px;
  --pf-badge-max-height: 54px;
  --pf-brand-basis: min(calc(var(--pf-logo-max-width) + 28px), 42vw);
  --pf-badge-wrap-width: min(calc(var(--pf-badge-max-width) + 20px), 34vw);
}

body{
  color: var(--perfect-text);
  background:
    radial-gradient(900px 420px at 8% -5%, rgba(88,175,255,.14), transparent 62%),
    radial-gradient(700px 340px at 100% 12%, rgba(196,18,47,.06), transparent 52%),
    linear-gradient(180deg, #F8FBFF 0%, #FFFFFF 34%, #F7FBFF 100%);
}

.wp-site-blocks{
  background: transparent;
}

.idp-header-shell{
  position: relative;
  z-index: 1000;
  padding-top: .35rem;
  padding-bottom: 0;
  background: transparent;
  border-bottom: 0;
  transition: padding .18s ease, transform .18s ease;
}

body.pf-header-overlay-home.home .idp-header-shell,
body.pf-header-overlay-home.page-template-front-page .idp-header-shell,
body.pf-header-overlay-home.blog .idp-header-shell{
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
}

body.pf-header-sticky:not(.home):not(.page-template-front-page) .idp-header-shell,
body.pf-header-sticky:not(.blog):not(.home) .idp-header-shell{
  position: sticky;
  top: 0;
}

body.pf-header-overlay-home.pf-header-sticky.home .idp-header-shell.is-scrolled,
body.pf-header-overlay-home.pf-header-sticky.page-template-front-page .idp-header-shell.is-scrolled,
body.pf-header-overlay-home.pf-header-sticky.blog .idp-header-shell.is-scrolled{
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  animation: pf-header-slide .18s ease both;
}

body.admin-bar.pf-header-sticky:not(.home):not(.page-template-front-page) .idp-header-shell,
body.admin-bar.pf-header-overlay-home.pf-header-sticky.home .idp-header-shell.is-scrolled,
body.admin-bar.pf-header-overlay-home.pf-header-sticky.page-template-front-page .idp-header-shell.is-scrolled,
body.admin-bar.pf-header-overlay-home.pf-header-sticky.blog .idp-header-shell.is-scrolled{
  top: 32px;
}

@media (max-width: 782px){
  body.admin-bar.pf-header-sticky:not(.home):not(.page-template-front-page) .idp-header-shell,
  body.admin-bar.pf-header-overlay-home.pf-header-sticky.home .idp-header-shell.is-scrolled,
  body.admin-bar.pf-header-overlay-home.pf-header-sticky.page-template-front-page .idp-header-shell.is-scrolled,
  body.admin-bar.pf-header-overlay-home.pf-header-sticky.blog .idp-header-shell.is-scrolled{
    top: 46px;
  }
}

@keyframes pf-header-slide{
  from{ transform: translateY(-12px); opacity:0; }
  to{ transform: translateY(0); opacity:1; }
}

.idp-header-shell .idp-header-bar.alignwide,
.idp-header-shell .idp-boxed-bar.alignwide{
  width:min(calc(100% - 24px), var(--pf-header-inner-max));
  max-width:min(calc(100% - 24px), var(--pf-header-inner-max));
  margin-left:auto;
  margin-right:auto;
}

body.idpbd-header-full .idp-header-shell .idp-header-bar.alignwide,
body.idpbd-header-full .idp-header-shell .idp-boxed-bar.alignwide{
  width:calc(100% - 24px);
  max-width:calc(100% - 24px);
}

.idp-boxed-bar,
.idp-hero-card{
  background: rgba(255,255,255,var(--pf-header-shell-opacity));
  border: 1px solid rgba(255,255,255,.34);
  box-shadow:
    0 10px 22px rgba(15,79,191,.04),
    0 20px 48px rgba(16,38,63,.03);
  backdrop-filter: blur(var(--pf-header-blur));
  -webkit-backdrop-filter: blur(var(--pf-header-blur));
}

.idp-header-bar{
  position: relative;
  overflow: visible;
  padding: .38rem .9rem;
  border-radius: 10px;
  min-height: 68px;
  gap: .85rem;
}

.idp-header-shell.is-scrolled .idp-header-bar{
  background: rgba(255,255,255,var(--pf-header-shell-opacity-scrolled));
  border-color: rgba(216,230,248,.9);
  box-shadow: 0 14px 30px rgba(15,79,191,.08), 0 22px 52px rgba(16,38,63,.06);
}

.idp-header-bar::before,
.idp-header-bar::after{display:none; content:none;}

.idp-header-brand{
  flex: 0 0 var(--pf-brand-basis);
  min-width: min(var(--pf-brand-basis), 42vw);
  justify-content: flex-start;
}

.idp-header-brand .wp-block-site-logo{
  margin: 0;
  width:min(var(--pf-logo-max-width), 100%) !important;
  max-width:100% !important;
  filter: drop-shadow(0 10px 24px rgba(15,79,191,.08));
}

.idp-header-brand .custom-logo,
.idp-header-brand img,
.idp-header-brand .custom-logo-link img{
  width: auto;
  max-width: var(--pf-logo-max-width);
  max-height: var(--pf-logo-max-height);
  height: auto;
}
.idp-header-brand .wp-block-site-title,
.idp-header-brand .wp-block-site-title a{
  color: var(--perfect-text);
  text-decoration: none;
  letter-spacing: -.02em;
}

.idp-header-center{
  flex: 1 1 auto;
  min-width: 0;
  justify-content: center;
}

.idp-header-center .wp-block-navigation__container{
  justify-content: center;
  flex-wrap: nowrap;
  white-space: nowrap;
  gap: clamp(.25rem, .9vw, .85rem);
}

.idp-header-badge-wrap{
  flex: 0 0 var(--pf-badge-wrap-width);
  min-width: min(var(--pf-badge-wrap-width), 34vw);
  justify-content: flex-end;
}

.idp-header-badge{
  width: min(var(--pf-badge-max-width), 100%);
  height: var(--pf-badge-max-height);
  min-height: var(--pf-badge-max-height);
  background: url('../images/pf-veteran-badge-crop.png') right center / contain no-repeat;
  opacity: 1;
  transition: opacity .18s ease, transform .18s ease;
}

.wp-block-navigation.is-style-perfect-float .wp-block-navigation-item__content,
.idp-nav .wp-block-navigation-item__content{
  color: var(--perfect-text);
  background: rgba(255,255,255,var(--pf-nav-fill));
  border: 1px solid transparent;
  border-radius: 999px;
  box-shadow: none;
  font-weight: 560;
  font-size: 14px;
  letter-spacing: .01em;
  line-height: 1.15;
  padding: .42rem .62rem;
  transition: color .16s ease, background-color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.wp-block-navigation.is-style-perfect-float .wp-block-navigation-item__content:hover,
.idp-nav .wp-block-navigation-item__content:hover{
  color: var(--perfect-primary-strong);
  background: rgba(255,255,255,var(--pf-nav-hover-fill));
  border-color: rgba(31,116,232,.08);
  box-shadow: 0 8px 18px rgba(15,79,191,.04);
  transform: translateY(-1px);
}

.idp-header-center .wp-block-navigation__container > .wp-block-navigation-item{
  position: relative;
  margin-right: 0;
}

.idp-header-center .wp-block-navigation__container > .wp-block-navigation-item::after{
  display: none !important;
  content: none !important;
}

.idp-header-center .wp-block-navigation__container > .wp-block-navigation-item:last-child{
  margin-right: 0;
}

:where(.wp-block-navigation-item.current-menu-item > a,
       .wp-block-navigation-item.current_page_item > a,
       .idpbd-classic-menu .current-menu-item > a,
       .idpbd-classic-menu .current_page_item > a){
  background: rgba(255,255,255,max(var(--pf-nav-hover-fill), .06));
  color: var(--perfect-primary-strong);
  border-color: rgba(31,116,232,.10);
  box-shadow: inset 0 -2px 0 rgba(31,116,232,.24);
}

body.pf-header-overlay-home.home .idp-header-shell:not(.is-scrolled) .idp-header-badge,
body.pf-header-overlay-home.page-template-front-page .idp-header-shell:not(.is-scrolled) .idp-header-badge,
body.pf-header-overlay-home.blog .idp-header-shell:not(.is-scrolled) .idp-header-badge{
  opacity: .96;
}

.idp-header-shell.is-scrolled .idp-header-badge,
body:not(.pf-header-overlay-home) .idp-header-badge{
  opacity: 1;
}

@media (max-width: 1080px){
  .idp-header-bar{
    padding: .38rem .75rem;
    min-height: 62px;
  }

  .idp-header-brand{
    flex-basis: 180px;
    min-width: 180px;
  }

  .idp-header-badge-wrap{
    flex-basis: 150px;
    min-width: 150px;
  }

  .idp-header-center .wp-block-navigation__container > .wp-block-navigation-item::after{
    display: none !important;
  }
}

@media (max-width: 960px){
  .idp-header-bar{
    padding: .35rem .7rem;
    min-height: 58px;
  }

  .idp-header-brand{
    flex: 1 1 auto;
    min-width: 0;
  }

  .idp-header-brand .custom-logo,
  .idp-header-brand img{
    max-height: 48px;
  }

  .idp-header-center{
    flex: 0 0 auto;
    justify-content: flex-end;
  }

  .idp-header-badge-wrap,
  .idp-header-badge,
  .idp-header-shell .idp-header-badge-wrap .wp-block-image,
  .idp-header-shell .idp-header-badge-wrap img,
  .idp-header-shell .idp-header-bar > .idp-header-badge-wrap,
  .idp-header-shell .idp-header-bar > .wp-block-group.idp-header-badge-wrap{
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    flex: 0 0 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
  }

  .wp-block-navigation.is-style-perfect-float .wp-block-navigation-item__content,
  .idp-nav .wp-block-navigation-item__content{
    padding: .55rem .75rem;
  }
}


.wp-block-button .wp-block-button__link,
.wp-element-button,
button,
input[type="submit"],
input[type="button"],
input[type="reset"]{
  position: relative;
  overflow: hidden;
  border-radius: var(--perfect-button-radius);
  border: 1px solid rgba(255,255,255,.18);
  background: linear-gradient(135deg, var(--perfect-primary-strong) 0%, var(--perfect-primary) 62%, #58AFFF 100%);
  color: var(--perfect-button-text);
  box-shadow: 0 16px 36px rgba(31,116,232,.22);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, border-color .18s ease;
}
.wp-block-button .wp-block-button__link::before,
.wp-element-button::before,
button::before,
input[type="submit"]::before,
input[type="button"]::before,
input[type="reset"]::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.08) 34%, rgba(255,255,255,.42) 49%, rgba(255,255,255,.08) 66%, transparent 100%);
  transform: translateX(-140%);
  transition: transform .55s ease;
}
.wp-block-button .wp-block-button__link:hover,
.wp-element-button:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover{
  transform: translateY(-3px) scale(1.01);
  filter: brightness(1.02);
  box-shadow: 0 20px 50px rgba(31,116,232,.28);
}
.wp-block-button .wp-block-button__link:hover::before,
.wp-element-button:hover::before,
button:hover::before,
input[type="submit"]:hover::before,
input[type="button"]:hover::before,
input[type="reset"]:hover::before{
  transform: translateX(140%);
}

.is-style-perfect-pop .wp-block-button__link,
.wp-block-button.is-style-perfect-pop .wp-block-button__link,
.is-style-idp-cta .wp-block-button__link,
.wp-block-button.is-style-idp-cta .wp-block-button__link{
  background: linear-gradient(135deg, var(--perfect-primary-strong) 0%, var(--perfect-primary) 58%, #58AFFF 100%);
  color: var(--perfect-button-text);
  box-shadow: var(--perfect-glow-shadow);
}

.is-style-perfect-outline .wp-block-button__link,
.wp-block-button.is-style-perfect-outline .wp-block-button__link,
.is-style-idp-outline-dark .wp-block-button__link,
.wp-block-button.is-style-idp-outline-dark .wp-block-button__link{
  background: rgba(255,255,255,.78);
  color: var(--perfect-primary-strong);
  border: 1px solid rgba(31,116,232,.18);
  box-shadow: 0 12px 28px rgba(16,38,63,.06);
}
.is-style-perfect-outline .wp-block-button__link:hover,
.wp-block-button.is-style-perfect-outline .wp-block-button__link:hover,
.is-style-idp-outline-dark .wp-block-button__link:hover,
.wp-block-button.is-style-idp-outline-dark .wp-block-button__link:hover{
  box-shadow: 0 18px 42px rgba(31,116,232,.14);
  background: rgba(255,255,255,.96);
}

.is-style-perfect-white .wp-block-button__link,
.wp-block-button.is-style-perfect-white .wp-block-button__link{
  background: linear-gradient(180deg, #FFFFFF 0%, #F6FBFF 100%);
  color: var(--perfect-primary-strong);
  border: 1px solid rgba(15,79,191,.12);
  box-shadow: 0 14px 34px rgba(16,38,63,.06);
}

.idp-card,
.is-style-idp-card,
.is-style-perfect-water-card,
.perfect-card{
  border-radius: 24px;
  border: 1px solid rgba(255,255,255,.82);
  background:
    linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(244,249,255,.92) 100%);
  box-shadow: var(--perfect-card-shadow);
}
.idp-card:hover,
.is-style-idp-card:hover,
.is-style-perfect-water-card:hover,
.perfect-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 24px 58px rgba(31,116,232,.16);
}

.is-style-perfect-glass,
.perfect-glass{
  border-radius: 24px;
  border: 1px solid rgba(255,255,255,.24);
  background:
    linear-gradient(180deg, rgba(21,67,122,.84) 0%, rgba(15,79,191,.78) 100%);
  box-shadow: 0 24px 64px rgba(15,79,191,.24);
  color: #fff;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.is-style-perfect-glass a,
.perfect-glass a{ color: #fff; }

.is-style-perfect-water-band,
.perfect-water-band{
  border-radius: 28px;
  background:
    radial-gradient(540px 220px at 12% 18%, rgba(255,255,255,.22), transparent 60%),
    radial-gradient(520px 200px at 88% 82%, rgba(196,18,47,.16), transparent 58%),
    linear-gradient(135deg, #12315A 0%, #1A5FC9 46%, #58AFFF 100%);
  color: #fff;
  box-shadow: 0 26px 70px rgba(15,79,191,.28);
}
.is-style-perfect-water-band :is(h1,h2,h3,h4,p,a,li),
.perfect-water-band :is(h1,h2,h3,h4,p,a,li){
  color: inherit;
}

.wp-block-heading.is-style-perfect-shine,
.is-style-perfect-shine{
  background: linear-gradient(135deg, #0F4FBF 0%, #1F74E8 40%, #58AFFF 72%, #C4122F 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
  letter-spacing: -.03em;
}

.idp-footer-shell{
  padding-top: clamp(2.2rem, 5vw, 3.5rem);
  padding-bottom: clamp(2.2rem, 5vw, 3.5rem);
}
.idp-footer-shell .idp-boxed-bar{
  background:
    radial-gradient(420px 180px at 0% 0%, rgba(88,175,255,.14), transparent 58%),
    radial-gradient(420px 180px at 100% 100%, rgba(196,18,47,.08), transparent 54%),
    linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(245,250,255,.93) 100%);
}
.idp-footer-shell a{
  color: var(--perfect-primary-strong);
}
.idp-footer-shell a:hover{
  color: var(--perfect-primary);
}
.idp-footer-social .wp-social-link{
  background: rgba(255,255,255,.9);
  color: var(--perfect-primary-strong);
  box-shadow: 0 10px 24px rgba(15,79,191,.08);
  transition: transform .18s ease, box-shadow .18s ease;
}
.idp-footer-social .wp-social-link:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(31,116,232,.18);
}

.wp-block-image img,
.wp-block-cover,
.wp-block-group,
.wp-block-column{
  transition: box-shadow .18s ease, transform .18s ease;
}

form input:not([type="submit"]):not([type="button"]):not([type="reset"]),
form select,
form textarea,
.wp-block-search__input{
  border-radius: 16px;
  border: 1px solid rgba(31,116,232,.14);
  background: rgba(255,255,255,.88);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
}
form input:focus,
form select:focus,
form textarea:focus,
.wp-block-search__input:focus{
  outline: none;
  border-color: rgba(31,116,232,.28);
  box-shadow: 0 0 0 4px rgba(88,175,255,.18);
}

@media (max-width: 782px){
  .idp-boxed-bar,
  .idp-hero-card{
    border-radius: 20px;
  }
  .idp-header-shell{
    padding-left: 1rem;
    padding-right: 1rem;
  }
}


:root{
  --perfect-highlight: #58AFFF;
}

body{
  background:
    radial-gradient(980px 420px at 10% -5%, rgba(88,175,255,.18), transparent 62%),
    radial-gradient(780px 340px at 100% 12%, rgba(196,18,47,.08), transparent 52%),
    linear-gradient(180deg, #F8FBFF 0%, #FFFFFF 34%, #F7FBFF 100%);
}

.pf-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin:0 0 .9rem;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--perfect-primary-strong);
}

.pf-eyebrow::before{
  content:"";
  width:12px;
  height:12px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--perfect-accent) 0%, var(--perfect-highlight, #58AFFF) 100%);
  box-shadow:0 0 0 6px rgba(255,255,255,.08);
}

.pf-eyebrow--light{ color:#fff; }

.pf-home-hero{ position:relative; overflow:hidden; }
.pf-home-hero::before,
.pf-home-hero::after{
  content:"";
  position:absolute;
  border-radius:999px;
  pointer-events:none;
}
.pf-home-hero::before{
  width:420px; height:420px; right:-130px; top:-160px;
  background:radial-gradient(circle, rgba(255,255,255,.20) 0%, transparent 66%);
}
.pf-home-hero::after{
  width:360px; height:360px; left:-120px; bottom:-160px;
  background:radial-gradient(circle, rgba(196,18,47,.18) 0%, transparent 68%);
}

.pf-hero-panel,
.pf-soft-panel,
.pf-quote-card,
.pf-contact-card,
.pf-product-card,
.pf-contact-band{ position:relative; overflow:hidden; }

.pf-hero-panel::before,
.pf-product-card::before,
.pf-contact-band::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.05) 42%, rgba(255,255,255,.22) 50%, rgba(255,255,255,.05) 58%, transparent 100%);
  transform:translateX(-145%);
  transition:transform .8s ease;
  pointer-events:none;
}

.pf-hero-panel:hover::before,
.pf-product-card:hover::before,
.pf-contact-band:hover::before{ transform:translateX(145%); }
.pf-chip-wrap{ margin-top:.5rem; }
.pf-chip{
  margin:0; padding:.56rem .82rem; border-radius:999px;
  background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12); font-size:.92rem; font-weight:700;
}
.pf-product-card{ transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.pf-product-card:hover{ transform:translateY(-6px); box-shadow:0 30px 70px rgba(15,79,191,.18); border-color:rgba(88,175,255,.42); }
.pf-product-figure{
  min-height:150px; margin-bottom:1rem; border-radius:20px;
  background:
    radial-gradient(120px 120px at 18% 16%, rgba(255,255,255,.44), transparent 58%),
    radial-gradient(220px 160px at 82% 86%, rgba(196,18,47,.12), transparent 65%),
    linear-gradient(135deg, rgba(15,79,191,.10) 0%, rgba(31,116,232,.18) 55%, rgba(88,175,255,.24) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.42);
}
.pf-check-list li{ margin:.55rem 0; }
.pf-check-list li::marker{ color:var(--perfect-primary); }
.pf-stat-band{
  background:
    radial-gradient(760px 300px at 0% 0%, rgba(88,175,255,.20), transparent 62%),
    radial-gradient(620px 260px at 100% 100%, rgba(196,18,47,.10), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.90) 0%, rgba(240,248,255,.94) 100%);
}
.pf-stat-band__inner{ max-width:980px; text-align:center; }
.pf-quote-card{ height:100%; }
.pf-quote-card h4{ min-height:3.2em; }
.pf-quote-author,
.pf-contact-phone{ font-weight:800; color:var(--perfect-primary-strong); }
.pf-contact-band{
  border-radius:30px; border:1px solid rgba(255,255,255,.82);
  background:
    radial-gradient(360px 180px at 8% 14%, rgba(88,175,255,.20), transparent 60%),
    radial-gradient(340px 180px at 100% 100%, rgba(196,18,47,.09), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(245,250,255,.96) 100%);
  box-shadow:0 24px 60px rgba(15,79,191,.10);
}
.pf-contact-line{ margin:.25rem 0; }
@media (max-width: 781px){
  .pf-home-hero{ border-radius:24px; }
  .pf-quote-card h4{ min-height:0; }
}

/* ============================================================
   Perfect Theme v3.3.0
   Homepage body pass: leave header + Rev Slider alone
   ============================================================ */
body.home .wp-block-post-content,
body.page-template-front-page .wp-block-post-content{
  max-width: 100%;
}

body.home .wp-block-post-content > .wp-block-shortcode:first-child,
body.page-template-front-page .wp-block-post-content > .wp-block-shortcode:first-child{
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: clamp(-.5rem, -1vw, 0rem);
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
}

body.home .wp-block-post-content > :where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,table,pre):not(.alignwide):not(.alignfull),
body.page-template-front-page .wp-block-post-content > :where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,table,pre):not(.alignwide):not(.alignfull){
  width: min(960px, calc(100vw - 40px));
  margin-left: auto;
  margin-right: auto;
}

body.home .wp-block-post-content > h1,
body.home .wp-block-post-content > h2,
body.page-template-front-page .wp-block-post-content > h1,
body.page-template-front-page .wp-block-post-content > h2{
  font-size: clamp(2rem, 3.4vw, 3.3rem);
  line-height: 1.08;
  letter-spacing: -.035em;
  color: #143a6b;
  margin-top: clamp(2.4rem, 5vw, 4.25rem);
  margin-bottom: 1rem;
}

body.home .wp-block-post-content > h3,
body.page-template-front-page .wp-block-post-content > h3{
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  line-height: 1.15;
  letter-spacing: -.03em;
  color: #173b67;
  margin-top: 2rem;
  margin-bottom: .85rem;
}

body.home .wp-block-post-content > h1::after,
body.home .wp-block-post-content > h2::after,
body.page-template-front-page .wp-block-post-content > h1::after,
body.page-template-front-page .wp-block-post-content > h2::after{
  content: "";
  display: block;
  width: 82px;
  height: 4px;
  margin-top: .9rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #1F74E8 0%, #7CC6FF 100%);
  box-shadow: 0 10px 22px rgba(31,116,232,.16);
}

body.home .wp-block-post-content > p,
body.home .wp-block-post-content > li,
body.home .wp-block-post-content > blockquote,
body.page-template-front-page .wp-block-post-content > p,
body.page-template-front-page .wp-block-post-content > li,
body.page-template-front-page .wp-block-post-content > blockquote{
  color: #44576b;
  font-size: clamp(1.04rem, 1.25vw, 1.12rem);
  line-height: 1.78;
}

body.home .wp-block-post-content > p + p,
body.page-template-front-page .wp-block-post-content > p + p{
  margin-top: .95rem;
}

body.home .wp-block-post-content > :where(.wp-block-columns,.wp-block-media-text,.wp-block-group,.wp-block-cover,.wp-block-query,.wp-block-gallery,.wp-block-shortcode:not(:first-child),.wp-block-image.alignwide,.wp-block-image.alignfull),
body.page-template-front-page .wp-block-post-content > :where(.wp-block-columns,.wp-block-media-text,.wp-block-group,.wp-block-cover,.wp-block-query,.wp-block-gallery,.wp-block-shortcode:not(:first-child),.wp-block-image.alignwide,.wp-block-image.alignfull)){
  width: min(1180px, calc(100vw - 40px));
  margin-left: auto;
  margin-right: auto;
  margin-top: clamp(2rem, 4vw, 3.5rem);
  margin-bottom: 0;
}

body.home .wp-block-post-content > :where(.wp-block-columns,.wp-block-media-text,.wp-block-group):not(.alignfull):not(.alignwide),
body.home .wp-block-post-content > .wp-block-shortcode:not(:first-child),
body.page-template-front-page .wp-block-post-content > :where(.wp-block-columns,.wp-block-media-text,.wp-block-group):not(.alignfull):not(.alignwide),
body.page-template-front-page .wp-block-post-content > .wp-block-shortcode:not(:first-child){
  padding: clamp(1.4rem, 2.1vw, 2.35rem);
  border-radius: 30px;
  border: 1px solid rgba(31,116,232,.10);
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(245,250,255,.98)),
    radial-gradient(900px 260px at 0% 0%, rgba(31,116,232,.06), transparent 58%);
  box-shadow:
    0 18px 40px rgba(15,79,191,.07),
    0 24px 70px rgba(16,38,63,.05);
}

body.home .wp-block-post-content > .wp-block-shortcode:not(:first-child),
body.page-template-front-page .wp-block-post-content > .wp-block-shortcode:not(:first-child){
  position: relative;
  overflow: hidden;
}

body.home .wp-block-post-content > .wp-block-shortcode:not(:first-child)::before,
body.page-template-front-page .wp-block-post-content > .wp-block-shortcode:not(:first-child)::before{
  content: "";
  position: absolute;
  inset: 0 auto 0 -30%;
  width: 45%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  transform: skewX(-24deg);
  pointer-events: none;
  opacity: .55;
}

body.home .wp-block-post-content > .wp-block-buttons,
body.page-template-front-page .wp-block-post-content > .wp-block-buttons{
  width: min(960px, calc(100vw - 40px));
  margin-left: auto;
  margin-right: auto;
  margin-top: 1.35rem;
}

body.home .wp-block-post-content .wp-element-button,
body.home .wp-block-post-content .wp-block-button__link,
body.home .wp-block-post-content input[type="submit"],
body.home .wp-block-post-content button,
body.page-template-front-page .wp-block-post-content .wp-element-button,
body.page-template-front-page .wp-block-post-content .wp-block-button__link,
body.page-template-front-page .wp-block-post-content input[type="submit"],
body.page-template-front-page .wp-block-post-content button{
  min-height: 50px;
  padding-inline: 1.25rem;
}

body.home .wp-block-post-content .wp-block-columns .wp-block-column > :where(.wp-block-group,.wp-block-cover),
body.page-template-front-page .wp-block-post-content .wp-block-columns .wp-block-column > :where(.wp-block-group,.wp-block-cover){
  height: 100%;
}

body.home .wp-block-post-content .wp-block-latest-posts__list,
body.home .wp-block-post-content .wp-block-query .wp-block-post-template,
body.page-template-front-page .wp-block-post-content .wp-block-latest-posts__list,
body.page-template-front-page .wp-block-post-content .wp-block-query .wp-block-post-template{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 22px;
}

body.home .wp-block-post-content .wp-block-query .wp-block-post,
body.home .wp-block-post-content .wp-block-latest-posts__list li,
body.page-template-front-page .wp-block-post-content .wp-block-query .wp-block-post,
body.page-template-front-page .wp-block-post-content .wp-block-latest-posts__list li{
  list-style: none;
  margin: 0;
  padding: 1.35rem;
  border-radius: 24px;
  border: 1px solid rgba(31,116,232,.10);
  background: linear-gradient(180deg, #fff, #f7fbff);
  box-shadow: 0 16px 35px rgba(15,79,191,.05);
}

body.home .wp-block-post-content .wpcf7,
body.page-template-front-page .wp-block-post-content .wpcf7{
  position: relative;
  z-index: 1;
}

body.home .wp-block-post-content .wpcf7 form,
body.page-template-front-page .wp-block-post-content .wpcf7 form{
  display: grid;
  gap: 16px;
}

body.home .wp-block-post-content :where(input:not([type="submit"]):not([type="button"]):not([type="reset"]),select,textarea),
body.page-template-front-page .wp-block-post-content :where(input:not([type="submit"]):not([type="button"]):not([type="reset"]),select,textarea){
  min-height: 54px;
  padding: .9rem 1rem;
  border-radius: 18px;
  border: 1px solid rgba(31,116,232,.14);
  background: rgba(255,255,255,.94);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 8px 24px rgba(31,116,232,.04);
}

body.home .wp-block-post-content textarea,
body.page-template-front-page .wp-block-post-content textarea{
  min-height: 148px;
}

body.home .wp-block-post-content .wpcf7-spinner,
body.page-template-front-page .wp-block-post-content .wpcf7-spinner{
  vertical-align: middle;
}

body.home .wp-block-post-content > .alignfull:not(:first-child),
body.page-template-front-page .wp-block-post-content > .alignfull:not(:first-child){
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-inline: clamp(20px, 3vw, 34px);
}

body.home .wp-block-post-content .has-background,
body.page-template-front-page .wp-block-post-content .has-background{
  border-radius: 28px;
}

body.home .wp-block-post-content > *:last-child,
body.page-template-front-page .wp-block-post-content > *:last-child{
  margin-bottom: clamp(3rem, 5vw, 5rem);
}

@media (max-width: 900px){
  body.home .wp-block-post-content > :where(.wp-block-columns,.wp-block-media-text,.wp-block-group,.wp-block-cover,.wp-block-query,.wp-block-gallery,.wp-block-shortcode:not(:first-child),.wp-block-image.alignwide,.wp-block-image.alignfull),
  body.page-template-front-page .wp-block-post-content > :where(.wp-block-columns,.wp-block-media-text,.wp-block-group,.wp-block-cover,.wp-block-query,.wp-block-gallery,.wp-block-shortcode:not(:first-child),.wp-block-image.alignwide,.wp-block-image.alignfull)){
    width: min(100%, calc(100vw - 28px));
  }

  body.home .wp-block-post-content > :where(.wp-block-columns,.wp-block-media-text,.wp-block-group):not(.alignfull):not(.alignwide),
  body.home .wp-block-post-content > .wp-block-shortcode:not(:first-child),
  body.page-template-front-page .wp-block-post-content > :where(.wp-block-columns,.wp-block-media-text,.wp-block-group):not(.alignfull):not(.alignwide),
  body.page-template-front-page .wp-block-post-content > .wp-block-shortcode:not(:first-child){
    border-radius: 24px;
    padding: 1.1rem;
  }

  body.home .wp-block-post-content > :where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,table,pre):not(.alignwide):not(.alignfull),
  body.page-template-front-page .wp-block-post-content > :where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,table,pre):not(.alignwide):not(.alignfull),
  body.home .wp-block-post-content > .wp-block-buttons,
  body.page-template-front-page .wp-block-post-content > .wp-block-buttons{
    width: min(100%, calc(100vw - 28px));
  }
}


/* ============================================================
   v3.3.1 footer + button normalization polish
   ============================================================ */
.idp-footer-floor{
  padding-top: clamp(2.2rem, 4vw, 3.4rem);
  padding-bottom: clamp(2.8rem, 4.4vw, 4rem);
}

.idp-footer-bar{
  padding: clamp(1.35rem, 2.3vw, 2rem);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,250,255,.98) 100%);
  border: 1px solid rgba(31,116,232,.12);
  box-shadow: 0 20px 52px rgba(15,79,191,.08), 0 30px 80px rgba(16,38,63,.05);
}

.idp-footer-columns{
  gap: clamp(1.15rem, 2vw, 2rem);
}

.idp-footer-columns .wp-block-column{
  min-width: 0;
}

.idp-footer-brand .wp-block-site-logo img,
.idp-footer-brand .custom-logo{
  max-height: 32px;
  width: auto;
}

.idp-footer-brand .wp-block-site-title,
.idp-footer-brand .wp-block-site-title a{
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -.02em;
  text-decoration: none;
  color: var(--perfect-primary-strong);
}

.idp-footer-note{
  color: var(--perfect-text-soft);
  opacity: 1;
  font-size: .985rem;
  line-height: 1.65;
}

.idp-footer-links,
.idp-footer-nav-list{
  list-style: none;
  margin: .55rem 0 0;
  padding: 0;
  display: grid;
  gap: .8rem;
}

.idp-footer-links li,
.idp-footer-nav-list li{
  margin: 0;
  padding: 0;
}

.idp-footer-links a,
.idp-footer-nav-list a{
  color: var(--perfect-text);
  text-decoration: none;
  font-weight: 560;
  line-height: 1.3;
  transition: color .16s ease, transform .16s ease;
}

.idp-footer-links a:hover,
.idp-footer-nav-list a:hover{
  color: var(--perfect-primary-strong);
  transform: translateX(2px);
}

.idp-footer-social{
  margin-top: .4rem;
}

.idp-footer-social .wp-social-link{
  transition: transform .16s ease, color .16s ease, background-color .16s ease;
}

.idp-footer-social .wp-social-link:hover{
  transform: translateY(-2px);
}

.idp-footer-bottom{
  padding-top: .2rem;
}

.idp-footer-bottom .idp-footer-note{
  font-size: .94rem;
}

.idp-footer-bar .wp-block-heading{
  margin-top: 0;
  margin-bottom: .25rem;
  font-size: 1.25rem;
  line-height: 1.2;
}

/* Normalize site buttons outside Rev Slider */
body :where(.wp-block-button .wp-block-button__link, .wp-element-button, button, input[type="submit"], input[type="button"], input[type="reset"]):not(.rev-btn){
  min-height: 48px;
  padding: .82rem 1.28rem;
  font-weight: 650;
  letter-spacing: .01em;
  text-decoration: none;
}

body :where(.wp-block-button .wp-block-button__link, .wp-element-button, button, input[type="submit"], input[type="button"], input[type="reset"]):not(.rev-btn):focus-visible{
  outline: none;
  box-shadow: 0 0 0 4px rgba(31,116,232,.16), 0 16px 36px rgba(31,116,232,.22);
}

body .wp-block-buttons{
  row-gap: .8rem;
}

@media (max-width: 900px){
  .idp-footer-bar{
    padding: 1.2rem;
    border-radius: 22px;
  }

  .idp-footer-columns{
    gap: 1.1rem;
  }

  .idp-footer-links,
  .idp-footer-nav-list{
    gap: .72rem;
  }
}


/* ============================================================
   Perfect Theme v3.4.9
   Mobile drawer fix:
   - account for logged-in mobile admin bar
   - prevent first menu item from being clipped
   - ensure drawer uses full remaining viewport height
   ============================================================ */
@media (max-width: 782px){
  :root{ --pf-mobile-adminbar-h: 46px; }

  .wp-block-navigation__responsive-container.is-menu-open{
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog{
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    padding-top: max(18px, env(safe-area-inset-top)) !important;
    padding-bottom: max(18px, env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
    height: 100% !important;
    min-height: 0 !important;
    padding-top: 18px !important;
    padding-bottom: 14px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{
    position: relative !important;
    z-index: 3 !important;
    margin: 0 0 12px auto !important;
  }

  body.admin-bar .wp-block-navigation__responsive-container.is-menu-open{
    top: var(--pf-mobile-adminbar-h) !important;
    height: calc(100dvh - var(--pf-mobile-adminbar-h)) !important;
    min-height: calc(100dvh - var(--pf-mobile-adminbar-h)) !important;
    max-height: calc(100dvh - var(--pf-mobile-adminbar-h)) !important;
  }

  body.admin-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog{
    top: var(--pf-mobile-adminbar-h) !important;
    height: calc(100dvh - var(--pf-mobile-adminbar-h)) !important;
    min-height: calc(100dvh - var(--pf-mobile-adminbar-h)) !important;
    max-height: calc(100dvh - var(--pf-mobile-adminbar-h)) !important;
    padding-top: 14px !important;
  }

  body.admin-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
    padding-top: 14px !important;
  }
}
