/* ============================================
   HOTFIX COUNTERMEASURE LAYER

   What this file is for: targeted, !important-laden overrides for UI bugs
   that are real problems but whose root cause (bad markup, a content
   block, a third-party plugin/layout, a template that needs a rebuild)
   is expensive enough to fix properly that it can't happen right now.
   Not mobile-only by convention - anything that fits this "known issue,
   patch now / root-cause later" shape belongs here, not just responsive
   bugs. This file is enqueued after style.css, so it wins on source
   order without needing extra specificity.

   Rules for adding to this file:
   - One comment block per fix. State WHAT is broken, WHY (the actual
     constraint - content, plugin, template - not just "it's broken"),
     and "Remove when:" the condition that makes it safe to delete.
   - Link the tracking ticket (Asana) in the comment.
   - Keep each fix's selectors/rules together - do not interleave
     unrelated fixes in the same media query block.
   - Every rule here is a liability, not a feature. If you can fix the
     root cause in the same amount of time, do that instead and don't
     add a hotfix at all.

   Asana Tasks: https://app.asana.com/1/14857594277094/project/1212379395920992/task/1216076606330086?focus=true
   Owner: danny.pouley@gordian.com
   ============================================ */
/* ============================================
   QUOTE CARD — typography & quote-mark positioning only.
   Card shell left untouched (no shadow/radius/padding changes).
   Remove when: component rebuilt for real in library cleanup.
   https://app.asana.com/1/14857594277094/project/1212379395920992/task/1216077027460538?focus=true
   ============================================ */
.wp-block-uagb-container img[src*="Quote-Icon"] {
    width: 90px !important;
    height: auto !important;
    margin-bottom: 4px !important;
}

.wp-block-uagb-container .uagb-container-inner-blocks-wrap:has(img[src*="Quote-Icon"]) p:not(.wp-block-paragraph) {
    font-size: 32px !important;
    font-weight: 300 !important;
    line-height: 1.4 !important;
}

.wp-block-uagb-container .uagb-container-inner-blocks-wrap:has(img[src*="Quote-Icon"]) p.wp-block-paragraph strong {
    font-size: 18px !important;
    font-weight: 700 !important;
}

@media only screen and (max-width: 768px) {
    .wp-block-uagb-container img[src*="Quote-Icon"] {
        width: 50px !important;
        margin-bottom: 12px !important;
    }

    .wp-block-uagb-container .uagb-container-inner-blocks-wrap:has(img[src*="Quote-Icon"]) p:not(.wp-block-paragraph) {
        font-size: 20px !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
    }

    /* https://app.asana.com/1/14857594277094/project/1212379395920992/task/1216077027460498?focus=true Footer social icons for mobile align left under chat */
    [data-section="section-fb-social-icons-1"] .footer-social-inner-wrap {
        text-align: left;
    }
}

/* ============================================
   POST TITLE (core/post-title) — resource Custom Layouts (Blog, Infographic,
   Ebook, Video, etc.) each hardcode their own inline font-size on this block
   (e.g. <h1 style="font-size:40px" class="wp-block-post-title">), so sizing
   drifts post to post and can't be fixed per-post without touching every
   layout (or a DB rewrite of ~342 posts). Force it here to mirror the
   gated-splash template's H1 curve (.single-pt_resources .gated-content-wrap h1:
   40/48 -> 32/40 -> 26/32) so untemplated resource titles read identically.
   NOTE: selector is qualified as h1.wp-block-post-title (not bare
   .wp-block-post-title) so it ties `.blog h1` (line 719, which pins the
   default-template title at 40px) on specificity and wins by source order.
   Also covers the plain-<h1> PHP resource templates that set no font-size and
   otherwise keep Astra's default oversized / tight-line-height heading:
     .col-md-12.title h1  -> base single-pt_resources.php + infographic
     #video h1            -> single-pt_resources-video.php + single-pt_resources-webinar.php
     #casestudy h1        -> single-pt_resources-case-study.php + single-pt_resources-featured-image.php
   (Intentionally NOT applied to the report hero (.report-banner h1), a distinct
   hero-over-image treatment.)
   Remove when: post-title sizing is standardized at the block/layout level.
   ============================================ */
h1.wp-block-post-title,
.col-md-12.title h1,
#video h1,
#casestudy h1 {
    font-size: 40px !important;
    line-height: 48px !important;
}

@media only screen and (max-width: 768px) {

    h1.wp-block-post-title,
    .col-md-12.title h1,
    #video h1,
    #casestudy h1 {
        font-size: 32px !important;
        line-height: 40px !important;
    }
}

