:root {
  --ink:#121715;
  --ink2:#19211d;
  --dark:#0c110e;
  --cream:#eff0eb;
  --white:#f8faf5;
  --muted:#aeb6ae;
  --green:#a6d56d;
  --green2:#7db84a;
  --line:rgba(255,255,255,.14);
  --serif:Georgia,"Times New Roman",serif;
  --ease:cubic-bezier(.2,.75,.25,1)
}

*,*::before,*::after {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:85px
}

body {
  margin:0;
  min-width:320px;
  color:var(--ink);
  background:var(--cream);
  font-family:"DM Sans",Arial,sans-serif;
  -webkit-font-smoothing:antialiased
}

body.menu-open {
  overflow:hidden
}

button,input,select,textarea {
  font:inherit
}

button,a {
  -webkit-tap-highlight-color:transparent
}

a {
  color:inherit;
  text-decoration:none
}

img {
  display:block;
  max-width:100%
}

button {
  cursor:pointer
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:2px solid var(--green2);
  outline-offset:4px
}

::selection {
  color:#152116;
  background:#b1dc79
}

.container {
  width:min(1312px,calc(100% - 84px));
  margin-inline:auto
}

.skip-link {
  position:fixed;
  z-index:999;
  top:-100px;
  left:16px;
  background:var(--green);
  padding:14px 20px
}

.skip-link:focus {
  top:10px
}

.topline {
  position:relative;
  z-index:35;
  background:#0e1410;
  color:#c1c9c0;
  border-bottom:1px solid #293128;
  font-size:10px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase
}

.topline__inner {
  min-height:33px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px
}

.topline__inner>span {
  display:inline-flex;
  align-items:center;
  gap:9px
}

.green-dot {
  width:6px;
  height:6px;
  display:inline-block;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 4px #a6d56d17
}

.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(17,23,19,.96);
  border-bottom:1px solid #ffffff1c;
  backdrop-filter:blur(22px);
  color:#fff;
  transition:box-shadow .3s,border-color .3s
}

.site-header.is-scrolled {
  box-shadow:0 15px 40px #0005;
  border-bottom-color:#ffffff22
}

.header-inner {
  height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}

.site-nav {
  display:flex;
  align-items:center;
  gap:34px;
  margin-left:auto
}

.site-nav>a {
  position:relative;
  color:#e6eae5;
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
  transition:color .2s
}

.site-nav>a:hover {
  color:var(--green)
}

.site-nav>a:not(.btn)::after {
  position:absolute;
  content:"";
  bottom:-7px;
  left:0;
  width:0;
  height:1px;
  background:var(--green);
  transition:width .25s
}

.site-nav>a:not(.btn):hover::after {
  width:100%
}

.header-actions {
  display:flex;
  align-items:center
}

.header-whatsapp {
  display:flex;
  align-items:center;
  gap:18px;
  padding:13px 0 13px 20px;
  border-left:1px solid #ffffff35;
  font-size:12px;
  font-weight:700;
  white-space:nowrap
}

.header-whatsapp span {
  color:var(--green);
  font-size:22px;
  line-height:1
}

.header-whatsapp:hover {
  color:var(--green)
}

.menu-toggle,.btn--mobile-menu {
  display:none!important
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
  min-height:57px;
  padding:0 26px;
  font-size:13px;
  letter-spacing:-.01em;
  font-weight:800;
  border:0;
  transition:transform .25s var(--ease),background .25s
}

.btn:hover {
  transform:translateY(-3px)
}

.btn--green {
  color:#172414;
  background:var(--green)
}

.btn--green:hover {
  background:#b8eb7e
}

.btn span {
  font-weight:400;
  font-size:24px;
  line-height:1
}

.btn--full {
  width:100%
}

.text-link {
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
  border-bottom:1px solid #ffffff91;
  padding-bottom:8px
}

.text-link span {
  margin-left:12px;
  color:var(--green)
}

.hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:min(820px,calc(100svh - 115px));
  background:#0c1310;
  color:white
}

.hero__photo {
  position: absolute;
  z-index: -3;
  inset: 0;
  background-image: url("assets/images/banner.jpg");
  background-position: 63% 47%;
  background-size: cover;
  background-repeat: no-repeat;
  filter: grayscale(0.38) contrast(1.16) brightness(0.79);
  animation: hero-enter 1.6s var(--ease) both;
}

.hero__mesh {
  position:absolute;
  z-index:-2;
  inset:0;
  background:linear-gradient(90deg,#0c130ff7 0%,#0c130fda 26%,#0c130f7c 51%,#0c130f10 100%),linear-gradient(0deg,#0c130fe8 0%,transparent 35%,#0c130f35 100%)
}

.hero::after {
  position:absolute;
  content:"";
  z-index:-1;
  right:9%;
  top:0;
  height:100%;
  width:1px;
  background:#ffffff18;
  pointer-events:none
}

.hero__container {
  min-height:inherit;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding-top:clamp(110px,14vh,170px);
  padding-bottom:31px
}

.hero__copy {
  max-width:850px
}

.eyebrow {
  display:inline-flex;
  align-items:center;
  gap:15px;
  color:#dfebd9;
  font-size:11px;
  font-weight:800;
  letter-spacing:.22em;
  line-height:1.5
}

.eyebrow__dash {
  width:30px;
  height:1px;
  background:var(--green)
}

.hero h1 {
  margin:29px 0 25px;
  max-width:880px;
  font-family:"Manrope",Arial,sans-serif;
  font-weight:600;
  line-height:1.05;
  font-size:clamp(48px,6.8vw,100px);
  letter-spacing:-.08em;
  text-wrap:balance
}

.hero h1 em {
  color:var(--green);
  font-family:var(--serif);
  font-size:.96em;
  font-weight:400;
  letter-spacing:-.06em;
  font-style:italic;
  white-space:normal
}

.hero__copy>p {
  max-width:465px;
  margin:0;
  color:#c8d0c7;
  font-size:15px;
  line-height:1.78
}

.hero__actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:29px;
  margin-top:36px
}

.hero__bottom {
  display:flex;
  align-items:end;
  justify-content:space-between;
  border-top:1px solid #ffffff42;
  padding-top:22px;
  color:#d8dfd4;
  font-size:10px;
  letter-spacing:.18em;
  font-weight:700
}

.hero__scroll {
  display:flex;
  align-items:center;
  gap:24px
}

.hero__scroll span {
  font-size:24px;
  color:var(--green)
}

.hero__since {
  display:flex;
  gap:14px;
  align-items:baseline
}

.hero__since strong {
  font-family:"Manrope";
  font-size:38px;
  line-height:.85;
  letter-spacing:-.05em;
  color:var(--green)
}

