:root {
  --green: #124b35;
  --deep-green: #092e22;
  --lime: #8abf43;
  --yellow: #f6df16;
  --red: #a52a2a;
  --cream: #f7f5ef;
  --sand: #e7dfd0;
  --ink: #19372c;
  --white: #fff;
  --font: "Karla", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 86px; }
body { margin: 0; color: var(--ink); background: var(--cream); font: 400 13px/1.5 var(--font); }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--white); outline-offset: 2px; box-shadow: 0 0 0 5px var(--deep-green); }
img { display: block; max-width: 100%; }
.container { width: min(1180px, calc(100% - 80px)); margin: 0 auto; }

.site-header { height: 86px; background: rgba(255,255,255,.98); display: flex; align-items: center; gap: 30px; padding: 0 max(40px, calc((100vw - 1180px)/2)); position: sticky; z-index: 10; top: 0; border-bottom: 1px solid rgba(18,75,53,.08); }
.brand { width: 210px; flex: 0 0 auto; }
.brand img { width: 210px; height: auto; }
.main-nav { display: flex; align-items: center; gap: 23px; margin-left: auto; }
.main-nav a { color: #355247; font-size: 13px; font-weight: 700; transition: color .2s; }
.main-nav a:hover { color: var(--red); }
.header-cta, .button { display: inline-flex; gap: 13px; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; letter-spacing: .02em; transition: transform .2s, background .2s; }
.header-cta { background: var(--green); color: #fff; padding: 13px 18px; }
.header-cta:hover, .button:hover { transform: translateY(-2px); }
.header-cta span, .button span, .text-link span { color: var(--yellow); font-size: 16px; line-height: .5; }
.whatsapp-icon { width: 18px; height: 18px; flex: 0 0 auto; fill: currentColor; }
.menu-toggle { display: none; }

.hero { min-height: min(535px, calc(70vh - 30px)); color: var(--white); position: relative; display: grid; overflow: hidden; background: center 54%/cover no-repeat; background-image: var(--hero-image); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,32,22,.86) 0%, rgba(7,44,30,.61) 46%, rgba(5,33,22,.16) 100%); }
.hero-content { position: relative; align-self: center; padding: 50px 0 72px; }
.eyebrow { display: flex; align-items: center; gap: 11px; color: var(--green); font-size: 13px; text-transform: uppercase; letter-spacing: .16em; font-weight: 700; margin: 0 0 22px; }
.eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--red); }
.eyebrow.light { color: #fff; }
.hero h1, h2 { margin: 0; font: 700 clamp(43px, 5.2vw, 74px)/1.05 var(--font); letter-spacing: -.045em; }
h1 em, h2 em { color: var(--yellow); font-weight: 400; }
.hero-copy { max-width: 460px; font-size: 17px; line-height: 1.65; color: rgba(255,255,255,.88); margin: 22px 0; }
.hero-actions { display: flex; align-items: center; gap: 28px; }
.button { min-height: 51px; padding: 0 22px; background: var(--red); color: #fff; }
.text-link { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; }
.text-link.light { color: #fff; border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: 6px; }
.text-link.green { color: var(--green); border-bottom: 1px solid #b9c8bd; padding-bottom: 8px; }
.text-link.green span { color: var(--red); }
.hero-bottom { position: absolute; z-index: 1; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; justify-content: space-between; align-items: center; font-size: 13px; letter-spacing: .09em; color: var(--white); width: min(1180px, calc(100% - 80px)); }

.intro { padding: 72px 0 62px; }
.intro-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 10%; align-items: end; }
h2 { color: var(--green); font-size: clamp(38px, 4vw, 56px); }
h2 em { color: var(--red); }
.intro-text { max-width: 425px; padding-bottom: 6px; }
.intro-text p, .service-intro, .section-heading > p { color: #587064; font-size: 15px; line-height: 1.72; margin: 0 0 15px; }
.intro-text .text-link { margin-top: 17px; }
.benefits { margin-top: 46px; border-top: 1px solid #d1d8d2; display: grid; grid-template-columns: repeat(3,1fr); }
.benefits > div { padding: 25px 35px 0 0; border-right: 1px solid #d1d8d2; min-height: 130px; }
.benefits > div:not(:first-child) { padding-left: 35px; }
.benefits > div:last-child { border-right: 0; }
.benefit-number { display: block; font: 700 15px var(--font); color: var(--red); margin-bottom: 23px; }
.benefits strong { font-size: 15px; color: var(--green); }
.benefits p { color: #52685d; font-size: 13px; line-height: 1.45; margin: 7px 0; }

.rooms-section { background: var(--green); padding: 82px 0 88px; }
.rooms-section .eyebrow, .rooms-section h2 { color: #fff; }
.rooms-section .eyebrow::before { background: var(--yellow); }
.rooms-section h2 em { color: var(--yellow); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 60px; margin-bottom: 48px; }
.section-heading > p { max-width: 320px; margin: 0 0 5px; }
.rooms-section .section-heading > p { color: #d8e1dc; }
.rooms-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 17px; }
.room-card { position: relative; overflow: hidden; min-height: 430px; color: #fff; background: #174d37; }
.room-card img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; transition: transform .6s ease; }
.room-card:hover img { transform: scale(1.045); }

.services { padding: 72px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: center; }
.services-image { height: 500px; position: relative; }
.services-image::after { content: ""; position: absolute; width: 116px; height: 116px; background: var(--yellow); bottom: -27px; right: -27px; z-index: -1; }
.services-image img { width: 100%; height: 100%; object-fit: cover; }
.services-content { padding: 25px 0; }
.service-intro { max-width: 400px; margin: 27px 0 31px; }
.service-list { padding: 0; margin: 0; list-style: none; border-top: 1px solid #c7d0ca; }
.service-list li { min-height: 56px; display: flex; align-items: center; gap: 18px; border-bottom: 1px solid #c7d0ca; }
.service-list span { color: var(--red); font: 700 13px var(--font); }
.service-list strong { font-size: 13px; }

.gallery-section { padding: 15px 0 120px; }
.gallery-heading { margin-bottom: 40px; }
.gallery { display: grid; grid-template-columns: 1.05fr .95fr .95fr; grid-template-rows: 225px 225px; gap: 14px; width: min(1360px, calc(100% - 40px)); margin: 0 auto; }
.gallery figure { overflow: hidden; margin: 0; }
.gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s; }
.gallery figure:hover img { transform: scale(1.04); }
.gallery-tall { grid-row: span 2; }.gallery-wide { grid-column: span 2; }

.legal-section { padding: 66px 0; background: var(--sand); }
.legal-layout { display: grid; grid-template-columns: .73fr 1.27fr; gap: 11%; }
.legal-intro p:not(.eyebrow) { max-width: 340px; margin: 25px 0 0; color: #52685d; font-size: 15px; line-height: 1.7; }
.document-list { border-top: 1px solid rgba(18,75,53,.35); }
.document-list a { display: grid; grid-template-columns: 36px 1fr 20px; gap: 12px; align-items: center; min-height: 62px; border-bottom: 1px solid rgba(18,75,53,.22); color: var(--green); transition: background .2s, padding .2s; }
.document-list a:hover { background: rgba(255,255,255,.45); padding-left: 12px; }
.document-list span { color: var(--red); font: 700 13px var(--font); }
.document-list strong { font-size: 13px; line-height: 1.35; }
.document-list i { color: var(--red); font-style: normal; font-size: 17px; }

.contact { background: var(--deep-green); color: #fff; padding: 60px 0 54px; }
.contact h2 { color: #fff; }.contact h2 em { color: var(--yellow); }
.contact .eyebrow::before { background: var(--red); }
.contact-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 12%; }
.contact-details { padding-top: 8px; }
.button.outline { color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.55); width: 100%; justify-content: space-between; padding: 0 20px; }
.button.outline:hover { background: rgba(255,255,255,.08); }
.details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin-top: 45px; color: rgba(255,255,255,.9); font-size: 13px; line-height: 1.65; }
.details-grid address, .details-grid p { margin: 0; font-style: normal; }
.details-grid span { display: block; color: var(--lime); font-size: 13px; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; margin-bottom: 9px; }
.details-grid a:hover { color: var(--yellow); }

.whatsapp-float { position: fixed; z-index: 8; right: 28px; bottom: 28px; width: 50px; height: 50px; border-radius: 50%; background: #128c7e; color: #fff; display: grid; place-items: center; box-shadow: 0 6px 18px rgba(8,68,35,.28); transition: transform .2s; }.whatsapp-float:hover { transform: scale(1.08); }.whatsapp-float .whatsapp-icon { width: 25px; height: 25px; }

.goo-consent .goo-consent__settings {
  right: auto !important;
  bottom: 18px !important;
  left: 18px !important;
  display: grid;
  place-items: center;
  width: 48px;
  min-width: 48px;
  max-width: 48px;
  height: 48px;
  min-height: 48px;
  padding: 0;
  overflow: hidden;
  border: 2px solid var(--white);
  border-radius: 50%;
  background: var(--deep-green);
  color: var(--white);
  font-size: 0;
  line-height: 0;
  cursor: pointer;
}
.goo-consent .goo-consent__settings[hidden] { display: none !important; }
.cookie-settings-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.cookie-settings-icon { display: block; width: 25.5px; height: 25.5px; transform: none; }

.content-page { min-height: calc(100vh - 86px); padding: 80px 0; }
.content-page h1 { color: var(--green); font-size: clamp(38px, 5vw, 64px); line-height: 1.08; margin: 0 0 24px; }
.content-page p { max-width: 680px; font-size: 15px; }
.content-page .button { margin-top: 20px; }

@media (max-width: 800px) {
  body { font-size: 13px; }
  [id] { scroll-margin-top: 76px; }
  .container { width: min(100% - 40px, 600px); }.site-header { height: 76px; padding: 0 20px; }.brand { width: 168px; }.brand img { width: 168px; height: auto; }.header-cta { display: none; }.menu-toggle { margin-left: auto; display: grid; gap: 4px; width: 33px; padding: 7px 0; border: 0; background: none; }.menu-toggle span { height: 2px; width: 100%; background: var(--green); }.main-nav { display: none; position: absolute; top: 76px; left: 0; right: 0; padding: 18px 20px; background: #fff; box-shadow: 0 9px 12px rgba(5,40,25,.08); }.main-nav.open { display: grid; gap: 16px; }.hero { min-height: 470px; background-position: 63% center; }.hero-content { padding: 48px 0 68px; }.hero h1 { font-size: clamp(38px, 11vw, 52px); }.hero-copy { font-size: 15px; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }.hero-bottom { width: calc(100% - 40px); }.hero-bottom > span:first-child { display: none; }.hero-bottom { justify-content: flex-end; }.intro { padding: 58px 0 48px; }.intro-grid, .services, .contact-grid { grid-template-columns: 1fr; gap: 32px; }.benefits { margin-top: 38px; grid-template-columns: 1fr; }.benefits > div, .benefits > div:not(:first-child) { border-right: 0; border-bottom: 1px solid #d1d8d2; padding: 16px 0; min-height: auto; }.benefit-number { margin-bottom: 8px; }.rooms-section { padding: 60px 0; }.section-heading { display: grid; gap: 20px; }.rooms-grid { grid-template-columns: 1fr; gap: 12px; }.room-card { min-height: 360px; }.services { padding: 58px 0; }.services-image { height: 390px; width: calc(100% - 22px); }.services-image::after { width: 75px; height: 75px; right: -22px; bottom: -22px; }.gallery-section { padding: 0 0 70px; }.gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 210px 210px 160px; width: calc(100% - 24px); gap: 10px; }.gallery-tall { grid-row: span 2; }.gallery-wide { grid-column: span 1; }.gallery figure:nth-child(3) { display: none; }.legal-section { padding: 54px 0; }.legal-layout { grid-template-columns: 1fr; gap: 30px; }.document-list a { grid-template-columns: 27px 1fr 16px; min-height: 61px; }.document-list strong { font-size: 13px; }.contact { padding: 52px 0 48px; }.details-grid { grid-template-columns: 1fr; margin-top: 30px; }.whatsapp-float { bottom: 18px; right: 18px; }.goo-consent .goo-consent__settings { bottom: 12px !important; left: 12px !important; }
}

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