/* Public link labels keep their color and keyboard focus treatment in every state. */
a:any-link, a:any-link :where(u, ins, span, strong, em, [style*="text-decoration"]) {
  text-decoration-line: none !important;
}

/* The existing case-study outline component, shared only by explicit template opt-in.
   Links retain href/labels. Amber actions, paragraph links and directories are not targeted. */
.ims-link-actions.ims-link-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:18px;list-style:none;padding:0}
.ims-link-actions.ims-link-actions>li{display:flex;margin:0;min-width:0;max-width:100%;padding:0;border:0}
a.ims-link-action.ims-link-action,
.ims-link-actions.ims-link-actions>a:not(.button-coral):not(.ims-service-areas-button),
.ims-link-actions.ims-link-actions>li>a{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;min-width:164px;max-width:100%;min-height:56px;height:auto;padding:13px 22px;border:2px solid #78cedc;border-radius:17px;background:#071222;color:#a4e8f1;text-decoration:none;text-transform:none;letter-spacing:.035em;font-family:inherit;font-size:12px;font-weight:700;line-height:1.4;text-align:center;white-space:normal;overflow-wrap:anywhere;transition:background-color .2s,color .2s,border-color .2s}
a.ims-link-action.ims-link-action:hover,
.ims-link-actions.ims-link-actions>a:not(.button-coral):not(.ims-service-areas-button):hover,
.ims-link-actions.ims-link-actions>li>a:hover{background:rgba(120,206,220,.12);border-color:#a4e8f1;color:var(--ims-aqua);text-decoration:none}
a.ims-link-action.ims-link-action:focus-visible,
.ims-link-actions.ims-link-actions>a:not(.button-coral):not(.ims-service-areas-button):focus-visible,
.ims-link-actions.ims-link-actions>li>a:focus-visible{outline:3px solid #a4e8f1;outline-offset:4px}
.ims-contact-page__explore{align-items:center}
.ims-contact-page__explore h2{margin:0}
.ims-contact-page__explore .ims-link-actions{flex:1}
.ims-sv__related-links.ims-link-actions{grid-template-columns:none}
.ims-case__related.ims-link-actions{justify-content:center}
@media(max-width:640px){
 .ims-link-actions.ims-link-actions{width:100%;gap:12px;flex-direction:column}
 .ims-link-actions.ims-link-actions>a,.ims-link-actions.ims-link-actions>li,.ims-link-actions.ims-link-actions>li>a{width:100%;min-width:0}
 .ims-case>.container:last-child .ims-case__related.ims-link-actions{display:flex;gap:12px}
}
@media(prefers-reduced-motion:reduce){a.ims-link-action,.ims-link-actions.ims-link-actions>a,.ims-link-actions.ims-link-actions>li>a{transition:none}}

/* Shared project actions and readable semantic text links. */
.ims-project-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;margin-top:22px}
.ims-project-actions>a.ims-project-action{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:48px;max-width:100%;height:auto;padding:12px 18px;border-radius:17px;font:700 12px/1.4 var(--body);letter-spacing:.02em;text-transform:none;text-align:center;text-decoration:none;white-space:normal}
.ims-project-actions>a.ims-project-action:hover{text-decoration:none}
.ims-project-actions>a.ims-project-action--website{background:var(--ims-sunset);border:2px solid var(--ims-sunset);color:var(--ims-bg-primary);box-shadow:none}
.ims-project-actions>a.ims-project-action--website:hover{background:var(--ims-coral);border-color:var(--ims-coral);color:var(--ims-bg-primary)}
.fw-actions>.ims-project-actions{margin:0}.fw-actions>.ims-project-actions>a::after{content:none}
.ims-pf-website__foot>.ims-project-actions{margin-top:0}.ims-pf-website__foot:has(.ims-project-actions){display:block}
.ims-about__work-project>.ims-project-actions{justify-content:center}
.ims-link-actions.ims-related-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:14px;margin:24px 0 0}
.ims-related-services.ims-link-actions>li>a{width:100%;min-width:0}
:is(.ims-article-content,.ims-interior,.ims-service__context,.ims-design-pricing,.ims-entity,.ims-entity-links,.ims-about__body,.ims-sv__body,.ims-current-case__content) :is(p,li,dd)>a:not(.button):not(.ims-link-action){color:var(--ims-text-link,var(--ims-aqua));font-weight:700;text-decoration:none;transition:color .18s}
:is(.ims-article-content,.ims-interior,.ims-service__context,.ims-design-pricing,.ims-entity,.ims-entity-links,.ims-about__body,.ims-sv__body,.ims-current-case__content) :is(p,li,dd)>a:not(.button):not(.ims-link-action):hover{color:var(--ims-text-link-hover,var(--ims-text-primary));text-decoration:none}
:is(.has-white-background-color,.ims-light){--ims-text-link:#006879;--ims-text-link-hover:#004451}
main a:focus-visible{outline:3px solid currentColor;outline-offset:4px;text-decoration:none}
.ims-service__text-link,.ims-web-portfolio__text-link{border-bottom:0;text-transform:none;color:var(--ims-aqua)}
.ims-about__text-link:any-link,.ims-service__project-copy .ims-service__text-link:any-link{border-bottom-width:0}
.ims-service__text-link:hover,.ims-web-portfolio__text-link:hover{color:var(--ims-text-primary)}
.ims-service-areas-mega :is(a:hover,a:focus-visible){text-decoration:none;color:var(--ims-text-primary)}
.ims-service-areas-mega .ims-service-areas-button:hover{color:var(--ims-bg-primary)}

/* Shared compact project links. One presentation for homepage and geographic galleries. */
.ims-home-preview { display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:18px;min-width:0;align-content:start; }
.ims-home-preview__screens { display:block;position:relative;min-width:0;padding:0 9% 5% 0;isolation:isolate; }
.ims-device-single, .ims-device-single__image { display:block; }
.ims-home-preview__desktop { display:block;aspect-ratio:36/25;border:1px solid color-mix(in srgb,var(--ims-aqua) 60%,transparent);border-radius:9px;overflow:hidden;box-shadow:0 4px 0 var(--ims-bg-secondary),0 18px 32px color-mix(in srgb,var(--ims-ink) 28%,transparent);background:var(--ims-bg-primary); }
.ims-home-preview__mobile { display:block;position:absolute;right:0;bottom:0;width:23%;aspect-ratio:390/844;border:3px solid var(--ims-bg-primary);outline:1px solid var(--ims-aqua);border-radius:12px;overflow:hidden;box-shadow:-6px 10px 20px color-mix(in srgb,var(--ims-ink) 40%,transparent); }
.ims-home-preview__screens img { display:block;width:100%;height:100%;object-fit:contain;object-position:top;background:var(--ims-bg-primary); }
.ims-home-preview .ims-home-preview__name :is(h3,h4) { margin:0;font:var(--ims-heading-weight) clamp(18px,1.6vw,23px)/var(--ims-heading-leading, var(--ims-leading-heading)) var(--display);letter-spacing:var(--ims-heading-tracking, var(--ims-tracking-heading));text-transform:none; }
.ims-home-preview__name a { color:var(--ims-text-primary);text-decoration:none; }
.ims-home-preview__name a:hover { color:var(--aqua);text-decoration:none; }
.ims-home-preview a:focus-visible { outline:3px solid var(--aqua);outline-offset:5px; }
.ims-home-preview .ims-home-preview__status { margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--aqua); }
.ims-home-preview .ims-home-preview__pending { margin:0;align-self:center;color:var(--aqua);font-size:15px;font-weight:600; }
.ims-home-preview .ims-home-preview__visit { justify-self:start;min-height:46px;padding:14px 22px;color:var(--ims-bg-primary);text-decoration:none; }
.ims-home-preview .ims-home-preview__visit:hover { color:var(--ims-bg-primary);text-decoration:none; }
.ims-project-preview-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px; }
@media(max-width:1100px){.ims-project-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ims-project-preview-grid{grid-template-columns:minmax(0,1fr);gap:36px}.ims-home-preview .ims-home-preview__name :is(h3,h4){font-size:21px}}

