/* ============================================================================
   site.css — consolidated stylesheet.
   Formerly four separate files (styles.css, round.css, benchmark.css,
   galilee.css) loaded in this exact order via four <link> tags, merged into
   one file so the override order stays visible in one place. Each section
   below marks where a former file started.

   2026-09-12 dead-code pass: every rule whose selector matched zero elements
   in the current index.html was removed (verified by loading the page,
   simulating every interactive state — .reveal.visible, invalid form rows,
   the open dialog, the open FAQ details, the visible floating-consult bar —
   and checking `document.querySelectorAll()` for each selector; anything
   matching nothing is provably safe to delete no matter what it once styled).
   That covers most of the old dashboard-mockup hero, the tab/panel route UI,
   and the Round-benchmark-era trust-strip/diagnosis/consult-grid components,
   none of which exist in the DOM the page actually renders today. Verified
   after the fact too: a full computed-style snapshot of every element at
   390/700/980/1440px, taken before and after, came back byte-identical.
   A small number of dead rules (mostly old multi-selector lists that don't
   appear verbatim anywhere after later edits reformatted them) were left in
   place rather than risk a wrong removal — harmless, just not fully pruned.
   Pre-cleanup file kept as site.css.pre-prune-backup.
   ============================================================================ */

/* ---------------------------------------------------------------------------
   1. Base (formerly styles.css)
   --------------------------------------------------------------------------- */
