/*
Theme Name:   Atlantic Meridian Partners (Hello Elementor Child)
Theme URI:    https://atlanticmeridianpartners.com
Description:  Hello Elementor child theme for Atlantic Meridian Partners. Hosts the
              site's front-end JavaScript (cursor follower, stat counters, animated
              background paths, hero letter-cascade, sticky header) so they no longer
              live inside Elementor HTML widgets.
Author:       Atlantic Meridian Partners
Template:     hello-elementor
Version:      1.0.0
Text Domain:  hello-elementor-child
*/

/* Styling is managed in the Customizer (Additional CSS). This file only carries the
   theme header required for the child theme. */

/* design fonts (Elementor's kit only loads Roboto by default) */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600&display=swap');

:root{
  --navy:#0B2545; --navy-deep:#0E2C53; --navy-700:#0E2C53;
  --blue:#1E5BB8; --blue-600:#1A4FA3; --blue-soft:#EAF1FB;
  --green:#16A394; --green-dark:#128577; --green-soft:#E6F6F3;
  --ink:#122036; --text:#4A5870; --muted:#76849B; --line:#E6EBF2;
  --bg:#fff; --bg-soft:#F5F8FC; --bg-mint:#F1FAF8; --star:#F5A623;
  --grad-accent:linear-gradient(135deg,#1E5BB8 0%,#16A394 100%);
  --grad-navy:linear-gradient(135deg,#0B2545 0%,#143A6B 60%,#16524F 130%);
  --grad-soft:linear-gradient(135deg,#EAF1FB 0%,#E6F6F3 100%);
  --r-sm:10px; --r:14px; --r-lg:20px; --r-pill:999px;
  --sh-sm:0 2px 10px rgba(11,37,69,.05);
  --sh:0 16px 38px rgba(11,37,69,.09);
  --sh-lg:0 28px 64px rgba(11,37,69,.16);
  --container:1280px;
  --font-head:'Plus Jakarta Sans','Segoe UI',system-ui,sans-serif;
  --font-body:'Inter','Segoe UI',system-ui,sans-serif;
}

/* ---- base / typography — override Elementor kit (Roboto, #6EC1E4) ---- */
body,.elementor,.elementor-widget-text-editor,.elementor p{font-family:var(--font-body)!important}
body{color:var(--text);line-height:1.625;-webkit-font-smoothing:antialiased}
/* kit colours headings via .elementor-kit-N (specificity 0,3,0); beat it */
.elementor-widget-heading .elementor-heading-title{
  font-family:var(--font-head)!important;color:var(--ink)!important;
  line-height:1.16;font-weight:800!important;letter-spacing:-.01em}
.elementor-widget-heading.elementor-element h2.elementor-heading-title{font-size:clamp(1.8rem,3.5vw,2.75rem)}
.elementor h3{font-size:1.2rem}
.elementor p{color:var(--text)}

/* widen Elementor's content container to match the original 1280px */
.elementor-section.elementor-section-boxed > .elementor-container{max-width:var(--container)}
/* 24px gutter only on TOP-LEVEL sections (inner sections must not double it) */
.elementor-top-section.elementor-section-boxed > .elementor-container{padding-inline:24px}
/* full-width columns sit flush to the 24px gutter (no extra column padding) so
   every section's content lines up — matches the original .wrap. Multi-column
   sections (footer) keep their column padding for inter-column spacing. */
.elementor-section .elementor-column.elementor-col-100 > .elementor-widget-wrap{padding-inline:0}

/* tame default column padding so our cards control their own spacing */
.elementor-element .elementor-widget-wrap{align-content:flex-start}

/* ============================================================
   SECTION SKINS  (class on the Section/Container)
   ============================================================ */
.sec{padding-block:clamp(64px,8vw,104px)!important}
.sec.tight{padding-block:clamp(48px,6vw,68px)!important}
.soft{background:var(--bg-soft)}
.mint{background:#DEF3EC}
.grad-navy{background:var(--grad-navy)}
.soft-grad{background:var(--grad-soft)}
.navy{background:var(--navy)}
.navy .elementor-widget-heading .elementor-heading-title,
.hero .elementor-widget-heading .elementor-heading-title,
.cta-navy .elementor-widget-heading .elementor-heading-title{color:#fff!important}
.navy p,.navy .elementor-widget-text-editor{color:#9fb2d0}

/* ============================================================
   EYEBROW + SECTION HEADING
   ============================================================ */
/* the PILL is only the inner text element — never the full-width widget wrapper */
.eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-head)!important;font-weight:700!important;font-size:.72rem!important;
  line-height:1!important;letter-spacing:.16em;text-transform:uppercase;
  color:var(--green-dark)!important;background:var(--green-soft);
  border:1px solid rgba(22,163,148,.25);padding:7px 15px;border-radius:var(--r-pill)}
.navy .eyebrow .elementor-heading-title,
.cta-navy .eyebrow .elementor-heading-title,
.page-hero .eyebrow .elementor-heading-title,
.hero .pill .elementor-heading-title{
  color:#5fd9c7!important;background:rgba(22,163,148,.12);border-color:rgba(22,163,148,.3)}
.sec-title .elementor-heading-title{margin-top:16px;color:var(--ink)!important}
.sec-sub .elementor-text-editor,.sec-sub p{margin-top:14px;color:var(--muted)}
.navy .sec-sub .elementor-text-editor,.navy .sec-sub p{color:#9fb2d0}
.text-white .elementor-heading-title{color:#fff !important;}

/* ============================================================
   BUTTONS  (class on the Button widget wrapper)
   inner <a> is .elementor-button
   ============================================================ */
.pbtn .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--font-head)!important;font-weight:600!important;font-size:.95rem;
  padding:14px 28px;border-radius:999px;line-height:1;border:1.5px solid transparent;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease}
.pbtn .elementor-button:hover{transform:translateY(-3px)}
.pbtn-primary .elementor-button,.pbtn-grad .elementor-button{
  background:var(--grad-accent)!important;color:#fff!important;box-shadow:0 12px 26px rgba(22,163,148,.30)}
.pbtn-primary .elementor-button:hover{box-shadow:0 18px 36px rgba(22,163,148,.42)}
.pbtn-dark .elementor-button{background:var(--navy)!important;color:#fff!important}
.pbtn-dark .elementor-button:hover{background:var(--blue)!important}
.pbtn-outline .elementor-button{background:transparent!important;color:var(--navy)!important;border-color:var(--navy)!important}
.pbtn-outline .elementor-button:hover{background:var(--navy)!important;color:#fff!important}
.pbtn-ghost .elementor-button{background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.25)!important}
.pbtn-ghost .elementor-button:hover{background:rgba(255,255,255,.1)!important}

/* text link with arrow (Button widget, "Link" / text style) */
.link-arrow .elementor-button{padding:0!important;background:none!important;border:0!important;color:var(--blue)!important;
  font-family:var(--font-head)!important;font-weight:600!important;font-size:.9rem;box-shadow:none!important}
.link-arrow .elementor-button:hover{color:var(--green-dark)!important;transform:none}
/* text link with arrow (plain <a>, exact Lucide arrow — e.g. View All Industries) */
.center-link{text-align:center}
a.link-arrow{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-head);
  font-weight:600;font-size:.9rem;color:var(--blue);transition:color .2s ease}
a.link-arrow svg{transition:transform .25s ease}
a.link-arrow:hover{color:var(--green-dark)}
a.link-arrow:hover svg{transform:translateX(4px)}

/* ============================================================
   ICON BOXES (.icbox) + cards — ported from the original, exact
   Lucide SVGs rendered inside HTML widgets
   ============================================================ */
.icbox{display:grid;place-items:center;border-radius:13px;flex:none}
.icbox svg{display:block}
.icbox.mint{background:var(--green-soft);color:var(--green-dark)}
.icbox.blue{background:var(--blue-soft);color:var(--blue)}
.icbox.grad{background:var(--grad-soft);color:var(--blue)}

/* feature (why-choose-us): icon left + title + desc */
.feature{display:flex;gap:15px}
.feature .icbox{width:46px;height:46px}
.feature h4{font-family:var(--font-head);font-weight:700;font-size:.95rem;color:var(--ink);margin-bottom:5px}
.feature p{font-size:.875rem;color:var(--text)}

/* industry card: centered, icon + name */
.ind-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;
  box-shadow:var(--sh-sm);height:100%;display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.ind-card:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.ind-card .icbox{width:56px;height:56px;margin-bottom:14px;transition:.3s}
.ind-card:hover .icbox{background:var(--grad-accent);color:#fff}
.ind-card .ind-name{font-family:var(--font-head);font-weight:700;color:var(--ink);font-size:.95rem}

/* ============================================================
   STATS BAND  (Icon Box or Heading combo inside .navy)
   class .stat on a column / inner box
   ============================================================ */
.stat{text-align:center;padding:30px 22px;border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r);transition:.3s;height:100%}
.stat:hover{border-color:rgba(22,163,148,.35);background:rgba(22,163,148,.05)}
.stat .num .elementor-heading-title,.stat-num .elementor-heading-title{
  font-family:var(--font-head);font-weight:800;font-size:clamp(2.2rem,calc(1.6rem + 1.8vw),2.9rem);
  color:transparent;background:linear-gradient(135deg,#6fb7ff,#5fd9c7);
  -webkit-background-clip:text;background-clip:text;line-height:1}
.stat-lbl .elementor-heading-title{font-family:var(--font-head);font-weight:600;color:#fff;margin-top:8px}
.stat-sub .elementor-text-editor{margin-top:4px;font-size:.8rem;color:rgba(255,255,255,.4)}

/* ============================================================
   PROCESS STEPS
   ============================================================ */
.step{text-align:center}
.step .step-circle .elementor-icon{width:90px;height:90px;border-radius:50%;
  background:var(--navy);display:grid;place-items:center;margin:0 auto 22px;
  box-shadow:0 14px 30px rgba(11,37,69,.22)}
.step .step-circle .elementor-heading-title{font-family:var(--font-head);font-weight:800;
  font-size:1.4rem;color:transparent;background:var(--grad-accent);
  -webkit-background-clip:text;background-clip:text;
  width:90px;height:90px;display:grid;place-items:center;border-radius:50%;
  background-color:var(--navy);margin:0 auto 22px;box-shadow:0 14px 30px rgba(11,37,69,.22)}
.step .step-title .elementor-heading-title{font-family:var(--font-head);font-weight:700;
  font-size:1.05rem;color:var(--ink);margin-bottom:10px}
.step .step-desc .elementor-text-editor{font-size:.875rem;color:var(--text)}

/* ============================================================
   TESTIMONIALS  (.testi on a column inside .navy)
   ============================================================ */
.testi{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r);padding:28px;height:100%;transition:border-color .3s ease}
.testi:hover{border-color:rgba(22,163,148,.3)}
.testi .testi-stars .elementor-icon{color:var(--star);font-size:16px;display:inline-block;margin-right:3px}
.testi .testi-quote .elementor-text-editor{color:rgba(255,255,255,.78);font-size:.875rem;
  font-style:italic;margin:14px 0 24px}
.testi .testi-who .elementor-heading-title{color:#fff;font-family:var(--font-head);
  font-weight:700;font-size:.92rem}
.testi .testi-role .elementor-text-editor{color:rgba(255,255,255,.45);font-size:.8rem}

/* ============================================================
   FAQ ACCORDION (native Elementor Accordion widget)
   class .faq on the Accordion widget
   ============================================================ */
.faq .elementor-accordion-item{background:#fff;border:1px solid var(--line)!important;
  border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-sm);margin-bottom:12px}
.faq .elementor-tab-title{padding:20px 24px!important;font-family:var(--font-head);
  font-weight:700;font-size:.98rem;color:var(--ink)!important;border:0!important}
.faq .elementor-tab-title.elementor-active{color:var(--green-dark)!important}
.faq .elementor-tab-content{padding:0 24px 22px!important;font-size:.94rem;
  color:var(--text);border:0!important}
.faq .elementor-accordion-icon{color:var(--green-dark)}

/* ============================================================
   HERO  (class .hero on the top Section)
   ============================================================ */
.hero{position:relative;background:var(--grad-navy);overflow:hidden}
.hero h1,.hero .hero-title .elementor-heading-title{color:#fff;
  font-size:clamp(2.4rem,5vw,4rem);line-height:1.1}
.hero .hl{color:transparent;background:var(--grad-accent);
  -webkit-background-clip:text;background-clip:text}
.hero .hero-sub,.hero .hero-sub p{color:rgba(255,255,255,.66);font-size:1.125rem;max-width:520px}
.pill .elementor-heading-title{display:inline-flex;align-items:center;gap:9px;line-height:1!important;
  background:rgba(22,163,148,.14);border:1px solid rgba(22,163,148,.32);
  padding:8px 16px;border-radius:var(--r-pill);font-size:.82rem!important;font-weight:500!important}
/* hero pill text stays teal (beat the .hero white-heading rule) */
.hero .pill .elementor-heading-title{color:#5fd9c7!important}
.trust .elementor-heading-title{color:#fff;font-family:var(--font-head);font-weight:800;font-size:1.75rem}
.trust .elementor-text-editor{font-size:.82rem;color:rgba(255,255,255,.45)}

/* ============================================================
   CTA band helpers
   ============================================================ */
.cta-navy{background:var(--grad-navy)}
.cta-navy h2{color:#fff!important}
.cta-navy .sec-sub,.cta-navy .sec-sub p{color:rgba(255,255,255,.6)!important}

/* ============================================================
   ABOUT PAGE COMPONENTS
   ============================================================ */
/* page hero (inner-page banner) */
.page-hero{position:relative;background:var(--grad-navy);overflow:hidden;padding-block:clamp(96px,11vw,150px)}
.page-hero > .elementor-container{position:relative;z-index:2}
/* full-bleed page-hero image (per-page) with a left-dark → right-light navy
   overlay: text stays crisp on the left, the related photo shows on the right */
.page-hero::before{content:"";position:absolute;inset:0;z-index:0;opacity:1;background:center/cover no-repeat}
.page-hero::after{content:"";position:absolute;inset:0;z-index:1;background:
  linear-gradient(90deg,rgba(11,37,69,.95) 0%,rgba(11,37,69,.9) 42%,rgba(11,37,69,.58) 100%),
  linear-gradient(180deg,rgba(11,37,69,.15),rgba(11,37,69,.35))}
.ph-about::before{background-image:url('https://images.unsplash.com/photo-1573164574572-cb89e39749b4?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=80&w=1920')}
.ph-resources::before{background-image:url('https://images.unsplash.com/photo-1517048676732-d65bc937f952?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=80&w=1920')}
.ph-contact::before{background-image:url('https://images.unsplash.com/photo-1497215842964-222b430dc094?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=80&w=1920')}
.ph-detail::before{background-image:url('https://images.unsplash.com/photo-1628348068343-c6a848d2b6dd?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=80&w=1920')}
.page-hero .ph-title .elementor-heading-title{color:#fff!important;max-width:760px;
  font-size:clamp(2.2rem,5vw,3.8rem);margin-top:20px;margin-bottom:18px}
.page-hero .ph-sub,.page-hero .ph-sub p{color:rgba(255,255,255,.66);max-width:640px;font-size:1.125rem}
.crumbs{display:flex;gap:9px;align-items:center;font-size:.85rem;color:rgba(255,255,255,.4);margin-top:30px}
.crumbs a{color:rgba(255,255,255,.4)}.crumbs a:hover{color:#fff}
.crumbs .cur{color:#5fd9c7}

/* who-we-are: checklist + extra paragraph */
.checklist{list-style:none;padding:0;display:grid;gap:13px;margin:0 0 32px}
.checklist li{display:flex;gap:12px;align-items:flex-start;font-size:.94rem;color:var(--text)}
.checklist li svg{color:var(--green);margin-top:3px;flex:none}
.about-p p{margin-top:16px;color:var(--text)}

/* mission / vision cards */
.mv-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:38px;
  box-shadow:var(--sh-sm);height:100%}
.mv-card .icbox{width:56px;height:56px;margin-bottom:22px}
.mv-card .mv-label{font-family:var(--font-head);font-weight:700;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--green-dark);margin-bottom:12px}
.mv-card .mv-label.blue{color:var(--blue)}
.mv-card h3{font-family:var(--font-head);font-weight:800;font-size:1.4rem;color:var(--ink);margin-bottom:14px}
.mv-card p{font-size:.94rem;color:var(--text)}

/* value cards */
.value-card{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);padding:28px;
  box-shadow:var(--sh-sm);height:100%;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.value-card:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.value-card .icbox{width:48px;height:48px;margin-bottom:18px}
.value-card h3{font-family:var(--font-head);font-weight:700;font-size:1rem;color:var(--ink);margin-bottom:10px}
.value-card p{font-size:.875rem;color:var(--text)}

/* team cards */
.team-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;
  box-shadow:var(--sh-sm);text-align:center;height:100%;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.team-card:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.team-card .av{width:78px;height:78px;border-radius:50%;background:var(--navy);color:#fff;display:grid;
  place-items:center;margin:0 auto 18px;font-family:var(--font-head);font-weight:700;font-size:1.25rem}
.team-card h3{font-family:var(--font-head);font-weight:700;font-size:.95rem;color:var(--ink);margin-bottom:4px}
.team-card .role{color:var(--green-dark);font-size:.85rem;font-weight:500}

/* (legacy checklist wrapper kept for safety) */
.checklist ul{list-style:none;padding:0;display:grid;gap:13px}
.checklist-legacy li{display:flex;gap:12px;align-items:flex-start;font-size:.94rem;color:var(--text)}

/* ============================================================
   LAYOUT HELPERS — CSS grid on a column (class on the Column /
   inner Column). All cards sit as siblings inside one column.
   ============================================================ */
.elementor-column.pgrid > .elementor-widget-wrap{display:grid!important;gap:24px}
.elementor-column.pgrid > .elementor-widget-wrap > .elementor-widget{
  margin-bottom:0!important;width:auto!important;max-width:none!important}
.elementor-column.pgrid.cols-2 > .elementor-widget-wrap{grid-template-columns:repeat(2,1fr)}
.elementor-column.pgrid.cols-3 > .elementor-widget-wrap{grid-template-columns:repeat(3,1fr)}
.elementor-column.pgrid.cols-4 > .elementor-widget-wrap{grid-template-columns:repeat(4,1fr)}
@media(max-width:1024px){
  .elementor-column.pgrid.cols-3 > .elementor-widget-wrap,
  .elementor-column.pgrid.cols-4 > .elementor-widget-wrap{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.elementor-column.pgrid > .elementor-widget-wrap{grid-template-columns:1fr!important}}

/* inline flex row of widgets (e.g. two buttons) */
.elementor-column.row-flex > .elementor-widget-wrap{display:flex!important;flex-wrap:wrap;gap:14px;align-items:center}
.elementor-column.row-flex.center > .elementor-widget-wrap{justify-content:center}
.elementor-column.row-flex > .elementor-widget-wrap > .elementor-widget{margin-bottom:0!important;width:auto!important}

.wrap-sm > .elementor-widget-wrap{max-width:896px;margin-inline:auto}

/* ============================================================
   HERO extras
   ============================================================ */
.hero{padding-block:clamp(96px,12vw,140px)}
.hero-title h1{color:#fff;font-family:var(--font-head)!important;font-weight:800!important;
  letter-spacing:-.01em;font-size:clamp(2.4rem,5vw,4rem);line-height:1.1;margin:18px 0}
/* letter-cascade (home + every page hero): pre-hide the H1 to avoid a flash; JS
   reveals it (letters hidden) then cascades them in. Fallback shows the H1 if the
   script never runs. */
.hero-title h1,.page-hero .ph-title h1,.page-hero h1.ph-title{opacity:0;animation:heroReveal 0s linear 2.6s forwards}
@keyframes heroReveal{to{opacity:1}}
.hch{display:inline-block;white-space:pre;will-change:transform,opacity}
.hw{display:inline-block;white-space:nowrap}  /* keep each word unbreakable during the cascade */
@media(prefers-reduced-motion:reduce){.hero-title h1,.page-hero .ph-title h1,.page-hero h1.ph-title{opacity:1;animation:none}}
.hero .elementor-column.trust{margin-top:46px}/* 46px gap from buttons to divider (matches original) */
.trust .t b{display:block;font-family:var(--font-head);font-weight:800;font-size:1.75rem;color:#fff}
.trust .t span{font-size:.82rem;color:rgba(255,255,255,.45)}
.hero-img img{border-radius:var(--r-lg);box-shadow:var(--sh-lg);border:1px solid rgba(255,255,255,.12)}
@media(max-width:992px){.hero-img{display:none}}

/* image with rounded corners (why-choose-us / media) */
.relative{position:relative}
.media{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-lg)}
.media img{width:100%;height:500px;object-fit:cover;display:block}
/* "Average Savings 60%" badge overlapping the media image */
.badge-stat{position:absolute;bottom:-26px;right:-22px;background:var(--navy);
  border-radius:var(--r);padding:20px;width:210px;box-shadow:var(--sh-lg)}
.badge-stat .k{color:var(--green);font-size:.7rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;margin-bottom:8px}
.badge-stat .v{font-family:var(--font-head);font-weight:800;font-size:2rem;color:#fff}
.badge-stat .s{font-size:.75rem;color:rgba(255,255,255,.5);margin-top:4px}
@media(max-width:640px){.media img{height:360px}.badge-stat{right:0}}

/* ============================================================
   STATS — Text Editor markup version (.stat on the widget)
   ============================================================ */
.stat .num{font-family:var(--font-head);font-weight:800;font-size:clamp(2.2rem,5vw,2.9rem);
  color:transparent;background:linear-gradient(135deg,#6fb7ff,#5fd9c7);
  -webkit-background-clip:text;background-clip:text;line-height:1}
.stat .lbl{font-family:var(--font-head);font-weight:600;color:#fff;margin-top:8px}
.stat .sub{font-size:.8rem;color:rgba(255,255,255,.4);margin-top:4px}

/* ============================================================
   PROCESS — Text Editor markup version
   ============================================================ */
.step{text-align:center}
.step .step-circle{width:90px;height:90px;border-radius:50%;background:var(--navy);
  display:grid;place-items:center;margin:0 auto 22px;box-shadow:0 14px 30px rgba(11,37,69,.22)}
.step .step-circle b{font-family:var(--font-head);font-weight:800;font-size:1.4rem;
  color:transparent;background:var(--grad-accent);-webkit-background-clip:text;background-clip:text}
.step h3{font-family:var(--font-head);font-weight:700;font-size:1.05rem;color:var(--ink);margin-bottom:10px}
.step p{font-size:.875rem;color:var(--text)}

/* ============================================================
   TESTIMONIALS — Text Editor markup version
   ============================================================ */
.testi{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r);padding:28px;height:100%}
.testi .testi-stars{color:var(--star);font-size:1rem;letter-spacing:3px;margin-bottom:16px}
.testi .testi-quote{color:rgba(255,255,255,.78)!important;font-size:.875rem;font-style:italic;margin-bottom:24px}
.testi .testi-who{margin-top:auto}
.testi .testi-who .who{display:flex;align-items:center;gap:13px;border-top:1px solid rgba(255,255,255,.1);padding-top:20px}
.testi .testi-who .av{width:46px;height:46px;border-radius:50%;background:var(--grad-accent);
  color:#fff;display:grid;place-items:center;font-family:var(--font-head);font-weight:700;font-size:.8rem;flex:none}
.testi .testi-who .wm{display:flex;flex-direction:column;line-height:1.4}
.testi .testi-who .wm b{color:#fff;font-family:var(--font-head);font-weight:700;font-size:.92rem}
.testi .testi-who .wm span{color:rgba(255,255,255,.45);font-size:.8rem}

/* ============================================================
   BRAND LOCKUP (header + footer)
   ============================================================ */
.brand{display:inline-flex;align-items:center;gap:12px}
.brand .mark{width:42px;height:42px;border-radius:11px;background:var(--grad-accent);
  display:grid;place-items:center;font-family:var(--font-head);font-weight:800;color:#fff;
  font-size:1.2rem;box-shadow:0 10px 22px rgba(22,163,148,.32)}
.brand .bt{line-height:1.05}
.brand .bt b{display:block;font-family:var(--font-head);font-weight:800;color:#fff;
  font-size:1.32rem;letter-spacing:-.02em}
.brand .bt span{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--green)}

/* ============================================================
   HEADER (free Header Footer Elementor plugin)
   ============================================================ */
/* single HTML block; CSS-only (checkbox) hamburger drawer */
.pin-header{background:var(--navy);position:fixed;top:0;left:0;right:0;width:100%;z-index:1000;
  transition:background .3s ease,box-shadow .3s ease}
/* kill the empty script-mount widgets' default margins (they created a dead navy band)
   and any header widget spacing so the header is just topbar + nav height */
.pin-header .elementor-widget{margin:0!important}
.pin-header .pin-cursor-mount,.pin-header .pin-counter-mount,.pin-header .pin-paths-mount,
.pin-header .pin-hero-mount,.pin-header .pin-sticky-mount{position:absolute;height:0;overflow:hidden}
/* on scroll: hide the topbar for a compact sticky nav + add a shadow */
.pin-header.pin-stuck{box-shadow:0 10px 30px rgba(6,20,40,.4)}
.pin-header.pin-stuck .topbar{display:none}
/* full-bleed header: let .topbar span edge-to-edge (its dark bg goes full width,
   matching the original); the inner .wrap elements handle their own centering */
.pin-header > .elementor-container{max-width:100%!important;padding-left:0!important;padding-right:0!important}
.pin-header .elementor-column > .elementor-widget-wrap{padding:0}
.pin-header .elementor-widget-container{padding:0}
.pin-header .nav-wrap{display:contents}
.pin-header .wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:24px}
.pin-nav-toggle{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

.topbar{background:var(--navy-deep)}
.topbar .ti{display:flex;align-items:center;gap:22px;padding-block:9px;font-size:.82rem;color:rgba(255,255,255,.6)}
.topbar .ti span{display:inline-flex;align-items:center;gap:7px}
.topbar .ti svg{color:var(--green);flex:none}
.topbar .hrs{margin-left:auto;color:rgba(255,255,255,.5)}

.nav-row{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:76px}
/* editable WP menu (wp_nav_menu → ul.nav-menu > li > a, .sub-menu dropdown) */
.nav-menu{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.nav-menu > li{position:relative}
.nav-menu > li > a{display:flex;align-items:center;gap:5px;padding:10px 14px;border-radius:var(--r-sm);
  font-family:var(--font-head);font-weight:500;font-size:.93rem;color:rgba(255,255,255,.82);
  transition:color .2s ease,background .2s ease}
.nav-menu > li > a:hover{color:#fff;background:rgba(255,255,255,.07)}
.nav-menu > li.current-menu-item > a,.nav-menu > li.current-menu-ancestor > a,
.nav-menu > li.current-menu-parent > a,.nav-menu > li.current_page_item > a{color:#5fd9c7;
  background:rgba(95,217,199,.10);box-shadow:inset 0 0 0 1px rgba(95,217,199,.22)}
.nav-menu > li.current-menu-item > a:hover,.nav-menu > li.current-menu-ancestor > a:hover,
.nav-menu > li.current-menu-parent > a:hover,.nav-menu > li.current_page_item > a:hover{color:#5fd9c7;
  background:rgba(95,217,199,.14)}
.nav-menu .menu-item-has-children > a::after{content:"";display:inline-block;width:6px;height:6px;
  border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.6}
/* dropdown card */
.nav-menu .sub-menu{position:absolute;top:calc(100% + 12px);left:0;min-width:242px;background:#fff;
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-lg);padding:8px;list-style:none;margin:0;
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s;z-index:200}
.nav-menu .sub-menu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.nav-menu > li:hover > .sub-menu{opacity:1;visibility:visible;transform:none}
.nav-menu .sub-menu li a{display:block;padding:9px 14px;border-radius:var(--r-sm);font-family:var(--font-head);
  font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;transition:.15s}
.nav-menu .sub-menu li a:hover{background:var(--bg-soft);color:var(--green-dark)}
.nav-menu .sub-menu .current-menu-item > a{background:var(--bg-soft);color:var(--green-dark)}
.nav-menu .sub-menu .dd-view-all{border-top:1px solid var(--line);margin-top:5px;padding-top:5px}
.nav-menu .sub-menu .dd-view-all > a{color:var(--green-dark);font-weight:600}

/* ============================================================
   EDITABLE HEADER — new topbar/navrow layout + HFE Nav Menu skin
   ============================================================ */
.pin-header .ph-topbar,.pin-header .ph-navrow{width:100%}
.pin-header .ph-topbar > .elementor-container,.pin-header .ph-navrow > .elementor-container{
  max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px}
/* compact header height — trim content, containers have no padding of their own */
.pin-header .ph-topbar > .elementor-container{padding-top:3px;padding-bottom:3px}
.pin-header .ph-navrow > .elementor-container{padding-top:0;padding-bottom:0}
.pin-header .ph-navrow .brand .mark{width:38px;height:38px}
.pin-header .ph-navrow .hfe-nav-menu > li > a.hfe-menu-item,
.pin-header .ph-navrow .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item{padding-top:8px;padding-bottom:8px}
.pin-header .ph-topbar{border-bottom:1px solid rgba(255,255,255,.08)}
.pin-header .ph-topbar .elementor-widget-wrap{padding:0}
.ph-tb-contact{display:flex;gap:22px;flex-wrap:wrap}
.ph-ci{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:rgba(255,255,255,.72)}
.ph-ci svg{width:15px;height:15px;color:var(--green);flex:none}
.ph-tb-r{display:flex;justify-content:flex-end;align-items:center}
.ph-tb-hours{font-size:.82rem;color:rgba(255,255,255,.6)}
.pin-header .ph-navrow{align-items:center}
.pin-header .ph-navrow > .elementor-container{align-items:center}
.ph-logo-col .elementor-widget-wrap,.ph-cta-col .elementor-widget-wrap{padding:0}
.ph-cta-col > .elementor-widget-wrap{justify-content:flex-end}
.ph-menu-col > .elementor-widget-wrap{justify-content:flex-end}
.ph-book .elementor-button{padding:10px 22px!important}
/* HFE nav list styled to match the site nav.
   Horizontal flex is DESKTOP ONLY — on mobile HFE stacks the menu vertically; forcing
   flex there gave the hidden menu a ~660px row width that crushed the logo column. */
.pin-header .hfe-nav-menu{list-style:none;margin:0}
@media(min-width:1025px){
  .pin-header .hfe-nav-menu{display:flex!important;align-items:center;gap:2px;justify-content:flex-end}
}
.pin-header .hfe-nav-menu > li{position:relative}
/* top-level links — includes the "Services" parent anchor, which HFE nests in
   li > .hfe-has-submenu-container > a (would otherwise fall back to grey Roboto) */
.pin-header .hfe-nav-menu > li > a.hfe-menu-item,
.pin-header .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item{display:flex;align-items:center;gap:5px;
  padding:10px 14px;border-radius:var(--r-sm);font-family:var(--font-head)!important;font-weight:500!important;
  font-size:.93rem!important;color:rgba(255,255,255,.82)!important;fill:rgba(255,255,255,.82);background:transparent;
  line-height:1;letter-spacing:normal;text-transform:none;transition:color .2s ease,background .2s ease}
.pin-header .hfe-nav-menu > li > a.hfe-menu-item:hover,
.pin-header .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item:hover{color:#fff!important;background:rgba(255,255,255,.07)}
.pin-header .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item,
.pin-header .hfe-nav-menu > li.current-menu-ancestor > a.hfe-menu-item,
.pin-header .hfe-nav-menu > li.current-menu-parent > a.hfe-menu-item,
.pin-header .hfe-nav-menu > li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item,
.pin-header .hfe-nav-menu > li.current-menu-parent > .hfe-has-submenu-container > a.hfe-menu-item{color:#5fd9c7!important;
  background:rgba(95,217,199,.10);box-shadow:inset 0 0 0 1px rgba(95,217,199,.22)}
/* caret next to "Services" matches the link colour */
.pin-header .hfe-nav-menu .hfe-menu-toggle,.pin-header .hfe-nav-menu .sub-arrow,
.pin-header .hfe-nav-menu > li > .hfe-has-submenu-container > a .fa,
.pin-header .hfe-nav-menu > li > .hfe-has-submenu-container > a i,
.pin-header .hfe-nav-menu > li > .hfe-has-submenu-container > a svg{color:currentColor!important;fill:currentColor}
/* dropdown card (desktop only — mobile uses HFE's native tap-to-expand) */
.pin-header .hfe-nav-menu .sub-menu{list-style:none;margin:0}
@media(min-width:1025px){
  .pin-header .hfe-nav-menu .sub-menu{position:absolute;top:calc(100% + 12px);left:0;min-width:246px;
    background:#fff!important;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-lg);
    padding:8px!important;z-index:200;opacity:0;visibility:hidden;transform:translateY(6px);
    transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
  .pin-header .hfe-nav-menu > li:hover > .sub-menu{opacity:1;visibility:visible;transform:none}
  .pin-header .hfe-nav-menu .sub-menu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
}
.pin-header .hfe-nav-menu .sub-menu li a{display:block;padding:9px 14px!important;border-radius:var(--r-sm);
  font-family:var(--font-head);font-size:.85rem;font-weight:500;color:var(--text)!important;white-space:nowrap;
  background:transparent;transition:.15s}
.pin-header .hfe-nav-menu .sub-menu li a:hover{background:var(--bg-soft)!important;color:var(--green-dark)!important}
.pin-header .hfe-nav-menu .sub-menu .current-menu-item > a{background:var(--bg-soft)!important;color:var(--green-dark)!important}
.pin-header .hfe-nav-menu .sub-menu .dd-view-all{border-top:1px solid var(--line);margin-top:5px;padding-top:5px}
.pin-header .hfe-nav-menu .sub-menu .dd-view-all > a{color:var(--green-dark)!important;font-weight:600}
/* mobile toggle (HFE hamburger) — brand-tinted */
.pin-header .hfe-nav-menu__toggle .hfe-nav-menu-icon{color:#fff}
.pin-header .hfe-nav-menu__toggle{color:#fff}
/* ---- HFE nav menu: mobile (<=1024, HFE "tablet" breakpoint → hamburger) ---- */
@media(max-width:1024px){
  .pin-header nav,.pin-header .hfe-nav-menu,.pin-header .hfe-nav-menu-layout,
  .pin-header .hfe-nav-menu .sub-menu{background:var(--navy)!important}
  .pin-header .hfe-nav-menu a{background-color:transparent!important}
  .pin-header .hfe-nav-menu li{border-color:rgba(255,255,255,.08)!important}
  .pin-header .hfe-nav-menu > li > a.hfe-menu-item{color:rgba(255,255,255,.88)!important;border-radius:0;
    box-shadow:none;background:transparent}
  .pin-header .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item,
  .pin-header .hfe-nav-menu > li.current-menu-ancestor > a.hfe-menu-item{color:#5fd9c7!important;
    background:rgba(95,217,199,.08)!important;box-shadow:none}
  .pin-header .hfe-nav-menu .sub-menu{box-shadow:none!important;border:0!important;border-radius:0!important;
    margin:0 0 4px 16px!important;border-left:1px solid rgba(255,255,255,.14)!important}
  .pin-header .hfe-nav-menu .sub-menu li a{color:rgba(255,255,255,.62)!important}
  .pin-header .hfe-nav-menu .sub-menu li a:hover,
  .pin-header .hfe-nav-menu .sub-menu .current-menu-item > a{background:rgba(255,255,255,.06)!important;color:#fff!important}
}
/* keep the header compact on phones — hide the top contact bar + fit the logo on one line */
@media(max-width:768px){
  .pin-header .ph-topbar{display:none}
  .pin-header .ph-logo .brand{gap:9px}
  .pin-header .ph-logo .brand .mark{width:36px;height:36px;font-size:1rem;border-radius:9px}
  .pin-header .ph-logo .brand .bt b{font-size:1.02rem;white-space:nowrap}
  .pin-header .ph-logo .brand .bt span{font-size:.58rem;letter-spacing:.18em}
}
/* mobile nav row: logo left + hamburger right on one line, hide the stacked CTA */
@media(max-width:1024px){
  .pin-header .ph-navrow > .elementor-container{display:flex!important;flex-wrap:nowrap!important;
    justify-content:space-between;align-items:center;gap:12px}
  .pin-header .ph-logo-col{width:auto!important;flex:1 1 auto!important;min-width:0}
  .pin-header .ph-menu-col{width:auto!important;flex:0 0 auto!important;position:relative}
  .pin-header .ph-menu-col > .elementor-widget-wrap{justify-content:flex-end}
  .pin-header .ph-cta-col{display:none!important}
  .pin-header .hfe-nav-menu__toggle{margin:0}
  /* the horizontal menu list is ~660px wide and was crushing the logo column to 0.
     Pull it out of flow so the menu column = just the hamburger; it drops as a
     full-width overlay under the header when the toggle is tapped. */
  .pin-header .ph-menu-col ul.hfe-nav-menu{position:absolute!important;top:100%;left:0;right:auto;
    width:100vw!important;max-width:100vw!important}
  .pin-header .ph-menu-col .hfe-nav-menu-layout,
  .pin-header .ph-menu-col > .elementor-widget-wrap .hfe-nav-menu{width:auto!important;min-width:0!important}
}
.nav-actions{display:flex;align-items:center;gap:12px}
.hbtn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-head);
  font-weight:600;font-size:.95rem;padding:12px 24px;border-radius:999px;white-space:nowrap;
  background:var(--grad-accent);color:#fff;box-shadow:0 12px 26px rgba(22,163,148,.3);
  transition:transform .25s ease,box-shadow .25s ease}
.hbtn:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(22,163,148,.42)}
.burger{display:none;width:44px;height:44px;border-radius:11px;border:1px solid rgba(255,255,255,.18);
  color:#fff;align-items:center;justify-content:center;cursor:pointer}

/* mobile drawer (shown when the hidden checkbox is checked) */
.m-drawer{position:fixed;inset:0;z-index:1300;background:var(--navy);padding:18px 24px 28px;
  display:flex;flex-direction:column;transform:translateX(100%);visibility:hidden;
  transition:transform .3s ease,visibility .3s ease;overflow-y:auto}
.pin-nav-toggle:checked ~ .m-drawer{transform:none;visibility:visible}
.m-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.m-close{width:44px;height:44px;display:grid;place-items:center;color:#fff;cursor:pointer}
.m-nav{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}
.m-nav li a{display:block;padding:13px 12px;border-radius:var(--r-sm);font-family:var(--font-head);font-weight:500;
  font-size:1.05rem;color:rgba(255,255,255,.82)}
.m-nav li a:hover{background:rgba(255,255,255,.06);color:#fff}
.m-nav .current-menu-item > a,.m-nav .current-menu-ancestor > a{color:#5fd9c7}
.m-nav .sub-menu{list-style:none;margin:2px 0 8px;padding-left:14px;border-left:1px solid rgba(255,255,255,.12)}
.m-nav .sub-menu li a{font-size:.92rem;padding:10px 12px;color:rgba(255,255,255,.55)}
.hbtn-block{margin-top:auto;width:100%}
@media(min-width:1025px){.m-drawer{display:none}}
@media(max-width:1024px){
  .topbar{display:none}
  .nav-menu{display:none}
  .nav-actions .hbtn{display:none}
  .burger{display:flex}
}

/* ============================================================
   FOOTER (free Header Footer Elementor plugin)
   ============================================================ */
.footer-cta{background:linear-gradient(90deg,var(--navy),#143a6b);
  border-top:1px solid rgba(22,163,148,.2);padding-block:42px!important}
.footer-cta .elementor-column{display:flex;flex-direction:column;justify-content:center}
.fcta-btn{align-items:flex-end}
.fcta-title .elementor-heading-title{color:#fff!important;font-size:1.5rem}
.fcta-sub,.fcta-sub p{color:rgba(255,255,255,.6)}
.footer-main{background:var(--navy-deep);padding-block:60px!important}
/* 4-col grid 1.5/1/1/1.3 → 2 cols ≤992 → 1 col ≤640 (matches original) */
.elementor-column.fgrid > .elementor-widget-wrap{display:grid!important;
  grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:clamp(28px,4vw,48px)}
.elementor-column.fgrid > .elementor-widget-wrap > .elementor-widget{width:auto!important;margin-bottom:0!important}
@media(max-width:992px){.elementor-column.fgrid > .elementor-widget-wrap{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.elementor-column.fgrid > .elementor-widget-wrap{grid-template-columns:1fr!important}}

.footer-main .f-about{font-size:.9rem;color:rgba(255,255,255,.5);margin:18px 0}
.footer-main h5{color:#fff;font-family:var(--font-head);font-weight:700;font-size:.78rem;
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px}
.footer-main .news-h{margin-top:22px}

/* quick links / services — teal dot before each */
.footer-main .fcol{list-style:none;padding:0;margin:0;display:grid;gap:11px}
.footer-main .fcol a{display:flex;align-items:center;gap:9px;font-size:.9rem;
  color:rgba(255,255,255,.5);transition:color .2s ease}
.footer-main .fcol a .b{width:5px;height:5px;border-radius:50%;background:rgba(22,163,148,.4);flex:none;transition:.2s}
.footer-main .fcol a:hover{color:#5fd9c7}
.footer-main .fcol a:hover .b{background:var(--green)}

/* contact list — icon before each line */
.footer-main .fcontact{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.footer-main .fcontact li{display:flex;gap:11px;font-size:.9rem;color:rgba(255,255,255,.5)}
.footer-main .fcontact li svg{color:var(--green);margin-top:3px;flex:none}
.footer-main .fcontact a{color:rgba(255,255,255,.5);transition:color .2s ease}
.footer-main .fcontact a:hover{color:#5fd9c7}

/* socials (svg) */
.socials{display:flex;gap:10px;margin-top:8px}
.socials a{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.06);
  display:grid;place-items:center;color:rgba(255,255,255,.55);transition:.25s}
.socials a svg{width:18px;height:18px}
.socials a:hover{background:var(--green);color:#fff;transform:translateY(-3px)}

/* newsletter form */
.news{display:flex;gap:8px;margin-top:12px}
.news input{flex:1;min-width:0;padding:11px 14px;border-radius:var(--r-sm);
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#fff;font-size:.88rem}
.news input::placeholder{color:rgba(255,255,255,.35)}
.news input:focus{outline:none;border-color:var(--green)}
.news button{width:46px;flex:none;border:0;cursor:pointer;border-radius:var(--r-sm);
  background:var(--green);color:#fff;display:grid;place-items:center;transition:background .2s ease}
.news button svg{width:16px;height:16px}
.news button:hover{background:var(--green-dark)}
.fcta-btn .elementor-button{white-space:nowrap}
.footer-bottom{background:var(--navy-deep);border-top:1px solid rgba(255,255,255,.07);padding-block:22px!important}
.fbottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;
  font-size:.82rem;color:rgba(255,255,255,.35)}
.fbottom p{color:rgba(255,255,255,.35)}
.fbottom .fl{display:flex;gap:22px;flex-wrap:wrap}
.fbottom .fl a{color:rgba(255,255,255,.35)}
.fbottom .fl a:hover{color:#fff}
@media(max-width:768px){.footer-cta .elementor-container,.fcta-btn{align-items:flex-start!important}
  .fbottom{flex-direction:column;text-align:center}}

/* ============================================================
   PIXEL-MATCH ADDITIONS (vs original HTML)
   ============================================================ */

/* hero: faint background photo + directional gradient overlay */
.hero > .elementor-container{position:relative;z-index:2}
.hero::before{content:"";position:absolute;inset:0;z-index:0;opacity:.14;
  background:url('https://images.unsplash.com/photo-1707157284454-553ef0a4ed0d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=80&w=1920') center/cover no-repeat}
.hero::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,var(--navy) 10%,rgba(11,37,69,.92) 50%,rgba(11,37,69,.55))}

/* hero pill: pulsing green dot before the text */
.pill .elementor-heading-title::before{content:"";width:8px;height:8px;border-radius:50%;
  background:var(--green);flex:none;animation:pinpulse 2s ease-in-out infinite}
@keyframes pinpulse{0%,100%{opacity:1}50%{opacity:.35}}

/* hero trust: single flex row with a top divider (matches original 30px pad) */
.elementor-column.trust > .elementor-widget-wrap{display:flex!important;flex-wrap:wrap;gap:34px;
  padding-top:30px!important;border-top:1px solid rgba(255,255,255,.12)}
.elementor-column.trust > .elementor-widget-wrap > .elementor-widget{width:auto!important;margin-bottom:0!important}

/* full-row item inside a card grid (section head / footer button) */
.grid-span{grid-column:1/-1!important}
.svc-grid .sec-head-block{margin-bottom:34px}
.svc-grid .grid-foot{margin-top:34px}

/* composite, left-aligned SERVICE card (icon + title + desc + Learn More) */
.svc-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);
  height:100%;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;overflow:hidden}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.svc-card > .elementor-container{height:100%}
.svc-card > .elementor-container > .elementor-column > .elementor-widget-wrap{
  padding:28px;display:flex;flex-direction:column;height:100%}
.svc-card .elementor-widget{width:100%;margin-bottom:0}
.svc-ic .icbox{width:54px;height:54px;margin-bottom:20px;transition:.3s}/* icon→heading gap (matches original) */
.svc-ic .icbox svg{width:26px;height:26px}
.svc-card:hover .svc-ic .icbox{background:var(--grad-accent);color:#fff;transform:rotate(-6deg)}
.svc-title .elementor-heading-title{font-family:var(--font-head)!important;font-weight:700!important;
  font-size:1.08rem!important;color:var(--ink)!important;margin-bottom:11px;text-align:left}
.svc-desc{flex:1 1 auto;margin-bottom:18px}
.svc-desc,.svc-desc p{font-size:.875rem;color:var(--text);text-align:left}
.svc-card .link-arrow{margin-top:auto}
.svc-card .link-arrow .elementor-button{justify-content:flex-start}

/* match original breakpoint: hero + split sections stack at <=992px
   (Elementor's default column stacking is 767px) */
@media(max-width:992px){
  .hero > .elementor-container > .elementor-column,
  .split-sec > .elementor-container > .elementor-column{width:100%!important}
}

/* HERO + WHY-CHOOSE-US: replicate the original CSS grids exactly — true grid
   gap (no content inset), exact ratio, vertically centered, 24px gutters. */
.hero > .elementor-container{display:grid!important;grid-template-columns:1.05fr .95fr;
  gap:clamp(32px,5vw,60px);align-items:center;padding-inline:24px}
.split-sec > .elementor-container{display:grid!important;grid-template-columns:1.02fr .98fr;
  gap:clamp(32px,5vw,64px);align-items:center;padding-inline:24px}
.hero > .elementor-container > .elementor-column,
.split-sec > .elementor-container > .elementor-column{width:auto!important;max-width:none!important}
.hero .elementor-column > .elementor-widget-wrap,
.split-sec .elementor-column > .elementor-widget-wrap{padding:0}
/* features grid in the split section is 20px gap (original used inline gap:20px) */
.split-sec .elementor-column.pgrid > .elementor-widget-wrap{gap:20px}
@media(max-width:992px){
  .hero > .elementor-container,
  .split-sec > .elementor-container{grid-template-columns:1fr;gap:40px}
}
/* mobile: hero/CTA buttons go full-width & centered (matches original) */
@media(max-width:640px){
  .elementor-column.row-flex > .elementor-widget-wrap > .elementor-widget{width:100%!important}
  .row-flex .pbtn .elementor-button{width:100%!important}
}

/* hero visual: image + floating badge cards (ported from original) */
.hero-visual{position:relative}
.hero-visual .ph{border-radius:var(--r-lg);overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:var(--sh-lg)}
.hero-visual .ph img{width:100%;height:480px;object-fit:cover;display:block}
.float{position:absolute;background:#fff;border-radius:16px;box-shadow:var(--sh-lg);
  padding:14px 18px;display:flex;align-items:center;gap:13px}
.float .fic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;flex:none;
  background:var(--green-soft);color:var(--green-dark)}
.float b{display:block;font-family:var(--font-head);font-weight:700;color:var(--ink);font-size:.9rem}
.float span{font-size:.74rem;color:var(--muted)}
.float.b1{bottom:-22px;left:-26px}
.float.b2{top:-22px;right:-22px;background:var(--navy);color:#fff;display:block;padding:16px 20px}
.float.b2 .k{color:var(--green);font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.float.b2 .v{font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:#fff;margin-top:3px}

/* utility */
.text-center{text-align:center}
.mx-auto{margin-inline:auto}

/* ============================================================
   NATIVE WIDGET STYLING — Icon / Icon Box / Counter / Star Rating
   / Icon List / composites (replaces the earlier HTML versions)
   ============================================================ */
/* uploaded SVGs are stroke-based, not filled */
/* .elementor-icon svg,.elementor-icon-box-icon svg,.elementor-icon-list-icon svg{fill:none!important;stroke:currentColor} */
.elementor-icon{padding:0}

/* helper: inner-section composite gets a flush content box */
.stat > .elementor-container > .elementor-column > .elementor-widget-wrap,
.step > .elementor-container > .elementor-column > .elementor-widget-wrap,
.testi > .elementor-container > .elementor-column > .elementor-widget-wrap,
.mv-card > .elementor-container > .elementor-column > .elementor-widget-wrap,
.team-card > .elementor-container > .elementor-column > .elementor-widget-wrap,
.float.b2 > .elementor-container > .elementor-column > .elementor-widget-wrap,
.badge-stat > .elementor-container > .elementor-column > .elementor-widget-wrap{display:flex;flex-direction:column}
.stat .elementor-widget,.step .elementor-widget,.testi .elementor-widget,
.mv-card .elementor-widget,.team-card .elementor-widget,.float.b2 .elementor-widget,
.badge-stat .elementor-widget{margin-bottom:0;width:100%}

/* --- SERVICE icon (Icon widget) --- */
.svc-card .svc-ic{margin-bottom:20px;text-align:left}
.svc-ic .elementor-icon{width:54px;height:54px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:13px;background:var(--blue-soft);color:var(--blue);transition:.3s;font-size:0}
.svc-ic .elementor-icon svg{width:26px;height:26px}
.svc-card:hover .svc-ic .elementor-icon{background:var(--grad-accent);color:#fff;transform:rotate(-6deg)}

/* --- FEATURE (Icon Box, icon-left) --- */
.feature{height:100%}
.feature .elementor-icon-box-wrapper{display:flex;align-items:flex-start;gap:15px;text-align:left}
.feature .elementor-icon-box-icon{margin:0;flex:none}
.feature .elementor-icon-box-icon .elementor-icon{width:46px;height:46px;display:inline-flex;align-items:center;
  justify-content:center;border-radius:12px;background:var(--green-soft);color:var(--green-dark)}
.feature .elementor-icon-box-icon svg{width:22px;height:22px}
.feature .elementor-icon-box-title{font-family:var(--font-head)!important;font-weight:700!important;font-size:.95rem!important;color:var(--ink)!important;margin-bottom:5px}
.feature .elementor-icon-box-description{font-size:.875rem;color:var(--text);margin:0}

/* --- INDUSTRY (Icon Box, centered) --- */
.ind-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;box-shadow:var(--sh-sm);
  height:100%;display:flex;align-items:center;justify-content:center;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.ind-card:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.ind-card .elementor-icon-box-wrapper{text-align:center}
.ind-card .elementor-icon-box-icon{margin-bottom:14px}
.ind-card .elementor-icon-box-icon .elementor-icon{width:56px;height:56px;display:inline-flex;align-items:center;
  justify-content:center;border-radius:13px;background:var(--grad-soft);color:var(--blue);transition:.3s}
.ind-card .elementor-icon-box-icon svg{width:26px;height:26px}
.ind-card:hover .elementor-icon-box-icon .elementor-icon{background:var(--grad-accent);color:#fff}
.ind-card .elementor-icon-box-title{font-family:var(--font-head)!important;font-weight:700!important;color:var(--ink)!important;font-size:.95rem!important;margin:0}

/* --- VALUE (Icon Box) --- */
.value-card{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);padding:28px;box-shadow:var(--sh-sm);
  height:100%;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.value-card:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.value-card .elementor-icon-box-wrapper{text-align:left}
.value-card .elementor-icon-box-icon{margin-bottom:18px}
.value-card .elementor-icon-box-icon .elementor-icon{width:48px;height:48px;display:inline-flex;align-items:center;
  justify-content:center;border-radius:13px;background:var(--green-soft);color:var(--green-dark)}
.value-card .elementor-icon-box-icon svg{width:22px;height:22px}
.value-card .elementor-icon-box-title{font-family:var(--font-head)!important;font-weight:700!important;font-size:1rem!important;color:var(--ink)!important;margin-bottom:10px}
.value-card .elementor-icon-box-description{font-size:.875rem;color:var(--text);margin:0}

/* --- MISSION / VISION (composite) --- */
.mv-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);height:100%}
.mv-card > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:38px}
.mv-ic{margin-bottom:22px}
.mv-ic .elementor-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:13px}
.mv-ic .elementor-icon svg{width:28px;height:28px}
.mv-mint .mv-ic .elementor-icon{background:var(--green-soft);color:var(--green-dark)}
.mv-blue .mv-ic .elementor-icon{background:var(--blue-soft);color:var(--blue)}
.mv-label .elementor-heading-title{font-family:var(--font-head)!important;font-weight:700!important;font-size:.72rem!important;
  letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}
.mv-mint .mv-label .elementor-heading-title{color:var(--green-dark)!important}
.mv-blue .mv-label .elementor-heading-title{color:var(--blue)!important}
.mv-title .elementor-heading-title{font-size:1.4rem!important;color:var(--ink)!important;margin-bottom:14px}
.mv-desc p{font-size:.94rem;color:var(--text)}

/* --- TEAM (composite) --- */
.team-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);height:100%;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.team-card:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.team-card > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:28px;align-items:center}
.team-av .elementor-heading-title{width:78px;height:78px;border-radius:50%;background:var(--navy);color:#fff!important;
  display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:1.25rem!important}
.team-name .elementor-heading-title{font-size:.95rem!important;color:var(--ink)!important;margin-bottom:4px}
.team-role p{color:var(--green-dark);font-size:.85rem;font-weight:500;text-align:center}

/* --- STAT (composite) --- */
.navy .stat{padding:0;border:1px solid rgba(255,255,255,.1);border-radius:var(--r);height:100%;transition:.3s}
.navy .stat:hover{border-color:rgba(22,163,148,.35);background:rgba(22,163,148,.05)}
.stat > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:30px 22px;align-items:center}
.stat-num .elementor-heading-title{font-family:var(--font-head)!important;font-weight:800!important;
  font-size:clamp(2.2rem,5vw,2.9rem)!important;line-height:1;color:transparent!important;
  background:linear-gradient(135deg,#6fb7ff,#5fd9c7);-webkit-background-clip:text;background-clip:text}
.stat-lbl .elementor-heading-title{font-family:var(--font-head)!important;font-weight:600!important;color:#fff!important;margin-top:8px;font-size:1rem!important}
.stat-sub p{margin-top:4px;font-size:.8rem;color:rgba(255,255,255,.4)}

/* --- STEP (composite) --- */
.step{text-align:center;height:100%}
.step > .elementor-container > .elementor-column > .elementor-widget-wrap{align-items:center}
.step-num .elementor-heading-title{width:90px;height:90px;border-radius:50%;background:var(--navy);
  display:flex;align-items:center;justify-content:center;margin:0 auto 22px;box-shadow:0 14px 30px rgba(11,37,69,.22);
  font-size:1.4rem!important;color:transparent!important;background-image:var(--grad-accent);
  -webkit-background-clip:text;background-clip:text;background-color:var(--navy)}
.step-title .elementor-heading-title{font-size:1.05rem!important;color:var(--ink)!important;margin-bottom:10px}
.step-desc p{font-size:.875rem;color:var(--text)}

/* --- TESTIMONIAL (composite) --- */
.testi{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r);height:100%}
.testi > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:28px}
.testi-stars{margin-bottom:16px}
.testi-stars .elementor-star-rating{--star-icon-size:16px}
.testi-stars .elementor-star-rating i:before,.testi-stars .elementor-star-rating i.elementor-star-full:before{color:var(--star)}
.testi-stars .elementor-star-rating i{color:var(--star)}
.testi-quote p{color:rgba(255,255,255,.78);font-size:.875rem;font-style:italic}

/* --- TRUST counters --- */
.trust-item .elementor-counter-number-wrapper{font-family:var(--font-head);font-weight:800;font-size:1.75rem;color:#fff;justify-content:flex-start}
.trust-item .elementor-counter-title{font-size:.82rem;color:rgba(255,255,255,.45);text-align:left;margin-top:0}

/* --- HERO visual (Image + floating Icon Box / composite) --- */
.hero-img{position:relative}
.hero-pic img{width:100%;height:480px;object-fit:cover;border-radius:var(--r-lg);border:1px solid rgba(255,255,255,.12);box-shadow:var(--sh-lg);display:block}
.float{position:absolute;background:#fff;border-radius:16px;box-shadow:var(--sh-lg);z-index:3}
.float.b1{bottom:-22px;left:-26px;width:auto}
.float.b1 .elementor-icon-box-wrapper{display:flex;align-items:center;gap:13px;padding:14px 18px;text-align:left}
.float.b1 .elementor-icon-box-icon{margin:0;flex:none}
.float.b1 .elementor-icon-box-icon .elementor-icon{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--green-soft);color:var(--green-dark)}
.float.b1 .elementor-icon-box-icon svg{width:22px;height:22px}
.float.b1 .elementor-icon-box-title{font-family:var(--font-head)!important;font-weight:700!important;color:var(--ink)!important;font-size:.9rem!important;margin-bottom:0}
.float.b1 .elementor-icon-box-description{font-size:.74rem;color:var(--muted);margin:0}
.float.b2{top:-22px;right:-22px;background:var(--navy);width:max-content;max-width:260px}
.float.b2 > .elementor-container,.float.b2 .elementor-column,
.float.b2 > .elementor-container > .elementor-column > .elementor-widget-wrap{width:auto!important;min-width:0}
.float.b2 > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:16px 20px}
.float-k .elementor-heading-title{color:var(--green)!important;font-size:.7rem!important;font-weight:600!important;letter-spacing:.05em;text-transform:uppercase}
.float-v .elementor-heading-title{color:#fff!important;font-size:1.5rem!important;margin-top:3px}

/* --- BADGE-STAT over media (composite) --- */
.media-col{position:relative}
.media-img img{width:100%;height:500px;object-fit:cover;border-radius:var(--r-lg);box-shadow:var(--sh-lg);display:block}
/* demo-video placeholder — poster framed as a video with a gradient play button */
.why-video{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-lg);
  display:block;cursor:pointer}
.why-video img{display:block;width:100%;height:500px;object-fit:cover;border-radius:0!important;box-shadow:none!important}
.why-video::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(11,37,69,.10),rgba(11,37,69,.48));pointer-events:none}
.why-video::after{content:"";position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);width:84px;height:84px;border-radius:50%;z-index:2;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='white'%3E%3Cpath%20d='M8%205v14l11-7z'/%3E%3C/svg%3E"),linear-gradient(135deg,#1E5BB8,#16A394);
  background-repeat:no-repeat,no-repeat;background-position:center,center;background-size:30px,cover;
  box-shadow:0 16px 38px rgba(22,163,148,.55);transition:transform .25s ease}
.why-video:hover::after{transform:translate(-50%,-50%) scale(1.08)}
/* margin-top on the "More About Us" CTA in the split section */
.about-cta > .elementor-widget-wrap{margin-top:22px!important}
.badge-stat{position:absolute;bottom:-26px;right:-22px;background:var(--navy);border-radius:var(--r);width:210px;box-shadow:var(--sh-lg);z-index:3}
.badge-stat > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:20px}
.badge-k .elementor-heading-title{color:var(--green)!important;font-size:.7rem!important;font-weight:600!important;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}
.badge-v .elementor-heading-title{color:#fff!important;font-size:2rem!important}
.badge-s p{font-size:.75rem;color:rgba(255,255,255,.5);margin-top:4px}

/* --- CHECKLIST (Icon List) --- */
.checklist .elementor-icon-list-items{display:grid;gap:13px}
.checklist .elementor-icon-list-item{align-items:flex-start}
.checklist .elementor-icon-list-icon{color:var(--green)}
.checklist .elementor-icon-list-icon svg{width:18px;height:18px}
.checklist .elementor-icon-list-text{font-size:.94rem;color:var(--text);padding-inline-start:12px}

/* ============================================================
   SERVICES PAGE
   ============================================================ */
.ph-services::before{background-image:url('https://images.unsplash.com/photo-1554224155-6726b3ff858f?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=80&w=1920')}
/* tag chips (Text widget on the full service card) */
.svc-tags{margin-bottom:0}
.svc-tags .tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.svc-tags .tag{font-size:.74rem;padding:5px 11px;border-radius:var(--r-pill);background:var(--bg-soft);
  color:var(--muted);border:1px solid var(--line);font-family:var(--font-head);font-weight:500;display:inline-block}

/* ============================================================
   INDUSTRIES PAGE
   ============================================================ */
.ph-industries::before{background-image:url('https://images.unsplash.com/photo-1606836591695-4d58a73eba1e?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=80&w=1920')}
/* industry full-card icon uses the soft blue→green gradient box */
.ind-ic .elementor-icon{background:var(--grad-soft)!important;color:var(--blue)}
/* mint tag chips (Industries) */
.svc-tags .tag.mint{background:var(--green-soft);color:var(--green-dark);border-color:rgba(22,163,148,.2)}
/* industry card title is 1.1rem (vs 1.08rem on service cards) */
.ind-full .svc-title .elementor-heading-title{font-size:1.1rem!important}

/* ============================================================
   RESOURCES PAGE (blog / insights)
   ============================================================ */
/* page-hero has no bg image here (just the navy gradient) */
.sec.tight{padding-block:clamp(48px,6vw,68px)!important}
.resources .eyebrow{margin-bottom:0}

/* --- featured article card --- */
.featured-card{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);margin-top:26px}
.featured-card > .elementor-container{align-items:stretch}
.featured-img,.featured-img > .elementor-widget-wrap{padding:0}
.featured-img .feat-img,.featured-img .feat-img .elementor-image,.featured-img img{height:100%;min-height:320px;width:100%;object-fit:cover;display:block}
.featured-body > .elementor-widget-wrap{padding:clamp(28px,4vw,44px)!important;background:var(--bg-soft);justify-content:center;display:flex;flex-direction:column}
.featured-body .elementor-widget{margin-bottom:0}
.feat-tag .elementor-heading-title{display:inline-block;font-size:.74rem!important;padding:5px 11px;border-radius:var(--r-pill);
  background:var(--green-soft);color:var(--green-dark)!important;font-weight:500!important;margin-bottom:18px}
.feat-title .elementor-heading-title{font-size:1.5rem!important;line-height:1.3!important;color:var(--ink)!important;margin-bottom:16px}
.feat-desc p{font-size:.92rem;color:var(--text);margin-bottom:22px}
.feat-meta{margin-bottom:26px}
.feat-btn{margin-top:0}
.feat-btn .elementor-button{align-self:flex-start;background:var(--navy)!important;color:#fff!important}
.feat-btn .elementor-button:hover{background:var(--blue)!important}

/* --- blog meta (icon list, inline) --- */
.blog-meta .elementor-icon-list-items{display:flex;gap:12px}
.blog-meta .elementor-icon-list-item{margin:0;font-size:.75rem;color:var(--muted)}
.blog-meta .elementor-icon-list-icon{color:var(--muted)}
.blog-meta .elementor-icon-list-icon svg{width:13px;height:13px}
.blog-meta .elementor-icon-list-text{padding-inline-start:5px;color:var(--muted)}

/* --- blog grid + sidebar layout --- */
.blog-section{padding-block:clamp(48px,6vw,68px)!important}
.blog-main.pgrid > .elementor-widget-wrap{gap:24px}
.blog-sidebar > .elementor-widget-wrap{display:grid;gap:24px;align-content:start;padding-left:16px}

/* search + chips */
.searchbar-w{margin-bottom:0}
.searchbar{position:relative;margin-bottom:20px}
.searchbar svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted)}
.searchbar input{width:100%;padding:13px 16px 13px 44px;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);font-size:.9rem;color:var(--ink)}
.searchbar input:focus{outline:none;border-color:var(--green)}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.chip{padding:7px 15px;border-radius:var(--r-pill);font-size:.78rem;font-family:var(--font-head);font-weight:500;
  background:#fff;color:var(--muted);border:1px solid var(--line);cursor:pointer;transition:.2s}
.chip:hover,.chip.active{background:var(--green);color:#fff;border-color:var(--green)}

/* --- blog card --- */
.blog-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-sm);
  height:100%;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;position:relative}
.blog-card:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.blog-card > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:0;display:flex;flex-direction:column;height:100%}
.blog-card .elementor-widget{margin-bottom:0;width:100%}
.blog-thumb img,.blog-thumb .elementor-image,.blog-thumb{display:block}
.blog-thumb img{width:100%;height:180px;object-fit:cover}
.blog-cat{position:absolute;top:12px;left:12px;z-index:2}
.blog-cat .elementor-heading-title{display:inline-block;font-size:.72rem!important;padding:5px 11px;border-radius:var(--r-pill);
  background:rgba(11,37,69,.82);color:#fff!important;font-weight:500!important;backdrop-filter:blur(4px)}
.blog-title{padding:22px 22px 0}
.blog-title .elementor-heading-title{font-size:.95rem!important;font-weight:700!important;line-height:1.4;color:var(--ink)!important;margin-bottom:11px}
.blog-desc{padding:0 22px;flex:1 1 auto}
.blog-desc p{font-size:.83rem;color:var(--text);margin-bottom:16px}
.blog-card .blog-meta{padding:0 22px 22px;margin-top:auto}

/* --- sidebar cards --- */
.side-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);height:auto}
.side-card > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:26px}
.side-card .elementor-widget{margin-bottom:0;width:100%}
.side-title .elementor-heading-title{font-size:1rem!important;font-weight:700!important;color:var(--ink)!important;margin-bottom:18px}
.side-title-w .elementor-heading-title{color:#fff!important}
.recent-list .recent{display:flex;gap:12px;margin-bottom:18px}
.recent-list .recent:last-child{margin-bottom:0}
.recent-list .dot{width:8px;height:8px;border-radius:50%;background:var(--green);margin-top:8px;flex:none}
.recent-list .recent a{font-size:.88rem;color:var(--text);font-weight:500;line-height:1.4;display:block}
.recent-list .recent a:hover{color:var(--green-dark)}
.recent-list .recent .m{margin-top:5px;font-size:.74rem;color:var(--muted)}
.cat-list .elementor-icon-list-items{display:grid;gap:4px}
.cat-list .elementor-icon-list-item{padding:9px 12px;border-radius:var(--r-sm);transition:background .2s ease}
.cat-list .elementor-icon-list-item:hover{background:var(--bg-soft)}
.cat-list .elementor-icon-list-icon{color:var(--green)}
.cat-list .elementor-icon-list-icon svg{width:12px;height:12px}
.cat-list .elementor-icon-list-text{font-size:.9rem;color:var(--text)}
/* newsletter (navy) + CTA (grad) side cards */
.side-navy{background:var(--navy)!important;border:0!important}
.side-ic .elementor-icon{color:#fff}
.side-ic .elementor-icon svg{width:28px;height:28px}
.side-navy .side-sub p{color:rgba(255,255,255,.5);font-size:.88rem;margin-bottom:18px}
.news-form{display:grid;gap:10px}
.news-form input{width:100%;padding:11px 14px;border-radius:var(--r-sm);border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.08);color:#fff;font-size:.9rem}
.news-form input::placeholder{color:rgba(255,255,255,.45)}
.news-form .pbtn-like{width:100%;padding:12px;border-radius:12px;background:var(--grad-accent);color:#fff;font-family:var(--font-head);font-weight:600;cursor:pointer;border:0}
.side-grad{background:linear-gradient(135deg,var(--green-soft),var(--bg-soft))!important;border-color:rgba(22,163,148,.2)!important}
.side-grad .side-sub p{font-size:.88rem;color:var(--text);margin-bottom:18px}
.side-btn .elementor-button{width:100%;background:var(--navy)!important;color:#fff!important}
@media(max-width:992px){.blog-sidebar > .elementor-widget-wrap{padding-left:0}}
/* featured card stacks on mobile (image over body) */
@media(max-width:767px){
  .featured-card > .elementor-container > .elementor-column{width:100%!important}
  .featured-img .feat-img img,.featured-img img{min-height:240px}
}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
/* info cards (icon-left, label/value/sub) */
.info-card{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);height:100%}
/* grid: icon in col 1 (spans the 3 text rows), label/value/sub stacked in col 2 —
   robust vs the old float (which let short values sit inline with the label) */
.info-card > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:24px;
  display:grid;grid-template-columns:auto 1fr;column-gap:15px;align-items:start}
.info-card .elementor-widget{margin-bottom:0;width:auto}
.info-ic{grid-column:1;grid-row:1 / span 3;align-self:start;margin:0}
.info-k{grid-column:2;grid-row:1;align-self:center}
.info-v{grid-column:2;grid-row:2}
.info-s{grid-column:2;grid-row:3}
.info-ic .elementor-icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:13px;background:var(--green-soft)!important;color:var(--green-dark)!important}
.info-ic .elementor-icon svg{width:22px;height:22px;color:var(--green-dark)!important;stroke:var(--green-dark)!important}
.info-k .elementor-heading-title{font-size:.7rem!important;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)!important;font-weight:600!important;margin-bottom:5px}
.info-v a,.info-v .info-v-plain{color:var(--ink);font-family:var(--font-head);font-weight:600;font-size:.9rem;display:block}
.info-v a:hover{color:var(--green-dark)}
.info-s p{font-size:.78rem;color:var(--muted);margin-top:3px}

/* contact split (form | sidebar), top-aligned */
.contact-split > .elementor-container{display:grid!important;grid-template-columns:1.02fr .98fr;gap:clamp(32px,5vw,48px);align-items:start;padding-inline:24px}
.contact-split > .elementor-container > .elementor-column{width:auto!important;max-width:none!important}
.contact-split .elementor-column > .elementor-widget-wrap{padding:0}
@media(max-width:992px){.contact-split > .elementor-container{grid-template-columns:1fr;gap:40px}}

/* form card */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}
.form-card > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:clamp(26px,4vw,40px)}
.form-card .elementor-widget{margin-bottom:0;width:100%}
.form-h2 .elementor-heading-title{font-size:1.7rem!important;color:var(--ink)!important;margin-bottom:8px}
.form-sub p{color:var(--muted);font-size:.9rem;margin-bottom:28px}
/* CF7 fields */
.contact-form .wpcf7{margin:0}
.contact-form .field{display:flex;flex-direction:column;gap:7px;margin-bottom:20px}
.contact-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-form label{font-family:var(--font-head);font-weight:600;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:13px 16px;background:var(--bg-soft);
  border:1.5px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-size:.95rem;font-family:var(--font-body)}
.contact-form textarea{resize:vertical;min-height:120px}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 4px var(--green-soft)}
.contact-form .wpcf7-form-control-wrap{display:block}
.contact-form .wpcf7-submit{width:100%;padding:14px;border-radius:12px;background:var(--grad-accent);color:#fff;
  font-family:var(--font-head);font-weight:600;font-size:.95rem;border:0;cursor:pointer;margin-top:4px;transition:.25s}
.contact-form .wpcf7-submit:hover{box-shadow:0 14px 30px rgba(22,163,148,.35)}
.contact-form .form-note{font-size:.78rem;color:var(--muted);text-align:center;margin-top:14px}
.contact-form .wpcf7-response-output{border-radius:var(--r-sm);margin:14px 0 0;font-size:.85rem}

/* mini cards (sidebar) */
.mini-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm)}
.mini-card > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:26px}
.mini-card .elementor-widget{margin-bottom:0;width:100%}
.mini-title .elementor-heading-title{font-family:var(--font-head);font-weight:700;font-size:1rem!important;color:var(--ink)!important;margin-bottom:18px}
.mini-text p{font-size:.9rem;color:var(--text)}
/* office map mockup */
.office-card > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:0;overflow:hidden;border-radius:var(--r)}
.office-card .mini-title{padding:24px 24px 0}
.office-card .mini-title .elementor-heading-title{margin-bottom:8px}
.office-card .mini-text{padding:0 24px 24px}
.office-map{height:230px;background:linear-gradient(135deg,var(--blue-soft),var(--bg-soft));display:grid;place-items:center;position:relative;overflow:hidden}
.office-map-grid{position:absolute;inset:0;opacity:.3;background-image:repeating-linear-gradient(0deg,rgba(118,132,155,.3) 0,rgba(118,132,155,.3) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(90deg,rgba(118,132,155,.3) 0,rgba(118,132,155,.3) 1px,transparent 1px,transparent 40px)}
.office-map-inner{position:relative;text-align:center}
.office-map-ic{width:48px;height:48px;background:var(--green);color:#fff;display:grid;place-items:center;border-radius:13px;margin:0 auto 12px;box-shadow:var(--sh)}
.office-map-name{font-family:var(--font-head);font-weight:700;color:var(--ink);font-size:.9rem}
.office-map-sub{font-size:.78rem;color:var(--muted);margin-top:4px}
/* hours rows */
.hours-rows .row-line{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--bg-soft);font-size:.9rem}
.hours-rows .row-line:last-child{border-bottom:0}
.hours-rows .rl-day{font-weight:500;color:var(--ink)}
.hours-rows .rl-time{color:var(--green-dark);font-weight:600}
.hours-rows .rl-muted{color:var(--muted)}
/* navy "why book" card */
.mini-navy{background:var(--navy)!important;border:0!important}
.mini-title-w .elementor-heading-title{color:#fff!important}
.mini-checklist .elementor-icon-list-text{color:rgba(255,255,255,.7)}
.mini-checklist .elementor-icon-list-icon{color:var(--green)}
.mini-checklist .elementor-icon-list-icon svg{width:16px;height:16px}
/* form field rows stack on mobile */
@media(max-width:640px){.contact-form .field-row{grid-template-columns:1fr}}

/* ============================================================
   SERVICE-DETAIL PAGES
   ============================================================ */
/* 1. hero teal icon (64px rounded square) */
.ph-detail .detail-hero-ic{text-align:left;margin-bottom:22px;font-size:0}
.ph-detail .detail-hero-ic .elementor-icon{width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:15px;background:rgba(22,163,148,.15);border:1px solid rgba(22,163,148,.3);color:#5fd9c7}
.ph-detail .detail-hero-ic .elementor-icon svg{width:30px;height:30px}

/* 2. overview split (2fr / 1fr) + navy sidebar card */
.detail-overview > .elementor-container{display:grid!important;grid-template-columns:2fr 1fr;gap:48px;
  align-items:start;padding-inline:24px}
.detail-overview > .elementor-container > .elementor-column{width:auto!important;max-width:none!important}
.detail-overview .elementor-column > .elementor-widget-wrap{padding:0}
.detail-overview .sec-title .elementor-heading-title{margin:14px 0 18px}
.ov-lead p{color:var(--text);font-size:1rem;line-height:1.8;margin-bottom:16px}
.ov-lead:last-child p{margin-bottom:0}
.detail-side-card{background:var(--navy)!important;border-radius:var(--r);padding:32px!important}
.detail-side-card > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:0}
.detail-side-card .elementor-widget{margin-bottom:0}
.dsc-title .elementor-heading-title{color:#fff!important;font-size:1.2rem!important;margin-bottom:12px}
.dsc-sub p{color:rgba(255,255,255,.55);font-size:.9rem;margin-bottom:24px;line-height:1.6}
.detail-side-card .dsc-btn .elementor-button,
.detail-side-card .dsc-btn2 .elementor-button{width:100%;justify-content:center}
.detail-side-card .dsc-btn{margin-bottom:12px}
.dsc-btn2 .elementor-button{background:transparent!important;border:1px solid rgba(255,255,255,.25)!important;color:#fff!important}
.dsc-other{margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1)}
.dsc-oslabel{color:rgba(255,255,255,.4);font-size:.72rem;letter-spacing:.1em;margin-bottom:14px}
.dsc-os{display:flex;align-items:center;gap:9px;font-size:.88rem;color:rgba(255,255,255,.55)!important;padding:6px 0;text-decoration:none}
.dsc-os:hover{color:#fff!important}
.dsc-dot{width:5px;height:5px;border-radius:50%;background:var(--green);flex:none}

/* 3. key benefits — reuses .split-sec grid; image 400px tall */
.detail-benefits .benefits-list{margin-bottom:0}
.detail-benefits .media-img img{height:400px;object-fit:cover;width:100%;border-radius:var(--r)}

/* 4. what's included — soft cards (32px teal icon + text) */
.inc-item{display:flex!important;gap:12px;align-items:flex-start;padding:20px;background:var(--bg-soft);
  border:1px solid var(--line);border-radius:var(--r);height:100%}
.inc-item > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:0;flex-direction:row;gap:12px;align-items:flex-start}
.inc-item .elementor-widget{width:auto;margin-bottom:0}
.inc-ic{flex:none;font-size:0}
.inc-ic .elementor-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:9px;background:rgba(22,163,148,.14);color:var(--green-dark)}
.inc-ic .elementor-icon svg{width:17px;height:17px}
.inc-text p{font-size:.9rem;color:var(--text);line-height:1.55;margin:0}

/* 5. process — navy cards, gradient number */
.pcard{padding:28px;border-radius:var(--r);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);height:100%}
.pcard > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:0}
.pcard .elementor-widget{margin-bottom:0}
.pn .elementor-heading-title{font-family:var(--font-head);font-weight:800!important;font-size:2.4rem!important;
  color:transparent!important;background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;margin-bottom:12px;line-height:1}
.pcard-title .elementor-heading-title{color:#fff!important;font-size:1.05rem!important;margin-bottom:10px}
.pcard-desc p{color:var(--text);font-size:.9rem;line-height:1.6;margin:0}

/* 6. ideal for — white cards (check icon + text, centered row) */
.ideal-item{display:flex!important;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:20px;box-shadow:var(--sh-sm);height:100%}
.ideal-item > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:0;flex-direction:row;gap:12px;align-items:center}
.ideal-item .elementor-widget{width:auto;margin-bottom:0}
.ideal-ic{flex:none;font-size:0}
.ideal-ic .elementor-icon{color:var(--green);display:inline-flex}
.ideal-ic .elementor-icon svg{width:20px;height:20px}
.ideal-text p{font-size:.9rem;color:var(--text);line-height:1.5;margin:0}

/* responsive */
@media(max-width:900px){
  .detail-overview > .elementor-container{grid-template-columns:1fr;gap:36px}
}

/* ============================================================
   SERVICE-DETAIL V2 (richer single-service layout)
   ============================================================ */
/* hero CTA row */
.ph-v2 .hero-cta{margin-top:30px}
.ph-v2 .hero-cta .elementor-widget-wrap{display:flex;gap:14px;flex-wrap:wrap;padding:0}
.ph-v2 .hero-cta .elementor-widget{width:auto;margin:0}
.ph-v2 .crumbs{margin-top:24px}

/* intro (centered lead) */
.v2-intro .v2-lead p{color:var(--muted);font-size:1.06rem;line-height:1.85;margin:0 auto 16px;max-width:760px}
.v2-intro .v2-lead:last-of-type p{margin-bottom:0}

/* stat band — bigger numbers */
.v2-stats .stat{padding:6px 0}
.v2-stats .stat-num .elementor-heading-title{font-size:2.9rem!important;color:transparent!important;
  background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.v2-stats .stat-lbl .elementor-heading-title{color:var(--muted)!important;font-size:.92rem!important;
  letter-spacing:.02em;margin-top:4px}

/* how-we-work points — white cards, icon on top */
.v2-point{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);
  padding:30px 28px;height:100%;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.v2-point:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.v2-point > .elementor-container > .elementor-column > .elementor-widget-wrap{padding:0}
.v2-point-ib .elementor-icon-box-wrapper{text-align:left}
.v2-point-ib .elementor-icon-box-icon{margin-bottom:18px}
.v2-point-ib .elementor-icon-box-icon .elementor-icon{width:52px;height:52px;display:inline-flex;
  align-items:center;justify-content:center;border-radius:13px;background:var(--blue-soft);color:var(--blue)}
.v2-point:hover .elementor-icon-box-icon .elementor-icon{background:var(--grad-accent);color:#fff;transform:rotate(-6deg);transition:.3s}
.v2-point-ib .elementor-icon-box-icon .elementor-icon svg{width:25px;height:25px}
.v2-point-ib .elementor-icon-box-title{font-size:1.12rem;font-weight:700;color:var(--ink);margin-bottom:9px}
.v2-point-ib .elementor-icon-box-description{font-size:.92rem;color:var(--muted);line-height:1.65}

/* software strip — pills */
.soft-pills{margin-top:6px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.soft-pills .elementor-widget-container{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.soft-pill{display:inline-block;padding:11px 22px;border-radius:999px;background:#fff;border:1px solid var(--line);
  box-shadow:var(--sh-sm);font-size:.92rem;font-weight:600;color:var(--ink)}

/* ============================================================
   SMOOTH FOLLOWER CURSOR (cursify-style)
   ============================================================ */
.pin-cursor,.pin-cursor-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:99999;opacity:0;
  will-change:transform}
/* trailing ring — transform driven by JS (no transition on transform) */
.pin-cursor{width:24px;height:24px;border:2px solid var(--green);border-radius:50%;
  transition:opacity .3s ease,background-color .25s ease,border-color .25s ease}
/* tight dot */
.pin-cursor-dot{width:6px;height:6px;background:var(--green);border-radius:50%}
/* grow + fill over interactive elements (brand tint) */
.pin-cursor.is-active{background:rgba(22,163,148,.15);border-color:var(--green)}
/* hide the native arrow once the follower is live (pointer devices only) */
@media (hover:hover) and (pointer:fine){
  html.pin-cursor-on,html.pin-cursor-on *{cursor:none!important}
  /* keep the text caret usable in form fields */
  html.pin-cursor-on input,html.pin-cursor-on textarea,html.pin-cursor-on select{cursor:auto!important}
}

/* ============================================================
   BACKGROUND PATHS  (Industries "mint" section) — exact kokonut
   36 diagonal paths ×2, flowing draw via stroke-dash (JS-driven)
   ============================================================ */
/* full-bleed: make the section the positioning context and keep Elementor's
   container/column/wrap static so .mint-bg fills the FULL section width. */
.mint-anim{position:relative;overflow:hidden;isolation:isolate}
.mint-anim > .elementor-container,
.mint-anim > .elementor-container > .elementor-column,
.mint-anim > .elementor-container > .elementor-column > .elementor-widget-wrap{position:static}
.mint-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;
  opacity:0;animation:mbfade 2s ease .1s forwards}
.mint-bg svg{width:100%;height:100%;display:block}  /* stroke = brand blue→teal gradient (#pathGrad) */
.mint-bg ~ .elementor-element{position:relative;z-index:1}
@keyframes mbfade{to{opacity:1}}

/* ============================================================
   DYNAMIC BLOG  ([pinnacle_blog] shortcode) + SINGLE POST
   ============================================================ */
.blog-section{padding-block:clamp(48px,6vw,72px)!important;background:var(--bg-soft)}
.pblog{max-width:var(--container);margin:0 auto;padding-inline:24px}
.pblog a{text-decoration:none}
.pblog-meta{display:flex;gap:14px;flex-wrap:wrap;margin:2px 0}
.pblog-meta span{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;color:var(--muted)}
.pblog-meta svg{color:var(--muted)}

/* featured */
.pblog-feat{display:grid;grid-template-columns:1.05fr 1fr;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);margin-bottom:40px;transition:box-shadow .3s ease,transform .3s ease}
.pblog-feat:hover{box-shadow:var(--sh-lg);transform:translateY(-4px)}
.pblog-feat-img{background:center/cover no-repeat;min-height:340px}
.pblog-feat-body{padding:38px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.pblog-featured-flag{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-dark);margin-bottom:14px}
.pblog-tag{display:inline-block;font-size:.72rem;font-weight:600;padding:5px 12px;border-radius:var(--r-pill);
  background:var(--green-soft);color:var(--green-dark);margin-bottom:14px}
.pblog-feat-title{font-family:var(--font-head);font-weight:800;font-size:1.5rem;line-height:1.3;color:var(--ink);margin-bottom:14px}
.pblog-feat-desc{font-size:.94rem;color:var(--text);line-height:1.7;margin-bottom:18px}
.pblog-readmore{display:inline-flex;align-items:center;gap:7px;margin-top:16px;font-weight:600;font-size:.9rem;color:var(--green)}
.pblog-feat:hover .pblog-readmore svg{transform:translateX(4px)}
.pblog-readmore svg{transition:transform .25s ease}

/* layout */
.pblog-layout{display:grid;grid-template-columns:1fr 340px;gap:34px;align-items:start}
.pblog-main{min-width:0}

/* search */
.pblog-search{position:relative;margin-bottom:20px}
.pblog-search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted)}
.pblog-search input{width:100%;padding:14px 16px 14px 46px;background:#fff;border:1.5px solid var(--line);
  border-radius:var(--r-sm);font-size:.92rem;color:var(--ink);font-family:inherit}
.pblog-search input:focus{outline:none;border-color:var(--green)}

/* chips */
.pblog-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.pchip{padding:8px 16px;border-radius:var(--r-pill);font-size:.8rem;font-family:var(--font-head);font-weight:500;
  background:#fff;border:1px solid var(--line);color:var(--text);transition:.2s}
.pchip:hover{border-color:var(--green);color:var(--green-dark)}
.pchip.active{background:var(--green);color:#fff;border-color:var(--green)}
.pblog-note{font-size:.86rem;color:var(--muted);margin:0 0 18px}
.pblog-note a{color:var(--green);font-weight:600;margin-left:4px}
.pblog-empty{grid-column:1/-1;padding:40px;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:var(--r)}

/* card grid */
.pblog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.pblog-grid-3{grid-template-columns:repeat(3,1fr)}
.pcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;box-shadow:var(--sh-sm);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;height:100%}
.pcard:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:rgba(22,163,148,.3)}
.pcard-img{position:relative;display:block;height:180px;background:center/cover no-repeat}
.pcard-cat{position:absolute;top:12px;left:12px;font-size:.7rem;font-weight:600;padding:5px 11px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.95);color:var(--green-dark);box-shadow:var(--sh-sm)}
.pcard-body{display:flex;flex-direction:column;flex:1;padding:20px}
.pcard-title{font-family:var(--font-head);font-weight:700;font-size:.98rem;line-height:1.4;color:var(--ink);margin-bottom:9px}
.pcard-desc{font-size:.83rem;color:var(--text);line-height:1.6;margin-bottom:14px;flex:1}
.pcard:hover .pcard-title{color:var(--green-dark)}

/* sidebar */
.pblog-side{display:flex;flex-direction:column;gap:22px;position:sticky;top:100px}
.pside-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);padding:24px}
.pside-title{font-family:var(--font-head);font-weight:700;font-size:1rem;color:var(--ink);margin:0 0 16px}
.pside-recent a{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid var(--bg-soft)}
.pside-recent a:last-child{border-bottom:0}
.pside-recent .dot{width:7px;height:7px;border-radius:50%;background:var(--green);margin-top:6px;flex:none}
.pside-recent .t{display:block;font-size:.86rem;font-weight:600;color:var(--text);line-height:1.4}
.pside-recent a:hover .t{color:var(--green-dark)}
.pside-recent .m{display:block;margin-top:4px;font-size:.72rem;color:var(--muted)}
.pside-cats{list-style:none;margin:0;padding:0}
.pside-cats a{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:var(--r-sm);
  font-size:.88rem;color:var(--text);font-weight:500;transition:background .2s}
.pside-cats a:hover{background:var(--bg-soft);color:var(--green-dark)}
.pside-cats a span{font-size:.72rem;color:var(--muted);background:var(--bg-soft);padding:2px 9px;border-radius:var(--r-pill)}
.pside-navy{background:var(--navy);border:0}
.pside-navy .pside-title{color:#fff}
.pside-navy p{color:rgba(255,255,255,.6);font-size:.86rem;line-height:1.6;margin:0 0 16px}
.pside-news{display:flex;flex-direction:column;gap:10px}
.pside-news input{padding:12px 14px;border-radius:var(--r-sm);border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.06);color:#fff;font-size:.85rem;font-family:inherit}
.pside-news input::placeholder{color:rgba(255,255,255,.4)}
.pside-news button{padding:12px;border:0;border-radius:var(--r-sm);background:var(--grad-accent);color:#fff;
  font-weight:600;font-size:.85rem;cursor:pointer;font-family:inherit}
.pside-grad{background:var(--grad-accent);border:0}
.pside-grad .pside-title{color:#fff}
.pside-grad p{color:rgba(255,255,255,.85);font-size:.86rem;line-height:1.6;margin:0 0 16px}
.pside-cta-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;color:var(--navy);font-weight:600;
  font-size:.85rem;padding:11px 18px;border-radius:var(--r-sm)}

/* ---- single post (blog detail) hero ---- */
/* the article's feature image is the hero background, darkened by an overlay */
.ph-blog{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.ph-blog::before{content:"";display:block;position:absolute;inset:0;z-index:1;opacity:1;
  background:linear-gradient(180deg,rgba(11,37,69,.82),rgba(11,37,69,.9))}
.ph-blog::after{display:none}
/* the title & eyebrow here are plain <h1>/<a> (from PHP), not Elementor widgets —
   style them directly so the title is white and the eyebrow is a teal pill */
.ph-blog h1.ph-title{color:#fff!important;max-width:840px}
.psingle-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:700;
  font-size:.72rem;line-height:1;letter-spacing:.16em;text-transform:uppercase;padding:8px 15px;border-radius:var(--r-pill);
  color:#5fd9c7;background:rgba(22,163,148,.14);border:1px solid rgba(22,163,148,.3);text-decoration:none;transition:background .2s}
.psingle-eyebrow:hover{background:rgba(22,163,148,.24)}
.pblog-hero-wrap{position:relative;z-index:2;max-width:var(--container);margin:0 auto;padding-inline:24px}
.psingle-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:20px 0 0}
.psingle-author{font-size:.8rem;color:rgba(255,255,255,.55)}
.psingle-meta .pblog-meta span{color:rgba(255,255,255,.6)}
.psingle-meta .pblog-meta svg{color:#5fd9c7}
.psingle-wrap{max-width:820px;margin:0 auto;padding-inline:24px}
.psingle-img{width:100%;height:auto;max-height:440px;object-fit:cover;border-radius:var(--r-lg);margin-bottom:36px;box-shadow:var(--sh)}
.psingle-body{font-size:1.05rem;line-height:1.85;color:var(--text)}
.psingle-body h2{font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:var(--ink);margin:36px 0 14px}
.psingle-body p{margin:0 0 20px}
.psingle-body ul,.psingle-body ol{margin:0 0 22px;padding-left:22px}
.psingle-body li{margin-bottom:9px}
.psingle-body a{color:var(--green-dark);text-decoration:underline}
.psingle-body em{color:var(--ink)}
/* inline images inside the article content (added in the post editor) */
.psingle-body img{max-width:100%;height:auto;border-radius:var(--r);margin:10px 0 28px;display:block}
.psingle-body figure{margin:0 0 28px}
.psingle-body figure img{margin-bottom:8px}
.psingle-body figcaption{font-size:.82rem;color:var(--muted);text-align:center}
.psingle-body h3{font-family:var(--font-head);font-weight:700;font-size:1.2rem;color:var(--ink);margin:28px 0 12px}
.psingle-body blockquote{border-left:3px solid var(--green);padding:4px 0 4px 20px;margin:0 0 24px;color:var(--ink);font-style:italic}
.psingle-back{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-weight:600;color:var(--green);font-size:.9rem}
.psingle-back svg{transform:rotate(180deg)}
.psingle-related .pblog-hero-wrap,.psingle-cta .pblog-cta-wrap{max-width:var(--container);margin:0 auto;padding-inline:24px}
.psingle-rel-title{font-family:var(--font-head);font-weight:800;font-size:1.6rem;color:var(--ink);margin:0 0 26px;text-align:center}
.pblog-cta-wrap{text-align:center;max-width:640px;margin:0 auto;padding-inline:24px}
.psingle-cta h2{font-family:var(--font-head);font-weight:800;font-size:1.7rem;color:#fff;margin:0 0 14px}
.psingle-cta p{color:rgba(255,255,255,.6);margin:0 0 26px}


#particle-canvas{
    position: relative;
    overflow: hidden;
}
#particles-js{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:0;
    pointer-events:none;
}
#particle-canvas > .elementor-container{
    position:relative;
    z-index:2;
}

@media(max-width:900px){
  .pblog-layout{grid-template-columns:1fr}
  .pblog-side{position:static;flex-direction:column}
  .pblog-feat{grid-template-columns:1fr}
  .pblog-feat-img{min-height:220px}
}
@media(max-width:640px){
  .pblog-grid,.pblog-grid-3{grid-template-columns:1fr}
}
/* AJAX loading state for the blog results */
#pblog-results{transition:opacity .15s ease;min-height:120px}
#pblog-results.pblog-loading{opacity:.4;pointer-events:none}
