:root{
  --bg:#fbf6ef;
  --bg-warm:#f4eadf;
  --bg-sage:#edf3e9;
  --green:#718b76;
  --green-dark:#6c826f;
  --text:#6c836f;
  --white:#fff;
  --line:rgba(113,139,118,.22);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Montserrat,Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
h1,h2,h3{
  font-family:"Playfair Display",Georgia,serif;
  color:var(--green-dark);
  line-height:1.02;
  letter-spacing:0;
  margin:0;
}
h1{font-size:3.6rem;color:var(--white);text-align:center}
h2{font-size:3.25rem;margin-bottom:28px}
h3{font-size:1.85rem;color:var(--white)}
p{margin:0 0 22px}

.center{text-align:center}
.section-subtitle{
  font-size:1.1rem;
  margin-top:-14px;
  margin-bottom:58px;
}

.topbar{
  position:fixed;
  z-index:20;
  top:0;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:16px 44px;
  background:rgba(251,246,239,.88);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px);
}
.brand{
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.2rem;
  font-weight:800;
  color:var(--green-dark);
}
.topbar-actions{
  display:flex;
  align-items:center;
  gap:18px;
}
nav{
  display:flex;
  align-items:center;
  gap:20px;
  font-size:.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.nav-cta{
  background:var(--green);
  color:var(--white);
  padding:10px 18px;
}
.language-switch{
  display:inline-grid;
  grid-template-columns:repeat(2,44px);
  align-items:center;
  gap:2px;
  padding:3px;
  border:1px solid var(--line);
  background:rgba(251,246,239,.72);
}
.language-switch button{
  width:44px;
  height:34px;
  border:0;
  background:transparent;
  color:var(--green-dark);
  cursor:pointer;
  font:700 .74rem/1 Montserrat,Arial,sans-serif;
  letter-spacing:.08em;
}
.language-switch button.is-active{
  background:var(--green);
  color:var(--white);
}

.hero{
  min-height:100svh;
  position:relative;
  display:grid;
  place-items:center;
  padding:120px 24px;
  overflow:hidden;
}
.hero-img{position:absolute;inset:0;z-index:0}
.hero:after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(28,34,25,.08);
}
.hero-card{
  position:relative;
  z-index:1;
  width:min(780px,76vw);
  padding:58px 54px;
  background:rgba(113,139,118,.83);
  text-align:center;
}
.eyebrow,.place{
  color:var(--white);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.eyebrow{font-size:.92rem;margin-bottom:14px}
.place{font-size:1.35rem;font-weight:500;margin-top:28px}

.section-pad{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:720px;
  padding:112px min(8vw,128px);
  background:var(--section-bg,var(--bg));
}
.section-pad:before,
.section-pad:after{
  content:"";
  position:absolute;
  z-index:0;
  width:168px;
  height:96px;
  background:var(--green);
  pointer-events:none;
}
.section-pad:before{left:-104px;top:118px}
.section-pad:after{right:-104px;bottom:104px}
.section-pad>*{position:relative;z-index:1}

.intro{
  --section-bg:linear-gradient(180deg,var(--bg) 0%,var(--bg-warm) 100%);
}
#espaco{
  --section-bg:var(--bg-warm);
}
#localizacao{
  --section-bg:linear-gradient(180deg,var(--bg-warm) 0%,var(--bg-sage) 100%);
}
.accommodation{
  --section-bg:var(--bg-sage);
}
.mosaic{
  --section-bg:linear-gradient(180deg,var(--bg-sage) 0%,var(--bg-warm) 100%);
}
.potential{
  --section-bg:var(--bg-warm);
}
.events{
  --section-bg:linear-gradient(180deg,var(--bg) 0%,var(--bg-sage) 100%);
}
.event-types{
  --section-bg:var(--bg-sage);
}
.contact{
  --section-bg:var(--green);
}

.split,
.location,
.mosaic,
.event-types,
.contact{
  display:grid;
  align-items:center;
  gap:min(6vw,92px);
}
.split{grid-template-columns:1.06fr .94fr}
.location{grid-template-columns:.92fr 1.08fr}
.mosaic{grid-template-columns:1.08fr .92fr}
.event-types{grid-template-columns:.86fr 1.14fr}
.contact{
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:0;
  min-height:clamp(560px,72svh,780px);
  padding:0;
}
.contact:before,
.contact:after{display:none}

