/* Platform: a visible map of local responsibilities and connected experiences. */
.platform-page { --wrap:1320px; }
.platform-page .eyebrow { color:var(--deep); font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; font-weight:600; margin-bottom:22px; }
.platform-page h1,.platform-page h2,.platform-page h3 { overflow-wrap:anywhere; }
.platform-page .btn { white-space:normal; text-align:center; }
.platform-page .btn-row { align-items:center; justify-content:center; gap:25px; }
.platform-hero { padding:calc(var(--nav-h) + 55px) 0 45px; background:radial-gradient(ellipse at 50% 72%,#dceff8,transparent 65%),#fbfbfd; overflow:hidden; }
.platform-hero-copy { text-align:center; }
.platform-hero-copy .eyebrow { margin-inline:auto; }
.platform-hero h1 { font-size:clamp(3rem,6.4vw,6rem); max-width:19ch; margin:auto; line-height:1.02; letter-spacing:-.045em; }
.platform-hero h1 .accent { display:block; }
.platform-hero .lede { margin:25px auto 28px; max-width:55ch; }
.platform-ecosystem { position:relative; max-width:1000px; height:330px; margin:40px auto 0; }
.platform-hub { position:absolute; width:360px; left:calc(50% - 180px); top:-15px; mix-blend-mode:multiply; }
.platform-hub img { width:100%; height:auto; }
.platform-node { display:flex; align-items:center; gap:14px; position:absolute; width:205px; padding:20px 24px; border:1px solid #c3dce9; background:#ffffffa8; border-radius:18px; color:#21445e; box-shadow:0 14px 30px #2764850a; font-size:.93rem; }
.platform-node>svg { width:25px; height:25px; color:var(--deep); flex-shrink:0; }
.platform-node::after { content:''; position:absolute; height:1px; width:90px; background:linear-gradient(90deg,#91bdd5,#91bdd522); left:100%; top:50%; transform-origin:left; }
.platform-node-1,.platform-node-2,.platform-node-3 { left:4%; }
.platform-node-4,.platform-node-5,.platform-node-6 { right:4%; }
.platform-node-4::after,.platform-node-5::after,.platform-node-6::after { left:auto; right:100%; background:linear-gradient(270deg,#91bdd5,#91bdd522); }
.platform-node-1,.platform-node-4 { top:20px; }
.platform-node-2,.platform-node-5 { top:127px; }
.platform-node-3,.platform-node-6 { top:234px; }
.platform-diagram-note { text-align:center; margin:18px auto 0; font-size:.76rem; color:#617d90; }
.platform-heading,.platform-page .partners-heading { max-width:800px; margin:0 auto 50px; text-align:center; }
.platform-heading .eyebrow,.platform-page .partners-heading .eyebrow { margin-inline:auto; }
.platform-heading>p:last-child:not(.eyebrow),.platform-page .partners-heading>p:last-child:not(.eyebrow) { margin:25px auto 0; max-width:62ch; }
.platform-layers { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.platform-layers>article { padding:44px; border:1px solid #d3e2ec; border-radius:28px; background:linear-gradient(145deg,#f4f9fc,#edf5fa); }
.platform-layers>article:nth-child(2) { background:linear-gradient(145deg,#fafbfc,#f1f2f8); }
.platform-symbol { display:flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:18px; color:var(--deep); background:#dceef8; margin-bottom:28px; }
.platform-symbol svg { width:27px; height:27px; }
.platform-layers h3 { font-size:2.2rem; max-width:16ch; }
.platform-layers dl { margin-top:30px; }
.platform-layers dl>div { border-top:1px solid #25446019; padding:20px 0; }
.platform-layers dt { font-weight:600; color:#1b3d57; margin-bottom:8px; font-size:.99rem; }
.platform-layers dd { font-size:.95rem; }
.platform-offline { display:flex; gap:25px; max-width:1020px; margin:40px auto 0; padding:30px; border:1px solid #d3e2ec; border-radius:22px; }
.platform-offline>svg { width:28px; height:28px; flex-shrink:0; color:var(--deep); }
.platform-offline h3 { font-size:1.24rem; margin-bottom:13px; }
.platform-offline p { max-width:none; font-size:.92rem; }
.platform-life { background:radial-gradient(ellipse at 15% 0,#173c51,transparent 65%),#09121d; color:#b2c4d2; }
.platform-life .eyebrow { color:#8bd9ec; }
.platform-life h2,.platform-life h3 { color:#f3f8fc; }
.platform-life-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; }
.platform-life-grid article { padding-top:30px; border-top:1px solid #aacbdf30; }
.platform-life .platform-symbol { background:#72cde518; color:#8ed9ec; }
.platform-life-grid h3 { font-size:1.45rem; margin-bottom:20px; }
.platform-life-grid p { font-size:.93rem; }
.platform-split { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:85px; }
.platform-intro { margin-top:25px; }
.platform-routine-example { min-width:0; background:#0e1a28; color:#b6c8d7; border-radius:28px; padding:30px; box-shadow:0 28px 65px #14374b1a; }
.platform-example-tabs { display:none; gap:6px; margin-bottom:26px; flex-wrap:wrap; }
.platform-example-tabs.is-enhanced { display:flex; }
.platform-example-tabs button { padding:10px 12px; border:1px solid #8bb7cc40; border-radius:99px; font-size:.73rem; }
.platform-example-tabs button[aria-pressed='true'] { background:#a0ddef; border-color:#a0ddef; color:#08293f; }
.platform-example-result dl>div { padding:22px 0; border-top:1px solid #86aac329; }
.platform-example-result dt { color:#88d2e7; font-family:var(--mono); font-size:.72rem; text-transform:uppercase; margin-bottom:12px; }
.platform-example-result dd { font-family:var(--display); color:#eef7fc; font-size:1.2rem; line-height:1.35; }
.platform-example-result h3 { margin-top:24px; color:#9edded; font-size:1.06rem; }
.platform-example-result>p { margin-top:16px; font-size:.88rem; min-height:4.8em; }
.platform-example-note { margin-top:25px; font-size:.72rem; color:#8ea5b8; }
.platform-people { background:linear-gradient(125deg,#eef5fa,#f8fafc); }
.platform-people-points { margin:32px 0; }
.platform-people-points article { display:flex; gap:18px; padding:23px 0; border-top:1px solid #203e5919; }
.platform-people-points article>svg { width:24px; height:24px; color:var(--deep); flex-shrink:0; }
.platform-people-points h3 { font-size:1.13rem; margin-bottom:13px; }
.platform-people-points p { font-size:.94rem; }
.platform-phone { width:min(100%,315px); margin:auto; }
.platform-phone a { display:block; border:5px solid #283340; border-radius:42px; overflow:hidden; box-shadow:0 30px 80px #163c5329; background:#09121d; }
.platform-phone img { width:100%; height:auto; }
.platform-phone figcaption { margin-top:22px; font-size:.72rem; color:#536d80; text-align:center; }
.platform-extend-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.platform-extend-grid article { display:flex; flex-direction:column; align-items:flex-start; border:1px solid #d3e2ec; border-radius:24px; padding:32px; }
.platform-extend-grid h3 { font-size:1.55rem; margin-bottom:22px; }
.platform-extend-grid p { font-size:.94rem; margin-bottom:25px; }
.platform-extend-grid .link { margin-top:auto; font-size:.85rem; }
.platform-faq { background:#f4f6f9; }
.platform-faq>.wrap { max-width:960px; }
.platform-faq h2 { margin-bottom:40px; }
.platform-faq details { border-top:1px solid #cad8e3; }
.platform-faq details:last-child { border-bottom:1px solid #cad8e3; }
.platform-faq summary { display:flex; align-items:center; justify-content:space-between; gap:25px; cursor:pointer; list-style:none; padding:25px 0; font-weight:500; color:#1b3448; }
.platform-faq summary::-webkit-details-marker { display:none; }
.platform-faq summary svg { width:20px; height:20px; flex-shrink:0; transition:transform .2s; }
.platform-faq [open] summary svg { transform:rotate(45deg); }
.platform-faq details p { font-size:.95rem; padding-bottom:26px; max-width:78ch; }
.platform-close { background:radial-gradient(ellipse at 50% 80%,#dceff8,transparent 65%),#fbfbfd; text-align:center; }
.platform-close h2 { max-width:19ch; margin:auto; font-size:clamp(2.7rem,5.2vw,4.7rem); }
.platform-close p { margin:27px auto 30px; max-width:55ch; }
.platform-page [id] { scroll-margin-top:calc(var(--nav-h) + 25px); }
@media(max-width:1000px) { .platform-node { width:170px; padding:17px; } .platform-node::after { width:40px; } .platform-node-1,.platform-node-2,.platform-node-3 { left:0; } .platform-node-4,.platform-node-5,.platform-node-6 { right:0; } .platform-hub { width:330px; left:calc(50% - 165px); top:0; } .platform-life-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .platform-split { gap:45px; } .platform-layers>article { padding:30px; } }
@media(max-width:759px) {
 .platform-hero { padding:calc(var(--nav-h) + 40px) 0 35px; }
 .platform-hero h1 { font-size:clamp(2.8rem,10.6vw,4.7rem); max-width:16ch; }
 .platform-hero .lede { font-size:1.03rem; margin-top:22px; }
 .platform-page .eyebrow { font-size:.64rem; margin-bottom:20px; }
 .platform-page .btn-row { gap:18px; }
 .platform-page .btn { font-size:.9rem; }
 .platform-hero .link { font-size:.86rem; }
 .platform-ecosystem { height:auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:15px; }
 .platform-hub { position:relative; width:220px; left:auto; top:auto; grid-column:1/-1; margin:-5px auto -5px; }
 .platform-node { position:static; width:auto; padding:15px 6px; flex-direction:column; gap:10px; font-size:.71rem; text-align:center; border-radius:15px; }
 .platform-node>svg { width:23px; height:23px; }
 .platform-node::after { display:none; }
 .platform-diagram-note { font-size:.68rem; }
 .platform-heading,.platform-page .partners-heading { text-align:left; margin-bottom:35px; }
 .platform-heading .eyebrow,.platform-page .partners-heading .eyebrow { margin-inline:0; }
 .platform-heading>p:last-child:not(.eyebrow),.platform-page .partners-heading>p:last-child:not(.eyebrow) { margin:20px 0 0; font-size:.98rem; }
 .platform-layers,.platform-split,.platform-extend-grid { grid-template-columns:minmax(0,1fr); }
 .platform-layers { gap:20px; }
 .platform-layers>article { padding:28px; }
 .platform-layers h3 { font-size:2rem; }
 .platform-offline { padding:25px; gap:18px; margin-top:25px; }
 .platform-offline>svg { width:22px; height:22px; }
 .platform-life-grid { gap:28px; }
 .platform-life-grid h3 { font-size:1.3rem; }
 .platform-life-grid p { font-size:.87rem; }
 .platform-split { gap:35px; }
 .platform-routine-example { padding:24px; border-radius:23px; }
 .platform-example-tabs { gap:7px; }
 .platform-example-tabs button { padding:9px 11px; }
 .platform-phone { max-width:290px; }
 .platform-phone a { border-radius:38px; }
 .platform-faq summary { font-size:.94rem; }
 .platform-close { text-align:left; }
 .platform-close h2,.platform-close p { margin-left:0; }
}
@media(max-width:380px) { .platform-life-grid { grid-template-columns:minmax(0,1fr); } .platform-offline { display:block; } .platform-offline>svg { margin-bottom:20px; } }
@media(prefers-reduced-motion:reduce) { .platform-faq summary svg { transition:none; } }
