/*
 * Proyecto: Grupo Zubiri Marrufo, S.A.P.I. de C.V.
 * Descripción: Hoja de estilos principal
 * Version: 1.2.0 — Small text readability (+50–65% on sub-.85rem)
 * Licencia: Proprietaria
 */

         /* ====== FONTS ====== */
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-Thin.woff2') format('woff2');
         font-weight: 100;
         font-style: normal;
         font-display: swap
         }
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-ThinIt.woff2') format('woff2');
         font-weight: 100;
         font-style: italic;
         font-display: swap
         }
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-Light.woff2') format('woff2');
         font-weight: 300;
         font-style: normal;
         font-display: swap
         }
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-LightIt.woff2') format('woff2');
         font-weight: 300;
         font-style: italic;
         font-display: swap
         }
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-Medium.woff2') format('woff2');
         font-weight: 500;
         font-style: normal;
         font-display: swap
         }
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-MediumIt.woff2') format('woff2');
         font-weight: 500;
         font-style: italic;
         font-display: swap
         }
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-SemiBold.woff2') format('woff2');
         font-weight: 600;
         font-style: normal;
         font-display: swap
         }
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-SemiBoldIt.woff2') format('woff2');
         font-weight: 600;
         font-style: italic;
         font-display: swap
         }
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-Bold.woff2') format('woff2');
         font-weight: 700;
         font-style: normal;
         font-display: swap
         }
         @font-face {
         font-family: 'BSF';
         src: url('fonts/BrandingSF-Black.woff2') format('woff2');
         font-weight: 900;
         font-style: normal;
         font-display: swap
         }
         @font-face {
         font-family: 'BSN';
         src: url('fonts/BrandingSF-NarrowLight.woff2') format('woff2');
         font-weight: 300;
         font-style: normal;
         font-display: swap
         }
         @font-face {
         font-family: 'BSN';
         src: url('fonts/BrandingSF-NarrowMedium.woff2') format('woff2');
         font-weight: 500;
         font-style: normal;
         font-display: swap
         }
         @font-face {
         font-family: 'BSN';
         src: url('fonts/BrandingSF-NarrowSemiBold.woff2') format('woff2');
         font-weight: 600;
         font-style: normal;
         font-display: swap
         }
         @font-face {
         font-family: 'BSN';
         src: url('fonts/BrandingSF-NarrowBold.woff2') format('woff2');
         font-weight: 700;
         font-style: normal;
         font-display: swap
         }
         :root {
         --g: #AF8C55;
         --gl: #C4A76E;
         --gp: #D4BC8A;
         --n: #15212F;
         --nd: #0C1219;
         --nm: #1C2D3F;
         --w: #FFF;
         --ow: #F8F6F3;
         --t1: #15212F;
         --t2: #5A5550;
         --tw: rgba(255, 255, 255, .87);
         --twm: rgba(255, 255, 255, .48);
         --bd: rgba(175, 140, 85, .16);
         --f: 'BSF', Georgia, serif;
         --fn: 'BSN', 'BSF', Georgia, serif;
         --e: cubic-bezier(.25, .1, .25, 1);
         --eo: cubic-bezier(0, 0, .2, 1);
         --es: cubic-bezier(.34, 1.56, .64, 1);
         }
         *,
         *::before,
         *::after {
         margin: 0;
         padding: 0;
         box-sizing: border-box
         }
         html {
         scroll-behavior: smooth;
         font-size: 16px;
         -webkit-font-smoothing: antialiased;
         -moz-osx-font-smoothing: grayscale
         }
         body {
         font-family: var(--f);
         font-weight: 500;
         color: var(--t1);
         background: var(--w);
         line-height: 1.7;
         overflow-x: hidden
         }
         body.no-scroll {
         overflow: hidden
         }
         ::selection {
         background: var(--g);
         color: var(--w)
         }
         img {
         max-width: 100%;
         display: block
         }
         a {
         color: inherit;
         text-decoration: none
         }
         /* ====== SCROLL PROGRESS ====== */
         .spb {
         position: fixed;
         top: 0;
         left: 0;
         height: 2px;
         width: 0;
         background: linear-gradient(90deg, var(--g), var(--gl));
         z-index: 9999;
         pointer-events: none
         }
         /* ====== NAV ====== */
         .nav {
         position: fixed;
         top: 0;
         left: 0;
         right: 0;
         z-index: 1000;
         padding: 1.2rem 3rem;
         display: flex;
         justify-content: space-between;
         align-items: center;
         transition: all .6s var(--e)
         }
         .nav.scrolled {
         background: rgba(12, 18, 25, .93);
         backdrop-filter: blur(28px);
         -webkit-backdrop-filter: blur(28px);
         padding: .7rem 3rem;
         box-shadow: 0 1px 0 rgba(175, 140, 85, .06)
         }
         .nav-logo {
         display: flex;
         align-items: center
         }
         .nav-logo svg {
         height: 62px;
         width: auto;
         transition: all .5s var(--e);
         filter: drop-shadow(0 0 0 transparent)
         }
         .nav-logo .gzm-fill {
         fill: var(--g);
         transition: fill .3s var(--e)
         }
         .nav-logo .gzm-zubiri {
         fill: var(--w);
         transition: fill .3s var(--e)
         }
         .nav-logo:hover svg {
         transform: scale(1.03);
         filter: drop-shadow(0 2px 12px rgba(175, 140, 85, .2))
         }
         .nav.scrolled .nav-logo svg {
         height: 44px
         }
         .nl {
         display: flex;
         gap: 2.2rem;
         align-items: center
         }
         .nl a {
         font-family: var(--fn);
         font-weight: 500;
         font-size: .92rem; /* +44% from .64rem */
         letter-spacing: .16em; /* reduced from .22em — less spacing needed at larger size */
         text-transform: uppercase;
         color: var(--twm);
         transition: color .3s var(--e), transform .3s var(--e);
         position: relative
         }
         .nl a::after {
         content: '';
         position: absolute;
         bottom: -5px;
         left: 50%;
         width: 0;
         height: 1px;
         background: var(--g);
         transition: all .4s var(--e);
         transform: translateX(-50%)
         }
         .nl a:hover {
         color: var(--gl);
         transform: translateY(-1px)
         }
         .nl a:hover::after {
         width: 100%
         }
         .nl .nl-cta {
         color: var(--g);
         border: 1px solid rgba(175, 140, 85, .35);
         padding: .45rem 1.1rem;
         transition: all .4s var(--e)
         }
         .nl .nl-cta::after {
         display: none
         }
         .nl .nl-cta:hover {
         background: var(--g);
         color: var(--nd);
         border-color: var(--g);
         transform: translateY(-1px)
         }
         .nt {
         display: none;
         flex-direction: column;
         gap: 5px;
         cursor: pointer;
         padding: 6px;
         z-index: 1001
         }
         .nt span {
         width: 22px;
         height: 1.5px;
         background: var(--g);
         transition: all .35s var(--e);
         display: block
         }
         .nt.active span:nth-child(1) {
         transform: rotate(45deg) translate(4px, 5px)
         }
         .nt.active span:nth-child(2) {
         opacity: 0;
         transform: scaleX(0)
         }
         .nt.active span:nth-child(3) {
         transform: rotate(-45deg) translate(4px, -5px)
         }
         /* ====== HERO ====== */
         .hero {
         position: relative;
         min-height: 100vh;
         display: flex;
         flex-direction: column;
         justify-content: center;
         align-items: center;
         text-align: center;
         background: var(--nd);
         overflow: hidden;
         isolation: isolate
         }
         .hero::before {
         content: '';
         position: absolute;
         inset: 0;
         background: radial-gradient(ellipse 65% 50% at 50% 40%, rgba(175, 140, 85, .045) 0%, transparent 70%), radial-gradient(ellipse 30% 40% at 82% 72%, rgba(175, 140, 85, .02) 0%, transparent 60%);
         z-index: 1
         }
         .hero-grid {
         position: absolute;
         inset: 0;
         z-index: 0;
         overflow: hidden;
         pointer-events: none
         }
         .hero-grid::before {
         content: '';
         position: absolute;
         inset: -120%;
         opacity: .06;
         background-image: linear-gradient(var(--g) 1px, transparent 1px), linear-gradient(90deg, var(--g) 1px, transparent 1px);
         background-size: 72px 72px;
         transform: rotate(45deg)
         }
         .hero-particles {
         position: absolute;
         inset: 0;
         z-index: 1;
         overflow: hidden;
         pointer-events: none
         }
         .hero-particle {
         position: absolute;
         width: 2px;
         height: 2px;
         background: var(--g);
         border-radius: 50%;
         opacity: 0;
         animation: pFloat linear infinite
         }
         @keyframes pFloat {
         0% {
         opacity: 0;
         transform: translateY(100vh) scale(0)
         }
         10% {
         opacity: .45
         }
         90% {
         opacity: .45
         }
         100% {
         opacity: 0;
         transform: translateY(-10vh) scale(1)
         }
         }
         .hero-content {
         position: relative;
         z-index: 2;
         max-width: 860px;
         padding: 0 2rem
         }
         .hero-emblem {
         margin: 0 auto 3rem;
         width: 60px;
         height: 60px;
         opacity: 0;
         animation: embIn 1.4s var(--eo) .2s forwards
         }
         .hero-emblem svg {
         width: 100%;
         height: 100%
         }
         .hero-emblem path {
         fill: var(--g)
         }
         @keyframes embIn {
         from {
         opacity: 0;
         transform: scale(.8) rotate(-8deg)
         }
         to {
         opacity: 1;
         transform: scale(1) rotate(0)
         }
         }
         .hero-headline {
         font-weight: 300;
         font-size: clamp(2rem, 4.4vw, 3.4rem);
         line-height: 1.2;
         color: var(--w);
         letter-spacing: -.015em;
         margin-bottom: 1.8rem
         }
         .hero-headline .word {
         display: inline-block;
         opacity: 0;
         transform: translateY(32px);
         animation: wUp .7s var(--eo) forwards
         }
         .hero-headline em {
         font-style: italic;
         color: var(--g);
         font-weight: 300
         }
         @keyframes wUp {
         to {
         opacity: 1;
         transform: translateY(0)
         }
         }
         /* OPTIMIZED: raised floor from .86rem to .95rem for mobile readability */
         .hero-sub {
         font-weight: 300;
         font-size: clamp(.95rem, 1.1vw, 1rem);
         color: var(--twm);
         max-width: 480px;
         margin: 0 auto 2.8rem;
         line-height: 1.88;
         opacity: 0;
         animation: fadeUp .9s var(--eo) 1.3s forwards
         }
         .hero-line {
         width: 0;
         height: 1px;
         background: var(--g);
         margin: 0 auto;
         animation: lineG .8s var(--eo) 1.6s forwards
         }
         @keyframes lineG {
         to {
         width: 48px
         }
         }
         .hero-scroll {
         position: absolute;
         bottom: 2.5rem;
         left: 0;
         right: 0;
         z-index: 2;
         display: flex;
         flex-direction: column;
         align-items: center;
         gap: .5rem;
         opacity: 0;
         animation: fadeUp .8s var(--eo) 2s forwards
         }
         .hero-scroll span {
         font-family: var(--fn);
         font-size: .82rem; /* +49% from .55rem */
         letter-spacing: .2em; /* reduced from .3em */
         text-transform: uppercase;
         color: var(--twm)
         }
         .scroll-bar {
         width: 1px;
         height: 32px;
         position: relative;
         overflow: hidden
         }
         .scroll-bar::after {
         content: '';
         position: absolute;
         top: -100%;
         left: 0;
         width: 1px;
         height: 100%;
         background: var(--g);
         animation: sDrop 2s ease-in-out infinite
         }
         @keyframes sDrop {
         0% {
         top: -100%;
         opacity: 0
         }
         20% {
         opacity: 1
         }
         100% {
         top: 100%;
         opacity: 0
         }
         }
         @keyframes fadeUp {
         from {
         opacity: 0;
         transform: translateY(24px)
         }
         to {
         opacity: 1;
         transform: translateY(0)
         }
         }
         /* ====== SHARED ====== */
         .section {
         padding: 8rem 3.5rem;
         position: relative
         }
         .s-inner {
         max-width: 1080px;
         margin: 0 auto
         }
         .s-label {
         font-family: var(--fn);
         font-weight: 600;
         font-size: .88rem; /* +47% from .6rem */
         letter-spacing: .22em; /* reduced from .34em */
         text-transform: uppercase;
         color: var(--g);
         margin-bottom: 2rem;
         display: flex;
         align-items: center;
         gap: 1rem
         }
         .s-label::before {
         content: '';
         width: 0;
         height: 1px;
         background: var(--g);
         transition: width .8s var(--eo)
         }
         .s-label.vis::before {
         width: 28px
         }
         /* OPTIMIZED: raised floor from 1.7rem to 1.9rem to preserve hierarchy on small screens */
         .s-head {
         font-weight: 300;
         font-size: clamp(1.9rem, 3vw, 2.5rem);
         line-height: 1.26;
         color: var(--t1);
         letter-spacing: -.012em;
         margin-bottom: 2rem
         }
         .s-head em {
         font-style: italic;
         color: var(--g);
         font-weight: 300
         }
         /* OPTIMIZED: raised range from .88–.96rem to 1–1.05rem for comfortable reading */
         .s-body {
         font-weight: 500;
         font-size: clamp(1rem, 1.15vw, 1.05rem);
         line-height: 1.88;
         color: var(--t2);
         max-width: 620px
         }
         .s-body+.s-body {
         margin-top: 1.3rem
         }
         .rv {
         opacity: 0;
         transition: opacity .9s var(--eo), transform .9s var(--eo)
         }
         .rv-up {
         transform: translateY(40px)
         }
         .rv-left {
         transform: translateX(-40px)
         }
         .rv-right {
         transform: translateX(40px)
         }
         .rv-scale {
         transform: scale(.94)
         }
         .rv.vis {
         opacity: 1;
         transform: translate(0) scale(1)
         }
         /* ====== MISIÓN & VISIÓN ====== */
         .mv {
         background: var(--ow);
         padding: 8rem 3.5rem
         }
         .mv-grid {
         max-width: 1080px;
         margin: 0 auto;
         display: grid;
         grid-template-columns: 1fr 1px 1fr;
         gap: 4rem;
         align-items: start
         }
         .mv-div {
         width: 1px;
         height: 0;
         background: var(--bd);
         align-self: stretch;
         transition: height 1s var(--eo) .3s
         }
         .mv-div.vis {
         height: 100%
         }
         .mv-label {
         font-family: var(--fn);
         font-weight: 600;
         font-size: .82rem; /* +46% from .56rem */
         letter-spacing: .22em; /* reduced from .38em */
         text-transform: uppercase;
         color: var(--g);
         margin-bottom: 1.3rem
         }
         .mv-text {
         font-weight: 300;
         font-size: clamp(1.2rem, 2vw, 1.6rem);
         line-height: 1.5;
         color: var(--t1)
         }
         /* ====== NOSOTROS ====== */
         .nos {
         background: var(--w)
         }
         .nos-grid {
         display: grid;
         grid-template-columns: 1fr 1fr;
         gap: 5rem;
         align-items: start;
         margin-top: 3rem
         }
         .nos-left .s-body {
         max-width: none
         }
         .nos-sectors {
         display: flex;
         flex-direction: column;
         gap: 1.4rem;
         padding-top: .3rem
         }
         .nos-sector {
         padding: 1rem 1.5rem;
         border-left: 2px solid rgba(175, 140, 85, .12);
         transition: all .5s var(--e);
         position: relative;
         cursor: default
         }
         .nos-sector::before {
         content: '';
         position: absolute;
         left: -2px;
         top: 0;
         width: 2px;
         height: 0;
         background: var(--g);
         transition: height .6s var(--e)
         }
         .nos-sector:hover::before {
         height: 100%
         }
         .nos-sector:hover {
         padding-left: 1.8rem;
         background: rgba(175, 140, 85, .02)
         }
         /* OPTIMIZED: raised from .8rem to .875rem */
         .nos-sector h3 {
         font-family: var(--fn);
         font-weight: 600;
         font-size: .875rem;
         letter-spacing: .08em;
         color: var(--t1);
         margin-bottom: .25rem
         }
         /* OPTIMIZED: raised from .86rem to .9375rem (15px) */
         .nos-sector p {
         font-weight: 500;
         font-size: .9375rem;
         line-height: 1.72;
         color: var(--t2)
         }
         /* Services CTA - highlighted */
         .nos-sector-cta {
         display: inline-flex;
         align-items: center;
         gap: .55rem;
         margin-top: .8rem;
         font-family: var(--fn);
         font-weight: 600;
         font-size: .82rem; /* +37% from .6rem */
         letter-spacing: .14em; /* reduced from .2em */
         text-transform: uppercase;
         color: var(--nd);
         background: var(--g);
         cursor: pointer;
         transition: all .4s var(--e);
         border: none;
         padding: .5rem 1rem;
         }
         .nos-sector-cta:hover {
         background: var(--gl);
         gap: .7rem
         }
         .nos-sector-cta svg {
         width: 12px;
         height: 12px;
         transition: transform .3s var(--es)
         }
         .nos-sector-cta:hover svg {
         transform: translateX(3px)
         }
         /* ====== FILOSOFÍA ====== */
         .filo {
         background: var(--n);
         color: var(--w);
         overflow: hidden
         }
         .filo .s-label {
         color: var(--gl)
         }
         .filo .s-label::before {
         background: var(--gl)
         }
         .filo .s-head {
         color: var(--w)
         }
         .filo .s-body {
         color: var(--tw);
         max-width: 650px
         }
         .filo-quote {
         margin-top: 3.5rem;
         padding: 2.5rem 0;
         position: relative
         }
         .filo-quote::before {
         content: '';
         position: absolute;
         top: 0;
         left: 0;
         width: 0;
         height: 1px;
         background: rgba(175, 140, 85, .15);
         transition: width 1.2s var(--eo)
         }
         .filo-quote.vis::before {
         width: 100%
         }
         .filo-quote blockquote {
         font-weight: 300;
         font-style: italic;
         font-size: clamp(1.1rem, 1.65vw, 1.35rem);
         line-height: 1.55;
         color: var(--gl);
         max-width: 560px
         }
         .filo-bg {
         position: absolute;
         right: -60px;
         bottom: -40px;
         width: 320px;
         height: 320px;
         opacity: .025;
         pointer-events: none
         }
         .filo-bg path {
         fill: var(--g)
         }
         /* ====== COMPROMISO ====== */
         .comp {
         background: var(--ow)
         }
         .comp-grid {
         display: grid;
         grid-template-columns: 1fr 1fr 1fr;
         gap: 2rem;
         margin-top: 3.5rem
         }
         .comp-card {
         padding: 2.2rem;
         background: var(--w);
         border: 1px solid rgba(175, 140, 85, .06);
         transition: all .5s var(--e);
         position: relative;
         overflow: hidden
         }
         .comp-card::after {
         content: '';
         position: absolute;
         bottom: 0;
         left: 0;
         width: 0;
         height: 2px;
         background: var(--g);
         transition: width .6s var(--e)
         }
         .comp-card:hover {
         transform: translateY(-4px);
         box-shadow: 0 16px 48px rgba(175, 140, 85, .08);
         border-color: rgba(175, 140, 85, .12)
         }
         .comp-card:hover::after {
         width: 100%
         }
         .comp-ico {
         width: 20px;
         height: 20px;
         margin-bottom: 1.4rem;
         color: var(--g)
         }
         .comp-card h3 {
         font-family: var(--fn);
         font-weight: 600;
         font-size: 1.05rem; /* +42% from .74rem */
         letter-spacing: .1em; /* reduced from .16em */
         text-transform: uppercase;
         color: var(--t1);
         margin-bottom: .85rem
         }
         /* OPTIMIZED: raised from .86rem to .9375rem (15px) */
         .comp-card p {
         font-weight: 500;
         font-size: .9375rem;
         line-height: 1.78;
         color: var(--t2)
         }
         /* ====== INVERSIÓN ====== */
         .inv {
         background: var(--w)
         }
         .inv-content {
         display: grid;
         grid-template-columns: 1fr 1fr;
         gap: 5rem;
         align-items: center
         }
         .inv-visual {
         display: flex;
         justify-content: center;
         align-items: center;
         height: 100%
         }
         .inv-emblem {
         width: 150px;
         height: 150px;
         opacity: .08
         }
         .inv-emblem path {
         fill: var(--g)
         }
         /* ====== CONTACTO ====== */
         .cta-s {
         background: var(--nd);
         padding: 7rem 3.5rem;
         position: relative;
         overflow: hidden
         }
         .cta-s::before {
         content: '';
         position: absolute;
         inset: 0;
         background: radial-gradient(ellipse 50% 45% at 50% 50%, rgba(175, 140, 85, .035) 0%, transparent 70%)
         }
         .cta-inner {
         position: relative;
         z-index: 1;
         max-width: 1080px;
         margin: 0 auto;
         display: grid;
         grid-template-columns: 1fr 1fr;
         gap: 5rem;
         align-items: start
         }
         .cta-s .s-label {
         color: var(--gl)
         }
         .cta-s .s-label::before {
         background: var(--gl)
         }
         .cta-head {
         font-weight: 300;
         font-size: clamp(1.5rem, 2.5vw, 2rem);
         line-height: 1.35;
         color: var(--w);
         margin-bottom: 1.4rem
         }
         /* OPTIMIZED: raised from .9rem to .95rem */
         .cta-body {
         font-weight: 500;
         font-size: .95rem;
         line-height: 1.85;
         color: var(--twm);
         margin-bottom: 1.5rem
         }
         .cta-email {
         font-weight: 300;
         font-size: 1.05rem; /* +28% from .82rem */
         color: var(--twm);
         margin-bottom: .6rem
         }
         .cta-email a {
         color: var(--gl);
         background-image: linear-gradient(var(--gl), var(--gl));
         background-size: 0 1px;
         background-position: 0 100%;
         background-repeat: no-repeat;
         transition: background-size .4s var(--e)
         }
         .cta-email a:hover {
         background-size: 100% 1px
         }
         .cta-address {
         font-weight: 300;
         font-size: 1.05rem; /* +38% from .76rem */
         line-height: 1.7;
         color: var(--twm);
         opacity: .6;
         margin-top: .4rem
         }
         /* Form */
         .cf {
         display: flex;
         flex-direction: column;
         gap: 1rem
         }
         .cf-row {
         display: grid;
         grid-template-columns: 1fr 1fr;
         gap: 1rem
         }
         /* OPTIMIZED: raised from .58rem → .65rem (v1.1) → .95rem (v1.2) */
         .cf label {
         display: block;
         font-family: var(--fn);
         font-weight: 600;
         font-size: .95rem; /* +46% from .65rem */
         letter-spacing: .16em; /* reduced from .25em */
         text-transform: uppercase;
         color: var(--gl);
         margin-bottom: .4rem
         }
         .cf input,
         .cf textarea,
         .cf select {
         width: 100%;
         padding: .75rem 1rem;
         font-family: var(--f);
         font-weight: 500;
         font-size: .88rem;
         color: var(--w);
         background: rgba(255, 255, 255, .04);
         border: 1px solid rgba(175, 140, 85, .15);
         outline: none;
         transition: all .3s var(--e);
         -webkit-appearance: none;
         appearance: none
         }
         .cf input:focus,
         .cf textarea:focus,
         .cf select:focus {
         border-color: var(--g);
         background: rgba(175, 140, 85, .06)
         }
         .cf input::placeholder,
         .cf textarea::placeholder {
         color: rgba(255, 255, 255, .2);
         font-weight: 300
         }
         .cf textarea {
         resize: vertical;
         min-height: 100px
         }
         .cf select {
         color: rgba(255, 255, 255, .5);
         cursor: pointer
         }
         .cf select option {
         background: var(--nd);
         color: var(--w)
         }
         .cf-disclaimer {
         font-size: 1rem; /* +43% from .7rem */
         font-weight: 300;
         color: var(--twm);
         opacity: .6;
         margin-top: .3rem;
         line-height: 1.5
         }
         .cf-disclaimer a {
         color: var(--gl);
         cursor: pointer;
         border-bottom: 1px solid rgba(175, 140, 85, .3);
         transition: border-color .3s var(--e)
         }
         .cf-disclaimer a:hover {
         border-color: var(--gl)
         }
         .cf-submit {
         display: inline-flex;
         align-items: center;
         justify-content: center;
         gap: .75rem;
         font-family: var(--fn);
         font-weight: 600;
         font-size: .95rem; /* +40% from .68rem */
         letter-spacing: .16em; /* reduced from .26em */
         text-transform: uppercase;
         color: var(--g);
         padding: 1rem 2rem;
         border: 1px solid var(--g);
         background: transparent;
         cursor: pointer;
         transition: all .45s var(--e);
         position: relative;
         overflow: hidden;
         margin-top: .5rem
         }
         .cf-submit::before {
         content: '';
         position: absolute;
         inset: 0;
         background: var(--g);
         transform: scaleX(0);
         transform-origin: left;
         transition: transform .45s var(--e);
         z-index: 0
         }
         .cf-submit:hover::before {
         transform: scaleX(1)
         }
         .cf-submit:hover {
         color: var(--nd);
         border-color: var(--g)
         }
         .cf-submit span {
         position: relative;
         z-index: 1
         }
         .cf-submit svg {
         position: relative;
         z-index: 1;
         width: 14px;
         height: 14px;
         transition: transform .35s var(--es)
         }
         .cf-submit:hover svg {
         transform: translateX(4px)
         }
         .cf-msg {
         font-family: var(--fn);
         font-weight: 500;
         font-size: 1.05rem; /* +40% from .75rem */
         letter-spacing: .08em;
         padding: .6rem 0;
         display: none
         }
         .cf-msg.success {
         display: block;
         color: #7eb87e
         }
         .cf-msg.error {
         display: block;
         color: #c47a7a
         }
         /* ====== FOOTER ====== */
         .footer {
         background: var(--nd);
         border-top: 1px solid rgba(175, 140, 85, .05);
         padding: 1.8rem 3.5rem;
         display: flex;
         justify-content: space-between;
         align-items: center
         }
         .footer-left {
         display: flex;
         align-items: center;
         gap: .7rem
         }
         .footer-iso {
         width: 18px;
         height: 18px;
         opacity: .25
         }
         .footer-iso path {
         fill: var(--g)
         }
         .footer-copy {
         font-family: var(--fn);
         font-weight: 500;
         font-size: .82rem; /* +37% from .6rem */
         letter-spacing: .1em; /* reduced from .16em */
         text-transform: uppercase;
         color: var(--twm);
         opacity: .4
         }
         .footer-right {
         display: flex;
         align-items: center;
         gap: 1.5rem
         }
         .footer-legal {
         font-family: var(--fn);
         font-weight: 500;
         font-size: .82rem; /* +49% from .55rem */
         letter-spacing: .08em;
         color: var(--twm);
         opacity: .25
         }
         .footer-priv {
         font-family: var(--fn);
         font-weight: 500;
         font-size: .82rem; /* +49% from .55rem */
         letter-spacing: .08em;
         color: var(--twm);
         opacity: .35;
         cursor: pointer;
         border: none;
         background: none;
         transition: opacity .3s var(--e)
         }
         .footer-priv:hover {
         opacity: .7
         }
         /* ====== SERVICES MODAL ====== */
         .svc-overlay {
         position: fixed;
         inset: 0;
         z-index: 2000;
         background: rgba(12, 18, 25, .6);
         backdrop-filter: blur(8px);
         -webkit-backdrop-filter: blur(8px);
         opacity: 0;
         pointer-events: none;
         transition: opacity .4s var(--e)
         }
         .svc-overlay.open {
         opacity: 1;
         pointer-events: all
         }
         .svc-modal {
         position: fixed;
         top: 0;
         right: -100%;
         width: min(680px, 100vw);
         height: 100vh;
         z-index: 2001;
         background: var(--w);
         overflow-y: auto;
         transition: right .5s var(--e);
         box-shadow: -20px 0 60px rgba(0, 0, 0, .15)
         }
         .svc-modal.open {
         right: 0
         }
         .svc-modal-header {
         position: sticky;
         top: 0;
         background: var(--n);
         padding: 1.3rem 2.5rem;
         display: flex;
         justify-content: space-between;
         align-items: center;
         z-index: 1
         }
         .svc-modal-title {
         font-family: var(--fn);
         font-weight: 600;
         font-size: .92rem; /* +42% from .65rem */
         letter-spacing: .18em; /* reduced from .3em */
         text-transform: uppercase;
         color: var(--gl)
         }
         .svc-close {
         width: 36px;
         height: 36px;
         border: 1px solid rgba(175, 140, 85, .2);
         background: transparent;
         cursor: pointer;
         display: flex;
         align-items: center;
         justify-content: center;
         transition: all .3s var(--e);
         color: var(--gl)
         }
         .svc-close:hover {
         background: var(--g);
         color: var(--nd);
         border-color: var(--g)
         }
         .svc-close svg {
         width: 16px;
         height: 16px
         }
         .svc-body {
         padding: 2.5rem
         }
         .svc-intro {
         margin-bottom: 2.5rem
         }
         .svc-intro h2 {
         font-weight: 300;
         font-size: clamp(1.4rem, 2.2vw, 1.8rem);
         line-height: 1.3;
         color: var(--t1);
         margin-bottom: .8rem
         }
         .svc-intro h2 em {
         font-style: italic;
         color: var(--g);
         font-weight: 300
         }
         /* OPTIMIZED: raised from .9rem to 1rem — reading copy floor */
         .svc-intro p {
         font-weight: 500;
         font-size: 1rem;
         line-height: 1.8;
         color: var(--t2)
         }
         .svc-grid {
         display: grid;
         grid-template-columns: 1fr 1fr;
         gap: 1.2rem;
         margin-bottom: 2.5rem
         }
         .svc-card {
         padding: 1.5rem;
         border: 1px solid rgba(175, 140, 85, .1);
         transition: all .4s var(--e);
         position: relative;
         overflow: hidden;
         cursor: default
         }
         .svc-card::after {
         content: '';
         position: absolute;
         bottom: 0;
         left: 0;
         width: 0;
         height: 2px;
         background: var(--g);
         transition: width .5s var(--e)
         }
         .svc-card:hover {
         border-color: rgba(175, 140, 85, .25);
         box-shadow: 0 8px 32px rgba(175, 140, 85, .06);
         transform: translateY(-2px)
         }
         .svc-card:hover::after {
         width: 100%
         }
         .svc-card-icon {
         width: 28px;
         height: 28px;
         margin-bottom: .8rem;
         color: var(--g)
         }
         .svc-card h3 {
         font-family: var(--fn);
         font-weight: 600;
         font-size: 1rem; /* +39% from .72rem */
         letter-spacing: .08em; /* reduced from .12em */
         text-transform: uppercase;
         color: var(--t1);
         margin-bottom: .5rem
         }
         /* OPTIMIZED: raised from .82rem to .9rem */
         .svc-card p {
         font-weight: 500;
         font-size: .9rem;
         line-height: 1.7;
         color: var(--t2)
         }
         .svc-highlight {
         background: var(--n);
         padding: 2rem;
         margin-bottom: 2.5rem
         }
         .svc-highlight h3 {
         font-family: var(--fn);
         font-weight: 600;
         font-size: .92rem; /* +42% from .65rem */
         letter-spacing: .18em; /* reduced from .28em */
         text-transform: uppercase;
         color: var(--gl);
         margin-bottom: .8rem
         }
         /* OPTIMIZED: raised from .92rem to 1rem — reading copy floor */
         .svc-highlight p {
         font-weight: 300;
         font-size: 1rem;
         line-height: 1.75;
         color: var(--tw)
         }
         .svc-cta-area {
         text-align: center;
         padding: 1rem 0 0
         }
         /* OPTIMIZED: raised from .88rem to 1rem — reading copy floor */
         .svc-cta-area p {
         font-weight: 500;
         font-size: 1rem;
         color: var(--t2);
         margin-bottom: 1.2rem
         }
         .svc-cta {
         display: inline-flex;
         align-items: center;
         gap: .65rem;
         font-family: var(--fn);
         font-weight: 600;
         font-size: .92rem; /* +39% from .66rem */
         letter-spacing: .16em; /* reduced from .24em */
         text-transform: uppercase;
         color: var(--w);
         padding: 1rem 2.2rem;
         background: var(--g);
         border: 1px solid var(--g);
         cursor: pointer;
         transition: all .4s var(--e);
         text-decoration: none
         }
         .svc-cta:hover {
         background: var(--gl);
         border-color: var(--gl)
         }
         .svc-cta svg {
         width: 14px;
         height: 14px;
         transition: transform .3s var(--es)
         }
         .svc-cta:hover svg {
         transform: translateX(3px)
         }
         /* ====== PRIVACY LIGHTBOX ====== */
         .priv-overlay {
         position: fixed;
         inset: 0;
         z-index: 3000;
         background: rgba(12, 18, 25, .7);
         backdrop-filter: blur(8px);
         -webkit-backdrop-filter: blur(8px);
         opacity: 0;
         pointer-events: none;
         transition: opacity .4s var(--e);
         display: flex;
         align-items: center;
         justify-content: center
         }
         .priv-overlay.open {
         opacity: 1;
         pointer-events: all
         }
         .priv-box {
         background: var(--w);
         max-width: 640px;
         width: 90%;
         max-height: 80vh;
         overflow-y: auto;
         padding: 2.5rem;
         position: relative;
         transform: translateY(20px);
         opacity: 0;
         transition: all .4s var(--e)
         }
         .priv-overlay.open .priv-box {
         transform: translateY(0);
         opacity: 1
         }
         .priv-box-header {
         display: flex;
         justify-content: space-between;
         align-items: center;
         margin-bottom: 1.5rem
         }
         .priv-box h2 {
         font-weight: 600;
         font-size: 1.05rem;
         color: var(--t1)
         }
         .priv-box-close {
         width: 32px;
         height: 32px;
         border: 1px solid rgba(175, 140, 85, .2);
         background: transparent;
         cursor: pointer;
         display: flex;
         align-items: center;
         justify-content: center;
         transition: all .3s var(--e);
         color: var(--t2)
         }
         .priv-box-close:hover {
         background: var(--g);
         color: var(--w);
         border-color: var(--g)
         }
         .priv-box-close svg {
         width: 14px;
         height: 14px
         }
         /* OPTIMIZED: raised from .84rem to 1rem — reading copy floor */
         .priv-text {
         font-weight: 500;
         font-size: 1rem;
         line-height: 1.8;
         color: var(--t2)
         }
         .priv-text p+p {
         margin-top: 1rem
         }
         .priv-text strong {
         font-weight: 600;
         color: var(--t1)
         }
         /* ====== RESPONSIVE ====== */
         @media(max-width:900px) {
         .nav {
         padding: 1rem 1.5rem
         }
         .nav.scrolled {
         padding: .7rem 1.5rem
         }
         .nav-logo svg {
         height: 48px
         }
         .nav.scrolled .nav-logo svg {
         height: 36px
         }
         .nl {
         display: none;
         position: fixed;
         top: 0;
         left: 0;
         right: 0;
         bottom: 0;
         background: rgba(12, 18, 25, .97);
         backdrop-filter: blur(24px);
         flex-direction: column;
         justify-content: center;
         align-items: center;
         gap: 2rem;
         z-index: 999
         }
         .nl.open {
         display: flex
         }
         .nl a {
         font-size: 1rem;
         color: var(--tw)
         }
         .nl .nl-cta {
         font-size: 1rem;
         padding: .6rem 1.4rem
         }
         .nt {
         display: flex
         }
         .section {
         padding: 5rem 1.5rem
         }
         .mv {
         padding: 5rem 1.5rem
         }
         .mv-grid {
         grid-template-columns: 1fr;
         gap: 2.5rem
         }
         .mv-div {
         width: 48px;
         height: 1px !important;
         align-self: auto
         }
         .nos-grid {
         grid-template-columns: 1fr;
         gap: 3rem
         }
         .comp-grid {
         grid-template-columns: 1fr;
         gap: 1.2rem
         }
         .inv-content {
         grid-template-columns: 1fr;
         gap: 3rem
         }
         .inv-visual {
         order: -1
         }
         .inv-emblem {
         width: 100px;
         height: 100px
         }
         .cta-inner {
         grid-template-columns: 1fr;
         gap: 3rem
         }
         .cta-s {
         padding: 5rem 1.5rem
         }
         .cf-row {
         grid-template-columns: 1fr
         }
         .footer {
         flex-direction: column;
         gap: .7rem;
         text-align: center;
         padding: 1.5rem
         }
         .footer-right {
         gap: 1rem
         }
         .filo-bg {
         display: none
         }
         .svc-grid {
         grid-template-columns: 1fr
         }
         }
         @media(max-width:600px) {
         .hero-emblem {
         width: 48px;
         height: 48px;
         margin-bottom: 2.2rem
         }
         .nav-logo svg {
         height: 36px
         }
         .nav.scrolled .nav-logo svg {
         height: 30px
         }
         }