.hero__side {
  position:absolute;
  top:50%;
  right:20px;
  transform:translateY(-50%);
  writing-mode:vertical-rl;
  font-size:9px;
  letter-spacing:.22em;
  font-weight:800;
  color:#fff9
}

.signature-line {
  background:#a8d872;
  color:#1c2c17
}

.signature-line__inner {
  min-height:69px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  overflow:hidden;
  white-space:nowrap
}

.signature-line span {
  font-size:10px;
  letter-spacing:.14em;
  font-weight:800
}

.signature-line i {
  flex:0 0 5px;
  width:5px;
  height:5px;
  background:#274125;
  border-radius:100%;
  opacity:.8
}

.section {
  padding-block:clamp(80px,10vw,140px)
}

.section-label {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 33px;
  color:#63766b;
  font-size:11px;
  font-weight:800;
  letter-spacing:.17em;
  text-transform:uppercase
}

.section-label span {
  color:#4b9342
}

.display-title {
  margin:0;
  font-family:"Manrope",sans-serif;
  font-size:clamp(41px,5.5vw,78px);
  font-weight:600;
  letter-spacing:-.08em;
  line-height:1.12;
  color: var(--dark);
}

.display-title span {
  font-family:var(--serif);
  font-weight:400;
  font-style:italic;
  letter-spacing:-.07em;
  color: var(--green);
}

.arrow-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:36px;
  margin-top:23px;
  border-bottom:1px solid #637368;
  color:#27392d;
  padding:0 0 12px;
  font-size:13px;
  font-weight:800;
  transition:gap .2s
}

.arrow-link:hover {
  gap:48px
}

.arrow-link span {
  font-size:20px;
  font-weight:400
}

.services {
  background:#171f1b;
  color:var(--white)
}

.services .section-label,.difference .section-label,.reviews .section-label,.contact .section-label {
  color:#aebca9
}

.services .section-label span,.difference .section-label span,.reviews .section-label span,.contact .section-label span {
  color:var(--green)
}

.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:60px;
  margin-bottom:60px
}

.section-heading>.section-label {
  margin-bottom:0
}

.section-heading>p {
  max-width:345px;
  margin:0 0 11px
}

.services .display-title span {
  color:var(--green)
}

.services .section-heading>p {
  color:#a6b5a9
}

.difference {
  background:#111713;
  color:#eff3ed;
  padding:130px 0
}

.difference__grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(55px,8vw,140px);
  align-items:center
}

.difference .display-title {
  font-size:clamp(48px,5.7vw,82px)
}

.difference .display-title span {
  color:var(--green)
}

.difference__story>p:not(.section-label) {
  max-width:470px;
  line-height:1.75;
  color:#afbeb0;
  font-size:15px;
  margin:25px 0 44px
}

.steps {
  border-top:1px solid #ffffff2a
}

.step {
  display:grid;
  grid-template-columns:52px 1fr;
  gap:25px;
  padding:24px 0;
  border-bottom:1px solid #ffffff2a
}

.step strong {
  color:var(--green);
  font-size:12px;
  letter-spacing:.14em
}

.step h3 {
  margin:0 0 7px;
  font-size:15px;
  font-weight:700
}

.step p {
  margin:0;
  color:#9fac9d;
  font-size:13px;
  line-height:1.6
}

.difference__visual {
  position:relative;
  padding-bottom:43px
}

.difference__image {
  height:min(750px,65vw);
  min-height:520px;
  overflow:hidden;
  background:#263429 url("assets/images/hero-fallback.svg") center/cover
}

.difference__image img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(.35) contrast(1.09)
}

.difference__caption {
  position:absolute;
  bottom:13px;
  left:0;
  display:flex;
  align-items:center;
  gap:10px;
  color:#bfd0be;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em
}

.about {
  background:#f2f3ed
}

.about__grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(80px,10vw,155px);
  align-items:center
}

.about__visual {
  position:relative;
  padding:0 52px 45px 0
}

.about__image {
  min-height:580px;
  max-height:720px;
  height:57vw;
  overflow:hidden;
  background:#28342b url("assets/images/hero-fallback.svg") center/cover no-repeat
}

.about__image img {
  height:100%;
  width:100%;
  object-fit:cover;
  filter:saturate(.55) contrast(1.06)
}

.about__stamp {
  position:absolute;
  bottom:0;
  right:0;
  display:flex;
  align-items:center;
  gap:15px;
  padding:29px 32px;
  background:#a6d56d;
  color:#1d311e
}

.about__stamp strong {
  font-family:"Manrope";
  font-size:46px;
  letter-spacing:-.08em;
  line-height:1
}

.about__stamp span {
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
  line-height:1.7
}

.about .display-title {
  font-size:clamp(42px,5.4vw,76px)
}

.about .display-title span {
  color:#6b816e
}

.about__copy>p:not(.section-label) {
  margin:25px 0 0;
  color:#58665c;
  font-size:15px;
  line-height:1.82
}

.about__features {
  display:grid;
  gap:17px;
  margin-top:35px;
  color:#293a2d;
  font-size:13px;
  font-weight:700
}

.check {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:23px;
  height:23px;
  margin-right:9px;
  background:#a7d577;
  border-radius:50%
}

.about__copy .arrow-link {
  margin-top:42px
}

.reviews {
  background:#17201b;
  color:#fff
}

.reviews .display-title span {
  color:var(--green)
}

.reviews .section-heading>p {
  color:#a6b6a8
}

.contact {
  background:#101612;
  color:#fff
}

.contact__grid {
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);
  gap:clamp(60px,10vw,160px);
  align-items:start
}

.contact .display-title {
  font-size:clamp(46px,5.7vw,82px)
}

.contact .display-title span {
  color:var(--green)
}

.contact__copy>p:not(.section-label) {
  color:#b3c1b6;
  max-width:420px;
  margin:29px 0 65px;
  line-height:1.78;
  font-size:15px
}

.contact__info {
  display:grid;
  justify-items:start;
  gap:18px
}

.contact__info a {
  font-size:13px;
  color:#e5ece2;
  border-bottom:1px solid #ffffff38;
  padding-bottom:8px;
  transition:color .2s
}

.contact__info a:hover {
  color:var(--green)
}

.contact__form-box {
  background:#edf1e9;
  color:#1e2b21;
  padding:42px
}

.form-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:30px;
  border-bottom:1px solid #c9d3c6;
  padding-bottom:22px;
  font-size:10px;
  letter-spacing:.16em;
  font-weight:800;
  color:#667b68
}

.form-head span+span {
  font-size:24px;
  color:#729b50
}