.copy{max-width:640px}
.copy p{
  max-width:34em;
  font-size:1.08rem;
}
.large-title h2{
  max-width:7.4em;
  font-size:3.9rem;
}

.image-wrap,
.map-card{
  overflow:hidden;
  background:#ece3d9;
  height:100%;
}
.image-wrap img,
.map-card img{min-height:inherit}
.image-wrap{min-height:520px}
.intro .image-wrap{min-height:740px}
.map-card{
  position:relative;
  min-height:420px;
  border:1px solid var(--line);
}
.map-card iframe{
  display:block;
  width:100%;
  height:100%;
  min-height:inherit;
  border:0;
}
.map-link{
  position:absolute;
  left:18px;
  bottom:18px;
  background:rgba(251,246,239,.92);
  color:var(--green-dark);
  padding:10px 14px;
  font-size:.82rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.feature-list,
.distance-list{
  list-style:none;
  padding:0;
  margin:24px 0 40px;
  font-size:1.08rem;
  line-height:1.55;
}
.feature-list li:before{content:"- "}
.distance-list li{margin:4px 0}
.address{
  display:inline-block;
  border:2px solid var(--green);
  padding:22px 36px;
  font-size:1.1rem;
  line-height:1.35;
}

.cards.three{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:min(5vw,70px);
  max-width:1320px;
  margin:0 auto;
  text-align:center;
}
.room-card{
  display:grid;
  grid-template-rows:285px 1fr;
  background:var(--green);
  color:var(--white);
}
.room-card img{height:100%}
.room-card div{padding:30px 28px 40px}
.room-card p{
  color:var(--white);
  font-size:1.05rem;
  margin:18px 0 0;
}

.mosaic-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  grid-template-rows:350px 350px;
  gap:18px;
}
.mosaic-grid img:first-child{grid-row:1/3}

.potential h2{
  max-width:1180px;
  margin:0 auto 44px;
}
.gallery-row{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  margin:0 auto;
}
.gallery-row img{height:280px}
.potential p{
  max-width:1020px;
  margin:40px auto 0;
  font-size:1.08rem;
}

.parallax-section{
  position:relative;
  min-height:560px;
  display:grid;
  align-items:center;
  padding:120px min(10vw,160px);
  overflow:hidden;
  background:
    linear-gradient(90deg, rgba(27,37,28,.74), rgba(27,37,28,.42) 54%, rgba(27,37,28,.18)),
    url("assets/img_22_p10.png") center 46% / cover fixed;
  color:var(--white);
}
.parallax-copy{
  max-width:640px;
}
.parallax-copy h2{
  max-width:9.5em;
  margin:0 0 24px;
  color:var(--white);
  font-size:3.5rem;
}
.parallax-copy p{
  max-width:34em;
  color:var(--white);
  font-size:1.08rem;
}

.events-layout{
  display:grid;
  grid-template-columns:.94fr .64fr .56fr;
  grid-template-rows:360px 300px;
  gap:20px;
  align-items:stretch;
}
.event-main{grid-column:1;grid-row:1}
.event-intro{
  grid-column:2/4;
  grid-row:1;
  display:flex;
  align-items:center;
  padding:36px 42px;
}
.event-intro p{
  max-width:720px;
  margin:0;
  font-size:1.45rem;
  line-height:1.38;
}
.event-title-panel{
  grid-column:1;
  grid-row:2;
  display:flex;
  align-items:center;
  padding-left:min(8vw,140px);
}
.event-title-panel h2{
  max-width:7.8em;
  font-size:3.9rem;
  margin:0;
}
.events-layout img:nth-of-type(2){grid-column:2;grid-row:2}
.events-layout img:nth-of-type(3){grid-column:3;grid-row:2}

.type-block{
  margin:16px 0;
  font-size:1.06rem;
  line-height:1.55;
}
.type-block strong{
  color:var(--green-dark);
  font-weight:800;
}
.event-gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.event-gallery img{height:310px}

