/*
 * Impulsion Site Analyzer.
 * Default look follows the Impulsion site theme: Midnight Blue #0B1528, Gold #C5A059, Night Blue #0B2545,
 * Secondary #D1DCE5, Off Blue-White #F2F9FF; Montserrat headings, Plus Jakarta Sans text; 12px radius, no shadows;
 * gold button with the site's "btnShine" reflect loop. Everything is a CSS variable so Elementor controls can override it.
 */
.isa-app{
	--isa-heading:#0B1528;--isa-text:#1E232A;--isa-muted:#566078;
	--isa-accent:#C5A059;
	--isa-ok:#1e7a3c;--isa-warn:#b36b00;--isa-bad:#c0392b;--isa-track:#D1DCE5;
	--isa-card-bg:#ffffff;--isa-card-line:#D1DCE5;--isa-soft:#F2F9FF;--isa-radius:12px;
	--isa-input-bg:#ffffff;--isa-input-line:#D1DCE5;
	--isa-btn-bg:#C5A059;--isa-btn-color:#0B2545;--isa-btn-bg-h:#D4B06A;--isa-btn-color-h:#0B2545;--isa-btn-shine:rgba(255,255,255,.55);
	--isa-ring:64px;--isa-ring-big:128px;
	max-width:1160px;margin:0 auto;padding:0;color:var(--isa-text);font-family:var(--e-global-typography-text-font-family,'Plus Jakarta Sans'),system-ui,sans-serif;font-size:16px;font-weight:500;line-height:1.6;box-sizing:border-box;position:relative
}
/* For dark sections: same glass look as the site's dark cards (rgba(209,220,229,.12) with a .4 border). */
.isa-app.isa-theme-dark{
	--isa-heading:#ffffff;--isa-text:#D1DCE5;--isa-muted:#aebccb;
	--isa-track:rgba(209,220,229,.22);
	--isa-card-bg:rgba(209,220,229,.12);--isa-card-line:rgba(209,220,229,.4);--isa-soft:rgba(209,220,229,.12);
	--isa-input-bg:rgba(209,220,229,.12);--isa-input-line:rgba(209,220,229,.4);
	--isa-ok:#4cc27a;--isa-warn:#f0a940;--isa-bad:#ff7b6b
}
.isa-app *{box-sizing:border-box}

/* Heading + form */
.isa-title,.isa-card-title,.isa-domain,.isa-summary-title,.isa-psi-title{font-family:var(--e-global-typography-primary-font-family,'Montserrat'),system-ui,sans-serif;font-weight:600;color:var(--isa-heading);margin:0}
.isa-title{font-size:clamp(1.5rem,3vw,1.875rem);line-height:1.25;margin-bottom:.6rem}
.isa-sub{margin:0 0 1.5rem;color:var(--isa-text);line-height:1.65}
.isa-row{display:flex;flex-wrap:wrap;gap:12px}
.isa-input{flex:1 1 260px;min-width:0;padding:16px 20px;font:inherit;border:1px solid var(--isa-input-line);border-radius:var(--isa-radius);background:var(--isa-input-bg);color:var(--isa-heading);transition:border-color .3s,box-shadow .3s}
.isa-input::placeholder{color:var(--isa-muted);opacity:.85}
.isa-input:focus{outline:none;border-color:var(--isa-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--isa-accent) 28%,transparent)}
.isa-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.isa-msg{min-height:1.4em;margin:.7rem 0 0;color:var(--isa-bad);font-weight:600}

/* Buttons: same as the site's .btn-anime gold button (gold, Night Blue text, 12px radius, shine loop) */
.isa-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;padding:16px 40px;font:500 16px/1.4 var(--e-global-typography-text-font-family,'Plus Jakarta Sans'),system-ui,sans-serif;background:var(--isa-btn-bg);color:var(--isa-btn-color);border:0;border-radius:var(--isa-radius);cursor:pointer;text-decoration:none;text-align:center;transition:.3s}
.isa-btn::after{content:"";position:absolute;inset:0;width:35%;background:linear-gradient(90deg,transparent,var(--isa-btn-shine),transparent);transform:translateX(-150%) skewX(-20deg);animation:isaShine 2.8s ease infinite;pointer-events:none}
@keyframes isaShine{0%,55%{transform:translateX(-150%) skewX(-20deg)}100%{transform:translateX(400%) skewX(-20deg)}}
.isa-btn:hover,.isa-btn:focus-visible{background:var(--isa-btn-bg-h);color:var(--isa-btn-color-h)}
.isa-btn:focus-visible{outline:2px solid var(--isa-accent);outline-offset:3px}
.isa-btn:disabled{opacity:.65;cursor:progress}
.isa-btn-ghost{margin-top:1.75rem}