:root{--bg:#f3f2ed;--surface:#faf9f5;--ink:#181a17;--muted:#666960;--line:#d8d9d1;--accent:#bee62f;--accent-dark:#181a17;--dark:#1d201b;--r-sm:10px;--r-md:18px;--r-lg:28px;--shell:1380px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family: Pretendard, sans-serif;line-height:1.65;word-break:keep-all}img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(30%) contrast(1.08) brightness(.97)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,select{cursor:pointer}.shell{width:min(var(--shell),calc(100% - 64px));margin-inline:auto}.skip-link{position:fixed;top:10px;left:10px;z-index:20;padding:10px 14px;background:var(--ink);color:#fff;transform:translateY(-150%)}.skip-link:focus{transform:none}:focus-visible{outline:3px solid var(--accent-dark);outline-offset:4px}
.site-header{width:min(var(--shell),calc(100% - 64px));min-height:80px;margin:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:40px}.brand{display:inline-flex;align-items:center;gap:12px;width:max-content;font-weight:800;font-size:14px;line-height:1;letter-spacing:-.02em}.site-header nav{display:flex;gap:34px;font-size:15px;font-weight:600}.site-header nav a{position:relative}.header-cta{justify-self:end}.button{display:inline-flex;min-height:52px;padding:0 25px;align-items:center;justify-content:center;gap:18px;border:0;border-radius:100px;font-weight:700;white-space:nowrap;transition:transform .2s,background-color .2s}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(1px) scale(.99)}.button-dark{background:var(--dark);color:#fff}.button-dark:hover{background:#34382f}.button-accent{background:var(--ink);color:#fff}.button-accent:hover{background:#34382f}.eyebrow{margin:0 0 22px;color:var(--accent-dark);font-size:13px;font-weight:800;letter-spacing:.17em}.hero h1,.section h2{margin:0;font-weight:800;letter-spacing:-.055em;line-height:1.06;text-wrap:balance}.hero h1 em,.consult h2 em{font-style:normal;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:.1em;text-underline-offset:.13em}.lead{max-width:680px;margin:32px 0 0;color:var(--muted);font-size:18px;line-height:1.75;text-wrap:pretty}.actions{display:flex;align-items:center;gap:30px;margin-top:36px}.text-link{border-bottom:1px solid;padding-bottom:2px;font-size:14px;font-weight:700}.trust-strip>p{margin:0 0 32px;font-size:26px;font-weight:800;letter-spacing:-.02em}.section-heading>p:last-child,.method-intro>p,.case-header>p:last-child,.consult-intro>p{max-width:650px;margin:26px 0 0;color:var(--muted);font-size:17px}.concern{display:flex;flex-direction:column;justify-content:space-between;padding:30px;border-radius:var(--r-md);background:#e5e5df}.concern-wide{grid-column:span 2}.concern span{color:var(--muted);font-size:14px}.concern h3{max-width:570px;margin:0;font-size:clamp(24px,2.2vw,34px);font-weight:600;line-height:1.35;letter-spacing:-.035em;text-wrap:balance}.concern-dark{background:var(--dark);color:#fff}.concern-dark span{color:#b8bcb2}.method-steps li>span{color:var(--accent-dark);font-size:48px;font-weight:800;line-height:1;letter-spacing:-.02em}.route-kicker{margin:0;color:var(--accent-dark)!important;font-size:16px;font-weight:800}.route-facts{margin:42px 0 0}.route-facts div{display:grid;grid-template-columns:112px 1fr;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.route-facts dt{color:var(--muted);font-size:14px}.route-facts dd{margin:0;font-size:16px;font-weight:600}.route-disclaimer{margin:18px 4px 0;color:var(--muted);font-size:14px}.case-timeline>div{display:grid;grid-template-columns:140px 1fr;gap:28px;padding:25px 0;border-bottom:1px solid #c2c4b9}.consult-intro{padding-top:30px}.consult-intro>p{color:#b7bbb2}.consult-contact{display:grid;grid-template-columns:112px 1fr;gap:14px 25px;margin-top:60px;padding-top:28px;border-top:1px solid #3d4139;font-size:16px}.consult-contact span{color:#8f948a}.consult-form{padding:42px;border-radius:var(--r-lg);background:var(--surface);color:var(--ink);box-shadow:0 30px 90px rgba(8,10,6,.25)}.form-heading{display:flex;justify-content:space-between;align-items:start;gap:25px;margin-bottom:28px}.form-heading>span{padding-top:8px;color:var(--accent-dark);font-size:13px;font-weight:800}.form-heading h3{margin:0;font-size:28px;line-height:1.35}.form-row{display:grid;grid-template-columns:120px 1fr;align-items:center;min-height:62px;margin-top:9px;padding:7px 15px;border:1px solid var(--line);border-radius:var(--r-sm)}.form-row:focus-within{border-color:var(--accent-dark);box-shadow:0 0 0 3px rgba(190,230,47,.18)}.form-row label{font-size:14px;font-weight:700}.form-row label small{color:var(--muted);font-weight:400}.form-row input,.form-row select{width:100%;min-width:0;padding:10px;border:0;outline:0;background:transparent;color:var(--ink)}.consent{display:flex;gap:10px;align-items:flex-start;margin:18px 2px;color:var(--muted);font-size:13px}.consent input{width:17px;height:17px;margin-top:2px;accent-color:var(--accent-dark)}.consent a{color:var(--ink);text-decoration:underline}.consult-form .button{width:100%}.form-note{min-height:20px;margin:13px 0 0;color:var(--muted);font-size:12px;text-align:center}.faq-list details{padding:25px 2px;border-bottom:1px solid var(--line)}.faq-list summary{display:flex;justify-content:space-between;gap:25px;list-style:none;font-size:18px;font-weight:650}.faq-list summary::-webkit-details-marker{display:none}.faq-list p{max-width:720px;margin:20px 40px 0 0;color:var(--muted)}.site-footer{padding:70px 0 45px;border-top:1px solid var(--line)}.footer-brand{margin-bottom:22px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:none}
@media(max-width:980px){.shell,.site-header{width:min(100% - 36px,var(--shell))}.site-header{grid-template-columns:1fr auto}.site-header nav{display:none}.concern-wide{grid-column:auto}.method-grid,.consult-grid,.diagnosis,.faq{grid-template-columns:1fr;gap:60px}}
@media(max-width:640px){.site-header{min-height:68px}.brand{font-size:13px}.header-cta{min-height:42px;padding:0 15px;font-size:13px}.lead{font-size:16px}.actions{align-items:flex-start;flex-direction:column;gap:22px}.concern,.concern-photo{min-height:250px;grid-row:auto}.method-steps li>span{font-size:32px}.route-facts div{grid-template-columns:88px 1fr}.case-timeline>div{grid-template-columns:1fr;gap:5px}.consult-form{padding:30px 18px}.form-heading{display:grid}.form-row{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button,.text-link span{transition:none}}

/* ---------------------------------------------------------------------------
   2. Round benchmark pass 1 (formerly round.css)
   --------------------------------------------------------------------------- */
:root{--bg:#fff;--surface:#fafafa;--ink:#101010;--muted:#6c6c6c;--line:#e7e7e7;--accent:#111;--accent-dark:#111;--dark:#0b0b0b;--r-sm:10px;--r-md:18px;--r-lg:28px;--shell:1220px}
body{overflow-x:hidden;background:#fff;color:#111}.shell{width:min(var(--shell),calc(100% - 56px))}:focus-visible{outline-color:#555}
.site-header{position:relative;z-index:15;width:min(var(--shell),calc(100% - 56px));min-height:72px;gap:36px}.brand{gap:11px;font-size:13px}.site-header nav{gap:30px;font-size:13px}.site-header nav a{color:#474747}.site-header nav a:hover{color:#111}.button{min-height:43px;padding:0 21px;font-size:13px;border:1px solid transparent;transition:transform .25s cubic-bezier(.2,.8,.2,1),background-color .25s,box-shadow .25s}.button:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.16)}.button-dark,.button-accent{background:#0b0b0b;color:#fff}.button-dark:hover,.button-accent:hover{background:#292929}
.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(32px);pointer-events:none}.eyebrow{margin-bottom:17px;color:#515151;font-size:10px;font-weight:700;letter-spacing:.13em}.hero h1,.section h2{font-weight:600;letter-spacing:-.055em;line-height:1.08}.hero h1 em,.consult h2 em{font-style:normal;text-decoration:none}.lead{max-width:610px;margin:22px auto 0;color:#666;font-size:15px;line-height:1.72}.actions{justify-content:center;gap:12px;margin-top:28px}.text-link{min-height:43px;padding:0 19px;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(0,0,0,.12);border-radius:999px;background:rgba(255,255,255,.55);font-size:13px;font-weight:650;backdrop-filter:blur(12px);transition:background-color .2s,transform .2s}.text-link:hover{background:#fff;transform:translateY(-2px)}.hero-frame,.hero-frame:first-child,.hero-frame:last-child{min-width:0;margin:0;overflow:hidden;border-radius:10px}.trust-strip>p{margin-bottom:42px;font-size:31px;font-weight:500;letter-spacing:-.04em}.section-heading>p:last-child,.method-intro>p,.case-header>p:last-child,.consult-intro>p{margin:23px auto 0;color:#6c6c6c;font-size:15px}.concern{padding:29px;border:1px solid #e7e7e7;border-radius:16px;background:#fafafa}.concern span{font-size:12px}.concern h3{font-size:clamp(22px,2vw,31px);font-weight:550}.concern-dark{border-color:#0b0b0b;background:#0b0b0b}.concern-dark span{color:#999}.method-intro>p{margin-left:0}.method-steps li>span{color:#999;font-size:13px;font-weight:700;line-height:1.4;letter-spacing:.08em}.route-kicker{color:#777!important;font-size:12px}.route-facts{margin-top:35px}.route-facts div{grid-template-columns:96px 1fr;padding:15px 0}.route-facts dt{font-size:12px}.route-facts dd{font-size:14px;font-weight:550}.route-disclaimer{text-align:center;font-size:11px}.case-header>p:last-child{margin:0;color:#9d9d9d}.case-timeline>div{grid-template-columns:120px 1fr;gap:26px;padding:22px 0;border-color:#303030}.consult-intro h2{font-size:clamp(42px,4.4vw,64px)}.consult-intro>p{margin-left:0;color:#666}.consult-contact{margin-top:50px;border-color:#d2d2d2;font-size:14px}.consult-contact span{color:#888}.consult-form{padding:38px;border:1px solid rgba(0,0,0,.08);border-radius:20px;background:rgba(255,255,255,.88);color:#111;box-shadow:0 28px 80px rgba(0,0,0,.11);backdrop-filter:blur(18px)}.form-heading h3{font-size:26px;font-weight:600}.form-heading>span{color:#777;font-size:11px}.form-row{min-height:59px;border-color:#dedede;background:#fff}.form-row:focus-within{border-color:#555;box-shadow:0 0 0 3px rgba(0,0,0,.07)}.form-row label{font-size:12px}.form-row input,.form-row select{font-size:13px}.consent{font-size:12px}.consent input{accent-color:#111}.form-note{font-size:11px}.faq-list details{padding:23px 2px}.faq-list summary{font-size:15px;font-weight:600}.faq-list p{font-size:13px}.site-footer{margin-top:20px;padding-top:72px}
@media(max-width:980px){.shell,.site-header{width:min(100% - 36px,var(--shell))}.hero,.method,.case-study,.consult{width:calc(100% - 16px)}.method-grid,.consult-grid,.diagnosis,.faq{gap:58px}.case-header>p:last-child{margin:0}}
@media(max-width:640px){.shell,.site-header{width:calc(100% - 36px);max-width:var(--shell)}.site-header{min-height:64px;grid-template-columns:1fr;gap:12px}.brand{font-size:12px}.header-cta{display:none}.lead{font-size:14px;word-break:normal}.actions{align-items:stretch;gap:9px}.trust-strip>p{font-size:26px}.concern,.concern-photo{min-width:0;grid-column:auto;grid-row:auto}.method,.case-study,.consult{width:100%;border-radius:0}.route-facts div{grid-template-columns:80px minmax(0,1fr)}.consult-form{min-width:0;padding:29px 18px}}
@media(prefers-reduced-motion:reduce){.text-link,.hero-frame img,.route-panel figure img{transition:none}}
@media(max-width:640px){.hero h1,.section h2,.lead,.section-heading p,.hero-note strong,.hero-note span{max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-wrap:pretty}.hero-frame,.hero-frame img{width:100%;max-width:100%}.hero-note strong,.hero-note span{display:block}}

/* Readability and responsive layout refinements */
.hero h1,.section h2{letter-spacing:-.032em;line-height:1.18;text-wrap:balance}.section-heading>p:last-child,.method-intro>p,.case-header>p:last-child,.consult-intro>p,.lead{font-size:16px;line-height:1.78}.lead{max-width:650px}.method-steps p,.route-panel p,.case-timeline p,.diagnosis-list p,.faq-list p{font-size:16px;line-height:1.72}.route-facts dd{font-size:16px}.route-facts dt,.route-disclaimer,.concern span,.case-profile,.case-timeline span,.form-heading>span,.form-row label,.consent,.form-note,.faq-list summary{font-size:14px}.form-row input,.form-row select{font-size:16px;line-height:1.5}.form-note{line-height:1.55}.hero-frame img,.case-image img,.route-panel figure img{filter:grayscale(12%) contrast(1.02) brightness(1)}.sample-artifact__eyebrow{margin:0;color:#6c6c6c;font-size:11px;font-weight:700;letter-spacing:.1em}.case-timeline>div:last-child span:after{content:" · 가상 예시";color:#d4d4d4}.case-timeline>div:last-child{border-bottom-color:#686868}

@media(max-width:980px){.method-grid,.route-panel,.diagnosis,.consult-grid,.faq{grid-template-columns:minmax(0,1fr)}.method-grid,.diagnosis,.consult-grid,.faq{gap:56px}.consult-intro{padding-top:0}}
@media(max-width:640px){.hero h1,.section h2,.lead,.section-heading p,.hero-note strong,.hero-note span{white-space:normal;word-break:keep-all!important;overflow-wrap:normal;text-wrap:pretty}.lead,.section-heading>p:last-child,.method-intro>p,.case-header>p:last-child,.consult-intro>p,.method-steps p,.route-panel p,.case-timeline p,.diagnosis-list p,.faq-list p{font-size:16px}.method-grid,.route-panel,.diagnosis,.consult-grid,.faq{grid-template-columns:minmax(0,1fr);gap:42px}.route-facts div{grid-template-columns:76px minmax(0,1fr);gap:12px}.consult-form{padding:26px 18px}.form-row{gap:4px;padding:10px 14px}.faq-list summary{font-size:16px}.faq-list p{margin-right:0}}

/* Static samples: keep all explanatory text available to assistive technology. */
.hero-copy{padding-bottom:0}.sample-artifact__eyebrow{font-size:12px}.method-intro .sample-artifact,.method-intro .sample-report{height:auto;min-height:0;margin-top:42px;transform:rotate(-1.5deg);box-shadow:0 24px 60px rgba(0,0,0,.1)}.case-profile:before,.case-timeline>div:last-child span:after{content:none}.case-header>p:last-child{align-self:end}
@media(max-width:640px){.method-intro .sample-artifact,.method-intro .sample-report{height:auto;min-height:0;margin-top:34px;transform:none}}

/* ---------------------------------------------------------------------------
   3. Round benchmark pass 2 (formerly benchmark.css)
   --------------------------------------------------------------------------- */
:root {
  --page-bg: #fafafa;
  --surface: #ffffff;
  --surface-subtle: #f4f4f2;
  --text-primary: #111214;
  --text-secondary: #65686d;
  --text-tertiary: #92959a;
  --border-subtle: rgba(17, 18, 20, .09);
  --border-strong: rgba(17, 18, 20, .16);
  --inverse: #121315;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --content-max: 1240px;
}

body {
  background: var(--page-bg);
  color: var(--text-primary);
}

.shell,
.site-header {
  width: min(var(--content-max), calc(100% - 80px));
}

.site-header {
  min-height: 68px;
}

.site-header nav {
  font-size: 14px;
  font-weight: 500;
}

.button,
.text-link {
  min-height: 42px;
  padding-inline: 18px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 600;
}

.button:hover {
  box-shadow: none;
  transform: translateY(-1px);
}

.button:active,
.text-link:active {
  transform: scale(.98);
}

.text-link {
  background: var(--surface);
  border-color: var(--border-strong);
  backdrop-filter: none;
}

.section h2,
.method-intro h2,
.case-header h2,
.consult-intro h2,
.diagnosis-heading h2 {
  font-size: clamp(38px, 4vw, 58px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -.035em;
}

.lead {
  max-width: 620px;
  margin-top: 26px;
  color: var(--text-secondary);
  font-size: 16px;
  line-height: 1.65;
}

.actions {
  margin-top: 30px;
}

.section-heading > p:last-child,
.method-intro > p,
.case-header > p:last-child,
.consult-intro > p {
  max-width: 620px;
  color: var(--text-secondary);
  line-height: 1.65;
}

.concern {
  min-height: 230px;
  padding: 30px 0;
  border: 0;
  border-top: 1px solid var(--border-subtle);
  border-radius: 0;
  background: transparent;
}

.concern-wide {
  grid-column: 1;
}

.concern-dark {
  padding-inline: 26px;
  border-radius: var(--radius-md);
  background: var(--inverse);
}

.concern h3 {
  font-size: clamp(24px, 2.2vw, 34px);
  font-weight: 500;
  line-height: 1.28;
}

.sample-artifact__eyebrow {
  color: var(--text-tertiary);
  font-size: 12px;
  font-weight: 600;
}

.route-facts div {
  border-color: var(--border-subtle);
}

.diagnosis-list article:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.consult-form {
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: 0 2px 8px rgba(17, 18, 20, .04);
  backdrop-filter: none;
}

.form-row {
  border-radius: var(--radius-sm);
}

.consult-form .button {
  border-radius: var(--radius-sm);
}

.faq-list details {
  padding-block: 26px;
  border-color: var(--border-subtle);
}

.faq-list summary {
  font-weight: 500;
}

.site-footer {
  padding-block: 96px 52px;
}

@media (max-width: 980px) {
  .shell,
  .site-header {
    width: calc(100% - 48px);
  }
}

@media (max-width: 640px) {
  .shell,
  .site-header {
    width: calc(100% - 40px);
  }

  .site-header {
    min-height: 64px;
  }

  .section h2,
  .method-intro h2,
  .case-header h2,
  .consult-intro h2,
  .diagnosis-heading h2 {
    font-size: clamp(34px, 9vw, 42px);
    line-height: 1.12;
  }

  .lead {
    font-size: 16px;
  }

  .actions {
    gap: 10px;
  }

  .concern {
    min-height: 210px;
  }

  .diagnosis-list article,
  .diagnosis-list article:nth-child(2n),
  .diagnosis-list article:nth-last-child(-n + 2) {
    border-right: 0;
    border-bottom: 1px solid var(--border-subtle);
  }

  .consult-form {
    border-radius: var(--radius-md);
  }
}

/* ---------------------------------------------------------------------------
   4. Galilee product theme + fixes (formerly galilee.css)
   --------------------------------------------------------------------------- */
/* Product-led dark adaptation of the Galilee reference. */
:root { --g-bg:#0b0c0e; --g-surface:#131519; --g-raised:#1a1d22; --g-line:rgba(255,255,255,.13); --g-text:#f2f3f1; --g-muted:#92969d; --g-accent:#d7f56b; --g-accent-ink:#101209; }
html { scroll-behavior:smooth; background:var(--g-bg); }
body.galilee-page, .galilee-page button, .galilee-page input, .galilee-page select, .galilee-page textarea { background:var(--g-bg); color:var(--g-text); font-family: Pretendard, sans-serif; }.galilee-page .shell { width:min(1240px,calc(100% - 80px)); margin-inline:auto; }.galilee-page .reveal { opacity:1; transform:none; }
.galilee-page .site-header { position:relative; z-index:5; width:min(1240px,calc(100% - 80px)); height:76px; margin:auto; border-color:var(--g-line); color:var(--g-text); background:transparent; }.galilee-page .site-header .brand, .galilee-page .site-header nav a { color:var(--g-text); }.galilee-page .site-header nav a { font-size:13px; }.galilee-page .site-header .header-cta { min-height:36px; border:0; border-radius:7px; background:var(--g-accent); color:var(--g-accent-ink); font-size:12px; }
.galilee-page .button { min-height:43px; border:0; border-radius:7px; font-weight:600; transition:transform .2s ease, background .2s ease; }.galilee-page .button:hover { transform:translateY(-2px); }.galilee-page .button:active { transform:translateY(0) scale(.98); }.galilee-page .button-accent { background:var(--g-accent); color:var(--g-accent-ink); }.galilee-page .text-link { color:#d8dad5; font-size:14px; }.galilee-page .text-link:hover { color:var(--g-accent); }.galilee-page .eyebrow { color:var(--g-accent); font-size:10px; font-weight:700; letter-spacing:.13em; }
.galilee-hero { position:relative; padding:104px 0 82px; overflow:hidden; background:radial-gradient(circle at 50% 74%,rgba(215,245,107,.12),transparent 30%),var(--g-bg); }.galilee-hero .eyebrow { margin:0 0 21px; }.galilee-hero h1 { margin:0; color:var(--g-text); font-size:clamp(54px,7.2vw,92px); font-weight:600; letter-spacing:-.071em; line-height:.96; text-wrap:balance; }.galilee-hero .lead { max-width:626px; margin:29px auto 0; color:var(--g-muted); font-size:16px; line-height:1.75; }.galilee-hero .actions { justify-content:center; margin-top:29px; }.hero-app-profile,.hero-app-route { min-height:236px; padding:20px; border:1px solid var(--g-line); border-radius:8px; background:var(--g-surface); }.hero-app-main p,.hero-app-summary p { margin:0; color:#858b94; font-size:11px; }.hero-app-profile strong,.hero-app-route strong { display:block; margin-top:18px; color:#f2f2ee; font-size:18px; font-weight:550; letter-spacing:-.035em; }.hero-app-profile > span,.hero-app-route > span { display:block; margin-top:10px; color:#979ca3; font-size:12px; line-height:1.6; }
.galilee-intro { display:grid; grid-template-columns:.75fr 2.2fr 1fr; gap:46px; padding:150px 0 122px; }.galilee-intro__label { display:flex; gap:12px; color:#838891; font-size:10px; letter-spacing:.12em; }.galilee-intro__label p { margin:0; }.galilee-intro h2,.galilee-section-head h2,.galilee-feature h2,.galilee-editorial h2,.galilee-checkpoint h2,.galilee-faq h2,.galilee-final h2 { margin:0; color:var(--g-text); font-size:clamp(38px,4.4vw,61px); font-weight:600; letter-spacing:-.065em; line-height:1.02; text-wrap:balance; }.galilee-intro h2 em,.galilee-feature h2 em,.galilee-editorial h2 em,.galilee-final h2 em { color:var(--g-accent); }
.galilee-concerns { display:grid; grid-template-columns:1.15fr .85fr .9fr; gap:14px; padding-bottom:150px; }.galilee-page .concern,.galilee-concerns__artifact { min-height:290px; padding:26px; border:1px solid var(--g-line); border-radius:10px; background:var(--g-surface); }.galilee-page .concern span { color:#8f949b; font-size:12px; }.galilee-page .concern h3,.galilee-concerns__artifact h3 { margin:75px 0 0; color:var(--g-text); font-size:25px; font-weight:550; letter-spacing:-.045em; line-height:1.17; }.galilee-page .concern-dark { background:var(--g-accent); border-color:var(--g-accent); }.galilee-page .concern-dark span { color:#566127; }.galilee-page .concern-dark h3 { color:var(--g-accent-ink); }.galilee-concerns__artifact { background:linear-gradient(160deg,#1e2326,#121518); }.sample-artifact__eyebrow { margin:0; color:var(--g-accent); font-size:10px; letter-spacing:.12em; }.artifact-lines { display:grid; gap:8px; margin:30px 0; }.artifact-lines span { padding-bottom:8px; border-bottom:1px solid var(--g-line); color:#c2c5c6; font-size:12px; }.galilee-concerns__artifact > p:last-child { margin:0; color:#858a91; font-size:11px; line-height:1.55; }
.galilee-route-section { padding:140px 0; border-top:1px solid var(--g-line); border-bottom:1px solid var(--g-line); background:#0e1013; }.galilee-section-head { display:grid; grid-template-columns:.9fr 1.5fr .8fr; gap:32px; align-items:end; }.galilee-section-head .eyebrow { padding-bottom:10px; }.galilee-section-head > p:last-child { margin:0; color:var(--g-muted); font-size:15px; line-height:1.65; }.galilee-page .route-tab.active,.galilee-page .route-tab:hover { border-color:rgba(215,245,107,.7); background:#1a1f1b; color:#f4f5f1; }.galilee-page .route-kicker { margin:0; color:var(--g-accent); font-size:11px; }.galilee-page .route-facts { margin:auto 0 0; border-top:1px solid var(--g-line); }.galilee-page .route-facts div { display:grid; grid-template-columns:100px 1fr; gap:12px; padding:13px 0; border-bottom:1px solid var(--g-line); }.galilee-page .route-facts dt,.galilee-page .route-facts dd { margin:0; font-size:12px; line-height:1.5; }.galilee-page .route-facts dt { color:#7f858d; }.galilee-page .route-facts dd { color:#d3d5d5; }.galilee-page .route-disclaimer { margin-top:15px; color:#777c83; font-size:11px; }
.galilee-feature { padding:144px 0 0; background:linear-gradient(180deg,#111419,#0b0c0e); }.galilee-feature__grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }.galilee-feature h2 { margin-top:19px; }.galilee-feature__copy > p:last-child { max-width:555px; margin:28px 0 0; color:var(--g-muted); font-size:15px; line-height:1.74; }.galilee-report__top,.galilee-report__foot { display:flex; justify-content:space-between; padding:15px 17px; border-bottom:1px solid var(--g-line); color:#91969e; font-size:9px; letter-spacing:.1em; }
.galilee-checkpoint { padding:130px 0; border-block:1px solid var(--g-line); background:#111419; }.galilee-checkpoint__grid { display:grid; grid-template-columns:.9fr 1.1fr .55fr; gap:70px; }.galilee-checkpoint h2 { margin-top:18px; }.galilee-checkpoint__copy > p:last-child { margin:28px 0 0; color:var(--g-muted); font-size:15px; line-height:1.7; }.galilee-checkpoint__list { border-top:1px solid var(--g-line); }.galilee-checkpoint__list div { display:grid; grid-template-columns:28px 1fr; gap:10px; padding:18px 0; border-bottom:1px solid var(--g-line); }.galilee-checkpoint__list span { color:var(--g-accent); font-size:10px; }.galilee-checkpoint__list strong { color:#e9eae7; font-size:15px; font-weight:550; }.galilee-checkpoint__list p { grid-column:2; margin:0; color:#858a92; font-size:12px; }.galilee-checkpoint__blank { min-height:360px; border:1px solid var(--g-line); border-radius:10px; background:repeating-linear-gradient(0deg,transparent,transparent 31px,rgba(255,255,255,.035) 32px),linear-gradient(145deg,rgba(215,245,107,.12),transparent 65%); }
.galilee-faq { display:grid; grid-template-columns:.86fr 1.14fr; gap:10vw; padding:150px 0; }.galilee-faq h2 { margin-top:18px; }.galilee-page .faq-list details { border-top:1px solid var(--g-line); }.galilee-page .faq-list details:last-child { border-bottom:1px solid var(--g-line); }.galilee-page .faq-list summary { display:flex; justify-content:space-between; gap:20px; padding:21px 0; color:#e7e8e5; font-size:16px; font-weight:500; cursor:pointer; list-style:none; }.galilee-page .faq-list summary::-webkit-details-marker { display:none; }.galilee-page .faq-list details p { margin:-2px 0 20px; color:var(--g-muted); font-size:13px; line-height:1.7; }
.galilee-final { position:relative; border-top:1px solid var(--g-line); background:radial-gradient(circle at 80% 100%,rgba(215,245,107,.18),transparent 33%),#111419; }.galilee-final__scene,.galilee-final__shade { display:none; }.galilee-final__grid { display:grid; grid-template-columns:1fr 450px; gap:10vw; padding:144px 0; }.galilee-final h2 { margin-top:18px; }.galilee-final .consult-intro > p:last-of-type { max-width:530px; margin:29px 0 0; color:var(--g-muted); font-size:15px; line-height:1.72; }.galilee-final .consult-contact { display:grid; grid-template-columns:105px 1fr; gap:10px 15px; margin-top:40px; }.galilee-final .consult-contact span { color:#868b92; font-size:12px; }.galilee-final .consult-contact strong { color:#e3e5e1; font-size:13px; font-weight:500; }.galilee-page .consult-form { padding:29px; border:1px solid var(--g-line); border-radius:10px; background:#171b20; box-shadow:0 20px 50px rgba(0,0,0,.22); }.galilee-page .form-heading span { color:var(--g-accent); font-size:9px; letter-spacing:.12em; }.galilee-page .form-heading h3 { margin:12px 0 28px; color:#f1f2ef; font-size:28px; font-weight:550; letter-spacing:-.055em; line-height:1.1; }.galilee-page .form-row label { color:#c6c9c7; font-size:12px; }.galilee-page .form-row input,.galilee-page .form-row select { border-color:var(--g-line); border-radius:6px; background:#101217; color:#e9eae7; }.galilee-page .form-row input::placeholder { color:#656b73; }.galilee-page .consent { color:#a6aab0; font-size:11px; }.galilee-page .consult-form .button { width:100%; }.galilee-page .form-note { color:#7e848c; font-size:11px; }.galilee-page .site-footer { padding:41px 0; background:#090a0b; color:#fff; }.galilee-page .site-footer .brand,.galilee-page .site-footer a { color:#e9eae6; }.galilee-page .site-footer p { color:#7f858c; }
@media (max-width:980px) { .galilee-page .shell,.galilee-page .site-header { width:calc(100% - 48px); }.galilee-hero { padding-top:82px; }.galilee-intro { grid-template-columns:.65fr 2fr; }.galilee-concerns { grid-template-columns:1fr 1fr; }.galilee-concerns__artifact { grid-column:span 2; }.galilee-section-head { grid-template-columns:.8fr 1.3fr; }.galilee-section-head > p:last-child { grid-column:2; }.galilee-feature__grid,.galilee-editorial,.galilee-final__grid { gap:54px; }.galilee-checkpoint__grid { grid-template-columns:1fr 1.2fr; gap:55px; }.galilee-checkpoint__blank { display:none; } }
@media (max-width:700px) { .galilee-page .shell,.galilee-page .site-header { width:calc(100% - 40px); }.galilee-page .site-header { height:64px; }.galilee-page .site-header nav { display:none; }.galilee-page .header-cta { font-size:11px; }.galilee-hero { padding:69px 0 58px; }.galilee-hero h1 { font-size:clamp(47px,13vw,60px); }.galilee-hero .lead { font-size:14px; }.galilee-hero .actions { flex-wrap:wrap; gap:15px; }.hero-app-profile,.hero-app-route { min-height:137px; padding:16px; }.hero-app-profile strong,.hero-app-route strong { margin-top:9px; font-size:15px; }.hero-app-profile > span,.hero-app-route > span { font-size:11px; }.galilee-intro { display:block; padding:93px 0; }.galilee-intro__label { margin-bottom:25px; }.galilee-intro h2,.galilee-section-head h2,.galilee-feature h2,.galilee-editorial h2,.galilee-checkpoint h2,.galilee-faq h2,.galilee-final h2 { font-size:39px; }.galilee-concerns { grid-template-columns:1fr; padding-bottom:90px; }.galilee-concerns__artifact { grid-column:auto; }.galilee-page .concern,.galilee-concerns__artifact { min-height:248px; }.galilee-page .concern h3,.galilee-concerns__artifact h3 { margin-top:54px; font-size:23px; }.galilee-route-section { padding:90px 0; }.galilee-section-head { display:block; }.galilee-section-head .eyebrow { margin-bottom:18px; }.galilee-section-head > p:last-child { margin-top:22px; }.galilee-feature { padding-top:90px; }.galilee-feature__grid,.galilee-editorial,.galilee-final__grid,.galilee-checkpoint__grid,.galilee-faq { display:block; }.galilee-page .method-steps article:nth-child(odd) { border-left:0; }.galilee-checkpoint { padding:90px 0; }.galilee-checkpoint__list { margin-top:43px; }.galilee-faq { padding:92px 0; }.galilee-page .faq-list { margin-top:44px; }.galilee-final__grid { padding:93px 0; }.galilee-page .consult-form { margin-top:48px; padding:24px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.galilee-page * { transition:none !important; } }

/* Light Galilee palette. Kept as an override so the product layout remains identical. */
:root { --g-bg:#f8f8f6; --g-surface:#ffffff; --g-raised:#f0f1ee; --g-line:rgba(18,20,22,.14); --g-text:#151618; --g-muted:#6e7278; --g-accent:#151618; --g-accent-ink:#ffffff; }
html { background:var(--g-bg); }
body.galilee-page, .galilee-page button, .galilee-page input, .galilee-page select, .galilee-page textarea { background:var(--g-bg); color:var(--g-text); }
.galilee-page .site-header { border-color:var(--g-line); }.galilee-page .site-header .brand, .galilee-page .site-header nav a { color:var(--g-text); }.galilee-page .site-header .header-cta { background:var(--g-text); color:#fff; }
.galilee-page .button-accent { background:var(--g-text); color:#fff; }.galilee-page .text-link { color:#45474b; }.galilee-page .text-link:hover { color:#151618; }.galilee-page .eyebrow { color:#151618; }
.galilee-hero { background:radial-gradient(circle at 50% 78%,rgba(20,22,24,.06),transparent 30%),var(--g-bg); }.galilee-hero h1 { color:var(--g-text); }.galilee-hero .lead { color:var(--g-muted); }.hero-app-profile,.hero-app-route { border-color:var(--g-line); background:#f7f7f5; }.hero-app-main p,.hero-app-summary p { color:#73777d; }.hero-app-profile strong,.hero-app-route strong { color:#151618; }.hero-app-profile > span,.hero-app-route > span { color:#696d72; }
.galilee-intro h2,.galilee-section-head h2,.galilee-feature h2,.galilee-editorial h2,.galilee-checkpoint h2,.galilee-faq h2,.galilee-final h2 { color:#151618; }.galilee-intro h2 em,.galilee-feature h2 em,.galilee-editorial h2 em,.galilee-final h2 em { color:#151618; }.galilee-intro__label { color:#767a80; }.galilee-intro__copy > p,.galilee-section-head > p:last-child { color:var(--g-muted); }
.galilee-page .concern,.galilee-concerns__artifact { border-color:var(--g-line); background:#fff; }.galilee-page .concern span { color:#72767b; }.galilee-page .concern h3,.galilee-concerns__artifact h3 { color:#151618; }.galilee-page .concern-dark { border-color:#151618; background:#151618; }.galilee-page .concern-dark span { color:rgba(255,255,255,.6); }.galilee-page .concern-dark h3 { color:#fff; }.galilee-concerns__artifact { background:linear-gradient(160deg,#f2f3f0,#e8eae6); }.sample-artifact__eyebrow { color:#151618; }.artifact-lines span { border-color:var(--g-line); color:#3f4245; }.galilee-concerns__artifact > p:last-child { color:#686c71; }
.galilee-route-section { border-color:var(--g-line); background:#f0f1ee; }.galilee-page .route-tab.active,.galilee-page .route-tab:hover { border-color:#151618; background:#151618; color:#fff; }.galilee-page .route-kicker { color:#555a5e; }.galilee-page .route-facts,.galilee-page .route-facts div { border-color:var(--g-line); }.galilee-page .route-facts dt { color:#74787d; }.galilee-page .route-facts dd { color:#303337; }.galilee-page .route-disclaimer { color:#74787d; }
.galilee-feature { background:linear-gradient(180deg,#f8f8f6,#eeeeeb); }.galilee-feature__copy > p:last-child { color:var(--g-muted); }.galilee-report__top,.galilee-report__foot { border-color:var(--g-line); color:#73777d; }.galilee-editorial ol,.galilee-editorial li { border-color:var(--g-line); }
.galilee-checkpoint { border-color:var(--g-line); background:#f0f1ee; }.galilee-checkpoint__copy > p:last-child { color:var(--g-muted); }.galilee-checkpoint__list,.galilee-checkpoint__list div { border-color:var(--g-line); }.galilee-checkpoint__list span { color:#151618; }.galilee-checkpoint__list strong { color:#151618; }.galilee-checkpoint__list p { color:#70747a; }.galilee-checkpoint__blank { border-color:var(--g-line); background:repeating-linear-gradient(0deg,transparent,transparent 31px,rgba(20,22,24,.04) 32px),linear-gradient(145deg,rgba(20,22,24,.06),transparent 65%); }
.galilee-page .faq-list details { border-color:var(--g-line); }.galilee-page .faq-list summary { color:#202225; }.galilee-page .faq-list details p { color:var(--g-muted); }.galilee-final { border-color:var(--g-line); background:radial-gradient(circle at 80% 100%,rgba(20,22,24,.08),transparent 33%),#f0f1ee; }.galilee-final .consult-intro > p:last-of-type { color:var(--g-muted); }.galilee-final .consult-contact span { color:#73777d; }.galilee-final .consult-contact strong { color:#33363a; }.galilee-page .consult-form { border-color:var(--g-line); background:#fff; box-shadow:0 18px 45px rgba(20,22,24,.08); }.galilee-page .form-heading span { color:#151618; }.galilee-page .form-heading h3 { color:#151618; }.galilee-page .form-row label { color:#45484c; }.galilee-page .form-row input,.galilee-page .form-row select { border-color:var(--g-line); background:#fbfbfa; color:#151618; }.galilee-page .form-row input::placeholder { color:#8a8e93; }.galilee-page .consent { color:#6d7176; }.galilee-page .form-note { color:#72767b; }.galilee-page .site-footer { background:#151618; }.galilee-page .site-footer .brand,.galilee-page .site-footer a { color:#f7f7f5; }.galilee-page .site-footer p { color:#9b9fa4; }

/* Round refinement: quiet editorial rhythm, not a dense SaaS dashboard. */
.galilee-page .shell, .galilee-page .site-header { width:min(1240px,calc(100% - 80px)); }.galilee-page .site-header { height:72px; }.galilee-page .site-header nav { gap:30px; }.galilee-page .site-header nav a { font-size:12px; }.galilee-page .site-header .header-cta { min-height:38px; padding-inline:15px; }
.galilee-hero { padding:128px 0 112px; background:radial-gradient(circle at 14% 29%,rgba(219,226,235,.58),transparent 30%),radial-gradient(circle at 84% 18%,rgba(237,227,218,.5),transparent 28%),#fafafa; }.galilee-hero h1 { font-size:clamp(54px,6.8vw,82px); font-weight:500; letter-spacing:-.062em; line-height:.99; }.galilee-hero .lead { max-width:570px; margin-top:27px; font-size:16px; }.galilee-hero .actions { margin-top:31px; }.hero-app-profile,.hero-app-route { min-height:190px; padding:18px; border-radius:8px; }.hero-app-profile strong,.hero-app-route strong { margin-top:12px; font-size:17px; }
.galilee-intro { grid-template-columns:1fr; gap:22px; max-width:850px; padding:158px 0 142px; text-align:center; }.galilee-intro__label { justify-content:center; }.galilee-intro h2 { font-size:clamp(42px,4.7vw,62px); }.galilee-concerns { grid-template-columns:repeat(3,1fr); gap:30px; padding-bottom:160px; }.galilee-page .concern,.galilee-concerns__artifact { display:flex; flex-direction:column; justify-content:flex-start; min-height:230px; padding:0; border:0; border-top:1px solid var(--g-line); border-radius:0; background:transparent; }.galilee-page .concern h3,.galilee-concerns__artifact h3 { margin-top:26px; font-size:24px; }.galilee-page .concern-dark { padding:30px 26px; border-top:0; border-radius:12px; background:#151618; }.galilee-page .concern-dark span { color:rgba(255,255,255,.62); }.galilee-page .concern-dark h3 { margin-top:24px; color:#fff; }.galilee-concerns__artifact { background:transparent; }.artifact-lines { margin:27px 0; }.galilee-route-section { padding:150px 0 160px; background:#f7f7f5; }.galilee-section-head { grid-template-columns:1fr; max-width:780px; margin:auto; text-align:center; }.galilee-section-head .eyebrow { padding:0; }.galilee-section-head > p:last-child { max-width:560px; margin:20px auto 0; }.galilee-page .route-tab.active,.galilee-page .route-tab:hover { background:transparent; color:#151618; border-color:var(--g-line); }
.galilee-feature { padding-top:154px; background:#151618; }.galilee-feature h2,.galilee-feature h2 em { color:#fff; }.galilee-feature .eyebrow { color:rgba(255,255,255,.6); }.galilee-feature__copy > p:last-child { color:rgba(255,255,255,.65); }.galilee-checkpoint { padding:150px 0; background:#f7f7f5; }.galilee-checkpoint__grid { grid-template-columns:1fr 1fr; max-width:1000px; }.galilee-checkpoint__blank { display:none; }.galilee-faq { padding:160px 0; }.galilee-final { background:radial-gradient(circle at 86% 90%,rgba(218,225,232,.52),transparent 34%),#fafafa; }.galilee-final__grid { padding:150px 0; }.galilee-page .consult-form { box-shadow:0 2px 5px rgba(25,28,30,.03); }
@media (max-width:700px) { .galilee-page .shell,.galilee-page .site-header { width:calc(100% - 40px); }.galilee-hero { padding:76px 0 76px; }.galilee-hero h1 { font-size:clamp(44px,12vw,59px); }.galilee-intro { padding:100px 0 88px; text-align:left; }.galilee-intro__label { justify-content:start; }.galilee-concerns { grid-template-columns:1fr; gap:0; padding-bottom:100px; }.galilee-page .concern,.galilee-concerns__artifact { min-height:auto; padding:24px 0; border-bottom:1px solid var(--g-line); }.galilee-page .concern-dark { padding:24px 22px; border-bottom:0; }.galilee-page .concern h3,.galilee-concerns__artifact h3 { margin-top:20px; }.galilee-page .concern-dark h3 { margin-top:18px; }.galilee-route-section { padding:100px 0; }.galilee-section-head { text-align:left; }.galilee-section-head > p:last-child { margin-left:0; }.galilee-page .route-tab,.galilee-page .route-tab + .route-tab { padding:14px 0; border-left:0; }.galilee-feature { padding-top:100px; }.galilee-editorial,.galilee-faq { padding:100px 0; }.galilee-checkpoint { padding:100px 0; }.galilee-final__grid { padding:100px 0; } }

/* Korean type tuning: the benchmark's tight Latin tracking (-.045 to -.07em) reads as
   heavy and cramped on Hangul, which has no ascenders/descenders to create visual air.
   Loosen tracking and open line-height so large headings stay calm rather than dense. */
.galilee-hero h1 { letter-spacing:-.02em; line-height:1.16; }
.galilee-intro h2,.galilee-section-head h2,.galilee-feature h2,.galilee-editorial h2,.galilee-checkpoint h2,.galilee-faq h2,.galilee-final h2 { letter-spacing:-.02em; line-height:1.22; }
.galilee-page .concern h3,.galilee-concerns__artifact h3 { letter-spacing:-.015em; line-height:1.35; }
@media (max-width:700px) {
  .galilee-hero h1 { line-height:1.22; }
  .galilee-intro h2,.galilee-section-head h2,.galilee-feature h2,.galilee-editorial h2,.galilee-checkpoint h2,.galilee-faq h2,.galilee-final h2 { line-height:1.28; }
}

/* The dark-theme photo opacity (.38/.46) was tuned to read as a lit smudge against a
   near-black panel. On the light palette the same low opacity washes light-toned photos
   out to a blank gray rectangle instead of a quiet documentary image. Raise it back up. */
.galilee-editorial__image img { opacity:.94; filter:grayscale(1) contrast(1.04); }

/* ============================================================================
   Premium pass — Pretendard everywhere (including every English micro-label
   and number) reads as "default Korean web font," the same way Inter reads as
   "default AI font" in English. Giving the small tag/number system its own
   typeface, adding tabular figures, tinting the flat shadows, restoring
   Round's signature floating rounded-panel composition for the hero/dark/CTA
   anchors, and adding quiet hover states on the currently-static list rows.
   ============================================================================ */

/* --- Label/number typeface: distinguishes system chrome from body copy --- */
.eyebrow,
.hero-app-main__heading small,
.hero-app-summary span,
.hero-product-bar > span:first-child,
.galilee-intro__label span,
.galilee-page .route-tab small,
.galilee-page .route-panel figure::after,
.galilee-report__top span,
.galilee-report__foot span,
.galilee-page .method-steps > article > span,
.galilee-editorial__image span,
.galilee-editorial li > span,
.galilee-page .checkpoint__list span,
.galilee-checkpoint__list span,
.form-heading > span,
.case-inline-label,
.hero-product-status,
.sample-artifact__eyebrow {
  font-family: Pretendard, sans-serif;
  font-variant-numeric: tabular-nums;
}

/* --- .route-tabs bugfix: this shared classname also carries three older,
   unrelated rule sets (a plain pill tab-bar, then two "Round benchmark"
   passes) that were never fully superseded — only .route-tab's own
   border/background got reset for this theme, not the group wrapper's, so a
   stray #e7e7e7 border and #fafafa fill were leaking through on three sides
   while only the top edge used the current theme's border color. Give the
   wrapper one complete, explicit definition so nothing upstream can leak in. --- */
.galilee-page .route-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: 100%;
  max-width: none;
  margin: 68px 0 0;
  padding: 0;
  gap: 0;
  border: 1px solid var(--g-line);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

/* --- Tinted, layered shadows instead of flat/near-invisible ones --- */
.galilee-hero__canvas {
  box-shadow: 0 2px 6px rgba(30,32,36,.04), 0 20px 40px rgba(30,32,36,.07);
}
.galilee-page .consult-form {
  box-shadow: 0 2px 6px rgba(40,34,28,.04), 0 24px 48px rgba(40,34,28,.07);
}

/* --- Quiet hover states on rows that were previously static --- */
.galilee-page .concern { transition: border-color .25s ease; }
.galilee-page .concern:hover { border-top-color: #151618; }
.galilee-page .concern-dark { transition: transform .25s ease; }
.galilee-page .concern-dark:hover { transform: translateY(-3px); }
.galilee-page .checkpoint__list div,
.galilee-checkpoint__list div { transition: border-color .25s ease, padding-left .25s ease; }
.galilee-checkpoint__list div:hover { border-color: #151618; padding-left: 6px; }
.galilee-page .faq-list summary { transition: color .2s ease; }
.galilee-page .faq-list summary:hover { color: #000; }

/* --- Restore Round's floating rounded-panel rhythm for the hero, the single
   dark anchor section, and the closing CTA — the rest of the page stays flat
   full-width so the floating panels keep reading as deliberate emphasis
   rather than becoming a repeated, generic "everything is a card" pattern. --- */
.galilee-hero {
  width: min(1440px, calc(100% - 24px));
  margin-inline: auto;
  border-radius: 0 0 28px 28px;
  box-shadow: 0 40px 70px -36px rgba(20,22,24,.16);
}
.galilee-feature {
  width: min(1400px, calc(100% - 32px));
  margin-inline: auto;
  padding: 116px 0 96px;
  border-radius: 28px;
  box-shadow: 0 36px 80px rgba(10,10,11,.22);
}
.galilee-final {
  width: min(1400px, calc(100% - 32px));
  margin-inline: auto;
  border-top: 0;
  border-radius: 28px;
  box-shadow: 0 2px 6px rgba(20,22,24,.03), 0 30px 60px rgba(20,22,24,.06);
}

@media (max-width:700px) {
  .galilee-hero { width: calc(100% - 12px); border-radius: 0 0 20px 20px; box-shadow: 0 24px 44px -28px rgba(20,22,24,.16); }
  .galilee-feature { width: 100%; padding-top: 90px; padding-bottom: 72px; border-radius: 0; box-shadow: none; }
  .galilee-final { width: 100%; border-radius: 0; box-shadow: none; }
}

/* ============================================================================
   Direction change — Premium Trust (Dark & Gold), replacing the Round.ai-
   style light editorial theme above. Reference: Kanun (Envato "Attorney & Law
   Agency" template, used as a mood/quality benchmark only — no code or assets
   copied) — dark charcoal ground, restrained gold accent, serif display type,
   real photography. Chosen because the client base skews toward affluent
   parents who read "dark + gold + serif" as trust and institutional weight,
   which the earlier cool grayscale system wasn't delivering.

   Correction (same day): Kanun itself is NOT dark throughout — only its hero
   is a dark photo section; About/Service/Process/FAQ/etc. all run on white.
   The "whole page commits to one dark register" reasoning above was wrong —
   restored the light body and scoped the dark palette to the hero only, via
   CSS custom properties redeclared on `.galilee-hero`, which cascade to its
   descendants without touching anything outside it. The floating-panel
   retraction and full-bleed sections below are still correct and unchanged.

   Everything below is additive/overriding by design — appended last so it
   wins the cascade — rather than rewritten in place, so the change is
   reviewable as one block and reversible in one block. --- */

:root {
  --g-bg: #ffffff;
  --g-surface: #f7f6f4;
  --g-raised: #efeeea;
  --g-line: rgba(20,18,14,.12);
  --g-text: #18140f;
  --g-muted: #6c655c;
  --g-accent: #af7f3a;
  --g-accent-ink: #191308;
}
html { background: var(--g-bg); }
body.galilee-page, .galilee-page button, .galilee-page input, .galilee-page select, .galilee-page textarea {
  background: var(--g-bg); color: var(--g-text);
}

/* Dark palette scoped to the hero only — these custom properties override
   the light :root values for every descendant of .galilee-hero, and nowhere
   else, because CSS custom properties cascade like any other inherited
   property. */
.galilee-hero {
  --g-bg: #131313;
  --g-surface: #1b1b1b;
  --g-raised: #232323;
  --g-line: rgba(255,255,255,.12);
  --g-text: #f5f4f2;
  --g-muted: #9c9894;
  --g-accent: #cea15c;
}

/* Serif display type for headings only — carries the "institutional/legal"
   register Kanun uses; body copy and UI chrome stay on Pretendard so long
   Korean paragraphs remain easy to read at 16px. */
.galilee-hero h1,
.galilee-intro h2, .galilee-section-head h2, .galilee-feature h2, .galilee-editorial h2,
.galilee-checkpoint h2, .galilee-faq h2, .galilee-final h2,
.galilee-page .route-content h3, .galilee-page .concern h3, .galilee-concerns__artifact h3,
.galilee-report__body h3 {
  font-family: Pretendard, sans-serif;
  font-weight: 700;
}

/* Retract the floating-island composition; Kanun's sections are full-bleed. */
.galilee-hero, .galilee-feature, .galilee-final {
  width: 100%; margin-inline: 0; border-radius: 0; box-shadow: none;
}
@media (max-width:700px) {
  .galilee-hero, .galilee-feature, .galilee-final { width: 100%; border-radius: 0; box-shadow: none; }
}

/* Undo the cool ambient gradients; use a single warm gold glow throughout. */
.galilee-hero {
  background: radial-gradient(circle at 18% 20%, rgba(201,161,90,.14), transparent 42%), var(--g-bg);
}
.galilee-hero h1 { color: var(--g-text); }
.galilee-hero .lead { color: var(--g-muted); }

.galilee-intro h2, .galilee-section-head h2, .galilee-feature h2, .galilee-editorial h2,
.galilee-checkpoint h2, .galilee-faq h2, .galilee-final h2 { color: var(--g-text); }
/* Bring the intro's "01 / START WITH THE QUESTION" label in line with the
   .eyebrow styling used by every other section — it was drifting to muted
   gray, regular weight and the body font instead of gold/bold/Space Grotesk,
   which read as an inconsistency rather than a deliberate variation. */
.galilee-intro__label { color: var(--g-accent); font-weight: 700; }
.galilee-intro__label p { font-family: Pretendard, sans-serif; }
.galilee-intro__copy > p, .galilee-section-head > p:last-child { color: var(--g-muted); }

.galilee-page .concern, .galilee-concerns__artifact { border-color: var(--g-line); }
.galilee-page .concern span { color: var(--g-muted); }
.galilee-page .concern h3, .galilee-concerns__artifact h3 { color: var(--g-text); }
.galilee-concerns__artifact { background: linear-gradient(160deg, var(--g-raised), var(--g-surface)); }
.sample-artifact__eyebrow { color: var(--g-accent); }
.artifact-lines span { border-color: var(--g-line); color: var(--g-text); }
.galilee-concerns__artifact > p:last-child { color: var(--g-muted); }
/* concern-dark now inverts to a gold-filled card — the one warm highlight
   inside an otherwise dark section, mirroring how a dark card read as the
   accent inside the earlier light theme. */
.galilee-page .concern-dark { padding: 30px 26px; border: 0; border-radius: 12px; background: var(--g-accent); }
.galilee-page .concern-dark span { color: rgba(26,19,9,.7); }
.galilee-page .concern-dark h3 { color: var(--g-accent-ink); }

.galilee-route-section { border-color: var(--g-line); background: var(--g-raised); }
.galilee-page .route-kicker { color: var(--g-accent); }
.galilee-page .route-facts, .galilee-page .route-facts div { border-color: var(--g-line); }
.galilee-page .route-facts dt { color: var(--g-muted); }
.galilee-page .route-facts dd { color: var(--g-text); }
.galilee-page .route-disclaimer { color: var(--g-muted); }

.galilee-feature { background: radial-gradient(circle at 82% 10%, rgba(201,161,90,.1), transparent 40%), var(--g-bg); }
.galilee-feature .eyebrow { color: var(--g-accent); }
.galilee-feature__copy > p:last-child { color: var(--g-muted); }

.galilee-checkpoint { border-color: var(--g-line); background: var(--g-raised); }
.galilee-checkpoint__copy > p:last-child { color: var(--g-muted); }
.galilee-checkpoint__list, .galilee-checkpoint__list div { border-color: var(--g-line); }
.galilee-checkpoint__list span { color: var(--g-accent); }
.galilee-checkpoint__list strong { color: var(--g-text); }
.galilee-checkpoint__list p { color: var(--g-muted); }
.galilee-checkpoint__blank { border-color: var(--g-line); background: repeating-linear-gradient(0deg, transparent, transparent 31px, rgba(244,237,224,.03) 32px), linear-gradient(145deg, rgba(201,161,90,.12), transparent 65%); }

.galilee-page .faq-list details { border-color: var(--g-line); }
.galilee-page .faq-list summary { color: var(--g-text); }
.galilee-page .faq-list details p { color: var(--g-muted); }

.galilee-final { background: radial-gradient(circle at 84% 90%, rgba(201,161,90,.12), transparent 40%), var(--g-bg); }
.galilee-final .consult-intro > p:last-of-type { color: var(--g-muted); }
.galilee-final .consult-contact span { color: var(--g-muted); }
.galilee-final .consult-contact strong { color: var(--g-text); }
.galilee-page .consult-form { border-color: var(--g-line); background: var(--g-surface); box-shadow: 0 2px 6px rgba(0,0,0,.2), 0 30px 60px rgba(0,0,0,.4); }
.galilee-page .form-heading span { color: var(--g-accent); }
.galilee-page .form-heading h3 { color: var(--g-text); }
.galilee-page .form-row { border-color: var(--g-line); }
.galilee-page .form-row:focus-within { border-color: var(--g-accent); box-shadow: 0 0 0 3px rgba(201,161,90,.16); }
.galilee-page .form-row label { color: var(--g-text); }
.galilee-page .form-row input, .galilee-page .form-row select { border-color: var(--g-line); background: var(--g-raised); color: var(--g-text); }
.galilee-page .form-row input::placeholder { color: var(--g-muted); }
.galilee-page .consent { color: var(--g-muted); }
.galilee-page .consent a { color: var(--g-text); }
.galilee-page .form-note { color: var(--g-muted); }

.galilee-page .site-footer { background: var(--g-surface); border-top: 1px solid var(--g-line); }
.galilee-page .site-footer .brand, .galilee-page .site-footer a { color: var(--g-text); }
.galilee-page .site-footer p { color: var(--g-muted); }

/* Buttons: gold fill for the primary action, quiet outline for the secondary
   — matches the CTA convention in the reference and gives the page exactly
   one loud element per view. */
.galilee-page .button-accent { background: var(--g-accent); color: var(--g-accent-ink); }
.galilee-page .button-accent:hover { background: #d9b370; }
.galilee-page .text-link { color: var(--g-muted); }
.galilee-page .text-link:hover { color: var(--g-text); }
.galilee-page .site-header { border-color: var(--g-line); }
.galilee-page .site-header .brand, .galilee-page .site-header nav a { color: var(--g-text); }
.galilee-page .site-header .header-cta { background: var(--g-accent); color: var(--g-accent-ink); }
.galilee-page .eyebrow { color: var(--g-accent); }

/* Photos read as full-color documentary shots against the dark ground rather
   than desaturated inserts — closer to how Kanun uses its portrait photography. */
.hero-frame img, .case-image img, .galilee-page .route-panel figure img,
.galilee-editorial__image img { filter: none; }

/* ---------------------------------------------------------------------------
   Hero rebuilt as a split photo layout (copy left, portrait right) — the
   dashboard-mockup hero belonged to the old "believable product UI" Round
   principle; a photo-led hero matches Kanun's actual composition much more
   directly, which is what this exploration pass is testing. View-only pass,
   not signed off for production copy/asset licensing review.
   --------------------------------------------------------------------------- */
.hero-split {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 64px;
  align-items: center;
  text-align: left;
  padding: 96px 0;
}
.hero-split__copy .eyebrow { margin: 0 0 20px; }
.hero-split__copy h1 { margin: 0; max-width: 560px; }
.hero-split__copy .lead { margin: 24px 0 0; max-width: 460px; text-align: left; }
.hero-split__copy .actions { margin-top: 30px; justify-content: flex-start; }

.hero-split__visual { position: relative; max-width: 420px; margin-inline: auto; }
.hero-split__ring {
  position: absolute; top: -6%; right: -8%; width: 82%; aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 30%, #e2bd7c, var(--g-accent) 72%);
  z-index: 0;
}
.hero-split__photo {
  position: relative; z-index: 1; margin: 0 auto; overflow: hidden;
  aspect-ratio: 3/4; border-radius: 160px 160px 20px 20px;
  border: 1px solid var(--g-line); box-shadow: 0 30px 60px rgba(0,0,0,.45);
}
.hero-split__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 49% center; }
.intro-split__photo img[src="assets/intro-consultation.webp"] { object-position: center 60%; }

@media (max-width: 980px) {
  .hero-split { grid-template-columns: 1fr; gap: 56px; text-align: center; padding: 72px 0; }
  .hero-split__copy .lead { margin-inline: auto; }
  .hero-split__copy .actions, .hero-split__stat { justify-content: center; }
  .hero-split__copy h1 { margin-inline: auto; }
  .hero-split__visual { order: -1; max-width: 320px; }
}
@media (max-width: 640px) {
  .hero-split { padding: 56px 0; gap: 40px; }
  .hero-split__ring { width: 90%; }
  .hero-split__photo { border-radius: 110px 110px 16px 16px; }
}

/* Second occurrence of the same portrait pattern (ring + arch photo + badge),
   mirrored left instead of right — reusing one strong layout twice, on
   purpose, rather than inventing a new composition for this section. */
.editorial-visual { position: relative; max-width: 400px; margin-inline: auto; }

@media (max-width: 980px) {
}
@media (max-width: 640px) {
}

/* Typography consistency pass: every section follows the same three-tier
   hierarchy — eyebrow (10px, 700, Space Grotesk, gold) → heading (serif,
   clamp) → subcopy. The subcopy tier had drifted to two different sizes
   (16px on hero/intro, 15px everywhere else) with no reason for the split;
   unify on 16px, matching the original design brief's body-copy spec. */
.galilee-section-head > p:last-child,
.galilee-feature__copy > p:last-child,
.galilee-editorial__copy > p,
.galilee-checkpoint__copy > p:last-child,
.galilee-final .consult-intro > p:last-of-type {
  font-size: 16px;
}

/* ---------------------------------------------------------------------------
   Route selector rebuilt as three separate vertical cards (icon, ROUTE 0X,
   title, one-line description) instead of a single bordered strip with text
   labels — the strip didn't read as clickable. Each card is now its own
   bordered surface, like the service-card pattern in the Kanun reference,
   so the affordance is obvious without needing a hover to discover it.
   Supersedes the earlier "route-tabs bugfix" block above (still left in
   place as the record of what that bug was; this fully re-defines both
   selectors so nothing from any earlier layer can leak through).
   --------------------------------------------------------------------------- */
.galilee-page .route-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  width: 100%;
  max-width: none;
  margin: 68px 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}

@media (max-width: 980px) {
}
@media (max-width: 640px) {
}

/* ---------------------------------------------------------------------------
   Route cards, take two: rebuilt to match the reference screenshot directly
   (offset card overlapping a photo) rather than a plain bordered card with
   an icon. Each .route-tab is a relatively-positioned button; the photo sits
   behind/right, the text card sits on top/left and overlaps it. Own
   .route-tab__photo / .route-tab__card children, absolutely positioned, so
   this fully supersedes the flex-column card layout above rather than
   patching it — the geometry is different enough that patching would leave
   dead properties fighting the new ones.
   --------------------------------------------------------------------------- */
.galilee-page .route-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin: 68px 0 0;
  overflow: visible;
}

@media (max-width: 980px) {
}
@media (max-width: 640px) {
}

/* ---------------------------------------------------------------------------
   Method section: the "project note" mockup card is dropped (per the marked-
   up screenshot) and the five preparation steps move into that column as a
   vertical numbered timeline (numbered circle, dashed connector, title +
   description) instead of a five-across horizontal row below.
   --------------------------------------------------------------------------- */
.galilee-feature__grid {
  align-items: start;
}
.method-timeline {
  position: relative;
  margin: 0;
}
.method-timeline article {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 20px;
  padding-bottom: 40px;
}
.method-timeline article:last-child {
  padding-bottom: 0;
}
.method-timeline__num {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--g-text);
  color: var(--g-bg);
  font-family: Pretendard, sans-serif;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.method-timeline strong {
  display: block;
  font-family: Pretendard, sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--g-text);
}
.method-timeline p {
  margin: 8px 0 0;
  color: var(--g-muted);
  font-size: 15px;
  line-height: 1.65;
}

@media (max-width: 980px) {
  .galilee-feature__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .method-timeline article { grid-template-columns: 32px 1fr; gap: 14px; padding-bottom: 30px; }
  .method-timeline__num { width: 32px; height: 32px; font-size: 11px; }
  .method-timeline strong { font-size: 18px; }
}
@media (max-width: 700px) {
  /* .galilee-feature__grid collapses to display:block at this breakpoint,
     which drops the desktop grid gap between copy and timeline. */
  .method-timeline { margin-top: 40px; }
}

/* ---------------------------------------------------------------------------
   Concerns row consistency pass: the three cards had three different outer
   treatments (card 1: bare text with a top hairline only, card 2: a real
   padded gold card, card 3: bare text with a top hairline only) even though
   1 and 2 are content-parallel (worry quote -> reframe) and 3 is a distinct
   artifact preview. Give all three the same card language (border, radius,
   padding, equal height) and add the icon system already established on the
   route cards to 1 and 2, so the row reads as one consistent set with card 2
   as the intentional gold highlight — not three unrelated treatments.
   --------------------------------------------------------------------------- */
.galilee-concerns {
  align-items: stretch;
}
.galilee-page .concern,
.galilee-concerns__artifact {
  border: 1px solid var(--g-line);
  border-top: 1px solid var(--g-line);
  border-radius: 14px;
  padding: 30px 26px;
  background: var(--g-surface);
}
.galilee-concerns__artifact {
  background: var(--g-surface);
}
.galilee-page .concern-dark {
  border-color: var(--g-accent);
  background: var(--g-accent);
}
.concern__icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin-bottom: 20px;
  border: 1px solid var(--g-line);
  border-radius: 10px;
  color: var(--g-accent);
  background: var(--g-raised);
}
.concern__icon svg { width: 20px; height: 20px; }
.galilee-page .concern-dark .concern__icon {
  border-color: rgba(25,19,8,.35);
  background: rgba(25,19,8,.12);
  color: var(--g-accent-ink);
}
.galilee-page .concern h3,
.galilee-concerns__artifact h3 {
  margin-top: 20px;
}
.galilee-page .concern-dark h3 {
  margin-top: 20px;
}

@media (max-width: 700px) {
  .galilee-page .concern,
  .galilee-concerns__artifact {
    border-radius: 12px;
    padding: 26px 22px;
    margin-bottom: 16px;
  }
}

/* ---------------------------------------------------------------------------
   Intro rebuilt as a photo + copy split (offset frame behind the photo, a
   boxed eyebrow tag, a two-stat row, a CTA) instead of centered text on its
   own with an empty decorative box. Copy text is untouched — only the
   surrounding structure changed. Layout only: the stat figures below are
   real facts already used elsewhere on the page (30-minute consultation,
   1:1 format), not invented performance numbers — Kyle will revisit the
   exact wording separately.
   --------------------------------------------------------------------------- */
.galilee-intro {
  max-width: none;
  padding: 150px 0;
  text-align: left;
}
.intro-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7vw;
  align-items: center;
}
.intro-split__visual {
  position: relative;
}
.intro-split__frame {
  position: absolute;
  top: 24px;
  left: 24px;
  right: -24px;
  bottom: -24px;
  border: 1px solid var(--g-accent);
  border-radius: 6px;
  z-index: 0;
}
.intro-split__photo {
  position: relative;
  z-index: 1;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3.3;
  border-radius: 6px;
  border: 1px solid var(--g-line);
}
.intro-split__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: none;
}
.intro-split__copy {
  text-align: left;
}
.intro-split__copy .galilee-intro__label {
  display: inline-flex;
  justify-content: flex-start;
  gap: 10px;
  align-items: baseline;
  padding: 10px 16px;
  margin: 0 0 26px;
  border: 1px solid var(--g-line);
  border-radius: 8px;
  background: var(--g-surface);
}
.intro-split__copy h2 {
  margin: 0;
}
.intro-split__copy > p {
  margin: 24px 0 0;
  max-width: 480px;
}

@media (max-width: 980px) {
  .galilee-intro { padding: 110px 0; }
  .intro-split { grid-template-columns: 1fr; gap: 56px; }
  .intro-split__visual { order: -1; max-width: 480px; margin-inline: auto; }
}
@media (max-width: 640px) {
  .galilee-intro { padding: 88px 0; }
  .intro-split { gap: 40px; }
  .intro-split__frame { top: 16px; left: 16px; right: -16px; bottom: -16px; }
}

/* ---------------------------------------------------------------------------
   Routes rebuilt again: from three compact selector cards + one shared
   detail panel (a tab/click interaction) to three full-width, always-visible
   rows, alternating text/photo sides (zigzag), each carrying its own full
   detail set. No interaction is needed any more, so script.js's tab-click
   logic was removed along with the tab/panel markup — supersedes both the
   card-grid pass and the overlap-photo pass above (those selectors are now
   dead; left in place rather than deleted, consistent with how this file
   already treats superseded layers elsewhere).
   --------------------------------------------------------------------------- */
.route-rows {
  display: flex;
  flex-direction: column;
  gap: 120px;
  margin-top: 68px;
}
.route-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6vw;
  align-items: center;
}
.route-row__photo {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3.2;
  border-radius: 14px;
  border: 1px solid var(--g-line);
  box-shadow: 0 24px 48px rgba(20,18,14,.08);
}
.route-row__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: none;
}
.route-row__tag {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 22px;
}
.route-row__icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--g-line);
  border-radius: 9px;
  color: var(--g-accent);
  background: var(--g-raised);
}
.route-row__icon svg { width: 18px; height: 18px; }
.route-row__tag small {
  font-family: Pretendard, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  color: var(--g-muted);
}
.route-row__content .route-kicker {
  /* !important is load-bearing here: an old round.css layer set
     `.route-kicker { color:#777 !important }`, and non-important
     declarations can never win against that regardless of specificity
     or source order. */
  color: var(--g-accent) !important;
  margin: 0 0 14px;
  font-size: 12px;
  font-weight: 700;
}
.route-row__content h3 {
  margin: 0 0 18px;
  font-family: Pretendard, sans-serif;
  font-size: clamp(26px, 2.4vw, 34px);
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.3;
  color: var(--g-text);
}
.route-row__content > p {
  margin: 0 0 32px;
  max-width: 480px;
  color: var(--g-muted);
  font-size: 16px;
  line-height: 1.7;
}
.route-row__content .route-facts {
  margin: 0;
  max-width: 480px;
}
.route-row__content .route-facts div {
  display: grid;
  grid-template-columns: 112px 1fr;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--g-line);
}
.route-row__content .route-facts dt {
  margin: 0;
  color: var(--g-muted);
  font-size: 13px;
}
.route-row__content .route-facts dd {
  margin: 0;
  color: var(--g-text);
  font-size: 14px;
  font-weight: 600;
}

.route-row__photo--mobile { display: none; }
@media (max-width: 980px) {
  .route-rows { gap: 80px; }
  .route-row,
  .route-row.route-row--reverse {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  /* Single column here means "cross" left/right placement no longer applies;
     instead the photo sits at a fixed spot in the reading order — between the
     subcopy and the 대상/준비/확인 facts list — the same for all three rows,
     reverse or not. A first attempt did this with display:contents + order,
     which broke in WebKit (display:contents dissolves .route-row__content's
     box, so .route-row's grid `gap` then lands between every promoted child
     instead of just between the two original items — visible as the
     oversized gaps between every line the user reported 2026-09-12). Fixed
     with a second, duplicate <figure> already sitting in that spot in the
     HTML, swapped in for the original at this breakpoint instead. */
  .route-row > .route-row__photo:not(.route-row__photo--mobile) { display: none; }
  .route-row__photo--mobile { display: block; }
}
@media (max-width: 640px) {
  .route-rows { gap: 64px; margin-top: 44px; }
  .route-row__content .route-facts div { grid-template-columns: 88px 1fr; gap: 10px; }
}

/* ---------------------------------------------------------------------------
   New: coaching-team section (role cards, not named/photographed staff — see
   note below) and interview-format section, inserted per plan: team near
   method, interviews between FAQ and the final CTA.

   Neither section names or photographs specific real people. GGA doesn't yet
   have confirmed named coaches or recorded student interviews to feature, and
   inventing fake names/quotes attributed to fictional people would be a
   materially different problem than the placeholder stats elsewhere on this
   page (DESIGN.md already disclaims sample data throughout) — presenting
   fabricated individuals as real is closer to a false-testimonial problem
   than a "these numbers are illustrative" one. Both sections are built
   role/topic-based with an explicit "example, not real" note, matching the
   site's existing disclaimer convention (case section, sample artifacts).
   Swap in real people/quotes later by editing content only — the layout
   doesn't change.
   --------------------------------------------------------------------------- */
.galilee-team {
  padding: 150px 0;
}
.galilee-team__head {
  max-width: 640px;
  margin: 0 0 64px;
}
.galilee-team__head h2 {
  margin: 24px 0 0;
  font-family: Pretendard, sans-serif;
  font-size: clamp(32px, 3.4vw, 44px);
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.28;
  color: var(--g-text);
}
.galilee-team__head > p:last-child {
  margin: 24px 0 0;
  color: var(--g-muted);
  font-size: 16px;
  line-height: 1.7;
}
.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.team-card {
  padding: 30px 24px;
  border: 1px solid var(--g-line);
  border-radius: 14px;
  background: var(--g-surface);
  text-align: left;
}
.team-card__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 20px;
  border: 1px solid var(--g-line);
  border-radius: 10px;
  color: var(--g-accent);
  background: var(--g-raised);
}
.team-card__icon svg { width: 22px; height: 22px; }
.team-card strong {
  display: block;
  font-family: Pretendard, sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--g-text);
}
.team-card p {
  margin: 10px 0 0;
  color: var(--g-muted);
  font-size: 13px;
  line-height: 1.6;
}
.team-note {
  margin: 32px 0 0;
  text-align: center;
  color: var(--g-muted);
  font-size: 13px;
}

@media (max-width: 980px) {
  .team-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .galilee-team { padding: 88px 0; }
  .galilee-team__head { margin-bottom: 44px; }
  .team-grid { grid-template-columns: 1fr; gap: 16px; }
}

/* ---------------------------------------------------------------------------
   Web Interface Guidelines pass: mobile tap behavior wasn't addressed
   anywhere in the file. touch-action removes the ~300ms double-tap-to-zoom
   delay on interactive elements; the tap-highlight color is set on purpose
   (a soft gold tint) instead of the browser's default gray flash.
   --------------------------------------------------------------------------- */
a, button, input, select, textarea, summary,
.route-tab, .team-card, .interview-item, .concern {
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(201,161,90,.18);
}

/* Inline per-field form errors, wired up in script.js */
.form-row-group {
  display: flex;
  flex-direction: column;
}
.field-error {
  min-height: 0;
  margin: 6px 2px 0;
  color: #b3413a;
  font-size: 12.5px;
  line-height: 1.5;
}
.galilee-page .form-row.invalid,
.form-row-group .consent.invalid {
  border-color: #b3413a;
}
.form-row-group .consent.invalid {
  border: 1px solid #b3413a;
  border-radius: var(--radius-sm, 8px);
  padding: 8px 10px;
  margin: 18px 2px 0;
}


/* FAQ: one disclosure icon with aligned question rows. */
.galilee-page .faq-list details { padding: 0; border-bottom: 0; }
.galilee-page .faq-list details:last-child { border-bottom: 1px solid var(--g-line); }
.galilee-page .faq-list summary { align-items: center; min-height: 80px; padding: 24px 0; }

/* Shared typography hierarchy and spacing, 2026-09-12. */
.galilee-page {
  --type-label: 14px;
  --type-body: 18px;
  --type-subtitle: 20px;
  --type-section: clamp(36px, 3.4vw, 48px);
  --type-card: clamp(24px, 2.3vw, 32px);
  --space-label-title: 28px;
  --space-title-copy: 28px;
}

.galilee-page .type-stack > .eyebrow,
.galilee-page .sample-artifact__eyebrow,
.galilee-page .form-heading > span,
.galilee-page .route-row__tag small {
  margin: 0;
  font-size: var(--type-label);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .07em;
}
.galilee-page .type-stack > h2 {
  margin: var(--space-label-title) 0 0;
  font-size: var(--type-section);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -.02em;
  text-wrap: pretty;
}
.galilee-page .type-stack > h1 {
  margin: var(--space-label-title) 0 0;
  font-size: clamp(40px, 4.1vw, 58px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.02em;
}
.galilee-page .type-stack > h1 + p,
.galilee-page .type-stack > h2 + p {
  margin-top: var(--space-title-copy);
  margin-bottom: 0;
  font-size: var(--type-body);
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: -.01em;
}
.galilee-page .galilee-intro__label {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  margin: 0;
}
.galilee-page .route-row__content .route-kicker,
.galilee-page .concern > span:not(.concern__icon) {
  margin: 0;
  font-size: var(--type-subtitle);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -.01em;
}
.galilee-page .route-row__content .route-row__tag { margin: 0 0 24px; }
.galilee-page .route-row__content h3,
.galilee-page .concern h3,
.galilee-page .galilee-concerns__artifact h3,
.galilee-page .form-heading h3 {
  margin: 16px 0 0;
  font-size: var(--type-card);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.02em;
}
.galilee-page .route-row__content h3 + p {
  margin: 24px 0 32px;
  font-size: var(--type-body);
  line-height: 1.75;
}
.galilee-page .team-card strong,
.galilee-page .method-timeline strong,
.galilee-page .galilee-editorial__copy li strong,
.galilee-page .galilee-checkpoint__list strong,
.galilee-page .interview-item__body h3 {
  font-size: var(--type-subtitle);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -.01em;
}
.galilee-page .team-card p,
.galilee-page .method-timeline p,
.galilee-page .galilee-editorial__copy li p,
.galilee-page .galilee-checkpoint__list p {
  margin: 12px 0 0;
  font-size: 16px;
  line-height: 1.7;
}
.galilee-page .route-facts :is(dt, dd),
.galilee-page .faq-list details p { font-size: 16px; line-height: 1.75; }
.galilee-page .faq-list summary { font-size: var(--type-body); font-weight: 600; line-height: 1.6; }
.galilee-page :is(.interview-item__meta, .team-note, .interviews-note, .form-note,
  .galilee-concerns__artifact > p:last-child, .consult-contact > span,
  .hero-split__stat > span, .intro-split__stats span) { font-size: 14px; line-height: 1.65; }
.galilee-page .method-timeline__num { font-size: 14px; }
.galilee-page .artifact-lines span { font-size: 16px; }
.galilee-page .galilee-section-head { display: block; }
@media (max-width: 980px) {
  .galilee-page { --type-section: 36px; --type-subtitle: 18px; --type-body: 17px; }
  .galilee-page .galilee-faq { grid-template-columns: 1fr; gap: 40px; }
  .galilee-page .galilee-faq .faq-list { margin-top: 0; }
}
@media (max-width: 700px) {
  .galilee-page {
    --type-label: 13px;
    --type-body: 16px;
    --type-subtitle: 18px;
    --type-section: 32px;
    --type-card: 24px;
    --space-label-title: 20px;
    --space-title-copy: 20px;
  }
  .galilee-page .type-stack > h1 { font-size: clamp(36px, 9.6vw, 44px); }
  .galilee-page .route-row__content .route-row__tag { margin-bottom: 20px; }
  .galilee-page .route-row__content h3 + p { margin-top: 20px; }
}

/* Supporting copy follows the same readable body scale. */
.galilee-page .galilee-hero__foot p,
.galilee-page .route-disclaimer,
.galilee-page #team .team-note,
.galilee-page .case-note,
.galilee-page .galilee-concerns__artifact > p:last-child,
.galilee-page .site-footer p,
.galilee-page .consult-contact strong {
  font-size: 16px;
  line-height: 1.75;
}
.galilee-page .route-disclaimer { margin-top: 36px; }
.galilee-page .intro-split__copy > .button { margin-top: 32px; }
.galilee-page .consult-form,
.galilee-page .consult-form .form-row,
.galilee-page .consult-form .form-row input,
.galilee-page .consult-form .form-row select {
  background: #fff;
}
.galilee-page .consult-form .form-heading { display: block; margin-bottom: 28px; }
.galilee-page .consult-form .form-heading > span { display: block; }
.galilee-page .consult-form .form-heading h3 { width: 100%; max-width: none; margin: 16px 0 0; font-size: 28px; line-height: 1.35; }
.galilee-page .consult-form .form-heading .form-intro { margin: 12px 0 0; }
.galilee-page .consult-form .form-row label { font-size: 15px; }
.galilee-page .consult-form .form-row input,
.galilee-page .consult-form .form-row select { font-size: 16px; }
.galilee-page .consult-form .consent,
.galilee-page .consult-form .form-note,
.galilee-page .consult-form .field-error,
.galilee-page .privacy-details { font-size: 15px; line-height: 1.7; }
.galilee-page .consult-form .consent { align-items: flex-start; gap: 10px; }
.galilee-page .consent input[type="checkbox"] { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 4px; accent-color: var(--g-accent); }
.galilee-page .privacy-details { color: var(--g-muted); margin: 0 0 20px; scroll-margin-top: 32px; }
.galilee-page .privacy-details p { margin: 0 0 10px; }
.galilee-page .privacy-details p:last-child { margin-bottom: 0; }

/* Concern cards share a neutral resting state; mouse hover turns them black. */
.galilee-page .galilee-concerns > article {
  background: var(--g-surface);
  border-color: var(--g-line);
  transition: background-color .2s ease, border-color .2s ease;
}
.galilee-page .galilee-concerns > article h3 { color: var(--g-text); }
.galilee-page .galilee-concerns > article > span:not(.concern__icon) { color: var(--g-muted); }
.galilee-page .galilee-concerns > article .concern__icon {
  background: var(--g-raised);
  border-color: var(--g-line);
  color: var(--g-muted);
}
@media (hover: hover) and (pointer: fine) {
  .galilee-page .galilee-concerns > article:hover {
    --g-text: #f5f5f5;
    --g-muted: #cccccc;
    --g-accent: #f5f5f5;
    --g-line: rgba(255,255,255,.22);
    --g-raised: #202020;
    background: #000;
    border-color: #000;
  }
  .galilee-page .galilee-concerns > article:hover .artifact-lines span { color: var(--g-text); }
}
@media (prefers-reduced-motion: reduce) {
  .galilee-page .galilee-concerns > article { transition: none; }
}

/* Student outcomes: one lead story and three equally weighted outcomes. */
.student-outcomes { padding-block: 140px; }
.outcomes-head { max-width: 800px; margin: 0 auto 64px; text-align: center; }
.outcome-portrait { position: relative; margin: 0; overflow: hidden; background: #efeeea; border-radius: 12px; }
.outcome-portrait img { filter: none; object-fit: cover; }
.outcome-label { margin: 0 0 16px; color: var(--g-accent); font-size: 15px; font-weight: 600; line-height: 1.5; }
.outcome-interest { margin: 18px 0 28px; font-size: 16px; line-height: 1.7; color: var(--g-muted); }
.outcome-destination > span { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; color: var(--g-muted); }
.outcome-destination strong { display: block; font-size: 25px; line-height: 1.35; letter-spacing: -.01em; overflow-wrap: anywhere; }
.outcome-destination small { display: block; margin-top: 6px; font-size: 16px; font-weight: 500; }
.outcome-metrics { display: grid; grid-template-columns: .7fr 1.3fr; gap: 24px; margin: 28px 0 0; }
.outcome-metrics > div { border-top: 1px solid var(--g-line); padding-top: 16px; }
.outcome-metrics dt { color: var(--g-muted); font-size: 14px; margin-bottom: 8px; }
.outcome-metrics dd { margin: 0; font-size: 30px; line-height: 1.3; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.outcome-metrics dd span { color: var(--g-muted); font-weight: 400; }
.outcomes-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 48px; }
.outcome-card { display: flex; flex-direction: column; padding: 28px; border: 1px solid var(--g-line); border-radius: 14px; }
.outcome-name { font-size: 20px; font-weight: 600; margin: 0; }
.outcome-card h3 { font-size: 24px; letter-spacing: -.02em; line-height: 1.4; margin: 0; }
.outcome-card .outcome-interest { margin: 16px 0 28px; }
.outcome-card .outcome-destination { margin-top: auto; min-height: 100px; }
.outcome-card .outcome-destination strong { font-size: 21px; }
.outcome-card .outcome-metrics { gap: 16px; }
.outcome-card .outcome-metrics dd { font-size: 25px; }
.outcome-card .outcome-metrics__text { font-size: 19px; padding-top: 4px; }
.outcomes-note { font-size: 16px; line-height: 1.75; color: var(--g-muted); margin: 28px 0 0; }
@media (max-width: 980px) {
  .student-outcomes { padding-block: 100px; }
  .outcomes-grid { grid-template-columns: 1fr; }
  .outcome-card .outcome-destination { min-height: 0; }
}
@media (max-width: 700px) {
  .student-outcomes { padding-block: 80px; }
  .outcomes-head { text-align: left; margin-bottom: 40px; }
  .outcome-destination strong { font-size: 24px; }
  .outcomes-grid { margin-top: 32px; gap: 20px; }
  .outcome-card { padding: 24px; }
}

/* Four equal student stories, with supplied portraits. */
.route-row__photo { aspect-ratio: 4 / 3; }
.route-row__photo img { height: 100%; object-fit: cover; }
.route-row__photo img[src="assets/route-esports.webp"] { object-position: 45% center; }
.outcome-additional { margin: 8px 0 0; font-size: 15px; line-height: 1.6; color: var(--g-muted); }
.outcome-additional strong { color: var(--g-accent); font-weight: 700; }
.student-outcomes .outcomes-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 0; gap: 28px; }
.student-outcomes .outcome-card { padding: 32px; }
.student-outcomes .outcome-card > .outcome-portrait { height: 280px; flex: 0 0 280px; margin: -32px -32px 28px; border-radius: 13px 13px 0 0; }
.student-outcomes .outcome-portrait img { object-fit: contain; object-position: center bottom; }
.student-outcomes .outcome-card > .outcome-label { margin-bottom: 8px; }
.student-outcomes .outcome-card > .outcome-name { margin-bottom: 20px; }
.student-outcomes .outcome-card h3 { font-size: 26px; }
.student-outcomes .outcome-card .outcome-destination { margin-top: 0; min-height: 100px; }
.student-outcomes .outcome-card .outcome-metrics { margin-top: 24px; }
@media (max-width: 700px) {
  .student-outcomes .outcomes-grid { grid-template-columns: 1fr; gap: 24px; }
  .student-outcomes .outcome-card { padding: 24px; }
  .student-outcomes .outcome-card > .outcome-portrait { height: 250px; flex-basis: 250px; margin: -24px -24px 24px; }
  .student-outcomes .outcome-card h3 { font-size: 24px; }
}

@media (min-width: 701px) { .student-outcomes .outcomes-grid { grid-auto-rows: 1fr; } }

/* Concrete services, consultation journey, and official contact footer. */
.galilee-team__head { max-width: 800px; }
.consultation-journey { padding-block: 100px; border-top: 1px solid var(--g-line); }
.journey-head { max-width: 800px; }
.journey-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; list-style: none; padding: 0; margin: 48px 0 0; }
.journey-steps li { border-top: 1px solid var(--g-line); padding-top: 24px; }
.journey-number { font-size: 15px; color: var(--g-accent); font-weight: 600; }
.journey-steps h3 { font-size: 20px; line-height: 1.4; margin: 20px 0 12px; }
.journey-steps p { margin: 0; color: var(--g-muted); font-size: 16px; line-height: 1.75; }
.galilee-page .form-intro { margin: 16px 0 0; font-size: 16px; line-height: 1.65; color: var(--g-muted); }
.footer-top { display: flex; justify-content: space-between; gap: 40px; padding-bottom: 36px; }
.footer-top > div { max-width: 400px; }
.footer-top nav { display: flex; flex-wrap: wrap; align-content: start; gap: 16px 24px; font-size: 15px; }
.footer-info { display: grid; grid-template-columns: .8fr 1fr 1.25fr; gap: 40px; border-top: 1px solid #383838; padding-block: 36px; }
.footer-info h2 { font-size: 16px; color: var(--g-text); font-weight: 600; margin: 0 0 16px; }
.galilee-page .official-footer p { font-size: 15px; line-height: 1.85; margin: 12px 0 0; }
.galilee-page .official-footer .footer-phone { font-size: 26px; font-weight: 600; }
.footer-inline { display: inline-block; margin-top: 16px; font-size: 15px; text-decoration: underline; text-underline-offset: 4px; }
.footer-resources { display: flex; flex-wrap: wrap; gap: 14px 24px; padding-block: 24px; border-block: 1px solid #383838; font-size: 14px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 28px; padding-top: 16px; }
@media (max-width: 980px) {
  .journey-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-top { flex-direction: column; gap: 24px; }
  .footer-info { grid-template-columns: 1fr 1fr; gap: 32px; }
  .footer-info > div:last-child { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; gap: 0; }
}
@media (max-width: 700px) {
  .consultation-journey { padding-block: 72px; }
  .journey-steps { grid-template-columns: 1fr; margin-top: 32px; gap: 24px; }
  .journey-steps h3 { margin-top: 12px; }
  .footer-info { grid-template-columns: 1fr; }
  .galilee-page .header-cta { padding-inline: 14px; }
}

/* One shared consultation form, inline or in a native modal side panel. */
html { scrollbar-gutter: stable; }
.consult-form-home { min-width: 0; }
.galilee-page .consult-dialog {
  position: fixed; inset: 0 0 0 auto; margin: 0; padding: 0;
  width: min(540px,100%); max-width: 100%; height: 100dvh; max-height: 100dvh;
  border: 0; border-left: 1px solid var(--g-line); background: #fff; color: var(--g-text);
  overflow-y: auto; overscroll-behavior: contain;
  box-shadow: -16px 0 60px rgba(0,0,0,.15);
}
.consult-dialog__bar {
  position: sticky; top: 0; z-index: 2; display: flex; align-items: center;
  justify-content: space-between; gap: 16px; padding: 16px 24px;
  background: #fff; border-bottom: 1px solid var(--g-line);
}
.consult-dialog__bar h2 { font-size: 16px; font-weight: 600; line-height: 1.5; margin: 0; }
.consult-dialog__close { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--g-line); border-radius: 6px; background: #fff; color: var(--g-text); font-size: 14px; }
.consult-dialog__close span { font-size: 24px; line-height: 1; }
.consult-dialog [id] { scroll-margin-top: 90px; }
@media (max-width: 700px) {
  .galilee-page .consult-dialog { width: 100%; border: 0; }
  .consult-dialog__bar { padding: max(12px,env(safe-area-inset-top)) 20px 12px; }
}

/* Persistent access after the hero; the existing dialog handles the action. */
.floating-consult[hidden] { display: none; }
.floating-consult {
  position: fixed; z-index: 30; bottom: max(20px,env(safe-area-inset-bottom));
  left: 50%; transform: translateX(-50%); width: min(780px,calc(100% - 40px));
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 16px 20px; border: 1px solid var(--g-line); border-radius: 14px;
  background: #fff; color: var(--g-text); box-shadow: 0 8px 32px rgba(0,0,0,.14);
}
.floating-consult__copy strong { display: block; font-size: 16px; font-weight: 600; line-height: 1.5; }
.floating-consult__copy > span { display: block; margin-top: 4px; color: var(--g-muted); font-size: 14px; }
.floating-consult .button { flex-shrink: 0; font-size: 15px; }
/* Black logo sits directly on the light header/footer — no dark badge box,
   since that box existed only to give the gold mark contrast. */
.galilee-page .brand--black {
  width: 158px;
  min-height: 0;
  padding: 0;
  background: none;
}
.galilee-page .brand--black img {
  display: block;
  width: 100%;
  height: auto;
}
.galilee-page .footer-brand.brand--black { margin-bottom: 22px; }
.galilee-page .site-footer { padding-bottom: 140px; }
@media (max-width: 700px) {
  .floating-consult { left: 0; bottom: 0; transform: none; width: 100%; padding: 12px 20px max(12px,env(safe-area-inset-bottom)); border-radius: 0; border-width: 1px 0 0; }
  .floating-consult__copy { display: none; }
  .floating-consult .button { width: 100%; min-height: 52px; font-size: 16px; }
  .galilee-page .brand--black { width: 132px; min-height: 0; padding: 0; }
}

/* Product-first hero with a single layer of vertical spacing. */
.galilee-page .galilee-hero { padding-block: 0; min-height: 0; }
.galilee-page .hero-split { padding-block: 48px; }
.galilee-page .hero-split__copy > .eyebrow { font-size: 18px; letter-spacing: .01em; }
.galilee-page .hero-split__copy > h1 { margin-top: 16px; font-size: clamp(48px,4vw,56px); }
.galilee-page .hero-split__copy .actions .text-link { color: #000; border-color: #000; justify-content: center; min-height: 43px; }
@media (max-width: 980px) { .galilee-page .hero-split { padding-block: 40px; gap: 32px; } }
@media (max-width: 700px) {
  .galilee-page .hero-split { padding-block: 28px 36px; gap: 28px; }
  .galilee-page .hero-split__copy > .eyebrow { font-size: 16px; }
  .galilee-page .hero-split__copy > h1 { font-size: clamp(36px,9.6vw,44px); }
}

/* GNB nav links raised to subcopy scale — 12px read too small next to the
   rest of the page's 16-18px body text. Nav is hidden below 700px already,
   so no mobile variant needed here. */
.galilee-page .site-header nav a { font-size: 16px; }
/* Header CTA button raised to match the hero button's font-size (14px vs 12px). */
.galilee-page .site-header .header-cta { font-size: 14px; }

/* Student/parent testimonials, real quotes pulled from GGA's own published
   interviews (ggacademy.gg/review). Static grid, not a carousel, so every
   quote stays in the DOM as real crawlable text for SEO/GEO/AEO. */
.student-voices { padding-block: 120px; }
.voices-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 48px; }
.voice-card { padding: 32px; border: 1px solid var(--g-line); border-radius: 14px; background: var(--g-surface); }
.voice-card__quote { margin: 0; font-size: 18px; line-height: 1.7; color: var(--g-text); }
.voice-card__author { display: flex; flex-direction: column; gap: 4px; margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--g-line); }
.voice-card__author strong { font-size: 15px; font-weight: 700; color: var(--g-text); }
.voice-card__author span { font-size: 13px; color: var(--g-muted); }
@media (max-width: 980px) {
  .student-voices { padding-block: 90px; }
}
@media (max-width: 700px) {
  .student-voices { padding-block: 70px; }
  .voices-grid { grid-template-columns: 1fr; gap: 18px; margin-top: 32px; }
  .voice-card { padding: 24px; }
  .voice-card__quote { font-size: 16px; }
}
