/*
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;
  /* keep .wrap's 32px side gutters - a `padding:12px 0` shorthand here
     silently zeroed them, letting the header run to the viewport edge. */
  /* The horizontal lockup is short, so the bar takes its height from the CTA
     button. Padding is what gives the header presence now, not the logo. */
  padding:18px 32px;
  transition:padding .18s ease;
}
/* Sticky-header shrink: .is-stuck is set by JS once the page scrolls, so the
   deliberately large logo compacts out of the way while reading. */
.ur-header.is-stuck .header-inner{ padding:11px 32px; }
.ur-header.is-stuck .logo-img{ height:29px; }
@media (prefers-reduced-motion: reduce){
  .header-inner, .logo-img{ transition:none; }
}
.brand{ display:flex; align-items:center; gap:12px; }
.logo-img{ height:34px; width:auto; display:block; transition:height .18s ease; }
/* The horizontal lockup is 8.67:1, so height here buys width fast. 34px is
   the largest that still leaves the nav room at the 1180px container. */
.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; max-width:100%; }

.main-nav{ display:flex; align-items:center; gap:16px; font-size:14px; font-weight:700; }
.main-nav ul{ list-style:none; display:flex; align-items:center; gap:16px; }
.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 16px; 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; }
/* Was brightness(0) invert(1) on the colour logo, which also whited out the
   red mark. The kit ships a real reversed lockup, so no filter is needed. */
.ur-footer .logo-img-sm{ height:auto; width:100%; max-width:300px; }
.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; }

/* "Cookie Preferences" has to be a <button> - that is the element the consent
   plugin listens on - so strip it back to look like the links beside it. */
.footer-bottom .footer-linkbtn{
  background:none; border:0; padding:0; margin:0;
  font:inherit; color:#8a8a8a; cursor:pointer;
}
.footer-bottom .footer-linkbtn:hover{ color:#fff; }
.footer-bottom .footer-linkbtn:focus-visible{ outline:2px solid var(--red); outline-offset:2px; }

/* ============================================================
   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); }
/* "Learn more" above is a pseudo-element, so it can never be clicked on its own.
   Stretch the title's link over the whole card so the entire tile is clickable,
   which is what the affordance promises. Same pattern as .uw-relcard. */
.ur-page .elementor-widget.uw-svc-card{ position:relative; }
.ur-page .elementor-widget.uw-svc-card .elementor-icon-box-title a::after{
  content:""; position:absolute; inset:0; z-index:1;
}
@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; }
}
/* Nav collapses at 1180px: seven top-level items plus the CTA need 774px, and
   the horizontal lockup needs ~295px. Below the 1180px container those two do
   not both fit, so the nav becomes a burger rather than colliding. */
@media (max-width:1180px){
  .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; }
}
@media (max-width:680px){
  /* At 390px the full-width lockup all but touches the burger, so step it
     down. 26px keeps the wordmark readable and leaves a real gap. */
  .logo-img, .ur-header.is-stuck .logo-img{ height:26px; }
  .header-inner, .ur-header.is-stuck .header-inner{ padding:14px 20px; }
  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; }
}

/* ============================================================
   18. NATIVE ELEMENTOR CONVERSIONS (pages moved off page-service.php /
   page-pillar.php onto the Elementor canvas).
   NOTE: this Elementor build only renders `_css_classes` on WIDGETS — section
   and column classes are dropped — so section-level look (background, border,
   padding, content width) is set through Elementor's own settings, and anything
   CSS-only rides on a widget class. Values mirror Section 17 `.ur-service`
   exactly so converted pages stay pixel-identical.
   ============================================================ */
/* Blueprint grid overlay: an empty widget carrying .uw-blueprint fills its
   section. Keeps the drafting-table motif without a section-level class. */
