@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');
  
:root {
  --wine:#4b1717;
  --wine2:#6b2521;
  --terracotta:#a4553f;
  --gold:#bd9a62;
  --cream:#f7f2e9;
  --paper:#fffdfa;
  --sage:#6d7963;
  --ink:#2c2926;
  --muted:#756e67;
  --line:#e8dfd3;
  --shadow:0 18px 50px rgba(60,38,28,.10)
}


* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  font-family:'DM Sans',sans-serif;
  color:var(--ink);
  background:var(--paper)
}

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

.container {
  width:min(1180px,calc(100% - 40px));
  margin:auto
}


.top {
  background:var(--wine);
  color:#f8eee8;
  font-size:13px
}

.top .container {
  height:38px;
  display:flex;
  align-items:center;
  justify-content:space-between
}

.top span+span {
  margin-left:24px
}

.top a {
  opacity:.9
}


.header {
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,253,250,.94);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(75,23,23,.08)
}

.nav {
  height:108px;
  display:flex;
  align-items:center
}

.logo-wrap {
  width:190px;
  height:132px;
  align-self:flex-start;
  background:#fff;
  border-radius:0 0 22px 22px;
  box-shadow:0 12px 35px rgba(57,31,23,.13);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 18px;
  position:relative;
  z-index:2
}

.logo-wrap img {
  max-width:100%;
  max-height:112px;
  object-fit:contain
}

.menu {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:6px
}

.menu a {
  padding:12px 13px;
  font-size:14px;
  font-weight:600;
  color:#4e4843;
  border-radius:10px
}

.menu a:hover,.menu a.active {
  color:var(--wine);
  background:#f6eee8
}

.menu .portal {
  background:var(--wine);
  color:white;
  padding:13px 17px
}

.menu .portal:hover {
  background:var(--wine2);
  color:#fff
}

.hamb {
  display:none;
  margin-left:auto;
  border:0;
  background:transparent;
  font-size:24px;
  color:var(--wine)
}


.hero {
  min-height:650px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(90deg,#f7f0e7 0 54%,#d8c4ac 54%)
}

.hero:after {
  content:'';
  position:absolute;
  right:-130px;
  top:-160px;
  width:500px;
  height:500px;
  border-radius:50%;
  border:1px solid rgba(75,23,23,.14)
}

.hero-grid {
  min-height:650px;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  align-items:center
}

.hero-copy {
  padding:80px 70px 70px 0;
  position:relative;
  z-index:2
}

.eyebrow {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:700;
  color:var(--terracotta);
  display:flex;
  align-items:center;
  gap:10px
}

.eyebrow:before {
  content:'';
  width:32px;
  height:2px;
  background:var(--gold)
}

h1,h2,h3 {
  font-family:'Playfair Display',serif
}

.hero h1 {
  font-size:clamp(48px,5vw,72px);
  line-height:1.03;
  color:var(--wine);
  margin:18px 0 22px;
  letter-spacing:-.025em
}

.hero p {
  font-size:18px;
  line-height:1.75;
  color:#665f58;
  max-width:610px
}

.actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:30px
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:14px 20px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
  border:1px solid transparent
}

.btn-primary {
  background:var(--wine);
  color:#fff
}

.btn-primary:hover {
  background:var(--wine2)
}

.btn-light {
  background:#fff;
  border-color:#ddcfc2;
  color:var(--wine)
}


.hero-art {
  height:650px;
  position:relative;
  background:linear-gradient(145deg,#cdb293,#9e765b);
  overflow:hidden
}

.hero-art:before {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(75,23,23,.04),rgba(75,23,23,.26)),radial-gradient(circle at 70% 22%,rgba(255,245,218,.62),transparent 30%)
}

.hero-art .quote {
  position:absolute;
  left:42px;
  bottom:42px;
  width:min(410px,calc(100% - 84px));
  background:rgba(255,253,250,.94);
  backdrop-filter:blur(10px);
  padding:24px 26px;
  border-radius:20px;
  box-shadow:var(--shadow)
}

