:root {
  --ink: #302027;
  --wine: #6d2947;
  --wine-dark: #522037;
  --paper: #fffaf8;
  --rose: #f5e7e9;
}

body { color: var(--ink); background: var(--paper); }
h1, h2, .site-brand { font-family: Georgia, serif; }
:focus-visible { outline: 3px solid #b44776; outline-offset: 3px; }
img { max-inline-size: 100%; }
.site-skip { position: absolute; top: 0; left: 1rem; z-index: 1021; padding: .6rem; background: white; }
.site-skip:not(:focus) { clip-path: inset(50%); }
.site-header { position: sticky; top: 0; z-index: 1020; background: var(--paper); border-bottom: 1px solid #e6d2d9; }
.site-header-inner {
  display: flex;
  align-items: center;
  gap: clamp(.5rem, 2vw, 1.5rem);
  position: relative;
  width: min(100%, 85rem);
  min-height: 4.5rem;
  margin: auto;
  padding: .55rem clamp(.7rem, 3vw, 2rem);
}
.site-header a { color: var(--ink); text-decoration: none; }
.site-brand { margin-right: auto; font-size: clamp(1rem, 2.3vw, 1.6rem); font-weight: bold; line-height: 1.1; }
.site-brand span { color: var(--wine); }
.site-nav, .site-languages { display: flex; align-items: center; gap: .25rem; }
.site-nav a, .site-languages a, .site-menu summary { padding: .5rem; border-radius: .4rem; }
.site-header a[aria-current="page"], .site-header nav a:hover, .site-languages a:hover { background: var(--rose); color: var(--wine-dark); }
.site-languages { font-weight: 700; }
.site-header .site-booking { padding: .55rem .8rem; background: var(--wine); color: white; border-radius: 2rem; text-align: center; }
.site-header .site-booking:hover { background: var(--wine-dark); }
.site-menu { display: none; }
#content, #content section[id], #page-top { scroll-margin-top: 5.5rem; }

.masthead.bg-custom {
  min-height: 0;
  height: auto;
  padding-block: clamp(3rem, 8vw, 7rem);
  background-color: var(--wine-dark);
  background-blend-mode: multiply;
  color: white;
}
.masthead.site-home-hero { padding-block: clamp(5rem, 14vw, 12rem); }
.masthead h1 { font-size: clamp(2.15rem, 7vw, 5.6rem); overflow-wrap: anywhere; }
.masthead .tshadow { text-shadow: 0 2px 14px #26151f; }
.hero-subtitle { font-size: clamp(1rem, 2.8vw, 1.45rem); }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.btn.btn-primary, footer.footer .social-link { background-color: var(--wine); border-color: var(--wine); }
.btn.btn-primary:hover, footer.footer .social-link:hover { background-color: var(--wine-dark); border-color: var(--wine-dark); }
.btn.hero-secondary { color: white; border: 1px solid white; background: #302027a6; }
.btn.hero-secondary:hover { color: var(--wine-dark); background: white; }
.content-section { padding-block: clamp(2.6rem, 7vw, 6rem); }
.content-section.bg-light { background-color: var(--rose) !important; }
.content-section.bg-primary { background-color: var(--wine-dark) !important; }
.content-section .text-secondary { color: var(--wine) !important; }
.content-section li, .content-section p { overflow-wrap: anywhere; }
.content-section img { height: auto; }
.portfolio-item { border-radius: 1rem; }
.portfolio-item .caption { background: linear-gradient(transparent 15%, #24151ce6); }
.portfolio-item .caption .caption-content { margin: auto 1.2rem 1.2rem; }
.portfolio-item:hover .caption { background-color: #522037de; clip-path: none; }
.portfolio-item:hover img { clip-path: none; }
.map { height: clamp(16rem, 44vw, 27rem); }

#gallery .gallery-photo { display: block; width: 33.333%; padding: .35rem; }
#gallery .gallery-photo img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; padding: 0 !important; border-radius: .65rem; }
.gallery-dialog { max-width: min(93vw, 62rem); max-height: 94dvh; padding: .65rem; border: 0; border-radius: .8rem; background: var(--paper); }
.gallery-dialog::backdrop { background: #24151cd9; }
.gallery-dialog form { display: flex; justify-content: end; margin-bottom: .4rem; }
.gallery-dialog img { display: block; max-height: 78dvh; object-fit: contain; margin: auto; }
.gallery-close { border: 0; border-radius: .4rem; padding: .4rem .75rem; color: white; background: var(--wine); }

.scroll-to-top.is-visible { display: block; background: var(--wine); text-decoration: none; }
@media (max-width: 61.99rem) {
  .site-nav { display: none; }
  .site-menu { display: block; }
  .site-menu summary { color: var(--wine-dark); cursor: pointer; }
  .site-menu nav { position: absolute; inset: 100% .5rem auto; display: grid; padding: .65rem; background: var(--paper); border: 1px solid #e6d2d9; border-radius: .6rem; box-shadow: 0 10px 26px #30202726; }
  .site-menu nav a { padding: .65rem; border-radius: .4rem; }
}
@media (max-width: 35rem) {
  .site-header-inner { min-height: 4rem; padding-inline: .55rem; gap: .3rem; }
  .site-header .site-booking, .site-languages a, .site-menu summary { padding: .42rem; font-size: .88rem; }
  #gallery .gallery-photo { width: 50%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .portfolio-item *, .btn { transition: none !important; }
}
