/* ============================================================
   BRAND TOKENS — Priority 1 Computers, Inc.
   Change colors/fonts HERE = whole site updates.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700&family=Newsreader:ital,wght@0,400;0,500;1,400&family=Source+Sans+3:wght@400;500;600&family=PT+Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap');

:root{
  /* brand */
  --c-primary:#a8122a; --c-primary-dark:#8e0f23; --c-accent:#7fb0d0; --c-accent-dark:#3f7ca0;
  --c-red-soft:#e08c98; --c-red-soft-2:#e0566f; --c-star:#e3a52c;

  /* type */
  --font-head:"PT Serif", serif;
  --font-body:"PT Serif", serif;
  --font-ui:"PT Serif", serif;

  /* light surfaces / ink */
  --c-ink:#14171a; --c-ink-2:#54595f; --c-ink-3:#33383e;
  --c-paper:#ffffff; --c-tint:#f6f7f6; --c-line:#e6e6e6; --c-light:#ffffff;
  --c-cream:#f6f3ed; --c-cream-line:#ece8e0; --c-cream-line-2:#e3d9c9;
  --c-brand:#bcb8b0;

  /* dark surfaces / text-on-dark */
  --c-dark:#14171a; --c-darker:#0e1013; --c-dark-2:#191c20; --c-dark-3:#262b31;
  --c-on-dark:#c4c9cf; --c-on-dark-2:#9aa1a8; --c-on-dark-3:#a3a9b0;
  --c-on-dark-4:#8c939a; --c-muted:#5f6770;

  /* buttons */
  --btn-bg:var(--c-primary); --btn-text:var(--c-light); --btn-bg-hover:var(--c-primary-dark);

  /* spacing / shape */
  --space-section:90px; --gap:30px;
  --r-sm:6px; --r-md:14px; --r-pill:500px;
  --shadow-1:0 2px 10px rgba(0,0,0,.06); --shadow-2:0 20px 50px rgba(0,0,0,.10);
  --shadow-cta:0 8px 22px -8px rgba(168,18,42,.5);
  --shadow-lift:0 26px 52px -22px rgba(20,23,26,.34);

  /* fluid type scale */
  --fs-h1:clamp(34px,5vw,58px); --fs-h2:clamp(28px,4vw,42px);
  --fs-h3:clamp(20px,2.4vw,26px); --fs-body:17px;
  --ls-eyebrow:.22em;
}
@media all and (max-width:640px){ :root{ --space-section:56px; --gap:18px; } }

/* ============================================================
   TYPE / BASE  (scoped to Webware wrapper)
   ============================================================ */
.is-wrapper h1,.is-wrapper h2,.is-wrapper h3,.is-wrapper h4,.is-wrapper h5,
.p1-scope h1,.p1-scope h2,.p1-scope h3,.p1-scope h4,.p1-scope h5{
  font-family:var(--font-head); font-weight:400; color:var(--c-ink);
  text-wrap:balance; margin:0; }
.is-wrapper p,.is-wrapper li,.p1-scope p,.p1-scope li{ font-family:var(--font-body); color:var(--c-ink-2); }
.is-wrapper a,.p1-scope a{ text-decoration:none; color:inherit; }
.p1-em{ font-style:italic; color:var(--c-primary); }

/* shared heading + body sizes */
.p1-h1{ font-size:var(--fs-h1); line-height:1.06; letter-spacing:-.015em; color:var(--c-light); }
.p1-h2{ font-size:var(--fs-h2); line-height:1.1; letter-spacing:-.012em; color:var(--c-ink); margin-bottom:18px; }
.p1-body{ font-size:var(--fs-body); line-height:1.72; color:var(--c-ink-2); }

/* ============================================================
   SCROLL REVEAL  (progressive enhancement — visible by default)
   ============================================================ */
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    .p1-reveal{ animation:p1-reveal-in linear both; animation-timeline:view(); animation-range:entry 2% cover 26%; }
    @keyframes p1-reveal-in{ from{opacity:0; transform:translateY(26px);} to{opacity:1; transform:none;} }
  }
}

/* ============================================================
   EYEBROW (line + uppercase label) — reused across sections
   default = primary red · .is-accent = blue · .on-dark variants for dark bands
   ============================================================ */
.p1-eyebrow{ display:inline-flex; align-items:center; gap:13px; margin-bottom:18px; }
.p1-eyebrow.is-center{ justify-content:center; }
.p1-eyebrow-line{ width:28px; height:1.5px; background:var(--c-primary); display:block; flex-shrink:0; }
.p1-eyebrow-text{ font-family:var(--font-ui); font-weight:600; font-size:11.5px;
  letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--c-primary); }
.p1-eyebrow.is-accent .p1-eyebrow-line{ background:var(--c-accent-dark); }
.p1-eyebrow.is-accent .p1-eyebrow-text{ color:var(--c-accent-dark); }
.p1-eyebrow.on-dark .p1-eyebrow-line{ background:var(--c-red-soft-2); }
.p1-eyebrow.on-dark .p1-eyebrow-text{ color:var(--c-red-soft); }
.p1-eyebrow.on-dark.is-accent .p1-eyebrow-line{ background:var(--c-accent); }
.p1-eyebrow.on-dark.is-accent .p1-eyebrow-text{ color:var(--c-accent); }

/* ============================================================
   BUTTONS
   ============================================================ */
.p1-btn{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-ui);
  font-weight:600; font-size:15px; letter-spacing:.02em; padding:16px 28px; border-radius:var(--r-sm);
  background:var(--btn-bg); color:var(--btn-text)!important; border:1px solid transparent; cursor:pointer;
  box-shadow:var(--shadow-cta); transition:background .3s ease,box-shadow .3s ease,transform .3s ease; }
.p1-btn:hover{ background:var(--btn-bg-hover); box-shadow:0 14px 30px -10px rgba(168,18,42,.6); transform:translateY(-2px); }
.p1-btn svg{ width:17px; height:17px; stroke:currentColor; }

.p1-btn-ghost{ display:inline-flex; align-items:center; gap:9px; font-family:var(--font-ui);
  font-weight:600; font-size:15px; letter-spacing:.02em; padding:16px 28px; border-radius:var(--r-sm);
  background:rgba(255,255,255,.06); color:var(--c-light); border:1px solid rgba(255,255,255,.3);
  backdrop-filter:blur(4px); transition:background .3s ease,border-color .3s ease,color .3s ease; }
.p1-btn-ghost:hover{ background:var(--c-light); color:var(--c-ink); border-color:var(--c-light); }

.p1-btn-outline{ display:inline-flex; align-items:center; gap:9px; font-family:var(--font-ui);
  font-weight:600; font-size:15px; letter-spacing:.02em; padding:14px 26px; border-radius:var(--r-sm);
  background:transparent; color:var(--c-ink); border:1px solid rgba(20,23,26,.25);
  transition:background .3s ease,color .3s ease,border-color .3s ease; }
.p1-btn-outline:hover{ background:var(--c-ink); color:var(--c-light); border-color:var(--c-ink); }

/* shine sweep on primary CTAs */
.p1-cta{ position:relative; overflow:hidden; }
.p1-cta::after{ content:""; position:absolute; top:0; left:-130%; width:60%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent); transform:skewX(-18deg); }
.p1-cta:hover::after{ animation:p1shine .9s ease; }
@keyframes p1shine{ from{left:-130%;} to{left:130%;} }

/* ============================================================
   HERO
   ============================================================ */
.p1-hero{ position:relative; overflow:hidden; background:var(--c-darker); }
/*.p1-hero-img{ width:100%; height:660px; object-fit:cover; display:block; }*/
.p1-hero-overlay{ display:none; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg,rgba(14,16,19,.94) 0%,rgba(14,16,19,.82) 42%,rgba(14,16,19,.45) 72%,rgba(14,16,19,.25) 100%),
             radial-gradient(circle at 20% 110%,rgba(168,18,42,.3),transparent 45%); }
.p1-hero .bn-content{ padding:0; }
.p1-hero-copy{ max-width:660px; }
.p1-hero .p1-h1{ margin-bottom:24px; }
.p1-hero .p1-em{ color:var(--c-red-soft);     text-transform: capitalize; }
.p1-lead{ font-size:18.5px; line-height:1.68; color:var(--c-on-dark); margin:0 0 34px; max-width:540px; }
.p1-hero-actions{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.p1-hero-trust{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:38px;
  padding-top:30px; border-top:1px solid rgba(255,255,255,.14); }
.p1-trust-row{ display:flex; align-items:center; gap:13px; }
.p1-stars{ display:flex; gap:2px; color:var(--c-star); }
.p1-stars svg{ width:17px; height:17px; fill:currentColor; }
.p1-trust-text{ font-size:14.5px; color:var(--c-on-dark); }
.p1-float{ display:inline-flex; align-items:center; gap:13px; background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.16); border-radius:9px; padding:12px 18px; backdrop-filter:blur(8px);
  animation:p1float 4.5s ease-in-out infinite; }
@keyframes p1float{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-9px);} }
.p1-float-ico{ width:38px; height:38px; border-radius:8px; background:rgba(168,18,42,.22);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.p1-float-ico svg{ width:20px; height:20px; stroke:var(--c-red-soft); }
.p1-float-title{ font-family:var(--font-head); font-weight:500; font-size:16px; color:var(--c-light); line-height:1.1; }
.p1-float-sub{ font-size:12.5px; color:var(--c-on-dark-2); margin-top:2px; }

/* ============================================================
   STAT STRIP  (dark) — kicker left, stats right
   ============================================================ */
.p1-stats-kicker{ font-family:var(--font-head); font-weight:400; font-size:clamp(21px,2.4vw,25px);
  line-height:1.2; letter-spacing:-.01em; color:var(--c-light); max-width:360px; margin:0; }
.p1-stats-row{ display:flex; flex-wrap:wrap; gap:clamp(30px,4vw,54px); justify-content:space-between; }
.p1-stat-num{ font-family:var(--font-head); font-weight:400; font-size:clamp(30px,3.4vw,36px);
  line-height:1; color:var(--c-light); letter-spacing:-.01em; }
.p1-stat-num .p1-stat-suffix{ color:var(--c-accent); }
.p1-stat-num.is-accent{ color:var(--c-accent); }
.p1-stat-label{ font-family:var(--font-ui); font-weight:600; font-size:11.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--c-on-dark-4); margin-top:8px; }

/* ============================================================
   BLOG FEATURE  (cream)
   ============================================================ */
.p1-blog-media{ position:relative; }
.p1-blog-imgwrap{ overflow:hidden; aspect-ratio:4/3; box-shadow:var(--shadow-lift); }
.p1-blog-img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.1s cubic-bezier(.22,.61,.36,1); }
.p1-blog-media:hover .p1-blog-img{ transform:scale(1.05); }
.p1-blog-badge{ position:absolute; top:18px; left:18px; display:inline-flex; align-items:center; gap:7px;
  font-family:var(--font-ui); font-weight:600; font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--c-light); background:var(--c-primary); padding:8px 14px; border-radius:var(--r-sm);
  box-shadow:0 8px 20px -8px rgba(168,18,42,.6); }
.p1-blog-body .p1-h2{ font-size:clamp(28px,3.4vw,38px); margin-bottom:18px; }
.p1-blog-actions{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:30px;
  padding-top:26px; border-top:1px solid var(--c-cream-line-2); }
.p1-link-arrow{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-ui);
  font-weight:600; font-size:15px; letter-spacing:.02em; color:var(--c-primary); }
.p1-link-arrow svg{ width:17px; height:17px; stroke:currentColor; transition:transform .4s ease; }
.p1-link-arrow:hover svg{ transform:translateX(5px); }