.contact .image-wrap{
  align-self:stretch;
  min-height:inherit;
  height:100%;
}
.contact .image-wrap img{object-position:center}
.contact-copy{
  align-self:stretch;
  justify-self:stretch;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:none;
  height:100%;
  padding:clamp(48px,7vw,112px);
  background:rgba(113,139,118,.94);
  color:var(--white);
  text-align:center;
}
.contact-copy h2{
  color:var(--white);
  font-size:3.95rem;
}
.contact-copy a{
  display:block;
  margin:8px 0;
  font-size:1rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  overflow-wrap:anywhere;
}
.contact-copy .button{
  display:inline-block!important;
  margin-top:30px!important;
  background:var(--white);
  color:var(--green-dark)!important;
  padding:14px 24px;
  text-transform:none!important;
  letter-spacing:0!important;
}
.site-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:16px 24px;
  background:#000;
  color:var(--white);
  font-size:.88rem;
  font-weight:600;
  text-align:center;
}

@media (prefers-reduced-motion:no-preference){
  .motion-ready .hero-img{
    transform:scale(1.05) translate3d(0,var(--scroll-y,0px),0);
    transform-origin:center;
    will-change:transform;
  }

  .motion-ready .section-pad:before,
  .motion-ready .section-pad:after{
    will-change:transform;
  }
  .motion-ready .section-pad:before{
    transform:translate3d(var(--bar-before-x,0px),var(--bar-before-y,0px),0);
  }
  .motion-ready .section-pad:after{
    transform:translate3d(var(--bar-after-x,0px),var(--bar-after-y,0px),0);
  }

  .motion-ready .motion-item{
    --reveal-y:34px;
    --motion-scale:1;
    opacity:0;
    transform:translate3d(0,var(--reveal-y),0) scale(var(--motion-scale));
    transition:
      opacity .8s ease,
      transform .9s cubic-bezier(.19,1,.22,1),
      clip-path .95s cubic-bezier(.19,1,.22,1);
    transition-delay:var(--motion-delay,0ms);
    will-change:opacity,transform,clip-path;
  }
  .motion-ready .motion-item.is-visible{
    --reveal-y:0px;
    --motion-scale:1;
    opacity:1;
  }

  .motion-ready .image-wrap.motion-item,
  .motion-ready .map-card.motion-item,
  .motion-ready .room-card.motion-item{
    --motion-scale:.985;
    clip-path:inset(14% 0 0 0);
  }
  .motion-ready .image-wrap.motion-item.is-visible,
  .motion-ready .map-card.motion-item.is-visible,
  .motion-ready .room-card.motion-item.is-visible{
    clip-path:inset(0);
  }
  .motion-ready .contact .image-wrap.motion-item,
  .motion-ready .contact .image-wrap.motion-item.is-visible{
    --motion-scale:1;
    transform:none;
    clip-path:inset(0);
  }

  .motion-ready .image-wrap img,
  .motion-ready .room-card img{
    transform:scale(1.06) translate3d(0,var(--scroll-y,0px),0);
    transform-origin:center;
    will-change:transform;
  }

  .motion-ready .mosaic-grid img.motion-item,
  .motion-ready .gallery-row img.motion-item,
  .motion-ready .events-layout>img.motion-item,
  .motion-ready .event-gallery img.motion-item{
    --reveal-y:38px;
    --motion-scale:1.035;
    clip-path:inset(10% 0 0 0);
    transform:translate3d(0,calc(var(--reveal-y) + var(--scroll-y,0px)),0) scale(var(--motion-scale));
  }
  .motion-ready .mosaic-grid img.motion-item.is-visible,
  .motion-ready .gallery-row img.motion-item.is-visible,
  .motion-ready .events-layout>img.motion-item.is-visible,
  .motion-ready .event-gallery img.motion-item.is-visible{
    --reveal-y:0px;
    --motion-scale:1;
    clip-path:inset(0);
  }

  .motion-ready .room-card.motion-item:hover{
    transform:translate3d(0,-8px,0);
  }
  .motion-ready .contact-copy .button{
    transition:transform .25s ease, background-color .25s ease;
  }
  .motion-ready .contact-copy .button:hover{
    transform:translate3d(0,-3px,0);
    background-color:var(--bg-warm);
  }
}

