:root {
    --navy:#36454f;
    --navy-deep:#36454f;
    --navy-soft:#4a5b66;
    --red:#d71920;
    --red-dark:#a90f15;
    --sky:#eef8fc;
    --sky-2:#f7fcfe;
    --line:#ddebf1;
    --text:#233340;
    --muted:#647887;
    --gold:#f8b525;
    --green:#0e9f6e;
    --blue:#147db8;
    --shadow:0 18px 45px rgba(19,43,57,.14);
    --soft-shadow:0 12px 30px rgba(19,43,57,.08);
    --radius:20px;
  }
  * { box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { margin:0; color:var(--text); background:#f4fbfe; font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; }
  a { color:inherit; text-decoration:none; }
  .container { width:min(1180px, calc(100% - 56px)); margin:0 auto; }
  .top-strip { background:#fff; border-bottom:1px solid var(--line); color:var(--muted); font-size:13px; }
  .top-strip .container { height:34px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
  .top-strip b { color:var(--navy); }
  .top-strip a { color:inherit; text-decoration:none; }
  .top-strip a:hover,
  .top-strip a:focus-visible { text-decoration:underline; text-underline-offset:2px; }
  .pill-small { display:inline-flex; align-items:center; gap:7px; padding:6px 11px; border-radius:999px; background:#eef8fc; color:#315568; font-weight:800; }
  .availability-dot {
    flex:0 0 9px;
    width:9px;
    height:9px;
    border-radius:50%;
    background:#1fbd70;
    box-shadow:0 0 4px rgba(31,189,112,.5),0 0 10px rgba(31,189,112,.28);
    animation:availability-glow 1.4s ease-in-out infinite;
  }
  @keyframes availability-glow {
    0%,100% {
      opacity:.68;
      transform:scale(.92);
      filter:brightness(.82);
      box-shadow:0 0 3px rgba(18,151,84,.38),0 0 7px rgba(18,151,84,.2);
    }
    50% {
      opacity:1;
      transform:scale(1.08);
      filter:brightness(1.35);
      box-shadow:0 0 6px rgba(64,235,145,.88),0 0 14px rgba(64,235,145,.58),0 0 22px rgba(64,235,145,.3);
    }
  }
  @media (prefers-reduced-motion:reduce) {
    .availability-dot {
      animation:none;
      opacity:1;
      filter:none;
      box-shadow:0 0 5px rgba(31,189,112,.62),0 0 11px rgba(31,189,112,.34);
    }
  }
  .header { background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; backdrop-filter:saturate(120%) blur(8px); }
  .header .container { height:160px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
  .brand { display:flex; align-items:center; gap:12px; min-width:245px; }
  .brand img { width:344px; height:auto; display:block; }
  .brand-copy { display:flex; flex-direction:column; flex:0 0 auto; line-height:1.15; font-size:12px; color:var(--muted); font-weight:700; }
  .brand-copy b,.brand-copy span { white-space:nowrap; }
  nav { display:flex; flex:0 0 auto; align-items:center; gap:26px; color:#334b59; font-size:14px; font-weight:800; }
  nav a { opacity:.9; white-space:nowrap; }
  nav a:hover { color:var(--red); }
  .header-actions { display:flex; align-items:center; gap:12px; }
  .mobile-nav { display:none; }
  .mobile-nav summary { list-style:none; }
  .mobile-nav summary::-webkit-details-marker { display:none; }
  .phone-block { display:flex; flex-direction:column; text-align:right; line-height:1.1; min-width:170px; }
  .phone-block strong { color:var(--navy-deep); font-size:19px; letter-spacing:.2px; }
  .phone-block span { color:var(--muted); font-size:12px; font-weight:800; }
  .phone-block .phone-label { display:inline-flex; align-items:center; justify-content:flex-end; gap:6px; }
  .btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:999px; padding:14px 22px; font-weight:900; letter-spacing:.01em; box-shadow:0 8px 20px rgba(215,25,32,.22); border:2px solid transparent; white-space:nowrap; }
  .btn-red { background:linear-gradient(180deg,#e62b31,var(--red)); color:#fff; }
  .phone-icon { display:inline-block; width:1.1em; height:1.1em; flex:0 0 auto; background:currentColor; -webkit-mask:url('../icons/phone.svg') center / contain no-repeat; mask:url('../icons/phone.svg') center / contain no-repeat; }
  .btn-red:hover { background:linear-gradient(180deg,#d71920,#b61117); }
  .btn-dark { background:var(--navy-deep); color:#fff; box-shadow:0 8px 20px rgba(54,69,79,.2); }
  .btn-dark:hover { background:#263742; }
  .btn-outline { background:#fff; color:var(--navy); border-color:#cbdde5; box-shadow:none; }
  .btn-soft { background:#edf8fc; color:#17394a; box-shadow:none; }
  .section { padding:82px 0; }
  .section-header { text-align:center; max-width:740px; margin:0 auto 34px; }
  .section-header .section-title { font-size:42px; letter-spacing:-.04em; line-height:1.08; color:var(--navy-deep); margin:12px 0 0; }
  .eyebrow { display:inline-flex; align-items:center; gap:8px; color:#19739b; background:#e9f8fc; border:1px solid #cbeef8; padding:7px 12px; border-radius:999px; font-size:13px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
  h1,h2,h3,p { margin:0; }
  h1 { font-size:70.4px; line-height:.98; letter-spacing:-.055em; color:var(--navy-deep); margin:17px 0 20px; }
  .hero-heading-line { display:block; white-space:nowrap; }
  h1 .red { color:var(--red); display:block; }
  h2 { font-size:42px; letter-spacing:-.04em; line-height:1.08; color:var(--navy-deep); margin-top:12px; }
  h3 { font-size:22px; letter-spacing:-.025em; color:var(--navy-deep); }
  .lead { font-size:20px; line-height:1.62; color:#445d6d; max-width:660px; }
  .hero-lead-line { display:block; white-space:nowrap; }
.hero { position:relative; overflow:hidden; padding:29px 0 52px; background:#e6f1f7; }
  .hero-panorama {
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    pointer-events:none;
  }
  .hero-panorama img { width:100%; height:100%; object-fit:cover; object-position:right top; display:block; transform-origin:right top; transform:translate(40px,calc(-20% + 250px)) scale(.63); }
  .hero-panorama::before {
    content:"";
    position:absolute;
    z-index:1;
    left:0;
    right:0;
    top:calc(43% + 150px);
    height:120px;
    background:linear-gradient(180deg,
      rgba(230,241,247,0) 0,
      rgba(230,241,247,.043) 12.5px,
      rgba(230,241,247,.156) 25px,
      rgba(230,241,247,.316) 37.5px,
      rgba(230,241,247,.5) 50px,
      rgba(230,241,247,.684) 62.5px,
      rgba(230,241,247,.844) 75px,
      rgba(230,241,247,.957) 87.5px,
      #e6f1f7 100px,
      #e6f1f7 120px);
  }
  .hero-panorama::after {
    content:"";
    position:absolute;
    z-index:1;
    inset:0;
    background:linear-gradient(90deg,
      #e6f1f7 0%,
      #e6f1f7 calc(60.975% - 150px),
      rgba(230,241,247,.957) calc(61.89375% - 150px),
      rgba(230,241,247,.844) calc(62.8125% - 150px),
      rgba(230,241,247,.684) calc(63.73125% - 150px),
      rgba(230,241,247,.5) calc(64.65% - 150px),
      rgba(230,241,247,.316) calc(65.56875% - 150px),
      rgba(230,241,247,.156) calc(66.4875% - 150px),
      rgba(230,241,247,.043) calc(67.40625% - 150px),
      rgba(230,241,247,0) calc(68.325% - 150px),
      rgba(230,241,247,0) 100%);
  }
  .hero-corner-dissolve {
    position:absolute;
    z-index:2;
    left:calc(60.975% - 150px);
    top:calc(43% + 100px);
    width:150px;
    height:150px;
    border-top-right-radius:150px;
    background:#e6f1f7;
    filter:blur(14px);
  }
  .hero-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:start; position:relative; z-index:1; }
  .hero-badges { display:flex; gap:10px; flex-wrap:nowrap; width:max-content; }
  .hero-badge { display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid #d9edf5; border-radius:999px; padding:9px 13px; color:#315568; font-weight:900; font-size:13px; box-shadow:0 6px 18px rgba(16,40,56,.05); }
  .cta-row { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:28px 0; }
  .hero .cta-row { margin-bottom:39px; }
  .microcopy { color:#526b7b; font-size:14px; font-weight:600; }
  .microcopy b { color:var(--navy-deep); }
  .microcopy strong { color:var(--navy-deep); }
  .microcopy-line { display:block; white-space:nowrap; }
  .quick-proof { display:flex; flex-wrap:wrap; gap:13px; margin:20px 0 28px; }
  .quick-proof span { display:inline-flex; align-items:center; gap:8px; color:#345363; font-weight:650; font-size:14px; }
  .check { display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#eaf8ee; color:#10865d; font-weight:900; }
  .emergency-panel { display:grid; grid-template-columns:auto 1fr; gap:18px; height:230px; background:#fff; border:1px solid #d9ebf2; border-radius:28px; padding:20px; box-shadow:var(--soft-shadow); max-width:680px; }
  .emergency-icon { width:54px; height:54px; border-radius:16px; display:grid; place-items:center; background:#fff0f1; color:var(--red); font-size:28px; }
  .emergency-panel h3 { margin-bottom:7px; }
  .emergency-panel ul { margin:10px 0 0; padding-left:19px; color:#536b7a; line-height:1.65; font-weight:450; }
  .hero-visual { position:relative; min-height:974px; }
  .photo-card { display:none; position:absolute; inset:92px 0 260px 24px; border-radius:32px; overflow:hidden; box-shadow:var(--shadow); background:#dfeff5; }
  .photo-card img { width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.02); }
  .photo-card:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(16,40,56,.02),rgba(16,40,56,.24)); }
  .availability-card { position:absolute; left:auto; right:24px; top:0; width:420px; background:#fff; border:1px solid #dbeaf1; border-radius:22px; padding:18px 20px; box-shadow:var(--shadow); }
  .availability-card .live { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:#0c8c62; font-weight:900; }
  .dot { width:10px; height:10px; border-radius:50%; background:#0fb875; box-shadow:0 0 0 5px rgba(15,184,117,.12); }
  .availability-card strong { display:block; font-size:25px; line-height:1.05; color:var(--navy-deep); margin:9px 0 6px; letter-spacing:-.03em; max-width:330px; }
  .availability-card p { color:#667987; font-size:14px; line-height:1.45; font-weight:450; }
  .first-hour { position:absolute; right:24px; bottom:64px; width:420px; height:230px; background:var(--navy-deep); color:#fff; border-radius:28px; padding:22px; box-shadow:var(--shadow); }
  .first-hour h3 { color:#fff; margin-bottom:13px; }
  .timeline { display:grid; gap:10px; }
  .timeline-row { display:grid; grid-template-columns:72px 1fr; gap:12px; align-items:start; color:#cfe4ee; font-size:14px; line-height:1.35; }
  .timeline-row b { color:#fff; }
  .hero-legacy-note { position:absolute; right:34px; bottom:2px; width:400px; margin:0; color:#587080; font-size:14px; line-height:1.45; font-weight:400; }
  .hero-legacy-note span { display:block; white-space:nowrap; text-align:justify; text-align-last:justify; }
  .trust-bar { background:var(--navy-deep); color:#fff; padding:0; }
  .trust-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:34px; align-items:center; min-height:78px; }
  .trust-item { display:grid; align-items:center; color:#fff; min-height:62px; }
  .trust-mark { display:grid; place-items:center; }
  .trust-mark img { object-fit:contain; display:block; }
  .trust-mark-plain { background:transparent; }
  .trust-item-completed { grid-template-columns:44px 1fr; gap:14px; }
  .trust-item-completed .trust-mark { width:36px; height:36px; }
  .trust-item-completed .trust-mark img { width:38px; height:38px; transform:translateY(-3px); }
  .trust-item-lead-safe { grid-template-columns:74px 1fr; gap:10px; }
  .trust-item-lead-safe .trust-mark { width:74px; height:36px; }
  .trust-item-lead-safe .trust-mark img { width:74px; height:50px; max-width:none; transform:translateY(-9px); }
  .trust-item-iicrc-logo,.trust-item-cslb-logo { display:flex; align-items:center; justify-content:center; }
  .trust-logo-wide { display:flex; align-items:center; justify-content:center; width:190px; height:44px; overflow:visible; }
  .trust-item-iicrc-logo .trust-logo-wide img { width:170px; height:auto; max-width:none; }
  .trust-item-cslb-logo .trust-logo-wide img { width:110px; height:auto; max-width:none; }
  .trust-copy strong,.trust-copy span { display:block; }
  .trust-copy strong { font-size:22px; line-height:1; font-weight:900; letter-spacing:.01em; }
  .trust-copy span { margin-top:4px; font-size:15px; line-height:1.05; color:#fff; font-weight:500; opacity:.94; }
  .trust-item-lead-safe .lead-cert-line { width:max-content; font-size:14px; }
  .proof-section { background:#fff; }
  .review-grid { display:grid; grid-template-columns:1.05fr repeat(3,1fr); gap:22px; align-items:stretch; }
  .review-grid[data-review-count="0"] { grid-template-columns:minmax(260px,290px); justify-content:center; }
  .review-grid[data-review-count="1"] { grid-template-columns:1.05fr 1fr; max-width:650px; margin-inline:auto; }
  .review-grid[data-review-count="2"] { grid-template-columns:1.05fr repeat(2,1fr); max-width:930px; margin-inline:auto; }
  .review-card[hidden] { display:none !important; }
  .rating-card,.review-card,.service-card,.case-card,.faq-card,.step-card,.blog-card { background:#fff; border:1px solid #dcebf1; border-radius:18px; box-shadow:var(--soft-shadow); }
  .rating-card { padding:26px; display:flex; flex-direction:column; justify-content:center; background:linear-gradient(180deg,#fff,#f7fcfe); }
  .rating-big { display:flex; align-items:center; gap:16px; }
  .rating-number { font-size:58px; font-weight:950; color:var(--navy-deep); letter-spacing:-.06em; }
  .stars { color:var(--gold); letter-spacing:2px; font-size:18px; }
  .rating-card p { color:#536b7a; line-height:1.5; margin-top:12px; font-weight:700; }
  .rating-yelp-card { display:grid; grid-template-columns:74px minmax(0,1fr); column-gap:14px; row-gap:6px; align-content:center; align-items:center; justify-items:start; padding:28px 0; background:transparent; border:0; box-shadow:none; }
  .review-yelp-brand { grid-column:1; grid-row:1 / 4; display:grid; justify-items:center; align-self:center; width:74px; }
  .review-yelp-burst { width:34px; height:auto; display:block; }
  .review-yelp-word { margin-top:3px; color:#000; font-family:"Arial Rounded MT Bold", Arial, sans-serif; font-size:36px; line-height:.9; font-weight:900; letter-spacing:0; }
  .review-score { grid-column:2; color:var(--navy); font-size:22px; line-height:.9; font-weight:900; }
  .review-stars { grid-column:2; color:var(--gold); font-size:30px; line-height:1; letter-spacing:.02em; font-weight:800; white-space:nowrap; }
  .review-meta { grid-column:2; color:var(--muted); font-size:12px; line-height:1.4; font-weight:700; white-space:nowrap; }
  .review-platform-switcher { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; margin:0 auto 28px; }
  .review-platform-button { appearance:none; min-width:110px; padding:11px 20px; border:1px solid #cbdfe7; border-radius:999px; background:#fff; color:var(--navy-deep); font:inherit; font-size:14px; font-weight:900; line-height:1; cursor:pointer; box-shadow:0 8px 20px rgba(23,58,76,.06); transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease; }
  .review-platform-button:hover { transform:translateY(-2px); border-color:#9fc6d7; box-shadow:0 11px 24px rgba(23,58,76,.12); }
  .review-platform-button:focus-visible { outline:3px solid rgba(20,125,184,.28); outline-offset:3px; }
  .review-platform-button.is-active { color:#fff; border-color:transparent; transform:translateY(-2px); box-shadow:0 12px 26px rgba(23,58,76,.18); }
  .review-platform-button[data-review-platform="yelp"].is-active { background:#d32323; }
  .review-platform-button[data-review-platform="google"].is-active { background:#4285f4; }
  .review-platform-button[data-review-platform="thumbtack"].is-active { background:#1aa0d7; }
  .review-platform-button[data-review-platform="bbb"].is-active { background:#075a9c; }
  .review-platform-button[data-review-platform="houzz"].is-active { background:#52ba29; }
  .rating-platform-card { container-type:inline-size; display:grid; grid-template-columns:minmax(52px,32%) minmax(0,1fr); column-gap:clamp(8px,5cqw,16px); row-gap:7px; align-content:center; align-items:center; justify-items:start; padding:clamp(14px,8cqw,24px); background:linear-gradient(180deg,#fff,#f7fcfe); }
  .review-platform-brand { grid-column:1; grid-row:1 / 5; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:clamp(5px,3cqw,8px); align-self:center; width:100%; min-width:0; }
  .review-platform-mark { width:clamp(40px,19cqw,52px); height:clamp(40px,19cqw,52px); display:grid; place-items:center; border-radius:clamp(11px,5cqw,15px); color:#fff; background:#d32323; font-size:clamp(18px,8.5cqw,23px); line-height:1; font-weight:950; letter-spacing:-.04em; box-shadow:0 8px 18px rgba(23,58,76,.14); }
  .review-platform-logo { width:min(104px,100%); height:auto; max-width:100%; display:block; }
  .review-platform-name { max-width:100%; color:var(--navy-deep); font-size:clamp(13px,5.5cqw,17px); line-height:1; font-weight:950; text-align:center; }
  .review-platform-mark[hidden],.review-platform-logo[hidden],.review-platform-name[hidden] { display:none !important; }
  .review-yelp-lockup { display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; min-height:72px; }
  .review-yelp-lockup[hidden] { display:none; }
  .review-yelp-lockup img { width:34px; height:auto; display:block; }
  .review-yelp-wordmark { margin-top:3px; color:#000; font-family:"Arial Rounded MT Bold",Arial,sans-serif; font-size:clamp(26px,13cqw,36px); line-height:.9; font-weight:900; letter-spacing:0; }
  .platform-google .review-platform-mark { background:#4285f4; }
  .platform-google .review-platform-logo { width:min(58px,100%); height:auto; max-height:58px; object-fit:contain; }
  .platform-thumbtack .review-platform-mark { background:#1aa0d7; }
  .platform-bbb .review-platform-mark { background:#075a9c; font-size:14px; letter-spacing:0; }
  .platform-houzz .review-platform-mark { background:#52ba29; }
  .rating-platform-card .review-score { grid-column:2; }
  .rating-platform-card .review-score { font-size:clamp(18px,8cqw,22px); }
  .rating-platform-card .review-stars { grid-column:2; max-width:100%; font-size:clamp(20px,8.5cqw,30px); letter-spacing:0; }
  .rating-platform-card .review-meta { grid-column:2; max-width:100%; font-size:clamp(10px,4.5cqw,12px); white-space:normal; }
  .review-grid.is-switching .rating-card,.review-grid.is-switching .review-card { animation:review-panel-in .34s ease both; }
  .review-grid.is-switching .review-card:nth-child(2) { animation-delay:.03s; }
  .review-grid.is-switching .review-card:nth-child(3) { animation-delay:.06s; }
  .review-grid.is-switching .review-card:nth-child(4) { animation-delay:.09s; }
  @keyframes review-panel-in {
    from { opacity:.35; transform:translateY(7px); }
    to { opacity:1; transform:translateY(0); }
  }
  .review-card { padding:24px; }
  .review-card .stars { font-size:15px; }
  .review-card p { color:#4e6675; line-height:1.6; margin:12px 0; font-weight:450; }
  .review-card b { color:var(--navy-deep); }
  .services { background:linear-gradient(180deg,#f4fbfe,#fff); }
  .service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
  .service-card { padding:26px; position:relative; overflow:hidden; min-height:302px; display:flex; flex-direction:column; }
  .service-card:after { content:""; position:absolute; right:-46px; top:-46px; width:124px; height:124px; border-radius:50%; opacity:.12; background:var(--accent); }
  .service-icon { width:56px; height:56px; border-radius:17px; display:grid; place-items:center; background:var(--soft); color:var(--accent); font-size:28px; margin-bottom:18px; }
  .service-card h3 { margin-bottom:8px; }
  .service-card p { color:#536b7a; line-height:1.5; font-weight:500; margin-bottom:15px; }
  .service-card ul { margin:0; padding-left:18px; color:#5d7280; line-height:1.8; font-size:14px; font-weight:500; }
  .service-card .service-schedule-item { margin-top:2px; }
  .service-card .service-schedule-note { display:inline-block; width:max-content; max-width:100%; padding:5px 8px; border:1px solid #d5eaf3; border-radius:6px; background:#f0f8fc; color:#4f6f7e; font-size:11px; font-weight:650; line-height:1.3; }
  .service-card .mini-cta { margin-top:auto; padding-top:18px; color:var(--red); font-weight:950; }
  .services-page-list { padding-top:72px; }
  .service-stack { grid-template-columns:1fr; max-width:1020px; margin:0 auto; gap:20px; }
  .service-detail-card { min-height:0; padding:28px; gap:22px; }
  .service-detail-card:after { right:-34px; top:-54px; width:146px; height:146px; opacity:.1; }
  .service-detail-heading { display:grid; grid-template-columns:72px minmax(0,1fr); gap:20px; align-items:start; position:relative; z-index:1; }
  .service-detail-heading .service-icon { margin:0; width:64px; height:64px; border-radius:18px; }
  .service-detail-heading p { max-width:820px; margin:8px 0 0; font-size:16px; line-height:1.58; font-weight:400; }
  .service-description-toggle { display:none; }
  .service-detail-content { display:grid; grid-template-columns:1fr; gap:18px; border-top:1px solid #e0edf3; padding-top:18px; position:relative; z-index:1; }
  .service-detail-content h4 { margin:0 0 8px; color:var(--navy-deep); font-size:15px; line-height:1.2; letter-spacing:0; }
  .service-detail-content ul { font-size:14px; line-height:1.65; }
  .service-list-two-column { columns:2; column-gap:46px; }
  .service-list-two-column li { break-inside:avoid; }
  .service-card .service-disclaimer { position:relative; z-index:1; margin:-4px 0 0; padding-top:14px; border-top:1px solid #e0edf3; color:#536b7a; font-size:13px; line-height:1.45; font-weight:400; }
  .insurance { background:#fff; }
  .insurance-wrap { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:stretch; }
  .dark-card { background:linear-gradient(135deg,#173347,#0e2635); color:#fff; border-radius:28px; padding:36px; box-shadow:var(--shadow); }
  .dark-card .eyebrow { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.14); color:#c9edf8; }
  .dark-card h2 { color:#fff; margin:16px 0 16px; }
  .dark-card p { color:#cfe1ea; line-height:1.65; font-weight:450; }
  .claim-list { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:26px; }
  .claim-list span { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.11); border-radius:14px; padding:13px; font-size:14px; font-weight:600; color:#fff; }
  .report-card { background:#fff; border:1px solid #dcebf1; border-radius:28px; box-shadow:var(--soft-shadow); padding:26px; display:grid; gap:18px; position:relative; overflow:hidden; }
  .report-card:before { content:""; position:absolute; inset:0 0 auto; height:88px; background:linear-gradient(90deg,#eff9fc,#fff); }
  .report-title { position:relative; display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
  .report-title b { font-size:22px; color:var(--navy-deep); }
  .status { display:inline-flex; align-items:center; gap:7px; color:#0c8c62; background:#e9f8ee; border-radius:999px; padding:8px 12px; font-size:12px; font-weight:950; }
  .report-visual { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
  .report-visual img { width:100%; height:236px; object-fit:cover; object-position:center; border-radius:18px; border:1px solid #dcebf1; background:#f7fcfe; filter:brightness(1.12) saturate(.72) contrast(.88); opacity:.78; }
  .doc-lines { align-self:start; min-height:236px; background:#f7fcfe; border:1px solid #dcebf1; border-radius:18px; padding:16px; }
  .doc-checklist { list-style:none; display:grid; gap:8px; margin:12px 0 0; padding:0; color:#385263; font-size:14px; font-weight:600; }
  .doc-checklist li { display:flex; align-items:center; gap:9px; line-height:1.25; }
  .doc-checklist li:before { content:"✓"; flex:0 0 20px; width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:#e9f8ee; color:#0c8c62; font-size:13px; font-weight:950; }
  .line { height:10px; border-radius:999px; background:#d9e9f0; margin:12px 0; }
  .line:nth-child(2) { width:74%; } .line:nth-child(3) { width:88%; } .line:nth-child(4) { width:55%; }
  .mini-meter { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; margin-top:18px; color:#506876; font-size:13px; font-weight:850; }
  .bar { height:10px; border-radius:999px; background:linear-gradient(90deg,#2ab673 0 55%,#f7bd3e 55% 78%,#d71920 78%); }
  .cases { background:linear-gradient(180deg,#fff,#f4fbfe); }
  .case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .case-card { overflow:hidden; }
  .case-card img { width:100%; height:220px; object-fit:cover; display:block; }
  .case-body { padding:22px; }
  .home-projects-heading { display:grid; grid-template-columns:1fr minmax(0,740px) 1fr; align-items:end; gap:20px; margin-bottom:34px; }
  .home-projects-heading .section-header { grid-column:2; margin:0 auto; }
  .home-projects-all-link { grid-column:3; justify-self:end; margin-bottom:7px; color:#19739b; font-size:15px; font-weight:900; white-space:nowrap; }
  .home-projects-all-link:hover { color:var(--red); }
  .home-projects-all-link:focus-visible { outline:3px solid rgba(20,125,184,.28); outline-offset:5px; border-radius:4px; }
  .tags { display:flex; gap:8px; flex-wrap:wrap; margin:14px 0; }
  .tag { display:inline-flex; padding:7px 10px; border-radius:999px; background:#edf8fc; color:#2c5e73; font-size:12px; font-weight:900; }
  .case-body p { color:#587080; line-height:1.55; font-weight:650; }
  .result-row { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:18px; }
  .result { background:#f7fcfe; border:1px solid #dcebf1; border-radius:12px; padding:10px; font-size:12px; font-weight:900; color:#334e5f; }
  .process { background:#fff; }
  .steps-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
  .step-card { padding:24px; min-height:230px; position:relative; }
  .step-num { width:44px; height:44px; border-radius:14px; display:grid; place-items:center; background:#e6f6fb; color:#117aa7; font-weight:950; font-size:18px; margin-bottom:18px; }
  .step-card p { color:#5b7280; line-height:1.55; margin-top:10px; font-weight:500; }
  .sixty { margin-top:30px; display:grid; grid-template-columns:.78fr 1.22fr; gap:24px; }
  .sixty-left { background:var(--navy); color:#fff; border-radius:24px; padding:28px; box-shadow:var(--shadow); }
  .sixty-left h3 { color:#fff; font-size:28px; }
  .sixty-left p { color:#d3e4eb; line-height:1.6; margin-top:12px; font-weight:450; }
  .sixty-right { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  .doc-feature { background:#fff; border:1px solid #dcebf1; border-radius:18px; padding:18px; box-shadow:var(--soft-shadow); font-weight:600; color:#385263; min-height:86px; }
  .team { background:linear-gradient(180deg,#f4fbfe,#fff); }
  .team-wrap { display:grid; grid-template-columns:.9fr 1.1fr; gap:28px; align-items:center; }
  .team-card { background:#fff; border:1px solid #dcebf1; border-radius:30px; box-shadow:var(--soft-shadow); padding:22px; }
  .team-photo { min-height:330px; border-radius:22px; background:
    linear-gradient(135deg,rgba(16,40,56,.05),rgba(20,125,184,.14)),
    url("../images/safenest-restoration-technician-at-work.jpg") center/cover no-repeat; position:relative; overflow:hidden; }
  .team-photo:after { content:"SAFENEST Bay Area Restoration Team"; position:absolute; left:22px; bottom:22px; background:rgba(16,40,56,.86); color:#fff; padding:12px 16px; border-radius:999px; font-weight:900; font-size:13px; }
  .team-copy h2 { text-align:left; margin-bottom:18px; }
  .team-copy p { color:#4e6675; line-height:1.7; font-size:18px; font-weight:450; margin-bottom:20px; }
  .reassurance { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
  .reassurance div { background:#fff; border:1px solid #dcebf1; border-radius:16px; padding:16px; font-weight:600; color:#334e5f; box-shadow:var(--soft-shadow); }
  .callback { background:#fff; }
  .callback-wrap { display:grid; grid-template-columns:.95fr 1.05fr; gap:28px; background:linear-gradient(135deg,#f8fdff,#fff); border:1px solid #dcebf1; border-radius:30px; box-shadow:var(--shadow); padding:34px; align-items:center; }
  .callback-copy h2 { text-align:left; margin-bottom:12px; }
  .callback-copy p { color:#587080; line-height:1.65; font-weight:450; font-size:17px; }
  .callback-points { display:grid; gap:11px; margin-top:18px; color:#3b5667; font-weight:600; }
  form { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  label { display:grid; gap:7px; color:#445d6d; font-size:12px; font-weight:950; text-transform:uppercase; letter-spacing:.05em; }
  input, textarea, select { width:100%; border:1px solid #cfe0e8; border-radius:12px; padding:14px 14px; font:inherit; color:#263947; background:#fff; outline:none; }
  textarea { min-height:116px; resize:none; grid-column:1/-1; }
  .form-wide { grid-column:1/-1; }
  .form-submit { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:16px; }
  .form-submit small { color:#6b7f8b; font-weight:450; line-height:1.45; }
  .faq-area { background:linear-gradient(180deg,#f4fbfe,#fff); }
  .faq-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
  .faq-card { padding:22px; }
  .faq-card h3 { font-size:20px; margin-bottom:10px; }
  .faq-card p { color:#587080; line-height:1.6; font-weight:450; }
  .service-area { background:#fff; }
  .area-wrap { display:grid; grid-template-columns:1fr .86fr; gap:30px; align-items:center; }
  .area-wrap .lead { font-weight:400; }
  .cities { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
  .city { padding:10px 15px; border:1px solid #ccdfe8; border-radius:999px; background:#fff; color:#365265; font-weight:850; font-size:14px; }
  .city-asterisk { font-weight:400 !important; }
  .service-area-legend { margin-top:12px; color:#587080; font-size:14px; font-weight:650; line-height:1.45; }
  .map-card { background:#edf8fc; border:1px solid #d1e9f2; border-radius:30px; min-height:320px; position:relative; overflow:hidden; box-shadow:var(--soft-shadow); }
  .service-map-card { min-height:auto; background:#f7fcfe; }
  .service-map { display:block; width:100%; height:auto; border-radius:inherit; }
  .map-label { position:absolute; left:24px; bottom:22px; padding:12px 16px; border-radius:14px; background:rgba(255,255,255,.86); color:var(--navy); font-weight:900; font-size:15px; line-height:1; box-shadow:0 12px 24px rgba(16,40,56,.12); backdrop-filter:blur(4px); }
  .map-city circle { fill:var(--red); stroke:#fff; stroke-width:3; filter:drop-shadow(0 5px 8px rgba(215,25,32,.24)); }
  .map-city text { fill:#284454; font-size:11px; font-weight:900; paint-order:stroke; stroke:#fff; stroke-width:4px; stroke-linejoin:round; }
  .map-water-label { fill:#6f9eb1; font-size:13px; font-weight:900; opacity:.75; letter-spacing:.03em; }
  .map-key rect { fill:#fff; stroke:#d8eaf1; }
  .map-key text:first-of-type { fill:var(--navy-deep); font-size:18px; font-weight:950; }
  .map-key text:last-of-type { fill:#587080; font-size:13px; font-weight:800; }
  .final-cta { background:linear-gradient(135deg,var(--red),#b50f15); color:#fff; padding:34px 0; }
  .final-cta .container { display:flex; align-items:center; justify-content:space-between; gap:24px; }
  .final-cta h2 { color:#fff; margin:0; font-size:34px; }
  .final-cta p { color:#ffe3e4; font-weight:600; margin-top:4px; }
  .final-cta .btn { background:#fff; color:var(--red); box-shadow:0 10px 26px rgba(0,0,0,.18); }
  .footer { background:#354652; color:#bdd3df; border-top:1px solid #e1262f; border-bottom:2px solid #6e18ca; padding:44px 0 30px; font-size:12px; line-height:1.4; }
  .footer .container { width:min(1237px,calc(100% - 108px)); display:grid; grid-template-columns:minmax(240px,.8fr) minmax(580px,1.7fr); align-items:start; gap:34px 64px; }
  .footer b { color:#fff; font-weight:850; }
.footer-copy { display:block; min-width:0; color:#bdd3df; }
.footer-copy > span { display:block; }
.footer-copy-line { white-space:nowrap; }
.footer-about { max-width:390px; color:#bdd3df; font-size:14px; line-height:1.65; }
.footer-about b { display:block; margin-bottom:7px; font-size:18px; }
.footer-links { display:grid; grid-template-columns:minmax(220px,1.35fr) repeat(2,minmax(0,1fr)); align-items:start; gap:26px 38px; color:#bdd3df; font-size:14px; font-weight:400; }
.footer-link-group { display:grid; align-content:start; gap:9px; }
.footer-link-group strong { margin-bottom:3px; color:#fff; font-size:14px; letter-spacing:.045em; text-transform:uppercase; }
.footer-link-group a { width:max-content; max-width:100%; color:#d8e8ef; font-weight:400; line-height:1.35; }
.footer-link-group a:hover,.footer-link-group a:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.footer-explore-links { display:grid; grid-template-columns:repeat(2,minmax(0,max-content)); grid-template-rows:repeat(3,auto); grid-auto-flow:column; gap:9px 24px; align-items:start; }
.footer-meta { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) auto; min-width:0; align-items:center; gap:6px 30px; padding-top:22px; border-top:1px solid rgba(216,232,239,.2); color:#bdd3df; text-align:right; }
.footer-privacy-links { grid-row:1/3; display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px 22px; }
.footer-privacy-link { display:inline-flex; align-items:center; gap:6px; color:#bdd3df; font-weight:400; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }
.footer-privacy-icon { display:block; width:30px; height:14px; flex:0 0 auto; }
.footer-privacy-link:hover { text-decoration-thickness:2px; }
.footer-certifications,.footer-license { display:block; justify-self:end; white-space:nowrap; }
.mobile-sticky { display:none; }

  @media (min-width: 981px) and (max-width: 1180px) {
    .brand-copy { display:none; }
  }

  @media (max-width: 980px) {
    html { scroll-padding-top:38px; }
    .container { width:min(100% - 32px, 760px); }
    .top-strip { position:sticky; top:0; z-index:140; }
    .top-strip .container { height:38px; padding:0; justify-content:center; }
    .top-strip .container > span:first-child { display:none; }
    .top-strip .pill-small { padding:5px 10px; font-size:12px; }
    .header { position:relative; z-index:100; overflow:visible; }
    .header .container { position:relative; height:auto; min-height:155px; padding:9px 0; gap:10px; }
    .brand-copy, .header nav, .phone-block { display:none; }
    .brand { position:absolute; left:50%; min-width:auto; transform:translateX(-50%); }
    .brand img { width:271px; }
    .mobile-nav { display:block; margin-left:0; margin-right:auto; }
    .mobile-nav summary {
      min-height:46px;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:7px;
      padding:0 13px;
      border:1px solid #cbdde5;
      border-radius:999px;
      background:#fff;
      color:var(--navy-deep);
      font-size:14px;
      font-weight:900;
      cursor:pointer;
      box-shadow:0 7px 18px rgba(19,43,57,.08);
    }
    .mobile-nav-label { display:none; }
    .mobile-nav summary { width:46px; padding:0; }
    .mobile-nav summary span[aria-hidden="true"] { font-size:20px; line-height:1; transform:translateY(-1px); }
    .mobile-nav summary:focus-visible { outline:3px solid rgba(20,125,184,.3); outline-offset:3px; }
    .mobile-nav[open] summary { border-color:#9fc6d7; background:#eef8fc; }
    .mobile-nav-panel {
      position:absolute;
      left:0;
      right:0;
      top:calc(100% + 6px);
      z-index:120;
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:8px;
      padding:12px;
      border:1px solid #d7e7ee;
      border-radius:18px;
      background:#fff;
      box-shadow:0 20px 45px rgba(19,43,57,.2);
    }
    .mobile-nav-panel a {
      min-height:48px;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:10px 12px;
      border-radius:12px;
      background:#f4fbfe;
      color:var(--navy-deep);
      font-size:14px;
      font-weight:850;
    }
    .mobile-nav-panel a[aria-current="page"] { background:#e7f5fb; color:#0d6f9b; box-shadow:inset 0 0 0 1px #c6e7f4; }
    .mobile-nav-panel .mobile-nav-emergency { grid-column:1 / -1; background:var(--red); color:#fff; }
    .header-actions { margin-left:auto; }
    .header-actions .btn { width:48px; height:48px; min-height:48px; padding:0; gap:0; font-size:0; }
    .header-actions .btn { position:relative; }
    .header-actions .btn .phone-icon { width:20px; height:20px; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); }
    .btn { padding:12px 16px; font-size:14px; }
    .hero { padding:28px 0 30px; }
    .hero-badges { flex-wrap:wrap; width:auto; }
    .hero-panorama { display:none; }
    .hero-grid,.insurance-wrap,.team-wrap,.callback-wrap,.area-wrap,.sixty { grid-template-columns:1fr; }
    h1 { font-size:clamp(30.8px,9.57vw,48.4px); }
    h2 { font-size:32px; }
    .section-header .section-title { font-size:32px; }
    .lead { font-size:17px; }
    .hero-lead-line { white-space:normal; }
    .microcopy-line { display:inline; white-space:normal; }
    .hero-visual { min-height:480px; }
    .photo-card { display:block; inset:0 0 70px 0; }
    .photo-card img { object-position:72% center; }
    .availability-card { top:18px; left:12px; width:235px; }
    .emergency-panel { height:auto; }
    .first-hour { right:12px; left:12px; bottom:0; width:auto; height:auto; }
    .trust-grid,.review-grid,.service-grid,.case-grid,.steps-grid,.sixty-right,.faq-grid { grid-template-columns:1fr; }
    .home-projects-heading { grid-template-columns:1fr; justify-items:center; }
    .home-projects-heading .section-header { grid-column:1; }
    .home-projects-all-link { grid-column:1; justify-self:end; margin:0; }
    .services-page-list { padding-top:54px; }
    .service-stack { max-width:100%; }
    .service-detail-card { padding:22px; gap:18px; }
    .service-detail-heading { grid-template-columns:58px minmax(0,1fr); gap:14px; }
    .service-detail-heading .service-icon { width:54px; height:54px; border-radius:16px; font-size:24px; }
    .service-detail-heading p { font-size:15px; line-height:1.55; }
    .service-detail-content { gap:16px; }
    .service-list-two-column { columns:1; }
    .trust-item { justify-content:flex-start; }
    .claim-list,.reassurance,form { grid-template-columns:1fr; }
    .form-submit { flex-direction:column; align-items:stretch; }
    .final-cta .container,.footer .container { flex-direction:column; text-align:center; }
    .footer { padding:26px 0 24px; }
    .footer .container { width:min(100% - 40px,760px); grid-template-columns:1fr; gap:26px; text-align:left; }
    .footer-copy { width:100%; max-width:100%; }
    .footer-copy-line { white-space:normal; }
    .footer-about { max-width:620px; }
    .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 34px; }
    .footer-meta { grid-column:1; grid-template-columns:1fr; justify-items:start; text-align:left; }
    .footer-privacy-links { justify-content:flex-start; }
    .footer-privacy-links { grid-row:auto; }
    .footer-certifications,.footer-license { justify-self:start; white-space:normal; }
    .mobile-sticky {
      display:flex;
      position:fixed;
      left:0;
      right:0;
      bottom:0;
      z-index:99;
      gap:10px;
      padding:10px 14px;
      background:linear-gradient(180deg,rgba(255,255,255,.48),rgba(241,249,252,.41));
      border-top:1px solid rgba(255,255,255,.84);
      box-shadow:0 -1px 0 rgba(153,190,205,.24),0 -10px 30px rgba(16,40,56,.14);
      -webkit-backdrop-filter:blur(20px) saturate(180%);
      backdrop-filter:blur(20px) saturate(180%);
    }
    .mobile-sticky a { flex:1; }
    .review-platform-button { min-height:44px; }
    .subpage-article-link { min-height:44px; display:flex; align-items:center; }
    #project-types .subpage-article-tags .project-tag { min-height:44px; padding:9px 11px; font-size:12px; }
    .price-list-jump { min-height:44px; display:inline-flex; align-items:center; }
    body { padding-bottom:74px; }
  }

  @media (max-width: 560px) {
    .section { padding:58px 0; }
    .hero-badges { gap:7px; }
    .hero-badge { padding:8px 11px; font-size:12px; }
    .hero .cta-row { margin:22px 0 40px; }
    .footer-privacy-links { flex-direction:column; align-items:flex-start; gap:8px; }
    .footer-links { grid-template-columns:1fr; gap:24px; }
    .review-platform-switcher { gap:8px; margin-bottom:24px; }
    .review-platform-button { min-width:calc(50% - 4px); padding:11px 14px; }
    .review-platform-button:last-child { min-width:calc(50% - 4px); }
    .rating-platform-card { grid-template-columns:74px minmax(0,1fr); padding:22px 18px; }
    .review-platform-brand { width:74px; }
    .review-platform-mark { width:48px; height:48px; }
  }

  @media (max-width: 360px) {
    .brand img { width:228px; }
    .hero-badge { font-size:11px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .review-platform-button { transition:none; }
    .review-grid.is-switching .rating-card,.review-grid.is-switching .review-card { animation:none; }
  }

button.btn { font: inherit; cursor: pointer; }

/* Subpage layouts built from the homepage visual system. */
.subpage-main { background:#fff; }
.subpage-hero {
  position:relative;
  overflow:hidden;
  padding:24px 0 26px;
  background:#fff;
  color:var(--navy-deep);
  border-bottom:1px solid var(--line);
}

/* Privacy Policy */
.privacy-page { background:#f7fcfe; }
.privacy-hero {
  position:relative;
  overflow:hidden;
  padding:68px 0 62px;
  text-align:center;
  background:
    radial-gradient(circle at 16% 18%, rgba(147,187,227,.23), transparent 29%),
    radial-gradient(circle at 86% 70%, rgba(215,25,32,.08), transparent 24%),
    linear-gradient(180deg,#fff 0%,#edf8fc 100%);
  border-bottom:1px solid var(--line);
}
.privacy-hero .container { max-width:850px; }
.privacy-hero h1 { margin:10px 0 14px; color:var(--navy); font-size:clamp(42px,6vw,68px); line-height:1; letter-spacing:-.045em; }
.privacy-hero .lead { max-width:760px; margin:0 auto; color:#536a78; font-size:19px; line-height:1.65; }
.privacy-updated { display:inline-flex; margin:24px 0 0; padding:9px 14px; border:1px solid #cfe1e9; border-radius:999px; background:rgba(255,255,255,.86); color:#526b78; font-size:13px; }
.privacy-summary { padding:0 0 14px; background:linear-gradient(180deg,#edf8fc 0%,#f7fcfe 100%); }
.privacy-summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; transform:translateY(-1px); }
.privacy-summary article { position:relative; min-height:210px; padding:28px; border:1px solid #d9eaf1; border-radius:18px; background:#fff; box-shadow:var(--soft-shadow); }
.privacy-summary-number { color:var(--red); font-size:12px; font-weight:900; letter-spacing:.14em; }
.privacy-summary h2 { margin:14px 0 9px; color:var(--navy); font-size:22px; }
.privacy-summary p { margin:0; color:#607684; font-size:14px; line-height:1.7; }
.privacy-body { padding-top:54px; background:#f7fcfe; }
.privacy-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:44px; align-items:start; }
.privacy-toc { position:sticky; top:132px; display:flex; flex-direction:column; gap:3px; padding:20px; border:1px solid #d9e8ef; border-radius:16px; background:#fff; box-shadow:var(--soft-shadow); }
.privacy-toc strong { margin:0 0 10px; color:var(--navy); font-size:14px; text-transform:uppercase; letter-spacing:.08em; }
.privacy-toc a { padding:7px 9px; border-radius:8px; color:#5d7482; font-size:13px; line-height:1.35; }
.privacy-toc a.privacy-toc-sub { padding-left:22px; font-size:12px; }
.privacy-toc a:hover { color:var(--navy); background:#eef8fc; }
.privacy-content { min-width:0; padding:0 0 42px; }
.privacy-section { position:relative; scroll-margin-top:132px; padding:34px 38px; border:1px solid #dceaf0; border-radius:20px; background:#fff; box-shadow:0 10px 28px rgba(19,43,57,.05); }
.privacy-section + .privacy-section { margin-top:18px; }
.privacy-section-label { color:var(--red); font-size:12px; font-weight:900; letter-spacing:.14em; }
.privacy-section h2 { margin:8px 0 16px; color:var(--navy); font-size:29px; line-height:1.15; letter-spacing:-.025em; }
.privacy-section h3 { color:var(--navy); }
.privacy-section p,
.privacy-section li { color:#526a78; font-size:15px; line-height:1.78; }
.privacy-section p { margin:0 0 14px; }
.privacy-section p:last-child { margin-bottom:0; }
.privacy-section ul { margin:12px 0 4px; padding-left:22px; }
.privacy-section li + li { margin-top:8px; }
.privacy-section a { color:#0c6f9f; font-weight:800; text-decoration:underline; text-underline-offset:2px; }
.privacy-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:22px 0; }
.privacy-data-card { padding:20px; border:1px solid #dbeaf0; border-radius:14px; background:#f7fcfe; }
.privacy-data-card h3 { margin:0 0 8px; font-size:16px; }
.privacy-data-card p { margin:0; font-size:14px; line-height:1.65; }
.privacy-callout { margin-top:22px; padding:22px 24px; border-left:4px solid var(--red); border-radius:0 14px 14px 0; background:#fff5f5; }
.privacy-callout h3 { margin:0 0 8px; font-size:17px; }
.privacy-callout p { margin:0; font-size:14px; }
.privacy-callout p + p { margin-top:10px; }
.privacy-inspection-callout { border-left-color:var(--blue); background:#eef8fc; }
.privacy-choice-callout { margin:0 0 22px; border-left-color:var(--blue); background:#eef8fc; }
.privacy-request-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:22px 0; padding:26px; border:1px solid #d4e5ed; border-radius:16px; background:#f7fcfe; }
.privacy-request-form h3,
.privacy-request-form .form-wide,
.privacy-request-form .form-submit { grid-column:1 / -1; }
.privacy-request-form h3 { margin:0; font-size:22px; }
.privacy-request-form label { text-transform:none; letter-spacing:0; }
.privacy-request-form label:has(input[type="checkbox"]) { display:flex; align-items:flex-start; gap:10px; }
.privacy-request-form input[type="checkbox"] { width:20px; min-height:20px; flex:0 0 20px; }
.privacy-review-rights-callout { border-left-color:var(--green); background:#edf9f4; }
.privacy-contact-card { margin-top:18px; padding:24px 26px; border:1px solid #d4e5ed; border-radius:16px; background:linear-gradient(135deg,#edf8fc,#fff); }
.privacy-contact-card h3 { margin:0 0 4px; font-size:22px; }
.privacy-contact-card p { margin:5px 0; }

@media (max-width: 980px) {
  .privacy-hero { padding:48px 0 46px; }
  .privacy-summary-grid { grid-template-columns:1fr; }
  .privacy-summary article { min-height:0; }
  .privacy-layout { grid-template-columns:1fr; gap:22px; }
  .privacy-toc { position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .privacy-toc strong { grid-column:1 / -1; }
}

@media (max-width: 700px) {
  .privacy-hero { padding:38px 0 34px; }
  .privacy-hero h1 { font-size:40px; }
  .privacy-hero .lead { font-size:16px; }
  .privacy-summary article { padding:23px; }
  .privacy-body { padding-top:34px; }
  .privacy-toc {
    position:relative;
    display:flex;
    flex-direction:row;
    gap:8px;
    margin-right:-16px;
    padding:12px 16px 12px 14px;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
    border-radius:16px 0 0 16px;
  }
  .privacy-toc strong { display:none; }
  .privacy-toc a {
    flex:0 0 auto;
    min-height:44px;
    display:flex;
    align-items:center;
    padding:9px 12px;
    scroll-snap-align:start;
    white-space:nowrap;
    border:1px solid #d9e8ef;
    border-radius:999px;
    background:#f7fcfe;
  }
  .privacy-section { padding:27px 22px; border-radius:16px; }
  .privacy-section h2 { font-size:25px; }
  .privacy-data-grid { grid-template-columns:1fr; }
  .privacy-request-form { grid-template-columns:1fr; padding:20px; }
}
.subpage-hero:before {
  display:none;
}
.subpage-hero-grid {
  position:relative;
  z-index:1;
  display:block;
}
.subpage-hero-copy {
  max-width:880px;
  margin:0 auto;
  text-align:center;
}
.subpage-hero-copy h1 {
  max-width:1040px;
  margin:0 auto 10px;
  color:var(--navy-deep);
  font-size:34px;
  line-height:1.08;
  letter-spacing:-.048em;
}
.subpage-hero-copy h1 .red { color:var(--red); display:inline; }
.subpage-hero-copy .lead {
  display:none;
}
.subpage-hero .cta-row { justify-content:center; margin:16px 0 0; }
.subpage-hero .btn-outline {
  background:#fff;
  border-color:#cbdde5;
  color:var(--navy);
}
.subpage-hero .btn-soft {
  background:#e9f8fc;
  color:#17394a;
}
.subpage-hero .quick-proof,
.subpage-hero .microcopy,
.subpage-badges,
.subpage-media {
  display:none;
}
.subpage-badges { display:none; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.subpage-badge {
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff;
  border:1px solid #d9edf5;
  border-radius:999px;
  padding:7px 11px;
  color:#315568;
  font-size:12px;
  font-weight:900;
  box-shadow:0 6px 18px rgba(16,40,56,.05);
}
.subpage-media {
  position:relative;
  min-height:286px;
}
.subpage-photo-card {
  position:absolute;
  inset:22px 0 18px 24px;
  border-radius:20px;
  overflow:hidden;
  border:1px solid #d9ebf2;
  box-shadow:var(--shadow);
  background:#dfeff5;
}
.subpage-photo-card img {
  width:100%;
  height:100%;
  min-height:230px;
  object-fit:cover;
  display:block;
}
.subpage-photo-card:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(16,40,56,.02),rgba(16,40,56,.22));
}
.subpage-floating-card {
  position:absolute;
  left:0;
  top:0;
  width:min(290px,82%);
  background:#fff;
  border:1px solid #dbeaf1;
  border-radius:16px;
  padding:12px 14px;
  box-shadow:var(--shadow);
}
.subpage-floating-card strong {
  display:block;
  color:var(--navy-deep);
  font-size:18px;
  line-height:1.08;
  letter-spacing:-.03em;
  margin-bottom:5px;
}
.subpage-floating-card p {
  color:#667987;
  font-size:12px;
  line-height:1.35;
  font-weight:650;
}
.subpage-stat-card {
  position:absolute;
  right:16px;
  bottom:0;
  width:min(320px,84%);
  background:var(--navy-deep);
  color:#fff;
  border-radius:18px;
  padding:14px;
  box-shadow:var(--shadow);
}
.subpage-stat-card h3 { color:#fff; margin-bottom:7px; font-size:17px; }
.subpage-stat-list { display:grid; gap:10px; }
.subpage-stat-list span {
  display:flex;
  justify-content:space-between;
  gap:14px;
  color:#cfe4ee;
  font-size:12px;
  font-weight:750;
}
.subpage-stat-list b { color:#fff; }
.subpage-proof-row {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.subpage-proof-item {
  background:#fff;
  border:1px solid #dcebf1;
  border-radius:18px;
  padding:18px;
  box-shadow:var(--soft-shadow);
}
.subpage-proof-item strong {
  display:block;
  color:var(--navy-deep);
  font-size:25px;
  line-height:1;
  letter-spacing:-.04em;
}
.subpage-proof-item span {
  display:block;
  color:#587080;
  font-size:13px;
  line-height:1.45;
  font-weight:800;
  margin-top:7px;
}
.subpage-split {
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:28px;
  align-items:center;
}
.subpage-panel {
  background:#fff;
  border:1px solid #dcebf1;
  border-radius:24px;
  box-shadow:var(--soft-shadow);
  padding:28px;
}
.subpage-panel p {
  color:#587080;
  line-height:1.65;
  font-weight:650;
  margin-top:12px;
}
.subpage-dark-panel {
  background:linear-gradient(135deg,#173347,#0e2635);
  color:#fff;
  border-radius:28px;
  padding:34px;
  box-shadow:var(--shadow);
}
.subpage-dark-panel h2,
.subpage-dark-panel h3 { color:#fff; }
.subpage-dark-panel p {
  color:#cfe1ea;
  line-height:1.65;
  font-weight:650;
  margin-top:12px;
}
.subpage-check-list {
  display:grid;
  gap:12px;
  margin:20px 0 0;
  padding:0;
  list-style:none;
}
.subpage-check-list li {
  display:grid;
  grid-template-columns:24px 1fr;
  gap:10px;
  color:#3b5667;
  font-weight:850;
  line-height:1.45;
}
.subpage-check-list li:before {
  content:"✓";
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#eaf8ee;
  color:#10865d;
  font-weight:950;
}
.subpage-grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.subpage-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.subpage-grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.subpage-image-card {
  overflow:hidden;
  background:#fff;
  border:1px solid #dcebf1;
  border-radius:18px;
  box-shadow:var(--soft-shadow);
}
.subpage-image-card img {
  width:100%;
  height:218px;
  object-fit:cover;
  display:block;
}
.subpage-image-card div { padding:22px; }
.subpage-image-card p {
  color:#587080;
  line-height:1.55;
  font-weight:650;
  margin-top:10px;
}
.subpage-emergency-strip {
  background:linear-gradient(135deg,#fff,#f7fcfe);
  border:1px solid #dcebf1;
  border-radius:28px;
  box-shadow:var(--shadow);
  padding:30px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
}
.subpage-emergency-strip p {
  color:#587080;
  line-height:1.6;
  font-weight:650;
  margin-top:8px;
}
.subpage-process-list {
  display:grid;
  gap:14px;
}
.subpage-process-item {
  display:grid;
  grid-template-columns:54px 1fr;
  gap:16px;
  align-items:start;
  background:#fff;
  border:1px solid #dcebf1;
  border-radius:18px;
  padding:18px;
  box-shadow:var(--soft-shadow);
}
.subpage-process-item b {
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:16px;
  background:#e6f6fb;
  color:#117aa7;
  font-size:18px;
  font-weight:950;
}
.subpage-process-item p {
  color:#587080;
  line-height:1.55;
  font-weight:650;
  margin-top:6px;
}
.subpage-article-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.projects-page .section-header .lead {
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.subpage-article-card {
  background:#fff;
  border:1px solid #dcebf1;
  border-radius:18px;
  box-shadow:var(--soft-shadow);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.subpage-article-card img,
.subpage-article-placeholder {
  width:100%;
  height:190px;
  object-fit:cover;
}
.subpage-article-card img { display:block; }
.subpage-article-media {
  display:block;
  overflow:hidden;
  background:#eaf4f8;
}
.subpage-article-media img {
  transition:transform .35s ease;
}
.subpage-article-card:hover .subpage-article-media img {
  transform:scale(1.025);
}
.project-card-media {
  display:block;
  overflow:hidden;
  background:#eaf4f8;
}
.project-card-media img {
  transition:transform .35s ease;
}
.subpage-article-card:hover .project-card-media img {
  transform:scale(1.025);
}
.subpage-article-placeholder {
  display:grid;
  place-items:center;
  background:
    linear-gradient(135deg,rgba(20,125,184,.12),rgba(215,25,32,.08)),
    repeating-linear-gradient(135deg,#f7fcfe 0 12px,#eef8fc 12px 24px);
  border-bottom:1px solid #dcebf1;
}
.subpage-article-placeholder span {
  display:grid;
  place-items:center;
  width:86px;
  height:86px;
  border-radius:50%;
  background:#fff;
  border:1px solid #d9e9f0;
  color:#365265;
  font-size:13px;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
  box-shadow:var(--soft-shadow);
}
.subpage-article-body {
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1;
}
.subpage-meta-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.subpage-meta {
  color:#19739b;
  font-size:12px;
  font-weight:950;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.subpage-article-date {
  flex:0 0 auto;
  color:#6c7f8c;
  font-size:12px;
  font-weight:850;
}
.subpage-article-body p {
  color:#587080;
  line-height:1.55;
  font-weight:650;
}
.subpage-article-tags {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.subpage-article-tags span,
.subpage-article-tags .project-tag {
  padding:4px 6px;
  border:1px solid #e3edf1;
  border-radius:999px;
  background:#fbfdfe;
  color:#425d6e;
  font-family:inherit;
  font-size:12px;
  line-height:1.2;
  font-weight:400;
}
.subpage-article-tags .project-tag {
  appearance:none;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease;
}
.subpage-article-tags .project-tag:hover {
  border-color:#cbdde5;
  background:#f8fbfc;
  color:#425d6e;
}
.subpage-article-tags .project-tag:focus-visible {
  outline:3px solid rgba(20,125,184,.3);
  outline-offset:2px;
}
.subpage-article-tags .project-tag[aria-pressed="true"] {
  border-color:#197da9;
  background:#197da9;
  color:#fff;
}
.project-sort-status {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 20px;
  padding:13px 16px;
  border:1px solid #cde4ed;
  border-radius:14px;
  background:#f3fbfe;
  color:#425d6e;
  font-size:14px;
  font-weight:700;
}
.project-sort-status[hidden] {
  display:none;
}
.project-sort-reset {
  appearance:none;
  padding:8px 12px;
  border:1px solid #9fcbdc;
  border-radius:999px;
  background:#fff;
  color:#19739b;
  font-family:inherit;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}
.project-sort-reset:hover {
  border-color:#197da9;
  background:#edf9fd;
}
.subpage-article-card.project-sort-match {
  border-color:#82c3da;
  box-shadow:0 16px 36px rgba(20,125,184,.16);
}
.subpage-article-link {
  margin-top:auto;
  color:var(--red);
  font-weight:950;
}
.blog-post-hero {
  padding:34px 0 28px;
  background:linear-gradient(180deg,#fff 0,#f8fcfe 100%);
}
.blog-back-link {
  display:inline-flex;
  margin-bottom:20px;
  color:#19739b;
  font-size:13px;
  font-weight:850;
}
.blog-post-meta {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:12px;
}
.blog-post-meta span,
.blog-post-meta time {
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 10px;
  border:1px solid #d7e7ee;
  border-radius:999px;
  background:#fff;
  color:#425d6e;
  font-size:13px;
  font-weight:850;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.blog-post-hero h1 {
  max-width:900px;
  margin:0 0 12px;
  color:#2e414d;
  font-size:32px;
  line-height:1.15;
  letter-spacing:-.03em;
}
.blog-post-hero .lead {
  max-width:720px;
  margin:0;
  color:#587080;
  font-size:16px;
  font-weight:450;
  line-height:1.68;
}
.blog-post-body {
  background:linear-gradient(180deg,#f8fcfe 0,#fff 100%);
  padding:0 0 76px;
}
.blog-post-layout {
  display:grid;
  grid-template-columns:minmax(0,44.75%) minmax(0,1fr);
  gap:24px;
  align-items:start;
}
.blog-post-content {
  width:100%;
  max-width:none;
  margin:0;
  padding:28px 30px;
  border:1px solid #dcebf1;
  border-radius:18px;
  background:#fff;
  box-shadow:var(--soft-shadow);
}
.blog-post-content p,
.blog-post-content li {
  color:#587080;
  font-size:16px;
  line-height:1.68;
  font-weight:450;
}
.blog-post-content p {
  margin:0 0 14px;
}
.blog-post-content h2 {
  margin:30px 0 18px;
  color:#2e414d;
  font-size:32px;
  line-height:1.15;
  letter-spacing:-.03em;
}
.blog-post-content ul {
  margin:0 0 22px;
  padding-left:22px;
}
.article-legal-disclaimer {
  margin:0 0 24px;
  padding:15px 17px;
  border:1px solid #f2bd66;
  border-left:5px solid #c2410c;
  border-radius:10px;
  background:#fff7ed;
  color:#713014;
  font-size:14px;
  font-weight:500;
  line-height:1.55;
}
.article-legal-disclaimer strong {
  color:#713014;
  font-weight:800;
}
.article-legal-disclaimer-bottom {
  margin:30px 0 24px;
}
.blog-post-aside {
  position:sticky;
  top:106px;
}
.blog-post-image {
  overflow:hidden;
  border:1px solid #dcebf1;
  border-radius:18px;
  background:#eaf4f8;
  box-shadow:var(--soft-shadow);
}
.blog-post-image img {
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.blog-post-cta-card {
  margin-top:18px;
  padding:22px;
  border:1px solid #dcebf1;
  border-radius:18px;
  background:#f7fcfe;
  box-shadow:var(--soft-shadow);
}
.blog-post-cta-card h2 {
  margin:0 0 10px;
  color:#2e414d;
  font-size:22px;
  font-weight:700;
  line-height:1.22;
  letter-spacing:-.02em;
}
.blog-post-cta-card p {
  margin:0 0 16px;
  color:#5f7280;
  font-size:15px;
  line-height:1.56;
  font-weight:450;
}
.blog-post-cta-card .btn {
  width:100%;
}
.blog-post-tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:24px;
}
.blog-post-tags span {
  padding:3px 6px;
  border:1px solid #e3ebef;
  border-radius:999px;
  background:#fbfcfd;
  color:#6d7c86;
  font-size:11px;
  line-height:1.2;
  font-weight:400;
}
#project-types .subpage-article-link {
  color:#2c7898;
  font-size:14px;
  font-weight:750;
}
#project-types .subpage-article-link:hover {
  color:#19739b;
}
#articles .subpage-article-link {
  color:#2c7898;
  font-size:14px;
  font-weight:650;
  line-height:1.35;
}
#articles .subpage-article-link:hover {
  color:#19739b;
}
#articles .subpage-article-body {
  padding:24px 22px 22px;
  gap:0;
}
#articles .subpage-meta-row {
  margin-bottom:14px;
}
#articles .subpage-meta {
  color:#2c7898;
  font-size:12px;
  font-weight:600;
  letter-spacing:.045em;
}
#articles .subpage-article-date {
  color:#81909a;
  font-size:12px;
  font-weight:600;
}
#articles .subpage-article-body h3 {
  margin-bottom:14px;
  color:#2e414d;
  font-size:22px;
  font-weight:700;
  line-height:1.22;
  letter-spacing:-.02em;
}
#articles .subpage-article-body p {
  margin-bottom:16px;
  color:#5f7280;
  font-size:15px;
  font-weight:450;
  line-height:1.56;
}
#articles .subpage-article-tags {
  gap:6px;
  margin-bottom:20px;
}
#articles .subpage-article-tags span {
  padding:3px 6px;
  border-color:#e3ebef;
  background:#fbfcfd;
  color:#6d7c86;
  font-size:11px;
  font-weight:400;
  line-height:1.2;
}
#project-types .subpage-article-body {
  padding:24px 22px 22px;
  gap:0;
}
#project-types .subpage-meta-row {
  margin-bottom:14px;
}
#project-types .subpage-meta {
  color:#2c7898;
  font-size:12px;
  font-weight:600;
  letter-spacing:.045em;
}
#project-types .subpage-article-date {
  color:#81909a;
  font-size:12px;
  font-weight:600;
}
#project-types .subpage-article-body h3 {
  margin-bottom:14px;
  color:#2e414d;
  font-size:22px;
  font-weight:700;
  line-height:1.22;
  letter-spacing:-.02em;
}
#project-types .subpage-article-body p {
  margin-bottom:16px;
  color:#5f7280;
  font-size:15px;
  font-weight:450;
  line-height:1.56;
}
#project-types .subpage-article-tags {
  gap:6px;
  margin-bottom:20px;
}
#project-types .subpage-article-tags span,
#project-types .subpage-article-tags .project-tag {
  padding:3px 6px;
  border-color:#e3ebef;
  background:#fbfcfd;
  color:#6d7c86;
  font-size:11px;
  font-weight:400;
  line-height:1.2;
}
#project-types .subpage-article-tags .project-tag:hover {
  border-color:#cfdee5;
  background:#f8fafb;
  color:#6d7c86;
}
#project-types .subpage-article-tags .project-tag[aria-pressed="true"] {
  border-color:#197da9;
  background:#197da9;
  color:#fff;
}
#project-types .subpage-article-link {
  color:#2c7898;
  font-size:14px;
  font-weight:650;
  line-height:1.35;
}
.subpage-topic-list {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.subpage-topic-list span {
  padding:10px 14px;
  border:1px solid #ccdfe8;
  border-radius:999px;
  background:#fff;
  color:#365265;
  font-size:14px;
  font-weight:850;
}
.project-detail-nav a {
  padding:10px 14px;
  border:1px solid #ccdfe8;
  border-radius:999px;
  background:#fff;
  color:#365265;
  font-size:14px;
  font-weight:850;
}
.project-detail-section {
  scroll-margin-top:92px;
}
.project-detail-section:nth-of-type(odd) {
  background:#f7fcfe;
}
.project-detail-section .subpage-split {
  align-items:start;
  grid-template-columns:.82fr 1.18fr;
}
.project-detail-gallery .subpage-image-card img {
  height:170px;
}
.project-gallery-intro-copy {
  max-width:700px;
  margin:14px auto 0;
  color:#587080;
  font-weight:650;
  line-height:1.6;
}
.project-gallery-intro .project-detail-nav {
  justify-content:center;
  margin-top:24px;
}
.project-detail-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:28px;
  align-items:end;
  margin-bottom:28px;
}
.project-detail-heading h2 {
  margin-top:12px;
}
.project-detail-heading h1 {
  max-width:900px;
  margin-top:12px;
  color:#2e414d;
  font-size:32px;
  line-height:1.15;
  letter-spacing:-.03em;
}
.project-detail-heading p {
  max-width:720px;
  margin-top:12px;
  color:#587080;
  font-size:16px;
  font-weight:450;
  line-height:1.68;
}
.project-detail-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}
.project-detail-actions > span {
  padding:8px 12px;
  border:1px solid #d7e7ee;
  border-radius:999px;
  background:#fff;
  color:#425d6e;
  font-size:13px;
  font-weight:850;
}
.project-detail-actions .project-back-link {
  margin-top:0;
}
.project-content-layout {
  display:grid;
  grid-template-columns:minmax(0,44.75%) minmax(0,1fr);
  gap:24px;
  align-items:start;
}
.project-content-layout .project-story {
  margin:0;
}
.project-story {
  width:100%;
  max-width:none;
  margin:0 0 34px;
  padding:28px 30px;
  border:1px solid #dcebf1;
  border-radius:18px;
  background:#fff;
  box-shadow:var(--soft-shadow);
}
.project-story h2 {
  max-width:760px;
  margin:13px 0 18px;
  color:#2e414d;
  font-size:32px;
  line-height:1.15;
  letter-spacing:-.03em;
}
.project-story-copy {
  display:grid;
  gap:14px;
}
.project-story-copy p {
  color:#587080;
  font-size:16px;
  font-weight:450;
  line-height:1.68;
}
.project-story-copy h2 {
  max-width:none;
  margin:16px 0 0;
  color:#2e414d;
  font-family:inherit;
  font-size:24px;
  font-weight:800;
  line-height:1.22;
  letter-spacing:-.02em;
}
.project-story-copy h2:first-child {
  margin-top:0;
}
.project-story-copy ul,
.project-story-copy ol {
  margin:0;
  padding-left:22px;
  color:#587080;
  font-family:inherit;
  font-size:16px;
  font-weight:450;
  line-height:1.68;
}
.project-story-copy li {
  color:inherit;
  font:inherit;
}
.project-story-copy li + li {
  margin-top:7px;
}
.project-story-copy strong {
  color:#425d6e;
  font-family:inherit;
  font-weight:750;
}
.project-single-page {
  background:linear-gradient(180deg,#fff 0,#f8fcfe 100%);
}
.project-breadcrumb {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:28px;
  color:#6c7f8c;
  font-size:13px;
  font-weight:650;
}
.project-breadcrumb a {
  color:#19739b;
  font-weight:850;
}
.project-breadcrumb a:hover {
  color:#0d6388;
}
.project-page-footer-nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:30px;
  padding-top:24px;
  border-top:1px solid #dcebf1;
}
.project-page-footer-nav a {
  color:#19739b;
  font-size:14px;
  font-weight:850;
}
.project-page-footer-nav a:hover {
  color:#0d6388;
}
.project-photo-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:230px;
  gap:18px;
}
.project-photo {
  position:relative;
  display:block;
  overflow:hidden;
  min-width:0;
  border:1px solid #dcebf1;
  border-radius:18px;
  background:#eaf4f8;
  box-shadow:var(--soft-shadow);
}
.project-photo-feature {
  grid-column:span 2;
  grid-row:span 2;
}
.project-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.project-photo span {
  position:absolute;
  right:14px;
  bottom:14px;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(35,55,68,.88);
  color:#fff;
  font-size:12px;
  font-weight:850;
  opacity:0;
  transform:translateY(4px);
  transition:opacity .2s ease,transform .2s ease;
}
.project-photo:hover img,
.project-photo:focus-visible img {
  transform:scale(1.025);
}
.project-photo:hover span,
.project-photo:focus-visible span {
  opacity:1;
  transform:translateY(0);
}
.project-photo:focus-visible {
  outline:3px solid rgba(20,125,184,.35);
  outline-offset:3px;
}
body.lightbox-open {
  overflow:hidden;
}
.project-lightbox {
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
.project-lightbox::backdrop {
  background:rgba(12,27,35,.9);
  backdrop-filter:blur(5px);
}
.project-lightbox-stage {
  position:relative;
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  padding:58px 88px 38px;
}
.project-lightbox figure {
  display:grid;
  place-items:center;
  gap:12px;
  max-width:100%;
  max-height:100%;
  margin:0;
}
.project-lightbox img {
  display:block;
  max-width:min(1200px,100%);
  max-height:calc(100vh - 120px);
  border-radius:12px;
  object-fit:contain;
  box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.project-lightbox figcaption {
  color:#fff;
  font-size:14px;
  font-weight:700;
  line-height:1.4;
  text-align:center;
}
.project-lightbox button {
  position:absolute;
  z-index:2;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.35);
  border-radius:999px;
  background:rgba(18,43,56,.8);
  color:#fff;
  cursor:pointer;
  box-shadow:0 8px 28px rgba(0,0,0,.3);
}
.project-lightbox button:hover,
.project-lightbox button:focus-visible {
  background:#147db8;
  outline:3px solid rgba(255,255,255,.3);
  outline-offset:2px;
}
.project-lightbox-close {
  top:18px;
  right:20px;
  width:44px;
  height:44px;
  font-size:34px;
  line-height:1;
}
.project-lightbox-nav {
  top:50%;
  width:50px;
  height:50px;
  font-size:42px;
  line-height:1;
  transform:translateY(-50%);
}
.project-lightbox-prev { left:22px; }
.project-lightbox-next { right:22px; }
.project-back-link {
  margin-top:22px;
  box-shadow:none;
}
.subpage-bottom-gap { margin-bottom:26px; }

@media (max-width: 980px) {
  .subpage-hero { padding:24px 0 28px; }
  .subpage-hero-grid,
  .subpage-split,
  .subpage-emergency-strip { grid-template-columns:1fr; }
  .project-detail-section .subpage-split { grid-template-columns:1fr; }
  .project-content-layout {
    grid-template-columns:1fr;
  }
  .project-photo-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:280px;
  }
  .project-photo-feature {
    grid-column:span 2;
    grid-row:span 1;
  }
  .subpage-hero-copy h1 { font-size:28px; line-height:1.08; margin:0 auto 8px; }
  .subpage-hero-copy .lead { font-size:16px; line-height:1.5; }
  .subpage-hero .cta-row { margin:18px 0 10px; }
  .subpage-hero .quick-proof { margin-top:12px; gap:8px; }
  .subpage-hero .quick-proof span { font-size:12px; }
  .subpage-media { min-height:335px; }
  .subpage-photo-card { inset:28px 0 60px 0; border-radius:22px; }
  .subpage-photo-card img { min-height:250px; }
  .subpage-floating-card { left:10px; top:0; width:225px; padding:12px 13px; }
  .subpage-floating-card strong { font-size:17px; }
  .subpage-floating-card p { font-size:11px; line-height:1.35; }
  .subpage-stat-card { right:10px; left:10px; width:auto; bottom:0; padding:14px; }
  .subpage-stat-card h3 { font-size:17px; }
  .subpage-stat-list { gap:6px; }
  .subpage-stat-list span { font-size:11px; }
  .subpage-proof-row,
  .subpage-grid-2,
  .subpage-grid-3,
  .subpage-grid-4,
  .subpage-article-grid { grid-template-columns:1fr; }
  .subpage-emergency-strip { align-items:stretch; }
  .subpage-emergency-strip .btn { width:100%; }
}

@media (max-width: 700px) {
  .subpage-hero { padding:18px 0 18px; }
  .subpage-hero-copy h1 { font-size:24px; line-height:1.12; margin:0 auto 8px; }
  .subpage-hero-copy .lead { font-size:15px; line-height:1.48; }
  .subpage-badge:nth-child(n+3) { display:none; }
  .subpage-media { display:none; }
  .project-detail-heading {
    grid-template-columns:1fr;
    gap:18px;
  }
  .project-detail-heading h1 {
    font-size:26px;
    line-height:1.18;
  }
  .project-detail-actions {
    align-items:flex-start;
  }
  .project-story {
    padding:22px 20px;
  }
  .project-story h2 {
    font-size:26px;
    line-height:1.18;
  }
  .project-story-copy p {
    font-size:15px;
    line-height:1.62;
  }
  .project-story-copy h2 {
    font-size:22px;
    line-height:1.22;
  }
  .project-story-copy ul,
  .project-story-copy ol {
    font-size:15px;
    line-height:1.62;
  }
  .project-detail-heading p {
    font-size:15px;
    line-height:1.62;
  }
  .project-page-footer-nav {
    align-items:flex-start;
    flex-direction:column;
  }
  .project-sort-status {
    align-items:flex-start;
    flex-direction:column;
  }
  #project-types .subpage-article-body {
    padding:22px 20px 20px;
  }
  #project-types .subpage-article-body h3 {
    font-size:21px;
    line-height:1.22;
  }
  #project-types .subpage-article-body p {
    font-size:14px;
    line-height:1.56;
  }
  .project-photo-grid {
    grid-template-columns:1fr;
    grid-auto-rows:260px;
    gap:14px;
  }
  .project-photo-feature {
    grid-column:span 1;
  }
  .project-photo span {
    opacity:1;
    transform:none;
  }
  .project-lightbox-stage {
    padding:64px 18px 34px;
  }
  .project-lightbox-nav {
    top:auto;
    bottom:18px;
    width:44px;
    height:44px;
  }
  .project-lightbox-prev { left:calc(50% - 54px); }
  .project-lightbox-next { right:calc(50% - 54px); }
  .project-lightbox img {
    max-height:calc(100vh - 150px);
  }
  .subpage-trust-bar .trust-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 12px;
    min-height:auto;
    padding:10px 0;
  }
  .subpage-trust-bar .trust-item {
    min-height:52px;
    justify-content:center;
  }
  .subpage-trust-bar .trust-item-completed {
    grid-template-columns:34px 1fr;
    gap:8px;
  }
  .subpage-trust-bar .trust-item-completed .trust-mark,
  .subpage-trust-bar .trust-item-completed .trust-mark img {
    width:30px;
    height:30px;
  }
  .subpage-trust-bar .trust-item-lead-safe {
    grid-template-columns:54px 1fr;
    gap:7px;
  }
  .subpage-trust-bar .trust-item-lead-safe .trust-mark {
    width:54px;
    height:30px;
  }
  .subpage-trust-bar .trust-item-lead-safe .trust-mark img {
    width:58px;
    height:auto;
    transform:translateY(-6px);
  }
  .subpage-trust-bar .trust-logo-wide {
    width:150px;
    height:34px;
  }
  .subpage-trust-bar .trust-item-iicrc-logo .trust-logo-wide img { width:126px; }
  .subpage-trust-bar .trust-item-cslb-logo .trust-logo-wide img { width:86px; }
  .subpage-trust-bar .trust-copy strong { font-size:17px; }
  .subpage-trust-bar .trust-copy span,
  .subpage-trust-bar .trust-item-lead-safe .lead-cert-line {
    font-size:11px;
    line-height:1.1;
  }
}

/* Xactimate price list */
.visually-hidden {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
.price-list-page {
  background:#f7fcfe;
}
.price-list-hero {
  position:relative;
  overflow:hidden;
  padding:66px 0 62px;
  background:
    radial-gradient(circle at 12% 18%,rgba(147,187,227,.25),transparent 29%),
    radial-gradient(circle at 88% 72%,rgba(215,25,32,.09),transparent 24%),
    linear-gradient(180deg,#fff 0%,#edf8fc 100%);
  border-bottom:1px solid #d7e8ef;
}
.price-list-hero::after {
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  right:-125px;
  top:-135px;
  border:52px solid rgba(215,25,32,.035);
  border-radius:50%;
}
.price-list-hero-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:58px;
  align-items:center;
}
.price-list-hero h1 {
  max-width:790px;
  margin:16px 0 18px;
  color:var(--navy-deep);
  font-size:clamp(43px,5.4vw,68px);
  line-height:1.01;
  letter-spacing:-.045em;
}
.price-list-hero .lead {
  max-width:760px;
  margin:0;
  color:#526b79;
  font-size:19px;
  line-height:1.65;
}
.price-list-hero-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:18px;
  margin-top:28px;
}
.price-list-jump {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#126f99;
  font-size:15px;
  font-weight:900;
}
.price-list-jump span {
  font-size:20px;
  transition:transform .2s ease;
}
.price-list-jump:hover span {
  transform:translateY(3px);
}
.price-list-fact-card {
  position:relative;
  padding:30px;
  border:1px solid #d2e5ed;
  border-radius:24px;
  background:rgba(255,255,255,.94);
  box-shadow:0 22px 55px rgba(19,43,57,.12);
}
.price-list-fact-card::before {
  content:"";
  position:absolute;
  left:0;
  top:30px;
  bottom:30px;
  width:4px;
  border-radius:0 4px 4px 0;
  background:var(--red);
}
.price-list-fact-label {
  display:block;
  margin-bottom:7px;
  color:#708591;
  font-size:12px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.price-list-fact-card > strong {
  display:block;
  color:var(--navy-deep);
  font-size:25px;
  line-height:1.2;
}
.price-list-fact-card dl {
  display:grid;
  gap:0;
  margin:22px 0 0;
}
.price-list-fact-card dl div {
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:12px 0;
  border-top:1px solid #e1edf2;
}
.price-list-fact-card dt {
  color:#6b808c;
  font-size:13px;
  font-weight:700;
}
.price-list-fact-card dd {
  margin:0;
  color:var(--navy-deep);
  font-size:13px;
  font-weight:900;
  text-align:right;
}
.price-list-intro {
  padding:70px 0;
  background:#fff;
}
.price-list-intro-grid {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  gap:54px;
  align-items:center;
}
.price-list-intro h2,
.price-list-heading h2 {
  color:var(--navy-deep);
  letter-spacing:-.03em;
}
.price-list-intro h2 {
  max-width:700px;
  margin:15px 0 20px;
  font-size:38px;
  line-height:1.13;
}
.price-list-intro article p {
  margin:0;
  color:#536b79;
  font-size:16px;
  line-height:1.78;
}
.price-list-intro article p + p {
  margin-top:15px;
}
.price-list-notice {
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:16px;
  padding:27px;
  border:1px solid #cfe3eb;
  border-radius:20px;
  background:linear-gradient(145deg,#eef9fd,#fff);
  box-shadow:var(--soft-shadow);
}
.price-list-notice-icon {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:13px;
  background:var(--navy-deep);
  color:#fff;
  font-family:Georgia,serif;
  font-size:24px;
  font-weight:900;
}
.price-list-notice h2 {
  margin:1px 0 9px;
  font-size:21px;
  letter-spacing:-.02em;
}
.price-list-notice p {
  margin:0;
  color:#5b7280;
  font-size:14px;
  line-height:1.72;
}
.price-list-section {
  padding:66px 0 76px;
  background:linear-gradient(180deg,#edf8fc 0%,#f8fcfe 100%);
}
.price-list-heading {
  width:min(100%,900px);
  margin:0 auto 24px;
}
.price-list-heading h2 {
  margin:0;
  font-size:38px;
  line-height:1.12;
}
.price-table-shell {
  overflow:auto;
  width:min(100%,900px);
  margin-inline:auto;
  max-height:none;
  border:1px solid #cbdfe8;
  border-radius:19px;
  background:#fff;
  box-shadow:0 22px 50px rgba(18,54,74,.09);
  -webkit-overflow-scrolling:touch;
}
.price-table-shell:focus-visible {
  outline:3px solid rgba(20,125,184,.35);
  outline-offset:4px;
}
.price-table {
  width:100%;
  min-width:700px;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  color:#314b5b;
  font-size:14px;
}
.price-table thead th {
  padding:18px 20px;
  background:var(--navy-deep);
  color:#fff;
  font-size:12px;
  font-weight:950;
  letter-spacing:.08em;
  text-align:left;
  text-transform:uppercase;
}
.price-table thead th:first-child {
  width:auto;
  border-radius:18px 0 0 0;
}
.price-table thead th:nth-child(2) {
  width:82px;
  text-align:center;
}
.price-table thead th:last-child {
  width:122px;
  border-radius:0 18px 0 0;
  text-align:right;
}
.price-table tbody td,
.price-table tbody th {
  padding:14px 20px;
  border-bottom:1px solid #dfebf0;
}
.price-table tbody tr:not(.price-category):nth-child(odd) td {
  background:#f9fcfd;
}
.price-table tbody tr:not(.price-category):hover td {
  background:#eef8fc;
}
.price-table tbody td:first-child {
  font-weight:700;
  line-height:1.45;
}
.price-table tbody td:nth-child(2) {
  color:#617987;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-align:center;
}
.price-table tbody td:last-child {
  color:var(--navy-deep);
  font-variant-numeric:tabular-nums;
  font-weight:950;
  text-align:right;
}
.price-table .price-category th,
.price-table .price-category td {
  padding:12px 20px;
  border-bottom:1px solid #cfdee5;
  background:#dff1f8;
  color:#125d80;
  font-size:12px;
  font-weight:950;
  letter-spacing:.085em;
  text-align:left;
}
.price-table .price-category-cells td {
  background:#dff1f8;
}
.price-table tbody tr:last-child td {
  border-bottom:0;
}
.price-list-source-note {
  width:min(100%,900px);
  margin:18px auto 0;
  color:#71848e;
  font-size:12px;
  line-height:1.6;
}

@media (max-width: 980px) {
  .price-list-hero {
    padding:48px 0 52px;
  }
  .price-list-hero-grid,
  .price-list-intro-grid {
    grid-template-columns:1fr;
  }
  .price-list-hero-grid {
    gap:30px;
  }
  .price-list-fact-card {
    max-width:520px;
  }
  .price-list-intro-grid {
    gap:30px;
  }
}

@media (max-width: 700px) {
  .price-list-hero {
    padding:36px 0 40px;
  }
  .price-list-hero .eyebrow,
  .price-list-hero .price-list-jump {
    display:none;
  }
  .price-list-hero h1 {
    font-size:39px;
    line-height:1.04;
  }
  .price-list-hero .lead {
    font-size:16px;
    line-height:1.6;
  }
  .price-list-hero-actions {
    align-items:flex-start;
    flex-direction:column;
  }
  .price-list-fact-card {
    padding:24px;
    border-radius:19px;
  }
  .price-list-fact-card > strong {
    font-size:22px;
  }
  .price-list-intro {
    padding:48px 0;
  }
  .price-list-intro h2,
  .price-list-heading h2 {
    font-size:30px;
  }
  .price-list-notice {
    grid-template-columns:1fr;
    padding:23px;
  }
  .price-list-section {
    padding:48px 0 58px;
  }
  .price-list-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:9px;
  }
  .price-table-shell {
    width:auto;
    max-width:none;
    margin-left:0;
    margin-right:-16px;
    border-radius:16px 0 0 16px;
  }
  .price-table {
    min-width:640px;
    font-size:13px;
  }
  .price-table thead th,
  .price-table tbody td,
  .price-table tbody th,
  .price-table .price-category th,
  .price-table .price-category td {
    padding-left:15px;
    padding-right:15px;
  }
}

/* About page story treatment. */
.about-page { background:#fff; }
.about-hero {
  padding:72px 0 78px;
  background:linear-gradient(180deg,#fff 0%,#f6fbfd 100%);
  border-bottom:1px solid var(--line);
}
.about-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);
  gap:42px;
  align-items:center;
}
.about-hero-copy h1 {
  max-width:740px;
  margin:12px 0 34px;
  color:#36454f;
  font-size:42px;
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.04em;
  text-align:left;
}
.about-lead {
  display:block;
  max-width:720px;
  color:#445d6d;
  font-size:20px;
  line-height:1.6;
}
.about-hero-actions {
  flex-wrap:nowrap;
  gap:10px;
  margin:28px 0 16px;
}
.about-hero-actions .btn {
  flex:1 1 0;
  min-width:0;
  padding-left:12px;
  padding-right:12px;
  font-size:16px;
}
.about-hero-media {
  position:relative;
  min-height:480px;
  overflow:hidden;
  border:1px solid #dcebf1;
  border-radius:28px;
  box-shadow:var(--shadow);
  background:#e7f3f8;
}
.about-hero-media img {
  display:block;
  width:100%;
  height:100%;
  min-height:480px;
  object-fit:cover;
  object-position:center;
  filter:saturate(.9) contrast(.95);
}
.about-hero-media .about-hero-van {
  object-position:86% center;
}
.about-hero-media:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(16,40,56,.02),rgba(16,40,56,.38));
}
.about-photo-note {
  position:absolute;
  left:24px;
  right:24px;
  top:24px;
  bottom:auto;
  z-index:1;
  display:grid;
  gap:5px;
  max-width:460px;
  padding:17px 19px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:18px;
  background:rgba(14,38,53,.86);
  color:#fff;
  box-shadow:0 14px 30px rgba(0,0,0,.18);
}
.about-photo-note strong {
  font-size:20px;
  line-height:1.12;
  letter-spacing:-.02em;
}
.about-photo-note span {
  color:#d5e7ee;
  font-size:14px;
  line-height:1.45;
  font-weight:700;
}
.about-origin {
  background:#fff;
  scroll-margin-top:100px;
}
.about-story-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:34px;
  align-items:start;
}
.about-story-grid--single {
  grid-template-columns:minmax(0,820px);
  justify-content:center;
}
.about-story-grid--single .about-story-copy {
  width:min(720px,100%);
}
.about-story-grid--single .about-story-copy p {
  max-width:none;
}
.about-story-copy h2,
.about-rhythm-copy h2,
.about-area h2,
.about-reviews h2 {
  letter-spacing:-.04em;
}
.about-story-copy h3 {
  margin-top:42px;
  color:var(--navy-deep);
  font-size:30px;
  line-height:1.12;
  letter-spacing:-.035em;
}
.about-story-copy p {
  max-width:720px;
  color:#4f6877;
  font-size:18px;
  line-height:1.72;
  font-weight:650;
  margin-top:18px;
  text-align:justify;
  text-align-last:left;
  hyphens:auto;
}
.about-story-copy p.about-story-lead,
.about-mascot-copy p.about-story-lead {
  max-width:720px;
  margin-top:14px;
  color:#445d6d;
  font-size:18px;
  line-height:1.62;
  font-weight:400;
  text-align:justify;
  text-align-last:left;
  hyphens:auto;
}
.credential-guidance .about-story-copy p,
.credential-guidance .about-story-copy p.about-story-lead {
  max-width:760px;
  font-weight:400;
  text-align:left;
  text-align-last:auto;
  hyphens:none;
}
.about-story-copy .about-name-truth {
  padding:20px 22px;
  border-left:4px solid var(--red);
  border-radius:0 14px 14px 0;
  background:#f7fbfd;
  color:#435d6c;
  text-align:left;
  hyphens:none;
}
.about-story-copy p.about-name-truth {
  text-align:justify;
  text-align-last:left;
  hyphens:auto;
}
.about-name-truth strong {
  color:var(--navy-deep);
}
.about-story-panel {
  position:sticky;
  top:28px;
  padding:30px;
  border:1px solid #dcebf1;
  border-radius:24px;
  background:linear-gradient(180deg,#fff,#f7fcfe);
  box-shadow:var(--soft-shadow);
}
.about-story-panel h3 {
  max-width:480px;
  font-size:28px;
  line-height:1.1;
}
.about-story-panel p {
  color:#587080;
  font-size:17px;
  line-height:1.65;
  font-weight:650;
  margin-top:14px;
}
.about-proof-strip {
  display:grid;
  gap:10px;
  margin-top:24px;
}
.about-proof-strip span {
  display:grid;
  grid-template-columns:120px 1fr;
  gap:12px;
  align-items:center;
  padding:13px 14px;
  border:1px solid #dcebf1;
  border-radius:14px;
  background:#fff;
  color:#496373;
  font-size:14px;
  line-height:1.3;
  font-weight:800;
}
.about-proof-strip b {
  color:var(--red);
  font-size:18px;
  line-height:1;
}
.about-section-intro {
  max-width:760px;
  margin:14px auto 0;
  color:#587080;
  font-size:17px;
  line-height:1.65;
  font-weight:650;
}
.about-credentials {
  background:#fff;
}
.about-credential-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  align-items:stretch;
}
.about-credential-card {
  display:flex;
  flex-direction:column;
  min-height:520px;
  overflow:hidden;
  border:1px solid #dcebf1;
  border-radius:24px;
  background:#fff;
  box-shadow:var(--soft-shadow);
}
.about-cert-document {
  position:relative;
  display:grid;
  place-items:center;
  width:auto;
  aspect-ratio:4 / 3;
  margin:18px 18px 0;
  padding:6px;
  overflow:hidden;
  border:1px solid #dcebf1;
  border-radius:18px;
  background:#fff;
  appearance:none;
  cursor:pointer;
  font:inherit;
}
.about-cert-document--portrait {
  aspect-ratio:705 / 924;
}
.about-cert-document:hover,
.about-cert-document:focus-visible {
  border-color:#93cfe0;
  box-shadow:0 12px 28px rgba(19,43,57,.12);
  outline:none;
}
.about-cert-document img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
.about-cert-zoom {
  position:absolute;
  right:12px;
  bottom:12px;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(14,38,53,.88);
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(5px);
  transition:opacity .18s ease, transform .18s ease;
}
.about-cert-document:hover .about-cert-zoom,
.about-cert-document:focus-visible .about-cert-zoom {
  opacity:1;
  transform:translateY(0);
}
.about-credential-copy {
  display:flex;
  flex:1;
  flex-direction:column;
  padding:24px;
}
.about-credential-label {
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  width:max-content;
  max-width:100%;
  margin-bottom:13px;
  padding:5px 5px 5px 10px;
  border-radius:999px;
  background:#e9f8fc;
  color:#19739b;
  font-size:12px;
  line-height:1;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.about-credential-number {
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:5px 8px;
  border:1px solid #c7e1ec;
  border-radius:999px;
  background:#fff;
  color:#19739b;
  font-size:11px;
  line-height:1;
  font-weight:950;
  font-variant-numeric:tabular-nums;
  letter-spacing:.07em;
  white-space:nowrap;
}
.about-credential-copy h3 {
  font-size:25px;
  line-height:1.1;
  margin-bottom:14px;
}
.about-credential-copy p {
  display:grid;
  gap:7px;
  color:#5f7280;
  font-size:16px;
  line-height:1.56;
  font-weight:450;
  letter-spacing:0;
  text-transform:none;
}
.about-credential-copy p + p {
  margin-top:7px;
}
.about-credential-copy p span {
  display:block;
}
.cert-lightbox-open {
  overflow:hidden;
}
.cert-lightbox[hidden] {
  display:none;
}
.cert-lightbox {
  position:fixed;
  inset:0;
  z-index:200;
  display:grid;
  place-items:center;
  padding:30px;
  background:rgba(14,38,53,.82);
}
.cert-lightbox-panel {
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:14px;
  width:min(1080px,100%);
  max-height:calc(100vh - 60px);
  padding:18px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:22px;
  background:#fff;
  box-shadow:0 28px 90px rgba(0,0,0,.36);
}
.cert-lightbox-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.cert-lightbox-header h2 {
  margin:0;
  font-size:24px;
  line-height:1.15;
}
.cert-lightbox-close {
  flex:0 0 auto;
  min-height:42px;
  padding:0 16px;
  border:1px solid #cbdde5;
  border-radius:999px;
  background:#fff;
  color:var(--navy-deep);
  font:inherit;
  font-size:13px;
  font-weight:950;
  cursor:pointer;
}
.cert-lightbox-close:hover,
.cert-lightbox-close:focus-visible {
  border-color:var(--red);
  color:var(--red);
  outline:none;
}
.cert-lightbox-image-wrap {
  display:grid;
  place-items:center;
  min-height:0;
  overflow:auto;
  border:1px solid #dcebf1;
  border-radius:16px;
  background:#f7fcfe;
}
.cert-lightbox-image {
  display:block;
  width:auto;
  max-width:100%;
  max-height:calc(100vh - 170px);
  object-fit:contain;
}
.about-team {
  background:linear-gradient(180deg,#f4fbfe,#fff);
}
.about-team-carousel {
  position:relative;
}
.about-team-carousel-toolbar {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:16px;
  min-height:46px;
  margin:-14px 0 18px;
}
.about-team-carousel-status {
  color:#587080;
  font-size:13px;
  font-weight:750;
  font-variant-numeric:tabular-nums;
}
.about-team-carousel-controls {
  display:flex;
  gap:9px;
}
.about-team-carousel-controls button {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  padding:0;
  border:1px solid #c9dde6;
  border-radius:50%;
  background:#fff;
  color:var(--navy-deep);
  font:inherit;
  font-size:20px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 7px 18px rgba(19,43,57,.08);
}
.about-team-carousel-controls button:hover,
.about-team-carousel-controls button:focus-visible {
  border-color:#79bdd4;
  color:#147db8;
  outline:none;
}
.about-team-carousel-controls button:focus-visible {
  box-shadow:0 0 0 4px rgba(20,125,184,.14);
}
.about-team-carousel-controls button:disabled {
  opacity:.36;
  cursor:not-allowed;
  box-shadow:none;
}
.about-team-grid {
  --team-visible:4;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 60px) / 4);
  gap:20px;
  align-items:stretch;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  touch-action:pan-x pan-y;
}
.about-team-grid::-webkit-scrollbar {
  display:none;
}
.about-team-grid:focus-visible {
  outline:3px solid rgba(20,125,184,.2);
  outline-offset:7px;
  border-radius:18px;
}
.about-team-card {
  scroll-snap-align:start;
  overflow:hidden;
  border:1px solid #dcebf1;
  border-radius:18px;
  background:#fff;
  box-shadow:var(--soft-shadow);
}
.about-team-photo {
  display:grid;
  place-items:center;
  position:relative;
  min-height:230px;
  margin:16px 16px 0;
  overflow:hidden;
  border:1px solid #dcebf1;
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 34%,rgba(255,255,255,.92),transparent 34%),
    linear-gradient(180deg,#f8fcfe,#eef6fa);
}
.about-team-photo:not(.about-team-photo--image)::before {
  content:"";
  position:relative;
  z-index:2;
  width:70px;
  height:70px;
  border-radius:50%;
  background:linear-gradient(180deg,#cfd8df,#aebbc4);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.48),0 10px 22px rgba(54,69,79,.08);
  transform:translateY(-30px);
}
.about-team-photo:not(.about-team-photo--image)::after {
  content:"";
  position:absolute;
  left:50%;
  top:54%;
  z-index:1;
  width:154px;
  height:78px;
  border-radius:80px 80px 28px 28px;
  background:linear-gradient(180deg,#c7d2da,#a5b3bd);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.34),0 14px 28px rgba(54,69,79,.08);
  transform:translate(-50%,-6%);
}
.about-team-photo--image {
  height:230px;
  overflow:hidden;
  border:0;
  background:#e7f3f8;
}
.about-team-photo--image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.about-team-photo span {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.about-team-copy {
  padding:22px;
}
.about-team-roles {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
}
.about-team-role {
  display:inline-flex;
  max-width:100%;
  margin-bottom:12px;
  padding:5px 8px;
  border:1px solid #dcebf1;
  border-radius:999px;
  background:#fbfcfd;
  color:#2c7898;
  font-size:11px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.about-team-roles .about-team-role {
  margin-bottom:0;
}
.about-team-copy h3 {
  margin-bottom:14px;
  color:#2e414d;
  font-size:22px;
  line-height:1.22;
  font-weight:700;
  letter-spacing:0;
}
.about-member-story {
  display:grid;
  gap:7px;
  color:#5f7280;
  font-size:15px;
  line-height:1.56;
  font-weight:450;
}
.about-member-story span {
  display:block;
}
.about-mascot-video {
  background:linear-gradient(180deg,#fff,#f4fbfe);
  scroll-margin-top:100px;
}
.about-mascot-grid {
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:34px;
  align-items:center;
}
.about-mascot-copy p {
  max-width:680px;
  color:#587080;
  font-size:18px;
  line-height:1.68;
  font-weight:650;
  margin-top:16px;
}
.about-video-card {
  padding:18px;
  border:1px solid #dcebf1;
  border-radius:28px;
  background:#fff;
  box-shadow:var(--shadow);
}
.about-video-frame {
  position:relative;
  display:grid;
  place-items:center;
  min-height:360px;
  overflow:hidden;
  border-radius:22px;
  background:
    linear-gradient(135deg,rgba(14,38,53,.82),rgba(20,125,184,.36)),
    #e9f8fc;
  color:#fff;
  text-align:center;
}
.about-video-frame img {
  width:min(330px,68%);
  height:auto;
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.24));
  opacity:.92;
}
.about-video-frame:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(14,38,53,0),rgba(14,38,53,.48));
}
.about-play-button {
  position:absolute;
  z-index:1;
  width:74px;
  height:74px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 18px 38px rgba(0,0,0,.22);
}
.about-play-button:after {
  content:"";
  position:absolute;
  left:30px;
  top:23px;
  border-left:20px solid var(--red);
  border-top:14px solid transparent;
  border-bottom:14px solid transparent;
}
.about-video-frame strong,
.about-video-frame p {
  position:absolute;
  z-index:1;
  left:26px;
  right:26px;
}
.about-video-frame strong {
  bottom:58px;
  font-size:26px;
  line-height:1.1;
  letter-spacing:-.03em;
}
.about-video-frame p {
  bottom:30px;
  color:#dcecf3;
  font-size:14px;
  line-height:1.35;
  font-weight:800;
}
.about-rhythm {
  background:#fff;
}
.about-rhythm-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:34px;
  align-items:start;
}
.about-rhythm-copy {
  position:sticky;
  top:104px;
}
.about-rhythm-copy p {
  color:#445d6d;
  font-size:18px;
  line-height:1.62;
  font-weight:400;
  margin:16px 0 24px;
  text-align:justify;
  text-align-last:left;
  hyphens:auto;
}
.about-rhythm-list {
  display:grid;
  gap:14px;
}
.about-rhythm-item {
  display:grid;
  grid-template-columns:150px 1fr;
  gap:18px;
  align-items:start;
  padding:20px;
  border:1px solid #dcebf1;
  border-radius:18px;
  background:#fff;
  box-shadow:var(--soft-shadow);
}
.about-rhythm-item b {
  color:var(--navy-deep);
  font-size:20px;
  line-height:1.1;
}
.about-rhythm-item span {
  color:#587080;
  line-height:1.55;
  font-weight:650;
}
.about-area {
  background:linear-gradient(180deg,#f4fbfe,#fff);
}
.about-area-lead {
  display:block;
  margin-top:14px;
  font-size:18px;
}
.about-reviews {
  background:#fff;
}
.about-reviews .about-review-switcher {
  margin:-6px auto 28px;
}
.about-reviews .rating-platform-card {
  border:0;
  background:transparent;
  box-shadow:none;
}

@media (max-width: 980px) {
  .about-hero { padding:48px 0 56px; }
  .about-hero-grid,
  .about-story-grid,
  .about-credential-grid,
  .about-mascot-grid,
  .about-rhythm-grid {
    grid-template-columns:1fr;
  }
  .about-team-grid {
    --team-visible:2;
    grid-auto-columns:calc((100% - 20px) / 2);
  }
  .about-hero-copy h1 {
    font-size:32px;
    line-height:1.08;
  }
  .about-lead {
    font-size:18px;
  }
  .about-hero-media,
  .about-hero-media img {
    min-height:390px;
  }
  .about-rhythm-copy {
    position:static;
  }
  .about-story-panel {
    position:static;
  }
}

@media (max-width: 700px) {
  .about-hero { padding:34px 0 40px; }
  .about-hero-copy h1 {
    font-size:32px;
    line-height:1.08;
  }
  .about-lead {
    font-size:16px;
    line-height:1.55;
  }
  .about-hero-actions .btn {
    flex-basis:100%;
    width:100%;
  }
  .about-hero-actions {
    flex-wrap:wrap;
  }
  .about-hero-media,
  .about-hero-media img {
    min-height:310px;
    border-radius:22px;
  }
  .about-photo-note {
    left:14px;
    right:14px;
    top:14px;
    bottom:auto;
    padding:14px;
  }
  .about-photo-note strong {
    font-size:17px;
  }
  .about-story-panel,
  .about-credential-copy {
    padding:22px;
  }
  .about-story-copy h3 {
    margin-top:34px;
    font-size:26px;
  }
  .about-story-copy p {
    font-size:17px;
    text-align:left;
    hyphens:none;
  }
  .about-story-copy p.about-story-lead,
  .about-mascot-copy p.about-story-lead {
    font-size:17px;
    text-align:left;
    text-align-last:auto;
    hyphens:none;
  }
  .about-story-copy .about-name-truth {
    padding:17px 18px;
  }
  .about-story-copy p.about-name-truth {
    text-align:left;
    hyphens:none;
  }
  .about-rhythm-copy p {
    font-size:17px;
    text-align:left;
    text-align-last:auto;
    hyphens:none;
  }
  .about-credential-card {
    min-height:auto;
  }
  .about-team-grid {
    --team-visible:1;
    grid-auto-columns:100%;
  }
  .about-team-carousel-toolbar {
    justify-content:space-between;
    margin-top:-8px;
  }
  .about-team-photo {
    min-height:190px;
    margin:14px 14px 0;
  }
  .about-team-photo--image {
    height:min(75vw,420px);
  }
  .about-video-card {
    padding:14px;
  }
  .about-video-frame {
    min-height:280px;
  }
  .about-video-frame strong {
    font-size:22px;
  }
  .about-cert-document {
    margin:14px 14px 0;
  }
  .about-cert-zoom {
    opacity:1;
    transform:none;
  }
  .cert-lightbox {
    padding:14px;
  }
  .cert-lightbox-panel {
    max-height:calc(100vh - 28px);
    padding:12px;
    border-radius:18px;
  }
  .cert-lightbox-header {
    align-items:flex-start;
  }
  .cert-lightbox-header h2 {
    font-size:19px;
  }
  .cert-lightbox-image {
    max-height:calc(100vh - 138px);
  }
  .about-proof-strip span,
  .about-rhythm-item {
    grid-template-columns:1fr;
    gap:8px;
  }
}

@media (max-width: 980px) {
  .blog-post-hero {
    padding:30px 0 26px;
  }
  .blog-post-hero h1 {
    font-size:32px;
    line-height:1.15;
  }
  .blog-post-layout {
    grid-template-columns:1fr;
    gap:24px;
  }
  .blog-post-aside {
    position:static;
  }
}

@media (max-width: 700px) {
  .blog-post-hero {
    padding:24px 0 22px;
  }
  .blog-post-hero h1 {
    font-size:26px;
    line-height:1.18;
  }
  .blog-post-body {
    padding:38px 0 58px;
  }
  .blog-post-content {
    padding:22px 20px;
  }
  .blog-post-content p,
  .blog-post-content li {
    font-size:15px;
    line-height:1.62;
  }
  .blog-post-content h2 {
    font-size:26px;
    line-height:1.18;
  }
  .blog-post-meta {
    gap:8px;
  }
}

/* Keep the credential strip in the same four-across order as desktop. */
@media (min-width: 701px) and (max-width: 980px) {
  .trust-bar .trust-grid,
  .subpage-trust-bar .trust-grid {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px 12px;
    min-height:68px;
    padding:4px 0;
  }
  .trust-bar .trust-item,
  .subpage-trust-bar .trust-item {
    min-width:0;
    min-height:58px;
    justify-content:center;
  }
  .trust-bar .trust-item-completed,
  .subpage-trust-bar .trust-item-completed {
    grid-template-columns:34px minmax(0,1fr);
    gap:8px;
  }
  .trust-bar .trust-item-completed .trust-mark,
  .trust-bar .trust-item-completed .trust-mark img,
  .subpage-trust-bar .trust-item-completed .trust-mark,
  .subpage-trust-bar .trust-item-completed .trust-mark img {
    width:30px;
    height:30px;
    transform:none;
  }
  .trust-bar .trust-item-lead-safe,
  .subpage-trust-bar .trust-item-lead-safe {
    grid-template-columns:54px minmax(0,1fr);
    gap:7px;
  }
  .trust-bar .trust-item-lead-safe .trust-mark,
  .subpage-trust-bar .trust-item-lead-safe .trust-mark {
    width:54px;
    height:30px;
  }
  .trust-bar .trust-item-lead-safe .trust-mark img,
  .subpage-trust-bar .trust-item-lead-safe .trust-mark img {
    width:58px;
    height:auto;
    transform:translateY(-6px);
  }
  .trust-bar .trust-logo-wide,
  .subpage-trust-bar .trust-logo-wide {
    width:100%;
    height:34px;
  }
  .trust-bar .trust-item-iicrc-logo .trust-logo-wide img,
  .subpage-trust-bar .trust-item-iicrc-logo .trust-logo-wide img {
    width:min(126px,90%);
  }
  .trust-bar .trust-item-cslb-logo .trust-logo-wide img,
  .subpage-trust-bar .trust-item-cslb-logo .trust-logo-wide img {
    width:min(86px,90%);
  }
  .trust-bar .trust-copy,
  .subpage-trust-bar .trust-copy {
    min-width:0;
  }
  .trust-bar .trust-copy strong,
  .subpage-trust-bar .trust-copy strong {
    font-size:17px;
    line-height:1;
  }
  .trust-bar .trust-copy span,
  .trust-bar .trust-item-lead-safe .lead-cert-line,
  .subpage-trust-bar .trust-copy span,
  .subpage-trust-bar .trust-item-lead-safe .lead-cert-line {
    font-size:11px;
    line-height:1.1;
  }
  .hero-legacy-note {
    top:-36px;
    right:0;
    bottom:auto;
    left:0;
    width:auto;
    font-size:clamp(10px,1.5vw,11px);
    line-height:1.2;
    text-align:center;
  }
  .hero-legacy-note span {
    white-space:nowrap;
    text-align:center;
    text-align-last:auto;
  }
}

@media (max-width: 700px) {
  .trust-bar .trust-grid,
  .subpage-trust-bar .trust-grid {
    grid-template-columns:repeat(4,max-content);
    justify-content:space-between;
    gap:0;
    min-height:50px;
    padding:2px clamp(8px,6vw,27px);
  }
  .trust-bar .trust-item,
  .subpage-trust-bar .trust-item {
    min-width:0;
    min-height:46px;
    justify-content:center;
    overflow:visible;
    transform:none;
  }
  .trust-bar .trust-item-completed,
  .subpage-trust-bar .trust-item-completed {
    grid-template-columns:1fr;
    gap:0;
  }
  .trust-bar .trust-item-completed .trust-mark,
  .trust-bar .trust-item-completed .trust-mark img,
  .subpage-trust-bar .trust-item-completed .trust-mark,
  .subpage-trust-bar .trust-item-completed .trust-mark img {
    width:15px;
    height:15px;
    transform:none;
    display:none;
  }
  .trust-bar .trust-item-lead-safe,
  .subpage-trust-bar .trust-item-lead-safe {
    grid-template-columns:34px max-content;
    gap:8px;
  }
  .trust-bar .trust-item-lead-safe .trust-mark,
  .subpage-trust-bar .trust-item-lead-safe .trust-mark {
    width:34px;
    height:29px;
  }
  .trust-bar .trust-item-lead-safe .trust-mark img,
  .subpage-trust-bar .trust-item-lead-safe .trust-mark img {
    width:34px;
    height:auto;
    transform:none;
  }
  .trust-bar .trust-logo-wide,
  .subpage-trust-bar .trust-logo-wide {
    width:100%;
    height:34px;
  }
  .trust-bar .trust-item-iicrc-logo .trust-logo-wide img,
  .subpage-trust-bar .trust-item-iicrc-logo .trust-logo-wide img {
    content:url("../trust-icons/iicrc-mobile-trans.png");
    display:block;
    width:85px;
    height:auto;
    max-width:100%;
  }
  .trust-bar .trust-item-cslb-logo .trust-logo-wide img,
  .subpage-trust-bar .trust-item-cslb-logo .trust-logo-wide img {
    display:none;
  }
  .trust-bar .trust-item-iicrc-logo .trust-logo-wide,
  .subpage-trust-bar .trust-item-iicrc-logo .trust-logo-wide {
    width:85px;
    height:34px;
    overflow:visible;
  }
  .trust-bar .trust-item-cslb-logo .trust-logo-wide,
  .subpage-trust-bar .trust-item-cslb-logo .trust-logo-wide {
    position:relative;
    width:58px;
    height:14px;
    overflow:hidden;
  }
  .trust-bar .trust-item-cslb-logo .trust-logo-wide::before,
  .subpage-trust-bar .trust-item-cslb-logo .trust-logo-wide::before {
    content:"";
    position:absolute;
    inset:0;
    background:url("../trust-icons/cslb-numb-trans.png") 0 -0.5px / 58px auto no-repeat;
  }
  .trust-bar .trust-copy,
  .subpage-trust-bar .trust-copy {
    min-width:0;
    overflow:hidden;
  }
  .trust-bar .trust-copy strong,
  .subpage-trust-bar .trust-copy strong {
    font-size:13px;
    line-height:1;
    white-space:nowrap;
  }
  .trust-bar .trust-item-completed .trust-copy,
  .subpage-trust-bar .trust-item-completed .trust-copy {
    text-align:center;
  }
  .trust-bar .trust-item-completed .trust-copy span,
  .subpage-trust-bar .trust-item-completed .trust-copy span {
    font-size:0;
  }
  .trust-bar .trust-item-completed .trust-copy span::after,
  .subpage-trust-bar .trust-item-completed .trust-copy span::after {
    content:"Projects";
    font-size:7.8px;
  }
  .trust-bar .trust-item-lead-safe .trust-copy strong,
  .subpage-trust-bar .trust-item-lead-safe .trust-copy strong {
    font-size:0;
    line-height:1;
    letter-spacing:-.02em;
    white-space:nowrap;
  }
  .trust-bar .trust-item-lead-safe .trust-copy,
  .subpage-trust-bar .trust-item-lead-safe .trust-copy {
    display:flex;
    align-items:center;
    height:29px;
  }
  .trust-bar .trust-item-lead-safe .trust-copy strong::before,
  .subpage-trust-bar .trust-item-lead-safe .trust-copy strong::before {
    content:"LEAD\A SAFE";
    display:block;
    font-size:9px;
    line-height:.9;
    white-space:pre;
  }
  .trust-bar .trust-item-lead-safe .trust-copy strong::after,
  .subpage-trust-bar .trust-item-lead-safe .trust-copy strong::after {
    content:none;
    display:none;
  }
  .trust-bar .trust-copy span,
  .trust-bar .trust-item-lead-safe .lead-cert-line,
  .subpage-trust-bar .trust-copy span,
  .subpage-trust-bar .trust-item-lead-safe .lead-cert-line {
    width:auto;
    margin-top:3px;
    font-size:6.5px;
    line-height:1;
    white-space:normal;
  }
  .trust-bar .trust-item-lead-safe .lead-cert-line,
  .subpage-trust-bar .trust-item-lead-safe .lead-cert-line {
    display:none;
  }
  .hero-legacy-note {
    top:-36px;
    right:0;
    bottom:auto;
    left:0;
    width:auto;
    color:#587080;
    font-size:clamp(8px,2.1vw,11px);
    line-height:1.2;
    text-align:center;
  }
  .hero-legacy-note span {
    white-space:nowrap;
    text-align:center;
    text-align-last:auto;
  }
}

@media (max-width: 360px) {
  .trust-bar .trust-grid,
  .subpage-trust-bar .trust-grid {
    gap:4px;
  }
  .trust-bar .trust-item,
  .subpage-trust-bar .trust-item {
    transform:scale(1);
  }
  .trust-bar .trust-item-lead-safe,
  .subpage-trust-bar .trust-item-lead-safe {
    gap:5px;
  }
}

@media (max-width: 700px) {
  .service-detail-heading .service-description {
    display:-webkit-box;
    max-height:6.2em;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:4;
    line-clamp:4;
  }
  .service-detail-heading .service-description.is-expanded {
    display:block;
    max-height:none;
    overflow:visible;
    -webkit-line-clamp:unset;
    line-clamp:unset;
  }
  .service-description-toggle {
    min-height:44px;
    display:inline-flex;
    align-items:center;
    margin:2px 0 0;
    padding:8px 0;
    border:0;
    background:transparent;
    color:#0c6f9f;
    font:inherit;
    font-size:14px;
    font-weight:850;
    cursor:pointer;
  }
  .service-description-toggle:focus-visible {
    outline:3px solid rgba(20,125,184,.3);
    outline-offset:2px;
    border-radius:5px;
  }
}

@media (max-width: 700px) {
  .projects-page #callback .eyebrow {
    display:none;
  }
}

/* SEO migration pages: articles, locations, programs, credentials, and forms. */
.migration-page-hero {
  padding:72px 0 58px;
  background:
    radial-gradient(circle at 88% 18%, rgba(22,125,184,.16), transparent 34%),
    linear-gradient(135deg, #f3f9fc 0%, #fff 62%);
  border-bottom:1px solid #dce8ee;
}

.migration-page-hero .container {
  max-width:980px;
}
.migration-page-hero h1 {
  max-width:900px;
  margin:10px 0 16px;
  color:#102f40;
  font-size:42px;
  line-height:1.08;
  letter-spacing:-.04em;
}
.migration-page-hero .lead {
  max-width:820px;
  margin:0;
  color:#3f5e6d;
  font-size:clamp(18px, 2.2vw, 23px);
  line-height:1.55;
}
.migration-page-hero .hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:26px;
}
.join-team-page .narrow-content > .hero-actions {
  margin-top:32px;
}
.narrow-content,
.legal-content {
  max-width:900px;
  margin:0 auto;
}
.narrow-content h2,
.legal-content h2 {
  margin:36px 0 12px;
  color:#173f53;
  font-size:clamp(26px, 3.3vw, 38px);
  line-height:1.12;
}
.narrow-content p,
.narrow-content li,
.legal-content p,
.legal-content li {
  color:#385665;
  font-size:17px;
  line-height:1.75;
}
.availability-note,
.program-callout,
.legal-review-notice {
  margin:0 0 28px;
  padding:18px 20px;
  border:1px solid #8bc5e1;
  border-left:6px solid #167db8;
  border-radius:10px;
  background:#eef8fd;
  color:#173f53;
  line-height:1.55;
}
.legal-review-notice {
  border-color:#f2bd66;
  border-left-color:#c2410c;
  background:#fff7ed;
  color:#7c2d12;
}
.migration-service-grid,
.program-steps,
.program-benefits,
.credential-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
  margin:24px 0 34px;
}
.migration-service-grid article,
.program-steps article,
.program-benefits article,
.credential-card {
  padding:22px;
  border:1px solid #d8e5eb;
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 30px rgba(21,61,80,.07);
}
.migration-service-grid h3,
.program-steps h3,
.program-benefits h3,
.credential-card h2 {
  margin:0 0 8px;
  color:#173f53;
}
.migration-service-grid p,
.program-steps p,
.program-benefits p,
.credential-card p {
  margin:0;
  color:#4b6673;
  line-height:1.6;
}
.program-steps article > span {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  margin-bottom:12px;
  border-radius:999px;
  background:#d71920;
  color:#fff;
  font-weight:900;
}
.credential-grid {
  max-width:1160px;
  margin:0 auto;
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.credential-card img {
  display:block;
  width:100%;
  height:250px;
  margin-bottom:18px;
  object-fit:contain;
  border-radius:8px;
  background:#f8fafb;
}
.contact-layout {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr);
  gap:42px;
  align-items:start;
}
.contact-layout form,
.narrow-content form {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  padding:26px;
  border:1px solid #d6e4ea;
  border-radius:14px;
  background:#f8fbfc;
}
.contact-layout form h2,
.narrow-content form h2,
.contact-layout .form-wide,
.narrow-content .form-wide,
.contact-layout .form-submit,
.narrow-content .form-submit {
  grid-column:1 / -1;
}
.contact-layout label,
.narrow-content form label {
  display:grid;
  gap:7px;
  color:#173f53;
  font-weight:750;
}
.contact-layout input,
.contact-layout select,
.contact-layout textarea,
.narrow-content form input,
.narrow-content form select,
.narrow-content form textarea {
  width:100%;
  min-height:48px;
  padding:11px 12px;
  border:1px solid #aebfc7;
  border-radius:8px;
  background:#fff;
  color:#153747;
  font:inherit;
}
.contact-layout textarea,
.narrow-content form textarea {
  min-height:130px;
  resize:vertical;
}
.contact-layout label:has(input[type="checkbox"]),
.narrow-content form label:has(input[type="checkbox"]) {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-weight:600;
}
.contact-layout input[type="checkbox"],
.narrow-content form input[type="checkbox"] {
  width:20px;
  min-height:20px;
}
.city {
  text-decoration:none;
}
.city:hover,
.city:focus-visible {
  border-color:#167db8;
  background:#eaf7fd;
  color:#0b648f;
  transform:translateY(-1px);
}
.city-asterisk {
  margin-left:2px;
  color:#167db8;
  font-weight:900;
}
.blog-post-meta {
  flex-wrap:wrap;
}
.blog-post-content > h2 {
  scroll-margin-top:110px;
}

@media (max-width: 900px) {
  .migration-page-hero h1 {
    font-size:32px;
  }
  .credential-grid {
    grid-template-columns:1fr;
  }
  .credential-card img {
    height:auto;
    max-height:420px;
  }
  .contact-layout {
    grid-template-columns:1fr;
  }
}

@media (max-width: 700px) {
  .migration-page-hero {
    padding:46px 0 38px;
  }
  .migration-service-grid,
  .program-steps,
  .program-benefits {
    grid-template-columns:1fr;
  }
  .contact-layout form,
  .narrow-content form {
    grid-template-columns:1fr;
    padding:20px;
  }
  .contact-layout form > *,
  .narrow-content form > * {
    grid-column:1;
  }
}

/* Referral program: source-faithful migration */
.referral-banner-section {
  padding-bottom:36px;
}
.referral-banner-link {
  display:block;
  overflow:hidden;
  margin-bottom:30px;
  border-radius:18px;
  box-shadow:0 16px 42px rgba(9,47,64,.17);
}
.referral-banner-link img {
  display:block;
  width:100%;
  height:auto;
}
.referral-source-copy {
  font-size:1.08rem;
}
.referral-source-copy p {
  margin:0 0 13px;
}
.referral-section-heading {
  max-width:840px;
  margin:0 auto 28px;
  text-align:center;
}
.referral-section-heading h2 {
  margin:7px 0 10px;
}
.referral-how-section,
.referral-reviews-section {
  background:#f3f8fa;
}
.referral-benefit-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 24px;
  margin:0;
  padding:0;
  list-style:none;
}
.referral-benefit-list li {
  position:relative;
  padding:15px 16px 15px 48px;
  border:1px solid #d7e5eb;
  border-radius:12px;
  background:#fff;
}
.referral-benefit-list li::before {
  content:"✓";
  position:absolute;
  top:13px;
  left:16px;
  display:grid;
  width:24px;
  height:24px;
  place-items:center;
  border-radius:50%;
  background:#167db8;
  color:#fff;
  font-weight:900;
}
.referral-cta-row {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin-top:28px;
}
.referral-review-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.referral-review {
  display:flex;
  flex-direction:column;
  padding:24px;
  border:1px solid #d7e5eb;
  border-radius:14px;
  background:#fff;
  box-shadow:0 9px 26px rgba(9,47,64,.08);
}
.referral-review p {
  flex:1;
  margin:10px 0 18px;
}
.referral-review > span:last-child {
  margin-top:3px;
  color:#5f737c;
  font-size:.9rem;
}
.review-stars {
  color:#f59e0b;
  letter-spacing:2px;
}
.referral-form-section {
  scroll-margin-top:90px;
}

@media (max-width: 700px) {
  .referral-benefit-list,
  .referral-review-grid {
    grid-template-columns:1fr;
  }
  .referral-banner-link {
    margin-inline:-8px;
    border-radius:12px;
  }
}

/* Franchising program: source-faithful migration */
.franchise-source-hero {
  position:relative;
  display:flex;
  min-height:600px;
  align-items:center;
  overflow:hidden;
  background:url("../images/franchise/Franchising-Program.webp") center/cover no-repeat;
  color:#fff;
}
.franchise-source-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(6,31,44,.94) 0%,rgba(6,31,44,.78) 45%,rgba(6,31,44,.14) 78%);
}
.franchise-source-hero .container {
  position:relative;
  z-index:1;
  width:min(1180px,calc(100% - 56px));
  margin:0 auto;
}
.franchise-hero-copy {
  max-width:570px;
  margin-left:clamp(18px,4vw,58px);
  padding:70px 0 74px;
}
.franchise-hero-copy h1 {
  margin:13px 0 22px;
  color:#fff;
  font-size:clamp(42px,5.4vw,64px);
  line-height:1.02;
  letter-spacing:-.04em;
}
.franchise-hero-copy p {
  max-width:550px;
  margin:0 0 11px;
  color:rgba(255,255,255,.94);
  font-size:18px;
  line-height:1.55;
  font-weight:500;
}
.franchise-hero-copy .btn {
  margin-top:19px;
}
.franchise-section-heading {
  max-width:820px;
  margin:0 auto 32px;
  text-align:center;
}
.franchise-section-heading h2 {
  margin:7px 0 0;
  font-size:clamp(34px,5vw,54px);
}
.franchise-benefits-section {
  background:#f3f8fa;
}
.franchise-benefit-card {
  display:grid;
  grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);
  min-height:310px;
  overflow:hidden;
  margin:0 0 26px;
  border:1px solid #d7e5eb;
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 34px rgba(9,47,64,.1);
}
.franchise-benefit-card > img {
  width:100%;
  height:100%;
  min-height:310px;
  object-fit:contain;
  object-position:center;
  background:#edf3f6;
}
.franchise-benefit-card > div {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:34px 40px;
}
.franchise-benefit-card h2 {
  margin:0 0 14px;
  color:#173f53;
  font-size:clamp(30px,3.4vw,40px);
  line-height:1.08;
  letter-spacing:-.035em;
}
.franchise-benefit-card p {
  margin:0 0 13px;
  color:#385665;
  font-size:16px;
  line-height:1.68;
}
.franchise-benefit-reverse > img {
  grid-column:2;
  grid-row:1;
}
.franchise-benefit-reverse > div {
  grid-column:1;
  grid-row:1;
}
.franchise-benefit-card,
.franchise-opportunity-section,
.franchise-status-section {
  scroll-margin-top:190px;
}
.franchise-opportunity-section {
  background:#0c3f56;
  color:#fff;
  font-size:18px;
  line-height:1.68;
}
.franchise-opportunity-section .narrow-content p {
  color:#f4fbfe;
}
.franchise-opportunity-section .narrow-content strong {
  color:#fff;
  font-weight:850;
}
.franchise-opportunity-section .franchise-source-note {
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.3);
  color:#d9ebf2;
  font-size:13px;
  font-weight:500;
  line-height:1.55;
}
.franchise-opportunity-section p:last-child {
  margin-bottom:0;
}
.franchise-status-card {
  display:flex;
  align-items:center;
  gap:26px;
  margin-bottom:26px;
  padding:24px 28px;
  border:1px solid #d7e5eb;
  border-radius:16px;
  background:#f3f8fa;
}
.franchise-status-card img {
  width:112px;
  height:auto;
}
.franchise-status-card p {
  margin:0;
  font-size:1.1rem;
  font-weight:700;
}
.franchise-candidate-copy {
  margin:0 0 22px;
  font-size:1.12rem;
}
.franchise-expertise {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 18px;
  margin:0;
  padding:18px;
  border:1px solid #aebfc7;
  border-radius:10px;
}
.franchise-expertise legend {
  padding:0 6px;
  font-weight:800;
}
.narrow-content form .franchise-expertise label {
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:9px;
  margin:0;
  text-transform:none;
}
.narrow-content form .franchise-expertise input {
  width:20px;
  min-height:20px;
  margin:0;
}

@media (max-width: 760px) {
  .franchise-source-hero {
    min-height:560px;
    background-position:62% center;
  }
  .franchise-source-hero::before {
    background:linear-gradient(90deg,rgba(6,31,44,.96),rgba(6,31,44,.72));
  }
  .franchise-source-hero .container {
    width:min(100% - 32px,760px);
  }
  .franchise-hero-copy {
    max-width:560px;
    margin-left:0;
    padding:54px 0 60px;
  }
  .franchise-hero-copy h1 {
    font-size:clamp(40px,12vw,56px);
  }
  .franchise-hero-copy p {
    font-size:16px;
    line-height:1.52;
  }
  .franchise-benefit-card,
  .franchise-benefit-reverse {
    grid-template-columns:1fr;
  }
  .franchise-benefit-card > img,
  .franchise-benefit-reverse > img {
    grid-column:1;
    grid-row:1;
    min-height:220px;
    max-height:300px;
  }
  .franchise-benefit-card > div,
  .franchise-benefit-reverse > div {
    grid-column:1;
    grid-row:2;
    padding:26px 22px;
  }
  .franchise-status-card {
    align-items:flex-start;
  }
  .franchise-status-card img {
    width:78px;
  }
  .franchise-expertise {
    grid-template-columns:1fr;
  }
}
