/* Shared focus without perimeter rings. Selection and press feedback stay independent. */
:root{--focus-ink:#194f36;--focus-fill:#edf5ef}
*,*::before,*::after{outline:0!important}

/* Text remains identifiable without drawing a rectangle around its hit area. */
a[href]:focus-visible,button:focus-visible,summary:focus-visible,[role="button"]:focus-visible,[role="tab"]:focus-visible,[role="option"]:focus-visible,[role="menuitem"]:focus-visible{
 text-decoration-line:underline;text-decoration-thickness:2px;text-underline-offset:.22em;
}
:is(button,summary,[role="button"],[role="tab"]):not(.paid-button):not(.journey-button):focus-visible{
 background-color:var(--focus-fill);color:var(--focus-ink);
}
:is(input,select,textarea):focus-visible{
 border-color:var(--focus-ink)!important;box-shadow:inset 0 -2px var(--focus-ink)!important;background-color:#f7fbf8;
}
/* Scroll regions get a small inset cue; no outer ring or changed geometry. */
:is([tabindex="0"],.accessible-table-scroll,.matrix-scroll,.loan-table-scroll):not(a):not(button):not(input):not(select):not(textarea):not(summary):not([role="button"]):not([role="tab"]):focus-visible{
 box-shadow:inset 0 -3px var(--focus-ink);
}
/* Image-only links need feedback even when there is no visible link text. */
a[href]:focus-visible img{filter:brightness(.85)}

/* Rich card links keep their body copy clean while identifying the keyboard target. */
.journey-rail a:focus-visible{background-color:var(--focus-fill);text-decoration:none}
.journey-rail a:focus-visible :is(h3,span:last-child){text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
:is(.logo-link,a[aria-label="Torino · Inicio"],a[aria-label="Torino — inicio"],a[aria-label="Torino, inicio"]):focus-visible{box-shadow:inset 0 -3px var(--focus-ink)}

label:has(input[type="checkbox"]:focus-visible),label:has(input[type="radio"]:focus-visible){text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}

/* Hidden radios/checkboxes transfer feedback to the visible option, not a 1px input. */
:root :is(.choice-chip,.paid-chips label):has(input:focus-visible)>span,
:root :is(.requirement-row,.paid-requirement,.journey-check):has(input:focus-visible),
.cc-compare input:focus-visible ~ .box{
 background-color:var(--focus-fill);box-shadow:inset 0 -3px var(--focus-ink)!important;
 text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em;
}
:root :is(.choice-chip,.paid-chips label) input:focus-visible{box-shadow:none!important}
#site-search-results a:focus-visible{background-color:var(--focus-fill)}
#site-search-results a:focus-visible strong{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}

/* Programmatic results remain findable after keyboard or pointer calculation. */
:is(.calculation-focus,.loan-result,.loan-error,#lead-status):focus{box-shadow:inset 3px 0 var(--focus-ink)}

/* High contrast can suppress shadows: underline plus an inset-side border remain visible. */
@media(forced-colors:active){
 :root{--focus-ink:Highlight;--focus-fill:Canvas}
 :is(input,select,textarea):focus-visible{border-color:Highlight!important}
 input[type="range"]:focus-visible{border-block-end:3px solid Highlight}
 :is(button,summary,[role="button"],[role="tab"]):focus-visible,
 :root :is(.choice-chip,.paid-chips label):has(input:focus-visible)>span,
 :root :is(.requirement-row,.paid-requirement,.journey-check):has(input:focus-visible),
 .cc-compare input:focus-visible ~ .box,
 label:has(input[type="checkbox"]:focus-visible),label:has(input[type="radio"]:focus-visible){
  forced-color-adjust:none;background-color:Highlight!important;color:HighlightText!important;
 }
 :is([tabindex="0"],.accessible-table-scroll,.matrix-scroll,.loan-table-scroll,.calculation-focus,.loan-result,.loan-error,#lead-status):not(a):not(button):focus-visible,
 :is(.logo-link,a[aria-label="Torino · Inicio"],a[aria-label="Torino — inicio"],a[aria-label="Torino, inicio"]):focus-visible{
  border-block-end:3px solid Highlight;
 }
 a[href]:focus-visible:has(img){border-block-end:3px solid Highlight}
}

/* Comfortable footer logo hit target. */
.publication-foot-grid>div>a[aria-label="Torino, inicio"]{display:inline-flex;align-items:center;min-height:44px;max-width:100%;vertical-align:top}