.ur-page .elementor-section:has(.uw-blueprint){ position:relative; overflow:hidden; }
.ur-page .elementor-section:has(.uw-blueprint) > .elementor-container{ position:relative; z-index:1; }
.ur-page .elementor-widget.uw-blueprint{
  position:absolute; inset:0; margin:0; pointer-events:none; z-index:0;
  background-image:linear-gradient(#e2e4e8 1px,transparent 1px),linear-gradient(90deg,#e2e4e8 1px,transparent 1px);
  background-size:40px 40px; opacity:.7;
}
/* Elementor adds its own 20px widget margin; keep spacing on the widget only
   so it doesn't stack with the paragraph margin. */
.ur-page .elementor-widget.uw-crumb{ margin-bottom:20px; }
.ur-page .elementor-widget.uw-crumb p{ font-size:12px; color:#7c7f86; margin:0; }
.ur-page .elementor-widget.uw-crumb a{ color:#7c7f86; }
.ur-page .elementor-widget.uw-crumb .sep{ margin:0 8px; color:#b7bac0; }
.ur-page .elementor-widget.uw-crumb .cur{ color:var(--black); }

.ur-page .elementor-widget-heading.uw-svctag{ margin-bottom:14px; }
.ur-page .elementor-widget-heading.uw-svctag .elementor-heading-title{
  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;
}
.ur-page .elementor-widget-heading.uw-svch1{ margin-bottom:12px; }
.ur-page .elementor-widget-heading.uw-svch1 .elementor-heading-title{
  font-size:40px; font-weight:800; letter-spacing:-.01em; color:var(--black); line-height:1.1;
}
.ur-page .elementor-widget.uw-svcsub p{ font-size:16px; color:#555; max-width:640px; margin:0; }
/* Mirrors the Section 17 @media (max-width:820px) service-head rule. */
@media (max-width:820px){
  .ur-page .elementor-widget-heading.uw-svch1 .elementor-heading-title{ font-size:29px; }
}

/* ---- Pillar pages converted to native Elementor (mirrors Section 16 .ur-pillar) ---- */
.ur-page .elementor-widget.uw-pcrumb{ margin-bottom:0; }
.ur-page .elementor-widget.uw-pcrumb p{ font-size:13px; font-weight:700; margin:0; }
.ur-page .elementor-widget.uw-pcrumb a{ color:var(--dgrey); }
.ur-page .elementor-widget.uw-pcrumb a:hover{ color:var(--red); }
.ur-page .elementor-widget.uw-pcrumb .sep{ margin:0 8px; color:var(--border); }
.ur-page .elementor-widget.uw-pcrumb .current{ color:var(--red); }

.ur-page .elementor-widget-heading.uw-peyebrow{ margin-bottom:18px; }
.ur-page .elementor-widget-heading.uw-peyebrow .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);
}
.ur-page .elementor-widget-heading.uw-peyebrow .elementor-heading-title::after{
  content:""; flex:1 1 auto; height:2px; background:var(--red);
}
.ur-page .elementor-widget-heading.uw-pheroh{ margin-bottom:16px; }
.ur-page .elementor-widget-heading.uw-pheroh .elementor-heading-title{
  font-size:40px; line-height:1.16; font-weight:700; color:var(--black);
  letter-spacing:-.01em; max-width:820px;
}
.ur-page .elementor-widget.uw-psub{ margin-bottom:18px; }
.ur-page .elementor-widget.uw-psub p{ font-size:17px; max-width:680px; margin:0; }

/* CTA row — Elementor buttons set to inline width sit in a 16px-gap row */
.ur-page .elementor-widget.uw-pbtn{ width:auto; margin:0 16px 0 0; }
.ur-page .elementor-widget.uw-pbtn .elementor-button{
  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; background:none; fill:currentColor;
  /* Elementor buttons default to line-height:1; the original .btn inherited
     the 1.55 body line-height, which is 8px of button height. */
  line-height:1.55;
}
.ur-page .elementor-widget.uw-pbtn-primary .elementor-button{ background:var(--red); color:#fff; }
.ur-page .elementor-widget.uw-pbtn-primary .elementor-button:hover{ background:#9c0000; }
.ur-page .elementor-widget.uw-pbtn-secondary .elementor-button{ background:transparent; color:var(--black); border-color:var(--black); }
.ur-page .elementor-widget.uw-pbtn-secondary .elementor-button:hover{ background:var(--black); color:#fff; }
.ur-page .elementor-widget.uw-inv.uw-pbtn-primary .elementor-button{ background:#fff; color:var(--red); border-color:#fff; }
.ur-page .elementor-widget.uw-inv.uw-pbtn-primary .elementor-button:hover{ background:#f2f2f2; }
.ur-page .elementor-widget.uw-inv.uw-pbtn-secondary .elementor-button{ background:transparent; border-color:#fff; color:#fff; }
.ur-page .elementor-widget.uw-inv.uw-pbtn-secondary .elementor-button:hover{ background:#fff; color:var(--red); }

.ur-page .elementor-widget-heading.uw-ph2{ margin-bottom:14px; }
.ur-page .elementor-widget-heading.uw-ph2 .elementor-heading-title{
  font-size:25px; font-weight:700; color:var(--black); line-height:1.3;
}
.ur-page .elementor-widget.uw-pbody{ margin-bottom:0; }
.ur-page .elementor-widget.uw-pbody p{ font-size:15.5px; line-height:1.7; margin-bottom:14px; max-width:760px; }
/* NB: the original .ur-pillar .content p keeps its 14px margin on the last
   paragraph too - do not zero it, the section rhythm depends on it. */

/* Related-article cards: icon-box widgets laid out as a grid on their wrap */
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-relcard){
  display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; margin-top:8px;
}
.ur-page .elementor-widget.uw-relcard{
  position:relative; margin:0; 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-page .elementor-widget.uw-relcard:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,.12); }
.ur-page .elementor-widget.uw-relcard .elementor-icon-box-title{
  font-size:15.5px; font-weight:700; color:var(--black); margin-bottom:6px; line-height:1.35;
}
.ur-page .elementor-widget.uw-relcard .elementor-icon-box-title a{ color:inherit; }
/* keep the whole card clickable, as the original <a class="related-card"> was */
.ur-page .elementor-widget.uw-relcard .elementor-icon-box-title a::after{ content:""; position:absolute; inset:0; }
.ur-page .elementor-widget.uw-relcard .elementor-icon-box-description{
  font-size:13.5px; line-height:1.55; color:var(--dgrey); margin:0;
}
@media (max-width:820px){
  .ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-relcard){ grid-template-columns:1fr; }
}

/* Closing band (red, centred) */
.ur-page .elementor-widget-heading.uw-pclose-h{ margin-bottom:12px; }
.ur-page .elementor-widget-heading.uw-pclose-h .elementor-heading-title{ font-size:29px; font-weight:700; color:#fff; }
.ur-page .elementor-widget.uw-pclose-p{ margin-bottom:26px; }
.ur-page .elementor-widget.uw-pclose-p p{ font-size:15.5px; color:rgba(255,255,255,.9); max-width:520px; margin:0 auto; }
@media (max-width:680px){
  .ur-page .elementor-widget-heading.uw-pheroh .elementor-heading-title{ font-size:29px; }
}
/* icon-box defaults to centred; the original related-card copy is left-aligned */
.ur-page .elementor-widget.uw-relcard .elementor-icon-box-wrapper,
.ur-page .elementor-widget.uw-relcard .elementor-icon-box-content{ text-align:left; }
/* closing band centres its CTA row (mirrors .ur-pillar .closing .cta-row) */
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-inv){ justify-content:center; }
/* eyebrow keeps the global 22px leading dash (.eyebrow::before) */
.ur-page .elementor-widget-heading.uw-peyebrow .elementor-heading-title::before{
  content:""; width:22px; height:2px; background:var(--red); flex:0 0 auto;
}
/* divider widgets stand in for the original section bottom-rules */
.ur-page .elementor-widget.uw-pdiv{ margin:0; }
/* icon-box reserves space for an icon we never set - remove it so the related
   cards match the original .related-card box height exactly. */
.ur-page .elementor-widget.uw-relcard .elementor-icon-box-icon{ display:none; margin:0; }
.ur-page .elementor-widget.uw-relcard .elementor-icon-box-wrapper{ margin:0; gap:0; }

/* ---- WC pillar converted to native Elementor: TOC + signature components ---- */
.ur-page .elementor-widget.uw-pmeta{ margin-bottom:24px; }
.ur-page .elementor-widget.uw-pmeta p{ font-size:13px; color:var(--dgrey); margin:0; }
.ur-page .elementor-widget.uw-pmeta .dot{
  width:4px; height:4px; border-radius:50%; background:var(--border);
  display:inline-block; margin:0 10px; vertical-align:middle;
}
/* two-column body: 220px sticky TOC + content, mirroring .body-layout */
.ur-page .elementor-section:has(.uw-ptoc) > .elementor-container{
  display:grid; grid-template-columns:220px 1fr; gap:56px; align-items:start;
}
.ur-page .elementor-section:has(.uw-ptoc) > .elementor-container > .elementor-column{ width:auto; }
.ur-page .elementor-column.uw-toccol{ position:sticky; top:88px; align-self:start; }
.ur-page .elementor-widget-heading.uw-ptoc-label{ margin-bottom:14px; }
.ur-page .elementor-widget-heading.uw-ptoc-label .elementor-heading-title{
  font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--black);
}
.ur-page .elementor-widget.uw-ptoc .elementor-icon-list-items{ list-style:none; margin:0; padding:0; }
.ur-page .elementor-widget.uw-ptoc .elementor-icon-list-item{ margin:0; }
.ur-page .elementor-widget.uw-ptoc .elementor-icon-list-icon{ display:none; }
.ur-page .elementor-widget.uw-ptoc a{
  display:block; font-size:13.5px; color:var(--dgrey);
  padding:7px 0 7px 14px; border-left:2px solid var(--border);
}
.ur-page .elementor-widget.uw-ptoc a:hover{ color:var(--red); border-left-color:var(--red); }
.ur-page .elementor-widget.uw-ptoc a.active{ color:var(--red); font-weight:700; border-left-color:var(--red); }

.ur-page .elementor-widget.uw-formula{ margin:18px 0 22px; }
.ur-page .elementor-widget.uw-formula p{
  background:var(--lgrey); border-left:4px solid var(--red); border-radius:0 8px 8px 0;
  padding:22px 26px; margin:0; font-weight:700; color:var(--black); font-size:16px;
}
.ur-page .elementor-widget.uw-formula span{ color:var(--red); }

/* NOTE: :has() is unscoped - `section:has(.x)` also matches every ANCESTOR
   section. Always spell out the direct child path or the outer wrapper
   inherits the component's background/border.
   Section/column _css_classes are dropped by this Elementor build, so every
   component below is hooked off a WIDGET class via :has(). */

/* flow steps: red arrows drawn between steps rather than as separate nodes */
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-step){
  display:flex; flex-wrap:wrap; gap:8px 0; align-items:center;
}
.ur-page .elementor-section:has(> .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget.uw-step){ margin:20px 0; }
.ur-page .elementor-widget-heading.uw-step{ width:auto; margin:0; display:flex; align-items:center; }
.ur-page .elementor-widget-heading.uw-step .elementor-heading-title{
  background:var(--white); border:1px solid var(--border); border-radius:6px;
  padding:10px 16px; font-size:13px; font-weight:700; color:var(--black); display:block;
}
.ur-page .elementor-widget-heading.uw-step:not(:last-child)::after{
  content:"\2192"; color:var(--red); font-weight:700; padding:0 10px; font-size:15px;
}

/* resource callout */
.ur-page .elementor-section:has(> .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget.uw-callout-h){
  background:var(--lgrey); border-left:5px solid var(--red); border-radius:0 8px 8px 0;
  padding:30px 34px; margin:24px 0;
}
.ur-page .elementor-section:has(> .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget.uw-callout-h) > .elementor-container{
  align-items:center; gap:30px; flex-wrap:wrap;
}
.ur-page .elementor-widget-heading.uw-tag{ margin-bottom:8px; }
.ur-page .elementor-widget-heading.uw-tag .elementor-heading-title{
  font-size:12px; font-weight:700; color:var(--red); text-transform:uppercase;
  letter-spacing:.06em; display:block;
}
.ur-page .elementor-widget-heading.uw-callout-h{ margin-bottom:8px; }
.ur-page .elementor-widget-heading.uw-callout-h .elementor-heading-title{
  font-size:20px; color:var(--black); font-weight:700; line-height:1.3;
}
.ur-page .elementor-widget.uw-callout-p{ margin-bottom:0; }
.ur-page .elementor-widget.uw-callout-p p{ font-size:14.5px; margin:0; }

/* credit / debit stat cards */
.ur-page .elementor-section:has(> .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget.uw-statrows){ margin:22px 0; }
.ur-page .elementor-section:has(> .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget.uw-statrows) > .elementor-container{ gap:18px; align-items:stretch; }
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-statrows){
  border:1px solid var(--border); border-radius:6px; background:var(--lgrey);
  padding:24px; box-shadow:0 6px 18px rgba(0,0,0,.08); align-content:start;
}
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-stat-credit){ border-top:4px solid var(--black); }
.ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-stat-debit){ border-top:4px solid var(--red); }
.ur-page .elementor-widget-heading.uw-stat-h{ margin-bottom:12px; }
.ur-page .elementor-widget-heading.uw-stat-h .elementor-heading-title{
  font-size:14px; font-weight:700; color:var(--black); text-transform:uppercase; letter-spacing:.04em;
}
.ur-page .elementor-widget.uw-statrows{ margin:0; }
.ur-page .elementor-widget.uw-statrows p{
  display:flex; justify-content:space-between; font-size:14px; padding:8px 0;
  border-bottom:1px solid var(--border); margin:0;
}
.ur-page .elementor-widget.uw-statrows p:last-child{ border-bottom:none; }
.ur-page .elementor-widget.uw-statrows .v{ font-weight:700; color:var(--black); }

/* anchor targets sit clear of the sticky header */
.ur-page .elementor-section[id]{ scroll-margin-top:88px; }

@media (max-width:960px){
  .ur-page .elementor-section:has(.uw-ptoc) > .elementor-container{ display:block; }
  .ur-page .elementor-column.uw-toccol{ display:none; }
  .ur-page .elementor-section.uw-statsec > .elementor-container{ display:block; }
  .ur-page .elementor-widget-wrap:has(> .elementor-widget.uw-relcard){ grid-template-columns:1fr; }
}
/* callout: text left, button right (mirrors the flex space-between original) */
.ur-page .elementor-section:has(> .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget.uw-callout-h) > .elementor-container{ justify-content:space-between; }
.ur-page .elementor-section:has(> .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget.uw-callout-h) .elementor-widget-wrap:has(> .uw-pbtn){ justify-content:flex-end; }

/* ============================================================
   19. GATED REPORTS — in-article CTA + Resource Library
   Mirrors the .resource-callout treatment (Section 16) so a report offer
   reads as part of the same system as the pillar callouts.
   ============================================================ */
.ur-page .urm-cta{
  background:var(--lgrey); border-left:5px solid var(--red); border-radius:0 8px 8px 0;
  padding:26px 30px; margin:28px 0;
}
.ur-page .urm-cta-tag{
  display:block; font-size:12px; font-weight:700; color:var(--red);
  text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px;
}
.ur-page .urm-cta-title{
  font-size:20px; font-weight:700; color:var(--black); line-height:1.3; margin:0 0 8px;
}
.ur-page .urm-cta-teaser{ font-size:14.5px; color:var(--dgrey); line-height:1.55; margin:0 0 18px; max-width:640px; }
.ur-page .urm-cta-btn{
  display:inline-flex; align-items:center; gap:8px; font-family:inherit;
  font-weight:700; font-size:15px; padding:13px 24px; border-radius:3px;
  border:2px solid transparent; background:var(--red); color:#fff;
  cursor:pointer; transition:.15s ease; text-decoration:none;
}
.ur-page .urm-cta-btn:hover{ background:#9c0000; color:#fff; }
/* Report titles can be long. Let the label wrap inside the box rather than
   pushing the button past the callout edge on a phone. */
.ur-page .urm-cta-btn{ max-width:100%; white-space:normal; text-align:left; }
.ur-page .urm-gate-dl{ max-width:100%; white-space:normal; }
.ur-page .urm-cta.is-open .urm-cta-btn{ display:none; }
.ur-page .urm-cta-form{ margin-top:18px; max-width:520px; }
.ur-page .urm-cta-form .ff-el-group{ margin-bottom:14px; }

/* Post-submit state */
.ur-page .urm-gate-done{ font-size:15.5px; color:var(--dgrey); line-height:1.6; }
.ur-page .urm-gate-dl{
  display:inline-flex; align-items:center; gap:8px; margin:12px 0 6px;
  background:var(--red); color:#fff; font-weight:700; font-size:15px;
  padding:13px 24px; border-radius:3px; text-decoration:none;
}
.ur-page .urm-gate-dl:hover{ background:#9c0000; color:#fff; }
.ur-page .urm-gate-note{ display:block; font-size:13.5px; color:#7c7f86; }

/* Resource Library */
.ur-page .urm-lib-filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.ur-page .urm-lib-filter{
  font-family:inherit; font-size:13px; font-weight:700; cursor:pointer;
  padding:8px 16px; border-radius:3px; border:1px solid var(--border);
  background:#fff; color:var(--dgrey); transition:.15s ease;
}
.ur-page .urm-lib-filter:hover{ border-color:var(--red); color:var(--red); }
.ur-page .urm-lib-filter.is-active{ background:var(--red); border-color:var(--red); color:#fff; }
.ur-page .urm-lib-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.ur-page .urm-lib-card{
  border:1px solid var(--border); border-top:4px solid var(--red); border-radius:6px;
  background:#fff; padding:24px; box-shadow:0 6px 18px rgba(0,0,0,.06);
}
.ur-page .urm-lib-line{
  display:block; font-size:11.5px; font-weight:700; color:var(--red);
  text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px;
}
.ur-page .urm-lib-title{ font-size:17px; font-weight:700; color:var(--black); line-height:1.35; margin:0 0 8px; }
.ur-page .urm-lib-teaser{ font-size:14px; color:var(--dgrey); line-height:1.55; margin:0 0 4px; }
/* Inside a library card the CTA is already framed by the card. */
.ur-page .urm-lib-card .urm-cta{
  background:none; border-left:0; border-radius:0; padding:0; margin:14px 0 0;
}
.ur-page .urm-lib-card .urm-cta-tag,
.ur-page .urm-lib-card .urm-cta-title,
.ur-page .urm-lib-card .urm-cta-teaser{ display:none; }

@media (max-width:820px){
  .ur-page .urm-lib-grid{ grid-template-columns:1fr; }
  .ur-page .urm-cta{ padding:22px 20px; }
}
/* bare="yes": the page already provides the heading and context, so drop the
   callout framing and show only the action. */
.ur-page .urm-cta--bare{ background:none; border-left:0; border-radius:0; padding:0; margin:8px 0 0; }

/* ============================================================
   20. COOKIE CONSENT BANNER (Complianz)
   Colours, radii and copy are set in the plugin. Only the two
   things the plugin cannot do from its settings live here.
   ============================================================ */

/* The banner renders in its own font stack; put it on ours. */
#cmplz-cookiebanner-container .cmplz-cookiebanner,
#cmplz-manage-consent .cmplz-manage-consent{ font-family:var(--font); }

/* Complianz hides a document link it has no page for by adding .cmplz-hidden
   to the <a>, but leaves the surrounding <li>. With markers on, that shows as
   a stray empty bullet (this site has no Impressum). Dropping the marker makes
   the empty row collapse to nothing, and reads better than a bulleted list. */
#cmplz-cookiebanner-container .cmplz-links ul{
  list-style:none; margin:0; padding:0;
  display:flex; flex-wrap:wrap; gap:2px 14px;
}
/* Scoped to the banner on purpose: an unscoped :has() here would match
   ancestors all over the page. */
#cmplz-cookiebanner-container .cmplz-links li:has(> a.cmplz-hidden){ display:none; }