@media only screen and (max-width: 500px) {

    h1.wp-block-post-title,
    .col-md-12.title h1,
    #video h1,
    #casestudy h1 {
        font-size: 26px !important;
        line-height: 32px !important;
    }
}

/* ============================================
   QUOTE/CALLOUT CARD (core/quote with background + heading link) — used as a
   "resource hub" CTA inside article content. The heading inherits the
   default h4 size, which reads fine on desktop but wraps into an oversized
   block on mobile since the sentence-length link text doesn't get a smaller
   mobile size on its own. Also zero the mobile side margins so the card
   aligns to the article content instead of insetting.
   ============================================ */
@media only screen and (max-width: 768px) {
    .wp-block-quote.has-background .wp-block-heading {
        font-size: 18px !important;
        line-height: 1.4 !important;
    }

    .wp-block-quote.has-background {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* ============================================
   BLOG RESOURCE LAYOUT (Astra Custom Layout "Resource - Blog", hook 10974)
   Byline row + breadcrumb fixes to match the report/other resource templates.
   Remove when: the layout is rebuilt / breadcrumb + byline standardized.
   ============================================ */
/* Keep "By {author}" on a single line, flush left, on mobile. The UAGB row
   otherwise centers and its per-column % widths force a wrap so "By" and the
   author name land on separate lines. */
@media only screen and (max-width: 768px) {
    /* Reproduce the splash template's .resource-meta-row byline: date + knot +
       "By {author}" on ONE inline row. The hook-10974 "Resource - Blog" layout
       (an Astra template-type Custom Layout) instead renders the date
       (.wp-block-post-date) and a full-bleed knot+byline container
       (.uagb-block-de64919c) as stacked blocks, with the knot image forced to
       uag-hide-mob. At <=767px UAGB also sets the inner columns to width:100%
       + flex-wrap:wrap, so the (hidden) knot column wraps onto its own row =
       the tall empty box. We inline the whole meta line and un-hide the knot.
       Root-cause fix belongs in the hook-10974 layout itself (drop uag-hide-mob
       + fix the stacked/full-bleed structure in the block editor). */

    /* date + knot/byline share one wrapping flex row, mirroring .resource-meta-row */
    .astra-advanced-hook-10974 .uagb-block-3a80e63b,
    .astra-advanced-hook-10974 .uagb-block-3a80e63b>.uagb-container-inner-blocks-wrap {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        column-gap: 8px !important;
        row-gap: 4px !important;
    }

    /* pin the date to its content width so the knot/byline can sit beside it */
    .astra-advanced-hook-10974 .wp-block-post-date {
        flex: 0 0 auto !important;
        width: auto !important;
        margin: 0 !important;
    }

    /* strip the knot/byline container's full-bleed width + margins and SHRINK it
       to content (fit-content) - width:auto/100% + max-width:min(100%,767px)
       from UAGB kept it full width and pushed it below the date. Overriding to
       fit-content lets it sit inline beside the date. */
    .astra-advanced-hook-10974 .uagb-block-de64919c,
    .astra-advanced-hook-10974 .uagb-block-2fa4784c,
    .astra-advanced-hook-10974 .uagb-block-e08714ac {
        width: fit-content !important;
        max-width: fit-content !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-top: 0 !important;
        flex: 0 0 auto !important;
    }

    .astra-advanced-hook-10974 .uagb-block-de64919c>.uagb-container-inner-blocks-wrap,
    .astra-advanced-hook-10974 .uagb-block-e08714ac>.uagb-container-inner-blocks-wrap,
    .astra-advanced-hook-10974 .uagb-block-59d6728f>.uagb-container-inner-blocks-wrap {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: fit-content !important;
        max-width: none !important;
        row-gap: 0 !important;
        column-gap: 6px !important;
    }

    /* un-hide the knot on mobile (layout marks it uag-hide-mob) and size it to
       match the splash author avatar */
    .astra-advanced-hook-10974 .uagb-block-7739557b.uag-hide-mob {
        display: block !important;
    }

    .astra-advanced-hook-10974 .uagb-block-7739557b img {
        width: 26px !important;
        height: auto !important;
    }

    /* keep "By {author}" itself on a single line, flush left */
    .astra-advanced-hook-10974 .uagb-block-59d6728f>.uagb-container-inner-blocks-wrap {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        align-items: baseline;
        column-gap: 6px;
    }

    .astra-advanced-hook-10974 .uagb-block-5d06ec1d,
    .astra-advanced-hook-10974 .uagb-block-f99ee1a6 {
        width: auto !important;
        padding-left: 0 !important;
    }

    .astra-advanced-hook-10974 .uagb-block-5d06ec1d {
        margin-right: 5px !important;
    }
}

/* Give the breadcrumb a gutter on mobile so it doesn't sit flush to the
   screen edge (matches the report template's mobile breadcrumb inset). */
@media only screen and (max-width: 768px) {
    .breadcrumbs.ast-container {
        padding-left: 1em;
        padding-right: 1em;
    }
}

/* ============================================
   RESOURCES - VIDEO LAYOUT (Astra Custom Layout "Resources - Video", hook 10833)
   The root container (.uagb-block-3698b108) uses 2em padding on desktop but the
   layout drops it to 2px at <=976px (looks like a 2em -> 2px typo), so the
   title, video and body copy sit flush to the screen edge on tablet/mobile
   while every other resource template has a gutter. Restore a horizontal gutter.
   Remove when: the layout's responsive padding is fixed at the block level.
   ============================================ */
@media only screen and (max-width: 976px) {
    .astra-advanced-hook-10833 .uagb-block-3698b108 {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* ============================================
   CASE-STUDY STATS BLOCK (.stats with .one-third columns, hand-added in post
   content) — the case-study template sets .stats{display:flex} with no wrap, so
   on mobile the three columns can't stack even though .one-third is forced to
   width:100% at <=768px. They stay jammed in one row, collide and run off the
   right edge of the screen. Let the block stack into a single column on mobile,
   and step the stat heading down through the breakpoints (the template pins it
   at 28px at every size).
   Remove when: the .stats content block / template CSS is made responsive.
   ============================================ */
@media only screen and (max-width: 768px) {
    .single-pt_resources .stats {
        flex-direction: column !important;
        row-gap: 22px;
        /* real separation BETWEEN stat groups */
    }

    /* Pair each big number with its caption. The template's padding:1em 0 on the
       number made it float equidistant from its own caption and the next group,
       so the stack read as a flat list. Drop it and let row-gap do the spacing. */
    .single-pt_resources .stats h2.g-blue {
        font-size: 24px !important;
        line-height: 30px !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .single-pt_resources .stats .one-third p.g-blue {
        margin: 2px 0 0 !important;
    }

    /* =============== Products pages(3) ============ */
    .prod-sec1 {
        padding: 0px 10px 10px !important;
    }

    .prod-sec2 h3 {
        margin: 0 !important;
    }

    .wp-block-uagb-container.prod-sec3.uagb-block-6bb21c37.alignfull.uagb-is-root-container,
    .prod-sec5 {
        margin-bottom: 50px !important;
    }

    .prod-sec4 .wp-block-uagb-container.uagb-block-22f00160 {
        padding: 0;
    }

    .prod-sec4-inner {
        padding: 15px !important;
    }

    .wp-block-uagb-container.prod-sec5.uagb-block-bcc5a396.alignfull.uagb-is-root-container {
        margin-bottom: 50px !important;
    }

    #faq {
        margin-bottom: 50px !important;
    }

    .uagb-block-5d59a60c .uagb-faq-questions-button {
        padding: 15px 20px 5px !important;
    }

    .rsmeans-data-onlineblocks {
        padding: 15px !important;
    }

    .footer-overlap-cta {
        padding: 10px 10px 100px !important;
    }

    .rsmeans-faq .uagb-faq-questions,
    {
    display: flex;
    align-items: flex-start;
}

.rsmeans-faq .uagb-question {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.4;
    padding-right: 32px;
    overflow: visible !important;
    white-space: normal !important;
    word-break: break-word;
}

.rsmeans-faq .uagb-faq-item {
    height: auto !important;
}

.assessment-sec-box {
    padding: 15px !important;
    margin: 0 15px 15px !important;
}

h2.big-quote-title {
    font-size: 36px !important;
}

.assessment-contact-box {
    padding: 50px 10px !important;
}

.assessment-contact-box .wp-block-uagb-container.uagb-block-0ed8a775 {
    padding: 50px;
}

}

@media only screen and (max-width: 500px) {
    .single-pt_resources .stats h2.g-blue {
        font-size: 20px !important;
        line-height: 26px !important;
    }

    .joc-program-sec,
    .dotted-border {
        padding: 10px !important;
    }

    .facility-assess-list .uagb-icon-list__label {
        font-size: 16px;
    }

    .wp-block-uagb-container.leader-banner-sec.uag-blocks-common-selector.uagb-block-6a3b3839 {
        padding: 22px;
    }

    .wp-block-uagb-container.uagb-block-eb720381 {
        margin-bottom: 50px !important;
    }

    .leaders-sec .uagb-block-ea27edef,
    .leaders-sec .wp-block-uagb-container {
        padding: 0 0 20px;
    }

    /* ============================================
	   PULLED FROM PRODUCTION 2026-07-16 — these rules were found appended
	   directly to production's style.css (not in git), added after the
	   78fbe12c hotfix-extraction commit. Contractor added them straight to
	   the live file instead of this one.
	   TODO(danny.pouley@gordian.com): backfill WHAT/WHY/Remove-when + Asana
	   ticket per fix, per this file's own rules above. Left as originally
	   written pending that review.
	   ============================================ */
    /*  Resources section */
    .site-content p,
    .site-content li,
    .paged p,
    .paged li {
        font-size: 16px !important;
    }

    .site-content .author-image {
        width: 100px;
        height: auto;
    }

    .about-author h3 {
        margin: 0 0px 1em;
    }

    .about-author {
        border: 1px solid rgb(211, 211, 211) !important;
        padding: 0 !important;
    }

    /* Share media section*/
    .astra-advanced-hook-15020 .wp-block-paragraph {
        position: absolute !important;
        padding: 20px 26px 10px;
    }

    .astra-advanced-hook-15020 .uagb-block-9b90f48d.uagb-social-share__outer-wrap {
        position: relative;
    }

    .searchwp-related {
        margin: 2em 10px;
    }

    .paged .title p,
    .paged .title .post-meta {
        display: inline-flex;
        align-items: center;
        vertical-align: middle;
    }

    .paged .title p {
        margin-right: 12px;
        margin-top: 10px;
    }

    .paged .title .post-meta .item {
        display: inline-flex;
        align-items: center;
    }

    .paged .title .post-meta img {
        margin-right: 6px;
    }

    #video .col-md-12>p,
    #video .col-md-12>.post-meta {
        display: inline-flex !important;
    }

    #video .col-md-12>p {
        margin-right: 12px !important;
    }

    #video .post-meta {
        display: inline-flex !important;
        align-items: center;
    }

    #video h1 {
        padding-bottom: 20px;
    }

    #casestudy .container>p,
    #casestudy .container>.post-meta {
        display: inline-flex !important;
        align-items: center;
        margin: 0;
    }

    #casestudy .container>p {
        margin-right: 12px !important;
    }

    #casestudy .container>.post-meta {
        display: inline-flex !important;
    }

    .site-content h1.wp-block-post-title {
        margin-bottom: 0;
    }

    .single-pt_resources .wp-block-uagb-container.alignfull.uagb-is-root-container {
        margin-top: 10px !important;
    }

    .horizontal-call-out-boxes .uagb-loop-post .wp-block-uagb-container .wp-block-uagb-image__figure a img {
        object-fit: contain;

    }

    .site-content .uagb-container-inner-blocks-wrap {
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .site-content .uagb-container-inner-blocks-wrap .wp-block-post-date,
    .site-content .uagb-container-inner-blocks-wrap .wp-block-uagb-container {
        margin: 0;
    }

    .site-content .uagb-container-inner-blocks-wrap p {
        margin: 0 !important;
    }

	/* ============================================
	   PULLED FROM PRODUCTION 2026-07-16 :
       GOR-WU-DGT- Products Mobile H1 has too much padding
	   https://app.asana.com/1/14857594277094/project/1200410356431734/task/1216077027460537?focus=true
	   ============================================ */
    .pt_press-template-default .wp-block-uagb-container.uagb-block-a41d4b36 {
        padding: 1em;
    }

    .pt_press-template-default .wp-block-post-date {
        padding: 20px 0;
    }

    .pt_press-template-default .wp-block-uagb-social-share.uagb-social-share__outer-wrap.uagb-social-share__layout-horizontal.uagb-block-9b90f48d {
        padding: 10px 0;
    }

    .pt_press-template-default .site-content .uagb-container-inner-blocks-wrap p {
        margin: 0 0px 20px !important;
    }

    .pt_press-template-default .ast-separate-container #content .ast-container {
        padding-left: 0;
        padding-right: 0;
    }


    .horizontal-call-out-boxes .wp-block-uagb-image {
        align-items: flex-start !important;
        justify-content: flex-start !important;
        margin: 0 !important;
        padding: 0 !important;
        min-height: auto !important;
        height: auto !important;
    }

    .horizontal-call-out-boxes .wp-block-uagb-image__figure {
        margin: -29px auto !important;
        padding: 0 !important;
    }

}