:root{--ink:#161d22;--muted:#7d8487;--sand:#f2f1ed;--orange:#d59d6b;--border:#dde0df}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"DM Sans",sans-serif;background:#fff}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}.container{width:min(100% - 64px,1240px);margin-inline:auto}.skip{position:absolute;top:-100px;left:20px;background:#fff;padding:12px;z-index:10}.skip:focus{top:10px}.site-header{position:absolute;z-index:5;width:100%;top:0;color:#fff;border-bottom:1px solid #ffffff42}.nav{height:91px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px}.brand-mark{font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.09em;font-size:39px;line-height:1}.brand-mark span{color:var(--orange)}.brand-label{font-size:10px;font-weight:700;letter-spacing:.24em;max-width:92px;line-height:1.4}.nav-links{display:flex;align-items:center;gap:39px;font-size:13px;font-weight:600}.nav-links a{transition:opacity .2s}.nav-links a:hover{opacity:.65}.nav-contact{border:1px solid #fff8;padding:13px 17px;display:flex;gap:28px}.menu-toggle{display:none}.hero{min-height:760px;height:min(940px,100svh);position:relative;color:white;background:linear-gradient(115deg,#18242d,#38464b);overflow:hidden;display:flex;align-items:center}.hero-art{position:absolute;inset:0;opacity:.65;background:linear-gradient(120deg,#17252f,#57626a)}.hero-art:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 92px,#ffffff10 93px 94px)}.art-building{position:absolute;bottom:-12%;background:linear-gradient(95deg,#566167,#28333a);transform:skewY(-10deg);box-shadow:-40px 0 0 #232e35}.art-one{height:75%;width:31%;right:5%}.art-two{height:54%;width:24%;right:37%;background:linear-gradient(95deg,#737b7d,#39464e)}.art-three{height:30%;width:18%;right:-5%;background:#8a8984}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,17,24,.86),rgba(9,17,24,.4) 65%,rgba(9,17,24,.18))}.hero-content{position:relative;z-index:1;padding-top:75px}.eyebrow{font-size:11px;letter-spacing:.23em;font-weight:800;color:#667177;display:block}.eyebrow.light{color:#eee}.line{display:inline-block;width:25px;height:1px;background:var(--orange);margin-right:12px;vertical-align:middle}.hero h1,.contact h2{font-family:Manrope,sans-serif;font-size:clamp(3.1rem,6vw,6.8rem);font-weight:600;letter-spacing:-.07em;line-height:1.12;margin:29px 0}.hero h1 em,.contact h2 em{color:#d7b393;font-style:normal}.hero-content>p{max-width:470px;color:#e1e2e2;line-height:1.8;font-size:16px}.hero-actions{display:flex;align-items:center;gap:34px;margin-top:39px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;padding:20px 25px;font-weight:700;font-size:13px;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-3px)}.btn-light{background:#fff;color:#182027}.text-link{font-size:13px;font-weight:700;border-bottom:1px solid #ffffff91;padding-bottom:8px}.hero-bottom{position:absolute;bottom:30px;left:0;right:0;z-index:2;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.15em;color:#ffffffa9}.section{padding:125px 0}.split{display:grid;grid-template-columns:1.1fr 1fr;gap:100px}.section h2{font:600 clamp(2.7rem,4.5vw,5.2rem)/1.16 Manrope,sans-serif;letter-spacing:-.065em;margin:24px 0 0}.muted{color:#9ca5a7}.intro-copy{padding-top:48px;max-width:485px}.intro-copy p{font-size:17px;line-height:1.8;color:#60696d}.under-link{display:inline-flex;gap:65px;border-bottom:1px solid #222;padding:10px 0;margin-top:25px;font-weight:700;font-size:13px}.services{background:var(--sand)}.section-top{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:55px}.section-top>p{color:#697073;line-height:1.8;max-width:280px;font-size:15px}.service-list{border-top:1px solid #cdd1ce}.service{display:grid;grid-template-columns:90px 1fr 50px;align-items:center;gap:12px;padding:35px 8px;border-bottom:1px solid #cdd1ce}.service-num{font-size:12px;color:#8d9798}.service h3{font:600 clamp(1.25rem,2.4vw,2.25rem) Manrope,sans-serif;letter-spacing:-.045em;margin:0}.service-arrow{font-size:25px;color:#7b8181;text-align:right}.review-note{font-size:12px;color:#777;line-height:1.6;margin-top:30px}.project-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:28px;align-items:start}.project-card:nth-child(2){padding-top:100px}.project-image{height:465px;display:grid;place-items:center;position:relative;overflow:hidden;background:#748084}.project-one{background:linear-gradient(145deg,#9c9e99,#57676a 55%,#35444c)}.project-two{height:355px;background:linear-gradient(145deg,#b9b9ae,#777e7a 60%,#45565a)}.project-image:before{content:"";position:absolute;top:10%;left:12%;width:60%;height:100%;background:linear-gradient(130deg,#ffffff23,#222c3336);transform:skew(-15deg);box-shadow:70px 0 0 #ffffff0c}.placeholder-label{position:relative;z-index:1;border:1px solid #ffffff55;padding:12px 17px;color:#fff;font-size:10px;letter-spacing:.15em}.project-caption{display:flex;justify-content:space-between;align-items:center;padding-top:22px}.project-type{font-size:10px;letter-spacing:.16em;color:#8c9497;font-weight:700}.project-caption h3{font:700 21px Manrope,sans-serif;letter-spacing:-.03em;margin:9px 0}.project-caption>span{font-size:25px}.contact{background:#172128;color:#fff;padding:118px 0}.contact-layout{display:grid;grid-template-columns:1.5fr .7fr;gap:65px;align-items:end}.contact h2{font-size:clamp(2.7rem,5vw,5.8rem);margin-bottom:0}.contact-side p{line-height:1.8;color:#b9c1c3;max-width:280px}.contact-side .btn{margin:28px 0}.contact-side small{display:block;color:#a6b0b3;line-height:1.6}.footer{background:#111920;color:#fff;padding:45px 0 25px}.footer-content{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-content p,.footer-content>a:last-child{font-size:11px;color:#aab1b3}.credit{border-top:1px solid #ffffff24;margin-top:40px;padding-top:20px;text-align:right;font-size:10px;color:#9ba6aa}@media(max-width:800px){.container{width:min(100% - 36px,1240px)}.nav{height:76px}.menu-toggle{display:flex;width:40px;height:40px;background:none;border:0;flex-direction:column;justify-content:center;gap:6px;cursor:pointer}.menu-toggle span{height:2px;width:24px;background:#fff;display:block}.nav-links{display:none;position:absolute;top:76px;left:0;right:0;background:#172128;padding:24px 18px;flex-direction:column;align-items:stretch;gap:22px}.nav-links.open{display:flex}.nav-contact{justify-content:space-between}.hero{min-height:640px;height:90svh}.hero-content{padding-top:45px}.hero h1{font-size:clamp(2.8rem,9vw,4.7rem)}.hero-bottom{font-size:9px}.section{padding:76px 0}.split,.contact-layout{grid-template-columns:1fr;gap:28px}.intro-copy{padding-top:0}.section-top{display:block}.section-top>p{max-width:500px}.service{grid-template-columns:45px 1fr 28px;padding:27px 0}.project-grid{grid-template-columns:1fr;gap:42px}.project-card:nth-child(2){padding:0}.project-image,.project-two{height:380px}.contact{padding:85px 0}.contact-side{max-width:450px}.footer-content{flex-wrap:wrap}.footer-content p{order:3;width:100%}}@media(max-width:440px){.hero-actions{gap:15px;flex-wrap:wrap}.btn{gap:20px;padding:17px}.hero-bottom span:last-child{display:none}.project-image,.project-two{height:270px}.section h2{font-size:2.6rem}.contact h2{font-size:2.65rem}.brand-mark{font-size:34px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Fotografías reales provistas por RD: se mostrarán al subir el paquete assets/ al repositorio. Los degradados permanecen como respaldo. */
.hero-art{background-image:linear-gradient(90deg,#17252f5c,#17252f33),url("assets/foto-01.webp");background-size:cover;background-position:center 52%}
.project-one{background-image:linear-gradient(0deg,#16222b22,#16222b00),url("assets/foto-02.webp");background-size:cover;background-position:center}
.project-two{background-image:linear-gradient(0deg,#16222b22,#16222b00),url("assets/foto-06.webp");background-size:cover;background-position:center}
.project-image:before{display:none}

/* Identidad oficial RD Construcciones */
.brand-logo{display:block;width:54px;height:54px;object-fit:contain;border-radius:50%;background:#f1f1f1;flex-shrink:0}.footer-brand .brand-logo{width:48px;height:48px}.brand-label{max-width:125px}
@media(max-width:440px){.brand-logo{width:44px;height:44px}.brand-label{font-size:9px;max-width:100px}}

/* Galería real de obras - imágenes optimizadas */
.gallery-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:58px}.gallery-item{margin:0;overflow:hidden;background:#e5e5e1;aspect-ratio:4/3}.gallery-item:nth-child(2),.gallery-item:nth-child(5){grid-column:span 2;aspect-ratio:8/3}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}.gallery-item:hover img{transform:scale(1.035)}@media(max-width:700px){.gallery-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:32px}.gallery-item:nth-child(2),.gallery-item:nth-child(5){grid-column:span 1;aspect-ratio:4/3}}


/* Refinamientos finales: galería editorial, navegación y accesibilidad */
:root{--accent:#c87947;--focus:#e6ab7a}
a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
::selection{background:#d9ad87;color:#161d22}
.brand-logo{box-shadow:0 2px 18px #00000018}
.nav-contact{transition:background .2s,border-color .2s,transform .2s}
.nav-contact:hover{background:#ffffff15;border-color:#ffffffaa;transform:translateY(-1px)}
.hero-art{background-position:center center}
.hero-shade{background:linear-gradient(90deg,rgba(9,17,24,.90),rgba(9,17,24,.54) 55%,rgba(9,17,24,.23))}
.hero-actions .btn{box-shadow:0 16px 38px #111a2240}
.project-image{transition:filter .3s}
.project-card:hover .project-image{filter:saturate(1.07) contrast(1.03)}
.contact-side a[href*="instagram.com"]{display:inline-block;font-size:14px;color:#f4f4f0;border-bottom:1px solid #d7b393;padding-bottom:5px}
.contact-side .btn{min-height:56px}
.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;border-top:1px solid var(--border);padding-top:34px;margin-top:74px;margin-bottom:22px}
.gallery-heading h3{font:600 clamp(1.65rem,2.5vw,2.45rem)/1.18 Manrope,sans-serif;letter-spacing:-.055em;margin:10px 0 0}
.gallery-heading>p{color:#7c8589;font-size:13px;margin:0;line-height:1.6}
.gallery-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:275px;gap:14px;margin-top:0}
.gallery-item{display:flex;flex-direction:column;min-width:0;margin:0;overflow:hidden;aspect-ratio:auto;background:#f4f3ef}
.gallery-item:nth-child(n){grid-column:span 1;aspect-ratio:auto}
.gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-column:span 2}
.gallery-trigger{display:block;position:relative;width:100%;height:calc(100% - 37px);padding:0;border:0;cursor:zoom-in;background:#c5cac6;overflow:hidden;text-align:left}
.gallery-trigger img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s}
.gallery-item:hover .gallery-trigger img{transform:scale(1.065);filter:brightness(.87)}
.gallery-overlay{position:absolute;inset:auto 0 0;display:flex;align-items:center;justify-content:space-between;padding:15px;color:white;font-size:11px;font-weight:700;letter-spacing:.16em;background:linear-gradient(transparent,#0008)}
.gallery-open{display:grid;place-items:center;width:34px;height:34px;border:1px solid #ffffff8c;border-radius:50%;font-size:19px}
.gallery-item figcaption{display:flex;align-items:center;min-height:37px;padding:0 10px;color:#596267;font-size:11px;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gallery-disclaimer{font-size:12px;color:#858d90;line-height:1.5;margin:18px 0 0}
.gallery-dialog{border:0;padding:0;background:transparent;color:#fff;max-width:min(96vw,1250px);max-height:95vh;overflow:visible}
.gallery-dialog::backdrop{background:rgba(8,13,18,.94);backdrop-filter:blur(10px)}
.gallery-dialog .dialog-shell{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:8px;align-items:center;padding:40px 0}
.gallery-dialog figure{margin:0;min-width:0}
.gallery-dialog .dialog-image{display:block;margin:auto;width:auto;max-width:100%;max-height:min(76vh,900px);object-fit:contain;box-shadow:0 25px 70px #0004}
.gallery-dialog figcaption{display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#d7dddf;letter-spacing:.04em;padding:14px 3px 0}
.gallery-dialog button{cursor:pointer;color:#fff;background:#ffffff18;border:1px solid #ffffff4b;transition:background .2s}
.gallery-dialog button:hover{background:#ffffff33}
.dialog-close{position:absolute;right:0;top:0;width:38px;height:38px;border-radius:50%;z-index:2}
.dialog-nav{width:48px;height:52px;border-radius:4px;font-size:32px;display:grid;place-items:center}
.wa-floating{position:fixed;z-index:20;bottom:25px;right:25px;display:inline-flex;align-items:center;gap:9px;padding:14px 20px;border-radius:999px;background:#1e6d4d;color:#fff;font-size:13px;font-weight:800;box-shadow:0 10px 28px #101c2080;transition:transform .2s,background .2s}
.wa-floating:hover{transform:translateY(-3px);background:#195f42}
.wa-floating svg{width:19px;height:19px;fill:currentColor}
.footer-brand .brand-label{max-width:150px}
@media(max-width:800px){
  .gallery-heading{margin-top:55px}
  .gallery-wall{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:235px;gap:10px}
  .gallery-item:nth-child(n){grid-column:span 1}
  .gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-column:span 2}
  .gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-row:span 1}
  .gallery-dialog .dialog-shell{grid-template-columns:40px minmax(0,1fr) 40px;gap:2px}
  .dialog-nav{width:38px;height:45px;font-size:28px}
}
@media(max-width:540px){
 .gallery-heading{display:block}
 .gallery-heading>p{margin-top:10px}
 .gallery-wall{grid-auto-rows:207px}
 .gallery-item figcaption{font-size:10px}
 .gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-column:span 2;min-height:225px}
 .wa-floating{bottom:16px;right:16px;padding:13px 15px;font-size:12px}
 .gallery-dialog{max-width:99vw}
 .gallery-dialog .dialog-shell{grid-template-columns:34px minmax(0,1fr) 34px;padding:54px 0 30px}
 .gallery-dialog .dialog-image{max-height:70vh}
 .dialog-nav{height:40px;width:32px;font-size:25px}
 .dialog-close{right:8px;top:8px}
}
@media(prefers-reduced-motion:reduce){
 .gallery-trigger img,.gallery-item:hover .gallery-trigger img,.wa-floating{transition:none;transform:none}
}

/* Iconografía final: flechas vectoriales finas, sin símbolos estilo emoji */
.line-arrow{width:17px;height:17px;display:inline-block;flex-shrink:0;vertical-align:-3px;stroke:currentColor;transition:transform .22s ease}
a:hover .line-arrow{transform:translate(2px,-2px)}
.nav-contact .line-arrow,.hero-actions .line-arrow,.under-link .line-arrow{width:16px;height:16px}
.service-arrow,.project-caption>span{font-size:inherit;line-height:1}
.service-arrow .line-arrow{width:20px;height:20px;stroke-width:1.1;color:#7b8181}
.project-caption>span .line-arrow{width:20px;height:20px;stroke-width:1.15;color:#4e5a60}
.gallery-open .line-arrow{width:15px;height:15px;stroke-width:1.35}
.gallery-open{font-size:inherit}
