*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :focus-visible {
      outline: 1px solid rgba(61,35,20,.72);
      outline-offset: 4px;
    }

    :root {
      --earth: #3d2314;
      --earth-mid: #5c3520;
      --cream: #f2ede4;
      --cloud: #ddd8ce;
      --white: #ffffff;
      --mid: #8a7e72;
      --dark: #1a1209;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'DM Sans', sans-serif;
      background: linear-gradient(
        to bottom,
        #b8cfe0 0%,
        #c8d8e8 8%,
        #d4e0ea 18%,
        #dce6ed 28%,
        #e2e8ec 38%,
        #e8e4de 50%,
        #ede0d0 62%,
        #e8d4b8 75%,
        #dfc8a0 85%,
        #d4b880 100%
      );
      background-attachment: fixed;
      color: var(--earth);
      overflow-x: hidden;
      cursor: auto;
    }

    @media (hover: none), (pointer: coarse) {
      body { cursor: auto; }
      a, button { cursor: pointer; }
    }

    body.has-custom-cursor,
    body.has-custom-cursor a,
    body.has-custom-cursor button,
    body.has-custom-cursor .trab-row-header,
    body.has-custom-cursor .serv-panel-head,
    body.has-custom-cursor .carousel-slide,
    body.has-custom-cursor .video-thumb-link {
      cursor: none;
    }

    @media (hover: none), (pointer: coarse) {
      #cur { display: none; }
    }

    /* CURSOR */
    #cur {
      position: fixed; z-index: 9999; pointer-events: none;
      width: 9px; height: 9px; border-radius: 50%;
      background: var(--earth);
      left: 0; top: 0;
      transform: translate3d(var(--cur-x, -20px), var(--cur-y, -20px), 0) translate(-50%,-50%);
      transition: width .35s cubic-bezier(.16,1,.3,1), height .35s cubic-bezier(.16,1,.3,1);
      will-change: transform, width, height;
      opacity: 0;
    }
    #cur.active { opacity: 1; }
    #cur.big { width: 55px; height: 55px; opacity: .15; }

    /* NAV */
    body > nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 500;
      transition: opacity .6s ease;
      display: flex; justify-content: space-between; align-items: center;
      padding: 1.6rem 3rem;
      }
    .nav-logo {
      font-family: 'Syne', sans-serif;
      font-weight: 900; font-style: italic;
      font-size: 1.1rem; letter-spacing: .02em;
      color: var(--earth); text-decoration: none;
    }
    .nav-right {
      display: flex;
      align-items: center;
      gap: 1.4rem;
    }
    .nav-links { display: flex; gap: 2.5rem; list-style: none; }
    .nav-links a {
      font-size: .65rem; letter-spacing: .18em; text-transform: uppercase;
      color: var(--earth); text-decoration: none;
      font-weight: 500; opacity: .7; transition: opacity .2s;
    }
    .nav-links a:hover { opacity: 1; }
    .lang-switch {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      position: relative;
      padding-left: 1.15rem;
      margin-left: .15rem;
    }
    .lang-switch::before {
      content: '';
      position: absolute;
      left: 0;
      top: 50%;
      width: 1px;
      height: 1rem;
      background: rgba(61,35,20,.16);
      transform: translateY(-50%);
    }
    .lang-btn {
      border: 0;
      background: transparent;
      color: var(--earth);
      opacity: .42;
      font-size: .58rem;
      letter-spacing: .24em;
      text-transform: uppercase;
      font-weight: 600;
      padding: 0;
      line-height: 1;
      transition: opacity .2s ease, color .2s ease, transform .2s ease;
      cursor: pointer;
    }
    .lang-btn:hover { opacity: .72; }
    .lang-btn:active { transform: translateY(1px); }
    .lang-btn.active {
      opacity: 1;
      color: var(--earth);
    }
    .lang-switch--drawer {
      margin-top: 1.15rem;
      padding-left: 0;
      margin-left: 0;
      gap: .85rem;
    }
    .lang-switch--drawer::before {
      display: none;
    }
    .lang-switch--drawer .lang-btn {
      font-size: .74rem;
      letter-spacing: .22em;
    }

    /* ── Hamburger button ── */
    .nav-burger {
      display: none;
      flex-direction: column; justify-content: center; gap: 5px;
      width: 36px; height: 36px;
      background: none; border: none; cursor: pointer; padding: 4px;
      z-index: 600;
    }
    .nav-burger span {
      display: block; width: 22px; height: 1.5px;
      background: var(--earth);
      transition: transform .35s cubic-bezier(.16,1,.3,1), opacity .25s ease;
      transform-origin: center;
    }
    .nav-burger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
    .nav-burger.open span:nth-child(2) { opacity: 0; }
    .nav-burger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

    /* ── Mobile drawer ── */
    .nav-drawer {
      display: none;
      position: fixed; inset: 0; z-index: 490;
      background: var(--cream);
      flex-direction: column; align-items: center; justify-content: center;
      gap: 2.5rem;
      opacity: 0;
      transition: opacity .35s ease;
      pointer-events: none;
    }
    .nav-drawer.open {
      opacity: 1;
      pointer-events: all;
    }
    .nav-drawer a {
      font-family: 'DM Serif Display', serif;
      font-size: clamp(1.8rem, 8vw, 2.8rem);
      color: var(--earth); text-decoration: none;
      letter-spacing: .02em; opacity: .85;
      transition: opacity .2s;
    }
    .nav-drawer a:hover { opacity: 1; }

    /* ══════════════════════
       HERO — sky photograph
    ══════════════════════ */
    #hero {
      position: relative;
      width: 100%; min-height: 100dvh;
      display: flex; flex-direction: column; justify-content: space-between;
    }



    /* Procedural cloud canvas */
    #cloudCanvas {
      position: fixed; inset: 0;
      width: 100%; height: 100%;
      z-index: 0; pointer-events: none;
    }
    #heroBirdCanvas {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      z-index: 2; pointer-events: none;
    }

    #birdCanvas {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      z-index: 1; pointer-events: none;
      opacity: 0.92;
    }



    /* HERO TEXT — massive, cinematic */
    .hero-top {
      position: relative; z-index: 10;
      padding: 11.4rem 3rem 0;
      text-align: center;
    }
    .hero-role {
      font-size: .68rem; letter-spacing: .28em; text-transform: uppercase;
      color: var(--earth-mid); font-weight: 500;
      opacity: .7; margin-bottom: 1.2rem;
      animation: fadeIn .8s .1s both;
    }
    .hero-name {
      font-family: 'Syne', sans-serif;
      font-weight: 900;
      width: min(92vw, 1400px);
      margin: 0 auto;
      font-size: clamp(4.6rem, 12vw, 12.2rem);
      line-height: .9;
      color: var(--earth);
      letter-spacing: .01em;
      text-transform: uppercase;
    }
    .hero-name .ln {
      overflow: visible;
    }
    .hero-name .ln span {
      display: block;
      line-height: .92;
      animation: slideUp .9s cubic-bezier(.16,1,.3,1) both;
    }
    .hero-name .ln:nth-child(1) span { animation-delay: .05s; }
    .hero-name .ln:nth-child(2) span { animation-delay: .18s; }
    .hero-name .ln--mobile-show,
    .hero-mobile-photo,
    .hero-mobile-tagline {
      display:none;
    }

    /* Italic word in name */
    .hero-name em {
      font-style: italic; color: var(--earth-mid);
    }

    /* Hover photo — appears when hovering name */
    #name-photo {
      position: fixed;
      pointer-events: none;
      z-index: 200;
      width: clamp(160px, 14vw, 240px);
      aspect-ratio: 3/4;
      overflow: hidden;
      opacity: 0;
      transform: scale(.92) rotate(-2deg);
      transition: opacity .35s cubic-bezier(.16,1,.3,1), transform .35s cubic-bezier(.16,1,.3,1);
      box-shadow: 0 24px 70px rgba(61,35,20,.3), 0 6px 20px rgba(61,35,20,.2);
    }
    #name-photo.show {
      opacity: 1;
      transform: scale(1) rotate(-1deg);
    }
    #name-photo img {
      width: 100%; height: 100%;
      object-fit: cover; object-position: center top;
      display: block;
    }

    /* Name — hoverable */
    .hero-name {
      cursor: none;
    }
    .hero-name .ln span {
      transition: opacity .2s;
    }
    .hero-name:hover .ln span {
      opacity: .7;
    }

    .hero-bottom {
      position: relative; z-index: 10;
      display: flex; justify-content: space-between; align-items: flex-end;
      padding: 2rem 3rem;
    }
    .hero-tagline {
      font-size: .85rem; font-weight: 500; line-height: 1.8;
      color: var(--earth); opacity: .85; max-width: 400px;
      letter-spacing: .04em;
    }
    .hero-concept {
      text-align: right;
      font-family: 'DM Serif Display', serif;
      font-style: italic; font-size: 1rem;
      color: var(--earth-mid); opacity: .5; line-height: 1.5;
    }
    .hero-concept small {
      display: block; font-family: 'DM Sans', sans-serif;
      font-style: normal; font-size: .58rem;
      letter-spacing: .22em; text-transform: uppercase;
      opacity: .6; margin-bottom: .2rem;
    }

    @media (max-width: 1360px) {
      .hero-top {
        padding: 10.4rem 2.2rem 0;
      }
      .hero-name {
        width: min(94vw, 1220px);
        font-size: clamp(4.15rem, 10.4vw, 10.1rem);
        line-height: .88;
        letter-spacing: 0;
      }
      .hero-bottom {
        padding: 2rem 2.2rem;
      }
    }

    @media (max-width: 1180px) {
      .hero-top {
        padding: 9.4rem 1.75rem 0;
      }
      .hero-name {
        width: min(94vw, 980px);
        font-size: clamp(3.95rem, 9.8vw, 8.35rem);
        line-height: .88;
        letter-spacing: 0;
      }
      .hero-bottom {
        padding: 2rem 1.75rem;
      }
      .hero-tagline {
        max-width: 340px;
      }
    }

    @keyframes slideUp { from{transform:translateY(110%);opacity:0} to{transform:translateY(0);opacity:1} }
    @keyframes fadeIn  { from{opacity:0} to{opacity:1} }

    /* ══════════════════════
       MARQUEE
    ══════════════════════ */
    .mq {
      background: var(--earth);
      overflow: hidden; padding: .8rem 0;
    }
    .mq-inner {
      display: flex; white-space: nowrap;
      animation: mq 32s linear infinite;
    }
    .mq-inner span {
      font-family: 'Syne', sans-serif;
      font-weight: 800; font-size: .7rem;
      color: var(--cream); padding: 0 2rem;
      opacity: .9; letter-spacing: .15em; text-transform: uppercase;
    }
    .mq-inner .dot { font-style: normal; opacity: .3; }
    @keyframes mq { from{transform:translateX(0)} to{transform:translateX(-50%)} }

    /* ══════════════════════
       SECTIONS
    ══════════════════════ */
    .s-tag {
      font-size: .6rem; letter-spacing: .26em; text-transform: uppercase;
      color: var(--mid); display: flex; align-items: center; gap: .8rem;
      margin-bottom: 2.5rem; font-weight: 500;
    }
    .s-tag::before { content:''; width:20px; height:1px; background:var(--mid); }

    /* ══════════════════════
       STATEMENT
    ══════════════════════ */
    #statement {
      background: rgba(242,237,228,0.75);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      padding: 9rem 3rem;
      display: grid; grid-template-columns: 1fr 1fr; gap: 7rem; align-items: center;
      border-bottom: 1px solid rgba(61,35,20,.1);
    }
    .stmt-h {
      font-family: 'DM Serif Display', serif;
      font-weight: 900; font-style: italic;
      font-size: clamp(1.4rem, 2.2vw, 2.2rem);
      line-height: 1.1; color: var(--earth);
    }
    .stmt-h strong { font-style: normal; }
    .stmt-body {
      font-size: .9rem; font-weight: 300; line-height: 1.95;
      color: var(--earth-mid);
    }
    .stmt-body p { margin-bottom: 1.1rem; }
    .stmt-body strong { color: var(--earth); font-weight: 500; }
    .pills { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.8rem; }
    .pill {
      border: 1px solid rgba(61,35,20,.2); padding:.32rem .9rem;
      font-size:.6rem; letter-spacing:.14em; text-transform:uppercase;
      color:var(--mid); font-weight:500;
      transition:border-color .2s,color .2s;
    }
    .pill:hover { border-color:var(--earth); color:var(--earth); }

    /* ══════════════════════
       TRABAJOS
    ══════════════════════ */
    #trabajos {
      background:var(--cream);
      padding:8rem 3rem;
    }
    .trab-top {
      display:flex; justify-content:space-between; align-items:flex-end;
      margin-bottom:4rem; padding-bottom:2rem;
      border-bottom:1px solid rgba(61,35,20,.1);
    }
    .trab-h {
      font-family:'DM Serif Display', serif; font-weight:900;
      font-size:clamp(2.5rem,5vw,5rem); letter-spacing:.01em; line-height:.9;
    }
    .trab-h em { font-style:italic; opacity:.4; }
    .trab-sub { font-size:.8rem; font-weight:300; color:var(--mid); max-width:180px; text-align:right; line-height:1.7; }

    .trab-list { display:flex; flex-direction:column; }
    
    .trab-row-header > * { position:relative; z-index:1; }
    .tr-n { font-family:'DM Serif Display', serif; font-style:italic; font-size:.9rem; color:var(--mid); transition:color .3s; }
    .tr-name { font-family:'DM Serif Display', serif; font-weight:900; font-size:clamp(1.3rem,2.5vw,2.2rem); letter-spacing:.01em; transition:color .3s; }
    .tr-loc { font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--mid); font-weight:500; transition:color .3s; }
    .tr-arr { font-size:1.1rem; color:var(--mid); text-align:right; transition:color .3s,transform .3s; }
    

    #work-preview {
      position:fixed; pointer-events:none; z-index:600;
      width:170px; height:230px; overflow:hidden;
      opacity:0; transform:scale(.9) rotate(-2deg);
      transition:opacity .3s,transform .3s;
    }
    #work-preview img { width:100%; height:100%; object-fit:cover; display:block; }

    /* ══════════════════════
       SOBRE
    ══════════════════════ */
    #sobre {
      background: rgba(45,26,12,0.88);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      padding: 8rem 3rem;
      display: grid; grid-template-columns: 1fr 1fr; gap:7rem; align-items:center;
      color: var(--cream);
    }
    .sobre-img { width:100%; aspect-ratio:3/4; overflow:hidden; position:relative; }
    .sobre-img img { width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block; filter:grayscale(15%) contrast(1.05); }
    .sobre-img::after { content:''; position:absolute; inset:0; background:linear-gradient(to bottom, transparent 60%, var(--earth) 100%); }
    .sobre-caption { font-family:'DM Serif Display', serif; font-style:italic; font-size:.85rem; color:rgba(242,237,228,.3); margin-top:1rem; }
    .sobre-h {
      font-family:'DM Serif Display', serif; font-weight:900;
      font-size:clamp(2rem,4vw,3.5rem); line-height:1; letter-spacing:.01em;
      margin-bottom:2rem; color:var(--cream);
    }
    .sobre-h em { font-style:italic; opacity:.5; }
    .sobre-p { font-size:1.05rem; font-weight:300; line-height:1.85; color:rgba(242,237,228,.7); margin-bottom:1.5rem; max-width:48ch; }
    .sobre-p strong { color:var(--cream); font-weight:400; }
    .sobre-s-tag { color:rgba(242,237,228,.35); }
    .sobre-s-tag::before { background:rgba(242,237,228,.2); }
    .sobre-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin-top:2.5rem; }
    .sobre-stat { border-top:1px solid rgba(242,237,228,.15); padding-top:1.1rem; }
    .sobre-stat-n { font-family:'DM Serif Display',serif; font-size:2rem; font-weight:400; color:var(--cream); margin:0 0 .5rem; line-height:1; }
    .sobre-stat-names { font-size:1rem; line-height:1.6; }
    .sobre-stat-l { font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(242,237,228,.4); margin:0; line-height:1.6; }

    /* ══════════════════════
       CTA
    ══════════════════════ */
    /* TESTIMONIOS */
    #testimonios {
      background: linear-gradient(to bottom, #c8d5df 0%, #e8d5b0 100%);
      padding: 8rem 3rem;
      text-align: center;
      overflow: hidden;
    }
    .test-head {
      max-width: 780px;
      margin: 0 auto 4rem;
    }
    .test-eyebrow {
      font: 300 .72rem/1 'DM Sans', sans-serif;
      letter-spacing: .35em;
      text-transform: uppercase;
      color: rgba(45,26,12,.4);
      margin-bottom: 1.2rem;
      display: block;
    }
    .test-title {
      font-family: 'DM Serif Display', serif;
      font-weight: 900;
      font-size: clamp(3rem, 7vw, 7rem);
      line-height: .9;
      letter-spacing: .01em;
      color: var(--earth);
      margin: 0 0 1.4rem;
    }
    .test-intro {
      max-width: 560px;
      margin: 0 auto;
      font: 300 .95rem/1.8 'DM Sans', sans-serif;
      color: rgba(45,26,12,.62);
    }
