/* studio.lazerkid_v1.36-hero-logo-refined · components.css
   Component layer
   ------------------------------------------------------------
   - Main UI component layer.
   - This file still contains most historical visual rules from the prototype.
   - Keep cascade stable until a controlled visual refactor splits it further.
*/

:root {
      --bg: #ffffff;
      --ink: #233142;
      --ink-rgb: 35, 49, 66;
      --muted: #5f6673;
      --soft: #f4f4f1;
      --line: #deded8;
      --panel: #fafaf8;
      --accent: #233142;
      --max: 1180px;
      --narrow: 760px;
      --radius: 22px;
      --pad-section: clamp(62px, 7.6vw, 104px);
      --gap: clamp(18px, 2.6vw, 32px);
      --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      --serif: Georgia, "Times New Roman", serif;
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      background: var(--bg);
      color: var(--ink);
      font-family: var(--font);
      line-height: 1.5;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    img, video {
      max-width: 100%;
      display: block;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    p {
      margin: 0;
    }

    h1, h2, h3 {
      text-wrap: balance;
    }

    .page {
      overflow: hidden;
    }

    .container {
      width: min(calc(100% - 40px), var(--max));
      margin: 0 auto;
    }

    .container-narrow {
      width: min(calc(100% - 40px), var(--narrow));
      margin: 0 auto;
    }

    .header {
      position: fixed;
      top: 14px;
      left: 0;
      right: 0;
      z-index: 100;
      background: transparent;
      pointer-events: none;
    }

    .header-inner {
      min-height: 58px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 22px;
      padding: 0 16px;
      border: 1px solid rgba(var(--ink-rgb),.12);
      border-radius: 999px;
      background: rgba(255,255,255,0.9);
      backdrop-filter: blur(18px);
      box-shadow: 0 10px 34px rgba(0,0,0,.07);
      pointer-events: auto;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 10px;
      font-weight: 800;
      letter-spacing: -0.028em;
      font-size: 16px;
      white-space: nowrap;
    }


    .brand-name {
      color: var(--ink);
    }

    .brand-name:hover {
      color: var(--ink);
    }

    .brand-mark {
      width: 31px;
      height: 31px;
      border-radius: 50%;
      border: 2px solid var(--ink);
      display: grid;
      place-items: center;
      font-size: 10px;
      letter-spacing: -0.04em;
      font-weight: 900;
    }

    .nav {
      display: flex;
      align-items: center;
      gap: 22px;
      font-size: 13px;
      color: var(--muted);
    }

    .nav a:hover {
      color: var(--ink);
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 40px;
      padding: 0 16px;
      border-radius: 999px;
      border: 1px solid var(--ink);
      font-weight: 700;
      font-size: 14px;
      transition: transform .2s ease, background .2s ease, color .2s ease;
    }

    .btn:hover {
      transform: translateY(-1px);
    }

    .btn-primary {
      background: var(--ink);
      color: #fff;
    }

    .btn-secondary {
      background: transparent;
      color: var(--ink);
    }

    .mobile-note {
      display: none;
      font-size: 12px;
      color: var(--muted);
    }


/* v1.17 · language switch */
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .04em;
  font-weight: 800;
  color: var(--muted);
  white-space: nowrap;
}

.lang-switch button {
  color: var(--muted);
  text-decoration: none;
  transition: color .18s ease, opacity .18s ease;
}


.lang-switch button {
  appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  font: inherit;
  letter-spacing: inherit;
  cursor: pointer;
}

.lang-switch button[aria-disabled="true"] {
  cursor: default;
  opacity: .58;
}

.lang-switch button[aria-disabled="true"]:hover {
  color: var(--muted);
}


.lang-switch button:hover {
  color: var(--ink);
}

.lang-switch button.is-active {
  color: var(--ink);
}

.lang-switch span {
  color: rgba(var(--ink-rgb),.28);
}

@media (max-width: 760px) {
  .header {
    top: 10px;
  }

  .header-inner {
    min-height: 52px;
    gap: 12px;
    padding: 0 14px;
  }

  .header .brand {
    margin-right: auto;
  }

  .header .nav,
  .header .header-cta,
  .header .mobile-note {
    display: none;
  }

  .header .lang-switch {
    margin-left: auto;
    font-size: 12px;
  }
}

@media (min-width: 761px) {
  .header .lang-switch {
    margin-left: auto;
  }
}


    .section {
      padding: var(--pad-section) 0;
      border-bottom: 1px solid var(--line);
    }

    .section.soft {
      background: var(--soft);
    }

    .section-kicker {
      font-size: 12px;
      line-height: 1;
      text-transform: uppercase;
      letter-spacing: .16em;
      font-weight: 800;
      color: var(--muted);
      margin-bottom: 22px;
    }

    
    .section-flow {
      display: flex;
      flex-direction: column;
      gap: clamp(28px, 3vw, 42px);
      align-items: flex-start;
    }

    .section-text-group {
      display: flex;
      flex-direction: column;
      gap: 18px;
    }

    .section-text-group .lead {
      margin: 0;
    }

    .recorrido-flow .button-row {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }

.section-title {
      margin: 0;
      max-width: 880px;
      font-size: clamp(29px, 3.9vw, 48px);
      line-height: 1.08;
      letter-spacing: -0.032em;
      font-weight: 900;
    }

    .section-title.medium {
      font-size: clamp(27px, 2.9vw, 38px);
      line-height: 1.1;
      letter-spacing: -0.03em;
      max-width: 820px;
    }

    .section-title.small {
      font-size: clamp(24px, 2.5vw, 34px);
      line-height: 1.12;
      letter-spacing: -0.026em;
      max-width: 740px;
    }

    .lead {
      margin-top: 20px;
      max-width: 740px;
      color: var(--muted);
      font-size: clamp(16px, 1.35vw, 19px);
      line-height: 1.48;
      letter-spacing: -0.012em;
    }

    .text {
      color: var(--muted);
      font-size: 16px;
      line-height: 1.62;
    }

    .hero {
      padding: clamp(118px, 11vw, 154px) 0 clamp(64px, 7vw, 92px);
    }

    .hero-grid {
      display: grid;
      grid-template-columns: 1.05fr .95fr;
      gap: clamp(34px, 6vw, 76px);
      align-items: center;
    }

    .hero h1 {
      margin: 0;
      max-width: 760px;
      font-size: clamp(38px, 4.9vw, 62px);
      line-height: 1.02;
      letter-spacing: -0.032em;
      font-weight: 950;
    }

    .hero-copy {
      display: grid;
      gap: 26px;
    }

    .hero-lead {
      max-width: 640px;
      color: var(--muted);
      font-size: clamp(17px, 1.45vw, 20px);
      line-height: 1.5;
      letter-spacing: -0.01em;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 8px;
    }

    .hero-note {
      color: var(--muted);
      font-size: 14px;
      max-width: 360px;
    }

    .visual-card {
      width: min(100%, 420px);
      justify-self: center;
      align-self: center;
      aspect-ratio: 1 / 1;
      display: grid;
      place-items: center;
      min-height: 280px;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      overflow: visible;
    }

    .visual-card-inner {
      display: none;
    }

    .video-shell {
      margin-top: 34px;
      border: 1px solid var(--line);
      border-radius: 34px;
      overflow: hidden;
      background: var(--ink);
      box-shadow: 0 24px 80px rgba(0,0,0,.10);
    }


    .reel-embed {
      position: relative;
      overflow: hidden;
      background: var(--ink);
      aspect-ratio: 16 / 9;
      min-height: 220px;
    }

    .reel-embed iframe {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
      display: block;
    }

    .video-placeholder {
      aspect-ratio: 16 / 9;
      display: grid;
      place-items: center;
      color: #fff;
      position: relative;
      background:
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        #111;
      background-size: 52px 52px;
    }

    .video-placeholder::before {
      content: "";
      width: clamp(74px, 11vw, 132px);
      aspect-ratio: 1;
      border-radius: 50%;
      border: 2px solid #fff;
      position: absolute;
    }

    .video-placeholder::after {
      content: "REEL";
      font-weight: 950;
      letter-spacing: -0.08em;
      font-size: clamp(46px, 9vw, 128px);
    }

    .two-col {
      display: grid;
      grid-template-columns: .82fr 1.18fr;
      gap: clamp(32px, 6vw, 80px);
      align-items: start;
    }

    .three-grid,
    .profile-grid,
    .help-grid,
    .service-grid,
    .process-grid {
      display: grid;
      gap: 16px;
    }

    .three-grid {
      grid-template-columns: repeat(3, 1fr);
      margin-top: 44px;
    }

    .profile-grid {
      grid-template-columns: repeat(3, 1fr);
      margin-top: 44px;
    }

    .help-grid {
      grid-template-columns: repeat(5, 1fr);
      margin-top: 44px;
    }

    .service-grid {
      grid-template-columns: repeat(4, 1fr);
      margin-top: 40px;
    }

    .process-grid {
      grid-template-columns: repeat(4, 1fr);
      margin-top: 44px;
    }

    .card {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--panel);
      padding: 22px;
      min-height: 172px;
    }

    .card.white {
      background: #fff;
    }

    .card h3 {
      margin: 0 0 12px;
      font-size: 19px;
      line-height: 1.08;
      letter-spacing: -0.035em;
    }

    .card p {
      color: var(--muted);
      font-size: 14.5px;
      line-height: 1.52;
    }

    .card .code {
      display: inline-block;
      margin-bottom: 18px;
      font-size: 11px;
      letter-spacing: .14em;
      font-weight: 900;
      color: var(--muted);
      text-transform: uppercase;
    }

    .card .card-cta {
      display: inline-block;
      margin-top: 18px;
      font-size: 13px;
      font-weight: 800;
      border-bottom: 1px solid currentColor;
    }

    .problem-list {
      margin-top: 44px;
      display: grid;
      gap: 10px;
      max-width: 900px;
    }

    .problem-item {
      display: flex;
      gap: 16px;
      align-items: baseline;
      padding: 18px 0;
      border-bottom: 1px solid var(--line);
      font-size: clamp(17px, 1.55vw, 20px);
      letter-spacing: -0.035em;
      line-height: 1.18;
    }

    .problem-item span {
      color: var(--muted);
      font-size: 13px;
      font-weight: 900;
      letter-spacing: .08em;
      min-width: 42px;
    }

    .diagnostic {
      display: grid;
      gap: 10px;
      margin-top: 46px;
    }

    .diagnostic-row {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 24px;
      align-items: center;
      padding: 17px 20px;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 18px;
    }

    .diagnostic-row strong {
      font-size: 15px;
      letter-spacing: -0.015em;
    }

    .diagnostic-row span {
      font-weight: 900;
      font-size: 13px;
      white-space: normal;
      padding: 8px 12px;
      border-radius: 999px;
      background: var(--ink);
      color: #fff;
    }

    .services-head {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 36px;
      margin-bottom: 8px;
    }

    .phase {
      margin-top: 54px;
    }

    .phase-title {
      font-size: 13px;
      text-transform: uppercase;
      letter-spacing: .14em;
      font-weight: 900;
      color: var(--muted);
      margin: 0 0 16px;
    }

    .service-card {
      min-height: 218px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .service-card.featured {
      background: var(--ink);
      color: #fff;
      border-color: var(--ink);
    }

    .service-card.featured p,
    .service-card.featured .code {
      color: rgba(255,255,255,.72);
    }

    .machine {
      margin-top: 40px;
      display: grid;
      grid-template-columns: .95fr 1.1fr .95fr;
      gap: 16px;
      align-items: stretch;
    }

    .machine-list {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 24px;
      background: #fff;
    }

    .machine-list h3 {
      margin: 0 0 16px;
      letter-spacing: -0.04em;
    }

    .machine-list ul {
      padding: 0;
      margin: 0;
      list-style: none;
      color: var(--muted);
      display: grid;
      gap: 9px;
      font-size: 15px;
    }

    .machine-core {
      border-radius: var(--radius);
      background: var(--ink);
      color: #fff;
      padding: 24px;
      display: grid;
      align-content: center;
      gap: 12px;
    }

    .machine-step {
      display: flex;
      align-items: center;
      gap: 12px;
      font-weight: 800;
      letter-spacing: -0.02em;
    }

    .machine-step::before {
      content: "";
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: #fff;
      flex: 0 0 auto;
    }

    .clarity {
      text-align: center;
      padding: clamp(72px, 9vw, 116px) 0;
      background: var(--ink);
      color: #fff;
    }

    .clarity h2 {
      margin: 0 auto;
      max-width: 820px;
      font-size: clamp(38px, 5.4vw, 66px);
      line-height: .98;
      letter-spacing: -0.038em;
      font-weight: 950;
    }

    .clarity p {
      margin: 26px auto 0;
      max-width: 720px;
      color: rgba(255,255,255,.72);
      font-size: clamp(17px, 1.5vw, 20px);
      line-height: 1.46;
      letter-spacing: -0.016em;
    }

    .contact-panel {
      margin-top: 46px;
      display: grid;
      grid-template-columns: .86fr 1.14fr;
      gap: 18px;
      align-items: stretch;
    }

    .contact-box {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 28px;
      background: var(--panel);
    }

    .form {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
    }

    .form label {
      display: grid;
      gap: 7px;
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: .12em;
      font-weight: 900;
      color: var(--muted);
    }

    .form input,
    .form select,
    .form textarea {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 13px 14px;
      background: #fff;
      font: inherit;
      font-size: 15px;
      color: var(--ink);
    }

    .form textarea {
      min-height: 132px;
      resize: vertical;
    }

    .form .full {
      grid-column: 1 / -1;
    }

    .footer {
      padding: 44px 0;
      color: var(--muted);
      font-size: 14px;
    }

    .footer-inner {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 24px;
      align-items: start;
    }

    .footer-links {
      display: flex;
      flex-wrap: wrap;
      gap: 14px 22px;
      justify-content: end;
    }

    .footer a {
      border-bottom: 1px solid transparent;
    }

    .footer a:hover {
      border-bottom-color: currentColor;
    }

    .stack {
      display: grid;
      gap: 18px;
    }

    .actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 30px;
    }

    @media (max-width: 980px) {
      .hero-grid,
      .two-col,
      .contact-panel,
      .machine {
        grid-template-columns: 1fr;
      }

      .three-grid,
      .profile-grid,
      .help-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .service-grid,
      .process-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .visual-card {
        max-width: 460px;
      }

      .services-head {
        display: block;
      }
    }

    @media (max-width: 720px) {
      .container,
      .container-narrow {
        width: min(calc(100% - 28px), var(--max));
      }

      .header {
        top: 10px;
      }

      .header-inner {
        min-height: 58px;
        padding: 0 14px;
        border-radius: 28px;
      }

      .nav {
        display: none;
      }

      .header .btn {
        display: none;
      }

      .mobile-note {
        display: block;
      }

      .hero {
        padding-top: 104px;
      }

      .hero h1 {
        font-size: clamp(32px, 9.2vw, 44px);
        line-height: 1.04;
        letter-spacing: -0.032em;
      }

      .visual-card {
        justify-self: center;
        width: min(100%, 320px);
        min-height: 220px;
      }

      .section {
        padding: 68px 0;
      }

      .three-grid,
      .profile-grid,
      .help-grid,
      .service-grid,
      .process-grid {
        grid-template-columns: 1fr;
      }

      .diagnostic-row {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .diagnostic-row span {
        width: fit-content;
      }

      .problem-item {
        font-size: 19px;
      }

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

      .footer-inner {
        grid-template-columns: 1fr;
      }

      .footer-links {
        justify-content: start;
      }
    }

    .video-shell.reel-embed {
      border: 0;
      box-shadow: none;
      outline: 0;
      background: var(--paper);
      padding: 0;
    }

    .video-shell.reel-embed::before,
    .video-shell.reel-embed::after {
      display: none;
      content: none;
    }

    .video-shell.reel-embed iframe {
      background: var(--paper);
      transform: scale(1.002);
    }


    .reel-fullbleed {
      position: relative;
      width: 100%;
      min-height: clamp(420px, 68vh, 780px);
      overflow: hidden;
      background: var(--ink);
      display: flex;
      align-items: flex-end;
      margin: 0;
      isolation: isolate;
    }

    .reel-background {
      position: absolute;
      inset: 0;
      overflow: hidden;
      z-index: 0;
      background: var(--ink);
    }

    .reel-background iframe {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 100vw;
      height: 56.25vw;
      min-width: 177.78vh;
      min-height: 100vh;
      transform: translate(-50%, -50%) scale(1.015);
      border: 0;
      display: block;
      background: var(--ink);
      pointer-events: none;
    }

    .reel-overlay {
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.28) 40%, rgba(0,0,0,.58) 100%);
      pointer-events: none;
    }

    .reel-content {
      position: relative;
      z-index: 2;
      padding-top: clamp(120px, 18vh, 220px);
      padding-bottom: clamp(54px, 8vh, 96px);
      color: #fff;
    }

    .reel-content .section-kicker {
      color: rgba(255,255,255,.68);
    }

    .reel-content h2 {
      max-width: 760px;
      margin: 0;
      font-size: clamp(2.35rem, 5.3vw, 6.4rem);
      letter-spacing: -.065em;
      line-height: .92;
      font-weight: 800;
    }

    .reel-content p {
      max-width: 620px;
      margin: 22px 0 0;
      font-size: clamp(1.04rem, 1.7vw, 1.36rem);
      line-height: 1.45;
      color: rgba(255,255,255,.82);
    }

    .btn-light {
      margin-top: 28px;
      background: rgba(255,255,255,.92);
      color: var(--ink);
      border-color: rgba(255,255,255,.92);
    }

    .btn-light:hover {
      background: #fff;
      color: var(--ink);
    }

    @media (max-width: 760px) {
      .reel-fullbleed {
        min-height: 560px;
      }

      .reel-background iframe {
        width: 210vw;
        height: 118.125vw;
        min-width: 100%;
        min-height: 100%;
      }

      .reel-content {
        padding-bottom: 48px;
      }
    }


    .service-card .code {
      letter-spacing: .08em;
      font-size: 10px;
      color: var(--muted);
    }

    .service-card h3 {
      max-width: 12em;
    }

    .diagnostic-row span {
      text-align: center;
    }


    .compact-list {
      margin-top: 34px;
    }

    .compact-work-grid {
      grid-template-columns: repeat(4, 1fr);
    }

    .mini-steps {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 22px;
    }

    .mini-steps span {
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 8px 12px;
      font-size: 12px;
      color: var(--muted);
      background: rgba(255,255,255,.72);
    }

    @media (max-width: 760px) {
      .mobile-optional {
        display: none;
      }

      .mobile-compact {
        padding-top: 58px;
        padding-bottom: 58px;
      }

      .hero {
        min-height: auto;
        padding-top: 118px;
        padding-bottom: 68px;
      }

      .reel-fullbleed {
        min-height: 480px;
      }

      .section-title.medium {
        font-size: clamp(2.15rem, 13vw, 3.45rem);
      }

      .lead {
        font-size: 1.04rem;
        line-height: 1.5;
      }

      .service-grid,
      .profile-grid,
      .process-grid,
      .help-grid,
      .three-grid {
        gap: 12px;
      }

      .card {
        padding: 20px;
      }

      .service-card h3 {
        font-size: 1.18rem;
        max-width: none;
      }

      .service-card p {
        font-size: .94rem;
      }

      .compact-work-grid {
        grid-template-columns: 1fr 1fr;
      }

      .diagnostic-row {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .diagnostic-row span {
        justify-self: start;
        text-align: left;
      }

      .compact-starter .two-col {
        gap: 24px;
      }

      .contact-panel {
        gap: 16px;
      }
    }


    .reel-fullbleed {
      min-height: clamp(360px, 58vh, 680px);
    }

    @media (max-width: 760px) {
      .reel-fullbleed {
        min-height: 360px;
      }
    }

    .line-icon {
      width: 42px;
      height: 42px;
      color: var(--ink);
      margin-bottom: 22px;
    }

    .line-icon svg {
      width: 100%;
      height: 100%;
      fill: none;
      stroke: currentColor;
      stroke-width: 2.2;
      stroke-linecap: round;
      stroke-linejoin: round;
      display: block;
    }

    .icon-card h3 {
      margin-top: 0;
    }

    .icon-card .code + h3 {
      margin-top: 12px;
    }

    .icon-process-grid .line-icon {
      margin-bottom: 16px;
    }

    @media (max-width: 760px) {
      .line-icon {
        width: 36px;
        height: 36px;
        margin-bottom: 16px;
      }
    }


    .reel-modal {
      position: fixed;
      inset: 0;
      z-index: 9999;
      display: none;
      align-items: center;
      justify-content: center;
      padding: clamp(18px, 4vw, 54px);
    }

    .reel-modal.is-open {
      display: flex;
    }

    .reel-modal-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, .78);
      backdrop-filter: blur(8px);
    }

    .reel-modal-dialog {
      position: relative;
      z-index: 1;
      width: min(1180px, 94vw);
      background: #000;
      border-radius: 24px;
      overflow: hidden;
      box-shadow: 0 30px 90px rgba(0, 0, 0, .42);
    }

    .reel-modal-frame {
      position: relative;
      aspect-ratio: 16 / 9;
      width: 100%;
      background: #000;
    }

    .reel-modal-frame iframe {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
      display: block;
      background: #000;
    }

    .reel-modal-close {
      position: absolute;
      top: 14px;
      right: 14px;
      z-index: 2;
      width: 42px;
      height: 42px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.18);
      background: rgba(0,0,0,.52);
      color: #fff;
      font-size: 28px;
      line-height: 1;
      cursor: pointer;
    }

    .reel-modal-close:hover {
      background: rgba(0,0,0,.76);
    }

    body.reel-modal-open {
      overflow: hidden;
    }

    @media (max-width: 760px) {
      .reel-modal {
        padding: 14px;
      }

      .reel-modal-dialog {
        width: 100%;
        border-radius: 18px;
      }

      .reel-modal-close {
        top: 10px;
        right: 10px;
        width: 38px;
        height: 38px;
        font-size: 24px;
      }
    }


    button.card-cta {
      appearance: none;
      -webkit-appearance: none;
      border: 0;
      border-bottom: 1px solid currentColor;
      border-radius: 0;
      background: transparent;
      padding: 0 0 8px;
      margin: 0;
      box-shadow: none;
      outline: 0;
      color: inherit;
      cursor: pointer;
      font: inherit;
      font-weight: 800;
      text-align: left;
      width: 100%;
      display: block;
    }

    button.card-cta:focus {
      outline: none;
    }

    button.card-cta:focus-visible {
      outline: 2px solid rgba(0,0,0,.35);
      outline-offset: 5px;
      border-radius: 8px;
    }

    .featured button.card-cta {
      color: #fff;
    }

    .featured button.card-cta:focus-visible {
      outline-color: rgba(255,255,255,.65);
    }

    .service-modal,
    .reel-modal {
      position: fixed;
      inset: 0;
      display: none;
      align-items: center;
      justify-content: center;
      padding: clamp(14px, 4vw, 54px);
    }

    .service-modal {
      z-index: 9998;
    }

    .reel-modal {
      z-index: 9999;
    }

    .service-modal.is-open,
    .reel-modal.is-open {
      display: flex;
    }

    .service-modal-backdrop,
    .reel-modal-backdrop {
      position: absolute;
      inset: 0;
      backdrop-filter: blur(10px);
    }

    .service-modal-backdrop {
      background: rgba(10, 10, 10, .66);
    }

    .reel-modal-backdrop {
      background: rgba(0, 0, 0, .78);
    }

    .service-modal-dialog {
      position: relative;
      z-index: 1;
      width: min(1120px, 96vw);
      max-height: min(860px, 92vh);
      background: var(--paper);
      border: 1px solid rgba(0,0,0,.10);
      border-radius: 32px;
      box-shadow: 0 28px 90px rgba(0,0,0,.28);
      overflow: hidden;
    }

    .service-modal-scroll {
      max-height: min(860px, 92vh);
      overflow-y: auto;
      padding: clamp(28px, 5vw, 72px);
    }

    .service-modal-close,
    .reel-modal-close {
      position: absolute;
      top: 18px;
      right: 18px;
      z-index: 2;
      width: 42px;
      height: 42px;
      border-radius: 999px;
      font-size: 28px;
      line-height: 1;
      cursor: pointer;
    }

    .service-modal-close {
      border: 1px solid var(--line);
      background: rgba(255,255,255,.88);
      color: var(--ink);
    }

    .reel-modal-close {
      border: 1px solid rgba(255,255,255,.18);
      background: rgba(0,0,0,.52);
      color: #fff;
    }

    .service-modal-header {
      max-width: 760px;
      margin-bottom: clamp(34px, 5vw, 64px);
    }

    .service-modal-label {
      display: block;
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--muted);
      font-weight: 800;
      margin-bottom: 18px;
    }

    .service-modal-header h2 {
      margin: 0;
      font-size: clamp(2.3rem, 5.4vw, 5.8rem);
      letter-spacing: -.065em;
      line-height: .94;
    }

    .service-modal-header p {
      margin: 24px 0 0;
      font-size: clamp(1.08rem, 1.8vw, 1.42rem);
      line-height: 1.48;
      color: var(--muted);
    }

    .service-modal-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
    }

    .service-modal-section {
      border: 1px solid var(--line);
      border-radius: 24px;
      padding: clamp(20px, 3vw, 32px);
      background: rgba(255,255,255,.58);
    }

    .service-modal-section h3 {
      margin: 0 0 14px;
      font-size: 1.1rem;
      letter-spacing: -.025em;
    }

    .service-modal-section p {
      margin: 0;
      color: var(--muted);
      line-height: 1.55;
      font-size: .98rem;
    }

    .service-modal-footer {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: clamp(30px, 5vw, 56px);
      padding-top: 24px;
      border-top: 1px solid var(--line);
    }

    .reel-modal-dialog {
      position: relative;
      z-index: 1;
      width: min(1180px, 94vw);
      background: #000;
      border-radius: 24px;
      overflow: hidden;
      box-shadow: 0 30px 90px rgba(0, 0, 0, .42);
    }

    .reel-modal-frame {
      position: relative;
      aspect-ratio: 16 / 9;
      width: 100%;
      background: #000;
    }

    .reel-modal-frame iframe {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
      display: block;
      background: #000;
    }

    body.service-modal-open,
    body.reel-modal-open {
      overflow: hidden;
    }

    @media (max-width: 760px) {
      .service-modal,
      .reel-modal {
        padding: 12px;
      }

      .service-modal-dialog,
      .reel-modal-dialog {
        width: 100%;
        max-height: 94vh;
        border-radius: 24px;
      }

      .service-modal-scroll {
        max-height: 94vh;
        padding: 30px 22px 24px;
      }

      .service-modal-close,
      .reel-modal-close {
        top: 12px;
        right: 12px;
        width: 38px;
        height: 38px;
        font-size: 24px;
      }

      .service-modal-grid {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .service-modal-section {
        border-radius: 18px;
        padding: 20px;
      }

      .service-modal-footer {
        position: sticky;
        bottom: -24px;
        background: linear-gradient(180deg, rgba(250,248,244,0), var(--paper) 28%);
        padding-top: 34px;
        padding-bottom: 4px;
      }

      .service-modal-footer .btn {
        width: 100%;
        justify-content: center;
      }
    }


    .service-modal-dialog {
      background: #faf8f4;
    }

    .service-modal-section {
      background: #fff;
    }

    .service-modal-footer {
      background: #faf8f4;
    }

    @media (max-width: 760px) {
      .service-modal-footer {
        background: linear-gradient(180deg, rgba(250,248,244,0), #faf8f4 28%);
      }
    }


    @media (max-width: 760px) {
      .service-modal {
        align-items: center;
        padding: 12px;
        height: 100dvh;
        box-sizing: border-box;
      }

      .service-modal-dialog {
        width: 100%;
        height: calc(100dvh - 24px);
        max-height: calc(100dvh - 24px);
        border-radius: 24px;
        display: flex;
        flex-direction: column;
      }

      .service-modal-scroll {
        height: 100%;
        max-height: none;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        box-sizing: border-box;
        padding: 34px 22px 34px;
      }

      .service-modal-grid {
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .service-modal-section {
        border-radius: 18px;
        padding: 22px 20px;
      }

      .service-modal-footer {
        position: static;
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin-top: 30px;
        padding-top: 24px;
        padding-bottom: 8px;
        background: transparent;
      }

      .service-modal-footer .btn {
        width: 100%;
        justify-content: center;
      }

      .service-modal-close {
        top: 14px;
        right: 14px;
      }
    }


    /* v0.6.17 · enriched service modal fichas */
    .service-modal-dialog {
      background: #faf8f4;
      width: min(1120px, 96vw);
    }

    .service-modal-scroll {
      padding: clamp(30px, 5vw, 64px);
    }

    .service-modal-header {
      max-width: 860px;
      margin-bottom: clamp(26px, 4vw, 42px);
    }

    .service-modal-header h2 {
      max-width: 900px;
    }

    .service-modal-minicards {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
      margin-bottom: clamp(24px, 4vw, 42px);
    }

    .service-modal-mini-card {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 22px;
      padding: 18px 18px 16px;
      min-height: 112px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .service-modal-mini-icon {
      width: 34px;
      height: 34px;
      color: var(--ink);
      margin-bottom: 18px;
    }

    .service-modal-mini-icon svg {
      width: 100%;
      height: 100%;
      fill: none;
      stroke: currentColor;
      stroke-width: 2.15;
      stroke-linecap: round;
      stroke-linejoin: round;
      display: block;
    }

    .service-modal-mini-card span:last-child {
      font-size: .98rem;
      line-height: 1.08;
      font-weight: 800;
      letter-spacing: -.02em;
    }

    .service-modal-content-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
      gap: 18px;
      align-items: start;
    }

    .service-modal-visible {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
    }

    .service-modal-visible-card,
    .service-modal-chipbox,
    .service-modal-accordion {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 24px;
    }

    .service-modal-visible-card {
      padding: clamp(22px, 3vw, 32px);
      min-height: 220px;
    }

    .service-modal-visible-card h3,
    .service-modal-chipbox h3 {
      margin: 0 0 14px;
      font-size: 1.08rem;
      letter-spacing: -.025em;
    }

    .service-modal-visible-card p,
    .service-modal-accordion p {
      margin: 0;
      color: var(--muted);
      line-height: 1.58;
      font-size: .99rem;
    }

    .service-modal-aside {
      display: grid;
      gap: 18px;
    }

    .service-modal-chipbox {
      padding: clamp(22px, 3vw, 30px);
      min-height: 220px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .service-modal-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .service-modal-chip {
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 8px 11px;
      font-size: .78rem;
      line-height: 1;
      color: var(--ink);
      background: #faf8f4;
      white-space: nowrap;
    }

    .service-modal-accordion {
      overflow: hidden;
    }

    .service-modal-accordion summary {
      cursor: pointer;
      list-style: none;
      padding: 20px 24px;
      font-weight: 800;
      border-bottom: 1px solid transparent;
    }

    .service-modal-accordion summary::-webkit-details-marker {
      display: none;
    }

    .service-modal-accordion summary::after {
      content: "+";
      float: right;
      font-weight: 800;
    }

    .service-modal-accordion[open] summary {
      border-bottom-color: var(--line);
    }

    .service-modal-accordion[open] summary::after {
      content: "–";
    }

    .service-modal-accordion p {
      padding: 20px 24px 24px;
    }

    .service-modal-footer {
      background: #faf8f4;
    }

    @media (max-width: 900px) {
      .service-modal-minicards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .service-modal-content-grid,
      .service-modal-visible {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 760px) {
      .service-modal {
        align-items: center;
        padding: 12px;
        height: 100dvh;
        box-sizing: border-box;
      }

      .service-modal-dialog {
        width: 100%;
        height: calc(100dvh - 24px);
        max-height: calc(100dvh - 24px);
        border-radius: 24px;
        display: flex;
        flex-direction: column;
      }

      .service-modal-scroll {
        height: 100%;
        max-height: none;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        box-sizing: border-box;
        padding: 34px 22px 34px;
      }

      .service-modal-header {
        margin-bottom: 26px;
      }

      .service-modal-header h2 {
        font-size: clamp(2.35rem, 12vw, 4rem);
        line-height: .94;
      }

      .service-modal-header p {
        font-size: 1.08rem;
        line-height: 1.48;
      }

      .service-modal-minicards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        margin-bottom: 24px;
      }

      .service-modal-mini-card {
        min-height: 104px;
        border-radius: 18px;
        padding: 16px;
      }

      .service-modal-mini-icon {
        width: 30px;
        height: 30px;
        margin-bottom: 16px;
      }

      .service-modal-visible-card,
      .service-modal-chipbox,
      .service-modal-accordion {
        border-radius: 18px;
      }

      .service-modal-visible-card {
        min-height: auto;
        padding: 22px 20px;
      }

      .service-modal-chip {
        font-size: .74rem;
        padding: 7px 10px;
      }

      .service-modal-chipbox {
        min-height: auto;
      }

      .service-modal-footer {
        position: static;
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin-top: 30px;
        padding-top: 24px;
        padding-bottom: 8px;
        background: transparent;
      }

      .service-modal-footer .btn {
        width: 100%;
        justify-content: center;
      }
    }


    /* v0.6.19 · mobile landscape notice */
    .orientation-lock {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 99999;
      background: #11100e;
      color: #faf8f4;
      align-items: center;
      justify-content: center;
      padding: 28px;
      box-sizing: border-box;
      text-align: center;
    }

    .orientation-lock-card {
      width: min(360px, 90vw);
      border: 1px solid rgba(250, 248, 244, .22);
      border-radius: 28px;
      padding: 30px 28px 28px;
      background: rgba(250, 248, 244, .045);
    }

    .orientation-lock-icon {
      width: 58px;
      height: 58px;
      margin: 0 auto 18px;
    }

    .orientation-lock-icon svg {
      width: 100%;
      height: 100%;
      fill: none;
      stroke: currentColor;
      stroke-width: 2.4;
      stroke-linecap: round;
      stroke-linejoin: round;
      opacity: .92;
    }

    .orientation-lock p {
      margin: 0;
      font-size: 1rem;
      line-height: 1.45;
      letter-spacing: -.01em;
    }

    @media (hover: none) and (pointer: coarse) and (orientation: landscape) and (max-height: 560px) {
      .orientation-lock {
        display: flex;
      }

      body {
        overflow: hidden;
      }
    }


    /* v0.6.26 · recorrido button spacing */
    #trabajos .button-row {
      margin-top: clamp(34px, 4vw, 52px);
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }


    /* v0.6.31 · simplified contact */
    .contact-simple {
      margin-top: clamp(34px, 5vw, 64px);
      display: grid;
      grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr);
      gap: 18px;
      align-items: stretch;
    }

    .contact-note,
    .contact-link-card {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 26px;
      padding: clamp(24px, 3vw, 34px);
    }

    .contact-note h3 {
      margin: 0 0 14px;
      font-size: 1.15rem;
      letter-spacing: -.025em;
    }

    .contact-note p {
      margin: 0;
      color: var(--muted);
      line-height: 1.58;
      max-width: 42rem;
    }

    .contact-links {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
    }

    .contact-link-card {
      color: inherit;
      text-decoration: none;
      min-height: 150px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      transition: transform .18s ease, border-color .18s ease;
    }

    .contact-link-card:hover {
      transform: translateY(-2px);
      border-color: var(--ink);
    }

    .contact-link-card span {
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing: .14em;
      font-size: .72rem;
      font-weight: 800;
    }

    .contact-link-card strong {
      font-size: clamp(1.1rem, 2vw, 1.45rem);
      line-height: 1.1;
      letter-spacing: -.035em;
    }

    @media (max-width: 820px) {
      .contact-simple,
      .contact-links {
        grid-template-columns: 1fr;
      }

      .contact-link-card {
        min-height: 120px;
      }
    }


    /* v0.6.32 · compact black footer */
    .footer {
      background: var(--ink);
      color: rgba(250, 248, 244, .72);
      padding: 18px 0;
      font-size: 13px;
      border-top: 1px solid rgba(250, 248, 244, .08);
    }

    .footer-line {
      display: flex;
      align-items: center;
      gap: 0;
      white-space: nowrap;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }

    .footer-line::-webkit-scrollbar {
      display: none;
    }

    .footer-line > * {
      display: inline-flex;
      align-items: center;
      flex: 0 0 auto;
    }

    .footer-line > * + *::before {
      content: "·";
      margin: 0 10px;
      color: rgba(250, 248, 244, .32);
    }

    .footer-brand {
      color: #faf8f4;
      font-weight: 800;
      letter-spacing: -.01em;
    }

    .footer a {
      color: rgba(250, 248, 244, .78);
      text-decoration: none;
      border-bottom: 1px solid transparent;
    }

    .footer a:hover {
      color: #faf8f4;
      border-bottom-color: currentColor;
    }

    @media (max-width: 720px) {
      .footer {
        padding: 16px 0;
      }

      .footer-line {
        width: min(calc(100% - 28px), var(--max));
      }
    }


    /* v0.6.33 · three-zone black footer */
    .footer {
      background: var(--ink);
      color: rgba(250, 248, 244, .72);
      padding: 16px 0;
      font-size: 13px;
      border-top: 1px solid rgba(250, 248, 244, .08);
    }

    .footer-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
      align-items: center;
      gap: 18px;
      min-height: 34px;
    }

    .footer-left,
    .footer-center,
    .footer-right {
      display: flex;
      align-items: center;
      white-space: nowrap;
      min-width: 0;
    }

    .footer-left {
      justify-content: flex-start;
      gap: 10px;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .footer-left .footer-brand::after {
      content: "·";
      margin-left: 10px;
      color: rgba(250, 248, 244, .32);
      font-weight: 400;
    }

    .footer-center {
      justify-content: center;
      color: rgba(250, 248, 244, .62);
      text-align: center;
    }

    .footer-right {
      justify-content: flex-end;
      gap: 12px;
    }

    .footer-brand {
      color: #faf8f4;
      font-weight: 800;
      letter-spacing: -.01em;
      flex: 0 0 auto;
    }

    .footer-icon-link {
      width: 28px;
      height: 28px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: rgba(250, 248, 244, .82);
      border: 1px solid rgba(250, 248, 244, .16);
      border-radius: 999px;
      text-decoration: none;
      transition: border-color .18s ease, color .18s ease, background .18s ease;
    }

    .footer-icon-link:hover {
      color: #faf8f4;
      border-color: rgba(250, 248, 244, .44);
      background: rgba(250, 248, 244, .06);
    }

    .footer-icon-link svg {
      width: 17px;
      height: 17px;
      fill: none;
      stroke: currentColor;
      stroke-width: 2.15;
      stroke-linecap: round;
      stroke-linejoin: round;
      display: block;
    }

    .footer-divider {
      width: 1px;
      height: 18px;
      background: rgba(250, 248, 244, .18);
      margin: 0 2px;
    }

    .footer-legal {
      color: rgba(250, 248, 244, .58);
      text-decoration: none;
      border-bottom: 1px solid transparent;
      font-size: 12px;
    }

    .footer-legal:hover {
      color: #faf8f4;
      border-bottom-color: currentColor;
    }

    @media (max-width: 820px) {
      .footer {
        padding: 14px 0;
      }

      .footer-grid {
        grid-template-columns: auto auto auto;
        gap: 16px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
      }

      .footer-grid::-webkit-scrollbar {
        display: none;
      }

      .footer-left,
      .footer-center,
      .footer-right {
        flex: 0 0 auto;
      }
    }


    
    /* v0.6.36 · short full-width map band */
    .map-section {
      padding: 0;
      margin-top: 0;
    }

    .map-band {
      position: relative;
      width: 100vw;
      left: 50%;
      margin-left: -50vw;
      height: clamp(140px, 17vw, 210px);
      background-color: #d9dfe3;
      background-image: url("../img/lzk-map-band.jpg");
      background-size: cover;
      background-repeat: no-repeat;
      background-position: center 22%;
      overflow: hidden;
    }

    .map-band::before {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(248, 248, 246, 0.50);
      pointer-events: none;
    }

    .map-band::after {
      content: "";
      position: absolute;
      inset: 0;
      border-top: 1px solid rgba(var(--ink-rgb),0.06);
      border-bottom: 1px solid rgba(var(--ink-rgb),0.06);
      pointer-events: none;
    }

    @media (max-width: 760px) {
      .map-section {
        margin-top: 0;
      }

      .map-band {
        height: clamp(120px, 24vw, 160px);
        background-position: center 18%;
      }
    }


    /* v0.6.37 · richer service modal optional blocks */
    .service-modal-rich {
      display: grid;
      grid-template-columns: 1fr;
      gap: 18px;
      margin-top: 18px;
    }

    .service-modal-rich[hidden] {
      display: none;
    }

    .service-modal-rich-card {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 24px;
      padding: clamp(22px, 3vw, 30px);
    }

    .service-modal-rich-card h3,
    .service-modal-detail-group h4 {
      margin: 0 0 16px;
      font-size: 1.08rem;
      letter-spacing: -.025em;
    }

    .service-modal-rich-list ul,
    .service-modal-detail-group ul {
      margin: 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 9px;
    }

    .service-modal-rich-list li,
    .service-modal-detail-group li {
      position: relative;
      padding-left: 18px;
      color: var(--muted);
      line-height: 1.48;
      font-size: .96rem;
    }

    .service-modal-rich-list li::before,
    .service-modal-detail-group li::before {
      content: "";
      position: absolute;
      left: 0;
      top: .68em;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--ink);
      opacity: .5;
    }

    .service-modal-process-steps {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 12px;
    }

    .service-modal-process-step {
      min-width: 0;
      border: 1px solid var(--line);
      border-radius: 18px;
      padding: 16px 14px;
      background: #faf8f4;
    }

    .service-modal-process-step span {
      display: inline-flex;
      width: 26px;
      height: 26px;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      background: var(--ink);
      color: #fff;
      font-size: .72rem;
      font-weight: 800;
      margin-bottom: 14px;
    }

    .service-modal-process-step strong {
      display: block;
      font-size: .9rem;
      line-height: 1.12;
      margin-bottom: 7px;
      letter-spacing: -.02em;
    }

    .service-modal-process-step p {
      margin: 0;
      color: var(--muted);
      font-size: .82rem;
      line-height: 1.35;
    }

    .service-modal-detail-group + .service-modal-detail-group {
      margin-top: 22px;
      padding-top: 20px;
      border-top: 1px solid var(--line);
    }

    .service-modal-accordion p {
      padding: 20px 24px 24px;
    }

    #service-modal-detail {
      padding: 20px 24px 24px;
    }

    #service-modal-detail p {
      padding: 0;
      margin: 0;
    }

    @media (max-width: 980px) {
      .service-modal-process-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 760px) {
      .service-modal-rich-card {
        border-radius: 18px;
        padding: 22px 20px;
      }

      .service-modal-process-steps {
        grid-template-columns: 1fr;
      }

      .service-modal-process-step {
        display: grid;
        grid-template-columns: 34px 1fr;
        column-gap: 12px;
        align-items: start;
      }

      .service-modal-process-step span {
        grid-row: span 2;
        margin: 0;
      }
    }


    /* v0.6.38 · full-width service accordion on desktop */
    .service-modal-accordion-wide {
      margin-top: 18px;
    }

    .service-modal-accordion-wide[open] {
      background: #fff;
    }

    #service-modal-detail {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 22px;
      padding: 24px;
    }

    #service-modal-detail > p {
      grid-column: 1 / -1;
    }

    .service-modal-detail-group + .service-modal-detail-group {
      margin-top: 0;
      padding-top: 0;
      border-top: 0;
    }

    .service-modal-detail-group {
      min-width: 0;
    }

    .service-modal-detail-group h4 {
      margin-bottom: 14px;
    }

    @media (max-width: 900px) {
      #service-modal-detail {
        grid-template-columns: 1fr;
      }

      .service-modal-detail-group + .service-modal-detail-group {
        padding-top: 20px;
        border-top: 1px solid var(--line);
      }
    }


    /* v0.6.39 · enriched service consistency */
    .service-modal-rich-card h3 {
      max-width: 48rem;
    }

    .service-modal-rich-list {
      min-height: 0;
    }

    .service-modal-process {
      overflow: hidden;
    }


    /* v0.6.41 · service modal three-card alignment fix */
    @media (min-width: 901px) {
      .service-modal-content-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: stretch;
      }

      .service-modal-visible {
        display: contents;
      }

      .service-modal-aside {
        display: contents;
      }

      .service-modal-visible-card,
      .service-modal-chipbox {
        min-height: 240px;
        height: 100%;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
      }

      .service-modal-chipbox {
        align-self: stretch;
      }

      .service-modal-chips {
        margin-top: 4px;
        align-content: flex-start;
      }
    }


    /* v0.6.43 · 72h Express protocol modal */
    .service-modal[data-variant="protocol"] .service-modal-minicards {
      margin-bottom: 18px;
    }

    .service-modal[data-variant="protocol"] .service-modal-mini-card {
      background: var(--ink);
      color: #faf8f4;
      border-color: rgba(var(--ink-rgb),.78);
    }

    .service-modal[data-variant="protocol"] .service-modal-mini-icon {
      color: #faf8f4;
      opacity: .9;
    }

    .service-modal[data-variant="protocol"] .service-modal-chipbox {
      background: #fff;
    }

    .service-modal[data-variant="protocol"] .service-modal-chip {
      background: #faf8f4;
    }

    .service-modal-protocol {
      background: var(--ink);
      color: #faf8f4;
      border-color: var(--ink);
    }

    .service-modal-protocol h3,
    .service-modal-notice h3 {
      margin: 0 0 18px;
      font-size: 1.08rem;
      letter-spacing: -.025em;
    }

    .service-modal-protocol-steps {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 10px;
    }

    .service-modal-protocol-step {
      min-width: 0;
      border: 1px solid rgba(250,248,244,.16);
      border-radius: 18px;
      padding: 16px 14px;
      background: rgba(250,248,244,.055);
    }

    .service-modal-protocol-step span {
      display: inline-flex;
      width: 26px;
      height: 26px;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      background: #faf8f4;
      color: var(--ink);
      font-size: .72rem;
      font-weight: 800;
      margin-bottom: 14px;
    }

    .service-modal-protocol-step strong {
      display: block;
      font-size: .9rem;
      line-height: 1.12;
      margin-bottom: 7px;
      letter-spacing: -.02em;
      color: #faf8f4;
    }

    .service-modal-protocol-step p {
      margin: 0;
      color: rgba(250,248,244,.64);
      font-size: .82rem;
      line-height: 1.35;
    }

    .service-modal-notice {
      display: grid;
      grid-template-columns: minmax(220px, .7fr) minmax(0, 1fr);
      gap: 18px;
      align-items: start;
      background: #fff;
    }

    .service-modal-notice p {
      margin: 0;
      color: var(--muted);
      line-height: 1.55;
    }

    @media (max-width: 980px) {
      .service-modal-protocol-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .service-modal-notice {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 760px) {
      .service-modal[data-variant="protocol"] .service-modal-mini-card {
        min-height: 96px;
      }

      .service-modal-protocol-steps {
        grid-template-columns: 1fr;
      }

      .service-modal-protocol-step {
        display: grid;
        grid-template-columns: 34px 1fr;
        column-gap: 12px;
        align-items: start;
      }

      .service-modal-protocol-step span {
        grid-row: span 2;
        margin: 0;
      }
    }


    /* v0.6.44 · Pack Agencia collaboration modal */
    .service-modal[data-variant="agency"] .service-modal-mini-card {
      background: #fff;
    }

    .service-modal[data-variant="agency"] .service-modal-chip {
      background: #f5f2ec;
    }

    .service-modal-modes {
      background: var(--ink);
      color: #faf8f4;
      border-color: var(--ink);
    }

    .service-modal-modes h3 {
      margin: 0 0 18px;
      font-size: 1.08rem;
      letter-spacing: -.025em;
      color: #faf8f4;
    }

    .service-modal-mode-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
    }

    .service-modal-mode-card {
      border: 1px solid rgba(250, 248, 244, .16);
      border-radius: 18px;
      padding: 18px 16px;
      background: rgba(250, 248, 244, .055);
      min-width: 0;
    }

    .service-modal-mode-card strong {
      display: block;
      color: #faf8f4;
      font-size: .96rem;
      line-height: 1.1;
      letter-spacing: -.02em;
      margin-bottom: 10px;
    }

    .service-modal-mode-card p {
      margin: 0;
      color: rgba(250, 248, 244, .66);
      font-size: .88rem;
      line-height: 1.42;
    }

    @media (max-width: 900px) {
      .service-modal-mode-grid {
        grid-template-columns: 1fr;
      }
    }


    /* v1.0 · S.T.A.R.T. / Launch Kit journey pair */
    .service-modal[data-variant="journey-start"] .service-modal-mini-card,
    .service-modal[data-variant="journey-launch"] .service-modal-mini-card {
      background: #fff;
    }

    .service-modal[data-variant="journey-start"] .service-modal-chip,
    .service-modal[data-variant="journey-launch"] .service-modal-chip {
      background: #f5f2ec;
    }

    .service-modal-journey {
      background: var(--ink);
      color: #faf8f4;
      border-color: var(--ink);
    }

    .service-modal-journey h3,
    .service-modal-package h3 {
      margin: 0 0 18px;
      font-size: 1.08rem;
      letter-spacing: -.025em;
    }

    .journey-track {
      display: grid;
      grid-template-columns: minmax(82px, .48fr) minmax(160px, 1fr) minmax(82px, .48fr) minmax(160px, 1fr) minmax(82px, .48fr);
      align-items: stretch;
      gap: 10px;
    }

    .journey-node,
    .journey-segment {
      border-radius: 18px;
      border: 1px solid rgba(250, 248, 244, .16);
      background: rgba(250, 248, 244, .055);
      padding: 16px 14px;
      min-width: 0;
    }

    .journey-node span {
      display: inline-flex;
      width: 32px;
      height: 32px;
      border-radius: 50%;
      align-items: center;
      justify-content: center;
      background: rgba(250, 248, 244, .12);
      color: #faf8f4;
      font-size: .76rem;
      font-weight: 800;
      margin-bottom: 12px;
    }

    .journey-node strong,
    .journey-segment span {
      display: block;
      color: #faf8f4;
      font-size: .92rem;
      line-height: 1.15;
      letter-spacing: -.02em;
    }

    .journey-segment em {
      display: block;
      margin-top: 8px;
      color: rgba(250, 248, 244, .62);
      font-style: normal;
      font-size: .82rem;
      line-height: 1.32;
    }

    .service-modal-journey[data-active="start"] .journey-segment-start,
    .service-modal-journey[data-active="launch"] .journey-segment-launch {
      background: #faf8f4;
      color: var(--ink);
      border-color: #faf8f4;
    }

    .service-modal-journey[data-active="start"] .journey-segment-start span,
    .service-modal-journey[data-active="launch"] .journey-segment-launch span {
      color: var(--ink);
    }

    .service-modal-journey[data-active="start"] .journey-segment-start em,
    .service-modal-journey[data-active="launch"] .journey-segment-launch em {
      color: rgba(var(--ink-rgb), .62);
    }

    .service-modal-package-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 12px;
    }

    .service-modal-package-item {
      border: 1px solid var(--line);
      border-radius: 18px;
      padding: 18px 16px;
      background: #faf8f4;
      min-width: 0;
    }

    .service-modal-package-item strong {
      display: block;
      font-size: .94rem;
      line-height: 1.1;
      letter-spacing: -.02em;
      margin-bottom: 10px;
    }

    .service-modal-package-item p {
      margin: 0;
      color: var(--muted);
      font-size: .86rem;
      line-height: 1.42;
    }

    @media (max-width: 980px) {
      .journey-track {
        grid-template-columns: 1fr;
      }

      .service-modal-package-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 760px) {
      .service-modal-package-grid {
        grid-template-columns: 1fr;
      }

      .journey-node,
      .journey-segment {
        padding: 15px 14px;
      }
    }


    /* v1.0 · accessibility and cleanup overrides */
    .service-modal-close:focus-visible,
    .reel-modal-close:focus-visible,
    .footer-icon-link:focus-visible,
    .btn:focus-visible,
    a:focus-visible,
    button:focus-visible {
      outline: 2px solid var(--ink);
      outline-offset: 3px;
      box-shadow: 0 0 0 5px rgba(var(--ink-rgb),.08);
    }

    .footer .footer-icon-link:focus-visible,
    .footer .footer-legal:focus-visible {
      outline-color: #faf8f4;
      box-shadow: 0 0 0 5px rgba(250,248,244,.12);
    }

    .service-modal-close,
    .reel-modal-close {
      -webkit-tap-highlight-color: transparent;
    }

    .mobile-note {
      text-wrap: balance;
    }

    @media (min-width: 901px) {
      .service-modal-content-grid {
        align-items: stretch;
      }

      .service-modal-visible-card,
      .service-modal-chipbox {
        align-self: stretch;
      }
    }


    .footer-icon-link svg.footer-icon-solid {
      width: 18px;
      height: 18px;
      fill: currentColor;
      stroke: none;
    }

