/* IRIS guardian system: bright violet, quiet surfaces, mint for progress. */
:root { --violet:#bf8cff; --hot:#e1c8ff; --green:#99ffc2; --guardian-mint:#99ffc2; }
.device-module { --green:#99ffc2; }
.device-intro,.module-banner { background:radial-gradient(ellipse at 90% 15%,#7747fa25,transparent 62%),linear-gradient(120deg,#15102a,#100c22); border:1px solid #8f65d34a; box-shadow:inset 0 1px #e5d2ff0b,0 24px 72px #05030c60; border-radius:26px; overflow:hidden; }
.guardian-hero-layout { grid-template-columns:minmax(0,1.35fr) minmax(240px,.85fr); gap:30px; align-items:center; }
.device-intro h3 span,.module-banner h1 span,.module-banner h2 span,.module-banner h3 span { color:#c999ff; }
.device-intro h3 { font-size:clamp(32px,3.4vw,48px); letter-spacing:-1.6px; line-height:1.13; }
.guardian-family { position:relative; display:flex; flex-direction:column; gap:16px; min-width:0; padding:8px 10px; }
.guardian-family .guardian-portrait { position:relative; display:block; aspect-ratio:1; width:min(100%,310px); overflow:hidden; border-radius:24%; border:1px solid #c5a0ff45; background:#151032; box-shadow:0 0 66px #8755ff35,inset 0 0 0 8px #b786ff08; }
.guardian-portrait img { position:absolute; width:250%; max-width:none; height:auto; left:-75%; top:-58%; border:0; border-radius:0; }
.guardian-portrait::after { content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 8px #11102840; background:linear-gradient(0deg,#171032,transparent 23%); }
.guardian-family .guardian-presence { display:flex; flex-direction:row; gap:8px; align-items:center; font:9px/1.5 "IBM Plex Mono",monospace; letter-spacing:.07em; color:#c4b0e4; }
.guardian-presence i { height:6px; width:6px; background:var(--green); border-radius:50%; box-shadow:0 0 15px #99ffc290; }
.guardian-steps li.done > button > span:first-child,.guardian-steps .done button > span:first-child { background:var(--green); color:#142b23; box-shadow:0 0 15px #99ffc21a; }
.guardian-steps .done small,.guardian-safeguards .done,.device-dot.online { color:var(--green); }
.device-module progress { accent-color:var(--green); }
.device-module progress::-webkit-progress-value { background:linear-gradient(90deg,#a979ff,var(--green)); }
.companion-badge { position:relative; display:grid; place-items:center; flex:0 0 auto; width:58px; height:58px; border-radius:18px; background:#fff; color:#2c1b5f; box-shadow:0 5px 16px #05021140; }
.companion-badge > svg { width:34px; height:34px; color:#2c1b5f; flex:none; }
.companion-badge .companion-platform { position:absolute; display:grid; place-items:center; width:25px; height:25px; top:-7px; right:-6px; background:#fff; border-radius:50%; border:2px solid #514078; box-shadow:0 3px 8px #0005; }
.companion-platform img { width:17px; height:17px; display:block; }
.chrome-mark { display:block; width:17px; height:17px; border-radius:50%; background:conic-gradient(#e94b42 0 120deg,#f8cf47 120deg 240deg,#45a85f 240deg 360deg); position:relative; }
.chrome-mark:after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; background:#4795e8; border:1px solid white; left:4px; top:4px; }
.guardian-overview-cards { gap:20px; }
.guardian-overview-cards button { padding:22px; gap:20px; background:linear-gradient(135deg,#36206490,#17102f); border:1px solid #b68cf94d; border-radius:25px; box-shadow:inset 0 2px #e2caff18,0 12px 22px #0004; }
.guardian-overview-cards button:hover { background:linear-gradient(135deg,#51318490,#20133d); border-color:#c994ff; transform:translateY(-2px); }
.guardian-overview-cards button > .companion-badge { display:grid; flex:0 0 58px; }
.guardian-overview-cards button b { font-size:clamp(16px,1.9vw,22px); font-weight:600; }
.guardian-overview-cards button small { color:#c4aedf; font-size:12px; line-height:1.5; }
.guardian-overview-cards .companion-action-chip { padding:8px 10px; border-radius:99px; background:var(--green); color:#193b2d; font:600 9px/1.3 "IBM Plex Mono",monospace; box-shadow:0 0 24px #99ffc233; white-space:nowrap; }
.companion-tabs button { min-height:88px; gap:18px; }
.companion-tabs button[aria-selected=true] { background:linear-gradient(125deg,#42266a80,#251836); border-color:#bc88ff66; }
.companion-tabs .companion-badge,.companion-section-icon .companion-badge { width:40px; height:40px; border-radius:12px; }
.companion-tabs .companion-badge > svg,.companion-section-icon .companion-badge > svg { width:25px; height:25px; }
.companion-tabs .companion-platform,.companion-section-icon .companion-platform { width:20px; height:20px; top:-4px; right:-5px; }
.companion-tabs .companion-platform img,.companion-section-icon .companion-platform img { width:13px; height:13px; }
.companion-tabs .chrome-mark,.companion-section-icon .chrome-mark { transform:scale(.8); }
.finding-assessment,.guardian-monitoring { padding:18px; border:1px solid #a875ed40; border-radius:15px; background:#9868ef09; margin:16px 0; }
.finding-assessment > b,.guardian-monitoring > b { display:block; color:var(--green); font-size:17px; }
.companion-plan-banner { padding:18px 20px; margin:18px 0; border:1px solid #a57dd344; border-radius:15px; background:#221631; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; color:#eae1f8; }
.companion-plan-banner p,.companion-plan-banner span { color:#bba9d0; font-size:13px; margin:6px 0 0; }
.companion-plan-banner a { color:var(--green); }
.module-banner { position:relative; display:flex; justify-content:space-between; align-items:center; gap:28px; padding:clamp(26px,4vw,48px); margin:0 0 28px; }
.module-banner > div { max-width:640px; }
.module-banner h1,.module-banner h2 { margin:16px 0 18px; font-size:clamp(30px,4vw,46px); letter-spacing:-1.5px; line-height:1.13; }
.module-banner p { color:#bcafd0; font-size:16px; line-height:1.75; max-width:560px; margin:0; }
.module-banner .module-emblem { display:grid; place-items:center; flex:0 0 120px; width:120px; height:120px; border:1px solid #c297ff55; border-radius:30px; background:linear-gradient(130deg,#b685ff20,#3b246522); color:var(--green); box-shadow:0 0 55px #b16eff20; }
.module-emblem svg { width:64px; height:64px; stroke-width:1.3; }
.module-page .module-banner { margin:0 0 24px; }
.pro-comparison { width:100%; border-collapse:collapse; margin:28px 0 0; font-size:14px; }
.pro-comparison th,.pro-comparison td { padding:16px; text-align:left; border-bottom:1px solid #b482ff20; }
.pro-comparison th { color:var(--hot); }
.pro-comparison th:last-child,.pro-comparison td:last-child { background:#a471ef0b; color:var(--green); }
@media(max-width:900px) { .guardian-overview-cards .companion-action-chip { display:none; } .guardian-hero-layout { grid-template-columns:1.3fr .8fr; gap:18px; } .guardian-family .guardian-presence { font-size:7px; } }
@media(max-width:600px) { .guardian-hero-layout { grid-template-columns:1fr; } .guardian-family { padding:8px 35px 0; } .guardian-family .guardian-portrait { width:210px; } .guardian-family .guardian-presence { font-size:8px; } .guardian-overview-cards button { border-radius:22px; } .companion-tabs button { gap:10px; font-size:12px; min-height:80px; } .module-banner { align-items:flex-start; gap:10px; } .module-banner .module-emblem { width:56px; height:56px; flex-basis:56px; border-radius:16px; } .module-emblem svg { width:32px; height:32px; } .pro-comparison th,.pro-comparison td { padding:12px 6px; font-size:12px; } }
@media(prefers-reduced-motion:reduce) { .guardian-overview-cards button:hover { transform:none; } }

.upgrade-hero.module-banner { text-align:left; margin-bottom:28px; }
.upgrade-hero.module-banner .availability { justify-content:flex-start; margin-bottom:0; }
.upgrade-hero.module-banner h1 { font-size:clamp(34px,4vw,52px); }
.upgrade-hero .module-emblem { font-size:76px; }
.plan-comparison { margin:36px 0; padding:26px; border:1px solid #b482ff30; border-radius:22px; background:#120c1d; }
.module-page[data-module=identity] .identity-intro h3,.module-page[data-module=breaches] .identity-intro h3 { font-size:30px; line-height:1.2; letter-spacing:-.8px; }

.identity-email-picker{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 20px;color:#c9bedc;font-size:13px}.identity-email-picker select{max-width:100%;padding:12px 16px;border:1px solid #694693;border-radius:12px;background:#201335;color:#fff;font:inherit}

/* The overview carries the same guardian language as the full module pages. */
.iris-hero .hero-label { color:var(--guardian-mint); font-size:10px; }
.iris-hero .hero-label i { background:var(--guardian-mint); box-shadow:0 0 14px #99ffc280; flex:none; }
.iris-hero .hero-copy p { max-width:480px; font-size:15px; }
#tools .section-heading h2 { font-size:clamp(25px,2.7vw,34px); font-weight:600; letter-spacing:-.8px; }
#tools .tool-grid { grid-template-columns:minmax(0,1fr); grid-auto-rows:1fr; gap:22px; }
#tools .tool-card { display:grid; grid-template-columns:minmax(0,1fr) 112px; align-items:center; gap:40px; min-height:264px; padding:32px 40px; border:1px solid #a778ec55; border-radius:26px; overflow:hidden; background:radial-gradient(ellipse at 88% 25%,#8d4fff38,transparent 62%),linear-gradient(120deg,#22133e,#120d25); box-shadow:inset 0 1px #e5d2ff12,0 18px 48px #05030c50; }
#tools .tool-card:hover { border-color:#c999ff; background:radial-gradient(ellipse at 88% 25%,#9b65ff48,transparent 65%),linear-gradient(120deg,#2d1a4e,#19102e); box-shadow:inset 0 1px #e5d2ff20,0 0 36px #a66cff1a; }
#tools .tool-card .tool-icon { grid-column:2; grid-row:1; width:112px; height:112px; padding:26px; border:1px solid #c297ff55; border-radius:29px; background:linear-gradient(130deg,#b685ff20,#3b246522); color:var(--guardian-mint); box-shadow:0 0 55px #b16eff25; }
#tools .tool-card .tool-copy { grid-column:1; grid-row:1; padding:0; gap:13px; max-width:710px; }
#tools .tool-card .tool-eyebrow { padding:0; font-size:10px; color:var(--guardian-mint); }
#tools .tool-card .tool-copy b { font-size:clamp(25px,2.8vw,34px); font-weight:600; line-height:1.2; letter-spacing:-.8px; color:var(--ink); }
#tools .tool-card .tool-copy small { max-width:600px; font-size:16px; line-height:1.75; color:#c5b6dc; }
#tools .tool-card .tool-action { font-size:14px; color:#ddc2ff; margin-top:6px; }
#tools .tool-card > em { display:block; top:auto; right:40px; bottom:22px; width:112px; text-align:center; color:#d5bbee; background:#ad7ff512; border-color:#b887f53d; border-radius:6px; font-size:9px; letter-spacing:1px; padding:5px 8px; }
#tools .tool-card.done { border-color:#99ffc260; }
#tools .tool-card.done > em { color:var(--guardian-mint); border-color:#99ffc245; }
@media(max-width:900px) {
  #tools .tool-card { gap:24px; padding:28px; grid-template-columns:minmax(0,1fr) 90px; }
  #tools .tool-card .tool-icon { width:90px; height:90px; padding:20px; border-radius:24px; }
  #tools .tool-card > em { right:28px; width:90px; }
}
@media(max-width:600px) {
  .iris-hero .hero-label { font-size:9px; letter-spacing:1px; }
  .iris-hero .hero-copy p { font-size:14px; }
  #tools .tool-card { grid-template-columns:minmax(0,1fr); align-content:start; gap:20px; min-height:320px; padding:24px; border-radius:22px; }
  #tools .tool-card .tool-icon { grid-column:1; grid-row:1; width:56px; height:56px; padding:12px; border-radius:16px; }
  #tools .tool-card .tool-copy { grid-column:1; grid-row:2; gap:12px; }
  #tools .tool-card .tool-copy b { font-size:25px; }
  #tools .tool-card .tool-copy small { font-size:14px; line-height:1.7; }
  #tools .tool-card .tool-eyebrow { font-size:9px; }
  #tools .tool-card > em { top:38px; bottom:auto; right:24px; width:auto; min-width:70px; }
}
