/*
Theme Name: Pinnacle Logic
Theme URI: https://pinnaclelogic.ai
Author: Pinnacle Logic LLC
Author URI: https://pinnaclelogic.ai
Description: Custom block theme for Pinnacle Logic LLC — AI, Software Engineering, and Cybersecurity. Built from the PLW website wireframe specification. Full Site Editing / Gutenberg native.
Requires at least: 6.1
Tested up to: 6.7
Requires PHP: 7.4
Version: 0.4.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pinnacle-logic
*/

/* ============================================================
   Pinnacle Logic — design tokens (mirror of theme.json)
   ============================================================ */
:root{
  --pl-navy:#0A2342;
  --pl-navy-deep:#060f1e;
  --pl-teal:#00C7C7;
  --pl-gray:#EAEAEA;
  --pl-ink:#1a1a2e;
  --pl-muted:#5b6b7f;
  --pl-section-alt:#f6f9fc;
  --pl-card-border:#dde4f0;
  --pl-teal-dim:rgba(0,199,199,.12);
  --pl-white:#ffffff;
}

/* ── Base ──────────────────────────────────────────────── */
body{background:var(--pl-white);color:var(--pl-ink);}

/* Small uppercase teal label used across sections */
.pl-eyebrow{
  color:var(--pl-teal);
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:.4rem;
}

/* ── Header / navigation ───────────────────────────────── */
.pl-site-header{
  background:#ffffff;
  position:sticky;
  top:0;
  z-index:100;
  border-bottom:1px solid #e6ebf2;
  box-shadow:0 1px 8px rgba(10,35,66,.05);
}
.pl-header__inner{padding-block:.75rem;}

/* Logo + wordmark lockup */
.pl-brand-lockup{gap:.6rem;}
.pl-logo img,
.pl-logo .custom-logo{height:44px !important;width:auto !important;display:block;}
@media (max-width:600px){.pl-brand{display:none;}}

/* Brand wordmark (Site Title block) — navy on the white header */
.pl-brand,
.pl-brand a{
  font-family:'Montserrat',sans-serif !important;
  font-weight:700;
  color:var(--pl-navy) !important;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  font-size:.98rem;
}

/* Nav links (Navigation block).
   !important is needed to beat core's higher-specificity
   .wp-block-navigation .wp-block-navigation-item__content rule,
   which otherwise forces the links to the dark body text colour. */
.pl-nav a,
.pl-nav .wp-block-navigation-item__content{
  color:var(--pl-navy) !important;
  font-size:.92rem;
  font-weight:500;
  text-decoration:none;
}
.pl-nav a:hover,
.pl-nav a:focus,
.pl-nav .current-menu-item > a{color:var(--pl-teal) !important;}

/* Mobile hamburger + overlay menu — same dark-on-navy fix.
   The open/close icons inherit the dark text colour, and the
   overlay panel needs a navy background so white links show. */
.pl-nav .wp-block-navigation__responsive-container-open{color:var(--pl-navy) !important;}
.pl-nav .wp-block-navigation__responsive-container-close{color:#fff !important;}
.pl-nav .wp-block-navigation__responsive-container.is-menu-open{
  background-color:var(--pl-navy) !important;
}
.pl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  color:#fff !important;
  font-size:1.15rem;
}

/* Header CTA button */
.pl-cta-btn .wp-block-button__link{
  background:var(--pl-teal);
  color:var(--pl-navy);
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:.8rem;
  padding:.6em 1.1em;
  border-radius:6px;
}

/* ── Generic buttons ───────────────────────────────────── */
.pl-btn--primary .wp-block-button__link{
  background:var(--pl-teal);
  color:var(--pl-navy);
  font-weight:700;
}
.pl-btn--ghost .wp-block-button__link{
  background:transparent;
  border:1px solid var(--pl-teal);
  color:var(--pl-teal);
}

/* ── Hero ──────────────────────────────────────────────── */
.pl-hero{
  position:relative;
  overflow:hidden;
  background:var(--pl-navy);
  padding-top:clamp(4rem,9vw,7.5rem);
  padding-bottom:clamp(4rem,9vw,7.5rem);
  text-align:center;
}
/* Faint AI dot-grid overlay */
.pl-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(circle,var(--pl-teal) 1px,transparent 1px);
  background-size:26px 26px;
  opacity:.08;
  pointer-events:none;
}
.pl-hero > *{position:relative;z-index:1;}
.pl-hero__title{
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  color:#fff;
  font-size:clamp(2rem,4.5vw,3.25rem);
  line-height:1.16;
  max-width:18ch;
  margin-inline:auto;
}
.pl-hero__sub{
  color:rgba(255,255,255,.66);
  font-size:clamp(1rem,1.6vw,1.15rem);
  line-height:1.7;
  max-width:54ch;
  margin-inline:auto;
}
.pl-hero__btns{margin-top:.5rem;}