/* ============================================================
   SERVICES (editorial alternating splits)
   ============================================================ */
.p1-svc-imgwrap{ overflow:hidden; border-radius:var(--r-sm); aspect-ratio:5/4; box-shadow:var(--shadow-lift); }
.p1-svc-img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.1s cubic-bezier(.22,.61,.36,1); }
.p1-svc-imgwrap:hover .p1-svc-img{ transform:scale(1.04); }
.p1-svc-copy .p1-body{ margin-bottom:0; max-width:500px; }
.p1-quote{ margin:34px 0 0; padding-left:22px; border-left:2px solid var(--c-primary); max-width:500px; }
.p1-quote.is-accent{ border-left-color:var(--c-accent-dark); }
.p1-quote p{ font-family:var(--font-head); font-style:italic; font-size:18px; line-height:1.6; color:var(--c-ink-3); margin:0 0 11px; }
.p1-quote-cite{ display:block; font-family:var(--font-ui); font-weight:600; font-size:11.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--c-on-dark-2); }

/* ============================================================
   ABOUT / SERVICE-AREA DIRECTORY  (dark)
   ============================================================ */
.p1-areas{ position:relative; z-index:0; overflow:hidden; }
.p1-areas::before{ content:""; position:absolute; top:-20%; right:-10%; width:620px; height:620px;
  border-radius:50%; background:radial-gradient(circle,rgba(63,124,160,.16),transparent 65%);
  pointer-events:none; z-index:-1; }
.p1-areas-head .p1-h2{ color:var(--c-light); }
.p1-areas-head .p1-h2 .p1-em{ color:var(--c-accent); }
.p1-areas-head .p1-body{ color:var(--c-on-dark-2); max-width:380px; }
.p1-areas-stat{ display:flex; align-items:baseline; gap:14px; margin-top:32px; padding-top:28px;
  border-top:1px solid var(--c-dark-3); }
.p1-areas-stat-num{ font-family:var(--font-head); font-weight:400; font-size:52px; line-height:1; color:var(--c-light); }
.p1-areas-stat-cap{ font-family:var(--font-ui); font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  line-height:1.4; color:var(--c-on-dark-4); }
.p1-areas-list{ display:flex; flex-direction:column; }
.p1-area-row{ position:relative; display:flex; align-items:center; gap:22px; padding:28px 8px;
  border-top:1px solid var(--c-dark-3); cursor:pointer; }
.p1-area-row:last-child{ border-bottom:1px solid var(--c-dark-3); }
.p1-area-row::before{ content:""; position:absolute; inset:0 -24px;
  background:linear-gradient(90deg,rgba(168,18,42,.14),transparent 80%); opacity:0;
  transition:opacity .4s ease; border-radius:8px; pointer-events:none; }
.p1-area-row:hover::before{ opacity:1; }
.p1-area-num{ font-family:var(--font-ui); font-weight:600; font-size:13px; letter-spacing:.1em;
  color:var(--c-muted); transition:color .4s ease; position:relative; z-index:1; }
.p1-area-row:hover .p1-area-num{ color:var(--c-red-soft-2); }
.p1-area-name{ font-family:var(--font-head); font-weight:400; font-size:34px; letter-spacing:-.01em;
  color:var(--c-light); flex:1; transition:transform .45s cubic-bezier(.22,.61,.36,1); position:relative; z-index:1; }
.p1-area-row:hover .p1-area-name{ transform:translateX(12px); }
.p1-area-tag{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-ui); font-weight:600;
  font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--c-on-dark-4);
  white-space:nowrap; transition:color .4s ease; position:relative; z-index:1; }
.p1-area-row:hover .p1-area-tag{ color:var(--c-accent); }
.p1-area-arw{ width:16px; height:16px; stroke:currentColor; transition:transform .4s ease; }
.p1-area-row:hover .p1-area-arw{ transform:translateX(4px); }

/* ============================================================
   BRANDS MARQUEE
   ============================================================ */
.p1-brands-head{ text-align:center; margin-bottom:6px; }
.p1-brands-head .p1-eyebrow{ margin-bottom:16px; }
.p1-brands-head .p1-h2{ font-size:clamp(26px,3vw,34px); margin-bottom:10px; }
.p1-brands-head .p1-body{ margin:0; font-size:15.5px; }
.p1-marquee-mask{ position:relative; overflow:hidden; padding:18px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); }
.p1-marquee-track{ display:flex; flex-wrap:nowrap; width:max-content; align-items:center;
  animation:p1marquee 32s linear infinite; }
.p1-marquee-mask:hover .p1-marquee-track{ animation-play-state:paused; }
@keyframes p1marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
.p1-brand-item{ font-family:var(--font-ui); font-weight:700; font-size:26px; color:var(--c-brand);
  letter-spacing:.01em; padding:0 36px; white-space:nowrap; transition:color .3s ease; }
.p1-brand-item:hover{ color:var(--c-primary); }
.p1-brands-note{ text-align:center; margin-top:22px; }
.p1-brands-note p{ font-size:13.5px; color:var(--c-on-dark-2); font-style:italic; margin:0; }

/* ============================================================
   NEWSLETTER  (dark)
   ============================================================ */
.p1-news{ position:relative; z-index:0; overflow:hidden; }
.p1-news::before{ content:""; position:absolute; inset:0; pointer-events:none; z-index:-1;
  background:radial-gradient(circle at 18% 120%,rgba(168,18,42,.35),transparent 50%),
             radial-gradient(circle at 88% -20%,rgba(63,124,160,.22),transparent 48%); }
.p1-news::after{ content:""; position:absolute; top:-40%; left:50%; transform:translateX(-50%);
  width:760px; height:760px; border:1px solid rgba(255,255,255,.05); border-radius:50%;
  pointer-events:none; z-index:-1; }
.p1-news-inner{ max-width:640px; margin:0 auto; text-align:center; }
.p1-news-inner .p1-h2{ color:var(--c-light); font-size:clamp(30px,3.6vw,46px); }
.p1-news-inner .p1-h2 .p1-em{ color:var(--c-red-soft); }
.p1-news-inner .p1-body{ color:var(--c-on-dark-2); margin:14px auto 38px; max-width:560px; }
.p1-news-actions{ display:flex; flex-direction:column; align-items:center; gap:16px; }
.p1-news-fine{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; color:var(--c-muted); }
.p1-news-fine svg{ width:14px; height:14px; stroke:var(--c-accent); }

/* ============================================================
   FAQ (pure-CSS details accordion)
   ============================================================ */
.p1-faq-head{ text-align:center; margin-bottom:50px; }
.p1-faq-list{ display:flex; flex-direction:column; gap:14px; max-width:900px; margin:0 auto; }
.p1-faq-item{ background:var(--c-light); border:1px solid var(--c-cream-line); border-radius:10px; overflow:hidden; }
.p1-faq-q{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  gap:18px; padding:24px 26px; }
.p1-faq-q::-webkit-details-marker{ display:none; }
.p1-faq-qtext{ font-family:var(--font-head); font-weight:500; font-size:19px; color:var(--c-ink); line-height:1.35; }
.p1-faq-sign{ flex-shrink:0; width:30px; height:30px; border-radius:50%; border:1px solid var(--c-cream-line-2);
  color:var(--c-primary); font-family:var(--font-ui); font-weight:600; font-size:20px;
  display:flex; align-items:center; justify-content:center; line-height:1;
  transition:transform .3s ease,background .3s ease,color .3s ease,border-color .3s ease; }
.p1-faq-sign::before{ content:"+"; }
.p1-faq-item[open] .p1-faq-sign{ background:var(--c-primary); color:var(--c-light); border-color:var(--c-primary); transform:rotate(135deg); }
.p1-faq-a{ padding:0 26px 24px; }
.p1-faq-a p{ font-size:16px; line-height:1.75; color:var(--c-ink-2); margin:0; }

/* ============================================================
   ABOUT — INTRO / MISSION  (editorial split, no heading)
   ============================================================ */
.p1-hero-copy.is-wide{ max-width:760px; }
.p1-about-copy .p1-body{ margin:0 0 18px; }
.p1-about-copy .p1-body:last-child{ margin-bottom:0; }
.p1-about-lead{ font-family:var(--font-head); font-weight:400; font-size:clamp(20px,2.2vw,23px);
  line-height:1.5; color:var(--c-ink); letter-spacing:-.005em; }

/* ============================================================
   ABOUT — FOUNDER
   ============================================================ */
.p1-founder-media{ overflow:hidden; border-radius:var(--r-sm); aspect-ratio:4/5; box-shadow:var(--shadow-lift); }
.p1-founder-media img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.1s cubic-bezier(.22,.61,.36,1); }
.p1-founder-media:hover img{ transform:scale(1.04); }
.p1-founder-copy .p1-h2{ margin-bottom:22px; }
.p1-founder-copy .p1-body{ margin:0 0 18px; }
.p1-founder-copy .p1-body:last-child{ margin-bottom:0; }
.p1-founder-lead{ font-family:var(--font-head); font-style:italic; font-size:clamp(19px,2vw,22px);
  line-height:1.5; color:var(--c-ink-3); padding-left:20px; border-left:2px solid var(--c-primary); }

/* ============================================================
   ADVANTAGES + REVIEW CARDS
   ============================================================ */
.p1-adv-head{ text-align:center; max-width:720px; margin:0 auto 56px; }
.p1-adv-head .p1-h2{ margin-bottom:16px; }
.p1-adv-head .p1-body{ margin:0; }

.p1-reviews-grid{ align-items:stretch; }
.p1-tcard{ position:relative; height:100%; background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); padding:38px 32px 30px; display:flex; flex-direction:column; gap:20px;
  box-shadow:var(--shadow-1); overflow:hidden;
  transition:transform .45s cubic-bezier(.22,.61,.36,1),box-shadow .45s ease,border-color .45s ease; }
.p1-tcard::before{ content:""; position:absolute; left:0; top:0; height:3px; width:100%;
  background:linear-gradient(90deg,var(--c-primary),var(--c-red-soft-2));
  transform:scaleX(0); transform-origin:left; transition:transform .55s cubic-bezier(.22,.61,.36,1); }
.p1-tcard:hover{ transform:translateY(-7px); box-shadow:var(--shadow-2); border-color:transparent; }
.p1-tcard:hover::before{ transform:scaleX(1); }
.p1-tcard-mark{ display:block; height:30px; font-family:var(--font-head); font-size:64px; line-height:1;
  color:var(--c-red-soft); }
.p1-tcard-mark::before{ content:"\201C"; }
.p1-tcard-quote{ font-family:var(--font-head); font-style:italic; font-size:20px; line-height:1.5;
  color:var(--c-ink-3); margin:0; flex:1; }
.p1-tcard-who{ display:flex; align-items:center; gap:14px; padding-top:22px; border-top:1px solid var(--c-cream-line); }
.p1-tcard-bar{ width:3px; height:38px; border-radius:2px; flex-shrink:0;
  background:linear-gradient(var(--c-primary),var(--c-red-soft-2)); }
.p1-tcard-meta{ display:flex; flex-direction:column; gap:3px; }
.p1-tcard-name{ font-family:var(--font-head); font-weight:500; font-size:18px; color:var(--c-ink); line-height:1.2; }
.p1-tcard-role{ font-family:var(--font-ui); font-weight:600; font-size:11px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--c-primary); }

