/* ---------- module tiles (ERP dashboard style) ---------- */
.mod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
@media(max-width:1100px){.mod-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:760px){.mod-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:440px){.mod-grid{grid-template-columns:1fr;}}
.mod{display:flex;align-items:center;gap:12px;border:1px solid var(--g200);border-radius:14px;background:#fff;padding:14px 16px;transition:all .18s var(--ease);text-align:left;}
.mod:hover{border-color:var(--g300);box-shadow:var(--shadow);}
.mod .mi{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:15px;flex:0 0 auto;}
.mod strong{font-size:13px;flex:1;min-width:0;letter-spacing:-.1px;}
.mod .chev{color:var(--g300);font-size:11px;flex:0 0 auto;}
.mod-lbl{display:flex;align-items:center;gap:12px;margin:34px 0 16px;}
.mod-lbl:first-child{margin-top:0;}
.mod-lbl .ic{width:38px;height:38px;border-radius:11px;background:var(--red-soft);color:var(--red);display:flex;align-items:center;justify-content:center;font-size:14px;}
.mod-lbl h3{font-size:17px;letter-spacing:-.4px;}
.mod-lbl p{font-size:12px;color:var(--g500);font-weight:600;margin-top:1px;}
.mod-lbl .cnt{margin-left:auto;background:var(--g100);border-radius:999px;padding:5px 13px;font-size:11px;font-weight:800;color:var(--g600);white-space:nowrap;}

/* ---------- centered feature tiles (LMS / marketing style) ---------- */
.tile-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.tile-grid.g4{grid-template-columns:repeat(4,1fr);}
.tile-grid.g2{grid-template-columns:repeat(2,1fr);max-width:640px;}
@media(max-width:1100px){.tile-grid.g4{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.tile-grid.g2{grid-template-columns:1fr 1fr;}}
@media(max-width:1100px){.tile-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:640px){.tile-grid{grid-template-columns:1fr 1fr;}}
.tile{position:relative;border:1px solid var(--g200);border-radius:16px;background:#fff;padding:26px 14px 20px;text-align:center;transition:all .2s var(--ease);}
.tile:hover{border-color:var(--g300);box-shadow:var(--shadow);}
.tile .ti{width:54px;height:54px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:19px;margin-bottom:12px;}
.tile strong{display:block;font-size:13px;line-height:1.35;letter-spacing:-.1px;}
.tile.ai{background:linear-gradient(160deg,#FFF6F5,#fff);border-color:var(--pink-1);}
.tile .new{position:absolute;top:10px;right:10px;background:var(--red);color:#fff;border-radius:999px;padding:3px 10px;font-size:9px;font-weight:800;letter-spacing:.4px;}

/* ---------- home school rails (Airbnb style) ---------- */
.rails{padding:44px 0 10px;}
.rail{margin-bottom:38px;position:relative;}
.rail-h{display:flex;align-items:center;gap:9px;margin-bottom:14px;}
.rail-h h3{font-size:20px;letter-spacing:-.6px;}
.rail-h .more{width:28px;height:28px;border-radius:50%;background:var(--g100);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-size:11px;transition:all .18s ease;}
.rail-h .more:hover{background:var(--ink);color:#fff;transform:translateX(2px);}
.rail-h .nav{margin-left:auto;display:flex;gap:8px;}
.rail-h .nav button{width:30px;height:30px;border-radius:50%;border:1px solid var(--g200);background:#fff;color:var(--ink);font-size:10px;display:flex;align-items:center;justify-content:center;transition:all .18s ease;}
.rail-h .nav button:hover:not(:disabled){border-color:var(--ink);}
.rail-h .nav button:disabled{opacity:.3;cursor:default;}
.rail-track{display:flex;align-items:flex-start;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 2px 8px;scroll-behavior:smooth;}
.rail-track::-webkit-scrollbar{display:none;}
/* explicit width + height so every card and photo is pixel-identical
   in every rendering engine, with or without aspect-ratio support */
.rcard{flex:0 0 216px;width:216px;scroll-snap-align:start;cursor:pointer;background:none;border:none;padding:0;text-align:left;font-family:inherit;}
@media(max-width:640px){.rcard{flex-basis:172px;width:172px;}}
.rcard .im{display:block;position:relative;width:100%;height:205px;border-radius:16px;overflow:hidden;background:var(--g100);}
@media(max-width:640px){.rcard .im{height:163px;}}
.rcard .im img{width:100%;height:100%;object-fit:cover;transition:transform .45s var(--ease);}
.rcard:hover .im img{transform:scale(1.06);}
.rcard .gtag{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.97);border-radius:999px;padding:4px 11px;font-size:10.5px;font-weight:800;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.14);display:inline-flex;align-items:center;gap:4px;}
.rcard .gtag.unverified{background:rgba(225,29,72,.95);color:#fff;}
.rcard .hj{position:absolute;top:8px;right:8px;width:30px;height:30px;border:none;border-radius:50%;background:none;color:#fff;font-size:17px;display:flex;align-items:center;justify-content:center;cursor:pointer;filter:drop-shadow(0 1px 3px rgba(0,0,0,.45));transition:transform .15s ease;}
.rcard .hj:hover{transform:scale(1.15);}
.rcard .hj.on{color:var(--red);filter:drop-shadow(0 1px 3px rgba(0,0,0,.3));}
.rcard strong{display:block;font-size:13.5px;margin-top:10px;letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rcard .sub{display:block;font-size:11.5px;color:var(--g500);font-weight:600;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rcard .pr{display:block;font-size:12.5px;font-weight:700;margin-top:4px;color:var(--ink-2);}
.rcard .pr b{font-weight:800;}
.rcard .pr .st{color:var(--ink);font-weight:700;}

/* solution-rail feature cards: image + label, Airbnb style */
/* mirrors .rcard dimensions exactly so both home tabs feel identical */
.fcard{flex:0 0 216px;width:216px;scroll-snap-align:start;border:none;background:none;padding:0;text-align:left;font-family:inherit;cursor:pointer;display:block;}
.fcard .fc-im{position:relative;display:block;width:100%;height:205px;border-radius:16px;overflow:hidden;background:var(--g100);}
.fcard .fc-im img{width:100%;height:100%;object-fit:cover;transition:transform .45s var(--ease);}
.fcard:hover .fc-im img{transform:scale(1.05);}
.fcard strong{display:block;font-size:13.5px;line-height:1.35;letter-spacing:-.1px;margin-top:10px;font-weight:600;}
.fcard.more .fc-im{display:flex;align-items:center;justify-content:center;background:var(--g100);}
.fcard .fc-plus{width:46px;height:46px;border-radius:50%;background:#fff;border:1px solid var(--g300);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--ink);transition:all .2s var(--ease);}
.fcard.more:hover .fc-plus{background:var(--ink);border-color:var(--ink);color:#fff;transform:scale(1.05);}
@media(max-width:640px){.fcard{flex-basis:172px;width:172px;}.fcard .fc-im{height:163px;}}
.rail-h .sol-meta{display:flex;gap:6px;flex-wrap:wrap;margin:0;}
.rail-h .sol-meta span{background:var(--g100);border-radius:999px;padding:5px 12px;font-size:10.5px;font-weight:800;color:var(--ink-2);white-space:nowrap;}
.rail-foot{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap;}
.rail-foot .rf-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.rail-foot .rf-link{border:none;background:none;font-family:inherit;font-weight:800;font-size:12.5px;color:var(--red);cursor:pointer;text-decoration:underline;padding:0;}
.rail-foot .rf-call{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--g300);background:#fff;color:var(--ink);font-size:13px;display:inline-flex;align-items:center;justify-content:center;transition:all .18s ease;}
.rail-foot .rf-call:hover{border-color:var(--ink);}
@media(max-width:640px){.rail-foot .rf-right{margin-left:0;width:100%;justify-content:space-between;}}

/* transparent-billing note with expander */
.note-line{max-width:820px;margin:26px auto 0;border:1px solid var(--g200);border-radius:16px;background:#FCFCFC;padding:14px 18px;font-size:12.5px;font-weight:600;color:var(--ink-2);text-align:left;}
.note-line .nl-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.note-line .nl-top i{color:var(--green);font-size:13px;}
.note-line .rm{border:none;background:none;font-family:inherit;font-weight:800;font-size:12px;color:var(--red);cursor:pointer;text-decoration:underline;padding:0;margin-left:auto;white-space:nowrap;}
.note-line .nl-full{display:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--g200);color:var(--g600);font-weight:500;line-height:1.7;font-size:12.5px;}
.note-line.open .nl-full{display:block;}

/* solution-page hero product shot */
.hero-shot{max-width:900px;margin:30px auto 0;border-radius:20px;overflow:hidden;border:1px solid var(--g200);background:#fff;box-shadow:0 24px 70px -30px rgba(20,20,20,.25);position:relative;}
.hero-shot .hs-bar{display:flex;align-items:center;gap:6px;background:#F6F6F7;border-bottom:1px solid var(--g200);padding:10px 14px;}
.hero-shot .hs-bar i{width:10px;height:10px;border-radius:50%;display:block;}
.hero-shot .hs-bar i:nth-child(1){background:#E4E4E4;}
.hero-shot .hs-bar i:nth-child(2){background:#D6D6D6;}
.hero-shot .hs-bar i:nth-child(3){background:#C4C4C4;}
.hero-shot .hs-bar span{margin-left:8px;font-size:11px;font-weight:700;color:var(--g500);background:#fff;border:1px solid var(--g200);border-radius:999px;padding:3px 12px;}
.hero-shot img{width:100%;height:340px;object-fit:cover;display:block;}
@media(max-width:640px){.hero-shot img{height:210px;}}
.hero-shot .hs-chip{position:absolute;background:#fff;border-radius:999px;padding:8px 15px;font-size:12px;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.16);display:inline-flex;align-items:center;gap:7px;animation:floatY 3.4s ease-in-out infinite;}
.hero-shot .hs-chip i{color:var(--green);}
.hero-shot .hs-chip.a{left:18px;bottom:18px;}
.hero-shot .hs-chip.b{right:18px;top:58px;animation-delay:1.2s;}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}

/* prose (legal) */
.prose{max-width:760px;margin:0 auto;}
.prose h2{font-size:21px;margin:34px 0 12px;}
.prose h3{font-size:16px;margin:24px 0 8px;}
.prose p,.prose li{font-size:14px;color:var(--ink-2);font-weight:500;line-height:1.75;}
.prose ul{padding-left:22px;margin:10px 0;}
.prose .updated{font-size:12px;color:var(--g500);font-weight:700;margin-bottom:8px;}

/* team */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
@media(max-width:900px){.team-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.team-grid{grid-template-columns:1fr;}}
.team-card{border:1px solid var(--g200);border-radius:var(--r-lg);padding:26px 20px;text-align:center;background:#fff;min-width:0;transition:all .22s var(--ease);}
.team-card:hover{border-color:var(--g300);box-shadow:var(--shadow);}
.team-card .av{width:66px;height:66px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;margin:0 auto 14px;}
.team-card h4{font-size:15.5px;}
.team-card .role{font-size:12px;color:var(--red);font-weight:800;margin:3px 0 8px;}
.team-card p{font-size:12px;color:var(--g600);font-weight:500;line-height:1.55;}

/* faq */
.faq{max-width:820px;margin:0 auto;}
.faq details{border:1px solid var(--g200);border-radius:var(--r-md);margin-bottom:10px;background:#fff;overflow:hidden;}
.faq summary{list-style:none;cursor:pointer;padding:17px 20px;font-weight:700;font-size:14.5px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'\2b';font-weight:800;color:var(--g500);transition:transform .2s ease;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq .a{padding:0 20px 17px;font-size:13.5px;color:var(--g600);font-weight:500;line-height:1.65;}