.test-carousel {
  position: relative;
  max-width: 1180px;
  min-height: 460px;
  margin: 0 auto;
  padding: 0 0 5.8rem;
}
    .test-viewport {
      position: relative;
      min-height: 410px;
    }
    .test-slide {
      position: absolute;
      top: 0;
      left: 50%;
      width: min(640px, 64vw);
      opacity: 0;
      pointer-events: none;
      transform: translateX(-50%) scale(.98);
      transition:
        opacity 1s ease,
        transform 1.45s cubic-bezier(.16, 1, .3, 1);
      filter: none;
      will-change: opacity, transform;
    }
    .test-slide.active {
      opacity: 1;
      pointer-events: auto;
      transform: translateX(-50%) scale(1);
      z-index: 4;
      filter: none;
    }
    .test-slide.prev,
    .test-slide.next {
      opacity: .68;
      z-index: 1;
      filter: none;
      pointer-events: auto;
      cursor: pointer;
    }
    .test-slide.prev { transform: translateX(-118%) translateY(78px) scale(.72); }
    .test-slide.next { transform: translateX(34%) translateY(78px) scale(.72); }
    .test-slide.prev .test-bubble,
    .test-slide.next .test-bubble {
      background: rgba(255,255,255,0.86);
      box-shadow: 0 10px 28px rgba(45,26,12,.07);
      border-color: rgba(255,255,255,.78);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }
    .test-slide.prev .test-bubble p,
    .test-slide.prev .test-name,
    .test-slide.next .test-bubble p,
    .test-slide.next .test-name {
      color: rgba(45,26,12,.68);
      text-shadow: none;
    }
    .test-slide.prev .test-bubble p,
    .test-slide.next .test-bubble p {
      max-height: 5.8em;
      overflow: hidden;
    }
    @keyframes testBubbleAir {
      0%, 100% { translate: 0 0; }
      50% { translate: 0 -9px; }
    }
    @keyframes testBubbleAirSide {
      0%, 100% { translate: 0 0; }
      50% { translate: 0 -6px; }
    }
    @keyframes testBirdFloat {
      0%, 100% { transform: translate(0, 0) rotate(-8deg) scaleX(-1); }
      45% { transform: translate(4px, -5px) rotate(-3deg) scaleX(-1); }
    }
    @keyframes testBirdGlide {
      0% { transform: translate(-10px, 8px) rotate(-14deg) scaleX(-1); opacity: .3; }
      55% { transform: translate(5px, -5px) rotate(-3deg) scaleX(-1); opacity: .82; }
      100% { transform: translate(0, 0) rotate(-8deg) scaleX(-1); opacity: .78; }
    }
    .test-bubble {
      background: rgba(255,255,255,0.9);
      border: 1px solid rgba(255,255,255,0.9);
      border-radius: 16px;
      border-bottom-right-radius: 4px;
      padding: clamp(1.5rem, 3vw, 2.5rem);
      text-align: left;
      position: relative;
      box-shadow: 0 18px 54px rgba(45,26,12,.12);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      transform-origin: center;
      transition: transform .42s cubic-bezier(.19,.82,.2,1), background .42s ease, box-shadow .42s ease, border-color .42s ease;
      animation: testBubbleAirSide 7.8s ease-in-out infinite;
    }
    .test-slide.active .test-bubble {
      background: rgba(255,255,255,0.94);
      border-color: rgba(255,255,255,0.96);
      animation: testBubbleAir 8.6s ease-in-out infinite;
    }
    .test-slide.next .test-bubble {
      animation-delay: -2.4s;
    }
    .test-slide.prev .test-bubble {
      animation-delay: -4.1s;
    }
    .test-bubble::before {
      content: '';
      position: absolute;
      right: -19px;
      bottom: -61px;
      width: 66px;
      aspect-ratio: 1;
      background: url("../assets/inline_image_04.webp") center / contain no-repeat;
      opacity: .58;
      filter: sepia(36%) brightness(.95) saturate(.42);
      transform: rotate(-8deg) scaleX(-1);
      transform-origin: center;
      pointer-events: none;
      animation: testBirdFloat 4.4s ease-in-out infinite;
    }
    .test-carousel.is-gliding .test-slide.active .test-bubble::before {
      animation: testBirdGlide 1.15s cubic-bezier(.16, 1, .3, 1) both, testBirdFloat 4.8s ease-in-out 1.15s infinite;
    }
    .test-slide:nth-child(2) .test-bubble::before { background-image: url("../assets/inline_image_05.webp"); }
    .test-slide:nth-child(3) .test-bubble::before { background-image: url("../assets/inline_image_06.webp"); }
    .test-slide:nth-child(4) .test-bubble::before { background-image: url("../assets/inline_image_07.webp"); }
    .test-slide:nth-child(5) .test-bubble::before { background-image: url("../assets/inline_image_08.webp"); }
    .test-slide:nth-child(6) .test-bubble::before { background-image: url("../assets/inline_image_09.webp"); }
    .test-slide.active:hover .test-bubble {
      background: rgba(255,255,255,0.54);
      border-color: rgba(255,255,255,0.76);
      box-shadow: 0 24px 70px rgba(45,26,12,.13);
      transform: translateY(-3px) scale(1.006);
    }
    .test-slide.prev:hover .test-bubble,
    .test-slide.next:hover .test-bubble {
      background: rgba(255,255,255,0.44);
      border-color: rgba(255,255,255,.68);
      box-shadow: 0 16px 44px rgba(45,26,12,.1);
      transform: translateY(-4px) scale(.998);
    }
    .test-bubble::after {
      content: '';
      position: absolute;
      bottom: -20px;
      right: 28px;
      width: 0;
      height: 0;
      border-right: 20px solid transparent;
      border-left: 0 solid transparent;
      border-top: 20px solid rgba(255,255,255,0.48);
      filter: drop-shadow(0 8px 8px rgba(45,26,12,.05));
    }
    .test-bubble p {
      font: 400 clamp(.95rem, 1.45vw, 1.12rem)/1.8 'DM Sans', sans-serif;
      color: rgba(45,26,12,.78);
      margin: 0 0 1.4rem;
    }
    .test-person {
      display: flex;
      align-items: center;
      gap: .75rem;
    }
    .test-avatar {
      flex: 0 0 auto;
      width: 38px;
      height: 38px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      overflow: hidden;
      background: rgba(61,35,20,.12);
      border: 1px solid rgba(61,35,20,.14);
      color: rgba(61,35,20,.52);
      font: 600 .62rem/1 'DM Sans', sans-serif;
      letter-spacing: .08em;
    }