/* featured (center) — dark */
.p1-tcard.is-featured{ background:var(--c-dark); border-color:var(--c-dark); box-shadow:var(--shadow-2); }
.p1-tcard.is-featured::before{ transform:scaleX(1); background:linear-gradient(90deg,var(--c-accent),var(--c-accent-dark)); }
.p1-tcard.is-featured .p1-tcard-mark{ color:var(--c-accent); }
.p1-tcard.is-featured .p1-tcard-quote{ color:var(--c-light); }
.p1-tcard.is-featured .p1-tcard-who{ border-top-color:var(--c-dark-3); }
.p1-tcard.is-featured .p1-tcard-bar{ background:linear-gradient(var(--c-accent),var(--c-accent-dark)); }
.p1-tcard.is-featured .p1-tcard-name{ color:var(--c-light); }
.p1-tcard.is-featured .p1-tcard-role{ color:var(--c-accent); }
@media (min-width:1024px){ .p1-tcard.is-featured{ transform:translateY(-14px); }
  .p1-tcard.is-featured:hover{ transform:translateY(-20px); } }

/* ============================================================
   SERVICES GRID  (cards)
   ============================================================ */
.p1-services-head{ text-align:center; margin-bottom:52px; }
.p1-services-head .p1-eyebrow{ margin-bottom:0; }
.p1-scard{ position:relative; height:100%; display:flex; flex-direction:column;
  background:var(--c-paper); border:1px solid var(--c-cream-line); border-radius:var(--r-md);
  box-shadow:var(--shadow-1); overflow:hidden;
  transition:transform .45s cubic-bezier(.22,.61,.36,1),box-shadow .45s ease,border-color .45s ease; }
.p1-scard::before{ content:""; position:absolute; left:0; top:0; width:100%; height:3px; z-index:2;
  background:linear-gradient(90deg,var(--c-primary),var(--c-red-soft-2));
  transform:scaleX(0); transform-origin:left; transition:transform .55s cubic-bezier(.22,.61,.36,1); }
.p1-scard:hover{ transform:translateY(-7px); box-shadow:var(--shadow-2); border-color:transparent; }
.p1-scard:hover::before{ transform:scaleX(1); }
.p1-scard-media{ overflow:hidden; aspect-ratio:16/10; }
.p1-scard-img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.1s cubic-bezier(.22,.61,.36,1); }
.p1-scard:hover .p1-scard-img{ transform:scale(1.06); }
.p1-scard-body{ flex:1; display:flex; flex-direction:column; gap:13px; padding:28px 28px 30px; }
.p1-scard-num{ font-family:var(--font-ui); font-weight:700; font-size:13px; letter-spacing:.16em; color:var(--c-primary); }
.p1-scard-title{ font-family:var(--font-head); font-weight:400; font-size:24px; line-height:1.2;
  letter-spacing:-.01em; color:var(--c-ink); }
.p1-scard-desc{ font-size:15.5px; line-height:1.7; color:var(--c-ink-2); margin:0; flex:1; }
.p1-scard-link{ display:inline-flex; align-items:center; gap:9px; font-family:var(--font-ui);
  font-weight:600; font-size:14px; letter-spacing:.01em; color:var(--c-primary); margin-top:6px; }
.p1-scard-link svg{ width:15px; height:15px; stroke:currentColor; transition:transform .4s ease; }
.p1-scard:hover .p1-scard-link svg{ transform:translateX(5px); }

/* ============================================================
   SERVICE DETAIL — BENEFIT CARDS (icons)
   ============================================================ */
.p1-benefits-head{ text-align:center; max-width:760px; margin:0 auto 52px; }
.p1-benefits-head .p1-about-lead{ margin:0 0 26px; }
.p1-benefits-head .p1-h2{ margin:0; }
.p1-bcard{ height:100%; background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); padding:32px 26px; display:flex; flex-direction:column; gap:15px;
  box-shadow:var(--shadow-1); transition:transform .4s ease,box-shadow .4s ease,border-color .4s ease; }
.p1-bcard:hover{ transform:translateY(-6px); box-shadow:var(--shadow-2); border-color:var(--c-cream-line-2); }
.p1-bcard-ico{ width:54px; height:54px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  background:rgba(168,18,42,.09); color:var(--c-primary); flex-shrink:0; }
.p1-bcard-ico svg{ width:26px; height:26px; stroke:currentColor; }
.p1-bcard-title{ font-family:var(--font-head); font-weight:500; font-size:20px; line-height:1.25; color:var(--c-ink); }
.p1-bcard-desc{ font-size:15px; line-height:1.65; color:var(--c-ink-2); margin:0; }

/* ============================================================
   SERVICE DETAIL — FEATURE CHECKLIST
   ============================================================ */
.p1-checklist{ list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; gap:13px; }
.p1-checklist li{ position:relative; padding-left:34px; font-family:var(--font-body); font-size:16px;
  line-height:1.5; color:var(--c-ink-2); }
.p1-checklist li::before{ content:""; position:absolute; left:0; top:0; width:22px; height:22px;
  border-radius:50%; background:rgba(168,18,42,.10); }
.p1-checklist li::after{ content:""; position:absolute; left:7px; top:7px; width:8px; height:5px;
  border-left:2px solid var(--c-primary); border-bottom:2px solid var(--c-primary); transform:rotate(-45deg); }

/* ============================================================
   SERVICE DETAIL — INTRO BAND
   ============================================================ */
.p1-intro{ max-width:880px; margin:0 auto; text-align:center; }
.p1-intro::before{ content:""; display:block; width:46px; height:3px; border-radius:2px;
  background:linear-gradient(90deg,var(--c-primary),var(--c-red-soft-2)); margin:0 auto 26px; }
.p1-intro .p1-about-lead{ margin:0; }

/* ============================================================
   CONTACT — info cards + map
   ============================================================ */
.p1-contact-card{ display:flex; align-items:flex-start; gap:18px; background:var(--c-paper);
  border:1px solid var(--c-cream-line); border-radius:var(--r-md); padding:26px 28px;
  box-shadow:var(--shadow-1); transition:transform .4s ease,box-shadow .4s ease,border-color .4s ease; }
.p1-contact-card + .p1-contact-card{ margin-top:var(--gap); }
.p1-contact-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-2); border-color:var(--c-cream-line-2); }
.p1-contact-ico{ flex-shrink:0; width:52px; height:52px; border-radius:var(--r-sm);
  display:flex; align-items:center; justify-content:center;
  background:rgba(168,18,42,.08); color:var(--c-primary); }
.p1-contact-ico svg{ width:24px; height:24px; }
.p1-contact-body{ min-width:0; }
.p1-contact-label{ font-family:var(--font-ui); font-size:12px; letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase; color:var(--c-ink-2); margin:0 0 7px; }
.p1-contact-value{ display:inline-block; font-family:var(--font-head); font-weight:500; font-size:20px;
  color:var(--c-ink); line-height:1.35; text-decoration:none; word-break:break-word;
  transition:color .3s ease; }
a.p1-contact-value:hover{ color:var(--c-primary); }

.p1-map{ position:relative; height:100%; min-height:440px; overflow:hidden;
  border-radius:var(--r-md); box-shadow:var(--shadow-lift); }
.p1-map iframe{ display:block; width:100%; height:100%; min-height:440px; border:0; }
@media (max-width:1023.5px){
  .p1-map{ min-height:340px; margin-top:var(--gap); }
  .p1-map iframe{ min-height:340px; }
}

/* ============================================================
   SECTION BACKGROUNDS + PADDING  (wrapper-scoped so they win)
   ============================================================ */
.is-wrapper > .p1-sec, .is-wrapper .p1-sec, .p1-scope > .p1-sec, .p1-scope .p1-sec{ padding:var(--space-section) 0; }
.is-wrapper > .p1-sec-tight, .is-wrapper .p1-sec-tight, .p1-scope > .p1-sec-tight, .p1-scope .p1-sec-tight{ padding:54px 0; }
.is-wrapper > .p1-bg-paper, .is-wrapper .p1-bg-paper, .p1-scope > .p1-bg-paper, .p1-scope .p1-bg-paper{ background:var(--c-paper); }
.is-wrapper > .p1-bg-cream, .is-wrapper .p1-bg-cream, .p1-scope > .p1-bg-cream, .p1-scope .p1-bg-cream{ background:var(--c-cream); }
.is-wrapper > .p1-bg-dark, .is-wrapper .p1-bg-dark, .p1-scope > .p1-bg-dark, .p1-scope .p1-bg-dark{ background:var(--c-dark); }
.is-wrapper > .p1-bg-darker, .is-wrapper .p1-bg-darker, .p1-scope > .p1-bg-darker, .p1-scope .p1-bg-darker{ background:var(--c-darker); }
.p1-anchor{ scroll-margin-top:110px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:860px){
  .p1-area-name{ font-size:26px; }
  .p1-area-tag{ display:none; }
}
@media (max-width:960px){
  /*.p1-hero-img{ height:720px; }*/
}
@media (max-width:640px){
  /*.p1-hero-img{ height:800px; }*/
  .p1-hero .bn-content{ padding:0 22px; }
  .p1-stats-row{ flex-direction:column; gap:26px; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  .p1-float,.p1-marquee-track{ animation:none!important; }
  .p1-blog-media:hover .p1-blog-img,.p1-svc-imgwrap:hover .p1-svc-img{ transform:none!important; }
  .p1-cta::after{ display:none!important; }
}

/* ============================================================
   BLOG LISTING  (scoped to .new-blog-page-type — theme classes)
   Fonts set directly so it works outside .is-wrapper / .p1-scope.
   ============================================================ */
.new-blog-page-type{ background:var(--c-cream); padding-top:46px; }

/* --- Search --- */
.new-blog-page-type .blog-search-container{ margin-bottom:34px; }
.new-blog-page-type .position-relative{ position:relative; max-width:560px; }
.new-blog-page-type .search-input-blog{
  width:100%; height:58px; padding:0 60px 0 24px;
  font-family:var(--font-body); font-size:16px; color:var(--c-ink);
  background:var(--c-paper); border:1px solid var(--c-cream-line-2);
  border-radius:var(--r-pill); box-shadow:var(--shadow-1);
  transition:border-color .3s ease, box-shadow .3s ease; }
.new-blog-page-type .search-input-blog::placeholder{ color:var(--c-muted); }
.new-blog-page-type .search-input-blog:focus{ outline:none; border-color:var(--c-primary);
  box-shadow:0 0 0 4px rgba(168,18,42,.10); }
.new-blog-page-type .blog-search-button{
  position:absolute; right:7px; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border:0; border-radius:50%; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-primary); color:var(--c-light);
  transition:background .3s ease, transform .3s ease; }
.new-blog-page-type .blog-search-button:hover{ background:var(--c-primary-dark); transform:translateY(-50%) scale(1.05); }
.new-blog-page-type .blog-search-button svg path{ fill:currentColor; }

/* --- Articles list reset --- */
.new-blog-page-type .blog-ul{ list-style:none; margin:0; padding:0; }
.new-blog-page-type .blog-li{ margin:0 0 var(--gap); }
.new-blog-page-type .blog-li .row{ margin:0; max-width:none; }
.new-blog-page-type .blog-article{
  float:none; width:100%; padding:0;
  background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-1);
  transition:transform .45s cubic-bezier(.22,.61,.36,1), box-shadow .45s ease, border-color .45s ease; }
.new-blog-page-type .blog-article:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lift); border-color:var(--c-cream-line-2); }

/* --- Card image (top) --- */
.new-blog-page-type .ps-article-img{ overflow:hidden; aspect-ratio:16/9; background:var(--c-tint); }
.new-blog-page-type .ps-article-img img{ width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1s cubic-bezier(.22,.61,.36,1); }
.new-blog-page-type .blog-article:hover .ps-article-img img{ transform:scale(1.06); }

