@charset "UTF-8";
:root {
  --paper:var(--sc-marfil);
  --ink:var(--sc-avet);
  --muted:var(--sc-bosc);
  --line:var(--sc-pedra);
  --accent:var(--sc-bosc);
  --pale:color-mix(in srgb,var(--sc-salvia) 28%,var(--sc-marfil));
  --white:var(--sc-marfil);
  --serif:var(--sc-serif);
  --sans:var(--sc-sans);
  --max:var(--sc-max)
}

* {
  box-sizing:border-box
}

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

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased
}

body.modal-open {
  overflow:hidden
}

button,input,select {
  font:inherit
}

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

button {
  color:inherit
}

a {
  color:inherit;
  text-underline-offset:5px
}

button {
  cursor:pointer
}

img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover
}

figure,p,h1,h2,h3 {
  margin:0
}

h1,h2,h3 {
  font-weight:400
}

h1,h2,.serif {
  font-family:var(--serif)
}

h2 {
  font-size:clamp(40px,5vw,68px);
  line-height:1.08;
  letter-spacing:-2px
}

h3 {
  line-height:1.3
}

em {
  font-weight:400
}

button:focus-visible,a:focus-visible,summary:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px
}

button:disabled {
  cursor:default
}

::selection {
  background:var(--sc-salvia)
}

.wrap {
  width:min(var(--max),calc(100% - 96px));
  margin-inline:auto
}

.eyebrow {
  font-size:11px;
  letter-spacing:2px;
  line-height:1.6;
  font-weight:500;
  text-transform:uppercase
}

.muted {
  color:var(--muted)
}

.skip-link {
  position:fixed;
  left:20px;
  top:-100px;
  z-index:100;
  background:var(--ink);
  color:var(--paper);
  padding:12px 22px
}

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

.site-header {
  height:92px;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  background:var(--paper);
  z-index:30
}

.header-inner {
  height:100%;
  display:flex;
  align-items:center;
  gap:32px
}

.brand {
  display:flex;
  flex-direction:column;
  text-decoration:none;
  line-height:1.05;
  min-width:150px
}

.brand-name {
  font-family:var(--serif);
  font-size:31px;
  letter-spacing:4px
}

.brand-caption {
  font-size:8px;
  letter-spacing:2.3px;
  margin-top:7px
}

.main-nav {
  display:flex;
  gap:27px;
  margin-left:auto
}

.main-nav a {
  font-size:12px;
  text-decoration:none;
  position:relative
}

.main-nav a:after {
  content:'';
  position:absolute;
  bottom:-6px;
  left:0;
  width:0;
  height:1px;
  background:var(--ink);
  transition:width .2s
}

.main-nav a:hover:after {
  width:100%
}

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

.languages {
  position:relative;
  font-size:11px
}

.languages summary {
  cursor:pointer;
  list-style:none;
  padding:10px 4px;
  display:flex;
  gap:7px;
  align-items:center
}

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

.languages summary:after {
  content:'⌄';
  font-size:13px
}

.language-list {
  position:absolute;
  right:0;
  top:45px;
  background:var(--white);
  min-width:140px;
  padding:8px;
  box-shadow:0 6px 25px #2222;
  border:1px solid var(--line)
}

.language-list a {
  display:block;
  padding:8px 12px;
  text-decoration:none
}

.language-list a:hover,.language-list a[aria-current] {
  background:var(--pale)
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  padding:15px 23px;
  min-height:49px;
  background:var(--ink);
  border:1px solid var(--ink);
  color:var(--paper);
  font-size:12px;
  text-decoration:none;
  line-height:1.5;
  transition:background .2s
}

.button:hover {
  background:var(--sc-bosc)
}

.button-compact {
  font-size:11px;
  padding:11px 15px;
  min-height:42px;
  gap:18px
}

.button-light {
  background:transparent;
  color:var(--ink);
  border-color:var(--line)
}

.button-light:hover {
  background:var(--pale)
}

.arrow {
  font-size:20px;
  font-weight:400;
  line-height:1
}

.text-link {
  display:inline-flex;
  gap:23px;
  align-items:center;
  text-decoration:none;
  border-bottom:1px solid var(--ink);
  padding:8px 0;
  font-size:12px
}

.menu-toggle {
  display:none;
  background:none;
  border:0;
  width:44px;
  height:44px;
  padding:10px
}

.menu-toggle span {
  display:block;
  height:1px;
  background:var(--ink);
  margin:6px 0;
  transition:transform .2s
}

.hero {
  text-align:center;
  padding-top:65px
}

.hero .eyebrow {
  color:var(--accent)
}

.hero h1 {
  font-size:clamp(64px,8.5vw,122px);
  line-height:.99;
  letter-spacing:-5px;
  margin:23px 0 27px
}

.hero h1 em {
  color:var(--accent)
}

.hero-intro {
  max-width:510px;
  margin:0 auto;
  color:var(--muted);
  font-size:14px;
  line-height:1.8
}

.hero-links {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:35px;
  margin:24px auto 42px
}

.hero-photo {
  position:relative;
  height:min(58vw,600px);
  overflow:hidden;
  background:var(--pale)
}

.hero-photo img {
  object-position:50% 55%
}

.photo-caption {
  position:absolute;
  bottom:24px;
  left:25px;
  background:var(--paper);
  padding:11px 18px;
  font-size:10px;
  letter-spacing:1px;
  text-transform:uppercase;
  max-width:calc(100% - 100px)
}

.photo-action {
  position:absolute;
  right:22px;
  bottom:24px;
  background:var(--paper);
  color:var(--ink);
  border:0;
  padding:12px 16px;
  display:flex;
  gap:12px;
  align-items:center;
  font-size:11px;
  min-height:42px
}

.photo-action svg {
  width:15px;
  height:15px
}

.facts {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-bottom:1px solid var(--line);
  padding:30px 0;
  margin-bottom:0
}

.fact {
  border-right:1px solid var(--line);
  display:flex;
  align-items:baseline;
  gap:11px;
  justify-content:center
}

.fact:last-child {
  border:0
}

.fact strong {
  font-family:var(--serif);
  font-size:35px;
  font-weight:400;
  line-height:1
}

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

.section {
  padding-block:105px
}

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

.section-heading .eyebrow {
  margin-bottom:17px;
  color:var(--accent)
}

.section-heading>p {
  max-width:310px;
  font-size:13px;
  color:var(--muted)
}

.intro {
  display:grid;
  grid-template-columns:1fr 1.04fr;
  gap:100px;
  padding-bottom:95px
}

.intro h2 {
  max-width:480px;
  margin-top:20px
}

