:root {
  --ph-blue: #2b4ca0;
  --ph-bright-blue: #2f6eff;
  --ph-footer: #00197d;
  --ph-footer-border: #263b91;
  --ph-footer-muted: #b9bbd2;
  --ph-white: #fff;
  --ph-text: #172033;
  --ph-container: 1350px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ph-text); background: #fff; font-family: Inter, Arial, sans-serif; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
.ph-container { width: 100%; max-width: var(--ph-container); margin-inline: auto; padding-inline: 25px; }
.ph-main { width: 100%; overflow: visible; }

.ph-skip-link { position: fixed; left: 12px; top: -100px; z-index: 99999; background: #fff; color: #00197d; padding: 10px 14px; border-radius: 4px; }
.ph-skip-link:focus { top: 12px; }

.ph-site-header { position: relative; z-index: 1000; background: #fff; }
.ph-topbar { background: var(--ph-blue); color: #fff; font-family: Inter, Arial, sans-serif; font-size: 16px; }
.ph-topbar-inner { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.ph-top-contact { display: flex; gap: 22px; align-items: center; }
.ph-top-contact a { display: inline-flex; gap: 8px; align-items: center; text-decoration: none; font-weight: 500; line-height: 1; }
.ph-top-contact a:hover, .ph-top-contact a:focus { text-decoration: underline; }
.ph-contact-icon { width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 18px; line-height: 1; }
.ph-contact-icon svg { width: 16px; height: 16px; display: block; fill: currentColor; }
.ph-top-social { display: flex; align-items: stretch; align-self: stretch; }
.ph-top-social a { width: 46px; display: grid; place-items: center; text-decoration: none; color: #fff; font-size: 16px; font-weight: 700; border-left: 1px solid rgba(255,255,255,.12); }
.ph-top-social a:last-child { border-right: 1px solid rgba(255,255,255,.12); }
.ph-top-social svg { width: 16px; height: 16px; display: block; fill: currentColor; }

.ph-nav-wrap { background: #fff; box-shadow: 0 2px 8px rgba(0, 24, 90, .08); }
.ph-nav-inner { min-height: 98px; display: flex; align-items: center; justify-content: space-between; gap: 34px; }
.ph-brand { flex: 0 0 auto; }
.ph-brand a { display: flex; align-items: center; margin-top: 8px; }
.ph-logo { display: block; width: auto; max-width: none; height: 80px; max-height: 80px; object-fit: contain; }
.ph-primary-nav { width: 660px; max-width: calc(100% - 230px); margin-left: auto; align-self: stretch; display: flex; align-items: stretch; }
.ph-menu { width: 100%; list-style: none; display: flex; align-items: stretch; justify-content: space-between; gap: 0; padding: 0; margin: 0; }
.ph-menu > li { position: relative; margin: 0; padding: 0; display: flex; align-items: stretch; }
.ph-menu > li > a,
.ph-dropdown-toggle { display: flex; align-items: center; padding: 0; color: #00197d; font-family: Poppins, Inter, Arial, sans-serif; font-size: 16px; line-height: 1.2; font-weight: 500; text-decoration: none; white-space: nowrap; background: none; border: 0; cursor: pointer; }
.ph-menu > li > a:hover, .ph-menu > li > a:focus,
.ph-dropdown-toggle:hover, .ph-dropdown-toggle:focus,
.ph-menu .current-menu-item > a { color: var(--ph-bright-blue); outline: none; }
.ph-dropdown-toggle { gap: 7px; }
.ph-chevron { width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .18s ease; }
.ph-dropdown.is-open > .ph-dropdown-toggle .ph-chevron { transform: rotate(225deg) translate(-1px,-1px); }

.ph-menu .sub-menu { visibility: hidden; opacity: 0; pointer-events: none; position: absolute; top: calc(100% - 8px); left: -20px; min-width: 245px; margin: 0; padding: 9px 0; list-style: none; background: #fff; border: 1px solid #e7ecf4; box-shadow: 0 12px 30px rgba(0,25,80,.13); border-radius: 3px; transform: translateY(8px); transition: opacity .16s ease, transform .16s ease, visibility .16s ease; z-index: 1100; }
.ph-menu .sub-menu::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.ph-menu .ph-dropdown:hover > .sub-menu,
.ph-menu .ph-dropdown:focus-within > .sub-menu,
.ph-menu .ph-dropdown.is-open > .sub-menu { visibility: visible; opacity: 1; pointer-events: auto; transform: translateY(0); }
.ph-menu .sub-menu li { margin: 0; }
.ph-menu .sub-menu li + li { border-top: 1px solid #edf1f7; }
.ph-menu .sub-menu a { display: block; padding: 12px 18px; color: #172033; font-size: 16px; line-height: 1.35; font-weight: 600; text-decoration: none; white-space: nowrap; }
.ph-menu .sub-menu a:hover, .ph-menu .sub-menu a:focus { color: var(--ph-bright-blue); background: #f7f9fd; }
.ph-menu-toggle { display: none; border: 0; background: transparent; color: #00197d; padding: 10px; cursor: pointer; align-items: center; gap: 10px; font-weight: 700; }
.ph-menu-bars { display: inline-grid; gap: 4px; }
.ph-menu-bars i { width: 25px; height: 2px; background: currentColor; display: block; transition: transform .2s ease, opacity .2s ease; }

.ph-site-footer { background: var(--ph-footer); color: #fff; }
.ph-footer-grid { display: grid; grid-template-columns: 1.35fr .75fr .9fr 1.1fr; gap: 56px; padding: 70px 0 60px; }
.ph-site-footer h2 { margin: 0 0 22px; font-size: 24px; line-height: 1.2; color: #fff; font-weight: 600; }
.ph-footer-about > p { max-width: 340px; margin: 14px 0 18px; color: #fff; font-family: Poppins, Arial, sans-serif; font-size: 14px; line-height: 1.75; font-weight: 300; }
.ph-footer-brand img { display: block; width: 250px; max-width: 80%; }
.ph-footer-social { display: flex; gap: 10px; }
.ph-footer-social a { width: 44px; height: 44px; display: grid; place-items: center; border: 2px solid #334899; border-radius: 50%; text-decoration: none; font-weight: 700; }
.ph-footer-social a:hover, .ph-footer-social a:focus { background: var(--ph-bright-blue); border-color: var(--ph-bright-blue); }
.ph-footer-links { list-style: none; margin: 0; padding: 0; }
.ph-footer-links li + li { margin-top: 14px; }
.ph-footer-links a { color: #fff; text-decoration: none; font-size: 16px; }
.ph-footer-links a::before { content: '›'; display: inline-block; margin-right: 10px; color: #fff; }
.ph-footer-links a:hover, .ph-footer-links a:focus { color: #569dd5; }
.ph-footer-contact p { margin: 0 0 22px; color: #fff; line-height: 1.55; }
.ph-footer-contact strong { font-size: 17px; font-weight: 500; }
.ph-footer-contact a { color: var(--ph-footer-muted); text-decoration: none; }
.ph-footer-contact a:hover, .ph-footer-contact a:focus { color: #fff; text-decoration: underline; }
.ph-footer-minor { color: var(--ph-footer-muted) !important; font-size: 14px; }
.ph-footer-bottom { border-top: 1px solid var(--ph-footer-border); text-align: center; padding: 20px 0; font-family: Poppins, Arial, sans-serif; font-size: 14px; }
.ph-footer-bottom strong { color: #569dd5; }

.ph-standard-content { padding: 60px 0; }
.ph-standard-content h1 { color: #00197d; }
.ph-button { display: inline-block; background: var(--ph-bright-blue); color: #fff; padding: 12px 22px; border-radius: 999px; text-decoration: none; font-weight: 700; }

/* Elementor compatibility: no theme-imposed content wrapper/padding. */
.elementor-page .ph-main { padding: 0; }
.elementor-page .ph-main > .elementor { width: 100%; }

/* Desktop header geometry mirrors the former Cleeny/Bootstrap boxed header:
   1350px maximum width with 25px horizontal gutters, tuned to align with the Elementor content while preserving Cleeny-style spacing. The old Cleeny logo
   was explicitly 80px high with an 8px top offset. */
@media (min-width: 1025px) {
  .ph-nav-inner { min-height: 98px; }
  .ph-brand a { margin-top: 8px; }
  .ph-logo { height: 80px; max-height: 80px; }
}

@media (max-width: 1024px) {
  .ph-primary-nav { width: auto; max-width: none; }
  .ph-menu { gap: 19px; justify-content: flex-start; }
  .ph-menu > li > a, .ph-dropdown-toggle { font-size: 16px; }
  .ph-footer-grid { grid-template-columns: 1fr 1fr; gap: 44px; }
}

@media (max-width: 900px) {
  .ph-topbar-inner { min-height: 38px; }
  .ph-top-social { display: none; }
  .ph-nav-inner { min-height: 80px; }
  .ph-logo { width: 158px; max-width: 158px; max-height: 68px; }
  .ph-menu-toggle { display: inline-flex; }
  .ph-primary-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; box-shadow: 0 12px 25px rgba(0,0,0,.12); }
  .ph-menu-open .ph-primary-nav { display: block; }
  .ph-menu-open .ph-menu-bars i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .ph-menu-open .ph-menu-bars i:nth-child(2) { opacity: 0; }
  .ph-menu-open .ph-menu-bars i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .ph-menu { display: block; width: min(var(--ph-container), calc(100% - 40px)); margin: 0 auto; padding: 8px 0 18px; }
  .ph-menu > li { display: block; }
  .ph-menu > li > a, .ph-dropdown-toggle { width: 100%; min-height: 46px; padding: 0; border-bottom: 1px solid #edf1f7; justify-content: space-between; }
  .ph-menu .sub-menu { position: static; visibility: visible; opacity: 1; pointer-events: auto; display: none; transform: none; box-shadow: none; border: 0; border-radius: 0; padding: 0 0 0 18px; }
  .ph-menu .ph-dropdown.is-open > .sub-menu { display: block; }
  .ph-menu .sub-menu::before { display: none; }
  .ph-menu .sub-menu a { padding: 11px 0; }
  .ph-menu .sub-menu li + li { border-top: 0; }
}

@media (max-width: 640px) {
  .ph-container { width: min(100% - 28px, var(--ph-container)); }
  .ph-top-contact { width: 100%; justify-content: space-between; gap: 8px; }
  .ph-top-contact a { font-size: 16px; gap: 5px; }
  .ph-top-contact a:first-child { min-width: 0; flex: 1 1 auto; max-width: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ph-top-contact a[href^="tel:"] { flex: 0 0 auto; white-space: nowrap; }
  .ph-top-contact a[href^="tel:"] > span:last-child { white-space: nowrap; }
  .ph-nav-inner { min-height: 72px; }
  .ph-logo { width: 150px; max-width: 150px; max-height: 62px; }
  .ph-menu-toggle-label { display: none; }
  .ph-footer-grid { grid-template-columns: 1fr; gap: 36px; padding: 54px 0 44px; }
  .ph-footer-brand img { width: 240px; }
  .ph-site-footer h2 { font-size: 22px; }
  .ph-footer-bottom { font-size: 11px; line-height: 1.6; }
}
