@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-variable-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/playfair-display-normal-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display Italic';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/playfair-display-italic-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root { --ink:#222525; --muted:#55615f; --paper:#f1efe9; --line:#d8dbd4; --lime:#49d7c0; --forest:#172b2a; --olimpo-surface:#e0e4dd; --sans:'DM Sans',Arial,sans-serif; --serif:'Playfair Display',Georgia,serif; --mono:'DM Mono',monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.55; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.06; letter-spacing:-.04em; }
h1,h2 { font-family:var(--serif); font-weight:500; }
h1 { max-width:710px; margin-bottom:1.35rem; font-size:clamp(3rem,5.5vw,5.9rem); }
h1 em { color:#167f72; font-weight:500; font-family:'Playfair Display Italic',var(--serif); }
h2 { margin-bottom:1.3rem; font-size:clamp(2.25rem,4vw,4.25rem); }
h3 { font-size:1.25rem; font-weight:600; }
.skip-link { position:absolute; left:1rem; top:-4rem; z-index:10; padding:.7rem 1rem; background:var(--lime); }
.skip-link:focus { top:1rem; }
.header { position:sticky; top:0; z-index:20; width:100%; margin:0; padding:0 max(2.5rem,calc((100% - 1400px)/2)); min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:2rem; border-top:4px solid var(--lime); border-bottom:1px solid var(--line); background:rgba(241,239,233,.94); backdrop-filter:blur(14px); }
.brand { display:inline-flex; align-items:baseline; font:500 1rem var(--mono); letter-spacing:-.08em; white-space:nowrap; }
.brand span { color:var(--lime); padding:0 .1rem; }
.header nav { display:flex; gap:clamp(.8rem,2.2vw,2.25rem); margin-left:auto; }
.header nav a,.language,footer>a { font-size:.8rem; color:var(--muted); transition:color .2s ease; }
.header nav a:hover,.language:hover,footer>a:hover { color:var(--ink); }
.language { padding-left:1rem; border-left:1px solid var(--line); font-family:var(--mono); }
.hero { width:min(1400px,calc(100% - 5rem)); margin:0 auto; display:block; min-height:calc(66vh - 76px); padding:clamp(4rem,8vw,7rem) 0; }
.hero-copy { max-width:760px; }
.hero-visual { position:relative; max-width:330px; margin:0; justify-self:end; overflow:hidden; background:var(--forest); }
.hero-visual img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center; }
.hero-visual figcaption { position:absolute; right:0; bottom:0; left:0; padding:.75rem .85rem; background:rgba(24,34,31,.88); color:var(--paper); font:500 .62rem var(--mono); letter-spacing:.04em; }
.eyebrow,.section-label { display:flex; align-items:center; gap:.65rem; margin-bottom:1.35rem; font:500 .72rem var(--mono); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.eyebrow span { width:1.8rem; height:1px; display:inline-block; background:var(--lime); }
.lede { max-width:555px; margin-bottom:2rem; color:#45514f; font-size:clamp(1rem,1.3vw,1.18rem); }
.actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.4rem; }
.button { display:inline-flex; align-items:center; gap:1.35rem; min-height:52px; padding:.85rem 1.1rem .85rem 1.35rem; font-size:.9rem; font-weight:600; transition:transform .2s ease,background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button span { font-size:1.1rem; }
.button-primary { background:var(--lime); color:var(--ink); }
.button-primary:hover { background:#39bba8; }
.text-link { padding:.65rem 0; border-bottom:1px solid var(--ink); font-size:.9rem; }
.microcopy { max-width:420px; margin:2.5rem 0 0; font-size:.77rem; color:var(--muted); }
.about { background:#e0e4dd; width:100%; padding-left:max(2.5rem,calc((100% - 1400px)/2)); padding-right:max(2.5rem,calc((100% - 1400px)/2)); }
.about-card { display:grid; grid-template-columns:220px minmax(0,1fr); gap:clamp(2rem,5vw,5.5rem); align-items:stretch; max-width:1030px; }
.about-portrait { position:relative; min-height:0; height:100%; margin:0; overflow:hidden; background:#c4ceca; }
.about-portrait img { width:100%; height:100%; min-height:0; object-fit:cover; object-position:center 25%; filter:saturate(.72) contrast(1.03); }
.about-portrait figcaption { position:absolute; right:0; bottom:0; left:0; padding:.9rem 1rem; background:rgba(23,43,42,.9); color:var(--paper); font:500 .75rem var(--mono); line-height:1.4; }
.about-portrait figcaption span { color:#b9f6ec; font-size:.65rem; }
.about-copy h2 { max-width:600px; }
.about-copy > p:not(.method-kicker) { max-width:610px; color:#465d5a; font-size:1rem; }
.section-grid,.services,.faq { width:min(1400px,calc(100% - 5rem)); margin:0 auto; }
.section-grid { display:grid; grid-template-columns:25% minmax(0,1fr); gap:3rem; padding:8rem 0; border-top:1px solid var(--line); }
.section-label { margin:0; }
.section-grid > div > p:not(.method-kicker) { max-width:670px; color:#465d5a; font-size:1.05rem; }
.services { padding:8rem 0; border-top:1px solid var(--line); }
.section-heading { max-width:760px; margin-bottom:3.5rem; }
.section-heading .section-label { margin-bottom:1.2rem; }
.service-list { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); }
.service-list article { position:relative; min-height:300px; padding:1.35rem 1.55rem 1.5rem 0; border-right:1px solid var(--line); }
.service-list article+article { padding-left:1.55rem; }
.service-list article:last-child { border-right:0; }
.number { display:block; margin-bottom:4rem; font:500 .72rem var(--mono); color:#55615f; }
.service-list h3 { max-width:220px; margin-bottom:.7rem; }
.service-list p { max-width:295px; color:#4b5a57; font-size:.92rem; }
.service-mark { position:absolute; right:1.5rem; bottom:1.25rem; color:#168c7c; font-size:1.3rem; }
.method { background:#e0e4dd; width:100%; padding-left:max(2.5rem,calc((100% - 1400px)/2)); padding-right:max(2.5rem,calc((100% - 1400px)/2)); }
.method-kicker { margin:0 0 .7rem; font:500 .74rem var(--mono); letter-spacing:.12em; color:#116b60; }
.method-intro { margin-top:1.3rem!important; }
.method ol { max-width:740px; margin:2.6rem 0 0; padding:0; list-style:none; }
.method li { display:grid; grid-template-columns:190px minmax(0,1fr); gap:1.4rem; padding:1.2rem 0; border-top:1px solid rgba(34,37,37,.18); }
.method li:last-child { border-bottom:1px solid rgba(34,37,37,.18); }
.method strong { font-size:.94rem; }
.method li span { color:#4d5e5a; font-size:.9rem; }
.olimpo { background:var(--olimpo-surface); width:100%; padding-left:max(2.5rem,calc((100% - 1400px)/2)); padding-right:max(2.5rem,calc((100% - 1400px)/2)); }
.olimpo h2 { max-width:760px; }
.olimpo-note { max-width:580px!important; font-size:.95rem!important; color:#55615f!important; }
.faq { padding:8rem 0; border-top:1px solid var(--line); }
.faq > h2 { max-width:620px; margin-top:1.2rem; margin-bottom:2.8rem; }
details { max-width:850px; margin-left:auto; padding:1.25rem 0; border-top:1px solid var(--line); }
details:last-child { border-bottom:1px solid var(--line); }
summary { position:relative; padding-right:2rem; cursor:pointer; list-style:none; font-size:1.05rem; font-weight:600; }
summary::-webkit-details-marker { display:none; }
summary::after { content:'+'; position:absolute; right:.1rem; color:#168c7c; font:400 1.3rem var(--mono); }
details[open] summary::after { content:'−'; }
details p { max-width:650px; margin:1rem 0 0; color:#55655f; }
.contact { padding:7rem max(2.5rem,calc((100% - 1400px)/2)); background:var(--forest); color:var(--paper); }
.contact .section-label { color:#b9f6ec; }
.contact h2 { max-width:900px; margin-top:1.2rem; font-size:clamp(2.5rem,5vw,5.5rem); }
.contact p:not(.section-label) { max-width:560px; margin-bottom:2rem; color:#d8e5e1; font-size:1.05rem; }
.button-light { background:var(--lime); color:var(--ink); }
.button-light:hover { background:#74e7d5; }
footer { width:min(1400px,calc(100% - 5rem)); min-height:95px; margin:0 auto; display:flex; align-items:center; justify-content:flex-end; gap:2rem; }
footer p { margin:0; color:var(--muted); font-size:.72rem; }
.whatsapp { position:fixed; right:1.25rem; bottom:1.25rem; z-index:4; display:inline-flex; align-items:center; gap:.5rem; padding:.75rem 1rem; border:1px solid rgba(23,43,42,.16); border-radius:999px; background:var(--lime); box-shadow:0 8px 24px rgba(23,43,42,.18); font-size:.8rem; font-weight:600; }
.whatsapp:hover { background:#74e7d5; }
@media (max-width:800px) { .header,.hero,.section-grid,.services,.faq,footer { width:calc(100% - 2.5rem); } .header { width:100%; min-height:66px; padding:0 1.25rem; gap:.9rem; } .header nav { display:none; } .language { margin-left:auto; } .hero { min-height:0; padding:3.5rem 0 4.5rem; } .hero-visual { display:none; } .section-grid { grid-template-columns:1fr; gap:1.7rem; padding:5rem 0; } .about { padding-left:1.25rem; padding-right:1.25rem; } .about-card { grid-template-columns:88px minmax(0,1fr); gap:1.25rem; align-items:start; } .about-portrait { height:auto; aspect-ratio:4/5; } .about-portrait img { height:100%; } .about-portrait figcaption { padding:.45rem; font-size:.5rem; } .about-portrait figcaption span { font-size:.45rem; } .about-copy .method-kicker { margin-bottom:.55rem; font-size:.58rem; letter-spacing:.06em; } .about-copy h2 { font-size:clamp(1.9rem,8vw,2.6rem); } .about-copy > p:not(.method-kicker) { font-size:.9rem; } .services,.faq { padding:5rem 0; } .service-list { grid-template-columns:1fr; } .service-list article,.service-list article+article { min-height:0; padding:1.3rem 0 3.3rem; border-right:0; border-bottom:1px solid var(--line); } .number { margin-bottom:2rem; } .service-mark { right:0; bottom:1.2rem; } .method,.olimpo { padding-left:1.25rem; padding-right:1.25rem; } .method li { grid-template-columns:1fr; gap:.5rem; } .contact { padding:5rem 1.25rem; } footer { flex-wrap:wrap; align-content:center; justify-content:space-between; padding:1.3rem 0; } footer p { order:3; width:100%; } .whatsapp { right:.8rem; bottom:.8rem; } }
@media (max-width:420px) { h1 { font-size:2.75rem; } .actions { align-items:stretch; gap:.8rem; } .button { justify-content:space-between; width:100%; } .text-link { width:max-content; } .whatsapp span { display:none; } .whatsapp { padding:.72rem .85rem; font-size:1rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; } }

/* Expanded service-site navigation and contact flow. */
.mobile-menu { display:none; }
.header nav a[aria-current="page"] { color:var(--ink); }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #167f72; outline-offset:4px; }
.problem-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2.5rem; margin:2rem 0 0; padding:0; list-style:none; }
.problem-list li { padding:1rem 0; border-top:1px solid var(--line); color:#465d5a; }
.example-note { padding-left:1rem; border-left:2px solid var(--lime); color:var(--muted)!important; font-size:.88rem!important; }
.service-list h3 a:hover { color:#167f72; }
.service-arrow { position:absolute; right:1.5rem; bottom:1.25rem; color:#168c7c; font-size:1.3rem; }
.service-list article:hover .service-arrow { transform:translate(3px,-3px); }
.mobile-menu summary { cursor:pointer; color:var(--muted); font:500 .72rem var(--mono); list-style:none; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu summary::after { content:' +'; color:#167f72; }
.mobile-menu[open] summary::after { content:' −'; }
@media (max-width:800px) {
  .header { width:100%; }
  .header > nav { display:none; }
  .mobile-menu { display:block; margin-left:auto; position:relative; }
  .mobile-menu nav { display:grid; position:absolute; top:calc(100% + 1.3rem); right:-3.5rem; min-width:190px; gap:0; padding:.55rem 1rem; border:1px solid var(--line); background:var(--paper); box-shadow:0 12px 28px rgba(23,43,42,.12); }
  .mobile-menu nav a { padding:.75rem 0; border-bottom:1px solid var(--line); font-size:.82rem; }
  .mobile-menu nav a:last-child { border-bottom:0; }
  .language { margin-left:0; }
  .problem-list { grid-template-columns:1fr; }
  .contact-layout { align-items:start; }
}
@media (max-width:420px) {
  .header { gap:.65rem; }
  .brand { font-size:.88rem; }
  .mobile-menu nav { right:-3rem; }
}

/* A single 404 template presents the language selected by the requested path. */
html[data-error-language="es"] #content,
html[data-error-language="en"] #contenido,
html[data-error-language="es"] #error-home-en,
html[data-error-language="en"] #error-home,
html[data-error-language="es"] .skip-link[lang="en"],
html[data-error-language="en"] .skip-link[lang="es"] { display:none!important; }
.error-header { width:100%; padding-left:max(1.25rem,calc((100% - 1080px)/2)); padding-right:max(1.25rem,calc((100% - 1080px)/2)); }
.error-header .brand { margin-right:auto; }
.error-language { display:flex; align-items:center; gap:.65rem; margin-left:auto; color:var(--muted); font:500 .76rem var(--mono); }
.error-language a { padding:.5rem .2rem; }
html[data-error-language="es"] .error-language a[lang="es"],
html[data-error-language="en"] .error-language a[lang="en"] { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.error-main { width:min(1080px,calc(100% - 3rem)); min-height:calc(100vh - 175px); margin:0 auto; display:flex; align-items:center; padding:2.5rem 0; }
.error-card { width:min(100%,680px); }
.error-card .error-code { margin-bottom:.65rem; font-size:clamp(3.5rem,7vw,5.5rem); }
.error-card .eyebrow { margin-bottom:1rem; }
.error-card h1 { margin-bottom:.85rem; font-size:clamp(2.5rem,5vw,4.35rem); }
.error-card .lede { margin-bottom:1.5rem; }
.error-actions { display:grid; width:min(100%,380px); gap:.65rem; }
.error-action { display:flex; min-height:48px; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 1rem; border:1px solid var(--line); background:rgba(255,255,255,.18); font-size:.9rem; font-weight:600; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.error-action:hover { transform:translateY(-1px); border-color:var(--muted); background:rgba(255,255,255,.45); }
.error-action-primary { border-color:var(--lime); background:var(--lime); }
.error-action-primary:hover { border-color:#39bba8; background:#39bba8; }
.error-footer { width:min(1080px,calc(100% - 3rem)); min-height:64px; margin:0 auto; padding:0 0 1.25rem; justify-content:space-between; gap:1rem; }
.error-footer a { color:var(--muted); font-size:.8rem; text-underline-offset:3px; }
@media (max-width:800px) {
 .error-main { width:calc(100% - 2.5rem); min-height:calc(100vh - 160px); padding:2rem 0; }
 .error-card .error-code { font-size:4rem; }
 .error-card h1 { font-size:clamp(2.2rem,8vw,3rem); }
 .error-actions { width:100%; max-width:440px; }
 .error-footer { width:calc(100% - 2.5rem); min-height:60px; flex-wrap:wrap; }
 .error-footer p { order:initial; width:auto; }
}

/* Commercial simplification: direct contact and compact first viewport. */
html { scroll-padding-top:100px; }
.hero { min-height:0; padding:clamp(2.5rem,5vw,5rem) 0; }
.hero h1 { font-size:clamp(2.5rem,4.4vw,4.8rem); }
.microcopy { max-width:610px; margin-top:1.1rem; font-size:.88rem; }
.section-grid,.services,.faq { padding-top:4.5rem; padding-bottom:4.5rem; }
.section-grid.about,.section-grid.method,.section-grid.olimpo { width:100%; }
.section-heading { margin-bottom:2.2rem; }
.service-list article { min-height:240px; }
.number { margin-bottom:2rem; }
.contact { padding-top:4.5rem; padding-bottom:4.5rem; }
.contact .button-primary { background:var(--lime); }
.contact a:not(.button) { color:var(--paper); }
.contact-hero .hero-copy { max-width:850px; }
.contact-hero h1 { font-size:clamp(2.5rem,4vw,4rem); }
.email-option { margin:1.35rem 0 0; font-size:.95rem; }
.email-option a,footer a[href^="mailto:"] { text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.next-steps,.deliverable-list { padding-left:1.3rem; max-width:670px; }
.next-steps li,.deliverable-list li { margin-bottom:.8rem; padding-left:.3rem; }
.deliverables p { font-size:1rem!important; }
.error-hero { padding-top:2rem; }
.error-code { margin:0 0 1rem; font:500 clamp(4rem,10vw,8rem)/1 var(--mono); color:#167f72; letter-spacing:-.08em; }
.error-hero .hero-copy { max-width:820px; }
.header .mobile-menu { border:0; padding:0; }
footer { flex-wrap:wrap; padding:1.3rem 0 5rem; gap:1rem 1.5rem; }
@media (max-width:800px) {
 .hero { padding:2rem 0 2.5rem; }
 .hero h1 { font-size:clamp(2.15rem,6.7vw,3.25rem); }
 .hero .lede { margin-bottom:1.3rem; }
 .eyebrow { font-size:.64rem; }
 .section-grid,.services,.faq { padding-top:3rem; padding-bottom:3rem; }
 .about-card { grid-template-columns:1fr; }
 .about-portrait { width:150px; height:180px; aspect-ratio:auto; }
 .about-portrait figcaption { font-size:.7rem; padding:.65rem; }
 .about-portrait figcaption span { font-size:.6rem; }
 .contact { padding-top:3rem; padding-bottom:3rem; }
 .contact-next h2 { font-size:2.25rem; }
 .service-list article { min-height:0; }
 .whatsapp { font-size:.8rem; }
 .error-code { font-size:4rem; }
 .mobile-menu nav { min-width:210px; right:-3rem; }
}
@media (max-width:420px) {
 .hero h1 { font-size:2.15rem; }
 .hero .eyebrow { font-size:.6rem; letter-spacing:.04em; }
 .hero .eyebrow span { width:1rem; }
 .whatsapp { padding:.65rem .8rem; }
 .whatsapp span { display:inline; }
 .email-option { font-size:.88rem; }
}

/* Compact use-case lists on mobile; desktop retains its existing layout. */
@media (max-width:800px) {

 .use-cases .section-heading h2 { font-size:calc(clamp(2.25rem,4vw,4.25rem) - 2px); }
 .use-cases .service-list article,
 .use-cases .service-list article+article { padding:1.1rem 0 1.25rem; }
 .use-cases .number { margin-bottom:.75rem; }
 .use-cases .service-list h3 { max-width:none; margin-bottom:.5rem; }
 .use-cases .service-list p { margin-bottom:0; }
}

/* Home services: number and title share a row on mobile. */
@media (max-width:800px) {

 body[data-page-type="home"] .services .section-heading { margin-bottom:1.5rem; }
 body[data-page-type="home"] .service-list article,
 body[data-page-type="home"] .service-list article+article {
  display:grid; grid-template-columns:auto minmax(0,1fr); align-items:baseline;
  gap:.5rem .65rem; padding:1.1rem 0 1.25rem;
 }
 body[data-page-type="home"] .service-list .number { margin:0; }
 body[data-page-type="home"] .service-list h3 { max-width:none; margin:0; }
 body[data-page-type="home"] .service-list p { grid-column:1 / -1; max-width:none; margin:0; }
 body[data-page-type="home"] .service-arrow { position:static; grid-column:2; justify-self:end; line-height:1; }
}

/* Consistent readable section labels on mobile. */
@media (max-width:800px) {
 .section-label { font-size:calc(.72rem + 2px); }
}

/* Match the desktop inset used by the method section. */
@media (min-width:801px) {
 .section-grid.about { padding-left:max(2.5rem,calc((100% - 1400px)/2)); padding-right:max(2.5rem,calc((100% - 1400px)/2)); }
}

/* About-page portrait: original photograph with a wider, centered frame. */
.about-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,480px); gap:clamp(2rem,5vw,5rem); align-items:start; }
.about-hero-portrait { margin:2.1rem 0 0; width:100%; }
.about-hero-portrait img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; object-position:47% center; }
@media (max-width:800px) {
 .about-hero { grid-template-columns:1fr; gap:1.5rem; }
 .about-hero-portrait { margin:0; max-width:440px; }
}
