/* Unified internal-page layer for the primary yellow ProGeoDezi design. */
.course-offer { margin:22px 0; padding:18px 20px; max-width:600px; border:1px solid #e4c65c; border-radius:16px; background:linear-gradient(120deg,rgba(255,255,255,.96),rgba(255,244,185,.88)); box-shadow:0 10px 28px rgba(105,81,0,.08); color:#26251f; }
.course-offer__meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 14px; font-size:13px; font-weight:650; }
.course-offer__badge { padding:4px 10px; border-radius:7px; background:#ffc400; color:#26251f; white-space:nowrap; }
.course-offer__price { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin:10px 0 5px; font-size:13px; }
.course-price { display:inline-flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
.course-price s { color:#625f52; font-size:.85em; font-weight:400; text-decoration-thickness:1px; white-space:nowrap; }
.course-price strong { color:#26251f; white-space:nowrap; }
.course-offer__price .course-price strong { font-size:clamp(25px,4vw,34px); line-height:1.2; }
.course-offer__price .course-price s { font-size:17px; }
.course-offer__start { font-size:14px; line-height:1.5; }
:root {
  --bg: #fffbe6;
  --bg-soft: #fff8d8;
  --surface: #ffffff;
  --surface-2: #fffdf4;
  --line: rgba(145, 108, 0, .24);
  --line-soft: rgba(145, 108, 0, .14);
  --text: #26251f;
  --muted: #625f52;
  --acid: #8a6800;
  --acid-dark: #26251f;
  --cyan: #01579b;
  --danger: #9b3f2a;
  --shadow: 0 22px 62px rgba(105, 81, 0, .12);
  --shadow-soft: rgba(105, 81, 0, .1);
  --accent-glow: rgba(255, 196, 0, .22);
  --surface-glow: rgba(255, 220, 80, .12);
  --frame-strong: rgba(183, 138, 0, .44);
  --hero-bg: #fffbe6;
  --yellow: #ffc400;
  --yellow-light: #ffd740;
  --cream: #fffbe6;
  --ink: #26251f;
  --radius: 20px;
  --radius-sm: 14px;
  color-scheme: light;
}

html { scroll-padding-top: 100px; }
body {
  background:
    radial-gradient(circle at 90% 0%, rgba(255, 218, 70, .18), transparent 28rem),
    var(--cream);
  color: var(--ink);
  font-family: "Segoe UI", Arial, sans-serif;
}
:focus-visible { outline-color: #01579b; }
.skip-link { z-index: 150; background: #fff; color: #26251f; }
main:focus { outline: none; }
.content, .program-grid > *, .split > * { min-width: 0; }
.content p { max-width: 75ch; }
.content li, .button, .breadcrumbs { overflow-wrap: anywhere; }
.breadcrumbs > a + a::before { content: "/"; margin-right: 10px; color: #ae8a1d; }
.article-toc { padding: 22px 26px; margin: 0 0 32px; border: 1px solid var(--line); border-radius: 16px; background: #fffdf4; }
.article-toc strong { display: block; margin-bottom: 10px; }
.article-toc ol { margin: 0; padding-left: 0; list-style: none; }
.article-toc a { display: block; padding: 7px 0; text-underline-offset: 4px; }
.article-toc a:hover { text-decoration: underline; }
.reading-note { color: var(--muted); font-size: .9rem; }
.related-reading { border-top: 1px solid var(--line); }
.related-reading .content { margin-inline: auto; }
.related-reading li { margin-block: 12px; }
@media (max-width: 980px) {
  html:not(.js) .site-header .header-inner { flex-wrap: wrap; }
  html:not(.js) .site-header .nav { position: static; min-height: 0; width: 100%; opacity: 1; visibility: visible; pointer-events: auto; transform: none; padding: 14px; }
  html:not(.js) .menu-button { display: none; }
}

.site-header {
  background: rgba(255, 196, 0, .96);
  color: var(--ink);
  border-bottom: 1px solid #dfa900;
  box-shadow: 0 4px 20px rgba(106, 79, 0, .1), inset 0 1px 0 rgba(255,255,255,.38);
  backdrop-filter: blur(14px);
}
.header-inner { min-height: 94px; }
.brand { width: 230px; }
.brand-logo { border-radius: 4px; }
.nav { color: var(--ink); font-weight: 650; }
.nav a { position: relative; padding-block: 12px; }
.nav a::before {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 6px;
  height: 2px;
  background: var(--ink);
  transition: right .2s ease;
}
.nav a:hover,
.nav a[aria-current="page"] { color: var(--ink); }
.nav a:hover::before,
.nav a[aria-current="page"]::before { right: 0; }
.menu-button { color: var(--ink); border-color: rgba(92, 69, 0, .3); background: rgba(255,255,255,.38); }
.menu-button[aria-expanded="true"] { background: #fff7cd; border-color: #a17a00; box-shadow: 0 10px 25px rgba(96,73,0,.15); }

.button {
  min-height: 52px;
  padding: 14px 23px;
  border-radius: 10px;
  border: 1px solid rgba(226, 174, 0, .78);
  background: linear-gradient(90deg, rgba(255, 207, 36, .72), #ffc400 14%, #ffc400 86%, rgba(255, 207, 36, .72));
  color: var(--ink);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.48), 0 7px 18px rgba(171, 130, 0, .16);
}
.button:hover {
  background: linear-gradient(90deg, rgba(255, 222, 90, .74), #ffd740 14%, #ffd740 86%, rgba(255, 222, 90, .74));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.58), 0 12px 28px rgba(171, 130, 0, .25);
}
.button--small { min-height: 44px; }
.button--ghost { background: rgba(255,255,255,.66); border-color: rgba(124,94,0,.22); color: var(--ink); }

.eyebrow { color: #7b610f; }
.eyebrow::before { width: 7px; height: 7px; border-radius: 50%; background: #bb8700; }
.page-hero {
  position: relative;
  overflow: hidden;
  padding: 88px 0 76px;
  border-bottom: 1px solid #eadfab;
  background:
    linear-gradient(110deg, rgba(255,255,255,.82), rgba(255,251,230,.88) 45%, rgba(255,220,80,.32)),
    repeating-linear-gradient(135deg, transparent 0 48px, rgba(139,105,0,.045) 49px 50px);
}
.page-hero::after {
  content: "";
  position: absolute;
  right: -160px;
  top: -230px;
  width: 520px;
  height: 520px;
  border: 1px solid rgba(144,108,0,.12);
  border-radius: 50%;
  box-shadow: 0 0 0 72px rgba(255,196,0,.06), 0 0 0 144px rgba(255,196,0,.04);
  pointer-events: none;
}
.page-hero .container { position: relative; z-index: 1; }
.page-hero h1 {
  max-width: 960px;
  margin: 18px 0 20px;
  font-size: clamp(2.65rem, 6vw, 5.2rem);
  line-height: .98;
  letter-spacing: -.06em;
}
.page-hero p { max-width: 780px; color: #5b584d; font-size: clamp(1.05rem, 2vw, 1.25rem); }
.hero { --text: #26251f; --muted: #625f52; color: #26251f; }
.hero h1 { font-size: clamp(2.5rem, 6vw, 5.4rem); line-height: 1.02; letter-spacing: -.05em; }
.hero-lead { color: #4a4940; }
.hero-meta { color: #625f52; }
.hero-meta strong { color: #26251f; }
.hero-caption { position:absolute; bottom:8px; right:16px; z-index:2; padding:3px 7px; background:#ffffffe8; font-size:10px; color:#514b39; }
.breadcrumbs { margin-bottom: 28px; color: #746b4f; }
.breadcrumbs a { text-decoration: underline; text-decoration-color: rgba(104,78,0,.3); text-underline-offset: 4px; }
.breadcrumbs span::before { color: #ae8a1d; }

.section { padding: 82px 0; }
.section--soft { background: linear-gradient(120deg, #fff8d8, #fffdf1); border-block: 1px solid rgba(156,119,0,.1); }
.section-heading { margin-bottom: 38px; }
.section-heading h2 { font-size: clamp(2.15rem, 4.5vw, 4.2rem); color: var(--ink); }
.section-heading p { color: var(--muted); }
.content { max-width: 880px; }
.content h2 { color: var(--ink); font-size: clamp(1.9rem, 4vw, 3.2rem); }
.content h3 { color: var(--ink); font-size: clamp(1.25rem, 2.2vw, 1.65rem); }
.content p,
.content li { color: var(--muted); }
.content li + li { margin-top: 8px; }
.content a:not(.button),
.text-link { color: #765900; text-decoration: underline; text-underline-offset: 4px; }
.instructor-profile { margin:0 0 36px; overflow:hidden; border:1px solid rgba(214,194,123,.72); border-radius:18px; background:#fff; box-shadow:inset 0 1px 0 #fff,0 14px 38px rgba(105,81,0,.11); }
.instructor-profile img { width:100%; max-height:520px; aspect-ratio:4 / 3; object-fit:cover; object-position:center 28%; }
.instructor-profile figcaption { padding:16px 20px; color:#625832; font-size:.86rem; font-weight:700; }

.grid-3 { gap: 22px; }
.grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:880px; margin-inline:auto; }
.card,
.process-item,
.audience-item,
.course-fact,
.faq-item {
  border-color: rgba(214, 194, 123, .72);
  background: linear-gradient(90deg, rgba(255,255,255,.66), #fff 12%, #fff 88%, rgba(255,255,255,.66));
  box-shadow: inset 0 1px 0 #fff, 0 12px 36px rgba(105,81,0,.09);
}
.card { padding: 30px; border-radius: 16px; }
.card::before { background: linear-gradient(90deg, transparent, rgba(255,196,0,.72), transparent); }
.card::after { border-color: rgba(202,157,0,.12); }
.card-number,
.card-link,
.course-fact strong,
.process-item > span { color: #806100; }
.card p,
.process-item p,
.audience-item p,
.course-fact span,
.faq-answer { color: var(--muted); }
.card-link { text-decoration: underline; text-underline-offset: 5px; }
.process-item { border-radius: 15px; }
.process-item > span { background: #fff5c5; border-color: #ead27b; }
.course-fact { border-radius: 14px; }
.course-fact strong { font-size: 1.35rem; }
.audience-item { border-radius: 15px; }

.note {
  border: 1px solid rgba(221, 191, 84, .66);
  border-left: 4px solid #ffc400;
  border-radius: 0 14px 14px 0;
  background: linear-gradient(90deg, #fff6c9, rgba(255,255,255,.82));
  color: #5a543f;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 9px 28px rgba(105,81,0,.07);
}
.tag { color: #715600; border-color: rgba(177,135,0,.28); background: rgba(255,244,188,.7); }
.cta-panel {
  color: var(--ink);
  border-color: rgba(226,177,0,.7);
  background: linear-gradient(105deg, #ffc400, #ffdc61 72%, #fff0ad);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.62), 0 26px 70px rgba(156,117,0,.18);
}
.cta-panel p { color: #55491f; }
.cta-panel .button { background: rgba(255,255,255,.86); border-color: rgba(113,85,0,.2); color: var(--ink); }

.field-panel {
  border-color: #e6d384;
  background:
    linear-gradient(rgba(137,104,0,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(137,104,0,.08) 1px, transparent 1px),
    linear-gradient(145deg, #fffef7, #fff2b7);
  background-size: 44px 44px, 44px 44px, auto;
  box-shadow: inset 0 1px 0 #fff, 0 24px 60px rgba(105,81,0,.12);
}
.field-label { color: var(--ink); background: rgba(255,255,255,.9); border-color: rgba(142,107,0,.25); }
.field-device { color: #8b6800; }
.program-list li { border-bottom-color: rgba(131,99,0,.16); }
.proof-strip { background: #fffdf4; border-color: #e9dfbd; }
.proof-item { border-color: #e9dfbd; background: rgba(255,255,255,.45); }
.proof-item strong { color: #806100; }

.faq-question { color: var(--ink); }
.faq-question::after { color: #8a6800; }
dialog {
  color: var(--ink);
  border-color: #e1c761;
  background: linear-gradient(145deg, #fffef7, #fff5ca);
  box-shadow: 0 34px 100px rgba(74,55,0,.3);
}
dialog::backdrop { background: rgba(43,35,12,.48); }
.field input,
.field select { color: var(--ink); background: #fff; border-color: rgba(129,98,0,.25); }

.site-footer {
  position: relative;
  overflow: hidden;
  padding: 62px 0 28px;
  color: var(--ink);
  border-top: 1px solid #dba900;
  background: radial-gradient(circle at 88% 4%, rgba(255,248,204,.72), transparent 28rem), linear-gradient(135deg, #f2b900, #ffc91d 48%, #ffe583);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.56);
}
.site-footer::before {
  content: "";
  position: absolute;
  right: -220px;
  bottom: -300px;
  width: 480px;
  height: 480px;
  border: 1px solid rgba(102,77,0,.13);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgba(255,255,255,.07), 0 0 0 140px rgba(255,255,255,.05);
  pointer-events: none;
}
.site-footer .container { position: relative; }
.footer-grid { grid-template-columns: 1.2fr .8fr 1fr; gap: 18px; }
.footer-grid > div {
  min-width: 0;
  padding: 25px;
  border: 1px solid rgba(255,255,255,.52);
  border-radius: 18px;
  background: linear-gradient(90deg, rgba(255,255,255,.32), rgba(255,255,255,.64) 12%, rgba(255,255,255,.64) 88%, rgba(255,255,255,.32));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.64), 0 15px 34px rgba(104,78,0,.09);
  backdrop-filter: blur(7px);
}
.footer-copy,
.footer-bottom { color: #5d512b; }
.footer-title { color: #6a5200; font-size: .74rem; letter-spacing: .11em; text-transform: uppercase; }
.footer-links { color: #39331e; }
.footer-links a { border-bottom: 1px solid rgba(96,73,0,.13); padding: 4px 0 9px; }
.footer-bottom { border-top-color: rgba(90,68,0,.19); }

@media (hover: hover) and (pointer: fine) {
  .card:hover,
  .process-item:hover,
  .audience-item:hover,
  .course-fact:hover,
  .faq-item:hover,
  .field-panel:hover {
    transform: translateY(-5px);
    border-color: #bf9200;
    box-shadow: 0 18px 40px rgba(154,116,0,.18), 0 0 0 3px rgba(255,211,62,.2);
  }
  .footer-links a:hover,
  .card-link:hover { color: #6f5400; text-shadow: none; }
}

@media (max-width: 980px) {
  html { scroll-padding-top: 78px; }
  .header-inner { min-height: 78px; }
  .site-header .brand { width: 205px; }
  .nav {
    inset: 78px 0 0;
    min-height: calc(100dvh - 78px);
    background: linear-gradient(155deg, #fffdf2, #fff5c9 68%);
    border-top-color: #dfc45e;
    box-shadow: 0 28px 70px rgba(86,64,0,.2);
  }
  .nav a { color: var(--ink); border-color: #e5d28b; background: rgba(255,255,255,.72); box-shadow: 0 9px 24px rgba(105,81,0,.08); }
  .nav a::after { color: #8a6800; }
  .nav a::before { display: none; }
  body.menu-open .site-header { background: var(--yellow); }
  .page-hero { padding: 68px 0 58px; }
  .grid-2 { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  .section { padding: 62px 0; }
  .page-hero { padding: 50px 0 46px; }
  .page-hero h1 { font-size: clamp(2.35rem, 12vw, 3.7rem); }
  .breadcrumbs { margin-bottom: 22px; }
  .card { padding: 25px 22px; }
  .cta-panel { padding: 34px 24px; }
  .site-footer { padding: 48px 0 86px; }
  .footer-grid > div { padding: 23px 21px; text-align: center; }
  .site-footer .brand { margin-inline: auto; }
  .footer-links a { display: block; }
  .footer-bottom { align-items: center; text-align: center; }
  .mobile-cta { background: rgba(255,251,230,.94); border-top-color: #dfc45e; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}