/* --- Card body --- */
.new-blog-page-type .article-category{ display:flex; flex-wrap:wrap; align-items:center;
  gap:8px; margin:0; padding:28px 32px 0; }
.new-blog-page-type .article-category .categories_text{ font-family:var(--font-ui); font-size:12px;
  letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--c-muted); }
.new-blog-page-type .article-category a{ display:inline-block; padding:5px 13px; border-radius:var(--r-pill);
  background:rgba(168,18,42,.08); color:var(--c-primary); font-family:var(--font-ui);
  font-size:12.5px; font-weight:600; text-transform:capitalize; line-height:1.3;
  transition:background .25s ease, color .25s ease; }
.new-blog-page-type .article-category a:hover{ background:var(--c-primary); color:var(--c-light); }
/* hide the literal comma separator spans (those with no link) */
.new-blog-page-type .article-category span:not(.categories_text):not(:has(a)){ display:none; }

.new-blog-page-type .article-title{ margin:0; padding:16px 32px 0; }
.new-blog-page-type .article-title a{ display:inline-block; font-family:var(--font-head); font-weight:500;
  font-size:clamp(21px,2.1vw,27px); line-height:1.2; color:var(--c-ink); transition:color .25s ease; }
.new-blog-page-type .article-title a:hover{ color:var(--c-primary); }

.new-blog-page-type .article-body{ margin:0; padding:12px 32px 0; }
.new-blog-page-type .article-body p{ font-family:var(--font-body); font-size:16px; line-height:1.7;
  color:var(--c-ink-2); margin:0; }

.new-blog-page-type .blog-article > p.pb-0{ margin:0; padding:20px 32px 30px; }
.new-blog-page-type .blog-read-more{ display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-ui); font-size:13.5px; font-weight:600; letter-spacing:.04em;
  text-transform:uppercase; color:var(--c-primary); transition:gap .25s ease, color .25s ease; }
.new-blog-page-type .blog-read-more::after{ content:"\2192"; font-size:16px; line-height:1; transition:transform .25s ease; }
.new-blog-page-type .blog-read-more:hover{ color:var(--c-primary-dark); gap:11px; }
.new-blog-page-type .blog-read-more:hover::after{ transform:translateX(3px); }

/* --- Category filter (sidebar + mobile) --- */
.new-blog-page-type .articles-filter-container{ background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); padding:30px 26px; box-shadow:var(--shadow-1); }
.new-blog-page-type .blog-sidebar .articles-filter-container{ position:sticky; top:110px; }
.new-blog-page-type .articles-filter-container.hide-for-large{ margin-bottom:var(--gap); }
.new-blog-page-type .filter-h2{ font-family:var(--font-head); font-weight:500; font-size:22px;
  color:var(--c-ink); margin:0 0 18px; }
.new-blog-page-type .ps-blog-category{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.new-blog-page-type .ps-blog-category li{ margin:0; }
.new-blog-page-type .ps-blog-category li a{ display:block; padding:11px 16px; border-radius:var(--r-sm);
  font-family:var(--font-ui); font-size:14.5px; color:var(--c-ink-2); text-transform:capitalize;
  transition:background .25s ease, color .25s ease, transform .25s ease; }
.new-blog-page-type .ps-blog-category li a:hover{ background:var(--c-cream); color:var(--c-primary); transform:translateX(4px); }
.new-blog-page-type .ps-blog-category li.active a,
.new-blog-page-type .ps-blog-category li a.all-blogs.button{ background:var(--c-primary); color:var(--c-light); font-weight:600; }
.new-blog-page-type .ps-blog-category li.active a:hover,
.new-blog-page-type .ps-blog-category li a.all-blogs.button:hover{ background:var(--c-primary-dark); color:var(--c-light); transform:none; }

/* --- Pagination --- */
.new-blog-page-type .ps-pagination-bar{ margin-top:38px; }
.new-blog-page-type .ps-pagination-bar p{ margin:0; }
.new-blog-page-type .ps-pagination-bar a,
.new-blog-page-type .ps-pagination-bar span{ display:inline-flex; align-items:center; justify-content:center;
  min-width:42px; height:42px; padding:0 12px; margin:0 4px; border-radius:var(--r-sm);
  font-family:var(--font-ui); font-size:15px; color:var(--c-ink-2);
  border:1px solid var(--c-cream-line); background:var(--c-paper);
  transition:background .25s ease, color .25s ease, border-color .25s ease; }
.new-blog-page-type .ps-pagination-bar a:hover{ background:var(--c-primary); color:var(--c-light); border-color:var(--c-primary); }

/* --- Responsive --- */
@media (max-width:640px){
  .new-blog-page-type .article-category,
  .new-blog-page-type .article-title,
  .new-blog-page-type .article-body{ padding-left:24px; padding-right:24px; }
  .new-blog-page-type .blog-article > p.pb-0{ padding-left:24px; padding-right:24px; }
}

/* ============================================================
   ARTICLE DETAIL  (scoped to .article-page-type)
   ============================================================ */
.article-page-type .blog-article-content{ padding-top:0; }

/* post title */
.article-page-type h1.article-title{ font-family:var(--font-head); font-weight:500; color:var(--c-ink);
  font-size:var(--fs-h1); line-height:1.08; letter-spacing:-.015em; text-wrap:balance;
  margin:0 0 30px; padding:0; }

/* featured image (header, large-8 cell) */
.article-page-type .blog-article-content .ps-article-img{ margin:0; aspect-ratio:16/10;
  border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-lift); }
.article-page-type .blog-article-content .ps-article-img img{ width:100%; height:100%; object-fit:cover; display:block; }

/* author card (large-4 cell) */
.article-page-type .blog-author{ background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); padding:26px 26px; box-shadow:var(--shadow-1); }
.article-page-type .blog-author .lab-ul{ list-style:none; margin:0; padding:0;
  font-family:var(--font-ui); font-size:13px; color:var(--c-muted); }
.article-page-type .blog-author .lab-ul > li{ margin:0 0 12px; }
.article-page-type .author_name{ display:block; font-family:var(--font-head); font-weight:500;
  font-size:19px; color:var(--c-ink); }
.article-page-type .pubdate{ font-family:var(--font-ui); font-size:13px; letter-spacing:.05em;
  text-transform:uppercase; color:var(--c-muted); }
.article-page-type .blog-author .lab-ul a{ display:inline-block; margin:4px 6px 0 0; padding:5px 12px;
  border-radius:var(--r-pill); background:rgba(168,18,42,.08); color:var(--c-primary);
  font-family:var(--font-ui); font-size:12.5px; font-weight:600; text-transform:capitalize; line-height:1.3;
  transition:background .25s ease, color .25s ease; }
.article-page-type .blog-author .lab-ul a:hover{ background:var(--c-primary); color:var(--c-light); }

/* long-form body */
.article-page-type .article-body{ padding:0; margin:46px auto 0; max-width:100%; }
.article-page-type .article-body p{ font-family:var(--font-body); font-size:18px; line-height:1.78;
  color:var(--c-ink); margin:0 0 22px; }
.article-page-type .article-body > p:first-of-type{ font-size:20px; line-height:1.7; color:var(--c-ink); }
.article-page-type .article-body h2{ font-family:var(--font-head); font-weight:500; color:var(--c-ink);
  font-size:clamp(26px,3vw,34px); line-height:1.18; letter-spacing:-.01em;
  margin:50px 0 16px; padding-top:30px; border-top:1px solid var(--c-cream-line); }
.article-page-type .article-body h3{ font-family:var(--font-head); font-weight:500; color:var(--c-ink);
  font-size:clamp(20px,2.2vw,24px); line-height:1.25; margin:32px 0 12px; }
.article-page-type .article-body ul{ list-style:none; margin:0 0 24px; padding:0; }
.article-page-type .article-body ul li{ position:relative; padding-left:30px; margin:0 0 12px;
  font-family:var(--font-body); font-size:17.5px; line-height:1.7; color:var(--c-ink-2); }
.article-page-type .article-body ul li::before{ content:""; position:absolute; left:4px; top:11px;
  width:8px; height:8px; border-radius:50%; background:var(--c-primary); }
.article-page-type .article-body strong{ color:var(--c-ink); font-weight:700; }
.article-page-type .article-body a{ color:var(--c-primary); font-weight:600; text-decoration:underline;
  text-underline-offset:3px; text-decoration-thickness:1px; transition:color .2s ease; }
.article-page-type .article-body a:hover{ color:var(--c-primary-dark); }

/* recent posts */
.article-page-type .blog-sidebar{ margin-top:64px; }
.article-page-type .blog-sidebar-h2{ font-family:var(--font-head); font-weight:500; color:var(--c-ink);
  font-size:clamp(24px,3vw,32px); margin:0 0 26px; }
.new-blog-page-type .ps-blog-recent-posts{ list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:var(--gap); }
.new-blog-page-type .ps-blog-recent-posts .blog-li{ margin:0; }
.new-blog-page-type .item-body{ margin:0; padding:12px 32px 0; }
.new-blog-page-type .item-body p{ font-family:var(--font-body); font-size:15.5px; line-height:1.65;
  color:var(--c-ink-2); margin:0; }

@media (max-width:640px){
  .article-page-type .article-body p{ font-size:17px; }
  .article-page-type .article-body > p:first-of-type{ font-size:18px; }
}

/* ============================================================
   OUR FACTS — stat counters
   ============================================================ */
.p1-facts{ border-top:1px solid rgba(255,255,255,.06); }
.p1-facts-head{ text-align:center; max-width:680px; margin:0 auto 52px; }
.p1-facts-head .p1-h2{ color:var(--c-light); }
.p1-facts-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap); }
.p1-fact{ text-align:center; padding:6px 12px; }
.p1-fact::before{ content:""; display:block; width:34px; height:3px; border-radius:2px;
  background:linear-gradient(90deg,var(--c-primary),var(--c-red-soft-2)); margin:0 auto 20px; }
.p1-fact-num{ font-family:var(--font-head); font-weight:500; font-size:clamp(40px,5vw,58px);
  line-height:1; letter-spacing:-.02em; color:var(--c-light); }
.p1-fact-label{ font-family:var(--font-ui); font-size:14px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--c-on-dark-2); margin-top:14px; }
@media (max-width:860px){ .p1-facts-grid{ grid-template-columns:repeat(2,1fr); row-gap:42px; } }
@media (max-width:420px){ .p1-facts-grid{ grid-template-columns:1fr; } }

/* ============================================================
   REVIEWS — rated 5 stars trust strip
   ============================================================ */
.p1-reviews .p1-review{ display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:16px; text-align:center; padding:14px 8px; min-height:120px; }
.p1-review-logo{ max-height:48px; width:auto; max-width:100%; object-fit:contain; display:block; }
.p1-review-badge{ max-height:118px; width:auto; max-width:100%; object-fit:contain; display:block; }
.p1-review-stars{ color:var(--c-star); font-size:19px; letter-spacing:3px; line-height:1; }
@media (max-width:640px){
  .p1-review-logo{ max-height:40px; }
  .p1-review-badge{ max-height:96px; }
  .p1-review-stars{ font-size:17px; }
}

/* ============================================================
   HEADER — value block + hours block + mobile info
   Neutral text uses inherit so it adapts to the theme header bg.
   ============================================================ */
/* shared bits */
#header .p1-hdr-tagline{ margin:0; display:flex; align-items:center; gap:7px;
  font-family:var(--font-head); font-weight:500; font-size:17px; color:var(--c-primary); }