/* v1.21 · header optical alignment + mobile simplification */
.header-inner {
  align-items: center;
}

.header .brand,
.header .nav a,
.header .lang-switch,
.header .lang-switch button,
.header .header-cta {
  line-height: 1;
}

@media (min-width: 761px) {
  .header .brand,
  .header .nav,
  .header .lang-switch,
  .header .header-cta {
    display: inline-flex;
    align-items: center;
  }

  .header .nav,
  .header .lang-switch {
    transform: translateY(1px);
  }

  .header .header-cta {
    transform: translateY(0);
  }
}

@media (max-width: 760px) {
  .header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .header .brand {
    display: inline-flex;
    align-items: center;
    margin-right: 0;
  }

  .header .nav,
  .header .header-cta,
  .header .mobile-note {
    display: none !important;
  }

  .header .lang-switch {
    display: inline-flex;
    align-items: center;
    margin-left: auto;
    transform: none;
    font-size: 12px;
  }

  .hero h1 {
    font-size: clamp(2.25rem, 13.5vw, 3.55rem);
    line-height: .98;
    letter-spacing: -0.04em;
  }
}


/* v1.26 · mobile footer simplification */
.footer-place-mobile {
  display: none;
}

@media (max-width: 760px) {
  .footer {
    padding: 20px 0;
  }

  .footer-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
  }

  .footer-left {
    justify-self: start;
    min-width: 0;
  }

  .footer-center {
    justify-self: center;
    text-align: center;
    min-width: 0;
    white-space: nowrap;
  }

  .footer-right {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
  }

  .footer-left > span:not(.footer-brand),
  .footer-place-desktop,
  .footer-legal {
    display: none !important;
  }

  .footer-place-mobile {
    display: inline;
  }

  .footer-brand,
  .footer-place-mobile {
    font-size: 11px;
    line-height: 1;
    letter-spacing: .04em;
    font-weight: 800;
  }

  .footer-icon-link {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
  }

  .footer-icon-link svg,
  .footer-icon-link img {
    width: 15px;
    height: 15px;
  }
}