.intro-copy {
  padding-top:36px
}

.intro-copy>p {
  color:var(--muted);
  font-size:14px;
  margin-bottom:20px;
  max-width:470px
}

.note {
  border-left:2px solid var(--accent);
  padding-left:17px;
  font-size:12px!important;
  color:var(--ink)!important;
  margin-top:28px
}

.gallery-section {
  background:var(--pale)
}

.filters {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:28px
}

.filters[hidden] {
  display:none
}

.filter {
  border:1px solid #c9cebc;
  padding:8px 18px;
  border-radius:0;
  background:transparent;
  font-size:11px;
  min-height:40px
}

.filter[aria-pressed=true] {
  background:var(--ink);
  border-color:var(--ink);
  color:var(--paper)
}

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

.gallery-item {
  position:relative;
  aspect-ratio:1.2;
  background:#d9dece;
  overflow:hidden
}

.gallery-item:first-child {
  grid-column:span 2;
  grid-row:span 2;
  aspect-ratio:auto
}

.gallery-item[hidden] {
  display:none
}

.gallery-grid.is-filtered .gallery-item:first-child {
  grid-column:auto;
  grid-row:auto;
  aspect-ratio:1.2
}

.gallery-item button {
  border:0;
  display:block;
  background:none;
  width:100%;
  height:100%;
  padding:0;
  text-align:left
}

.gallery-item img {
  transition:transform .6s
}

.gallery-item button:hover img {
  transform:scale(1.035)
}

.gallery-label {
  position:absolute;
  left:14px;
  bottom:14px;
  padding:5px 11px;
  background:var(--paper);
  font-size:10px;
  pointer-events:none
}

.gallery-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:25px;
  font-size:11px;
  color:var(--muted)
}

.gallery-footer p {
  max-width:650px
}

.spaces-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px
}

.room-photo {
  aspect-ratio:1.45;
  overflow:hidden
}

.room-heading {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  gap:15px
}

.room-heading h3 {
  font-family:var(--serif);
  font-size:27px
}

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

.amenities-layout {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:70px;
  margin-top:70px
}

.amenities-layout h3 {
  font-family:var(--serif);
  font-size:32px
}

.amenities-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 38px;
  list-style:none;
  margin:0;
  padding:0
}

.amenities-list li {
  display:flex;
  align-items:center;
  gap:14px;
  border-bottom:1px solid var(--line);
  padding:17px 0;
  font-size:12px
}

.amenities-list svg {
  width:21px;
  height:21px;
  flex-shrink:0;
  stroke:var(--accent)
}

.terrace {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  min-height:650px;
  background:var(--ink);
  color:var(--paper)
}

.terrace-copy {
  padding:80px max(45px,calc((100vw - var(--max))/2)) 80px max(48px,calc((100vw - var(--max))/2));
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-right:65px
}

.terrace .eyebrow {
  color:#c0c9ae
}

.terrace h2 {
  margin:24px 0 30px;
  font-size:clamp(43px,4.7vw,66px)
}

.terrace p {
  font-size:13px;
  color:#d5d8ce;
  max-width:340px
}

.terrace .text-link {
  color:var(--paper);
  border-color:#888f80;
  align-self:flex-start;
  margin-top:30px
}

.terrace figure {
  min-height:100%
}

.location-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center
}

.location-copy h2 {
  margin:18px 0 25px
}

.location-copy>p {
  font-size:14px;
  color:var(--muted);
  max-width:450px;
  margin-bottom:20px
}

.location-art {
  aspect-ratio:1;
  background:#e8e5d9;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  border:1px solid #dedbcd
}

.location-art:before,.location-art:after {
  content:'';
  position:absolute;
  width:140%;
  height:160px;
  border-top:1px solid #b8bcaa;
  border-bottom:1px solid #b8bcaa;
  transform:rotate(-30deg);
  top:50%;
  left:-20%
}

.location-art:after {
  transform:rotate(30deg);
  top:15%;
  border-color:#d0cbb9
}

.location-art-inner {
  position:relative;
  background:#e8e5d9;
  padding:35px;
  z-index:1
}

.location-art .serif {
  font-size:clamp(52px,6vw,84px);
  line-height:1;
  letter-spacing:-3px
}

.location-art .eyebrow {
  margin-top:24px;
  font-size:9px
}

.location-art .coordinates {
  font-size:10px;
  display:block;
  margin-top:18px;
  color:var(--muted)
}

.environment {
  margin-top:75px;
  border-top:1px solid var(--line);
  padding-top:40px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:50px
}

.environment article>span {
  color:var(--accent);
  font-size:11px
}

.environment h3 {
  font-family:var(--serif);
  font-size:28px;
  margin:16px 0
}

.environment p {
  color:var(--muted);
  font-size:13px
}

.information {
  background:#eeeee5
}

.faq-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:100px
}

.faq-layout .eyebrow {
  color:var(--accent);
  margin-bottom:18px
}

.faq-layout h2 {
  max-width:350px
}

.faq-list {
  border-top:1px solid var(--line)
}

.faq-list details {
  border-bottom:1px solid var(--line)
}

.faq-list summary {
  list-style:none;
  cursor:pointer;
  font-size:14px;
  padding:23px 34px 23px 0;
  position:relative
}

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

.faq-list summary:after {
  content:'+';
  position:absolute;
  right:0;
  font-size:23px;
  top:15px;
  font-weight:300;
  color:var(--accent)
}

.faq-list details[open] summary:after {
  content:'−'
}

.faq-list details p {
  font-size:13px;
  color:var(--muted);
  padding:0 25px 24px 0
}

.conditions {
  border-top:1px solid var(--line);
  margin-top:70px;
  padding-top:38px;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:100px
}

.conditions h3 {
  font-family:var(--serif);
  font-size:31px
}

.conditions-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px
}

.conditions-list h4 {
  font-weight:500;
  font-size:12px;
  margin:0 0 10px
}

.conditions-list p {
  font-size:12px;
  color:var(--muted)
}

.availability {
  padding:95px 20px;
  text-align:center
}

.availability .eyebrow {
  color:var(--accent)
}

.availability h2 {
  margin:23px auto;
  max-width:750px
}

.availability>p {
  font-size:13px;
  color:var(--muted);
  max-width:460px;
  margin:0 auto 28px
}

.availability .small {
  font-size:11px;
  margin:15px auto 0
}

.footer {
  border-top:1px solid var(--line);
  padding-block:40px 26px
}

.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}

.footer-top>p {
  max-width:250px;
  font-size:12px;
  color:var(--muted)
}

.footer-nav {
  display:flex;
  gap:25px;
  font-size:11px
}

