@font-face { font-family: "DM Sans"; src: url("assets/fonts/dm-sans-latin.woff2") format("woff2"); font-style: normal; font-weight: 300 600; font-display: swap; }
@font-face { font-family: "Italiana"; src: url("assets/fonts/italiana-latin.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: optional; }

:root {
  --navy: #073b5c;
  --navy-deep: #02263b;
  --teal: #2c9198;
  --ink: #0d1b22;
  --paper: #ffffff;
  --mineral: #f4f5f3;
  --line: rgba(7, 59, 92, .18);
  --muted: #657078;
  --serif: "Italiana", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --ease: cubic-bezier(.2, .8, .2, 1);
}

* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-weight: 300; overflow-x: hidden; }
body.menu-open, body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }
img { height: auto; }
button, input, select, textarea { max-width: 100%; font: inherit; }
input, select, textarea { width: 100%; }
h1, h2, h3, p, li, dt, dd, a, button { overflow-wrap: break-word; }
::selection { color: white; background: var(--teal); }
.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; padding: 12px 18px; color: white; background: var(--navy); border-radius: 8px; transform: translateY(-160%); transition: transform .2s var(--ease); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #65dce2; outline-offset: 4px; }
.shell { width: min(1320px, calc(100% - 96px)); margin-inline: auto; }
.section-pad { padding-block: clamp(96px, 11vw, 180px); }
.display { margin: 0; font-family: var(--serif); font-weight: 400; line-height: .98; letter-spacing: -.025em; }
.display em { color: var(--teal); font-style: normal; }
.display--xl { font-size: clamp(58px, 7vw, 112px); }
.display--lg { font-size: clamp(52px, 6vw, 94px); }
.display--hero { font-size: clamp(76px, 9vw, 148px); }
.section-number { color: var(--teal); text-transform: uppercase; letter-spacing: .18em; font-size: 11px; font-weight: 600; }
.section-number--light { color: #77d0d4; }
.lead { max-width: 650px; color: var(--muted); font-size: clamp(19px, 2vw, 26px); line-height: 1.5; }
.text-link { display: inline-flex; gap: 28px; align-items: center; margin-top: 28px; color: var(--navy); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; border-bottom: 1px solid var(--teal); padding-bottom: 9px; }
.text-link span, .button span { transition: transform .35s var(--ease); }
.text-link:hover span, .button:hover span { transform: translate(4px, -4px); }
.button { min-height: 56px; padding: 0 28px; display: inline-flex; align-items: center; justify-content: space-between; gap: 38px; border: 1px solid currentColor; background: transparent; text-transform: uppercase; letter-spacing: .12em; font-size: 11px; font-weight: 600; cursor: pointer; transition: color .3s, background .3s, transform .3s var(--ease); }
.button:hover { transform: translateY(-3px); }
.button--outline { color: var(--navy); }
.button--outline:hover { color: white; background: var(--navy); }
.button--light { color: white; }
.button--light:hover { color: var(--navy); background: white; }
.button--dark { color: white; background: var(--navy); border-color: var(--navy); }
.button--dark:hover { background: var(--teal); border-color: var(--teal); }

/* Header */
.site-header { position: fixed; inset: 0 0 auto; z-index: 50; height: 88px; color: var(--navy); transition: background .35s, height .35s, box-shadow .35s; }
.site-header.is-scrolled, .site-header--solid { height: 72px; background: rgba(255,255,255,.88); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); box-shadow: 0 1px 0 rgba(7,59,92,.09); }
.nav { width: min(1440px, calc(100% - 64px)); height: 100%; margin: auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.brand { justify-self: start; display: flex; align-items: center; height: 100%; max-width: 112px; overflow: hidden; }
.brand__logo { width: auto; height: 78px; max-width: 92px; object-fit: contain; object-position: left center; filter: drop-shadow(0 4px 13px rgba(0,0,0,.12)); transition: height .35s var(--ease), transform .35s var(--ease); }
.site-header.is-scrolled .brand__logo, .site-header--solid .brand__logo { width: auto; height: 62px; }
.brand:hover .brand__logo { transform: translateY(-2px); }
.brand__mark { font-family: var(--serif); font-size: 35px; line-height: 1; letter-spacing: -.12em; color: var(--navy); }
.brand__name { font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; line-height: 1.35; }
.nav__links { display: flex; align-items: center; gap: 34px; }
.nav__links a { position: relative; font-size: 12px; font-weight: 500; }
.nav__links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: var(--teal); transition: right .3s; }
.nav__links a:hover::after, .nav__links a.is-active::after { right: 0; }
.nav__cta { justify-self: end; font-size: 10px; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; border: 1px solid var(--navy); padding: 13px 18px; transition: color .3s, background .3s; }
.nav__cta:hover { color: white; background: var(--navy); }
.menu-toggle { display: none; border: 0; background: none; padding: 12px; color: var(--navy); }
.menu-toggle span { display: block; width: 24px; height: 1px; margin: 6px 0; background: currentColor; transition: transform .3s, opacity .3s; }
body[data-page="home"] .site-header:not(.is-scrolled) .brand__mark,
body[data-page="home"] .site-header:not(.is-scrolled) .brand__name,
body[data-page="home"] .site-header:not(.is-scrolled) .nav__links,
body[data-page="home"] .site-header:not(.is-scrolled) .menu-toggle { color: white; }
body[data-page="home"] .site-header:not(.is-scrolled) .nav__cta { color: white; border-color: white; }
body[data-page="home"] .site-header:not(.is-scrolled) .nav__cta:hover { color: var(--navy); background: white; }
body[data-page="home"] .site-header.is-hero-immersive { height: 88px; color: white; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
body[data-page="home"] .site-header.is-hero-immersive .brand__mark,
body[data-page="home"] .site-header.is-hero-immersive .brand__name,
body[data-page="home"] .site-header.is-hero-immersive .nav__links,
body[data-page="home"] .site-header.is-hero-immersive .menu-toggle { color: white; }
body[data-page="home"] .site-header.is-hero-immersive .nav__cta { color: white; border-color: white; }
body[data-page="home"] .site-header.is-hero-marble { height: 88px; color: var(--navy); background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
body[data-page="home"] .site-header.is-hero-marble .brand__mark,
body[data-page="home"] .site-header.is-hero-marble .brand__name,
body[data-page="home"] .site-header.is-hero-marble .nav__links,
body[data-page="home"] .site-header.is-hero-marble .menu-toggle { color: var(--navy); }
body[data-page="home"] .site-header.is-hero-marble .nav__cta { color: var(--navy); border-color: var(--navy); }
body[data-page="home"] .site-header .brand,
body[data-page="home"] .site-header .nav__links,
body[data-page="home"] .site-header .nav__cta,
body[data-page="home"] .site-header .menu-toggle { animation: navArrival .8s var(--ease) both; }
body[data-page="home"] .site-header .nav__links { animation-delay: .12s; }
body[data-page="home"] .site-header .nav__cta,
body[data-page="home"] .site-header .menu-toggle { animation-delay: .2s; }

/* Home hero — scroll cinematográfico */
.home-hero { --hero-scroll: 0; --intro-opacity: 1; --scene-one: 0; --scene-two: 0; --scene-final: 0; --marble-progress: 0; --photo-two: 0; --photo-three: 0; position: relative; height: 420svh; color: white; background: var(--navy-deep); }
.home-hero__sticky { position: sticky; top: 0; height: 100svh; min-height: 580px; overflow: hidden; isolation: isolate; background: var(--navy-deep); }
.home-hero__image { position: absolute; z-index: 0; inset: -5%; width: 110%; height: 110%; max-width: none; overflow: hidden; opacity: calc(1 - var(--marble-progress)); filter: blur(calc(var(--marble-progress) * 8px)) saturate(calc(1 - var(--marble-progress) * .25)); transform: scale(calc(1.02 + var(--hero-scroll) * .15)) translate3d(calc(var(--hero-scroll) * -2.5%), calc(var(--hero-scroll) * 2%), 0); will-change: transform, opacity, filter; }
.home-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: opacity .2s linear; will-change: opacity, transform; }
.home-hero__photo--one { object-position: center 48%; transform: scale(calc(1.01 + var(--hero-scroll) * .035)); }
.home-hero__photo--two { object-position: center 58%; opacity: var(--photo-two); transform: scale(calc(1.06 - var(--photo-two) * .035)); }
.home-hero__photo--three { object-position: center 56%; opacity: var(--photo-three); transform: scale(calc(1.06 - var(--photo-three) * .035)); }
.home-hero__marble { position: absolute; z-index: 0; inset: -6%; background: url("assets/images/marble-hero.webp") center/cover no-repeat; opacity: var(--marble-progress); transform: scale(calc(1.16 - var(--marble-progress) * .12)) rotate(calc((1 - var(--marble-progress)) * -1.2deg)); filter: grayscale(.62) saturate(.24) brightness(1.46) contrast(.88); will-change: transform, opacity; }
.home-hero__marble::before { content: ""; position: absolute; inset: -4%; background: url("assets/images/marble-veins-soft.webp") center 42%/cover no-repeat; opacity: .3; mix-blend-mode: multiply; filter: grayscale(1) brightness(1.18) contrast(1.25); transform: scale(1.08) rotate(-2.5deg); }
.home-hero__marble::after { content: ""; position: absolute; inset: 0; background: linear-gradient(125deg, rgba(255,255,255,.24), rgba(224,232,235,.07)); }
.home-hero__shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(1,25,38,.78) 0%, rgba(1,25,38,.36) 46%, rgba(1,25,38,.06) 78%), linear-gradient(0deg, rgba(1,25,38,.55), transparent 50%); opacity: calc(1 - var(--marble-progress) * .72); }
.home-hero__brand { position: absolute; z-index: 2; top: clamp(104px, 18vh, 200px); left: 50%; width: clamp(130px, min(18vw, 22vh), 285px); aspect-ratio: 1; background: url("assets/images/dm-logo-transparent.png") center/contain no-repeat; transform: translate3d(-50%, calc(var(--hero-scroll) * -110px), 0) scale(calc(1 - var(--hero-scroll) * .1)); opacity: calc(var(--intro-opacity) * .9); filter: drop-shadow(0 10px 22px rgba(0,0,0,.28)); will-change: transform, opacity; }
.home-hero__brand { background: none; }
.home-hero__brand img { width: 100%; height: 100%; object-fit: contain; opacity: 0; transform: translateY(18px) scale(.92); animation: heroBrandImageIn 1.1s 1.65s var(--ease) forwards; }
.home-hero__copy { position: absolute; z-index: 3; left: max(48px, 7vw); bottom: max(76px, 10vh); max-width: 760px; opacity: var(--intro-opacity); transform: translate3d(0, calc(var(--hero-scroll) * -82px), 0); will-change: transform, opacity; }
.home-hero__copy h1 { margin: 0 0 24px; font: 400 clamp(54px, min(7vw, 11vh), 112px)/.92 var(--serif); letter-spacing: -.03em; }
.home-hero__copy p { width: min(510px, 86vw); margin: 0 0 34px; font-size: clamp(16px, 1.4vw, 21px); line-height: 1.55; }
.home-hero__copy h1, .home-hero__copy p, .home-hero__copy .button { animation: heroElementIn 1s var(--ease) both; }
.home-hero__copy h1 { animation: none; }
.home-hero__copy p { animation-delay: .52s; }
.home-hero__copy .button { animation-delay: .7s; }
.home-hero__story { position: absolute; z-index: 4; inset: 0; pointer-events: none; }
.home-hero__story-line { position: absolute; width: min(900px, 78vw); margin: 0; color: white; font: 400 clamp(56px, 7.2vw, 116px)/.95 var(--serif); letter-spacing: -.035em; text-wrap: balance; will-change: transform, opacity, filter; }
.home-hero__story-line em { color: #83d4d7; font-style: normal; }
.home-hero__story-line--one { top: 50%; left: 50%; text-align: center; opacity: var(--scene-one); transform: translate3d(-50%, calc(-50% + (1 - var(--scene-one)) * 52px), 0) scale(calc(.96 + var(--scene-one) * .04)); filter: blur(calc((1 - var(--scene-one)) * 7px)); }
.home-hero__story-line--two { left: max(48px, 7vw); bottom: max(84px, 12vh); opacity: var(--scene-two); transform: translate3d(calc((1 - var(--scene-two)) * 70px), 0, 0); filter: blur(calc((1 - var(--scene-two)) * 7px)); }
.home-hero__final { position: absolute; z-index: 5; inset: 0; display: grid; place-content: center; justify-items: center; gap: 28px; isolation: isolate; color: var(--navy-deep); text-align: center; opacity: var(--scene-final); transform: scale(calc(.9 + var(--scene-final) * .1)); will-change: opacity, transform; }
.home-hero__final::before { content: ""; position: absolute; z-index: -1; top: 50%; left: 50%; width: clamp(360px, 48vw, 720px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.94) 0 24%, rgba(255,255,255,.52) 46%, transparent 72%); filter: blur(4px); transform: translate(-50%,-57%) scale(calc(.86 + var(--scene-final) * .14)); }
.home-hero__final img { position: relative; z-index: 1; width: clamp(220px, 27vw, 410px); max-height: 46vh; padding: clamp(13px, 1.5vw, 22px); border: 1px solid rgba(255,255,255,.82); border-radius: clamp(38px, 6vw, 72px); object-fit: contain; background: rgba(255,255,255,.5); box-shadow: 0 32px 74px -28px rgba(2,38,59,.5), inset 0 1px 0 rgba(255,255,255,.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); filter: drop-shadow(0 18px 34px rgba(2,38,59,.2)); animation: finalLogoFloat 5s ease-in-out infinite; }
.home-hero__final p { position: relative; z-index: 1; margin: 0; font: 400 clamp(34px, 4.2vw, 66px)/1.05 var(--serif); letter-spacing: -.025em; text-shadow: 0 2px 20px rgba(255,255,255,.8); }
.home-hero__progress { position: absolute; z-index: 6; right: 24px; top: 22%; width: 1px; height: 56%; overflow: hidden; background: rgba(255,255,255,.28); opacity: calc(1 - var(--scene-final)); }
.home-hero__progress i { display: block; width: 100%; height: 100%; background: white; transform: scaleY(var(--hero-scroll)); transform-origin: top; }
.home-hero__anchor { position: absolute; left: 0; width: 1px; height: 1px; pointer-events: none; }
.home-hero__anchor--one { top: 112svh; }
.home-hero__anchor--two { top: 176svh; }
.home-hero__anchor--final { top: 300svh; }
.home-hero__caption { position: absolute; z-index: 6; right: 28px; bottom: 28px; font-size: 9px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); opacity: var(--intro-opacity); }
.home-hero__scroll { position: absolute; z-index: 3; left: 50%; bottom: 27px; display: grid; justify-items: center; gap: 10px; color: white; transform: translateX(-50%); opacity: calc(.8 - var(--hero-scroll) * 2); font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.home-hero__scroll i { position: relative; width: 1px; height: 42px; overflow: hidden; background: rgba(255,255,255,.38); }
.home-hero__scroll i::after { content: ""; position: absolute; inset: -100% 0 auto; height: 100%; background: white; animation: heroScrollLine 1.8s ease-in-out infinite; }
@keyframes heroLogoArrival { from { opacity: 0; transform: translate3d(0, 24px, 0) scale(.92); } to { opacity: 1; transform: none; } }
@keyframes heroBrandImageIn { to { opacity: 1; transform: none; } }
@keyframes navArrival { from { opacity: 0; transform: translateY(-18px); } to { opacity: 1; transform: none; } }
@keyframes heroTitleIn { from { transform: translateY(24px); clip-path: inset(0 0 24% 0); } to { transform: none; clip-path: inset(0); } }
@keyframes heroElementIn { from { opacity: 0; transform: translateY(34px); filter: blur(5px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes heroScrollLine { 0% { transform: translateY(0); } 100% { transform: translateY(200%); } }
@keyframes finalLogoFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }

/* Legacy scroll-film support */
.scroll-film { height: 350vh; background: white; }
.scroll-film__sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; background: white; }
.scroll-film__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; background: white; }
.scroll-film__copy { position: absolute; right: max(48px, 7vw); bottom: max(76px, 9vh); max-width: 600px; color: var(--navy); opacity: 0; transform: translateY(36px); will-change: transform, opacity; pointer-events: none; }
.scroll-film__copy h1 { margin: 0 0 24px; font: 400 clamp(54px, 7vw, 108px)/.92 var(--serif); letter-spacing: -.03em; }
.scroll-film__copy p { width: min(480px, 90vw); margin: 0; font-size: clamp(16px, 1.4vw, 21px); line-height: 1.5; }
.scroll-cue { position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; color: var(--navy); font-size: 9px; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; transition: opacity .3s; }
.scroll-cue span { width: 18px; height: 29px; border: 1px solid currentColor; border-radius: 12px; position: relative; }
.scroll-cue span::after { content: ""; width: 2px; height: 5px; border-radius: 2px; position: absolute; top: 5px; left: 7px; background: currentColor; animation: scrollDot 1.6s infinite; }
@keyframes scrollDot { 0% { opacity: 0; transform: translateY(0); } 35% { opacity: 1; } 100% { opacity: 0; transform: translateY(10px); } }
.film-progress { position: absolute; right: 26px; top: 22%; height: 56%; width: 1px; background: rgba(7,59,92,.16); }
.film-progress i { display: block; width: 1px; height: 0; background: var(--teal); }

/* Home */
.home-page-veins { display: none; }
body[data-page="home"] main { background: linear-gradient(rgba(255,255,255,.965), rgba(255,255,255,.965)), url("assets/images/marble-veins-soft.webp") center top/cover fixed; }
body[data-page="home"] .manifesto,
body[data-page="home"] .stone-selection,
body[data-page="home"] .featured-work,
body[data-page="home"] .commitment,
body[data-page="home"] .faq { background: transparent; }
.manifesto { background: white; }
.manifesto__grid { display: grid; grid-template-columns: .45fr 1.35fr .75fr; gap: 50px; align-items: start; }
.manifesto__text { border-left: 1px solid var(--line); padding-left: 46px; margin-top: 68px; }
.manifesto__text p { margin: 0 0 22px; color: #53616a; font-size: 17px; line-height: 1.65; }
.materials { position: relative; color: white; background: var(--navy-deep); overflow: hidden; }
.materials::before { content: ""; position: absolute; inset: -6% 0; opacity: .16; background: url("assets/images/marble-hero.webp") center calc(50% + var(--materials-shift, 0px))/cover; mix-blend-mode: luminosity; will-change: background-position; }
.materials .shell { position: relative; }
.materials__head { display: grid; grid-template-columns: .7fr 1.5fr .8fr; gap: 48px; align-items: end; }
.materials__head p { margin: 0; color: rgba(255,255,255,.68); line-height: 1.7; }
.material-list { margin-top: 90px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.2); }
.material { position: relative; padding: 34px 34px 24px 0; min-height: 260px; border-right: 1px solid rgba(255,255,255,.2); transition: background .45s var(--ease), transform .45s var(--ease); }
.material + .material { padding-left: 34px; }
.material:last-child { border-right: 0; }
.material::before { content: ""; position: absolute; top: -1px; left: 0; width: 100%; height: 2px; background: #76d0d4; transform: scaleX(0); transform-origin: left; transition: transform .55s var(--ease); }
.material span { display: inline-block; color: #76d0d4; font-size: 11px; transition: transform .45s var(--ease); }
.material h3 { margin: 60px 0 16px; font: 400 clamp(25px, 2.4vw, 38px)/1 var(--serif); transition: transform .45s var(--ease); }
.material p { color: rgba(255,255,255,.6); line-height: 1.5; font-size: 13px; transition: color .45s; }
.material.is-visible:hover { background: rgba(255,255,255,.045); transform: translateY(-9px); }
.material:hover::before { transform: scaleX(1); }
.material:hover span { transform: translateX(7px); }
.material:hover h3 { transform: translateX(7px); }
.material:hover p { color: rgba(255,255,255,.82); }
.stone-selection { overflow: hidden; background: #f7f8f6; }
.stone-selection__intro { display: grid; grid-template-columns: .55fr 1.35fr .65fr; gap: 48px; align-items: end; }
.stone-selection__intro p { margin: 0; color: var(--muted); line-height: 1.7; }
.mobile-break { display: none; }
.stone-showcase { margin-top: clamp(90px, 10vw, 160px); }
.stone-feature { --stone-progress: .5; --stone-tilt-x: 0deg; --stone-tilt-y: 0deg; --stone-lift: 0px; min-height: 720px; padding: clamp(80px, 9vw, 140px) 0; display: grid; grid-template-columns: minmax(0, 1.42fr) minmax(280px, .58fr); align-items: center; gap: clamp(45px, 8vw, 130px); border-top: 1px solid var(--line); perspective: 1500px; }
.stone-feature--guatemala { grid-template-columns: minmax(280px, .62fr) minmax(0, 1.38fr); }
.stone-feature__media { position: relative; min-height: 580px; overflow: hidden; isolation: isolate; background: var(--navy-deep); border-radius: clamp(24px, 3vw, 42px); clip-path: inset(0 100% 0 0 round clamp(24px, 3vw, 42px)); transform: perspective(1200px) rotateX(var(--stone-tilt-x)) rotateY(var(--stone-tilt-y)) translate3d(0, var(--stone-lift), 0); box-shadow: 0 38px 76px -42px rgba(2,38,59,.56), 0 16px 32px -24px rgba(2,38,59,.4); transition: clip-path 1.25s var(--ease), box-shadow .6s var(--ease); will-change: transform, clip-path; }
.stone-feature--guatemala .stone-feature__media { min-height: 660px; clip-path: inset(0 0 0 100% round clamp(24px, 3vw, 42px)); }
.stone-feature.is-visible .stone-feature__media, .stone-feature--guatemala.is-visible .stone-feature__media { clip-path: inset(0 round clamp(24px, 3vw, 42px)); }
.stone-feature__media::after { content: ""; position: absolute; z-index: 3; inset: 0; border: 1px solid rgba(255,255,255,.26); border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(2,38,59,.08); pointer-events: none; }
.stone-feature__media:hover { box-shadow: 0 48px 92px -42px rgba(2,38,59,.7), 0 22px 38px -22px rgba(2,38,59,.48); }
.stone-feature__media img { position: absolute; inset: -5%; width: 110%; height: 110%; max-width: none; object-fit: cover; will-change: transform, filter; }
.stone-feature__number { position: absolute; z-index: 4; top: 24px; left: 26px; color: white; font-size: 10px; font-weight: 600; letter-spacing: .16em; mix-blend-mode: difference; }
.stone-feature__copy { align-self: center; padding-block: 34px; display: flex; flex-direction: column; justify-content: flex-start; }
.stone-feature__copy > span { margin-bottom: clamp(28px, 3vw, 46px); color: var(--teal); font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.stone-feature__copy h3 { font-size: clamp(54px, 6vw, 96px); white-space: nowrap; }
.stone-feature__copy p { max-width: 390px; margin: clamp(22px, 2.2vw, 34px) 0 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.stone-feature--bordeaux .stone-feature__media { min-height: 0; aspect-ratio: 3 / 2; }
.stone-feature--bordeaux .stone-feature__media img { inset: 4%; width: 92%; height: 92%; object-fit: contain; transform: translate3d(calc((var(--stone-progress) - .5) * 2%), 0, 0) scale(.98); filter: drop-shadow(0 22px 24px rgba(0,0,0,.24)); }
.stone-feature__sheen { position: absolute; z-index: 2; inset: -20%; background: linear-gradient(108deg, transparent 30%, rgba(255,255,255,.2) 48%, transparent 66%); transform: translateX(-120%); }
.stone-feature--bordeaux.is-visible .stone-feature__sheen { animation: stoneSheen 5.8s 1s ease-in-out infinite; }
.stone-feature--guatemala .stone-feature__media img { transform: scale(calc(1.04 + var(--stone-progress) * .08)); filter: saturate(calc(.82 + var(--stone-progress) * .28)) brightness(calc(.82 + var(--stone-progress) * .18)); }
.stone-feature__orbit { position: absolute; z-index: 3; inset: 8%; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; opacity: 0; transform: scale(.78) rotate(-18deg); }
.stone-feature--guatemala.is-visible .stone-feature__orbit { animation: stoneOrbit 1.5s .65s var(--ease) forwards, stoneOrbitPulse 8s 2.2s ease-in-out infinite; }
.stone-feature--taj .stone-feature__media { background: #ddd8ce; }
.stone-feature--taj .stone-feature__media img { transform: scale(1.08) translate3d(calc((.5 - var(--stone-progress)) * 4%), calc((var(--stone-progress) - .5) * 4%), 0); }
.stone-feature__light { position: absolute; z-index: 2; inset: -35%; background: linear-gradient(112deg, transparent 34%, rgba(255,255,255,.72) 48%, transparent 61%); mix-blend-mode: soft-light; transform: translateX(-75%) rotate(3deg); }
.stone-feature--taj.is-visible .stone-feature__light { animation: stoneLight 6.8s 1.2s ease-in-out infinite; }
@keyframes stoneSheen { 0%, 52% { transform: translateX(-120%); } 88%, 100% { transform: translateX(120%); } }
@keyframes stoneOrbit { to { opacity: .7; transform: scale(1) rotate(0); } }
@keyframes stoneOrbitPulse { 0%, 100% { transform: scale(1); opacity: .7; } 50% { transform: scale(.94); opacity: .35; } }
@keyframes stoneLight { 0%, 44% { transform: translateX(-75%) rotate(3deg); } 82%, 100% { transform: translateX(75%) rotate(3deg); } }
.project-intro { display: grid; grid-template-columns: 1.5fr .6fr; gap: 80px; align-items: end; margin-bottom: 80px; }
.project-intro .section-number { margin-bottom: 28px; }
.project-intro__side p { color: var(--muted); font-size: 16px; line-height: 1.6; }
.gallery-rail { width: min(1480px, calc(100% - 48px)); margin-inline: auto; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: clamp(310px, 34vw, 520px) clamp(280px, 27vw, 410px); gap: 12px; }
.gallery-card { --card-x: 0px; --card-y: 0px; --card-rotate-x: 0deg; --card-rotate-y: 0deg; --card-lift: 0px; position: relative; overflow: hidden; color: white; border-radius: 16px; isolation: isolate; transform-style: preserve-3d; transform-origin: center; box-shadow: 0 28px 58px -42px rgba(2,38,59,.68); transition: opacity .9s var(--ease), transform .45s var(--ease), box-shadow .5s var(--ease); will-change: transform; }
.gallery-card:nth-child(1) { grid-column: span 6; }
.gallery-card:nth-child(2), .gallery-card:nth-child(3) { grid-column: span 3; }
.gallery-card:nth-child(4) { grid-column: span 4; }
.gallery-card:nth-child(5) { grid-column: span 8; }
.gallery-card img { width: 100%; height: 100%; max-width: none; object-fit: cover; transform: scale(1.07) translate3d(var(--card-x), var(--card-y), 0); transition: transform 1.2s var(--ease), filter .5s; will-change: transform; }
.gallery-card:nth-child(1) img { object-position: center 58%; }
.gallery-card:nth-child(2) img { object-position: center 48%; }
.gallery-card:nth-child(3) img { object-position: center 56%; }
.gallery-card:nth-child(4) img { object-position: center 58%; }
.gallery-card:nth-child(5) img { object-position: center 58%; }
.gallery-card::before { content: ""; position: absolute; z-index: 2; inset: 12px; border: 1px solid rgba(255,255,255,.45); border-radius: 10px; opacity: 0; transform: scale(.97); transition: opacity .45s, transform .55s var(--ease); pointer-events: none; }
.gallery-card::after { content: ""; position: absolute; z-index: 1; inset: 48% 0 0; background: linear-gradient(transparent, rgba(0,25,38,.8)); }
.gallery-card span { position: absolute; z-index: 3; left: 28px; bottom: 26px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; transition: transform .45s var(--ease), letter-spacing .45s var(--ease); }
.gallery-card:hover { --card-lift: -8px; box-shadow: 0 44px 78px -34px rgba(2,38,59,.78); }
.gallery-card:hover::before { opacity: 1; transform: none; }
.gallery-card:hover img { transform: scale(1.12) translate3d(var(--card-x), var(--card-y), 0); filter: saturate(.86); }
.gallery-card:hover span { transform: translateY(-7px); letter-spacing: .15em; }
.gallery-rail .gallery-card:nth-child(2) { transition-delay: .08s; }
.gallery-rail .gallery-card:nth-child(3) { transition-delay: .16s; }
.gallery-rail .gallery-card:nth-child(4) { transition-delay: .08s; }
.gallery-rail .gallery-card:nth-child(5) { transition-delay: .16s; }
.light-stones { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 850px; background: #f5f5f2; }
.light-stones__image { --light-shift: 0px; position: relative; min-height: 760px; overflow: hidden; }
.light-stones__image img { position: absolute; inset: -7% 0; width: 100%; height: 114%; max-width: none; object-fit: cover; object-position: 53% center; transform: translate3d(0, var(--light-shift), 0) scale(1.025); will-change: transform; }
.light-stones__copy { align-self: center; padding-inline: clamp(48px, 7vw, 120px); }
.light-stones__copy .section-number { margin-bottom: 35px; }
.light-stones__copy p { color: var(--muted); line-height: 1.7; }
.commitment { overflow: visible; text-align: left; }
.commitment__head { display: grid; grid-template-columns: .52fr 1.25fr .55fr; gap: clamp(30px, 5vw, 76px); align-items: end; }
.commitment__head > p { max-width: 360px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.process-orbit { position: relative; height: 430vh; margin-top: clamp(54px, 7vw, 96px); }
.process-orbit__sticky { position: sticky; top: 72px; height: calc(100vh - 72px); min-height: 650px; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.process-orbit__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.process-orbit__toolbar > p { margin: 0; color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.process-orbit__status { display: flex; align-items: center; gap: 12px; color: var(--navy); font-size: 11px; font-weight: 600; letter-spacing: .14em; }
.process-orbit__status i { width: 62px; height: 1px; background: var(--line); }
.process-orbit__stage { position: relative; flex: 1; min-height: 0; display: grid; place-items: center; }
.process-orbit__ring { position: relative; width: min(64vh, 610px); aspect-ratio: 1; }
.process-orbit__ring > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; transform: rotate(-90deg); }
.process-orbit__ring circle { fill: none; stroke-width: .35; vector-effect: non-scaling-stroke; }
.process-orbit__ring-base { stroke: rgba(7,59,92,.18); }
.process-orbit__ring-progress { stroke: var(--teal); stroke-width: .75 !important; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset .45s var(--ease); }
.process-orbit__point { position: absolute; z-index: 4; width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid rgba(7,59,92,.2); border-radius: 50%; color: var(--navy); background: #f8faf9; box-shadow: 0 12px 30px -22px rgba(2,38,59,.7); cursor: pointer; transform: translate(-50%, -50%); transition: color .4s, background .4s, border-color .4s, transform .4s var(--ease), box-shadow .4s var(--ease); }
.process-orbit__point span { font-size: 10px; font-weight: 600; letter-spacing: .14em; }
.process-orbit__point:nth-of-type(1) { top: 2%; left: 50%; }
.process-orbit__point:nth-of-type(2) { top: 26%; left: 91.5%; }
.process-orbit__point:nth-of-type(3) { top: 74%; left: 91.5%; }
.process-orbit__point:nth-of-type(4) { top: 98%; left: 50%; }
.process-orbit__point:nth-of-type(5) { top: 74%; left: 8.5%; }
.process-orbit__point:nth-of-type(6) { top: 26%; left: 8.5%; }
.process-orbit__point.is-active { color: white; border-color: var(--navy-deep); background: var(--navy-deep); box-shadow: 0 18px 38px -18px rgba(2,38,59,.9), 0 0 0 7px rgba(44,145,152,.16); transform: translate(-50%, -50%) scale(1.16); }
.process-orbit__content { position: absolute; inset: 17%; border-radius: 50%; background: rgba(255,255,255,.76); box-shadow: 0 28px 70px -52px rgba(2,38,59,.72), inset 0 0 0 1px rgba(7,59,92,.08); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.process-orbit__panel { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: clamp(38px, 5vw, 68px); text-align: center; opacity: 0; visibility: hidden; transform: translateY(22px) scale(.96); transition: opacity .42s var(--ease), transform .42s var(--ease), visibility .42s; }
.process-orbit__panel.is-active { opacity: 1; visibility: visible; transform: none; }
.process-orbit__panel > span { color: var(--teal); font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.process-orbit__panel h3 { margin: 20px 0 18px; font: 400 clamp(40px, 4vw, 60px)/.94 var(--serif); color: var(--navy); }
.process-orbit__panel p { max-width: 290px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.process-orbit__buttons { position: absolute; z-index: 6; right: 0; bottom: 22px; display: flex; gap: 8px; }
.process-orbit__buttons button { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--navy); background: rgba(255,255,255,.78); font-size: 20px; cursor: pointer; transition: color .3s, background .3s, border-color .3s, transform .3s var(--ease); }
.process-orbit__buttons button:hover:not(:disabled) { color: white; border-color: var(--navy); background: var(--navy); transform: translateY(-2px); }
.process-orbit__buttons button:disabled { opacity: .3; cursor: default; }
.faq { background: var(--mineral); }
.faq__layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: clamp(70px, 10vw, 160px); align-items: start; }
.faq__intro { position: sticky; top: 125px; }
.faq__intro .section-number { margin-bottom: 30px; }
.faq__intro .display { font-size: clamp(50px, 5.5vw, 84px); }
.faq__intro > p { max-width: 470px; margin: 38px 0 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.faq__list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { min-height: 104px; display: grid; grid-template-columns: 1fr 28px; align-items: center; gap: 28px; color: var(--navy); cursor: pointer; list-style: none; font: 400 clamp(24px, 2.2vw, 34px)/1.16 var(--serif); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:focus-visible { outline: 2px solid var(--teal); outline-offset: 7px; }
.faq-item__icon { width: 24px; fill: none; stroke: var(--teal); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: transform .35s var(--ease); }
.faq-item[open] .faq-item__icon { transform: rotate(180deg); }
.faq-item__content { padding: 0 58px 42px 0; color: var(--muted); }
.faq-item__content > p { margin: 0; font-size: 15px; line-height: 1.75; }
.faq-item__content > p + p { margin-top: 18px; }
.finish-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 34px; }
.finish-list > div { padding: 20px 0; border-top: 1px solid rgba(7,59,92,.1); }
.finish-list strong { display: block; margin-bottom: 8px; color: var(--navy); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.finish-list p { margin: 0; font-size: 13px; line-height: 1.65; }
.faq__note { margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; line-height: 1.65; }
.cta-band { color: white; background: var(--navy); padding: 70px 0; position: relative; overflow: hidden; }
.cta-band::after { content: "DM"; position: absolute; right: 4vw; top: -55px; color: rgba(255,255,255,.035); font: 230px var(--serif); transform: translate3d(var(--cta-shift, 0px), 0, 0); will-change: transform; }
.cta-band .shell { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.cta-band .display { font-size: clamp(36px, 4vw, 62px); }
.cta-band .button { position: relative; overflow: hidden; }
.cta-band .button::before { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.2) 48%, transparent 72%); transform: translateX(-140%); }
.cta-band .button:hover::before { animation: buttonSheen .8s var(--ease); }
@keyframes buttonSheen { to { transform: translateX(140%); } }

/* Interior pages */
.page-hero { min-height: 100vh; padding-top: 160px; display: grid; grid-template-columns: .85fr 1.15fr; align-items: end; overflow: hidden; }
.page-hero > .shell { width: auto; margin: 0; padding: 0 5vw 10vh 7vw; }
.page-hero__count { margin-bottom: 30px; color: var(--teal); font-size: 11px; letter-spacing: .16em; }
.page-hero p { color: var(--muted); max-width: 500px; font-size: 18px; line-height: 1.6; }
.page-hero__image { height: calc(100vh - 110px); overflow: hidden; }
.page-hero__image img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.07); }
body[data-page="portfolio"] { background: #edf1ef; }
.page-hero--portfolio { background: linear-gradient(145deg, #f7f8f6 0%, #e8eeec 48%, #f4f6f4 100%); }
.page-hero--portfolio .display--hero { font-size: clamp(52px, 5.4vw, 88px); }
.page-hero--portfolio .page-hero__image img { object-position: center 52%; }
.portfolio-showcase { --portfolio-scroll: 0; --vein-x: 0px; --vein-y: 0px; --vein-dash: 0px; position: relative; isolation: isolate; overflow: hidden; background: #e9eeec; }
.portfolio-showcase::before { content: ""; position: absolute; z-index: -2; inset: -4%; background: linear-gradient(115deg, rgba(255,255,255,.76), rgba(224,232,229,.38) 45%, rgba(255,255,255,.63)), url("assets/images/marble-hero.webp") center/cover; background-blend-mode: screen, luminosity; opacity: .22; filter: grayscale(1) contrast(.82); transform: translate3d(0, var(--vein-y), 0) scale(1.08); will-change: transform; }
.portfolio-showcase::after { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; background: radial-gradient(circle at 78% 18%, rgba(255,255,255,.72), transparent 27%), radial-gradient(circle at 18% 64%, rgba(255,255,255,.58), transparent 31%), linear-gradient(180deg, rgba(237,241,239,.26), rgba(232,238,235,.74)); }
.portfolio-veins { position: absolute; z-index: 0; inset: -140px -9vw; pointer-events: none; opacity: .72; transform: translate3d(var(--vein-x), var(--vein-y), 0); will-change: transform; }
.portfolio-veins svg { width: 100%; height: 100%; overflow: visible; }
.portfolio-vein { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; stroke-dasharray: 18 11 110 16; stroke-dashoffset: var(--vein-dash); }
.portfolio-vein--one { stroke: rgba(7,59,92,.24); stroke-width: 1.5; }
.portfolio-vein--two { stroke: rgba(44,145,152,.28); stroke-width: 1.15; stroke-dasharray: 7 12 86 18; }
.portfolio-vein--three { stroke: rgba(255,255,255,.9); stroke-width: 2.2; opacity: .76; }
.portfolio-vein--four { stroke: rgba(7,59,92,.13); stroke-width: 2.7; opacity: .72; }
.portfolio-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(88px, 9vw, 145px) 34px; }
.portfolio-piece { --piece-rx: 0deg; --piece-ry: 0deg; --piece-lift: 0px; margin: 0; overflow: visible; perspective: 1400px; scroll-margin-top: 96px; }
.portfolio-piece__trigger { width: 100%; padding: 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; transform: perspective(1400px) rotateX(var(--piece-rx)) rotateY(var(--piece-ry)) translate3d(0,var(--piece-lift),0); transform-style: preserve-3d; transition: transform .65s var(--ease); will-change: transform; }
.portfolio-piece--large { grid-column: span 2; }
.portfolio-piece__media { position: relative; overflow: hidden; border-radius: clamp(18px, 2vw, 30px); background: var(--mineral); box-shadow: 0 30px 70px -46px rgba(2,38,59,.7), 0 12px 30px -24px rgba(2,38,59,.46); clip-path: inset(0 0 100% 0 round clamp(18px, 2vw, 30px)); transition: clip-path 1.15s var(--ease), box-shadow .65s var(--ease); }
.portfolio-piece.is-visible .portfolio-piece__media { clip-path: inset(0 round clamp(18px, 2vw, 30px)); }
.portfolio-piece__media::before { content: ""; position: absolute; z-index: 2; inset: 0; pointer-events: none; background: linear-gradient(112deg, transparent 20%, rgba(255,255,255,.22) 46%, transparent 68%); transform: translateX(-130%); transition: transform .9s var(--ease); }
.portfolio-piece__media::after { content: ""; position: absolute; z-index: 2; inset: 0; pointer-events: none; border: 1px solid rgba(255,255,255,.34); border-radius: inherit; box-shadow: inset 0 -70px 90px -90px rgba(1,24,37,.7); }
.portfolio-piece__video-count { position: absolute; z-index: 3; left: 18px; bottom: 18px; min-height: 38px; display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; border: 1px solid rgba(255,255,255,.46); border-radius: 999px; color: white !important; background: rgba(2,38,59,.58); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); font-size: 9px !important; font-weight: 600; letter-spacing: .12em !important; box-shadow: 0 10px 28px rgba(0,0,0,.14); }
.portfolio-piece__video-count svg { width: 14px; height: 14px; fill: currentColor; }
.portfolio-piece img { width: 100%; aspect-ratio: 4/5; object-fit: cover; transform: scale(1.055); transition: transform 1.05s var(--ease), filter .7s; }
.portfolio-piece--large img { aspect-ratio: 16/8; }
.portfolio-piece--tall { margin-top: 150px; }
.portfolio-piece:hover .portfolio-piece__trigger, .portfolio-piece__trigger:focus-visible { --piece-lift: -8px; }
.portfolio-piece:hover .portfolio-piece__media, .portfolio-piece__trigger:focus-visible .portfolio-piece__media { box-shadow: 0 44px 84px -46px rgba(2,38,59,.8), 0 20px 34px -22px rgba(2,38,59,.52); }
.portfolio-piece:hover .portfolio-piece__media::before, .portfolio-piece__trigger:focus-visible .portfolio-piece__media::before { transform: translateX(130%); }
.portfolio-piece:hover img, .portfolio-piece__trigger:focus-visible img { transform: scale(1.015); filter: saturate(.9) contrast(1.02); }
.portfolio-piece__open { position: absolute; right: 18px; bottom: 18px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: var(--navy); background: rgba(255,255,255,.92); box-shadow: 0 10px 28px rgba(0,0,0,.16); transform: scale(.9); opacity: 0; transition: opacity .3s, transform .3s var(--ease); }
.portfolio-piece__open svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.portfolio-piece:hover .portfolio-piece__open, .portfolio-piece__trigger:focus-visible .portfolio-piece__open { opacity: 1; transform: scale(1); }
.portfolio-piece__meta { display: flex; justify-content: space-between; gap: 30px; align-items: baseline; padding: 20px 4px 0; border-top: 1px solid rgba(7,59,92,.22); margin-top: 20px; transform: translateZ(24px); }
.portfolio-piece span { color: var(--teal); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.portfolio-piece h2 { margin: 0; font: 400 clamp(26px, 3vw, 46px) var(--serif); }
.project-modal { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 28px; visibility: hidden; opacity: 0; transition: opacity .35s, visibility .35s; }
.project-modal.is-open { visibility: visible; opacity: 1; }
.project-modal__backdrop { position: absolute; inset: 0; background: rgba(1,20,31,.78); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.project-modal__panel { position: relative; width: min(1400px, 95vw); height: min(850px, 88vh); display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(320px, .7fr); overflow: hidden; border-radius: 28px; background: white; box-shadow: 0 30px 90px rgba(0,0,0,.38); transform: translateY(22px) scale(.98); transition: transform .45s var(--ease); }
.project-modal.is-open .project-modal__panel { transform: none; }
.project-modal__media { position: relative; min-width: 0; overflow: hidden; background: #dcdedb; }
.project-modal__media > img, .project-modal__media > video { width: 100%; height: 100%; object-fit: cover; background: #101719; }
.project-modal__media > img { transition: opacity .18s ease; }
.project-modal__media > video { position: absolute; inset: 0; }
.project-modal__media > [hidden] { display: none !important; }
.project-modal__media > img.is-changing { opacity: .35; }
.project-modal__details { display: flex; flex-direction: column; padding: clamp(48px, 5vw, 86px) clamp(38px, 4vw, 68px) 46px; }
.project-modal__details > span { color: var(--teal); font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.project-modal__details h2 { margin-top: 26px; color: var(--navy); font-size: clamp(42px, 4.5vw, 76px); line-height: .95; }
.project-modal__details p { margin: 44px 0 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.project-modal__counter { margin-top: auto; display: flex; align-items: baseline; gap: 9px; color: var(--muted); font-size: 12px; }
.project-modal__counter strong { color: var(--navy); font: 400 42px var(--serif); }
.project-modal__close { position: absolute; z-index: 5; top: 20px; right: 20px; width: 46px; height: 46px; display: grid; place-items: center; border: 0; border-radius: 50%; color: var(--navy); background: rgba(255,255,255,.94); cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.project-modal__close svg, .project-modal__arrow svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.project-modal__arrow { position: absolute; z-index: 3; top: 50%; width: 52px; height: 52px; display: grid; place-items: center; border: 0; border-radius: 50%; color: var(--navy); background: rgba(255,255,255,.9); cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.14); transform: translateY(-50%); transition: background .3s, transform .3s var(--ease); }
.project-modal__arrow:hover { background: white; transform: translateY(-50%) scale(1.06); }
.project-modal__arrow--prev { left: 22px; }
.project-modal__arrow--next { right: 22px; }
.project-modal__progress { position: absolute; z-index: 3; left: 28px; right: 28px; bottom: 24px; display: flex; gap: 6px; }
.project-modal__progress button { height: 3px; flex: 1; padding: 0; border: 0; background: rgba(255,255,255,.42); cursor: pointer; }
.project-modal__progress button.is-active { background: white; }
.project-modal__media.is-video .project-modal__progress { bottom: 66px; }
.essence-hero { min-height: 82vh; padding-top: 210px; display: flex; align-items: center; background: linear-gradient(to bottom, white, #f5f6f4); }
.essence-hero .section-number { margin-bottom: 42px; }
.essence-story { display: grid; grid-template-columns: 1fr 1fr; background: var(--navy-deep); color: white; }
.essence-story__image { min-height: 900px; overflow: hidden; }
.essence-story__image img { width: 100%; height: 100%; object-fit: cover; }
.essence-story__copy { align-self: center; padding-inline: clamp(60px, 8vw, 145px); }
.big-index { display: block; margin-bottom: 80px; color: #77d0d4; font: 50px var(--serif); }
.essence-story__copy p { color: rgba(255,255,255,.68); font-size: 17px; line-height: 1.75; }
.essence-management { display: grid; grid-template-columns: .82fr 1.18fr; min-height: 820px; background: #f4f5f3; }
.essence-management__copy { align-self: center; padding-inline: clamp(48px, 7vw, 120px); }
.essence-management__copy .section-number { margin-bottom: 34px; }
.essence-management__copy p { max-width: 520px; margin-top: 44px; color: var(--muted); font-size: 16px; line-height: 1.75; }
.essence-management__image { min-height: 760px; overflow: hidden; }
.essence-management__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.history-timeline { --timeline-progress: 0; position: relative; overflow: hidden; background: #f1f4f2; }
.history-timeline::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 13% 16%, rgba(255,255,255,.92), transparent 30%), radial-gradient(circle at 84% 74%, rgba(44,145,152,.08), transparent 28%); }
.history-timeline .shell { position: relative; }
.history-timeline__intro { display: grid; grid-template-columns: .48fr 1.52fr; gap: 60px; align-items: start; margin-bottom: clamp(90px, 11vw, 150px); }
.history-timeline__track { position: relative; display: grid; gap: clamp(70px, 9vw, 130px); }
.history-timeline__line { position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; overflow: hidden; background: rgba(7,59,92,.16); transform: translateX(-50%); }
.history-timeline__line i { display: block; width: 100%; height: 100%; background: linear-gradient(var(--teal), #76d0d4); transform: scaleY(var(--timeline-progress)); transform-origin: top; will-change: transform; }
.history-step { --step-progress: 0; position: relative; display: grid; grid-template-columns: minmax(0,1fr) 84px minmax(0,1fr); align-items: center; min-height: 560px; outline: none; }
.history-step__node { grid-column: 2; justify-self: center; width: 19px; height: 19px; border: 4px solid #f1f4f2; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 1px rgba(44,145,152,.38), 0 8px 22px rgba(7,59,92,.18), 0 0 0 calc(var(--step-progress) * 12px) rgba(44,145,152,.08); transform: scale(calc(.48 + var(--step-progress) * .52)); transition: box-shadow .45s var(--ease); }
.history-step__content { width: min(calc(100% - clamp(30px, 4vw, 70px)), 530px); overflow: hidden; border: 1px solid rgba(7,59,92,.11); border-radius: clamp(22px, 3vw, 34px); background: rgba(255,255,255,.88); box-shadow: 0 30px 72px -52px rgba(2,38,59,.72); opacity: calc(.12 + var(--step-progress) * .88); filter: blur(calc((1 - var(--step-progress)) * 5px)); transition: box-shadow .55s var(--ease), border-color .55s var(--ease); will-change: transform, opacity, filter; }
.history-step--left .history-step__content { grid-column: 1; grid-row: 1; justify-self: end; margin-right: clamp(30px, 4vw, 70px); transform: translate3d(calc((1 - var(--step-progress)) * -84px), calc((1 - var(--step-progress)) * 34px), 0) rotateY(calc((1 - var(--step-progress)) * 4deg)); transform-origin: right center; }
.history-step--right .history-step__content { grid-column: 3; grid-row: 1; margin-left: clamp(30px, 4vw, 70px); transform: translate3d(calc((1 - var(--step-progress)) * 84px), calc((1 - var(--step-progress)) * 34px), 0) rotateY(calc((1 - var(--step-progress)) * -4deg)); transform-origin: left center; }
.history-step:is(:hover,:focus) .history-step__content { border-color: rgba(44,145,152,.4); box-shadow: 0 42px 86px -45px rgba(2,38,59,.7); }
.history-step__media { position: relative; aspect-ratio: 16/10; margin: 0; overflow: hidden; background: var(--navy-deep); }
.history-step__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(calc(1.1 - var(--step-progress) * .1)); transition: transform .8s var(--ease), filter .6s var(--ease); }
.history-step:first-of-type .history-step__media img { object-position: center 31%; }
.history-step:nth-of-type(3) .history-step__media img { object-position: center 44%; }
.history-step:nth-of-type(4) .history-step__media img { object-position: center 54%; }
.history-step__media::after { content: ""; position: absolute; inset: 35% 0 0; pointer-events: none; background: linear-gradient(transparent, rgba(1,25,38,.82)); transition: opacity .45s var(--ease); }
.history-step__media figcaption { position: absolute; z-index: 2; left: 24px; right: 24px; bottom: 20px; display: grid; gap: 5px; color: white; transition: opacity .35s var(--ease), transform .45s var(--ease); }
.history-step__media figcaption span, .history-step__details > span { color: #8de0e3; font-size: 9px; font-weight: 600; letter-spacing: .17em; text-transform: uppercase; }
.history-step__media figcaption strong { font: 400 clamp(22px, 2.5vw, 31px)/1.12 var(--serif); }
.history-step__details { position: absolute; z-index: 3; inset: 0; display: grid; align-content: end; padding: 28px; color: white; background: linear-gradient(145deg, rgba(2,38,59,.93), rgba(7,59,92,.78)); opacity: 0; transform: translateY(102%); transition: opacity .4s var(--ease), transform .55s var(--ease); }
.history-step__details ul { display: grid; gap: 10px; margin: 17px 0 0; padding: 0; list-style: none; }
.history-step__details li { display: flex; align-items: center; gap: 11px; font-size: 13px; }
.history-step__details li::before { content: ""; width: 18px; height: 1px; background: #8de0e3; }
.history-step:is(:hover,:focus) .history-step__media img { transform: scale(1.045); filter: saturate(.82); }
.history-step:is(:hover,:focus) .history-step__media figcaption { opacity: 0; transform: translateY(12px); }
.history-step:is(:hover,:focus) .history-step__details { opacity: 1; transform: none; }
.history-step__text { padding: 25px 28px 30px; text-align: left; }
.history-step__text > span { color: var(--teal); font-size: 11px; font-weight: 600; letter-spacing: .18em; }
.history-step__text h3 { margin: 13px 0 17px; color: var(--navy); font: 400 clamp(38px, 4.1vw, 61px)/1 var(--serif); letter-spacing: -.025em; }
.history-step__text p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.history-step__text small { display: block; margin-top: 20px; color: var(--teal); font-size: 9px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.leadership { overflow: hidden; background: white; }
.leadership__intro { display: grid; grid-template-columns: .48fr 1.52fr; gap: 60px; margin-bottom: clamp(100px, 13vw, 180px); }
.leadership__list { display: grid; gap: clamp(120px, 16vw, 220px); }
.leader-profile { display: grid; grid-template-columns: minmax(360px,.92fr) minmax(300px,.72fr); gap: clamp(70px, 10vw, 150px); align-items: center; }
.leader-profile { scroll-margin-top: 96px; }
.leader-profile--jessica { grid-template-columns: minmax(300px,.72fr) minmax(360px,.92fr); }
.leader-profile--jessica .leader-profile__image { grid-column: 2; grid-row: 1; }
.leader-profile--jessica .leader-profile__copy { grid-column: 1; grid-row: 1; justify-self: end; }
.leader-profile__image { width: min(100%, 690px); aspect-ratio: 4/5; margin: 0; overflow: hidden; border-radius: clamp(28px, 4vw, 54px); background: var(--mineral); box-shadow: 0 36px 84px -54px rgba(2,38,59,.7); }
.leader-profile--dorinaldo .leader-profile__image,
.leader-profile--marcos .leader-profile__image { width: min(100%, 610px); justify-self: start; }
.leader-profile--jessica .leader-profile__image { width: min(100%, 660px); justify-self: end; }
.leader-profile__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.leader-profile--dorinaldo .leader-profile__image img { object-position: center; }
.leader-profile--marcos .leader-profile__image img { object-position: center; transform: scale(1.025); }
.leader-profile--jessica .leader-profile__image img { object-position: center 42%; }
.leader-profile__image:hover img { transform: scale(1.075); }
.leader-profile__copy { max-width: 510px; }
.leader-profile__copy > span { color: var(--teal); font-size: 10px; font-weight: 600; letter-spacing: .17em; text-transform: uppercase; }
.leader-profile__copy h3 { margin: 24px 0 34px; color: var(--navy); font: 400 clamp(62px, 7vw, 108px)/.9 var(--serif); letter-spacing: -.035em; }
.leader-profile__copy p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.8; }
.leader-profile--text { grid-template-columns: 1fr; padding: clamp(42px, 7vw, 92px); border: 1px solid rgba(2,38,59,.12); border-radius: clamp(28px, 4vw, 54px); background: linear-gradient(135deg, rgba(238,243,247,.95), rgba(255,255,255,.98)); box-shadow: 0 36px 84px -64px rgba(2,38,59,.65); }
.leader-profile--text .leader-profile__copy { max-width: 760px; }
.values { position: relative; overflow: hidden; color: white; background: var(--navy-deep); }
.values::before { content: ""; position: absolute; inset: -8%; pointer-events: none; background: radial-gradient(circle at 18% 12%, rgba(111,207,211,.17), transparent 30%), radial-gradient(circle at 82% 82%, rgba(255,255,255,.1), transparent 28%), url("assets/images/marble-hero.webp") center/cover; background-blend-mode: screen, screen, luminosity; opacity: .22; transform: rotate(-2deg) scale(1.08); }
.values .shell { position: relative; }
.values__intro { display: flex; flex-direction: column; align-items: center; gap: 28px; margin-bottom: clamp(72px, 9vw, 125px); padding-bottom: clamp(52px, 6vw, 84px); border-bottom: 1px solid rgba(255,255,255,.18); text-align: center; }
.values__intro .display { max-width: 900px; margin-inline: auto; color: white; }
.values__intro .display em { color: #82d8dc; }
.values__list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(12px, 1.4vw, 22px); }
.values__list article { position: relative; min-height: 360px; display: flex; flex-direction: column; align-items: flex-start; overflow: hidden; padding: clamp(25px, 2.4vw, 38px); border: 1px solid rgba(255,255,255,.17); border-radius: clamp(20px, 2.4vw, 32px); background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.035)); box-shadow: 0 24px 50px -38px rgba(0,0,0,.8); backdrop-filter: blur(9px); -webkit-backdrop-filter: blur(9px); transition: border-color .45s var(--ease), background .45s var(--ease), box-shadow .45s var(--ease), translate .45s var(--ease); }
.values__list article:nth-child(even) { margin-top: 0; }
.values__list article::before { content: ""; position: absolute; width: 190px; height: 190px; top: -105px; right: -95px; border-radius: 50%; background: radial-gradient(circle, rgba(130,216,220,.32), transparent 68%); transition: transform .6s var(--ease); }
.values__list article::after { content: ""; width: 42px; height: 1px; margin-top: auto; margin-bottom: 22px; background: #82d8dc; transition: width .45s var(--ease); }
.values__list article:hover { translate: 0 -12px; border-color: rgba(130,216,220,.62); background: linear-gradient(145deg, rgba(255,255,255,.17), rgba(255,255,255,.06)); box-shadow: 0 34px 64px -38px rgba(0,0,0,.85); }
.values__list article:hover::before { transform: scale(1.25); }
.values__list article:hover::after { width: 76px; }
.values__list span { color: #82d8dc; font-size: 11px; font-weight: 600; letter-spacing: .18em; }
.values__list h3 { position: absolute; top: 50%; left: clamp(20px, 2.4vw, 38px); right: clamp(20px, 2.4vw, 38px); margin: 0; translate: 0 -50%; text-align: center; font: 400 clamp(31px, 3vw, 47px)/1 var(--serif); color: white; }
.values__list p { order: 3; margin: 0; color: rgba(255,255,255,.67); font-size: 14px; line-height: 1.65; }
.statement { padding: 15vw 5vw; color: white; background: linear-gradient(rgba(2,38,59,.68),rgba(2,38,59,.68)), url("assets/photos/institucional/02.webp") center/cover fixed; text-align: center; }
.statement p { margin: 0 auto; max-width: 1100px; font: 400 clamp(50px, 7vw, 112px)/1.05 var(--serif); }
.statement em { color: #7bd2d5; font-style: normal; }
.contact-page { overflow: hidden; background: #fff; }
.contact-header { color: white; background: transparent; box-shadow: none; }
.contact-header.is-scrolled { color: var(--navy); }
.contact-header.is-scrolled .nav__cta { color: var(--navy); border-color: var(--navy); }
.contact-header.is-scrolled .nav__cta:hover { color: white; background: var(--navy); }
.contact-header:not(.is-scrolled) .nav__links,
.contact-header:not(.is-scrolled) .menu-toggle { color: white; }
.contact-header:not(.is-scrolled) .nav__cta { color: white; border-color: rgba(255,255,255,.78); }
.contact-header:not(.is-scrolled) .nav__cta:hover { color: var(--navy-deep); background: white; }
.contact-hero { position: relative; min-height: 950px; height: 100svh; padding-top: 112px; overflow: hidden; color: white; background: #03273d; isolation: isolate; }
.contact-hero::before { content: ""; position: absolute; z-index: -3; inset: 0; background: radial-gradient(circle at 38% 40%, rgba(32,104,129,.25), transparent 38%), linear-gradient(105deg, #03273d 0%, #031f31 75%); }
.contact-hero__veins { position: absolute; z-index: -2; inset: 0; background: url("assets/images/marble-hero.webp") center/cover; opacity: .14; filter: grayscale(.25) contrast(1.35); mix-blend-mode: screen; transform: scale(1.12); animation: contactVeinDrift 18s ease-in-out infinite alternate; }
.contact-hero__layout { height: calc(100% - 112px); display: grid; grid-template-columns: .88fr 1.12fr; gap: clamp(58px, 8vw, 126px); align-items: center; padding-bottom: 120px; }
.contact-hero__copy { position: relative; z-index: 2; padding-bottom: 48px; }
.contact-hero__copy h1 { margin: 0; max-width: 680px; font: 400 clamp(68px, 7.2vw, 122px)/.92 var(--serif); letter-spacing: -.035em; }
.contact-hero__copy h1 em { color: #7dced3; font-style: normal; }
.contact-hero__copy > p { max-width: 520px; margin: 34px 0 0; color: rgba(255,255,255,.82); font-size: clamp(16px, 1.35vw, 20px); line-height: 1.5; }
.contact-hero__cue { display: flex; width: fit-content; align-items: center; gap: 18px; margin-top: 55px; color: rgba(255,255,255,.7); font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.contact-hero__cue span { width: 70px; height: 1px; background: #7dced3; transition: width .45s var(--ease); }
.contact-hero__cue:hover span { width: 96px; }
.contact-hero__portrait { position: relative; align-self: stretch; min-height: 650px; margin: 0; overflow: hidden; border-radius: 3px 3px 100px 3px; box-shadow: 0 42px 90px -54px rgba(0,0,0,.8); }
.contact-hero__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; transform: scale(1.025); transition: transform 1.8s var(--ease); }
.contact-hero__portrait:hover img { transform: scale(1.065); }
.contact-hero__seal { position: absolute; z-index: 3; top: 7%; left: 7%; width: clamp(105px, 9vw, 148px); aspect-ratio: 1; display: grid; place-items: center; opacity: 0; transform: translateY(24px) scale(.78) rotate(-8deg); animation: contactSealArrival 1.3s 1s var(--ease) forwards; filter: drop-shadow(0 14px 22px rgba(0,0,0,.3)); }
.contact-hero__seal > img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: contain; object-position: center; opacity: .94; filter: brightness(0) invert(1); transform: none; animation: contactSealFloat 5.6s 2.3s ease-in-out infinite; }
.contact-hero__portrait:hover .contact-hero__seal > img { transform: none; }
.contact-hero__portrait figcaption { position: absolute; right: 24px; top: 50%; color: rgba(255,255,255,.78); font-size: 9px; font-weight: 600; line-height: 1.8; letter-spacing: .28em; text-transform: uppercase; writing-mode: vertical-rl; transform: translateY(-50%) rotate(180deg); }
.contact-hero__curve { position: absolute; z-index: 3; left: -8%; right: -8%; bottom: -1px; height: clamp(75px, 10vw, 150px); border-radius: 50% 50% 0 0 / 100% 100% 0 0; background: white; transform: translateY(58%); }

.contact-brief { position: relative; padding: clamp(105px, 11vw, 170px) 0 clamp(120px, 12vw, 190px); background: white; isolation: isolate; }
.contact-brief__texture { position: absolute; z-index: -1; inset: 0; background: linear-gradient(rgba(255,255,255,.93), rgba(255,255,255,.93)), url("assets/images/marble-veins-soft.webp") center/cover fixed; }
.contact-brief__head { display: grid; grid-template-columns: 1fr 2.2fr; gap: 60px; align-items: start; margin-bottom: 72px; }
.contact-brief__head > div { display: flex; align-items: center; gap: 18px; padding-top: 18px; }
.contact-brief__head p { margin: 0; color: var(--navy); font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.contact-rule { width: 52px; height: 1px; background: var(--teal); }
.contact-brief__head h2 { margin: 0; color: var(--navy-deep); font: 400 clamp(64px, 7.6vw, 116px)/.92 var(--serif); letter-spacing: -.035em; }
.contact-brief__layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(270px,.62fr); gap: clamp(62px, 8vw, 120px); align-items: start; }
.contact-form--premium { display: grid; gap: 26px; }
.contact-form__intro { max-width: 650px; margin: -12px 0 20px; color: #3e4d55; font-size: 16px; line-height: 1.55; }
.contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.contact-form__row--project { grid-template-columns: .72fr 1.28fr; }
.contact-form--premium > label,
.contact-form__row > label,
.contact-form__choices { display: grid; gap: 9px; min-width: 0; margin: 0; padding: 0; border: 0; color: var(--navy-deep); font-size: 11px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.contact-form__choices legend { margin-bottom: 9px; padding: 0; }
.contact-form--premium input:not([type="radio"]),
.contact-form--premium textarea { width: 100%; min-height: 54px; padding: 14px 16px; border: 1px solid rgba(7,59,92,.2); border-radius: 8px; outline: 0; color: var(--ink); background: rgba(255,255,255,.74); font-size: 14px; font-weight: 300; transition: border-color .25s, box-shadow .25s, background .25s; }
.contact-form--premium textarea { min-height: 150px; resize: vertical; line-height: 1.5; }
.contact-form--premium input:not([type="radio"]):focus,
.contact-form--premium textarea:focus { border-color: var(--teal); background: white; box-shadow: 0 0 0 3px rgba(44,145,152,.09); }
.contact-form--premium input::placeholder,
.contact-form--premium textarea::placeholder { color: #8a9297; }
.contact-form__choices > div { display: flex; flex-wrap: wrap; gap: 8px; }
.contact-form__choices label { cursor: pointer; }
.contact-form__choices input { position: absolute; opacity: 0; pointer-events: none; }
.contact-form__choices span { min-height: 54px; display: inline-flex; align-items: center; padding: 0 17px; border: 1px solid rgba(7,59,92,.18); border-radius: 8px; color: #4c5b62; background: rgba(255,255,255,.68); font-size: 12px; font-weight: 400; transition: color .25s, border-color .25s, background .25s, transform .25s var(--ease); }
.contact-form__choices input:checked + span { color: var(--navy); border-color: var(--teal); background: rgba(107,197,202,.12); box-shadow: inset 0 0 0 1px rgba(44,145,152,.1); }
.contact-form__choices label:hover span { transform: translateY(-2px); }
.contact-submit { width: fit-content; min-width: 210px; min-height: 58px; display: inline-flex; align-items: center; justify-content: space-between; gap: 34px; padding: 0 26px; border: 0; border-radius: 999px; color: white; background: var(--teal); cursor: pointer; font-size: 13px; font-weight: 500; transition: background .3s, transform .3s var(--ease), box-shadow .3s; }
.contact-submit:hover { background: var(--navy); transform: translateY(-3px); box-shadow: 0 14px 30px -18px rgba(2,38,59,.8); }
.contact-submit svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s var(--ease); }
.contact-submit:hover svg { transform: translateX(4px); }
.form-note { min-height: 20px; margin: -10px 0 0; color: var(--teal); font-size: 13px; }
.contact-direct--premium { padding-left: clamp(34px, 5vw, 72px); border-left: 1px solid rgba(7,59,92,.24); }
.contact-direct--premium h2 { margin: 0 0 56px; color: var(--navy-deep); font: 400 clamp(46px, 4.8vw, 72px)/.93 var(--serif); letter-spacing: -.03em; }
.contact-direct--premium a,
.contact-direct--premium > div { display: grid; gap: 8px; padding: 25px 0 28px; border: 0; border-bottom: 1px solid rgba(7,59,92,.28); color: var(--navy-deep); }
.contact-direct--premium strong { font-size: 16px; line-height: 1.25; }
.contact-direct--premium span { color: #66737a; font-size: 13px; line-height: 1.45; }
.contact-direct--premium a { transition: padding-left .35s var(--ease), color .35s; }
.contact-direct--premium a:hover { padding-left: 10px; color: var(--teal); }
.contact-map { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.45fr); min-height: 520px; margin-top: clamp(90px, 10vw, 150px); overflow: hidden; border: 1px solid rgba(7,59,92,.18); border-radius: 4px 4px 72px 4px; background: #f0f5f5; box-shadow: 0 32px 80px -54px rgba(2,38,59,.62); }
.contact-map__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(46px, 5vw, 76px); color: white; background: var(--navy-deep); }
.contact-map__eyebrow { margin: 0 0 36px; color: var(--aqua); font-size: 10px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.contact-map__copy h2 { margin: 0; font: 400 clamp(48px, 4.6vw, 72px)/.94 var(--serif); letter-spacing: -.035em; }
.contact-map__copy address { margin-top: 42px; color: rgba(255,255,255,.72); font-size: 14px; font-style: normal; line-height: 1.7; }
.contact-map__route { display: inline-flex; align-items: center; gap: 22px; margin-top: 42px; padding-bottom: 9px; border-bottom: 1px solid rgba(107,197,202,.55); color: white; font-size: 12px; transition: color .3s, border-color .3s; }
.contact-map__route:hover { color: var(--aqua); border-color: var(--aqua); }
.contact-map__route svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s var(--ease); }
.contact-map__route:hover svg { transform: translateX(4px); }
.contact-map__frame { min-height: 520px; background: #dfe8e8; }
.contact-map__frame iframe { display: block; width: 100%; height: 100%; min-height: 520px; border: 0; filter: saturate(.72) contrast(.96); }
@keyframes contactVeinDrift { to { transform: scale(1.18) translate3d(-1.5%, 1%, 0); } }
@keyframes contactSealArrival { to { opacity: .94; transform: none; } }
@keyframes contactSealFloat { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.035); } }

/* Pedras — galeria gravitacional */
.stone-lab { position: relative; min-height: 100svh; padding: clamp(150px, 15vw, 210px) max(32px, 5vw) 120px; overflow: hidden; isolation: isolate; color: var(--navy-deep); background: #f4f5f3; }
.stone-lab::before { content: ""; position: absolute; z-index: -2; inset: 0; background: url("assets/images/marble-veins-soft.webp") center/cover no-repeat; opacity: .055; filter: grayscale(1) contrast(.72) brightness(1.32); transform: scale(1.07); }
.stone-lab::after { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 54% 45%, rgba(255,255,255,.96) 0 23%, rgba(244,245,243,.8) 58%, rgba(2,38,59,.1) 100%); pointer-events: none; }
.stone-lab__intro { position: relative; z-index: 4; width: min(760px, 72vw); margin: 0 auto 100px; }
.stone-lab__intro h1 { color: var(--navy-deep); font-size: clamp(62px, 6vw, 102px); line-height: .92; letter-spacing: -.04em; }
.stone-lab__intro h1 em { color: var(--teal); font-style: normal; }
.stone-lab__intro p { max-width: 470px; margin: 34px 0 0; color: #5c6970; font-size: 15px; line-height: 1.65; }
.stone-lab__field { position: relative; z-index: 2; width: min(1240px, 100%); display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(100px, 10vw, 150px) clamp(24px, 3vw, 48px); margin: 0 auto; perspective: 1400px; transform-style: preserve-3d; }
.stone-orbit { --stone-x: 0px; --stone-y: 0px; position: relative; z-index: 3; width: 100%; min-height: 300px; display: grid; place-items: center; padding: 0 0 48px; border: 0; color: var(--navy-deep); background: transparent; cursor: pointer; transform: translate3d(var(--stone-x), var(--stone-y), 0); transition: transform .45s var(--ease), filter .45s var(--ease); }
.stone-orbit::after { content: ""; position: absolute; z-index: -1; left: 14%; right: 14%; bottom: 5%; height: 10%; border-radius: 50%; background: rgba(2,38,59,.18); filter: blur(18px); transform: scaleX(.82); opacity: .7; transition: opacity .35s, transform .35s; }
.stone-orbit img { width: min(100%, 430px); max-width: none; filter: drop-shadow(0 24px 20px rgba(2,38,59,.14)); animation: stoneFloat 7s ease-in-out infinite; transition: filter .4s var(--ease); }
.stone-orbit:hover { z-index: 6; filter: brightness(1.035); }
.stone-orbit:hover img { filter: drop-shadow(0 34px 27px rgba(2,38,59,.24)); }
.stone-orbit:hover::after { opacity: .92; transform: scaleX(1); }
.stone-orbit:focus-visible { outline-offset: 14px; border-radius: 40%; }
.stone-orbit__index { position: absolute; z-index: 3; top: 6%; left: 2%; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(7,59,92,.3); border-radius: 50%; color: var(--teal); background: rgba(255,255,255,.8); backdrop-filter: blur(10px); font-size: 9px; font-weight: 600; letter-spacing: .08em; }
.stone-orbit__label { position: absolute; z-index: 3; left: 4%; bottom: 0; display: grid; gap: 3px; min-width: 130px; text-align: left; }
.stone-orbit__label::before { display: none; }
.stone-orbit__label strong { font: 400 clamp(18px, 1.55vw, 27px)/1 var(--serif); }
.stone-orbit__label small { color: var(--teal); font-size: 9px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.stone-orbit--nero { grid-column: 1 / span 2; }
.stone-orbit--alaska { grid-column: 3 / span 2; }
.stone-orbit--alaska img { animation-delay: -2.7s; animation-duration: 8.2s; }
.stone-orbit--taj { grid-column: 5 / span 2; }
.stone-orbit--taj img { animation-delay: -4.2s; animation-duration: 7.6s; }
.stone-orbit--verde { grid-column: 2 / span 2; }
.stone-orbit--verde img { animation-delay: -1.4s; animation-duration: 8.7s; }
.stone-orbit--calacatta { grid-column: 4 / span 2; }
.stone-orbit--calacatta img { animation-delay: -5.5s; animation-duration: 7.9s; }
.stone-lab__note { position: relative; z-index: 4; max-width: 440px; margin: 100px auto 0; color: #778187; text-align: center; font-size: 9px; line-height: 1.5; letter-spacing: .04em; }
.home-stones { padding-bottom: clamp(110px, 11vw, 170px); }
.home-stones__intro h2 { color: var(--navy-deep); font-size: clamp(62px, 6vw, 102px); line-height: .92; letter-spacing: -.04em; }
.home-stones__intro h2 em { color: var(--teal); font-style: normal; }
.home-stones__intro .section-number { margin-bottom: 30px; }
.home-stones__field { row-gap: 0; }
.home-stones__footer { position: relative; z-index: 4; display: grid; justify-items: center; }
.home-stones__footer .stone-lab__note { margin-top: 78px; }
.home-stones__footer .text-link { margin-top: 30px; }
@keyframes stoneFloat { 0%,100% { transform: translate3d(0,0,0) rotate(-1.4deg); } 50% { transform: translate3d(0,-18px,24px) rotate(1.2deg); } }

.stone-detail { position: fixed; z-index: 90; inset: 0; display: grid; place-items: center; padding: 30px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .35s var(--ease), visibility .35s; }
.stone-detail.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.stone-detail__backdrop { position: absolute; inset: 0; border: 0; background: rgba(2,29,44,.62); backdrop-filter: blur(15px); cursor: default; }
.stone-detail__card { --card-rx: 0deg; --card-ry: 0deg; position: relative; width: min(1080px, 92vw); min-height: min(650px, 82svh); display: grid; grid-template-columns: minmax(350px,.9fr) minmax(420px,1.1fr); overflow: visible; color: var(--navy-deep); background: rgba(255,255,255,.97); border: 1px solid rgba(255,255,255,.84); box-shadow: 0 48px 120px rgba(0,0,0,.34); transform: perspective(1500px) rotateX(var(--card-rx)) rotateY(var(--card-ry)) translateY(32px) scale(.94); transform-style: preserve-3d; transition: transform .48s var(--ease); }
.stone-detail.is-open .stone-detail__card { transform: perspective(1500px) rotateX(var(--card-rx)) rotateY(var(--card-ry)) translateY(0) scale(1); }
.stone-detail__card::before { content: ""; position: absolute; z-index: -1; inset: 18px -18px -18px 18px; border: 1px solid rgba(255,255,255,.32); background: rgba(7,59,92,.2); transform: translateZ(-28px); box-shadow: 20px 28px 50px rgba(2,29,44,.22); }
.stone-detail__close { position: absolute; z-index: 20; top: 20px; right: 20px; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(7,59,92,.12); border-radius: 50%; color: var(--navy-deep); background: rgba(255,255,255,.88); box-shadow: 0 12px 30px rgba(2,38,59,.12); cursor: pointer; pointer-events: auto; transform: translateZ(120px); backface-visibility: hidden; }
.stone-detail__close svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; }
.stone-detail__visual { position: relative; min-height: 100%; display: grid; place-items: center; overflow: hidden; background: #eff1ef; transform: translateZ(28px); }
.stone-detail__visual::before { content: ""; position: absolute; inset: 0; background: url("assets/images/marble-veins-soft.webp") center/cover; opacity: .075; filter: grayscale(1); }
.stone-detail__visual::after { content: ""; position: absolute; left: 14%; right: 14%; bottom: 20%; height: 10%; border-radius: 50%; background: rgba(2,38,59,.21); filter: blur(20px); }
.stone-detail__visual img { position: relative; z-index: 2; width: 108%; max-width: none; filter: drop-shadow(0 32px 24px rgba(2,38,59,.19)); animation: detailStoneFloat 6s ease-in-out infinite; }
.stone-detail__depth { position: absolute; z-index: 3; top: 0; right: -7px; bottom: 0; width: 9px; background: var(--teal); transform: translateZ(18px); }
.stone-detail__content { display: flex; flex-direction: column; padding: clamp(66px, 7vw, 96px) clamp(48px, 6vw, 82px) 52px; transform: translateZ(42px); }
.stone-detail__family { color: var(--teal); font-size: 10px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.stone-detail__content h2 { margin: 13px 0 20px; font: 400 clamp(58px, 5.3vw, 84px)/.95 var(--serif); letter-spacing: -.035em; }
.stone-detail__description { max-width: 540px; margin: 0 0 30px; color: #4f5d64; font-size: 14px; line-height: 1.65; }
.stone-detail__facts { margin: 0; border-top: 1px solid var(--line); }
.stone-detail__facts div { display: grid; grid-template-columns: 120px 1fr; gap: 22px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.stone-detail__facts dt { color: var(--navy); font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.stone-detail__facts dd { margin: 0; color: #5e696f; font-size: 12px; line-height: 1.5; }
.stone-detail__luisa { width: 100%; min-height: 54px; display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding: 0 22px; border: 0; color: white; background: var(--teal); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: background .25s, transform .25s var(--ease); }
.stone-detail__luisa:hover { background: var(--navy); transform: translateY(-2px); }
.stone-detail__luisa svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
body.stone-detail-open { overflow: hidden; }
@keyframes detailStoneFloat { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-12px) rotate(1deg); } }

/* Footer and floating action */
.site-footer { color: white; background: #021d2c; }
.footer { width: min(1320px, calc(100% - 96px)); margin: auto; padding: 76px 0 30px; }
.footer__top { display: grid; grid-template-columns: 1.25fr .55fr .9fr; gap: 80px; padding-bottom: 60px; }
.footer__logo { width: 154px; height: 154px; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }
.footer__brand p { max-width: 290px; color: rgba(255,255,255,.52); line-height: 1.7; }
.footer__talk { width: fit-content; display: inline-flex; align-items: center; gap: 22px; margin-top: 14px; padding-bottom: 8px; border-bottom: 1px solid rgba(108,195,200,.7); color: white !important; font-size: 10px !important; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.footer__talk span { transition: transform .3s var(--ease); }
.footer__talk:hover span { transform: translate(4px, -4px); }
.footer h3 { margin: 0 0 26px; color: #6cc3c8; font-size: 10px; letter-spacing: .17em; text-transform: uppercase; }
.footer nav, .footer__contact { display: grid; gap: 13px; align-content: start; }
.footer__address { max-width: 300px; color: rgba(255,255,255,.56) !important; line-height: 1.55; }
.footer a { color: rgba(255,255,255,.72); font-size: 13px; transition: color .3s; }
.footer a:hover { color: white; }
.footer__connect { display: flex; min-height: 210px; flex-direction: column; }
.footer__arca { width: fit-content; display: flex; align-items: center; gap: 14px; margin-top: auto; padding: 10px 18px 10px 10px; border-radius: 22px; color: #173c37; background: #f2efe7; box-shadow: 0 16px 38px rgba(0,0,0,.18); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.footer__arca:hover { color: #173c37; transform: translateY(-5px); box-shadow: 0 22px 46px rgba(0,0,0,.27); }
.footer__arca-mark { width: 58px; height: 58px; flex: 0 0 58px; display: grid; place-items: center; overflow: hidden; border-radius: 16px; background: #050606; }
.footer__arca-mark img { width: 44px; height: 44px; object-fit: contain; }
.footer__arca-copy { display: grid; gap: 3px; min-width: 0; text-transform: none; letter-spacing: 0; }
.footer__arca-copy small { color: #4f5b61; font-size: 11px; font-weight: 500; line-height: 1.1; }
.footer__arca-copy strong { white-space: nowrap; color: #173c37; font-size: 15px; font-weight: 600; line-height: 1.15; }
.footer__bottom { display: flex; justify-content: space-between; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.62); font-size: 10px; }
.whatsapp { position: fixed; z-index: 40; right: 24px; bottom: 24px; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; color: white; background: #1fa463; box-shadow: 0 12px 40px rgba(0,0,0,.24); transition: transform .3s var(--ease), box-shadow .3s; }
.whatsapp:hover { transform: translateY(-5px) scale(1.04); box-shadow: 0 17px 45px rgba(0,0,0,.3); }
.whatsapp svg { width: 27px; height: 27px; }
.whatsapp::before { content: "Fale conosco"; position: absolute; right: 72px; white-space: nowrap; color: var(--navy); background: white; padding: 9px 12px; border-radius: 2px; box-shadow: 0 8px 22px rgba(0,0,0,.12); font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: 0; transform: translateX(8px); transition: opacity .3s, transform .3s; }
.whatsapp:hover::before { opacity: 1; transform: none; }

/* Luisa — assistente virtual */
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.luisa-chat { position: fixed; z-index: 70; left: 24px; bottom: 24px; font-family: var(--sans); }
.luisa-chat__launcher { min-width: 150px; height: 62px; display: flex; align-items: center; gap: 12px; padding: 7px 18px 7px 7px; border: 1px solid rgba(255,255,255,.44); border-radius: 34px; color: white; background: var(--navy-deep); box-shadow: 0 18px 48px rgba(2,29,44,.28); cursor: pointer; transition: transform .35s var(--ease), box-shadow .35s var(--ease), opacity .25s; }
.luisa-chat__launcher:hover { transform: translateY(-4px); box-shadow: 0 24px 54px rgba(2,29,44,.34); }
.luisa-chat__launcher-mark, .luisa-chat__avatar { display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; color: var(--navy-deep); background: #f7f8f6; font-family: var(--serif); box-shadow: inset 0 0 0 1px rgba(7,59,92,.12); }
.luisa-chat__launcher-mark { width: 48px; height: 48px; border-radius: 50%; font-size: 26px; }
.luisa-chat__launcher-mark img, .luisa-chat__avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center 34%; }
.luisa-chat__launcher-copy { display: grid; gap: 2px; text-align: left; }
.luisa-chat__launcher-copy strong { font: 500 15px/1.1 var(--sans); }
.luisa-chat__launcher-copy small { color: rgba(255,255,255,.68); font-size: 10px; letter-spacing: .04em; }
.luisa-chat__panel { position: absolute; left: 0; bottom: 0; width: min(392px, calc(100vw - 32px)); height: min(640px, calc(100svh - 72px)); display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(7,59,92,.14); border-radius: 28px 28px 28px 6px; background: white; box-shadow: 0 34px 90px rgba(2,29,44,.3); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(18px) scale(.96); transform-origin: left bottom; transition: opacity .3s var(--ease), visibility .3s, transform .3s var(--ease); }
.luisa-open .luisa-chat__panel { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.luisa-open .luisa-chat__launcher { opacity: 0; pointer-events: none; transform: scale(.9); }
.luisa-chat__header { min-height: 86px; display: flex; align-items: center; gap: 13px; padding: 16px 18px; color: white; background: var(--navy-deep); }
.luisa-chat__avatar { width: 50px; height: 50px; border-radius: 16px; font-size: 27px; }
.luisa-chat__header > span:nth-child(2) { min-width: 0; display: grid; gap: 5px; }
.luisa-chat__header strong { font-size: 16px; font-weight: 500; }
.luisa-chat__header small { display: flex; align-items: center; gap: 6px; color: rgba(255,255,255,.7); font-size: 10px; letter-spacing: .035em; }
.luisa-chat__header small i { width: 7px; height: 7px; border-radius: 50%; background: #58c789; box-shadow: 0 0 0 3px rgba(88,199,137,.16); }
.luisa-chat__close { width: 40px; height: 40px; display: grid; place-items: center; margin-left: auto; border: 0; border-radius: 50%; color: white; background: rgba(255,255,255,.08); cursor: pointer; transition: background .25s, transform .25s var(--ease); }
.luisa-chat__close:hover { background: rgba(255,255,255,.16); transform: rotate(4deg); }
.luisa-chat__close svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.luisa-chat__messages { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 22px 18px 24px; background: #f4f5f3; scrollbar-width: thin; scrollbar-color: rgba(7,59,92,.24) transparent; }
.luisa-message { width: fit-content; max-width: 88%; margin-bottom: 11px; padding: 13px 15px; border-radius: 5px 18px 18px 18px; color: #23323a; background: white; box-shadow: 0 8px 24px rgba(2,38,59,.07); font-size: 13px; line-height: 1.55; animation: luisaMessageIn .38s var(--ease) both; }
.luisa-message span { display: block; margin-bottom: 4px; color: var(--navy); font-weight: 600; }
.luisa-message p { margin: 0; }
.luisa-message--user { margin-left: auto; border-radius: 18px 5px 18px 18px; color: white; background: var(--navy); box-shadow: 0 9px 24px rgba(7,59,92,.18); }
.luisa-chat__topics { margin-top: 16px; }
.luisa-chat__suggestions { display: grid; gap: 8px; margin: 14px 0 19px; animation: luisaMessageIn .38s var(--ease) both; }
.luisa-chat__suggestions button { position: relative; min-height: 43px; padding: 10px 40px 10px 14px; border: 1px solid rgba(7,59,92,.18); border-radius: 4px; color: var(--navy); background: rgba(255,255,255,.76); text-align: left; font-size: 11px; font-weight: 600; letter-spacing: .025em; line-height: 1.35; cursor: pointer; transition: color .25s, background .25s, border-color .25s, transform .25s var(--ease); }
.luisa-chat__suggestions button::after { content: ""; position: absolute; top: 50%; right: 15px; width: 8px; height: 8px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: translateY(-50%) rotate(45deg); }
.luisa-chat__suggestions button:hover { color: white; border-color: var(--navy); background: var(--navy); transform: translateX(3px); }
.luisa-chat__suggestions .luisa-chat__home { color: var(--teal); border-style: dashed; background: transparent; }
.luisa-message--typing { display: flex; align-items: center; gap: 4px; min-width: 54px; min-height: 40px; }
.luisa-message--typing i { width: 6px; height: 6px; border-radius: 50%; background: #91a0a7; animation: luisaTyping 1s infinite ease-in-out; }
.luisa-message--typing i:nth-child(2) { animation-delay: .14s; }
.luisa-message--typing i:nth-child(3) { animation-delay: .28s; }
.luisa-chat__note { margin: 0; padding: 13px 16px 14px; border-top: 1px solid rgba(7,59,92,.1); color: #7b858b; background: white; text-align: center; font-size: 9px; line-height: 1.35; }
@keyframes luisaMessageIn { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: none; } }
@keyframes luisaTyping { 0%,60%,100% { transform: translateY(0); opacity: .45; } 30% { transform: translateY(-4px); opacity: 1; } }

/* Motion */
.reveal { opacity: 0; transform: translateY(42px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
.gallery-card.reveal { transform: perspective(1100px) rotateX(7deg) translateY(54px) scale(.97); }
.gallery-card.reveal.is-visible { transform: perspective(1100px) rotateX(var(--card-rotate-x)) rotateY(var(--card-rotate-y)) translate3d(0, var(--card-lift), 0) scale(1); }
.material-list .reveal:nth-child(2), .commitment__grid .reveal:nth-child(2), .values__list .reveal:nth-child(2) { transition-delay: .09s; }
.material-list .reveal:nth-child(3), .commitment__grid .reveal:nth-child(3), .values__list .reveal:nth-child(3) { transition-delay: .18s; }
.material-list .reveal:nth-child(4), .values__list .reveal:nth-child(4) { transition-delay: .27s; }

@media (max-width: 980px) {
  body[data-page="home"] main { background-attachment: scroll; }
  .shell, .footer { width: min(100% - 44px, 800px); }
  .nav { width: calc(100% - 32px); grid-template-columns: 1fr auto; }
  .brand { max-width: 86px; }
  .nav__links, .nav__cta { display: none; }
  .menu-toggle { display: block; justify-self: end; }
  .brand, .menu-toggle { position: relative; z-index: 52; }
  .home-hero { height: 380svh; }
  .home-hero__anchor--one { top: 95svh; }
  .home-hero__anchor--two { top: 154svh; }
  .home-hero__anchor--final { top: 263svh; }
  .home-hero__scroll { bottom: 18px; }
  .home-hero__scroll span { display: none; }
  .home-hero__story-line { width: min(88vw, 760px); }
  .home-hero__progress { right: 14px; }
  .nav__links.is-open { position: fixed; display: flex; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 51; padding: 140px 28px 60px; flex-direction: column; align-items: flex-start; gap: 26px; background: white; }
  .nav__links.is-open a { font: 400 44px var(--serif); }
  body[data-page="home"].menu-open .site-header .brand__mark,
  body[data-page="home"].menu-open .site-header .brand__name,
  body[data-page="home"].menu-open .site-header .nav__links.is-open,
  body[data-page="home"].menu-open .site-header .menu-toggle { color: var(--navy); }
  body[data-page="contato"].menu-open .site-header .nav__links.is-open,
  body[data-page="contato"].menu-open .site-header .menu-toggle { color: var(--navy); }
  body[data-page="contato"].menu-open .site-header .brand__logo { filter: none; }
  .menu-open .menu-toggle span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-open .menu-toggle span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .manifesto__grid, .materials__head, .stone-selection__intro { grid-template-columns: 1fr; }
  .manifesto__text { margin-top: 0; }
  .material-list { grid-template-columns: 1fr 1fr; }
  .material:nth-child(2) { border-right: 0; }
  .material:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.2); }
  .project-intro { grid-template-columns: 1fr; }
  .stone-feature, .stone-feature--guatemala { min-height: 0; grid-template-columns: 1fr; gap: 30px; }
  .stone-feature--guatemala .stone-feature__copy { order: 2; }
  .stone-feature__media, .stone-feature--guatemala .stone-feature__media { min-height: min(112vw, 650px); }
  .stone-feature__copy { min-height: 0; }
  .stone-feature__copy h3 { white-space: normal; }
  .gallery-rail { width: calc(100% - 44px); grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, minmax(300px, 58vw)); gap: 10px; }
  .gallery-card:nth-child(n) { grid-column: span 1; }
  .gallery-card:nth-child(1), .gallery-card:nth-child(5) { grid-column: span 2; }
  .light-stones, .essence-story, .essence-management { grid-template-columns: 1fr; }
  .light-stones__image, .essence-story__image, .essence-management__image { min-height: 650px; }
  .essence-management__copy { order: 2; }
  .history-timeline__intro, .leadership__intro { grid-template-columns: 1fr; gap: 34px; }
  .history-timeline__line { left: 14px; }
  .history-timeline__track { gap: 92px; }
  .history-step { grid-template-columns: 42px minmax(0,1fr); min-height: 0; }
  .history-step__node { grid-column: 1; grid-row: 1; justify-self: start; margin-left: 5px; }
  .history-step--left .history-step__content,
  .history-step--right .history-step__content { grid-column: 2; grid-row: 1; width: 100%; max-width: 680px; justify-self: stretch; margin: 0; transform: translate3d(calc((1 - var(--step-progress)) * 58px), calc((1 - var(--step-progress)) * 28px), 0); transform-origin: left center; }
  .leader-profile, .leader-profile--jessica { grid-template-columns: minmax(0,1.08fr) minmax(260px,.92fr); gap: 50px; }
  .leader-profile--jessica .leader-profile__image { grid-column: 2; }
  .leader-profile--jessica .leader-profile__copy { grid-column: 1; }
  .leader-profile__image, .leader-profile__image img { min-height: 0; }
  .commitment__head { grid-template-columns: 1fr; gap: 26px; }
  .commitment__head > p { max-width: 520px; }
  .faq__layout { grid-template-columns: 1fr; gap: 70px; }
  .faq__intro { position: static; }
  .page-hero { grid-template-columns: 1fr; padding-top: 140px; }
  .page-hero > .shell { padding: 60px 28px; }
  .page-hero__image { height: 65vh; }
  .page-hero--portfolio .display--hero { font-size: clamp(50px, 8vw, 70px); }
  .project-modal { padding: 18px; }
  .project-modal__panel { height: min(900px, 94vh); grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); }
  .project-modal__details { padding-inline: 34px; }
  .contact-hero { height: auto; min-height: 980px; padding-top: 110px; }
  .contact-hero__layout { height: auto; min-height: 850px; grid-template-columns: .9fr 1.1fr; gap: 38px; padding-bottom: 130px; }
  .contact-hero__copy h1 { font-size: clamp(62px, 8.6vw, 84px); }
  .contact-hero__portrait { min-height: 660px; }
  .contact-brief__head { grid-template-columns: .55fr 1.45fr; }
  .contact-brief__layout { grid-template-columns: 1fr; }
  .contact-direct--premium { display: grid; grid-template-columns: repeat(2,1fr); gap: 0 32px; padding: 54px 0 0; border: 0; border-top: 1px solid rgba(7,59,92,.24); }
  .contact-direct--premium h2 { grid-column: 1 / -1; }
  .contact-map { grid-template-columns: 1fr; }
  .contact-map__copy { min-height: 390px; }
  .contact-map__frame,
  .contact-map__frame iframe { min-height: 460px; }
  .stone-lab { min-height: 100svh; padding: 132px 38px 100px; }
  .stone-lab__intro { width: min(620px, 80vw); margin: 0 0 86px; }
  .stone-lab__intro h1 { font-size: clamp(58px, 9vw, 84px); }
  .stone-lab__field { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 100px 34px; }
  .stone-orbit { grid-column: auto; min-height: 300px; }
  .stone-orbit--calacatta { grid-column: 1 / -1; width: calc(50% - 17px); justify-self: center; }
  .stone-detail__card { width: min(850px, 94vw); min-height: min(720px, 88svh); grid-template-columns: minmax(300px,.85fr) minmax(360px,1.15fr); }
  .stone-detail__content { padding: 70px 42px 42px; }
  .stone-detail__content h2 { font-size: clamp(54px, 7vw, 72px); }
  .values__list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .values__list article:nth-child(even) { margin-top: 0; }
  .footer__top { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: span 2; }
}

@media (max-width: 640px) {
  .section-pad { padding-block: 90px; }
  .display--hero { font-size: clamp(52px, 16vw, 76px); }
  .display--lg, .display--xl { font-size: clamp(48px, 14vw, 72px); }
  .brand__name { display: none; }
  .site-header { height: 76px; }
  .site-header.is-scrolled, .site-header--solid { height: 68px; }
  body[data-page="home"] .site-header.is-hero-immersive,
  body[data-page="home"] .site-header.is-hero-marble { height: 76px; }
  .brand { max-width: 78px; }
  .brand__logo,
  .site-header.is-scrolled .brand__logo,
  .site-header--solid .brand__logo { width: auto; height: 62px; max-width: 72px; }
  .home-hero__brand { top: 17%; width: clamp(130px, 39vw, 190px); }
  .home-hero__copy { left: 22px; right: 22px; bottom: 72px; }
  .home-hero__copy h1 { font-size: clamp(52px, 15vw, 74px); }
  .home-hero__photo { object-position: 61% center; }
  .home-hero__shade { background: linear-gradient(0deg, rgba(1,25,38,.82), rgba(1,25,38,.1) 72%); }
  .home-hero__story-line { width: calc(100% - 44px); font-size: clamp(48px, 14vw, 68px); }
  .home-hero__story-line--two { left: 22px; bottom: 15vh; }
  .home-hero__final { gap: 22px; padding-inline: 22px; }
  .home-hero__final img { width: min(66vw, 270px); max-height: 36vh; }
  .home-hero__final p { font-size: clamp(34px, 10vw, 48px); }
  .home-hero__progress { top: 18%; height: 52%; right: 8px; }
  .home-hero__caption { display: none; }
  .home-hero__scroll { display: none; }
  .scroll-film { height: 300vh; }
  .scroll-film__video { object-fit: contain; }
  .scroll-film__copy { left: 22px; right: 22px; bottom: 96px; }
  .scroll-film__copy h1 { font-size: clamp(50px, 15vw, 72px); }
  .film-progress { right: 10px; }
  .manifesto__text { padding-left: 24px; }
  .material-list { grid-template-columns: 1fr; }
  .material, .material + .material { padding: 30px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); min-height: 210px; }
  .material h3 { margin-top: 45px; }
  .faq__intro .display { font-size: clamp(48px, 14vw, 68px); }
  .faq-item summary { min-height: 92px; grid-template-columns: 1fr 24px; font-size: 27px; }
  .faq-item__content { padding-right: 0; }
  .finish-list { grid-template-columns: 1fr; gap: 0; }
  .stone-feature { padding-block: 85px; }
  .stone-feature__copy { min-height: 0; padding-block: 24px; }
  .stone-feature__copy > span { margin-bottom: 24px; }
  .stone-feature__copy p { margin-top: 20px; }
  .stone-selection__intro > * { min-width: 0; max-width: 100%; }
  .stone-selection__intro .display { max-width: 330px; font-size: clamp(39px, 10vw, 44px); line-height: 1.04; letter-spacing: -.035em; }
  .stone-selection__intro p { max-width: 290px; font-size: 15px; line-height: 1.65; }
  .stone-selection__intro .mobile-break { display: block; }
  .stone-feature__copy h3 { font-size: clamp(48px, 13vw, 60px); }
  .process-orbit { height: 390vh; margin-top: 46px; }
  .process-orbit__sticky { top: 68px; height: calc(100svh - 68px); min-height: 600px; }
  .process-orbit__toolbar { gap: 16px; }
  .process-orbit__toolbar > p { max-width: 190px; line-height: 1.5; }
  .process-orbit__status i { width: 34px; }
  .process-orbit__ring { width: min(74vw, 480px); }
  .process-orbit__point { width: 44px; height: 44px; }
  .process-orbit__content { inset: 14%; }
  .process-orbit__panel { padding: 32px; }
  .process-orbit__panel h3 { font-size: clamp(34px, 8.5vw, 48px); }
  .process-orbit__panel p { font-size: 12px; line-height: 1.5; }
  .process-orbit__buttons { bottom: 8px; }
  .gallery-rail { width: 100%; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 22px 24px; gap: 10px; }
  .gallery-card, .gallery-card--wide { flex: 0 0 82vw; height: 112vw; border-radius: 14px; scroll-snap-align: center; }
  .light-stones__image, .essence-story__image, .essence-management__image { min-height: 520px; }
  .light-stones__copy, .essence-story__copy, .essence-management__copy { padding-inline: 22px; }
  .history-timeline__intro, .leadership__intro { margin-bottom: 78px; }
  .history-timeline__line { left: 9px; }
  .history-timeline__track { gap: 72px; }
  .history-step { grid-template-columns: 30px minmax(0,1fr); }
  .history-step__node { margin-left: 0; }
  .history-step--left .history-step__content,
  .history-step--right .history-step__content { transform: translate3d(calc((1 - var(--step-progress)) * 36px), calc((1 - var(--step-progress)) * 22px), 0); }
  .history-step__media { aspect-ratio: 4/3; }
  .history-step__text { padding: 22px 21px 25px; }
  .history-step__text h3 { font-size: 42px; }
  .leadership__list { gap: 110px; }
  .leader-profile, .leader-profile--jessica { display: flex; flex-direction: column; gap: 42px; align-items: stretch; }
  .leader-profile__image, .leader-profile--dorinaldo .leader-profile__image, .leader-profile--marcos .leader-profile__image, .leader-profile--jessica .leader-profile__image { width: 88%; min-height: 0; }
  .leader-profile--dorinaldo .leader-profile__image, .leader-profile--marcos .leader-profile__image { align-self: flex-start; }
  .leader-profile--jessica .leader-profile__image { align-self: flex-end; }
  .leader-profile__image img { min-height: 0; }
  .leader-profile--jessica .leader-profile__copy { order: 2; align-self: flex-start; }
  .leader-profile__copy { width: 92%; }
  .leader-profile__copy h3 { margin-bottom: 24px; }
  .leader-profile--text { padding: 38px 28px; }
  .leader-profile--text .leader-profile__copy { width: 100%; }
  .cta-band .shell { align-items: flex-start; flex-direction: column; }
  .portfolio-grid { grid-template-columns: 1fr; gap: 75px; }
  .page-hero > .shell { min-width: 0; overflow: hidden; }
  .portfolio-piece--large { grid-column: span 1; }
  .portfolio-piece--large img, .portfolio-piece img { aspect-ratio: 4/5; }
  .portfolio-piece--tall { margin-top: 0; }
  .portfolio-piece__meta { display: block; }
  .portfolio-piece h2 { margin-top: 10px; }
  .portfolio-piece__open { opacity: 1; transform: scale(.9); }
  .project-modal { padding: 10px; align-items: end; }
  .project-modal__panel { width: 100%; height: calc(100svh - 20px); grid-template-columns: 1fr; grid-template-rows: minmax(0, 1.3fr) auto; border-radius: 22px; }
  .project-modal__details { min-height: 245px; padding: 28px 26px 24px; }
  .project-modal__details h2 { margin-top: 13px; font-size: 38px; }
  .project-modal__details p { margin-top: 18px; font-size: 13px; line-height: 1.55; }
  .project-modal__counter { position: absolute; right: 26px; bottom: 22px; }
  .project-modal__counter strong { font-size: 30px; }
  .project-modal__close { top: 14px; right: 14px; }
  .project-modal__arrow { top: 52%; width: 44px; height: 44px; }
  .project-modal__arrow--prev { left: 12px; }
  .project-modal__arrow--next { right: 12px; }
  .project-modal__progress { left: 18px; right: 18px; bottom: 15px; }
  .values__intro { gap: 24px; }
  .values__list { grid-template-columns: 1fr; gap: 16px; }
  .values__list article,
  .values__list article:nth-child(even) { min-height: 290px; margin-top: 0; }
  .values__list h3 { left: 25px; right: 25px; }
  .statement { background-attachment: scroll; }
  .contact-hero { min-height: 970px; padding-top: 90px; }
  .contact-hero__layout { min-height: 850px; grid-template-columns: 1fr; gap: 42px; align-content: start; padding-top: 54px; padding-bottom: 104px; }
  .contact-hero__copy { padding: 0; }
  .contact-hero__copy h1 { font-size: clamp(52px, 14vw, 72px); }
  .contact-hero__copy > p { margin-top: 24px; font-size: 15px; }
  .contact-hero__cue { margin-top: 34px; }
  .contact-hero__portrait { width: 92%; min-height: 460px; justify-self: end; border-radius: 2px 2px 58px 2px; }
  .contact-hero__portrait figcaption { right: 14px; }
  .contact-hero__seal { top: 6%; left: 6%; width: 104px; }
  .contact-brief { padding-top: 92px; }
  .contact-brief__head { grid-template-columns: 1fr; gap: 26px; margin-bottom: 56px; }
  .contact-brief__head h2 { font-size: clamp(54px, 15vw, 72px); }
  .contact-form__row,
  .contact-form__row--project { grid-template-columns: 1fr; }
  .contact-form__choices > div { display: grid; grid-template-columns: 1fr 1fr; }
  .contact-form__choices span { width: 100%; justify-content: center; padding-inline: 10px; }
  .contact-direct--premium { grid-template-columns: 1fr; padding-top: 48px; }
  .contact-direct--premium h2 { font-size: 48px; margin-bottom: 26px; }
  .contact-map { min-height: 0; margin-top: 76px; border-radius: 3px 3px 42px 3px; }
  .contact-map__copy { min-height: 350px; padding: 44px 28px; }
  .contact-map__eyebrow { margin-bottom: 25px; }
  .contact-map__copy h2 { font-size: 48px; }
  .contact-map__copy address,
  .contact-map__route { margin-top: 30px; }
  .contact-map__frame,
  .contact-map__frame iframe { min-height: 380px; }
  .stone-lab { min-height: 100svh; padding: 126px 22px 90px; }
  .stone-lab__intro { width: auto; margin: 0 0 70px; padding: 0; }
  .stone-lab__intro h1 { font-size: clamp(52px, 15vw, 72px); }
  .stone-lab__intro p { max-width: 330px; margin-top: 24px; }
  .stone-lab__field { grid-template-columns: 1fr; gap: 74px; }
  .stone-orbit { grid-column: 1 !important; width: 100%; min-height: 300px; padding-bottom: 42px; }
  .stone-orbit__label { left: 4%; bottom: 0; min-width: 112px; }
  .stone-orbit__label strong { font-size: 19px; }
  .stone-orbit__index { left: 1%; width: 29px; height: 29px; }
  .stone-lab__note { max-width: 320px; margin-top: 84px; text-align: center; }
  .stone-detail { align-items: end; padding: 10px; }
  .stone-detail__card { width: 100%; min-height: 0; max-height: calc(100svh - 20px); grid-template-columns: 1fr; grid-template-rows: minmax(220px, 36svh) minmax(0, 1fr); overflow: auto; border-radius: 22px 22px 8px 8px; }
  .stone-detail__card::before { display: none; }
  .stone-detail__visual { min-height: 220px; }
  .stone-detail__visual img { width: min(104%, 500px); }
  .stone-detail__content { padding: 34px 24px 24px; }
  .stone-detail__content h2 { margin: 8px 0 13px; font-size: clamp(46px, 13vw, 62px); }
  .stone-detail__description { margin-bottom: 20px; font-size: 13px; }
  .stone-detail__facts div { grid-template-columns: 86px 1fr; gap: 12px; padding: 12px 0; }
  .stone-detail__luisa { flex: 0 0 auto; margin-top: 22px; }
  .stone-detail__close { top: 13px; right: 13px; }
  .footer__top { grid-template-columns: 1fr; gap: 50px; }
  .footer__brand { grid-column: span 1; }
  .footer__logo { width: 190px; }
  .footer__connect { min-height: 190px; }
  .footer__arca { margin-top: 42px; }
  .footer__bottom { flex-direction: column; gap: 12px; }
  .whatsapp { right: 16px; bottom: 16px; }
  .luisa-chat { left: 16px; bottom: 16px; }
  .luisa-chat__launcher { min-width: 58px; width: 58px; height: 58px; padding: 5px; }
  .luisa-chat__launcher-mark { width: 46px; height: 46px; }
  .luisa-chat__launcher-copy { display: none; }
  .luisa-chat__panel { position: fixed; inset: 12px 12px 16px; width: auto; height: auto; max-height: none; border-radius: 24px 24px 24px 8px; transform-origin: left bottom; }
  .luisa-chat__header { min-height: 80px; padding: 14px 15px; }
  .luisa-chat__messages { padding: 19px 15px 22px; }
  .luisa-message { max-width: 92%; }
  body.luisa-open { overflow: hidden; }
  body.luisa-open .whatsapp { opacity: 0; pointer-events: none; }
}

@media (max-width: 360px) {
  .shell, .footer { width: calc(100% - 32px); }
  .section-pad { padding-block: 74px; }
  .display--hero { font-size: clamp(46px, 15vw, 58px); }
  .display--lg, .display--xl { font-size: clamp(43px, 14vw, 54px); }
  .nav { width: calc(100% - 24px); }
  .nav__links.is-open { padding: 112px 20px 42px; gap: 20px; }
  .nav__links.is-open a { font-size: 38px; }
  .home-hero__copy { left: 18px; right: 18px; }
  .home-hero__copy h1 { font-size: clamp(48px, 15vw, 58px); }
  .home-hero__story-line { width: calc(100% - 36px); font-size: clamp(44px, 14vw, 54px); }
  .home-hero__story-line--two { left: 18px; }
  .page-hero > .shell { padding-inline: 16px; }
  .page-hero--portfolio .display--hero { font-size: 46px; }
  .history-step { grid-template-columns: 24px minmax(0,1fr); }
  .history-timeline__line { left: 7px; }
  .history-step--left .history-step__content,
  .history-step--right .history-step__content { transform: translate3d(calc((1 - var(--step-progress)) * 18px), calc((1 - var(--step-progress)) * 14px), 0); }
  .leader-profile__image,
  .leader-profile--dorinaldo .leader-profile__image,
  .leader-profile--marcos .leader-profile__image,
  .leader-profile--jessica .leader-profile__image { width: 100%; }
  .leader-profile__copy { width: 100%; }
  .leader-profile--text { padding: 32px 22px; }
  .contact-form__choices > div { grid-template-columns: 1fr; }
  .contact-submit, .cta-band .button { width: 100%; }
  .contact-map__copy { padding-inline: 22px; }
  .project-modal__details { padding-inline: 20px; }
  .stone-detail__content { padding-inline: 20px; }
  .stone-detail__facts div { grid-template-columns: 76px 1fr; gap: 10px; }
}

@media (max-height: 640px) and (orientation: landscape) {
  .home-hero { height: 400svh; }
  .home-hero__sticky { min-height: 0; }
  .home-hero__brand { display: none; }
  .home-hero__copy { bottom: 34px; }
  .home-hero__copy h1 { margin-bottom: 14px; font-size: clamp(44px, 10vh, 60px); }
  .home-hero__copy p { margin-bottom: 18px; font-size: 14px; line-height: 1.4; }
  .home-hero__copy .button { min-height: 46px; }
  .home-hero__story-line { font-size: clamp(38px, 9vh, 56px); }
  .home-hero__story-line--two { bottom: 38px; }
  .home-hero__final { grid-template-columns: auto auto; gap: 34px; align-items: center; }
  .home-hero__final img { width: min(25vw, 180px); }
  .home-hero__final p { font-size: clamp(30px, 7vh, 44px); text-align: left; }
  .home-hero__scroll, .home-hero__caption { display: none; }
  .project-modal { padding: 8px; }
  .project-modal__panel { width: 100%; height: calc(100svh - 16px); grid-template-columns: minmax(0, 1.1fr) minmax(270px, .9fr); border-radius: 20px; }
  .project-modal__details { min-height: 0; overflow-y: auto; padding: 34px 28px 24px; }
  .project-modal__details h2 { margin: 14px 0 0; font-size: 40px; }
  .project-modal__details p { margin-top: 18px; font-size: 13px; line-height: 1.5; }
  .project-modal__counter { margin-top: 22px; }
  .project-modal__counter strong { font-size: 30px; }
  .project-modal__close { top: 10px; right: 10px; width: 40px; height: 40px; }
  .project-modal__arrow { width: 44px; height: 44px; }
  .project-modal__arrow--prev { left: 12px; }
  .project-modal__arrow--next { right: 12px; }
  .project-modal__progress { left: 16px; right: 16px; bottom: 12px; }
  .stone-detail { padding: 8px; }
  .stone-detail__card { width: 100%; height: calc(100svh - 16px); min-height: 0; max-height: calc(100svh - 16px); grid-template-columns: minmax(220px,.82fr) minmax(320px,1.18fr); overflow: hidden; border-radius: 20px; }
  .stone-detail__card::before { display: none; }
  .stone-detail__visual { min-height: 0; }
  .stone-detail__visual img { width: min(94%, 430px); }
  .stone-detail__content { min-height: 0; overflow-y: auto; padding: 30px 32px 22px; transform: none; }
  .stone-detail__content h2 { margin: 6px 0 12px; font-size: 42px; }
  .stone-detail__description { margin-bottom: 16px; font-size: 12px; line-height: 1.5; }
  .stone-detail__facts div { grid-template-columns: 94px 1fr; gap: 12px; padding: 10px 0; }
  .stone-detail__luisa { min-height: 46px; margin-top: 18px; }
  .stone-detail__close { top: 9px; right: 9px; width: 40px; height: 40px; }
  .contact-hero, .contact-hero__layout { min-height: 0; }
  .contact-hero__layout { padding-top: 34px; padding-bottom: 74px; }
  .contact-hero__portrait { min-height: min(62vw, 430px); }
  .luisa-chat { left: 12px; bottom: 12px; }
  .luisa-chat__launcher { min-width: 52px; width: 52px; height: 52px; padding: 4px; }
  .luisa-chat__launcher-mark { width: 42px; height: 42px; }
  .luisa-chat__launcher-copy { display: none; }
  .whatsapp { right: 12px; bottom: 12px; width: 52px; height: 52px; }
}

@media (hover: none) {
  .history-step__text small { display: none; }
  .history-step__media figcaption { left: 18px; right: 18px; bottom: 76px; }
  .history-step__details { inset: auto 0 0; padding: 14px 18px 16px; background: linear-gradient(transparent, rgba(2,38,59,.94) 28%); opacity: 1; transform: none; }
  .history-step__details > span { display: none; }
  .history-step__details ul { display: flex; flex-wrap: wrap; gap: 7px 13px; margin-top: 18px; }
  .history-step__details li { font-size: 10px; }
  .history-step__details li::before { width: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .home-hero { height: 100svh; }
  .reveal { opacity: 1; transform: none; }
  .history-step { --step-progress: 1 !important; }
}
