/* Innovative Professionals - Main Styles */
:root{
  --ip-ink:#0b1220;
  --ip-navy:#12335b;
  --ip-teal:#0e7c86;
  --ip-sky:#e6f3f4;
  --ip-muted:#f3f4f6;
  --ip-white:#ffffff;
  --ip-border:rgba(11,18,32,.12);
  --ip-shadow:0 10px 30px rgba(11,18,32,.08);
  --ip-radius:16px;
  --ip-max:1100px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--ip-ink);
  background:var(--ip-white);
  line-height:1.6;
}
img{max-width:100%; height:auto}
a{color:var(--ip-teal); text-decoration:none}
a:hover{text-decoration:underline}
.ip-sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.ip-skip-link{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.ip-skip-link:focus{
  left:12px; top:12px; width:auto; height:auto;
  padding:10px 12px; border-radius:12px;
  background:var(--ip-white); color:var(--ip-ink);
  border:1px solid var(--ip-border);
  z-index:9999;
}

/* Layout helpers */
.ip-container{
  width:100%;
  max-width:var(--ip-max);
  margin:0 auto;
  padding:0 18px;
}
.ip-narrow{max-width:820px}
.ip-section{padding:64px 0}
.ip-section-muted{background:var(--ip-muted)}
.ip-section-header{margin-bottom:24px}
.ip-page-header{margin-bottom:22px}
.ip-page-title{margin:0 0 10px; line-height:1.2; font-size:clamp(28px,4vw,40px)}
.ip-lead{font-size:1.1rem; color:rgba(11,18,32,.82); margin:0}

/* Header */
.ip-topbar{
  background:var(--ip-ink);
  color:rgba(255,255,255,.92);
  font-size:.92rem;
}
.ip-topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:8px 18px;
}
.ip-topbar a{color:rgba(255,255,255,.92)}
.ip-topitem{display:inline-flex; gap:8px; align-items:center; margin-right:14px}
.ip-social{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px; height:32px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:999px;
}
.ip-navwrap{
  background:var(--ip-white);
  border-bottom:1px solid var(--ip-border);
}
.ip-navinner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
}
.ip-brand{min-width:200px}
.ip-site-title{font-weight:800; font-size:1.2rem; color:var(--ip-ink)}
.ip-site-tagline{font-size:.92rem; color:rgba(11,18,32,.7)}
.custom-logo{max-height:54px; width:auto}
.ip-nav{flex:1}
.ip-menu{
  list-style:none;
  display:flex;
  gap:16px;
  align-items:center;
  justify-content:center;
  padding:0;
  margin:0;
}
.ip-menu li{margin:0}
.ip-menu a{
  display:inline-block;
  padding:10px 10px;
  border-radius:10px;
  color:rgba(11,18,32,.85);
  font-weight:600;
}
.ip-menu a:hover{background:rgba(14,124,134,.08); text-decoration:none}
.ip-header-cta{display:flex; justify-content:flex-end}
.ip-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 16px;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:700;
  text-decoration:none!important;
  cursor:pointer;
}
.ip-btn-primary{background:var(--ip-teal); color:var(--ip-white)}
.ip-btn-primary:hover{filter:brightness(.95)}
.ip-btn-secondary{background:transparent; color:var(--ip-ink); border-color:var(--ip-border)}
.ip-btn-secondary:hover{background:rgba(11,18,32,.04)}

.ip-nav-toggle{
  display:none;
  border:1px solid var(--ip-border);
  background:var(--ip-white);
  padding:10px 12px;
  border-radius:12px;
}
.ip-nav-toggle-lines{
  width:22px; height:2px; background:var(--ip-ink);
  display:block; position:relative;
}
.ip-nav-toggle-lines:before,.ip-nav-toggle-lines:after{
  content:""; position:absolute; left:0; width:22px; height:2px; background:var(--ip-ink);
}
.ip-nav-toggle-lines:before{top:-7px}
.ip-nav-toggle-lines:after{top:7px}

/* Hero */
.ip-hero{
  background:
    radial-gradient(1000px 500px at 20% 10%, rgba(14,124,134,.20), transparent 60%),
    radial-gradient(900px 500px at 80% 40%, rgba(18,51,91,.18), transparent 60%),
    linear-gradient(to bottom, var(--ip-white), var(--ip-sky));
  padding:70px 0 40px;
}
.ip-hero-inner{display:grid; grid-template-columns: 1.15fr .85fr; gap:26px; align-items:start}
.ip-hero-title{
  font-size:clamp(34px,4.8vw,54px);
  line-height:1.05;
  margin:0 0 14px;
}
.ip-hero-lead{
  font-size:1.15rem;
  color:rgba(11,18,32,.82);
  margin:0 0 18px;
}
.ip-hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:14px}
.ip-hero-badges{
  list-style:none; padding:0; margin:18px 0 0;
  display:flex; flex-wrap:wrap; gap:10px;
}
.ip-hero-badges li{
  padding:8px 12px;
  background:rgba(255,255,255,.75);
  border:1px solid var(--ip-border);
  border-radius:999px;
  font-weight:650;
  font-size:.95rem;
}
.ip-hero-panel{display:flex}
.ip-hero-card{
  width:100%;
  background:rgba(255,255,255,.78);
  border:1px solid var(--ip-border);
  border-radius:var(--ip-radius);
  padding:20px 18px;
  box-shadow:var(--ip-shadow);
}
.ip-hero-card-title{font-weight:800; margin-bottom:10px}
.ip-checklist{list-style:none; padding:0; margin:0}
.ip-checklist li{
  padding-left:26px;
  margin:10px 0;
  position:relative;
}
.ip-checklist li:before{
  content:"✓";
  position:absolute; left:0; top:0;
  width:18px; height:18px;
  border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(14,124,134,.18);
  color:var(--ip-teal);
  font-weight:900;
}