/* Progress */
.isa-progress{margin:1.25rem 0}
.isa-bar{height:8px;background:var(--isa-track);border-radius:99px;overflow:hidden}
.isa-bar-in{display:block;height:100%;width:0;background:var(--isa-accent);transition:width .5s ease}
.isa-plabel{margin:.6rem 0 0;color:var(--isa-muted)}
.isa-out{margin-top:1.75rem}

/* Report header, Google scores, priorities */
.isa-head{display:flex;align-items:center;gap:28px;padding:28px;background:var(--isa-soft);border:1px solid var(--isa-card-line);border-radius:var(--isa-radius);margin-bottom:20px}
.isa-domain{font-size:1.5rem;word-break:break-all}
.isa-overall{margin:.3rem 0 0;color:var(--isa-muted)}
.isa-psi{margin:0 0 20px;padding:20px 24px;background:var(--isa-soft);border:1px solid var(--isa-card-line);border-radius:var(--isa-radius)}
.isa-psi-title{font-size:1rem;margin:0 0 12px}
.isa-psi-row{display:flex;flex-wrap:wrap;gap:28px}
.isa-psi-cell{display:flex;flex-direction:column;align-items:center;gap:6px}
.isa-psi-name{font-size:.85rem;color:var(--isa-muted)}
.isa-note{padding:14px 18px;background:color-mix(in srgb,var(--isa-warn) 12%,transparent);border-left:4px solid var(--isa-warn);border-radius:8px;margin:0 0 20px;color:var(--isa-text)}
.isa-summary{margin:0 0 20px;padding:24px 28px;background:var(--isa-soft);border:1px solid var(--isa-card-line);border-left:4px solid var(--isa-accent);border-radius:var(--isa-radius)}
.isa-summary-title{font-size:1.125rem;margin:0 0 12px}
.isa-summary-list{margin:0;padding-left:1.3em}
.isa-summary-list li{margin:0 0 12px;line-height:1.55;color:var(--isa-text)}
.isa-summary-list li:last-child{margin-bottom:0}
.isa-summary-list strong{display:block;color:var(--isa-heading)}