/* Full-portfolio actions opt into the existing shared outline button. */
.button.ims-full-portfolio { color:var(--ims-aqua);max-width:100%;white-space:normal;text-align:center;text-transform:none;text-decoration:none; }
.button.ims-full-portfolio:hover { text-decoration:none; }

/* Keep the homepage button treatment in reading order across public CTA groups.
   The SEO hero also has a separate phone link after its two actions. */
:is(.ims-riverwalk__actions, .fw-portfolio-actions, .fw-actions, .ims-project-actions,
    .ims-coast-hero-actions, .ims-about__actions, .ims-case__actions, .ims-legacy__actions,
    .ims-service__actions, .ims-sa-actions, .ims-sa-request-actions, .ims-tampa-hero__actions,
    .ims-link-actions, .ims-entity__hub-actions, .button-row, .wp-block-buttons):where(:not(.ims-county-links)):has(> :nth-child(2):last-child),
.ims-project-actions--home:has(> a.button-outline:only-child),
.ims-service__actions:has(> a[href^="tel:"]:nth-child(3):last-child) {
  align-items: stretch;

  & > :is(a, button):nth-child(-n+2),
  & > :is(li, .wp-block-button):nth-child(-n+2) > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .7em;
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    padding: 16px clamp(14px, 1.6vw, 24px);
    border: 1px solid var(--ims-cyan);
    border-radius: 6px;
    background: color-mix(in srgb, var(--ims-surface) 35%, transparent);
    color: var(--ims-aqua);
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--ims-aqua) 16.08%, transparent), 0 3px 0 var(--ims-bg-primary);
    font: 800 12px/1.5 var(--body);
    letter-spacing: .035em;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    white-space: normal;

    &:hover {
      background: var(--ims-surface);
      border-color: var(--ims-aqua);
      color: var(--ims-aqua);
      text-decoration: none;
    }
    &:focus-visible { outline: 3px solid var(--ims-aqua); outline-offset: 4px; }
  }

  & > :is(a, button):first-child:not(:only-child),
  & > :is(li, .wp-block-button):first-child > a {
    background: var(--ims-sunset);
    border-color: var(--ims-sunset);
    color: var(--ims-bg-primary);
    box-shadow: 0 3px 0 color-mix(in srgb, var(--ims-warm-deep) 60%, var(--ims-bg-primary)), 0 8px 24px color-mix(in srgb, var(--ims-ink) 20%, transparent);

    &:hover { background: var(--ims-coral); border-color: var(--ims-coral); color: var(--ims-bg-primary); }
  }
}
