/* Fixes from the 2026-10-06 staging review that apply across the page bundles. The bundles themselves are
   unchanged; these rules load from the theme on every page. */

/* Mobile call bar: it sits inside the hero, and the hero's isolated layer painted below later sections, so
   their headings slid over the bar while scrolling on phones. The hero's layer now sits above them. Nothing
   overlaps the hero, so only the fixed bar is affected. */
body #gk-wp-root .gk-hero{z-index:2}

/* Service-area directory: generous column gutters and separate, padded location rows.
   Include the section ID so the older location bundle cannot collapse these gaps. */
/* Keep the final town row clear of the following dark section. */
body #gk-wp-root #service-area-offices{padding-bottom:clamp(48px,6vw,96px)}
body #gk-wp-root #service-area-offices>.gk-shell{display:grid;gap:clamp(28px,3vw,44px)}
body #gk-wp-root #service-area-offices .gk-h2,
body #gk-wp-root #service-area-offices .gk-serif-lead{margin:0}
body #gk-wp-root #service-area-offices .gk-serif-lead{max-width:62ch}
body #gk-wp-root #service-area-offices .gkr-office-columns>ul{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(32px,5vw,80px);margin:16px 0 0;padding:0;list-style:none;
}
body #gk-wp-root #service-area-offices .gkr-office-columns>ul>li{
    display:grid;align-content:start;gap:0;margin:0;padding:clamp(16px,2vw,32px);
    border:1px solid var(--gk-line-on-light,#10182024);
}
body #gk-wp-root #service-area-offices .gkr-office-columns .gk-h3{
    margin:0 0 8px;padding:0 0 20px;border-bottom:1px solid var(--gk-line-on-light,#10182024);
}
body #gk-wp-root #service-area-offices .gkr-office-columns .gk-office__towns{
    margin:0;padding:24px 16px;line-height:1.65;
    transition:background-color .18s ease,color .18s ease;
    border-bottom:1px solid var(--gk-line-on-light,#10182024);
}
body #gk-wp-root #service-area-offices .gkr-office-columns .gk-office__towns:last-child{border-bottom:0;padding-bottom:8px}
body #gk-wp-root #service-area-offices .gkr-office-columns .gk-office__towns strong{display:inline-block;margin-bottom:8px;font-size:1.06em}
body #gk-wp-root #service-area-offices .gkl-community{display:grid;gap:16px;margin-top:clamp(16px,3vw,40px);padding-top:32px;border-top:1px solid var(--gk-line-on-light,#10182024)}
body #gk-wp-root #service-area-offices .gkl-community>*{margin:0}
body #gk-wp-root #service-area-offices a{
    display:inline-block;padding:6px 8px;margin-left:-8px;
    color:var(--gk-ink,#101820);text-decoration-line:underline;text-decoration-color:transparent;
    text-decoration-thickness:2px;text-underline-offset:5px;
    transition:color .18s ease,background-color .18s ease,text-decoration-color .18s ease;
}
body #gk-wp-root #service-area-offices a:hover,
body #gk-wp-root #service-area-offices a:focus-visible{
    /* The page bundle forces inherited link colors with !important. */
    color:var(--gk-yellow,#e3e829) !important;background-color:transparent;
    text-decoration-line:underline;text-decoration-color:var(--gk-yellow,#e3e829);
}
body #gk-wp-root #service-area-offices a:focus-visible{outline:2px solid #101820;outline-offset:3px}
@media(max-width:900px){
    body #gk-wp-root #service-area-offices .gkr-office-columns>ul{grid-template-columns:minmax(0,1fr);gap:28px;margin-top:8px}
    body #gk-wp-root #service-area-offices .gkr-office-columns>ul>li{padding:20px}
    body #gk-wp-root #service-area-offices .gkr-office-columns .gk-office__towns{padding:20px 12px}
}
/* Highlight the complete location row; the link retains its yellow underline. */
body #gk-wp-root #service-area-offices .gk-office__towns:hover,
body #gk-wp-root #service-area-offices .gk-office__towns:focus-within{background-color:#101820;color:#fff !important}
body #gk-wp-root #service-area-offices .gk-office__towns:hover a,
body #gk-wp-root #service-area-offices .gk-office__towns:focus-within a{
    color:var(--gk-yellow,#e3e829) !important;text-decoration-color:var(--gk-yellow,#e3e829);
}
/* Compact city boxes read left to right and wrap into fewer columns on small screens. */
body #gk-wp-root #service-area-offices .gkl-community .gkl-area-directory ul{
    display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;
    margin:8px 0 0;padding:0;list-style:none;
}
body #gk-wp-root #service-area-offices .gkl-community .gkl-area-directory li{margin:0;padding:0;min-width:0}
body #gk-wp-root #service-area-offices .gkl-community .gkl-area-directory a{
    display:flex;align-items:center;justify-content:center;box-sizing:border-box;
    width:100%;height:100%;min-height:52px;padding:14px 10px;margin:0;
    border:1px solid var(--gk-line-on-light,#10182024);font-size:16px;line-height:1.4;
    text-align:center;overflow-wrap:anywhere;
}
body #gk-wp-root #service-area-offices .gkl-community .gkl-area-directory a:hover,
body #gk-wp-root #service-area-offices .gkl-community .gkl-area-directory a:focus-visible{background-color:#101820}
@media(min-width:1800px){body #gk-wp-root #service-area-offices .gkl-community .gkl-area-directory ul{grid-template-columns:repeat(12,minmax(0,1fr))}}
@media(max-width:1100px){body #gk-wp-root #service-area-offices .gkl-community .gkl-area-directory ul{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){body #gk-wp-root #service-area-offices .gkl-community .gkl-area-directory ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
@media(prefers-reduced-motion:reduce){body #gk-wp-root #service-area-offices a,body #gk-wp-root #service-area-offices .gk-office__towns{transition:none}}

/* Service Areas has a longer H1: two white lines, then the office names on one line. */
body #gk-wp-root [data-gk-location="service-areas"] .gk-hero__content{width:100%;max-width:1120px}
body #gk-wp-root [data-gk-location="service-areas"] #gk-hero-title{font-size:clamp(28px,3.3vw,48px) !important;line-height:1.1 !important;max-width:100%}
@media(min-width:768px){body #gk-wp-root [data-gk-location="service-areas"] #gk-hero-title>.gk-accent{white-space:nowrap}}
@media(max-width:767px){body #gk-wp-root [data-gk-location="service-areas"] #gk-hero-title{font-size:clamp(20px,5.6vw,28px) !important}}

/* Large intro paragraphs use the site's main font instead of the serif, whose curly "j" stood out (Jim's
   choice). The bundles mark the serif with !important, so this does too. */
body #gk-wp-root .gk-serif-lead{font-family:var(--gk-font-text) !important;font-weight:400 !important;letter-spacing:-.005em !important;line-height:1.32 !important}

/* "Continue reading" on the area pages: the same spacing as The Villages, with the nearby areas line below. */
body #gk-wp-root .gk-intro__copy>.gk-collapsible+.gkr-nearby,body #gk-wp-root .gk-intro__copy>.gk-collapsible+p{margin-top:clamp(18px,2vw,28px)}

/* /projects/: the Trusty gallery, sized to the gallery's own layout so it never scrolls inside its frame. It
   shows a sideways row below 640px, two columns below 768px and three columns above. */
body #gk-wp-root .gkr-trusty-gallery{container-type:inline-size;margin-top:clamp(20px,2.4vw,32px)}
body #gk-wp-root .gkr-trusty-gallery iframe{display:block;width:100%;height:calc(50cqi + 262px);border:0;background:transparent}
@container (max-width:767.98px){body #gk-wp-root .gkr-trusty-gallery iframe{height:calc(112.5cqi + 322px)}}
@container (max-width:639.98px){body #gk-wp-root .gkr-trusty-gallery iframe{height:672px}}

/* Hide visual photo-source labels and breadcrumb trails across all page templates.
   Keep image metadata and BreadcrumbList structured data intact. */
body .gkg-photo-credit,
body .gk-crumbs,
body .gkr-breadcrumb,
body .gkj-breadcrumb,
body nav[aria-label="Breadcrumb" i]{display:none !important}

/* Extend each existing location link over its entire card without adding tab stops. */
body #gk-wp-root #service-area-offices .gkr-office-columns .gk-office__towns{position:relative}
body #gk-wp-root #service-area-offices .gk-office__towns strong,
body #gk-wp-root #service-area-offices .gk-office__towns a{position:static}
body #gk-wp-root #service-area-offices .gk-office__towns a::after{content:"";position:absolute;inset:0;cursor:pointer}
body #gk-wp-root #service-area-offices .gk-office__towns a:focus-visible::after{outline:2px solid var(--gk-yellow,#e3e829);outline-offset:-2px}

/* Keep the promotional badge hidden even when the review widget resets its inline display. */
.gkr-review-feed .elfsight-app-ff09ab7f-09d0-4abb-aecf-4caa8f29f1b7 a[href^="https://elfsight.com/all-in-one-reviews-widget/"] {
  clip-path: inset(50%) !important;
  pointer-events: none !important;
}

/* Shared mobile comparisons: paired columns with matching feature labels. */
body #gk-wp-root .gk-compare .gkr-compare-feature{display:none}
@media(max-width:767px){
body #gk-wp-root .gk-compare .gk-compare__board{margin-top:24px;border:1px solid #465158}
body #gk-wp-root .gk-compare .gk-compare__figures{gap:0}
body #gk-wp-root .gk-compare .gk-compare__figure:first-child{border-right:1px solid #465158}
body #gk-wp-root .gk-compare .gk-compare__vs{width:44px;height:44px;margin:-22px 0 0 -22px;font-size:16px!important;border-width:3px}
body #gk-wp-root .gk-compare .gk-compare__table{margin:0;border:0}
body #gk-wp-root .gk-compare .gk-compare__table thead{position:sticky;top:var(--gkr-header-h,77px);z-index:3}
body #gk-wp-root .gk-compare .gk-compare__table tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;align-items:stretch;padding:0}
body #gk-wp-root .gk-compare .gk-compare__table th,body #gk-wp-root .gk-compare .gk-compare__table td{min-width:0;border:0;box-shadow:none;overflow-wrap:normal;word-break:normal}
body #gk-wp-root .gk-compare .gk-compare__names th{padding:16px 10px;font-size:clamp(16px,4.4vw,20px)!important;line-height:1.2!important;letter-spacing:-.025em!important;text-align:center;display:flex;align-items:center;justify-content:center}
body #gk-wp-root .gk-compare .gk-compare__names th:nth-child(2){grid-area:1/1;background:#e3e829;color:#101820!important;border-right:1px solid #465158}
body #gk-wp-root .gk-compare .gk-compare__names th:nth-child(3){grid-area:1/2;background:#303b43;color:#fff!important}
body #gk-wp-root .gk-compare .gk-compare__row{position:relative;border-top:1px solid #465158;border-bottom:0}
body #gk-wp-root .gk-compare .gk-compare__row>th{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0}
body #gk-wp-root .gk-compare .gk-compare__row>td{display:flex;flex-direction:column;gap:8px;padding:16px 12px;text-align:left;font-size:14px!important;line-height:1.5!important;font-weight:500!important;color:#f0f2f4!important}
body #gk-wp-root .gk-compare .gk-compare__row>td:nth-child(2){grid-area:1/1;background:#19282f;border-right:1px solid #465158}
body #gk-wp-root .gk-compare .gk-compare__row>td:nth-child(3){grid-area:1/2;background:#222b32}
body #gk-wp-root .gk-compare .gkr-compare-feature{display:block;color:#c5a27d!important;font-size:11px!important;line-height:1.35!important;font-weight:700!important;letter-spacing:.07em!important;text-transform:uppercase}
}

@media(max-width:767px){
body #gk-wp-root .gk-compare .gk-compare__big{font-size:clamp(20px,5.2vw,26px)!important;line-height:1.15!important;white-space:normal}
body #gk-wp-root .gk-compare .gk-compare__unit{margin:0;font-size:11px!important}
}
/* FRSA in the footer logo strip: its dark blue mark sits on a white disc so it reads on the black footer. */
body #gk-wp-root .gk-logo-marquee__logo--frsa img{width:96px;height:96px;padding:5px;border-radius:50%;background:#fff}
