@font-face{font-family:Barlow;src:url('barlow.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Manrope;src:url('manrope.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
:root{--paper:#f5f5f2;--ink:#202224;--muted:#565d63;--line:#d9dddf;--orange:#ff6b35;--body:Manrope,Arial,sans-serif;--heading:Barlow,'Arial Narrow',Impact,sans-serif;--space:clamp(4rem,8vw,7.5rem)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.7}a{color:inherit;text-decoration:none}p{margin:0 0 1.25rem;color:var(--muted)}h1,h2,h3{font-family:var(--heading);font-weight:600;line-height:1.06;margin:0 0 1.35rem;overflow-wrap:break-word}h1{font-size:clamp(3rem,6.4vw,5.5rem);letter-spacing:-.025em}h2{font-size:clamp(2.25rem,4vw,3.5rem);letter-spacing:-.015em}h3{font-size:1.8rem;line-height:1.15}img{display:block;width:100%;height:auto;object-fit:cover}figure{margin:0}figcaption{font-size:.875rem;line-height:1.5;color:var(--muted);padding:.75rem 0}button{font:inherit}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:5px}.wrap{width:min(1240px,calc(100% - 80px));margin-inline:auto}.section{padding-block:var(--space)}.eyebrow{font-size:.875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.4rem}.lead{font-size:clamp(1.125rem,1.6vw,1.35rem);max-width:42rem;line-height:1.65}.small{font-size:.9375rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.8rem 1.4rem;background:var(--orange);border:1px solid var(--orange);border-radius:4px;color:var(--ink);font-size:.9375rem;font-weight:750;line-height:1.35;text-align:center;transition:background .15s,color .15s}.button:hover{background:#ff824f}.button.secondary{background:transparent;border-color:var(--ink)}.button.secondary:hover{background:var(--ink);color:white}.actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}.text-link{font-size:.9375rem;font-weight:700;text-decoration:underline;text-underline-offset:6px}.text-link:hover{color:#8a320f}.skip{position:fixed;top:-100px;left:20px;padding:12px 20px;background:white;z-index:50}.skip:focus{top:12px}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:108px}.brand{font-family:var(--heading);font-size:1.8rem;line-height:1.05;flex-shrink:0}.brand span{display:block;margin-top:.7rem;font-family:var(--body);font-size:.625rem;letter-spacing:.15em;font-weight:600}nav{display:flex;align-items:center;gap:1.8rem}nav>a{font-size:.875rem;font-weight:600}nav>a[aria-current]{text-decoration:underline;text-underline-offset:8px}nav>a:hover{text-decoration:underline;text-underline-offset:8px}.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:4px;min-height:48px;padding:.5rem .8rem}.hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:center;padding-block:4.5rem 3rem}.hero h1{font-size:clamp(3.5rem,6.8vw,6rem)}.hero figure img{aspect-ratio:4/4.3;object-position:center}.hero .eyebrow{font-size:.8rem}.hero-note{margin-top:3.5rem;font-size:.875rem;border-top:1px solid var(--line);padding-top:1.2rem}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:3rem}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:23rem;margin-bottom:0}.examples{display:grid;grid-template-columns:1.25fr 1fr;gap:2.5rem}.examples img{aspect-ratio:4/3}.examples h3{margin:.8rem 0 .5rem}.examples p{font-size:.9375rem}.examples>a:hover h3{text-decoration:underline;text-underline-offset:5px}.solutions-section{background:#eceeea;border-block:1px solid var(--line)}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 4rem}.service{display:grid;grid-template-columns:2.5rem 1fr;gap:1.2rem;padding:2.8rem 0;border-top:1px solid #c6ccca}.service p{max-width:30rem}.service:hover .text-link{text-decoration-thickness:2px}.number{font-family:var(--heading);font-size:1.5rem;color:var(--muted)}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.product img{aspect-ratio:4/3;margin-bottom:1.5rem;background:white}.product .eyebrow{display:block;font-size:.75rem;margin-bottom:.8rem}.product h3{margin-bottom:.7rem}.product p{font-size:1rem}.product:hover h3{text-decoration:underline;text-underline-offset:5px}.sectors{border-top:1px solid var(--line)}.sector-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-top:3rem}.sector-grid a{border-top:1px solid var(--line);padding-top:2rem}.sector-grid a:hover h3{text-decoration:underline;text-underline-offset:6px}.workshop-band{background:var(--ink);color:var(--paper);padding-block:var(--space)}.workshop-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:5rem;align-items:center}.workshop-band p,.workshop-band figcaption{color:#d0d3d2}.workshop-band .secondary{color:white;border-color:#8b9294;margin-top:1rem}.workshop-band .secondary:hover{background:white;color:var(--ink)}.workshop-band a:focus-visible{outline-color:var(--orange)}.contact-band{padding-block:var(--space);display:flex;align-items:center;justify-content:space-between;gap:3rem}.contact-band>div{max-width:43rem}.contact-band>.button{flex-shrink:0}.contact-band p:last-child{margin-bottom:0}.footer{border-top:1px solid var(--line);padding-top:3rem}.footer-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:2rem;align-items:start}.footer p,.footer-grid>a:last-child{font-size:.875rem}.footer-grid>a:last-child{justify-self:end;text-decoration:underline;text-underline-offset:5px}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:2rem;padding-block:1.5rem;font-size:.8rem;color:var(--muted)}.page-intro{padding-block:5rem 3.5rem}.page-intro h1{max-width:56rem}.anchor-nav{display:flex;flex-wrap:wrap;gap:1rem 2rem;padding-bottom:3rem}.anchor-nav a{font-size:.9375rem;text-decoration:underline;text-underline-offset:5px}.service-detail{display:grid;grid-template-columns:1fr 1.15fr;gap:5rem;border-top:1px solid var(--line)}.service-detail h2{margin-top:1.5rem}.service-detail .button{margin-top:1rem}.catalog{padding-bottom:5rem}.detail-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:4rem;align-items:start;padding-bottom:4rem}.detail-grid dl{margin:2rem 0}.detail-grid dt{font-weight:700;border-top:1px solid var(--line);padding-top:1rem}.detail-grid dd{margin:.4rem 0 1.4rem;color:var(--muted)}.detail-grid .small{margin-top:1.5rem}.process{padding:0;list-style:none;counter-reset:steps;display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-top:3rem}.process li{counter-increment:steps;border-top:1px solid var(--line);padding-top:1.5rem}.process li:before{content:'0' counter(steps);display:block;color:var(--muted);margin-bottom:1rem}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:6rem;padding-bottom:var(--space)}.contact-layout aside{border-left:1px solid var(--line);padding-left:3rem}.contact-options{display:flex;flex-wrap:wrap;gap:1rem}.notice{border-left:3px solid var(--orange);padding:1rem 1.25rem;background:white;margin-block:1.5rem}.quote-list{padding-left:1.25rem}.quote-list li{padding-bottom:.5rem}.installation{border-top:1px solid var(--line);margin-top:2rem;padding-top:2rem}.interest{font-weight:700}.footer a:focus-visible{outline-color:var(--ink)}[hidden]{display:none!important}
@media(min-width:1600px){.hero{padding-top:5.5rem}.hero figure img{aspect-ratio:4/4}}
@media(max-width:1050px){.wrap{width:calc(100% - 48px)}nav{gap:1rem}.brand{font-size:1.6rem}nav .button{padding:.7rem .8rem}.hero{gap:2rem}.workshop-grid{gap:3rem}.contact-layout{gap:3rem}}
@media(max-width:850px){.header-inner{flex-wrap:wrap;gap:0;min-height:88px;padding-block:1rem}.menu-toggle:not([hidden]){display:block}nav{width:100%;flex-direction:column;align-items:stretch;gap:0;padding-top:1rem}nav>a{padding:1rem 0;font-size:1rem;border-top:1px solid var(--line)}nav>.button{margin-top:.5rem;padding:1rem}body.js nav:not(.is-open){display:none}.hero{grid-template-columns:1fr 1fr;gap:1.5rem}.hero .actions{flex-direction:column}.hero h1{font-size:3.5rem}.hero-note{margin-top:2rem}.section-heading{align-items:start;flex-direction:column;gap:1.5rem}.product-grid{gap:1.25rem}.workshop-grid,.detail-grid,.service-detail{gap:2.5rem}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>a:last-child{justify-self:start}.contact-band{align-items:start;flex-direction:column}.process{grid-template-columns:1fr 1fr}.sector-grid{gap:1.5rem}}
@media(max-width:600px){body{font-size:1rem}.wrap{width:calc(100% - 40px)}.hero{grid-template-columns:1fr;padding-top:2.5rem;gap:2rem}.hero h1{font-size:3.5rem}.hero .eyebrow{font-size:.75rem}.hero .actions{gap:.75rem}.hero-note{display:none}.hero figure img{aspect-ratio:4/3}.hero .lead{max-width:25rem}.examples,.service-grid,.product-grid,.sector-grid,.workshop-grid,.detail-grid,.service-detail,.contact-layout,.footer-grid{grid-template-columns:1fr}.examples{gap:2rem}.section-heading{margin-bottom:2rem}.service{padding-block:2rem;grid-template-columns:2rem 1fr;gap:.75rem}.product-grid{gap:3rem}.sector-grid{gap:1rem}.workshop-grid{gap:2rem}.contact-band .button{width:100%}.footer-bottom{flex-direction:column;gap:.75rem}.footer-grid{gap:1.5rem}.page-intro{padding-top:3rem}.service-detail{gap:1rem}.service-detail h2{margin-top:.75rem}.process{grid-template-columns:1fr;gap:1.5rem}.contact-layout{gap:3rem}.contact-layout aside{padding-left:0;padding-top:2rem;border-left:0;border-top:1px solid var(--line)}.detail-grid{gap:2rem}.anchor-nav{flex-direction:column}.contact-options{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Encuadres uniformes en tarjetas y galerías, sin deformar las fotografías. */
.examples {grid-template-columns:repeat(2,minmax(0,1fr));row-gap:64px}
.project-gallery {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-bottom:100px;align-items:start}
.hero figure img,.examples figure img,.product img,.workshop-grid figure img,.detail-grid figure img,.project-gallery img {width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center;background:#e9e9e5}
.examples img[src*="bayahibe.webp"] {object-position:center 64%}
img[src*="bandera-preparacion"] {object-position:58% 62%}
img[src*="letras-proceso"] {object-position:center 57%}
img[src*="letras-pintura"] {object-position:center 45%}
.project-gallery figure:only-child {width:100%}
.process-gallery {margin-top:36px;margin-bottom:0}
@media(max-width:600px){.examples,.project-gallery{grid-template-columns:1fr}.project-gallery{gap:24px;margin-bottom:64px}.process-gallery{margin-bottom:0}.examples{row-gap:40px}}

/* Distribución móvil y tablet: texto legible, espacios contenidos y navegación compacta. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
main *,header *,footer *{min-width:0}
.hours{margin:1.5rem 0;padding:1.25rem;background:#eceeea;border-radius:4px}
.hours h3{font-family:var(--body);font-size:1rem;line-height:1.4;margin-bottom:1rem}
.hours dl{margin:0}.hours dt{font-weight:700;margin-top:.8rem}.hours dd{margin:.25rem 0;color:var(--muted)}
.hours dd span{display:block}.hours .small{margin:1rem 0 0}.contact-options{margin-bottom:1.5rem}
@media(max-width:900px){
 .hero,.detail-grid,.workshop-grid,.service-detail,.contact-layout{grid-template-columns:1fr}
 .hero{gap:1.75rem}.hero figure{width:100%}.hero .actions{flex-direction:row}
 .product-grid,.sector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .contact-layout aside{border-left:0;border-top:1px solid var(--line);padding:2rem 0 0}
 .service-grid{gap:0 2rem}.hero-note{display:none}
}
@media(max-width:850px){
 .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;min-height:80px;padding-block:14px}
 .header-inner nav{grid-column:1/-1}.brand{flex-shrink:1;font-size:clamp(1.15rem,4.8vw,1.6rem);line-height:1.15}
 .brand span{font-size:.55rem;letter-spacing:.09em;margin-top:6px}
 .menu-toggle{font-size:.875rem;min-width:64px;min-height:44px;padding:8px}
 .section-heading{gap:1rem}.text-link{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:600px){
 :root{--space:2.75rem}.wrap{width:calc(100% - 36px)}
 body{font-size:1rem;line-height:1.6}.hero{padding-block:1.75rem 1rem;gap:1.5rem}
 h1,.hero h1{font-size:clamp(2.4rem,10vw,3rem);line-height:1.06;margin-bottom:1rem}
 h2{font-size:clamp(1.9rem,7.5vw,2.4rem);line-height:1.12;margin-bottom:1rem}
 h3{font-size:1.65rem}h1 br,h2 br{display:none}
 .lead,.hero .lead{font-size:1rem;line-height:1.6;max-width:none}
 .eyebrow,.hero .eyebrow{font-size:.6875rem;letter-spacing:.075em;line-height:1.6;margin-bottom:1rem}
 .hero .actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:1.25rem}
 .button{min-height:48px;padding:12px 16px;font-size:.9375rem}
 figcaption{font-size:.75rem;line-height:1.5;padding-top:8px}
 .section-heading{margin-bottom:1.5rem}.section-heading h2{max-width:100%}
 .product-grid,.sector-grid{grid-template-columns:1fr}
 .page-intro{padding-block:2rem 1.5rem}.catalog{padding-bottom:2rem}
 .contact-layout{gap:2rem}.contact-layout h2{font-size:1.85rem}
 .hours{padding:1rem}.hours dd{font-size:.9375rem}.hours .small{font-size:.875rem}
 .contact-band{gap:1.25rem}.footer{padding-top:2rem}.project-gallery{margin-bottom:2.75rem}
}

/* Portada más compacta: encabezados -2pt y texto de lectura -1.5pt. */
body{font-size:calc(1.0625rem - 1.5pt);line-height:1.5}
p{margin-bottom:.85rem}
h1{font-size:calc(clamp(3rem,6.4vw,5.5rem) - 2pt)}
.hero h1{font-size:calc(clamp(3.5rem,6.8vw,6rem) - 2pt)}
h2{font-size:calc(clamp(2.25rem,4vw,3.5rem) - 2pt)}
h3{font-size:calc(1.8rem - 2pt)}
h1,h2,h3{line-height:1.05;margin-bottom:.85rem}
.lead{font-size:calc(clamp(1.125rem,1.6vw,1.35rem) - 1.5pt);line-height:1.45}
.product p{font-size:calc(1rem - 1.5pt)}
.small,.examples p{font-size:calc(.9375rem - 1.5pt)}
.hero{padding-top:2rem;padding-bottom:1rem}
.hero .actions{margin-top:1rem}
@media(max-width:850px){.hero h1{font-size:calc(3.5rem - 2pt)}}
@media(max-width:600px){
 body{font-size:calc(1rem - 1.5pt);line-height:1.45}
 .header-inner{min-height:70px;padding-block:10px}
 h1,.hero h1{font-size:calc(clamp(2.4rem,10vw,3rem) - 2pt)}
 h2{font-size:calc(clamp(1.9rem,7.5vw,2.4rem) - 2pt)}
 h3{font-size:calc(1.65rem - 2pt)}
 .contact-layout h2{font-size:calc(1.85rem - 2pt)}
 .lead,.hero .lead{font-size:calc(1rem - 1.5pt);line-height:1.45}
 .hours dd{font-size:calc(.9375rem - 1.5pt)}.hours .small{font-size:.75rem}
 .hero{padding-top:1rem;padding-bottom:.5rem;gap:1rem}
 .hero .actions{margin-top:.85rem;gap:8px}
 .hero h1{max-width:100%;margin-bottom:.6rem}
 .hero figure img{aspect-ratio:4/3}
 .hero + .section{padding-top:2rem}
}

/* Fotos de acompañamiento para las cuatro capacidades. */
.service{grid-template-columns:104px minmax(0,1fr);gap:1.25rem;align-items:start}
.service-visual img{width:104px;height:104px;aspect-ratio:1;object-fit:cover;border-radius:4px}
.service-visual .number{display:block;font-size:1rem;margin-top:.4rem}
@media(max-width:600px){.service{grid-template-columns:76px minmax(0,1fr);gap:1rem}.service-visual img{width:76px;height:76px}.service h3{font-size:1.4rem}}

/* Soluciones en móvil: evitar una columna de texto estrecha junto a la imagen. */
@media(max-width:600px){
 .service-grid{grid-template-columns:minmax(0,1fr)}
 .service{grid-template-columns:minmax(0,1fr);gap:1rem;padding-block:1.75rem}
 .service-visual{display:flex;align-items:center;gap:1rem}
 .service-visual img{width:96px;height:96px;flex:none}
 .service-visual .number{margin:0;font-size:1rem}
 .service h3{font-size:1.55rem;line-height:1.15;margin-bottom:.65rem}
 .service p{max-width:none;margin-bottom:.65rem;line-height:1.45}
 .service .text-link{min-height:44px}
}

/* Encuadres fotográficos: dar prioridad a la pieza y reducir fondos secundarios. */
img[src*="oceanpark.webp"]{object-position:center 34%}
img[src*="bayahibe.webp"]{object-position:center 52%}
img[src*="bayahibe-detalle.webp"]{object-position:center 48%}
img[src*="punta-cana.webp"]{object-position:center 46%}
img[src*="quiosco.webp"]{object-position:center 48%}
img[src*="quiosco-proceso.webp"]{object-position:center 45%}
img[src*="numeracion.webp"]{object-position:center 50%}
img[src*="direccion.webp"]{object-position:center 48%}
img[src*="pictograma.webp"]{object-position:center 50%}
img[src*="letras-proceso.webp"]{object-position:center 50%}
img[src*="letras-pintura.webp"]{object-position:center 50%}
img[src*="bandera-preparacion.webp"]{object-position:center 45%}
