/* =====================================================================
   Glossary pages (/glossary/) - shared styles.
   Uses the same design tokens, fonts and spacing as the homepage.
   The header and footer styles live inside each page (style id="bs-header-footer").
   ===================================================================== */
:root { --accent: oklch(0.55 0.17 270); --accent-dark: oklch(0.42 0.17 270); --accent-soft: oklch(0.96 0.02 270); --ink: oklch(0.22 0.01 270); --mut: oklch(0.48 0.015 270); --line: oklch(0.91 0.006 270); --gc: oklch(0.55 0.17 270); --amber: #e9a23b; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: "Source Sans 3", "Helvetica Neue", sans-serif; color: var(--ink); background: oklch(0.99 0.002 270); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-dark); }
::selection { background: oklch(0.9 0.05 270); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } html { scroll-behavior: auto; } }
[hidden] { display: none !important; }

.gl-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.gl-sec { padding-top: 56px; padding-bottom: 56px; }
.h2 { margin: 0 0 14px; font-family: Sora, sans-serif; font-size: clamp(28px, 3.2vw, 38px); letter-spacing: -0.02em; font-weight: 700; text-wrap: balance; }
.eyebrow { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
.lead { margin: 0; font-size: 19px; line-height: 1.6; color: var(--mut); text-wrap: pretty; }
.btn-row { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; }
.btn-primary { background: var(--accent); color: white; padding: 14px 28px; border-radius: 10px; font-weight: 600; font-size: 16px; }
.btn-secondary { border: 1.5px solid oklch(0.86 0.01 270); background: white; color: var(--ink); padding: 14px 28px; border-radius: 10px; font-weight: 600; font-size: 16px; }
.hv8:hover { background: oklch(0.48 0.17 270) !important; color: white !important; }
.hv9:hover { border-color: var(--accent) !important; color: var(--accent) !important; }

/* ---------- Hub hero ---------- */
.gl-hero { background: linear-gradient(135deg, var(--accent-soft) 0%, oklch(0.99 0.002 270) 62%); border-bottom: 1px solid var(--line); overflow: hidden; }
.gl-hero-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items: center; padding-top: 80px; padding-bottom: 70px; }
.gl-hero-copy { display: flex; flex-direction: column; gap: 22px; max-width: 620px; }
.gl-hero h1 { margin: 0; font-family: Sora, sans-serif; font-size: clamp(36px, 4.5vw, 54px); line-height: 1.08; letter-spacing: -0.03em; font-weight: 700; text-wrap: balance; }
.gl-hero-art { position: relative; height: 430px; display: grid; place-items: center; }
.gl-visual { position: relative; width: 100%; max-width: 470px; height: 400px; }
.gl-visual::before { content: ""; position: absolute; inset: 6% 4%; border-radius: 50%; background: radial-gradient(closest-side, oklch(0.55 0.17 270 / 0.16), transparent); }
.gl-search { position: absolute; top: 0; left: 0; right: 0; z-index: 4; display: flex; align-items: center; gap: 12px; background: white; border: 1px solid oklch(0.86 0.01 270); border-radius: 12px; padding: 14px 18px; box-shadow: 0 14px 30px -14px oklch(0.4 0.1 270 / 0.4); font-size: 16px; color: var(--mut); }
.gl-search svg { width: 20px; height: 20px; flex: none; stroke: var(--accent); fill: none; stroke-width: 2.4; stroke-linecap: round; }
.gl-search .typed { border-right: 2px solid var(--accent); white-space: nowrap; overflow: hidden; width: 0; animation: typing 7s steps(14) infinite; color: var(--ink); font-weight: 600; }
.gl-az { position: absolute; top: 70px; left: 0; right: 0; z-index: 3; display: flex; gap: 6px; justify-content: space-between; padding: 0 2px; }
.gl-az span { flex: 1; height: 30px; display: grid; place-items: center; border-radius: 7px; background: white; border: 1px solid var(--line); font-weight: 600; font-size: 13px; color: var(--mut); animation: azlit 7s ease-in-out infinite; animation-delay: calc(var(--i) * 0.35s); }
.gl-card { position: absolute; left: 6%; right: 6%; background: white; border: 1px solid var(--line); border-radius: 14px; padding: 15px 22px 16px; box-shadow: 0 16px 34px -18px oklch(0.4 0.1 270 / 0.45); animation: cardfloat 6.5s ease-in-out infinite; }
.gl-card h5 { display: flex; align-items: baseline; gap: 12px; margin: 0 0 3px; font-family: Sora, sans-serif; font-size: 20px; }
.gl-card h5 small { font-family: "Source Sans 3", sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--accent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gl-card p { margin: 0; font-size: 14.5px; color: var(--mut); line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.gl-card.c1 { top: 120px; z-index: 3; border-left: 5px solid var(--accent); }
.gl-card.c2 { top: 212px; z-index: 2; left: 12%; right: 0; animation-delay: -2.2s; border-left: 5px solid #0d5f92; }
.gl-card.c3 { top: 304px; z-index: 1; left: 0; right: 24%; animation-delay: -4.4s; border-left: 5px solid var(--amber); }
.gl-badge { position: absolute; right: -6px; bottom: -4px; z-index: 5; background: var(--amber); color: #1b1405; border-radius: 14px; padding: 12px 18px; text-align: center; box-shadow: 0 12px 26px rgba(233, 162, 59, 0.4); font-weight: 600; font-size: 13px; line-height: 1.25; animation: cardfloat 5.5s ease-in-out infinite; animation-delay: -1s; }
.gl-badge b { display: block; font-family: Sora, sans-serif; font-size: 26px; line-height: 1.05; }
@keyframes typing { 0% { width: 0; } 35%, 80% { width: 11.2ch; } 100% { width: 0; } }
@keyframes azlit { 0%, 100% { background: white; color: var(--mut); border-color: var(--line); } 10%, 22% { background: var(--accent); color: white; border-color: var(--accent); } 34% { background: white; color: var(--mut); border-color: var(--line); } }
@keyframes cardfloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@media (prefers-reduced-motion: reduce) { .gl-search .typed { width: auto; border-right: 0; } }
@media (max-width: 980px) { .gl-hero-grid { grid-template-columns: 1fr; padding-top: 56px; padding-bottom: 48px; } .gl-hero-art { display: none; } }
@media (max-width: 560px) { .gl-hero-grid { padding-top: 36px; padding-bottom: 36px; gap: 28px; } .lead { font-size: 17px; } .btn-row { flex-direction: column; } .btn-row a { text-align: center; } }

/* ---------- Hub: topic sidebar + glossary cards ---------- */
.idx-head { margin-bottom: 34px; max-width: 760px; }
.idx-head h2 { margin: 0 0 12px; font-family: Sora, sans-serif; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.12; letter-spacing: -0.02em; font-weight: 700; }
.idx-head p { margin: 0; color: var(--mut); font-size: 18px; line-height: 1.6; }
.idx { display: grid; grid-template-columns: 300px 1fr; gap: 36px; align-items: start; }
.sb { position: sticky; top: 92px; background: white; border: 1px solid var(--line); border-radius: 20px; padding: 12px; box-shadow: 0 8px 24px -14px oklch(0.4 0.1 270 / 0.3); }
.sb-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-weight: 600; font-size: 16px; line-height: 1.3; color: oklch(0.35 0.02 270); padding: 12px 14px; border-radius: 12px; }
.sb-row + .sb-row { margin-top: 2px; }
.sb-row:hover { background: var(--accent-soft); color: var(--ink); }
.sb-n { flex: none; min-width: 34px; text-align: center; padding: 3px 11px; border-radius: 999px; font-size: 14px; font-weight: 700; background: var(--bg-c, var(--accent-soft)); color: var(--fg-c, var(--accent)); }
.sb-n-alt { background: var(--amber); color: #1b1405; }
.topic { margin-bottom: 52px; scroll-margin-top: 92px; }
.idx-bar { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.idx-bar h3 { margin: 0; font-family: Sora, sans-serif; font-size: 26px; letter-spacing: -0.01em; }
.idx-bar span { color: var(--mut); font-weight: 600; font-size: 15px; }
.idx-sub { color: var(--mut); font-size: 17px; max-width: 660px; margin: 6px 0 22px; line-height: 1.55; }
.gcards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.gcard { --bg: #e3e8fb; --fg: #3a4bb8; display: flex; flex-direction: column; background: white; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; color: var(--ink); box-shadow: 0 1px 3px oklch(0.3 0.05 270 / 0.08); transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s; }
.gcard:hover { color: var(--ink); transform: translateY(-5px); border-color: color-mix(in srgb, var(--fg) 30%, #fff); box-shadow: 0 18px 36px color-mix(in srgb, var(--fg) 20%, transparent); }
.gc-art { position: relative; height: 160px; overflow: hidden; background: linear-gradient(135deg, color-mix(in srgb, var(--bg) 60%, #fff), var(--bg) 55%, color-mix(in srgb, var(--fg) 24%, var(--bg))); }
.gc-abbr { position: absolute; left: 18px; bottom: 8px; font-family: Sora, sans-serif; font-weight: 700; font-size: 64px; line-height: 1; letter-spacing: -3px; color: var(--fg); opacity: 0.2; }
.gc-panel { position: absolute; right: 20px; top: 24px; width: 58%; background: white; border-radius: 14px; padding: 13px 15px 16px; box-shadow: 0 14px 28px -10px oklch(0.4 0.1 270 / 0.35); transform: rotate(2deg); transition: transform 0.3s; }
.gcard:hover .gc-panel { transform: rotate(0) translateY(-3px); }
.gc-dots { display: flex; gap: 5px; margin-bottom: 11px; }
.gc-dots i { width: 8px; height: 8px; border-radius: 50%; background: var(--fg); opacity: 0.35; }
.gc-panel ul { list-style: none; display: grid; gap: 9px; margin: 0; padding: 0; }
.gc-panel li { position: relative; padding-left: 17px; font-size: 14px; font-weight: 600; color: oklch(0.35 0.02 270); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gc-panel li::before { content: ""; position: absolute; left: 0; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; border-radius: 50%; background: var(--fg); }
.gc-body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 24px; }
.gc-tag { align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 5px 13px; border-radius: 999px; background: var(--bg); color: var(--fg); margin-bottom: 14px; }
.gc-body h4 { margin: 0 0 8px; font-family: Sora, sans-serif; font-size: 19px; line-height: 1.3; letter-spacing: -0.01em; }
.gc-meta { font-size: 15px; color: var(--mut); font-weight: 600; margin-bottom: 10px; }
.gc-body p { margin: 0 0 20px; font-size: 16px; line-height: 1.55; color: var(--mut); }
.gc-btn { margin-top: auto; align-self: flex-end; padding: 10px 20px; border-radius: 10px; background: var(--bg); color: var(--fg); font-weight: 700; font-size: 15px; transition: 0.2s; }
.gcard:hover .gc-btn { background: var(--fg); color: white; }
@media (max-width: 980px) {
  .idx { grid-template-columns: 1fr; gap: 22px; }
  .sb { position: static; display: flex; gap: 8px; overflow-x: auto; padding: 10px; }
  .sb-row { flex: none; white-space: nowrap; }
  .sb-row + .sb-row { margin-top: 0; }
}
@media (max-width: 700px) { .gcards { grid-template-columns: 1fr; } }

/* ---------- Hub: A-Z index ---------- */
#a-z-index { border-top: 1px solid var(--line); }
.az-jump { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 26px; }
.az-jump a { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--accent-soft); font-weight: 600; font-size: 14px; }
.az-jump a:hover { background: var(--accent); color: white; }
.az-group { margin-bottom: 26px; scroll-margin-top: 92px; }
.az-group h3 { margin: 0 0 10px; width: 40px; height: 40px; border-radius: 50%; background: var(--accent); color: white; display: grid; place-items: center; font-family: Sora, sans-serif; font-size: 18px; }
.az-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 4px 28px; }
.az-list li { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 16px; }
.az-list li span { flex: none; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; color: var(--mut); text-transform: uppercase; }

/* ---------- Category pages ---------- */
.page-title { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); padding: 40px 0 36px; background: linear-gradient(120deg, color-mix(in srgb, var(--gc) 8%, #fff), #fff 68%); }
.page-title .gl-wrap > *:not(.wm) { position: relative; }
.page-title .wm { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); font-family: Sora, sans-serif; font-weight: 700; font-size: clamp(70px, 12vw, 150px); line-height: 1; color: var(--gc); opacity: 0.06; letter-spacing: -4px; pointer-events: none; white-space: nowrap; }
.crumbs { font-size: 14px; color: var(--mut); margin-bottom: 12px; }
.crumbs a { color: var(--accent); }
.crumbs a:hover { text-decoration: underline; }
.page-title .tag { display: inline-block; background: var(--gc); color: white; font-size: 12.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; margin-bottom: 12px; }
.page-title h1 { margin: 0 0 10px; font-family: Sora, sans-serif; font-size: clamp(28px, 3.6vw, 40px); line-height: 1.15; letter-spacing: -0.02em; font-weight: 700; text-wrap: balance; }
.page-title p { margin: 0; color: var(--mut); font-size: 18px; line-height: 1.6; max-width: 720px; }
.page-title p.count { margin-top: 10px; font-size: 15px; font-weight: 600; }
.to-quiz { margin-top: 18px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: 999px; border: 2px solid var(--gc); background: white; color: var(--gc); font: inherit; font-weight: 600; font-size: 15px; cursor: pointer; transition: 0.2s; }
.to-quiz:hover { background: var(--gc); color: white; }
.tools { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-bottom: 30px; scroll-margin-top: 92px; }
.tools:empty, .tools:not(:has(:not([hidden]))) { display: none; }
.search { flex: 1; min-width: 240px; max-width: 440px; box-sizing: border-box; padding: 12px 22px; border: 2px solid color-mix(in srgb, var(--gc) 18%, #fff); border-radius: 999px; background: white; font: inherit; font-size: 16px; color: var(--ink); }
.search:focus { outline: none; border-color: var(--gc); }
.az { display: flex; flex-wrap: wrap; gap: 6px; }
.az button { width: 36px; height: 36px; border-radius: 50%; border: 0; background: color-mix(in srgb, var(--gc) 8%, #fff); color: var(--gc); font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; }
.az button:hover, .az button.active { background: var(--gc); color: white; }
.az button.all { width: auto; padding: 0 18px; border-radius: 999px; }
.group { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 22px; margin-bottom: 40px; }
.group h2 { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; margin: 6px 0 2px; font-family: Sora, sans-serif; font-size: 15px; font-weight: 600; color: var(--gc); }
.group h2 span { width: 48px; height: 48px; border-radius: 50%; background: var(--gc); color: white; display: grid; place-items: center; font-size: 22px; font-weight: 700; box-shadow: 0 6px 14px color-mix(in srgb, var(--gc) 30%, transparent); }
.group h2::after { content: ""; order: 2; flex: 1; height: 2px; border-radius: 2px; background: linear-gradient(90deg, color-mix(in srgb, var(--gc) 30%, #fff), transparent); }
.group h2 em { order: 3; font-style: normal; font-size: 13px; font-weight: 600; color: var(--mut); background: white; border: 1px solid var(--line); border-radius: 999px; padding: 3px 12px; }
.term { display: flex; gap: 16px; align-items: flex-start; position: relative; overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 18px; padding: 20px 22px 20px 26px; box-shadow: 0 1px 2px oklch(0.3 0.05 270 / 0.06); transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s; scroll-margin-top: 92px; }
.term::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--gc); }
.term:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--gc) 40%, #fff); box-shadow: 0 16px 30px color-mix(in srgb, var(--gc) 20%, transparent); }
.term:target { border-color: var(--gc); box-shadow: 0 0 0 3px color-mix(in srgb, var(--gc) 25%, transparent); }
.term .ix { flex: none; width: 44px; height: 44px; border-radius: 13px; background: color-mix(in srgb, var(--gc) 13%, #fff); color: var(--gc); font-family: Sora, sans-serif; font-weight: 700; font-size: 15px; display: grid; place-items: center; transition: 0.25s; }
.term:hover .ix { background: var(--gc); color: white; }
.term h3 { margin: 0 0 5px; font-family: Sora, sans-serif; font-size: 18px; line-height: 1.3; }
.term p { margin: 0; font-size: 16px; line-height: 1.55; color: var(--mut); }
.empty { text-align: center; color: var(--mut); padding: 40px; }
.other { margin-top: 50px; padding-top: 30px; border-top: 1px solid var(--line); }
.other h2 { margin: 0 0 14px; font-family: Sora, sans-serif; font-size: 20px; }
.other a { display: inline-block; margin: 0 10px 10px 0; padding: 8px 18px; border: 1px solid color-mix(in srgb, var(--gc) 22%, #fff); border-radius: 999px; background: white; color: var(--gc); font-weight: 600; }
.other a:hover { background: var(--gc); color: white; }
@media (max-width: 760px) { .group { grid-template-columns: 1fr; } .page-title .wm { opacity: 0.04; } .term { padding: 16px 16px 16px 20px; } }
@media (prefers-reduced-motion: reduce) { .term, .gcard { transition: none; } .term:hover, .gcard:hover { transform: none; } }

/* ---------- Quick quiz ---------- */
.quiz { position: relative; overflow: hidden; margin-top: 56px; padding: 36px; border-radius: 26px; color: white; background: linear-gradient(135deg, oklch(0.3 0.12 270) 0%, oklch(0.5 0.17 270) 65%, #0d5f92 100%); box-shadow: 0 22px 44px -22px oklch(0.3 0.1 270 / 0.6); scroll-margin-top: 92px; }
.quiz::before { content: "?"; position: absolute; right: 28px; top: -40px; font-family: Sora, sans-serif; font-weight: 700; font-size: 260px; line-height: 1; opacity: 0.08; pointer-events: none; }
.quiz > * { position: relative; }
.quiz-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 26px; }
.quiz-kicker { font-size: 13px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #ffd48a; margin-bottom: 6px; }
.quiz-head h3 { margin: 0; font-family: Sora, sans-serif; font-size: 26px; letter-spacing: -0.01em; }
.qprog { display: flex; gap: 7px; }
.qprog i { width: 36px; height: 7px; border-radius: 7px; background: rgba(255, 255, 255, 0.28); }
.qprog i.done { background: var(--amber); }
.qprog i.cur { background: white; }
.q-text { font-size: 13.5px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; opacity: 0.85; margin-bottom: 10px; }
.q-def { margin: 0 0 24px; font-family: Sora, sans-serif; font-weight: 600; font-size: 21px; line-height: 1.45; max-width: 780px; }
.q-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.q-opt { display: flex; align-items: center; gap: 12px; text-align: left; padding: 14px 18px; border-radius: 14px; border: 2px solid rgba(255, 255, 255, 0.28); background: rgba(255, 255, 255, 0.09); color: white; font: inherit; font-weight: 600; font-size: 16.5px; cursor: pointer; transition: 0.2s; }
.q-opt .k { flex: none; width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, 0.2); display: grid; place-items: center; font-size: 13px; }
.q-opt:hover:not(:disabled) { background: rgba(255, 255, 255, 0.2); border-color: white; transform: translateY(-2px); }
.q-opt:disabled { cursor: default; }
.q-opt.dim { opacity: 0.55; }
.q-opt.right { background: #17824f; border-color: #6fe0a6; opacity: 1; }
.q-opt.wrong { background: #b93a36; border-color: #ff9b97; opacity: 1; }
.q-foot { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 22px; min-height: 46px; }
.q-fb { font-weight: 600; font-size: 17px; }
.btn-light { padding: 12px 24px; border-radius: 999px; border: 0; background: white; color: oklch(0.35 0.14 270); font: inherit; font-weight: 700; font-size: 15.5px; cursor: pointer; transition: 0.2s; }
.btn-light:hover { background: #ffd48a; color: #1b1405; }
.btn-ghost { padding: 12px 24px; border-radius: 999px; border: 2px solid rgba(255, 255, 255, 0.55); background: transparent; color: white; font: inherit; font-weight: 600; font-size: 15.5px; cursor: pointer; transition: 0.2s; }
.btn-ghost:hover { background: rgba(255, 255, 255, 0.16); border-color: white; }
.q-score { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.q-score .big { font-family: Sora, sans-serif; font-weight: 700; font-size: 72px; line-height: 1; color: #ffd48a; }
.q-score .big small { font-size: 34px; color: white; opacity: 0.8; }
.q-score p { margin: 0; font-size: 19px; max-width: 520px; }
@media (max-width: 760px) { .q-opts { grid-template-columns: 1fr; } .quiz { padding: 26px 20px; } .q-def { font-size: 19px; } }
@media (prefers-reduced-motion: reduce) { .q-opt { transition: none; } .q-opt:hover:not(:disabled) { transform: none; } }

/* ---------- FAQ and CTA (same look as About Us) ---------- */
.gl-faq-sec { max-width: 800px; margin: 0 auto; padding: 32px 20px 44px; }
.faq { display: flex; flex-direction: column; gap: 12px; }
.faq details { border: 1px solid var(--line); background: white; border-radius: 12px; padding: 18px 22px; }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; font-family: Sora, sans-serif; font-weight: 600; font-size: 16px; list-style: none; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary span { color: var(--accent); font-size: 20px; transition: transform 0.2s; display: inline-block; }
.faq details[open] summary span { transform: rotate(45deg); }
.faq details p { margin: 12px 0 0; font-size: 15px; line-height: 1.6; color: var(--mut); }
.cta-band { background: linear-gradient(135deg, oklch(0.28 0.06 270), oklch(0.4 0.14 270)); border-radius: 24px; padding: clamp(48px, 6vw, 80px); text-align: center; color: white; }
.cta-band h2 { margin: 0 auto 18px; max-width: 700px; font-family: Sora, sans-serif; font-size: clamp(28px, 3.4vw, 40px); letter-spacing: -0.02em; font-weight: 700; color: white; text-wrap: balance; }
.cta-band p { margin: 0 auto 32px; max-width: 560px; font-size: 18px; line-height: 1.6; color: oklch(0.85 0.03 270); text-wrap: pretty; }
.cta-btn { display: inline-block; background: white; color: oklch(0.35 0.14 270); padding: 16px 36px; border-radius: 12px; font-weight: 700; font-size: 17px; }
.cta-btn:hover { background: oklch(0.92 0.02 270); color: oklch(0.35 0.14 270); }
@media (max-width: 560px) { .gl-sec { padding-top: 36px; padding-bottom: 36px; } .gl-wrap { padding: 0 20px; } .cta-band { border-radius: 18px; padding: 40px 22px; } .cta-btn { display: block; padding: 15px 20px; } .tools { flex-direction: column; align-items: stretch; } .search { max-width: none; } }
