/* Preview-only: push sticky site nav below the fixed preview bar */
.cp-nav{top:48px !important;}

/* ============================================================
   RESET
   ============================================================ */
*,*::before,*::after { box-sizing:border-box;margin:0;padding:0; }
html { scroll-behavior:smooth;font-size:16px; }
body { font-family:'Outfit',system-ui,sans-serif;color:#111418;background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden; }
img { display:block;max-width:100%;height:auto; }
a { color:inherit; }
/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root { /* Brand */
  --blue:       #00A3FF;
  --blue-dk:    #066398;
  --blue-hover: #0089d6;

  /* Dark backgrounds (hero, dark sections) */
  --charcoal:   #1C1C1C;
  --charcoal-2: #242424;

  /* Navy (B-variant dark sections) */
  --navy:       #0B1220;
  --navy-2:     #141C2B;

  /* Ink / body */
  --ink:        #111418;
  --mid:        #4A5264;
  --soft:       #8C93A4;

  /* Light backgrounds */
  --rule:       #E0E4EA;
  --bg:         #F8F9FB;
  --white:      #FFFFFF;

  /* Fonts */
  --fd-hero:    'Libre Baskerville',Georgia,serif;
  --fd-sec:     'Libre Baskerville',Georgia,serif;
  --fb:         'Outfit',system-ui,sans-serif;

  /* Spacing */
  --sec-pad:    100px 5%;
  --sec-pad-sm: 72px 5%; }
/* ============================================================
   LAYOUT HELPERS
   ============================================================ */
.cp-inner { max-width:1200px;margin:0 auto;padding:0 5%; }
.cp-sec { padding:var(--sec-pad); }
.cp-sec--bg { background:var(--bg); }
.cp-sec--white { background:var(--white); }
.cp-sec--navy { background:var(--navy); }
.cp-sec--navy2 { background:var(--navy-2); }
.cp-sec--charcoal { background:var(--charcoal); }
/* ============================================================
   TYPOGRAPHY SHARED
   ============================================================ */
.cp-eye { font-family:var(--fb);font-size:10px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--blue);display:block;margin-bottom:14px; }
.cp-h2 { font-family:var(--fd-sec);
  font-size:clamp(28px,3.5vw,50px);font-weight:700;
  line-height:1.1;letter-spacing:-.015em;color:var(--ink);
  margin-bottom:14px; }
