/*
Theme Name:     Unique Risk Management
Theme URI:      https://uniquerisk.com
Description:    Child theme of Hello Elementor for Unique Risk Management and Insurance Services. Carries the hand-coded design system (tokens + signature components) from the client reference files so all pages inherit it natively. Built by Turnkey Web Tools.
Author:         Chris Talavera, Turnkey Web Tools
Author URI:     https://twt-inc.com
Template:       hello-elementor
Version:        0.2.0
Text Domain:    uniquerisk
*/

/* ============================================================
   1. DESIGN TOKENS  (source of truth: .reference-files/Home.html)
   Red is an ACCENT ONLY. Never icons-as-fill/headings/backgrounds.
   ============================================================ */
:root{
  --red:    #C00000;
  --black:  #1A1D23;  /* Ink: headings + footer only (Round 2 palette) */
  --dgrey:  #444444;
  --lgrey:  #F2F2F2;
  --border: #D9D9D9;
  --white:  #FFFFFF;
  --font: 'Carlito', 'Calibri', Arial, sans-serif;
}

/* Scope a reset to our own content wrapper so we don't fight the WP admin bar. */
.ur-page *{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
.ur-page{
  font-family:var(--font);
  color:var(--dgrey);
  background:var(--white);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.ur-page a{ text-decoration:none; }
.ur-page a:not([class]){ color:inherit; }
.ur-page img{ max-width:100%; display:block; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }

/* ============================================================
   2. HEADER
   ============================================================ */
/* .ur-header / .ur-footer are deliberately NOT named .site-header/.site-footer
   so Hello Elementor's boxed-layout max-width rules don't hijack them. */
.ur-header{
  border-bottom:1px solid var(--border);
  background:var(--white);
  position:sticky; top:0; z-index:50;
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 0;
}
.brand{ display:flex; align-items:center; gap:12px; }
.logo-img{ height:52px; width:auto; display:block; }
.logo-chip{
  background:#fff; border-radius:6px; padding:8px 12px;
  display:inline-flex; align-items:center;
}
.logo-img-sm{ height:40px; width:auto; display:block; }

.main-nav{ display:flex; align-items:center; gap:28px; font-size:14px; font-weight:700; }
.main-nav ul{ list-style:none; display:flex; align-items:center; gap:28px; }
.main-nav li{ position:relative; }
.main-nav a{ color:var(--black); padding:6px 0; border-bottom:2px solid transparent; display:inline-block; }
.main-nav a:hover, .main-nav a:focus-visible{ border-bottom:2px solid var(--red); outline:none; }

/* dropdowns (Services, Resource Center) */
.main-nav .sub-menu{
  position:absolute; top:100%; left:0; min-width:230px;
  background:#fff; border:1px solid var(--border); border-radius:6px;
  box-shadow:0 14px 28px rgba(0,0,0,.08);
  padding:8px 0; display:none; flex-direction:column; gap:0; z-index:60;
}
.main-nav li:hover > .sub-menu, .main-nav li:focus-within > .sub-menu{ display:flex; }
.main-nav .sub-menu li{ width:100%; }
.main-nav .sub-menu a{ padding:9px 18px; border-bottom:none; font-weight:700; white-space:nowrap; }
.main-nav .sub-menu a:hover{ background:var(--lgrey); border-bottom:none; color:var(--red); }

.main-nav .nav-cta{
  background:var(--red); color:#fff !important; padding:10px 20px; border-radius:3px;
  border-bottom:none !important;
}
.main-nav .nav-cta:hover{ background:#9c0000; }
.burger{ display:none; font-size:22px; background:none; border:none; color:var(--black); cursor:pointer; }

/* ============================================================
   3. HERO
   ============================================================ */
.hero{ position:relative; overflow:hidden; padding:64px 0 60px; background:var(--white); }
.blueprint{
  position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(var(--border) 1px, transparent 1px),
    linear-gradient(90deg, var(--border) 1px, transparent 1px);
  background-size:44px 44px;
  opacity:.35;
  mask-image:radial-gradient(ellipse 80% 60% at 70% 30%, #000 10%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 70% 30%, #000 10%, transparent 75%);
}
/* Centered hero: a constrained text column on the left, the SVG on the right,
   the pair centered as a group (a deliberate departure from the cramped mockup). */
.hero-inner{
  position:relative;
  display:flex; align-items:center; justify-content:space-between;
  gap:40px;
}
.hero-copy{ flex:0 1 560px; max-width:560px; }
.hero-art{
  flex:0 0 440px; width:440px; height:440px; opacity:.9; display:block;
  margin-right:-40px; /* lean toward the right edge */
}
@media (max-width:1080px){
  .hero-art{ display:none; }
  .hero-copy{ flex-basis:auto; }
}

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--red); margin-bottom:20px;
}
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--red); display:inline-block; }
h1.hero-h{
  font-size:46px; line-height:1.14; font-weight:700; color:var(--black);
  letter-spacing:-.01em; margin-bottom:22px;
}
h1.hero-h em{ color:var(--red); font-style:normal; }
/* Interior/pillar hero headline — matches the approved "before" rendering
   (grey #444, medium weight). NOTE: the reference design files spec 700/black;
   this intentionally matches the current staging look Chris approved. */
.phero-h{ font-size:40px; line-height:1.16; font-weight:500; color:var(--dgrey); letter-spacing:-.01em; max-width:820px; }
.hero p.sub{ font-size:18px; color:var(--dgrey); max-width:520px; margin-bottom:34px; }

.cta-row{ display:flex; gap:16px; flex-wrap:wrap; }
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:700; font-size:15px; padding:14px 26px; border-radius:3px;
  border:2px solid transparent; cursor:pointer; transition:.15s ease;
}
/* Scoped under .ur-page so button text beats the Elementor kit's
   `.elementor-kit-6 a{color:...}` global link color (0,1,1). */