#contact-form {
  display:grid;
  gap:20px
}

.field {
  display:grid;
  gap:8px
}

.field label {
  font-size:12px;
  font-weight:800
}

.field :is(input,select,textarea) {
  width:100%;
  border:1px solid #c5d0c1;
  border-radius:0;
  background:#f9faf5;
  color:#1c3021;
  min-height:49px;
  padding:12px 13px;
  font-size:13px;
  outline:0;
  transition:border-color .2s
}

.field :is(input,select,textarea):focus {
  border-color:#72a945;
  box-shadow:0 0 0 2px #a6d56d4f
}

.field textarea {
  min-height:92px;
  resize:vertical
}

.field :is(input,textarea)::placeholder {
  color:#8b9688
}

#contact-form .btn {
  margin-top:8px
}

#contact-form>small {
  font-size:10px;
  color:#748073;
  line-height:1.55
}

.faq {
  background:#eeefe9
}

.faq__grid {
  display:grid;
  grid-template-columns:1fr 1.35fr;
  gap:100px
}

.faq .display-title {
  font-size:clamp(42px,5vw,69px)
}

.faq .display-title span {
  color:#728876
}

.faq__list {
  border-top:1px solid #bac4b9;
  margin-top: 100px;
}

.faq details {
  border-bottom:1px solid #bac4b9
}

.faq summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding:27px 0;
  font-size:15px;
  font-weight:700;
  line-height:1.5
}

.faq summary::-webkit-details-marker {
  display:none
}

.faq summary span {
  color:#648d58;
  font-size:27px;
  font-weight:400;
  transition:transform .25s
}

.faq details[open] summary span {
  transform:rotate(45deg)
}

.faq details p {
  max-width:660px;
  margin:0;
  padding:0 40px 28px 0;
  color:#647267;
  font-size:14px;
  line-height:1.8
}

.mobile-cta {
  display:none
}

[data-reveal] {
  opacity:0;
  transform:translateY(24px);
  transition:opacity .72s var(--ease),transform .72s var(--ease)
}

[data-reveal].is-visible {
  opacity:1;
  transform:none
}

@keyframes hero-enter {
  from {
    opacity:.4;
    transform:scale(1.08)
  }
  to {
    opacity:1;
    transform:scale(1)
  }
}

@media(max-width:1150px) {
  .container {
    width:min(100% - 56px,1100px)
  }
  .site-nav {
    gap:20px
  }
  .header-whatsapp {
    font-size:11px
  }

  .about__grid {
    gap:65px
  }
  .faq__grid {
    gap:55px
  }
}

@media(max-width:900px) {
  .container {
    width:calc(100% - 44px)
  }
  .topline__inner>span:last-child {
    display:none
  }
  .header-inner {
    height:70px
  }
  .site-nav {
    position:absolute;
    top:100%;
    right:0;
    left:0;
    z-index:49;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:20px 25px 35px;
    background:#111913;
    box-shadow:0 35px 50px #0007;
    transform:translateY(-140%);
    visibility:hidden;
    transition:transform .35s var(--ease),visibility .35s
  }
  .site-nav.is-open {
    transform:translateY(0);
    visibility:visible
  }
  .site-nav>a {
    padding:17px 0;
    font-size:16px;
    border-bottom:1px solid #ffffff24
  }
  .site-nav>a:not(.btn)::after {
    display:none
  }
  .site-nav .btn--mobile-menu {
    display:flex!important;
    margin-top:20px;
    border:0;
    color:#1b2b15
  }
  .header-whatsapp {
    padding-right:20px
  }
  .menu-toggle {
    display:inline-flex;
    width:40px;
    height:40px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid #ffffff39;
    background:transparent;
    color:var(--green)
  }
  .menu-toggle span {
    width:17px;
    height:1.5px;
    background:currentColor;
    transition:transform .2s
  }
  .menu-open .menu-toggle span:first-child {
    transform:translateY(3.75px) rotate(45deg)
  }
  .menu-open .menu-toggle span:last-child {
    transform:translateY(-3.75px) rotate(-45deg)
  }
  .hero {
    min-height:680px
  }
  .hero__container {
    padding-top:108px
  }
  .hero h1 {
    font-size:clamp(50px,8vw,78px);
    max-width:790px
  }
  .hero__photo {
    background-position:62% 45%
  }

  .difference__grid,.about__grid,.contact__grid {
    gap:45px
  }
  .difference__image {
    min-height:480px
  }

  .about__visual {
    padding-right:20px
  }
  .about__image {
    min-height:475px
  }
  .about__stamp {
    padding:21px
  }
  .contact__form-box {
    padding:30px
  }
  .contact__grid {
    grid-template-columns:1fr 1fr
  }
  .faq__grid {
    gap:30px
  }

}

