:root{
  --verde-profundo:#2F4A39;
  --verde-olivo:#6B745E;
  --marfil:#FAF7ED;
  --carbon:#2E2E2E;
  --blanco:#FFFFFF;
  --muted:#666b60;
  --soft:#F4F0E7;
  --line:rgba(47,74,57,.16);
  --font-display:'Playfair Display',Georgia,serif;
  --font-body:'DM Sans',Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:98px}
body{margin:0;background:var(--marfil);color:var(--carbon);font-family:var(--font-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--verde-olivo);outline-offset:4px}
.container{width:min(1200px,calc(100% - 88px));margin-inline:auto}
.skip-link{position:absolute;z-index:1000;top:-100px;left:24px;padding:12px 16px;background:var(--verde-profundo);color:white}.skip-link:focus{top:15px}
.site-header{position:relative;z-index:30;background:var(--marfil);border-bottom:1px solid rgba(47,74,57,.11)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;min-height:92px;gap:28px}
/* Marca: variante aprobada 04, solo tipografía en una línea. */
.brand-04,.footer-brand-04{font-family:var(--font-display);font-weight:500;letter-spacing:-.045em;line-height:1.15;white-space:nowrap}
.brand-04{font-size:clamp(22px,2.15vw,31px);color:var(--verde-profundo)}
.footer-brand-04{font-size:24px;color:var(--marfil)}
/* El isotipo oficial se muestra al inicio de los servicios, solo cuando el archivo maestro está disponible. */
.official-symbol-wrap{display:none;justify-content:center;margin:0 auto 20px;min-height:56px}
.official-symbol-wrap.is-ready{display:flex}
.official-symbol{display:block;width:56px;height:56px;object-fit:contain}
.nav-links{display:flex;align-items:center;gap:28px;font-size:12px;font-weight:600;letter-spacing:.035em;color:var(--carbon)}
.nav-links>a:not(.nav-contact):hover,.text-link:hover,.service-link:hover{color:var(--verde-olivo)}
.nav-phone{white-space:nowrap}.nav-contact{background:var(--verde-profundo);color:white;border:1px solid var(--verde-profundo);padding:12px 18px;white-space:nowrap;transition:background .2s ease}.nav-contact:hover{background:#253d2e}.nav-contact span{margin-left:9px}
.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:9px 11px;cursor:pointer;min-height:42px;min-width:44px}.menu-toggle span{display:block;height:1.5px;width:21px;background:var(--verde-profundo);margin:4px auto}
.hero{padding:26px 0 0}.hero-panel{position:relative;isolation:isolate;overflow:hidden;min-height:575px;display:flex;align-items:center;background:#d5d5c8}
.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-photo{object-fit:cover;object-position:center 52%;z-index:-2}.hero-shade{background:linear-gradient(90deg,rgba(250,247,237,.96) 0%,rgba(250,247,237,.85) 34%,rgba(250,247,237,.40) 55%,transparent 77%);z-index:-1}
.hero-content{width:min(640px,67%);padding:72px 0 87px 68px}.eyebrow{margin:0 0 21px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--verde-olivo)}
h1,h2,h3{color:var(--verde-profundo);font-family:var(--font-display);font-weight:500;letter-spacing:-.038em}
h1{font-size:clamp(43px,4.6vw,66px);line-height:1.16;margin:0 0 19px}h2{font-size:clamp(37px,3.75vw,52px);line-height:1.18;margin:0 0 19px}h3{font-size:37px;line-height:1.2;margin:0 0 15px}
.rule{width:54px;height:1.5px;background:var(--verde-olivo);margin:26px 0 22px}.hero-lead{max-width:485px;line-height:1.84;font-size:16px;margin:0 0 29px;color:#424a42}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:25px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:49px;padding:12px 20px;font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:.035em;border:1px solid transparent;transition:background .2s,border .2s,transform .2s;white-space:nowrap}
.button:hover{transform:translateY(-1px)}.button-primary{background:var(--verde-profundo);color:white}.button-primary:hover{background:#253c2f}.text-link{font-size:12px;font-weight:700;color:var(--verde-profundo);border-bottom:1px solid var(--verde-olivo);padding-bottom:5px;white-space:nowrap}.text-link span{margin-left:6px}
.services{padding:112px 0 128px}.section-intro{text-align:center;max-width:710px;margin:0 auto 51px}.section-intro h2{margin-bottom:15px}.section-intro p:not(.eyebrow){margin:0 auto;max-width:600px;color:var(--muted);font-size:15px;line-height:1.85}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.service-card{background:#FFFEFB;min-width:0;border:1px solid var(--line);display:flex;flex-direction:column}
.image-frame{aspect-ratio:2.15/1;overflow:hidden;background:#eeece3}.image-frame img{width:100%;height:100%;object-fit:cover;object-position:center}.service-content{padding:36px 39px 40px;display:flex;flex-direction:column;flex:1;min-height:250px}.card-topline{width:31px;height:2px;background:var(--verde-olivo);margin-bottom:17px}.service-content p{margin:0 0 22px;color:#5f665d;max-width:430px;font-size:14px;line-height:1.85}.service-link{border-bottom:1px solid var(--verde-olivo);align-self:flex-start;padding-bottom:6px;color:var(--verde-profundo);font-size:11px;font-weight:700;letter-spacing:.07em;margin-top:auto}.service-link span{margin-left:16px}
.location{background:#f0f0e9;padding:108px 0}.location-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);align-items:center;gap:76px}.location-content{padding:10px 0}.location-lead{color:#62695f;line-height:1.85;max-width:495px;font-size:15px;margin:0 0 19px}.detail-list{max-width:515px;margin:24px 0 31px}.detail{padding:17px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:90px 1fr;gap:15px;font-size:13px;line-height:1.65}.detail-label{font-weight:700;color:var(--verde-profundo)}.detail a{text-decoration:underline;text-decoration-color:var(--verde-olivo);text-underline-offset:4px}
.location-media{position:relative;aspect-ratio:1.22/1;overflow:hidden;background:#d2d4c7}.location-media img{height:100%;width:100%;object-fit:cover;object-position:center}.location-media::after{content:"";pointer-events:none;position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(27,35,27,.48))}.location-media-caption{position:absolute;z-index:2;bottom:27px;left:30px;font:500 27px/1.3 var(--font-display);color:white;text-shadow:0 1px 4px #0005}
.contact{background:var(--verde-profundo);padding:102px 0 107px;color:var(--marfil);text-align:center}.contact-inner{max-width:680px}.contact .eyebrow{color:#d0d7bb}.contact h2{color:var(--marfil);font-size:clamp(39px,4.2vw,56px)}.contact p:not(.eyebrow){font-size:15px;line-height:1.9;max-width:525px;margin:0 auto 30px;color:#e1e8d9}.contact-actions{display:flex;justify-content:center;gap:15px;flex-wrap:wrap}.button-light{background:var(--marfil);color:var(--verde-profundo)}.button-light:hover{background:#eae6d9}.button-outline{color:var(--marfil);border-color:#c5d0b8}.button-outline:hover{background:rgba(255,255,255,.11)}
.footer{padding:36px 0;background:#26392d;color:var(--marfil)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:23px}.footer-wordmark{font-size:19px;color:var(--marfil)}.footer p{margin:0;font-size:11px;color:#d7dfd0}
@media(max-width:1120px){.nav-links{gap:18px}.nav-contact{padding:11px 13px}.brand-04{font-size:25px}.hero-content{padding-left:48px}.location-grid{gap:45px}}
@media(max-width:900px){.container{width:min(100% - 40px,720px)}.nav-wrap{min-height:76px}.menu-toggle{display:block}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--marfil);padding:24px max(20px,calc((100vw - 720px)/2));border-top:1px solid var(--line);box-shadow:0 18px 23px rgba(20,38,25,.08);flex-direction:column;align-items:stretch;gap:16px}.nav-links.is-open{display:flex}.nav-links a{font-size:14px}.nav-contact{text-align:center;display:block;margin-top:8px}.hero{padding-top:14px}.hero-panel{min-height:560px}.hero-content{width:min(90%,570px);padding:64px 28px 80px 39px}.hero-shade{background:linear-gradient(90deg,rgba(250,247,237,.94) 0%,rgba(250,247,237,.78) 45%,rgba(250,247,237,.20) 100%)}.services{padding:84px 0}.location{padding:78px 0}.location-grid{gap:32px}.service-grid{gap:18px}.service-content{padding:25px}.location-media{aspect-ratio:1/1}}
@media(max-width:660px){.container{width:calc(100% - 32px)}.brand-04{font-size:clamp(20px,5.8vw,25px);letter-spacing:-.045em}.hero-panel{min-height:640px;align-items:flex-start}.hero-photo{object-position:60% center}.hero-shade{background:linear-gradient(180deg,rgba(250,247,237,.97) 0%,rgba(250,247,237,.88) 37%,rgba(250,247,237,.53) 67%,rgba(250,247,237,.06) 100%)}.hero-content{width:100%;padding:42px 25px 130px}.hero-content .eyebrow{font-size:10px}.hero h1{font-size:clamp(39px,10.1vw,51px);max-width:450px}.hero h1 br{display:none}.hero-lead{max-width:390px;font-size:14px;line-height:1.8}.hero-actions{gap:19px}.section-intro{margin-bottom:34px}.section-intro h2{font-size:37px}.section-intro p:not(.eyebrow){font-size:14px}.service-grid{grid-template-columns:1fr;gap:19px}.image-frame{aspect-ratio:2/1}.service-content{min-height:0;padding:27px 28px 33px}.service-content h3{font-size:34px}.service-content p{margin-bottom:25px}.location-grid{grid-template-columns:1fr}.location{padding:75px 0}.location-media{aspect-ratio:1.7/1}.location-content h2{font-size:40px}.contact{padding:77px 0 85px}.contact h2{font-size:40px}.contact-actions{align-items:stretch;flex-direction:column}.footer-inner{align-items:flex-start;flex-direction:column;gap:11px}.whatsapp-float{bottom:13px;right:13px;padding:10px 15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

@media(max-width:375px){.brand-04{font-size:20px}.nav-wrap{gap:12px}.menu-toggle{flex-shrink:0}}

/* V11 — un solo elemento de marca, situado al comenzar la sección de servicios. */
.official-symbol-services {margin:0 auto 25px;min-height:0}
.official-symbol-services.is-ready {display:flex}
.official-symbol-services .official-symbol {width:76px;height:76px;object-fit:contain}
.section-intro:has(.official-symbol-services.is-ready) .eyebrow {margin-bottom:15px}
@media(max-width:660px){
 .official-symbol-services{margin-bottom:19px}
 .official-symbol-services .official-symbol{width:61px;height:61px}
}

/* V13: Master artwork has priority; text-only display is a safe fallback while assets are unavailable. */
.brand-04-art{height:40px;width:auto;max-width:min(305px,63vw);object-fit:contain;object-position:left center}
.hero-brand{margin:0 0 19px;min-height:14px}
.hero-brand .eyebrow{margin:0}
.hero-brand-art{height:120px;max-width:min(220px,90%);width:auto;object-fit:contain;object-position:left center;margin-bottom:9px}
@media(max-width:900px){.hero-brand-art{height:102px;max-width:185px}}
@media(max-width:660px){.hero-brand-art{height:93px;max-width:155px}.hero h1 br{display:none}}

/* V14: independent official icon in hero; intentionally no recreated artwork. */
.hero-symbol-slot{width:91px;height:91px;display:flex;align-items:center;justify-content:center;margin:0 0 26px;color:var(--verde-olivo)}
.hero-symbol-official{width:100%;height:100%;object-fit:contain;object-position:left center}
.hero-symbol-placeholder{width:88px;height:88px;display:flex;align-items:center;justify-content:center;border:1px dashed rgba(47,74,57,.43);border-radius:4px;font:600 10px/1.8 var(--font-body);letter-spacing:.14em;text-align:center;color:var(--verde-olivo);background:rgba(250,247,237,.32)}
.location-media::after{display:none}
.location-media-caption{display:none}
@media(max-width:660px){
 .hero-symbol-slot{width:68px;height:68px;margin-bottom:18px}
 .hero-symbol-placeholder{width:67px;height:67px;font-size:8px}
}

/* V16 · Isotipo original aprobado, sin recreaciones ni placeholders. */
.hero-symbol-slot{
  width:120px;
  height:147px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 0 24px;
  border:0;
  background:none;
}
.hero-symbol-official{
  display:block;
  width:120px;
  height:147px;
  object-fit:contain;
  object-position:center;
}
.hero-symbol-placeholder{display:none!important}
.hero-panel{min-height:650px}
.hero-content{padding-top:55px;padding-bottom:68px}
@media(max-width:900px){
  .hero-symbol-slot{width:104px;height:128px;margin-bottom:21px}
  .hero-symbol-official{width:104px;height:128px}
  .hero-panel{min-height:620px}
  .hero-content{padding-top:54px;padding-bottom:73px}
}
@media(max-width:660px){
  .hero-symbol-slot{width:87px;height:107px;margin-bottom:16px}
  .hero-symbol-official{width:87px;height:107px}
  .hero-panel{min-height:665px}
  .hero-content{padding-top:30px;padding-bottom:65px}
  .hero h1{font-size:clamp(31px,8.5vw,41px);line-height:1.17}
  .hero h1 br{display:block}
}

/* V17: ajuste final del isotipo oficial y jerarquia, sin cambiar la composicion V16 */
.hero-symbol-slot,.hero-symbol-official{width:138px;height:169px}
.hero-symbol-slot{margin-bottom:18px}
.hero-panel{min-height:662px}
.hero-content{padding-top:43px;padding-bottom:56px}
@media(max-width:900px){
  .hero-symbol-slot,.hero-symbol-official{width:120px;height:147px}
  .hero-symbol-slot{margin-bottom:17px}
  .hero-content{padding-top:46px;padding-bottom:62px}
  .hero-panel{min-height:627px}
}
@media(max-width:660px){
  .hero-symbol-slot,.hero-symbol-official{width:100px;height:123px}
  .hero-symbol-slot{margin-bottom:16px}
  .hero-content{padding-top:27px;padding-bottom:57px}
  .hero-panel{min-height:672px}
}


/* V19 · Ajuste tipográfico aprobado: jerarquía de tres títulos secundarios. */
.section-intro{max-width:990px}
.section-intro h2,
.location-content h2,
.contact h2{
  font-size:46px;
  line-height:1.18;
  letter-spacing:-.038em;
}
.contact-inner{max-width:1030px}
@media (min-width:1121px){
  .section-intro h2,.location-content h2,.contact h2{white-space:nowrap}
}
@media (max-width:1120px){
  .section-intro h2,.location-content h2,.contact h2{white-space:normal}
}
@media (max-width:900px){
  .section-intro h2{font-size:40px}
  .location-content h2,.contact h2{font-size:40px}
}
@media (max-width:660px){
  .section-intro h2{font-size:36px}
  .location-content h2,.contact h2{font-size:38px}
  .section-intro h2,.location-content h2,.contact h2{line-height:1.2}
}
@media (max-width:360px){
  .section-intro h2{font-size:35px}
  .location-content h2,.contact h2{font-size:36px}
}


/* V20 · Corrección de jerarquía adaptable. Sin cambios de contenido. */
/* Amplia área de lectura en portada y mantiene las dos líneas aprobadas. */
@media (min-width:901px){
  .hero-content{width:min(850px,82%);padding-right:18px}
  .hero h1{font-size:clamp(46px,4.3vw,60px);line-height:1.16;white-space:nowrap}
  .hero-shade{background:linear-gradient(90deg,rgba(250,247,237,.97) 0%,rgba(250,247,237,.89) 40%,rgba(250,247,237,.48) 65%,transparent 91%)}
}
/* En tablets la portada sigue conservando las dos líneas. */
@media (min-width:661px) and (max-width:900px){
  .hero-content{width:min(96%,670px);padding-left:32px;padding-right:18px}
  .hero h1{font-size:clamp(40px,5vw,46px);line-height:1.16;white-space:nowrap}
}
/* En móvil la tipografía sigue siendo legible y los títulos se parten naturalmente. */
@media (max-width:660px){
  .hero h1{white-space:normal}
  .section-intro h2,.location-content h2,.contact h2{font-size:32px;line-height:1.24;letter-spacing:-.038em;white-space:normal}
}
@media (max-width:360px){
  .section-intro h2,.location-content h2,.contact h2{font-size:30px}
}

/* V21 — ajustes de lectura solicitados; no cambia contenido ni estructura. */
/* En escritorio, el texto de contacto ocupa una sola línea. */
@media (min-width:901px){
 .contact p:not(.eyebrow){max-width:none;white-space:nowrap}
}
/* Mismo tamaño y una sola línea para los tres títulos en móvil.
   Escala fluidamente según el ancho, sin sacrificar contenido. */
@media (max-width:660px){
 .section-intro h2,
 .location-content h2,
 .contact h2{
   font-size:clamp(18px,5.55vw,24px);
   line-height:1.22;
   letter-spacing:-.05em;
   white-space:nowrap;
   text-wrap:nowrap;
 }
}

/* V22 — composicion editorial de textos en escritorio. */
@media (min-width:901px){
  /* La segunda oración aprobada se presenta completa en una sola línea. */
  .hero-lead{max-width:none}
  .hero-lead-first,.hero-lead-second{display:block;white-space:nowrap}
  /* La introducción a los servicios no se parte en escritorio. */
  .section-intro p:not(.eyebrow){max-width:none;white-space:nowrap}
}

/* V23: Centrar solamente el encabezado y párrafo introductorios de la sección de ubicación en móvil. */
@media (max-width:660px){
  .location-content > .eyebrow,
  .location-content > h2,
  .location-content > .location-lead {text-align:center;}
  .location-content > .location-lead {margin-inline:auto;}
}

/* V23.1: flechas vectoriales, evitan sustitucion por emoji en iOS/Safari. */
.link-arrow{display:inline-block;vertical-align:-.17em;flex:0 0 auto;color:inherit;stroke:currentColor;fill:none;width:16px;height:16px}
.link-arrow-down{width:15px;height:15px}
.nav-contact .link-arrow,.service-link .link-arrow,.text-link .link-arrow{margin-left:8px}

/* V23.2: botón discreto, solo ícono, sin texto visible en ambos formatos. */

/* V23.3 — icono legible en todos los navegadores (incluido desktop) */
  visibility: visible;
  opacity: 1;
  color: #fff;
  stroke: #fff;
  fill: none;
}
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  flex-shrink: 0;
}

/* V23.4: CTA de llamada en encabezado, estilo outline adaptado a fondo marfil. */
.nav-links .nav-call{color:var(--verde-profundo);border:1px solid var(--verde-profundo);background:transparent;padding:10px 15px;min-height:42px;font-size:12px;white-space:nowrap;line-height:1.25;text-align:center}
.nav-links .nav-call:hover{background:rgba(47,74,57,.07);color:var(--verde-profundo)}
@media(max-width:900px){.nav-links .nav-call{display:flex;width:100%;min-height:46px}}

/* V23.5: llamada primero, contacto digital después, en encabezado y cierre. */
.nav-call{color:var(--verde-profundo);border-color:var(--verde-profundo)}
.nav-call:hover{background:rgba(47,74,57,.07)}
@media(max-width:900px){.nav-call{display:flex;justify-content:center;width:100%}}

/* V23.6 — botones con estilo uniforme por sección */
.nav-links .nav-contact {
  background: transparent;
  color: var(--verde-profundo);
  border: 1px solid var(--verde-profundo);
  padding: 10px 15px;
  min-height: 42px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  line-height: 1.25;
  font-size: 12px;
}
.nav-links .nav-contact:hover {background:rgba(47,74,57,.07);color:var(--verde-profundo)}
.contact-actions .button-outline {
  background: var(--marfil);
  color: var(--verde-profundo);
  border-color: var(--marfil);
}
.contact-actions .button-outline:hover {background:#eae6d9;color:var(--verde-profundo)}
@media(max-width:900px){.nav-links .nav-contact{display:flex;width:100%;min-height:46px}}
