:root{
  --ink:#1a1916; --muted:#6c6760; --line:#e3dfd3; --line-strong:#cdc7b8;
  --accent:#b3893f; --accent-deep:#8a6a2f;
  --ok:#2c7a52; --ok-bg:#eaf5ee; --ok-tx:#1f5c3d;
  --no:#b23b32; --no-bg:#fbecea; --no-tx:#8c2f28;
}
.gsx{
  --paper:#ffffff; --canvas:#ffffff; --soft:#f6f4ee;
  background:var(--canvas); color:var(--ink); overflow:hidden;
  font-family:"Libre Franklin",system-ui,-apple-system,Segoe UI,Roboto,sans-serif; line-height:1.5; font-size:16px;
  width:100%; max-width:100%; box-sizing:border-box;
}
.gsx *{box-sizing:border-box}
.gsx-banner, .gsx-body{ max-width:820px; margin-left:auto; margin-right:auto; }
.gsx-body{ padding-left:32px; padding-right:32px; }
@media(max-width:600px){ .gsx-body{ padding-left:18px; padding-right:18px; } }

.gsx-timer{position:fixed; top:14px; right:16px; z-index:9999; font-variant-numeric:tabular-nums; font-weight:600; font-size:14px;
  background:#1a1916; color:#ffffff; border:1px solid rgba(0,0,0,.1); border-radius:999px; padding:7px 15px;
  display:flex; align-items:center; gap:8px; box-shadow:0 10px 26px -16px rgba(0,0,0,.35)}
