.service-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.service-group{background:#fff;border:1px solid #e1e7ef;border-radius:16px;padding:18px;min-width:0}.service-group h3{font-size:17px;margin:0 0 12px}.service-group>p{font-size:12px;min-height:3.6em;margin-bottom:16px}.service-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.service-cards .stock-chip{margin:0;min-width:0;padding:7px 12px;align-content:start;overflow-wrap:anywhere}.service-cards .chip-ticker{font-size:16px}.service-cards .empty{grid-column:1/-1}.service-groups .unclassified{grid-column:1/-1}.service-detail-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.service-detail-role{padding:14px;border:1px solid #e1e7ef;border-radius:10px}.service-detail-role h4{margin:0 0 8px}.service-detail-role p{margin:0;font-size:14px}.service-sources{padding-left:20px;line-height:1.8}@media(max-width:1000px){.service-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.service-groups,.service-detail-roles{grid-template-columns:1fr}.service-group>p{min-height:0}}@media(max-width:420px){.service-cards{grid-template-columns:1fr}}

.service-thesis{white-space:pre-line}.service-cards .stock-chip[aria-pressed="true"]{border-color:#25816c;background:#edf8f2}

.service-groups.two-groups{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:700px){.service-groups.two-groups{grid-template-columns:1fr}}

/* Energy sources occupy separate columns, with stocks listed vertically. */
body[data-sector-key="moat_energy"] .service-groups{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
body[data-sector-key="moat_energy"] .service-group{padding:14px}
body[data-sector-key="moat_energy"] .service-cards{grid-template-columns:minmax(0,1fr)}
@media(max-width:1200px){body[data-sector-key="moat_energy"] .service-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){body[data-sector-key="moat_energy"] .service-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){body[data-sector-key="moat_energy"] .service-groups{grid-template-columns:minmax(0,1fr)}}

/* Six parallel business categories for financials and communications. */
body:is([data-sector-key="moat_financials"],[data-sector-key="moat_communication_services"],[data-sector-key="moat_healthcare"],[data-sector-key="moat_materials"],[data-sector-key="moat_industrials"]) .service-groups{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
body:is([data-sector-key="moat_financials"],[data-sector-key="moat_communication_services"],[data-sector-key="moat_healthcare"],[data-sector-key="moat_materials"],[data-sector-key="moat_industrials"]) .service-group{padding:14px}
body:is([data-sector-key="moat_financials"],[data-sector-key="moat_communication_services"],[data-sector-key="moat_healthcare"],[data-sector-key="moat_materials"],[data-sector-key="moat_industrials"]) .service-cards{grid-template-columns:minmax(0,1fr)}
@media(max-width:1400px){body:is([data-sector-key="moat_financials"],[data-sector-key="moat_communication_services"],[data-sector-key="moat_healthcare"],[data-sector-key="moat_materials"],[data-sector-key="moat_industrials"]) .service-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){body:is([data-sector-key="moat_financials"],[data-sector-key="moat_communication_services"],[data-sector-key="moat_healthcare"],[data-sector-key="moat_materials"],[data-sector-key="moat_industrials"]) .service-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){body:is([data-sector-key="moat_financials"],[data-sector-key="moat_communication_services"],[data-sector-key="moat_healthcare"],[data-sector-key="moat_materials"],[data-sector-key="moat_industrials"]) .service-groups{grid-template-columns:minmax(0,1fr)}}

/* Ecosystem layers show parallel dependencies instead of a single queue. */
.service-groups.ai-workflow{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;overflow:visible}
.service-groups.ai-workflow .service-group{padding:14px;min-width:0}
.service-groups.ai-workflow .service-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.ai-workflow .ecosystem-band,.ai-workflow .ecosystem-connection,.ai-workflow .ecosystem-users{grid-column:1/-1}
.ai-workflow .ecosystem-band{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:14px 18px;border:1px solid #c9d9ef;border-radius:12px;background:#eaf1fb;color:#34577f}
.ai-workflow .ecosystem-build{background:#e7f5ef;border-color:#c7e5da;color:#256a56}
.ai-workflow .ecosystem-band span{font-size:12px;align-self:center}
.ai-workflow .ecosystem-connection{text-align:center;color:#64748b;font-size:12px;padding:4px 10px;line-height:1.7}
.ai-workflow .ecosystem-users>.service-group{border-color:#e8d3ae;background:#fffdf8}
.ai-workflow .ecosystem-users .service-cards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
@media(max-width:1000px){.service-groups.ai-workflow .service-cards{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.service-groups.ai-workflow{grid-template-columns:minmax(0,1fr)}.ai-workflow .ecosystem-band,.ai-workflow .ecosystem-connection,.ai-workflow .ecosystem-users{grid-column:auto}}

.service-group > .service-bottleneck{min-height:0;padding:8px;border-radius:8px;background:#fff7ed;color:#9a5a18;line-height:1.6}

/* Fixed workflow headers; expandable notes float without moving stock rows. */
.ai-workflow .service-workflow-heading{position:relative;display:flex;flex-direction:column;height:120px;margin-bottom:12px}
.ai-workflow .service-workflow-heading h3{margin:0;line-height:1.45;overflow-wrap:anywhere}
.ai-workflow .service-info-actions{display:flex;gap:6px;margin-top:auto}
.ai-workflow .service-info summary{list-style:none;cursor:pointer;padding:6px 9px;border:1px solid #d8e2ee;border-radius:8px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:600}
.ai-workflow .service-info summary::-webkit-details-marker{display:none}
.ai-workflow .service-info summary:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}
.ai-workflow .service-info[open] summary{border-color:#60a5fa;background:#eff6ff;color:#1d4ed8}
.ai-workflow .service-info-bottleneck summary{background:#fff7ed;color:#9a5a18}
.ai-workflow .service-info-content{position:absolute;top:100%;left:0;right:0;z-index:5;padding:12px;border:1px solid #d8e2ee;border-radius:10px;background:#fff;box-shadow:0 6px 18px #0f172a1a;color:#475569;font-size:12px;line-height:1.7}
.ai-workflow .service-info-bottleneck .service-info-content{background:#fff7ed;color:#9a5a18}

/* Four parallel ecosystem lanes, with related roles stacked within each. */
.service-groups.ai-workflow{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.ai-workflow .ecosystem-lane{min-width:0;position:relative;grid-column:auto}
.ai-workflow .ecosystem-lane:not(:last-child)::after{content:'→';position:absolute;right:-19px;top:24px;font-size:20px;color:#64748b}
.ai-workflow .ecosystem-lane-title{min-height:90px;display:flex;flex-direction:column;justify-content:center;gap:5px;margin-bottom:12px;padding:12px;border:1px solid #bfd5eb;border-radius:12px;background:#eaf2fc;color:#315d8b}
.ai-workflow .ecosystem-lane-title strong{font-size:16px}
.ai-workflow .ecosystem-lane-title span{font-size:11px;line-height:1.6}
.ai-workflow .ecosystem-hardware .ecosystem-lane-title{background:#e7f6ef;border-color:#bce3d2;color:#236b52}
.ai-workflow .ecosystem-platform .ecosystem-lane-title{background:#e8f6fa;border-color:#b9dfe9;color:#25677a}
.ai-workflow .ecosystem-users .ecosystem-lane-title{background:#f3ecfc;border-color:#dac6ef;color:#714298}
.ai-workflow .ecosystem-lane-cards{display:grid;gap:14px;align-content:start}
.ai-workflow .ecosystem-lane .service-cards{grid-template-columns:minmax(0,1fr)}
.ai-workflow .ecosystem-lane .service-workflow-heading{height:110px}
@media(max-width:1100px){.service-groups.ai-workflow{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-workflow .ecosystem-lane:nth-child(2)::after{display:none}}
@media(max-width:700px){.service-groups.ai-workflow{grid-template-columns:minmax(0,1fr)}.ai-workflow .ecosystem-lane::after{display:none}.ai-workflow .ecosystem-lane-title{min-height:70px}}

/* Parallel technology themes with aligned list starts and click-to-open notes. */
.service-groups.technology-themes{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.technology-themes .service-cards{grid-template-columns:minmax(0,1fr)}
.technology-themes .service-workflow-heading{position:relative;display:flex;flex-direction:column;height:96px;margin-bottom:12px}
.technology-themes .service-workflow-heading h3{margin:0;line-height:1.45}
.technology-themes .service-info-actions{margin-top:auto}
.technology-themes .service-info summary{display:inline-block;cursor:pointer;list-style:none;padding:6px 10px;border:1px solid #d8e2ee;border-radius:8px;background:#f1f5f9;color:#475569;font-size:12px}
.technology-themes .service-info summary::-webkit-details-marker{display:none}
.technology-themes .service-info summary:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}
.technology-themes .service-info-content{position:absolute;top:100%;left:0;right:0;z-index:5;padding:12px;border:1px solid #d8e2ee;border-radius:10px;background:#fff;box-shadow:0 6px 18px #0f172a1a;font-size:12px;line-height:1.7}
@media(max-width:1100px){.service-groups.technology-themes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.service-groups.technology-themes{grid-template-columns:minmax(0,1fr)}}

/* Datacenter dependencies: branch, parallel inputs, converge, then operate. */
.service-groups.datacenter-structure{display:flex;flex-direction:column;gap:16px;overflow:visible}
.datacenter-structure>div,.datacenter-structure>section{width:100%;min-width:0}
.datacenter-structure .dc-start{max-width:850px;align-self:center}
.datacenter-structure .dc-connector{text-align:center;color:#64748b;font-size:12px;line-height:1.7;padding:3px 12px}
.datacenter-structure .dc-layer-title{margin:0 0 12px;font-size:16px;color:#34577f}
.datacenter-structure .dc-parallel,.datacenter-structure .dc-operation{padding:16px;border:1px solid #cddfee;border-radius:16px;background:#edf4fb}
.datacenter-structure .dc-operation{background:#edf7f2;border-color:#c8e4d5}
.datacenter-structure .dc-parallel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
.datacenter-structure .dc-operation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.datacenter-structure .service-cards{grid-template-columns:minmax(0,1fr)}
.datacenter-structure .dc-start .service-cards,.datacenter-structure .dc-assembly .service-cards,.datacenter-structure .dc-other .service-cards{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}
.datacenter-structure .dc-assembly>.service-group{border-color:#83baa6;background:#f5fbf8}
.datacenter-structure .dc-other{margin-top:22px;padding-top:22px;border-top:1px dashed #cbd5e1}
.datacenter-structure .dc-other>.service-group{background:#f8fafc}
.datacenter-structure .service-workflow-heading{position:relative;display:flex;flex-direction:column;height:105px;margin-bottom:12px}
.datacenter-structure .service-workflow-heading h3{margin:0;line-height:1.45}
.datacenter-structure .service-info-actions{margin-top:auto}
.datacenter-structure .service-info summary{display:inline-block;list-style:none;cursor:pointer;padding:6px 10px;border:1px solid #d8e2ee;border-radius:8px;background:#f1f5f9;color:#475569;font-size:12px}
.datacenter-structure .service-info summary::-webkit-details-marker{display:none}
.datacenter-structure .service-info summary:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}
.datacenter-structure .service-info-content{position:absolute;top:100%;left:0;right:0;z-index:5;padding:12px;border:1px solid #d8e2ee;border-radius:10px;background:#fff;box-shadow:0 6px 18px #0f172a1a;font-size:12px;line-height:1.7}
.datacenter-structure [data-service-group="dc_facilities"] .empty{padding:14px;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;font-size:12px}
@media(max-width:1100px){.datacenter-structure .dc-parallel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.datacenter-structure .dc-parallel-grid,.datacenter-structure .dc-operation-grid{grid-template-columns:minmax(0,1fr)}.datacenter-structure .dc-parallel,.datacenter-structure .dc-operation{padding:10px}.datacenter-structure .service-workflow-heading{height:90px}}

/* Finance cards start at a common baseline without category descriptions. */
body[data-sector-key="moat_financials"] .service-group>h3{min-height:75px;margin:0 0 12px;line-height:1.45;overflow-wrap:anywhere}
@media(max-width:700px){body[data-sector-key="moat_financials"] .service-group>h3{min-height:0}}

/* Parallel technology themes with aligned list starts and click-to-open notes. */
.service-groups.staples-categories{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.staples-categories .service-cards{grid-template-columns:minmax(0,1fr)}
.staples-categories .service-workflow-heading{position:relative;display:flex;flex-direction:column;height:96px;margin-bottom:12px}
.staples-categories .service-workflow-heading h3{margin:0;line-height:1.45}
.staples-categories .service-info-actions{margin-top:auto}
.staples-categories .service-info summary{display:inline-block;cursor:pointer;list-style:none;padding:6px 10px;border:1px solid #d8e2ee;border-radius:8px;background:#f1f5f9;color:#475569;font-size:12px}
.staples-categories .service-info summary::-webkit-details-marker{display:none}
.staples-categories .service-info summary:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}
.staples-categories .service-info-content{position:absolute;top:100%;left:0;right:0;z-index:5;padding:12px;border:1px solid #d8e2ee;border-radius:10px;background:#fff;box-shadow:0 6px 18px #0f172a1a;font-size:12px;line-height:1.7}
@media(max-width:1100px){.service-groups.staples-categories{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.service-groups.staples-categories{grid-template-columns:minmax(0,1fr)}}


/* Parallel technology themes with aligned list starts and click-to-open notes. */
.service-groups.discretionary-categories{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.discretionary-categories .service-cards{grid-template-columns:minmax(0,1fr)}
.discretionary-categories .service-workflow-heading{position:relative;display:flex;flex-direction:column;height:96px;margin-bottom:12px}
.discretionary-categories .service-workflow-heading h3{margin:0;line-height:1.45}
.discretionary-categories .service-info-actions{margin-top:auto}
.discretionary-categories .service-info summary{display:inline-block;cursor:pointer;list-style:none;padding:6px 10px;border:1px solid #d8e2ee;border-radius:8px;background:#f1f5f9;color:#475569;font-size:12px}
.discretionary-categories .service-info summary::-webkit-details-marker{display:none}
.discretionary-categories .service-info summary:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}
.discretionary-categories .service-info-content{position:absolute;top:100%;left:0;right:0;z-index:5;padding:12px;border:1px solid #d8e2ee;border-radius:10px;background:#fff;box-shadow:0 6px 18px #0f172a1a;font-size:12px;line-height:1.7}
@media(max-width:1100px){.service-groups.discretionary-categories{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.service-groups.discretionary-categories{grid-template-columns:minmax(0,1fr)}}


/* Align industrial stock lists independently of title/description wrapping. */
body[data-sector-key="moat_industrials"] .service-group{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:12px;align-self:stretch}
body[data-sector-key="moat_industrials"] .service-group>h3{margin:0;line-height:1.45;overflow-wrap:anywhere}
body[data-sector-key="moat_industrials"] .service-group>p{margin:0;min-height:0;line-height:1.65}
@media(max-width:700px){body[data-sector-key="moat_industrials"] .service-group{grid-template-rows:auto auto auto;grid-row:auto;row-gap:12px}}