/* v1.27 · remove mobile footer residual divider */
@media (max-width: 760px) {
  .footer-right::before,
  .footer-right::after,
  .footer-icon-link::before,
  .footer-icon-link::after,
  .footer-legal::before,
  .footer-legal::after {
    content: none !important;
    display: none !important;
  }

  .footer-right,
  .footer-icon-link,
  .footer-legal {
    border-left: 0 !important;
    border-right: 0 !important;
  }

  .footer-right > *:not(.footer-icon-link) {
    display: none !important;
  }
}


/* v1.32 · mobile section editorial spacing */
@media (max-width: 760px) {
  :root {
    --mobile-section-kicker-gap: 30px;
    --mobile-section-body-gap: 30px;
    --mobile-section-actions-gap: 30px;
  }

  .section-eyebrow,
  .section-kicker,
  .eyebrow,
  .kicker {
    margin-bottom: var(--mobile-section-kicker-gap);
  }

  .section-title,
  .section-title.medium,
  .section-title.large,
  .split-title,
  .oficio-title-split {
    margin-bottom: var(--mobile-section-body-gap);
  }

  .section-lead,
  .section-copy,
  .recorrido-copy,
  .studio-copy,
  .contact-copy,
  .section-text,
  .section-intro {
    margin-top: 0;
  }

  .section-lead + .section-actions,
  .section-copy + .section-actions,
  .recorrido-copy + .section-actions,
  .studio-copy + .section-actions,
  .contact-copy + .section-actions,
  .section-text + .section-actions,
  .section-intro + .section-actions {
    margin-top: var(--mobile-section-actions-gap);
  }

  #recorrido .section-title,
  #trabajos .section-title,
  .recorrido .section-title,
  .work-section .section-title {
    margin-bottom: var(--mobile-section-body-gap) !important;
  }

  #recorrido .section-lead,
  #recorrido .section-copy,
  #recorrido p,
  #trabajos .section-lead,
  #trabajos .section-copy,
  #trabajos p {
    margin-top: 0;
  }
}