.footer-bottom {
  border-top:1px solid var(--line);
  margin-top:35px;
  padding-top:20px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  font-size:10px
}

.registration {
  overflow-wrap:anywhere;
  max-width:650px
}

.mobile-cta {
  display:none
}

dialog {
  border:0;
  padding:0;
  background:var(--paper);
  color:var(--ink);
  max-width:min(570px,calc(100vw - 32px));
  width:100%;
  max-height:calc(100dvh - 40px);
  overflow:auto;
  box-shadow:0 20px 80px #0003
}

dialog::backdrop {
  background:#19201bd9;
  backdrop-filter:blur(3px)
}

.dialog-body {
  padding:55px 45px 45px
}

.dialog-body h2 {
  font-size:43px;
  letter-spacing:-1px;
  max-width:400px;
  margin:17px 0 24px
}

.dialog-body p {
  font-size:14px;
  color:var(--muted);
  margin-bottom:20px
}

.dialog-body .button {
  width:100%;
  margin-top:10px
}

.dialog-close {
  position:absolute;
  right:12px;
  top:10px;
  border:0;
  background:var(--paper);
  width:44px;
  height:44px;
  font-size:25px;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2
}

.dialog-footnote {
  font-size:11px!important;
  margin:20px 0 0!important
}

.photo-dialog {
  max-width:min(1150px,calc(100vw - 40px));
  background:#1d231f;
  color:var(--paper)
}

.lightbox-image {
  height:min(72vh,800px);
  object-fit:contain;
  padding:18px 55px
}

.lightbox-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 22px 20px;
  gap:20px;
  font-size:12px
}

.lightbox-controls {
  display:flex;
  align-items:center;
  gap:15px
}

.lightbox-controls button {
  border:1px solid #ffffff40;
  background:none;
  color:var(--paper);
  width:44px;
  height:44px;
  font-size:20px
}

.lightbox-title {
  margin:0;
  max-width:60%
}

.empty-gallery {
  color:var(--muted);
  padding:30px
}

.js-only {
  display:none
}

.has-js .js-only {
  display:revert
}

.has-js .no-js-only {
  display:none
}

@media(min-width:1600px) {
  .terrace-copy {
    padding-left:max(70px,calc((100vw - var(--max))/2));
    padding-right:65px
  }
}

@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 60px)
  }
  .main-nav {
    gap:18px
  }
  .header-inner {
    gap:20px
  }
  .header-actions {
    gap:15px
  }
  .header-actions>.button {
    display:none
  }
  .intro,.location-layout,.faq-layout,.conditions {
    gap:55px
  }
  .hero h1 {
    font-size:100px
  }
  .terrace-copy {
    padding:60px 45px
  }
  .amenities-layout {
    gap:40px
  }
  .terrace {
    min-height:540px
  }
}

@media(max-width:760px) {
  html {
    scroll-padding-top:90px
  }
  .wrap {
    width:calc(100% - 40px)
  }
  .site-header {
    height:76px
  }
  .header-inner {
    gap:15px
  }
  .brand {
    min-width:auto
  }
  .brand-name {
    font-size:26px
  }
  .brand-caption {
    font-size:7px;
    letter-spacing:1.7px
  }
  .header-actions {
    margin-left:auto;
    gap:13px
  }
  .menu-toggle {
    display:block
  }
  .main-nav {
    margin:0;
    position:absolute;
    left:0;
    right:0;
    top:75px;
    background:var(--paper);
    padding:25px 25px 35px;
    border-bottom:1px solid var(--line);
    display:flex;
    flex-direction:column;
    gap:0;
    box-shadow:0 20px 24px #2020190a
  }
  .main-nav a {
    padding:14px 0;
    font-size:18px
  }
  .main-nav a:after {
    display:none
  }
  .has-js .main-nav:not(.is-open) {
    display:none
  }
  .hero {
    padding-top:43px
  }
  .hero h1 {
    font-size:clamp(65px,13.5vw,97px);
    letter-spacing:-3px;
    line-height:1.02;
    margin-top:21px;
    margin-bottom:24px
  }
  .hero .eyebrow {
    font-size:9px;
    letter-spacing:1.8px
  }
  .hero-intro {
    font-size:12px;
    max-width:340px
  }
  .hero-links {
    gap:24px;
    margin-top:20px;
    margin-bottom:30px
  }
  .hero-links .text-link {
    font-size:11px
  }
  .hero-links .button {
    padding:13px 15px;
    font-size:11px;
    gap:13px
  }
  .hero-photo {
    height:450px;
    width:100vw;
    max-width:none;
    margin-left:-20px
  }
  .photo-caption {
    left:20px;
    bottom:20px;
    max-width:calc(100% - 100px);
    font-size:8px;
    padding:10px 12px
  }
  .photo-action {
    right:20px;
    bottom:20px;
    width:42px;
    justify-content:center;
    padding:10px
  }
  .photo-action span {
    display:none
  }
  .facts {
    padding:23px 0
  }
  .fact {
    flex-direction:column;
    align-items:center;
    gap:7px
  }
  .fact strong {
    font-size:29px
  }
  .fact span {
    font-size:10px
  }
  .section {
    padding-block:65px
  }
  h2 {
    font-size:44px;
    letter-spacing:-1.5px
  }
  .section-heading {
    align-items:flex-start;
    gap:20px;
    margin-bottom:30px
  }
  .section-heading>p {
    max-width:200px;
    font-size:11px
  }
  .section-heading .eyebrow {
    font-size:9px
  }
  .intro {
    grid-template-columns:1fr;
    gap:20px;
    padding-bottom:60px
  }
  .intro-copy {
    padding-top:5px
  }
  .intro-copy>p {
    font-size:13px;
    max-width:none
  }
  .intro h2 {
    max-width:340px
  }
  .gallery-section .section-heading {
    flex-direction:column;
    gap:20px
  }
  .gallery-section .section-heading>p {
    max-width:330px;
    font-size:12px
  }
  .gallery-grid {
    grid-template-columns:1fr 1fr;
    gap:10px
  }
  .gallery-item:first-child {
    grid-column:span 2;
    grid-row:auto;
    aspect-ratio:1.3
  }
  .gallery-item {
    aspect-ratio:.95
  }
  .gallery-label {
    left:9px;
    bottom:9px;
    font-size:9px;
    padding:4px 8px
  }
  .gallery-footer {
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
    font-size:10px
  }
  .spaces-grid {
    gap:22px;
    grid-template-columns:1fr
  }
  .room-photo {
    aspect-ratio:1.4
  }
  .room-heading h3 {
    font-size:25px
  }
  .room-heading span {
    font-size:11px
  }
  .amenities-layout {
    margin-top:40px;
    grid-template-columns:1fr;
    gap:15px
  }
  .amenities-layout h3 {
    font-size:28px
  }
  .amenities-list {
    gap:0 20px
  }
  .amenities-list li {
    font-size:11px;
    gap:10px
  }
  .terrace {
    grid-template-columns:1fr;
    min-height:auto
  }
  .terrace-copy {
    padding:58px 30px
  }
  .terrace h2 {
    font-size:47px;
    max-width:350px
  }
  .terrace p {
    max-width:380px;
    font-size:13px
  }
  .terrace figure {
    height:460px
  }
  .location-layout {
    grid-template-columns:1fr;
    gap:35px
  }
  .location-copy>p {
    font-size:13px
  }
  .location-art {
    aspect-ratio:1.45
  }
  .location-art .serif {
    font-size:63px
  }
  .location-art-inner {
    padding:20px 30px
  }
  .location-art .eyebrow {
    margin-top:17px
  }
  .environment {
    grid-template-columns:1fr;
    margin-top:40px;
    padding-top:30px;
    gap:28px
  }
  .environment article {
    display:grid;
    grid-template-columns:35px 1fr;
    gap:0 8px
  }
  .environment article>span {
    padding-top:8px
  }
  .environment h3 {
    margin:0 0 10px;
    font-size:27px
  }
  .environment p {
    grid-column:2;
    font-size:12px
  }
  .faq-layout {
    grid-template-columns:1fr;
    gap:30px
  }
  .faq-layout h2 {
    max-width:330px
  }
  .faq-list summary {
    font-size:13px;
    padding-block:20px
  }
  .faq-list details p {
    font-size:12px
  }
  .conditions {
    margin-top:45px;
    padding-top:30px;
    grid-template-columns:1fr;
    gap:25px
  }
  .conditions-list {
    gap:25px
  }
  .availability {
    padding-block:65px
  }
  .availability h2 {
    font-size:47px;
    max-width:430px
  }
  .footer-top {
    align-items:flex-start;
    flex-wrap:wrap;
    gap:25px
  }
  .footer-nav {
    width:100%;
    gap:22px;
    flex-wrap:wrap
  }
  .footer-bottom {
    flex-direction:column;
    font-size:9px;
    gap:12px
  }
  .footer {
    padding-bottom:110px
  }
  .mobile-cta {
    display:flex;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:25;
    border-top:1px solid var(--line);
    background:var(--paper);
    padding:12px 20px calc(12px + env(safe-area-inset-bottom));
    align-items:center;
    justify-content:space-between;
    gap:12px
  }
  .mobile-cta>span {
    font-family:var(--serif);
    font-size:17px;
    line-height:1.2
  }
  .mobile-cta .button {
    font-size:10px;
    min-height:44px;
    padding:12px 14px;
    gap:15px
  }
  .dialog-body {
    padding:50px 25px 30px
  }
  .dialog-body h2 {
    font-size:37px
  }
  .dialog-body p {
    font-size:13px
  }
  .lightbox-image {
    height:60dvh;
    padding:55px 10px 10px
  }
  .lightbox-toolbar {
    padding:10px 15px 15px;
    gap:12px;
    flex-wrap:wrap
  }
  .lightbox-title {
    max-width:100%;
    width:100%;
    font-size:12px
  }
  .lightbox-controls {
    margin-left:auto
  }
  .photo-dialog {
    max-width:calc(100vw - 20px)
  }
}