@media(max-width:650px) {
  html {
    scroll-padding-top:75px
  }
  .container {
    width:calc(100% - 36px)
  }
  .topline {
    font-size:9px
  }
  .topline__inner {
    min-height:29px
  }
  .header-inner {
    height:66px
  }
  
  
  .site-nav {
    top:100%
  }
  .header-whatsapp {
    display:none
  }
  .hero {
    min-height:730px;
    min-height:min(830px,calc(100svh - 95px));
    max-height:none
  }
  .hero__container {
    padding-top:110px;
    padding-bottom:23px
  }
  .hero__photo {
    background-position:59% 48%;
    filter:grayscale(.25) contrast(1.2) brightness(.7)
  }
  .hero__mesh {
    background:linear-gradient(180deg,#0c130fd9 0%,#0c130fba 44%,#0c130f42 66%,#0c130fdb 100%),linear-gradient(90deg,#0c130fbd,transparent 100%)
  }
  .hero__side {
    display:none
  }
  .hero .eyebrow {
    font-size:9px;
    letter-spacing:.16em
  }
  .eyebrow__dash {
    width:19px
  }
  .hero h1 {
    font-size:clamp(44px,11.8vw,68px);
    margin:23px 0 20px;
    max-width:630px;
    letter-spacing:-.08em
  }
  .hero__copy>p {
    max-width:360px;
    font-size:14px;
    line-height:1.7
  }
  .hero__actions {
    align-items:flex-start;
    gap:24px;
    margin-top:27px;
    flex-direction:column
  }
  .hero__actions .btn {
    min-height:56px
  }
  .hero__bottom {
    align-items:flex-end
  }
  .hero__bottom>span:first-child {
    max-width:110px;
    line-height:1.6
  }
  .hero__scroll {
    display:none
  }
  .hero__since strong {
    font-size:30px
  }
  .signature-line__inner {
    justify-content:flex-start;
    gap:28px;
    min-height:56px
  }
  .signature-line span {
    font-size:9px
  }
  .section {
    padding-block:76px
  }
  .section-label {
    font-size:10px;
    margin-bottom:22px
  }
  .display-title {
    font-size:clamp(39px,9.9vw,56px)
  }

  .section-heading {
    align-items:start;
    flex-direction:column;
    gap:20px;
    margin-bottom:34px
  }
  .section-heading>p {
    max-width:370px;
    font-size:14px
  }

  .difference {
    padding:78px 0
  }
  .difference__grid {
    grid-template-columns:1fr;
    gap:45px
  }
  .difference .display-title {
    font-size:clamp(48px,10vw,62px)
  }
  .difference__story>p:not(.section-label) {
    font-size:14px
  }
  .difference__image {
    min-height:0;
    height:480px
  }

  .about__grid {
    grid-template-columns:1fr;
    gap:45px
  }
  .about__visual {
    padding-right:25px
  }
  .about__image {
    height:450px;
    min-height:0
  }
  .about__stamp strong {
    font-size:39px
  }
  .about__copy>p:not(.section-label) {
    font-size:14px
  }

  .contact__grid {
    grid-template-columns:1fr;
    gap:48px
  }
  .contact__copy>p:not(.section-label) {
    margin:25px 0 34px;
    font-size:14px
  }
  .contact__form-box {
    padding:26px 23px
  }
  .faq__grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .faq summary {
    padding:23px 0;
    font-size:14px
  }

  .mobile-cta {
    position:fixed;
    z-index:41;
    bottom:0;
    left:0;
    right:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-height:65px;
    padding:15px 25px;
    background:#a6d56d;
    color:#1b2915;
    font-size:14px;
    font-weight:800;
    box-shadow:0 -15px 45px #0a100a55;
    transform:translateY(120%);
    visibility:hidden;
    transition:transform .3s,visibility .3s
  }
  .mobile-cta.is-visible {
    transform:translateY(0);
    visibility:visible
  }
  .mobile-cta span {
    font-size:22px
  }
}

@media(max-width:390px) {
  .hero h1 {
    font-size:44px
  }
  .hero__container {
    padding-top:78px
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important
  }
  [data-reveal] {
    opacity:1;
    transform:none
  }
}

img.is-broken {
  visibility:hidden
}

/* Blocos compartilhados */
.section-heading>p {font-size:15px;line-height:1.8;color:#63716a;}

/* Identidade e logotipos */
.brand {
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  flex:0 0 auto;
  min-width:0;
}
.brand__logo {
  display:block;
  width:184px;
  height:60px;
  max-width:100%;
  object-fit:contain;
  object-position:left center;
}
.header-inner .brand__logo { height:64px; }

/* Serviços */
.services { padding-block:108px 116px; }
.services .section-heading { margin-bottom:44px; }
.services .section-heading > p { max-width:415px; }
.services-grid {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:20px;
}
.service {
  grid-column:span 2;
  display:flex;
  flex-direction:column;
  min-width:0;
  background:#edf1e9;
  color:#17251b;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.07);
  transition:transform .34s var(--ease),box-shadow .34s var(--ease);
}
.service--feature { grid-column:span 3; }
.service:hover { transform:translateY(-4px); box-shadow:0 25px 50px #0003; }
.service__image {
  position:relative;
  overflow:hidden;
  aspect-ratio:1.4;
  background:#26352a url('assets/images/hero-fallback.svg') center/cover no-repeat;
}
.service--feature .service__image { aspect-ratio:1.78; }
.service__image::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(9,20,12,.44));
  pointer-events:none;
}
.service__image img {
  width:100%;height:100%;object-fit:cover;
  transition:transform .9s var(--ease);
}
.service:hover .service__image img { transform:scale(1.045); }
.service__category {
  position:absolute;
  z-index:2;
  bottom:20px;
  left:24px;
  display:inline-block;
  background:#e3f4d9;
  color:#22351f;
  padding:10px 13px;
  font-size:10px;
  font-weight:800;
  line-height:1.1;
  letter-spacing:.095em;
}
.service__content {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  flex:1;
  min-height:290px;
  padding:28px 27px 26px;
}
.service--feature .service__content { min-height:238px; padding:30px 34px 30px; }
.service h3 {
  max-width:26ch;
  margin:0 0 12px;
  font-family:'Manrope',sans-serif;
  font-size:clamp(24px,2.1vw,30px);
  font-weight:700;
  line-height:1.19;
  letter-spacing:-.055em;
  text-wrap:balance;
}
.service--feature h3 { font-size:clamp(27px,2.35vw,36px); }
.service h3 em { font-family:var(--serif);font-weight:400;letter-spacing:-.025em; }
.service__content p {
  max-width:65ch;
  margin:0;
  color:#647066;
  font-size:13px;
  line-height:1.75;
  margin-bottom:24px;
}
.service__link {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-top:auto;
  padding-top:21px;
  border-top:1px solid #bdc9bb;
  color:#1c3d20;
  font-size:12px;
  font-weight:800;
  transition:color .22s;
}

.service__link span {
  display:grid;
  place-items:center;
  width:32px;height:32px;
  flex:0 0 auto;
  background:#b1d987;
  color:#142515;
  font-size:19px;
  font-weight:400;
  transition:transform .22s var(--ease),background .22s;
}
.service__link:hover { color:#538b36; }
.service__link:hover span { transform:translate(2px,-2px); background:#a0cf70; }
.services__ending {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-top:34px;
  padding-top:30px;
  border-top:1px solid #ffffff30;
}
.services__ending p { max-width:515px; margin:0; color:#b6c3b8; font-size:14px; line-height:1.7; }
.services__ending a { display:inline-flex;align-items:center;justify-content:space-between; gap:30px;flex:0 0 auto; padding:11px 0; border-bottom:1px solid var(--green);font-size:13px;font-weight:700;color:var(--green); }
.services__ending a span { font-size:23px;font-weight:400; }

/* Avaliações verificáveis */
.reviews__widget {
  min-height:300px;
  background:#16231900;
  padding:18px 12px;
  color:#162319;
}

/* Rodapé */
.footer { background:#0b100d;color:#f4f7f1;padding:76px 0 25px; }
.footer__main {
  display:grid;
  grid-template-columns:minmax(210px,1.45fr) minmax(235px,1.4fr) minmax(120px,.7fr) minmax(185px,1fr);
  gap:clamp(20px,3vw,55px);
  padding-bottom:70px;
}
.footer .brand__logo { width:200px;height:74px; }
.footer__identity>p { max-width:270px; margin:25px 0 18px; color:#9aaa9a;line-height:1.8;font-size:13px; }
.footer__address { display:inline-block; font-size:12px;line-height:1.8;color:#c6d6c2; }
.footer__address span {color:var(--green);}
.footer__column { display:flex;flex-direction:column;align-items:flex-start;gap:16px; }
.footer__column h2 { margin:10px 0 11px; font-size:10px;color:#a8c39e;font-weight:800;letter-spacing:.13em;text-transform:uppercase; }
.footer__column a { font-size:13px;line-height:1.55; color:#dae5d8;transition:color .2s; }
.footer__column a:hover,.footer__address:hover { color:var(--green); }
.footer__base {
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;
  gap:22px;
  min-height:67px;
  padding-top:22px;
  border-top:1px solid #ffffff21;
  color:#91a391;
  font-size:11px;
}
.footer__back { color:#d8e6d4; }
.footer__credit { display:inline-flex; align-items:center;flex-wrap:wrap;gap:8px; color:#bbc9b9;white-space:normal; }
.footer__credit img { display:block; width:93px; height:33px; object-fit:contain; }
.footer__credit:hover,.footer__back:hover { color:var(--green); }

@media(max-width:1150px) {
  .footer__main { grid-template-columns:1.3fr 1.5fr 1fr; gap:40px; }
  .footer__identity { grid-column:1 / -1; }
  .footer__identity>p { max-width:480px; }
}
@media(max-width:900px) {
  .header-inner .brand__logo { width:159px;height:55px; }
  .service--feature { grid-column:span 3; }
  .service { grid-column:span 3; }
  .services-grid .service:last-child { grid-column:span 6; }
  .services-grid .service:last-child { display:grid; grid-template-columns:1fr 1fr; }
  .services-grid .service:last-child .service__image {height:100%;aspect-ratio:auto;}
  .services-grid .service:last-child .service__content {min-height:0;}
  .footer__main { grid-template-columns:1fr 1fr; }
  .footer__identity { grid-column:1 / -1; }
}
@media(max-width:650px) {
  .services { padding-block:78px 82px; }
  .services .section-heading { margin-bottom:29px; }
  .services-grid { grid-template-columns:1fr;gap:14px; }
  .service,.service--feature,.services-grid .service:last-child { grid-column:auto;display:flex; }
  .service__image,.service--feature .service__image {aspect-ratio:1.5;}
  .services-grid .service:last-child .service__image { height:auto;aspect-ratio:1.5; }
  .service__content,.service--feature .service__content {min-height:0;padding:24px 24px 25px;}
  .service h3,.service--feature h3 {font-size:clamp(26px,7vw,32px);}
  .service__content p { font-size:13px; }
  .service__category { left:18px;bottom:17px;font-size:9px; }
  
  .services__ending {display:block;padding-top:26px;margin-top:30px;}
  .services__ending a {margin-top:14px;}
  .reviews__widget { min-height:280px; padding:12px 4px; }
  .footer {padding:63px 0 107px;}
  .footer__main {grid-template-columns:1fr 1fr;gap:43px 24px;padding-bottom:46px;}
  .footer__identity {grid-column:1 / -1;}
  .footer__column--services {grid-column:1 / -1;}
  .footer__base {align-items:flex-start;flex-direction:column;gap:21px;}
  .footer__credit {margin-top:4px;}
}
@media(max-width:390px) {
  .header-inner .brand__logo { width:137px; }
  .footer__main {grid-template-columns:1fr;}
  .footer__identity,.footer__column--services {grid-column:auto;}
}


/* FAQ — Texto introdutório */

.faq__description {
  max-width: 540px;
  margin-top: 32px;
}

.faq__description-title {
  margin: 0 0 18px;
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.025em;
  color: #58665c;
}

.faq__description-text {
  margin: 0 0 16px;
  color: #58665c;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.85;
}

.faq__description-text:last-child {
  margin-bottom: 0;
}

/* FAQ — Respostas */

.faq__list details p + p {
  margin-top: 14px;
}

.faq__list details p strong {
  color: #ffffff;
  font-weight: 600;
}

/* FAQ — Responsivo */

@media (max-width: 768px) {
  .faq__description {
    max-width: 100%;
    margin-top: 24px;
  }

  .faq__description-title {
    font-size: 1.2rem;
    margin-bottom: 14px;
  }

  .faq__description-text {
    font-size: 0.9rem;
    line-height: 1.75;
    margin-bottom: 14px;
  }

  .faq__list {
    margin-top: 0px;
  }
}


/* PPF SHOWCASE */

.ppf-showcase {
  --ppf-accent: var(--accent, #a0d48e);
  position: relative;
  padding: clamp(72px, 9vw, 130px) 0;
  background: #0b0e0d;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

.ppf-showcase span {
  color: var(--green)
}

.ppf-showcase__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(36px, 6vw, 90px);
}

.ppf-showcase__content {
  min-width: 0;
}

.ppf-showcase__title {
  margin: 16px 0 28px;
  line-height: 1.05;
  color: #eff3ed;
}

.ppf-showcase__description {
  max-width: 490px;
  margin: 0 0 18px;
  color: rgba(255, 255, 255, 0.64);
  font-size: 0.96rem;
  line-height: 1.85;
}

.ppf-showcase__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 52px;
  margin-top: 20px;
  padding: 0 22px;
  border: 1px solid rgba(160, 212, 142, 0.45);
  border-radius: 4px;
  background: transparent;
  color: #fff;
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    transform 0.3s ease;
}

.ppf-showcase__cta span {
  color: var(--ppf-accent);
  font-size: 1.3rem;
  transition: transform 0.3s ease;
}

.ppf-showcase__cta:hover {
  background: rgba(160, 212, 142, 0.09);
  border-color: var(--ppf-accent);
  transform: translateY(-2px);
}

.ppf-showcase__cta:hover span {
  transform: translate(3px, -3px);
}

/* VIDEO */

.ppf-showcase__media {
  position: relative;
  min-width: 0;
}

.ppf-showcase__video-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 8px;
  background: #050606;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 24px 65px rgba(0, 0, 0, 0.3);
}

.ppf-showcase__video-wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 85px;
  height: 2px;
  background: var(--ppf-accent);
  z-index: 2;
  pointer-events: none;
}

.ppf-showcase__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #050606;
}

.ppf-showcase__caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 15px;
  color: rgba(255, 255, 255, 0.44);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

/* RESPONSIVO */

@media (max-width: 991px) {
  .ppf-showcase__grid {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .ppf-showcase__description {
    max-width: 680px;
  }
}

@media (max-width: 575px) {
  .ppf-showcase {
    padding: 64px 0;
  }

  .ppf-showcase__title {
    margin-bottom: 22px;
  }

  .ppf-showcase__description {
    font-size: 0.91rem;
    line-height: 1.75;
  }

  .ppf-showcase__cta {
    margin-top: 14px;
    width: 100%;
    gap: 16px;
  }

  .ppf-showcase__video-wrap {
    border-radius: 5px;
  }

  .ppf-showcase__caption {
    font-size: 0.59rem;
    letter-spacing: 0.08em;
  }
}


/* PARCEIROS */

.partners {
  --partners-accent: var(--accent, #a8d88b);

  position: relative;
  padding: clamp(80px, 9vw, 130px) 0 65px;
  background: #0b0e0d;
  overflow: hidden;
  isolation: isolate;
}

.partners::before {
  content: "";
  position: absolute;
  top: -320px;
  right: -250px;
  width: 700px;
  height: 700px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(117, 174, 104, 0.065) 0%,
    transparent 65%
  );
  pointer-events: none;
  z-index: -1;
}

.partners__header {
  max-width: 960px;
  margin: 0 auto 65px;
  text-align: center;
}

.partners__title {
  margin: 18px 0 26px;
  line-height: 1.08;
}

.partners__description {
  max-width: 850px;
  margin: 0 auto;
  color: rgba(255, 255, 255, 0.65);
  font-size: 1rem;
  line-height: 1.9;
  text-wrap: pretty;
}

.partners__description strong {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
}

/* CARROSSEL */

.partners__carousel {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
}

.partners__track {
  display: flex;
  gap: 18px;
  flex: 1;
  min-width: 0;
  padding: 12px 2px 20px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.partners__track::-webkit-scrollbar {
  display: none;
}

.partners__track:focus-visible {
  outline: 2px solid var(--partners-accent);
  outline-offset: 4px;
}

.partners__item {
  position: relative;
  flex: 0 0 calc((100% - 54px) / 4);
  height: 155px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 26px;
  background: var(--muted);
  border: 1px solid rgba(255, 255, 255, 0.075);
  border-radius: 6px;
  scroll-snap-align: start;
  transition:
    border-color 0.3s ease,
    background 0.3s ease,
    transform 0.3s ease;
}

.partners__item:hover {
  background: #151b17;
  border-color: rgba(168, 216, 139, 0.3);
  transform: translateY(-4px);
}

.partners__item img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 220px;
  max-height: 120px;
  object-fit: contain;
  filter: brightness(0.92);
  transition:
    filter 0.3s ease,
    transform 0.3s ease;
}

.partners__item:hover img {
  filter: brightness(1.1);
  transform: scale(1.04);
}

/* NAVEGAÇÃO */

.partners__arrow {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: rgba(255, 255, 255, 0.85);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  cursor: pointer;
  transition:
    color 0.25s ease,
    background 0.25s ease,
    border-color 0.25s ease;
}

.partners__arrow svg {
  width: 19px;
  height: 19px;
}

.partners__arrow:hover {
  color: #0b0e0d;
  background: var(--partners-accent);
  border-color: var(--partners-accent);
}

.partners__arrow:focus-visible {
  outline: 2px solid var(--partners-accent);
  outline-offset: 4px;
}

/* RODAPÉ DA SECTION */

.partners__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 58px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.partners__footer span {
  color: rgba(255, 255, 255, 0.35);
  font-size: 0.67rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

/* RESPONSIVO */

@media (max-width: 991px) {
  .partners__item {
    flex-basis: calc((100% - 36px) / 3);
    height: 140px;
    padding: 22px;
  }

  .partners__header {
    margin-bottom: 45px;
  }
}

@media (max-width: 767px) {
  .partners {
    padding: 70px 0 45px;
  }

  .partners__header {
    margin-bottom: 35px;
  }

  .partners__title {
    margin: 14px 0 20px;
  }

  .partners__description {
    font-size: 0.91rem;
    line-height: 1.75;
  }

  .partners__carousel {
    gap: 10px;
  }

  .partners__track {
    gap: 12px;
  }

  .partners__item {
    flex-basis: calc((100% - 12px) / 2);
    height: 120px;
    padding: 16px;
  }

  .partners__item img {
    max-height: 78px;
  }

  .partners__arrow {
    flex-basis: 34px;
    width: 34px;
    height: 34px;
  }

  .partners__arrow svg {
    width: 16px;
    height: 16px;
  }

  .partners__footer {
    margin-top: 32px;
  }

  .partners__footer span:last-child {
    max-width: 170px;
    text-align: right;
    line-height: 1.6;
  }
}

@media (prefers-reduced-motion: reduce) {
  .partners__track {
    scroll-behavior: auto;
  }

  .partners__item,
  .partners__item img,
  .partners__arrow {
    transition: none;
  }
}


/* MENU MOBILE */

.menu-toggle,
.mobile-menu-backdrop {
  display: none;
}

@media (max-width: 991px) {

  body.okay-menu-open {
    overflow: hidden;
  }

  .site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    isolation: isolate;
  }

  .header-inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .brand {
    position: relative;
    z-index: 3;
  }

  .brand__logo {
    width: auto;
    max-width: 150px;
    height: auto;
    max-height: 58px;
    object-fit: contain;
  }

  .header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .header-whatsapp {
    display: none;
  }

  /* BOTÃO HAMBURGER */

  .menu-toggle {
    position: relative;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 46px;
    height: 46px;
    padding: 0;
    flex-shrink: 0;
    background: #161b18;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    cursor: pointer;
    transition:
      background 0.3s ease,
      border-color 0.3s ease;
  }

  .menu-toggle span {
    display: block;
    width: 20px;
    height: 2px;
    background: #a4d68b;
    border-radius: 2px;
    transform-origin: center;
    transition:
      transform 0.3s ease,
      opacity 0.2s ease;
  }

  .menu-toggle:focus-visible {
    outline: 2px solid #a4d68b;
    outline-offset: 4px;
  }

  /* ANIMAÇÃO PARA X */

  .site-header.is-menu-open
  .menu-toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .site-header.is-menu-open
  .menu-toggle span:nth-child(2) {
    opacity: 0;
  }

  .site-header.is-menu-open
  .menu-toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .site-header.is-menu-open .menu-toggle {
    background: #1c2820;
    border-color: rgba(164, 214, 139, 0.45);
  }

  /* PAINEL DO MENU */

  .site-nav {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    z-index: 3;

    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;

    padding: 14px;
    max-height: calc(100dvh - 100px);
    overflow-y: auto;

    background: #101512;
    border: 1px solid rgba(164, 214, 139, 0.16);
    border-radius: 12px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-12px);

    transition:
      opacity 0.3s ease,
      visibility 0.3s ease,
      transform 0.3s ease;
  }

  .site-header.is-menu-open .site-nav {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  /* LINKS */

  .site-nav > a:not(.btn) {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 54px;
    margin: 0;
    padding: 14px 16px;

    color: rgba(255, 255, 255, 0.88);
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 0;

    font-size: 0.95rem;
    font-weight: 500;
    text-decoration: none;
    text-align: left;

    transition:
      color 0.25s ease,
      background 0.25s ease;
  }

  .site-nav > a:not(.btn):hover,
  .site-nav > a:not(.btn):focus-visible {
    color: #a4d68b;
    background: rgba(164, 214, 139, 0.06);
  }

  /* CTA WHATSAPP */

  .site-nav .btn--mobile-menu {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    min-height: 54px;
    margin-top: 16px;
    padding: 0 20px;
    text-align: left;
    text-decoration: none;
  }

  .site-nav .btn--mobile-menu span {
    font-size: 1.25rem;
  }

  /* FUNDO ESCURECIDO */

  .mobile-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100dvh;

    padding: 0;
    background: rgba(0, 0, 0, 0.7);
    border: none;
    backdrop-filter: blur(4px);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
      opacity 0.3s ease,
      visibility 0.3s ease;
  }

  .site-header.is-menu-open .mobile-menu-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

@media (max-width: 575px) {
  .site-nav {
    left: 0;
    right: 0;
    padding: 12px;
  }

  .site-nav > a:not(.btn) {
    min-height: 52px;
    font-size: 0.93rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-toggle,
  .menu-toggle span,
  .site-nav,
  .mobile-menu-backdrop {
    transition: none;
  }
}


/* CORREÇÃO MENU MOBILE */

@media (max-width: 991px) {
  .site-header .header-actions .menu-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
  }

  .site-header .site-nav .btn--mobile-menu {
    display: flex !important;
  }

  .site-header .site-nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  body.menu-open .site-header .mobile-menu-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  body.menu-open .site-header .menu-toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  body.menu-open .site-header .menu-toggle span:nth-child(2) {
    opacity: 0;
  }

  body.menu-open .site-header .menu-toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  body.menu-open {
    overflow: hidden;
  }
}


/* NOSSOS TRABALHOS */

.oc-works {
  --works-accent: #a4d68b;
  --works-background: #0c100d;

  position: relative;
  padding: clamp(80px, 9vw, 130px) 0;
  background: var(--works-background);
  color: #fff;
  overflow: hidden;
}

.oc-works__header {
  max-width: 780px;
  margin-bottom: 66px;
}

.oc-works__header .display-title {
  margin: 18px 0 24px;
  line-height: 1.05;
}

.oc-works__description {
  max-width: 620px;
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 1rem;
  line-height: 1.85;
}

/* GRUPOS */

.oc-works__group {
  margin-bottom: 82px;
}

.oc-works__group-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.oc-works__eyebrow {
  margin: 0 0 11px;
  color: var(--works-accent);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.15em;
}

.oc-works__group-title {
  margin: 0;
  color: #fff;
  font-size: clamp(1.6rem, 2.5vw, 2.35rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.035em;
}

.oc-works__group-description {
  margin: 10px 0 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.9rem;
  line-height: 1.6;
}

/* NAVEGAÇÃO */

.oc-works__navigation {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.oc-works__count {
  margin-right: 14px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.78rem;
  letter-spacing: 0.02em;
}

.oc-works__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: #fff;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  cursor: pointer;
  transition:
    color 0.25s ease,
    background 0.25s ease,
    border-color 0.25s ease;
}

.oc-works__arrow span {
  font-size: 1.3rem;
  line-height: 1;
}

.oc-works__arrow:hover:not(:disabled) {
  color: #101510;
  background: var(--works-accent);
  border-color: var(--works-accent);
}

.oc-works__arrow:disabled {
  opacity: 0.25;
  cursor: default;
}

.oc-works__arrow:focus-visible,
.oc-works__track:focus-visible,
.oc-works__photo:focus-visible,
.oc-works__play:focus-visible {
  outline: 2px solid var(--works-accent);
  outline-offset: 4px;
}

/* CARROSSÉIS */

.oc-works__track {
  display: grid;
  grid-auto-flow: column;
  gap: 18px;
  width: 100%;
  padding: 4px 2px 18px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.oc-works__track::-webkit-scrollbar {
  display: none;
}

.oc-works__track--photos {
  grid-auto-columns: calc((100% - 36px) / 3);
}

.oc-works__track--videos {
  grid-auto-columns: calc((100% - 54px) / 4);
}

/* FOTOGRAFIAS */

.oc-works__photo {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  background: #171e19;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 7px;
  scroll-snap-align: start;
  cursor: zoom-in;
  text-align: left;
}

.oc-works__photo::after {
  content: "";
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(
    180deg,
    transparent,
    rgba(0, 0, 0, 0.55)
  );
  pointer-events: none;
}

.oc-works__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.oc-works__photo:hover img {
  transform: scale(1.055);
}

.oc-works__photo-label {
  position: absolute;
  left: 20px;
  bottom: 19px;
  z-index: 2;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
}

.oc-works__photo-icon {
  position: absolute;
  right: 18px;
  bottom: 18px;
  z-index: 2;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1;
}

.oc-works__missing {
  display: none;
  align-items: center;
  justify-content: center;
  position: absolute;
  inset: 0;
  padding: 20px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.85rem;
  text-align: center;
}

.oc-works__photo.is-missing img {
  display: none;
}

.oc-works__photo.is-missing .oc-works__missing {
  display: flex;
}

/* VÍDEOS */

.oc-works__video-card {
  position: relative;
  min-width: 0;
  aspect-ratio: 9 / 14;
  overflow: hidden;
  background: radial-gradient(
    circle at 50% 38%,
    #263129,
    #0b0f0c 76%
  );
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 7px;
  scroll-snap-align: start;
}

.oc-works__video-card video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: transparent;
}

.oc-works__video-card:not(.is-playing) video {
  pointer-events: none;
}

.oc-works__play {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px;
  width: 100%;
  padding: 22px;
  color: #fff;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.02) 25%,
    rgba(0, 0, 0, 0.45) 100%
  );
  border: 0;
  cursor: pointer;
}

.oc-works__play-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  padding-left: 4px;
  color: #111811;
  background: var(--works-accent);
  border-radius: 50%;
  font-size: 1.4rem;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.oc-works__play:hover .oc-works__play-icon {
  transform: scale(1.09);
  box-shadow: 0 0 36px rgba(164, 214, 139, 0.25);
}

.oc-works__play-label {
  font-size: 0.73rem;
  font-weight: 600;
  letter-spacing: 0.13em;
}

.oc-works__video-number {
  position: absolute;
  left: 18px;
  bottom: 20px;
  z-index: 1;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  pointer-events: none;
}

.oc-works__video-card.is-playing .oc-works__play,
.oc-works__video-card.is-playing .oc-works__video-number {
  display: none;
}

.oc-works__video-error {
  display: none;
  position: absolute;
  inset: 0;
  align-items: center;
  justify-content: center;
  padding: 20px;
  color: rgba(255, 255, 255, 0.7);
  background: #111711;
  font-size: 0.85rem;
  text-align: center;
}

.oc-works__video-card.is-missing .oc-works__play,
.oc-works__video-card.is-missing .oc-works__video-number {
  display: none;
}

.oc-works__video-card.is-missing .oc-works__video-error {
  display: flex;
}

/* RODAPÉ DA SEÇÃO */

.oc-works__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.oc-works__footer p {
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  font-weight: 500;
  letter-spacing: -0.025em;
}

.oc-works__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  min-height: 52px;
  padding: 0 23px;
  color: #111811;
  background: var(--works-accent);
  border-radius: 4px;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
  transition:
    background 0.25s ease,
    transform 0.25s ease;
}

.oc-works__cta:hover {
  background: #bdeba5;
  transform: translateY(-2px);
}

.oc-works__cta span {
  font-size: 1.25rem;
}

/* LIGHTBOX */

.oc-works__lightbox {
  position: fixed;
  width: min(1100px, calc(100% - 28px));
  max-width: 1100px;
  max-height: 94dvh;
  margin: auto;
  padding: 16px;
  overflow: hidden;
  color: #fff;
  background: #0a0d0b;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
}

.oc-works__lightbox::backdrop {
  background: rgba(0, 0, 0, 0.92);
  backdrop-filter: blur(8px);
}

.oc-works__lightbox-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 4px 14px;
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
}

.oc-works__lightbox-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  color: #fff;
  background: #1d251f;
  border: 0;
  border-radius: 50%;
  font-size: 1.5rem;
  cursor: pointer;
}

.oc-works__lightbox-content {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) 46px;
  align-items: center;
  gap: 12px;
}

.oc-works__lightbox-content img {
  display: block;
  width: 100%;
  max-height: calc(94dvh - 100px);
  object-fit: contain;
}

.oc-works__lightbox-arrow {
  width: 44px;
  height: 44px;
  padding: 0;
  color: #fff;
  background: #1c241e;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 50%;
  font-size: 1.25rem;
  cursor: pointer;
}

.oc-works__lightbox-arrow:hover,
.oc-works__lightbox-close:hover {
  color: #111811;
  background: var(--works-accent);
}

/* RESPONSIVO */

@media (max-width: 991px) {
  .oc-works__track--photos {
    grid-auto-columns: calc((100% - 18px) / 2);
  }

  .oc-works__track--videos {
    grid-auto-columns: calc((100% - 36px) / 3);
  }
}

@media (max-width: 767px) {
  .oc-works {
    padding: 72px 0;
  }

  .oc-works__header {
    margin-bottom: 48px;
  }

  .oc-works__description {
    font-size: 0.93rem;
  }

  .oc-works__group {
    margin-bottom: 64px;
  }

  .oc-works__group-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
  }

  .oc-works__navigation {
    width: 100%;
    justify-content: flex-end;
  }

  .oc-works__count {
    margin-right: auto;
  }

  .oc-works__track {
    gap: 12px;
  }

  .oc-works__track--photos {
    grid-auto-columns: 82%;
  }

  .oc-works__track--videos {
    grid-auto-columns: 72%;
  }

  .oc-works__photo {
    aspect-ratio: 4 / 4.5;
  }

  .oc-works__arrow {
    width: 40px;
    height: 40px;
  }

  .oc-works__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 22px;
  }

  .oc-works__cta {
    justify-content: space-between;
    width: 100%;
  }

  .oc-works__lightbox {
    padding: 10px;
  }

  .oc-works__lightbox-content {
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    gap: 4px;
  }

  .oc-works__lightbox-arrow {
    width: 32px;
    height: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .oc-works__track {
    scroll-behavior: auto;
  }

  .oc-works__photo img,
  .oc-works__play-icon,
  .oc-works__cta,
  .oc-works__arrow {
    transition: none;
  }
}


/* INSTAGRAM */

.instagram-section {
  position: relative;
  padding: clamp(80px, 9vw, 130px) 0 70px;
  background: #0b0e0d;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  overflow: hidden;
  isolation: isolate;
}

.instagram-section::before {
  content: "";
  position: absolute;
  top: -260px;
  left: -200px;
  width: 650px;
  height: 650px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(164, 214, 139, 0.055),
    transparent 68%
  );
  pointer-events: none;
  z-index: -1;
}

/* CABEÇALHO */

.instagram-section__header {
  max-width: 780px;
  margin: 0 auto 52px;
  text-align: center;
}

.instagram-section__header .display-title {
  margin: 18px 0 24px;
  line-height: 1.06;
}

.instagram-section__description {
  max-width: 600px;
  margin: 0 auto;
  color: rgba(255, 255, 255, 0.64);
  font-size: 1rem;
  line-height: 1.85;
  text-wrap: pretty;
}

/* FEED ELFSIGHT */

.instagram-section__feed {
  position: relative;
  width: 100%;
  min-width: 0;
  margin: 0 auto;
}

.instagram-section__feed
.elfsight-app-45fa9dbf-d8e0-4cc0-8676-65974dd1a095 {
  width: 100%;
  min-width: 0;
}

.instagram-section__feed iframe {
  max-width: 100%;
  border: 0;
}

/* RODAPÉ DA SECTION */

.instagram-section__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 55px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.instagram-section__footer span {
  color: rgba(255, 255, 255, 0.38);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

/* RESPONSIVO */

@media (max-width: 991px) {
  .instagram-section {
    padding: 85px 0 60px;
  }

  .instagram-section__header {
    margin-bottom: 42px;
  }
}

@media (max-width: 767px) {
  .instagram-section {
    padding: 70px 0 45px;
  }

  .instagram-section__header {
    margin-bottom: 32px;
  }

  .instagram-section__header .display-title {
    margin: 14px 0 20px;
  }

  .instagram-section__description {
    font-size: 0.92rem;
    line-height: 1.75;
  }

  .instagram-section__footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-top: 35px;
    padding-top: 18px;
  }

  .instagram-section__footer span {
    font-size: 0.62rem;
    letter-spacing: 0.1em;
  }
}