.ur-page .btn-primary{ background:var(--red); color:#fff; }
.ur-page .btn-primary:hover{ background:#9c0000; }
.ur-page .btn-secondary{ background:transparent; color:var(--black); border-color:var(--black); }
.ur-page .btn-secondary:hover{ background:var(--black); color:#fff; }

.coverage-strip{
  margin-top:26px; padding-top:22px; border-top:1px solid var(--border);
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  font-size:13px; color:var(--dgrey);
}
.coverage-strip span{ white-space:nowrap; }
.coverage-strip > span:first-child{ font-weight:700; color:var(--black); text-transform:uppercase; letter-spacing:.05em; font-size:11.5px; }
.coverage-strip .cline{ font-weight:700; color:var(--dgrey); }
.coverage-strip .csep{ color:var(--red); font-weight:700; }

/* ============================================================
   4. TRUST BAR
   ============================================================ */
.trust{ border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--lgrey); }
.trust-inner{
  display:flex; flex-wrap:wrap; gap:28px 48px; justify-content:space-between; align-items:center;
  padding:22px 32px; font-size:14px; font-weight:700; color:var(--black);
}
.trust-inner .item{ display:flex; align-items:center; gap:10px; }
.trust-inner .dot{ width:6px; height:6px; background:var(--red); border-radius:50%; flex-shrink:0; }

/* ============================================================
   5. SECTION SHELL + SIGNATURE ELEMENTS
   ============================================================ */
/* Content sections carry the rhythm. Zeroing the top padding of each section
   that follows another content section keeps every seam a uniform 60px (the
   previous section's bottom padding) instead of doubling to 120px.
   Targets section.wrap only, so the hero/closing keep their own padding. */
.ur-page section.wrap{ padding:60px 0; }
.ur-page section.wrap + section.wrap{ padding-top:0; }
.section-head{ max-width:640px; margin-bottom:36px; }

/* Adjacency-independent section rhythm — used by the Elementor page, where
   each section lives in its own widget wrapper (so `+` selectors don't apply).
   30/30 gives uniform 60px seams; first/last tune the trust->content and
   content->closing boundaries to match the hand-built template. */
.sec-pad{ padding:30px 0; } /* body flush at boxed edge (matches design/before) */
.sec-first{ padding-top:60px; }
.sec-last{ padding-bottom:60px; }
.section-label{
  font-size:13px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.08em;
  padding-bottom:10px; margin-bottom:14px; border-bottom:3px solid var(--red); display:inline-block;
}
h2.section-h{ font-size:30px; font-weight:700; color:var(--black); line-height:1.25; }
.section-head p{ margin-top:12px; font-size:16px; color:var(--dgrey); }

.tick-divider{ display:flex; align-items:center; gap:6px; margin:0 0 6px; color:var(--border); }
.tick-divider .line{ flex:1; height:1px; background:var(--border); }
.tick-divider .ticks{ display:flex; gap:5px; }
.tick-divider .ticks span{ width:1px; height:9px; background:var(--border); }

/* ============================================================
   6. SERVICES GRID
   ============================================================ */
.services-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.service-card{
  border:1px solid var(--border); border-radius:8px; padding:26px 24px; background:var(--white);
  box-shadow:0 6px 18px rgba(0,0,0,.08);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.service-card:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,.08); border-color:var(--red); }
.service-icon{
  width:42px; height:42px; border-radius:8px; background:var(--lgrey); color:var(--red);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.service-card h3{ font-size:17px; color:var(--black); font-weight:700; margin-bottom:8px; }
.service-card p{ font-size:14.5px; color:var(--dgrey); }
.service-card .go{ display:inline-block; margin-top:14px; font-size:13.5px; font-weight:700; color:var(--red); }

/* ============================================================
   7. WHY US
   ============================================================ */
.why-wrap{
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:0;
  border:1px solid var(--border); border-radius:8px; overflow:hidden; box-shadow:0 6px 18px rgba(0,0,0,.08);
}
.why-item{ padding:32px 28px; border-right:1px solid var(--border); }
.why-item:last-child{ border-right:none; }
.why-item h3{ font-size:16.5px; color:var(--black); font-weight:700; margin-bottom:10px; }
.why-item p{ font-size:14.5px; }

/* ============================================================
   8. RESOURCE CALLOUT
   ============================================================ */
.resource-callout{
  background:var(--lgrey); border-left:5px solid var(--red); border-radius:0 8px 8px 0;
  padding:44px 44px; display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;
}
.resource-callout .txt{ max-width:560px; }
.resource-callout .tag{
  font-size:12.5px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.06em;
  margin-bottom:10px; display:block;
}
.resource-callout h3{ font-size:23px; color:var(--black); font-weight:700; margin-bottom:10px; line-height:1.3; }
.resource-callout p{ font-size:15px; }
.resource-callout .side{ flex-shrink:0; }

/* ============================================================
   9. TESTIMONIAL
   ============================================================ */
.testimonial{
  border:1px solid var(--border); border-radius:8px; padding:48px; position:relative; background:var(--white);
  box-shadow:0 6px 18px rgba(0,0,0,.08);
}
.testimonial .mark{ font-size:64px; color:var(--red); font-weight:700; line-height:1; margin-bottom:6px; font-family:Georgia, serif; }
.testimonial p.quote{ font-size:19px; color:var(--black); font-weight:400; line-height:1.5; max-width:760px; margin-bottom:20px; }
.testimonial .attrib{ font-size:14px; font-weight:700; color:var(--dgrey); }
.testimonial .attrib span{ font-weight:400; color:var(--dgrey); }
.placeholder-tag{
  display:inline-block; margin-top:16px; font-size:12px; font-weight:700;
  color:var(--red); background:var(--lgrey); padding:5px 10px; border-radius:3px; letter-spacing:.03em;
}

/* ============================================================
   10. CLOSING CTA BAND
   ============================================================ */
.closing{ background:var(--black); color:#fff; padding:56px 0; text-align:center; }
.closing h2{ font-size:32px; font-weight:700; margin-bottom:14px; color:#fff; }
.closing p{ font-size:16px; color:#cfcfcf; max-width:520px; margin:0 auto 30px; }
.ur-page .closing .btn-primary{ background:var(--red); }
.ur-page .closing .btn-secondary{ border-color:#fff; color:#fff; }
.ur-page .closing .btn-secondary:hover{ background:#fff; color:var(--black); }

/* ============================================================
   11. FOOTER
   ============================================================ */
.ur-footer{ background:#1A1D23; color:#b9b9b9; padding:56px 0 24px; font-size:13.5px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:40px; }
.footer-grid h4{ color:#fff; font-size:13px; letter-spacing:.05em; text-transform:uppercase; margin-bottom:16px; font-weight:700; }
.footer-grid p, .footer-grid a{ display:block; color:#b9b9b9; margin-bottom:8px; }
.footer-grid ul{ list-style:none; }
.footer-grid a:hover{ color:#fff; }
.footer-brand{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.footer-brand span{ color:#fff; font-weight:700; font-size:14.5px; }
/* Round 2 footer: white knockout logo (no chip) + California/Florida office labels */
.ur-footer .logo-chip{ background:none; padding:0; }
.ur-footer .logo-img-sm{ filter:brightness(0) invert(1); height:46px; }
.footer-office{ margin-bottom:18px; }
.footer-office h5{ color:#fff; font-size:12px; letter-spacing:.05em; text-transform:uppercase; font-weight:700; margin-bottom:6px; }
.footer-bottom{
  border-top:1px solid #333; padding-top:22px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px; color:#8a8a8a;
}
.footer-bottom a{ color:#8a8a8a; }
.footer-bottom a:hover{ color:#fff; }

/* ============================================================
   11b. INTERIOR PAGES (Milestone 2)
   ============================================================ */

/* Interior page header (matches the pillar .phero treatment) */
.page-hero{ border-bottom:1px solid var(--border); background:var(--white); padding:52px 0; }
.page-hero .phero-h{ margin-bottom:12px; }
.page-hero .sub{ font-size:17px; color:var(--dgrey); max-width:720px; }
.page-hero .breadcrumb{ font-size:13px; color:var(--dgrey); margin-bottom:16px; }
.page-hero .breadcrumb a{ color:var(--dgrey); font-weight:700; }
.page-hero .breadcrumb .sep{ color:var(--border); margin:0 8px; }
.page-hero .breadcrumb .current{ color:var(--red); font-weight:700; }

/* Rich text / prose blocks */
.prose{ max-width:760px; }
.prose h2{ font-size:22px; font-weight:700; color:var(--black); margin:34px 0 10px; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:17px; font-weight:700; color:var(--black); margin:22px 0 8px; }
.prose p{ font-size:16px; margin-bottom:14px; }
.prose ul{ list-style:disc; margin:0 0 14px 22px; }
.prose li{ font-size:16px; margin-bottom:8px; }
.prose a{ color:var(--red); font-weight:700; }
.prose strong{ color:var(--black); }
.prose .lead{ font-size:18px; color:var(--dgrey); }

/* Info cards — offices, feature blocks */
.info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.info-card{ border:1px solid var(--border); border-radius:8px; padding:24px 26px; box-shadow:0 6px 18px rgba(0,0,0,.08); background:var(--white); }
.info-card h3{ font-size:16px; font-weight:700; color:var(--black); margin-bottom:8px; }
.info-card p{ font-size:15px; margin-bottom:4px; }
.info-card .meta{ font-size:13px; color:var(--dgrey); margin-top:8px; }

/* Licensed states list */
.state-list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.state-item{ border:1px solid var(--border); border-left:3px solid var(--red); border-radius:0 6px 6px 0; padding:16px 20px; background:var(--white); }
.state-item h3{ font-size:16px; font-weight:700; color:var(--black); }
.state-item .bureau{ font-size:13.5px; color:var(--dgrey); margin-top:4px; }

/* Services subpage blocks */
.svc-block{ margin-bottom:28px; }
.svc-block h2{ font-size:20px; font-weight:700; color:var(--black); margin-bottom:8px; }
.svc-block p, .svc-block li{ font-size:16px; }
.svc-block ul{ list-style:disc; margin:0 0 0 22px; }
.svc-block li{ margin-bottom:8px; }

/* FAQ accordion (native details/summary) */
.faq{ border-bottom:1px solid var(--border); padding:16px 0; }
.faq summary{ font-size:16px; font-weight:700; color:var(--black); cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--red); font-size:20px; font-weight:700; flex-shrink:0; }
.faq[open] summary::after{ content:"\2013"; }
.faq p{ margin-top:12px; font-size:15px; }

/* Big "Pay Here" style button */
.btn-lg{ padding:18px 34px; font-size:17px; }

/* Forms (styled UI — wired to Fluent Forms in Milestone 3) */
.ur-form{ max-width:660px; }
.ur-form .row{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.ur-form .field{ flex:1 1 240px; display:flex; flex-direction:column; }
.ur-form .field.full{ flex-basis:100%; }
.ur-form label{ font-size:13px; font-weight:700; color:var(--black); margin-bottom:6px; }
.ur-form label .req{ color:var(--red); }
.ur-form input, .ur-form select, .ur-form textarea{
  border:1px solid var(--border); border-radius:3px; padding:11px 13px;
  font-family:var(--font); font-size:15px; color:var(--dgrey); background:#fff; width:100%;
}
.ur-form input:focus, .ur-form select:focus, .ur-form textarea:focus{ outline:none; border-color:var(--red); }
.ur-form textarea{ min-height:120px; resize:vertical; }
.ur-form .checkbox{ display:flex; align-items:flex-start; gap:10px; font-size:14px; color:var(--dgrey); }
.ur-form .checkbox input{ width:auto; margin-top:3px; }
.ur-form .form-note{ font-size:12.5px; color:var(--dgrey); margin-top:12px; }

/* ============================================================
   11c. NATIVE ELEMENTOR WIDGET STYLE LAYER
   Maps design tokens onto native widgets (Heading / Text Editor /
   Button / Icon Box) via CSS classes assigned in the editor, so
   pages are built from editable widgets, not HTML blocks.
   ============================================================ */

/* Eyebrow / section label (Heading widget). uw-label = hero eyebrow (gets the 32px
   gutter below). uw-elabel = body section-head eyebrow (SAME look, stays flush at
   x=130 aligned with its h2 — NOT in the gutter rule). */
/* Round 2 eyebrow: red uppercase label + full-width 2px red rule to the right
   (matches the document section headers in the mockups). */
.uw-label .elementor-heading-title,
.uw-elabel .elementor-heading-title{
  display:flex; align-items:center; gap:16px; font-size:13px; font-weight:700; color:var(--red);
  text-transform:uppercase; letter-spacing:.08em; white-space:nowrap;
}
.uw-label .elementor-heading-title::after,
.uw-elabel .elementor-heading-title::after{
  content:""; flex:1 1 auto; height:2px; background:var(--red);
}
.elementor-widget-heading.uw-elabel{ margin-bottom:22px; }
/* Centered eyebrow variant (short red rules both sides), e.g. testimonials */
.uw-elabel-center .elementor-heading-title{ justify-content:center; white-space:normal; }
.uw-elabel-center .elementor-heading-title::before{ content:""; flex:0 0 56px; height:2px; background:var(--red); }
.uw-elabel-center .elementor-heading-title::after{ flex:0 0 56px; }
/* Pillar/page hero headline (Heading widget, class: uw-phero) — matches the
   "before" rendering (grey #444, weight 500). High specificity to beat the
   Elementor kit's heading typography. See .phero-h note above. */
.ur-page .elementor-widget-heading.uw-phero .elementor-heading-title{
  font-size:40px; line-height:1.16; font-weight:500; color:var(--dgrey); letter-spacing:-.01em; max-width:820px;
}
/* Neutralize Elementor's default 10px column padding (its rule is
   .elementor-column-gap-default>.elementor-column>.elementor-element-populated,
   specificity 0,3,0) so all spacing comes from our explicit section padding +
   widget margins (deterministic, matches the hand-coded design). */
.ur-page .elementor-column>.elementor-element-populated{ padding:0; }
.ur-page .elementor-widget-wrap{ padding:0; }
/* Hero content gets the 32px gutter (matching the HTML .page-hero .wrap → x=162);
   body sections stay flush at the boxed edge (x=130) to match the design/before. */
.ur-page .elementor-widget.uw-breadcrumb,
.ur-page .elementor-widget-heading.uw-label,
.ur-page .elementor-widget-heading.uw-phero,
.ur-page .elementor-widget.uw-sub{ padding-left:32px; padding-right:32px; }
/* Exact margins to replicate the before box-model (override Elementor's 20px) */
.elementor-widget.uw-breadcrumb{ margin-bottom:16px; }
.elementor-widget-heading.uw-label{ margin-bottom:20px; }
.elementor-widget-heading.uw-phero{ margin-bottom:12px; }
/* Section headline h2 (Heading widget, class: uw-h2) */
.uw-h2 .elementor-heading-title{ font-size:22px; font-weight:700; color:var(--black); }
.elementor-widget-heading.uw-h2{ margin-bottom:10px; } /* tight to its body text (consistent with services) */
.uw-h3 .elementor-heading-title{ font-size:17px; font-weight:700; color:var(--black); }
/* Services subpage section headings — 20px, tight to body (matches the old .svc-block) */
.elementor-widget-heading.uw-svc-h2 .elementor-heading-title{ font-size:20px; font-weight:700; color:var(--black); }
.elementor-widget-heading.uw-svc-h2{ margin-bottom:8px; }
/* Full-width body text (Text Editor, class uw-body) — no 760px cap, matches .svc-block */
.elementor-widget-text-editor.uw-body p{ font-size:16px; color:var(--dgrey); margin-bottom:14px; }
.elementor-widget-text-editor.uw-body li{ font-size:16px; color:var(--dgrey); margin-bottom:8px; }
.elementor-widget-text-editor.uw-body p:last-child, .elementor-widget-text-editor.uw-body li:last-child{ margin-bottom:0; }
.elementor-widget-text-editor.uw-body ul{ list-style:disc; margin:0 0 0 22px; }
.elementor-widget-text-editor.uw-body strong{ color:var(--black); }
.elementor-widget-text-editor.uw-body:not(:last-child){ margin-bottom:28px; } /* last one doesn't stack onto the section break */
/* Subhead (Text Editor, class: uw-sub). 784 = 720 content + 32px gutter each side
   (box-sizing:border-box), so text width matches the original .page-hero .sub (720). */
.uw-sub{ max-width:784px; }
.uw-sub p{ font-size:17px; color:var(--dgrey); }
/* Body prose (Text Editor, class: prose) — reuses .prose rules; also handle Elementor wrapper */
.elementor-widget-text-editor.prose{ max-width:760px; }
.elementor-widget-text-editor.prose p{ font-size:16px; color:var(--dgrey); margin-bottom:14px; }
.elementor-widget-text-editor.prose p:last-child{ margin-bottom:0; }
.elementor-widget-text-editor.prose strong{ color:var(--black); }
.elementor-widget-text-editor.prose a{ color:var(--red); font-weight:700; }
/* Buttons (Button widget). .ur-page prefix so they beat the Elementor kit's
   `.elementor-kit-N .elementor-button{background-color:...}` (0,2,0). */
.ur-page .uw-btn-primary .elementor-button{ background:var(--red); color:#fff; border-radius:3px; font-weight:700; font-size:15px; padding:14px 26px; border:2px solid transparent; transition:.15s ease; }
.ur-page .uw-btn-primary .elementor-button:hover{ background:#9c0000; }
.ur-page .uw-btn-secondary .elementor-button{ background:transparent; color:var(--black); border:2px solid var(--black); border-radius:3px; font-weight:700; font-size:15px; padding:12px 24px; transition:.15s ease; }
.ur-page .uw-btn-secondary .elementor-button:hover{ background:var(--black); color:#fff; }
/* Small red tag/eyebrow without underline (Heading widget, class: uw-tag) */
.uw-tag .elementor-heading-title{ font-size:12.5px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.06em; }
/* Breadcrumb (Text Editor widget, class: uw-breadcrumb) */
.uw-breadcrumb, .uw-breadcrumb p{ font-size:13px; color:var(--dgrey); }
.uw-breadcrumb a{ color:var(--dgrey); font-weight:700; }
.uw-breadcrumb .sep{ color:var(--border); margin:0 8px; }
.uw-breadcrumb .current{ color:var(--red); font-weight:700; }
/* Resource callout as native inner-section (class: uw-callout) */
.uw-callout{ background:var(--lgrey); border-left:5px solid var(--red); border-radius:0 8px 8px 0; }
.uw-callout .elementor-container{ align-items:center; }
/* 30px section heading (Heading widget, class: uw-section-h) — matches .section-h.
   36px bottom margin reproduces the old .section-head{margin-bottom:36px}. */
.elementor-widget-heading.uw-section-h .elementor-heading-title{ font-size:30px; font-weight:700; color:var(--black); line-height:1.25; }
.elementor-widget-heading.uw-section-h{ margin-bottom:36px; }
/* Contact office cards (Icon Box, no icon) in a 2-col grid via :has(). */
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-office-card){ display:grid; grid-template-columns:1fr 1fr; gap:20px; align-content:start; }
.ur-page .elementor-widget-wrap:has(> .uw-office-card) > .elementor-widget{ width:auto; }
.ur-page .elementor-widget.uw-office-card{ border:1px solid var(--border); border-radius:8px; box-shadow:0 6px 18px rgba(0,0,0,.08); background:#fff; padding:24px 26px; }
.uw-office-card .elementor-icon-box-icon{ display:none !important; }
.uw-office-card .elementor-icon-box-wrapper{ text-align:left !important; }
.uw-office-card .elementor-icon-box-title{ font-size:16px; font-weight:700; color:var(--black); margin-bottom:8px; }
.uw-office-card .ocard-badge{ color:var(--red); font-size:12px; font-weight:700; margin-left:6px; }
.uw-office-card .elementor-icon-box-description{ font-size:15px; color:var(--dgrey); line-height:1.75; }
.uw-office-card .ocard-meta{ display:block; font-size:13px; color:var(--dgrey); margin-top:8px; line-height:1.4; }
@media (max-width:680px){ .ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-office-card){ grid-template-columns:1fr; } }

/* ============================================================
   11e. HOME PAGE (native rebuild) — section hooks via _element_id
   ============================================================ */
/* Hero: blueprint grid behind, copy left, SVG art right */
#home-hero{ position:relative; overflow:hidden; }
#home-hero::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);
  background-size:44px 44px; opacity:.35;
  mask-image:radial-gradient(ellipse 80% 60% at 70% 30%, #000 10%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 70% 30%, #000 10%, transparent 75%); }
#home-hero > .elementor-container{ position:relative; z-index:1; align-items:center; }
.uw-home-eyebrow .elementor-heading-title{ display:flex; align-items:center; gap:16px; font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--red); white-space:nowrap; }
.uw-home-eyebrow .elementor-heading-title::after{ content:""; flex:1 1 auto; height:2px; background:var(--red); }
.elementor-widget-heading.uw-home-eyebrow{ margin-bottom:20px; }
.ur-page .elementor-widget-heading.uw-home-h .elementor-heading-title{ font-size:46px; line-height:1.14; font-weight:700; color:var(--black); letter-spacing:-.01em; max-width:560px; }
.uw-home-h .elementor-heading-title em{ color:var(--red); font-style:normal; }
.elementor-widget-heading.uw-home-h{ margin-bottom:22px; }
.uw-home-sub{ max-width:520px; }
.uw-home-sub p{ font-size:18px; color:var(--dgrey); }
.elementor-widget-text-editor.uw-home-sub{ margin-bottom:34px; }
.elementor-widget.uw-home-cta{ display:inline-block; width:auto; vertical-align:top; margin:0 16px 0 0; }
#home-hero .hero-art{ width:440px; height:440px; opacity:.9; display:block; margin-left:auto; margin-right:-40px; }
@media (max-width:1080px){ #home-hero .hero-art{ display:none; } }
/* Trust bar (section bg/border/pad via native settings) */
.uw-trust-item p{ display:inline-flex; align-items:center; gap:10px; font-size:14px; font-weight:700; color:var(--black); margin:0; }
.uw-trust-item .dot{ width:6px; height:6px; background:var(--red); border-radius:50%; flex-shrink:0; display:inline-block; }
.ur-page .uw-trust-item a{ color:var(--black); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .15s ease; }
.ur-page .uw-trust-item a:hover{ border-bottom-color:var(--red); }
/* Section description under a section-head (h2 gets smaller bottom margin when a desc follows) */
.elementor-widget-heading.uw-section-h.uw-has-desc{ margin-bottom:12px; }
.uw-section-desc{ max-width:640px; }
.uw-section-desc p{ font-size:16px; color:var(--dgrey); }
.elementor-widget-text-editor.uw-section-desc{ margin-bottom:36px; } /* head->grid gap */
/* Why-us (Round 2): 3 separate white cards, each with a red left border, gapped on the grey section */
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-why-card){ display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; align-items:stretch; }
.ur-page .elementor-widget-wrap:has(> .uw-why-card) > .elementor-widget{ width:auto; align-self:stretch; }
.ur-page .elementor-widget.uw-why-card{ padding:28px 26px; background:#fff; border-left:4px solid var(--red); box-shadow:0 6px 18px rgba(0,0,0,.08); height:100%; }
.uw-why-card .elementor-icon-box-icon{ display:none !important; }
.uw-why-card .elementor-icon-box-wrapper{ text-align:left !important; }
.uw-why-card .elementor-icon-box-title{ font-size:16.5px; font-weight:700; color:var(--black); margin-bottom:10px; }
.uw-why-card .elementor-icon-box-description{ font-size:14.5px; color:var(--dgrey); line-height:1.55; }
@media (max-width:900px){
  .ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-why-card){ grid-template-columns:1fr; }
}
/* Resource callout headline (bigger than uw-h3) */
.uw-res-h .elementor-heading-title{ font-size:23px; font-weight:700; color:var(--black); line-height:1.3; }
/* Testimonial */
.uw-tmark .elementor-heading-title{ font-size:64px; color:var(--red); font-weight:700; line-height:1; font-family:Georgia, serif; }
.elementor-widget-heading.uw-tmark{ margin-bottom:6px; }
.uw-quote p{ font-size:19px; color:var(--black); font-weight:400; line-height:1.5; max-width:760px; }
.elementor-widget-text-editor.uw-quote{ margin-bottom:20px; }
.uw-attrib p{ font-size:14px; font-weight:700; color:var(--dgrey); margin:0; }
.uw-attrib p span{ font-weight:400; color:var(--dgrey); }
.uw-phtag .elementor-heading-title{ display:inline-block; margin-top:16px; font-size:12px; font-weight:700; color:var(--red); background:var(--lgrey); padding:5px 10px; border-radius:3px; letter-spacing:.03em; }
/* Closing CTA band (section bg #000 + pad via native settings) */
/* Force block flow so heading/text/buttons stack + center (Elementor's flex wrap rows them). */
#home-closing .elementor-widget-wrap{ display:block; text-align:center; }
.ur-page .elementor-widget-heading.uw-closing-h .elementor-heading-title{ font-size:32px; font-weight:700; color:#fff; }
.elementor-widget-heading.uw-closing-h{ margin-bottom:14px; }
.uw-closing-p{ max-width:520px; margin-left:auto; margin-right:auto; }
.uw-closing-p p{ font-size:16px; color:rgba(255,255,255,.9); }
.elementor-widget-text-editor.uw-closing-p{ margin-bottom:30px; }
.elementor-widget.uw-closing-cta{ display:inline-block; width:auto; vertical-align:top; margin:0 8px; }
/* On the red band: primary = solid white (red text), secondary = white outline. */
.ur-page .uw-closing-cta.uw-btn-primary .elementor-button{ background:#fff; color:var(--red); border-color:#fff; }
.ur-page .uw-closing-cta.uw-btn-primary .elementor-button:hover{ background:#f2f2f2; color:var(--red); }
.ur-page .uw-closing-cta.uw-btn-secondary .elementor-button{ border-color:#fff; color:#fff; background:transparent; }
.ur-page .uw-closing-cta.uw-btn-secondary .elementor-button:hover{ background:#fff; color:var(--red); }
/* Testimonial carousel (Elementor Pro) styled to the brand testimonial card */
/* Mockup .tcard: centered card, max-width 820, red TOP border only, text-align center. */
.uw-tcar .elementor-testimonial{ border:0; border-top:4px solid var(--red); border-radius:6px; background:#fff; max-width:820px; margin:0 auto; padding:32px 40px 28px; box-shadow:0 8px 24px rgba(0,0,0,.08); }
.uw-tcar .elementor-testimonial, .uw-tcar .elementor-testimonial__content, .uw-tcar .elementor-testimonial__text, .uw-tcar .elementor-testimonial__footer, .uw-tcar .elementor-testimonial__cite{ text-align:center !important; }
.uw-tcar .elementor-testimonial__image{ display:none !important; }
.uw-tcar .elementor-swiper-button-prev, .uw-tcar .elementor-swiper-button-next{ display:none !important; }
.uw-tcar .elementor-testimonial__text{ font-size:20px; color:var(--black); line-height:1.45; font-style:normal !important; font-weight:500; }
.uw-tcar .elementor-testimonial__text::before{ content:"\201C"; display:block; font-family:Georgia, serif; font-size:54px; color:var(--red); font-weight:700; line-height:.6; margin-bottom:10px; }
.uw-tcar .elementor-testimonial__footer{ margin-top:20px; display:block; }
.uw-tcar .elementor-testimonial__cite{ display:block; font-style:normal; }
.uw-tcar .elementor-testimonial__name{ display:block; font-size:14px; font-weight:700 !important; color:var(--black) !important; }
.uw-tcar .elementor-testimonial__title{ display:block; font-size:13px; font-weight:500 !important; color:#777 !important; margin-top:2px; }
.uw-tcar .swiper{ padding-bottom:0 !important; } /* dots are static below; kill Elementor's reserved 40px */
.uw-tcar .swiper-pagination{ position:static; margin-top:22px; }
.uw-tcar .swiper-pagination-bullet{ background:var(--border); opacity:1; }
.uw-tcar .swiper-pagination-bullet-active{ background:var(--red); }
/* Tick divider (decorative HTML snippet host) */
.uw-tick .tick-divider{ margin-bottom:6px; }
/* Large primary button (add alongside uw-btn-primary) */
.uw-btn-lg .elementor-button{ padding:18px 34px; font-size:17px; }
/* Lead paragraph inside a prose Text Editor */
.ur-page .elementor-widget-text-editor.prose p.lead{ font-size:18px; }
/* FAQ accordion via native Toggle widget (class: uw-faq) — matches the .faq <details> look */
.uw-faq .elementor-toggle-item{ border:0; border-bottom:1px solid var(--border); }
.uw-faq .elementor-tab-title{ border:0 !important; background:transparent !important; padding:16px 0; margin:0; font-size:16px; font-weight:700; color:var(--black); line-height:1.4; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.uw-faq .elementor-tab-title .elementor-toggle-icon{ display:none !important; }
.uw-faq .elementor-tab-title a{ color:var(--black); }
.uw-faq .elementor-tab-title::after{ content:"+"; color:var(--red); font-size:20px; font-weight:700; flex-shrink:0; }
.uw-faq .elementor-tab-title.elementor-active::after{ content:"\2013"; }
.uw-faq .elementor-tab-content{ border:0 !important; background:transparent !important; padding:0 0 16px; font-size:15px; color:var(--dgrey); line-height:1.55; }
.uw-faq .elementor-tab-content p{ margin:0; }

/* Services overview: 6 Icon Box cards in a CSS grid. Column classes don't render
   in this build, so target the widgets' wrap via :has() (well supported 2026). */
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-svc-card){ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }
.ur-page .elementor-widget-wrap:has(> .uw-svc-card) > .elementor-widget{ width:auto; align-self:stretch; }
/* Round 2 service card (mockup .card): grey fill, 4px red TOP border only (no side/bottom border), 26px 24px, equal height. */
.ur-page .elementor-widget.uw-svc-card{ border:0; border-top:4px solid var(--red); border-radius:6px; background:var(--lgrey); box-shadow:0 6px 18px rgba(0,0,0,.08); padding:26px 24px; height:100%; transition:transform .15s ease, box-shadow .15s ease; }
.uw-svc-card:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,.12); }
.uw-svc-card .elementor-icon-box-wrapper{ text-align:left !important; }
.uw-svc-card .elementor-icon-box-icon{ width:auto; height:auto; border-radius:0; background:none; display:block !important; margin:0 0 18px 0 !important; }
.uw-svc-card .elementor-icon-box-icon .elementor-icon{ color:var(--red); width:30px; height:30px; padding:0; border:0; }
.uw-svc-card .elementor-icon-box-icon svg{ width:30px; height:30px; fill:none; stroke:var(--red); }
.uw-svc-card .elementor-icon-box-icon svg *{ stroke:var(--red); }
.uw-svc-card .elementor-icon-box-title{ font-size:17px; font-weight:700; color:var(--black); margin-bottom:8px; }
.uw-svc-card .elementor-icon-box-title a{ color:var(--black); }
.uw-svc-card:hover .elementor-icon-box-title a{ color:var(--red); }
.uw-svc-card .elementor-icon-box-description{ font-size:14.5px; color:var(--dgrey); line-height:1.55; }
.uw-svc-card .elementor-icon-box-description::after{ content:"Learn more \2192"; display:block; margin-top:14px; font-size:13.5px; font-weight:700; color:var(--red); }
@media (max-width:900px){ .ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-svc-card){ grid-template-columns:repeat(2,1fr); } }
@media (max-width:680px){ .ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-svc-card){ grid-template-columns:1fr; } }

/* Licensed States: 5 state cards (Icon Box, no icon) in a 2-col grid via :has(). */
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-state-card){ display:grid; grid-template-columns:1fr 1fr; gap:14px; align-content:start; }
.ur-page .elementor-widget-wrap:has(> .uw-state-card) > .elementor-widget{ width:auto; }
.ur-page .elementor-widget.uw-state-card{ border:1px solid var(--border); border-left:3px solid var(--red); border-radius:0 6px 6px 0; background:#fff; }
.ur-page .elementor-widget.uw-state-card{ padding:16px 20px; }
.uw-state-card .elementor-icon-box-icon{ display:none !important; }
.uw-state-card .elementor-icon-box-wrapper{ text-align:left !important; }
.uw-state-card .elementor-icon-box-title{ font-size:16px; font-weight:700; color:var(--black); margin:0; }
.uw-state-card .elementor-icon-box-title a{ color:var(--black); }
.uw-state-card .elementor-icon-box-description{ font-size:13.5px; color:var(--dgrey); margin-top:4px; line-height:1.5; }
@media (max-width:680px){ .ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-state-card){ grid-template-columns:1fr; } }

/* ============================================================
   12. BREAKPOINTS
   ============================================================ */
@media (max-width:900px){
  .services-grid{ grid-template-columns:repeat(2,1fr); }
  .why-wrap{ grid-template-columns:1fr; }
  .why-item{ border-right:none; border-bottom:1px solid var(--border); }
  .why-item:last-child{ border-bottom:none; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  .main-nav{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:flex-start; gap:0;
    background:#fff; border-bottom:1px solid var(--border); padding:8px 32px 18px;
  }
  .main-nav.open{ display:flex; }
  .main-nav ul{ flex-direction:column; align-items:flex-start; gap:0; width:100%; }
  .main-nav li{ width:100%; }
  .main-nav a{ padding:12px 0; width:100%; }
  .main-nav .sub-menu{ position:static; display:flex; border:none; box-shadow:none; padding:0 0 8px 14px; min-width:0; }
  .main-nav .nav-cta{ margin-top:10px; }
  .burger{ display:block; }
  h1.hero-h{ font-size:32px; }
  .ur-page .elementor-widget-heading.uw-home-h .elementor-heading-title{ font-size:32px; }
  .hero{ padding:56px 0 60px; }
  .services-grid{ grid-template-columns:1fr; }
  .trust-inner{ justify-content:flex-start; }
  .resource-callout{ padding:30px 24px; }
  .footer-grid{ grid-template-columns:1fr; }
  .ur-page section.wrap{ padding:44px 0; }
  .ur-page section.wrap + section.wrap{ padding-top:0; }
  .sec-pad{ padding:22px 0; }
  .sec-first{ padding-top:44px; }
  .sec-last{ padding-bottom:44px; }
  .info-grid{ grid-template-columns:1fr; }
  .state-list{ grid-template-columns:1fr; }
  .page-hero{ padding:40px 0; }
  .page-hero .phero-h{ font-size:29px; }
  .uw-phero .elementor-heading-title{ font-size:29px; }
  .ur-form .row{ flex-direction:column; gap:0; }
  .ur-form .field{ margin-bottom:16px; }
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation:none !important; transition:none !important; }
  .service-card:hover{ transform:none; }
}

/* ============================================================
   13. RESOURCE CENTER ARTICLE  (single-resource.php)
   ============================================================ */
.ur-article{ padding:44px 0 72px; }
.ur-article .wrap{ max-width:800px; }
.article-breadcrumb{ font-size:13px; font-weight:700; margin-bottom:22px; }
.article-breadcrumb a{ color:var(--dgrey); text-decoration:none; }
.article-breadcrumb a:hover{ color:var(--red); }
.article-breadcrumb .sep{ color:var(--border); margin:0 8px; }
.article-tag{ display:inline-block; font-size:12.5px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.06em; margin-bottom:14px; }
.article-title{ font-size:38px; line-height:1.2; font-weight:700; color:var(--black); letter-spacing:-.01em; margin-bottom:16px; }
.article-meta{ font-size:13px; color:var(--dgrey); margin-bottom:30px; }
.article-meta a{ color:var(--dgrey); font-weight:700; text-decoration:none; }
.article-meta a:hover{ color:var(--red); }
.article-meta .dot-sep{ margin:0 8px; color:var(--border); }
.article-featured{ margin-bottom:32px; }
.article-featured img{ width:100%; height:auto; border-radius:8px; display:block; }
/* body */
.article-body h2{ font-size:22px; font-weight:700; color:var(--black); margin:32px 0 10px; line-height:1.3; }
.article-body p{ font-size:16.5px; line-height:1.7; color:var(--dgrey); margin-bottom:16px; }
.article-body ul{ list-style:disc; margin:0 0 16px 22px; }
.article-body li{ font-size:16.5px; line-height:1.6; color:var(--dgrey); margin-bottom:8px; }
.article-body strong{ color:var(--black); }
.article-body a{ color:var(--red); font-weight:700; }
.article-table{ width:100%; border-collapse:collapse; margin:10px 0 22px; font-size:15px; }
.article-table td{ border:1px solid var(--border); padding:10px 14px; color:var(--dgrey); vertical-align:top; }
.article-table tr td:last-child{ font-weight:700; color:var(--black); white-space:nowrap; }
.article-callout{ background:var(--lgrey); border-left:4px solid var(--red); border-radius:0 8px 8px 0; padding:18px 22px; font-size:15.5px; color:var(--dgrey); line-height:1.55; margin:22px 0; }
/* closing CTA */
.article-cta{ display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; background:var(--lgrey); border-left:5px solid var(--red); border-radius:0 8px 8px 0; padding:32px 34px; margin:48px 0; }
.article-cta .txt{ max-width:520px; }
.article-cta-eyebrow{ display:block; font-size:12.5px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.article-cta h2{ font-size:22px; font-weight:700; color:var(--black); margin-bottom:8px; line-height:1.3; }
.article-cta p{ font-size:15px; color:var(--dgrey); line-height:1.55; }
.article-cta .side{ flex-shrink:0; }
/* related */
.article-related{ margin-top:56px; border-top:1px solid var(--border); padding-top:40px; }
.uw-elabel-plain{ font-size:13px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.08em; margin-bottom:20px; }
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.related-card{ display:block; border:1px solid var(--border); border-top:4px solid var(--red); border-radius:6px; background:var(--lgrey); padding:22px 20px; text-decoration:none; box-shadow:0 6px 18px rgba(0,0,0,.08); transition:transform .15s ease, box-shadow .15s ease; }
.related-card:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,.12); }
.related-card h3{ font-size:15.5px; font-weight:700; color:var(--black); margin-bottom:8px; line-height:1.35; }
.related-card p{ font-size:13.5px; color:var(--dgrey); line-height:1.5; margin-bottom:12px; }
.related-card .go{ font-size:13px; font-weight:700; color:var(--red); }
@media (max-width:820px){ .related-grid{ grid-template-columns:1fr; } .article-cta{ flex-direction:column; align-items:flex-start; } }
@media (max-width:680px){ .article-title{ font-size:28px; } }

/* ============================================================
   14. RESOURCE PILLAR  (page-pillar.php, scoped .ur-pillar)
   ============================================================ */
.ur-pillar .wrap{ max-width:1180px; }
.ur-pillar .pillar-breadcrumb{ font-size:13px; font-weight:700; padding:20px 0 0; }
.ur-pillar .pillar-breadcrumb a{ color:var(--dgrey); }
.ur-pillar .pillar-breadcrumb a:hover{ color:var(--red); }
.ur-pillar .pillar-breadcrumb .sep{ margin:0 8px; color:var(--border); }
.ur-pillar .pillar-breadcrumb .current{ color:var(--red); }
/* hero */
.ur-pillar .phero{ padding:22px 0 40px; border-bottom:1px solid var(--border); }
.ur-pillar .eyebrow{ display:flex; align-items:center; gap:16px; font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--red); margin-bottom:18px; }
.ur-pillar .eyebrow::after{ content:""; flex:1 1 auto; height:2px; background:var(--red); }
.ur-pillar h1.phero-h{ font-size:40px; line-height:1.16; font-weight:700; color:var(--black); letter-spacing:-.01em; max-width:820px; margin-bottom:16px; }
.ur-pillar .phero .sub{ font-size:17px; max-width:680px; margin-bottom:18px; }
.ur-pillar .meta-line{ font-size:13px; color:var(--dgrey); display:flex; gap:14px; align-items:center; margin-bottom:24px; flex-wrap:wrap; }
.ur-pillar .meta-line .dot{ width:4px; height:4px; border-radius:50%; background:var(--border); display:inline-block; }
.ur-pillar .cta-row{ display:flex; gap:16px; flex-wrap:wrap; }
/* body layout: sticky TOC + content */
.ur-pillar .body-layout{ display:grid; grid-template-columns:220px 1fr; gap:56px; padding:48px 0 0; }
.ur-pillar .toc{ position:sticky; top:88px; align-self:start; }
.ur-pillar .toc-label{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--black); margin-bottom:14px; }
.ur-pillar .toc a{ display:block; font-size:13.5px; color:var(--dgrey); padding:7px 0 7px 14px; border-left:2px solid var(--border); }
.ur-pillar .toc a:hover{ color:var(--red); border-left-color:var(--red); }
.ur-pillar .toc a.active{ color:var(--red); font-weight:700; border-left-color:var(--red); }
.ur-pillar .content article > section{ padding:34px 0; border-bottom:1px solid var(--border); scroll-margin-top:88px; }
.ur-pillar .content article > section:last-of-type{ border-bottom:none; }
.ur-pillar h2.h{ font-size:25px; font-weight:700; color:var(--black); margin-bottom:14px; line-height:1.3; }
.ur-pillar .content p{ font-size:15.5px; line-height:1.7; margin-bottom:14px; max-width:760px; }
.ur-pillar .content ul{ margin:0 0 14px 20px; list-style:disc; }
.ur-pillar .content li{ font-size:15.5px; line-height:1.6; margin-bottom:8px; max-width:740px; }
.ur-pillar .content strong{ color:var(--black); }
.ur-pillar .content em{ font-style:italic; }
/* formula box + flow */
.ur-pillar .formula-box{ background:var(--lgrey); border-left:4px solid var(--red); border-radius:0 8px 8px 0; padding:22px 26px; margin:18px 0 22px; font-weight:700; color:var(--black); font-size:16px; }
.ur-pillar .formula-box span{ color:var(--red); }
.ur-pillar .flow{ display:flex; flex-wrap:wrap; gap:8px 0; align-items:center; margin:20px 0; }
.ur-pillar .flow .step{ background:var(--white); border:1px solid var(--border); border-radius:6px; padding:10px 16px; font-size:13px; font-weight:700; color:var(--black); }
.ur-pillar .flow .arrow{ color:var(--red); font-weight:700; padding:0 10px; font-size:15px; }
/* resource callout */
.ur-pillar .resource-callout{ background:var(--lgrey); border-left:5px solid var(--red); border-radius:0 8px 8px 0; padding:30px 34px; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; margin:24px 0; }
.ur-pillar .resource-callout .txt{ max-width:520px; }
.ur-pillar .resource-callout .tag{ font-size:12px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; display:block; }
.ur-pillar .resource-callout h3{ font-size:20px; color:var(--black); font-weight:700; margin-bottom:8px; line-height:1.3; }
.ur-pillar .resource-callout p{ font-size:14.5px; margin-bottom:0; }
/* stat compare (Round 2: grey cards + red top on debit, ink top on credit, shadow) */
.ur-pillar .stat-compare{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:22px 0; }
.ur-pillar .stat-card{ border:1px solid var(--border); border-radius:6px; background:var(--lgrey); padding:24px; box-shadow:0 6px 18px rgba(0,0,0,.08); }
.ur-pillar .stat-card.credit{ border-top:4px solid var(--black); }
.ur-pillar .stat-card.debit{ border-top:4px solid var(--red); }
.ur-pillar .stat-card h4{ font-size:14px; font-weight:700; color:var(--black); margin-bottom:12px; text-transform:uppercase; letter-spacing:.04em; }
.ur-pillar .stat-row{ display:flex; justify-content:space-between; font-size:14px; padding:8px 0; border-bottom:1px solid var(--border); }
.ur-pillar .stat-row:last-child{ border-bottom:none; }
.ur-pillar .stat-row .v{ font-weight:700; color:var(--black); }
/* FAQ */
.ur-pillar details.faq{ border-bottom:1px solid var(--border); padding:16px 0; }
.ur-pillar details.faq summary{ font-size:16px; font-weight:700; color:var(--black); cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.ur-pillar details.faq summary::-webkit-details-marker{ display:none; }
.ur-pillar details.faq summary::after{ content:"+"; color:var(--red); font-size:20px; font-weight:700; flex-shrink:0; }
.ur-pillar details.faq[open] summary::after{ content:"\2013"; }
.ur-pillar details.faq p{ margin-top:10px; font-size:14.5px; line-height:1.6; }
/* related (Round 2: grey cards + red top border) */
.ur-pillar .related-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:8px; }
.ur-pillar .related-card{ display:block; border:1px solid var(--border); border-top:4px solid var(--red); border-radius:6px; background:var(--lgrey); padding:22px 20px; box-shadow:0 6px 18px rgba(0,0,0,.08); transition:transform .15s ease, box-shadow .15s ease; }
.ur-pillar a.related-card:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,.12); }
.ur-pillar .related-card h4{ font-size:15.5px; font-weight:700; color:var(--black); margin-bottom:6px; line-height:1.35; }
.ur-pillar .related-card p{ font-size:13.5px; margin-bottom:0; }
.ur-pillar .related-card.soon{ opacity:.85; }
.ur-pillar .soon-tag{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--dgrey); background:#e6e6e6; padding:3px 8px; border-radius:3px; margin-bottom:8px; }
/* closing (Round 2: red band) */
.ur-pillar .closing{ background:var(--red); color:#fff; padding:60px 0; text-align:center; margin-top:24px; }
.ur-pillar .closing h2{ font-size:29px; font-weight:700; margin-bottom:12px; color:#fff; }
.ur-pillar .closing p{ font-size:15.5px; color:rgba(255,255,255,.9); max-width:520px; margin:0 auto 26px; }
.ur-pillar .closing .cta-row{ justify-content:center; }
.ur-pillar .closing .btn-primary{ background:#fff; color:var(--red); border-color:#fff; }
.ur-pillar .closing .btn-primary:hover{ background:#f2f2f2; }
.ur-pillar .closing .btn-secondary{ background:transparent; border-color:#fff; color:#fff; }
.ur-pillar .closing .btn-secondary:hover{ background:#fff; color:var(--red); }
@media (max-width:960px){
  .ur-pillar .body-layout{ grid-template-columns:1fr; }
  .ur-pillar .toc{ display:none; }
  .ur-pillar .stat-compare{ grid-template-columns:1fr; }
  .ur-pillar .related-grid{ grid-template-columns:1fr; }
}
@media (max-width:680px){ .ur-pillar h1.phero-h{ font-size:29px; } .ur-pillar .content article > section{ padding:24px 0; } }

/* ============================================================
   15. FLUENT FORMS  (styled to match the design system)
   ============================================================ */
.ur-page .fluentform{ max-width:660px; }
.ur-page .fluentform .ff-el-group{ margin-bottom:18px; }
.ur-page .fluentform .ff-el-input--label label{ font-size:13px; font-weight:700; color:var(--black); margin-bottom:6px; display:inline-block; }
.ur-page .fluentform .ff-el-is-required.asterisk-right label:after{ color:var(--red); }
.ur-page .fluentform .ff-el-form-control{ width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:4px; font-size:15px; font-family:inherit; color:var(--dgrey); background:#fff; line-height:1.4; }
.ur-page .fluentform .ff-el-form-control::placeholder{ color:#9a9a9a; }
.ur-page .fluentform .ff-el-form-control:focus{ outline:none; border-color:var(--red); box-shadow:none; }
.ur-page .fluentform textarea.ff-el-form-control{ min-height:120px; resize:vertical; }
.ur-page .fluentform .ff-el-form-check{ margin-bottom:7px; display:flex; align-items:flex-start; gap:9px; }
.ur-page .fluentform .ff-el-form-check-label,
.ur-page .fluentform .ff-el-form-check label{ font-size:14.5px; color:var(--dgrey); font-weight:400; }
.ur-page .fluentform .ff-el-form-check input{ margin-top:3px; }
.ur-page .fluentform .ff_t_container .ff-t-cell{ padding-right:16px; }
.ur-page .fluentform .ff-btn-submit{ background:var(--red); color:#fff; border:2px solid transparent; border-radius:3px; font-weight:700; font-size:15px; padding:14px 28px; cursor:pointer; transition:.15s ease; }
.ur-page .fluentform .ff-btn-submit:hover{ background:#9c0000; }
.ur-page .ff-message-success{ background:var(--lgrey); border-left:5px solid var(--red); border-radius:0 8px 8px 0; padding:22px 26px; color:var(--black); font-size:16px; font-weight:700; }
.ur-page .fluentform .ff-el-is-error .ff-el-form-control{ border-color:var(--red); }
.ur-page .fluentform .error, .ur-page .fluentform .text-danger{ color:var(--red); font-size:13px; }

/* ============================================================
   16. TESTIMONIAL CAROUSEL  ([urm_testimonials], no Elementor Pro)
   ============================================================ */
.ur-tcar{ position:relative; }
.ur-tcar-slide{ display:none; }
.ur-tcar-slide.is-active{ display:block; animation:urTcarFade .4s ease; }
@keyframes urTcarFade{ from{ opacity:0; } to{ opacity:1; } }
.ur-tcar-card{ max-width:820px; margin:0 auto; background:#fff; border-top:4px solid var(--red); border-radius:6px; padding:32px 40px 28px; box-shadow:0 8px 24px rgba(0,0,0,.08); text-align:center; }
.ur-tcar-mark{ font-family:Georgia, serif; font-size:54px; color:var(--red); line-height:.6; margin-bottom:10px; }
.ur-tcar-text{ font-size:20px; color:var(--black); line-height:1.45; font-weight:500; margin:0 0 18px; }
.ur-tcar-name{ display:block; font-size:14px; font-weight:700; color:var(--black); }
.ur-tcar-title{ display:block; font-size:13px; font-weight:500; color:#777; margin-top:2px; }
.ur-tcar-dots{ display:flex; justify-content:center; gap:9px; margin-top:22px; }
.ur-tcar-dot{ width:9px; height:9px; border-radius:50%; border:0; background:var(--border); cursor:pointer; padding:0; transition:background .15s ease; }
.ur-tcar-dot.is-active{ background:var(--red); }

/* ============================================================
   17. SERVICE PAGE (Round 2 new template, page-service.php, .ur-service)
   ============================================================ */
.ur-service .wrap{ max-width:1100px; }
.ur-service section{ padding:60px 0; }
.ur-service .eyebrow{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.ur-service .eyebrow span{ color:var(--red); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap; }
.ur-service .eyebrow .rule{ height:2px; background:var(--red); flex:1; }
/* page header */
.ur-service .pagehead{ background:var(--lgrey); color:var(--black); padding:30px 0 38px; position:relative; overflow:hidden; border-bottom:3px solid var(--red); }
.ur-service .pagehead::before{ content:""; position:absolute; inset:0; background-image:linear-gradient(#e2e4e8 1px,transparent 1px),linear-gradient(90deg,#e2e4e8 1px,transparent 1px); background-size:40px 40px; opacity:.7; }
.ur-service .pagehead .wrap{ position:relative; }
.ur-service .crumb{ font-size:12px; color:#7c7f86; margin-bottom:20px; }
.ur-service .crumb a{ color:#7c7f86; } .ur-service .crumb .sep{ margin:0 8px; color:#b7bac0; } .ur-service .crumb .cur{ color:var(--black); }
.ur-service .tagline{ display:inline-block; background:var(--red); color:#fff; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; padding:5px 11px; border-radius:2px; margin-bottom:14px; }
.ur-service .pagehead h1{ font-size:40px; font-weight:800; letter-spacing:-.01em; margin-bottom:12px; color:var(--black); line-height:1.1; }
.ur-service .pagehead > .wrap > p{ font-size:16px; color:#555; max-width:640px; }
/* intro + body */
.ur-service .lead{ font-size:17px; color:var(--black); line-height:1.55; max-width:760px; margin-bottom:14px; }
.ur-service p.body{ font-size:15.5px; line-height:1.7; margin-bottom:14px; max-width:760px; }
.ur-service h3.sec{ font-size:28px; color:var(--black); font-weight:700; margin-bottom:12px; letter-spacing:-.01em; line-height:1.2; }
.ur-service .greybg{ background:var(--lgrey); }
.ur-service em{ font-style:italic; }
/* what it covers */
.ur-service .covers{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.ur-service .covers .row{ background:#fff; border-left:4px solid var(--red); padding:18px 20px; box-shadow:0 4px 14px rgba(0,0,0,.05); }
.ur-service .covers .row h4{ font-size:15.5px; color:var(--black); margin-bottom:5px; font-weight:700; }
.ur-service .covers .row p{ font-size:13.5px; line-height:1.45; }
/* RC module */
.rc-module .rc-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:28px; }
.rc-module .rc-head h3{ font-size:26px; color:var(--black); font-weight:700; letter-spacing:-.01em; }
.rc-module .rc-headsub{ font-size:14px; margin-top:6px; max-width:520px; color:var(--dgrey); }
.rc-module .rc-viewall{ font-size:13.5px; font-weight:700; color:var(--red); white-space:nowrap; }
.rc-module .rc-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:22px; align-items:stretch; }
.rc-module .rc-col{ display:grid; grid-template-rows:1fr 1fr; gap:22px; }
.rc-module .rc-art{ background:#fff; border-radius:6px; border-top:4px solid var(--red); box-shadow:0 6px 18px rgba(0,0,0,.08); padding:24px 22px; display:flex; flex-direction:column; text-decoration:none; }
.rc-module a.rc-art{ transition:transform .15s ease, box-shadow .15s ease; }
.rc-module a.rc-art:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,.12); }
.rc-module .rc-cl{ display:inline-block; align-self:flex-start; background:#fbeaea; color:var(--red); font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:4px 9px; border-radius:3px; margin-bottom:14px; }
.rc-module .rc-hero h4{ font-size:22px; }
/* Hero is top-aligned (rc-grid align-items:start); don't let its excerpt grow to
   fill and shove the read-link down, which left a mid-card gap on short excerpts. */
.rc-module .rc-hero.rc-art p{ flex:0 0 auto; }
.rc-module .rc-art h4{ font-size:16.5px; color:var(--black); line-height:1.3; font-weight:700; margin-bottom:9px; }
.rc-module .rc-art p{ font-size:13.5px; line-height:1.5; margin-bottom:16px; flex:1; color:var(--dgrey); }
.rc-module .rc-read{ font-size:13px; font-weight:700; color:var(--red); }
.rc-module .rc-soon,.ur-topic .rc-soon{ opacity:.92; }
.rc-soonhead{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.rc-soonhead .rc-cl{ margin-bottom:0; }
.rc-soon-tag{ display:inline-block; align-self:flex-start; font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--dgrey); background:#e6e6e6; padding:4px 9px; border-radius:3px; }
.rc-module .rc-soon h4,.ur-topic .rc-soon h4{ color:#8a8d95; margin-bottom:0; }
/* topic archive grid (/topics/{line}/) */
.ur-topic .rc-grid-all{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.ur-topic .rc-grid-all .rc-art{ background:#fff; border-radius:6px; border-top:4px solid var(--red); box-shadow:0 6px 18px rgba(0,0,0,.08); padding:24px 22px; display:flex; flex-direction:column; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease; }
.ur-topic a.rc-art:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,.12); }
@media (max-width:960px){ .ur-topic .rc-grid-all{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:680px){ .ur-topic .rc-grid-all{ grid-template-columns:1fr; } }
/* convert band */
.ur-service .convert{ background:var(--red); color:#fff; text-align:center; padding:60px 0; }
.ur-service .convert h3{ font-size:30px; font-weight:700; margin-bottom:12px; max-width:720px; margin-left:auto; margin-right:auto; }
.ur-service .convert p{ font-size:16px; color:rgba(255,255,255,.92); max-width:560px; margin:0 auto 24px; }
.ur-service .convert .cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.ur-service .convert .btn{ display:inline-block; font-weight:700; font-size:15px; padding:13px 26px; border-radius:3px; border:2px solid transparent; }
.ur-service .convert .btn.solid-w{ background:#fff; color:var(--red); }
.ur-service .convert .btn.ghost-w{ background:transparent; border-color:#fff; color:#fff; }
.ur-service .convert .btn.ghost-w:hover{ background:#fff; color:var(--red); }
/* fineprint */
.ur-service .fineprint{ background:#fff; padding:22px 0; border-top:1px solid var(--border); }
.ur-service .fineprint p{ max-width:1100px; font-size:11.5px; color:#9a9da4; line-height:1.5; }
@media (max-width:820px){
  .ur-service .covers{ grid-template-columns:1fr; }
  .rc-module .rc-grid{ grid-template-columns:1fr; }
  .ur-service .pagehead h1{ font-size:29px; }
}