@media(max-width:380px) {
  .hero h1 {
    font-size:60px
  }
  .hero-links {
    gap:16px
  }
  .hero-links .button {
    padding-inline:10px;
    gap:9px
  }
  .facts {
    gap:0
  }
  .fact span {
    font-size:9px
  }
  .conditions-list {
    grid-template-columns:1fr
  }
  .amenities-list {
    grid-template-columns:1fr
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
}

.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.gallery-item>a {
  display:block;
  width:100%;
  height:100%
}

.gallery-item>a:hover img {
  transform:scale(1.035)
}

.gallery-item>a:focus-visible {
  outline-offset:-5px;
  outline-color:var(--paper)
}

@media(max-width:760px) {
  html:not(.has-js) .site-header {
    height:auto;
    position:relative
  }
  html:not(.has-js) .header-inner {
    flex-wrap:wrap;
    padding-block:18px
  }
  html:not(.has-js) .main-nav {
    position:static;
    order:3;
    width:100%;
    padding:10px 0;
    flex-direction:row;
    flex-wrap:wrap;
    gap:5px 18px;
    box-shadow:none;
    border:0
  }
  html:not(.has-js) .main-nav a {
    font-size:12px;
    padding:5px 0
  }
}

/* Catálogo y fichas: catàleg per dades. */
.has-js .menu-toggle {
  display:none
}

.brand {
  min-width:235px
}

.brand-name {
  font-size:27px;
  letter-spacing:-.9px;
  white-space:nowrap
}

.brand-name i {
  font-size:23px;
  color:var(--accent);
  padding-inline:1px
}

.brand-caption {
  font-size:8px;
  letter-spacing:2.6px;
  margin-top:9px
}

.header-inner {
  gap:25px
}

.main-nav {
  gap:23px
}

.main-nav a {
  font-size:11px
}

.header-actions {
  gap:18px
}

.button-compact {
  font-size:10px;
  padding-inline:14px;
  gap:17px
}

.home-hero {
  padding-top:64px;
  text-align:center
}

.home-hero>.eyebrow {
  font-size:10px;
  color:var(--accent);
  letter-spacing:2.5px
}

.home-hero h1 {
  font-family:var(--serif);
  font-size:clamp(65px,7.4vw,106px);
  line-height:1.03;
  letter-spacing:-4px;
  margin:23px auto 25px;
  max-width:1150px
}

.home-hero h1 em {
  color:var(--accent)
}

.hero-intro {
  font-size:13px;
  max-width:480px
}

.hero-explore {
  margin:20px auto 38px;
  gap:35px;
  font-size:11px
}

.hero-pair {
  display:grid;
  grid-template-columns:1.65fr 1fr;
  gap:18px;
  height:440px;
  text-align:left
}

.hero-pair>a {
  display:block;
  overflow:hidden;
  text-decoration:none
}

.hero-pair figure {
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden
}

.hero-pair img {
  transition:transform .8s
}

.hero-pair a:hover img {
  transform:scale(1.025)
}

.hero-pair figcaption {
  position:absolute;
  bottom:18px;
  left:18px;
  right:18px;
  padding:10px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:var(--paper);
  font-size:10px
}

.hero-baseline {
  display:flex;
  justify-content:space-between;
  padding-top:17px;
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
  text-transform:uppercase;
  font-size:9px;
  letter-spacing:1.4px;
  color:var(--muted)
}

.collection-controls {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:32px;
  gap:20px
}

.collection-controls .filters {
  margin-bottom:0
}

.collection-count {
  font-size:11px;
  color:var(--muted)
}

.stay-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:54px 32px
}