#header .p1-hdr-ic{ width:18px; height:18px; flex-shrink:0; color:var(--c-primary); }
#header .p1-hdr-hours{ margin:0; display:flex; align-items:center; gap:7px;
  font-family:var(--font-ui); font-size:16px; color:inherit; opacity:.82; }
#header .p1-hdr-hours .p1-hdr-ic{ width:15px; height:15px; opacity:.75; }
#header .p1-hdr-rating{ margin:0; display:flex; align-items:center; gap:7px;
  font-family:var(--font-ui); font-size:12.5px; font-weight:600; color:inherit; }
#header .p1-hdr-stars{ color:var(--c-star); font-size:14px; letter-spacing:1px; }

/* desktop value block (left) */
#header .p1-hdr-info{ display:flex; flex-direction:column; gap:5px; line-height:1.2; }

/* desktop hours box (right) */
#header .p1-hdr-hours-box{ display:grid; grid-template-columns:auto auto; align-items:center;
  gap:1px 11px; width:max-content; margin-left:auto; padding-left:14px;
  border-left:3px solid var(--c-primary); }
#header .p1-hdr-clock{ grid-row:1 / 3; width:27px; height:27px; color:var(--c-primary); }
#header .p1-hdr-hours-label{ font-family:var(--font-ui); font-size:11px; letter-spacing:.12em;
  text-transform:uppercase; font-weight:700; color:var(--c-primary); }
#header .p1-hdr-hours-time{ font-family:var(--font-ui); font-size:13px; font-weight:600; color:inherit; }

/* keep desktop blocks from overflowing on narrower large screens */
@media (min-width:1024px) and (max-width:1180px){
  #header .p1-hdr-tagline{ font-size:15px; }
  #header .p1-hdr-hours, #header .p1-hdr-rating{ font-size:11.5px; }
  #header .p1-hdr-hours-time{ font-size:12px; }
  #header .p1-hdr-clock{ width:24px; height:24px; }
}

/* ---- mobile (< large) ---- */
#header .p1-hdr-mobile-info{ display:flex; flex-direction:column; align-items:center; gap:8px;
  text-align:center; padding:16px 18px 6px; }
#header .p1-hdr-mobile-info .p1-hdr-tagline{ justify-content:center; font-size:16px; }
#header .p1-hdr-mobile-info .p1-hdr-rating,
#header .p1-hdr-mobile-info .p1-hdr-hours{ justify-content:center; }

#header .mobile-contact-number-section{ text-align:center; padding:6px 18px 0; }
#header .mobile-contact-number-section .sitePhoneNumber{ display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-head); font-weight:500; font-size:21px; color:var(--c-primary); }
#header .mobile-contact-button-section{ padding:12px 18px 18px; }
#header .mobile-contact-button-section .button{ display:block; width:100%; text-align:center;
  background:var(--c-primary); color:var(--c-light); border-radius:var(--r-pill); border:0;
  padding:14px 22px; font-family:var(--font-ui); font-weight:600; letter-spacing:.02em;
  box-shadow:var(--shadow-cta); transition:background .3s ease, transform .3s ease; }
#header .mobile-contact-button-section .button:hover{ background:var(--c-primary-dark); transform:translateY(-2px); }
#header .openMenu{ color:var(--c-primary); background:transparent; border:0; }
#header .openMenu .icon{ color:var(--c-primary); }

/* ============================================================
   HEADER — white background + readability + mobile menu rule
   ============================================================ */
#header,
#header .header-top-bg,
#header .new-header-menu-container,
#header .mobile-contact-number-section,
#header .mobile-contact-button-section,
#header .p1-hdr-mobile-info{ background:#fff; }

/* dark, readable text on the now-white header */
#header .p1-hdr-hours{ color:var(--c-ink-2); opacity:1; }
#header .p1-hdr-rating,
#header .p1-hdr-hours-time{ color:var(--c-ink); }
#header .p1-hdr-hours-txt{ line-height:1.35; }

/* top-bar contact links + nav readable on white */
#header .header-top-contact-links .cta{ color:var(--c-ink); }
#header .header-top-contact-links .cta:hover{ color:var(--c-primary); }
#header #mainNav > li > a{ color:var(--c-ink); }
#header #mainNav > li > a:hover{ color:var(--c-primary); }

/* desktop horizontal menu must never show on mobile (hamburger only) */
@media (max-width:1023.5px){
  #header .new-header-menu-container{ display:none !important; }
}

/* ============================================================
   HEADER — phones moved into the logo row
   ============================================================ */
#header .p1-hdr-phones{ display:flex; flex-direction:column; gap:10px; }
#header .p1-hdr-phone{ display:flex; align-items:center; gap:9px;
  font-family:var(--font-head); font-weight:500; font-size:19px; color:var(--c-ink);
  line-height:1.15; transition:color .25s ease; }
#header .p1-hdr-phone:hover{ color:var(--c-primary); }
#header .p1-hdr-phone .fa,
#header .p1-hdr-phone i{ color:var(--c-primary); font-size:16px; flex-shrink:0; }
#header .p1-hdr-phone-lbl{ font-family:var(--font-ui); font-size:16px; font-weight:600; color:var(--c-ink-2); }

/* mobile: stack both phones, centered */
#header .mobile-contact-number-section{ display:flex; flex-direction:column; align-items:center; gap:7px; }
#header .mobile-contact-number-section .sitePhoneNumber{ display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-head); font-weight:500; font-size:18px; color:var(--c-primary); }
#header .mobile-contact-number-section .sitePhoneNumber .fa,
#header .mobile-contact-number-section .sitePhoneNumber i{ font-size:14px; color:var(--c-primary); }

/* ============================================================
   HEADER NAV BAR — black background, white links, inline caret
   ============================================================ */
#header.new-header .new-header-menu-container,
#header .new-header-menu-container{ background:var(--c-dark) !important; }

/* links white, hover/active light red */
#header #mainNav > li > a,
#header #mainNav > li > a:link,
#header #mainNav > li > a:visited{ color:#fff !important; border-radius:var(--r-sm);
  transition:background .25s ease, color .25s ease; }
#header #mainNav > li > a:hover,
#header #mainNav > li > a:focus,
#header #mainNav > li.is-active > a,
#header #mainNav > li.active > a,
#header #mainNav > li.current > a{ color:#fff !important; background:var(--c-primary) !important; }
/* caret stays white so it's visible on the red highlight */
#header #mainNav > li > a:hover::after,
#header #mainNav > li > a:focus::after,
#header #mainNav > li.is-active > a::after,
#header #mainNav > li.active > a::after,
#header #mainNav > li.current > a::after{ border-top-color:#fff !important; }

/* dropdown caret: small inline triangle right after the parent label */
#header #mainNav .is-dropdown-submenu-parent > a{ display:inline-flex; align-items:center; }
#header #mainNav .is-dropdown-submenu-parent > a::after{
  content:""; display:inline-block; position:static; margin:0 0 0 8px; vertical-align:middle;
  width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent;
  border-top:5px solid currentColor; }

/* dropdown panels: clean white card with dark links */
#header #mainNav .is-dropdown-submenu{ background:#fff; border:1px solid var(--c-cream-line);
  box-shadow:var(--shadow-2); border-radius:var(--r-sm); padding:6px 0; }
#header #mainNav .is-dropdown-submenu a{ color:var(--c-ink); padding:9px 16px; }
#header #mainNav .is-dropdown-submenu > li:not(:last-child){ border-bottom:1px solid var(--c-cream-line); }
#header #mainNav .is-dropdown-submenu a:hover,
#header #mainNav .is-dropdown-submenu a:focus{ color:var(--c-primary); background:var(--c-cream); }
#header #mainNav .is-dropdown-submenu > li.active > a,
#header #mainNav .is-dropdown-submenu > li.current > a,
#header #mainNav .is-dropdown-submenu > li.is-active > a{ color:#fff !important; background:var(--c-primary) !important; }

/* ============================================================
   FOOTER — dark, brand-accented, mobile friendly
   (scoped to #footer; footer reuses id="mainNav", so keep it
    separate from the header's #header #mainNav rules)
   ============================================================ */
#footer{ background:var(--c-darker); color:var(--c-on-dark); font-family:var(--font-body); }
#footer a{ text-decoration:none; }

/* --- footer nav row --- */
#footer .footer-menu-container{ border-bottom:1px solid rgba(255,255,255,.08); }
#footer #mainNav{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:2px 4px; }
#footer #mainNav > li > a{ color:var(--c-on-dark); font-family:var(--font-ui); font-weight:600;
  font-size:14px; letter-spacing:.02em; padding:10px 14px; border-radius:var(--r-sm);
  transition:color .25s ease, background .25s ease; }
#footer #mainNav > li > a:hover,
#footer #mainNav > li > a:focus,
#footer #mainNav > li.active > a{ color:#fff; background:var(--c-primary); }

/* footer: hide submenus entirely — only top-level links show
   (Services / Service Areas still link to their own pages) */
#footer #mainNav .is-dropdown-submenu{ display:none !important; }
#footer #mainNav .is-dropdown-submenu-parent > a::after{ display:none !important; }

/* --- column headings with accent underline --- */
#footer .footer-text h4,
#footer .contact-us-column h4{ font-family:var(--font-head); color:#fff; font-size:var(--fs-h3);
  margin:0 0 14px; padding-bottom:10px; position:relative; }
#footer .footer-text h4::after,
#footer .contact-us-column h4::after{ content:""; position:absolute; left:0; bottom:0;
  width:42px; height:3px; background:var(--c-primary); border-radius:2px; }
#footer .footer-text p{ font-family:var(--font-body); color:var(--c-on-dark-2); font-size:14.5px; line-height:1.7; margin:0; }
#footer .footer-text, #footer .contact-us-column{ padding:22px 0; }

/* --- social icons --- */
#footer .footer-social-media{ margin-top:18px; }
#footer .footer-social-media .menu{ gap:10px; }
#footer .footer-social-media a{ display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; padding:0; box-sizing:border-box; border-radius:50%; background:rgba(255,255,255,.06);
  transition:background .25s ease, transform .25s ease; }
#footer .footer-social-media a:hover{ background:var(--c-primary); transform:translateY(-3px); }
#footer .footer-social-media .social-icon{ width:18px; height:18px; fill:var(--c-on-dark); transition:fill .25s ease; }
#footer .footer-social-media a:hover .social-icon{ fill:#fff; }

/* --- center logo --- */
#footer .footer-media-box{ display:flex; align-items:center; justify-content:center; }
#footer .footer-media-box img{ max-width:300px; width:100%; height:auto; }

/* --- contact column --- */
#footer .contact-us-column .shop-address{ color:var(--c-on-dark); font-size:14.5px; line-height:1.7; transition:color .25s ease; }
#footer .contact-us-column .shop-address:hover{ color:var(--c-red-soft-2); }
#footer .contact-number{ display:flex; flex-direction:column; padding-bottom:0; }
#footer .contact-number a{ font-size:14.5px; color:var(--c-on-dark); transition:color .25s ease; }
#footer .contact-number a:hover{ color:var(--c-red-soft-2); }
#footer .email-id{ display:inline-block; margin-top:9px; color:var(--c-on-dark); font-size:14.5px; transition:color .25s ease; }
#footer .email-id:hover{ color:var(--c-red-soft-2); }
#footer .mailing-list-button{ margin-top:20px; }
#footer .mailing-list-button .button{ display:inline-block; background:var(--c-primary); color:#fff;
  border-radius:var(--r-pill); padding:13px 28px; font-family:var(--font-ui); font-weight:600; letter-spacing:.02em;
  box-shadow:var(--shadow-cta); transition:background .25s ease, transform .25s ease; }
