.dp-site{--dp-accent:#c2a993;--dp-bg:#f7f5f1;--dp-ink:#1f2426;--dp-muted:#697073;box-sizing:border-box;background:var(--dp-bg);color:var(--dp-ink);font-family:Arial,Helvetica,sans-serif;font-weight:400;line-height:1.5;width:100%;overflow:hidden}.dp-site *{box-sizing:border-box}.dp-site h1,.dp-site h2,.dp-site h3,.dp-site p{margin:0}.dp-site h1,.dp-site h2{letter-spacing:-.055em;line-height:1.08;font-weight:500}.dp-site h1{font-size:clamp(3.6rem,7.5vw,8.2rem)}.dp-site h2{font-size:clamp(2.6rem,4.8vw,5.5rem)}.dp-site h3{font-weight:500}.dp-site a{color:inherit;text-decoration:none}.dp-site button{font:inherit}.dp-site img{display:block;width:100%;height:100%;object-fit:cover}.dp-site .dp-section{padding:120px clamp(20px,5vw,100px)}.dp-site .dp-section-num,.dp-site .dp-kicker{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.dp-site .dp-section-num{margin-bottom:26px}.dp-site .dp-btn{display:inline-flex;gap:40px;align-items:center;justify-content:space-between;padding:17px 20px;background:var(--dp-ink);color:#fff;font-size:13px;font-weight:600;transition:transform .2s,background .2s}.dp-site .dp-btn:hover{background:#454b4d;transform:translateY(-2px)}.dp-site .dp-btn span,.dp-site .dp-text-link span{font-size:19px}.dp-site .dp-text-link{display:inline-flex;gap:35px;border-bottom:1px solid currentColor;padding-bottom:8px;font-size:13px;font-weight:600}.dp-header{height:90px;padding:0 clamp(20px,5vw,100px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d7d4d0;background:var(--dp-bg);position:relative;z-index:8}.dp-wordmark{display:flex;gap:5px;align-items:baseline;font-size:19px;letter-spacing:.09em;white-space:nowrap}.dp-wordmark b{font-weight:800}.dp-wordmark small{font-size:9px;letter-spacing:.18em;margin-left:13px}.dp-header nav{display:flex;gap:35px}.dp-header nav a{font-size:12px;letter-spacing:.03em}.dp-header nav a:hover{color:#967f6e}.dp-mobile-menu{display:none}.dp-hero{min-height:min(790px,85svh);display:grid;grid-template-columns:49% 51%}.dp-hero-copy{padding:80px clamp(20px,5vw,100px) 80px clamp(20px,5vw,100px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.dp-hero .dp-kicker{margin-bottom:34px;color:#746e68}.dp-hero h1{max-width:820px;margin-bottom:25px;overflow-wrap:break-word}.dp-lead{font-size:clamp(15px,1.4vw,19px);line-height:1.7;color:#4b5253;max-width:480px;margin-bottom:35px!important}.dp-hero-image{position:relative;min-height:640px;background:#c9c1b7}.dp-image-index{position:absolute;right:20px;bottom:20px;padding:8px 10px;background:var(--dp-bg);font-size:10px;letter-spacing:.12em}.dp-image-placeholder{height:100%;min-height:230px;background:linear-gradient(145deg,#ddd8d1,#aaa39b);display:grid;place-items:center;color:#625a53;font-size:13px;letter-spacing:.04em;text-align:center;padding:30px}.dp-intro{display:grid;grid-template-columns:37% 63%;border-bottom:1px solid #d8d4cf}.dp-intro>div{max-width:800px}.dp-intro h2{margin-bottom:30px}.dp-intro p:not(.dp-section-num),.dp-pose-copy>p:not(.dp-section-num){color:#53595a;font-size:clamp(17px,1.55vw,22px);line-height:1.65;max-width:650px}.dp-pose{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,150px);align-items:center}.dp-pose-image{height:clamp(430px,55vw,720px);background:#c9c1b7}.dp-pose-copy h2{margin-bottom:28px}.dp-pose-copy .dp-text-link{margin-top:38px}.dp-section-heading{margin-bottom:44px}.dp-section-heading h2{max-width:900px}.dp-services{background:#eeece8}.dp-services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.dp-service-image{height:clamp(280px,32vw,490px);background:#bbb1a7;overflow:hidden}.dp-service-image img{transition:transform .5s}.dp-service:hover img{transform:scale(1.04)}.dp-service-bottom{padding:26px 0}.dp-service-bottom>span{font-size:11px;color:#827971}.dp-service h3{font-size:clamp(23px,2.5vw,34px);letter-spacing:-.035em;margin:10px 0 12px}.dp-service p{color:#626768;max-width:350px;font-size:14px;line-height:1.7}.dp-work-heading{display:flex;align-items:end;justify-content:space-between;gap:25px}.dp-masonry{columns:3;column-gap:17px}.dp-photo{display:block;break-inside:avoid;margin:0 0 17px;overflow:hidden;position:relative;background:#dfdbd5}.dp-photo img{height:auto!important;object-fit:contain!important;transition:transform .45s}.dp-photo:hover img{transform:scale(1.025)}.dp-empty{border:1px dashed #b3aba3;padding:65px 20px;text-align:center;color:#69625d}.dp-process{background:#eeece8}.dp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;border-top:1px solid #bcb6ae;padding-top:30px}.dp-step>span{font-size:12px;color:#877d72}.dp-step h3{font-size:clamp(25px,2.6vw,35px);letter-spacing:-.035em;margin:33px 0 14px}.dp-step p{color:#596061;font-size:15px;line-height:1.7;max-width:350px}.dp-contact{background:var(--dp-ink);color:white;padding:120px clamp(20px,5vw,100px);text-align:center;display:flex;flex-direction:column;align-items:center}.dp-contact h2{font-size:clamp(3rem,7vw,7rem);max-width:950px}.dp-contact p:not(.dp-section-num){margin:28px 0 36px;max-width:470px;color:#c5c9c9;line-height:1.7}.dp-contact .dp-btn-light{background:var(--dp-bg);color:var(--dp-ink)}.dp-contact .dp-btn-light:hover{background:white}.dp-contact-warning{border:1px solid #999;padding:12px;font-size:12px}.dp-footer{min-height:100px;padding:24px clamp(20px,5vw,100px);display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:12px;color:#707474}.dp-portfolio-hero{padding:125px clamp(20px,5vw,100px) 70px}.dp-portfolio-hero h1{margin:18px 0 28px}.dp-portfolio-hero>p:last-child{font-size:clamp(17px,2vw,24px);color:#53595a;max-width:580px}.dp-portfolio-gallery.dp-section{padding-top:30px}.dp-lightbox{position:fixed;z-index:999999;inset:0;background:rgba(0,0,0,.95);display:flex;align-items:center;justify-content:center;padding:25px}.dp-lightbox img{max-width:95vw;max-height:92vh;width:auto;height:auto;object-fit:contain}.dp-lightbox-close{position:absolute;top:12px;right:23px;cursor:pointer;color:white;background:transparent;border:0;font-size:42px;line-height:1}.dp-site :focus-visible{outline:3px solid var(--dp-accent);outline-offset:3px}@media(max-width:1050px){.dp-hero{grid-template-columns:52% 48%}.dp-hero-copy{padding-top:65px;padding-bottom:65px}.dp-hero-image{min-height:590px}.dp-hero h1{font-size:clamp(3.3rem,6.8vw,6rem)}.dp-pose{gap:45px}.dp-site .dp-section{padding-top:85px;padding-bottom:85px}}@media(max-width:700px){.dp-header{height:70px}.dp-wordmark{font-size:16px}.dp-wordmark small{font-size:8px;margin-left:7px}.dp-mobile-menu{display:flex;flex-direction:column;gap:6px;border:0;background:none;padding:12px;cursor:pointer}.dp-mobile-menu span{width:25px;height:2px;background:var(--dp-ink)}.dp-header nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--dp-bg);padding:26px 20px;flex-direction:column;gap:25px;box-shadow:0 18px 25px rgba(0,0,0,.08)}.dp-menu-open .dp-header nav{display:flex}.dp-hero{display:flex;flex-direction:column;min-height:0}.dp-hero-copy{padding:66px 20px 58px}.dp-hero h1{font-size:clamp(3.35rem,13vw,5.8rem)}.dp-hero-image{height:500px;min-height:0}.dp-site .dp-section{padding:75px 20px}.dp-intro{display:block}.dp-intro .dp-section-num{margin-bottom:35px}.dp-pose{display:flex;flex-direction:column;align-items:stretch;gap:42px}.dp-pose-image{height:440px}.dp-services-grid,.dp-steps{grid-template-columns:1fr;gap:30px}.dp-service-image{height:400px}.dp-service-bottom{padding-top:16px}.dp-work-heading{align-items:start;flex-direction:column}.dp-masonry{columns:2;column-gap:10px}.dp-photo{margin-bottom:10px}.dp-steps{gap:36px}.dp-step h3{margin:14px 0 8px}.dp-contact{padding:85px 20px}.dp-footer{padding:28px 20px;flex-direction:column;align-items:start}.dp-portfolio-hero{padding:80px 20px 45px}}@media(max-width:460px){.dp-masonry{columns:2}.dp-hero-image{height:390px}.dp-service-image{height:330px}.dp-site h2{font-size:clamp(2.4rem,11vw,3.3rem)}.dp-wordmark small{display:none}}@media(prefers-reduced-motion:reduce){.dp-site *{scroll-behavior:auto!important;transition:none!important}}

/* v1.1: El título siempre queda dentro de su columna, incluido Elementor Canvas. */
.dp-site .dp-hero > * { min-width: 0; }
.dp-site .dp-hero-copy { min-width: 0; }
.dp-site .dp-hero h1 {
  font-size: clamp(2.4rem, 4vw, 4.35rem);
  max-width: 100%;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
@media (max-width: 1050px) and (min-width: 701px) {
  .dp-site .dp-hero h1 { font-size: clamp(2.2rem, 4.2vw, 3.6rem); }
}
@media (max-width: 700px) {
  .dp-site .dp-hero h1 { font-size: clamp(2.7rem, 10.2vw, 4.7rem); }
}

/* v1.2 - Tipografías y cabecera personalizables */
.dp-site {font-family:var(--dp-font-body, Arial, sans-serif);font-size:calc(16px * var(--dp-size-body, 100) / 100)}
.dp-site h1,.dp-site h2,.dp-site h3 {font-family:var(--dp-font-heading, Arial, sans-serif);letter-spacing:var(--dp-track-heading, -.055em)}
.dp-site h1,.dp-site h2 {font-size-adjust:none}
.dp-site .dp-hero h1 {font-size:clamp(2.1rem,calc(4vw * var(--dp-size-heading, 100) / 100),calc(4.35rem * var(--dp-size-heading, 100) / 100))}
.dp-site h2 {font-size:clamp(2rem,calc(4.8vw * var(--dp-size-heading, 100) / 100),calc(5.5rem * var(--dp-size-heading, 100) / 100))}
.dp-site .dp-wordmark {font-family:var(--dp-font-logo, Arial, sans-serif);font-size:calc(var(--dp-size-logo, 19) * 1px);letter-spacing:var(--dp-track-logo,.09em)}
.dp-site .dp-wordmark small {font-family:var(--dp-font-tagline, Arial, sans-serif);font-size:calc(var(--dp-size-tagline, 9) * 1px);letter-spacing:var(--dp-track-tagline,.18em)}
.dp-site .dp-header nav a {font-family:var(--dp-font-nav, Arial, sans-serif);font-size:calc(var(--dp-size-nav,12) * 1px);letter-spacing:var(--dp-track-nav,.03em)}
@media(max-width:700px){.dp-site .dp-hero h1{font-size:clamp(2.2rem,calc(10.2vw * var(--dp-size-heading,100) / 100),4.7rem)}.dp-site .dp-wordmark{font-size:min(calc(var(--dp-size-logo,19) * 1px),19px)}}

/* Version 1.3 — pausa editorial centrada (solo Inicio) */
.dp-home .dp-intro.dp-section{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;padding:clamp(64px,7vw,105px) clamp(20px,6vw,100px);gap:16px}
.dp-home .dp-intro>.dp-section-num{margin:0 0 4px}
.dp-home .dp-intro>div{width:100%;max-width:860px}
.dp-home .dp-intro h2{margin:0 auto 20px;max-width:820px;font-size:clamp(2.7rem,5vw,5.3rem)}
.dp-home .dp-intro p:not(.dp-section-num){max-width:680px;margin-inline:auto;font-size:clamp(16px,1.4vw,20px)}
/* Version 1.3 — portfolio compacto; la galería masonry de Inicio no cambia */
.dp-portfolio .dp-portfolio-hero{padding-top:clamp(65px,7vw,110px);padding-bottom:30px}
.dp-portfolio .dp-portfolio-hero h1{font-size:clamp(3.8rem,7vw,7rem);margin:12px 0 14px}
.dp-portfolio .dp-portfolio-gallery.dp-section{padding-top:30px;padding-bottom:clamp(65px,7vw,110px)}
.dp-compact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dp-compact-grid .dp-photo{aspect-ratio:4/5;margin:0;width:100%;height:auto;min-width:0;cursor:zoom-in}
.dp-compact-grid .dp-photo img{width:100%;height:100%!important;object-fit:cover!important;object-position:center;transition:transform .4s}
.dp-compact-grid .dp-photo:hover img{transform:scale(1.035)}
@media(max-width:700px){
 .dp-home .dp-intro.dp-section{padding:68px 22px}
 .dp-home .dp-intro .dp-section-num{margin-bottom:6px}
 .dp-home .dp-intro h2{font-size:clamp(2.4rem,9vw,4rem)}
 .dp-portfolio .dp-portfolio-hero{padding:65px 20px 25px}
 .dp-portfolio .dp-portfolio-gallery.dp-section{padding-top:22px}
 .dp-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
}

/* v1.4: diseño reforzado; los estilos críticos también se inyectan en línea */
.dp-site.dp-portfolio .dp-compact-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; columns:auto; }
.dp-site.dp-portfolio .dp-compact-grid .dp-photo{width:100%; margin:0; aspect-ratio:4 / 5; overflow:hidden;}
.dp-site.dp-portfolio .dp-compact-grid .dp-photo img{width:100%;height:100%!important;object-fit:cover!important;}
.dp-site.dp-home .dp-intro.dp-section{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:16px;padding:clamp(56px,6vw,90px) clamp(20px,6vw,100px)}
@media(max-width:700px){.dp-site.dp-portfolio .dp-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}}

