/* ===========================================================================
   Florida's Best Roofing — v5 "Hi-Vis Contractor" shared design system
   Used by every page. Edit here once; all pages update.
   =========================================================================== */

:root {
  --yellow: #F3EC20;
  --yellow-dark: #DCD512;
  --black: #0D0D0D;
  --ink: #161616;
  --gray: #54544F;
  --line: #E5E5E0;
  --surface: #F6F6F3;
  --white: #FFFFFF;
  --green: #1E8E3E;
  --fd: 'Archivo Black', 'Arial Black', sans-serif;
  --fc: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --fb: 'Barlow', 'Helvetica Neue', Arial, sans-serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--fb); font-size: 18px; line-height: 1.6; color: var(--ink); background: var(--white); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; }
ul { list-style: none; }

.wrap { max-width: 1280px; margin-inline: auto; padding-inline: 24px; }

h1, h2 { font-family: var(--fd); text-transform: uppercase; line-height: 1.02; letter-spacing: 0; font-weight: 400; overflow-wrap: break-word; }
h3 { font-family: var(--fc); text-transform: uppercase; font-weight: 800; line-height: 1; letter-spacing: .015em; overflow-wrap: break-word; }

/* ===== TOP BAR ===== */
.topbar { background: var(--black); color: #fff; font-size: 14px; font-weight: 500; }
.topbar .wrap { display: flex; justify-content: space-between; align-items: center; min-height: 40px; padding-block: 6px; gap: 10px 18px; flex-wrap: wrap; }
.topbar__left, .topbar__right { display: flex; align-items: center; gap: 18px; min-width: 0; }
.topbar__loc { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.85); min-width: 0; }
.topbar__loc svg { width: 14px; height: 14px; color: var(--yellow); flex-shrink: 0; }
.topbar__mail { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.85); white-space: nowrap; }
.topbar__mail svg { width: 15px; height: 15px; color: var(--yellow); flex-shrink: 0; }
.topbar__mail:hover { color: var(--yellow); }
.topbar__lic { color: rgba(255,255,255,.6); }
.topbar__social { display: flex; align-items: center; gap: 7px; flex-shrink: 0; }
.topbar__social a { display: inline-flex; align-items: center; justify-content: center; width: 27px; height: 27px; color: #fff; border: 1.5px solid rgba(255,255,255,.28); transition: background .15s, color .15s, border-color .15s; }
.topbar__social a:hover { background: var(--yellow); color: var(--black); border-color: var(--yellow); }
.topbar__social svg { width: 14px; height: 14px; }
@media (max-width: 800px) { .topbar__lic { display: none; } .topbar { font-size: 12.5px; } }
@media (max-width: 560px) { .topbar__loc { display: none; } }

/* ===== HEADER ===== */
.header { background: #fff; border-bottom: 3px solid var(--yellow); position: sticky; top: 0; z-index: 50; }
.header .wrap { display: flex; align-items: center; gap: 24px; height: 88px; }
.header__logo img { height: 62px; width: auto; }
.nav { display: flex; gap: 18px; margin-left: auto; align-items: center; }
.nav__top { font-family: var(--fc); font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; color: var(--ink); padding: 6px 0; border-bottom: 3px solid transparent; transition: border-color .15s, color .15s; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; background: none; }
.nav__top:hover, .nav__top.active, .nav a[aria-current="page"] { border-bottom-color: var(--yellow); }
.nav__top svg { width: 12px; height: 12px; transition: transform .15s; }
.nav__item { position: relative; display: flex; align-items: center; }
.nav__item--has-menu::after { content: ''; position: absolute; top: 100%; left: -10px; right: -10px; height: 14px; }
.nav__item--has-menu:hover .nav__top svg, .nav__item--has-menu:focus-within .nav__top svg { transform: rotate(180deg); }
.nav__menu { position: absolute; top: calc(100% + 12px); left: 0; min-width: 250px; background: #fff; border: 3px solid var(--black); box-shadow: 6px 6px 0 var(--yellow); padding: 8px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .15s ease, transform .15s ease; z-index: 60; }
.nav__item--has-menu:hover .nav__menu, .nav__item--has-menu:focus-within .nav__menu { opacity: 1; visibility: visible; transform: translateY(0); }
.nav__menu a { display: block; font-family: var(--fc); font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--ink); padding: 10px 14px; white-space: nowrap; border-bottom: 0; }
.nav__menu a:hover { background: var(--yellow); }
.nav__menu--wide { min-width: 440px; display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.nav__menu--wide .nav__menu-head { grid-column: 1 / -1; font-family: var(--fc); font-size: 11px; font-weight: 800; letter-spacing: .14em; color: var(--gray); padding: 8px 14px 4px; }
.header__phone { display: inline-flex; align-items: center; gap: 10px; line-height: 1; margin-left: 12px; }
.header__phone-label { font-family: var(--fc); font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: #fff; background: var(--green); padding: 5px 9px; }
.header__phone-num { font-family: var(--fc); font-size: 27px; font-weight: 800; color: var(--black); letter-spacing: .01em; display: inline-flex; align-items: center; gap: 8px; }
.header__phone-num svg { width: 19px; height: 19px; color: var(--green); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--fc); font-size: 19px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 15px 28px; background: var(--yellow); color: var(--black); border: 3px solid var(--black); box-shadow: 4px 4px 0 var(--black); transition: transform .12s, box-shadow .12s; }
.btn:hover { transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--black); }
.btn svg { width: 18px; height: 18px; }
.btn--ghost { background: transparent; color: #fff; border-color: #fff; box-shadow: 4px 4px 0 var(--yellow); }
.btn--ghost:hover { background: #fff; color: var(--black); }

/* hamburger + mobile nav */
.hamburger { display: none; margin-left: auto; width: 50px; height: 44px; background: var(--black); color: var(--yellow); align-items: center; justify-content: center; border: 3px solid var(--black); }
.hamburger svg { width: 24px; height: 24px; }
.mobile-nav { display: none; position: fixed; inset: 0; z-index: 60; background: var(--black); color: #fff; flex-direction: column; padding: 24px; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.mobile-nav[data-open="true"] { display: flex; }
.mobile-nav__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.mobile-nav__top img { height: 48px; }
.mobile-nav__close { width: 50px; height: 44px; background: var(--yellow); color: var(--black); border: 3px solid var(--yellow); display: flex; align-items: center; justify-content: center; }
.mobile-nav__close svg { width: 24px; height: 24px; }
.mobile-nav a { font-family: var(--fc); font-size: 30px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: 16px 0; border-bottom: 2px solid rgba(255,255,255,.14); }
.mobile-nav a:last-of-type { border-bottom: 0; }
.mobile-nav .btn { margin-top: 24px; font-size: 22px; }
.mobile-nav__call { margin-top: 18px; font-family: var(--fc); font-size: 34px; font-weight: 800; color: var(--yellow); display: flex; align-items: center; gap: 12px; }
.mobile-nav__call svg { width: 26px; height: 26px; }
.mobile-nav__group { border-bottom: 2px solid rgba(255,255,255,.14); }
.mobile-nav__grouptop { width: 100%; display: flex; align-items: center; justify-content: space-between; background: none; color: #fff; font-family: var(--fc); font-size: 30px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: 16px 0; cursor: pointer; text-align: left; }
.mobile-nav__grouptop svg { width: 22px; height: 22px; transition: transform .2s; flex: none; color: var(--yellow); }
.mobile-nav__group[data-open="true"] .mobile-nav__grouptop svg { transform: rotate(180deg); }
.mobile-nav__sub { display: none; padding: 2px 0 14px 14px; }
.mobile-nav__group[data-open="true"] .mobile-nav__sub { display: block; }
.mobile-nav__sub a { display: block !important; font-size: 20px !important; font-weight: 700 !important; padding: 13px 0 !important; border-bottom: 1px solid rgba(255,255,255,.09) !important; color: rgba(255,255,255,.84); }
.mobile-nav__sub a:last-child { border-bottom: 0 !important; }
@media (max-width: 1100px) { .nav { display: none; } .header__phone { margin-left: auto; } .hamburger { display: inline-flex; margin-left: 0; } }
@media (max-width: 640px) { .header__cta { display: none; } .header .wrap { height: 72px; gap: 16px; } .header__logo img { height: 48px; } }
@media (max-width: 460px) { .header__phone-label { display: none; } .header__phone-num { font-size: 22px; } }

/* ===== HERO (homepage) ===== */
.hero { position: relative; background: var(--black); color: #fff; overflow: hidden; }
.hero::before { content: ''; position: absolute; inset: 0; background: var(--hero-bg, url('https://images.unsplash.com/photo-1581094271901-8022df4466f9?w=1900&q=80&auto=format&fit=crop')) center 30% / cover no-repeat; opacity: .5; }
.hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(0,0,0,.85) 35%, rgba(0,0,0,.4) 75%, rgba(0,0,0,.18) 100%); }
.hero .wrap { position: relative; z-index: 2; display: grid; grid-template-columns: 1.25fr .9fr; gap: 56px; padding-block: 72px 80px; align-items: center; }
.hero__flag { display: inline-flex; align-items: center; gap: 10px; background: var(--yellow); color: var(--black); font-family: var(--fc); font-size: 17px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; padding: 8px 16px; margin-bottom: 26px; }
.hero__flag svg { width: 16px; height: 16px; }
.hero h1 { font-size: clamp(40px, 5vw, 72px); color: #fff; margin-bottom: 14px; }
.hero h1 .yel { color: var(--yellow); }
.hero__sub { font-size: 20px; font-weight: 500; color: rgba(255,255,255,.92); max-width: 560px; margin-bottom: 26px; }
.hero__checks { display: flex; flex-direction: column; gap: 11px; margin-bottom: 28px; }
.hero__checks li { display: flex; align-items: center; gap: 12px; font-size: 17.5px; font-weight: 600; }
.hero__checks svg { width: 22px; height: 22px; color: var(--yellow); flex-shrink: 0; }
.hero__cta-row { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.hero__call-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--yellow); }
.hero__call-num { font-family: var(--fc); font-size: 38px; font-weight: 800; color: #fff; }
@media (max-width: 460px) {
  .hero__cta-row { gap: 14px; }
  .hero__cta-row .btn { width: 100%; }
  .hero__call-num { font-size: 30px; }
}

/* Google Guaranteed badge */
.gg { display: inline-flex; align-items: center; gap: 11px; background: #fff; border-radius: 6px; padding: 10px 16px 10px 12px; box-shadow: 0 2px 10px rgba(0,0,0,.25); }
.gg__shield { width: 30px; height: 34px; flex-shrink: 0; }
.gg__text { line-height: 1.1; }
.gg__g { font-size: 11.5px; font-weight: 700; letter-spacing: .02em; color: #5F6368; display: flex; align-items: center; gap: 4px; }
.gg__g b { color: #4285F4; } .gg__g b:nth-child(2) { color: #EA4335; }
.gg__guar { font-size: 14.5px; font-weight: 800; color: #1E8E3E; letter-spacing: .01em; }

/* form card */
.quote-card { background: #fff; color: var(--ink); border: 3px solid var(--black); box-shadow: 8px 8px 0 var(--yellow); padding: 34px 30px; }
.quote-card h3 { font-size: 33px; color: var(--black); margin-bottom: 6px; }
.quote-card__sub { font-size: 15.5px; color: var(--gray); margin-bottom: 22px; }
.quote-card .fld { width: 100%; height: 58px; padding: 0 18px; font-family: var(--fb); font-size: 17px; font-weight: 500; color: var(--ink); background: var(--surface); border: 2px solid var(--line); margin-bottom: 14px; transition: border-color .15s; }
.quote-card .fld:focus { outline: none; border-color: var(--black); background: #fff; }
.quote-card select.fld { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230D0D0D' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; background-size: 18px; }
.quote-card textarea.fld { height: auto; min-height: 120px; padding: 14px 18px; resize: vertical; }
.quote-card .btn { width: 100%; height: 60px; font-size: 22px; margin-top: 4px; }
.quote-card__note { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13.5px; color: var(--gray); margin-top: 13px; }
.quote-card__note svg { width: 15px; height: 15px; color: var(--green); }

/* lead-capture section (service pages) */
.lead { scroll-margin-top: 96px; }
.lead__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
@media (max-width: 900px) { .lead__grid { grid-template-columns: 1fr; gap: 36px; } }
.lead__phone { display: inline-flex; align-items: center; gap: 12px; font-family: var(--fc); font-size: clamp(34px, 5vw, 44px); font-weight: 800; color: var(--yellow); margin: 16px 0 22px; line-height: 1; }
.lead__phone svg { width: 30px; height: 30px; flex: none; }
.lead__checks { display: grid; gap: 13px; }
.lead__checks li { display: flex; gap: 12px; align-items: flex-start; font-size: 17px; font-weight: 600; color: rgba(255,255,255,.86); }
.lead__checks svg { width: 22px; height: 22px; color: var(--yellow); flex: none; margin-top: 1px; }

@media (max-width: 980px) {
  .hero .wrap { grid-template-columns: 1fr; padding-block: 48px 56px; gap: 36px; }
  .hero h1 { font-size: clamp(34px, 8.5vw, 52px); }
}

/* ===== PAGE HERO (sub-pages) ===== */
.page-hero { position: relative; background: var(--black); color: #fff; overflow: hidden; }
.page-hero::before { content: ''; position: absolute; inset: 0; background-image: var(--hero-img); background-size: cover; background-position: center; opacity: .42; }
.page-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(0,0,0,.86) 30%, rgba(0,0,0,.5) 80%); }
.page-hero .wrap { position: relative; z-index: 2; padding-block: 60px 64px; }
.page-hero h1 { font-size: clamp(34px, 4.4vw, 60px); color: #fff; max-width: 16ch; }
.page-hero h1 .yel { color: var(--yellow); }
.page-hero__sub { font-size: 19px; font-weight: 500; color: rgba(255,255,255,.9); max-width: 620px; margin-top: 16px; }
.page-hero__cta { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; margin-top: 28px; }
.page-hero__phone { font-family: var(--fc); font-size: 30px; font-weight: 800; color: #fff; display: inline-flex; align-items: center; gap: 10px; }
.page-hero__phone svg { width: 22px; height: 22px; color: var(--yellow); }
@media (max-width: 640px) { .page-hero .wrap { padding-block: 40px 44px; } }

/* breadcrumb */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--fc); font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: rgba(255,255,255,.7); margin-bottom: 22px; }
.crumbs a { color: var(--yellow); }
.crumbs a:hover { text-decoration: underline; }
.crumbs span[aria-hidden] { opacity: .5; }

/* ===== TRUST MARQUEE ===== */
.marquee { background: var(--yellow); border-block: 3px solid var(--black); overflow: hidden; }
.marquee__track { display: flex; gap: 56px; padding: 13px 0; white-space: nowrap; animation: slide 28s linear infinite; width: max-content; }
@keyframes slide { to { transform: translateX(-50%); } }
.marquee span { font-family: var(--fc); font-size: 19px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--black); display: inline-flex; align-items: center; gap: 14px; }
.marquee svg { width: 17px; height: 17px; }
@media (prefers-reduced-motion: reduce) { .marquee { overflow-x: auto; } .marquee__track { animation: none; } }

/* ===== SECTIONS ===== */
.sec { padding-block: 88px; }
.sec--gray { background: var(--surface); }
.sec--black { background: var(--black); color: #fff; }
.sec-head { margin-bottom: 44px; }
.sec-head--center { text-align: center; }
.sec-head--center p { margin-inline: auto; }
.kicker { display: inline-block; font-family: var(--fc); font-size: 17px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--black); background: var(--yellow); padding: 5px 12px; margin-bottom: 16px; }
.sec h2 { font-size: clamp(32px, 3.8vw, 54px); color: var(--black); }
.sec--black h2 { color: #fff; }
.sec-head p { font-size: 19px; color: var(--gray); max-width: 680px; margin-top: 14px; }
.sec--black .sec-head p { color: rgba(255,255,255,.75); }
@media (max-width: 640px) { .sec { padding-block: 56px; } }

/* services */
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 1080px) { .svc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .svc-grid { grid-template-columns: 1fr; } }
.svc { border: 3px solid var(--black); background: #fff; transition: transform .15s, box-shadow .15s; display: flex; flex-direction: column; }
.svc:hover { transform: translate(-3px,-3px); box-shadow: 6px 6px 0 var(--yellow); }
.svc img { aspect-ratio: 4/3; object-fit: cover; width: 100%; border-bottom: 3px solid var(--black); }
.svc__body { padding: 20px 20px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.svc h3 { font-size: 27px; color: var(--black); }
.svc__tag { font-family: var(--fc); font-size: 15px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--green); display: inline-flex; align-items: center; gap: 7px; }
.svc__tag svg { width: 14px; height: 14px; }
.svc p { font-size: 15.5px; color: var(--gray); line-height: 1.5; }
.svc__link { margin-top: auto; padding-top: 12px; font-family: var(--fc); font-size: 18px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--black); display: inline-flex; align-items: center; gap: 8px; }
.svc__link svg { width: 18px; height: 18px; transition: transform .15s; }
.svc:hover .svc__link svg { transform: translateX(4px); }
.svc__body h3 svg { width: 22px; height: 22px; vertical-align: -3px; margin-right: 4px; color: var(--green); flex: none; }

/* projects gallery — masonry + lightbox */
.gal { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; grid-auto-flow: dense; gap: 18px; }
@media (max-width: 1080px) { .gal { grid-template-columns: 1fr 1fr; grid-auto-rows: 190px; } }
@media (max-width: 560px) { .gal { grid-template-columns: 1fr; grid-auto-rows: 250px; } }
.gal-item { position: relative; border: 3px solid var(--black); overflow: hidden; cursor: zoom-in; background: var(--black); margin: 0; }
.gal-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, opacity .35s ease; }
.gal-item:hover img { transform: scale(1.05); opacity: .82; }
.gal-item--w2 { grid-column: span 2; }
.gal-item--h2 { grid-row: span 2; }
@media (max-width: 560px) { .gal-item--w2 { grid-column: span 1; } .gal-item--h2 { grid-row: span 1; } }
.gal-cap { position: absolute; left: 0; right: 0; bottom: 0; background: rgba(13,13,13,.92); border-top: 3px solid var(--yellow); padding: 10px 14px; }
.gal-cap b { font-family: var(--fc); text-transform: uppercase; font-size: 16.5px; font-weight: 800; letter-spacing: .04em; color: #fff; display: block; line-height: 1.15; }
.gal-cap span { font-size: 12.5px; color: rgba(255,255,255,.75); }
.gal-zoom { position: absolute; top: 10px; right: 10px; width: 38px; height: 38px; background: var(--yellow); border: 2px solid var(--black); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .2s; pointer-events: none; }
.gal-item:hover .gal-zoom { opacity: 1; }
.gal-zoom svg { width: 18px; height: 18px; }

/* lightbox */
.lb { position: fixed; inset: 0; z-index: 200; background: rgba(8,8,8,.96); display: none; flex-direction: column; align-items: center; justify-content: center; padding: 24px; }
.lb[data-open="true"] { display: flex; }
.lb img { max-width: min(1100px, 92vw); max-height: 70vh; object-fit: contain; border: 3px solid #fff; }
.lb-cap { margin-top: 18px; text-align: center; color: #fff; max-width: 760px; }
.lb-cap b { font-family: var(--fc); font-size: 26px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; display: block; }
.lb-cap span { color: rgba(255,255,255,.7); font-size: 15px; }
.lb-btn { position: absolute; width: 52px; height: 52px; background: var(--yellow); border: 3px solid var(--black); display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; }
.lb-btn svg { width: 22px; height: 22px; }
.lb-btn:hover { background: var(--yellow-dark); }
.lb-close { top: 22px; right: 22px; }
.lb-prev { left: 22px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 22px; top: 50%; transform: translateY(-50%); }
.lb-count { position: absolute; top: 34px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.7); font-family: var(--fc); font-size: 17px; font-weight: 700; letter-spacing: .12em; }
@media (max-width: 640px) { .lb { padding: 12px; } .lb-prev { left: 8px; } .lb-next { right: 8px; } .lb-close { top: 10px; right: 10px; } .lb img { max-height: 56vh; } .lb-cap b { font-size: 20px; } }

/* video embed (16:9) */
.video-wrap { max-width: 940px; margin: 0 auto; }
.video-frame { position: relative; aspect-ratio: 16 / 9; border: 3px solid var(--black); box-shadow: 10px 10px 0 var(--yellow); background: var(--black); }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-note { text-align: center; margin-top: 28px; font-weight: 600; color: var(--gray); }
@media (max-width: 640px) { .video-frame { box-shadow: 6px 6px 0 var(--yellow); } }

/* stats / about */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
@media (max-width: 800px) { .stats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .stats { gap: 20px 14px; } .stat { padding-left: 13px; } .stat__n { font-size: 34px; } }
@media (max-width: 400px) { .stat__n { white-space: normal; } }
.stat { border-left: 4px solid var(--yellow); padding-left: 20px; min-width: 0; }
.stat__n { font-family: var(--fd); font-size: clamp(44px, 4.6vw, 68px); color: #fff; line-height: .95; white-space: nowrap; }
.stat__l { font-size: 14.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: rgba(255,255,255,.7); margin-top: 8px; }
.sec:not(.sec--black) .stat__n { color: var(--black); }
.sec:not(.sec--black) .stat__l { color: var(--gray); }
.about-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
@media (max-width: 900px) { .about-grid { grid-template-columns: 1fr; gap: 40px; } }
.about-grid img { border: 3px solid #fff; box-shadow: 10px 10px 0 var(--yellow); width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.about-copy p { font-size: 18px; color: rgba(255,255,255,.85); margin-bottom: 18px; }
.about-copy .stats { grid-template-columns: repeat(3, 1fr); margin-top: 34px; gap: 24px; }
.about-copy .stat__n { font-size: clamp(28px, 3vw, 46px); }
@media (max-width: 640px) {
  .about-copy .stats { grid-template-columns: 1fr; gap: 18px; }
}

/* materials & pricing */
.mat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 980px) { .mat-grid { grid-template-columns: 1fr; } }
.mat { background: #fff; border: 3px solid var(--black); display: flex; flex-direction: column; }
.mat img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-bottom: 3px solid var(--black); }
.mat__body { padding: 24px; }
.mat h3 { font-size: 28px; margin-bottom: 4px; }
.mat__price { font-family: var(--fc); font-size: 21px; font-weight: 800; color: var(--green); text-transform: uppercase; margin-bottom: 14px; }
.mat dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; font-size: 15.5px; }
.mat dt { font-weight: 700; text-transform: uppercase; font-size: 12.5px; letter-spacing: .06em; color: var(--gray); align-self: center; }
.mat dd { color: var(--ink); }

/* steps */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.steps--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1080px) { .steps--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 860px) { .steps { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .steps--4 { grid-template-columns: 1fr; } }
.step { background: #fff; border: 3px solid var(--black); padding: 32px 28px; position: relative; }
.sec--gray .step, .sec--black .step { background: #fff; }
.step__n { position: absolute; top: -26px; left: 22px; width: 52px; height: 52px; background: var(--yellow); border: 3px solid var(--black); display: flex; align-items: center; justify-content: center; font-family: var(--fd); font-size: 24px; }
.step h3 { font-size: 26px; margin: 16px 0 10px; color: var(--black); }
.step p { font-size: 16px; color: var(--gray); }

/* reviews TABS */
.rtabs { display: flex; gap: 0; border: 3px solid var(--black); width: max-content; max-width: 100%; overflow-x: auto; margin-bottom: 30px; }
.rtab { font-family: var(--fc); font-size: 18px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 14px 26px; background: #fff; color: var(--ink); border-right: 3px solid var(--black); display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.rtab:last-child { border-right: 0; }
.rtab[data-on="true"] { background: var(--black); color: var(--yellow); }
.rtab__score { font-size: 14px; font-weight: 700; opacity: .75; }
@media (max-width: 640px) { .rtabs { width: auto; } .rtab { flex: 1 1 0; justify-content: center; padding: 12px 8px; font-size: 14px; gap: 5px; } .rtab__score { font-size: 11px; } }
.rev-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 900px) { .rev-grid { grid-template-columns: 1fr; } }
.rev { background: #fff; border: 3px solid var(--black); padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.rev__top { display: flex; justify-content: space-between; align-items: center; }
.rev__stars { display: flex; gap: 3px; }
.rev__stars svg { width: 19px; height: 19px; fill: #F5A623; }
.rev__date { font-size: 13px; color: var(--gray); }
.rev p { font-size: 16.5px; line-height: 1.55; }
.rev__who { margin-top: auto; padding-top: 14px; border-top: 2px solid var(--line); font-weight: 700; font-size: 15.5px; }
.rev__who span { display: block; font-weight: 500; font-size: 13.5px; color: var(--gray); }
.rev-foot { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: 38px; flex-wrap: wrap; }
.rev-foot__score { font-family: var(--fc); font-size: 30px; font-weight: 800; display: flex; align-items: center; gap: 12px; }
.rev-foot__score svg { width: 26px; height: 26px; fill: #F5A623; }
[data-panel] { display: none; }
[data-panel][data-on="true"] { display: grid; }

/* storm strip */
.storm { background: var(--black); border-block: 3px solid var(--yellow); color: #fff; }
.storm .wrap { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-block: 34px; flex-wrap: wrap; }
.storm__txt { display: flex; align-items: center; gap: 18px; }
.storm__txt svg { width: 44px; height: 44px; color: var(--yellow); flex-shrink: 0; }
.storm__txt h3 { font-size: 28px; color: #fff; }
.storm__txt p { font-size: 15.5px; color: rgba(255,255,255,.75); }

/* FAQ */
.faq { max-width: 880px; }
.faq details { border: 3px solid var(--black); background: #fff; margin-bottom: 14px; }
.faq summary { font-family: var(--fc); font-size: 21px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: 20px 24px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; color: var(--black); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; font-family: var(--fd); font-size: 24px; color: var(--black); background: var(--yellow); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border: 2px solid var(--black); }
.faq details[open] summary::after { content: '–'; }
.faq details > p { padding: 0 24px 22px; font-size: 16.5px; color: var(--gray); max-width: 760px; }

/* service area + interactive map */
.area-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: start; }
@media (max-width: 900px) { .area-grid { grid-template-columns: 1fr; } }
.area-copy p { font-size: 17px; color: var(--gray); margin-bottom: 16px; }
.city-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.city-chip { font-family: var(--fc); font-size: 17px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; border: 3px solid var(--black); background: #fff; padding: 9px 15px; display: inline-flex; align-items: center; gap: 8px; transition: background .15s, box-shadow .15s, transform .15s; cursor: pointer; }
.city-chip:hover { background: var(--yellow); }
.city-chip[data-on="true"] { background: var(--yellow); box-shadow: 3px 3px 0 var(--black); transform: translate(-1px,-1px); }
.city-chip svg { width: 15px; height: 15px; }

/* mobile: ensure touch targets meet the 44px minimum (keep visual size; expand hit area) */
@media (max-width: 640px) {
  .topbar__social a { position: relative; }
  .topbar__social a::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 44px; height: 44px; }
  .rtab { min-height: 44px; }
  .city-chip { min-height: 44px; }
  .gal-zoom { width: 44px; height: 44px; }
}

.map-panel { position: relative; border: 3px solid var(--black); background: linear-gradient(180deg, #DFF1F7 0%, #EAF6FA 70%, #F4FAFC 100%); padding: 18px; }
.map-panel svg.flmap { width: 100%; height: auto; display: block; }
.fl-shape { fill: var(--yellow); stroke: var(--black); stroke-width: 3; stroke-linejoin: round; }
.fl-radius { fill: none; stroke: var(--black); stroke-width: 1.5; stroke-dasharray: 5 6; opacity: .5; }
.pin circle.dot { fill: var(--black); stroke: #fff; stroke-width: 2; r: 5; cursor: pointer; transition: r .15s; }
.pin text { font-family: var(--fb); font-size: 10.5px; font-weight: 700; fill: var(--black); pointer-events: none; opacity: 0; transition: opacity .2s; }
.pin[data-on="true"] circle.dot { fill: #fff; stroke: var(--black); stroke-width: 3; r: 7; }
.pin[data-on="true"] text { opacity: 1; }
.pin circle.ring { fill: none; stroke: var(--black); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; }
.pin[data-on="true"] circle.ring { animation: ping 1.6s ease-out infinite; }
@keyframes ping { 0% { opacity: .85; transform: scale(.5); } 100% { opacity: 0; transform: scale(2.4); } }
@media (prefers-reduced-motion: reduce) { .pin circle.ring { animation: none !important; } }
.hq path { fill: var(--black); }
.hq text { font-family: var(--fc); font-size: 11px; font-weight: 800; letter-spacing: .06em; fill: var(--black); }
.map-card { position: absolute; top: 18px; left: 18px; background: #fff; border: 3px solid var(--black); box-shadow: 4px 4px 0 var(--black); padding: 14px 18px; max-width: 240px; }
.map-card__city { font-family: var(--fc); font-size: 24px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; line-height: 1; }
.map-card__meta { font-size: 13.5px; color: var(--gray); margin-top: 5px; }
.map-card__meta b { color: var(--green); }
@media (max-width: 560px) { .map-card { position: static; margin-bottom: 12px; max-width: none; box-shadow: none; } }

/* reveal animations */
.rv { opacity: 0; transform: translateY(22px); transition: opacity .55s ease, transform .55s ease; }
.rv.on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .rv { opacity: 1; transform: none; transition: none; } }
@keyframes heroIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.hero .wrap > div:first-child { animation: heroIn .65s ease both .05s; }
.hero .quote-card { animation: heroIn .65s ease both .2s; }
@media (prefers-reduced-motion: reduce) { .hero .wrap > div:first-child, .hero .quote-card { animation: none; } }

/* blog */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 980px) { .blog-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .blog-grid { grid-template-columns: 1fr; } }
.post { border: 3px solid var(--black); background: #fff; display: flex; flex-direction: column; transition: transform .15s, box-shadow .15s; }
.post:hover { transform: translate(-3px,-3px); box-shadow: 6px 6px 0 var(--yellow); }
.post__media { position: relative; }
.post__media img { aspect-ratio: 16/9; object-fit: cover; width: 100%; border-bottom: 3px solid var(--black); }
.post__cat { position: absolute; bottom: -2px; left: 14px; background: var(--yellow); border: 2px solid var(--black); font-family: var(--fc); font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; padding: 4px 10px; }
.post__body { padding: 24px 22px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.post__date { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--gray); }
.post h3 { font-size: 24px; color: var(--black); line-height: 1.05; }
.post p { font-size: 15.5px; color: var(--gray); line-height: 1.55; }
.post__link { margin-top: auto; padding-top: 12px; font-family: var(--fc); font-size: 18px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--black); display: inline-flex; align-items: center; gap: 8px; }
.post__link svg { width: 18px; height: 18px; transition: transform .15s; }
.post:hover .post__link svg { transform: translateX(4px); }
.post--soon { opacity: .62; pointer-events: none; }
.post--soon .post__cat { background: var(--line); }

/* ===== SPLIT (2-col image + copy) ===== */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.split--rev .split__media { order: 2; }
.split__media img { border: 3px solid var(--black); box-shadow: 10px 10px 0 var(--yellow); width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.split__copy h2 { margin-bottom: 18px; }
.split__copy > p { font-size: 17.5px; color: var(--gray); margin-bottom: 16px; line-height: 1.6; }
.split__copy .btn { margin-top: 10px; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; gap: 36px; } .split--rev .split__media { order: 0; } }

/* checklist */
.checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 28px; margin-top: 8px; }
@media (max-width: 640px) { .checklist { grid-template-columns: 1fr; } }
.checklist li { display: flex; gap: 12px; font-size: 16.5px; font-weight: 500; align-items: flex-start; line-height: 1.4; }
.checklist svg { width: 24px; height: 24px; color: var(--green); flex-shrink: 0; }
.checklist--dark li { color: #fff; }

/* values / why-us grid */
.values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
@media (max-width: 980px) { .values { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .values { grid-template-columns: 1fr; } }
.value { border: 3px solid var(--black); background: #fff; padding: 28px 24px; }
.value__icn { width: 54px; height: 54px; background: var(--yellow); border: 3px solid var(--black); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.value__icn svg { width: 28px; height: 28px; color: var(--black); }
.value h3 { font-size: 23px; color: var(--black); margin-bottom: 8px; }
.value p { font-size: 15.5px; color: var(--gray); line-height: 1.5; }

/* timeline */
.timeline { display: grid; gap: 0; max-width: 820px; }
.tl { display: grid; grid-template-columns: 92px 1fr; gap: 56px; padding-bottom: 32px; position: relative; }
.tl:not(:last-child)::before { content: ''; position: absolute; left: 119px; top: 34px; bottom: -6px; width: 3px; background: var(--black); }
.tl__yr { font-family: var(--fd); font-size: 26px; color: var(--black); position: relative; }
.tl__yr::after { content: ''; position: absolute; left: 108px; top: 4px; width: 18px; height: 18px; background: var(--yellow); border: 3px solid var(--black); border-radius: 50%; z-index: 1; }
.tl__body h3 { font-size: 22px; color: var(--black); margin-bottom: 6px; }
.tl__body p { font-size: 16px; color: var(--gray); line-height: 1.55; }
@media (max-width: 560px) { .tl { grid-template-columns: 1fr; gap: 6px; } .tl::before, .tl__yr::after { display: none; } }

/* article prose */
.article { max-width: 760px; margin-inline: auto; }
.article p { font-size: 18px; line-height: 1.75; color: var(--ink); margin-bottom: 22px; }
.article h2 { font-size: clamp(26px, 3vw, 36px); color: var(--black); margin: 44px 0 16px; }
.article h3 { font-size: 23px; color: var(--black); margin: 32px 0 12px; }
.article ul, .article ol { margin: 0 0 22px 0; padding-left: 0; }
.article ul li, .article ol li { position: relative; font-size: 18px; line-height: 1.7; color: var(--ink); padding-left: 34px; margin-bottom: 12px; list-style: none; }
.article ul li::before { content: ''; position: absolute; left: 0; top: 9px; width: 14px; height: 14px; background: var(--yellow); border: 2px solid var(--black); }
.article ol { counter-reset: oli; }
.article ol li { counter-increment: oli; }
.article ol li::before { content: counter(oli); position: absolute; left: 0; top: 2px; width: 24px; height: 24px; background: var(--black); color: var(--yellow); font-family: var(--fc); font-weight: 800; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.article blockquote { border-left: 5px solid var(--yellow); background: var(--surface); padding: 20px 26px; margin: 0 0 26px; font-size: 20px; font-weight: 500; color: var(--black); }
.article figure { margin: 0 0 26px; }
.article figure img { border: 3px solid var(--black); width: 100%; }
.article figcaption { font-family: var(--fc); font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--gray); margin-top: 10px; }
.article a:not(.btn) { color: var(--green); font-weight: 700; text-decoration: underline; }
.article__lead { font-size: 21px !important; font-weight: 500; color: var(--black) !important; }
.article hr { border: 0; border-top: 3px solid var(--black); margin: 40px 0; }

/* post meta header */
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 18px; font-family: var(--fc); font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: rgba(255,255,255,.75); }
.post-meta .tag { background: var(--yellow); color: var(--black); padding: 4px 12px; }

/* blog post layout + sidebar */
.post-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 56px; align-items: start; }
@media (max-width: 980px) { .post-layout { grid-template-columns: 1fr; gap: 40px; } }
.post-layout .article { max-width: none; margin: 0; text-align: left; }
.post-sidebar { display: flex; flex-direction: column; gap: 22px; position: sticky; top: 104px; }
@media (max-width: 980px) { .post-sidebar { position: static; } }
.sbcard { border: 3px solid var(--black); background: #fff; padding: 24px 22px; }
.sbcard h3 { font-family: var(--fc); font-size: 20px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; color: var(--black); margin-bottom: 14px; }
.sbcard--dark { background: var(--black); color: #fff; box-shadow: 6px 6px 0 var(--yellow); }
.sbcard--dark h3 { color: #fff; }
.sbcard--dark p { font-size: 15px; color: rgba(255,255,255,.8); margin-bottom: 14px; line-height: 1.5; }
.sbcard__phone { font-family: var(--fc); font-size: 28px; font-weight: 800; color: var(--yellow); display: inline-flex; align-items: center; gap: 10px; margin: 2px 0 16px; line-height: 1; }
.sbcard__phone svg { width: 20px; height: 20px; flex: none; }
.sbcard--dark .btn { width: 100%; border-color: var(--yellow); box-shadow: 4px 4px 0 var(--yellow); }
.sblist { display: flex; flex-direction: column; }
.sblist a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 0; border-bottom: 2px solid var(--line); font-family: var(--fc); font-weight: 700; text-transform: uppercase; font-size: 14.5px; letter-spacing: .03em; color: var(--ink); transition: color .15s, padding-left .15s; }
.sblist a:last-child { border-bottom: 0; }
.sblist a:hover { color: var(--green); padding-left: 5px; }
.sblist svg { width: 15px; height: 15px; color: var(--green); flex: none; }
.sbcontact { font-size: 15.5px; line-height: 1.55; color: var(--ink); }
.sbcontact a { color: var(--ink); font-weight: 600; }
.sbcontact a:hover { color: var(--green); }
.sbcontact .lbl { font-family: var(--fc); font-weight: 800; text-transform: uppercase; font-size: 11.5px; letter-spacing: .08em; color: var(--gray); display: block; margin-top: 13px; margin-bottom: 1px; }
.sbcontact .lbl:first-child { margin-top: 0; }

/* contact grid */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; gap: 36px; } }
.contact-info { display: flex; flex-direction: column; gap: 24px; }
.contact-row { display: flex; gap: 16px; align-items: flex-start; }
.contact-row__icn { width: 50px; height: 50px; background: var(--yellow); border: 3px solid var(--black); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-row__icn svg { width: 24px; height: 24px; color: var(--black); }
.contact-row h3 { font-size: 20px; color: var(--black); margin-bottom: 4px; }
.contact-row p, .contact-row a { font-size: 16.5px; color: var(--gray); line-height: 1.5; }
.contact-row a:hover { color: var(--green); }
.contact-map { border: 3px solid var(--black); margin-top: 8px; }
.contact-map iframe { display: block; width: 100%; height: 300px; border: 0; filter: grayscale(.3) contrast(1.05); }

/* related row reuses .svc-grid / .blog-grid; helper for 2-up */
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 900px) { .related-grid { grid-template-columns: 1fr; } }

/* carriers logos row */
.carriers { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.carrier { font-family: var(--fc); font-size: 19px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--black); border: 3px solid var(--black); background: #fff; padding: 14px 22px; }

/* final CTA */
.final { background: var(--yellow); border-top: 3px solid var(--black); }
.final .wrap { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: center; padding-block: 80px; }
@media (max-width: 900px) { .final .wrap { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .final .wrap { padding-bottom: 96px; } }
.final h2 { font-size: clamp(30px, 4.6vw, 64px); color: var(--black); margin-bottom: 14px; }
.final p { font-size: 19px; font-weight: 500; color: rgba(13,13,13,.75); max-width: 520px; }
.final__card { background: var(--black); color: #fff; padding: 40px 36px; box-shadow: 8px 8px 0 #fff; }
.final__card .hero__call-label { color: var(--yellow); }
.final__card .hero__call-num { font-size: 42px; }
.final__card .btn { width: 100%; margin-top: 22px; border-color: var(--yellow); box-shadow: 4px 4px 0 var(--yellow); }
.final__or { text-align: center; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.5); margin-top: 18px; }

/* footer */
.footer { background: var(--black); color: rgba(255,255,255,.8); padding-block: 64px 32px; }
.footer .wrap { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; }
@media (max-width: 900px) { .footer .wrap { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer .wrap { grid-template-columns: 1fr; } }
.footer img { height: 70px; width: auto; margin-bottom: 18px; }
.footer h4 { font-family: var(--fc); font-size: 18px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--yellow); margin-bottom: 14px; }
.footer p, .footer a { font-size: 15.5px; line-height: 1.9; color: rgba(255,255,255,.75); }
.footer a:hover { color: var(--yellow); }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.15); margin-top: 48px; padding-top: 24px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13.5px; color: rgba(255,255,255,.45); }
.footer__social { display: flex; gap: 10px; margin-top: 20px; }
.footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 2px solid rgba(255,255,255,.25); color: #fff; transition: background .15s, color .15s, border-color .15s; }
.footer__social a:hover { background: var(--yellow); border-color: var(--yellow); color: var(--black); }
.footer__social svg { width: 19px; height: 19px; }

/* Blog pagination — windowed pager (1 … current±1 … last + prev/next) */
.pager { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; align-items: center; margin-top: 48px; font-family: var(--fc); font-weight: 700; font-size: 18px; }
.pager a { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; padding: 0 12px; border: 3px solid var(--black); background: #fff; color: var(--ink); text-decoration: none; transition: background .12s, color .12s; }
.pager a:hover { background: var(--yellow); }
.pager a.is-active { background: var(--black); color: #fff; pointer-events: none; }
.pager a.pager__nav { padding: 0 10px; }
.pager a.pager__nav svg { width: 18px; height: 18px; display: block; }
.pager .pager__gap { padding: 0 2px; color: var(--gray); letter-spacing: .05em; }
@media (max-width: 560px) { .pager { gap: 6px; font-size: 16px; } .pager a { min-width: 40px; height: 40px; padding: 0 9px; } }
