
@font-face{font-family:DM;src:url("/assets/dm-sans-Xz1IZZA0.woff2") format("woff2");font-weight:100 900;font-display:swap}
:root{--paper:#F7F9F6;--white:#fff;--ink:#2D4657;--muted:#2D4451;--sage:#31503C;--sage-dark:#31503C;--blue:#2D4C63;--card-sage:#DDE7DD;--card-blue:#DBE5EC;--mist:#ECF1ED;--line:#DAE3DF;--display:Georgia,'Times New Roman',serif;--body:DM,'DM Sans',Arial,sans-serif;--radius:16px;--content:1120px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;min-width:320px;color:var(--ink);background:var(--white);font:400 16px/1.63 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-underline-offset:3px}
a:focus-visible,button:focus-visible{outline:3px solid #173E2B;outline-offset:4px}
button{font:inherit}
.wrap{width:min(calc(100% - 40px),var(--content));margin-inline:auto}
.skip{position:absolute;top:-90px;left:8px;z-index:100;background:var(--ink);color:#fff;padding:12px}.skip:focus{top:8px}
.header{height:72px;background:rgba(255,255,255,.97);position:sticky;top:0;z-index:10;border-bottom:1px solid #e8eeeb;backdrop-filter:blur(12px)}
.header-row{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;min-height:44px;justify-content:center;flex-direction:column;gap:0;text-decoration:none;line-height:1.2;white-space:nowrap}
.brand span{font-size:16px;font-weight:750;letter-spacing:-.02em;color:var(--ink)}
.brand small{font-size:12px;letter-spacing:.19em;font-weight:750;color:var(--sage);margin-top:6px}
.desktop-nav{display:none;align-items:center;gap:23px;font-size:15px;font-weight:600}
.desktop-nav>a:not(.btn){display:inline-flex;align-items:center;min-height:44px;text-decoration:none;white-space:nowrap}.desktop-nav>a:hover{color:var(--sage)}
.btn{min-height:48px;border-radius:999px;padding:11px 18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;line-height:1.25;font-weight:700;text-decoration:none;white-space:normal;text-align:center;transition:filter .2s,transform .2s}
.btn:hover{filter:brightness(.94);transform:translateY(-1px)}
.btn.sage{background:var(--sage);color:#fff}.btn.blue{background:var(--blue);color:#fff}
.btn svg{width:17px;height:17px;flex:none}
.menu-toggle{border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);display:flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer}
.menu-toggle svg{width:22px;height:22px}
.mobile-nav{position:absolute;top:72px;left:0;right:0;background:#fff;padding:18px 20px 22px;box-shadow:0 12px 25px #2D465719;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:15px}
.mobile-nav[hidden]{display:none}.mobile-nav>a:not(.btn){text-decoration:none;font-weight:650;padding:12px 0;min-height:44px}
.hero{background:var(--paper);overflow:hidden}
.hero-grid{padding-top:38px;display:grid;grid-template-areas:'titles' 'copy' 'photo';gap:22px}
.hero-titles{grid-area:titles}.hero-photo{grid-area:photo;margin:0;align-self:end}
.hero-copy{grid-area:copy;padding-bottom:40px}
.eyebrow{margin:0 0 12px;font-size:12px;letter-spacing:.17em;text-transform:uppercase;color:var(--sage);font-weight:750}
.hero h1{font:400 clamp(47px,11.2vw,64px)/1.06 var(--display);letter-spacing:-.046em;margin:0 0 18px;color:var(--sage-dark)}
.hero h1 .blue-text{color:var(--blue);display:block}
.hero h2{font:400 clamp(23px,6.3vw,31px)/1.24 var(--display);letter-spacing:-.02em;margin:0;color:var(--ink);max-width:680px}
.hero-copy p{margin:0 0 15px;font-size:16px;line-height:1.66;max-width:610px}.hero-copy p:first-child{font-weight:700}.hero-copy p:last-child{margin-bottom:0}
.hero-photo img{width:100%;height:390px;object-fit:contain;object-position:center bottom;border-radius:0}
.services{padding-block:36px 44px}
.cards{display:grid;grid-template-columns:1fr;gap:20px}
.service-card{border-radius:var(--radius);padding:27px 24px 25px;display:flex;flex-direction:column;align-items:flex-start}
.service-card.sage-card{background:var(--card-sage)}
.service-card.blue-card{background:var(--card-blue)}
.service-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid #a8bdb6;margin-bottom:18px;color:var(--sage-dark)}
.blue-card .service-icon{color:var(--blue);border-color:#adc2d0}
.service-icon svg{width:22px;height:22px}
.service-card h2{font:400 clamp(27px,5.4vw,32px)/1.16 var(--display);letter-spacing:-.025em;color:var(--sage-dark);margin:0 0 7px}
.blue-card h2{color:var(--blue)}
.service-card h3{font:400 19px/1.3 var(--display);margin:0 0 18px;color:var(--ink)}
.service-card p{font-size:16px;line-height:1.68;margin:0 0 13px;color:var(--ink)}
.service-card .btn{margin-top:auto;align-self:flex-start;margin-bottom:0}
.service-copy{padding-bottom:22px}
.quote-strip{background:#F0F3F1;padding-block:29px 32px;text-align:center}
.quote-strip .quote-text{margin:0 auto;max-width:835px;font:italic 400 clamp(22px,4.2vw,28px)/1.44 var(--display);color:var(--blue)}
.source{font:400 14px/1.5 var(--body);color:var(--muted);margin:10px 0 0}
.about{padding-block:49px 54px}.about-layout{display:grid;gap:26px}
.about h2{font:400 clamp(32px,6.5vw,40px)/1.2 var(--display);color:var(--blue);letter-spacing:-.02em;margin:0 0 18px}
.about p{font-size:16px;line-height:1.7;max-width:680px;margin:0 0 12px}
.about-quote{margin:0;background:#E8EEE9;border-left:4px solid #8CA991;border-radius:9px;padding:21px 22px 20px;align-self:center}
.about-quote .quote-text{font:italic 400 21px/1.45 var(--display);color:var(--blue);margin:0}
.about-quote .source{margin-top:14px}
.footer{background:#E7EFEA;padding:33px 0 37px}
.footer-inner{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.footer h2{font-size:18px;line-height:1.4;margin:0 0 5px;font-weight:750}
.footer p{font-size:16px;margin:3px 0;line-height:1.65}
.footer a:not(.btn){text-decoration:underline}.footer a:not(.btn):hover{text-decoration:underline}
@media(min-width:720px){.wrap{width:min(calc(100% - 80px),var(--content))}.cards{grid-template-columns:1fr 1fr;align-items:stretch}.service-card{padding:30px 29px}.services{padding-block:20px 36px}.hero-grid{grid-template-areas:'titles photo' 'copy photo';grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:0 30px;padding-top:54px}.hero h1{font-size:clamp(48px,6vw,66px)}.hero h2{font-size:clamp(22px,3vw,29px)}.hero-copy{padding:20px 0 52px}.hero-photo{height:100%;display:flex;align-items:flex-end}.hero-photo img{height:auto;width:min(118%,575px);max-width:none;min-height:0;max-height:none;object-position:center bottom;transform:translateX(-4%);border-radius:0}.hero-titles{align-self:end}.about-layout{grid-template-columns:1.45fr .82fr;gap:48px}.footer-inner{flex-direction:row;align-items:center;justify-content:space-between}}
@media(min-width:1020px){.header{height:76px}.desktop-nav{display:flex}.menu-toggle,.mobile-nav{display:none!important}.hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);column-gap:52px;padding-top:60px}.hero h1{font-size:67px}.hero h2{font-size:29px}.hero-copy p{font-size:16px}.hero-photo img{width:min(120%,575px);max-height:none}.services{padding-block:18px 40px}.service-card{padding:31px 31px 28px}.about{padding-block:62px}.quote-strip{padding-block:29px 34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}.btn:hover{transform:none}}

/* Optional AAA reading presentation: colors, line length, paragraph spacing. */
.reading-tools{margin-top:20px;max-width:630px;font-size:15px}
.reading-tools summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;text-decoration:underline;text-underline-offset:4px;font-weight:600;list-style:auto}
.reading-tools summary:focus-visible,.reading-tools label:focus-within{outline:3px solid #173E2B;outline-offset:4px}
.reading-tools .reading-options{padding:14px 18px 18px;border:1px solid #7C9286;border-radius:12px;margin-top:8px;background:#fff;color:#243A31}
.reading-tools fieldset{border:0;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:12px 20px}
.reading-tools legend{font-weight:700;padding:0 0 8px}
.reading-tools label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;min-height:44px}
.reading-tools input{width:20px;height:20px;accent-color:#31503C}
.reading-tools .reading-note{font-size:14px;margin:0;line-height:1.55}
/* Applied only upon request: keep Marisa's approved design as the default. */
html[data-reading-theme="contrast"] .hero,html[data-reading-theme="contrast"] .services,html[data-reading-theme="contrast"] .service-card,html[data-reading-theme="contrast"] .quote-strip,html[data-reading-theme="contrast"] .about,html[data-reading-theme="contrast"] .about-quote{background:#fff!important;color:#151515!important}
html[data-reading-theme="contrast"] main p,html[data-reading-theme="contrast"] main h1,html[data-reading-theme="contrast"] main h2,html[data-reading-theme="contrast"] main h3{color:#151515!important}
html[data-reading-theme="sepia"] .hero,html[data-reading-theme="sepia"] .services,html[data-reading-theme="sepia"] .service-card,html[data-reading-theme="sepia"] .quote-strip,html[data-reading-theme="sepia"] .about,html[data-reading-theme="sepia"] .about-quote{background:#FDF3DB!important;color:#2D271F!important}
html[data-reading-theme="sepia"] main p,html[data-reading-theme="sepia"] main h1,html[data-reading-theme="sepia"] main h2,html[data-reading-theme="sepia"] main h3{color:#2D271F!important}
html[data-reading-comfort="on"] main p{max-width:65ch;line-height:1.75!important}
html[data-reading-comfort="on"] main p + p{margin-top:2.7em!important}
html[data-reading-comfort="on"] main .service-copy p{margin-bottom:2.7em!important}
@media (forced-colors:active){.btn,.menu-toggle{forced-color-adjust:auto}.service-icon{border:1px solid CanvasText}}

.footer-inner{flex-wrap:wrap}.reading-tools{flex-basis:100%}

/* Intermediate screens: avoid a miniature portrait in a tall split hero. */
@media (min-width:720px) and (max-width:1019px){
 .hero-grid{grid-template-areas:'titles' 'copy' 'photo';grid-template-columns:minmax(0,1fr);gap:22px;padding-top:38px}
 .hero-photo{display:block;height:auto}
 .hero-photo img{width:100%;max-width:100%;height:390px;max-height:none;min-height:0;transform:none;object-fit:contain}
 .hero-copy{padding:0 0 40px}
}

@media (min-width:1020px) and (max-width:1199px){.hero-photo img{width:130%;max-width:none}}

/* Diseño aprobado: opción 1, retrato editorial */

/* Maquetas independientes: contenido aprobado intacto */
.hero{background:#F7F9F6}
.hero h1{font-weight:400}
.hero-grid{position:relative}
.hero-copy{max-width:620px}
@media(min-width:1020px){
  .hero-grid{min-height:594px}
  .hero-titles{align-self:start}
  .hero-photo{overflow:visible}
}

@media(min-width:1020px){
  .hero-grid{grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);column-gap:0;min-height:610px;padding-top:62px}
  .hero h1{font-size:72px;letter-spacing:-.055em;margin-bottom:24px}
  .hero .hero-subtitle{font-size:28px;line-height:1.33;max-width:560px}
  .hero-titles{z-index:2}
  .hero-copy{z-index:2;padding-top:20px}
  .hero-photo{height:auto;display:flex;align-items:flex-end;justify-content:end;align-self:stretch;position:relative;margin-right:-28px}
  .hero-photo img{width:620px;height:585px;max-height:none;max-width:none;object-fit:contain;object-position:center bottom;transform:translateX(8px);margin-top:0}
}
@media(min-width:720px) and (max-width:1019px){.hero-photo img{width:100%;height:410px;object-fit:contain}}
@media(max-width:719px){.hero-photo img{height:370px;object-fit:contain}.hero-grid{gap:12px}}

.hero .hero-subtitle{font:400 clamp(23px,6.3vw,31px)/1.24 Georgia,"Times New Roman",serif;letter-spacing:-.02em;margin:0;color:var(--ink);max-width:680px}
@media(min-width:720px){.hero .hero-subtitle{font-size:clamp(22px,3vw,29px)}}
@media(min-width:1020px){.hero .hero-subtitle{font-size:29px}}


/* Mobile-first: portada completa antes del retrato. Desktop editorial intacto. */
@media(max-width:1019px){.hero-copy{padding-bottom:0}.hero-photo{margin-top:0}}
@media(max-width:719px){.hero-photo img{height:390px}}


/* Menú mobile de pantalla completa. Solo modifica la navegación; resto del diseño intacto. */
.menu-toggle .menu-cross{display:none}
.menu-toggle[aria-expanded="true"] .menu-lines{display:none}
.menu-toggle[aria-expanded="true"] .menu-cross{display:block}
body.mobile-menu-open{overflow:hidden}
.mobile-nav{
 position:fixed;top:72px;right:0;bottom:0;left:0;
 height:calc(100dvh - 72px);max-height:calc(100dvh - 72px);
 background:var(--paper);border-bottom:0;box-shadow:none;
 overflow-y:auto;overscroll-behavior:contain;
 padding:0;
}
.mobile-nav[hidden]{display:none}
.mobile-nav-inner{width:min(calc(100% - 40px),var(--content));min-height:100%;margin-inline:auto;display:flex;flex-direction:column;padding-block:16px max(28px,env(safe-area-inset-bottom))}
.mobile-links{display:flex;flex-direction:column}
.mobile-nav .mobile-links>a{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:18px 0;border-bottom:1px solid #CBD8D0;color:var(--ink);font-size:16px;line-height:1.4;font-weight:750;letter-spacing:.105em;text-transform:uppercase;text-decoration:none}
.mobile-nav .mobile-links>a:first-child{border-top:1px solid #CBD8D0}
.mobile-nav .mobile-links>a svg{width:22px;height:22px;flex:none;color:var(--sage)}
.mobile-nav .mobile-links>a:hover span,.mobile-nav .mobile-links>a:focus-visible span{text-decoration:underline;text-underline-offset:5px}
.mobile-actions{margin-top:auto;padding-top:32px;text-align:center}
.mobile-actions .btn{width:100%;min-height:58px;border-radius:999px;font-size:16px;gap:12px}
.mobile-actions .btn svg{width:20px;height:20px}
.mobile-actions p{margin:16px 0 0;color:var(--ink);font-size:15px;line-height:1.6}
@media (min-width:720px) and (max-width:1019px){.mobile-nav-inner{width:min(calc(100% - 80px),var(--content))}}
@media (min-width:1020px){body.mobile-menu-open{overflow:auto}}
@media (max-height:570px){.mobile-nav .mobile-links>a{min-height:60px;padding:12px 0}.mobile-actions{padding-top:22px}}