.test-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.test-avatar--guilherme img {
  transform: scale(1.34);
  transform-origin: center center;
}
.test-name {
  display: block;
  font: 500 .72rem/1.6 'DM Sans', sans-serif;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(45,26,12,.45);
    }
    .test-nav {
      display: none !important;
      position: absolute;
      top: 38%;
      z-index: 5;
      width: 44px;
      height: 44px;
      border: 1px solid rgba(61,35,20,.2);
      border-radius: 50%;
      background: rgba(255,255,255,.28);
      color: var(--earth);
      font: 300 2rem/1 'DM Serif Display', serif;
      cursor: pointer;
      display: none;
      place-items: center;
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      transition: background .2s ease, transform .2s ease, border-color .2s ease;
    }
    .test-nav:hover {
      background: rgba(255,255,255,.48);
      border-color: rgba(61,35,20,.42);
      transform: translateY(-2px);
    }
    .test-nav--prev { left: .5rem; }
    .test-nav--next { right: .5rem; }
.test-controls {
  position: absolute;
  left: 0;
  right: 0;
  bottom: .85rem;
  display: flex;
  align-items: center;
  justify-content: center;
      gap: 1.2rem;
    }
    .test-count {
      font: 500 .62rem/1 'DM Sans', sans-serif;
      letter-spacing: .18em;
      color: rgba(45,26,12,.48);
    }
    .test-dots {
      display: flex;
      gap: .45rem;
      align-items: center;
    }
    .test-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      border: 0;
      background: rgba(45,26,12,.24);
      padding: 0;
      cursor: pointer;
      transition: transform .2s ease, background .2s ease;
    }
    .test-dot.active {
      background: var(--earth);
      transform: scale(1.35);
    }
    @media(max-width:900px){
      #testimonios { padding: 6rem 1.5rem; }
      .test-head { margin-bottom: 3rem; }
      .test-carousel {
        min-height: 500px;
        padding: 0 0 4rem;
      }
      .test-viewport { min-height: 430px; }
      .test-slide {
        width: min(100%, 640px);
      }
      .test-slide.prev,
      .test-slide.next {
        opacity: 0;
        pointer-events: none;
      }
      .test-bubble::before {
        width: 50px;
        right: -28px;
        bottom: -52px;
      }
      .test-nav {
        top: auto;
        bottom: 0;
        width: 40px;
        height: 40px;
      }
      .test-nav--prev { left: 0; }
      .test-nav--next { right: 0; }
    }
    @media(max-width:560px){
      .test-carousel { min-height: 590px; }
      .test-viewport { min-height: 520px; }
      .test-bubble p { font-size: .92rem; line-height: 1.7; }
      .test-controls { gap: .8rem; }
    }

    #cta {
      background: transparent;
      padding: 10.5rem 3rem 8.5rem;
      text-align: center;
      position: relative; overflow: hidden;
    }
    .cta-bg {
      position:absolute; inset:0; pointer-events:none;
      background:
        radial-gradient(ellipse 60% 40% at 50% 100%, rgba(61,35,20,.06) 0%, transparent 70%),
        radial-gradient(ellipse 80% 30% at 30% 60%, rgba(255,255,255,.4) 0%, transparent 50%);
    }
    .cta-eyebrow { font-size:.66rem; letter-spacing:.28em; text-transform:uppercase; color:var(--mid); margin-bottom:2.35rem; font-weight:500; }
    .cta-h {
      font-family:'DM Serif Display', serif; font-weight:900;
      font-size:clamp(3.2rem,6.1vw,6.7rem); line-height:.94; letter-spacing:.01em;
      color:var(--earth); margin-bottom:2.6rem; position:relative;
      width:90vw;
      max-width:1180px;
      text-align:center;
      margin-left: auto;
      margin-right: auto;
    }
    .cta-line {
      display:block;
      margin-bottom:.1em;
    }
    .cta-line:last-child { margin-bottom:0; }
    .cta-line--accent {
      color: var(--earth-mid);
      font-style: italic;
    }
    .cta-line--plain {
      font-style: normal;
    }
    .cta-line--end {
      color: var(--earth-mid);
      font-weight: 900;
      opacity: 1;
      font-style: italic;
    }
    .cta-h em { font-style:italic; opacity:.4; }
    .cta-btn {
      display:inline-flex; align-items:center; gap:1.2rem;
      font-family:'DM Serif Display', serif; font-weight:900;
      font-size:1.06rem; letter-spacing:.02em;
      color:var(--cream); background:var(--earth);
      text-decoration:none; padding:1.22rem 2.95rem;
      transition:gap .3s, background .3s, transform .18s ease; cursor:pointer;
    }
    .cta-btn:hover { background:var(--earth-mid); gap:2rem; }
    .cta-btn:active { transform:translateY(1px); }
    .cta-btn .a { display:inline-block; transition:transform .3s; font-style:normal; }
    .cta-btn:hover .a { transform:rotate(-45deg); }
    .arrow-icon { display:inline-block; vertical-align:middle; }

    /* ══════════════════════
       CONTACTO
    ══════════════════════ */
    #contacto {
      background:var(--cream);
      padding:0 3rem 9rem;
      border-top:1px solid rgba(61,35,20,.1);
    }
    .contact-inner { display:grid; grid-template-columns:1fr 1fr; gap:7rem; padding-top:7rem; }
    .contact-h { font-family:'DM Serif Display', serif; font-weight:900; font-size:clamp(2rem,4vw,3.5rem); letter-spacing:.01em; line-height:1; margin-bottom:1rem; color:var(--earth); }
    .contact-h em { font-style:italic; opacity:.5; }
    .contact-desc { font-size:.85rem; font-weight:300; color:var(--mid); line-height:1.8; margin-bottom:3rem; }
    .fg { margin-bottom:1.5rem; }
    .fg label { display:block; font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:var(--mid); margin-bottom:.5rem; font-weight:500; }
    .fg input,.fg textarea { width:100%; background:transparent; border:none; border-bottom:1px solid rgba(61,35,20,.15); color:var(--earth); padding:.7rem 0; font-family:'DM Sans',sans-serif; font-size:.9rem; outline:none; transition:border-color .25s; }
    .fg input:focus,.fg textarea:focus { border-color:var(--earth); }
    .fg textarea { min-height:80px; resize:none; }
    .fg-row { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
    .btn-send { display:inline-flex; align-items:center; gap:1rem; background:var(--earth); color:var(--cream); border:none; padding:.9rem 2.2rem; font-family:'DM Serif Display', serif; font-weight:900; font-size:.85rem; cursor:pointer; transition:gap .3s,background .3s,transform .18s ease; margin-top:.5rem; }
    .btn-send:hover { background:var(--earth-mid); gap:1.8rem; }
    .btn-send:active { transform:translateY(1px); }
    .btn-send .a { display:inline-block; transition:transform .3s; }
    .btn-send:hover .a { transform:rotate(-45deg); }
    .f-ok { display:none; margin-top:1rem; padding:.8rem 1.2rem; border-left:2px solid var(--earth); background:rgba(61,35,20,.06); font-size:.8rem; color:var(--mid); }
    .f-error { display:none; margin-top:1rem; padding:.8rem 1.2rem; border-left:2px solid #8e2f1f; background:rgba(142,47,31,.08); font-size:.8rem; line-height:1.5; color:#6f281c; }
    .ci { margin-bottom:2.5rem; }
    .ci-l { font-size:.58rem; letter-spacing:.25em; text-transform:uppercase; color:var(--mid); margin-bottom:.4rem; font-weight:500; }
    .ci-v { font-family:'DM Serif Display', serif; font-weight:900; font-size:1.3rem; color:var(--earth); }
    .ci-v--body { font-family:'DM Sans', sans-serif; font-size:1.1rem; font-weight:300; }
    .ci-v--note { font-family:'DM Sans', sans-serif; font-size:.85rem; font-weight:300; color:var(--mid); }
    .ci-v a { color:inherit; text-decoration:none; transition:color .2s; }
    .ci-v a:hover { color:var(--earth-mid); }
    .ci-sep { width:24px; height:1px; background:rgba(61,35,20,.12); margin:2rem 0; }
    .soc { display:flex; gap:.7rem; flex-wrap:wrap; margin-top:.6rem; }
    .soc a { border:1px solid rgba(61,35,20,.2); padding:.32rem .85rem; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mid); text-decoration:none; font-weight:500; transition:border-color .2s,color .2s; }
    .soc a:hover { border-color:var(--earth); color:var(--earth); }

    /* FOOTER */
    footer { background:var(--earth); color:var(--cream); padding:1.8rem 3rem; display:flex; justify-content:space-between; align-items:center; }
    .f-logo { font-family:'DM Serif Display', serif; font-weight:900; font-style:italic; font-size:1.1rem; }
    .f-copy { font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; opacity:.35; }
    .f-nav { display:flex; gap:2rem; }
    .f-nav a { font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cream); text-decoration:none; opacity:.35; transition:opacity .2s; font-weight:500; }
    .f-nav a:hover { opacity:1; }

    /* REVEAL */
    .rv { opacity:0; transform:translateY(22px); transition:opacity .9s ease,transform .9s ease; }
    .rv.on { opacity:1; transform:translateY(0); }
    .d1{transition-delay:.12s} .d2{transition-delay:.24s}

    /* TEXT REVEAL — word by word fade on scroll */
    .txt-reveal { overflow: hidden; }
    .txt-reveal .word {
      display: inline;
      opacity: 0.1;
      transition: opacity .4s ease;
    }
    .txt-reveal.on .word { opacity: 1; }
    .txt-reveal.stagger .word { transition: none; }

    @media(max-width:900px){
      nav{padding:1.2rem 1.5rem;} .nav-right{display:none;} .nav-links{display:none;} .nav-burger{display:flex;} .nav-drawer{display:flex;}
      .lang-switch { display:none; }
      .nav-drawer .lang-switch { display:inline-flex; }
      .hero-top{padding:5.15rem 1.25rem 0; position:relative; z-index:10; text-align:center; display:flex; flex-direction:column; align-items:center;}
      .hero-role{ order:2; margin-top:.95rem; margin-bottom:0; font-size:.6rem; letter-spacing:.22em; line-height:1.45; }
      .hero-name{font-size:clamp(2.85rem,13.4vw,5rem); line-height:.9; order:1;}
      .hero-name .ln--mobile-hide { display:none !important; }
      .hero-name .ln--mobile-show { display:block; }
      .hero-mobile-photo { display:block; position:relative; z-index:5; width:min(62vw, 250px); margin:2rem auto 0; border-radius:4px; overflow:hidden; box-shadow: 0 18px 52px rgba(61,35,20,.16); max-height:320px; }
      .hero-mobile-photo img { width:100%; height:auto; display:block; transform:scale(1.015); transform-origin:center top; }
      .hero-mobile-tagline { display:block; text-align:center; padding:2rem 1.5rem 0; z-index:10; position:relative; }
      .hero-mobile-tagline .hero-tagline { max-width:18rem; margin:0 auto; font-size:.78rem; line-height:1.75; letter-spacing:.18em; text-align:center; }
      .hero-bottom{ display:flex !important; padding:2.15rem 1.5rem 1.5rem; flex-direction:column; align-items:center; gap:.7rem; text-align:center; }
      .hero-bottom .hero-tagline { display:none; }
      .hero-concept { text-align:center !important; opacity:.6; }
      #hero { height: auto; min-height: unset; justify-content: flex-start; }
      .cta-h {
        font-size:clamp(2.55rem,10.6vw,4.65rem);
        line-height:.96;
        width:100%;
        max-width:unset;
      }
      .cta-eyebrow { margin-bottom:2rem; }
      .cta-btn { font-size:1rem; padding:1.16rem 2.6rem; }
      #statement,#contacto{padding:5rem 1.5rem;}
      .statement-inner,.contact-inner,.sobre-grid{grid-template-columns:1fr;gap:3rem;}
      .contact-inner{padding-top:0;}
      .contact-h{font-size:clamp(2.5rem,11vw,3.6rem); line-height:.95; margin-bottom:1.1rem;}
      .contact-desc{font-size:.9rem; line-height:1.85; margin-bottom:2.4rem;}
      .fg-row{grid-template-columns:1fr; gap:0;}
      .fg{margin-bottom:1.35rem;}
      .fg input,.fg textarea{font-size:1rem; padding:.85rem 0;}
      .fg textarea{min-height:128px;}
      .btn-send{width:100%; justify-content:space-between; padding:1.05rem 1.25rem; margin-top:.25rem;}
      .f-ok,.f-error{font-size:.82rem; line-height:1.55; padding:.9rem 1rem;}
      .ci{margin-bottom:1.8rem;}
      .ci-sep{width:100%; margin:1.7rem 0; background:rgba(61,35,20,.1);}
      .ci-v{font-size:1.15rem; overflow-wrap:anywhere;}
      .ci-v--body{font-size:1rem; line-height:1.6;}
      .soc{gap:.55rem;}
      .soc a{min-height:2.25rem; display:inline-flex; align-items:center; padding:.46rem .78rem;}
      .sobre-stats{grid-template-columns:repeat(2,1fr);gap:1.2rem;}
      #servicios,#trabajos,#sobre,#cta{padding:6.75rem 1.5rem;}
      .trab-top{flex-direction:column;align-items:flex-start;gap:1rem;}
      .trab-sub{text-align:left;}
      .trab-row{grid-template-columns:40px 1fr 32px;}
      .tr-loc{display:none;}
      #sobre{grid-template-columns:1fr;}
      footer{flex-direction:column;gap:1rem;text-align:center;padding:1.5rem;}
      .f-nav{justify-content:center;}
      /* Fix 1: match desktop gradient on mobile */
      html {
        background: none;
        min-height: 100%;
      }
      html::before {
        content: '';
        position: fixed;
        inset: 0;
        z-index: -1;
        background: linear-gradient(
          to bottom,
          #b8cfe0 0%,
          #c8d8e8 8%,
          #d4e0ea 18%,
          #dce6ed 28%,
          #e2e8ec 38%,
          #e8e4de 50%,
          #ede0d0 62%,
          #e8d4b8 75%,
          #dfc8a0 85%,
          #d4b880 100%
        );
      }
      body{
        cursor:auto;
        -webkit-font-smoothing:antialiased;
        background: transparent;
      }
      .cta-btn{cursor:pointer;}
      .btn-send{cursor:pointer;}
    }
  
    /* ── ACCORDION TRABAJOS ── */
    .trab-row {
      display: flex; flex-direction: column;
      border-bottom: 1px solid rgba(61,35,20,.1);
      cursor: default;
    }
    .trab-row-header {
      display: grid;
      grid-template-columns: 56px 1fr 220px 48px;
      align-items: center; gap: 2rem;
      padding: 1.6rem 0;
    }
    .trab-row-header > * { position: relative; z-index: 1; }
    .trab-row:hover .tr-name, .trab-row.open .tr-name { color: var(--earth); }
    .trab-row:hover .tr-arr, .trab-row.open .tr-arr { transform: rotate(-45deg); }
    .trab-expand {
      max-height: 0;
      overflow: hidden;
      transition: max-height .65s cubic-bezier(.16,1,.3,1), opacity .4s ease;
      opacity: 0;
    }
    .trab-row.open .trab-expand {
      max-height: 300px;
      opacity: 1;
    }
    .trab-expand-inner {
      padding: 0 0 1.5rem 56px;
    }
    .trab-expand-desc {
      font-size: .78rem; font-weight: 300;
      color: var(--mid); line-height: 1.75;
      padding: .8rem 0 .5rem;
      border-top: 1px solid rgba(61,35,20,.08);
      margin-top: .8rem;
    }

    /* ── STRIP CAROUSEL ── */
    .trab-carousel {
      overflow: hidden;
      width: 100%;
      position: relative;
      cursor: ew-resize;
    }
    .carousel-track {
      display: flex;
      gap: .6rem;
      width: max-content;
      will-change: transform;
    }
    .carousel-slide {
      flex-shrink: 0;
      width: 180px;
      height: 120px;
      overflow: hidden;
      border-radius: 3px;
      transition: width .5s ease, height .5s ease;
      cursor: zoom-in;
    }
    .trab-row.open .carousel-slide {
      width: 300px;
      height: 200px;
    }
    .carousel-slide img {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
    }
    .carousel-dots { display: none; }

    /* ── LIGHTBOX ── */
    #lightbox {
      display: none;
      position: fixed; inset: 0; z-index: 99998;
      background: rgba(26,18,9,0.92);
      justify-content: center; align-items: center;
      cursor: zoom-out;
    }
    #lightbox.show { display: flex; }
    #lightbox img {
      max-width: 90vw; max-height: 88vh;
      object-fit: contain;
      border-radius: 4px;
      box-shadow: 0 30px 80px rgba(0,0,0,.5);
    }
    #lightbox-video {
      display: none;
      width: min(92vw, 1080px);
      aspect-ratio: 16/9;
      border-radius: 4px;
      overflow: hidden;
      box-shadow: 0 30px 80px rgba(0,0,0,.5);
      background: #000;
    }
    #lightbox-video iframe {
      width: 100%;
      height: 100%;
      border: 0;
      display: block;
    }
    #lightbox.video #lightbox-img { display: none; }
    #lightbox.video #lightbox-video { display: block; }
    #lightbox-close {
      position: absolute; top: 1.5rem; right: 2rem;
      font-size: 2rem; color: rgba(255,255,255,.6);
      cursor: pointer; line-height: 1;
      border: 0;
      background: transparent;
      padding: .3rem;
      transition: color .2s;
    }
    #lightbox-close:hover { color: white; }

    /* ── STATEMENT BIG ── */
    #statement {
      padding: 10rem 3rem;
      display: flex; justify-content: center; align-items: center;
      background: rgba(242,237,228,0.75);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border-bottom: 1px solid rgba(61,35,20,.1);
    }
    .stmt-big {
      font-family: 'DM Serif Display', serif;
      font-weight: 900;
      font-size: clamp(3rem, 8vw, 9rem);
      line-height: .95;
      letter-spacing: .01em;
      color: var(--earth);
      text-align: center;
      max-width: 1200px;
      width: 100%;
    }
    .stmt-line { display: block; }
    .stmt-italic {
      font-style: italic;
      color: var(--mid);
    }




    /* ── HERO INTRO OVERLAY ── */
    #heroIntro {
      position: fixed !important;
      top: 0 !important;
      left: 0 !important;
      width: 100vw !important;
      height: 100vh !important;
      z-index: 99999 !important;
      background: linear-gradient(
        to bottom,
        #b8cfe0 0%, #c8d8e8 8%, #d4e0ea 18%,
        #dce6ed 28%, #e2e8ec 38%, #e8e4de 50%,
        #ede0d0 62%, #e8d4b8 75%, #dfc8a0 85%, #d4b880 100%
      ) !important;
      display: flex !important;
      flex-direction: column !important;
      justify-content: center !important;
      align-items: center !important;
      pointer-events: all;
      opacity: 1;
      transition: opacity 1.5s ease;
      box-sizing: border-box;
    }
    #heroIntro.fade { opacity: 0; }
    #heroIntro.done { display: none; }
    #introCanvas {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      z-index: 0;
    }

    .intro-text {
      text-align: center;
      max-width: 680px;
      width: 100%;
      padding: 0 3rem;
      position: relative;
      z-index: 2;
      margin: 0 auto;
    }
    .intro-line {
      display: block;
      font-family: 'DM Serif Display', serif;
      font-style: italic;
      font-size: clamp(.85rem, 1.3vw, 1.1rem);
      line-height: 1.6;
      color: var(--earth);
      opacity: 0;
      transform: translateY(8px);
      transition: opacity .8s ease, transform .8s ease;
    }
    .intro-line.visible {
      opacity: 1;
      transform: translateY(0);
    }
    .intro-line.gap { margin-bottom: .6rem; }

    /* Hide hero content until intro done */
    body.intro-running .hero-top,
    body.intro-running .hero-bottom,
    body.intro-running .hero-photo {
      opacity: 0;
      pointer-events: none;
    }
    .hero-top, .hero-bottom {
      transition: opacity 1.2s ease;
    }


    .iw { color: rgba(61,35,20,0.15); transition: color .3s ease; }
    .il { color: rgba(61,35,20,0.15); transition: color .3s ease; display:inline; }
    #introWrap .il {
      font-family:'DM Serif Display', serif;
      font-weight:900; font-style:italic;
      font-size:clamp(1.8rem,4vw,4rem);
      line-height:1.2; letter-spacing:.01em;
      color:rgba(61,35,20,.85);
      text-align:center;
      opacity:0;
      transform:translateY(20px);
      transition:opacity .7s ease, transform .7s ease;
      margin:.15em 0;
      position:relative; z-index:2;
    }
    nav { transition: opacity .6s ease; }

    /* PLACEHOLDERS */
    .img-ph {
      width: 100%; height: 100%; display: flex; align-items: flex-end; justify-content: flex-start;
      padding: 1rem;
      background:
        linear-gradient(180deg, rgba(255,255,255,.22), rgba(61,35,20,.06)),
        linear-gradient(135deg, rgba(61,35,20,.08), rgba(255,255,255,.12));
      border: 1px solid rgba(61,35,20,.12);
      position: relative; overflow: hidden;
    }
    .img-ph::before {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.28) 45%, transparent 100%);
      transform: translateX(-100%);
      animation: phSweep 7s linear infinite;
      opacity: .7;
    }
    .img-ph::after {
      content: ''; position: absolute; inset: 0;
      background-image: linear-gradient(rgba(61,35,20,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(61,35,20,.05) 1px, transparent 1px);
      background-size: 22px 22px; opacity: .35; mix-blend-mode: multiply;
    }
    .img-ph span {
      position: relative; z-index: 1;
      font-size: .58rem; letter-spacing: .16em; text-transform: uppercase;
      color: rgba(61,35,20,.55); font-weight: 600;
    }
    .portrait-ph, .hero-photo-ph, .sobre-photo-ph { min-height: 100%; }
    .preview-ph { background: rgba(61,35,20,.08); border: 1px solid rgba(61,35,20,.14); }
    .nav-mark {
      width: 54px; height: 54px; border: 1px solid rgba(61,35,20,.18);
      justify-content: center; background: rgba(242,237,228,.35); backdrop-filter: blur(6px);
    }
    .nav-mark span { font-size: .8rem; letter-spacing: .16em; }
    .slide-ph { cursor: zoom-in; }
    .slide-ph span { font-size: .52rem; }
    @keyframes phSweep { from { transform: translateX(-100%); } to { transform: translateX(100%); } }


    .nav-logo img {
      display:block;
      width: 64px;
      height: auto;
      opacity: 1;
      transition: transform .25s ease, opacity .25s ease;
      filter: drop-shadow(0 4px 10px rgba(61,35,20,.08));
    }
    .nav-logo:hover img { transform: translateY(-1px); opacity: 1; }
    .hero-symbol {
      position: absolute;
      left: 50%;
      top: 52%;
      transform: translate(-50%, -50%);
      width: min(40vw, 480px);
      opacity: .14;
      z-index: 2;
      pointer-events: none;
      filter: drop-shadow(0 15px 35px rgba(61,35,20,.08));
    }
    .hero-symbol img {
      display:block;
      width:100%;
      height:auto;
    }
    .f-logo img {
      display:block;
      width: 56px;
      height:auto;
      opacity: .95;
    }
    @media(max-width:900px){
      .nav-logo img { width: 36px; }
      .hero-symbol {
        width: min(52vw, 250px);
        top: 50%;
        opacity: .12;
      }
      .f-logo img { width: 48px; }
    }


/* ── SERVICIOS CLEAN ── */
#servicios{
  position: relative;
  z-index: 3;
  background: rgba(255,255,255,.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 8rem 3rem;
  border-top: 1px solid rgba(61,35,20,.06);
  border-bottom: 1px solid rgba(61,35,20,.06);
}
.serv-clean-head{
  display:grid;
  grid-template-columns: minmax(0,1.2fr) minmax(320px, 420px);
  column-gap: 5rem;
  row-gap: 1rem;
  align-items:start;
  margin-bottom: 3.5rem;
}
.serv-clean-head .s-tag{
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 0;
}
.serv-clean-title{
  grid-column: 1;
  grid-row: 2;
  font-family:'DM Serif Display', serif;
  font-weight:900;
  font-size:clamp(2.8rem,5vw,5.8rem);
  line-height:.92;
  letter-spacing:.01em;
  color:var(--earth);
}
.serv-clean-intro{
  grid-column: 2;
  grid-row: 2;
  max-width: 420px;
  justify-self:start;
  align-self:end;
  font-size:.92rem;
  line-height:1.9;
  color:rgba(61,35,20,.62);
}
.serv-clean-list{
  border-top:1px solid rgba(61,35,20,.12);
}
.serv-clean-row{
  display:grid;
  grid-template-columns: 56px minmax(420px, 1.2fr) minmax(260px, 360px);
  gap: 2rem 4rem;
  align-items:start;
  padding: 2rem 0;
  border-bottom:1px solid rgba(61,35,20,.12);
}
.serv-clean-num{
  font-family:'DM Serif Display', serif;
  font-style:italic;
  font-size:1rem;
  color:rgba(61,35,20,.42);
  padding-top:.45rem;
}
.serv-clean-name{
  font-family:'DM Serif Display', serif;
  font-weight:900;
  font-size:clamp(1.9rem,3vw,3.1rem);
  line-height:.95;
  letter-spacing:-.045em;
  color:var(--earth);
}
.serv-clean-items{
  list-style:none;
  margin:0;
  padding: .2rem 0 0;
  display:grid;
  gap:.55rem;
}
.serv-clean-items li{
  position:relative;
  padding-left:1rem;
  font-size:.84rem;
  line-height:1.45;
  color:rgba(61,35,20,.62);
}
.serv-clean-items li::before{
  content:'·';
  position:absolute;
  left:0;
  top:0;
  color:rgba(61,35,20,.46);
}
@media(max-width:900px){
  #servicios{padding:6rem 1.5rem;}

  .serv-clean-head{
    display:block;
    margin-bottom: 3rem;
  }
  .serv-clean-head .s-tag{
    margin-bottom: 1rem;
  }
  .serv-clean-intro{
    max-width: 100%;
    font-size:.92rem;
    line-height:1.9;
    color:rgba(61,35,20,.62);
    margin-top: 1rem;
  }
  .serv-clean-row{
    grid-template-columns:1fr;
    gap:.8rem;
    padding:1.5rem 0;
  }
  .serv-clean-num{padding-top:0;}
  .serv-clean-name{font-size:clamp(1.8rem,8vw,2.6rem);}
  .serv-panel-arr { font-size:1.4rem; }
}






/* ── BRIDGE PHRASE ── */
#bridge-phrase{
  position: relative;
  padding: 10rem 3rem;
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  overflow:hidden;
  background: radial-gradient(ellipse 80% 60% at 50% 50%, rgba(180,160,130,0.18) 0%, transparent 70%);
}
.bridge-copy{
  position: relative;
  z-index: 1;
  font-family:'DM Serif Display', serif;
  font-size:clamp(2.5rem,5.5vw,7rem);
  font-weight:900;
  line-height:1.05;
  letter-spacing:.01em;
  color:var(--earth);
  max-width:1200px;
  width: 90vw;
  text-align:center;
}
.bridge-label{ display:none; }
.bridge-intro{ display:block; }
.bridge-hero{
  display:block;
  font-style:italic;
  color:var(--earth-mid);
}