.stay-card[hidden] {
  display:none
}

.stay-card-link {
  display:block;
  text-decoration:none
}

.stay-card-photo {
  position:relative;
  aspect-ratio:1.48;
  overflow:hidden;
  background:var(--pale)
}

.stay-card-photo img {
  transition:transform .8s
}

.stay-card-link:hover img {
  transform:scale(1.025)
}

.stay-card-link:focus-visible {
  outline-offset:8px
}

.card-place {
  position:absolute;
  top:17px;
  left:17px;
  background:var(--paper);
  padding:7px 13px;
  font-size:9px;
  letter-spacing:.6px
}

.card-arrow {
  position:absolute;
  bottom:17px;
  right:17px;
  background:var(--paper);
  width:38px;
  height:38px;
  display:flex;
  justify-content:center;
  align-items:center;
  font-size:21px;
  transition:background .2s
}

.stay-card-link:hover .card-arrow {
  background:var(--pale)
}

.card-copy {
  padding:22px 0 0
}

.card-copy>.eyebrow {
  font-size:9px;
  letter-spacing:1.5px;
  color:var(--accent);
  margin-bottom:11px
}

.card-copy h3 {
  font-family:var(--serif);
  font-size:clamp(25px,2.4vw,33px);
  letter-spacing:-.7px;
  margin-bottom:13px
}

.card-intro {
  font-size:12px;
  color:var(--muted);
  max-width:490px;
  min-height:60px;
  line-height:1.8
}

.card-stats {
  font-size:11px;
  color:var(--muted);
  margin:17px 0 6px
}

.card-copy>.text-link {
  font-size:10px;
  gap:35px
}

.stay-card:last-child:nth-child(odd) {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px
}

.stay-card:last-child:nth-child(odd) .stay-card-link {
  display:contents
}

.stay-card:last-child:nth-child(odd) .card-copy {
  padding:35px 30px;
  display:flex;
  align-items:flex-start;
  flex-direction:column;
  justify-content:center;
  background:#efeee4
}

.stay-card:last-child:nth-child(odd) .card-intro {
  min-height:0
}

.stay-card:last-child:nth-child(odd) .card-place {
  display:none
}

.destinations {
  background:var(--pale)
}

.destinations-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  padding-top:10px
}

.destinations-grid>article {
  border-top:1px solid #c4cbb7;
  padding-top:24px;
  position:relative
}

.destination-number {
  font-size:10px;
  letter-spacing:2px;
  color:var(--accent)
}

.destinations-grid h3 {
  font-family:var(--serif);
  font-size:clamp(60px,6.8vw,93px);
  letter-spacing:-4px;
  line-height:1.02;
  min-height:190px;
  margin-top:30px
}

.destinations-grid p {
  max-width:400px;
  font-size:13px;
  color:#5b6352;
  line-height:1.85;
  margin:20px 0
}

.destinations-grid .text-link {
  font-size:11px
}

.host-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center
}

.host-section h2 {
  margin-top:22px;
  max-width:470px
}

.host-section>div>p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted)
}

.host-section .text-link {
  margin-top:14px
}

.listing-options {
  list-style:none;
  padding:0;
  margin:15px 0
}

.listing-options a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  font-size:12px
}

.listing-options a:hover {
  color:var(--accent)
}

.selected-listing-name {
  font-family:var(--serif);
  font-size:24px!important;
  color:var(--ink)!important
}

.breadcrumb {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:30px;
  font-size:11px;
  color:var(--muted)
}

.breadcrumb a {
  text-decoration:none
}

.property-hero {
  padding-top:47px;
  text-align:center
}

.property-hero>.eyebrow {
  color:var(--accent);
  font-size:10px
}

.property-hero h1 {
  font-family:var(--serif);
  font-size:clamp(47px,5.5vw,79px);
  line-height:1.07;
  letter-spacing:-2.6px;
  max-width:1000px;
  margin:22px auto 19px
}

.property-subtitle {
  font-size:13px;
  color:var(--muted);
  margin-bottom:32px
}

.property-hero-photo {
  display:grid;
  grid-template-columns:1.7fr 1fr;
  gap:15px;
  height:510px;
  position:relative
}

.property-hero-photo figure {
  height:100%;
  min-width:0;
  overflow:hidden
}

.property-hero .facts {
  grid-template-columns:repeat(auto-fit,minmax(100px,1fr))
}

.intro .amenities-full {
  grid-column:1/-1
}

.amenities-full .amenities-layout {
  margin-top:5px
}

.amenity-mark {
  color:var(--accent);
  font-size:16px;
  width:22px;
  flex-shrink:0;
  text-align:center
}

.property-lead {
  color:var(--ink)!important;
  font-size:16px!important
}

.property-notes {
  border-left:2px solid var(--accent);
  padding:5px 0 5px 19px;
  margin:30px 0
}

.property-notes h3 {
  font-size:12px;
  font-weight:600
}

.property-notes ul {
  padding-left:16px;
  margin:12px 0 0;
  color:var(--muted);
  font-size:12px
}

.property-notes li+li {
  margin-top:8px
}

.sleeping-arrangements {
  margin-top:38px;
  padding-top:28px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px 45px
}

.sleeping-arrangements h3 {
  font-family:var(--serif);
  font-size:29px;
  grid-row:span 3
}

.sleeping-arrangements p {
  font-size:12px;
  color:var(--muted)
}

.map-note {
  font-size:10px!important;
  margin-top:17px!important
}

.property-surroundings {
  margin-top:50px;
  padding-top:30px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:60px
}

.property-surroundings>p:last-child {
  font-size:13px;
  color:var(--muted)
}

.registration-block {
  padding-block:10px 35px;
  font-size:10px;
  color:var(--muted);
  overflow-wrap:anywhere
}

.registration-block>.eyebrow {
  font-size:8px;
  letter-spacing:1.5px;
  margin-bottom:8px
}

.related-section h2 {
  font-size:49px
}

.related-section .stay-card:last-child:nth-child(odd) {
  grid-column:auto;
  display:block
}

.related-section .stay-card:last-child:nth-child(odd) .stay-card-link {
  display:block
}

.related-section .stay-card:last-child:nth-child(odd) .card-copy {
  padding:22px 0 0;
  display:block;
  background:none
}

