
:root{
  --forest-950:#02271f;
  --forest-900:#04352a;
  --forest-850:#064334;
  --forest-800:#0a4a39;
  --forest-700:#155d47;
  --gold:#b88b32;
  --gold-soft:#d5b56d;
  --ivory:#f5efe5;
  --paper:#fbf8f2;
  --paper-2:#f7f1e8;
  --ink:#18231e;
  --muted:#5d665f;
  --line:#dccfb9;
  --shadow:0 18px 42px rgba(2,39,31,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--forest-950);
  color:var(--ink);
  font-family:"Segoe UI",Arial,sans-serif;
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
button{font:inherit}
.site-header{
  background:rgba(251,248,242,.98);
  border-bottom:1px solid rgba(184,139,50,.20);
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:blur(10px);
}
.header-inner{
  width:min(1460px,calc(100% - 36px));
  min-height:104px;
  margin:auto;
  display:grid;
  grid-template-columns:420px 1fr 210px;
  align-items:center;
  gap:24px;
}
.brand img{width:400px}
.main-nav{
  display:flex;
  justify-content:center;
  gap:46px;
  align-items:center;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.main-nav a{
  padding:15px 0 12px;
  border-bottom:2px solid transparent;
}
.main-nav a:hover,.main-nav a.active{
  color:#8d651d;
  border-color:var(--gold);
}
.about-button{
  justify-self:end;
  min-width:190px;
  text-align:center;
  background:var(--forest-950);
  color:#f2d392;
  padding:16px 22px;
  border-radius:4px;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:.07em;
}
.menu-toggle{display:none;background:none;border:0;color:var(--forest-950);font-size:28px}
.page-shell{width:min(1510px,calc(100% - 28px));margin:0 auto;background:var(--paper)}
.home-hero{
  min-height:576px;
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(250,247,240,.96) 0%,rgba(250,247,240,.88) 38%,rgba(250,247,240,.56) 58%,rgba(250,247,240,.06) 78%,rgba(250,247,240,0) 100%),
    url("assets/hero-background.jpg") center center/cover no-repeat;
  border-bottom:1px solid var(--line);
}
.home-hero .foliage,
.home-hero .oak{display:none}
.home-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,0));
  pointer-events:none;
}
.hero-content{
  position:relative;z-index:2;
  width:min(900px,70%);
  min-height:576px;
  margin:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:34px 0 34px 18px;
}
.hero-monogram{width:230px;margin-bottom:10px}
h1,h2,h3{
  font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  color:var(--forest-950);
  font-weight:500;
}
.hero-content h1{
  margin:0;
  max-width:860px;
  font-size:clamp(48px,4.95vw,72px);
  line-height:.98;
  text-transform:uppercase;
  letter-spacing:0;
  text-wrap:balance;
}
.ornament{
  width:250px;height:22px;margin:13px auto 8px;position:relative;
}
.ornament::before,.ornament::after{
  content:"";position:absolute;top:10px;width:105px;height:1px;background:var(--gold)
}
.ornament::before{left:0}.ornament::after{right:0}
.ornament span{
  position:absolute;left:50%;top:5px;width:10px;height:10px;background:var(--gold);transform:translateX(-50%) rotate(45deg)
}
.slogan{
  color:#9a6f23;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:18px;
  font-weight:600;
  margin:0 0 16px;
}
.hero-lead{
  max-width:720px;
  font-size:16px;
  line-height:1.55;
  margin:0 0 22px;
}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 26px;border:1px solid var(--gold);
  border-radius:4px;text-transform:uppercase;letter-spacing:.07em;
  font-weight:700;font-size:13px;
}
.btn-primary{background:var(--forest-950);color:#f2d392;border-color:var(--forest-950)}
.service-strip{background:var(--paper);border-bottom:1px solid var(--line)}
.service-grid{display:grid;grid-template-columns:repeat(6,1fr)}
.service-card{
  min-height:210px;padding:28px 26px;
  display:grid;grid-template-columns:56px 1fr;gap:18px;
  border-right:1px solid var(--line);
}
.service-card:last-child{border-right:0}
.service-icon{width:54px;height:54px}
.service-card h3{
  margin:0 0 12px;font-family:"Segoe UI",Arial,sans-serif;
  font-size:14px;line-height:1.45;text-transform:uppercase;
  color:var(--forest-950);font-weight:600
}
.service-card p{margin:0 0 14px;font-size:13px;line-height:1.6;color:#39443d}
.service-card a{
  color:#9a6f23;text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:700
}
.site-footer{
  background:
    radial-gradient(circle at 25% 20%,rgba(18,94,72,.30),transparent 34%),
    linear-gradient(135deg,var(--forest-950),#001f18);
  color:white;
}
.footer-inner{
  width:min(1420px,calc(100% - 52px));
  min-height:120px;margin:auto;
  display:grid;grid-template-columns:360px 1px 1fr 1px 1fr 1px 1.35fr;
  gap:28px;align-items:center;
}
.footer-brand{width:330px}
.footer-divider{height:44px;background:rgba(213,181,109,.5)}
.footer-contact{display:flex;gap:14px;align-items:center;font-size:16px}
.footer-icon{color:var(--gold-soft);font-size:27px}
.section-hero{
  min-height:195px;
  background:
    linear-gradient(90deg,#faf7f0 0 63%,rgba(250,247,240,.74) 76%,rgba(250,247,240,.12) 100%),
    url("assets/about-carvalho.jpg") right center/cover no-repeat;
  padding:34px 68px 28px;
  border-bottom:1px solid var(--line);
}
.section-hero h1{font-size:72px;margin:0 0 4px}
.section-hero p{font:italic 25px "Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;color:#9a6f23;margin:0}
.about-main{padding:28px 54px 18px;background:var(--paper)}
.about-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:start}
.carousel{
  position:relative;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:#eee
}
.carousel-track{display:flex;transition:transform .65s ease}
.carousel-slide{min-width:33.333%;padding-right:2px}
.carousel-slide img{width:100%;aspect-ratio:4/5;object-fit:cover}
.carousel-control{
  position:absolute;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.8);
  background:var(--forest-950);color:white;font-size:24px;cursor:pointer
}
.carousel-prev{left:10px}.carousel-next{right:10px}
.carousel-dots{display:flex;justify-content:center;gap:12px;margin:16px 0 0}
.carousel-dot{width:10px;height:10px;border-radius:50%;border:0;background:#d2c3a6}
.carousel-dot.active{background:var(--forest-950)}
.about-copy h2{font-size:37px;margin:0 0 14px;border-bottom:1px solid var(--gold);padding-bottom:12px}
.about-copy p{font-size:15px;line-height:1.62;margin:0 0 14px}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.value-card{border:1px solid var(--line);padding:20px;background:linear-gradient(180deg,#fffdfa,#f7f0e6)}
.value-card h3{font-size:20px;margin:0 0 10px}
.value-card p{font-size:13px;margin:0;line-height:1.55}
.about-services{margin-top:22px;border-top:1px solid var(--line)}
.service-page-hero{
  min-height:310px;
  display:grid;grid-template-columns:1.08fr .92fr;
  background:linear-gradient(135deg,var(--forest-950),#002a20);
  color:white;overflow:hidden
}
.service-hero-copy{padding:58px 72px;display:flex;flex-direction:column;justify-content:center}
.service-hero-copy h1{font-size:65px;color:white;margin:0 0 12px}
.service-hero-copy p{font-size:18px;line-height:1.6;max-width:680px;margin:0}
.service-hero-image{position:relative}
.service-hero-image img{width:100%;height:100%;object-fit:cover}
.service-hero-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--forest-950),transparent 32%)}
.service-detail{padding:32px 62px 18px;background:var(--paper)}
.service-detail-grid{display:grid;grid-template-columns:1.5fr .55fr;gap:34px}
.service-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 34px}
.service-block{border-right:1px solid var(--line);padding-right:28px}
.service-block:nth-child(even){border-right:0;padding-right:0}
.service-block h2{font-size:32px;margin:0 0 14px;border-bottom:2px solid var(--gold);width:max-content;padding-bottom:7px}
.service-block p{font-size:14px;line-height:1.65;margin:0 0 12px}
.tech-list{list-style:none;padding:0;margin:0}
.tech-list li{position:relative;padding-left:22px;margin-bottom:8px;font-size:13px;line-height:1.55}
.tech-list li::before{content:"◈";position:absolute;left:0;color:var(--gold)}
.contact-card{
  align-self:center;border:1px solid #cdb78e;background:linear-gradient(180deg,#fffdfa,#f6ede0);
  padding:30px;text-align:center;box-shadow:var(--shadow)
}
.contact-card h3{font-size:28px;margin:0 0 12px}
.contact-card p{font-size:14px;line-height:1.55;margin:0 0 18px}
.related-title{text-align:center;font-size:31px;margin:20px 0 18px}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.related-card{border:1px solid var(--line);padding:18px;display:grid;grid-template-columns:70px 1fr;gap:16px;background:#fffdfa;box-shadow:0 10px 24px rgba(2,39,31,.06)}
.related-card img{width:64px}
.related-card h3{font-size:21px;margin:0 0 6px}
.related-card a{color:#9a6f23;font-size:12px;text-transform:uppercase;font-weight:700}
.content-page{background:var(--paper);padding:48px 58px}
.content-page h1{font-size:58px;margin:0 0 16px}
.tech-grid,.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tech-card,.project-card{border:1px solid var(--line);background:#fffdfa;box-shadow:var(--shadow)}
.tech-card{padding:28px}
.tech-card h2{font-size:28px;margin:0 0 12px}
.tech-card p{font-size:14px;line-height:1.65}
.project-card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.project-card div{padding:20px}
.project-card h2{font-size:25px;margin:0 0 9px}
.project-card p{font-size:14px;line-height:1.6;margin:0}
@media(max-width:1100px){
  .header-inner{grid-template-columns:330px 1fr 170px}
  .brand img{width:320px}.main-nav{gap:22px}
  .service-grid{grid-template-columns:repeat(3,1fr)}
  .service-card:nth-child(3){border-right:0}
  .about-layout{grid-template-columns:1fr}
  .carousel-slide{min-width:50%}
}
@media(max-width:820px){
  .header-inner{min-height:82px;grid-template-columns:1fr auto}
  .brand img{width:285px}.menu-toggle{display:block}
  .about-button{display:none}
  .main-nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--paper);padding:18px;flex-direction:column;gap:0;border-bottom:1px solid var(--line)}
  .main-nav.open{display:flex}.main-nav a{width:100%;text-align:center}
  .page-shell{width:100%}
  .home-hero .oak{width:100%;opacity:.28}.home-hero .foliage{opacity:.48}
  .hero-content{width:94%}
  .service-grid{grid-template-columns:1fr 1fr}
  .footer-inner{grid-template-columns:1fr;gap:14px;padding:28px 0}
  .footer-divider{display:none}
  .footer-brand{width:290px}
  .section-hero{padding:32px 24px}.section-hero h1{font-size:52px}
  .about-main{padding:24px}.carousel-slide{min-width:100%}
  .value-grid{grid-template-columns:1fr}
  .service-page-hero{grid-template-columns:1fr}
  .service-hero-copy{padding:42px 28px}.service-hero-copy h1{font-size:48px}
  .service-hero-image{height:320px}
  .service-detail{padding:28px 22px}.service-detail-grid,.service-content-grid{grid-template-columns:1fr}
  .service-block{border-right:0;padding-right:0}
  .related-grid,.tech-grid,.project-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .service-grid{grid-template-columns:1fr}
  .service-card{border-right:0;border-bottom:1px solid var(--line)}
  .hero-content h1{font-size:44px}
  .slogan{font-size:14px}
  .header-inner{width:calc(100% - 20px)}
  .brand img{width:240px}
}