@media (max-width:1180px){
  h1{font-size:3.1rem}
  h2{font-size:2.75rem}
  nav{gap:14px;font-size:.72rem}
  .large-title h2,
  .event-title-panel h2,
  .contact-copy h2{font-size:3.05rem}
  .event-intro p{font-size:1.25rem}
  .room-card{grid-template-rows:245px 1fr}
}

@media (max-width:980px){
  body{font-size:15px}
  .topbar{position:absolute;padding:18px 22px}
  .topbar-actions{gap:0}
  nav{display:none}
  .hero-card{width:86vw;padding:48px 30px}
  .section-pad{padding:78px 24px}
  .section-pad{min-height:auto}
  .section-pad:before,
  .section-pad:after{width:82px;height:54px}
  .section-pad:before{left:-58px;top:72px}
  .section-pad:after{right:-58px;bottom:72px}
  .split,
  .location,
  .mosaic,
  .event-types,
  .contact{grid-template-columns:1fr}
  .reverse-mobile .copy{order:2}
  .copy{max-width:680px}
  .image-wrap,
  .intro .image-wrap,
  .map-card{min-height:380px}
  .cards.three{gap:28px}
  .room-card{grid-template-rows:220px 1fr}
  .mosaic-grid{grid-template-rows:240px 240px}
  .gallery-row{grid-template-columns:1fr 1fr}
  .events-layout{
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }
  .event-main,
  .event-intro,
  .event-title-panel,
  .events-layout img:nth-of-type(2),
  .events-layout img:nth-of-type(3){
    grid-column:auto;
    grid-row:auto;
  }
  .event-main,
  .events-layout img,
  .event-gallery img{height:300px}
  .event-intro{padding:24px 0}
  .event-title-panel{padding-left:0}
  .parallax-section{
    min-height:460px;
    padding:86px 24px;
    background-attachment:scroll;
    background-position:center;
  }
  .parallax-copy h2{font-size:2.75rem}
  .contact{
    min-height:auto;
    padding:0;
  }
  .contact .image-wrap{min-height:460px}
  .contact-copy{
    min-height:380px;
    text-align:center;
    justify-self:stretch;
    padding:72px 24px;
  }
  .section-subtitle{margin-bottom:36px}
}

@media (max-width:820px){
  .cards.three{
    grid-template-columns:1fr;
    max-width:460px;
  }
  .room-card{grid-template-rows:260px 1fr}
}

@media (max-width:620px){
  h1{font-size:2.25rem}
  h2{font-size:2.25rem}
  h3{font-size:1.55rem}
  .topbar{padding:14px 16px}
  .brand{font-size:1.05rem}
  .language-switch{grid-template-columns:repeat(2,38px)}
  .language-switch button{width:38px;height:32px;font-size:.7rem}
  .large-title h2,
  .event-title-panel h2,
  .contact-copy h2{font-size:2.55rem}
  .hero{min-height:680px}
  .hero-card{width:92vw;padding:40px 22px}
  .eyebrow{font-size:.72rem}
  .place{font-size:1rem}
  .copy p,
  .feature-list,
  .distance-list,
  .type-block,
  .potential p{font-size:1rem}
  .event-intro p{font-size:1.12rem}
  .parallax-section{min-height:420px}
  .parallax-copy h2{font-size:2.35rem}
  .parallax-copy p{font-size:1rem}
  .gallery-row,
  .event-gallery,
  .mosaic-grid{grid-template-columns:1fr}
  .mosaic-grid{grid-template-rows:none}
  .mosaic-grid img,
  .gallery-row img,
  .event-gallery img{height:260px}
  .mosaic-grid img:first-child{grid-row:auto}
  .address{padding:18px 22px}
  .contact{padding:0}
  .contact .image-wrap{min-height:360px}
  .contact-copy{min-height:340px;padding:60px 20px}
  .contact-copy a{font-size:.88rem}
  .contact-copy .button{padding:13px 20px}
}