.cp-h2 em { font-style:italic;font-weight:400;color:var(--blue); }
.cp-h2--white { color:#fff; }
/* Page-title H1s intentionally use the same visual scale as the original H2 design. */
.elementor h1.cp-h2 { font-family:var(--fd-sec);font-size:clamp(28px,3.5vw,50px)!important;font-weight:700;line-height:1.1;letter-spacing:-.015em; }
.cp-lead { font-size:17px;font-weight:300;color:var(--mid);line-height:1.85;max-width:560px; }
/* ============================================================
   BUTTONS
   ============================================================ */
.cp-btn { display:inline-block;font-family:var(--fb);
  font-size:10px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;text-decoration:none;
  padding:14px 30px;border:1.5px solid transparent;
  transition:background .2s,color .2s,border-color .2s;
  white-space:nowrap; }
.cp-btn--solid { background:var(--blue);color:#fff!important;border-color:var(--blue); }
.cp-btn--solid:hover { background:var(--blue-dk);border-color:var(--blue-dk); }
.cp-btn--ghost-w { background:transparent;color:#fff!important;border-color:rgba(255,255,255,.5); }
.cp-btn--ghost-w:hover { background:rgba(255,255,255,.08);border-color:#fff; }
.cp-btn--ghost-dk { background:transparent;color:var(--ink)!important;border-color:var(--ink); }
.cp-btn--ghost-dk:hover { background:var(--ink);color:#fff!important; }
.cp-btn--white { background:#fff;color:var(--navy)!important;border-color:#fff; }
.cp-btn--white:hover { background:rgba(255,255,255,.88); }
.cp-btn-row { display:flex;gap:12px;flex-wrap:wrap;align-items:center; }
/* ============================================================
   ANIMATIONS
   Using Intersection Observer + CSS — no JS libraries needed
   ============================================================ */
/* Hero-only entrance animation — fires once on page load, nowhere else */
.fade-up,.fade-in { opacity:1;transform:none; }
.cp-hero .fade-up { opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease; }
.cp-hero .fade-up.visible { opacity:1;transform:none; }
.cp-hero .stagger-1 { transition-delay:.1s; }
.cp-hero .stagger-2 { transition-delay:.2s; }
.cp-hero .stagger-3 { transition-delay:.3s; }
/* ============================================================
   HERO — full-bleed image, text panel as transparent overlay
   ============================================================ */
.cp-hero { min-height:100vh;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:stretch; }
/* Full-bleed background image */
.cp-hero__bg { position:absolute;inset:0;z-index:0; }
.cp-hero__bg img { width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block; }
/* Text panel — left half, semi-transparent dark overlay */
.cp-hero__left { position:relative;z-index:2;
  width:50%;
  display:flex;flex-direction:column;justify-content:center;
  padding:110px 6% 90px 5%;
  background:rgba(20,26,38,.58);
  backdrop-filter:blur(1px);
  -webkit-backdrop-filter:blur(1px); }
/* vertical hairline rule on right edge of panel */
.cp-hero__left::after { content:'';position:absolute;top:15%;right:0;
  width:1px;height:70%;background:rgba(255,255,255,.15); }
/* Right half — fully transparent, shows the image behind */
.cp-hero__right { position:relative;z-index:1;
  width:50%;
  /* keeps the num overlay anchor */ }
.cp-hero__loc { font-family:var(--fb);font-size:10px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--blue);display:block;margin-bottom:34px; }
.cp-hero h1 { font-family:var(--fd-hero);
  font-size:clamp(28px,3.5vw,50px)!important;font-weight:700;
  color:#fff;line-height:1.02;letter-spacing:-.01em;
  margin-bottom:28px; }
/* Script/cursive line — matches Image 1 italic style */
.cp-hero h1 em { font-family:var(--fd-hero);
  font-style:italic;font-weight:400;
  color:var(--blue);
  font-size:1.0em;
  letter-spacing:-.01em;
  line-height:1.1;
  display:block; }
.cp-hero__sub { font-size:16px;font-weight:300;color:rgba(255,255,255,.72);
  line-height:1.9;max-width:440px;margin-bottom:44px; }
/* number overlay — anchored to bottom of right half */
.cp-hero__nums { position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(transparent,rgba(14,20,30,.65));
  padding:60px 40px 36px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px; }
.cp-hero__num-n { font-family:var(--fd-hero);
  font-size:34px;font-weight:700;
  color:#fff;display:block;line-height:1; }
.cp-hero__num-l { font-size:10px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,255,255,.55);
  display:block;margin-top:5px; }
/* subtle scan-line texture on full hero */
.cp-hero::before { content:'';position:absolute;inset:0;z-index:1;
  background-image:repeating-linear-gradient(
    0deg,rgba(255,255,255,.012) 0,rgba(255,255,255,.012) 1px,transparent 1px,transparent 64px
  );
  pointer-events:none; }
/* ============================================================
   PROOF BAR
   ============================================================ */
.cp-proof { background:var(--blue);
  display:grid;grid-template-columns:repeat(5,1fr); }
.cp-proof__cell { padding:20px 0;text-align:center;
  border-right:1px solid rgba(255,255,255,.2); }
.cp-proof__cell:last-child { border-right:none; }
.cp-proof__n { font-family:var(--fd-sec);font-size:26px;font-weight:700;
  color:#fff;display:block;line-height:1; }
.cp-proof__l { font-size:9.5px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:rgba(255,255,255,.72);
  display:block;margin-top:5px; }
/* ============================================================
   AUTHORITY — Variant B
   2-col. Callout uses top border. Contact card is navy dark.
   ============================================================ */
.cp-authority { display:grid;grid-template-columns:1.15fr 1fr;
  gap:90px;align-items:start; }
.cp-authority__lead { font-size:18px;font-weight:300;color:var(--mid);
  line-height:1.85;margin-bottom:22px; }
.cp-authority p { font-size:15px;color:var(--mid);line-height:1.85;margin-bottom:14px; }
.cp-authority p:last-child { margin-bottom:0; }
.cp-callout { border-top:2px solid var(--blue);
  padding-top:18px;margin:26px 0; }
.cp-callout__lbl { font-size:9px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--blue);
  display:block;margin-bottom:10px; }
.cp-callout p { font-size:15px;color:var(--ink);line-height:1.78;margin:0; }
.cp-cred-tags { display:flex;flex-wrap:wrap;gap:8px;margin-top:26px; }
.cp-cred-tag { font-size:11px;font-weight:500;padding:5px 13px;
  border:1px solid var(--rule);color:var(--mid);background:var(--white); }
/* navy contact card */
.cp-card { background:var(--navy);padding:32px;position:sticky;top:30px; }
.cp-card h3 { font-family:var(--fd-sec);font-size:20px;font-weight:700;
  color:#fff;margin-bottom:22px; }
.cp-card-row { display:flex;gap:14px;padding:12px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-size:14px;color:rgba(255,255,255,.55);line-height:1.5; }
.cp-card-row:last-of-type { border-bottom:none; }
.cp-card-row strong { font-weight:600;color:rgba(255,255,255,.85);min-width:72px;flex-shrink:0; }
.cp-card-row a { color:var(--blue);font-weight:600;text-decoration:none; }
.cp-card-row a:hover { color:#fff; }
.cp-insurance { margin-top:16px;padding:12px 16px;background:var(--bg);
  font-size:12px;color:var(--soft);line-height:1.65; }
/* ============================================================
   STATS — Variant B (oversized 60px numerals)
   ============================================================ */
.cp-stats { display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  margin-top:52px; }
.cp-stat { padding:40px 28px;border-right:1px solid var(--rule); }
.cp-stat:last-child { border-right:none; }
.cp-stat__n { font-family:var(--fd-sec);font-size:58px;font-weight:700;
  color:var(--blue);line-height:1;display:block;
  letter-spacing:-.03em;margin-bottom:12px; }
.cp-stat__title { font-size:13px;font-weight:700;color:var(--ink);margin-bottom:5px; }
.cp-stat__body { font-size:13px;color:var(--soft);line-height:1.6; }
/* ============================================================
   PHOTO MOSAIC
   ============================================================ */
.cp-mosaic { display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:340px 340px;
  gap:4px; }
.cp-mosaic__cell { overflow:hidden;position:relative;background:var(--navy); }
.cp-mosaic__cell img { width:100%;height:100%;object-fit:cover;opacity:.88;
  transition:transform .55s ease; }
.cp-mosaic__cell:hover img { transform:scale(1.04); }
.cp-mosaic__cell--span { grid-row:1/3; }
.cp-mosaic__cap { position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(transparent,rgba(11,18,32,.85));
  padding:36px 22px 20px;color:#fff; }
.cp-mosaic__cap strong { font-family:var(--fd-sec);font-size:17px;font-weight:700;display:block; }
.cp-mosaic__cap span { font-size:11px;color:rgba(255,255,255,.55);margin-top:3px;display:block; }
/* ============================================================
   FEATURE SECTIONS — Variant B layout
   Light bg body for residential, dark navy for commercial
   ============================================================ */
.cp-feature { display:grid;grid-template-columns:1fr 1fr;min-height:560px; }
.cp-feature--rev { direction:rtl; }
.cp-feature--rev>* { direction:ltr; }
.cp-feature__img { overflow:hidden; }
.cp-feature__img img { width:100%;height:100%;object-fit:cover;transition:transform .6s ease; }
.cp-feature__img:hover img { transform:scale(1.03); }
.cp-feature__body { display:flex;flex-direction:column;justify-content:center;padding:72px 6%; }
.cp-feature__body--light { background:var(--bg); }
.cp-feature__body--dark { background:var(--navy); }
.cp-feature__body h2 { font-family:var(--fd-sec);
  font-size:clamp(26px,3vw,44px);font-weight:700;
  line-height:1.1;margin-bottom:18px; }
.cp-feature__body--light h2 { color:var(--ink); }
.cp-feature__body--dark  h2 { color:#fff; }
.cp-feature__body h2 em { font-style:italic;font-weight:400;color:var(--blue); }
.cp-feature__body p { font-size:15px;line-height:1.85;margin-bottom:14px; }
.cp-feature__body--light p { color:var(--mid); }
.cp-feature__body--dark  p { color:rgba(255,255,255,.6); }
.cp-feature__body p:last-of-type { margin-bottom:28px; }
.cp-speclist { list-style:none;margin:18px 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:0; }
.cp-speclist li { font-size:13px;padding:7px 0;
  border-bottom:1px solid;
  display:flex;align-items:flex-start;gap:9px;line-height:1.45; }
.cp-feature__body--light .cp-speclist li { color:var(--mid);border-color:var(--rule); }
.cp-feature__body--dark  .cp-speclist li { color:rgba(255,255,255,.58);border-color:rgba(255,255,255,.07); }
.cp-speclist li::before { content:'→';color:var(--blue);font-weight:700;flex-shrink:0;font-size:12px;margin-top:1px; }
/* ============================================================
   PROCESS — Variant C (3 dark panels, gap: 1px)
   ============================================================ */
.cp-process-wrap { margin-top:52px; }
.cp-process { display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:rgba(255,255,255,.12); }
.cp-process__step { background:var(--navy-2);padding:40px 32px; }
.cp-process__num { font-size:9px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--blue);
  display:block;margin-bottom:14px; }
.cp-process__step h3 { font-family:var(--fd-sec);font-size:22px;font-weight:700;
  color:#fff;margin-bottom:12px;line-height:1.2; }
.cp-process__step p { font-size:14px;color:rgba(255,255,255,.52);line-height:1.78; }
/* ============================================================
   COMPARISON TABLE — Variant B
   ============================================================ */
.cp-sec-head { margin-bottom:52px; }
.cp-table { width:100%;border-collapse:collapse;font-family:var(--fb); }
.cp-table th { text-align:left;padding:14px 18px;background:var(--navy);
  color:#fff;font-size:11px;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase; }
.cp-table td { padding:13px 18px;border-bottom:1px solid var(--rule);
  color:var(--mid);font-size:14px;line-height:1.5;vertical-align:top; }
.cp-table tr:last-child td { border-bottom:none; }
.cp-table .cp-hl td { background:rgba(0,163,255,.05);color:var(--ink);font-weight:500; }
.cp-tick { color:var(--blue);font-weight:700; }
.cp-cross { color:#c0341d; }
/* ============================================================
   TESTIMONIALS — Variant C layout, white background
   Left border + oversized opening quote mark
   ============================================================ */
.cp-testi-grid { display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:var(--rule);border:1px solid var(--rule);
  margin-top:52px; }
.cp-testi { background:var(--white);padding:36px 32px;
  position:relative; }
.cp-testi::before { content:'\201C';
  font-family:var(--fd-sec);font-size:80px;font-weight:700;
  color:var(--blue);opacity:.15;
  position:absolute;top:16px;left:24px;line-height:1; }
.cp-testi__q { font-family:var(--fd-sec);font-size:16px;font-style:italic;
  font-weight:400;color:var(--ink);line-height:1.82;
  margin-bottom:20px;position:relative;z-index:1; }
.cp-testi__who { font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft); }
.cp-testi__who strong { color:var(--mid);font-weight:600; }
/* ============================================================
   TESTIMONIAL CAROUSEL — replaces the static quote grid above
   Full-bleed navy carousel, one quote at a time
   ============================================================ */
.cp-testi-carousel { position:relative;min-height:520px;display:flex;align-items:center;overflow:hidden;color:#fff; }
.cp-testi-carousel__bg { position:absolute;inset:0;background:radial-gradient(120% 90% at 20% 15%,#2c4a5e 0%,#16232f 55%,#0c141f 100%); }
.cp-testi-carousel__overlay { position:absolute;inset:0;background:var(--navy);opacity:.55; }
.cp-testi-carousel__content { position:relative;z-index:2;width:100%;max-width:820px;margin:0 auto;padding:96px 24px;text-align:center; }
.cp-testi-carousel__quote { margin:26px 0 30px;font-family:var(--fd-hero);font-style:italic;font-weight:400;font-size:clamp(20px,2.4vw,30px);line-height:1.55;color:rgba(255,255,255,.92); }
.cp-testi-carousel__author { font-family:var(--fb);font-size:13px;letter-spacing:.03em; }
.cp-testi-carousel__name { color:var(--blue);font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-right:6px; }
.cp-testi-carousel__role { color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;font-size:12px; }
.cp-testi-carousel__nav { display:flex;align-items:center;justify-content:center;gap:20px;margin-top:44px; }
.cp-testi-carousel__icon { display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:4px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:16px;transition:background .18s ease,border-color .18s ease;cursor:pointer; }
.cp-testi-carousel__icon:hover { background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.35); }
.cp-testi-carousel__dots { display:flex;align-items:center;gap:10px; }
.cp-testi-carousel__dot { width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.3);border:none;padding:0;cursor:pointer;transition:background .18s ease,transform .18s ease; }
.cp-testi-carousel__dot--active { background:var(--blue);transform:scale(1.2); }
/* ============================================================
   FAQ ACCORDION — Variant B
   ============================================================ */
.cp-faq { max-width:820px; }
.cp-faq__item { border-top:1px solid var(--rule); }
.cp-faq__item:last-child { border-bottom:1px solid var(--rule); }
.cp-faq__btn { width:100%;background:none;border:none;padding:24px 0;
  display:flex;align-items:center;justify-content:space-between;
  gap:20px;cursor:pointer;text-align:left; }
.cp-faq__btn:hover,.cp-faq__btn:focus,.cp-faq__btn:focus-visible { background:transparent!important;color:var(--ink)!important; }
.cp-faq__btn:focus-visible { outline:2px solid var(--blue);outline-offset:4px; }
.cp-faq__btn:hover .cp-faq__q { color:var(--blue); }
.cp-faq__q { font-family:var(--fd-sec);font-size:18px;font-weight:700;
  color:var(--ink);line-height:1.3;transition:color .18s; }
.cp-faq__icon { width:28px;height:28px;border:1.5px solid var(--rule);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:300;color:var(--mid);
  transition:all .22s;font-family:var(--fb);user-select:none; }
.cp-faq__item.is-open .cp-faq__icon { background:var(--blue);border-color:var(--blue);
  color:#fff;transform:rotate(45deg); }
.cp-faq__body { overflow:hidden;max-height:0;transition:max-height .34s ease; }
.cp-faq__item.is-open .cp-faq__body { max-height:400px; }
.cp-faq__a { font-size:15px;color:var(--mid);line-height:1.82;padding-bottom:24px; }
.cp-faq__a strong { color:var(--ink); }
/* ============================================================
   BIO — Variant B
   Square avatar with bottom border. Outfit body.
   ============================================================ */
.cp-bio { display:grid;grid-template-columns:140px 1fr;gap:52px;align-items:start;max-width:820px; }
.cp-bio__avatar { width:120px;height:120px;
  background:var(--navy);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fd-sec);font-size:34px;font-weight:700;
  color:var(--blue);
  border-bottom:3px solid var(--blue); }
.cp-bio__name { font-family:var(--fd-sec);font-size:28px;font-weight:700;color:var(--ink);margin-bottom:4px; }
.cp-bio__role { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--blue);display:block;margin-bottom:18px; }
.cp-bio__body { font-size:15px;color:var(--mid);line-height:1.85; }
.cp-bio__body p+p { margin-top:12px; }
.cp-bio__stats { display:flex;gap:28px;flex-wrap:wrap;margin-top:22px;padding-top:22px;border-top:1px solid var(--rule); }
.cp-bio__sn { font-family:var(--fd-sec);font-size:26px;font-weight:700;color:var(--ink);display:block;line-height:1; }
.cp-bio__sl { font-size:11px;color:var(--soft); }
/* ============================================================
   ENTITY / DATA SECTION — Variant B
   ============================================================ */
.cp-entity { background:var(--navy-2);padding:80px 5%; }
.cp-entity__grid { display:grid;grid-template-columns:1fr 2.2fr;gap:80px;align-items:start;max-width:1200px;margin:0 auto; }
.cp-entity__co { font-family:var(--fd-sec);font-size:28px;font-weight:700;color:#fff;line-height:1.15; }
.cp-entity__phone { display:block;font-family:var(--fd-sec);font-size:26px;font-weight:700;color:var(--blue);text-decoration:none;margin-top:16px; }
.cp-entity__phone--sm { font-size:20px;margin-top:8px; }
.cp-entity__email { display:block;font-size:13px;color:rgba(255,255,255,.36);text-decoration:none;margin-top:4px; }
.cp-entity__addr { font-size:12px;color:rgba(255,255,255,.22);margin-top:8px;line-height:1.7; }
.cp-entity__copy { font-size:14.5px;color:rgba(255,255,255,.52);line-height:1.9; }
.cp-entity__copy p+p { margin-top:12px; }
.cp-entity__copy strong { color:rgba(255,255,255,.82);font-weight:500; }
.cp-entity__tags { display:flex;flex-wrap:wrap;gap:6px;margin-top:20px; }
.cp-entity__tag { font-size:10px;color:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.09);padding:3px 10px; }
/* CTA band — page content only; build the global footer in Theme Builder. */
.cp-cta { text-align:center;padding:100px 5%; }
.cp-cta h2 { font-family:var(--fd-sec);font-size:clamp(34px,5.5vw,60px);font-weight:700;color:#fff;line-height:1.1;max-width:600px;margin:0 auto 16px; }
.cp-cta h2 em { font-style:italic;font-weight:400;color:var(--blue); }
.cp-cta__sub { font-size:17px;font-weight:300;color:rgba(255,255,255,.65);max-width:440px;margin:0 auto 36px;line-height:1.8; }
.cp-cta__actions { display:flex;justify-content:center;gap:16px;flex-wrap:wrap; }
/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1020px){.cp-hero { min-height:100svh; }
.cp-hero__left { width:100%;background:rgba(20,26,38,.58); }
.cp-hero__left::after { display:none; }
.cp-hero__right { display:none; }
.cp-authority { grid-template-columns:1fr;gap:40px; }
.cp-card { position:static; }
.cp-feature { grid-template-columns:1fr;min-height:auto; }
.cp-feature__img { height:320px; }
.cp-feature--rev { direction:ltr; }
.cp-stats { grid-template-columns:repeat(2,1fr); }
.cp-stat:nth-child(2) { border-right:none; }
.cp-stat:nth-child(1),.cp-stat:nth-child(2) { border-bottom:1px solid var(--rule); }
.cp-process { grid-template-columns:1fr; }
.cp-testi-grid { grid-template-columns:1fr; }
.cp-mosaic { grid-template-columns:1fr 1fr;grid-template-rows:260px 260px 260px; }
.cp-mosaic__cell--span { grid-row:auto; }
.cp-bio { grid-template-columns:1fr;gap:24px; }
.cp-entity__grid { grid-template-columns:1fr;gap:36px; }
.cp-speclist { grid-template-columns:1fr; }
.cp-proof { grid-template-columns:repeat(3,1fr); }
.cp-proof__cell:nth-child(4),
  .cp-proof__cell:nth-child(5) { border-top:1px solid rgba(255,255,255,.2); }
.cp-table { display:block;overflow-x:auto; }

}
@media(max-width:640px){:root { --sec-pad:64px 5%; }
.cp-proof { grid-template-columns:repeat(2,1fr); }
.cp-proof__cell:nth-child(5) { grid-column:span 2; }
.cp-stats { grid-template-columns:1fr; }
.cp-stat { border-right:none!important;border-bottom:1px solid var(--rule)!important; }
.cp-stat:last-child { border-bottom:none!important; }
.cp-mosaic { grid-template-columns:1fr; }
.cp-mosaic__cell { height:240px; }
.cp-entity { padding:64px 5%; }
.cp-cta { padding:72px 5%; }

}
@media(max-width:400px){.cp-hero h1 { font-size:38px; }
.cp-btn { padding:12px 22px;font-size:9.5px; }

}/* ============================================================
   ANCHOR SCROLL OFFSET — account for the sticky nav
   ============================================================ */

/* ============================================================
   POST GRID / CARD — shared by Projects and Blog sections
   ============================================================ */
.cp-post-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:64px 5% 40px;max-width:1200px;margin:0 auto; }
.cp-post-card { background:var(--white);display:flex;flex-direction:column;scroll-margin-top:90px; }
.cp-post-card:target { outline:2px solid var(--blue);outline-offset:6px; }
.cp-post-card__media { position:relative;aspect-ratio:4/3;overflow:hidden;margin-bottom:20px; }
.cp-post-card__media img,.cp-post-card__media .cp-post-card__swatch { width:100%;height:100%;object-fit:cover; }
.cp-post-card__tag { position:absolute;top:14px;left:14px;background:var(--blue);color:#fff;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:3px; }
.cp-post-card__tag--draft { background:var(--soft); }
.cp-post-card__meta { font-size:13px;color:var(--soft);margin-bottom:10px; }
.cp-post-card__title { font-family:var(--fd-sec);font-size:21px;line-height:1.35;color:var(--ink);margin:0 0 12px; }
.cp-post-card__excerpt { font-size:14px;line-height:1.7;color:var(--mid);margin:0 0 18px;flex:1; }
.cp-post-card__link { font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--blue); }
.cp-post-card__link:hover { color:var(--blue-dk); }

@media(max-width:900px){.cp-post-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:640px){.cp-post-grid { grid-template-columns:1fr; }
}/* ---------- Cross-page links (now cross-section) ---------- */
.cp-crosslinks { max-width:1200px;margin:0 auto;padding:0 5% 96px;text-align:center;font-size:15px;color:var(--mid); }
.cp-crosslinks a { color:var(--blue);font-weight:600; }
.cp-crosslinks a:hover { color:var(--blue-dk); }
/* ============================================================
   SERVICE PAGES — intro, feature list and project spotlight
   ============================================================ */
.cp-svc-intro { display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:start; }
.cp-svc-intro__text p { max-width:none; }
.cp-svc-intro__img { overflow:hidden;aspect-ratio:4/3; }
.cp-svc-intro__img img { width:100%;height:100%;object-fit:cover;display:block; }
.cp-svc-features { display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:40px; }
.cp-svc-feature { padding:26px 28px;background:var(--white);border:1px solid var(--rule); }
.cp-svc-feature h3 { font-family:var(--fd-sec);font-size:19px;color:var(--ink);margin:0 0 10px; }
.cp-svc-feature p { font-size:14px;line-height:1.75;color:var(--mid);margin:0; }
.cp-svc-spotlight { margin-top:56px;display:flex;align-items:center;gap:36px;background:var(--navy);color:#fff;overflow:hidden; }
.cp-svc-spotlight__img { flex:0 0 42%;aspect-ratio:4/3;overflow:hidden; }
.cp-svc-spotlight__img img { width:100%;height:100%;object-fit:cover;display:block; }
.cp-svc-spotlight__body { padding:36px 40px 36px 0; }
.cp-svc-spotlight__eyebrow { font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);display:block;margin-bottom:10px; }
.cp-svc-spotlight h3 { font-family:var(--fd-sec);font-size:24px;margin:0 0 12px; }
.cp-svc-spotlight p { font-size:14px;line-height:1.75;color:rgba(255,255,255,.7);margin:0 0 18px;max-width:440px; }
.cp-svc-spotlight__link { font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--blue); }

@media(max-width:900px){
  .cp-svc-intro { grid-template-columns:1fr; }
  .cp-svc-intro__img { order:-1; }
  .cp-svc-features { grid-template-columns:1fr; }
  .cp-svc-spotlight { flex-direction:column; }
  .cp-svc-spotlight__img { flex:none;width:100%; }
  .cp-svc-spotlight__body { padding:28px 24px; }
}
/* ============================================================
   CONTACT / QUOTE — Elementor-friendly form layouts
   ============================================================ */
.cp-contact-wrap { max-width:1200px;margin:0 auto;padding:88px 5% 100px; }
.cp-contact-grid { display:grid;grid-template-columns:.82fr 1.18fr;gap:80px;align-items:start; }
.cp-contact-intro { font-size:17px;color:var(--mid);line-height:1.85;margin-bottom:30px; }
.cp-contact-details { border-top:2px solid var(--blue);padding-top:18px; }
.cp-contact-detail { display:grid;grid-template-columns:92px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--rule);font-size:14px;line-height:1.6; }
.cp-contact-detail__label { font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--soft); }
.cp-contact-detail a { color:var(--blue-dk);font-weight:600;text-decoration:none; }
.cp-contact-detail a:hover { color:var(--blue); }
.cp-contact-note { margin-top:26px;padding:18px 20px;background:var(--bg);font-size:13px;color:var(--mid);line-height:1.7; }
.cp-contact-note a { color:var(--blue-dk);font-weight:600; }
.cp-form { background:var(--bg);padding:34px; }
.cp-form h2 { font-family:var(--fd-sec);font-size:28px;color:var(--ink);margin-bottom:8px; }
.cp-form__intro { font-size:14px;color:var(--mid);line-height:1.7;margin-bottom:24px; }
.cp-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px 16px; }
.cp-form-field { display:flex;flex-direction:column;gap:7px; }
.cp-form-field--full { grid-column:1 / -1; }
.cp-form label { font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--mid); }
.cp-form input,.cp-form select,.cp-form textarea { width:100%;border:1px solid var(--rule);background:#fff;border-radius:0;padding:13px 14px;font:inherit;font-size:14px;color:var(--ink); }
.cp-form input:focus,.cp-form select:focus,.cp-form textarea:focus { outline:2px solid rgba(0,163,255,.25);border-color:var(--blue); }
.cp-form textarea { min-height:126px;resize:vertical; }
.cp-form__footer { display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px; }
.cp-form__privacy { font-size:11px;color:var(--soft);line-height:1.55;max-width:330px; }
.cp-contact-grid--quote { align-items:center; }
.cp-form-placeholder { background:var(--bg);padding:34px;border-top:2px solid var(--blue); }
.cp-form-placeholder h2 { font-family:var(--fd-sec);font-size:28px;color:var(--ink);margin-bottom:8px; }
.cp-form-placeholder p { font-size:14px;color:var(--mid);line-height:1.7;max-width:440px; }
.cp-form-spacer { height:2em; }
.cp-quote-steps { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);margin-top:44px; }
.cp-quote-step { background:#fff;padding:24px; }
.cp-quote-step__n { font-family:var(--fd-sec);font-size:26px;color:var(--blue);display:block;margin-bottom:8px; }
.cp-quote-step h3 { font-size:15px;color:var(--ink);margin-bottom:6px; }
.cp-quote-step p { font-size:13px;color:var(--mid);line-height:1.65; }
@media(max-width:900px){.cp-contact-grid { grid-template-columns:1fr;gap:48px; }.cp-contact-wrap { padding-top:64px; }.cp-quote-steps { grid-template-columns:1fr;gap:1px; }}
@media(max-width:640px){.cp-form { padding:24px 20px; }.cp-form-grid { grid-template-columns:1fr; }.cp-form-field--full { grid-column:auto; }.cp-form__footer { align-items:flex-start;flex-direction:column; }.cp-contact-detail { grid-template-columns:78px 1fr;gap:12px; }}
/* ============================================================
   PROJECTS — filmstrip intro
   ============================================================ */
.cp-hero-filmstrip { display:flex;height:560px;background:var(--navy);color:#fff;overflow:hidden; }
.cp-fs__copy { width:40%;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:0 40px 0 5%; }
.cp-fs__stack { position:relative;width:60%;height:100%;display:flex;flex-direction:column;gap:2px; }
.cp-fs__stack::before { content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(11,18,32,.9) 0%,rgba(11,18,32,0) 18%); }
.cp-fs__item { position:relative;flex:1;min-height:0;overflow:hidden; }
.cp-fs__item img { width:100%;height:100%;object-fit:cover;display:block; }
.cp-fs__caption { position:absolute;left:16px;bottom:14px;z-index:2;font-family:var(--fb);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);text-shadow:0 1px 4px rgba(0,0,0,.7); }
.proj-swatch-1 { background:linear-gradient(135deg,#2f6a86,#132029); }
.proj-swatch-2 { background:linear-gradient(135deg,#4f7c94,#213340); }
.proj-swatch-3 { background:linear-gradient(135deg,#274a5e,#0f1b23); }

@media(max-width:900px){.cp-hero-filmstrip { flex-direction:column;height:auto; }
.cp-fs__copy { width:100%;padding:70px 5% 32px; }
.cp-fs__stack { width:100%;height:380px; }

}/* ============================================================
   GALLERY — filter pills + mosaic
   ============================================================ */
.cp-filters { display:flex;justify-content:center;flex-wrap:wrap;gap:10px;padding:8px 24px 8px; }
.cp-filter { font-family:var(--fb);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:11px 22px;border-radius:999px;border:1px solid var(--rule);background:transparent;color:var(--mid);transition:background .18s ease,color .18s ease,border-color .18s ease;cursor:pointer; }
.cp-filter:hover { border-color:var(--ink); }
.cp-filter--active { background:var(--ink);border-color:var(--ink);color:#fff; }
.cp-gal-mosaic { display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:180px;gap:4px;padding:40px 5% 24px;max-width:1200px;margin:0 auto; }
.cp-gal-mosaic__item { display:block;position:relative;overflow:hidden;cursor:pointer; }
.cp-gal-mosaic__item--tall { grid-row:span 2; }
.cp-gal-mosaic__item--wide { grid-column:span 2; }
.cp-gal-mosaic__img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .45s ease; }
.cp-gal-mosaic__item:hover .cp-gal-mosaic__img { transform:scale(1.06); }
.cp-gal-mosaic__caption { position:absolute;left:0;right:0;bottom:0;padding:18px 20px;background:linear-gradient(0deg,rgba(11,18,32,.85) 0%,rgba(11,18,32,0) 70%);color:#fff;opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease; }
.cp-gal-mosaic__item:hover .cp-gal-mosaic__caption { opacity:1;transform:translateY(0); }
.cp-gal-mosaic__name { font-family:var(--fd-sec);font-size:16px;margin-bottom:2px; }
.cp-gal-mosaic__tag { font-size:11px;letter-spacing:.04em;color:rgba(255,255,255,.65); }
.cp-gal-mosaic__view { font-family:var(--fb);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--blue);margin-top:8px; }
.gal-swatch-1 { background:linear-gradient(135deg,#3a5a70,#1c2b38); }
.gal-swatch-2 { background:linear-gradient(135deg,#274a5e,#0f1b23); }
.gal-swatch-3 { background:linear-gradient(135deg,#3f6d82,#1a2b34); }

@media(max-width:640px){.cp-gal-mosaic { grid-template-columns:1fr 1fr; }
}/* ============================================================
   BLOG — editorial intro
   ============================================================ */
.cp-hero-editorial { background:var(--navy-2);color:#fff;display:flex;align-items:center;min-height:480px;overflow:hidden; }
.cp-ed__inner { display:flex;align-items:center;justify-content:space-between;gap:56px;width:100%;max-width:1200px;margin:0 auto;padding:80px 5%; }
.cp-ed__copy { max-width:560px;display:flex;flex-direction:column;gap:22px; }
.cp-hero-editorial .cp-ed__copy { text-align:center;align-items:center;margin:0 auto; }
#blog .cp-ed__inner { justify-content:center!important; }
#blog .cp-ed__copy { width:100%;max-width:560px;margin-left:auto!important;margin-right:auto!important;text-align:center!important;align-items:center!important; }
#blog .cp-ed__copy > * { text-align:center!important; }
.cp-ed__aside { flex-shrink:0;width:340px; }
.cp-ed__frame { border-top:2px solid var(--blue);overflow:hidden; }
.cp-ed__frame img { width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block; }
.cp-ed__caption { margin-top:12px;font-size:12px;color:var(--soft); }
.blog-swatch-1 { background:linear-gradient(135deg,#2f6a86,#132029); }
.blog-swatch-2 { background:linear-gradient(135deg,#3a5a70,#1c2b38); }
.blog-swatch-3 { background:linear-gradient(135deg,#4f7c94,#213340); }
.blog-swatch-4 { background:linear-gradient(135deg,#274a5e,#0f1b23); }
.blog-swatch-5 { background:linear-gradient(135deg,#6aa5bc,#2c4756); }
.blog-swatch-6 { background:linear-gradient(135deg,#355c72,#152229); }
.blog-swatch-7 { background:linear-gradient(135deg,#5893ab,#25404f); }
.blog-swatch-8 { background:linear-gradient(135deg,#4a7f95,#1d323d); }
.blog-swatch-9 { background:linear-gradient(135deg,#3f6d82,#1a2b34); }

@media(max-width:900px){.cp-ed__inner { flex-direction:column;padding:64px 5% 40px;gap:32px; }
.cp-ed__aside { width:100%;max-width:340px;margin:0 auto; }

}/* ============================================================
   ABOUT — page banner (photo background)
   ============================================================ */
.cp-hero-about { position:relative;
  min-height:460px;
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#fff; }
.cp-hero-about__bg { position:absolute;
  inset:0;
  z-index:0; }
.cp-hero-about__bg img { width:100%;
  height:100%;
  object-fit:cover;
  display:block; }
.cp-hero-about__overlay { position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg, rgba(11,18,32,.72) 0%, rgba(11,18,32,.6) 55%, rgba(11,18,32,.8) 100%); }
.cp-hero-about__inner { position:relative;
  z-index:2;
  max-width:1200px;
  margin:0 auto;
  padding:100px 5%;
  width:100%; }
.cp-hero-about .cp-eye { color:var(--blue); }
.cp-hero-about .cp-lead { color:rgba(255,255,255,.75);max-width:560px;margin:0 auto; }
/* ============================================================
   EXPLORE TEASER — links out to Projects / Gallery / Blog
   ============================================================ */
.cp-explore-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:48px; }
.cp-explore-card { background:var(--white);border:1px solid var(--rule);overflow:hidden;text-decoration:none;display:block;transition:box-shadow .2s ease,transform .2s ease; }
.cp-explore-card:hover { box-shadow:0 16px 32px rgba(11,18,32,.12);transform:translateY(-3px); }
.cp-explore-card__img { aspect-ratio:4/3;overflow:hidden; }
.cp-explore-card__img img { width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease; }
.cp-explore-card:hover .cp-explore-card__img img { transform:scale(1.05); }
.cp-explore-card__body { padding:26px 26px 30px; }
.cp-explore-card__eyebrow { font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);display:block;margin-bottom:10px; }
.cp-explore-card__title { font-family:var(--fd-sec);font-size:22px;font-weight:700;color:var(--ink);margin-bottom:10px; }
.cp-explore-card__text { font-size:14px;color:var(--mid);line-height:1.75;margin-bottom:18px; }
.cp-explore-card__link { font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue); }
.cp-explore-card:hover .cp-explore-card__link { color:var(--blue-dk); }

@media(max-width:900px){.cp-explore-grid { grid-template-columns:1fr; }
}

/* ============================================================
   PRINT
   ============================================================ */
@media print{.cp-hero__bg img { opacity:.3; }
.cp-hero__left { background:rgba(20,26,38,.9); }
.cp-proof,.cp-mosaic,.cp-cta { display:none; }
* { animation:none!important;transition:none!important; }

}/* Migrated inline styles */
.rr-inline-1 { text-align:center;margin-bottom:0; }
.rr-inline-2 { text-align:center; }
.rr-inline-3 { margin-bottom:36px; }
.rr-inline-4 { font-size:clamp(28px,3.4vw,42px); }
.cp-hero-editorial h1.cp-h2 { font-size:clamp(28px,3.5vw,50px)!important; }
.rr-inline-5 { font-size:15px;color:rgba(255,255,255,.65);line-height:1.85;max-width:480px;margin-bottom:8px; }
.rr-inline-6 { font-size:16px;line-height:1.9;color:var(--mid); }
.rr-inline-7 { object-position:center 85%; }
.rr-inline-8 { color:rgba(255,255,255,.55); }
.rr-inline-9 { margin-top:22px; }
.rr-inline-10 { display:block;text-align:center; }
.rr-inline-11 { font-size:15px;color:rgba(255,255,255,.65);line-height:1.85;max-width:440px;margin-bottom:8px; }
.rr-inline-12 { width:100%;height:100%;object-fit:cover; }

/* ============================================================
   SITE NAV
   ============================================================ */
.cp-nav{background:var(--white);position:sticky;top:0;z-index:200;border-bottom:1px solid var(--rule);box-shadow:0 2px 12px rgba(11,18,32,.06);}
.cp-nav__inner{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:84px;position:relative;gap:24px;}
.cp-nav__logo{display:flex;align-items:center;flex-shrink:0;}
.cp-nav__logo-img{height:66px;display:block;}
.cp-nav__menu{display:flex;align-items:center;gap:30px;flex:1;justify-content:center;}
.cp-nav__menu a{font-family:var(--fb);font-size:13px;font-weight:700;color:var(--blue-dk);text-decoration:none;position:relative;padding:6px 0;transition:color .18s ease;white-space:nowrap;}
.cp-nav__menu a:hover{color:var(--blue);}
.cp-nav__menu a.is-active{color:var(--blue);}
.cp-nav__menu a.is-active::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue);}
.cp-nav__actions{display:flex;align-items:center;gap:20px;flex-shrink:0;}
.cp-nav__phone{font-family:var(--fb);font-size:13px;font-weight:700;color:var(--blue-dk);text-decoration:none;white-space:nowrap;}
.cp-nav__phone:hover{color:var(--blue);}
.cp-nav__toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;flex-shrink:0;background:rgba(6,99,152,.08);border:1px solid rgba(6,99,152,.25);border-radius:6px;cursor:pointer;transition:background .18s ease,border-color .18s ease;}
.cp-nav__toggle:hover{background:rgba(6,99,152,.14);border-color:rgba(6,99,152,.4);}
.cp-nav__toggle span{display:block;width:18px;height:2px;background:var(--blue-dk);transition:transform .2s ease,opacity .2s ease;}
.cp-nav__toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.cp-nav__toggle.is-open span:nth-child(2){opacity:0;}
.cp-nav__toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media(max-width:900px){
  .cp-nav__inner{height:72px;}
  .cp-nav__logo-img{height:50px;}
  .cp-nav__menu{position:absolute;top:100%;left:0;right:0;background:var(--white);flex-direction:column;align-items:flex-start;gap:0;padding:8px 24px 16px;border-bottom:1px solid var(--rule);display:none;justify-content:flex-start;box-shadow:0 12px 24px rgba(11,18,32,.08);}
  .cp-nav__menu.is-open{display:flex;}
  .cp-nav__menu a{width:100%;padding:14px 0;border-bottom:1px solid var(--rule);}
  .cp-nav__menu a.is-active::after{display:none;}
  .cp-nav__phone{display:none;}
  .cp-nav__toggle{display:flex;}
}
@media(max-width:480px){
  .cp-nav__inner .cp-btn{padding:10px 16px;font-size:9.5px;}
}

/* ============================================================
   FOOTER
   ============================================================ */
.cp-footer{padding:72px 5% 0;}
.cp-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.08);max-width:1200px;margin:0 auto;}
.cp-footer__logo{font-family:var(--fd-sec);font-style:italic;font-size:26px;color:#fff;margin-bottom:14px;}
.cp-footer__desc{font-size:14px;line-height:1.7;color:rgba(255,255,255,.55);max-width:320px;margin-bottom:22px;}
.cp-footer__socials{display:flex;gap:10px;}
.cp-footer__social{width:36px;height:36px;border-radius:4px;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);font-size:14px;}
.cp-footer__heading{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:20px;}
.cp-footer__links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px;}
.cp-footer__links a{font-size:14px;color:rgba(255,255,255,.75);text-decoration:none;transition:color .18s ease;}
.cp-footer__links a:hover{color:#fff;}
.cp-footer__staff{margin-bottom:26px;}
.cp-footer__staff:last-child{margin-bottom:0;}
.cp-footer__staff-name{font-size:14px;font-weight:700;color:#fff;margin-bottom:3px;}
.cp-footer__staff-role{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin-bottom:8px;}
.cp-footer__staff-line{font-size:13px;color:rgba(255,255,255,.6);line-height:1.6;}
.cp-footer__bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:24px 0;max-width:1200px;margin:0 auto;}
.cp-footer__legal{font-size:12px;color:rgba(255,255,255,.4);}
.cp-footer__bottom-links{display:flex;gap:24px;}
.cp-footer__bottom-links a{font-size:12px;color:rgba(255,255,255,.4);text-decoration:none;transition:color .18s ease;}
.cp-footer__bottom-links a:hover{color:#fff;}
@media(max-width:900px){.cp-footer__grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.cp-footer__grid{grid-template-columns:1fr;}}