.quote b {
  font-family:'Playfair Display',serif;
  color:var(--wine);
  font-size:22px
}

.quote p {
  font-size:13px;
  line-height:1.55;
  margin:7px 0 0;
  color:var(--muted)
}


section {
  padding:90px 0
}

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

.section-head h2,.split h2,.page-hero h1 {
  font-size:42px;
  color:var(--wine);
  margin:8px 0 0;
  line-height:1.12
}

.section-head p {
  max-width:530px;
  color:var(--muted);
  line-height:1.7
}

.intro {
  background:#fff
}

.split {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  align-items:center
}

.photo-panel {
  height:480px;
  border-radius:30px 90px 30px 30px;
  background:linear-gradient(145deg,#d9c5ad,#b88e72);
  position:relative;
  overflow:hidden
}

.photo-panel:after {
  content:'ACOLHIMENTO';
  position:absolute;
  right:-32px;
  bottom:48px;
  color:rgba(255,255,255,.32);
  font-size:54px;
  font-weight:700;
  transform:rotate(-90deg)
}

.facts {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:28px
}

.fact {
  border-top:2px solid var(--gold);
  padding-top:14px
}

.fact b {
  font-family:'Playfair Display',serif;
  font-size:24px;
  color:var(--wine);
  display:block
}

.fact span {
  font-size:12px;
  color:var(--muted)
}


.activities {
  background:var(--cream)
}

.cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px
}

.card {
  background:#fff;
  border-radius:22px;
  overflow:hidden;
  border:1px solid #eadfd4;
  transition:.25s
}

.card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow)
}

