@import url('assets/fonts.css');
:root{--cream:#FAF5EC;--ink:#304423;--sage:#8d9f7c;--muted:#718560;--pale:#edeee0;--lime:#e3e8b7;--line:#a3b08a;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.16}h1{font-size:clamp(30px,2.6vw,38px);letter-spacing:-.015em}h2{font-size:36px;letter-spacing:-.015em}h3{font-size:23px}em{font-weight:600}p{line-height:1.5}.wrap{width:73%;max-width:1130px;margin-inline:auto}.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:500;margin-bottom:25px}.button{display:inline-flex;align-items:center;justify-content:center;gap:17px;background:var(--sage);border:1px solid transparent;color:#fff;text-decoration:none;padding:12px 24px;font-size:12px;font-weight:500;line-height:1.3;min-height:42px;transition:background .2s,transform .2s}.button:hover{background:#697f59;transform:translateY(-2px)}.button:active{transform:translateY(0)}:focus-visible{outline:3px solid #ad772f;outline-offset:5px}.skip{position:fixed;top:-100px;left:20px;z-index:20;padding:15px;background:white}.skip:focus{top:15px}
.hero{background:radial-gradient(ellipse at 39% 1%,#dedbd380,transparent 47%),radial-gradient(ellipse at 83% 91%,#e3e0d875,transparent 44%),#faf6ed;position:relative;border-bottom:2px solid var(--line);overflow:visible}.hero-rail{position:absolute;inset:0 auto 0 0;width:7.5%;background:linear-gradient(160deg,#8d9f7c 0%,#a6b491 62%,#f3f0e5 100%)}.hero-inner{position:relative;min-height:610px;display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center}.hero-copy{padding:65px 0;position:relative;z-index:2}.brand{display:inline-block;text-decoration:none;margin-bottom:32px;line-height:0}.brand img{width:177px;height:44px}.brand span{display:block;font:8px var(--sans);letter-spacing:.29em;margin-top:3px}.hero-copy p{max-width:470px;margin:22px 0 23px;font-size:13px;line-height:1.6}.portrait{height:100%;position:relative;margin-right:calc((100vw - min(73vw,1130px)) / -2);overflow:hidden}.portrait img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:48% 37%;clip-path:polygon(14% 0,100% 0,100% 100%,0 100%)}.next{position:absolute;bottom:-20px;left:calc(50% - 20px);width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--cream);text-align:center;text-decoration:none;line-height:37px;font-size:17px;z-index:3}
.challenges{display:grid;grid-template-columns:1fr 1fr;gap:110px;padding-block:68px}.challenge-copy{padding-top:7px}.challenge-copy h2 em,.section-heading em{color:var(--muted)}.challenge-copy>p:not(.eyebrow){font-size:14px;margin-top:20px}.challenge-copy .serif-note{font-family:var(--serif);font-size:24px!important;font-style:italic;line-height:1.2}.challenge-copy .button{margin-top:22px}.challenge-list{display:grid;gap:17px}.challenge-list article{background:var(--pale);border:1px solid var(--line);border-right:0;padding:17px 22px}.challenge-list article:nth-child(even){border-top:0}.challenge-list h3{margin-bottom:8px}.challenge-list p{font-size:12px;color:#303b2a}
.solution{padding:76px 35px 60px;text-align:center;background:radial-gradient(ellipse at 0% 100%,#a6be80 0%,transparent 58%),radial-gradient(ellipse at 100% 0%,#a1b981 0%,transparent 55%),#8c9e79;color:var(--cream);border-radius:12px;position:relative}.solution .eyebrow{margin-bottom:26px}.solution>p:not(.eyebrow){font-size:13px;margin-top:24px}.benefits{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:13px;max-width:635px;margin:29px auto 0;padding:0}.benefits li{display:flex;gap:15px;text-align:left;align-items:center;padding:12px 18px;background:#acb998;font-size:13px;line-height:1.4}.benefits span{color:var(--ink);font-size:23px;font-weight:600}
.included{padding:76px 0 78px;background-image:url('assets/folhas.webp');background-position:left center;background-size:190px auto;background-repeat:no-repeat}.section-heading{text-align:center}.section-heading>p:last-child{font-size:13px;margin-top:23px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:55px 95px;margin-top:58px}.services-grid article{background:var(--pale);border:1px solid #c8ceb2;border-top-color:var(--line);padding:24px 22px;position:relative}.services-grid article:before{content:'';position:absolute;left:15px;top:-5px;width:35%;height:4px;background:#afbc95}.services-grid h3{font-size:22px;margin-bottom:13px}.services-grid p{font-size:13px;line-height:1.5;color:#34412c}
.audience{background:var(--ink);color:var(--cream);padding:62px 0 64px}.audience-heading{display:flex;justify-content:space-between;gap:80px;align-items:center;margin-bottom:32px}.audience-heading p{max-width:360px;font-size:12px}.audience-grid{display:grid;grid-template-columns:1.04fr 1fr;grid-template-rows:220px 88px 220px;gap:24px}.audience-card{position:relative;overflow:hidden;background:#1f3018;border:1px solid #b5c298;display:flex;align-items:end}.audience-card:nth-child(1){grid-row:1/3}.audience-card:nth-child(2){grid-column:2;grid-row:1}.audience-card:nth-child(3){grid-column:1;grid-row:3}.audience-card:nth-child(4){grid-column:2;grid-row:2/4}.audience-card img{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;opacity:.68;transition:transform .5s}.audience-card:hover img{transform:scale(1.035)}.audience-card p{position:relative;background:#17230dc9;padding:19px 24px;width:100%;font-size:13px;line-height:1.45}
.question{text-align:center;background:var(--lime);padding:52px 20px 48px;border-bottom:1px solid #c7d1a7}.question .eyebrow{margin-bottom:20px;font-size:9px}.question h2{font-size:40px}.question p:not(.eyebrow){font-size:13px;margin:23px auto 20px}.dark{background:var(--ink)}.dark:hover{background:#4f633c}
.projects{padding:77px 0 65px;overflow:hidden}.project-track{width:119%;margin:50px 0 0 -9.5%;display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:32px;align-items:center}.project{border:0;padding:0;text-align:left;background:none;color:var(--ink);min-width:0}.project img{width:100%;height:350px;object-fit:cover;transition:filter .2s}.project.featured img{height:408px}.project:hover img{filter:brightness(1.12)}.project span{display:block;font-size:14px;margin-top:12px}.project-hint{text-align:center;color:var(--muted);font-size:11px;margin-top:30px}.contact{padding-top:28px;padding-bottom:62px}.signature{font:400 clamp(45px,8.5vw,132px)/1 var(--serif);letter-spacing:-.055em;text-align:center;color:var(--sage);white-space:nowrap;margin-bottom:-13px}.contact-panel{position:relative;text-align:center;background:linear-gradient(130deg,#899e76 0%,#7f936b 44%,#5d7350 100%);color:var(--cream);border-radius:12px;padding:57px 20px 50px}.contact-panel h2{font-size:50px}.contact-panel>p:not(.eyebrow){font-size:13px;margin:24px 0}.light{background:var(--lime);color:var(--ink)}.light:hover{background:#f0f2d4}footer{padding:34px 20px;background:var(--ink);color:var(--cream);font-size:10px;text-align:center}
dialog{border:1px solid #9aab85;border-radius:10px;background:var(--cream);color:var(--ink);padding:36px;width:min(560px,calc(100% - 32px));max-height:90dvh;overscroll-behavior:contain}dialog::backdrop{background:#182511b8;backdrop-filter:blur(5px)}dialog h2{margin-bottom:18px;font-size:36px}dialog>p:not(.eyebrow){font-size:13px;margin-bottom:22px}.close{position:absolute;right:12px;top:8px;padding:4px 12px;border:0;background:none;color:var(--ink);font-size:28px}form{display:grid;gap:16px}label{display:grid;gap:7px;font-size:12px;font-weight:500}input,textarea,select{width:100%;border:1px solid #b9c0a5;background:#fffdf7;color:var(--ink);border-radius:2px;padding:11px;font-size:14px}textarea{resize:vertical}.form-note{font-size:11px;line-height:1.5;opacity:.8}.text-button{background:none;border:0;text-decoration:underline;color:var(--ink);font-size:12px;padding:12px 0}#budget-result h3{margin:20px 0 12px}#budget-result>p{font-size:13px;margin-bottom:16px}#summary{margin-bottom:16px}#copy-status{margin:12px 0}#project-dialog{width:min(840px,calc(100% - 32px))}#project-preview{width:100%;max-height:60dvh;object-fit:contain;margin:20px 0}
@media(min-width:1600px){.hero-inner{min-height:660px}}
@media(max-width:1100px){.wrap{width:82%}.hero-rail{width:4%}.hero-inner{min-height:540px;gap:20px}.portrait{margin-right:-9vw}.challenges{gap:55px}.services-grid{gap:40px}.audience-grid{grid-template-rows:190px 55px 190px}.project img{height:260px}.project.featured img{height:310px}h2{font-size:33px}.hero-copy p{font-size:12px}}
@media(max-width:700px){body{font-size:14px}.wrap{width:86%}h1{font-size:36px;max-width:490px}h2{font-size:32px}.hero-rail{display:none}.hero-inner{display:flex;flex-direction:column;gap:0;align-items:stretch}.hero-copy{padding:35px 0 32px}.brand{margin-bottom:30px;font-size:24px}.hero-copy p{font-size:13px;max-width:none}.portrait{height:380px;margin:0 -8.14%;position:relative}.portrait img{clip-path:none;object-position:50% 32%}.hero .button{min-height:45px}.challenges{grid-template-columns:1fr;gap:34px;padding:58px 0 45px}.challenge-copy h2 br{display:none}.challenge-copy .serif-note{max-width:360px}.challenge-list{gap:12px}.challenge-list article{padding:18px}.solution{padding:45px 22px 36px;width:90%;border-radius:8px}.solution h2{font-size:30px}.solution h2 br{display:none}.benefits{grid-template-columns:1fr;max-width:360px;gap:10px}.benefits li{font-size:13px}.benefits li br{display:none}.desktop{display:none}.included{padding:52px 0;background-size:100px auto}.eyebrow{font-size:9px;margin-bottom:19px}.services-grid{grid-template-columns:1fr 1fr;gap:26px 17px;margin-top:38px}.services-grid article{padding:20px 16px}.services-grid h3{font-size:23px}.services-grid p{font-size:12px}.audience{padding:45px 0}.audience-heading{display:block;margin-bottom:27px}.audience-heading p{margin-top:20px;max-width:none}.audience-grid{grid-template-columns:1fr;grid-template-rows:none;gap:20px}.audience-card:nth-child(n){grid-column:auto;grid-row:auto;min-height:220px}.audience-card.tall{min-height:260px}.audience-card p{font-size:13px}.question{padding:43px 15px}.question h2{font-size:33px}.question .wrap{width:94%}.projects{padding:52px 0 35px}.project-track{width:100%;margin:32px 0 0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 7% 16px;gap:20px}.project{flex:0 0 85%;scroll-snap-align:center}.project img,.project.featured img{height:270px}.project span{font-size:12px}.project-hint{margin-top:10px}.contact{padding-top:25px;padding-bottom:42px;width:90%}.signature{font-size:clamp(40px,10vw,69px);margin-bottom:-3px;letter-spacing:-.05em}.contact-panel{padding:40px 22px;border-radius:8px}.contact-panel h2{font-size:39px}.contact-panel>p:not(.eyebrow){font-size:13px}footer{font-size:9px;padding:25px 18px}dialog{padding:32px 23px}}
@media(max-width:380px){h1{font-size:32px}.services-grid{grid-template-columns:1fr}.portrait{height:330px}.project img,.project.featured img{height:235px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

[hidden]{display:none!important}

/* Typography and spacing from the supplied editorial wireframe. */
body{letter-spacing:0}h1,h2,h3{font-synthesis:none}h2{font-size:32px}h3{font-size:20px}.hero-copy h1{max-width:490px}.hero-copy p{line-height:1.55;letter-spacing:-.005em}.section-heading>p:last-child,.solution>p:not(.eyebrow){line-height:1.55}.eyebrow{letter-spacing:.13em}.services-grid h3{font-size:19px}.services-grid p{line-height:1.45}.contact-panel h2{font-size:43px;line-height:1.12}.question h2{font-size:34px}.signature{letter-spacing:-.055em;font-size:clamp(40px,7.4vw,112px)}
@media(max-width:700px){.brand{margin-bottom:28px}.signature{font-size:clamp(33px,8.5vw,59px)}.hero-copy h1{font-size:32px;line-height:1.16}.section-heading h2{font-size:28px}.challenge-copy h2{font-size:29px}.solution h2{font-size:28px}.contact-panel h2{font-size:34px}.question h2{font-size:30px}.services-grid h3{font-size:19px}}

/* Banner: original exported assets and exact section colors. */
body{background:#FAF5EC}
.hero{background:#FAF5EC;border-bottom-color:#899B75}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:url('assets/shadow-bg.webp') center/cover no-repeat;opacity:.34;mix-blend-mode:multiply}
.hero-inner{isolation:isolate}
.hero-copy{z-index:3}
.hero-copy h1{color:#2C4321}
.hero-copy>p{color:#1A221D}
.hero-copy .button{background:linear-gradient(100deg,#899B75 0%,rgba(176,186,151,.99) 50%,#899B75 100%);color:#fff;border:0;letter-spacing:0}
.hero-copy .button:hover{background:linear-gradient(100deg,#7c8f68 0%,#a3ae8a 50%,#7c8f68 100%)}

.portrait{z-index:2}
.hero .next{width:46px;height:46px;left:calc(50% - 23px);bottom:-24px;border:0;background:transparent;line-height:0}
.hero .next img{width:46px;height:46px}
@media(max-width:700px){.hero::before{background-size:auto 100%;opacity:.25}.hero .portrait{margin-left:0;margin-right:-8.14%}.hero .portrait img{clip-path:polygon(12% 0,100% 0,100% 100%,0 100%)}}

/* Reference composition: diagonal backdrop, original seal, transparent subject. */
.hero{overflow-x:clip;overflow-y:visible}
.hero .portrait{position:relative;isolation:isolate;overflow:visible}
.hero .portrait::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(140deg,#dde2d6 0%,#b3bea6 50%,#eef0e6 100%);clip-path:polygon(27% 0,100% 0,75% 100%,0 100%);pointer-events:none}
.hero .portrait .hero-stamp{position:absolute;left:-11%;right:auto;top:45%;bottom:auto;width:45%;max-width:270px;height:auto;object-fit:contain;object-position:center;clip-path:none;transform:none;z-index:1;pointer-events:none}
.hero .portrait .portrait-subject{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;clip-path:none;z-index:2}
@media(max-width:700px){.hero .portrait{margin-left:-8.14%;margin-right:-8.14%;height:400px}.hero .portrait::before{clip-path:polygon(27% 0,100% 0,80% 100%,0 100%)}.hero .portrait .hero-stamp{left:-7%;top:46%;width:44%;max-width:180px;bottom:auto;z-index:1;clip-path:none}.hero .portrait .portrait-subject{clip-path:none;object-position:center bottom}}
@media(max-width:380px){.hero .portrait{height:350px}}

/* Original supplied pixels; only the existing alpha channel acts as a CSS mask. */
.hero .portrait .portrait-subject{
  inset:auto;left:-5%;top:0;width:110%;height:110%;
  object-fit:contain;object-position:center top;
  -webkit-mask-image:url('assets/retrato-recortado.png');
  mask-image:url('assets/retrato-recortado.png');
  -webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-position:center top;mask-position:center top;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-mode:alpha;
  clip-path:inset(0 0 9.090909% 0);
}

/* Requested body-copy size, consistent on desktop and mobile. */
body{--body-copy-size:16px}
.hero-copy>p,
.challenge-copy>p:not(.eyebrow),
.challenge-copy .serif-note,
.challenge-list p,
.solution>p:not(.eyebrow),
.benefits li,
.section-heading>p:last-child,
.services-grid p,
.audience-heading p,
.audience-card p,
.question p:not(.eyebrow),
.contact-panel>p:not(.eyebrow),
dialog>p:not(.eyebrow),
#budget-result>p{font-size:var(--body-copy-size)!important;line-height:1.5}
@media(min-width:701px){.audience-grid{grid-template-rows:minmax(260px,auto) 88px minmax(260px,auto)}}

/* Uniform button typography. */
.button,.text-button,.project span{font-size:16px;line-height:1.4}
.button{min-height:48px;text-align:center;max-width:100%;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}

/* One full-width shadow layer above every background and below the content. */
.hero{isolation:isolate}
.hero-rail{z-index:0}
.hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(140deg,#dde2d6 0%,#b3bea6 50%,#eef0e6 100%);clip-path:polygon(66% 0,100% 0,85% 100%,51% 100%)}
.hero::before{z-index:1;inset:0;background-image:url('assets/shadow-bg.webp');background-size:100% 100%;background-position:center;background-repeat:no-repeat;opacity:.85;mix-blend-mode:multiply}
.hero-inner{z-index:2}
.hero .portrait::before{content:none}
.hero .next{z-index:4}
@media(max-width:700px){.hero::after{top:auto;height:400px;clip-path:polygon(27% 0,100% 0,80% 100%,0 100%)}.hero::before{background-size:100% 100%;opacity:.85}}
@media(max-width:380px){.hero::after{height:350px}}

/* Light interaction motion; entry animations are progressive enhancement in JS. */
.services-grid article,.challenge-list article{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.project img{transition:filter .3s ease,transform .45s ease}
.button>span{display:inline-block;transition:transform .25s ease}
.hero .next{transition:transform .25s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .button:hover{transform:translateY(-3px);box-shadow:0 7px 18px #2c43211c}
  .button:hover>span{transform:translateX(4px)}
  .button:active{transform:translateY(0);box-shadow:none}
  .services-grid article:hover,.challenge-list article:hover{transform:translateY(-4px);border-color:#899B75;box-shadow:0 10px 22px #2c43210d}
  .project:hover img{transform:translateY(-4px)}
  .hero .next:hover{transform:translateY(4px)}
}
@media(prefers-reduced-motion:no-preference){
  dialog[open]{animation:dialog-appear .24s ease-out}
  dialog[open]::backdrop{animation:backdrop-appear .24s ease-out}
}
@keyframes dialog-appear{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdrop-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.button:hover,.project:hover img,.hero .next:hover,.services-grid article:hover,.challenge-list article:hover{transform:none}}