#footer .mailing-list-button .button:hover{ background:var(--c-primary-dark); transform:translateY(-2px); }

/* --- copyright bar --- */
#footer .copyright-container{ border-top:1px solid rgba(255,255,255,.08); padding:18px 0; }
#footer .copyright{ color:var(--c-on-dark-2); font-size:13px; font-family:var(--font-ui); }
#footer .copyright a{ color:var(--c-on-dark); transition:color .25s ease; }
#footer .copyright a:hover{ color:var(--c-red-soft-2); }

/* --- mobile --- */
@media (max-width:1023px){
  #footer .footer-media-box{ margin:20px 0; }
}
@media (max-width:640px){
  #footer #mainNav > li > a{ padding:9px 11px; font-size:13px; }
  #footer .footer-text, #footer .contact-us-column{ text-align:center; padding:18px 0; }
  #footer .footer-text h4, #footer .contact-us-column h4{ display:inline-block; }
  #footer .footer-text h4::after, #footer .contact-us-column h4::after{ left:50%; transform:translateX(-50%); }
  #footer .footer-social-media .menu{ justify-content:center; }
  #footer .footer-media-box img{ max-width:230px; }
}

/* ============================================================
   FOOTER — nav text color, contact icons, logo backdrop
   ============================================================ */
/* nav link text lives in an inner <span> the theme colors */
#footer #mainNav > li > a:not(.button) span,
.new-footer ul.dropdown.menu > li > a:not(.button) span{ color:var(--c-on-dark); }
.new-footer ul.dropdown.menu > li.active > a:not(.button) span,
.new-footer ul.dropdown.menu > li:hover > a:not(.button) span{ color:#fff; }

/* contact icons (address / phone / email) */
#footer .contact-us-column .shop-address{ display:flex !important; align-items:flex-start; gap:10px; }
#footer .contact-us-column .shop-address::before{ content:""; flex-shrink:0; width:17px; height:17px; margin-top:3px;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23e0566f%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2010c0%207-9%2013-9%2013s-9-6-9-13a9%209%200%200%201%2018%200z%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2710%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat; }
#footer .contact-number a{ display:inline-flex; align-items:center; gap:10px; }
#footer .contact-number a::before{ content:""; flex-shrink:0; width:17px; height:17px;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23e0566f%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6%2019.79%2019.79%200%200%201-3.07-8.67A2%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72c.13.96.36%201.9.7%202.81a2%202%200%200%201-.45%202.11L8.09%209.91a16%2016%200%200%200%206%206l1.27-1.27a2%202%200%200%201%202.11-.45c.91.34%201.85.57%202.81.7A2%202%200%200%201%2022%2016.92z%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat; }
#footer .email-id{ display:inline-flex; align-items:center; gap:10px; }
#footer .email-id::before{ content:""; flex-shrink:0; width:17px; height:17px;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23e0566f%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%272%27%20y%3D%274%27%20width%3D%2720%27%20height%3D%2716%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27m22%207-10%205L2%207%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat; }

/* backdrop panel behind the footer logo */
#footer .footer-media-box img{ background:#fff; padding:20px 26px; border-radius:var(--r-md); box-shadow:var(--shadow-2); }

@media (max-width:640px){
  #footer .contact-us-column .shop-address{ justify-content:center; }
  #footer .contact-number a, #footer .email-id{ justify-content:center; }
}

/* ============================================================
   MOBILE SIDENAV (off-canvas) — match desktop nav look & feel
   ============================================================ */
#sidenav{ background:var(--c-dark) !important; color:#fff; padding:6px 0; }
#sidenav .menu, #sidenav .accordion-menu{ background:transparent; }

/* top-level links */
#sidenav .menu a{ color:#fff !important; font-family:var(--font-ui); font-weight:600; font-size:15.5px;
  padding:15px 22px; transition:color .2s ease, background .2s ease; }
#sidenav .menu a span{ color:#fff !important; }
#sidenav .menu > li{ border-bottom:1px solid rgba(255,255,255,.08); }
#sidenav .menu a:hover, #sidenav .menu a:focus{ background:rgba(255,255,255,.08); }
#sidenav .menu li.active > a{ background:var(--c-primary) !important; }

/* nested accordion submenu */
#sidenav .is-accordion-submenu{ background:rgba(0,0,0,.28); }
#sidenav .is-accordion-submenu a{ font-weight:500; font-size:14px; padding:12px 22px; }
#sidenav .is-accordion-submenu > li{ border-top:1px solid rgba(255,255,255,.05); border-bottom:0; }
#sidenav .is-accordion-submenu a:hover, #sidenav .is-accordion-submenu a:focus{ background:rgba(255,255,255,.06); }
#sidenav .is-accordion-submenu li.active > a{ background:var(--c-primary) !important; }

/* expand caret on parents (rotates when open) */
#sidenav .is-accordion-submenu-parent > a{ position:relative; }
#sidenav .is-accordion-submenu-parent > a::after{ content:""; position:absolute; right:22px; top:50%;
  transform:translateY(-50%); width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent;
  border-top:6px solid #fff; transition:transform .25s ease; }
#sidenav .is-accordion-submenu-parent[aria-expanded="true"] > a::after{ transform:translateY(-50%) rotate(180deg); }

/* ============================================================
   BACK TO TOP BUTTON
   ============================================================ */
.back-to-top-button{ position:fixed; right:24px; bottom:24px; z-index:900;
  display:inline-flex; align-items:center; justify-content:center;
  width:52px; height:52px; border-radius:50%;
  background:var(--c-primary); color:#fff; box-shadow:var(--shadow-cta);
  transition:background .25s ease, transform .25s ease, box-shadow .25s ease; }
.back-to-top-button:hover,
.back-to-top-button:focus{ background:var(--c-primary-dark); color:#fff;
  transform:translateY(-4px); box-shadow:var(--shadow-2); }
.back-to-top-button:active{ transform:translateY(-1px); }

/* center the arrow: cancel FA border/float utilities, keep the rotate */
.back-to-top-button i{ float:none !important; margin:0 !important; padding:0 !important;
  border:0 !important; line-height:1; font-size:20px; }

@media (max-width:640px){
  .back-to-top-button{ right:16px; bottom:16px; width:46px; height:46px; }
  .back-to-top-button i{ font-size:18px; }
}

/* hero content padding on tablet/mobile */
@media (max-width:1023.5px){
  .p1-hero .bn-content{ padding:0; }
}

/* ============================================================
   HERO COPY — light-blue glass panel (desktop + mobile)
   Text under it flipped to dark for contrast.
   ============================================================ */
.p1-hero-copy{ max-width:660px; padding:15px; border-radius:var(--r-md);
 /* background: rgb(127 176 208 / 57%);*/ background: rgb(220 241 255 / 65%); border:1px solid rgba(255,255,255,.5);
  box-shadow:var(--shadow-2); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(4px); }
.p1-hero-copy.is-wide{ max-width:660px; }
@media (max-width:1023.5px){
  .p1-hero-copy, .p1-hero-copy.is-wide{ max-width:100%; border-radius:0; }
}
.p1-hero .p1-h1{ color:var(--c-ink); }
.p1-hero .p1-em{ color:var(--c-primary); }
.p1-hero .p1-lead{ color:var(--c-ink); }
.p1-hero .p1-hero-trust{ border-top-color:rgba(20,23,26,.18); }
.p1-hero .p1-trust-text{ color:var(--c-ink); }
.p1-hero .p1-hero-actions .p1-btn-ghost{ color:var(--c-ink); border-color:rgba(20,23,26,.35); background:rgba(255,255,255,.25); }
.p1-hero .p1-hero-actions .p1-btn-ghost:hover{ background:var(--c-ink); color:var(--c-light); border-color:var(--c-ink); }

/* hero on light-blue panel — fix contrast of inner elements */
.p1-hero .p1-eyebrow .p1-eyebrow-text{ color:var(--c-primary); }
.p1-hero .p1-eyebrow .p1-eyebrow-line{ background:var(--c-primary); }
.p1-hero .p1-hero-actions .p1-btn{ color:var(--c-light); }
.p1-hero .p1-float{ background:rgba(255,255,255,.55); border-color:rgba(255,255,255,.75); }
.p1-hero .p1-float-title{ color:var(--c-ink); }
.p1-hero .p1-float-sub{ color:var(--c-ink-2); }
.p1-hero .p1-float-ico{ background:rgba(168,18,42,.16); }
.p1-hero .p1-float-ico svg{ stroke:var(--c-primary); }

/* footer: remove top spacing/border on tablet & mobile */
@media screen and (max-width:1023.5px){
  #footer{ margin-top:0; border-top:0; }
}

/* ============================================================
   CONTACT FORM (.ww-form-container-3)
   ============================================================ */
.ww-form-container-3{ background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); box-shadow:var(--shadow-1); padding:30px; }

/* field grid: name row, email/phone row, message full width */
.ww-form-container-3 .fieldset{ display:grid; grid-template-columns:1fr 1fr; gap:18px 20px;
  border:0; margin:0; padding:0; }
.ww-form-container-3 .field_33712_wrap{ grid-column:1 / -1; width:95%; }

/* labels */
.ww-form-container-3 label{ display:block; font-family:var(--font-ui); font-weight:600; font-size:13.5px;
  color:var(--c-ink); margin-bottom:7px; letter-spacing:.01em; }
.ww-form-container-3 .required{ color:var(--c-primary); margin-left:3px; }

/* inputs + textarea */
.ww-form-container-3 .input,
.ww-form-container-3 .phone_number{ width:100%; box-sizing:border-box; font-family:var(--font-body);
  font-size:15.5px; color:var(--c-ink); background:var(--c-cream);
  border-radius:var(--r-sm); padding:13px 15px;
  transition:background .2s ease, box-shadow .2s ease; }
.ww-form-container-3 .input:focus,
.ww-form-container-3 .phone_number:focus{ box-shadow:0 0 0 2px var(--c-primary); }
.ww-form-container-3 textarea.input{ min-height:130px; resize:vertical; }
.ww-form-container-3 .input::placeholder,
.ww-form-container-3 .phone_number::placeholder{ color:var(--c-ink-2); opacity:.7; }

/* international phone widget */
.ww-form-container-3 .iti{ display:block; width:100%; }
/* keep the plugin's left padding for the flag; only set the rest */
.ww-form-container-3 .iti .phone_number{ padding-left:52px; }
.ww-form-container-3 .iti__country-list{ border-radius:var(--r-sm); box-shadow:var(--shadow-2);
  border:1px solid var(--c-cream-line-2); }

/* error messages */
.ww-form-container-3 .error{ display:block; color:var(--c-primary); font-size:12.5px;
  font-family:var(--font-ui); margin-top:5px; }

/* submit */
.ww-form-container-3 .form-container{ margin-top:22px; }
.ww-form-container-3 input[type="submit"]{ width:auto; display:inline-flex; align-items:center; justify-content:center;
  background:var(--c-primary); color:#fff; border:0; border-radius:var(--r-pill); padding:14px 40px;
  font-family:var(--font-ui); font-weight:600; font-size:15px; letter-spacing:.02em; cursor:pointer;
  box-shadow:var(--shadow-cta); transition:background .25s ease, transform .25s ease; }
.ww-form-container-3 input[type="submit"]:hover{ background:var(--c-primary-dark); transform:translateY(-2px); }

@media (max-width:640px){
  .ww-form-container-3{ padding:20px; }
  .ww-form-container-3 .fieldset{ grid-template-columns:1fr; }
  .ww-form-container-3 input[type="submit"]{ width:100%; }
}

