:root {
 --c-cafe-albura: #4A3728;
 --c-cafe-black: #2B2118;
 --c-marfil: #D7C9A6;
 --c-terracota: #C1571A;
 --c-beige-claro: #EDE6D6;
 --c-mostaza: #B98D46;
 --bg-base: var(--c-cafe-black);
 --bg-light: var(--c-beige-claro);
 --bg-mid: #3B2C20;
 --text-primary: var(--c-marfil);
 --text-primary-on-light: var(--c-cafe-black);
 --text-muted: #A8998690;
 --text-muted-solid:#B7A98E;
 --border-hairline: #6b573f66;
 --font-display: 'Lora', 'Georgia', serif;
 --font-body: 'Manrope', -apple-system, 'Segoe UI', sans-serif;
 --fs-hero: clamp(3.4rem, 9vw, 8.5rem);
 --fs-h1: clamp(2.6rem, 6vw, 5.4rem);
 --fs-h2: clamp(2.1rem, 4.4vw, 3.6rem);
 --fs-h3: clamp(1.4rem, 2.4vw, 1.9rem);
 --fs-lead: clamp(1.05rem, 1.6vw, 1.35rem);
 --fs-body: 1rem;
 --fs-small: 0.85rem;
 --fs-eyebrow: 0.78rem;
 --section-pad-y: clamp(4rem, 8vw, 6.5rem);
 --container-w: 1320px;
 --container-pad: clamp(1.5rem, 5vw, 4rem);
 --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
 --ease-soft: cubic-bezier(0.65, 0, 0.35, 1);
 --dur-fast: 0.2s;
 --dur-med: 0.7s;
 --radius-section: clamp(28px, 5vw, 56px);
 --radius-lg: 28px;
 --radius-md: 16px;
 --radius-sm: 8px;
}
*, *::before, *::after { box-sizing: border-box; }
html {
 scroll-behavior: auto;
 background: var(--bg-base);
}
body {
 margin: 0;
 background: var(--bg-base);
 color: var(--text-primary);
 font-family: var(--font-body);
 font-size: var(--fs-body);
 line-height: 1.5;
 -webkit-font-smoothing: antialiased;
 overflow-x: hidden;
 cursor: none; 
}
@media (max-width: 900px) {
 body { cursor: auto; }
 .cursor { display: none !important; }
}
img { max-width: 100%; display: block; }
picture { display: contents; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 500; margin: 0; letter-spacing: -0.01em; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
::selection { background: var(--c-terracota); color: var(--c-beige-claro); }
.container {
 max-width: var(--container-w);
 margin-inline: auto;
 padding-inline: var(--container-pad);
}
.eyebrow {
 display: inline-flex;
 align-items: center;
 gap: 0.6em;
 font-size: var(--fs-eyebrow);
 letter-spacing: 0.18em;
 text-transform: uppercase;
 color: var(--c-mostaza);
 font-weight: 600;
}
.eyebrow--light { color: var(--c-terracota); }
em { font-style: italic; color: var(--c-terracota); font-family: var(--font-display); }
.btn {
 position: relative;
 display: inline-flex;
 align-items: center;
 gap: 0.6rem;
 padding: 1rem 1.9rem;
 border-radius: 999px;
 font-size: 0.92rem;
 font-weight: 600;
 border: 1px solid transparent;
 touch-action: manipulation;
 transition: transform var(--dur-fast) var(--ease-out), background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);
}
@media (min-width: 861px) {
 .btn { will-change: transform; }
}
.btn svg { transition: transform var(--dur-fast) var(--ease-out); }
.btn:hover svg { transform: translateX(4px); }
.btn:active { transform: scale(0.96); transition-duration: 0.1s; }
.btn--terracota {
 background: #a94814;
 color: var(--c-beige-claro);
}
.btn--terracota:hover { background: #8f3d10; }
.btn--ghost {
 border-color: var(--border-hairline);
 color: var(--text-primary);
 background: transparent;
}
.btn--ghost:hover { border-color: var(--c-marfil); background: #ffffff0d; }
.btn--lg { padding: 1.15rem 2.4rem; font-size: 1rem; }
.section { padding-block: var(--section-pad-y); position: relative; scroll-margin-top: 100px; }
main > section:not(:first-child),
.site-footer {
 border-top-left-radius: var(--radius-section);
 border-top-right-radius: var(--radius-section);
 margin-top: calc(-1 * var(--radius-section));
 position: relative;
 padding-top: calc(var(--section-pad-y) + var(--radius-section) * 0.15);
}
main > section:nth-child(1) { z-index: 1; }
main > section:nth-child(2) { z-index: 2; }
main > section:nth-child(3) { z-index: 3; }
main > section:nth-child(4) { z-index: 4; }
main > section:nth-child(5) { z-index: 5; }
main > section:nth-child(6) { z-index: 6; }
main > section:nth-child(7) { z-index: 7; }
main > section:nth-child(8) { z-index: 8; }
main > section:nth-child(9) { z-index: 9; }
main > section:nth-child(10) { z-index: 10; }
.site-footer { z-index: 20; }
main > section:first-child:not(.hero) { padding-top: calc(var(--section-pad-y) + 4rem); }
.section--light { background: var(--bg-light); color: var(--text-primary-on-light); }
.section--light em { color: var(--c-terracota); }
.visually-hidden {
 position: absolute; width: 1px; height: 1px;
 overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.reveal-up { opacity: 0; transition: opacity 1s var(--ease-out); }
.reveal-up.is-visible { opacity: 1; }
.contact-modal { position: fixed; inset: 0; visibility: hidden; pointer-events: none; }
.section-rings {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 opacity: 0.07;
 pointer-events: none;
 z-index: 0;
}
.section-rings circle {
 fill: none;
 stroke: var(--c-marfil);
 stroke-width: 0.6;
 transform-origin: 500px 500px;
}
.section-rings circle:nth-child(even) { stroke: var(--c-terracota); opacity: 0.6; }
.section--light .section-rings circle { stroke: var(--c-cafe-albura); }
.reveal-lines { overflow: hidden; }
.section__more { display: flex; justify-content: center; margin-top: clamp(2rem, 4vw, 3rem); }
.section__more--light .btn--ghost { border-color: #4A372866; color: var(--c-cafe-black); }
.section__more--light .btn--ghost:hover { border-color: var(--c-cafe-albura); background: #4A372812; }
.cursor {
 position: fixed;
 top: 0; left: 0;
 width: 0; height: 0;
 pointer-events: none;
 z-index: 9999;
 mix-blend-mode: difference;
}
.cursor__dot {
 position: absolute;
 width: 8px; height: 8px;
 background: var(--c-marfil);
 border-radius: 50%;
 transform: translate(-50%, -50%);
 transition: opacity var(--dur-fast);
}
.cursor__ring {
 position: absolute;
 width: 42px; height: 42px;
 border: 1px solid var(--c-marfil);
 border-radius: 50%;
 transform: translate(-50%, -50%);
 transition: width var(--dur-fast) var(--ease-out), height var(--dur-fast) var(--ease-out), opacity var(--dur-fast);
}
.cursor.is-hover .cursor__ring { width: 70px; height: 70px; background: #D7C9A61a; }
.cursor.is-hidden .cursor__dot,
.cursor.is-hidden .cursor__ring { opacity: 0; }
.loader {
 position: fixed; inset: 0;
 background: var(--c-cafe-black);
 z-index: 10000;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 1.6rem;
 transition: opacity 0.3s var(--ease-out), visibility 0.3s;
}
.loader.is-done { opacity: 0; visibility: hidden; pointer-events: none; }
.loader__mark { animation: loaderPulse 1.8s ease-in-out infinite; opacity: 0.92; }
.loader__mark img { filter: drop-shadow(0 0 24px #C1571A55); }
@keyframes loaderPulse {
 0%, 100% { transform: scale(1); }
 50% { transform: scale(1.08); }
}
.loader__bar { width: min(220px, 60vw); height: 1px; background: #6b573f66; overflow: hidden; }
.loader__bar-fill { display: block; height: 100%; width: 0%; background: var(--c-terracota); transition: width 0.2s linear; }
.loader__count { font-family: var(--font-display); font-style: italic; color: var(--text-muted-solid); font-size: 0.85rem; letter-spacing: 0.05em; }
.site-header {
 position: fixed; top: 0; left: 0; right: 0;
 z-index: 500;
 padding: calc(0.9rem + env(safe-area-inset-top, 0px)) var(--container-pad) 0;
 pointer-events: none; 
 transition: padding var(--dur-fast) var(--ease-out);
}
.site-header__inner {
 pointer-events: auto;
 max-width: calc(var(--container-w) - 2 * var(--container-pad));
 margin-inline: auto;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 2rem;
 padding: 0.75rem 0.75rem 0.75rem 1.4rem;
 border-radius: 999px;
 border: 1px solid transparent;
 transition: background var(--dur-fast), border-color var(--dur-fast), box-shadow var(--dur-fast), padding var(--dur-fast) var(--ease-out);
}
.site-header.is-scrolled { padding-top: calc(0.6rem + env(safe-area-inset-top, 0px)); }
.site-header.is-scrolled .site-header__inner {
 background: #2B2118d9;
 -webkit-backdrop-filter: blur(14px);
 backdrop-filter: blur(14px);
 border-color: var(--border-hairline);
 box-shadow: 0 18px 40px -24px #000000cc;
 padding-block: 0.55rem;
}
@media (max-width: 860px) {
 .site-header.is-scrolled .site-header__inner {
 background: #2B2118f2;
 -webkit-backdrop-filter: none;
 backdrop-filter: none;
 }
}
.site-header__brand { position: relative; display: flex; align-items: center; }
.site-header__logo { display: block; height: 32px; width: auto; }
.site-header__nav { display: flex; gap: 0.25rem; }
.site-header__nav a {
 position: relative;
 font-size: 0.9rem;
 padding: 0.5rem 0.9rem;
 border-radius: 999px;
 color: var(--text-muted-solid);
 transition: color var(--dur-fast), background var(--dur-fast);
}
.site-header__nav a:hover { color: var(--c-marfil); background: #ffffff0a; }
.site-header__nav a.is-active { color: var(--c-marfil); background: #ffffff10; }
.site-header__cta { font-size: 0.85rem; padding: 0.7rem 1.3rem; }
.site-header--on-light:not(.is-scrolled) .site-header__logo { opacity: 0; }
.site-header--on-light:not(.is-scrolled) .site-header__brand::after {
 content: '';
 position: absolute;
 inset: 0;
 background-color: var(--c-cafe-black);
 opacity: 0.82;
 -webkit-mask: url('/app/Assets/img/logo/hz-lockup-beige.png') center / contain no-repeat;
 mask: url('/app/Assets/img/logo/hz-lockup-beige.png') center / contain no-repeat;
}
.site-header--on-light:not(.is-scrolled) .site-header__nav a { color: var(--c-cafe-black); opacity: 0.6; }
.site-header--on-light:not(.is-scrolled) .site-header__nav a:hover,
.site-header--on-light:not(.is-scrolled) .site-header__nav a.is-active { opacity: 1; background: #2B211812; }
.site-header--on-light:not(.is-scrolled) .site-header__cta.btn--ghost { border-color: #2B211866; color: var(--c-cafe-black); }
.site-header--on-light:not(.is-scrolled) .site-header__cta.btn--ghost:hover { border-color: var(--c-cafe-black); background: #2B211812; }
.site-header--on-light:not(.is-scrolled) .site-header__toggle { border-color: #2B211866; }
.site-header--on-light:not(.is-scrolled) .site-header__toggle span { background: var(--c-cafe-black); }
.site-header__toggle {
 display: none;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 5px;
 width: 44px; height: 44px;
 border-radius: 50%;
 background: none; border: 1px solid var(--border-hairline); padding: 0;
}
.site-header__toggle span { width: 20px; height: 1.5px; border-radius: 2px; background: var(--c-marfil); transition: transform var(--dur-fast) var(--ease-out); }
.site-header__toggle.is-open span:first-child { transform: translateY(3.25px) rotate(45deg); }
.site-header__toggle.is-open span:last-child { transform: translateY(-3.25px) rotate(-45deg); }
.mobile-nav {
 position: fixed;
 inset: 0.6rem;
 top: calc(0.6rem + env(safe-area-inset-top, 0px));
 z-index: 490;
 background:
 radial-gradient(60% 40% at 90% 100%, #B98D4622, transparent 70%),
 var(--c-cafe-black);
 border: 1px solid var(--border-hairline);
 border-radius: var(--radius-lg);
 display: flex; align-items: center; justify-content: center;
 transform: translateY(calc(-100% - 2rem));
 opacity: 0;
 transition: transform 0.55s var(--ease-soft), opacity 0.4s;
 overscroll-behavior: none;
}
.mobile-nav.is-open { transform: translateY(0); opacity: 1; }
.mobile-nav nav { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; }
.mobile-nav a { font-family: var(--font-display); font-size: 1.9rem; color: var(--c-marfil); }
.mobile-nav a.is-active { color: var(--c-terracota); }
.mobile-nav__cta {
 margin-top: 0.8rem;
 font-family: var(--font-body) !important;
 font-size: 1rem !important;
 font-weight: 600;
 padding: 0.95rem 2rem;
 border-radius: 999px;
 background: #a94814;
 color: var(--c-beige-claro) !important;
}
@media (max-width: 900px) {
 .site-header__nav, .site-header__cta { display: none; }
 .site-header__toggle { display: flex; }
 .site-header__inner { padding: 0.5rem 0.5rem 0.5rem 1.1rem; }
 .site-header__logo { height: 28px; }
}
.sticky-cta {
 position: fixed;
 right: 1rem;
 bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
 z-index: 480;
 display: none;
 align-items: center;
 gap: 0.5rem;
 padding: 0.9rem 1.3rem;
 border-radius: 999px;
 background: #a94814;
 color: var(--c-beige-claro);
 font-size: 0.9rem;
 font-weight: 600;
 box-shadow: 0 16px 34px -14px #000000cc, 0 0 0 1px #ffffff14;
 transform: translateY(140%);
 opacity: 0;
 transition: transform 0.45s var(--ease-out), opacity 0.3s;
}
.sticky-cta.is-visible { transform: translateY(0); opacity: 1; }
.sticky-cta:active { transform: scale(0.96); }
@media (max-width: 900px) {
 .sticky-cta { display: inline-flex; }
}
.is-blur-sensitive .site-header {
 transition: none;
}
.is-blur-sensitive .mobile-nav {
 transition: none;
}
.is-blur-sensitive .site-header__toggle span {
 transition: none;
}
.is-blur-sensitive body:has(.contact-modal.is-open) .site-header.is-scrolled {
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
}
.is-blur-sensitive .contact-modal__scrim {
 backdrop-filter: blur(4px);
 -webkit-backdrop-filter: blur(4px);
}
.is-blur-sensitive .contact-modal.is-open .contact-modal__watermark,
.is-blur-sensitive .contact-modal.is-closing .contact-modal__watermark {
 animation-play-state: paused;
}
.site-footer {
 position: relative;
 color: var(--text-primary);
 background:
 radial-gradient(70% 60% at 10% 0%, rgba(215, 201, 166, 0.09), transparent 60%),
 radial-gradient(50% 50% at 95% 100%, rgba(193, 87, 26, 0.10), transparent 65%),
 #150e09;
 box-shadow: inset 0 1px 0 rgba(215, 201, 166, 0.14);
 padding-top: clamp(3.5rem, 7vw, 6rem);
 overflow: hidden;
}
.site-footer__glow {
 position: absolute; bottom: -25%; right: -10%;
 width: 46vw; height: 46vw; max-width: 560px; max-height: 560px;
 background: radial-gradient(circle, #B98D4626 0%, transparent 70%);
 pointer-events: none;
}
.site-footer__watermark {
 position: absolute;
 left: 2%;
 bottom: 4%;
 width: clamp(260px, 30vw, 460px);
 height: auto;
 opacity: 0.045;
 pointer-events: none;
 animation: watermarkSpin 70s linear infinite;
}
.site-footer__inner { position: relative; z-index: 1; }
.site-footer__cta {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 2rem;
 padding: clamp(1.8rem, 4vw, 2.8rem) clamp(1.6rem, 4vw, 3rem);
 margin-bottom: clamp(3rem, 6vw, 4.5rem);
 border-radius: var(--radius-lg);
 background: linear-gradient(155deg, #33271C 0%, #241a13 100%);
 border: 1px solid var(--border-hairline);
}
.site-footer__cta-title {
 font-family: var(--font-display);
 font-size: clamp(1.5rem, 3vw, 2.2rem);
 line-height: 1.1;
 margin-block: 0.7rem 0.5rem;
 color: var(--c-marfil);
}
.site-footer__cta-text { color: var(--text-muted-solid); font-size: 0.95rem; max-width: 46ch; }
.site-footer__cta .btn { flex-shrink: 0; }
.site-footer__grid {
 display: grid;
 grid-template-columns: 1.6fr 1fr 1fr 1.3fr;
 gap: clamp(2rem, 4vw, 4rem);
 padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.site-footer__grid > * { min-width: 0; }
.site-footer__brand-block { display: flex; flex-direction: column; gap: 0.9rem; }
.site-footer__logo { width: clamp(140px, 16vw, 190px); height: auto; }
.site-footer__slogan { font-family: var(--font-display); font-style: italic; color: var(--c-terracota); font-size: 1.05rem; }
.site-footer__about { color: var(--text-muted-solid); font-size: 0.9rem; line-height: 1.6; max-width: 34ch; }
.site-footer__col { display: flex; flex-direction: column; gap: 0.7rem; }
.site-footer__col h3 {
 font-family: var(--font-body);
 font-size: var(--fs-eyebrow);
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--c-mostaza);
 font-weight: 600;
 margin-bottom: 0.4rem;
}
.site-footer__col a {
 color: var(--text-muted-solid);
 font-size: 0.92rem;
 width: fit-content;
 padding-block: 0.1rem;
 transition: color var(--dur-fast), transform var(--dur-fast) var(--ease-out);
}
.site-footer__col a:hover { color: var(--c-marfil); transform: translateX(3px); }
.site-footer__email { font-family: var(--font-display); font-size: 1.08rem !important; color: var(--c-marfil) !important; }
.site-footer__muted { color: var(--text-muted-solid); font-size: 0.85rem; line-height: 1.55; }
.site-footer__socials { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.4rem; }
.site-footer__social {
 display: inline-flex; align-items: center; gap: 0.5rem;
 padding: 0.55rem 1rem !important;
 border-radius: 999px;
 border: 1px solid var(--border-hairline);
 font-size: 0.85rem !important;
}
.site-footer__social:hover { border-color: var(--c-terracota); color: var(--c-marfil); transform: none !important; }
.site-footer__social:hover svg { color: var(--c-terracota); }
.site-footer__social svg { flex-shrink: 0; transition: color var(--dur-fast); }
.site-footer__bottom {
 display: flex; align-items: center; justify-content: space-between;
 flex-wrap: wrap; gap: 0.8rem 1.5rem;
 padding: 1.1rem 1.4rem;
 margin-bottom: clamp(1.2rem, 3vw, 2rem);
 border-radius: 999px;
 background: #ffffff08;
}
.site-footer__bottom p { font-size: 0.8rem; color: var(--text-muted-solid); }
.site-footer__legal { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; }
.site-footer__legal a { color: var(--text-muted-solid); transition: color var(--dur-fast); }
.site-footer__legal a:hover { color: var(--c-marfil); }
@media (max-width: 1000px) {
 .site-footer__grid { grid-template-columns: 1fr 1fr; }
 .site-footer__brand-block { grid-column: 1 / -1; align-items: center; text-align: center; }
 .site-footer__about { max-width: 46ch; }
}
@media (max-width: 780px) {
 .site-footer__cta { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 900px) {
 .site-footer__bottom { margin-bottom: 5.5rem; }
}
@media (max-width: 560px) {
 .site-footer__grid { grid-template-columns: 1fr; gap: 2.2rem; text-align: center; }
 .site-footer__col { align-items: center; }
 .site-footer__socials { justify-content: center; }
 .site-footer__bottom { flex-direction: column; text-align: center; border-radius: var(--radius-md); }
 .site-footer__legal { justify-content: center; }
}
.contact-modal {
 position: fixed;
 inset: 0;
 z-index: 600;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: clamp(1rem, 4vw, 3rem);
 visibility: hidden;
 pointer-events: none;
 transition: visibility 0.3s;
}
.contact-modal.is-open {
 visibility: visible;
 pointer-events: auto;
}
.contact-modal [hidden] { display: none !important; }
.contact-modal__scrim {
 position: absolute;
 inset: 0;
 background: rgba(11, 7, 4, 0.74);
 backdrop-filter: blur(6px);
 -webkit-backdrop-filter: blur(6px);
 opacity: 0;
 transition: opacity 0.3s var(--ease-out);
}
.contact-modal.is-open .contact-modal__scrim {
 opacity: 1;
}
.contact-modal__panel {
 position: relative;
 z-index: 1;
 width: 100%;
 max-width: 720px;
 max-height: 94vh;
 overflow-y: auto;
 overflow-x: hidden;
 background: linear-gradient(160deg, #302418 0%, #1c140e 100%);
 border: 1px solid var(--border-hairline);
 border-radius: var(--radius-lg);
 padding: clamp(2rem, 4.4vw, 3.2rem);
 box-shadow: 0 60px 120px -40px #000000a0;
 scrollbar-width: none;
 -ms-overflow-style: none;
}
.contact-modal__panel::-webkit-scrollbar { display: none; }
.contact-modal__watermark {
 position: absolute;
 left: 50%;
 top: 50%;
 width: clamp(220px, 34vw, 340px);
 height: auto;
 opacity: 0.05;
 pointer-events: none;
 z-index: 0;
 transform: translate(-50%, -50%);
 animation: watermarkSpinCenterXY 50s linear infinite;
}
.contact-modal__close {
 position: absolute;
 top: 1.2rem;
 right: 1.2rem;
 z-index: 2;
 width: 44px;
 height: 44px;
 display: flex;
 align-items: center;
 justify-content: center;
 border-radius: 50%;
 border: 1px solid var(--border-hairline);
 background: transparent;
 color: var(--text-muted-solid);
 transition: color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast) var(--ease-out);
}
.contact-modal__close:hover { color: var(--c-marfil); border-color: var(--c-marfil); transform: rotate(90deg); }
.contact-modal__close:active { transform: scale(0.9); transition-duration: 0.1s; }
.contact-modal__progress {
 position: relative;
 z-index: 1;
 margin-bottom: 2rem;
 padding-right: 2.4rem;
}
.contact-modal__progress-label {
 display: block;
 font-size: var(--fs-eyebrow);
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--c-mostaza);
 font-weight: 600;
 margin-bottom: 0.7rem;
}
.contact-modal__progress-track {
 height: 2px;
 background: var(--border-hairline);
 border-radius: 999px;
 overflow: hidden;
}
.contact-modal__progress-fill {
 height: 100%;
 width: 12.5%;
 background: var(--c-terracota);
 border-radius: 999px;
}
.contact-modal__intro {
 position: relative;
 z-index: 1;
 text-align: center;
 padding-block: clamp(1.5rem, 4vw, 3rem);
}
.contact-modal__title {
 font-size: clamp(1.9rem, 4.2vw, 2.6rem);
 color: var(--c-marfil);
 margin-block: 1rem 1.3rem;
 line-height: 1.15;
}
.contact-modal__subtitle {
 font-size: 1.02rem;
 line-height: 1.7;
 color: var(--text-muted-solid);
 max-width: 44ch;
 margin-inline: auto;
 margin-bottom: 2.2rem;
}
.contact-modal__form { position: relative; z-index: 1; }
.contact-step { display: none; }
.contact-step__title {
 font-size: clamp(1.4rem, 3vw, 1.8rem);
 color: var(--c-marfil);
 margin-bottom: 0.5rem;
}
.contact-step__hint { color: var(--text-muted-solid); font-size: 0.92rem; margin-bottom: 1.6rem; }
.contact-step__empty { color: var(--text-muted-solid); font-size: 0.95rem; font-style: italic; padding-block: 1rem; }
.contact-field { margin-top: 1.6rem; }
.contact-field:first-of-type { margin-top: 1.8rem; }
.contact-field label {
 display: block;
 font-size: 0.82rem;
 letter-spacing: 0.03em;
 color: var(--text-muted-solid);
 margin-bottom: 0.5rem;
}
.contact-field__req { color: var(--c-terracota); }
.contact-field__optional { color: var(--text-muted); font-size: 0.8em; }
.contact-field input {
 width: 100%;
 background: transparent;
 border: none;
 border-bottom: 1px solid var(--border-hairline);
 color: var(--c-marfil);
 font-family: var(--font-body);
 font-size: 1.05rem;
 padding: 0.7rem 0.1rem;
 transition: border-color var(--dur-fast);
}
.contact-field input:focus { outline: none; border-color: var(--c-terracota); }
.contact-field input::placeholder { color: var(--text-muted); }
.contact-field textarea {
 width: 100%;
 background: #ffffff08;
 border: 1px solid var(--border-hairline);
 border-radius: var(--radius-sm);
 color: var(--c-marfil);
 font-family: var(--font-body);
 font-size: 1rem;
 line-height: 1.6;
 padding: 1rem 1.1rem;
 resize: vertical;
 transition: border-color var(--dur-fast);
}
.contact-field textarea:focus { outline: none; border-color: var(--c-terracota); }
.contact-field textarea::placeholder { color: var(--text-muted); }
.contact-cards {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 0.9rem;
 margin-top: 1.6rem;
}
.contact-cards--plain { grid-template-columns: 1fr; gap: 0.7rem; }
.contact-card {
 position: relative;
 display: flex;
 align-items: center;
 gap: 0.9rem;
 text-align: left;
 background: #ffffff05;
 border: 1px solid var(--border-hairline);
 border-radius: var(--radius-md);
 padding: 1.1rem 1.2rem;
 color: var(--c-marfil);
 transition: border-color var(--dur-fast), background var(--dur-fast), transform var(--dur-fast) var(--ease-out);
}
.contact-card:hover { border-color: #8a715080; transform: translateY(-2px); }
.contact-card.is-selected { border-color: var(--c-terracota); background: #c1571a14; }
.contact-card--plain { justify-content: space-between; }
.contact-card__icon {
 flex-shrink: 0;
 width: 40px; height: 40px;
 display: flex; align-items: center; justify-content: center;
 color: var(--c-mostaza);
 border: 1px solid var(--border-hairline);
 border-radius: 50%;
 transition: color var(--dur-fast), border-color var(--dur-fast);
}
.contact-card__icon svg { width: 22px; height: 22px; }
.contact-card.is-selected .contact-card__icon { color: var(--c-terracota); border-color: var(--c-terracota); }
.contact-card__body { display: flex; flex-direction: column; gap: 0.25rem; }
.contact-card__title { font-family: var(--font-display); font-size: 1.02rem; }
.contact-card__desc { font-size: 0.82rem; color: var(--text-muted-solid); line-height: 1.4; }
.contact-card__check {
 flex-shrink: 0;
 margin-left: auto;
 width: 20px; height: 20px;
 border-radius: 50%;
 border: 1px solid var(--border-hairline);
 position: relative;
 transition: border-color var(--dur-fast), background var(--dur-fast);
}
.contact-card.is-selected .contact-card__check {
 background: var(--c-terracota);
 border-color: var(--c-terracota);
}
.contact-card.is-selected .contact-card__check::after {
 content: '';
 position: absolute;
 left: 50%; top: 46%;
 width: 5px; height: 9px;
 border: solid var(--c-beige-claro);
 border-width: 0 1.6px 1.6px 0;
 transform: translate(-50%, -50%) rotate(45deg);
}
.contact-needs { margin-top: 1.6rem; }
.contact-needs__label {
 font-size: var(--fs-eyebrow);
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: var(--c-mostaza);
 font-weight: 600;
 margin-bottom: 0.8rem;
}
.contact-chips { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.contact-chip {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 padding: 0.55rem 1rem;
 border: 1px solid var(--border-hairline);
 border-radius: 999px;
 font-size: 0.85rem;
 color: var(--text-muted-solid);
 cursor: pointer;
 transition: border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);
}
.contact-chip input { position: absolute; opacity: 0; width: 0; height: 0; }
.contact-chip:has(input:checked) {
 border-color: var(--c-terracota);
 background: #c1571a14;
 color: var(--c-marfil);
}
.contact-chip:hover { border-color: #8a715080; }
.contact-pills { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1.6rem; }
.contact-pill {
 padding: 0.75rem 1.4rem;
 border: 1px solid var(--border-hairline);
 border-radius: 999px;
 background: transparent;
 color: var(--text-muted-solid);
 font-size: 0.92rem;
 transition: border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);
}
.contact-pill:hover { border-color: #8a715080; color: var(--c-marfil); }
.contact-pill.is-selected { border-color: var(--c-terracota); background: #c1571a14; color: var(--c-marfil); }
.contact-consent {
 display: flex;
 align-items: flex-start;
 gap: 0.7rem;
 margin-top: 1.8rem;
 padding-top: 1.4rem;
 border-top: 1px solid var(--border-hairline);
 font-size: 0.85rem;
 line-height: 1.55;
 color: var(--text-muted-solid);
 cursor: pointer;
}
.contact-consent input {
 flex-shrink: 0;
 width: 18px;
 height: 18px;
 margin-top: 0.15rem;
 accent-color: var(--c-terracota);
}
.contact-consent a { color: var(--c-marfil); text-decoration: underline; text-underline-offset: 2px; }
.contact-consent a:hover { color: var(--c-terracota); }
.contact-modal__error {
 color: var(--c-terracota);
 font-size: 0.88rem;
 margin-top: 1.4rem;
}
.contact-modal__nav {
 display: flex;
 align-items: center;
 gap: 1rem;
 margin-top: 2.4rem;
 padding-top: 1.6rem;
 border-top: 1px solid var(--border-hairline);
}
.contact-modal__back {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 background: none;
 border: none;
 color: var(--text-muted-solid);
 font-size: 0.9rem;
 transition: color var(--dur-fast);
}
.contact-modal__back:hover { color: var(--c-marfil); }
.contact-modal__nav [data-next],
.contact-modal__nav [data-submit] {
 margin-left: auto;
}
.contact-modal__nav .btn:disabled {
 opacity: 0.4;
 cursor: not-allowed;
 transform: none !important;
}
.contact-modal__nav .btn.is-loading { opacity: 0.7; cursor: wait; animation: contactPulse 1.1s ease-in-out infinite; }
@keyframes contactPulse {
 0%, 100% { opacity: 0.7; }
 50% { opacity: 0.45; }
}
.contact-modal__success {
 position: relative;
 z-index: 1;
 text-align: center;
 padding-block: clamp(1.5rem, 4vw, 2.5rem);
}
.contact-modal__success-gif {
 position: relative;
 z-index: 1;
 width: clamp(64px, 11vw, 84px);
 height: auto;
 margin-inline: auto;
 margin-bottom: -1.6rem;
}
.contact-modal__success-title {
 position: relative;
 font-size: clamp(1.6rem, 3.6vw, 2.1rem);
 color: var(--c-marfil);
 margin-bottom: 1rem;
}
.contact-modal__success-text {
 color: var(--text-muted-solid);
 font-size: 1rem;
 line-height: 1.7;
 max-width: 42ch;
 margin-inline: auto;
 margin-bottom: 2rem;
}
@media (max-width: 640px) {
 .contact-cards { grid-template-columns: 1fr; }
 .contact-modal__panel { padding: 1.8rem 1.4rem; max-height: 92vh; }
 .contact-modal__nav { flex-wrap: wrap; }
}
.char {
 display: inline-block;
 transform: translateY(110%);
 opacity: 0;
}
.reveal-lines h1, .reveal-lines h2, .reveal-lines h3 { will-change: transform; }
[data-tilt] { transform-style: preserve-3d; transition: transform 0.25s var(--ease-out); }
@media (min-width: 861px) {
 [data-tilt] { will-change: transform; }
 [data-magnetic] { will-change: transform; }
}
@keyframes watermarkSpin {
 from { transform: rotate(0deg); }
 to { transform: rotate(360deg); }
}
@keyframes watermarkSpinCenterY {
 from { transform: translateY(-50%) rotate(0deg); }
 to { transform: translateY(-50%) rotate(360deg); }
}
@keyframes watermarkSpinCenterXY {
 from { transform: translate(-50%, -50%) rotate(0deg); }
 to { transform: translate(-50%, -50%) rotate(360deg); }
}
.section-rings circle {
 animation: ringsExpandContract 7s ease-in-out infinite;
}
.section-rings circle:nth-child(1) { animation-delay: -0.6s; }
.section-rings circle:nth-child(2) { animation-delay: -1.2s; }
.section-rings circle:nth-child(3) { animation-delay: -1.8s; }
.section-rings circle:nth-child(4) { animation-delay: -2.4s; }
.section-rings circle:nth-child(5) { animation-delay: -3s; }
.section-rings circle:nth-child(6) { animation-delay: -3.6s; }
@keyframes ringsExpandContract {
 0%, 100% { transform: scale(1); }
 50% { transform: scale(1.12); }
}
@media (max-width: 860px) {
 .section-rings circle { animation: none; }
}
a:focus-visible, button:focus-visible {
 outline: 2px solid var(--c-terracota);
 outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after {
 animation-duration: 0.001ms !important;
 animation-iteration-count: 1 !important;
 transition-duration: 0.001ms !important;
 scroll-behavior: auto !important;
 }
 .reveal-up { opacity: 1 !important; transform: none !important; }
}
.process {
 background:
 radial-gradient(70% 55% at 90% 0%, rgba(215, 201, 166, 0.42), transparent 60%),
 radial-gradient(60% 60% at 5% 100%, rgba(185, 141, 70, 0.16), transparent 55%),
 radial-gradient(55% 50% at 50% 100%, rgba(74, 55, 40, 0.08), transparent 55%),
 var(--c-beige-claro);
 overflow: hidden;
}
.process > .container { position: relative; z-index: 1; }
.process__watermark {
 position: absolute;
 right: 2%;
 top: 5%;
 width: clamp(260px, 30vw, 460px);
 height: auto;
 opacity: 0.07;
 pointer-events: none;
 z-index: 0;
 animation: watermarkSpin 60s linear infinite;
}
.process__head { max-width: 620px; margin-bottom: clamp(3rem, 6vw, 5rem); }
.process__title { font-size: var(--fs-h2); margin-block: 1.2rem 1.2rem; color: var(--c-cafe-black); }
.process__lead { color: var(--c-cafe-albura); font-size: var(--fs-lead); }
.process__timeline {
 position: relative;
 display: flex;
 flex-direction: column;
 gap: 0;
 counter-reset: step;
}
.process__timeline::before {
 content: '';
 position: absolute;
 left: 27px; top: 10px; bottom: 10px;
 width: 1px;
 background: linear-gradient(#4A372833, #4A372833);
}
.process__timeline::after {
 content: '';
 position: absolute;
 left: 27px; top: 10px;
 width: 1px;
 height: var(--progress, 0%);
 background: var(--c-terracota);
 transition: height 1.4s var(--ease-out);
}
.process__step {
 display: grid;
 grid-template-columns: 56px 1fr;
 gap: 1.6rem;
 padding-block: 1.8rem;
 position: relative;
}
.process__step:not(:last-child) { border-bottom: 1px dashed #4A372822; }
.process__step-index {
 grid-column: 1;
 font-family: var(--font-display);
 font-style: italic;
 font-size: 1rem;
 color: #4A372880;
 align-self: center;
}
.process__step-node {
 display: none;
}
.process__step-body h3 {
 font-size: 1.7rem;
 color: var(--c-cafe-black);
 margin-bottom: 0.5rem;
}
.process__step-body p {
 color: var(--c-cafe-albura);
 max-width: 56ch;
 font-size: 0.98rem;
 line-height: 1.65;
}
.process__step:hover .process__step-body h3 { color: var(--c-terracota); transition: color var(--dur-fast); }
@media (max-width: 640px) {
 .process__timeline::before, .process__timeline::after { left: 18px; }
 .process__step { grid-template-columns: 34px 1fr; gap: 1rem; }
}
.process__row {
 display: grid;
 grid-template-columns: repeat(5, 1fr);
 gap: 1rem;
}
.process__mini {
 padding: 1.4rem 1.3rem;
 border-radius: var(--radius-md);
 background: #ffffff80;
 border: 1px solid #4A372822;
 transition: transform var(--dur-fast) var(--ease-out), border-color var(--dur-fast);
}
.process__mini:hover { transform: translateY(-3px); border-color: var(--c-terracota); }
.process__mini-index { display: block; font-family: var(--font-display); font-style: italic; color: var(--c-terracota); margin-bottom: 0.5rem; }
.process__mini h3 { font-size: 1.15rem; color: var(--c-cafe-black); }
@media (max-width: 900px) { .process__row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .process__row { grid-template-columns: repeat(2, 1fr); gap: 0.7rem; } }