.card-img {
  height:190px;
  background:linear-gradient(135deg,#d5bda6,#966d59);
  position:relative
}

.card:nth-child(2) .card-img {
  background:linear-gradient(135deg,#b8c1aa,#718069)
}

.card:nth-child(3) .card-img {
  background:linear-gradient(135deg,#d7c39a,#a66b4e)
}

.card:nth-child(4) .card-img {
  background:linear-gradient(135deg,#c7b8a8,#856f61)
}

.card:nth-child(5) .card-img {
  background:linear-gradient(135deg,#c7cdbd,#7a876d)
}

.card:nth-child(6) .card-img {
  background:linear-gradient(135deg,#d8b9ad,#9c5f55)
}

.card-body {
  padding:22px
}

.card h3 {
  font-size:22px;
  color:var(--wine);
  margin:0 0 8px
}

.card p {
  font-size:14px;
  line-height:1.65;
  color:var(--muted);
  margin:0 0 16px
}

.more {
  font-size:13px;
  font-weight:700;
  color:var(--terracotta)
}


.transparency-band {
  padding:0;
  background:#fff
}

.trans-box {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-radius:32px;
  overflow:hidden;
  background:var(--wine);
  color:#fff
}

.trans-copy {
  padding:58px
}

.trans-copy .eyebrow {
  color:#e3bf88
}

.trans-copy h2 {
  font-size:42px;
  margin:12px 0 16px;
  color:#fff
}

.trans-copy p {
  color:#eaded8;
  line-height:1.7
}

.trans-links {
  background:#f1e4d6;
  padding:36px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px
}

.trans-link {
  background:#fff;
  border-radius:16px;
  padding:18px;
  color:var(--wine);
  font-size:13px;
  font-weight:700;
  display:flex;
  align-items:center;
  gap:12px
}

.trans-link i {
  color:var(--terracotta);
  font-size:18px
}


.contact {
  background:#fff
}

.contact-grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:24px
}

.contact-panel {
  background:var(--cream);
  border-radius:26px;
  padding:34px
}

.contact-item {
  display:flex;
  gap:15px;
  padding:16px 0;
  border-bottom:1px solid #ded1c4
}

.contact-item:last-child {
  border:0
}

.icon {
  width:44px;
  height:44px;
  border-radius:14px;
  background:#fff;
  color:var(--wine);
  display:grid;
  place-items:center;
  flex:0 0 auto
}

.contact-item b {
  display:block;
  color:var(--wine);
  margin-bottom:3px
}

.contact-item span {
  font-size:14px;
  color:var(--muted)
}

.map {
  min-height:390px;
  border-radius:26px;
  background:linear-gradient(45deg,#efe7dc 25%,transparent 25%),linear-gradient(-45deg,#efe7dc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#efe7dc 75%),linear-gradient(-45deg,transparent 75%,#efe7dc 75%);
  background-size:36px 36px;
  background-position:0 0,0 18px,18px -18px,-18px 0;
  display:grid;
  place-items:center;
  border:1px solid var(--line)
}

.pin {
  width:72px;
  height:72px;
  border-radius:50%;
  background:var(--wine);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:25px;
  box-shadow:var(--shadow)
}


.page-hero {
  padding:66px 0 58px;
  background:linear-gradient(115deg,#f7efe5,#fff 70%);
  border-bottom:1px solid var(--line)
}

.page-hero p {
  max-width:720px;
  color:var(--muted);
  line-height:1.7
}

.crumb {
  font-size:12px;
  color:var(--terracotta);
  font-weight:700
}

.content {
  padding:60px 0 90px
}

.text-block {
  max-width:850px
}

.text-block p {
  line-height:1.8;
  color:var(--muted)
}


.filter {
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:20px;
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr auto;
  gap:10px;
  box-shadow:0 10px 35px rgba(60,38,28,.06)
}

input,select,textarea {
  width:100%;
  min-height:48px;
  border:1px solid #dfd4c8;
  border-radius:12px;
  background:#fff;
  padding:0 14px;
  font:inherit;
  color:var(--ink)
}

textarea {
  padding-top:14px;
  min-height:130px
}

.categories {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-top:28px
}

.cat {
  background:#fff;
  border:1px solid var(--line);
  border-radius:17px;
  padding:18px;
  min-height:130px
}

.cat i {
  color:var(--terracotta);
  font-size:20px
}

.cat b {
  display:block;
  color:var(--wine);
  margin:12px 0 5px;
  font-size:14px
}

.cat span {
  font-size:12px;
  color:var(--muted)
}

.docs {
  margin-top:34px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden
}

.docs-head {
  padding:22px 24px;
  background:#faf6f0;
  border-bottom:1px solid var(--line)
}

.doc {
  display:grid;
  grid-template-columns:2fr 1fr .7fr .8fr auto;
  align-items:center;
  gap:15px;
  padding:18px 24px;
  border-bottom:1px solid var(--line);
  font-size:13px
}

.doc:last-child {
  border:0
}

.doc-title {
  display:flex;
  align-items:center;
  gap:12px
}

.pdf {
  width:38px;
  height:38px;
  border-radius:10px;
  background:#f7e8e4;
  color:var(--terracotta);
  display:grid;
  place-items:center
}

.doc small {
  display:block;
  color:var(--muted);
  margin-top:3px
}

.view {
  width:38px;
  height:38px;
  border-radius:10px;
  border:1px solid var(--line);
  display:grid;
  place-items:center;
  color:var(--wine)
}


.detail-grid {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:45px
}

.detail-photo {
  height:440px;
  border-radius:26px;
  background:linear-gradient(135deg,#d2bba6,#8e6957)
}

.info-box {
  background:var(--cream);
  border-radius:22px;
  padding:26px
}

.info-box div {
  padding:14px 0;
  border-bottom:1px solid #ddd0c4
}

.info-box div:last-child {
  border:0
}

.info-box b {
  display:block;
  color:var(--wine);
  font-size:13px
}

.info-box span {
  font-size:14px;
  color:var(--muted)
}


.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px
}

.form-grid .full {
  grid-column:1/-1
}


.footer {
  background:#271b18;
  color:#d9cbc3;
  padding:55px 0 24px;
  margin-top:0
}

.footer-grid {
  display:grid;
  grid-template-columns:1.5fr .7fr .7fr 1fr;
  gap:45px
}

.footer-logo {
  background:#fff;
  border-radius:18px;
  padding:12px;
  width:150px;
  margin-bottom:16px
}

.footer-logo img {
  display:block;
  width:100%
}

.footer h4 {
  font-family:'DM Sans';
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#fff
}

.footer a {
  display:block;
  font-size:13px;
  margin:10px 0;
  color:#cdbdb5
}

.copy {
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:35px;
  padding-top:20px;
  font-size:12px;
  display:flex;
  justify-content:space-between
}

.wa {
  position:fixed;
  right:22px;
  bottom:22px;
  width:56px;
  height:56px;
  border-radius:50%;
  background:#25d366;
  color:#fff;
  display:grid;
  place-items:center;
  font-size:24px;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  z-index:40
}


@media(max-width:1000px) {
  .menu {
  display:none
}

.hamb {
  display:block
}

.nav {
  height:90px
}

.logo-wrap {
  width:155px;
  height:112px
}

.hero,.hero-grid {
  min-height:auto
}

.hero-grid,.split,.trans-box,.contact-grid,.detail-grid {
  grid-template-columns:1fr
}

.hero-copy {
  padding:80px 0 50px
}

.hero-art {
  height:430px
}

.cards {
  grid-template-columns:repeat(2,1fr)
}

.categories {
  grid-template-columns:repeat(2,1fr)
}

.filter {
  grid-template-columns:1fr 1fr
}

.filter>*:first-child {
  grid-column:1/-1
}

.footer-grid {
  grid-template-columns:1fr 1fr
}

.doc {
  grid-template-columns:1.5fr 1fr .6fr
}

.doc>*:nth-child(4) {
  display:none
}


}


@media(max-width:640px) {
  .container {
  width:min(100% - 28px,1180px)
}

.top {
  display:none
}

.nav {
  height:80px
}

.logo-wrap {
  width:132px;
  height:102px;
  padding:8px 12px
}

.logo-wrap img {
  max-height:88px
}

.hero-copy {
  padding-top:65px
}

.hero h1 {
  font-size:42px
}

.hero-art {
  height:330px
}

.hero-art .quote {
  left:18px;
  bottom:18px;
  width:calc(100% - 36px)
}

section {
  padding:65px 0
}

.section-head {
  display:block
}

.section-head h2,.split h2,.page-hero h1,.trans-copy h2 {
  font-size:34px
}

.cards,.categories,.trans-links,.facts,.form-grid,.footer-grid {
  grid-template-columns:1fr
}

.trans-copy {
  padding:34px
}

.trans-links {
  padding:20px
}

.filter {
  grid-template-columns:1fr
}

.filter>*:first-child {
  grid-column:auto
}

.doc {
  grid-template-columns:1fr
}

.doc>*:not(:first-child):not(:last-child) {
  display:none
}

.copy {
  display:block
}

.copy span {
  display:block;
  margin-top:8px
}


}




/* Complementos funcionais e acessibilidade do site. */
html {
  scroll-padding-top: 130px;
}

body {
  overflow-wrap: anywhere;
}

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

button,
.btn {
  cursor: pointer;
  min-height: 44px;
}

button:disabled {
  opacity: .65;
  cursor: wait;
}

:focus-visible {
  outline: 3px solid #a4553f;
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  top: -80px;
  left: 16px;
  padding: 14px;
  background: #fff;
  z-index: 1000;
}

.skip-link:focus {
  top: 12px;
}

.hero {
  padding: 0;
}

.hero-art > img,
.photo-panel.has-image > img,
.card-img img,
.detail-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-art .quote {
  z-index: 1;
}

.brand-panel {
  display: grid;
  place-items: center;
  background: var(--cream);
}

.brand-panel img {
  width: 75%;
  height: auto;
  mix-blend-mode: multiply;
}

.photo-panel::after {
  content: none;
}

.split > *,
.contact-grid > *,
.hero-grid > *,
.detail-grid > * {
  min-width: 0;
}

.contact-invite {
  background: var(--cream);
  border-radius: 26px;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.contact-invite h3 {
  color: var(--wine);
  font-size: 30px;
  margin: 0;
}

.contact-panel h2 {
  font-size: 32px;
  color: var(--wine);
}

.contact-panel .btn {
  margin-top: 24px;
}

.field {
  min-width: 0;
}

.field label {
  display: block;
  margin-bottom: 9px;
  font-size: 14px;
  font-weight: 600;
}

.field small {
  display: block;
  margin-top: 8px;
  color: var(--muted);
}

.form-grid {
  align-content: start;
}

.form-feedback {
  min-height: 24px;
  color: #355639;
  font-size: 14px;
  line-height: 1.7;
}

.form-feedback.error {
  color: #a22a24;
}

.form-note {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}

.check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.6;
}

.check input {
  width: 20px;
  min-height: 20px;
  margin: 2px 0 0;
  flex-shrink: 0;
}

.trap {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.filter {
  align-items: end;
}

.filter .btn {
  border-radius: 12px;
  min-height: 48px;
}

.spaced {
  margin-top: 48px;
}

.docs-head h2 {
  color: var(--wine);
  font-family: 'DM Sans', sans-serif;
  font-size: 20px;
  margin: 0;
}

.doc {
  grid-template-columns: 2fr 1.2fr .5fr .8fr auto;
}

.doc .view {
  min-width: 44px;
  min-height: 44px;
}

.empty-state {
  border: 1px dashed #cab9a5;
  background: #fffdfa;
  border-radius: 18px;
  padding: 45px 24px;
  text-align: center;
  color: var(--muted);
  line-height: 1.7;
}

.empty-state i {
  font-size: 26px;
  color: var(--terracotta);
}

.badge {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 20px;
  background: #eee5d6;
  color: #69583d;
  font-size: 12px;
  font-family: 'DM Sans', sans-serif;
  white-space: nowrap;
}

.badge.published {
  background: #e3ebe0;
  color: #3e583b;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.gallery figure {
  margin: 0;
}

.gallery img {
  width: 100%;
  height: 210px;
  object-fit: cover;
  border-radius: 14px;
}

.gallery figcaption {
  font-size: 13px;
  padding: 10px 0;
}

.info-box {
  align-self: start;
}

.info-box .btn {
  margin-top: 24px;
}

.back-link {
  display: block;
  margin-top: 24px;
  font-size: 14px;
}

.footer p {
  font-size: 13px;
  line-height: 1.7;
}

.text-block h2,
.text-block h3 {
  color: var(--wine);
}

@media (max-width: 1000px) {
  .menu.is-open {
    display: flex;
    position: absolute;
    top: 100%;
    left: 14px;
    right: 14px;
    flex-direction: column;
    align-items: stretch;
    background: #fff;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: var(--shadow);
  }

  .menu.is-open a {
    min-height: 44px;
  }

  .hero {
    background: var(--cream);
  }

  .doc {
    grid-template-columns: 2fr 1fr auto;
  }

  .doc > :nth-child(3),
  .doc > :nth-child(4) {
    display: none;
  }
}

@media (max-width: 640px) {
  .doc {
    grid-template-columns: 1fr auto;
  }

  .doc > :nth-child(2) {
    display: none;
  }

  .photo-panel {
    height: 320px;
  }

  .split {
    gap: 32px;
  }

  .contact-panel,
  .contact-invite {
    padding: 24px;
  }

  .contact-panel a {
    word-break: break-word;
  }

  .gallery {
    grid-template-columns: 1fr;
  }

  .hero h1 {
    font-size: clamp(36px, 10vw, 42px);
  }
}

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

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}