/* form-template-3 container alignment */
.form-template-3 div.form-container{ margin:0 auto; max-width:100%; width:95%; padding-left:0; padding-right:0; }

/* ============================================================
   LEAD MAGNET FORM (#lead-magnet-form) — blog CTA card
   (no styling applied to the reCAPTCHA block)
   ============================================================ */
#lead-magnet-form .ww-form-container{ max-width:680px; margin:0 auto; background:var(--c-paper);
  border:1px solid var(--c-cream-line); border-radius:var(--r-md); box-shadow:var(--shadow-1);
  padding:34px; position:relative; overflow:hidden; }
#lead-magnet-form .ww-form-container::before{ content:""; position:absolute; left:0; right:0; top:0;
  height:4px; background:var(--c-primary); }

#lead-magnet-form h2{ font-family:var(--font-head); color:var(--c-ink); font-size:clamp(23px,3vw,31px);
  line-height:1.15; margin:6px 0 12px; text-wrap:balance; }
#lead-magnet-form p{ font-family:var(--font-body); color:var(--c-ink-2); font-size:15.5px; line-height:1.7; margin:0 0 24px; }

#lead-magnet-form label{ display:block; font-family:var(--font-ui); font-weight:600; font-size:13.5px;
  color:var(--c-ink); margin-bottom:7px; letter-spacing:.01em; }
#lead-magnet-form .required{ color:var(--c-primary); margin-left:3px; }

#lead-magnet-form .first_name_wrap,
#lead-magnet-form .email_wrap{ margin-bottom:16px; }

#lead-magnet-form .input{ width:100%; box-sizing:border-box; font-family:var(--font-body); font-size:15.5px;
  color:var(--c-ink); background:var(--c-cream); border-radius:5px; min-height:45px; padding:13px 15px;
  transition:background .2s ease, box-shadow .2s ease; }
#lead-magnet-form .input:focus{ box-shadow:0 0 0 2px var(--c-primary) !important; }
#lead-magnet-form .input::placeholder{ color:var(--c-ink-2); opacity:.7; }

#lead-magnet-form .error{ display:block; color:var(--c-primary); font-size:12.5px; font-family:var(--font-ui); margin-top:5px; }

#lead-magnet-form .submit_wrap{ margin-top:8px; }
#lead-magnet-form input[type="submit"]{ width:max-content; display:inline-flex; align-items:center; justify-content:center;
  background:var(--c-primary); color:#fff; border:0; border-radius:var(--r-pill); padding:15px 32px;
  font-family:var(--font-ui); font-weight:600; font-size:15.5px; letter-spacing:.02em; cursor:pointer;
  box-shadow:var(--shadow-cta); transition:background .25s ease, transform .25s ease; }
#lead-magnet-form input[type="submit"]:hover{ background:var(--c-primary-dark); transform:translateY(-2px); }

@media (max-width:640px){
  #lead-magnet-form .ww-form-container{ padding:22px; }
}

/* lead magnet form element width */
#lead-magnet-form form{ width:100%; margin:0 auto; }

/* keep the reCAPTCHA block clear (it carries the .input class) */
.recaptcha-block.input{ background:transparent; }

/* remove field padding bleed on lead-magnet reCAPTCHA block */
#lead-magnet-form .recaptcha-block.input{ padding:0; height:0; min-height:0; }

/* contact form fields — element-level + .form-template-3 scope to beat theme defaults */
.form-template-3 .ww-form-container-3 input[type="text"],
.form-template-3 .ww-form-container-3 input[type="password"],
.form-template-3 .ww-form-container-3 input[type="tel"],
.form-template-3 .ww-form-container-3 input[type="email"],
.form-template-3 .ww-form-container-3 select,
.form-template-3 .ww-form-container-3 textarea,
.form-template-3 #mob_phone_phone_number_tel{ width:100%; border-radius:5px; min-height:45px;
  background:var(--c-cream); margin:0 0 .5em 0; }

/* ============================================================
   NEWSLETTER FORM (#newsletter-form) — matches site forms
   (targets field types, not .input, so checkbox/captcha are safe)
   ============================================================ */
#newsletter-form form{ background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); box-shadow:var(--shadow-1); padding:30px; margin-bottom:50px; }

#newsletter-form document{ display:block; }
#newsletter-form document p{ font-family:var(--font-body); color:var(--c-ink-2); font-size:15.5px;
  line-height:1.7; margin:0 0 20px; }

#newsletter-form .fieldset{ border:0; margin:0; padding:0; }
#newsletter-form legend{ font-family:var(--font-head); color:var(--c-ink); font-size:var(--fs-h3);
  margin-bottom:16px; padding:0; }

#newsletter-form label{ display:block; font-family:var(--font-ui); font-weight:600; font-size:13.5px;
  color:var(--c-ink); margin-bottom:7px; letter-spacing:.01em; }
#newsletter-form .required{ color:var(--c-primary); margin-left:3px; }

#newsletter-form .first_name_wrap,
#newsletter-form .last_name_wrap,
#newsletter-form .email_wrap{ margin-bottom:16px; }

#newsletter-form input[type="text"],
#newsletter-form input[type="email"]{ width:100%; box-sizing:border-box; font-family:var(--font-body);
  font-size:15.5px; color:var(--c-ink); background:var(--c-cream); border-radius:5px;
  min-height:45px; padding:13px 15px; transition:background .2s ease, box-shadow .2s ease; }
#newsletter-form input[type="text"]:focus,
#newsletter-form input[type="email"]:focus{ box-shadow:0 0 0 2px var(--c-primary) !important; }
#newsletter-form input::placeholder{ color:var(--c-ink-2); opacity:.7; }

#newsletter-form .error{ display:block; color:var(--c-primary); font-size:12.5px; font-family:var(--font-ui); margin-top:5px; }

/* opt-in checkbox */
#newsletter-form .checkbox_wrap{ margin:6px 0 4px; }
#newsletter-form .checkbox_wrap > p{ display:none; }
#newsletter-form .checkbox_wrap .float-left{ float:none !important; }
#newsletter-form .checkbox_wrap label{ display:flex; align-items:center; gap:9px; margin-bottom:0;
  font-family:var(--font-ui); font-size:14px; font-weight:500; color:var(--c-ink); cursor:pointer; }
#newsletter-form .checkbox_wrap input[type="checkbox"]{ width:18px; height:18px; min-height:0; margin:0;
  padding:0; flex-shrink:0; accent-color:var(--c-primary); background:transparent; }

/* submit */
#newsletter-form .submit_wrap label{ display:none; }
#newsletter-form input[type="submit"]{ width:auto; display:inline-flex; align-items:center; justify-content:center;
  background:var(--c-primary); color:#fff; border:0; border-radius:var(--r-pill); padding:14px 40px;
  font-family:var(--font-ui); font-weight:600; font-size:15px; letter-spacing:.02em; cursor:pointer;
  box-shadow:var(--shadow-cta); transition:background .25s ease, transform .25s ease; }
#newsletter-form input[type="submit"]:hover{ background:var(--c-primary-dark); transform:translateY(-2px); }

@media (max-width:640px){
  #newsletter-form form{ padding:22px; }
  #newsletter-form input[type="submit"]{ width:100%; }
}

/* ============================================================
   LOGIN PAGE (.ps-login-page) — matches site forms
   ============================================================ */
.ps-login-page .ps-login-form-wrap{ background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); box-shadow:var(--shadow-1); padding:34px; max-width:560px; margin:0 auto; }

.ps-login-page h4{ font-family:var(--font-head); color:var(--c-ink); font-size:var(--fs-h3); margin:0 0 20px; }

.ps-login-page label{ display:block; font-family:var(--font-ui); font-weight:600; font-size:13.5px;
  color:var(--c-ink); margin-bottom:7px; letter-spacing:.01em; }
.ps-login-page label .error{ color:var(--c-primary); margin-left:3px; }

.ps-login-page .ps-text{ width:100%; box-sizing:border-box; font-family:var(--font-body); font-size:15.5px;
  color:var(--c-ink); background:var(--c-cream); border-radius:5px; min-height:45px; padding:13px 15px;
  transition:background .2s ease, box-shadow .2s ease; }
.ps-login-page .ps-text:focus{ outline:0; box-shadow:0 0 0 2px var(--c-primary) !important; }
.ps-login-page .ps-text::placeholder{ color:var(--c-ink-2); opacity:.7; }

/* password field + show/hide eye */
.ps-login-page .password-container{ position:relative; }
.ps-login-page .password-container .ps-text{ padding-right:42px; }
.ps-login-page .toggle-password{ position:absolute; top:50%; transform:translateY(-50%);
  color:var(--c-ink-2); cursor:pointer; font-size:15px; }
.ps-login-page .toggle-password:hover{ color:var(--c-primary); }
.ps-login-page .password-container + p{ font-family:var(--font-ui); font-size:12.5px; color:var(--c-ink-2); margin:6px 0 0; }

/* primary login button */
.ps-login-page .ps-login-button{ width:max-content; display:inline-flex; align-items:center; justify-content:center;
  background:var(--c-primary); color:#fff; border:0; border-radius:var(--r-pill); padding:13px 40px;
  font-family:var(--font-ui); font-weight:600; font-size:15px; letter-spacing:.02em; cursor:pointer;
  box-shadow:var(--shadow-cta); transition:background .25s ease, transform .25s ease; }
.ps-login-page .ps-login-button:hover{ background:var(--c-primary-dark); transform:translateY(-2px); }

/* forgot-password line + links */
.ps-login-page .ps-login-form-wrap > p{ font-family:var(--font-ui); font-size:14px; color:var(--c-ink-2); margin:18px 0 0; }
.ps-login-page a{ color:var(--c-primary); font-weight:600; }
.ps-login-page a:hover{ color:var(--c-primary-dark); }

/* separator + register block */
.ps-login-page .ps-separator{ height:1px; background:var(--c-cream-line); margin:24px 0; }
.ps-login-page .signup-container{ text-align:center; }
.ps-login-page .signup-container p{ font-family:var(--font-ui); font-size:14px; color:var(--c-ink-2); margin:0 0 12px; }
.ps-login-page .ps-register-button{ width:max-content; display:inline-flex; align-items:center; justify-content:center;
  background:transparent; color:var(--c-primary); border:2px solid var(--c-primary); border-radius:var(--r-pill);
  padding:11px 32px; font-family:var(--font-ui); font-weight:600; font-size:14px; letter-spacing:.04em; cursor:pointer;
  transition:background .25s ease, color .25s ease; }
.ps-login-page .ps-register-button:hover{ background:var(--c-primary); color:#fff; }

@media (max-width:640px){
  .ps-login-page .ps-login-form-wrap{ padding:22px; }
}

/* login fields — override theme defaults to match site forms */
.ps-login-page .new-website-login-form form.settings input[type="text"],
.ps-login-page .new-website-login-form form.settings input[type="email"],
.ps-login-page .new-website-login-form form.settings input[type="password"]{
  height:auto; min-height:45px; width:100%; font-size:15.5px; line-height:1.4; padding:13px 15px;
  border-radius:5px; border:1px solid var(--c-cream-line-2); background:var(--c-cream); }

/* ============================================================
   REGISTER FORM (#register-form) — matches site forms
   (targets field types so checkbox/captcha stay untouched)
   ============================================================ */
#register-form form{ background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); box-shadow:var(--shadow-1); padding:30px; margin-bottom:50px; }

#register-form document{ display:block; }
#register-form document p{ font-family:var(--font-body); color:var(--c-ink-2); font-size:15.5px; line-height:1.7; margin:0 0 20px; }

#register-form .fieldset{ border:0; margin:0; padding:0; }
#register-form legend{ font-family:var(--font-head); color:var(--c-ink); font-size:var(--fs-h3); margin-bottom:16px; padding:0; }

#register-form label{ display:block; font-family:var(--font-ui); font-weight:600; font-size:13.5px;
  color:var(--c-ink); margin-bottom:7px; letter-spacing:.01em; }