/* Cards */
.ip-card-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:18px;
}
.ip-card{
  background:var(--ip-white);
  border:1px solid var(--ip-border);
  border-radius:var(--ip-radius);
  box-shadow:0 2px 12px rgba(11,18,32,.04);
}
.ip-card-body{padding:18px}
.ip-card-title{margin:0 0 10px; font-size:1.15rem; line-height:1.25}
.ip-card-meta{font-size:.92rem; color:rgba(11,18,32,.65); margin-bottom:10px}
.ip-card-excerpt p{margin:0}
.ip-link{font-weight:700}

/* Bullets */
.ip-bullets{padding-left:18px}
.ip-bullets li{margin:8px 0}
.ip-muted{color:rgba(11,18,32,.7)}

/* Pills */
.ip-pill-grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.ip-pill{
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(11,18,32,.12);
  background:rgba(255,255,255,.7);
  font-weight:700;
}

/* CTA banner */
.ip-cta-banner{
  margin-top:26px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 18px;
  border-radius:var(--ip-radius);
  border:1px solid var(--ip-border);
  background:rgba(255,255,255,.75);
  box-shadow:var(--ip-shadow);
}
.ip-cta-banner-tight{margin-top:18px}
.ip-cta-copy h3{margin:0 0 6px}
.ip-cta-copy p{margin:0; color:rgba(11,18,32,.8)}

/* Services layout */
.ip-service-layout{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:24px;
  align-items:start;
}
.ip-service-col h2{margin-top:0}

/* Contact */
.ip-contact-layout{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:start;
}
.ip-contact-card{
  background:var(--ip-white);
  border:1px solid var(--ip-border);
  border-radius:var(--ip-radius);
  padding:18px;
}
.ip-contact-aside .ip-card{position:sticky; top:18px}
.ip-form{margin-top:8px}
.ip-field{margin:0 0 14px}
.ip-field label{display:block; font-weight:700; margin:0 0 6px}
.ip-field input,.ip-field textarea{
  width:100%;
  padding:12px 12px;
  border-radius:12px;
  border:1px solid var(--ip-border);
  font:inherit;
}
.ip-field input:focus,.ip-field textarea:focus{
  outline:3px solid rgba(14,124,134,.18);
  border-color:rgba(14,124,134,.35);
}
.ip-grid-2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.ip-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.ip-alert{
  padding:12px 12px;
  border-radius:14px;
  border:1px solid var(--ip-border);
  margin-bottom:14px;
}
.ip-alert-success{background:rgba(14,124,134,.10)}
.ip-alert-error{background:rgba(219,39,119,.08)}

/* Post grid */
.ip-post-grid{display:grid; grid-template-columns: repeat(3, 1fr); gap:18px}
.ip-pagination{margin-top:24px}

/* Footer */
.ip-footer{
  background:var(--ip-ink);
  color:rgba(255,255,255,.9);
  padding:48px 0 18px;
  margin-top:40px;
}
.ip-footer a{color:rgba(255,255,255,.9)}
.ip-footer-top{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:18px;
  align-items:start;
}
.ip-footer-title{font-weight:900; font-size:1.2rem; margin-bottom:6px}
.ip-footer-desc{color:rgba(255,255,255,.75)}
.ip-footer-address{color:rgba(255,255,255,.75)}
.ip-footer-widgets{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:18px;
}
.widget{padding:0; margin:0}
.widget-title{margin:0 0 10px; font-size:1rem}
.ip-footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-top:1px solid rgba(255,255,255,.12);
  margin-top:26px;
  padding-top:16px;
  font-size:.95rem;
  color:rgba(255,255,255,.75);
}
.ip-footer-menu{list-style:none; padding:0; margin:0}
.ip-footer-menu li{margin:8px 0}

/* Content formatting */
.ip-content h2{margin-top:26px}
.ip-featured-image{margin:18px 0}

/* Responsive */
@media (max-width: 980px){
  .ip-hero-inner{grid-template-columns: 1fr; }
  .ip-card-grid{grid-template-columns: repeat(2, 1fr);}
  .ip-post-grid{grid-template-columns: repeat(2, 1fr);}
  .ip-contact-layout{grid-template-columns: 1fr}
  .ip-contact-aside .ip-card{position:static}
  .ip-footer-top{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .ip-nav{display:none}
  .ip-nav-toggle{display:inline-flex}
  .ip-header-cta{display:none}
  .ip-menu{
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    border:1px solid var(--ip-border);
    border-radius:16px;
    padding:10px;
    background:var(--ip-white);
  }
  .ip-menu a{padding:12px 12px}
  .ip-card-grid{grid-template-columns: 1fr;}
  .ip-post-grid{grid-template-columns: 1fr;}
  .ip-service-layout{grid-template-columns:1fr}
  .ip-grid-2{grid-template-columns:1fr}
  .ip-footer-widgets{grid-template-columns:1fr}
}

/* JS-driven nav open */
body.ip-nav-open .ip-nav{display:block}
body.ip-nav-open .ip-header-cta{display:none}
body.ip-nav-open .ip-navinner{align-items:flex-start}