/* Cards: thin border, 12px radius, no shadow (like the site's cards) */
.isa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.isa-card{background:var(--isa-card-bg);border:1px solid var(--isa-card-line);border-radius:var(--isa-radius);padding:24px 22px 16px;overflow:hidden}
.isa-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.isa-card-title{font-size:1.125rem;line-height:1.3}
.isa-items{list-style:none;margin:0;padding:0}
.isa-item{display:block;border-top:1px solid var(--isa-card-line)}
.isa-item-row{display:flex;gap:12px;align-items:flex-start;width:100%;padding:11px 0;margin:0;background:none;border:0;border-radius:0;font:inherit;color:inherit;text-align:left}
.isa-item:first-child{border-top:0}
.isa-icon{flex:0 0 24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fff;background:#8e98ab;margin-top:1px}
.isa-theme-dark .isa-icon{color:#0B1528}
.isa-item.isa-ok .isa-icon{background:var(--isa-ok)}
.isa-item.isa-warn .isa-icon{background:var(--isa-warn)}
.isa-item.isa-bad .isa-icon{background:var(--isa-bad)}
.isa-item.isa-info .isa-icon{background:#6b7893}
.isa-item-body{display:flex;flex-direction:column;min-width:0;gap:2px}
.isa-item-label{font-weight:600;color:var(--isa-heading);line-height:1.35}
.isa-item-val{font-size:.9rem;color:var(--isa-muted);line-height:1.45;word-break:break-word}
.isa-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.isa-sublist{list-style:none;margin:0 0 10px 36px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.isa-sublist li{font-size:.85rem;padding:4px 10px;border-radius:99px;background:var(--isa-soft);color:var(--isa-text);border:1px solid var(--isa-card-line)}
.isa-sub-broken_links,.isa-sub-top_keywords{flex-direction:column;gap:4px}
.isa-sub-broken_links li,.isa-sub-top_keywords li{border-radius:8px;word-break:break-word}

/* Score rings */
.isa-ring{width:var(--isa-ring);height:var(--isa-ring);flex:0 0 auto}
.isa-ring-big{width:var(--isa-ring-big);height:var(--isa-ring-big)}
.isa-ring-bg{fill:none;stroke:var(--isa-track);stroke-width:7}
.isa-ring-fg{fill:none;stroke-width:7;stroke-linecap:round}
.isa-ring.isa-ok .isa-ring-fg{stroke:var(--isa-ok)}
.isa-ring.isa-warn .isa-ring-fg{stroke:var(--isa-warn)}
.isa-ring.isa-bad .isa-ring-fg{stroke:var(--isa-bad)}
.isa-ring-num{font:600 20px var(--e-global-typography-primary-font-family,'Montserrat'),system-ui,sans-serif;fill:var(--isa-heading)}
.isa-ring-big .isa-ring-num{font-size:36px}

/* Locked teaser */
.isa-locked{border-style:dashed;background:var(--isa-soft)}
.isa-locked-txt{margin:.6rem 0 1rem;color:var(--isa-text);line-height:1.55}
.isa-locked .isa-icon{background:transparent;color:inherit;font-size:1rem}
.isa-locked .isa-btn{margin-top:14px}

@media (max-width:600px){
	.isa-head{flex-direction:column;text-align:center;padding:22px}
	.isa-btn{width:100%;padding:16px 24px}
	.isa-grid{grid-template-columns:1fr}
	.isa-psi-row{justify-content:space-around}
}
@media (prefers-reduced-motion:reduce){
	.isa-btn::after{animation:none;display:none}
	.isa-bar-in,.isa-btn,.isa-input{transition:none}
}

/* Clickable issues: open to read how to fix them */
.isa-item-btn{cursor:pointer;align-items:flex-start}
.isa-item-btn:hover .isa-item-label{text-decoration:underline;text-decoration-color:var(--isa-accent);text-underline-offset:3px}
.isa-item-btn:focus-visible{outline:2px solid var(--isa-accent);outline-offset:2px;border-radius:6px}
.isa-item-btn .isa-item-body{flex:1 1 auto}
.isa-chev{flex:0 0 auto;width:10px;height:10px;margin:7px 4px 0 auto;border-right:2px solid var(--isa-muted);border-bottom:2px solid var(--isa-muted);transform:rotate(45deg);transition:transform .3s}
.isa-item-btn[aria-expanded=true] .isa-chev{transform:rotate(-135deg);margin-top:11px}
.isa-fix{margin:0 0 14px 36px;padding:14px 16px;background:var(--isa-soft);border:1px solid var(--isa-card-line);border-left:3px solid var(--isa-accent);border-radius:8px}
.isa-fix[hidden]{display:none}
.isa-fix-title{margin:0 0 6px;font-family:var(--e-global-typography-primary-font-family,'Montserrat'),system-ui,sans-serif;font-weight:600;font-size:.9rem;color:var(--isa-heading)}
.isa-fix-why{margin:0 0 8px;font-size:.92rem;line-height:1.55;color:var(--isa-text)}
.isa-fix-steps{margin:0;padding-left:1.2em;font-size:.92rem;line-height:1.55;color:var(--isa-text)}
.isa-fix-steps li{margin:0 0 4px}
.isa-limit-note{margin-bottom:20px;line-height:1.55}

/*
 * Theme-proof states. Themes (e.g. Hello Elementor) style button:hover, button:focus and input[type=text]
 * with higher specificity than a plain class, which turned the rows pink and clipped long labels.
 * Elementor widget controls still win because their selectors are longer.
 */
.isa-app .isa-item-row,
.isa-app .isa-item-btn,
.isa-app .isa-item-btn:focus,
.isa-app .isa-item-btn:active{white-space:normal;text-transform:none;letter-spacing:normal;font-weight:inherit;background:transparent;color:inherit;border:0;box-shadow:none;text-decoration:none}
.isa-app .isa-item-btn{padding:11px 8px;margin:0 -8px;width:calc(100% + 16px);border-radius:8px;transition:background-color .2s}
.isa-app .isa-item-btn:hover,
.isa-app .isa-item-btn:focus-visible{background:var(--isa-soft);color:inherit}
.isa-app .isa-item-btn[aria-expanded=true]:not(:hover):not(:focus-visible){background:transparent}
.isa-app .isa-item-btn .isa-item-label{color:var(--isa-heading)}
.isa-app .isa-item-btn:hover .isa-item-val,
.isa-app .isa-item-btn:focus .isa-item-val{color:var(--isa-muted)}

.isa-app .isa-btn{white-space:normal;text-transform:none;letter-spacing:normal;border:0;font-weight:500}
.isa-app .isa-btn:focus,
.isa-app .isa-btn:active{background:var(--isa-btn-bg);color:var(--isa-btn-color);text-decoration:none}
.isa-app .isa-btn:hover{background:var(--isa-btn-bg-h);color:var(--isa-btn-color-h);text-decoration:none}
.isa-app .isa-btn:disabled,.isa-app .isa-btn:disabled:hover{background:var(--isa-btn-bg);color:var(--isa-btn-color)}

.isa-app input.isa-input{width:auto;border:1px solid var(--isa-input-line);border-radius:var(--isa-radius);padding:16px 20px;background-color:var(--isa-input-bg);color:var(--isa-heading)}
.isa-app input.isa-input:focus{border-color:var(--isa-accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--isa-accent) 28%,transparent)}
