
:root{--navy:#082d67;--dark:#071b39;--yellow:#ffb000;--ink:#17202c;--muted:#586778;--paper:#f4f6f9;--line:#dde4ed;--header:104px;--footer:43px}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink)}body{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}.site-header{height:var(--header);display:flex;align-items:center;justify-content:space-between;padding:8px clamp(20px,5vw,80px);background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:18px;min-width:0}.brand img{width:230px;height:72px;object-fit:contain}.brand-divider{width:1px;height:55px;background:#aab5c4}.brand-name{text-transform:uppercase;font-weight:750;font-size:.95rem;line-height:1.35;letter-spacing:.01em;color:var(--navy);white-space:nowrap}.nav{display:flex;gap:28px;align-items:center}.nav a{font-weight:700;font-size:.95rem;padding:10px 0;position:relative}.nav a:after{content:"";position:absolute;bottom:3px;left:0;height:3px;width:0;background:var(--yellow);transition:width .2s}.nav a:hover:after,.nav a.active:after{width:100%}.menu-toggle{display:none;border:0;background:transparent;font-size:1.6rem;color:var(--navy);cursor:pointer}main{height:calc(100dvh - var(--header) - var(--footer));position:relative;overflow:hidden}.view{height:100%;width:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;display:none}.view.is-active{display:block}.view[hidden]{display:none!important}.hero{position:relative;background:var(--dark);color:#fff;overflow:hidden}.hero-slides,.hero-overlay{position:absolute;inset:0}.hero-slide{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1.025);transition:opacity 1.15s ease,transform 6s ease}.hero-slide.active{opacity:1;transform:scale(1)}.hero-overlay{background:linear-gradient(90deg,rgba(3,19,46,.93),rgba(3,27,64,.78) 48%,rgba(3,27,64,.26))}.hero-content{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:50px clamp(25px,7vw,110px) 80px;max-width:1050px}.eyebrow{font-size:.76rem;letter-spacing:.19em;font-weight:850;color:var(--yellow);margin:0 0 18px}.hero h1{font-size:clamp(2.65rem,5.8vw,5.6rem);letter-spacing:-.045em;line-height:1.03;margin:0 0 22px;max-width:880px}.lead{font-size:clamp(1.03rem,1.65vw,1.3rem);color:#e9eef6;line-height:1.65;max-width:690px;margin:0}.actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:32px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;padding:14px 22px;font-weight:800;transition:transform .2s}.btn:hover{transform:translateY(-2px)}.primary{background:var(--yellow);color:var(--dark)}.secondary{border:1px solid #c3d0df;color:#fff;background:#ffffff13}.hero-footer{position:absolute;bottom:22px;left:clamp(25px,7vw,110px);right:clamp(25px,7vw,110px);display:flex;justify-content:space-between;font-size:.75rem;letter-spacing:.1em;color:#d8e0ed;z-index:1}.interior{padding:clamp(35px,5vh,75px) clamp(24px,7vw,110px);background:#fff}.interior h2{font-size:clamp(2.2rem,4.6vw,4.4rem);line-height:1.08;letter-spacing:-.04em;margin:0}.about{position:relative}.about-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,6vw,100px);min-height:calc(100% - 70px);align-items:center}.about-copy{font-size:clamp(1rem,1.3vw,1.16rem);color:#536172;line-height:1.9}.about-copy p{margin:0 0 18px}.about-copy .intro{font-weight:650;color:#283e5d}.accent-line{width:78px;height:5px;background:var(--yellow);margin-top:30px}.text-link{display:inline-block;margin-top:14px;font-weight:800;color:var(--navy)}.text-link span{color:#d89900}.about-strip{border-top:1px solid var(--line);display:flex;gap:25px;justify-content:space-between;padding-top:22px;font-size:.72rem;letter-spacing:.12em;font-weight:800;color:#6b7c8f}.services{background:var(--paper)}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-bottom:34px}.section-heading>p{font-size:1.04rem;line-height:1.7;color:var(--muted);max-width:620px;margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.service-card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;min-height:285px;transition:box-shadow .2s,border-color .2s}.service-card:hover{border-color:#c1ccd9;box-shadow:0 12px 30px #071b3910}.service-top{padding:25px 27px 14px;flex:1}.service-num{font-size:.87rem;font-weight:900;color:#e9a000}.service-card h3{font-size:1.27rem;color:var(--navy);line-height:1.3;margin:18px 0 11px}.service-card p{font-size:.95rem;line-height:1.65;color:var(--muted);margin:0}.service-card details{border-top:1px solid var(--line)}.service-card summary{cursor:pointer;list-style:none;padding:14px 27px;font-size:.88rem;font-weight:800;color:var(--navy);display:flex;justify-content:space-between;gap:8px}.service-card summary::-webkit-details-marker{display:none}.service-card details[open] summary span{transform:rotate(45deg)}.service-card details ul{padding:0 26px 20px 43px;margin:0;font-size:.9rem;line-height:1.65;color:#526377}.service-card li{margin:7px 0}.service-card li::marker{color:var(--yellow)}.disclaimer{font-size:.83rem;color:#657587;margin:22px 0 0}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.gallery figure{margin:0;position:relative;aspect-ratio:1.2;overflow:hidden;background:#e2e7ed}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.gallery figure:hover img{transform:scale(1.05)}.gallery figcaption{position:absolute;inset:auto 0 0;color:#fff;font-weight:800;font-size:.85rem;padding:40px 16px 15px;background:linear-gradient(transparent,#06162cd9)}.contact{background:var(--navy);color:#fff}.contact-layout{height:100%;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(35px,7vw,100px);align-items:center}.contact h2{max-width:700px}.contact-layout>div>p:not(.eyebrow){font-size:1.15rem;line-height:1.8;color:#dbe5f2;max-width:650px}.contact-location{margin-top:34px;color:#c4d4e8;font-size:.9rem}.contact-card{background:#fff;color:var(--ink);padding:clamp(26px,3vw,44px)}.contact-card h3{font-size:1.7rem;line-height:1.25;color:var(--navy);margin:12px 0}.contact-card p{color:var(--muted);line-height:1.7}.contact-card .card-kicker{color:#b77d00;font-weight:850;font-size:.72rem;letter-spacing:.15em}.contact-card .contact-note{font-size:.82rem}.full{width:100%;margin-top:15px}.site-footer{height:var(--footer);display:flex;justify-content:space-between;align-items:center;padding:0 clamp(24px,5vw,80px);background:#fff;color:#69798b;font-size:.72rem;border-top:1px solid var(--line)}@media(max-width:1100px){.brand img{width:185px}.brand-name{font-size:.77rem}.nav{gap:16px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery{grid-template-columns:repeat(3,1fr)}}@media(max-width:820px){:root{--header:76px;--footer:43px}.brand img{width:155px;height:55px}.brand-divider,.brand-name{display:none}.menu-toggle{display:block}.nav{display:none;position:absolute;top:var(--header);left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:12px 24px 20px;gap:0;box-shadow:0 12px 24px #001a331a}.nav.open{display:flex}.nav a{padding:12px 0}.hero-content{padding-bottom:70px}.about-layout,.section-heading,.contact-layout{grid-template-columns:1fr}.about-layout{min-height:unset;gap:25px}.about-strip{margin-top:30px;flex-wrap:wrap;justify-content:flex-start}.contact-layout{height:auto}.gallery{grid-template-columns:repeat(2,1fr)}.site-footer{font-size:.62rem}.site-footer span:last-child{display:none}}@media(max-width:600px){.interior{padding:35px 20px}.hero h1{font-size:clamp(2.4rem,11vw,3.9rem)}.hero-content{padding:40px 22px 65px}.hero-footer{left:22px;right:22px}.hero-footer span{display:none}.service-grid,.gallery{grid-template-columns:1fr}.service-card{min-height:unset}.gallery figure{aspect-ratio:1.45}.section-heading{gap:15px}.contact-card{padding:24px}.about-strip{gap:13px}.site-footer{padding:0 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* V8: carruseles independientes por especialidad en Proyectos */
.gallery-carousel .project-card{isolation:isolate;min-height:230px}
.gallery-carousel .project-slides{position:absolute;inset:0}
.gallery-carousel .project-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease;transform:none!important}
.gallery-carousel .project-slide.active{opacity:1}
.gallery-carousel .project-card:hover .project-slide{transform:none}
.gallery-carousel figcaption{z-index:2;pointer-events:none;padding-bottom:15px}
.project-controls{position:absolute;top:10px;right:10px;z-index:3;display:flex;align-items:center;gap:7px;border-radius:4px;background:rgba(4,26,60,.78);color:#fff;padding:4px 6px;font-size:.73rem;font-weight:750}
.project-controls button{border:0;color:#fff;background:transparent;cursor:pointer;font-size:1.5rem;line-height:1;padding:2px 6px}
.project-controls button:hover,.project-controls button:focus-visible{color:var(--yellow)}
.project-placeholder{height:100%;padding:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;background:linear-gradient(135deg,#102e59,#31567d);color:#edf4fc;font-size:.82rem;line-height:1.5}
.project-placeholder-symbol{font-size:3.3rem;color:#ffb000}
@media(prefers-reduced-motion:reduce){.gallery-carousel .project-slide{transition:none}}

/* V9: controles discretos sin numeración sobre las fotografías */
.project-controls{position:absolute;inset:0;z-index:3;display:flex;justify-content:space-between;align-items:center;pointer-events:none;background:none;padding:0;border-radius:0;gap:0}
.project-controls button{pointer-events:auto;width:34px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;background:rgba(4,26,60,.48);color:#fff;border:0;font-size:1.7rem;line-height:1;opacity:.55;transition:opacity .2s,background .2s}
.project-controls .project-prev{border-radius:0 5px 5px 0}
.project-controls .project-next{border-radius:5px 0 0 5px}
.project-card:hover .project-controls button,.project-controls button:focus-visible{opacity:1;background:rgba(4,26,60,.82)}
@media(hover:none){.project-controls button{opacity:.75}}