.related-section .stay-card:last-child:nth-child(odd) .card-place {
  display:block
}

.gallery-grid {
  grid-template-columns:repeat(4,1fr)
}

.gallery-item:first-child {
  grid-column:span 2;
  grid-row:span 2
}

.gallery-item {
  aspect-ratio:1.1
}

.gallery-item:first-child {
  aspect-ratio:auto
}

.gallery-item:nth-child(n+6) {
  grid-column:span 2;
  aspect-ratio:1.7
}

.conditions-list {
  grid-template-columns:1fr 1fr
}

.facts {
  justify-content:center
}

@media(max-width:1150px) {
  .header-actions>.button {
    display:none
  }
  .main-nav {
    gap:18px
  }
  .header-inner {
    gap:18px
  }
  .brand {
    min-width:215px
  }
  .brand-name {
    font-size:25px
  }
  .hero-pair {
    height:385px
  }
  .host-section {
    gap:55px
  }
  .home-hero h1 {
    font-size:clamp(65px,7.7vw,92px)
  }
}

@media(max-width:850px) {
  .main-nav {
    gap:13px
  }
  .main-nav a {
    font-size:10px
  }
  .brand {
    min-width:195px
  }
  .brand-name {
    font-size:23px
  }
  .header-actions {
    gap:10px
  }
  .header-inner {
    gap:12px
  }
  .destinations-grid {
    gap:45px
  }
  .destinations-grid h3 {
    font-size:66px;
    min-height:145px
  }
  .property-hero-photo {
    height:400px
  }
  .card-intro {
    min-height:85px
  }
}

@media(max-width:760px) {
  .brand {
    min-width:0
  }
  .brand-name {
    font-size:23px;
    letter-spacing:-.9px
  }
  .brand-name i {
    font-size:21px
  }
  .brand-caption {
    font-size:7px;
    letter-spacing:2px;
    margin-top:7px
  }
  .header-actions {
    gap:8px
  }
  .header-inner {
    gap:10px
  }
  .main-nav {
    gap:0
  }
  .main-nav a {
    font-size:17px
  }
  .home-hero {
    padding-top:42px
  }
  .home-hero>.eyebrow {
    font-size:8px;
    letter-spacing:1.8px
  }
  .home-hero h1 {
    font-size:clamp(48px,11.5vw,76px);
    line-height:1.07;
    letter-spacing:-2px;
    margin:25px auto 23px
  }
  .hero-intro {
    font-size:12px;
    max-width:320px
  }
  .hero-explore {
    margin-top:16px;
    margin-bottom:30px;
    font-size:10px
  }
  .hero-pair {
    grid-template-columns:1.45fr 1fr;
    height:300px;
    gap:9px;
    width:calc(100% + 40px);
    margin-left:-20px
  }
  .hero-pair figcaption {
    left:10px;
    right:10px;
    bottom:12px;
    font-size:8px;
    line-height:1.4;
    padding:8px 10px;
    gap:8px
  }
  .hero-pair figcaption .arrow {
    font-size:16px
  }
  .hero-baseline {
    padding-top:14px;
    font-size:7px;
    letter-spacing:.7px;
    gap:12px
  }
  .hero-baseline>span:nth-child(2) {
    display:none
  }
  .collection-controls {
    margin-bottom:25px;
    align-items:flex-start;
    gap:12px
  }
  .filters {
    gap:6px
  }
  .filter {
    padding:8px 13px;
    font-size:10px
  }
  .collection-count {
    font-size:9px;
    padding-top:12px;
    white-space:nowrap
  }
  .stay-grid {
    grid-template-columns:1fr;
    gap:37px
  }
  .stay-card-photo {
    aspect-ratio:1.35
  }
  .card-place {
    top:13px;
    left:13px;
    font-size:8px;
    padding:6px 10px
  }
  .card-arrow {
    bottom:13px;
    right:13px;
    width:33px;
    height:33px;
    font-size:18px
  }
  .card-copy {
    padding-top:19px
  }
  .card-copy h3 {
    font-size:28px;
    letter-spacing:-.7px;
    max-width:340px;
    margin-bottom:11px
  }
  .card-copy>.eyebrow {
    font-size:8px;
    margin-bottom:10px
  }
  .card-intro {
    font-size:12px;
    min-height:0;
    max-width:100%
  }
  .card-stats {
    font-size:10px;
    margin-top:13px
  }
  .card-copy>.text-link {
    font-size:10px;
    padding-top:7px
  }
  .stay-card:last-child:nth-child(odd) {
    grid-column:auto;
    display:block
  }
  .stay-card:last-child:nth-child(odd) .stay-card-link {
    display:block
  }
  .stay-card:last-child:nth-child(odd) .card-copy {
    padding:19px 0 0;
    display:block;
    background:none
  }
  .stay-card:last-child:nth-child(odd) .card-place {
    display:block
  }
  .destinations .section-heading h2 {
    max-width:300px
  }
  .destinations-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .destinations-grid h3 {
    font-size:65px;
    min-height:0;
    margin-top:22px
  }
  .destinations-grid p {
    max-width:100%;
    font-size:12px;
    margin-top:22px
  }
  .destinations-grid>article {
    padding-top:20px
  }
  .destination-number {
    font-size:9px
  }
  .host-section {
    grid-template-columns:1fr;
    gap:30px
  }
  .host-section h2 {
    max-width:340px;
    font-size:43px
  }
  .host-section>div>p:not(.eyebrow) {
    font-size:12px
  }
  .host-section .note {
    margin-top:22px
  }
  .footer-top>.brand {
    width:100%
  }
  .footer-top>p {
    max-width:280px;
    font-size:11px
  }
  .mobile-cta>span {
    font-size:16px;
    max-width:110px
  }
  .mobile-cta .button {
    max-width:235px
  }
  .breadcrumb {
    font-size:9px;
    padding-top:23px;
    gap:15px
  }
  .property-hero {
    padding-top:35px
  }
  .property-hero>.eyebrow {
    font-size:8px;
    letter-spacing:1.4px
  }
  .property-hero h1 {
    font-size:46px;
    letter-spacing:-1.8px;
    margin-top:18px;
    max-width:420px
  }
  .property-subtitle {
    font-size:12px;
    margin-bottom:26px
  }
  .property-hero-photo {
    grid-template-columns:1fr;
    gap:0;
    height:375px;
    width:calc(100% + 40px);
    margin-left:-20px
  }
  .property-second-photo {
    display:none
  }
  .property-hero .photo-action {
    width:auto;
    font-size:10px;
    padding:10px 12px;
    gap:8px
  }
  .property-hero .photo-action span {
    display:block
  }
  .property-hero .facts {
    grid-template-columns:repeat(auto-fit,minmax(70px,1fr));
    gap:0
  }
  .property-hero .fact strong {
    font-size:29px
  }
  .property-hero .fact span {
    font-size:9px
  }
  .property-lead {
    font-size:14px!important
  }
  .intro .amenities-full {
    margin-top:20px
  }
  .amenities-full .amenities-layout {
    margin-top:0
  }
  .sleeping-arrangements {
    grid-template-columns:1fr;
    gap:12px;
    margin-top:30px;
    padding-top:25px
  }
  .sleeping-arrangements h3 {
    grid-row:auto;
    font-size:27px;
    margin-bottom:3px
  }
  .property-notes {
    margin-top:25px
  }
  .property-notes ul {
    font-size:11px;
    line-height:1.8
  }
  .property-surroundings {
    grid-template-columns:1fr;
    gap:17px;
    margin-top:35px;
    padding-top:25px
  }
  .property-surroundings>p:last-child {
    font-size:12px
  }
  .related-section h2 {
    font-size:41px;
    max-width:350px
  }
  .gallery-grid {
    grid-template-columns:1fr 1fr;
    gap:9px
  }
  .gallery-item:first-child {
    grid-column:span 2;
    grid-row:auto;
    aspect-ratio:1.4
  }
  .gallery-item {
    aspect-ratio:1
  }
  .gallery-item:nth-child(n+6) {
    grid-column:auto;
    aspect-ratio:1
  }
  .gallery-label {
    font-size:8px;
    max-width:calc(100% - 18px);
    line-height:1.5
  }
  .location-art .serif {
    font-size:57px
  }
  .conditions-list {
    gap:25px
  }
  .dialog-body {
    padding-top:50px
  }
  .dialog-body h2 {
    font-size:38px
  }
  .listing-options a {
    font-size:11px
  }
  .listing-options .arrow {
    font-size:17px
  }
}