/* Hero stat row */
.pl-hero__stats{
  gap:2.5rem !important;
  margin-top:2.5rem;
}
.pl-stat{position:relative;}
.pl-stat + .pl-stat::before{
  content:"";
  position:absolute;
  left:-1.25rem;
  top:15%;
  height:70%;
  width:1px;
  background:rgba(255,255,255,.14);
}
.pl-stat__val{
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  color:var(--pl-teal);
  font-size:1.5rem;
  line-height:1;
  margin:0;
}
.pl-stat__label{
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,.42);
  margin:.4rem 0 0;
}

/* ── Footer ────────────────────────────────────────────── */
.pl-site-footer{background:var(--pl-navy-deep);}
.pl-footer__inner{padding-block:2rem;}
.pl-footer__brand{
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  color:var(--pl-teal);
  margin:0;
  font-size:.95rem;
  letter-spacing:.04em;
}
.pl-footer__copy{
  color:rgba(255,255,255,.4);
  font-size:.8rem;
  margin:.25rem 0 0;
}
.pl-footer__social .wp-social-link{background:rgba(255,255,255,.08);}

/* ── Responsive ────────────────────────────────────────── */
@media (max-width:781px){
  .pl-header__inner{gap:.75rem;justify-content:center;}
  .pl-hero__stats{gap:1.5rem !important;}
  .pl-footer__inner{gap:1rem;text-align:center;justify-content:center;}
}

/* ============================================================
   Content sections (Pillars · Industries · Why Us · CTA)
   ============================================================ */
.pl-section{
  padding-top:clamp(3.5rem,7vw,6rem);
  padding-bottom:clamp(3.5rem,7vw,6rem);
}
.pl-section--alt{background:var(--pl-section-alt);}
.pl-section--navy{background:var(--pl-navy);}
.pl-center{text-align:center;}
.pl-center .pl-sec-body{margin-inline:auto;}

/* Section headings */
.pl-sec-title{
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  color:var(--pl-navy);
  font-size:clamp(1.5rem,3vw,2.1rem);
  line-height:1.2;
  margin:0 0 .6rem;
}
.pl-sec-body{
  color:var(--pl-muted);
  font-size:1.05rem;
  line-height:1.7;
  max-width:56ch;
  margin:0;
}
.pl-section--navy .pl-sec-title{color:#fff;}
.pl-section--navy .pl-sec-body{color:rgba(255,255,255,.6);}

/* Card grids */
.pl-grid-3,.pl-grid-4{display:grid;gap:1.25rem;margin-top:2rem;}
.pl-grid-3{grid-template-columns:repeat(3,1fr);}
.pl-grid-4{grid-template-columns:repeat(4,1fr);}
.pl-grid-3 > *,.pl-grid-4 > *{margin:0 !important;}
@media (max-width:900px){
  .pl-grid-3{grid-template-columns:1fr;}
  .pl-grid-4{grid-template-columns:repeat(2,1fr);}
}

/* Shared card */
.pl-card{
  background:#fff;
  border:1px solid var(--pl-card-border);
  border-radius:10px;
  padding:1.75rem;
  height:100%;
  transition:transform .18s ease,box-shadow .18s ease;
}
.pl-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(10,35,66,.10);}
.pl-card__title{
  font-family:'Montserrat',sans-serif;font-weight:700;color:var(--pl-navy);
  font-size:1.1rem;margin:0 0 .5rem;
}
.pl-card__text{color:var(--pl-muted);font-size:.95rem;line-height:1.6;margin:0;}

/* Pillar cards */
.pl-pillar{border-top:3px solid var(--pl-teal);}
.pl-pillar__icon{
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:8px;background:var(--pl-teal-dim);
  font-size:1.4rem;margin:0 0 .9rem;
}
.pl-pillar__cta{margin:.9rem 0 0;}
.pl-pillar__cta a{color:var(--pl-teal);font-weight:600;font-size:.92rem;text-decoration:none;}
.pl-pillar__cta a:hover{text-decoration:underline;}

/* Industry cards */
.pl-ind-card{text-align:center;}
.pl-ind__icon{
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;background:var(--pl-navy);
  color:var(--pl-teal);font-size:1.5rem;margin:0 auto .8rem;
}
.pl-ind__name{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--pl-navy);font-size:1rem;margin:0 0 .35rem;}
.pl-ind__desc{color:var(--pl-muted);font-size:.9rem;line-height:1.6;margin:0;}