.bridge-line{
  display: block;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}
.bridge-line--intro{
  font-style: normal;
  color: var(--earth);
  margin-bottom: .15em;
}
.bridge-line--item{
  font-style: italic;
  color: var(--earth-mid);
}
.bridge-line.visible{
  opacity: 1;
  transform: translateY(0);
}
@media(max-width:900px){
  #bridge-phrase{ padding: 6rem 1.5rem; }
  .bridge-copy{ font-size:clamp(2rem,10vw,4rem); font-weight:900 !important; -webkit-font-smoothing:antialiased; }
}

/* ── SERVICIOS PANELS ── */
.serv-stack{
  border-top:1px solid rgba(61,35,20,.12);
  transition: opacity .3s ease;
}
.serv-panel{
  border-bottom:1px solid rgba(61,35,20,.12);
  transition: opacity .28s ease;
}
.serv-stack:hover .serv-panel{
  opacity:.42;
}
.serv-stack:hover .serv-panel:hover{
  opacity:1;
}
.serv-panel-head{
  width:100%;
  display:grid;
  grid-template-columns: 56px minmax(260px, 1fr) minmax(260px, 420px) 36px;
  gap: 1.6rem 2.4rem;
  align-items:start;
  text-align:left;
  background:transparent;
  border:none;
  color:inherit;
  padding:1.8rem 0;
  cursor:pointer;
}
.serv-panel-num{
  font-family:'DM Serif Display', serif;
  font-style:italic;
  font-size:1rem;
  color:rgba(61,35,20,.42);
  padding-top:.5rem;
}
.serv-panel-title{
  font-family:'DM Serif Display', serif;
  font-weight:900;
  font-size:clamp(2rem,3.2vw,3.15rem);
  line-height:1.0;
  letter-spacing:.01em;
  color:var(--earth);
  transition: transform .28s ease, color .28s ease;
}
.serv-panel-meta{
  font-size:.84rem;
  line-height:1.7;
  color:rgba(61,35,20,.62);
  max-width:42ch;
  padding-top:.25rem;
  transition: color .28s ease, transform .28s ease;
}
.serv-panel-arr{
  font-size:1.4rem;
  color:rgba(61,35,20,.45);
  padding-top:.45rem;
  transition: transform .3s ease, color .3s ease;
  font-weight:300;
  line-height:1;
}
.serv-panel-action{
  position:relative;
  justify-self:end;
  display:grid;
  place-items:center;
  width:2.25rem;
  height:2.25rem;
  border:1px solid rgba(61,35,20,.18);
  border-radius:50%;
  color:rgba(61,35,20,.62);
  font-size:0;
  line-height:1;
  margin-top:.2rem;
  transition:transform .3s ease, border-color .3s ease, background .3s ease, color .3s ease;
}
.serv-panel-action::before,
.serv-panel-action::after{
  content:'';
  position:absolute;
  width:.72rem;
  height:1px;
  background:currentColor;
  transition:transform .3s ease;
}
.serv-panel-action::after{
  transform:rotate(90deg);
}
.serv-panel-action-open,
.serv-panel-action-close{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
}
.serv-panel-expand{
  max-height:0;
  overflow:hidden;
  opacity:0;
  transform:translateY(-10px);
  transition:max-height .65s cubic-bezier(.16,1,.3,1), opacity .35s ease, transform .45s ease;
}
.serv-panel-inner{
  padding:0 0 2rem 56px;
}
.serv-panel-desc{
  font-size:.88rem;
  line-height:1.8;
  color:rgba(61,35,20,.62);
  max-width:68ch;
  margin:0 0 1.2rem 0;
}
.serv-panel-campaign-label{
  font-family:'DM Sans', sans-serif;
  font-size:.6rem;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(61,35,20,.45);
  margin: 2.5rem 0 .8rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(61,35,20,.1);
}
.serv-panel-strip{
  display:flex;
  gap:.8rem;
  overflow-x:auto;
  padding-bottom:.3rem;
  scrollbar-width:none;
}
.serv-panel-strip::-webkit-scrollbar{
  display:none;
}
.serv-panel-strip .carousel-slide{
  width:320px;
  height:214px;
  flex:0 0 auto;
  transition: transform .35s ease, opacity .28s ease;
}
.serv-panel-strip .carousel-slide--wide{
  width:342px;
  height:214px;
  flex-basis:342px;
}
.serv-panel-strip .carousel-slide--wide img{
  object-fit:cover;
  object-position:center center;
}
.carousel-slide--video{
  width: 310px;
  flex: 0 0 310px;
  position: relative;
  border-radius: 3px;
  overflow: hidden;
  aspect-ratio: 16/9;
  height: auto;
}
.video-thumb-link{
  display: block;
  width: 100%; height: 100%;
  position: relative;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.video-thumb-link img{
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 58%;
  transform: scale(1.012);
  display: block;
  transition: opacity .25s ease, transform .25s ease;
}
.video-thumb-link:hover img{ opacity: .75; }
.play-btn{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  transition: transform .25s ease;
}
.play-btn::after{
  content:'';
  width:2.8rem; height:2.8rem;
  border-radius:50%;
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  box-shadow:0 2px 16px rgba(0,0,0,.25);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon points='9,7 19,12 9,17' fill='%233d2314'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 55%;
}
.video-thumb-link:hover .play-btn{ transform: scale(1.12); }
.serv-panel:hover .serv-panel-title,
.serv-panel.open .serv-panel-title{
  transform: translateX(6px);
}
.serv-panel:hover .serv-panel-meta,
.serv-panel.open .serv-panel-meta{
  color:rgba(61,35,20,.78);
}
.serv-panel:hover .serv-panel-arr,
.serv-panel.open .serv-panel-arr{
  transform:rotate(-45deg);
  color:var(--earth);
}
.serv-panel:hover .serv-panel-action,
.serv-panel.open .serv-panel-action{
  transform:rotate(90deg);
  border-color:rgba(61,35,20,.38);
  background:rgba(255,255,255,.22);
  color:var(--earth);
}
.serv-panel.open .serv-panel-action::after{
  transform:rotate(0deg) scaleX(0);
}
.serv-panel:hover .serv-panel-expand,
.serv-panel.open .serv-panel-expand{
  max-height:2200px;
  opacity:1;
  transform:translateY(0);
}
.serv-panel:hover .serv-panel-strip .carousel-slide,
.serv-panel.open .serv-panel-strip .carousel-slide{
  opacity:1;
}
.serv-panel:hover .serv-panel-strip .carousel-slide:hover,
.serv-panel.open .serv-panel-strip .carousel-slide:hover{
  transform:translateY(-3px);
}

/* Touch devices: disable hover-dimming and keep tap interaction */
@media (hover: none){
  .serv-stack:hover .serv-panel{
    opacity:1;
  }
  .serv-panel:hover .serv-panel-expand{
    max-height:0;
    opacity:0;
    transform:translateY(-10px);
  }
  .serv-panel:hover .serv-panel-arr{
    transform:none;
    color:rgba(61,35,20,.45);
  }
  .serv-panel:hover .serv-panel-action{
    transform:none;
    border-color:rgba(61,35,20,.18);
    background:transparent;
    color:rgba(61,35,20,.62);
  }
  .serv-panel:hover .serv-panel-title{
    transform:none;
  }
  .serv-panel.open .serv-panel-expand{
    max-height:2400px;
    opacity:1;
    transform:translateY(0);
  }
  .serv-panel.open .serv-panel-arr{
    transform:rotate(-45deg);
    color:var(--earth);
  }
  .serv-panel.open .serv-panel-action{
    transform:rotate(90deg);
    border-color:rgba(61,35,20,.38);
    background:rgba(255,255,255,.22);
    color:var(--earth);
  }
  .serv-panel.open .serv-panel-action::after{
    transform:rotate(0deg) scaleX(0);
  }
  .serv-panel.open .serv-panel-title{
    transform: translateX(4px);
  }
}

@media(max-width:900px){
  .serv-panel-head{
    grid-template-columns:1fr;
    gap:.7rem;
    padding:1.4rem 3.25rem 1.4rem 0;
    position:relative;
    cursor:pointer;
  }
  .serv-panel-action{
    position:absolute;
    right:0;
    top:1.35rem;
  }
  .serv-panel-title{
    font-size:clamp(1.9rem,8vw,2.7rem);
  }
  .serv-panel-meta{
    max-width:none;
    font-size:.82rem;
    line-height:1.6;
  }
  .serv-panel-arr,
  .serv-panel-num,
  .serv-panel-action{
    padding-top:0;
  }
  .serv-panel-inner{
    padding:0 0 1.5rem 0;
  }
  .serv-panel.open .serv-panel-expand{
    max-height:2600px;
  }
  .serv-panel-strip .carousel-slide{
    width:210px;
    height:140px;
  }
}

/* ── PRELUDE — parallax scroll (sistema de referencia) ── */
body{ overflow: hidden; }
body.site-entered{ overflow: auto; }
body:not(.site-entered) nav,
body:not(.site-entered) .hero-top,
body:not(.site-entered) .hero-bottom,
body:not(.site-entered) .mq{ opacity:0; pointer-events:none; }
nav,.hero-top,.hero-bottom,.mq{ transition:opacity .8s ease; }

.starlings-prelude{
  position:fixed; inset:0; z-index:2000;
  overflow:hidden;
  background:transparent; opacity:1; visibility:visible;
  transition:opacity .9s ease,visibility .9s ease;
}
body.site-entered .starlings-prelude{
  opacity:0; visibility:hidden; pointer-events:none;
}

/* Full-screen scene */
.prelude-scene{
  position:relative;
  height:100vh;
}
/* Stage fills viewport */
.prelude-stage{
  position:absolute; inset:0;
  height:100vh; overflow:hidden;
  background: linear-gradient(to bottom, #c8d5df 0%, #e8d5b0 100%);
}
/* Canvas inside sticky stage */
#birdCanvas{
  position:absolute; inset:0;
  width:100%; height:100%;
  pointer-events:none; z-index:1;
  opacity:.65;
}
/* Copy block */
.prelude-copy-wrap{
  position:absolute; inset:0; z-index:3;
  display:flex; justify-content:center; align-items:center;
  pointer-events:none;
}
.prelude-copy{
  width:min(700px,88vw);
  text-align:center;
  position:relative;
  height:0;
}
/* Lines — each shown one at a time */
.st-line{ 
  display:block;
  font-family:'DM Serif Display', serif;
  font-size:clamp(1.4rem,2.6vw,2.8rem);
  font-weight:400;
  line-height:1.2;
  letter-spacing:-.01em;
  color:rgba(61,35,20,0);
  position:absolute;
  left:0; right:0;
  top:0; transform:translateY(-50%);
  text-align:center;
}
.st-line .ln{ display:block; line-height:1.2; }
.st-line.emphasis{ font-style:italic; font-weight:700; }
.st-line.final-line{ font-style:italic; font-weight:700; }
.st-line.tight,.st-line.super-tight,.st-line.double-gap,.st-line.small{ margin:0; }

/* Enter button */
.prelude-enter-wrap{
  position:absolute; left:50%; bottom:6vh;
  transform:translateX(-50%) translateY(20px);
  opacity:0; z-index:20;
  pointer-events:none;
  transition:opacity .45s ease, transform .7s cubic-bezier(.16,1,.3,1);
}
.prelude-enter-wrap.show{
  opacity:1; transform:translateX(-50%) translateY(0);
  pointer-events:auto;
}
.prelude-enter{
  border:none; background:none;
  color:rgba(61,35,20,.82);
  font:500 .86rem/1 'DM Sans',sans-serif;
  letter-spacing:.38em; text-transform:uppercase;
  padding:1rem 1.2rem;
  position:relative; cursor:pointer;
  pointer-events:auto;
  transition:color .25s ease, transform .25s ease, letter-spacing .25s ease;
}
.prelude-enter:hover{
  color:rgba(61,35,20,.98);
  letter-spacing:.44em;
  transform:translateY(-1px);
}
.prelude-hint{
  display:none;
}

.prelude-skip{
  position:absolute; bottom:2.5rem; right:2.2rem;
  z-index:20;
  border:none;
  background:transparent;
  color:rgba(61,35,20,.72);
  font:.72rem/1 'DM Sans',sans-serif;
  letter-spacing:.22em; text-transform:uppercase;
  cursor:pointer; padding:.65rem 0;
  display:inline-flex; align-items:center; gap:.72rem;
  transition:transform .25s ease, color .25s ease;
}
.prelude-skip::after{
  content:"";
  position:absolute;
  left:0;
  right:2rem;
  bottom:.28rem;
  height:1px;
  background:currentColor;
  opacity:.42;
  transform-origin:left center;
  transform:scaleX(.72);
  transition:transform .25s ease, opacity .25s ease;
}
.prelude-skip span:last-child{
  display:inline-block;
  font-size:.85rem;
  transform:translateX(0);
  transition:transform .25s ease;
}
.prelude-skip:hover{
  transform:translateX(3px);
  color:rgba(61,35,20,.94);
}
.prelude-skip:hover::after{
  transform:scaleX(1);
  opacity:.72;
}
.prelude-skip:hover span:last-child{ transform:translateX(4px); }
.prelude-hint .hint-text{
  font:.72rem/1 'DM Sans',sans-serif;
  letter-spacing:.3em; text-transform:uppercase;
  color:rgba(61,35,20,.75);
}
.prelude-hint .hint-arrow{
  width:1px; height:44px;
  background:linear-gradient(to bottom, rgba(61,35,20,.6), rgba(61,35,20,0));
  animation: hintLine 1.8s ease-in-out infinite;
  transform-origin: top center;
}
@keyframes hintLine{
  0%{ transform:scaleY(0) translateY(0); opacity:0; }
  40%{ transform:scaleY(1) translateY(0); opacity:1; }
  100%{ transform:scaleY(1) translateY(12px); opacity:0; }
}
@media(max-width:900px){
  .prelude-scene{ min-height:100dvh; height:100dvh; }
  .prelude-stage{ height:100dvh; }
  .prelude-copy{ width:min(92vw,560px); padding-top:8vh; }
  .st-line{ font-size:clamp(1.4rem,5.8vw,3rem); margin-bottom:.95em; }
  .st-line.small{ font-size:clamp(1.3rem,5.2vw,2.55rem); }
  .prelude-enter-wrap{
    bottom:max(6.25rem, calc(env(safe-area-inset-bottom) + 4.75rem));
  }
  .prelude-enter{
    font-size:.8rem;
    letter-spacing:.28em;
    padding:.9rem 1rem;
  }
  .prelude-skip{
    top:max(1rem, calc(env(safe-area-inset-top) + .9rem));
    right:1rem;
    bottom:auto;
    font-size:.66rem;
    letter-spacing:.16em;
    padding:.45rem 0;
    color:rgba(61,35,20,.82);
  }
  .prelude-skip::after{
    right:1.5rem;
    bottom:.18rem;
    opacity:.34;
  }
}

footer .f-nav{
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  z-index: auto !important;
  display: flex !important;
  justify-content: flex-start;
  align-items: center;
  padding: 0 !important;
}

/* ── Pro polish pass ───────────────────────────────────── */
.case-note{
  max-width:72ch;
  margin:0 0 1.15rem;
  padding:.9rem 0 0;
  display:flex;
  flex-wrap:wrap;
  gap:.45rem .55rem;
}
.case-note p{
  flex:0 0 100%;
  margin:0 0 .25rem;
  max-width:62ch;
  font-size:.82rem;
  line-height:1.65;
  color:rgba(61,35,20,.7);
}
.case-note span{
  display:inline-flex;
  align-items:center;
  min-height:1.55rem;
  padding:.32rem .58rem .28rem;
  border:1px solid rgba(61,35,20,.14);
  border-radius:999px;
  font:.56rem/1 'DM Sans', sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(61,35,20,.58);
  background:rgba(255,255,255,.18);
}
.serv-panel-desc{
  font-size:.94rem;
  color:rgba(61,35,20,.74);
}
.serv-panel-inner{
  padding-bottom:4.2rem;
}
.serv-panel-campaign-label{
  color:rgba(61,35,20,.68);
}
.serv-panel-strip{
  gap:1rem;
  margin-bottom:2.2rem;
  padding:.2rem 0 .9rem;
  scroll-snap-type:x proximity;
}
.serv-panel-strip .carousel-slide{
  scroll-snap-align:start;
  border-radius:4px;
  overflow:hidden;
  background:rgba(255,255,255,.28);
  box-shadow:0 14px 34px rgba(61,35,20,.08);
}
.serv-panel-strip .carousel-slide img{
  transform:scale(1);
  transition:transform .45s cubic-bezier(.16,1,.3,1), filter .35s ease;
}
.serv-panel-strip .carousel-slide:hover img{
  transform:scale(1.025);
  filter:saturate(1.04) contrast(1.02);
}
.test-intro{
  max-width:38rem;
  margin-left:auto;
  margin-right:auto;
}
.test-slide.prev .test-bubble,
.test-slide.next .test-bubble{
  background:rgba(248,246,238,.88);
  opacity:.82;
}
.test-bubble p{
  max-width:64ch;
}
.test-person{
  align-items:center;
}
.contact-desc{
  max-width:32rem;
}
.soc a{
  position:relative;
}
.soc a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-.18rem;
  height:1px;
  background:currentColor;
  opacity:.25;
  transform:scaleX(.45);
  transform-origin:left center;
  transition:transform .25s ease, opacity .25s ease;
}
.soc a:hover::after{
  opacity:.65;
  transform:scaleX(1);
}
@media(max-width:900px){
  .case-note{
    margin-bottom:1rem;
  }
  .case-note p{
    font-size:.8rem;
  }
  .serv-panel-strip{
    gap:.75rem;
  }
}

