/* Shared optical materials: controls, teaching surfaces, and the closing scene. */
.concentro-home {
  --glass-edge: #ffffffdb;
  --glass-shadow: 0 2px 4px #20487806,0 22px 58px #3c6eaa14;
  --blue-glass: linear-gradient(165deg,#388ff5 0%,#1769d9 48%,#105bc6 100%);
}
.concentro-home .button {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--blue-glass); border-color: #246dd0;
  box-shadow: inset 0 1px 1px #ffffff75,inset 0 -2px 5px #083f9c38,0 7px 18px #1769d925;
  transition: box-shadow .22s,transform .18s,background .22s;
}
.concentro-home .button::before { content: ''; position: absolute; z-index: -1; inset: 0; border-radius: inherit; background: linear-gradient(180deg,#ffffff25,transparent 48%); pointer-events: none; }
.concentro-home .button::after { content: ''; position: absolute; top: -20%; bottom: -20%; left: 0; width: 40%; background: linear-gradient(100deg,transparent,#ffffff24,transparent); transform: translateX(-150%) skewX(-20deg); transition: transform .65s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
.concentro-home .button:hover { background: var(--blue-glass); box-shadow: inset 0 1px 1px #ffffff85,0 10px 26px #1769d93b; transform: translateY(-2px); }
.concentro-home .button:hover::after { transform: translateX(380%) skewX(-20deg); }
.concentro-home .button:active { transform: translateY(0) scale(.98); }
.concentro-home .hero .button { background: linear-gradient(165deg,#ffffff,#e9f3ff); border-color: #fff; box-shadow: inset 0 2px 3px #fff,inset 0 -2px 5px #9ac4e54a,0 10px 28px #00163026; }
.concentro-home .hero .button:hover { background: linear-gradient(165deg,#fff,#e6f2ff); }
.concentro-home .button-outline { color: #173e69; background: linear-gradient(160deg,#fffffff5,#deedffad); border-color: #fff; backdrop-filter: blur(16px); box-shadow: inset 0 1px 2px #fff,0 6px 20px #245d9c18; }
.hero-course-link { box-shadow: inset 0 1px 2px #ffffff52,inset 0 -2px 6px #03295426,0 12px 30px #001b362b; transition: transform .2s,box-shadow .2s; }
.hero-course-link:hover { transform: translateY(-2px); box-shadow: inset 0 1px 2px #ffffff75,0 16px 34px #001b3640; text-decoration: none; }
.concentro-home .text-link { display: inline-flex; max-width: 100%; min-height: 50px; gap: 16px; padding: 12px 21px; border: 1px solid #cfdfef; border-radius: 999px; background: linear-gradient(155deg,#ffffffed,#eaf3ff9e); color: #24558b; box-shadow: inset 0 1px 1px #fff,0 5px 14px #234e7b0c; backdrop-filter: blur(12px); transition: transform .2s,box-shadow .2s,border-color .2s; }
.concentro-home .text-link > span { flex-shrink: 0; }
.concentro-home .text-link:hover { border-color: #98bfe9; box-shadow: inset 0 1px 1px #fff,0 8px 22px #3473b520; transform: translateY(-2px); }
.worksheet-visual figcaption a { padding: 10px 16px; border: 1px solid #ffffffc9; border-radius: 999px; background: #ffffffb8; box-shadow: inset 0 1px #fff,0 6px 18px #234e7b12; backdrop-filter: blur(12px); }
.concentro-home .chat-launcher { background: linear-gradient(150deg,#ffffffed,#dcecffc9); border-color: #ffffffef; border-radius: 999px; box-shadow: inset 0 1px 2px #fff,0 8px 28px #2a5a9226; backdrop-filter: blur(20px) saturate(135%); }
.concentro-home .chat-launcher:hover { background: #f6fbff; box-shadow: inset 0 1px #fff,0 10px 32px #2a5a9238; }
.concentro-home .send-button { background: var(--blue-glass); box-shadow: inset 0 1px 1px #ffffff60,0 5px 14px #146fe529; }

/* Four real course facts share one luminous surface. */
.program-grid { position: relative; isolation: isolate; padding: 24px 34px; border: 1px solid #e2ecf8; border-radius: 26px; background: linear-gradient(140deg,#ffffffd9,#eaf4ffb3); box-shadow: inset 0 1px #fff,var(--glass-shadow); backdrop-filter: blur(18px); }
.program-grid::before { content: ''; position: absolute; z-index: -1; inset: 0; border-radius: inherit; background: radial-gradient(ellipse at 96% 100%,#89caff70,transparent 65%); pointer-events: none; }
.program-grid > div { padding: 32px 0 32px 28px; }
.program-grid > div:nth-child(odd) { padding-right: 24px; }
.program-grid dd { color: #174c84; }

/* A single large teaching scene, with the illustration resting in diffused light. */
.process-slide { padding: 42px 44px; gap: 44px; border: 1px solid #e1ecf8; border-radius: 28px; background: radial-gradient(ellipse at 91% 78%,#bbdcffa6,transparent 53%),linear-gradient(140deg,#fff,#f4f8ff); box-shadow: inset 0 1px #fff,0 18px 50px #3c6eaa10; }
.process-art { filter: drop-shadow(0 15px 16px #306ba21a); }
.process-controls { width: fit-content; max-width: 100%; padding: 7px; gap: 4px; margin: 28px auto 0; border: 1px solid #e4edf7; border-radius: 999px; background: #f4f8ffcc; box-shadow: inset 0 1px #fff,0 8px 22px #3155800c; backdrop-filter: blur(16px); }
.process-controls button { min-height: 44px; padding: 10px 23px; border: 1px solid transparent; border-radius: 999px; color: #526a85; transition: background .2s,box-shadow .2s; }
.process-controls button:hover { background: #fff9; }
.process-controls button[aria-pressed="true"] { color: #fff; border-color: #296fc8; background: var(--blue-glass); box-shadow: inset 0 1px 1px #ffffff68,0 4px 12px #236bc72b; }
.teaching-notes > div { border-top-color: #c8dcef; }

/* Course material stays sharp above a soft optical surface. */
.course-visual { position: relative; isolation: isolate; border: 1px solid #dceaf8; border-radius: 26px; background: linear-gradient(140deg,#f8fcffef,#e4efffc9); box-shadow: inset 0 1px #fff,0 24px 65px #3971b019; }
.course-visual::before { content: ''; position: absolute; z-index: -1; inset: 0; border-radius: inherit; background: radial-gradient(ellipse at 0% 58%,#89c8ff75,transparent 56%),radial-gradient(ellipse at 95% 90%,#c3f1ffb0,transparent 55%); pointer-events: none; }
.worksheet-paper { position: relative; box-shadow: 0 3px 8px #234e7510,0 25px 45px #24457526; transition: transform .25s,box-shadow .25s; }
.worksheet-paper:hover { transform: translateY(-3px); box-shadow: 0 5px 12px #234e7512,0 30px 55px #24457530; }
.concentro-home .detail-toggle { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border: 1px solid #dce9f5; border-radius: 50%; color: #3d6b9c; background: linear-gradient(155deg,#fff,#e6f0fd); box-shadow: inset 0 1px #fff,0 3px 8px #24618b0b; line-height: 1; font-size: 1.3rem; }
.concentro-home details[open] .detail-toggle { color: #fff; background: var(--blue-glass); border-color: #4585d2; }
.concentro-home .lessons summary:hover,.concentro-home .preparation-list summary:hover { background: linear-gradient(90deg,transparent,#e9f3ff80); }
.concentro-home .lessons summary > span:nth-child(2) { flex: 1; }
.between-classes { position: relative; isolation: isolate; padding: 58px; border: 1px solid #245084; border-radius: 28px; color: #fff; background: radial-gradient(ellipse at 100% 120%,#267bd5b8,transparent 64%),linear-gradient(125deg,#071e3e,#0b345f); box-shadow: inset 0 1px #9fcfff40,0 22px 60px #113b6818; }
.between-classes span { color: #aaccef; }
.between-classes p { color: #d3e4f7; }
.between-classes strong { color: #fff; }

/* Outcomes use one continuous frosted shelf, not repeated isolated tiles. */
.platform-section { position: relative; isolation: isolate; background: radial-gradient(ellipse at 92% 90%,#a4d9fc99,transparent 53%),radial-gradient(ellipse at 0% 0%,#e3ebff99,transparent 47%),#f0f7ff; }
.concentro-home .outcome-grid { gap: 0; padding: 14px 0; border: 1px solid #fffffff5; border-radius: 28px; background: linear-gradient(135deg,#ffffffb8,#ffffff63); box-shadow: inset 0 1px #fff,0 25px 65px #36669514; backdrop-filter: blur(22px); }
.concentro-home .outcome-grid > div { min-width: 0; padding: 32px 38px; border: 0; }
.concentro-home .outcome-grid > div + div { border-left: 1px solid #c7dcef; }
.concentro-home .outcome-grid > div > .outcome-number { color: #337cbf; }

.course-facts { position: relative; isolation: isolate; padding: 20px 40px; border: 1px solid #dce8f5; border-radius: 28px; background: linear-gradient(145deg,#ffffffde,#e9f4ffd9); box-shadow: inset 0 1px #fff,0 25px 65px #3159841a; backdrop-filter: blur(18px); }
.course-facts::before { content: ''; position: absolute; z-index: -1; inset: 0; border-radius: inherit; background: radial-gradient(ellipse at 100% 100%,#97d4ff80,transparent 67%); pointer-events: none; }
.fact-item:first-child { border-top: 0; }
.fact-item:last-child { border-bottom: 0; }
.fact-item > strong { color: #174a7f; }

/* The final invitation echoes the hero's depth, with a clear central reading area. */
.concentro-home .closing { background: #061e42; color: #fff; padding-block: 140px 180px; }
.concentro-home .closing::before { inset: 0; background: radial-gradient(ellipse at -12% 72%,#287fecc9,transparent 49%),radial-gradient(ellipse at 111% 17%,#5ec7ffb8,transparent 49%); filter: blur(42px); }
.concentro-home .closing::after { content: ''; position: absolute; z-index: -1; width: 130%; height: 64%; left: -50%; bottom: -49%; border-radius: 50%; transform: rotate(14deg); border-top: 1px solid #ddf8ff90; background: linear-gradient(150deg,#94d9ff85,#2667ad30); box-shadow: inset 0 15px 40px #bee7ff40; pointer-events: none; }
.concentro-home .closing .page-width > p:not(.closing-credit) { color: #ccdef4; }
.concentro-home .closing .button { color: #11365f; border-color: #fff; background: linear-gradient(160deg,#fff,#deedff); box-shadow: inset 0 2px 2px #fff,inset 0 -2px 5px #82b7e64a,0 12px 28px #00133033; }
.concentro-home .closing .button-outline { color: #fff; border-color: #c5dfff5c; background: linear-gradient(150deg,#5e99cf42,#214e8099); backdrop-filter: blur(18px); box-shadow: inset 0 1px 2px #ffffff42,0 12px 28px #00133022; }
.closing-credit { color: #b1cae9; }
.concentro-home .site-footer { background: linear-gradient(160deg,#fafdff,#eaf3fc); box-shadow: inset 0 1px #fff; }
.concentro-home dialog { background: linear-gradient(155deg,#fffffff5,#f3f8fff2); border: 1px solid #fff; border-radius: 22px; box-shadow: inset 0 1px #fff,0 25px 100px #051a4159; backdrop-filter: blur(24px) saturate(125%); }
.concentro-home dialog::backdrop { background: #09264c55; backdrop-filter: blur(6px); }
.concentro-home .icon-button { border-radius: 50%; background: linear-gradient(150deg,#fff,#e8f1fc); box-shadow: inset 0 1px #fff,0 3px 10px #234e7b12; }

@media (max-width: 1150px) {
  .process-slide { padding: 35px 30px; gap: 30px; }
  .between-classes { padding: 42px; gap: 45px; }
  .concentro-home .outcome-grid > div { padding-inline: 28px; }
  .course-facts { padding-inline: 30px; }
}
@media (max-width: 900px) {
  .program-grid { padding: 18px 28px; }
  .process-slide { padding: 34px; gap: 26px; }
  .concentro-home .outcome-grid > div + div { border-left: 0; border-top: 1px solid #c7dcef; }
  .concentro-home .outcome-grid > div { padding: 32px 36px; }
  .between-classes { gap: 28px; }
}
@media (max-width: 640px) {
  .concentro-home .text-link { font-size: .875rem; padding: 12px 16px; gap: 12px; }
  .program-grid { padding: 12px 20px; border-radius: 22px; }
  .program-grid > div { padding: 26px 0 26px 18px; }
  .program-grid > div:nth-child(odd) { padding-right: 16px; }
  .program-grid dd { font-size: 2.9rem; }
  .process-slide { padding: 28px 23px; border-radius: 22px; }
  .process-copy h3 { font-size: 1.9rem; }
  .course-visual { border-radius: 22px; }
  .concentro-home .detail-toggle { flex-basis: 28px; width: 28px; height: 28px; font-size: 1.1rem; }
  .between-classes { padding: 32px 25px; border-radius: 22px; }
  .concentro-home .outcome-grid { border-radius: 22px; }
  .concentro-home .outcome-grid > div { padding: 30px 25px; }
  .course-facts { padding: 6px 26px; border-radius: 22px; }
  .fact-item > strong { font-size: 2.7rem; }
  .concentro-home .closing { padding-block: 95px 120px; }
  .concentro-home .closing::after { width: 180%; left: -90%; bottom: -42%; height: 55%; }
}
@media (prefers-reduced-motion: reduce) {
  .concentro-home .button:hover,.hero-course-link:hover,.concentro-home .text-link:hover,.worksheet-paper:hover { transform: none; }
  .concentro-home .button::after { display: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .concentro-home :is(dialog,.chat-launcher,.button-outline,.text-link),.program-grid,.course-facts,.process-controls,.concentro-home .outcome-grid { backdrop-filter: none; background-color: #f6faff; }
  .concentro-home dialog { background: #f8fbff; }
  .concentro-home .closing .button-outline { background: #214b7b; }
}
@media (prefers-contrast: more) {
  .concentro-home :is(.button,.text-link,.chat-launcher),.course-facts,.program-grid,.process-slide,.course-visual { border-color: #6b8cad; }
  .concentro-home .closing .button-outline { background: #173b67; border-color: #d7e8ff; }
}