/* Why-us cards (on navy) */
.pl-why-card{text-align:center;padding:1rem .5rem;}
.pl-why__icon{
  display:flex;align-items:center;justify-content:center;
  width:60px;height:60px;border-radius:50%;
  background:var(--pl-teal-dim);border:1px solid rgba(0,199,199,.35);
  color:var(--pl-teal);font-size:1.6rem;margin:0 auto .9rem;
}
.pl-why__title{font-family:'Montserrat',sans-serif;font-weight:700;color:#fff;font-size:1rem;margin:0 0 .35rem;}
.pl-why__desc{color:rgba(255,255,255,.55);font-size:.9rem;line-height:1.6;margin:0;}

/* Closing CTA strip */
.pl-cta-strip{
  background:linear-gradient(135deg,#071a30,#0f3060);
  padding-top:clamp(3rem,6vw,4.5rem);
  padding-bottom:clamp(3rem,6vw,4.5rem);
  text-align:center;
}
.pl-cta-strip__title{
  font-family:'Montserrat',sans-serif;font-weight:700;color:#fff;
  font-size:clamp(1.4rem,3vw,2rem);margin:0 0 .5rem;
}
.pl-cta-strip__sub{color:rgba(255,255,255,.6);font-size:1.05rem;margin:0 0 1.5rem;}
.pl-cta-strip .wp-block-buttons{justify-content:center;}

/* ============================================================
   Inner-page components (Services · Industries · About · Contact)
   ============================================================ */

/* Navy page-intro band */
.pl-page-hero{
  background:var(--pl-navy);
  padding-top:clamp(2.5rem,6vw,4rem);
  padding-bottom:clamp(2.5rem,6vw,4rem);
}
.pl-page-hero__title{
  font-family:'Montserrat',sans-serif;font-weight:700;color:#fff;
  font-size:clamp(1.6rem,3.4vw,2.3rem);line-height:1.2;margin:.2rem 0 .5rem;max-width:24ch;
}
.pl-page-hero__sub{color:rgba(255,255,255,.6);font-size:1.05rem;line-height:1.7;max-width:64ch;margin:0;}

/* Two-column helper */
.pl-cols-2{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem;}
.pl-cols-2 > *{margin:0 !important;}
@media (max-width:900px){.pl-cols-2{grid-template-columns:1fr;}}

/* Teal-dot bullet list (services / industries bodies) */
.pl-list{list-style:none;margin:0;padding:0;}
.pl-list li{position:relative;padding-left:1.15rem;margin:0 0 .55rem;color:#3a4658;font-size:.95rem;line-height:1.55;}
.pl-list li::before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:50%;background:var(--pl-teal);}

/* ── Services: cards with navy header ── */
.pl-svc-card{border:1px solid var(--pl-card-border);border-radius:10px;overflow:hidden;background:#fff;height:100%;}
.pl-svc-head{background:var(--pl-navy);padding:1.2rem 1.4rem;}
.pl-svc__icon{font-size:1.5rem;line-height:1;margin:0 0 .4rem;}
.pl-svc__title{font-family:'Montserrat',sans-serif;font-weight:700;color:#fff;font-size:1.05rem;margin:0;}
.pl-svc-body{padding:1.1rem 1.4rem 1.4rem;}

/* ── Convergence model box ── */
.pl-converge{margin-top:1.75rem;border:1.5px dashed #b9cbe6;border-radius:10px;background:#f0f6ff;padding:1.75rem;text-align:center;}
.pl-converge__title{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--pl-navy);font-size:1.1rem;margin:0 0 .4rem;}
.pl-converge__sub{color:var(--pl-muted);font-size:.95rem;margin:0 auto 1rem;max-width:60ch;}
.pl-converge__row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;}
.pl-converge__row > *{margin:0 !important;}
.pl-c-pill{background:var(--pl-navy);color:var(--pl-teal);padding:.45rem .95rem;border-radius:20px;font-size:.85rem;font-weight:700;}
.pl-c-plus{color:var(--pl-teal);font-size:1.1rem;font-weight:700;}
.pl-c-result{background:var(--pl-teal);color:var(--pl-navy);padding:.45rem 1.05rem;border-radius:20px;font-size:.85rem;font-weight:700;}

/* ── Industries: large cards ── */
.pl-ind-big-card{border:1px solid var(--pl-card-border);border-radius:10px;overflow:hidden;background:#fff;height:100%;}
.pl-ind-big-head{background:var(--pl-navy);padding:1.1rem 1.4rem;display:flex;gap:.8rem;align-items:flex-start;}
.pl-ind-big-head > *{margin:0 !important;}
.pl-ind-big__icon{width:44px;height:44px;border-radius:8px;background:var(--pl-teal-dim);display:flex;align-items:center;justify-content:center;font-size:1.35rem;flex-shrink:0;}
.pl-ind-big__title{font-family:'Montserrat',sans-serif;font-weight:700;color:#fff;font-size:1.05rem;margin:0;}
.pl-ind-big__sub{color:var(--pl-teal);font-size:.85rem;margin:.2rem 0 0;}
.pl-ind-big-body{padding:1.1rem 1.4rem 1.3rem;}

/* ── About ── */
.pl-story__head{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--pl-navy);font-size:1.2rem;margin:.3rem 0 .8rem;}
.pl-story__text{color:#3a4658;line-height:1.8;font-size:1rem;margin:0 0 .8rem;}
.pl-approach-box{background:#f4f8fc;border-radius:10px;padding:1.6rem;border-left:3px solid var(--pl-teal);}
.pl-check-list{margin-top:1rem;}
.pl-check-item{display:flex;gap:.7rem;align-items:flex-start;margin:0 0 .85rem;}
.pl-check-item > *{margin:0 !important;}
.pl-check__mark{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--pl-teal-dim);color:var(--pl-teal);font-weight:700;font-size:.75rem;display:flex;align-items:center;justify-content:center;}
.pl-check__text{color:#3a4658;font-size:.95rem;line-height:1.6;}
.pl-mission{background:var(--pl-navy);border-radius:10px;padding:1.6rem 1.9rem;border-left:4px solid var(--pl-teal);margin-top:2.25rem;}
.pl-mission__text{color:#fff;font-size:1.08rem;line-height:1.7;font-style:italic;margin:.4rem 0 0;}
.pl-val__icon{font-size:1.7rem;margin:0 0 .5rem;}
.pl-team-card{text-align:center;}
.pl-avatar{width:56px;height:56px;border-radius:50%;background:var(--pl-navy);border:2px solid var(--pl-teal);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto .8rem;}
.pl-team__name{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--pl-navy);font-size:1.05rem;margin:0;}
.pl-team__role{color:var(--pl-teal);font-size:.85rem;margin:.25rem 0;}
.pl-team__spec{color:var(--pl-muted);font-size:.9rem;line-height:1.6;margin:0;}

/* ── Contact ── */
.pl-contact-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:2.25rem;margin-top:2rem;}
.pl-contact-grid > *{margin:0 !important;}
@media (max-width:900px){.pl-contact-grid{grid-template-columns:1fr;}}
.pl-contact-detail{display:flex;gap:.75rem;align-items:flex-start;margin:0 0 .9rem;}
.pl-contact-detail > *{margin:0 !important;}
.pl-contact__icon{flex-shrink:0;width:34px;height:34px;border-radius:7px;background:var(--pl-teal-dim);color:var(--pl-teal);display:flex;align-items:center;justify-content:center;font-size:1rem;}
.pl-contact__label{color:#8a97a8;font-size:.8rem;margin:0;}
.pl-contact__val{color:var(--pl-navy);font-weight:500;font-size:.98rem;margin:0;word-break:break-word;}
.pl-cta-card{border:1px solid var(--pl-card-border);border-radius:8px;padding:.85rem 1rem;display:flex;gap:.75rem;align-items:center;margin:0 0 .7rem;transition:border-color .18s ease;}
.pl-cta-card:hover{border-color:var(--pl-teal);}
.pl-cta-card > *{margin:0 !important;}
.pl-cta-card__icon{flex-shrink:0;width:34px;height:34px;border-radius:6px;background:var(--pl-navy);color:var(--pl-teal);display:flex;align-items:center;justify-content:center;font-size:1rem;}
.pl-cta-card__title{color:var(--pl-navy);font-weight:700;font-size:.95rem;margin:0;}
.pl-cta-card__sub{color:#8a97a8;font-size:.85rem;margin:0;}
.pl-form-card{background:#fff;border:1px solid var(--pl-card-border);border-radius:10px;padding:1.75rem;}
.pl-form-card__title{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--pl-navy);font-size:1.15rem;margin:0 0 1rem;}
.pl-form-placeholder{border:1.5px dashed #b9cbe6;border-radius:8px;background:#f7fafe;padding:1.75rem;text-align:center;color:var(--pl-muted);font-size:.95rem;line-height:1.6;}

/* WPForms — match brand inside the contact card */
.pl-form-card .wpforms-container{margin:0 !important;}
.pl-form-card .wpforms-form .wpforms-submit{
  background:var(--pl-teal) !important;
  color:var(--pl-navy) !important;
  border:none !important;
  font-family:'Montserrat',sans-serif !important;
  font-weight:700 !important;
  border-radius:6px !important;
  padding:.7em 1.5em !important;
  cursor:pointer;
}
