/* G06 Cloud transition. Roadmap-owned, single-opt-in treatment. No shared shell edits. */
.v13-roadmap .roadmap-cloud-transition{background:#e3e9e1;color:#18271c;border-top:1px solid #cad5c9;border-bottom:1px solid #d3dcd0}
.v13-roadmap .roadmap-cloud-transition .rail{width:min(calc(100% - 2*var(--pe-pad)),1248px)}
.v13-roadmap .roadmap-cloud-transition__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.81fr);gap:clamp(32px,6.5vw,100px);align-items:center;padding-block:clamp(44px,4.5vw,66px)}
.v13-roadmap .roadmap-cloud-transition__identity{display:flex;gap:17px;align-items:baseline;flex-wrap:wrap;color:#365b43;font:660 14px/1.4 'Geist Variable',sans-serif;letter-spacing:0;margin:0 0 14px}
.v13-roadmap .roadmap-cloud-transition__identity span{color:#5d705f;font:520 12px/1.4 'Geist Variable',sans-serif;padding-left:17px;border-left:1px solid #adbeaf;letter-spacing:.035em}
.v13-roadmap .roadmap-cloud-transition h2{max-width:620px;margin:0;font:400 clamp(36px,4vw,55px)/1.1 var(--pe-serif);letter-spacing:-.045em;text-wrap:balance}
.v13-roadmap .roadmap-cloud-transition__detail p{margin:0 0 17px;color:#3b4d3f;font:400 clamp(15px,1.22vw,17px)/1.7 'Geist Variable',sans-serif;max-width:560px}
.v13-roadmap .roadmap-cloud-transition__detail a{display:inline-flex;gap:25px;align-items:center;color:#215b3f;font:660 15px/1.5 'Geist Variable',sans-serif;text-decoration:none;border-bottom:1px solid currentColor;padding:0 0 6px}
.v13-roadmap .roadmap-cloud-transition__detail a:hover{color:#103924}
.v13-roadmap .roadmap-cloud-transition__detail a:focus-visible{outline:2px solid #215b3f;outline-offset:5px}
@media(max-width:800px){.v13-roadmap .roadmap-cloud-transition__inner{grid-template-columns:1fr;gap:24px}}
@media(max-width:560px){.v13-roadmap .roadmap-cloud-transition__inner{padding-block:43px 52px}.v13-roadmap .roadmap-cloud-transition h2{font-size:clamp(35px,9.2vw,44px)}.v13-roadmap .roadmap-cloud-transition__detail p{font-size:15px}}
@media(forced-colors:active){.v13-roadmap .roadmap-cloud-transition{background:Canvas;color:CanvasText}.v13-roadmap .roadmap-cloud-transition__detail a{color:LinkText}}

/* R16: near-term Cloud preparation is separate from the 2027 source-generated roadmap. */
/* R17. Calendar grammar inherits the commitment timetable: vertical rules, six-pixel line and circular target. */
.v13-roadmap .roadmap-cloud-transition__calendar{grid-column:1/-1;min-width:0;margin-top:2px;padding-top:22px;border-top:1px solid #bdcbbd;--cloud-progress:0%;--cloud-week:2}
.v13-roadmap .roadmap-cloud-transition__calendar-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px 25px;flex-wrap:wrap;margin-bottom:20px}
.v13-roadmap .roadmap-cloud-transition__calendar-top>span{font:690 11px/1.4 'Geist Variable',sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#456a51}
.v13-roadmap .roadmap-cloud-transition__calendar-top strong{font:640 13px/1.45 'Geist Variable',sans-serif;color:#1f563b}
.v13-roadmap .roadmap-cloud-transition__months,.v13-roadmap .roadmap-cloud-transition__weeks{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));min-width:0}
.v13-roadmap .roadmap-cloud-transition__months{border-top:1px solid #aab9ac;font:630 11px/1.5 'Geist Variable',sans-serif;color:#415d48}
.v13-roadmap .roadmap-cloud-transition__months>span{padding:8px 0 7px 10px;border-left:1px solid #b9c6bb}
.v13-roadmap .roadmap-cloud-transition__months>span:nth-child(1){grid-column:1/5}
.v13-roadmap .roadmap-cloud-transition__months>span:nth-child(2){grid-column:5/10}
.v13-roadmap .roadmap-cloud-transition__months>span:nth-child(3){grid-column:10/12}
.v13-roadmap .roadmap-cloud-transition__weeks{font:540 11px/1.2 'Geist Variable',sans-serif;color:#617667}
.v13-roadmap .roadmap-cloud-transition__weeks>span{text-align:center;border-left:1px solid #cad6cb;padding:5px 0 9px}
.v13-roadmap .roadmap-cloud-transition__weeks>span:last-child{border-right:1px solid #cad6cb}
.v13-roadmap .roadmap-cloud-transition__week-key{margin:1px 0 8px!important;font:480 11px/1.4 'Geist Variable',sans-serif;color:#5a705e}
.v13-roadmap .roadmap-cloud-transition__track{position:relative;height:42px;margin-top:0;border-block:1px solid #c1d0c2;background:repeating-linear-gradient(to right,#cbd8cd 0,#cbd8cd 1px,transparent 1px,transparent calc(100% / 11))}
.v13-roadmap .roadmap-cloud-transition__bar{position:absolute;top:19px;left:3px;right:6px;height:6px;background:#5e9274;border-radius:6px}
.v13-roadmap .roadmap-cloud-transition__current{display:none;position:absolute;z-index:2;left:var(--cloud-progress);top:10px;width:2px;height:23px;background:#224f39;transform:translateX(-50%)}
.v13-roadmap .roadmap-cloud-transition__calendar.is-current .roadmap-cloud-transition__current{display:block}
.v13-roadmap .roadmap-cloud-transition__current:before{content:"";position:absolute;top:-3px;left:-4px;height:10px;width:10px;border-radius:50%;background:#224f39;border:1px solid #edf2e8}
.v13-roadmap .roadmap-cloud-transition__target{position:absolute;right:0;top:12px;height:18px;width:18px;border:3px solid #5e9274;border-radius:50%;background:#e3e9e1;box-shadow:0 0 0 3px #e3e9e1}
.v13-roadmap .roadmap-cloud-transition__calendar-bottom{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:7px 24px;margin-top:10px;font:540 12px/1.5 'Geist Variable',sans-serif;color:#43584a}
.v13-roadmap .roadmap-cloud-transition__calendar-bottom>span:last-child{font-weight:660;color:#25563b}
.v13-roadmap .roadmap-cloud-transition__today{margin:9px 0 0;color:#536958;font:480 11px/1.5 'Geist Variable',sans-serif}
@media(max-width:560px){.v13-roadmap .roadmap-cloud-transition__calendar-top{gap:6px}.v13-roadmap .roadmap-cloud-transition__calendar-top strong{font-size:12px}.v13-roadmap .roadmap-cloud-transition__months{font-size:10px}.v13-roadmap .roadmap-cloud-transition__weeks{font-size:10px}.v13-roadmap .roadmap-cloud-transition__calendar-bottom{font-size:11px}}
@media(forced-colors:active){.v13-roadmap .roadmap-cloud-transition__bar,.v13-roadmap .roadmap-cloud-transition__current{background:CanvasText}.v13-roadmap .roadmap-cloud-transition__target{border-color:CanvasText;background:Canvas}}

/* R19 — rolling horizon. The original weekly ruler remains the no-JavaScript fallback. */
.v13-roadmap .roadmap-cloud-transition__rolling{display:none;min-width:0}
.v13-roadmap .roadmap-cloud-transition__calendar.is-rolling :is(.roadmap-cloud-transition__months,.roadmap-cloud-transition__weeks,.roadmap-cloud-transition__week-key,.roadmap-cloud-transition__track,.roadmap-cloud-transition__calendar-bottom){display:none}
.v13-roadmap .roadmap-cloud-transition__calendar.is-rolling .roadmap-cloud-transition__rolling{display:block}
.v13-roadmap .cloud-rolling__head,.v13-roadmap .cloud-rolling__foot{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.v13-roadmap .cloud-rolling__head{margin-bottom:10px;color:#395940;font:620 12px/1.5 'Geist Variable',sans-serif}
.v13-roadmap .cloud-rolling__scale{font-size:10px!important;letter-spacing:.08em;text-transform:uppercase;color:#59705f}
.v13-roadmap .cloud-rolling__grid{display:grid;grid-template-columns:repeat(var(--cloud-columns),minmax(0,1fr));border-top:1px solid #afc1b0;min-width:0}
.v13-roadmap .cloud-rolling__cell{min-width:0;padding:9px 3px 10px;text-align:center;border-left:1px solid #bdd0bf;color:#607363;font:570 11px/1.2 'Geist Variable',sans-serif;white-space:nowrap}
.v13-roadmap .cloud-rolling__cell:first-child{border-left:2px solid #2f6c4e;color:#225c3c;font-weight:700}
.v13-roadmap .cloud-rolling__track{height:39px;position:relative;border-block:1px solid #bdcfbf;background:repeating-linear-gradient(to right,#cfdbcf 0,#cfdbcf 1px,transparent 1px,transparent calc(100% / var(--cloud-columns)))}
.v13-roadmap .cloud-rolling__bar{position:absolute;left:4px;right:8px;top:16px;height:6px;background:#669879;border-radius:5px}
.v13-roadmap .cloud-rolling__terminus{position:absolute;right:0;top:9px;width:19px;height:19px;background:#e3e9e1;border:3px solid #447e59;border-radius:50%;box-shadow:0 0 0 3px #e3e9e1}
.v13-roadmap .cloud-rolling__foot{padding-top:10px;color:#4c6352;font:550 12px/1.4 'Geist Variable',sans-serif}
.v13-roadmap .cloud-rolling__count{color:#205739;font:720 15px/1.2 'Geist Variable',sans-serif;white-space:nowrap}
@media(max-width:760px){.v13-roadmap .cloud-rolling__cell{font-size:9px}.v13-roadmap .cloud-rolling__grid .cloud-rolling__cell:nth-child(even){color:#849488}}
@media(max-width:560px){.v13-roadmap .cloud-rolling__grid{overflow:hidden}.v13-roadmap .cloud-rolling__cell{font-size:9px;letter-spacing:-.03em}.v13-roadmap .cloud-rolling__head{gap:6px}}
@media(forced-colors:active){.v13-roadmap .cloud-rolling__bar{background:CanvasText}.v13-roadmap .cloud-rolling__terminus{border-color:CanvasText;background:Canvas}}

/* R19 typography polish — crisp endpoints and label density responsive to scale. */
.v13-roadmap .cloud-rolling__cell--end{color:#285b3e;font-weight:700}
.v13-roadmap .cloud-rolling__foot .cloud-rolling__milestone{max-width:60ch}
@media(max-width:520px){.v13-roadmap .cloud-rolling__grid{gap:0}.v13-roadmap .cloud-rolling__grid .cloud-rolling__cell:not(:first-child):not(:last-child):nth-child(even){font-size:0}.v13-roadmap .cloud-rolling__count{font-size:13px!important}}


/* R20: the same quiet status-badge grammar as Home—no pseudo-live indicator. */
.v13-roadmap .roadmap-cloud-transition__identity{align-items:center!important;gap:12px!important;margin-bottom:16px!important}
.v13-roadmap .roadmap-cloud-transition__identity .roadmap-cloud-beta-tag{
  display:inline-flex;align-items:center!important;min-height:25px!important;
  padding:4px 10px!important;border:1px solid #95b4a0!important;border-radius:3px!important;
  background:#e0ece2!important;color:#2c6445!important;
  font:700 10px/1.3 'Geist Variable',sans-serif!important;letter-spacing:.07em!important;
  text-transform:uppercase!important;white-space:nowrap!important;
}
.v13-roadmap .roadmap-cloud-transition__identity .roadmap-cloud-beta-tag::before{content:none!important}
.v13-roadmap .cloud-rolling__grid{border-top-color:#91b79a}
.v13-roadmap .cloud-rolling__cell:first-child{border-left-color:#2b8053}
.v13-roadmap .cloud-rolling__track{height:36px;border-color:#a7c9af;background:repeating-linear-gradient(to right,#b9d3c1 0,#b9d3c1 1px,transparent 1px,transparent calc(100% / var(--cloud-columns))),linear-gradient(180deg,rgba(192,221,197,.23),rgba(233,241,231,.05))}
.v13-roadmap .cloud-rolling__bar{top:14px;background:linear-gradient(90deg,#8fb79b 0%,#43835d 78%,#3a7856 100%);height:7px}
.v13-roadmap .cloud-rolling__terminus{top:8px;border-color:#33764e;background:#e7f1e8}
.v13-roadmap .cloud-rolling__count{color:#1e633f;font-weight:740}
.v13-roadmap .roadmap-cloud-transition__calendar{border-top-color:#accab5}
@media(forced-colors:active){.v13-roadmap .roadmap-cloud-beta-tag{background:Canvas!important;border-color:CanvasText!important;color:CanvasText!important}}
/* R21 no-JS calendar fallback also reaches Christmas week without an orphan week label. */
.v13-roadmap .roadmap-cloud-transition__months,.v13-roadmap .roadmap-cloud-transition__weeks{grid-template-columns:repeat(12,minmax(0,1fr))}
.v13-roadmap .roadmap-cloud-transition__months>span:nth-child(3){grid-column:10/13}

/* R30 live-production CSP repair: equal time divisions without inline styles.
   One DOM tick per calendar date supplies the ruler rather than a CSS custom
   property set through element.style (blocked by Roadmap's style-src 'self'). */
.v13-roadmap .cloud-rolling__grid{
  grid-template-columns:none;
  grid-auto-flow:column;
  grid-auto-columns:minmax(0,1fr);
}
.v13-roadmap .cloud-rolling__track{
  display:flex;
  background:linear-gradient(180deg,rgba(192,221,197,.23),rgba(233,241,231,.05));
}
.v13-roadmap .cloud-rolling__tick{
  flex:1 1 0;min-width:0;
  height:100%;border-left:1px solid #b9d3c1;
}
.v13-roadmap .cloud-rolling__tick:first-child{border-left:2px solid #2b8053}
.v13-roadmap .cloud-rolling__bar{z-index:1}
.v13-roadmap .cloud-rolling__terminus{z-index:2}
@media(forced-colors:active){.v13-roadmap .cloud-rolling__tick{border-left-color:CanvasText}}

/* R6: the Cloud explainer link must remain operable on touch-first
   landscape phones and tablets without enlarging the desktop treatment. */
@media screen and (pointer:coarse) {
  .v13-roadmap .roadmap-cloud-transition__detail a {
    min-height:44px;
  }
}

/* W12 Cloud cross-property CTA: only descriptive label is underlined. */
.v13-roadmap .roadmap-cloud-transition__detail a{border-bottom:0;gap:14px;}
.v13-roadmap .roadmap-cloud-transition__detail a .roadmap-route-label{
 border-bottom:1px solid currentColor;padding-bottom:6px;
}
.v13-roadmap .roadmap-cloud-transition__detail a>span[aria-hidden]{flex:none;text-decoration:none;}