@media(max-width:380px) {
  .brand-name {
    font-size:20px
  }
  .brand-name i {
    font-size:19px
  }
  .brand-caption {
    font-size:6px;
    letter-spacing:1.8px
  }
  .home-hero h1 {
    font-size:46px
  }
  .hero-pair {
    height:260px
  }
  .hero-pair figcaption {
    font-size:7px;
    padding-inline:7px
  }
  .collection-controls {
    flex-direction:column;
    gap:6px
  }
  .collection-count {
    padding-top:0
  }
  .conditions-list {
    grid-template-columns:1fr
  }
  .property-hero h1 {
    font-size:42px
  }
  .mobile-cta>span {
    font-size:14px;
    max-width:85px
  }
  .mobile-cta .button {
    font-size:9px;
    gap:9px;
    padding-inline:11px
  }
}

@media(max-width:760px) {
  .has-js .menu-toggle {
    display:block
  }
}

@media(max-width:760px) {
  .section-heading {
    flex-direction:column;
    gap:17px
  }
  .section-heading>p {
    max-width:340px;
    font-size:12px
  }
  .section-heading h2 {
    max-width:360px
  }
}

.stay-grid.is-filtered .stay-card:last-child:nth-child(odd) {
  grid-column:auto;
  display:block
}

.stay-grid.is-filtered .stay-card:last-child:nth-child(odd) .stay-card-link {
  display:block
}

.stay-grid.is-filtered .stay-card:last-child:nth-child(odd) .card-copy {
  padding:22px 0 0;
  display:block;
  background:none
}

.stay-grid.is-filtered .stay-card:last-child:nth-child(odd) .card-place {
  display:block
}
/* Mantener la distribución del botón al activar la mejora con JavaScript. */
.has-js .photo-action {
  display: flex;
}

/* Opiniones: selección editorial de reseñas reales de cada alojamiento. */
.reviews-section {
  background: #19211d;
  color: #f8f6f0;
  padding-block: 90px 66px;
}
.reviews-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 46px;
}
.reviews-heading .eyebrow {
  color: #bdc7ba;
  font-size: 10px;
  letter-spacing: 2.2px;
  margin-bottom: 20px;
}
.reviews-heading h2 {
  font-size: clamp(40px, 4.5vw, 59px);
  letter-spacing: -1.7px;
  max-width: 850px;
}
.reviews-controls {
  gap: 15px;
  align-items: center;
  flex-shrink: 0;
}
.has-js .reviews-controls {
  display: flex;
}
.has-js .reviews-controls[hidden] {
  display: none;
}
.reviews-controls button {
  background: transparent;
  border: 1px solid #788076;
  color: #f8f6f0;
  width: 44px;
  height: 44px;
  font-size: 21px;
}
.reviews-controls button:hover:not(:disabled) {
  background: #f8f6f016;
}
.reviews-controls button:disabled {
  opacity: .3;
}
.reviews-position {
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: #c3cbbf;
}
.reviews-rail {
  --review-gap: 40px;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 2 * var(--review-gap)) / 3);
  gap: var(--review-gap);
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0 0 20px;
  list-style: none;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: #697464 #19211d;
}
.review-card {
  position: relative;
  min-width: 0;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
}
.review-card > figure {
  display: flex;
  flex-direction: column;
  min-height: 390px;
  height: 100%;
}
.review-rating {
  padding-bottom: 27px;
  border-bottom: 1px solid #a6afa466;
}
.review-stars {
  color: #ed9768;
  font-size: 27px;
  line-height: 1;
  letter-spacing: 3px;
}
.review-card blockquote {
  flex: 1;
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 400;
  line-height: 1.48;
  letter-spacing: -.3px;
  margin: 26px 0 30px;
}
.review-author {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}
.review-property {
  display: inline-block;
  color: #d3d9cd;
  font-size: 12px;
  line-height: 1.5;
  margin-top: 8px;
  text-decoration-color: #aebba080;
  text-underline-offset: 4px;
}
.review-property:hover,
.review-meta a:hover {
  color: #ed9768;
}
.review-meta {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 11px;
  color: #c3cbbf;
  font-size: 10px;
}
.review-meta time {
  text-transform: uppercase;
  letter-spacing: .6px;
}
.review-meta a {
  text-decoration: none;
}
.review-kind {
  display: block;
  color: #9fae9b;
  font-size: 9px;
  margin-top: 8px;
}
.reviews-note {
  border-top: 1px solid #a6afa433;
  padding-top: 23px;
  margin-top: 28px;
  max-width: 100%;
  color: #bac6b6;
  font-size: 10px;
  line-height: 1.8;
}
.reviews-section :is(a, button, .reviews-rail):focus-visible {
  outline: 2px solid #ed9768;
  outline-offset: 5px;
}
@media(max-width: 1050px) {
  .reviews-rail {
    --review-gap: 30px;
    grid-auto-columns: calc((100% - var(--review-gap)) / 2);
  }
  .reviews-heading h2 {
    max-width: 620px;
    font-size: 47px;
  }
  .reviews-heading {
    align-items: flex-start;
  }
  .reviews-controls {
    gap: 10px;
    align-self: flex-end;
  }
}
@media(max-width: 760px) {
  .reviews-section {
    padding-block: 58px 43px;
  }
  .reviews-heading {
    flex-direction: column;
    align-items: flex-start;
    gap: 25px;
    margin-bottom: 30px;
  }
  .reviews-heading .eyebrow {
    font-size: 9px;
    margin-bottom: 18px;
  }
  .reviews-heading h2 {
    max-width: 370px;
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -1.2px;
  }
  .reviews-controls {
    align-self: flex-start;
    gap: 17px;
  }
  .reviews-rail {
    --review-gap: 24px;
    grid-auto-columns: 100%;
    padding-bottom: 18px;
  }
  .review-card > figure {
    min-height: 330px;
  }
  .review-rating {
    padding-bottom: 23px;
  }
  .review-stars {
    font-size: 25px;
  }
  .review-card blockquote {
    font-size: 25px;
    margin-top: 24px;
    margin-bottom: 30px;
    line-height: 1.5;
  }
  .review-author {
    font-size: 11px;
  }
  .review-property {
    font-size: 11px;
  }
  .reviews-note {
    font-size: 9px;
    margin-top: 23px;
    padding-top: 19px;
  }
}
@media(prefers-reduced-motion: reduce) {
  .reviews-rail {
    scroll-behavior: auto;
  }
}