@media(max-width:900px){
  #sobre{
    gap:2.4rem;
  }
  .sobre-img{
    width:min(82vw, 360px);
    margin:0 auto;
    border-radius:4px;
  }
  .sobre-caption{
    width:min(82vw, 360px);
    margin:.8rem auto 0;
    font-size:.78rem;
  }
  .sobre-h{
    font-size:clamp(2.55rem,12vw,4rem);
    margin-bottom:1.6rem;
  }
  .sobre-p{
    font-size:.98rem;
    line-height:1.82;
    margin-bottom:1.15rem;
  }
  .sobre-stats{
    margin-top:2rem;
  }
  .sobre-stat{
    min-height:7rem;
  }
  #testimonios{
    padding:5.5rem 1.25rem 6rem;
  }
  .test-head{
    margin-bottom:2.4rem;
  }
  .test-title{
    font-size:clamp(3rem,14vw,4.8rem);
  }
  .test-intro{
    font-size:.88rem;
    line-height:1.75;
  }
  .test-carousel{
    min-height:35rem;
    padding-bottom:4.35rem;
  }
  .test-viewport{
    position:relative;
    min-height:30rem;
    display:block;
    touch-action:pan-y;
    overflow:visible;
  }
  .test-slide{
    position:absolute;
    top:0;
    left:50%;
    width:min(84vw, 26rem);
    opacity:0;
    pointer-events:none;
    transform:translateX(-50%) scale(.96);
  }
  .test-slide.active{
    opacity:1;
    pointer-events:auto;
    transform:translateX(-50%) scale(1);
    z-index:4;
  }
  .test-slide.prev,
  .test-slide.next{
    opacity:.5;
    pointer-events:auto;
    z-index:2;
  }
  .test-slide.prev{
    transform:translateX(calc(-50% - 30vw)) translateY(2.85rem) scale(.82);
  }
  .test-slide.next{
    transform:translateX(calc(-50% + 30vw)) translateY(2.85rem) scale(.82);
  }
  .test-bubble{
    border-radius:10px;
    border-bottom-right-radius:3px;
    padding:1.35rem;
  }
  .test-bubble::before{
    right:-10px;
    bottom:-42px;
  }
  .test-person{
    gap:.65rem;
  }
  .test-name{
    line-height:1.45;
  }
  .test-dots{
    gap:.62rem;
  }
  .test-dot{
    width:11px;
    height:11px;
  }
  .test-dot.active{
    transform:scale(1.5);
  }
}