/* v1.33 · recover Clarity over noise on mobile */
@media (max-width: 760px) {
  .clarity,
  .clarity.mobile-optional,
  .clarity-section,
  .clarity-section.mobile-optional {
    display: block !important;
  }
}


/* v1.36 · refined hero logo visual */
.hero .visual-card img[src$="gg-pro-ex-snow.svg"],
.hero-visual-image {
  display: block;
  width: min(100%, 84%);
  height: auto;
  max-width: 440px;
  max-height: min(60vh, 440px);
  object-fit: contain;
  object-position: center center;
  margin-inline: auto;
  transform-origin: center center;
  user-select: none;
  pointer-events: none;
}




/* v1.36 · hero logo fine-tuning */
.hero .visual-card {
  isolation: isolate;
}

@media (max-width: 860px) {
  .hero-visual-image {
    width: min(100%, 88%);
    max-width: 300px;
    max-height: 300px;
  }
}

/* v1.38 · global section rhythm
   One editorial spacing rule for the whole page.
   Avoid section-by-section spacing fixes. */
:root {
  --section-kicker-title-gap: clamp(18px, 2vw, 28px);
  --section-title-body-gap: clamp(24px, 2.8vw, 38px);
  --section-body-paragraph-gap: clamp(18px, 2vw, 28px);
  --section-body-actions-gap: clamp(30px, 3.2vw, 46px);
  --section-head-grid-gap: clamp(24px, 3vw, 42px);
}