/* Identitat Sa Calma: recursos originals i paleta de la guia de marca. */
.hero-pair figure{background:var(--sc-pedra)}
.location-art-inner .serif{font-size:clamp(34px,4.3vw,62px);overflow-wrap:anywhere;line-height:1.1}
@media(min-width:1000px){.home-hero h1{font-size:clamp(72px,8vw,116px)}}

.destinations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.destinations-grid{grid-template-columns:minmax(0,1fr)}.destinations-grid h3{font-size:clamp(48px,15.2vw,65px)}}

.brand{display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:0;padding:14px 12px;text-decoration:none}
.brand-logo{display:block;width:240px;flex-shrink:0}
.brand-logo img,.brand-logo-footer{height:auto;object-fit:contain}
.brand-logo img{width:100%}
.home-title-line{font-style:italic;color:var(--sc-bosc)}
.button,.filter,.photo-action,.language-list,.reviews-controls button{border-radius:2px}
.button-compact,.filter,.languages summary{min-height:44px}
.eyebrow{font-size:13px}
.destinations{background:var(--sc-salvia)}
.destinations-grid p,.destinations .destination-number{color:var(--sc-avet)}
.destinations-grid>article{border-color:var(--sc-bosc)}
.filter{border-color:var(--sc-salvia)}
.gallery-item,.stay-card:last-child:nth-child(odd) .card-copy,.location-art,.location-art-inner{background:var(--sc-pedra)}
.location-art{border-color:var(--sc-salvia)}
.location-art:before,.location-art:after{border-color:var(--sc-salvia)}
.information{background:var(--pale)}
.terrace .eyebrow{color:var(--sc-salvia)}
.terrace p{color:var(--sc-marfil)}
.terrace .text-link{border-color:var(--sc-salvia)}
.reviews-section{background:var(--sc-avet);color:var(--sc-marfil)}
.reviews-heading .eyebrow,.review-stars,.review-kind{color:var(--sc-salvia)}
.reviews-controls button{border-color:var(--sc-salvia);color:var(--sc-marfil)}
.reviews-controls button:hover:not(:disabled){background:var(--sc-bosc)}
.reviews-position,.review-property,.review-meta,.reviews-note{color:var(--sc-marfil)}
.review-property:hover,.review-meta a:hover{color:var(--sc-salvia)}
.review-rating,.reviews-note{border-color:color-mix(in srgb,var(--sc-marfil) 30%,transparent)}
.review-property{text-decoration-color:var(--sc-salvia)}
.reviews-rail{scrollbar-color:var(--sc-salvia) var(--sc-avet)}
.reviews-section :is(a,button,.reviews-rail):focus-visible{outline-color:var(--sc-marfil)}
.photo-dialog{background:var(--sc-avet)}
.footer{background:var(--sc-avet);color:var(--sc-marfil);border-color:var(--sc-avet);padding-block:56px 28px}
.footer .brand{padding:18px 16px}
.footer .brand-logo-footer{width:220px}
.footer-contact{max-width:340px;font-size:13px;line-height:1.8}
.footer-bottom{color:var(--sc-marfil);border-color:var(--sc-bosc)}
.footer :is(a,button):focus-visible{outline-color:var(--sc-marfil)}
.not-found{min-height:75vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:24px}
.not-found .brand{padding-left:0;margin-bottom:15px}
.booking-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px 32px;margin-top:24px}
.booking-actions .button{margin:0}
.footer-contact>a{display:inline-block;margin-top:14px;text-underline-offset:4px}
.dialog-email{margin-top:22px}
.not-found h1{font-family:var(--serif);font-size:clamp(42px,6vw,76px);line-height:1.1}

@media(min-width:761px){
  .wrap{width:min(var(--max),calc(100% - 128px))}
  .header-inner{gap:18px}
  .site-header .brand{padding-inline:8px}
}
@media(max-width:1050px) and (min-width:761px){
  .header-inner{gap:12px}
  .main-nav{gap:13px}
  .site-header .brand{padding-inline:0}
}
@media(max-width:760px){
  .wrap{width:calc(100% - 44px)}
  .brand{padding:7px 0}
  .site-header .brand-logo{width:240px}
  .header-inner{gap:8px}
  .header-actions{gap:4px}
  .hero-pair,.property-hero-photo{width:calc(100% + 44px);margin-left:-22px}
  .footer-top>.brand{width:auto;align-self:flex-start}
  .footer .brand{padding:18px 0}
  .footer-top{align-items:flex-start}
  .footer-contact{max-width:320px}
  .footer{padding-bottom:110px}
}
@media(max-width:380px){
  .site-header .brand-logo{width:44px}
}

/* En mòbil, el text i la fotografia ja identifiquen l’enllaç. */
@media(max-width:760px),(hover:none) and (pointer:coarse) and (max-width:1024px){
  .arrow,.card-arrow,.external-mark{display:none}
}