.gsx-dot{width:7px;height:7px;border-radius:50%;background:var(--ok)}
.gsx-timer.warn{color:#ffb4ad} .gsx-timer.warn .gsx-dot{background:var(--no)}

.gsx-banner{background:#ffffff; color:#1b1a17; padding:48px 32px 42px; border-bottom:1px solid #e8e4da}
.gsx-eyebrow{font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:#9a7b2e; font-weight:600}
.gsx-h1{font-family:"Newsreader",Georgia,serif; font-weight:600; font-size:clamp(30px,5vw,44px); line-height:1.04; margin:.3em 0 .15em; color:#15140f}
.gsx-sub{color:#5c574e; max-width:62ch; margin:0}
.gsx-meta{display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:20px; font-size:13.5px; color:#6c6760}
.gsx-meta b{color:#1b1a17; font-weight:600}

.gsx-body{padding:8px 32px 40px}
.gsx .part{margin-top:40px}
.gsx .part-head{display:flex; align-items:baseline; gap:14px; border-bottom:2px solid var(--ink); padding-bottom:8px}
.gsx .part-num{font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-deep)}
.gsx .part-title{font-size:20px; font-weight:600}
.gsx .part-instr{color:var(--muted); font-size:14px; margin:12px 0 4px}
.gsx .doc{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:22px 24px; margin:16px 0}
.gsx .doc.email .doc-bar{font-size:12px; color:var(--muted); border-bottom:1px solid var(--line); padding-bottom:8px; margin-bottom:14px; display:flex; gap:8px; align-items:center}
.gsx .doc.email .doc-bar .who{font-weight:600; color:var(--ink)}
.gsx .doc p{margin:0 0 .5em} .gsx .doc p:last-child{margin-bottom:0}
.gsx .browser{background:var(--soft); border:1px solid var(--line-strong); border-radius:10px; overflow:hidden}
.gsx .browser .url{background:#ece8dd; border-bottom:1px solid var(--line); padding:7px 12px; font-size:12.5px; color:var(--accent-deep); font-weight:600; display:flex; gap:7px; align-items:center}
.gsx .browser .url::before{content:""; width:9px;height:9px;border:1.5px solid var(--line-strong); border-radius:50%}
.gsx .browser .body{padding:14px 16px; font-size:13.5px}
.gsx .browser .body strong{display:block; font-size:14.5px; margin-bottom:4px}
.gsx .sign{border:1.5px solid var(--line-strong); border-radius:6px; padding:18px 20px; text-align:center; background:var(--soft); font-size:15px}
.gsx .sign .big{font-weight:700; font-size:19px; display:block; margin-bottom:6px}
.gsx .pair{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:12px 0}
@media(max-width:560px){ .gsx .pair{grid-template-columns:1fr} }
.gsx .q{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:16px 18px; margin:14px 0; transition:border-color .15s}
.gsx .q .stem{display:flex; gap:12px}
.gsx .q .n{font-weight:700; font-size:16px; min-width:26px; color:var(--accent-deep)}
.gsx .q .text{flex:1; padding-top:1px}
.gsx .opts{display:flex; gap:10px; margin-top:12px; flex-wrap:wrap}
.gsx .opt{appearance:none; cursor:pointer; font:inherit; font-weight:600; font-size:14px; background:var(--soft); color:var(--ink); border:1.5px solid var(--line-strong); border-radius:9px; padding:9px 18px; min-width:108px; text-align:center; transition:all .12s}
.gsx .opt:hover{border-color:var(--accent)}
.gsx .opt[aria-pressed="true"]{background:var(--accent); color:#ffffff; border-color:var(--accent)}
.gsx .opt .k{opacity:.6; font-weight:700; margin-right:7px}
.gsx .q.ex{background:repeating-linear-gradient(135deg,var(--soft),var(--soft) 9px,#ece8dd 9px,#ece8dd 18px); border-style:dashed; border-color:var(--line-strong)}
.gsx .q.ex .tag{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:600}
.gsx .q.ex .opt{cursor:default; pointer-events:none}
.gsx .q.right{border-color:var(--ok)} .gsx .q.wrong{border-color:var(--no)}
.gsx .opt.is-correct{background:var(--ok-bg); border-color:var(--ok); color:var(--ok-tx)}
.gsx .opt.is-chosen-wrong{background:var(--no-bg); border-color:var(--no); color:var(--no-tx)}
.gsx .verdict{display:none; margin-top:10px; font-size:13px; padding:9px 12px; border-radius:8px; line-height:1.45}
.gsx .reviewing .verdict{display:block}
.gsx .verdict.r{background:var(--ok-bg); color:var(--ok-tx)} .gsx .verdict.w{background:var(--no-bg); color:var(--no-tx)}
.gsx .verdict .lead{font-weight:600}

.gsx-actionbar{position:sticky; bottom:0; z-index:5; margin-top:30px; padding:22px 0 8px; background:linear-gradient(transparent, var(--canvas) 26%); display:flex; align-items:center; gap:14px; flex-wrap:wrap}
.gsx-btn{appearance:none; cursor:pointer; font:inherit; font-weight:600; font-size:15px; border-radius:11px; padding:13px 24px; border:1.5px solid var(--accent); background:var(--accent); color:#ffffff; text-decoration:none; display:inline-block; transition:opacity .15s}
.gsx-btn:hover{opacity:.92}
.gsx-btn.ghost{background:transparent; color:var(--ink); border-color:var(--line-strong)}
.gsx-btn[disabled]{opacity:.32; cursor:not-allowed}
.gsx-hint{color:var(--muted); font-size:13px}

.gsx-result{display:none; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:26px; margin:14px 0 0}
.gsx-result.show{display:block}
.gsx-score-row{display:flex; align-items:flex-end; gap:18px; flex-wrap:wrap}
.gsx-score-big{font-family:"Newsreader",Georgia,serif; font-weight:600; font-size:52px; line-height:.9}
.gsx-score-big small{font-size:23px; color:var(--muted)}
.gsx-scorePct{font-weight:600; font-size:18px}
.gsx-pill{font-size:13px; font-weight:600; padding:6px 14px; border-radius:999px; margin-left:auto}
.gsx-pill.pass{background:var(--ok-bg); color:var(--ok-tx)} .gsx-pill.fail{background:var(--no-bg); color:var(--no-tx)}
.gsx-meter{height:10px; background:var(--soft); border:1px solid var(--line); border-radius:999px; overflow:hidden; margin:18px 0 6px}
.gsx-meter > span{display:block; height:100%; background:linear-gradient(90deg,var(--accent),var(--accent-deep)); width:0; transition:width .9s cubic-bezier(.2,.8,.2,1)}
.gsx-note{color:var(--muted); font-size:13.5px; margin:14px 0 0}

/* Post-attempt analysis panel */
.gsx-analysis{display:none; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:26px; margin:14px 0 0}
.gsx-analysis.show{display:block}
.gsx-analysis-h{font-family:"Newsreader",Georgia,serif; font-weight:600; font-size:22px; margin:0 0 4px}
.gsx-analysis-sub{color:var(--muted); font-size:13.5px; margin:0 0 18px}
.gsx-analysis-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px}
.gsx-analysis-card{background:var(--soft); border:1px solid var(--line); border-radius:12px; padding:14px 16px}
.gsx-ac-wide{grid-column:1 / -1}
.gsx-ac-label{font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-bottom:6px}
.gsx-ac-value{font-size:15.5px; font-weight:600; color:var(--ink)}
.gsx-ac-pills{display:flex; flex-wrap:wrap; gap:6px}
.gsx-topic-pill{font-size:12.5px; font-weight:600; padding:4px 11px; border-radius:999px; background:#fdf8ee; border:1px solid var(--accent); color:var(--accent-deep)}
.gsx-prob-badge{display:inline-block; font-size:14px; font-weight:700; padding:3px 12px; border-radius:999px}
.gsx-prob-badge.high{background:var(--ok-bg); color:var(--ok-tx)}
.gsx-prob-badge.medium{background:#fdf3da; color:#8a5a06}
.gsx-prob-badge.medium-low{background:#fdf3da; color:#8a5a06}
.gsx-prob-badge.low{background:var(--no-bg); color:var(--no-tx)}
.gsx-analysis-chart-wrap{margin-top:18px}
.gsx-chart{width:100%; height:auto; margin-top:6px}
.gsx-chart-grid{stroke:var(--line); stroke-width:1}
.gsx-chart-axis{font-size:9.5px; fill:var(--muted); font-family:"Libre Franklin",system-ui,sans-serif}
.gsx-chart-axis-x{text-anchor:middle}
.gsx-chart-line{stroke:var(--accent-deep); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round}
.gsx-chart-dot{fill:var(--accent-deep); cursor:pointer; transition:r .12s ease; outline:none}
.gsx-chart-dot:hover, .gsx-chart-dot.active, .gsx-chart-dot:focus{fill:var(--accent); r:6.5}
.gsx-analysis-chart-wrap{position:relative}
.gsx-chart-tooltip{
  position:absolute; transform:translate(-50%,-100%) translateY(-8px);
  background:var(--ink); color:#fff; font-size:12px; font-weight:600; white-space:nowrap;
  padding:5px 10px; border-radius:7px; pointer-events:none; opacity:0; transition:opacity .1s ease;
  font-family:"Libre Franklin",system-ui,sans-serif; z-index:5;
}
.gsx-chart-tooltip.show{opacity:1}
.gsx-chart-tooltip::after{
  content:""; position:absolute; left:50%; top:100%; transform:translateX(-50%);
  border:5px solid transparent; border-top-color:var(--ink);
}

/* dashboard list */
.gsx-list{display:flex; flex-direction:column; gap:12px; margin:8px 0; font-family:"Libre Franklin",system-ui,sans-serif}
.gsx-row{display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:#ffffff; color:#1a1916; border:1px solid #e3dfd3; border-radius:12px; padding:16px 18px}
.gsx-row-main{display:flex; flex-direction:column; gap:3px; flex:1; min-width:160px}
.gsx-row-title{font-weight:600; font-size:16px}
.gsx-row-meta{color:#6c6760; font-size:13px}
.gsx-verdict-tag{font-weight:700}
.gsx-verdict-tag.pass{color:#1f5c3d} .gsx-verdict-tag.fail{color:#8c2f28}
.gsx-attempts{font-size:11.5px; font-weight:600; padding:4px 10px; border-radius:999px; background:#eaf5ee; color:#1f5c3d; white-space:nowrap}
.gsx-attempts.none{background:#fbecea; color:#8c2f28}
.gsx-row .gsx-btn{padding:10px 18px; font-size:14px}
.gsx-row .gsx-btn.ghost{color:#1a1916; border-color:#cdc7b8}
.gsx-note{color:#6c6760}

/* My Tests: refund-policy warning banner */
.gsx-refund-warning{
  font-family:"Libre Franklin",system-ui,sans-serif; font-size:13px; font-weight:600;
  color:#8c2f28; background:#fbecea; border:1px solid #f0c7c1; border-radius:10px;
  padding:11px 16px; margin-bottom:16px;
}
.gsx-refund-warning a{color:#8c2f28; text-decoration:underline; font-weight:700}

/* My Tests: quick-add header bar */
.gsx-tests-header{display:flex; align-items:center; gap:12px; margin-bottom:18px; font-family:"Libre Franklin",system-ui,sans-serif}
.gsx-tests-header .gsx-circle-btn{width:36px; height:36px}
.gsx-tests-header .gsx-circle-btn svg{width:15px; height:15px}
.gsx-tests-header .gsx-hint{font-size:13px}

/* My Tests: all permanent free tests live in one compact native dropdown. */
.gsx-free-tests-dropdown{
  margin-bottom:16px; background:#fdf8ee; border:1.5px solid var(--accent);
  border-radius:14px; overflow:hidden; font-family:"Libre Franklin",system-ui,sans-serif;
}
.gsx-free-tests-summary{
  list-style:none; cursor:pointer; padding:15px 18px; display:flex; align-items:center; gap:12px;
  color:#1a1916; user-select:none;
}
.gsx-free-tests-summary::-webkit-details-marker{display:none}
.gsx-free-tests-summary .gsx-chevron{
  width:16px; height:16px; flex-shrink:0; color:var(--accent-deep); transition:transform .15s ease;
}
.gsx-free-tests-dropdown[open] > .gsx-free-tests-summary > .gsx-chevron{transform:rotate(90deg)}
.gsx-free-tests-summary-icon{
  width:32px; height:32px; flex-shrink:0; border-radius:50%; background:#fff;
  border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; color:var(--accent-deep);
}
.gsx-free-tests-summary-icon svg{width:16px; height:16px}
.gsx-free-tests-summary-label{font-weight:700; font-size:15.5px; flex:1}
.gsx-free-tests-count{
  font-size:12px; font-weight:600; color:var(--accent-deep); background:#fff;
  border:1px solid #e5d3ad; border-radius:999px; padding:4px 10px; white-space:nowrap;
}
.gsx-free-module-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:0 14px 14px;
}
.gsx-free-module{
  background:#fff; border:1px solid #e3d6ba; border-radius:14px; overflow:hidden;
}
.gsx-free-module-summary{
  list-style:none; cursor:pointer; min-height:92px; padding:16px;
  display:grid; grid-template-columns:52px 1fr auto; grid-template-rows:1fr auto;
  column-gap:13px; align-items:center; color:#1a1916; user-select:none;
}
.gsx-free-module-summary::-webkit-details-marker{display:none}
.gsx-free-module-icon{
  grid-row:1/3; width:52px; height:52px; border-radius:13px; background:#fdf8ee;
  border:1px solid #eadbbd; display:flex; align-items:center; justify-content:center;
}
.gsx-free-module-icon img{width:38px; height:38px; object-fit:contain; mix-blend-mode:multiply}
.gsx-free-module-label{font-family:"Newsreader",Georgia,serif; font-size:22px; font-weight:600; line-height:1.1}
.gsx-free-module-count{
  grid-column:2; font-size:11.5px; color:var(--muted); align-self:start;
}
.gsx-free-module-summary .gsx-chevron{
  grid-column:3; grid-row:1/3; width:16px; height:16px; color:var(--accent-deep); transition:transform .15s ease;
}
.gsx-free-module[open] .gsx-free-module-summary .gsx-chevron{transform:rotate(90deg)}
.gsx-free-test-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:8px;
  padding:0 12px 12px;
}
.gsx-free-test-item{min-width:0}
.gsx-free-test-tile{
  min-height:82px; border-radius:10px; border:1.5px dashed #b3893f; background:#fff;
  display:flex; position:relative; flex-direction:column; align-items:center; justify-content:center; gap:1px;
  text-decoration:none; color:#1a1916; transition:border-color .12s ease,transform .12s ease,background-color .12s ease;
}
.gsx-free-test-tile:hover{border-style:solid; border-color:#8d682b; background:#fbf6ec; transform:translateY(-2px)}
.gsx-free-test-level{font-family:"Newsreader",Georgia,serif; font-size:20px; font-weight:600; line-height:1}
.gsx-free-test-org{font-size:11px; color:var(--muted)}
.gsx-free-test-tile .gsx-tile-dot{margin-top:3px}
.gsx-free-test-tile .gsx-tile-pct{font-size:10px}
.gsx-free-test-tile.inprogress{border-style:solid; background:#fdf8ee}
.gsx-free-test-tile.done.pass{border-style:solid; border-color:#2c7a52; background:#eaf5ee; color:#1f5c3d}
.gsx-free-test-tile.done.fail{border-style:solid; border-color:#b23b32; background:#fbecea; color:#8c2f28}
.gsx-free-history{margin-top:5px; font-family:"Libre Franklin",system-ui,sans-serif}
.gsx-free-history summary{
  list-style:none; cursor:pointer; text-align:center; font-size:10.5px; color:#6c6760; line-height:1.3;
}
.gsx-free-history summary::-webkit-details-marker{display:none}
.gsx-free-history summary:hover{color:#8d682b}
.gsx-free-history-links{display:flex; flex-direction:column; gap:4px; margin-top:5px}
.gsx-free-history-links a{
  display:block; padding:5px 6px; border-radius:6px; background:#f7f4ed;
  color:#5f574b; font-size:9.5px; line-height:1.25; text-decoration:none; text-align:center;
}
.gsx-free-history-links a:hover{background:#efe5d1; color:#1a1916}
@media(max-width:480px){
  .gsx-free-tests-summary{padding:13px 14px; gap:9px}
  .gsx-free-tests-count{font-size:11px; padding:3px 8px}
  .gsx-free-module-grid{grid-template-columns:1fr; padding:0 10px 10px; gap:9px}
  .gsx-free-module-summary{min-height:76px; grid-template-columns:44px 1fr auto; padding:12px}
  .gsx-free-module-icon{width:44px; height:44px}
  .gsx-free-module-icon img{width:32px; height:32px}
}

/* My Tests: tile status legend */
.gsx-legend{display:flex; flex-wrap:wrap; gap:6px 16px; margin:0 0 14px; font-family:"Libre Franklin",system-ui,sans-serif; font-size:12.5px; color:var(--muted)}
.gsx-legend-item{display:flex; align-items:center; gap:6px}
.gsx-legend-swatch{width:11px; height:11px; border-radius:3px; border:1.5px solid #cdc7b8; display:inline-block}
.gsx-legend-swatch.open{border-style:dashed; border-color:#b3893f}
.gsx-legend-swatch.inprogress{border-style:solid; border-color:#b3893f; background:#fdf8ee}
.gsx-legend-swatch.pass{border-style:solid; border-color:#2c7a52; background:#eaf5ee}
.gsx-legend-swatch.fail{border-style:solid; border-color:#b23b32; background:#fbecea}

/* My Tests: collapsible categories (native <details>, no custom JS needed) */
.gsx-categories{display:flex; flex-direction:column; gap:10px; font-family:"Libre Franklin",system-ui,sans-serif}
.gsx-category{background:#fff; border:1px solid #e3dfd3; border-radius:14px; overflow:hidden}
.gsx-category-summary{
  list-style:none; cursor:pointer; padding:16px 18px; display:flex; align-items:center; gap:12px;
  font-weight:600; font-size:15.5px; color:#1a1916; user-select:none;
}
.gsx-category-summary::-webkit-details-marker{display:none}
.gsx-category-summary .gsx-chevron{width:16px; height:16px; flex-shrink:0; color:#6c6760; transition:transform .15s ease}
.gsx-category[open] .gsx-chevron{transform:rotate(90deg)}
.gsx-category-label{flex:1}
/* A module parent appears only when two or more paid category groups share
   that module, keeping My Tests compact without adding empty hierarchy. */
.gsx-module-category{background:#faf8f2;border:1px solid #d8d1c2;border-radius:14px;overflow:hidden}
.gsx-module-category-summary{list-style:none;cursor:pointer;padding:15px 18px;display:flex;align-items:center;gap:11px;font-weight:700;font-size:15.5px;color:#1a1916;user-select:none}
.gsx-module-category-summary::-webkit-details-marker{display:none}
.gsx-module-category-summary>.gsx-chevron{width:16px;height:16px;flex-shrink:0;color:#6c6760;transition:transform .15s ease}
.gsx-module-category[open]>.gsx-module-category-summary>.gsx-chevron{transform:rotate(90deg)}
.gsx-module-category-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid #ded8ca;border-radius:50%;background:#fff;flex-shrink:0}
.gsx-module-category-icon img{width:16px;height:16px;object-fit:contain}
.gsx-module-category-label{flex:1}
.gsx-module-category-count{font-size:11.5px;font-weight:600;color:#6c6760;white-space:nowrap}
.gsx-module-category-body{display:flex;flex-direction:column;gap:8px;padding:0 12px 12px}
.gsx-module-category-body>.gsx-category{border-radius:10px}
@media(max-width:600px){.gsx-module-category-count{display:none}.gsx-module-category-summary>.gsx-attempts{font-size:10.5px}.gsx-module-category-body{padding:0 8px 8px}}
/* My Tests: square tile grid inside each category (10ish per row) */
.gsx-tile-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(64px,1fr)); gap:8px; padding:0 14px 16px}
.gsx-tile{
  aspect-ratio:1; border-radius:10px; border:1.5px solid #cdc7b8; background:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  text-decoration:none; color:#1a1916; transition:border-color .12s ease, transform .12s ease, background-color .12s ease;
}
.gsx-tile:hover{border-color:#b3893f; transform:translateY(-2px)}
.gsx-tile-num{font-family:"Newsreader",Georgia,serif; font-weight:600; font-size:18px}
.gsx-tile-pct{font-size:10.5px; font-weight:600; opacity:.75}
.gsx-tile.open{border-style:dashed; border-color:#b3893f}
.gsx-tile.open:hover{border-style:solid; background:#fbf6ec}
.gsx-tile.inprogress{border-style:solid; border-color:#b3893f; background:#fdf8ee}
.gsx-tile.inprogress:hover{background:#fbf0d9}
.gsx-tile-dot{width:6px; height:6px; border-radius:50%; background:#b3893f}
.gsx-tile.done.pass{border-style:solid; border-color:#2c7a52; background:#eaf5ee; color:#1f5c3d}
.gsx-tile.done.fail{border-style:solid; border-color:#b23b32; background:#fbecea; color:#8c2f28}
.gsx-tile.expired{cursor:not-allowed;border-style:solid;border-color:#c8c3ba;background:#f3f1ed;color:#777;box-shadow:none;transform:none}
.gsx-tile.expired:hover{border-color:#c8c3ba;background:#f3f1ed;transform:none}
.gsx-tile-expired{font-size:9px;font-weight:600;line-height:1.2;text-align:center}
@media(max-width:480px){ .gsx-tile-grid{grid-template-columns:repeat(auto-fill,minmax(54px,1fr))} .gsx-tile-num{font-size:15px} }

/* deterrence: tiled watermark overlay + print blocking */
.gsx-watermark{
  position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:1;
  display:flex; flex-direction:column; justify-content:space-between;
}
.gsx-watermark-row{
  font-size:13px; font-weight:600; color:rgba(26,25,22,.06); white-space:nowrap;
  transform:rotate(-22deg) scale(1.4); letter-spacing:.02em;
}
.gsx-body > *:not(.gsx-watermark){ position:relative; z-index:2; }
@media print{ .gsx{ display:none !important; } body::after{ content:"Printing is disabled for this test."; } }

/* storefront: already-owned badge on shop/product pages */
.gsx-owned-badge{
  font-family:"Libre Franklin",system-ui,sans-serif; font-size:12.5px; font-weight:600;
  color:#1f5c3d; background:#eaf5ee; border:1px solid #cfe8d9; border-radius:8px;
  padding:7px 11px; margin:8px 0; display:block;
}
.gsx-owned-badge a{color:#1f5c3d; text-decoration:underline}
.gsx-owned-badge.partial{color:#8a6a2f; background:#fdf6e8; border-color:#eddfb8}
.gsx-owned-badge.partial a{color:#8a6a2f}

/* storefront: bundle contents list */
.gsx-includes-list{
  font-family:"Libre Franklin",system-ui,sans-serif; font-size:14px; color:#1a1916;
  background:#f6f4ee; border:1px solid #e3dfd3; border-radius:10px; padding:14px 18px; margin:14px 0;
}
.gsx-includes-list strong{display:block; margin-bottom:6px; font-size:13px}
.gsx-includes-list ul{margin:0; padding-left:20px}
.gsx-includes-list li{margin:3px 0}

/* circular action button: black, turns green on hover */
.gsx-circle-btn{
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:#1a1916; color:#ffffff; text-decoration:none;
  transition:background-color .18s ease, transform .12s ease;
}
.gsx-circle-btn:hover{background:#2c7a52}
.gsx-circle-btn:active{transform:scale(.94)}
.gsx-circle-btn svg{width:18px; height:18px; display:block}
.gsx-circle-btn.ghost{background:transparent; color:#1a1916; border:1.5px solid #cdc7b8}
.gsx-circle-btn.ghost:hover{background:#2c7a52; color:#ffffff; border-color:#2c7a52}

/* registration form */
.gsx-form-wrap{max-width:480px; margin:0 auto; font-family:"Libre Franklin",system-ui,sans-serif}
.gsx-form-error{background:#fbecea; border:1px solid #f0c7c1; color:#8c2f28; border-radius:10px; padding:12px 16px; margin-bottom:18px; font-size:14px}
.gsx-form-error ul{margin:0; padding-left:18px}
.gsx-form-row{margin-bottom:16px}
.gsx-form-row-2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
@media(max-width:480px){ .gsx-form-row-2{grid-template-columns:1fr} }
.gsx-form label{display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; color:#1a1916}
.gsx-form input{font:inherit; font-size:15px; font-weight:400; padding:10px 13px; border:1.5px solid #cdc7b8; border-radius:9px; background:#fff; color:#1a1916}
.gsx-form input:focus{outline:none; border-color:#b3893f}
.gsx-form .gsx-btn{width:100%; margin-top:6px; border:1.5px solid #b3893f}
.gsx-form-hint{font-size:13px; color:#6c6760; margin-top:14px; text-align:center; font-weight:400}

.gsx-disclaimer{font-size:12px;line-height:1.45;color:#6c6760;margin:10px 0 14px;}
.gsx-banner .gsx-disclaimer{max-width:760px;margin:12px auto 0;}


/* WooCommerce shop exam filters */
.gsx-shop-filters {
	margin: 0 0 28px;
	padding: 18px;
	border: 1px solid rgba(0,0,0,.14);
	background: #fbfaf6;
}
.gsx-shop-filters strong {
	display: block;
	width: 100%;
	font-size: 16px;
	letter-spacing: .02em;
	margin-bottom: 14px;
}
.gsx-filter-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px;
}
.gsx-filter-field {
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 0 0 auto;
}
.gsx-filter-actions {
	flex: 0 0 auto;
}
.gsx-filter-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	line-height: 1.4;
	display: block;
}
.gsx-shop-filters select {
	display: block;
	min-width: 165px;
	height: 40px;
	box-sizing: border-box;
	padding: 8px 10px;
	border: 1px solid rgba(0,0,0,.28);
	background: #fff;
	font-size: 14px;
	font-family: inherit;
	font-weight: 400;
}
.gsx-filter-label-spacer {
	width: auto;
	flex: 0 0 auto;
}
.gsx-filter-buttons {
	display: flex;
	align-items: center;
	gap: 8px;
	height: 40px;
}
.gsx-shop-filters .gsx-filter-btn {
	all: unset !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 40px !important;
	min-width: 88px !important;
	margin: 0 !important;
	padding: 0 20px !important;
	border: 1px solid #111 !important;
	border-radius: 0 !important;
	background: #111 !important;
	color: #fff !important;
	font-size: 14px !important;
	font-family: inherit !important;
	font-weight: 400 !important;
	line-height: normal !important;
	text-decoration: none !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	text-align: center !important;
}
.gsx-shop-filters .gsx-filter-btn.gsx-shop-filter-reset {
	background: transparent !important;
	color: #111 !important;
}
@media (max-width: 720px) {
	.gsx-filter-row { display: block; }
	.gsx-filter-field { margin-top: 10px; width: 100%; }
	.gsx-shop-filters select { width: 100%; }
	.gsx-filter-buttons { width: 100%; }
	.gsx-shop-filters .gsx-filter-btn { flex: 1; }
}

/* ---- WooCommerce exam products: balanced titles, spacing and alignment ---- */
.gsx-product-title span{display:block}
.gsx-product-title .gsx-product-format{font-weight:750;line-height:1.12}
.gsx-product-title .gsx-product-detail{font-weight:600;line-height:1.25}
.gsx-product-title .gsx-product-kind{font-weight:500;line-height:1.35;color:#666}

/* Product grid: every card has the same internal rhythm, so prices and
   purchase buttons stay aligned even when a title contains more text. */
.woocommerce ul.products{
	display:grid!important;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:54px 24px;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none!important}
.woocommerce ul.products li.product{
	width:auto!important;
	float:none!important;
	margin:0!important;
	display:flex!important;
	flex-direction:column;
	min-width:0;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{
	display:flex;
	flex:1;
	flex-direction:column;
}
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .woocommerce-loop-product__link img{
	border-radius:7px;
	margin-bottom:22px!important;
}
.woocommerce ul.products li.product .gsx-product-title{
	min-height:78px;
	margin:0 0 15px!important;
	text-align:center;
}
.woocommerce ul.products li.product .gsx-product-format{font-size:18px;margin-bottom:5px}
.woocommerce ul.products li.product .gsx-product-detail{font-size:15px;margin-bottom:3px}
.woocommerce ul.products li.product .gsx-product-kind{font-size:12.5px;letter-spacing:.025em}
.woocommerce ul.products li.product .price{
	margin-top:auto!important;
	margin-bottom:18px!important;
	text-align:center;
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button{
	align-self:center;
	margin-top:0!important;
	border-radius:6px!important;
}

/* The active Twenty Twenty-Three shop template uses WooCommerce blocks rather
   than the classic ul.products loop. Keep its single, existing title compact. */
.wc-block-product-template .wc-block-product,
.wp-block-woocommerce-product-template .wc-block-product{
	display:flex!important;
	flex-direction:column;
}
.wc-block-product .wp-block-post-title.gsx-product-title{
	min-height:66px;
	margin:0 0 14px!important;
	font-family:inherit!important;
	text-align:center;
	line-height:1.2!important;
}
.wc-block-product .gsx-product-title a{text-decoration:none!important}
.wc-block-product .gsx-product-title .gsx-product-format{font-size:17px!important;font-weight:700!important;line-height:1.15!important;margin-bottom:5px}
.wc-block-product .gsx-product-title .gsx-product-detail{font-size:14px!important;font-weight:600!important;line-height:1.25!important;margin-bottom:2px}
.wc-block-product .gsx-product-title .gsx-product-kind{font-size:12px!important;font-weight:500!important;line-height:1.3!important;color:#666!important}
.wc-block-product .wp-block-woocommerce-product-price{margin-top:auto!important}
.wc-block-product .wc-block-components-product-image,
.wc-block-product .wc-block-components-product-image>a,
.wc-block-product .wc-block-components-product-image img{
	border-radius:8px!important;
}
.wc-block-product .wc-block-components-product-image,
.wc-block-product .wc-block-components-product-image>a{overflow:hidden!important}
.wc-block-product .wp-block-button__link,
.wc-block-product .wc-block-components-product-button__button,
.wp-block-woocommerce-product-button .wp-element-button{border-radius:7px!important}

/* Single product: WooCommerce's current block template owns the columns.
   Never turn generic div.product elements into a grid: related-product cards
   use that class too, and the block gallery has its own intrinsic width. */
.single-product .wp-block-columns:has(.wp-block-woocommerce-product-image-gallery){
	gap:clamp(32px,5vw,68px)!important;
	align-items:flex-start!important;
}
.single-product .wp-block-columns:has(.wp-block-woocommerce-product-image-gallery) > .wp-block-column{
	min-width:0!important;
}
.single-product .wp-block-columns:has(.wp-block-woocommerce-product-image-gallery) > .wp-block-column:first-child{
	flex:1 1 52%!important;
}
.single-product .wp-block-columns:has(.wp-block-woocommerce-product-image-gallery) > .wp-block-column:last-child{
	flex:1 1 42%!important;
}
.single-product .wp-block-woocommerce-product-image-gallery,
.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image > a,
.single-product .woocommerce-product-gallery__image img{
	border-radius:8px!important;
}
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image > a{overflow:hidden!important}
.single-product h1.wp-block-post-title.gsx-product-title{
	margin:0 0 24px!important;
	font-family:inherit!important;
	word-break:normal!important;
	overflow-wrap:normal!important;
}
.single-product h1.wp-block-post-title.gsx-product-title span{
	word-break:normal!important;
	overflow-wrap:normal!important;
}
.single-product h1.wp-block-post-title .gsx-product-format{font-size:clamp(34px,3.5vw,48px)!important;margin-bottom:9px}
.single-product h1.wp-block-post-title .gsx-product-detail{font-size:clamp(23px,2.3vw,31px)!important;margin-bottom:7px}
.single-product h1.wp-block-post-title .gsx-product-kind{font-size:clamp(17px,1.5vw,21px)!important}
.single-product .summary .button,
.single-product .summary button.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button{
	border-radius:6px!important;
}

/* Primary commerce action: German Studio gold, reserved for purchasing. */
.woocommerce .single_add_to_cart_button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .product_type_simple,
.wc-block-product .wc-block-components-product-button__button,
.wp-block-woocommerce-product-button .wp-element-button{
	background:#ffcc00!important;
	border-color:#ffcc00!important;
	border-radius:8px!important;
	color:#111!important;
	box-shadow:none!important;
}
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .single_add_to_cart_button:focus-visible,
.woocommerce ul.products li.product .add_to_cart_button:hover,
.woocommerce ul.products li.product .add_to_cart_button:focus-visible,
.woocommerce ul.products li.product .product_type_simple:hover,
.woocommerce ul.products li.product .product_type_simple:focus-visible,
.wc-block-product .wc-block-components-product-button__button:hover,
.wc-block-product .wc-block-components-product-button__button:focus-visible,
.wp-block-woocommerce-product-button .wp-element-button:hover,
.wp-block-woocommerce-product-button .wp-element-button:focus-visible{
	background:#e5b800!important;
	border-color:#e5b800!important;
	color:#111!important;
}

/* Visually separate Related products from the product description above. */
.single-product h2.wp-block-heading:has(+ .wp-block-woocommerce-product-template){
	margin-top:clamp(64px,8vw,104px)!important;
	margin-bottom:30px!important;
	padding-top:34px!important;
	border-top:1px solid #d8d8d8;
	font-family:inherit!important;
	font-size:clamp(25px,2.4vw,34px)!important;
	font-weight:700!important;
	line-height:1.2!important;
	letter-spacing:-.02em;
}

@media(max-width:900px){
	.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
	.single-product .wp-block-columns:has(.wp-block-woocommerce-product-image-gallery){flex-wrap:wrap!important}
	.single-product .wp-block-columns:has(.wp-block-woocommerce-product-image-gallery) > .wp-block-column{flex-basis:100%!important}
}
@media(max-width:560px){
	.woocommerce ul.products{grid-template-columns:1fr;gap:40px}
	.woocommerce ul.products li.product .gsx-product-title{min-height:0}
	.single-product h2.wp-block-heading:has(+ .wp-block-woocommerce-product-template){margin-top:54px!important;padding-top:26px!important}
}

/* My Account: the theme adds padding around the title that it does not add
   around WooCommerce's dashboard. Remove that mismatch so both start together. */
.woocommerce-account main > .wp-block-group.has-global-padding:has(> .wp-block-post-title){
	padding-inline-start:0!important;
	padding-inline-end:0!important;
}

/* Sprechen placeholder reached from the Exam Packs navigation dropdown. */
.gsx-coming-soon{max-width:820px;margin:0 auto;padding:80px 24px 110px;text-align:center;color:#111}
.gsx-coming-kicker{margin:0 0 24px;color:#777;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.gsx-coming-mark{display:flex;align-items:center;justify-content:center;width:88px;height:88px;margin:0 auto 28px;border:2px solid #111;border-radius:50%;font-family:"Newsreader",Georgia,serif;font-size:48px;font-weight:600}
.gsx-coming-soon h1{max-width:720px;margin:0 auto 20px!important;font-size:clamp(36px,5vw,62px)!important;font-weight:800!important;line-height:1.04!important;letter-spacing:-.035em}
.gsx-coming-soon>p:not(.gsx-coming-kicker){max-width:620px;margin:0 auto 32px;color:#555;font-size:17px;line-height:1.7}
@media(max-width:560px){.gsx-coming-soon{padding-top:54px}.gsx-coming-mark{width:72px;height:72px;font-size:40px}}

/* ---- Category browser (gs_category_browser shortcode) ---- */
/* Matches the site theme: black/white, sans-serif, simple underlines, no gold/serif. */
.gsx-browser{
  max-width:1080px; margin:0 auto; padding:0 0 60px;
  font-family:inherit;
  color:#1a1a1a;
}
.gsx-crumbs{ font-size:14px; color:#555; margin-bottom:18px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.gsx-crumb{ color:#1a1a1a; text-decoration:underline; font-weight:400; }
.gsx-crumb:hover{ opacity:.7; }
.gsx-crumb.is-current{ color:#888; text-decoration:none; }
.gsx-crumb-sep{ color:#bbb; }

.gsx-browser-eyebrow{ display:none; }
.gsx-browser-h2{ margin:0 0 10px; }
.gsx-browser-sub{ color:#555; margin:0 0 32px; max-width:62ch; font-size:15px; }

.gsx-card-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px;
}
.gsx-card{
  position:relative; display:flex; flex-direction:column; gap:0;
  background:#fff; border:1px solid #ccc; border-radius:4px;
  padding:44px 20px 20px; text-decoration:none; color:#1a1a1a;
  transition:border-color .15s, transform .1s, box-shadow .15s;
  min-height:140px;
}
.gsx-card:hover{
  border-color:#1a1a1a; transform:translateY(-1px);
  box-shadow:0 2px 8px rgba(0,0,0,0.06);
}
.gsx-card-icon{
  display:block; width:56px; height:56px; object-fit:contain;
  margin-bottom:16px; flex-shrink:0;
}
.gsx-card-body{ display:flex; flex-direction:column; gap:4px; }
.gsx-card-stamp{ display:none; }
.gsx-card-name{
  display:flex; flex-direction:column; gap:1px;
  font-family:inherit; font-weight:600; font-size:19px; line-height:1.2;
}
.gsx-card-en{
  font-weight:400; font-size:14px; color:#666; line-height:1.3;
}
.gsx-card-count{ font-size:13px; color:#888; font-weight:500; margin-top:4px; }

.gsx-card.is-disabled{
  cursor:default; border-style:dashed; border-color:#ddd; background:#fcfcfc;
}
.gsx-card.is-disabled .gsx-card-icon{ opacity:0.3; }
.gsx-card.is-disabled .gsx-card-name{ color:#aaa; }
.gsx-card.is-disabled .gsx-card-en{ color:#bbb; }
.gsx-card.is-disabled .gsx-card-count{ color:#bbb; }

@media (max-width:480px){
  .gsx-card-grid{ grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:12px; }
  .gsx-card{ padding:18px 16px 16px; min-height:96px; }
}

/* ---- Free test banner (Shop landing) ---- */
.gsx-free-banner{
  margin-bottom:28px;
  border:1.5px solid #111; border-radius:4px;
  background:#fff;
}
.gsx-free-banner-inner{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:16px;
  padding:16px 24px;
}
.gsx-free-badge{
  display:inline-flex; align-items:center; justify-content:center;
  align-self:center;
  background:#111; color:#fff; font-size:11px; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  padding:5px 10px; border-radius:2px;
}

/* ---- Free test grid (Homepage: one free sample per format/level/module) ---- */
.gsx-free-grid-sub{ font-size:15px; color:#555; line-height:1.6; margin:0 0 24px; max-width:60ch; }
.gsx-free-grid{ display:flex; flex-direction:column; gap:10px; margin-bottom:22px; border:0; }
.gsx-free-org-block{ display:block; padding:0; border:1px solid #dedbd2; border-radius:8px; background:#faf8f2; font-family:inherit!important; overflow:hidden; }
.gsx-free-org-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;cursor:pointer;list-style:none;font-family:inherit!important}
.gsx-free-org-summary::-webkit-details-marker{display:none}
.gsx-free-org-summary:after{content:"+";margin-left:auto;font-family:inherit;font-size:20px;font-weight:700;line-height:1;color:#666}
.gsx-free-org-block[open]>.gsx-free-org-summary:after{content:"−"}
.gsx-free-org-title{ font-family:inherit!important; font-weight:700; font-size:15px; line-height:1.4; margin:0; }
.gsx-free-org-count{font-family:inherit!important;font-size:12px;font-weight:600;color:#777;white-space:nowrap}
.gsx-free-org-cards{ display:flex; flex-wrap:wrap; gap:8px; padding:0 18px 18px; border-top:1px solid #e4e0d6; padding-top:16px; }
.gsx-free-mini-card{
  display:inline-flex; align-items:center; gap:6px; padding:8px 11px; border-radius:6px;
  border:1px solid #ccc; background:#fff; text-decoration:none; color:#111;
	font-family:inherit!important;
  transition:border-color .12s ease, background .12s ease;
}
.gsx-free-mini-card:hover{ border-color:#111; background:#f6f5f1; }
.gsx-free-mini-level{ font-family:inherit; font-weight:700; font-size:13px; }
.gsx-free-mini-level:after{ content:"·"; margin-left:6px; color:#aaa; }
.gsx-free-mini-module{ font-size:12px; color:#666; text-transform:none; letter-spacing:0; font-weight:500; }
.gsx-free-grid-actions{ text-align:left; }
@media(max-width:560px){
	.gsx-free-org-summary{padding:14px}
	.gsx-free-org-cards{padding:14px;padding-top:14px}
}
.gsx-free-text{
  display:flex; flex-direction:column; gap:3px; align-self:center;
}
.gsx-free-text strong{ font-size:15px; font-weight:700; color:#111; line-height:1.3; }
.gsx-free-text span{ font-size:13px; color:#555; line-height:1.4; }
.gsx-free-btn{
  display:inline-flex; align-items:center; justify-content:center;
  align-self:center;
  padding:10px 22px; background:#111; color:#fff !important;
  font-size:14px; font-weight:600; text-decoration:none !important;
  border-radius:2px; white-space:nowrap; transition:opacity .15s;
}
.gsx-free-btn:hover{ opacity:.85; }
@media(max-width:600px){
  .gsx-free-banner-inner{ grid-template-columns:auto 1fr; grid-template-rows:auto auto; }
  .gsx-free-btn{ grid-column:1/-1; justify-content:center; }
}

/* ---- Free badge on module card ---- */
.gsx-card.has-free{ border-color:#111; }
.gsx-card-free-badge{
  position:absolute; top:14px; left:20px;
  background:#111; color:#fff;
  font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:3px 8px; border-radius:2px;
}

/* ================================================================
   HOMEPAGE  [gs_homepage]
   ================================================================ */

.gsx-home{
  font-family: inherit;
  color: #111;
  --gsx-max: 1080px;
  --gsx-pad: clamp(20px, 5vw, 80px);
}
.gsx-home-wrap{
  max-width: var(--gsx-max);
  margin: 0 auto;
  padding-left: var(--gsx-pad);
  padding-right: var(--gsx-pad);
}

/* Shared buttons */
.gsx-btn{
  display: inline-flex; align-items: center; justify-content: center;
  padding: 13px 28px; font-size: 15px; font-weight: 600;
  text-decoration: none !important; border-radius: 3px;
  transition: opacity .15s, background .15s;
  white-space: nowrap; cursor: pointer; border: none;
}
.gsx-btn-primary{ background: #111; color: #fff !important; }
.gsx-btn-primary:hover{ opacity: .85; }
.gsx-btn-ghost{
  background: transparent; color: #111 !important;
  border: 1.5px solid #111;
}
.gsx-btn-ghost:hover{ background: #111; color: #fff !important; }
.gsx-btn-white{ background: #fff; color: #111 !important; }
.gsx-btn-white:hover{ opacity: .88; }
.gsx-btn-ghost-white{
  background: transparent; color: #fff !important;
  border: 1.5px solid rgba(255,255,255,.55);
}
.gsx-btn-ghost-white:hover{ border-color: #fff; }

/* Shared section headings */
.gsx-section-eyebrow{
  font-size: 12px; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; color: #888; margin: 0 0 10px;
}
.gsx-section-h2{
  font-size: clamp(24px, 3.5vw, 36px); font-weight: 700;
  line-height: 1.15; margin: 0 0 12px; color: #111;
}
.gsx-section-sub{
  font-size: 16px; color: #555; max-width: 58ch; margin: 0 0 40px;
  line-height: 1.6;
}

/* ---- HERO ---- */
.gsx-home-hero{
  padding: 72px 0 80px;
  border-bottom: 1px solid #eee;
}
.gsx-home-hero .gsx-home-wrap{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
/* Exam result motif — the signature element */
.gsx-hero-result{
  display: flex; flex-direction: column;
  align-items: flex-start; gap: 8px;
  padding: 40px 44px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  background: #fafafa;
  font-family: 'SF Mono', 'Fira Mono', 'Courier New', monospace;
  position: relative;
  user-select: none;
}
.gsx-hero-result::before{
  content: 'German Studio · Prüfungsbescheinigung';
  position: absolute; top: 16px; left: 44px;
  font-size: 9px; letter-spacing: .12em; text-transform: uppercase;
  color: #bbb; font-family: inherit;
}
.gsx-result-label{
  font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  color: #999; margin-top: 20px;
}
.gsx-result-level{
  font-size: clamp(72px, 10vw, 108px); font-weight: 700; line-height: 1;
  color: #111; letter-spacing: -.03em;
  font-family: inherit;
}
.gsx-result-verdict{
  font-size: 18px; font-weight: 600; color: #2c7a52;
  letter-spacing: .04em;
}
.gsx-hero-eyebrow{
  font-size: 12px; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; color: #888; margin: 0 0 14px;
}
.gsx-hero-h1{
  font-size: clamp(32px, 4.5vw, 52px); font-weight: 700;
  line-height: 1.1; margin: 0 0 16px; letter-spacing: -.02em; color: #111;
}
.gsx-hero-h1 > span{display:block}
.gsx-hero-sub{
  font-size: 17px; color: #555; line-height: 1.65;
  margin: 0 0 32px; max-width: 46ch;
}
.gsx-hero-actions{ display: flex; gap: 12px; flex-wrap: wrap; }

/* ---- FREE STRIP ---- */
.gsx-home-free-strip{
  background: #111; padding: 20px 0;
}
.gsx-free-strip-inner{
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
}
.gsx-free-strip-text{
  flex: 1; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap;
}
.gsx-free-strip-text strong{ color: #fff; font-size: 15px; }
.gsx-free-strip-text span{ color: rgba(255,255,255,.65); font-size: 14px; }

/* ---- MODULES ---- */
.gsx-home-modules{ padding: 72px 0; }
.gsx-module-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.gsx-module-card{
  display: flex; flex-direction: column; gap: 6px;
  padding: 24px 20px; border: 1px solid #ddd; border-radius: 4px;
  text-decoration: none !important; color: #111;
  transition: border-color .15s, transform .1s;
}
.gsx-module-card:hover{ border-color: #111; transform: translateY(-2px); }
.gsx-module-card.is-soon{ opacity: .5; cursor: default; border-style: dashed; }
.gsx-module-card.is-soon:hover{ transform: none; border-color: #ddd; }
.gsx-module-icon{ width: 36px; height: 36px; object-fit: contain; margin-bottom: 10px; }
.gsx-module-de{ font-size: 17px; font-weight: 700; }
.gsx-module-en{ font-size: 13px; color: #777; }
.gsx-module-soon{ font-size: 11px; color: #aaa; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase; margin-top: 4px; }

/* ---- HOW IT WORKS ---- */
.gsx-home-how{
  padding: 72px 0;
  background: #f8f8f8;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}
.gsx-steps{
  display: grid; grid-template-columns: repeat(3,1fr); gap: 40px;
}
.gsx-step{ display: flex; flex-direction: column; gap: 12px; }
.gsx-step-num{
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: #111; color: #fff;
  font-size: 14px; font-weight: 700; flex-shrink: 0;
}
.gsx-step-title{ font-size: 17px; font-weight: 700; margin: 0; }
.gsx-step-body{ font-size: 15px; color: #555; line-height: 1.6; margin: 0; }

/* ---- FORMATS ---- */
.gsx-home-formats{ padding: 72px 0; }
.gsx-format-grid{
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 20px;
}
.gsx-format-card{
  padding: 32px 36px; border-radius: 4px; border: 1px solid #e0e0e0;
  display: flex; flex-direction: column; gap: 12px;
}
.gsx-format-goethe{ background: #0d0d0d; border-color: #0d0d0d; }
.gsx-format-telc{ background: #1d3557; border-color: #1d3557; }
.gsx-format-label{
  font-size: 12px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: rgba(255,255,255,.55);
}
.gsx-format-body{ font-size: 15px; color: rgba(255,255,255,.8); line-height: 1.6; margin: 0; }
.gsx-format-link{
  font-size: 14px; font-weight: 600; color: #fff !important;
  text-decoration: none !important; margin-top: auto;
  opacity: .75; transition: opacity .15s;
}
.gsx-format-link:hover{ opacity: 1; }
.gsx-formats-disclaimer{
  font-size: 12px; color: #aaa; margin: 0;
}

/* ---- FINAL CTA ---- */
.gsx-home-cta{
  background: #111; padding: 80px 0;
}
.gsx-cta-inner{ text-align: center; }
.gsx-cta-h2{
  font-size: clamp(28px, 4vw, 44px); font-weight: 700;
  color: #fff; margin: 0 0 12px; letter-spacing: -.02em;
}
.gsx-cta-sub{
  font-size: 16px; color: rgba(255,255,255,.6);
  max-width: 52ch; margin: 0 auto 32px; line-height: 1.65;
}
.gsx-cta-inner .gsx-hero-actions{ justify-content: center; }

/* ---- RESPONSIVE ---- */
@media (max-width: 900px) {
  .gsx-home-hero .gsx-home-wrap{ grid-template-columns: 1fr; }
  .gsx-hero-result{ order: -1; }
  .gsx-module-grid{ grid-template-columns: repeat(2, 1fr); }
  .gsx-steps{ grid-template-columns: 1fr; gap: 28px; }
  .gsx-format-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .gsx-module-grid{ grid-template-columns: repeat(2, 1fr); }
  .gsx-hero-actions{ flex-direction: column; }
  .gsx-btn{ width: 100%; justify-content: center; }
  .gsx-free-strip-inner{ flex-direction: column; align-items: flex-start; }
}

/* ===== HOMEPAGE (gs_homepage shortcode) ===== */
/* .alignfull is handled natively by Twenty Twenty-Three — it pulls the
   element to full viewport width. Each section inside re-constrains to
   1200px with generous side padding. */
.gsx-home{
  font-family:inherit; color:#111;
  box-sizing:border-box; width:100%;
}
.gsx-hero,
.gsx-home-section,
.gsx-how-inner,
.gsx-formats-inner{
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  padding-left:40px;
  padding-right:40px;
  box-sizing:border-box;
}

/* Hero */
.gsx-hero{
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
  padding-top:28px; padding-bottom:64px;
}
.gsx-hero-eyebrow{ font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#888; margin:0 0 16px; }
.gsx-hero-h1{ font-size:clamp(36px,5vw,60px); font-weight:800; line-height:1.05; letter-spacing:-.02em; margin:0 0 20px; color:#0d0d0d; }
.gsx-hero-sub{ font-size:17px; color:#555; line-height:1.65; margin:0 0 36px; max-width:44ch; }
.gsx-hero-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* Buttons */
.gsx-btn{ display:inline-flex; align-items:center; justify-content:center; padding:13px 28px; font-size:15px; font-weight:600; border-radius:3px; text-decoration:none !important; transition:opacity .15s, transform .1s; white-space:nowrap; cursor:pointer; }
.gsx-btn:hover{ opacity:.85; transform:translateY(-1px); }
.gsx-btn-primary{ background:#111; color:#fff !important; }
.gsx-btn-ghost{ background:transparent; color:#111 !important; border:1.5px solid #ccc; }
.gsx-btn-ghost:hover{ border-color:#111; }
.gsx-btn-white{ background:#fff; color:#111 !important; }
.gsx-btn-ghost-white{ background:transparent; color:#fff !important; border:1.5px solid rgba(255,255,255,.4); }
.gsx-btn-ghost-white:hover{ border-color:#fff; }

/* Hero exam card */
.gsx-hero-exam-card{
  background:#f7f6f2; border:1px solid #e0ddd4; border-radius:8px;
  padding:36px; display:flex; flex-direction:column; gap:12px;
}
.gsx-hero-card-label{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#888; font-weight:600; }
.gsx-hero-card-score{ display:flex; align-items:baseline; gap:6px; }
.gsx-score-num{ font-size:72px; font-weight:800; line-height:1; color:#111; letter-spacing:-.04em; }
.gsx-score-denom{ font-size:26px; color:#aaa; font-weight:500; }
.gsx-hero-card-pass{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#2c7a52; }
.gsx-hero-card-bars{ display:flex; gap:5px; flex-wrap:wrap; margin-top:6px; }
.gsx-bar{
  width:16px; height:16px; border-radius:2px; background:#e0ddd4;
  animation:barFill .4s ease forwards; animation-play-state:paused;
}
.gsx-bar.filled{ background:#111; animation-play-state:running; }
@keyframes barFill{ from{opacity:0; transform:scaleY(.4)} to{opacity:1; transform:scaleY(1)} }

/* Section shared */
.gsx-home-section{ padding-top:64px; padding-bottom:64px; border-top:1px solid #f0ede6; }
.gsx-section-eyebrow{ font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#888; margin:0 0 10px; }
.gsx-section-h2{ font-size:clamp(24px,3.5vw,38px); font-weight:700; letter-spacing:-.02em; line-height:1.15; margin:0 0 40px; color:#0d0d0d; }

/* Module cards */
.gsx-home-modules{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.gsx-home-module{
  display:flex; flex-direction:column; gap:4px; padding:28px 24px;
  border:1px solid #e0ddd4; border-radius:4px; text-decoration:none !important;
  color:#111; transition:border-color .15s, transform .1s;
}
.gsx-home-module:hover{ border-color:#111; transform:translateY(-1px); }
.gsx-home-module.is-soon{ cursor:default; border-style:dashed; color:#aaa; }
.gsx-home-module-icon{ width:36px; height:36px; object-fit:contain; margin-bottom:14px; }
.gsx-home-module-de{ font-weight:700; font-size:18px; }
.gsx-home-module-en{ font-size:13px; color:#888; }
.gsx-home-module-soon{ font-size:11px; color:#bbb; font-weight:600; letter-spacing:.06em; text-transform:uppercase; margin-top:8px; }

/* How it works — full-width cream background */
.gsx-how-section{
  background:#f7f6f2;
  width:100%;
}
.gsx-how-inner{
  padding-top:64px; padding-bottom:64px;
}
.gsx-how-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.gsx-how-step{ display:flex; flex-direction:column; gap:10px; }
.gsx-how-num{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%; background:#111; color:#fff;
  font-size:15px; font-weight:800; flex-shrink:0; margin-bottom:6px;
}
.gsx-how-step strong{ font-size:17px; font-weight:700; }
.gsx-how-step p{ font-size:14px; color:#555; line-height:1.65; margin:0; }

/* Progress Insights marketing feature (homepage) */
.gsx-analysis-feature{
  background:#fdfbf6; border-top:1px solid #f0ede6; border-bottom:1px solid #f0ede6;
  padding-top:64px; padding-bottom:64px; width:100%;
}
.gsx-analysis-feature-inner{
  max-width:1200px; margin:0 auto; padding:0 40px; box-sizing:border-box;
  display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
}
.gsx-analysis-feature-sub{ font-size:15px; color:#555; line-height:1.65; margin:0 0 28px; max-width:46ch; }
.gsx-analysis-feature-list{ display:flex; flex-direction:column; gap:20px; margin-bottom:22px; }
.gsx-analysis-feature-item{ display:flex; gap:14px; align-items:flex-start; }
.gsx-analysis-feature-num{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:30px; height:30px; border-radius:50%; background:#111; color:#fff;
  font-size:13px; font-weight:800;
}
.gsx-analysis-feature-item strong{ display:block; font-size:15.5px; font-weight:700; margin-bottom:3px; }
.gsx-analysis-feature-item p{ font-size:13.5px; color:#555; line-height:1.6; margin:0; }
.gsx-analysis-feature-note{ font-size:12.5px; color:#8a8578; margin:0 0 22px; }

.gsx-analysis-feature-mockup{
  background:#fff; border:1px solid #e0ddd4; border-radius:14px; padding:22px;
}
.gsx-af-mock-label{ display:block; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#aaa; margin-bottom:14px; }
.gsx-af-mock-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gsx-af-mock-card{ background:#f7f6f2; border:1px solid #ece8dd; border-radius:10px; padding:12px 14px; }
.gsx-af-mock-wide{ grid-column:1 / -1; }
.gsx-af-mock-cap{ display:block; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#999; margin-bottom:7px; }
.gsx-af-mock-pills{ display:flex; flex-wrap:wrap; gap:6px; }
.gsx-af-mock-pills span{ font-size:11.5px; font-weight:600; padding:3px 10px; border-radius:999px; background:#fdf3da; color:#8a5a06; border:1px solid #e8c877; }
.gsx-af-mock-badge{ display:inline-block; font-size:13px; font-weight:700; padding:3px 12px; border-radius:999px; background:#fdf3da; color:#8a5a06; }
.gsx-af-mock-text{ font-size:13px; color:#333; line-height:1.5; }
.gsx-af-mock-chart{ width:100%; height:auto; margin-top:2px; }
.gsx-af-mock-chart polyline{ stroke:#b3893f; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.gsx-af-mock-chart circle{ r:3.5; fill:#8a6a2f; }

/* Format cards */
.gsx-formats{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:20px; }
.gsx-format-card{ padding:36px; border:1px solid #e0ddd4; border-radius:4px; display:flex; flex-direction:column; gap:12px; }
.gsx-format-goethe{ background:#0d0d0d; color:#fff; border-color:#0d0d0d; }
.gsx-format-telc{ background:#1d3557; color:#fff; border-color:#1d3557; }
.gsx-format-label{ font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; opacity:.6; }
.gsx-format-card p{ font-size:15px; line-height:1.65; opacity:.8; margin:0; }
.gsx-format-link{ font-size:14px; font-weight:600; color:#fff !important; text-decoration:none !important; opacity:.9; margin-top:auto; padding-top:8px; }
.gsx-format-link:hover{ opacity:1; }
.gsx-disclaimer{ font-size:11px; color:#aaa; line-height:1.5; max-width:72ch; }

/* CTA strip — full width dark */
.gsx-cta-strip{
  background:#111; color:#fff; text-align:center;
  width:100%;
  padding-top:80px; padding-bottom:80px;
  padding-left:40px; padding-right:40px;
}
.gsx-cta-inner{
  max-width:1200px; margin:0 auto; padding:0 40px; box-sizing:border-box;
}
.gsx-cta-h2{ font-size:clamp(24px,3.5vw,40px); font-weight:800; letter-spacing:-.02em; margin:0 0 12px; }
.gsx-cta-sub{
	font-size:16px;
	opacity:.7;
	max-width:52ch;
	margin:0 auto 32px!important;
	text-align:center!important;
}
.gsx-cta-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* Free section inside homepage */
.gsx-free-section{ border-top:none; padding-top:0; }

/* Responsive */
@media(max-width:960px){
  .gsx-hero{ grid-template-columns:1fr; gap:40px; padding-top:32px; }
  .gsx-hero-exam-card{ display:none; }
  .gsx-home-modules{ grid-template-columns:repeat(2,1fr); }
  .gsx-how-steps{ grid-template-columns:1fr; gap:28px; }
  .gsx-formats{ grid-template-columns:1fr; }
  .gsx-analysis-feature-inner{ grid-template-columns:1fr; gap:32px; }
}
@media(max-width:520px){
  .gsx-home-modules{ grid-template-columns:1fr 1fr; }
  .gsx-hero-actions{ flex-direction:column; }
  .gsx-btn{ width:100%; }
  .gsx-home,.gsx-hero,.gsx-home-section,.gsx-how-inner,.gsx-cta-strip{
    padding-left:20px; padding-right:20px;
  }
}

/* ---- Legal / info pages: FAQ, Privacy Policy, Terms, Refund Policy, Contact ---- */
.gsx-legal{
  font-family:"Libre Franklin",system-ui,-apple-system,sans-serif; color:var(--ink);
  max-width:1040px; margin:0 auto; padding:48px 24px 80px;
}
.gsx-legal-head{ max-width:74ch; margin-bottom:36px; }
.gsx-legal-h1{ font-family:"Newsreader",Georgia,serif; font-weight:600; font-size:clamp(28px,4vw,42px); margin:.25em 0 .3em; }
.gsx-legal-intro{ color:var(--muted); font-size:15.5px; line-height:1.6; }
.gsx-legal-intro a{ color:var(--accent-deep); }

.gsx-legal-body{ display:grid; grid-template-columns:220px 1fr; gap:48px; align-items:start; }
.gsx-legal-toc{ position:sticky; top:24px; }
.gsx-legal-toc-label{ display:block; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#aaa; margin-bottom:10px; }
.gsx-legal-toc ul{ list-style:none; margin:0; padding:0; border-left:2px solid var(--line); }
.gsx-legal-toc li{ margin:0; }
.gsx-legal-toc a{
  display:block; padding:7px 0 7px 16px; margin-left:-2px; border-left:2px solid transparent;
  font-size:13.5px; color:var(--muted); text-decoration:none; line-height:1.4;
}
.gsx-legal-toc a:hover{ color:var(--ink); }
.gsx-legal-toc a.active{ color:var(--accent-deep); border-left-color:var(--accent); font-weight:600; }

.gsx-legal-sections{ min-width:0; }
.gsx-legal-section{ padding-bottom:36px; margin-bottom:36px; border-bottom:1px solid var(--line); }
.gsx-legal-section:last-child{ border-bottom:none; margin-bottom:0; }
.gsx-legal-section h2{ font-family:"Newsreader",Georgia,serif; font-weight:600; font-size:22px; margin:0 0 14px; scroll-margin-top:24px; }
.gsx-legal-section p{ font-size:15px; line-height:1.75; color:#2a2a26; margin:0 0 14px; }
.gsx-legal-section ul{ margin:0 0 14px; padding-left:22px; font-size:15px; line-height:1.75; color:#2a2a26; }
.gsx-legal-section li{ margin-bottom:6px; }
.gsx-legal-section a{ color:var(--accent-deep); }
.gsx-legal-section strong{ font-weight:700; }

@media(max-width:760px){
  .gsx-legal-body{ grid-template-columns:1fr; gap:24px; }
  .gsx-legal-toc{ position:static; border-bottom:1px solid var(--line); padding-bottom:18px; }
  .gsx-legal-toc ul{ display:flex; flex-wrap:wrap; gap:4px 14px; border-left:none; }
  .gsx-legal-toc a{ padding:4px 0; border-left:none; }
  .gsx-legal-toc a.active{ text-decoration:underline; }
}

/* FAQ accordion */
.gsx-faq-filter{
  width:100%; max-width:480px; height:44px; padding:0 16px; margin-bottom:28px;
  border:1.5px solid var(--line-strong); border-radius:10px; font-size:15px; font-family:inherit;
}
.gsx-faq-filter:focus{ outline:none; border-color:var(--accent); }
.gsx-faq-groups{ display:flex; flex-direction:column; gap:32px; }
.gsx-faq-cat{ font-family:"Newsreader",Georgia,serif; font-weight:600; font-size:19px; margin:0 0 12px; }
.gsx-faq-item{
  background:#fff; border:1px solid var(--line); border-radius:12px; padding:0 18px; margin-bottom:8px;
}
.gsx-faq-item summary{
  list-style:none; cursor:pointer; padding:15px 0; font-weight:600; font-size:15px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.gsx-faq-item summary::-webkit-details-marker{ display:none; }
.gsx-faq-item summary::after{
  content:"+"; font-size:20px; font-weight:400; color:var(--muted); flex-shrink:0; transition:transform .15s ease;
}
.gsx-faq-item[open] summary::after{ transform:rotate(45deg); }
.gsx-faq-item p{ font-size:14.5px; line-height:1.7; color:#3a3a35; margin:0 0 16px; }
.gsx-faq-empty{ color:var(--muted); font-size:14.5px; padding:20px 0; }

/* Contact page */
.gsx-contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:640px; }
.gsx-contact-card{ background:var(--soft); border:1px solid var(--line); border-radius:12px; padding:16px 18px; }
.gsx-contact-value{ display:block; font-size:15.5px; font-weight:600; color:var(--ink); line-height:1.5; text-decoration:none; }
a.gsx-contact-value:hover{ color:var(--accent-deep); }
@media(max-width:520px){ .gsx-contact-grid{ grid-template-columns:1fr; } }

/* Sitewide footer links bar (appears on every front-end page via wp_footer) */
.gsx-footer-links{
  background:#fdfbf6; border-top:1px solid #eee9dd;
  font-family:"Libre Franklin",system-ui,-apple-system,sans-serif;
}
.gsx-footer-links-inner{ max-width:1200px; margin:0 auto; padding:22px 24px; text-align:center; }
.gsx-footer-links-nav{ font-size:13px; margin-bottom:8px; }
.gsx-footer-links-nav a{ color:#555; text-decoration:none; }
.gsx-footer-links-nav a:hover{ color:var(--accent-deep); text-decoration:underline; }
.gsx-footer-links-sep{ color:#ccc; margin:0 10px; }
.gsx-footer-links-copy{ font-size:11.5px; color:#999; margin:0; line-height:1.6; max-width:80ch; margin-left:auto; margin-right:auto; }
@media(max-width:600px){
  .gsx-footer-links-nav a{ display:inline-block; margin:2px 0; }
  .gsx-footer-links-sep{ margin:0 8px; }
}



/* Hören audio panel */
.gsx-audio-panel{margin:0 0 28px;padding:20px 22px;border:1px solid #ddd5c5;border-left:4px solid #b9892e;border-radius:12px;background:#f8f6f1}
.gsx-audio-title{font-family:Newsreader,serif;font-size:25px;font-weight:600;margin-bottom:12px}
.gsx-audio{display:none}
.gsx[data-mode="review"] .gsx-audio{display:block;width:100%;max-width:760px}
.gsx-audio-status{margin:0;font:inherit;font-weight:700;color:#2f2b24}
.gsx-audio-note{margin:10px 0 0;color:#665f54;font-size:14px}
.gsx-audio-missing{margin:0;color:#8a2a20;background:#fff0ed;border:1px solid #efc7c1;padding:12px;border-radius:8px}
.gsx-hoeren .part-instr{margin-bottom:20px}
.gsx-listening-gate{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:22px;background:rgba(24,22,18,.72);backdrop-filter:blur(4px);font-family:inherit;opacity:1;transition:opacity .3s ease}
.gsx-listening-gate.is-closing{opacity:0;pointer-events:none}
.gsx-listening-card{width:min(520px,100%);padding:34px;border:1px solid #ddd5c5;border-radius:18px;background:#fffdf8;box-shadow:0 24px 70px rgba(0,0,0,.24);text-align:center;font-family:inherit;color:var(--ink)}
.gsx-listening-kicker{margin-bottom:8px;color:var(--accent-deep);font-family:inherit;font-size:12px;font-weight:700;line-height:1;letter-spacing:.13em;text-transform:uppercase}
.gsx-listening-card h2{margin:0 0 14px;font-family:inherit;font-size:clamp(25px,4vw,34px);line-height:1.15}
.gsx-listening-card p{margin:0 auto 12px;max-width:46ch;font:inherit;line-height:1.65;color:#514b41}
.gsx-listening-options{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;margin:20px 0;text-align:left}
.gsx-listening-options fieldset{min-width:0;margin:0;padding:14px 16px;border:1px solid #d8cdb9;border-radius:12px;background:#faf7f0}
.gsx-listening-options legend{padding:0 5px;color:#2f2b24;font-size:13px;font-weight:750}
.gsx-listening-options label{display:flex;align-items:center;gap:8px;margin:8px 0;color:#403a31;font-size:14px;line-height:1.35;cursor:pointer}
.gsx-listening-options label.is-disabled{color:#999;cursor:not-allowed}
.gsx-listening-options input{margin:0;accent-color:var(--accent-deep)}
.gsx-listening-card .gsx-listening-availability{margin-top:-6px;color:#766c5c;font-size:12px;line-height:1.45}
.gsx-listening-countdown{min-height:78px;margin:12px 0 6px;font-family:inherit;font-size:64px;font-weight:750;line-height:1.2;color:var(--accent-deep)}
.gsx-listening-start{font-family:inherit}
@media(max-width:520px){.gsx-listening-card{padding:24px 18px}.gsx-listening-options{grid-template-columns:1fr;gap:8px;margin:14px 0}.gsx-listening-options fieldset{padding:10px 13px}.gsx-listening-countdown{min-height:62px;font-size:50px}}

/* Exact-information typed answers used by authentic note-completion tasks. */
.gsx-text-answer{display:block;width:min(100%,520px);margin:14px 0 2px;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:16px;line-height:1.35;box-sizing:border-box}
.gsx-text-answer:focus{outline:3px solid rgba(185,137,46,.18);border-color:var(--accent)}
.gsx-text-answer:disabled{opacity:1;-webkit-text-fill-color:currentColor}
.gsx-text-answer.is-correct{border-color:#3f7d44;background:#edf7ed}
.gsx-text-answer.is-chosen-wrong{border-color:#a8463b;background:#fff1ef}
