:root{--green:#285333;--deep:#102f35;--navy:#193843;--ivory:#f5f3ea;--white:#fffdf7;--line:#c8d2c7;--muted:#506c68;--serif:'Newsreader',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--deep);font-family:var(--sans);font-size:16px;line-height:1.62}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:2px solid #67988d;outline-offset:4px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:300;letter-spacing:-.035em;line-height:1.04}h2{font-size:clamp(2.8rem,5vw,5.7rem)}.skip-link{position:absolute;top:-100px;left:1rem;z-index:20;background:var(--white);padding:.6rem 1rem}.skip-link:focus{top:1rem}.eyebrow{display:inline-block;font-size:.76rem;font-weight:600;letter-spacing:.18em;line-height:1.5;color:var(--muted)}.eyebrow.light{color:#bed0c7}.section-shell{max-width:1600px;margin:auto;padding-left:clamp(24px,5.7vw,104px);padding-right:clamp(24px,5.7vw,104px)}
.header{position:relative;z-index:10;background:var(--ivory)}.header-inner{max-width:1760px;min-height:95px;margin:auto;padding:18px clamp(24px,4.2vw,76px);display:flex;align-items:center;gap:4vw;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--serif);font-size:1.55rem;line-height:.81;font-weight:400;letter-spacing:-.04em;display:inline-flex;flex-direction:column;min-width:157px}.wordmark span:last-child{padding-left:1.2rem}.main-nav{display:flex;gap:clamp(12px,2vw,34px);align-items:center;margin-left:auto}.main-nav a,.langs a{font-size:calc(.85rem + 2pt);font-weight:500;white-space:nowrap}.main-nav a:hover,.footer a:hover{opacity:.6}.header-end{display:flex;align-items:center;gap:clamp(16px,2.3vw,35px)}.langs{display:flex;gap:.55rem;align-items:center}.langs a{opacity:1;display:inline-flex;align-items:center;justify-content:center;width:36px;min-height:36px;text-decoration:none}.langs a[aria-current]{opacity:1;text-decoration:none}.langs img{display:block;width:20px;height:15px;border:0;border-radius:0;box-shadow:none;filter:none;transform:none}.header-contact{font-size:calc(.82rem + 2pt);white-space:nowrap;border-bottom:1px solid currentColor;padding:.3rem 0}.header-contact span{padding-left:1.2rem}
.hero{max-width:1760px;margin:auto;min-height:min(780px,calc(100vh - 95px));display:grid;grid-template-columns:51% 49%;background:var(--green);color:var(--ivory)}.hero-copy{padding:clamp(60px,7vw,116px) clamp(28px,6vw,104px) 34px;display:flex;flex-direction:column;align-items:flex-start}.hero h1{font-size:clamp(3.75rem,6.1vw,7.4rem);margin:clamp(34px,4.7vw,80px) 0 26px;max-width:830px}.hero p{font-size:clamp(1rem,1.22vw,1.22rem);line-height:1.55;color:#d9e6dd;max-width:520px}.hero-actions{margin:30px 0 auto}.text-link{display:inline-flex;justify-content:space-between;gap:2rem;padding:0 0 10px;border-bottom:1px solid currentColor;font-size:.91rem}.light-link{color:var(--ivory)}.text-link:hover{opacity:.7}.hero-foot{border-top:1px solid rgba(245,243,234,.35);align-self:stretch;margin-top:100px;padding-top:20px;font-size:.81rem;letter-spacing:.02em;color:#c7d8ce;display:flex;align-items:center;gap:13px}.spiral-mark{font-size:1.8rem;line-height:.5;font-family:var(--serif)}.hero-image{background-image:linear-gradient(0deg,rgba(16,47,53,.15),rgba(16,47,53,.02)),url('/assets/hero-sao-paulo-aerea.jpg');background-position:center;background-size:cover;min-height:540px}
.intro{padding-top:clamp(90px,10vw,168px);padding-bottom:clamp(94px,11vw,180px);display:grid;grid-template-columns:30% 70%;gap:1.5rem}.section-label{display:flex;align-items:flex-start;gap:20px;padding-top:15px}.hairline{display:inline-block;width:46px;height:1px;background:var(--muted);margin-top:.62rem}.intro-main{max-width:940px}.intro h2{max-width:900px;margin-bottom:34px}.intro p{max-width:660px;margin-left:auto;font-size:1.13rem;line-height:1.8;color:#3c605b}
.areas{padding-top:clamp(84px,9vw,150px);padding-bottom:clamp(98px,10vw,170px);background:var(--white);max-width:none}.areas>.section-heading,.areas>.services{max-width:1392px;margin-left:auto;margin-right:auto}.section-heading{margin-bottom:50px}.section-heading h2{max-width:790px;margin:24px 0 14px}.section-heading>p{color:var(--muted)}.services{border-top:1px solid var(--line)}.service{border-bottom:1px solid var(--line)}.service summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:80px 1fr 40px;gap:24px;align-items:center;min-height:130px;padding:20px 4px}.service summary::-webkit-details-marker,.faq summary::-webkit-details-marker{display:none}.service-number{font-size:.85rem;color:var(--muted);align-self:center}.service-title{font-family:var(--serif);font-size:clamp(2rem,3.5vw,3.8rem);font-weight:300;letter-spacing:-.025em;line-height:1.07}.service-toggle{font-size:1.75rem;font-weight:300;text-align:right;transition:transform .2s}.service[open] .service-toggle,.faq[open] summary span{transform:rotate(45deg)}.service summary:hover .service-title{color:#47736b}.service-content{padding:0 72px 58px 104px;max-width:980px}.service-lead{font-size:1.23rem;max-width:740px;line-height:1.65}.service-content ul{columns:2;column-gap:70px;padding-left:1.1rem;margin:30px 0}.service-content li{break-inside:avoid;padding:0 0 10px 4px;color:#3e625c}.service-outro{margin:28px 0 0;border-left:1px solid #8baaa0;padding-left:20px;color:var(--muted);font-style:italic}
.image-interlude{height:clamp(300px,42vw,610px);overflow:hidden;background:var(--green)}.interlude-image{height:100%;background:url('/assets/organic-spiral.webp') center 55%/cover no-repeat;opacity:.95}
.about{padding-top:clamp(100px,11vw,174px);padding-bottom:clamp(100px,11vw,174px);display:grid;grid-template-columns:minmax(300px,42%) 1fr;align-items:center;gap:clamp(54px,9vw,150px)}.about-photo{max-width:530px}.about-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 30%;filter:saturate(.83)}.photo-caption{display:block;border-top:1px solid var(--green);margin-top:17px;padding-top:13px;font-size:.73rem;letter-spacing:.17em}.about-copy h2{margin:25px 0 35px;max-width:680px}.about-copy p{max-width:650px;color:#365c56;line-height:1.8}.about-lead{font-size:1.28rem;color:var(--deep)!important}.about-points{list-style:none;padding:25px 0 0;margin:25px 0 0;border-top:1px solid var(--line);max-width:670px}.about-points li{border-bottom:1px solid var(--line);padding:12px 0;font-size:.92rem}
.faq-section{background:var(--white);max-width:none;padding-top:clamp(90px,9vw,150px);padding-bottom:clamp(90px,9vw,150px);display:grid;grid-template-columns:43% 57%;gap:3vw}.faq-section>.section-heading,.faq-list{width:100%;max-width:700px}.faq-section .section-heading h2{margin-top:28px}.faq-list{border-top:1px solid var(--line)}.faq{border-bottom:1px solid var(--line)}.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:22px;padding:24px 0;font-size:1.12rem;font-weight:500}.faq summary span{font-size:1.4rem;font-weight:300;line-height:1;transition:transform .2s}.faq p{padding:0 44px 25px 0;margin:0;color:#43635e;line-height:1.75}
.contact{background:var(--green);color:var(--ivory)}.contact-inner{max-width:1600px;margin:auto;padding:clamp(98px,10vw,170px) clamp(24px,5.7vw,104px);display:grid;grid-template-columns:1fr minmax(250px,370px);gap:10vw;align-items:end}.contact h2{max-width:820px;margin:26px 0 28px}.contact p{max-width:590px;color:#d0ded3}.contact-actions{display:flex;flex-direction:column;gap:16px}.contact-actions>a:not(.contact-email){display:flex;justify-content:space-between;border-bottom:1px solid rgba(245,243,234,.6);padding:16px 0;font-size:.98rem}.contact-actions .contact-primary{border-top:1px solid rgba(245,243,234,.6)}.contact-actions a:hover{opacity:.7}.contact-email{margin-top:22px;font-size:.9rem}.phone{font-size:.9rem;color:#d0ded3}
.footer{max-width:1760px;margin:auto;padding:68px clamp(24px,4.2vw,76px) 30px;background:var(--ivory)}.footer-main{display:flex;justify-content:space-between;align-items:start;padding-bottom:95px}.footer-wordmark{font-size:2.2rem}.footer-social{display:flex;flex-direction:column;align-items:flex-start;gap:11px}.footer-social .eyebrow{margin-bottom:6px}.footer-social a{font-size:calc(.93rem + 2pt)}.footer-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:22px;font-size:calc(.77rem + 2pt);color:var(--muted)}.footer-bottom a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:1440px){.header-inner{flex-wrap:wrap;row-gap:20px}.main-nav{order:3;width:100%;justify-content:center;border-top:1px solid var(--line);padding-top:15px}.header-end{margin-left:auto}.hero{min-height:660px}.hero h1{font-size:clamp(3.7rem,6vw,6rem)}.hero-copy{padding:70px 50px 30px}.intro{grid-template-columns:25% 75%}}
@media(max-width:760px){.header-inner{min-height:unset;padding:20px 24px 14px;gap:15px}.wordmark{font-size:1.42rem;min-width:133px}.header-end{gap:10px}.header-contact{display:none}.main-nav{margin:0;justify-content:flex-start;overflow-x:auto;gap:22px;padding:14px 0 3px;scrollbar-width:none}.main-nav a{font-size:calc(.78rem + 2pt)}.langs a{font-size:calc(.78rem + 2pt)}.hero{display:flex;flex-direction:column}.hero-copy{padding:64px 27px 28px;min-height:610px}.hero h1{font-size:clamp(3.45rem,13.5vw,6rem);margin:50px 0 22px}.hero p{font-size:1.02rem}.hero-foot{margin-top:70px}.hero-image{min-height:370px;background-position:49% center}.intro{display:block;padding-top:90px;padding-bottom:95px}.section-label{margin-bottom:35px}.intro h2,.section-heading h2,.about h2,.faq-section h2,.contact h2{font-size:clamp(2.85rem,10vw,4.5rem)}.intro p{margin:0;font-size:1.02rem}.areas{padding-top:92px;padding-bottom:100px}.section-heading{margin-bottom:34px}.service summary{grid-template-columns:36px 1fr 22px;gap:10px;min-height:98px}.service-title{font-size:clamp(1.75rem,7vw,2.4rem)}.service-content{padding:0 15px 34px 46px}.service-lead{font-size:1.08rem}.service-content ul{columns:1;margin:20px 0}.image-interlude{height:340px}.about{display:block;padding-top:95px;padding-bottom:100px}.about-photo{max-width:470px;margin-bottom:55px}.about-copy h2{margin-top:20px}.faq-section{display:block;padding-top:92px;padding-bottom:100px}.faq-section .section-heading{margin-bottom:50px}.contact-inner{display:block;padding-top:100px;padding-bottom:100px}.contact-actions{margin-top:50px}.footer-main{padding-bottom:70px}.footer-bottom{flex-direction:column;gap:9px}}
@media(max-width:380px){.hero h1{font-size:3.25rem}.hero-copy{min-height:650px}.main-nav{gap:17px}.service-title{font-size:1.65rem}.header-inner{padding-left:18px;padding-right:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* The same golden spiral grows by φ every quarter-turn and recurs as a quiet brand motif. */
.hero-image,.intro-main,.areas .section-heading,.about-photo,.faq-section .section-heading,.contact-inner{position:relative}
.hero-image::after,.intro-main::before,.areas .section-heading::after,.about-photo::before,.faq-section .section-heading::after,.contact-inner::after{content:"";position:absolute;display:block;pointer-events:none;background-color:currentColor;-webkit-mask:url('/assets/fibonacci-spiral.svg') center/contain no-repeat;mask:url('/assets/fibonacci-spiral.svg') center/contain no-repeat}
.hero-image::after{width:min(63%,510px);aspect-ratio:1;right:1%;top:17%;color:rgba(255,253,247,.84);filter:drop-shadow(0 1px 5px rgba(16,47,53,.45))}
.intro-main::before{width:170px;aspect-ratio:1;right:2%;top:-94px;color:rgba(40,83,51,.20)}
.areas .section-heading::after{width:180px;aspect-ratio:1;right:4%;top:-18px;color:rgba(40,83,51,.18)}
.about-photo::before{width:150px;aspect-ratio:1;left:-80px;top:-85px;color:rgba(40,83,51,.38)}
.faq-section .section-heading::after{width:180px;aspect-ratio:1;left:2%;bottom:-80px;color:rgba(40,83,51,.20)}
.contact-inner::after{width:220px;aspect-ratio:1;right:2%;top:27px;color:rgba(245,243,234,.16)}
@media(max-width:760px){
  .hero-image::after{width:240px;right:2%;top:9%}
  .intro-main::before{width:110px;right:0;top:-65px}
  .areas .section-heading::after{width:95px;right:0;top:-28px}
  .about-photo::before{width:90px;left:-22px;top:-48px}
  .faq-section .section-heading::after{width:96px;left:auto;right:4px;bottom:-65px}
  .contact-inner::after{width:120px;right:12px;top:26px}
  .footer-main{flex-direction:column;align-items:center;text-align:center;gap:42px}
  .footer-wordmark{align-items:center}
  .footer-wordmark span:last-child{padding-left:0}
  .footer-social{align-items:center}
  .footer-bottom{align-items:center;text-align:center}
}
.footer-social a{display:inline-flex;align-items:center;gap:11px;min-height:34px}
.footer-social .social-icon{width:24px;height:24px;flex:none}

/* Full-height portrait follows the tall area marked for the About section. */
.about-photo{width:calc(100% + 30px);max-width:620px;margin-left:-15px;overflow:visible}
.about-photo img{width:100%;height:auto;aspect-ratio:491 / 793;object-fit:cover;object-position:center center;filter:saturate(.86)}
.photo-caption{position:absolute;bottom:0;left:0;right:0;margin:0;padding:38px 18px 15px;border:0;background:linear-gradient(transparent,rgba(16,47,53,.56));color:var(--white);font-size:.72rem;letter-spacing:.17em}
@media(max-width:760px){.about-photo{width:100%;max-width:470px;margin-left:0}}
.about{align-items:start}
.about-copy p{line-height:1.72}
.about-copy p+p{margin-top:1.35rem}
.about-copy .about-lead{font-size:1.12rem;line-height:1.72}

.hero-image{background-position:48% center}
.photo-credit{margin-top:22px;font-size:calc(.7rem + 2pt);color:var(--muted);line-height:1.5}
.photo-credit a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.hero-image{background-position:50% center}.photo-credit{text-align:center}}

.footer-social .eyebrow{font-size:calc(.76rem + 2pt)}
.footer-copyright{white-space:pre-wrap;flex:1;min-width:0}
.footer-bottom>span:last-child{flex-shrink:0}

/* Supplied logo retains its proportions and has room to read at every size. */
.site-logo{display:block;width:clamp(310px,24vw,420px);min-width:0;flex-shrink:0}
.site-logo img{display:block;width:100%;height:auto}
.footer-logo{width:min(460px,100%)}
.about-photo img{border-radius:24px}
.photo-caption{border-radius:0 0 24px 24px}
@media(max-width:760px){
  .header-inner>.site-logo{width:min(380px,100%);margin-inline:auto}
  .header-end{width:100%;margin-left:0;justify-content:center}
  .footer-logo{width:min(420px,100%)}
}

.hero-image{background-position:center center}
@media(max-width:760px){.hero-image{background-position:center 65%}}

/* Large headings use the logo color on light backgrounds. */
h1,h2,.service-title,.service summary:hover .service-title{color:var(--green)}
.hero h1,.contact h2{color:var(--ivory)}