#register-form .required{ color:var(--c-primary); margin-left:3px; }

#register-form .first_name_wrap,
#register-form .last_name_wrap,
#register-form .email_wrap,
#register-form .password_wrap,
#register-form .password_wrap + div,
#register-form .phone_wrap{ margin-bottom:16px; }

/* fields */
#register-form input[type="text"],
#register-form input[type="email"],
#register-form input[type="password"],
#register-form .phone_number{ width:100%; box-sizing:border-box; font-family:var(--font-body); font-size:15.5px;
  color:var(--c-ink); background:var(--c-cream); border-radius:5px; min-height:45px; padding:13px 15px;
  transition:background .2s ease, box-shadow .2s ease; }
#register-form input[type="text"]:focus,
#register-form input[type="email"]:focus,
#register-form input[type="password"]:focus,
#register-form .phone_number:focus{ box-shadow:0 0 0 2px var(--c-primary) !important; }
#register-form input::placeholder{ color:var(--c-ink-2); opacity:.7; }

/* password fields + show/hide eye */
#register-form .password-container{ position:relative; }
#register-form .password-container input[type="password"]{ padding-right:42px; }
#register-form .toggle-password{ position:absolute; top:50%; transform:translateY(-50%);
  color:var(--c-ink-2); cursor:pointer; font-size:15px; }
#register-form .toggle-password:hover{ color:var(--c-primary); }

/* international phone widget (older intl-tel-input markup) */
#register-form .intl-tel-input{ display:block; width:100%; }
#register-form .intl-tel-input .phone_number{ padding-left:52px; }
#register-form .country-list{ border-radius:var(--r-sm); box-shadow:var(--shadow-2); border:1px solid var(--c-cream-line-2); }

/* errors */
#register-form .error{ display:block; color:var(--c-primary); font-size:12.5px; font-family:var(--font-ui); margin-top:5px; }

/* opt-in checkbox */
#register-form .checkbox_wrap{ margin:6px 0 4px; }
#register-form .checkbox_wrap > p{ display:none; }
#register-form .checkbox_wrap .float-left{ float:none !important; }
#register-form .checkbox_wrap label{ display:flex; align-items:center; gap:9px; margin-bottom:0;
  font-family:var(--font-ui); font-size:14px; font-weight:500; color:var(--c-ink); cursor:pointer; }
#register-form .checkbox_wrap input[type="checkbox"]{ width:18px; height:18px; min-height:0; margin:0;
  padding:0; flex-shrink:0; accent-color:var(--c-primary); background:transparent; }

/* submit */
#register-form .submit_wrap label{ display:none; }
#register-form input[type="submit"]{ width:max-content; display:inline-flex; align-items:center; justify-content:center;
  background:var(--c-primary); color:#fff; border:0; border-radius:var(--r-pill); padding:14px 40px;
  font-family:var(--font-ui); font-weight:600; font-size:15px; letter-spacing:.02em; cursor:pointer;
  box-shadow:var(--shadow-cta); transition:background .25s ease, transform .25s ease; }
#register-form input[type="submit"]:hover{ background:var(--c-primary-dark); transform:translateY(-2px); }

@media (max-width:640px){
  #register-form form{ padding:22px; }
  #register-form input[type="submit"]{ width:100%; }
}

/* ============================================================
   REVIEWS PAGE — submit form + review listing
   (system widget markup; scoped to its own classes;
    reCAPTCHA #wwcaptcha is never styled)
   ============================================================ */

/* ---- review submit form (#reviewform) ---- */
#form{ padding-top:6px; }
#reviewform{ background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-radius:var(--r-md); box-shadow:var(--shadow-1); padding:40px 34px; margin:0 auto 48px; }

#reviewform .rating-experience-heading{ font-family:var(--font-ui); font-weight:700; font-size:13px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--c-primary); margin:0 0 4px; }
#reviewform h2{ font-family:var(--font-head); font-size:var(--fs-h2); color:var(--c-ink); margin:0 0 8px; }
#reviewform h2 b{ font-weight:600; }
#reviewform > p.text-center{ font-family:var(--font-body); color:var(--c-ink-2); font-size:16px; margin:0; }

/* interactive star picker (Unicode ★, gold) */
.rating-star{ display:inline-flex; align-items:center; gap:8px; font-size:36px; line-height:1; }
.rating-star span{ cursor:pointer; color:var(--c-cream-line-2); transition:color .15s ease, transform .15s ease; }
.rating-star span:hover{ transform:scale(1.12); }
.rating-star span.active,
.rating-star span.selected,
.rating-star span:hover{ color:var(--c-star); }
/* light every star up to and including the hovered one */
.rating-star:has(span[data-val="2"]:hover) span[data-val="1"],
.rating-star:has(span[data-val="3"]:hover) span[data-val="1"],
.rating-star:has(span[data-val="3"]:hover) span[data-val="2"],
.rating-star:has(span[data-val="4"]:hover) span[data-val="1"],
.rating-star:has(span[data-val="4"]:hover) span[data-val="2"],
.rating-star:has(span[data-val="4"]:hover) span[data-val="3"],
.rating-star:has(span[data-val="5"]:hover) span[data-val="1"],
.rating-star:has(span[data-val="5"]:hover) span[data-val="2"],
.rating-star:has(span[data-val="5"]:hover) span[data-val="3"],
.rating-star:has(span[data-val="5"]:hover) span[data-val="4"]{ color:var(--c-star); }
.rating-star .reset-stars{ margin-left:10px; font-size:17px; color:var(--c-ink-2); cursor:pointer;
  transition:color .15s ease; }
.rating-star .reset-stars:hover{ color:var(--c-primary); }

#reviewform .review-feedback-form-text{ font-family:var(--font-ui); font-weight:600; color:var(--c-ink);
  font-size:14.5px; margin:0 0 14px; }

/* fields (inputs are nested inside their labels) */
#reviewform .input-fields{ margin-bottom:16px; }
#reviewform .input-field-label,
#reviewform .input-field-feedback{ display:block; font-family:var(--font-ui); font-weight:600;
  font-size:13.5px; color:var(--c-ink); letter-spacing:.01em; }
#reviewform .required{ color:var(--c-primary); margin-left:3px; }
#reviewform input[type="text"],
#reviewform input[type="email"],
#reviewform textarea{ display:block; width:100%; box-sizing:border-box; margin-top:7px;
  font-family:var(--font-body); font-size:15.5px; color:var(--c-ink); background:var(--c-cream);
  border-radius:5px; min-height:45px; padding:13px 15px; transition:background .2s ease, box-shadow .2s ease; }
#reviewform textarea{ min-height:130px; resize:vertical; }
#reviewform input[type="text"]:focus,
#reviewform input[type="email"]:focus,
#reviewform textarea:focus{ box-shadow:0 0 0 2px var(--c-primary) !important; }

/* captcha — spacing only, never style the widget */
#reviewform .review-captcha{ margin:6px 0 18px; }

/* submit */
#reviewform .submit-review-form{ text-align:center; }
#reviewform input[type="submit"]{ display:inline-flex; align-items:center; justify-content:center;
  width:max-content; background:var(--c-primary); color:#fff; border:0; border-radius:var(--r-pill);
  padding:14px 46px; font-family:var(--font-ui); font-weight:600; font-size:15px; letter-spacing:.02em;
  cursor:pointer; box-shadow:var(--shadow-cta); transition:background .25s ease, transform .25s ease; }
#reviewform input[type="submit"]:hover{ background:var(--c-primary-dark); transform:translateY(-2px); }

/* ---- thank-you / post-submit states ---- */
.positive-feedback-services h2{ font-family:var(--font-head); color:var(--c-ink); }
.review-logo img{ max-height:46px; width:auto; }
#review-logo-container{ margin-top:12px; }

/* ---- reviews listing ---- */
.reviews-form-container > p.padding-bottom-2 strong{ font-family:var(--font-head);
  font-size:var(--fs-h3); color:var(--c-ink); }

.review-list-container{ margin:0; padding:0; list-style:none; }
.review-list-container > li{ background:var(--c-paper); border:1px solid var(--c-cream-line);
  border-left:3px solid var(--c-primary); border-radius:var(--r-md); box-shadow:var(--shadow-1);
  padding:22px 24px; margin-bottom:18px; transition:box-shadow .25s ease, transform .25s ease; }
.review-list-container > li:hover{ box-shadow:var(--shadow-2); transform:translateY(-2px); }
.review-list-container > li.google-post{ border-left-color:#4285f4; }
.review-list-container > li.facebook-post{ border-left-color:#3b5998; }

.review-list-container .review-img img{ width:30px; height:30px; object-fit:contain; }
.review-list-container .user-profile strong{ display:block; font-family:var(--font-head);
  font-size:18px; color:var(--c-ink); margin-bottom:4px; }

.review-list-container .star-ratings-css{ display:inline-flex; gap:2px; margin-bottom:8px; }
.review-list-container .star-rating-icon{ width:16px; height:16px; fill:var(--c-cream-line-2); }
.review-list-container .star-rating-icon.active{ fill:var(--c-star); }

.review-list-container .user-comment .review-text p{ font-family:var(--font-body); color:var(--c-ink-2);
  font-size:15.5px; line-height:1.7; margin:0; white-space:pre-line; }
.review-list-container .review-date{ font-family:var(--font-ui); font-size:13px; color:var(--c-ink-2); white-space:nowrap; }

/* pagination */
.definition-block .pagination{ margin-top:28px; }
.definition-block .pagination p{ margin:0; }
.definition-block .pagination .page,
.definition-block .pagination .next{ display:inline-block; margin:0 3px; }
.definition-block .pagination .page a,
.definition-block .pagination .next a,
.definition-block .pagination .page.current{ display:inline-block; min-width:40px; padding:9px 13px;
  border-radius:var(--r-sm); font-family:var(--font-ui); font-size:14px; text-align:center;
  text-decoration:none; transition:background .2s ease, border-color .2s ease, color .2s ease; }
.definition-block .pagination .page a,
.definition-block .pagination .next a{ border:1px solid var(--c-cream-line-2); color:var(--c-ink); }
.definition-block .pagination .page a:hover,
.definition-block .pagination .next a:hover{ background:var(--c-primary); border-color:var(--c-primary); color:#fff; }
.definition-block .pagination .page.current{ background:var(--c-primary); color:#fff; font-weight:600;
  border:1px solid var(--c-primary); }

@media (max-width:640px){
  #reviewform{ padding:28px 20px; }
  .rating-star{ font-size:30px; }
  #reviewform input[type="submit"]{ width:100%; }
  .review-list-container > li{ padding:18px; }
  .review-list-container .review-date{ margin-top:6px; }
}



@media (min-width:375px) and (max-width:1023.5px){
    #footer .contact-us-column .shop-address {
    display: flex !important;
    gap: 10px;
    justify-content: center;
}
      
}




@keyframes slideDown {
    from {
        transform: translateY(-100%);
    }
    to {
        transform: translateY(0);
    }
}




.main-navigation.sticky {
    animation: slideDown 0.3s ease-in-out;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99;
    width: 100%;
    background-color:#000;
    margin-top: 0;
    padding:10px !important;
}

.main-navigation.sticky #mainNav{
        justify-content: center;
    }