/* Formulario v1.6 */
.dp-site .dp-form-wrap{width:100%;max-width:760px;text-align:left;margin:18px auto 0}.dp-site .dp-contact-form{display:flex;flex-direction:column;gap:22px;width:100%}.dp-site .dp-form-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dp-site .dp-contact-form label{display:flex;flex-direction:column;gap:9px;font-size:14px;font-weight:500;color:#f4f3f1}.dp-site .dp-contact-form input:not([type=checkbox]),.dp-site .dp-contact-form select,.dp-site .dp-contact-form textarea{font:inherit;font-size:16px;line-height:1.4;color:#232829;background:#f7f5f1;border:1px solid #a7a8a7;border-radius:0;width:100%;padding:15px;min-height:52px;max-width:100%}.dp-site .dp-contact-form textarea{min-height:130px;resize:vertical}.dp-site .dp-form-consent{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:12px!important;font-size:13px!important;line-height:1.6}.dp-site .dp-form-consent input{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--dp-accent)}.dp-site .dp-form-consent a{text-decoration:underline;text-underline-offset:3px}.dp-site .dp-contact-form button{cursor:pointer;align-self:flex-start;border:0}.dp-site .dp-contact-form small{color:#c5c9c9}.dp-site .dp-form-trap{position:absolute!important;left:-99999px!important;opacity:0!important;pointer-events:none!important}.dp-site .dp-form-feedback{margin:0 0 22px!important;border:1px solid #c5c9c9;padding:16px 18px;color:white!important;max-width:none!important;font-size:15px}.dp-site .dp-form-admin-hint{border:1px solid #c5c9c9;padding:16px 20px;font-size:14px}.dp-site .dp-contact-form input:focus-visible,.dp-site .dp-contact-form textarea:focus-visible,.dp-site .dp-contact-form select:focus-visible{outline:3px solid var(--dp-accent);outline-offset:3px}@media(max-width:700px){.dp-site .dp-form-two{grid-template-columns:1fr}.dp-site .dp-contact-form button{width:100%}}


/* Daniel Prato Web v1.8 — pulido editorial CONSERVADOR de escritorio.
   No altera contenido, orden de fotografias, opciones, ni reglas de movil. */
@media (min-width: 1051px) {
  /* Cabecera: presencia discreta, lectura mas afinada */
  .dp-site .dp-header {height:84px; padding-inline:clamp(34px,5.5vw,104px)}
  .dp-site .dp-header nav {gap:clamp(24px,2.6vw,44px)}
  .dp-site .dp-header nav a {transition:opacity .2s ease}
  .dp-site .dp-header nav a:hover {opacity:.65}

  /* Portada: conservar el split y la fotografia sin superponer texto. */
  .dp-site .dp-hero {grid-template-columns:minmax(0,49%) minmax(0,51%);min-height:680px}
  .dp-site .dp-hero-copy {padding-left:clamp(34px,5.5vw,104px);padding-right:clamp(30px,4.3vw,80px)}
  .dp-site .dp-hero h1 {line-height:1.075;max-width:100%}
  .dp-site .dp-hero-image {min-height:680px}

  /* Consistencia espacial, permitiendo que manden las fotografias. */
  .dp-site .dp-section {padding-left:clamp(34px,5.5vw,104px);padding-right:clamp(34px,5.5vw,104px)}
  .dp-site.dp-home .dp-intro.dp-section {padding-top:clamp(64px,6vw,90px)!important;padding-bottom:clamp(64px,6vw,90px)!important}
  .dp-site .dp-pose {gap:clamp(44px,6vw,110px)}
  .dp-site .dp-pose-copy h2 {max-width:700px}
  .dp-site .dp-services-grid {gap:22px}
  .dp-site .dp-service-bottom {padding-top:23px;border-top:1px solid #d6d0c8;margin-top:12px}
  .dp-site .dp-service h3 {line-height:1.2}
  .dp-site .dp-service p {min-height:3.3em}
  .dp-site .dp-work-heading {gap:35px}
  .dp-site .dp-work-heading h2 {max-width:780px}

  /* Proceso: ritmo mas preciso y separaciones alineadas. */
  .dp-site .dp-process .dp-steps {gap:clamp(26px,3vw,50px);padding-top:36px}
  .dp-site .dp-step h3 {margin-top:26px}

  /* El CTA y el cierre deben sentirse intencionales, no vacios. */
  .dp-site .dp-contact {padding:clamp(86px,8vw,115px) clamp(34px,6vw,112px)}
  .dp-site .dp-contact h2 {font-size:clamp(3.4rem,6.5vw,6.3rem);line-height:1.08}
  .dp-site .dp-contact p:not(.dp-section-num) {margin-top:26px;margin-bottom:34px}
  .dp-site .dp-footer {min-height:120px;border-top:1px solid #dedbd6;letter-spacing:.012em}
  .dp-site .dp-footer a {font-weight:600;border-bottom:1px solid currentColor;padding-bottom:3px}

  /* Portfolio: ritmo del encabezado y continuidad con cuadrícula compacta. */
  .dp-site.dp-portfolio .dp-portfolio-hero {padding-left:clamp(34px,5.5vw,104px);padding-right:clamp(34px,5.5vw,104px)}
  .dp-site.dp-portfolio .dp-portfolio-gallery.dp-section {padding-bottom:92px}
}

/* v1.9 — Cabecera con jerarquía unificada, subtítulo ligero y cierre centrado compacto. */
.dp-site .dp-wordmark {font-family:var(--dp-font-logo-effective,var(--dp-font-heading,Arial,sans-serif));font-weight:700}
.dp-site .dp-wordmark-name {display:inline-block;font-weight:700}
.dp-site .dp-wordmark small {font-family:var(--dp-font-tagline-effective,var(--dp-font-body,Arial,sans-serif));font-weight:300}
@media (min-width: 1051px) {
  .dp-site .dp-contact {padding:clamp(56px,5.5vw,78px) clamp(34px,6vw,112px);text-align:center;align-items:center;justify-content:center}
  .dp-site .dp-contact h2 {font-size:clamp(2.9rem,5.35vw,5.1rem);line-height:1.1;max-width:900px}
  .dp-site .dp-contact .dp-section-num {margin-bottom:17px}
  .dp-site .dp-contact p:not(.dp-section-num) {margin:19px auto 25px;max-width:550px}
}

/* v2.0 — MOBILE ONLY. Desktop >= 701px remains unchanged. */
@media (max-width:700px) {
  .dp-site {width:100%; overflow-x:clip;}
  .dp-site .dp-header {height:68px;padding-inline:18px;gap:10px;}
  .dp-site .dp-wordmark {min-width:0;font-size:clamp(14px,4.1vw,18px);letter-spacing:.035em;gap:0;}
  .dp-site .dp-wordmark-name {font-size:inherit;letter-spacing:inherit;white-space:nowrap;}
  .dp-site .dp-wordmark small {display:block;font-size:7px;letter-spacing:.1em;margin-left:9px;white-space:nowrap;}
  .dp-site .dp-mobile-menu {width:44px;height:44px;flex:0 0 44px;align-items:center;justify-content:center;gap:5px;padding:8px;}
  .dp-site .dp-mobile-menu span {width:23px;}
  .dp-site .dp-header nav {top:68px;padding:12px 18px 22px;gap:0;box-shadow:0 14px 22px rgba(0,0,0,.09);}
  .dp-site .dp-header nav a {display:flex;align-items:center;min-height:48px;font-size:15px;border-bottom:1px solid #ddd8d1;}
  .dp-site .dp-section {padding:54px 20px;}
  .dp-site .dp-section-num,.dp-site .dp-kicker {font-size:10px;letter-spacing:.13em;}
  .dp-site .dp-section-num {margin-bottom:15px;}
  .dp-site h2 {font-size:clamp(2rem,8vw,3rem);line-height:1.12;overflow-wrap:break-word;}
  .dp-site .dp-btn {min-height:48px;padding:13px 16px;gap:25px;}
  /* Above the fold: compact copy visually linked with the photograph. */
  .dp-site .dp-hero {display:flex;flex-direction:column;}
  .dp-site .dp-hero-copy {padding:35px 20px 24px;align-items:flex-start;}
  .dp-site .dp-hero .dp-kicker {margin-bottom:18px;}
  .dp-site .dp-hero h1 {font-size:clamp(2.45rem,9.8vw,3.6rem);line-height:1.04;letter-spacing:-.052em;max-width:100%;margin-bottom:16px;overflow-wrap:break-word;}
  .dp-site .dp-lead {font-size:15px;line-height:1.52;margin-bottom:21px!important;}
  .dp-site .dp-hero-image {height:clamp(300px,95vw,500px);min-height:0;}
  .dp-site .dp-hero-image img {object-position:center 27%;}
  .dp-site .dp-image-index {bottom:12px;right:12px;}
  /* Intentional editorial pause: centered, shorter and readable. */
  .dp-site.dp-home .dp-intro.dp-section {padding:53px 20px!important;gap:10px;}
  .dp-site.dp-home .dp-intro h2 {font-size:clamp(2rem,8.1vw,3.2rem);margin:0 auto 14px!important;}
  .dp-site.dp-home .dp-intro p:not(.dp-section-num) {font-size:15px;line-height:1.58;}
  .dp-site .dp-pose {gap:21px;}
  .dp-site .dp-pose-image {width:100%;height:clamp(285px,88vw,410px);}
  .dp-site .dp-pose-image img {object-position:center 32%;}
  .dp-site .dp-pose-copy h2 {font-size:clamp(2rem,8vw,3.2rem);margin-bottom:14px;}
  .dp-site .dp-pose-copy>p:not(.dp-section-num) {font-size:16px;line-height:1.6;}
  .dp-site .dp-pose-copy .dp-text-link {margin-top:22px;min-height:44px;align-items:center;}
  /* Service images should not monopolize the viewport. */
  .dp-site .dp-section-heading {margin-bottom:25px;}
  .dp-site .dp-services-grid {gap:26px;}
  .dp-site .dp-service-image {height:clamp(240px,74vw,350px);}
  .dp-site .dp-service-bottom {padding:12px 0 0;}
  .dp-site .dp-service h3 {font-size:clamp(23px,6.5vw,29px);margin:5px 0 6px;}
  .dp-site .dp-service p {max-width:none;font-size:14px;line-height:1.56;}
  .dp-site .dp-work-heading {gap:16px;}
  .dp-site .dp-work-heading .dp-text-link {min-height:44px;align-items:center;}
  .dp-site .dp-masonry {columns:2;column-gap:8px;}
  .dp-site .dp-photo {margin-bottom:8px;}
  .dp-site .dp-steps {gap:0;padding-top:0;}
  .dp-site .dp-step {padding:16px 0 18px;border-top:1px solid #bcb6ae;}
  .dp-site .dp-step h3 {font-size:clamp(22px,6vw,28px);margin:7px 0;}
  .dp-site .dp-step p {font-size:14px;line-height:1.55;}
  .dp-site .dp-contact {padding:55px 20px 60px;text-align:center;align-items:center;}
  .dp-site .dp-contact .dp-section-num {margin-bottom:13px;}
  .dp-site .dp-contact h2 {font-size:clamp(2.15rem,8.5vw,3.3rem);line-height:1.1;max-width:100%;}
  .dp-site .dp-contact p:not(.dp-section-num) {margin:16px auto 23px;max-width:360px;line-height:1.55;font-size:15px;}
  .dp-site .dp-contact .dp-btn {justify-content:center;gap:18px;min-height:50px;}
  .dp-site .dp-footer {min-height:0;padding:22px 20px;gap:12px;font-size:12px;align-items:flex-start;}
  /* Portfolio opens with work quickly; portraits use compact 2-col grid. */
  .dp-site.dp-portfolio .dp-portfolio-hero {padding:45px 20px 14px!important;}
  .dp-site.dp-portfolio .dp-portfolio-hero h1 {font-size:clamp(3.3rem,13vw,4.5rem);line-height:1.05;margin:10px 0 12px;}
  .dp-site.dp-portfolio .dp-portfolio-hero>p:last-child {font-size:16px;line-height:1.55;max-width:100%;}
  .dp-site.dp-portfolio .dp-portfolio-gallery.dp-section {padding:15px 14px 54px!important;}
  .dp-site.dp-portfolio .dp-compact-grid {gap:8px!important;}
  .dp-site.dp-portfolio .dp-compact-grid .dp-photo {touch-action:manipulation;}
  .dp-site .dp-lightbox {padding:15px;}
  .dp-site .dp-lightbox img {max-width:100%;max-height:84dvh;object-fit:contain;}
  .dp-site .dp-lightbox-close {top:8px;right:12px;width:44px;height:44px;font-size:35px;}
}
@media (max-width:360px) {
  .dp-site .dp-wordmark small {font-size:6px;margin-left:6px;}
  .dp-site .dp-hero h1 {font-size:clamp(2.25rem,9.1vw,3rem);}
  .dp-site .dp-hero-copy {padding-inline:17px;}
}