@media(max-width:560px){
  .test-carousel{
    min-height:37rem;
  }
  .test-viewport{
    min-height:31.5rem;
  }
  .test-slide{
    width:min(86vw, 23rem);
  }
  .test-slide.prev{
    transform:translateX(calc(-50% - 32vw)) translateY(3rem) scale(.78);
  }
  .test-slide.next{
    transform:translateX(calc(-50% + 32vw)) translateY(3rem) scale(.78);
  }
  .sobre-stats{
    grid-template-columns:1fr 1fr;
  }
}

.serv-panel-strip .carousel-slide--feature{
  width:480px;
  flex:0 0 480px;
}
.serv-panel-strip .carousel-slide--landscape{
  width:420px;
  flex:0 0 420px;
}
.serv-panel-strip .carousel-slide--medium{
  width:380px;
  flex:0 0 380px;
}
.serv-panel-strip .carousel-slide--contain{
  background:#f5f5f5;
}
.serv-panel-strip .carousel-slide--contain img{
  object-fit:contain;
}

@media(max-width:900px){
  .serv-panel-strip{
    padding-right:1.2rem;
  }
  .serv-panel-strip .carousel-slide,
  .serv-panel-strip .carousel-slide--wide,
  .serv-panel-strip .carousel-slide--feature,
  .serv-panel-strip .carousel-slide--landscape,
  .serv-panel-strip .carousel-slide--medium,
  .serv-panel-strip .carousel-slide--contain,
  .carousel-slide--video{
    width:min(72vw, 260px);
    flex-basis:min(72vw, 260px);
    height:auto;
    aspect-ratio:16 / 10.6;
  }
  .carousel-slide--video{
    aspect-ratio:16 / 9;
  }
}
