/* Extracted from approved static prototype: case-horoshop-esputnik.html */

  :root {
    --bg: #F4F1EA;
    --surface: #E9E3D8;
    --text: #101010;
    --muted: #686868;
    --line: #CFC8BA;
    --black: #050505;
    --blue: #2457FF;
    --lime: #B6FF3B;
    --font-display: 'Geist', -apple-system, sans-serif;
    --font-body: 'Geist', -apple-system, sans-serif;
    --font-mono: 'Geist Mono', 'SF Mono', monospace;
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-interactive: var(--radius-sm);
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 96px; }

  #services,
  #process,
  #cases,
  #formats,
  #intake-form,
  #protocolBoard,
  #whoWePartner {
    scroll-margin-top: 96px;
  }

  body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.6;
    letter-spacing: -0.015em;
    -webkit-font-smoothing: antialiased;
  }

  .wrap { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
  .reveal { opacity: 0; transform: translateY(18px); transition: opacity 700ms cubic-bezier(0.16,1,0.3,1), transform 700ms cubic-bezier(0.16,1,0.3,1); }
  .reveal.in { opacity: 1; transform: translateY(0); }

  /* ============ HEADER ============ */
  header { position: sticky; top: 0; z-index: 90; background: var(--bg); border-bottom: 1px solid var(--line); }
  .header-inner { display: flex; align-items: center; justify-content: space-between; height: 84px; }
  .logo { font-family: var(--font-display); font-weight: 700; font-size: 17px; letter-spacing: -0.03em; text-transform: uppercase; color: var(--text); text-decoration: none; display: inline-flex; align-items: center; }
  .logo:visited { color: var(--text); }
  .logo:hover { color: var(--text); text-decoration: none; }
  .logo span { color: var(--blue); }
  nav { display: flex; gap: 36px; position: absolute; left: 50%; transform: translateX(-50%); }
  nav a { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text); text-decoration: none; padding-bottom: 4px; border-bottom: 1px solid transparent; transition: border-color 200ms ease; }
  nav a:hover, nav a.active { border-color: var(--text); }
  .header-right { display: flex; align-items: center; gap: 24px; }
  .lang-switch { font-family: var(--font-mono); font-size: 12px; color: var(--muted); display: flex; gap: 6px; }
  .lang-switch b { color: var(--text); font-weight: 500; cursor: pointer; }

  .btn { display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-body); font-weight: 500; font-size: 16px; letter-spacing: -0.01em; text-decoration: none; border-radius: var(--radius-sm); transition: all 200ms ease; cursor: pointer; white-space: nowrap; border: none; }
  .btn-black { background: var(--black); color: var(--bg); padding: 14px 28px; border: 1px solid var(--black); }
  .btn-black:hover { background: var(--blue); border-color: var(--blue); color: #fff; }
  .btn-outline { background: transparent; color: var(--text); border: 1px solid var(--text); padding: 14px 28px; }
  .btn-outline:hover { border-color: var(--blue); color: var(--blue); }
  .btn-header { padding: 10px 18px; font-size: 14px; }

  .mobile-menu-button { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; background: transparent; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; padding: 0; }
  .mobile-menu-button svg { width: 18px; height: 18px; }
  .mobile-menu-button .icon-close { display: none; }
  .mobile-menu-button[aria-expanded="true"] .icon-open { display: none; }
  .mobile-menu-button[aria-expanded="true"] .icon-close { display: block; }
  .mobile-menu-panel { position: fixed; inset: 0; width: 100vw; max-width: 100vw; overflow-x: hidden; background: var(--bg); z-index: 9999; display: flex; flex-direction: column; transform: translateX(100%); transition: transform 300ms ease; visibility: hidden; }
  .mobile-menu-panel.open { transform: translateX(0); visibility: visible; }
  .mobile-menu-top { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 20px; box-sizing: border-box; border-bottom: 1px solid var(--line); }
  .mobile-menu-close { width: 40px; height: 40px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; }
  .mobile-menu-close svg { width: 18px; height: 18px; }
  .mobile-menu-links { display: flex; flex-direction: column; padding: 32px 20px; gap: 4px; }
  .mobile-menu-links a { font-family: var(--font-display); font-weight: 600; font-size: 26px; letter-spacing: -0.02em; color: var(--text); text-decoration: none; padding: 16px 0; border-bottom: 1px solid var(--line); }
  .mobile-menu-footer { margin-top: auto; padding: 24px 20px 32px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 16px; }
  .mobile-menu-footer .btn { width: 100%; }
  .mobile-menu-lang { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
  .mobile-menu-lang b { color: var(--text); }

  /* ============ HERO ============ */
  .case-hero { padding: 56px 0 64px; border-bottom: 1px solid var(--line); }
  .breadcrumb { font-family: var(--font-mono); font-size: 12px; color: var(--muted); margin-bottom: 24px; }
  .breadcrumb a { color: var(--muted); text-decoration: none; border-bottom: 1px solid var(--line); }
  .breadcrumb a:hover { color: var(--text); border-color: var(--text); }
  .badge { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line); border-radius: var(--radius-xs); padding: 8px 16px; display: inline-block; margin-bottom: 24px; }
  h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(34px, 4.4vw, 58px); line-height: 1.06; letter-spacing: -0.03em; margin-bottom: 20px; max-width: 820px; }
  .case-hero-subtitle { font-size: 18px; line-height: 1.55; color: var(--muted); max-width: 680px; margin-bottom: 40px; }

  .case-meta-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding-top: 32px; border-top: 1px solid var(--line); }
  .case-meta-label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin-bottom: 8px; }
  .case-meta-value { font-size: 15px; letter-spacing: -0.01em; color: var(--text); line-height: 1.4; }
  .case-hero-cta { margin-top: 40px; }

  /* ============ SHARED SECTION HEAD ============ */
  .section-block { padding: 80px 0; border-top: 1px solid var(--line); }
  .section-block.surface { background: var(--surface); }
  .block-heading { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 3.2vw, 40px); letter-spacing: -0.03em; margin-bottom: 20px; }
  .block-text { font-size: 16px; line-height: 1.6; color: var(--muted); max-width: 720px; margin-bottom: 32px; }

  /* ============ PROBLEM POINTS ============ */
  .problem-list { display: flex; flex-direction: column; }
  .problem-row { display: grid; grid-template-columns: 40px 1fr; gap: 20px; padding: 20px 0; border-top: 1px solid var(--line); }
  .problem-list .problem-row:last-child { border-bottom: 1px solid var(--line); }
  .problem-num { font-family: var(--font-mono); font-size: 13px; color: var(--muted); }
  .problem-text { font-size: 16px; letter-spacing: -0.01em; color: var(--text); }

  /* ============ ARCHITECTURE ROWS ============ */
  .arch-simple-list { display: flex; flex-direction: column; }
  .arch-simple-row { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding: 22px 0; border-top: 1px solid var(--line); align-items: baseline; }
  .arch-simple-list .arch-simple-row:last-child { border-bottom: 1px solid var(--line); }
  .arch-simple-label { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); }
  .arch-simple-value { font-size: 16px; letter-spacing: -0.01em; color: var(--text); line-height: 1.5; }

  /* ============ PROTOCOL ROWS (modules / process) ============ */
  .protocol-list { display: flex; flex-direction: column; }
  .protocol-row { display: grid; grid-template-columns: 60px 1fr 200px; gap: 28px; align-items: start; padding: 28px 0; border-top: 1px solid var(--line); }
  .protocol-list .protocol-row:last-child { border-bottom: 1px solid var(--line); }
  .protocol-code { font-family: var(--font-mono); font-size: 13px; color: var(--blue); font-weight: 600; padding-top: 3px; }
  .protocol-title { font-family: var(--font-display); font-weight: 600; font-size: 18px; letter-spacing: -0.01em; margin-bottom: 6px; }
  .protocol-desc { font-size: 15px; line-height: 1.5; color: var(--muted); }
  .protocol-meta { font-family: var(--font-mono); font-size: 12px; color: var(--muted); line-height: 1.5; text-align: right; padding-top: 3px; }

  /* ============ TECH STACK ============ */
  .stack-grid { display: grid; grid-template-columns: repeat(4, 1fr); row-gap: 32px; }
  .stack-col { border-left: 1px solid var(--line); padding: 0 24px; }
  .stack-col:nth-child(4n+1) { border-left: none; padding-left: 0; }
  .stack-group-label { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); margin-bottom: 16px; }
  .stack-item { font-family: var(--font-body); font-size: 15px; letter-spacing: -0.01em; padding: 8px 0; border-top: 1px dashed var(--line); }
  .stack-col .stack-item:first-of-type { border-top: none; }

  /* ============ RESULTS ============ */
  .results-list { display: flex; flex-direction: column; }
  .result-row { display: grid; grid-template-columns: 28px 1fr; gap: 20px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--line); }
  .results-list .result-row:last-child { border-bottom: 1px solid var(--line); }
  .result-check { font-family: var(--font-mono); font-size: 15px; color: var(--blue); }
  .result-text { font-size: 16px; letter-spacing: -0.01em; color: var(--text); }
  .results-illustrative-note { font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin-top: 20px; }

  /* ============ GALLERY PLACEHOLDER ============ */
  .gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .wireframe-block { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 24px; min-height: 220px; display: flex; flex-direction: column; }
  .wireframe-caption { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 16px; }
  .wireframe-mock { flex: 1; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
  .wireframe-line { height: 8px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xs); }
  .wireframe-line.short { width: 40%; }
  .wireframe-line.medium { width: 70%; }
  .wireframe-line.full { width: 100%; }
  .wireframe-box { height: 40px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); margin-top: 8px; }

  /* ============ FINAL CTA ============ */
  .final-cta-section { padding: 100px 0; border-top: 1px solid var(--line); text-align: center; }
  .final-cta-heading { font-family: var(--font-display); font-weight: 700; font-size: clamp(30px, 3.8vw, 46px); letter-spacing: -0.03em; max-width: 760px; margin: 0 auto 16px; }
  .final-cta-text { font-size: 16px; color: var(--muted); max-width: 560px; margin: 0 auto 32px; line-height: 1.55; }
  .final-cta-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }

  /* ============ FOOTER ============ */
  footer { border-top: 1px solid var(--line); padding: 56px 0 32px; background: var(--bg); }
  .footer-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 40px; flex-wrap: wrap; gap: 32px; }
  .footer-brand-name { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.02em; margin-bottom: 6px; }
  .footer-brand-tag { font-family: var(--font-mono); font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
  .footer-nav { display: flex; gap: 28px; flex-wrap: wrap; }
  .footer-nav a { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text); text-decoration: none; border-bottom: 1px solid transparent; }
  .footer-nav a:hover { border-color: var(--text); }
  .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 24px; border-top: 1px solid var(--line); flex-wrap: wrap; gap: 16px; }
  .footer-copy { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
  .footer-contact { font-family: var(--font-mono); font-size: 12px; color: var(--text); }
  .footer-lang { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
  .footer-lang b { color: var(--text); }

  @media (max-width: 1000px) {
    html { scroll-padding-top: 76px; }
    .wrap { padding: 0 20px; }
    header .header-inner { height: 64px; gap: 12px; }
    nav { display: none; }
    header .header-right .lang-switch,
    header .header-right .btn-header {
      display: none;
    }
    .logo { flex-shrink: 1; min-width: 0; white-space: nowrap; }
    .header-right { flex-shrink: 0; gap: 0; }
    .mobile-menu-button { display: flex; flex-shrink: 0; }

    #services,
    #process,
    #cases,
    #formats,
    #intake-form,
    #protocolBoard,
    #whoWePartner {
      scroll-margin-top: 76px;
    }

    h1 { font-size: clamp(30px, 8vw, 40px); }
    .case-hero { padding: 40px 0 48px; }
    .case-meta-row { grid-template-columns: repeat(2, 1fr); gap: 20px; row-gap: 24px; }

    .section-block { padding: 56px 0; }
    .block-heading { font-size: 26px; }

    .arch-simple-row { grid-template-columns: 1fr; gap: 6px; }
    .protocol-row { grid-template-columns: 1fr; gap: 8px; }
    .protocol-meta { text-align: left; }
    .stack-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .stack-col { border-left: none; padding: 0; border-top: 1px solid var(--line); padding-top: 16px; }
    .stack-col:nth-child(-n+2) { border-top: none; padding-top: 0; }

    .gallery-grid { grid-template-columns: 1fr; }

    .final-cta-section { padding: 64px 0; }
    .final-cta-buttons { flex-direction: column; align-items: stretch; }

    .footer-top { flex-direction: column; }
    .footer-nav { gap: 16px 24px; }
  }


/* Extracted from approved static prototype: case-crm-pipedrive.html */

  :root {
    --bg: #F4F1EA;
    --surface: #E9E3D8;
    --text: #101010;
    --muted: #686868;
    --line: #CFC8BA;
    --black: #050505;
    --blue: #2457FF;
    --lime: #B6FF3B;
    --font-display: 'Geist', -apple-system, sans-serif;
    --font-body: 'Geist', -apple-system, sans-serif;
    --font-mono: 'Geist Mono', 'SF Mono', monospace;
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-interactive: var(--radius-sm);
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 96px; }

  #services,
  #process,
  #cases,
  #formats,
  #intake-form,
  #protocolBoard,
  #whoWePartner {
    scroll-margin-top: 96px;
  }

  body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.6;
    letter-spacing: -0.015em;
    -webkit-font-smoothing: antialiased;
  }

  .wrap { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
  .reveal { opacity: 0; transform: translateY(18px); transition: opacity 700ms cubic-bezier(0.16,1,0.3,1), transform 700ms cubic-bezier(0.16,1,0.3,1); }
  .reveal.in { opacity: 1; transform: translateY(0); }

  /* ============ HEADER ============ */
  header { position: sticky; top: 0; z-index: 90; background: var(--bg); border-bottom: 1px solid var(--line); }
  .header-inner { display: flex; align-items: center; justify-content: space-between; height: 84px; }
  .logo { font-family: var(--font-display); font-weight: 700; font-size: 17px; letter-spacing: -0.03em; text-transform: uppercase; color: var(--text); text-decoration: none; display: inline-flex; align-items: center; }
  .logo:visited { color: var(--text); }
  .logo:hover { color: var(--text); text-decoration: none; }
  .logo span { color: var(--blue); }
  nav { display: flex; gap: 36px; position: absolute; left: 50%; transform: translateX(-50%); }
  nav a { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text); text-decoration: none; padding-bottom: 4px; border-bottom: 1px solid transparent; transition: border-color 200ms ease; }
  nav a:hover, nav a.active { border-color: var(--text); }
  .header-right { display: flex; align-items: center; gap: 24px; }
  .lang-switch { font-family: var(--font-mono); font-size: 12px; color: var(--muted); display: flex; gap: 6px; }
  .lang-switch b { color: var(--text); font-weight: 500; cursor: pointer; }

  .btn { display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-body); font-weight: 500; font-size: 16px; letter-spacing: -0.01em; text-decoration: none; border-radius: var(--radius-sm); transition: all 200ms ease; cursor: pointer; white-space: nowrap; border: none; }
  .btn-black { background: var(--black); color: var(--bg); padding: 14px 28px; border: 1px solid var(--black); }
  .btn-black:hover { background: var(--blue); border-color: var(--blue); color: #fff; }
  .btn-outline { background: transparent; color: var(--text); border: 1px solid var(--text); padding: 14px 28px; }
  .btn-outline:hover { border-color: var(--blue); color: var(--blue); }
  .btn-header { padding: 10px 18px; font-size: 14px; }

  .mobile-menu-button { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; background: transparent; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; padding: 0; }
  .mobile-menu-button svg { width: 18px; height: 18px; }
  .mobile-menu-button .icon-close { display: none; }
  .mobile-menu-button[aria-expanded="true"] .icon-open { display: none; }
  .mobile-menu-button[aria-expanded="true"] .icon-close { display: block; }
  .mobile-menu-panel { position: fixed; inset: 0; width: 100vw; max-width: 100vw; overflow-x: hidden; background: var(--bg); z-index: 9999; display: flex; flex-direction: column; transform: translateX(100%); transition: transform 300ms ease; visibility: hidden; }
  .mobile-menu-panel.open { transform: translateX(0); visibility: visible; }
  .mobile-menu-top { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 20px; box-sizing: border-box; border-bottom: 1px solid var(--line); }
  .mobile-menu-close { width: 40px; height: 40px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; }
  .mobile-menu-close svg { width: 18px; height: 18px; }
  .mobile-menu-links { display: flex; flex-direction: column; padding: 32px 20px; gap: 4px; }
  .mobile-menu-links a { font-family: var(--font-display); font-weight: 600; font-size: 26px; letter-spacing: -0.02em; color: var(--text); text-decoration: none; padding: 16px 0; border-bottom: 1px solid var(--line); }
  .mobile-menu-footer { margin-top: auto; padding: 24px 20px 32px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 16px; }
  .mobile-menu-footer .btn { width: 100%; }
  .mobile-menu-lang { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
  .mobile-menu-lang b { color: var(--text); }

  /* ============ HERO ============ */
  .case-hero { padding: 56px 0 64px; border-bottom: 1px solid var(--line); }
  .breadcrumb { font-family: var(--font-mono); font-size: 12px; color: var(--muted); margin-bottom: 24px; }
  .breadcrumb a { color: var(--muted); text-decoration: none; border-bottom: 1px solid var(--line); }
  .breadcrumb a:hover { color: var(--text); border-color: var(--text); }
  .badge { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line); border-radius: var(--radius-xs); padding: 8px 16px; display: inline-block; margin-bottom: 24px; }
  h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(34px, 4.4vw, 58px); line-height: 1.06; letter-spacing: -0.03em; margin-bottom: 20px; max-width: 820px; }
  .case-hero-subtitle { font-size: 18px; line-height: 1.55; color: var(--muted); max-width: 680px; margin-bottom: 40px; }

  .case-meta-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding-top: 32px; border-top: 1px solid var(--line); }
  .case-meta-label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin-bottom: 8px; }
  .case-meta-value { font-size: 15px; letter-spacing: -0.01em; color: var(--text); line-height: 1.4; }
  .case-hero-cta { margin-top: 40px; }

  /* ============ SHARED SECTION HEAD ============ */
  .section-block { padding: 80px 0; border-top: 1px solid var(--line); }
  .section-block.surface { background: var(--surface); }
  .block-heading { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 3.2vw, 40px); letter-spacing: -0.03em; margin-bottom: 20px; }
  .block-text { font-size: 16px; line-height: 1.6; color: var(--muted); max-width: 720px; margin-bottom: 32px; }

  /* ============ PROBLEM POINTS ============ */
  .problem-list { display: flex; flex-direction: column; }
  .problem-row { display: grid; grid-template-columns: 40px 1fr; gap: 20px; padding: 20px 0; border-top: 1px solid var(--line); }
  .problem-list .problem-row:last-child { border-bottom: 1px solid var(--line); }
  .problem-num { font-family: var(--font-mono); font-size: 13px; color: var(--muted); }
  .problem-text { font-size: 16px; letter-spacing: -0.01em; color: var(--text); }

  /* ============ ARCHITECTURE ROWS ============ */
  .arch-simple-list { display: flex; flex-direction: column; }
  .arch-simple-row { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding: 22px 0; border-top: 1px solid var(--line); align-items: baseline; }
  .arch-simple-list .arch-simple-row:last-child { border-bottom: 1px solid var(--line); }
  .arch-simple-label { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); }
  .arch-simple-value { font-size: 16px; letter-spacing: -0.01em; color: var(--text); line-height: 1.5; }

  /* ============ PROTOCOL ROWS (modules / process) ============ */
  .protocol-list { display: flex; flex-direction: column; }
  .protocol-row { display: grid; grid-template-columns: 60px 1fr 200px; gap: 28px; align-items: start; padding: 28px 0; border-top: 1px solid var(--line); }
  .protocol-list .protocol-row:last-child { border-bottom: 1px solid var(--line); }
  .protocol-code { font-family: var(--font-mono); font-size: 13px; color: var(--blue); font-weight: 600; padding-top: 3px; }
  .protocol-title { font-family: var(--font-display); font-weight: 600; font-size: 18px; letter-spacing: -0.01em; margin-bottom: 6px; }
  .protocol-desc { font-size: 15px; line-height: 1.5; color: var(--muted); }
  .protocol-meta { font-family: var(--font-mono); font-size: 12px; color: var(--muted); line-height: 1.5; text-align: right; padding-top: 3px; }

  /* ============ TECH STACK ============ */
  .stack-grid { display: grid; grid-template-columns: repeat(4, 1fr); row-gap: 32px; }
  .stack-col { border-left: 1px solid var(--line); padding: 0 24px; }
  .stack-col:nth-child(4n+1) { border-left: none; padding-left: 0; }
  .stack-group-label { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); margin-bottom: 16px; }
  .stack-item { font-family: var(--font-body); font-size: 15px; letter-spacing: -0.01em; padding: 8px 0; border-top: 1px dashed var(--line); }
  .stack-col .stack-item:first-of-type { border-top: none; }

  /* ============ RESULTS ============ */
  .results-list { display: flex; flex-direction: column; }
  .result-row { display: grid; grid-template-columns: 28px 1fr; gap: 20px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--line); }
  .results-list .result-row:last-child { border-bottom: 1px solid var(--line); }
  .result-check { font-family: var(--font-mono); font-size: 15px; color: var(--blue); }
  .result-text { font-size: 16px; letter-spacing: -0.01em; color: var(--text); }
  .results-illustrative-note { font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin-top: 20px; }

  /* ============ GALLERY PLACEHOLDER ============ */
  .gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .wireframe-block { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 24px; min-height: 220px; display: flex; flex-direction: column; }
  .wireframe-caption { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 16px; }
  .wireframe-mock { flex: 1; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
  .wireframe-line { height: 8px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xs); }
  .wireframe-line.short { width: 40%; }
  .wireframe-line.medium { width: 70%; }
  .wireframe-line.full { width: 100%; }
  .wireframe-box { height: 40px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); margin-top: 8px; }

  /* ============ FINAL CTA ============ */
  .final-cta-section { padding: 100px 0; border-top: 1px solid var(--line); text-align: center; }
  .final-cta-heading { font-family: var(--font-display); font-weight: 700; font-size: clamp(30px, 3.8vw, 46px); letter-spacing: -0.03em; max-width: 760px; margin: 0 auto 16px; }
  .final-cta-text { font-size: 16px; color: var(--muted); max-width: 560px; margin: 0 auto 32px; line-height: 1.55; }
  .final-cta-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }

  /* ============ FOOTER ============ */
  footer { border-top: 1px solid var(--line); padding: 56px 0 32px; background: var(--bg); }
  .footer-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 40px; flex-wrap: wrap; gap: 32px; }
  .footer-brand-name { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.02em; margin-bottom: 6px; }
  .footer-brand-tag { font-family: var(--font-mono); font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
  .footer-nav { display: flex; gap: 28px; flex-wrap: wrap; }
  .footer-nav a { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text); text-decoration: none; border-bottom: 1px solid transparent; }
  .footer-nav a:hover { border-color: var(--text); }
  .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 24px; border-top: 1px solid var(--line); flex-wrap: wrap; gap: 16px; }
  .footer-copy { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
  .footer-contact { font-family: var(--font-mono); font-size: 12px; color: var(--text); }
  .footer-lang { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
  .footer-lang b { color: var(--text); }

  @media (max-width: 1000px) {
    html { scroll-padding-top: 76px; }
    .wrap { padding: 0 20px; }
    header .header-inner { height: 64px; gap: 12px; }
    nav { display: none; }
    header .header-right .lang-switch,
    header .header-right .btn-header {
      display: none;
    }
    .logo { flex-shrink: 1; min-width: 0; white-space: nowrap; }
    .header-right { flex-shrink: 0; gap: 0; }
    .mobile-menu-button { display: flex; flex-shrink: 0; }

    #services,
    #process,
    #cases,
    #formats,
    #intake-form,
    #protocolBoard,
    #whoWePartner {
      scroll-margin-top: 76px;
    }

    h1 { font-size: clamp(30px, 8vw, 40px); }
    .case-hero { padding: 40px 0 48px; }
    .case-meta-row { grid-template-columns: repeat(2, 1fr); gap: 20px; row-gap: 24px; }

    .section-block { padding: 56px 0; }
    .block-heading { font-size: 26px; }

    .arch-simple-row { grid-template-columns: 1fr; gap: 6px; }
    .protocol-row { grid-template-columns: 1fr; gap: 8px; }
    .protocol-meta { text-align: left; }
    .stack-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .stack-col { border-left: none; padding: 0; border-top: 1px solid var(--line); padding-top: 16px; }
    .stack-col:nth-child(-n+2) { border-top: none; padding-top: 0; }

    .gallery-grid { grid-template-columns: 1fr; }

    .final-cta-section { padding: 64px 0; }
    .final-cta-buttons { flex-direction: column; align-items: stretch; }

    .footer-top { flex-direction: column; }
    .footer-nav { gap: 16px 24px; }
  }


/* Extracted from approved static prototype: case-jewelry-woocommerce.html */

  :root {
    --bg: #F4F1EA;
    --surface: #E9E3D8;
    --text: #101010;
    --muted: #686868;
    --line: #CFC8BA;
    --black: #050505;
    --blue: #2457FF;
    --lime: #B6FF3B;
    --font-display: 'Geist', -apple-system, sans-serif;
    --font-body: 'Geist', -apple-system, sans-serif;
    --font-mono: 'Geist Mono', 'SF Mono', monospace;
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-interactive: var(--radius-sm);
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 96px; }

  #services,
  #process,
  #cases,
  #formats,
  #intake-form,
  #protocolBoard,
  #whoWePartner {
    scroll-margin-top: 96px;
  }

  body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.6;
    letter-spacing: -0.015em;
    -webkit-font-smoothing: antialiased;
  }

  .wrap { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
  .reveal { opacity: 0; transform: translateY(18px); transition: opacity 700ms cubic-bezier(0.16,1,0.3,1), transform 700ms cubic-bezier(0.16,1,0.3,1); }
  .reveal.in { opacity: 1; transform: translateY(0); }

  /* ============ HEADER ============ */
  header { position: sticky; top: 0; z-index: 90; background: var(--bg); border-bottom: 1px solid var(--line); }
  .header-inner { display: flex; align-items: center; justify-content: space-between; height: 84px; }
  .logo { font-family: var(--font-display); font-weight: 700; font-size: 17px; letter-spacing: -0.03em; text-transform: uppercase; color: var(--text); text-decoration: none; display: inline-flex; align-items: center; }
  .logo:visited { color: var(--text); }
  .logo:hover { color: var(--text); text-decoration: none; }
  .logo span { color: var(--blue); }
  nav { display: flex; gap: 36px; position: absolute; left: 50%; transform: translateX(-50%); }
  nav a { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text); text-decoration: none; padding-bottom: 4px; border-bottom: 1px solid transparent; transition: border-color 200ms ease; }
  nav a:hover, nav a.active { border-color: var(--text); }
  .header-right { display: flex; align-items: center; gap: 24px; }
  .lang-switch { font-family: var(--font-mono); font-size: 12px; color: var(--muted); display: flex; gap: 6px; }
  .lang-switch b { color: var(--text); font-weight: 500; cursor: pointer; }

  .btn { display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-body); font-weight: 500; font-size: 16px; letter-spacing: -0.01em; text-decoration: none; border-radius: var(--radius-sm); transition: all 200ms ease; cursor: pointer; white-space: nowrap; border: none; }
  .btn-black { background: var(--black); color: var(--bg); padding: 14px 28px; border: 1px solid var(--black); }
  .btn-black:hover { background: var(--blue); border-color: var(--blue); color: #fff; }
  .btn-outline { background: transparent; color: var(--text); border: 1px solid var(--text); padding: 14px 28px; }
  .btn-outline:hover { border-color: var(--blue); color: var(--blue); }
  .btn-header { padding: 10px 18px; font-size: 14px; }

  .mobile-menu-button { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; background: transparent; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; padding: 0; }
  .mobile-menu-button svg { width: 18px; height: 18px; }
  .mobile-menu-button .icon-close { display: none; }
  .mobile-menu-button[aria-expanded="true"] .icon-open { display: none; }
  .mobile-menu-button[aria-expanded="true"] .icon-close { display: block; }
  .mobile-menu-panel { position: fixed; inset: 0; width: 100vw; max-width: 100vw; overflow-x: hidden; background: var(--bg); z-index: 9999; display: flex; flex-direction: column; transform: translateX(100%); transition: transform 300ms ease; visibility: hidden; }
  .mobile-menu-panel.open { transform: translateX(0); visibility: visible; }
  .mobile-menu-top { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 20px; box-sizing: border-box; border-bottom: 1px solid var(--line); }
  .mobile-menu-close { width: 40px; height: 40px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; }
  .mobile-menu-close svg { width: 18px; height: 18px; }
  .mobile-menu-links { display: flex; flex-direction: column; padding: 32px 20px; gap: 4px; }
  .mobile-menu-links a { font-family: var(--font-display); font-weight: 600; font-size: 26px; letter-spacing: -0.02em; color: var(--text); text-decoration: none; padding: 16px 0; border-bottom: 1px solid var(--line); }
  .mobile-menu-footer { margin-top: auto; padding: 24px 20px 32px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 16px; }
  .mobile-menu-footer .btn { width: 100%; }
  .mobile-menu-lang { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
  .mobile-menu-lang b { color: var(--text); }

  /* ============ HERO ============ */
  .case-hero { padding: 56px 0 64px; border-bottom: 1px solid var(--line); }
  .breadcrumb { font-family: var(--font-mono); font-size: 12px; color: var(--muted); margin-bottom: 24px; }
  .breadcrumb a { color: var(--muted); text-decoration: none; border-bottom: 1px solid var(--line); }
  .breadcrumb a:hover { color: var(--text); border-color: var(--text); }
  .badge { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line); border-radius: var(--radius-xs); padding: 8px 16px; display: inline-block; margin-bottom: 24px; }
  h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(34px, 4.4vw, 58px); line-height: 1.06; letter-spacing: -0.03em; margin-bottom: 20px; max-width: 820px; }
  .case-hero-subtitle { font-size: 18px; line-height: 1.55; color: var(--muted); max-width: 680px; margin-bottom: 40px; }

  .case-meta-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding-top: 32px; border-top: 1px solid var(--line); }
  .case-meta-label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin-bottom: 8px; }
  .case-meta-value { font-size: 15px; letter-spacing: -0.01em; color: var(--text); line-height: 1.4; }
  .case-hero-cta { margin-top: 40px; }

  .case-hero-visual { margin-top: 56px; border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; }
  .case-hero-visual img { display: block; width: 100%; height: auto; max-height: 460px; object-fit: cover; object-position: top center; }

  /* ============ SHARED SECTION HEAD ============ */
  .section-block { padding: 80px 0; border-top: 1px solid var(--line); }
  .section-block.surface { background: var(--surface); }
  .block-heading { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 3.2vw, 40px); letter-spacing: -0.03em; margin-bottom: 20px; }
  .block-text { font-size: 16px; line-height: 1.6; color: var(--muted); max-width: 720px; margin-bottom: 32px; }

  /* ============ PROBLEM POINTS ============ */
  .problem-list { display: flex; flex-direction: column; }
  .problem-row { display: grid; grid-template-columns: 40px 1fr; gap: 20px; padding: 20px 0; border-top: 1px solid var(--line); }
  .problem-list .problem-row:last-child { border-bottom: 1px solid var(--line); }
  .problem-num { font-family: var(--font-mono); font-size: 13px; color: var(--muted); }
  .problem-text { font-size: 16px; letter-spacing: -0.01em; color: var(--text); }

  /* ============ ARCHITECTURE ROWS ============ */
  .arch-simple-list { display: flex; flex-direction: column; }
  .arch-simple-row { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding: 22px 0; border-top: 1px solid var(--line); align-items: baseline; }
  .arch-simple-list .arch-simple-row:last-child { border-bottom: 1px solid var(--line); }
  .arch-simple-label { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); }
  .arch-simple-value { font-size: 16px; letter-spacing: -0.01em; color: var(--text); line-height: 1.5; }

  /* ============ PROTOCOL ROWS (modules / process) ============ */
  .protocol-list { display: flex; flex-direction: column; }
  .protocol-row { display: grid; grid-template-columns: 60px 1fr 200px; gap: 28px; align-items: start; padding: 28px 0; border-top: 1px solid var(--line); }
  .protocol-list .protocol-row:last-child { border-bottom: 1px solid var(--line); }
  .protocol-code { font-family: var(--font-mono); font-size: 13px; color: var(--blue); font-weight: 600; padding-top: 3px; }
  .protocol-title { font-family: var(--font-display); font-weight: 600; font-size: 18px; letter-spacing: -0.01em; margin-bottom: 6px; }
  .protocol-desc { font-size: 15px; line-height: 1.5; color: var(--muted); }
  .protocol-meta { font-family: var(--font-mono); font-size: 12px; color: var(--muted); line-height: 1.5; text-align: right; padding-top: 3px; }

  /* ============ TECH STACK ============ */
  .stack-grid { display: grid; grid-template-columns: repeat(4, 1fr); row-gap: 32px; }
  .stack-col { border-left: 1px solid var(--line); padding: 0 24px; }
  .stack-col:nth-child(4n+1) { border-left: none; padding-left: 0; }
  .stack-group-label { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); margin-bottom: 16px; }
  .stack-item { font-family: var(--font-body); font-size: 15px; letter-spacing: -0.01em; padding: 8px 0; border-top: 1px dashed var(--line); }
  .stack-col .stack-item:first-of-type { border-top: none; }

  /* ============ RESULTS ============ */
  .results-list { display: flex; flex-direction: column; }
  .result-row { display: grid; grid-template-columns: 28px 1fr; gap: 20px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--line); }
  .results-list .result-row:last-child { border-bottom: 1px solid var(--line); }
  .result-check { font-family: var(--font-mono); font-size: 15px; color: var(--blue); }
  .result-text { font-size: 16px; letter-spacing: -0.01em; color: var(--text); }
  .results-illustrative-note { font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin-top: 20px; }

  /* ============ GALLERY PLACEHOLDER ============ */
  .gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .wireframe-block { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 24px; min-height: 220px; display: flex; flex-direction: column; }

  .gallery-image-card { border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; display: flex; flex-direction: column; }
  .gallery-image-card img { display: block; width: 100%; height: 260px; object-fit: cover; object-position: top center; }
  .gallery-image-card .wireframe-caption { padding: 20px 20px 0; }
  .gallery-image-card .gallery-item-text { padding: 8px 20px 20px; font-size: 14px; line-height: 1.5; color: var(--muted); }

  .breakdown-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
  .breakdown-visual { border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; }
  .breakdown-visual img { display: block; width: 100%; height: auto; }

  .brand-visual-block { display: grid; grid-template-columns: 220px 1fr; gap: 32px; align-items: center; }
  .brand-visual-block img { display: block; width: 100%; height: 180px; object-fit: cover; border: 1px solid var(--line); border-radius: var(--radius-md); }
  .wireframe-caption { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 16px; }
  .wireframe-mock { flex: 1; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
  .wireframe-line { height: 8px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xs); }
  .wireframe-line.short { width: 40%; }
  .wireframe-line.medium { width: 70%; }
  .wireframe-line.full { width: 100%; }
  .wireframe-box { height: 40px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); margin-top: 8px; }

  /* ============ FINAL CTA ============ */
  .final-cta-section { padding: 100px 0; border-top: 1px solid var(--line); text-align: center; }
  .final-cta-heading { font-family: var(--font-display); font-weight: 700; font-size: clamp(30px, 3.8vw, 46px); letter-spacing: -0.03em; max-width: 760px; margin: 0 auto 16px; }
  .final-cta-text { font-size: 16px; color: var(--muted); max-width: 560px; margin: 0 auto 32px; line-height: 1.55; }
  .final-cta-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }

  /* ============ FOOTER ============ */
  footer { border-top: 1px solid var(--line); padding: 56px 0 32px; background: var(--bg); }
  .footer-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 40px; flex-wrap: wrap; gap: 32px; }
  .footer-brand-name { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.02em; margin-bottom: 6px; }
  .footer-brand-tag { font-family: var(--font-mono); font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
  .footer-nav { display: flex; gap: 28px; flex-wrap: wrap; }
  .footer-nav a { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text); text-decoration: none; border-bottom: 1px solid transparent; }
  .footer-nav a:hover { border-color: var(--text); }
  .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 24px; border-top: 1px solid var(--line); flex-wrap: wrap; gap: 16px; }
  .footer-copy { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
  .footer-contact { font-family: var(--font-mono); font-size: 12px; color: var(--text); }
  .footer-lang { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
  .footer-lang b { color: var(--text); }

  @media (max-width: 1000px) {
    html { scroll-padding-top: 76px; }
    .wrap { padding: 0 20px; }
    header .header-inner { height: 64px; gap: 12px; }
    nav { display: none; }
    header .header-right .lang-switch,
    header .header-right .btn-header {
      display: none;
    }
    .logo { flex-shrink: 1; min-width: 0; white-space: nowrap; }
    .header-right { flex-shrink: 0; gap: 0; }
    .mobile-menu-button { display: flex; flex-shrink: 0; }

    #services,
    #process,
    #cases,
    #formats,
    #intake-form,
    #protocolBoard,
    #whoWePartner {
      scroll-margin-top: 76px;
    }

    h1 { font-size: clamp(30px, 8vw, 40px); }
    .case-hero { padding: 40px 0 48px; }
    .case-meta-row { grid-template-columns: repeat(2, 1fr); gap: 20px; row-gap: 24px; }

    .section-block { padding: 56px 0; }
    .block-heading { font-size: 26px; }

    .arch-simple-row { grid-template-columns: 1fr; gap: 6px; }
    .protocol-row { grid-template-columns: 1fr; gap: 8px; }
    .protocol-meta { text-align: left; }
    .stack-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .stack-col { border-left: none; padding: 0; border-top: 1px solid var(--line); padding-top: 16px; }
    .stack-col:nth-child(-n+2) { border-top: none; padding-top: 0; }

    .gallery-grid { grid-template-columns: 1fr; }
    .case-hero-visual img { max-height: 320px; }
    .gallery-image-card img { height: 220px; }
    .breakdown-layout { grid-template-columns: 1fr; gap: 24px; }
    .brand-visual-block { grid-template-columns: 1fr; }
    .brand-visual-block img { height: 220px; }

    .final-cta-section { padding: 64px 0; }
    .final-cta-buttons { flex-direction: column; align-items: stretch; }

    .footer-top { flex-direction: column; }
    .footer-nav { gap: 16px 24px; }
  }


/* Extracted from approved static prototype: case-uspacy-olx.html */

  :root {
    --bg: #F4F1EA;
    --surface: #E9E3D8;
    --text: #101010;
    --muted: #686868;
    --line: #CFC8BA;
    --black: #050505;
    --blue: #2457FF;
    --lime: #B6FF3B;
    --font-display: 'Geist', -apple-system, sans-serif;
    --font-body: 'Geist', -apple-system, sans-serif;
    --font-mono: 'Geist Mono', 'SF Mono', monospace;
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-interactive: var(--radius-sm);
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 96px; }

  #services,
  #process,
  #cases,
  #formats,
  #intake-form,
  #protocolBoard,
  #whoWePartner {
    scroll-margin-top: 96px;
  }

  body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.6;
    letter-spacing: -0.015em;
    -webkit-font-smoothing: antialiased;
  }

  .wrap { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
  .reveal { opacity: 0; transform: translateY(18px); transition: opacity 700ms cubic-bezier(0.16,1,0.3,1), transform 700ms cubic-bezier(0.16,1,0.3,1); }
  .reveal.in { opacity: 1; transform: translateY(0); }

  /* ============ HEADER ============ */
  header { position: sticky; top: 0; z-index: 90; background: var(--bg); border-bottom: 1px solid var(--line); }
  .header-inner { display: flex; align-items: center; justify-content: space-between; height: 84px; }
  .logo { font-family: var(--font-display); font-weight: 700; font-size: 17px; letter-spacing: -0.03em; text-transform: uppercase; color: var(--text); text-decoration: none; display: inline-flex; align-items: center; }
  .logo:visited { color: var(--text); }
  .logo:hover { color: var(--text); text-decoration: none; }
  .logo span { color: var(--blue); }
  nav { display: flex; gap: 36px; position: absolute; left: 50%; transform: translateX(-50%); }
  nav a { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text); text-decoration: none; padding-bottom: 4px; border-bottom: 1px solid transparent; transition: border-color 200ms ease; }
  nav a:hover, nav a.active { border-color: var(--text); }
  .header-right { display: flex; align-items: center; gap: 24px; }
  .lang-switch { font-family: var(--font-mono); font-size: 12px; color: var(--muted); display: flex; gap: 6px; }
  .lang-switch b { color: var(--text); font-weight: 500; cursor: pointer; }

  .btn { display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-body); font-weight: 500; font-size: 16px; letter-spacing: -0.01em; text-decoration: none; border-radius: var(--radius-sm); transition: all 200ms ease; cursor: pointer; white-space: nowrap; border: none; }
  .btn-black { background: var(--black); color: var(--bg); padding: 14px 28px; border: 1px solid var(--black); }
  .btn-black:hover { background: var(--blue); border-color: var(--blue); color: #fff; }
  .btn-outline { background: transparent; color: var(--text); border: 1px solid var(--text); padding: 14px 28px; }
  .btn-outline:hover { border-color: var(--blue); color: var(--blue); }
  .btn-header { padding: 10px 18px; font-size: 14px; }

  .mobile-menu-button { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; background: transparent; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; padding: 0; }
  .mobile-menu-button svg { width: 18px; height: 18px; }
  .mobile-menu-button .icon-close { display: none; }
  .mobile-menu-button[aria-expanded="true"] .icon-open { display: none; }
  .mobile-menu-button[aria-expanded="true"] .icon-close { display: block; }
  .mobile-menu-panel { position: fixed; inset: 0; width: 100vw; max-width: 100vw; overflow-x: hidden; background: var(--bg); z-index: 9999; display: flex; flex-direction: column; transform: translateX(100%); transition: transform 300ms ease; visibility: hidden; }
  .mobile-menu-panel.open { transform: translateX(0); visibility: visible; }
  .mobile-menu-top { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 20px; box-sizing: border-box; border-bottom: 1px solid var(--line); }
  .mobile-menu-close { width: 40px; height: 40px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; }
  .mobile-menu-close svg { width: 18px; height: 18px; }
  .mobile-menu-links { display: flex; flex-direction: column; padding: 32px 20px; gap: 4px; }
  .mobile-menu-links a { font-family: var(--font-display); font-weight: 600; font-size: 26px; letter-spacing: -0.02em; color: var(--text); text-decoration: none; padding: 16px 0; border-bottom: 1px solid var(--line); }
  .mobile-menu-footer { margin-top: auto; padding: 24px 20px 32px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 16px; }
  .mobile-menu-footer .btn { width: 100%; }
  .mobile-menu-lang { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
  .mobile-menu-lang b { color: var(--text); }

  /* ============ HERO ============ */
  .case-hero { padding: 56px 0 64px; border-bottom: 1px solid var(--line); }
  .breadcrumb { font-family: var(--font-mono); font-size: 12px; color: var(--muted); margin-bottom: 24px; }
  .breadcrumb a { color: var(--muted); text-decoration: none; border-bottom: 1px solid var(--line); }
  .breadcrumb a:hover { color: var(--text); border-color: var(--text); }
  .badge { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line); border-radius: var(--radius-xs); padding: 8px 16px; display: inline-block; margin-bottom: 24px; }
  h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(34px, 4.4vw, 58px); line-height: 1.06; letter-spacing: -0.03em; margin-bottom: 20px; max-width: 820px; }
  .case-hero-subtitle { font-size: 18px; line-height: 1.55; color: var(--muted); max-width: 680px; margin-bottom: 40px; }

  .case-meta-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding-top: 32px; border-top: 1px solid var(--line); }
  .case-meta-label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin-bottom: 8px; }
  .case-meta-value { font-size: 15px; letter-spacing: -0.01em; color: var(--text); line-height: 1.4; }
  .case-hero-cta { margin-top: 40px; }

  .case-hero-visual { margin-top: 56px; border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; }
  .case-hero-visual img { display: block; width: 100%; height: auto; max-height: 460px; object-fit: cover; object-position: top center; }

  /* ============ SHARED SECTION HEAD ============ */
  .section-block { padding: 80px 0; border-top: 1px solid var(--line); }
  .section-block.surface { background: var(--surface); }
  .block-heading { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 3.2vw, 40px); letter-spacing: -0.03em; margin-bottom: 20px; }
  .block-text { font-size: 16px; line-height: 1.6; color: var(--muted); max-width: 720px; margin-bottom: 32px; }

  /* ============ PROBLEM POINTS ============ */
  .problem-list { display: flex; flex-direction: column; }
  .problem-row { display: grid; grid-template-columns: 40px 1fr; gap: 20px; padding: 20px 0; border-top: 1px solid var(--line); }
  .problem-list .problem-row:last-child { border-bottom: 1px solid var(--line); }
  .problem-num { font-family: var(--font-mono); font-size: 13px; color: var(--muted); }
  .problem-text { font-size: 16px; letter-spacing: -0.01em; color: var(--text); }

  /* ============ ARCHITECTURE ROWS ============ */
  .arch-simple-list { display: flex; flex-direction: column; }
  .arch-simple-row { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding: 22px 0; border-top: 1px solid var(--line); align-items: baseline; }
  .arch-simple-list .arch-simple-row:last-child { border-bottom: 1px solid var(--line); }
  .arch-simple-label { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); }
  .arch-simple-value { font-size: 16px; letter-spacing: -0.01em; color: var(--text); line-height: 1.5; }

  /* ============ PROTOCOL ROWS (modules / process) ============ */
  .protocol-list { display: flex; flex-direction: column; }
  .protocol-row { display: grid; grid-template-columns: 60px 1fr 200px; gap: 28px; align-items: start; padding: 28px 0; border-top: 1px solid var(--line); }
  .protocol-list .protocol-row:last-child { border-bottom: 1px solid var(--line); }
  .protocol-code { font-family: var(--font-mono); font-size: 13px; color: var(--blue); font-weight: 600; padding-top: 3px; }
  .protocol-title { font-family: var(--font-display); font-weight: 600; font-size: 18px; letter-spacing: -0.01em; margin-bottom: 6px; }
  .protocol-desc { font-size: 15px; line-height: 1.5; color: var(--muted); }
  .protocol-meta { font-family: var(--font-mono); font-size: 12px; color: var(--muted); line-height: 1.5; text-align: right; padding-top: 3px; }

  /* ============ TECH STACK ============ */
  .stack-grid { display: grid; grid-template-columns: repeat(4, 1fr); row-gap: 32px; }
  .stack-col { border-left: 1px solid var(--line); padding: 0 24px; }
  .stack-col:nth-child(4n+1) { border-left: none; padding-left: 0; }
  .stack-group-label { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--blue); margin-bottom: 16px; }
  .stack-item { font-family: var(--font-body); font-size: 15px; letter-spacing: -0.01em; padding: 8px 0; border-top: 1px dashed var(--line); }
  .stack-col .stack-item:first-of-type { border-top: none; }

  /* ============ RESULTS ============ */
  .results-list { display: flex; flex-direction: column; }
  .result-row { display: grid; grid-template-columns: 28px 1fr; gap: 20px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--line); }
  .results-list .result-row:last-child { border-bottom: 1px solid var(--line); }
  .result-check { font-family: var(--font-mono); font-size: 15px; color: var(--blue); }
  .result-text { font-size: 16px; letter-spacing: -0.01em; color: var(--text); }
  .results-illustrative-note { font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin-top: 20px; }

  /* ============ GALLERY PLACEHOLDER ============ */
  .gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .wireframe-block { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 24px; min-height: 220px; display: flex; flex-direction: column; }

  .gallery-image-card { border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; display: flex; flex-direction: column; }
  .gallery-image-card img { display: block; width: 100%; height: 260px; object-fit: cover; object-position: top center; }
  .gallery-image-card .wireframe-caption { padding: 20px 20px 0; }
  .gallery-image-card .gallery-item-text { padding: 8px 20px 20px; font-size: 14px; line-height: 1.5; color: var(--muted); }

  .breakdown-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
  .breakdown-visual { border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; }
  .breakdown-visual img { display: block; width: 100%; height: auto; }

  .brand-visual-block { display: grid; grid-template-columns: 220px 1fr; gap: 32px; align-items: center; }
  .brand-visual-block img { display: block; width: 100%; height: 180px; object-fit: cover; border: 1px solid var(--line); border-radius: var(--radius-md); }
  .wireframe-caption { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 16px; }
  .wireframe-mock { flex: 1; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
  .wireframe-line { height: 8px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xs); }
  .wireframe-line.short { width: 40%; }
  .wireframe-line.medium { width: 70%; }
  .wireframe-line.full { width: 100%; }
  .wireframe-box { height: 40px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); margin-top: 8px; }

  /* ============ FINAL CTA ============ */
  .final-cta-section { padding: 100px 0; border-top: 1px solid var(--line); text-align: center; }
  .final-cta-heading { font-family: var(--font-display); font-weight: 700; font-size: clamp(30px, 3.8vw, 46px); letter-spacing: -0.03em; max-width: 760px; margin: 0 auto 16px; }
  .final-cta-text { font-size: 16px; color: var(--muted); max-width: 560px; margin: 0 auto 32px; line-height: 1.55; }
  .final-cta-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }

  /* ============ FOOTER ============ */
  footer { border-top: 1px solid var(--line); padding: 56px 0 32px; background: var(--bg); }
  .footer-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 40px; flex-wrap: wrap; gap: 32px; }
  .footer-brand-name { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.02em; margin-bottom: 6px; }
  .footer-brand-tag { font-family: var(--font-mono); font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
  .footer-nav { display: flex; gap: 28px; flex-wrap: wrap; }
  .footer-nav a { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text); text-decoration: none; border-bottom: 1px solid transparent; }
  .footer-nav a:hover { border-color: var(--text); }
  .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 24px; border-top: 1px solid var(--line); flex-wrap: wrap; gap: 16px; }
  .footer-copy { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
  .footer-contact { font-family: var(--font-mono); font-size: 12px; color: var(--text); }
  .footer-lang { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
  .footer-lang b { color: var(--text); }

  @media (max-width: 1000px) {
    html { scroll-padding-top: 76px; }
    .wrap { padding: 0 20px; }
    header .header-inner { height: 64px; gap: 12px; }
    nav { display: none; }
    header .header-right .lang-switch,
    header .header-right .btn-header {
      display: none;
    }
    .logo { flex-shrink: 1; min-width: 0; white-space: nowrap; }
    .header-right { flex-shrink: 0; gap: 0; }
    .mobile-menu-button { display: flex; flex-shrink: 0; }

    #services,
    #process,
    #cases,
    #formats,
    #intake-form,
    #protocolBoard,
    #whoWePartner {
      scroll-margin-top: 76px;
    }

    h1 { font-size: clamp(30px, 8vw, 40px); }
    .case-hero { padding: 40px 0 48px; }
    .case-meta-row { grid-template-columns: repeat(2, 1fr); gap: 20px; row-gap: 24px; }

    .section-block { padding: 56px 0; }
    .block-heading { font-size: 26px; }

    .arch-simple-row { grid-template-columns: 1fr; gap: 6px; }
    .protocol-row { grid-template-columns: 1fr; gap: 8px; }
    .protocol-meta { text-align: left; }
    .stack-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .stack-col { border-left: none; padding: 0; border-top: 1px solid var(--line); padding-top: 16px; }
    .stack-col:nth-child(-n+2) { border-top: none; padding-top: 0; }

    .gallery-grid { grid-template-columns: 1fr; }
    .case-hero-visual img { max-height: 320px; }
    .gallery-image-card img { height: 220px; }
    .breakdown-layout { grid-template-columns: 1fr; gap: 24px; }
    .brand-visual-block { grid-template-columns: 1fr; }
    .brand-visual-block img { height: 220px; }

    .final-cta-section { padding: 64px 0; }
    .final-cta-buttons { flex-direction: column; align-items: stretch; }

    .footer-top { flex-direction: column; }
    .footer-nav { gap: 16px 24px; }
  }


/* WordPress final adjustment: case pages use approved left-aligned case hero. */
.case-hero h1 { text-align: left; margin-left: 0; margin-right: 0; }
.case-hero .case-hero-subtitle, .case-hero .badge { text-align: left; }