/* Kicker → title */
.section-kicker,
.section-eyebrow,
.eyebrow,
.kicker {
  margin-bottom: var(--section-kicker-title-gap);
}

/* Title → body */
.section-title,
.section-title.medium,
.section-title.large,
.split-title,
.oficio-title-split,
.section h2 {
  margin-top: 0;
  margin-bottom: var(--section-title-body-gap);
}

/* Section text blocks */
.section-lead,
.section-copy,
.section-text,
.section-intro,
.recorrido-copy,
.studio-copy,
.contact-copy {
  margin-top: 0;
}

/* Paragraph rhythm inside ordinary section bodies */
.section-copy p + p,
.section-text p + p,
.section-intro p + p,
.recorrido-copy p + p,
.studio-copy p + p,
.contact-copy p + p,
.section > .container > p + p,
.section > .container-narrow > p + p {
  margin-top: var(--section-body-paragraph-gap);
}

/* Body → actions */
.section-lead + .section-actions,
.section-copy + .section-actions,
.section-text + .section-actions,
.section-intro + .section-actions,
.recorrido-copy + .section-actions,
.studio-copy + .section-actions,
.contact-copy + .section-actions,
.section p + .section-actions {
  margin-top: var(--section-body-actions-gap);
}

/* Grid section headers */
.services-head,
.section-head,
.split-head {
  gap: var(--section-head-grid-gap);
}

