/*
 * Parties & Props — 2026 Brand Refresh
 * Brand reference sampled from approved business-card artwork.
 *
 * Primary blue:   #05517B
 * Deep navy:      #012956
 * Mid blue:       #0F5A99
 * Cyan accent:    #79D7E9
 * Cool light gray:#DCE0E1
 * Charcoal:       #2D3135
 */

:root{
  --pp-blue: #05517B;
  --pp-navy: #012956;
  --pp-blue-mid: #0F5A99;
  --pp-cyan: #79D7E9;
  --pp-cyan-soft: #DFF5FA;
  --pp-ice: #F5F9FB;
  --pp-gray: #DCE0E1;
  --pp-charcoal: #2D3135;
  --pp-white: #FFFFFF;

  --pp-radius: 4px;
  --pp-shadow: 0 18px 50px rgba(1,41,86,.10);
  --pp-content: 1200px;

  --pp-font-body: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --pp-font-display: "Arial Narrow", "Aptos Display", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* ============================================================
   GLOBAL TYPE + COLOR
============================================================ */

body{
  color: var(--pp-charcoal);
  font-family: var(--pp-font-body);
  font-size: 17px;
  line-height: 1.65;
}

body,
.et_pb_text_inner,
.et_pb_blurb_description,
.et_pb_contact_form_label{
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

h1,h2,h3,h4,h5,h6,
.et_pb_text h1,.et_pb_text h2,.et_pb_text h3,
.et_pb_fullwidth_header h1,.et_pb_fullwidth_header h2{
  color: var(--pp-navy);
  font-family: var(--pp-font-display);
  font-weight: 700;
  letter-spacing: -.025em;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

a{
  color: var(--pp-blue);
}

a:hover{
  color: var(--pp-blue-mid);
}

/* Existing branded display classes */
.pp-display-xl{
  font-size: clamp(3.35rem, 7vw, 7.1rem) !important;
  line-height: .92 !important;
  letter-spacing: -.045em !important;
  max-width: 12ch;
}

.pp-display-lg{
  font-size: clamp(2.7rem, 5vw, 5.25rem) !important;
  line-height: .96 !important;
  letter-spacing: -.04em !important;
  max-width: 13ch;
}

.pp-eyebrow{
  color: var(--pp-blue) !important;
  font-family: var(--pp-font-body);
  font-size: clamp(.78rem, .9vw, .92rem) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}

/* ============================================================
   SECTIONS
============================================================ */

.pp-section,
.pp-page-hero{
  position: relative;
}

.pp-section{
  padding-top: clamp(70px, 8vw, 120px) !important;
  padding-bottom: clamp(70px, 8vw, 120px) !important;
}

.pp-section > .et_pb_row,
.pp-page-hero > .et_pb_row{
  width: min(90%, var(--pp-content)) !important;
  max-width: var(--pp-content) !important;
}

.pp-section--ink,
.pp-page-hero.pp-section--ink{
  background: var(--pp-navy) !important;
  color: var(--pp-white) !important;
}

.pp-section--ink h1,
.pp-section--ink h2,
.pp-section--ink h3,
.pp-section--ink .pp-display-xl,
.pp-section--ink .pp-display-lg{
  color: var(--pp-white) !important;
}

.pp-section--ink .pp-eyebrow{
  color: var(--pp-cyan) !important;
}

/* Old "electric" sections become the approved cyan family */
.pp-section--electric{
  background: var(--pp-cyan-soft) !important;
  color: var(--pp-navy) !important;
}

.pp-section--electric .pp-eyebrow{
  color: var(--pp-blue) !important;
}

/* ============================================================
   HERO
============================================================ */

.pp-hero{
  position: relative;
  min-height: min(820px, 88vh);
  display: flex;
  align-items: flex-end;
}

.pp-hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(1,41,86,.88) 0%, rgba(1,41,86,.68) 42%, rgba(1,41,86,.12) 78%),
    linear-gradient(0deg, rgba(1,41,86,.38), transparent 55%);
  z-index:0;
}

.pp-hero > .et_pb_row{
  position:relative;
  z-index:1;
  width:min(90%, var(--pp-content)) !important;
  max-width:var(--pp-content) !important;
  padding-bottom:clamp(55px, 8vw, 105px) !important;
}

.pp-hero h1{
  color:var(--pp-white) !important;
  font-size:clamp(3.5rem, 7.5vw, 7.6rem) !important;
  line-height:.9 !important;
  letter-spacing:-.05em !important;
  max-width:9ch;
}

.pp-hero p{
  color:var(--pp-white);
  max-width:650px;
}

/* ============================================================
   BUTTONS — REMOVE GREEN/LIME
============================================================ */

body .et_pb_button,
body a.et_pb_button,
body .pp-button,
body button:not(.et-fb-button),
body input[type="submit"],
body .gform_button{
  background: var(--pp-blue) !important;
  border: 2px solid var(--pp-blue) !important;
  color: var(--pp-white) !important;
  border-radius: var(--pp-radius) !important;
  font-family: var(--pp-font-body) !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  line-height: 1.1 !important;
  text-transform: uppercase;
  padding: .9em 1.35em !important;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease !important;
}

body .et_pb_button:hover,
body a.et_pb_button:hover,
body .pp-button:hover,
body button:not(.et-fb-button):hover,
body input[type="submit"]:hover,
body .gform_button:hover{
  background: var(--pp-navy) !important;
  border-color: var(--pp-navy) !important;
  color: var(--pp-white) !important;
  transform: translateY(-1px);
}

body .pp-button--dark{
  background: var(--pp-navy) !important;
  border-color: var(--pp-navy) !important;
}

body .pp-button--dark:hover{
  background: var(--pp-blue) !important;
  border-color: var(--pp-blue) !important;
}

/* Catch the original lime Divi button treatment in generated module CSS */
body .et_pb_button[style*="#a8ff4f"],
body [style*="background-color:#a8ff4f"],
body [style*="background-color: #a8ff4f"],
body [style*="background:#a8ff4f"],
body [style*="background: #a8ff4f"]{
  background-color: var(--pp-blue) !important;
  border-color: var(--pp-blue) !important;
  color: var(--pp-white) !important;
}

/* ============================================================
   CARDS / CHIPS / LINKS
============================================================ */

.pp-card{
  border:1px solid rgba(5,81,123,.16);
  background:var(--pp-white);
  box-shadow:var(--pp-shadow);
}

.pp-card h3{
  color:var(--pp-navy) !important;
}

.pp-chip{
  border:1px solid rgba(5,81,123,.22) !important;
  background:var(--pp-ice) !important;
  color:var(--pp-navy) !important;
}

.pp-link-arrow a,
.pp-card a{
  color:var(--pp-blue) !important;
}

.pp-link-arrow a:hover,
.pp-card a:hover{
  color:var(--pp-navy) !important;
}

/* ============================================================
   MARQUEE + ACCENTS
============================================================ */

.pp-marquee,
[class*="pp-marquee"]{
  background:var(--pp-cyan) !important;
  color:var(--pp-navy) !important;
}

.pp-marquee i,
[class*="pp-marquee"] i{
  color:var(--pp-blue) !important;
}

/* ============================================================
   HEADER / NAV
============================================================ */

#main-header,
.et-l--header{
  font-family:var(--pp-font-body);
}

#top-menu a,
.et-menu a{
  color:var(--pp-charcoal);
  font-weight:600;
}

#top-menu a:hover,
.et-menu a:hover,
#top-menu li.current-menu-item > a,
.et-menu li.current-menu-item > a{
  color:var(--pp-blue) !important;
}

/* ============================================================
   FORMS
============================================================ */

.et_pb_contact_form input,
.et_pb_contact_form textarea,
.et_pb_contact_form select,
.gform_wrapper input,
.gform_wrapper textarea,
.gform_wrapper select{
  border:1px solid rgba(5,81,123,.20) !important;
  background:var(--pp-white) !important;
  color:var(--pp-charcoal) !important;
  border-radius:2px !important;
}

.et_pb_contact_form input:focus,
.et_pb_contact_form textarea:focus,
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus{
  border-color:var(--pp-blue) !important;
  box-shadow:0 0 0 3px rgba(121,215,233,.24) !important;
  outline:0 !important;
}

/* ============================================================
   DIVI BUILDER
============================================================ */

.et-fb .pp-reveal,
.et-fb-root-ancestor .pp-reveal,
body.et-fb .pp-reveal,
body.et-fb-root-ancestor .pp-reveal{
  opacity:1 !important;
  transform:none !important;
  visibility:visible !important;
}

/* ============================================================
   RESPONSIVE — FIX AWKWARD WRAPPING
============================================================ */

@media (max-width: 980px){
  .pp-display-xl{
    font-size:clamp(3rem, 9vw, 5.4rem) !important;
    max-width:14ch;
  }

  .pp-display-lg{
    font-size:clamp(2.5rem, 7.5vw, 4.4rem) !important;
    max-width:15ch;
  }

  .pp-hero h1{
    font-size:clamp(3.1rem, 9vw, 5.8rem) !important;
    max-width:10ch;
  }

  .pp-hero{
    min-height:680px;
  }
}

@media (max-width: 767px){
  body{
    font-size:16px;
  }

  /* Let phones wrap at natural word boundaries instead of forcing desktop line breaks */
  .pp-display-xl br,
  .pp-display-lg br,
  .pp-page-hero h1 br,
  .pp-page-hero h2 br{
    display:none;
  }

  .pp-display-xl,
  .pp-page-hero .pp-display-xl{
    font-size:clamp(2.7rem, 13vw, 4.1rem) !important;
    line-height:.98 !important;
    letter-spacing:-.035em !important;
    max-width:100%;
  }

  .pp-display-lg{
    font-size:clamp(2.35rem, 11vw, 3.65rem) !important;
    line-height:1 !important;
    letter-spacing:-.03em !important;
    max-width:100%;
  }

  .pp-hero h1{
    font-size:clamp(3rem, 14vw, 4.7rem) !important;
    line-height:.92 !important;
    max-width:9ch;
  }

  .pp-hero p{
    font-size:1rem !important;
    line-height:1.5 !important;
  }

  .pp-section{
    padding-top:64px !important;
    padding-bottom:64px !important;
  }

  .pp-page-hero{
    padding-top:72px !important;
    padding-bottom:72px !important;
  }

  .pp-eyebrow{
    letter-spacing:.12em !important;
  }

  body .et_pb_button,
  body a.et_pb_button,
  body .pp-button{
    white-space:normal !important;
    text-align:center;
  }
}

/* Extra guardrails for tiny screens */
@media (max-width: 420px){
  .pp-display-xl,
  .pp-page-hero .pp-display-xl{
    font-size:clamp(2.45rem, 12.5vw, 3.25rem) !important;
  }

  .pp-display-lg{
    font-size:clamp(2.15rem, 10.8vw, 3rem) !important;
  }

  .pp-hero h1{
    font-size:clamp(2.8rem, 13.5vw, 3.85rem) !important;
  }
}