/* Desktop + mobile: Recorrido and similar text-led sections should obey the same rhythm */
#recorrido .section-title,
#trabajos .section-title,
#oficio .section-title,
#contacto .section-title {
  margin-bottom: var(--section-title-body-gap) !important;
}

@media (max-width: 760px) {
  :root {
    --section-kicker-title-gap: 28px;
    --section-title-body-gap: 32px;
    --section-body-paragraph-gap: 24px;
    --section-body-actions-gap: 32px;
  }
}

/* v1.39-commercial-clarity
   Small commercial clarity layer: proof strip + service entry hierarchy.
   ------------------------------------------------------------ */
.proof-strip {
  padding: clamp(18px, 2.6vw, 28px) 0;
  background: #fff;
  border-bottom: 1px solid var(--line);
}

.proof-strip-inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  align-items: center;
}

.proof-strip span,
.proof-strip a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.18;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
  text-align: center;
}

.proof-strip a {
  color: var(--ink);
  transition: border-color .18s ease, transform .18s ease;
}

.proof-strip a:hover {
  border-color: var(--ink);
  transform: translateY(-1px);
}

.service-priority {
  margin-top: clamp(20px, 2.6vw, 32px);
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.service-priority span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: #fff;
  font-size: .76rem;
  line-height: 1;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.service-priority + .container .service-grid {
  margin-top: clamp(24px, 3.5vw, 40px);
}

@media (max-width: 980px) {
  .proof-strip-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .proof-strip {
    padding: 16px 0;
  }

  .proof-strip-inner {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .proof-strip span,
  .proof-strip a {
    min-height: 42px;
    border-radius: 22px;
    font-size: .72rem;
    letter-spacing: .055em;
  }

  .service-priority {
    gap: 7px;
  }

  .service-priority span {
    min-height: 32px;
    font-size: .68rem;
  }
}

/* v1.48 · remove footer brand separator only on mobile */
@media (max-width: 760px) {
  .footer-left .footer-brand::after {
    content: none !important;
    display: none !important;
  }
}

/* v1.50 · LZK Universe graphic mode helpers */
.hero-line-mobile:empty {
  display: none;
}
