:root{--green:#14382d;--deep:#102b24;--cream:#f3efdf;--ink:#18382e;--brass:#c8a966;--muted:#cdd2bf;--line:rgba(200,169,102,.36);--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--green);color:var(--cream);font:16px/1.6 var(--sans)}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--brass);outline-offset:6px}img{display:block;width:100%;height:100%;object-fit:cover}figure,p,h1,h2{margin:0}em{font-weight:400}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.06;letter-spacing:-.055em}button{color:inherit}section[id]{scroll-margin-top:20px}.skip-link{position:absolute;left:12px;top:-100px;background:var(--cream);color:var(--ink);padding:12px;z-index:100}.skip-link:focus{top:12px}.site-header{max-width:1600px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:25px 4.5%;border-bottom:1px solid var(--line);gap:25px}.brand{font-family:var(--serif);font-size:25px;font-weight:bold;line-height:1;letter-spacing:-.04em}.site-header nav{display:flex;gap:30px;font-size:14px}.site-header nav a{padding:10px 0;border-bottom:1px solid transparent}.site-header nav a:hover,.site-header nav a[aria-current]{border-color:var(--brass)}.header-location{font-size:12px;letter-spacing:.02em;color:var(--muted)}.hero{max-width:1600px;margin:auto;padding:18px 4.5% 55px}.hero-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:5.5%;align-items:center}.hero-copy{padding:30px 0 0}.eyebrow{font:12px/1.5 var(--sans);letter-spacing:.18em;color:var(--brass);display:flex;gap:12px;align-items:center}.short-rule{width:32px;height:1px;background:var(--brass)}h1{font-size:clamp(40px,4.7vw,75px);margin:28px 0}h1 em{color:var(--brass);letter-spacing:-.055em}.intro{max-width:360px;color:var(--muted);font-size:16px;line-height:1.7}.explore-link{display:inline-flex;align-items:center;gap:30px;margin-top:28px;font-size:14px;min-height:44px;border-bottom:1px solid var(--brass);padding-bottom:5px}.link-line{width:45px;height:1px;background:var(--brass)}.explore-link:hover{color:var(--brass)}.hero-note{margin-top:65px;display:flex;flex-wrap:wrap;gap:6px 22px;color:var(--muted);font-size:12px;letter-spacing:.12em}.hero-photo{border:1px solid var(--line);padding:9px;position:relative}.hero-photo img{aspect-ratio:1.2;height:auto;object-position:50% 60%}.hero-photo figcaption{display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.12em;padding:14px 2px 4px}.chapter-strip{display:flex;justify-content:space-between;gap:16px;background:var(--brass);color:var(--deep);padding:18px 4.5%;font-size:12px;letter-spacing:.14em}.room{padding:100px 4.5%}.room-front{background:var(--cream);color:var(--ink)}.room-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:8%;max-width:1456px;margin:auto;align-items:start}.room-visual{position:sticky;top:28px}.main-photo{padding-top:75px}.main-photo .photo-button{height:clamp(410px,43vw,660px)}.main-photo img{object-position:43% 50%}.photo-button{border:0;padding:0;position:relative;background:transparent;display:block;width:100%;overflow:hidden;text-align:left}.photo-button img{transition:transform .65s ease}.photo-button:hover img{transform:scale(1.025)}.photo-label{position:absolute;left:22px;bottom:22px;color:#fff;font-size:12px;letter-spacing:.16em;text-shadow:0 1px 5px #000}.view-photo{position:absolute;right:16px;top:16px;padding:7px 12px;background:rgba(16,43,36,.9);color:var(--cream);font-size:12px;opacity:0;transition:opacity .2s}.photo-button:hover .view-photo,.photo-button:focus-visible .view-photo{opacity:1}.photo-caption{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.12em;padding-top:16px}.room-front .eyebrow{color:#72551f}.room h2{font-size:clamp(42px,4.4vw,72px);margin:23px 0 27px}.room-front h2 em{color:#7c662f}.room-intro{font-family:var(--serif);font-size:27px;line-height:1.25;letter-spacing:-.02em;margin-bottom:20px}.body-copy{font-size:16px;line-height:1.85;max-width:390px;opacity:.85}.room-tags{display:flex;gap:12px 22px;flex-wrap:wrap;padding-top:25px;margin-top:25px;border-top:1px solid rgba(24,56,46,.25);font-size:12px;letter-spacing:.1em}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}.details-grid .photo-button{aspect-ratio:.85}.details-grid img{object-position:center}.details-grid figcaption,.kavern-details figcaption{font-family:var(--serif);font-style:italic;font-size:16px;padding-top:10px;line-height:1.4}.text-link{display:inline-block;border-bottom:1px solid currentColor;font-size:14px;padding:8px 0;min-height:44px}.room-story>.text-link{margin-top:35px}.room-kavern{background:var(--deep);padding-top:55px;padding-bottom:80px}.kavern-heading{display:flex;justify-content:space-between;max-width:1456px;margin:auto;padding-bottom:35px;border-bottom:1px solid var(--line);gap:20px}.kavern-heading>span{font-size:12px;letter-spacing:.14em;color:var(--muted)}.kavern-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:7%;max-width:1456px;margin:50px auto 0;align-items:center}.kavern-copy h2{font-size:clamp(64px,7vw,112px);margin-top:0;margin-bottom:32px}.kavern-copy h2 em{color:var(--brass)}.kavern-main .photo-button{aspect-ratio:1.12}.kavern-main img{object-position:47% 50%}.room-kavern .room-tags{border-color:var(--line);color:var(--brass)}.kavern-details{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:25px;max-width:1456px;margin:60px auto 0}.kavern-details .photo-button{height:220px}.kavern-details figcaption{color:var(--muted)}footer{padding:45px 4.5%;display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--line)}.footer-brand{font-family:var(--serif);font-size:30px;font-weight:bold;letter-spacing:-.04em;line-height:1}.footer-brand span{display:block;font:12px/1.4 var(--sans);letter-spacing:.16em;margin-top:10px}footer p{font-family:var(--serif);font-style:italic;font-size:25px;color:var(--brass)}.photo-dialog{border:1px solid var(--line);padding:20px;color:var(--cream);background:var(--deep);width:min(1100px,94vw);max-height:94vh;max-height:94dvh}.photo-dialog::backdrop{background:rgba(4,14,10,.92)}.dialog-toolbar,.dialog-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-toolbar{padding-bottom:15px}.dialog-toolbar p{font-family:var(--serif);font-size:24px}.photo-dialog button{background:transparent;border:1px solid var(--line);padding:10px 16px;min-height:44px}.photo-dialog button:hover{background:var(--green)}.dialog-image{height:min(65vh,720px);height:min(65dvh,720px)}.dialog-image img{object-fit:contain}.dialog-controls{padding-top:15px;font-size:14px}.reveal-ready{transition:opacity .7s ease,transform .7s ease}.reveal-ready:not(.is-visible){opacity:0;transform:translateY(24px)}
@media(min-width:1600px){.chapter-strip{padding-inline:calc((100vw - 1456px)/2)}}
@media(max-width:1000px){.header-location{display:none}.hero-note{margin-top:35px}.room{padding:75px 5%}.room-grid{gap:5%}.room h2{font-size:45px}.kavern-grid{gap:5%}.kavern-details{gap:15px}.kavern-details .photo-button{height:180px}.main-photo{padding-top:60px}.hero-photo figcaption span:last-child{display:none}.hero-photo img{aspect-ratio:.9}.hero-copy h1{font-size:4.9vw}.room-tags{gap:10px 15px}}
@media(max-width:700px){html{scroll-padding-top:20px}.site-header{padding:18px 5%;gap:15px;align-items:center}.brand{font-size:22px}.site-header nav{gap:14px;font-size:12px}.site-header nav a{line-height:1.3;max-width:85px}.hero{padding:18px 5% 35px}.hero-grid{grid-template-columns:1fr;gap:28px}.hero-copy{padding:0}.hero-copy h1{font-size:clamp(40px,9vw,65px);margin:20px 0}.intro{font-size:16px;max-width:420px}.hero-note{display:none}.hero-photo{padding:7px}.hero-photo img{aspect-ratio:1.2}.hero-photo figcaption{font-size:12px}.explore-link{margin-top:18px}.chapter-strip{padding:16px 5%;font-size:12px}.chapter-strip span:last-child{display:none}.room{padding:55px 5%}.room-grid{display:flex;flex-direction:column;gap:30px}.room-visual{position:static;width:100%}.main-photo{padding-top:0}.main-photo .photo-button{height:auto;aspect-ratio:1.1}.room-story{width:100%}.room h2{font-size:clamp(42px,9vw,65px);margin:18px 0 24px}.room-intro{font-size:26px}.body-copy{max-width:100%}.details-grid{gap:16px;margin-top:30px}.details-grid figcaption{font-size:15px}.room-story>.text-link{margin-top:20px}.kavern-heading{padding-bottom:22px}.kavern-heading>span{display:none}.kavern-grid{display:flex;flex-direction:column;gap:30px;margin-top:28px}.kavern-copy h2{font-size:72px}.kavern-copy h2 br{display:none}.kavern-main{width:100%}.kavern-main .photo-button{aspect-ratio:1.15}.kavern-details{grid-template-columns:1fr 1fr;gap:25px 16px;margin-top:30px}.kavern-details figure:first-child{grid-column:1/-1}.kavern-details .photo-button{height:auto;aspect-ratio:1.2}.kavern-details figure:first-child .photo-button{aspect-ratio:1.9}.kavern-details figcaption{font-size:15px}footer{flex-wrap:wrap;padding:30px 5%;gap:20px}.footer-brand{font-size:25px}footer p{font-size:21px;width:100%;order:3}.photo-dialog{padding:12px}.dialog-toolbar p{font-size:20px}.dialog-controls{font-size:12px}.photo-dialog button{padding:8px 12px}.photo-label{left:15px;bottom:15px}.view-photo{opacity:1;top:12px;right:12px}.reveal-ready:not(.is-visible){transform:translateY(14px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready:not(.is-visible){opacity:1;transform:none}}

@media(max-width:700px){.site-header nav{font-size:14px}.site-header{flex-wrap:wrap}.hero-photo figcaption{font-size:12px}}
@media(max-width:420px){.site-header nav{width:100%;gap:25px;border-top:1px solid var(--line);padding-top:5px}.site-header nav a{max-width:none}.hero-photo figcaption{letter-spacing:.05em}}

/* Opening refinement: the supplied identity and a photograph-led composition. */
.site-header {
  padding-block: 23px;
}
.brand-logo {
  display: block;
  width: clamp(250px, 26vw, 360px);
  flex-shrink: 0;
  line-height: 0;
}
.brand-logo img {
  height: auto;
  object-fit: contain;
}
.hero {
  padding: 34px 0 0 4.5%;
}
.hero-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  grid-template-areas: "copy photo";
  gap: 4%;
  align-items: stretch;
}
.hero-copy {
  grid-area: copy;
  min-width: 0;
  padding: 46px 0 44px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.hero-copy h1 {
  font-size: clamp(42px, 3.75vw, 60px);
  line-height: 1.08;
  margin: 25px 0;
}
.hero-copy .intro {
  max-width: 320px;
  font-size: 16px;
}
.hero-copy .explore-link {
  margin-top: 25px;
  gap: 23px;
}
.hero-note {
  display: block;
  margin-top: 45px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  letter-spacing: .08em;
}
.hero-note span {
  display: block;
  margin-top: 4px;
}
.hero-photo {
  grid-area: photo;
  min-width: 0;
  border: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  background: var(--deep);
}
.hero-photo img {
  width: 100%;
  height: clamp(440px, 40vw, 640px);
  aspect-ratio: auto;
  object-fit: cover;
  object-position: 50% 58%;
}
.hero-photo figcaption {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 20px;
  border-top: 1px solid var(--brass);
  padding: 18px 26px;
  font-size: 12px;
  letter-spacing: .1em;
  color: var(--muted);
  flex: 1;
}
.hero-photo figcaption span:first-child {
  color: var(--brass);
}
.hero-photo figcaption span:last-child {
  display: inline;
}
@media (max-width: 1100px) and (min-width: 821px) {
  .brand-logo { width: 280px; }
  .hero-copy h1 { font-size: 42px; }
  .hero-copy { padding-block: 30px; }
  .hero-note { margin-top: 28px; }
  .hero-photo img { height: 530px; }
  .hero-photo figcaption { padding-inline: 20px; }
}
@media (max-width: 820px) {
  .site-header {
    padding: 20px 5%;
    flex-wrap: wrap;
    gap: 17px;
  }
  .brand-logo { width: min(310px, 70vw); }
  .site-header nav {
    gap: 25px;
    font-size: 14px;
    flex-wrap: wrap;
  }
  .site-header nav a { max-width: none; }
  .hero { padding: 20px 0 0; }
  .hero-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "photo" "copy";
    gap: 0;
  }
  .hero-photo img {
    height: auto;
    aspect-ratio: 1.32;
    object-position: 50% 58%;
  }
  .hero-photo figcaption {
    flex: initial;
    padding: 15px 5%;
    letter-spacing: .07em;
  }
  .hero-copy {
    padding: 38px 6% 42px;
    justify-content: flex-start;
  }
  .hero-copy h1 {
    font-size: clamp(42px, 7vw, 60px);
    max-width: 620px;
    margin: 22px 0;
  }
  .hero-copy .intro { max-width: 480px; }
  .hero-copy .explore-link { margin-top: 22px; }
  .hero-note { display: none; }
}
@media (max-width: 480px) {
  .brand-logo { width: min(300px, 88vw); }
  .site-header { padding-block: 18px 10px; gap: 10px; }
  .site-header nav {
    width: 100%;
    padding-top: 7px;
    border-top: 1px solid var(--line);
  }
  .site-header nav a { padding-block: 9px; }
  .hero { padding-top: 12px; }
  .hero-photo img { aspect-ratio: 1.23; }
  .hero-photo figcaption { padding-block: 13px; }
  .hero-photo figcaption span:last-child { display: none; }
  .hero-copy { padding: 30px 6% 38px; }
  .hero-copy h1 { font-size: clamp(39px, 10.5vw, 48px); }
}

/* Complete room tour and navigation. */
.hero-copy .explore-link { border-bottom: 0; }
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: var(--green);
}
.header-location { display: none; }
.site-header nav { gap: clamp(18px, 2vw, 30px); }
.site-header nav a { white-space: nowrap; }
.menu-toggle {
  display: none;
  align-items: center;
  gap: 12px;
  padding: 10px 13px;
  min-height: 44px;
  border: 1px solid var(--line);
  background: transparent;
  font-size: 14px;
}
.menu-lines {
  width: 16px;
  height: 12px;
  display: inline-block;
  border-top: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
}
.menu-open .menu-lines { height: 1px; border-bottom: 0; }
.chapter-next { max-width: 1456px; margin: 35px auto 0; }
.room-kove, .room-garden { background: var(--cream); color: var(--ink); }
.room-kove .eyebrow, .room-garden .eyebrow { color: #72551f; }
.room-kove h2 em, .room-garden h2 em { color: #7c662f; }
.kove-grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 9%;
  align-items: center;
  max-width: 1456px;
  margin: auto;
}
.kove-photo .photo-button { aspect-ratio: 1; }
.kove-photo figcaption {
  padding-top: 14px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
}
.new-room-copy { min-width: 0; }
.new-room-copy > .text-link { margin-top: 35px; }
.room-back { background: var(--green); }
.new-room-heading {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  max-width: 1456px;
  margin: auto;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--line);
}
.new-room-heading > span {
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--muted);
}
.room-garden .new-room-heading { border-color: rgba(24,56,46,.25); }
.room-garden .new-room-heading > span { color: var(--ink); }
.back-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 7%;
  align-items: center;
  max-width: 1456px;
  margin: 45px auto 0;
}
.room-back h2 { font-size: clamp(58px, 6vw, 96px); }
.room-back h2 em { color: var(--brass); }
.room-back .room-tags { border-color: var(--line); color: var(--brass); }
.back-main .photo-button { aspect-ratio: 1.25; }
.back-details {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 25px;
  max-width: 1456px;
  margin: 45px auto 0;
}
.back-details .photo-button { height: 260px; }
.back-details figcaption, .garden-details figcaption {
  font-family: var(--serif);
  font-style: italic;
  font-size: 16px;
  line-height: 1.4;
  padding-top: 12px;
}
.back-details figcaption { color: var(--muted); }
.garden-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 7%;
  align-items: center;
  max-width: 1456px;
  margin: 45px auto 0;
}
.garden-main .photo-button { aspect-ratio: 1.2; }
.garden-details {
  display: grid;
  grid-template-columns: 1.25fr .75fr 1fr;
  gap: 25px;
  max-width: 1456px;
  margin: 45px auto 0;
}
.garden-details .photo-button { height: 290px; }
@media (max-width: 1100px) {
  .site-header { flex-wrap: wrap; }
  .site-header .brand-logo { width: min(300px, calc(100% - 110px)); flex-shrink: 1; }
  .site-header.menu-enhanced .menu-toggle:not([hidden]) { display: inline-flex; }
  .site-header .room-navigation {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    max-height: 65vh;
    max-height: 65dvh;
    overflow-y: auto;
  }
  .site-header.menu-enhanced:not(.menu-open) .room-navigation { display: none; }
  .site-header .room-navigation a { padding: 12px 0; min-height: 44px; }
  .kove-grid { gap: 6%; }
  .back-grid, .garden-grid { gap: 5%; }
  .back-details .photo-button { height: 220px; }
  .garden-details .photo-button { height: 220px; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 95px; }
  .site-header { padding-block: 16px; }
  .kove-grid, .back-grid, .garden-grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 30px;
  }
  .kove-photo { width: 100%; }
  .new-room-copy > .text-link { margin-top: 20px; }
  .new-room-heading { padding-bottom: 22px; }
  .new-room-heading > span { display: none; }
  .back-grid, .garden-grid { margin-top: 28px; }
  .back-main .photo-button { aspect-ratio: 1.25; }
  .room-back h2 { font-size: 60px; }
  .back-details { gap: 25px 16px; margin-top: 30px; grid-template-columns: 1fr 1fr; }
  .back-details .photo-button { height: auto; aspect-ratio: 1; }
  .back-details figcaption, .garden-details figcaption { font-size: 15px; }
  .garden-main .photo-button { aspect-ratio: 1.2; }
  .garden-details { grid-template-columns: 1fr 1fr; gap: 25px 16px; margin-top: 30px; }
  .garden-details figure:first-child { grid-column: 1 / -1; }
  .garden-details .photo-button { height: auto; aspect-ratio: .85; }
  .garden-details figure:first-child .photo-button { aspect-ratio: 1.7; }
  .chapter-next { margin-top: 25px; }
}

/* Food, enquiries and the useful details. */
.spaces-menu { position: relative; }
.spaces-menu summary {
  cursor: pointer;
  font-size: 14px;
  padding: 10px 0;
  border-bottom: 1px solid transparent;
  min-height: 44px;
}
.spaces-menu summary:focus-visible { outline: 3px solid var(--brass); outline-offset: 6px; }
.spaces-menu[open] summary, .spaces-menu:has(a[aria-current]) summary { border-color: var(--brass); }
.space-links {
  position: absolute;
  top: calc(100% + 10px);
  left: -22px;
  min-width: 235px;
  padding: 14px 22px;
  background: var(--deep);
  border: 1px solid var(--line);
  box-shadow: 0 15px 30px rgba(0,0,0,.15);
}
.site-header .space-links a { display: block; padding-block: 11px; }
.site-header .room-navigation { align-items: center; }
.practical-section { padding: 95px 4.5%; }
.practical-section h2, .bouchon-banner h2 {
  font: 400 clamp(42px,4.4vw,72px)/1.06 var(--serif);
  letter-spacing: -.055em;
  margin: 23px 0 27px;
}
.practical-section h2 em { color: var(--brass); }
.practical-copy { min-width: 0; }
.lunch-section { background: var(--deep); }
.lunch-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 8%; align-items: center; max-width: 1456px; margin: auto; }
.lunch-photos { display: grid; grid-template-columns: 1.25fr .75fr; gap: 22px; align-items: start; }
.lunch-main .photo-button { aspect-ratio: .75; }
.lunch-kitchen { padding-top: 45%; }
.lunch-kitchen .photo-button { aspect-ratio: .85; }
.lunch-kitchen img { object-position: 48% 50%; }
.lunch-photos figcaption { font: italic 16px/1.4 var(--serif); padding-top: 12px; color: var(--muted); }
.action-row { display: flex; align-items: center; flex-wrap: wrap; gap: 15px 25px; margin-top: 30px; }
.solid-action { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 13px 23px; background: var(--brass); color: var(--deep); border: 1px solid var(--brass); font: 400 14px/1.5 var(--sans); text-align: center; cursor: pointer; }
.solid-action[hidden] { display: none; }
.solid-action:hover { background: var(--cream); border-color: var(--cream); }
.menu-note { color: var(--muted); font-size: 12px; margin-top: 20px; }
.bookings-section { background: var(--cream); color: var(--ink); }
.bookings-section .eyebrow { color: #72551f; }
.bookings-section h2 em { color: #7c662f; }
.bookings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; max-width: 1456px; margin: auto; align-items: center; }
.booking-note { margin-top: 25px; font-size: 14px; max-width: 390px; }
.bookings-section .solid-action, .bouchon-banner .solid-action { background: var(--green); border-color: var(--green); color: var(--cream); }
.bookings-section .solid-action:hover, .bouchon-banner .solid-action:hover { background: var(--deep); }
.booking-information { border-left: 1px solid rgba(24,56,46,.25); padding-left: 45px; }
.booking-information h3 { font: 400 34px/1.2 var(--serif); letter-spacing: -.035em; margin: 22px 0; }
.booking-information > p:not(.eyebrow) { font-size: 16px; }
.document-links { display: flex; flex-direction: column; margin-top: 25px; }
.document-links a { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; padding: 18px 0; border-bottom: 1px solid rgba(24,56,46,.25); font-size: 16px; }
.document-links a:hover { color: #72551f; }

.booking-phone { margin-top: 25px; }
.booking-phone a { border-bottom: 1px solid currentColor; white-space: nowrap; }
.contact-section { background: var(--green); }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; max-width: 1456px; margin: auto; }
.contact-details dl { margin: 0; }
.contact-details dl > div { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 25px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.contact-details dt { font-size: 12px; letter-spacing: .1em; color: var(--brass); padding-top: 5px; }
.contact-details dd { margin: 0; font-size: clamp(17px,1.6vw,23px); line-height: 1.5; overflow-wrap: anywhere; }
.contact-details address { font-style: normal; }
.eircode { display: inline-block; font-size: 14px; letter-spacing: .1em; margin-top: 10px; color: var(--muted); }
.contact-details a:hover { color: var(--brass); }
.social-links { display: flex; flex-wrap: wrap; gap: 25px; margin-top: 25px; }
.social-links a { min-height: 44px; padding-block: 9px; border-bottom: 1px solid var(--brass); font-size: 14px; }
.bouchon-banner { padding: 55px 4.5%; background: var(--cream); color: var(--ink); border-top: 5px solid var(--brass); }
.bouchon-content { display: flex; justify-content: space-between; align-items: center; gap: 35px; max-width: 1456px; margin: auto; }
.bouchon-banner .eyebrow { color: #72551f; }
.bouchon-banner h2 { font-size: clamp(36px,3.5vw,54px); margin: 15px 0; }
.bouchon-banner p:not(.eyebrow) { max-width: 620px; font-size: 16px; }
.bouchon-banner .solid-action { flex-shrink: 0; }
.lunch-menu-dialog { overflow-y: auto; width: min(800px,94vw); max-height: 92vh; max-height: 92dvh; padding: 0; border: 1px solid var(--line); color: var(--cream); background: var(--deep); }
.lunch-menu-dialog::backdrop { background: rgba(4,14,10,.92); }
.menu-dialog-toolbar { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 18px 22px; background: var(--deep); border-bottom: 1px solid var(--line); z-index: 1; }
.menu-dialog-toolbar h2 { font: 400 25px/1.3 var(--serif); letter-spacing: -.02em; }
.menu-dialog-toolbar button { background: transparent; color: var(--cream); border: 1px solid var(--line); padding: 10px 15px; min-height: 44px; }
.menu-dialog-content { padding: 22px; text-align: center; }
.menu-dialog-content img { max-width: 596px; height: auto; margin: 0 auto; }
.menu-dialog-content .solid-action { margin-top: 22px; }
@media (max-width: 1100px) {
  .site-header .room-navigation { align-items: stretch; }
  .site-header.menu-enhanced .spaces-menu summary { display: none; }
  .space-links { position: static; padding: 0; border: 0; background: transparent; box-shadow: none; min-width: 0; }
  .site-header .space-links a { padding-block: 12px; }
  .lunch-grid { gap: 5%; }
  .lunch-photos { gap: 15px; }
  .bookings-grid, .contact-grid { gap: 6%; }
  .booking-information { padding-left: 30px; }
  .contact-details dl > div { grid-template-columns: 75px minmax(0,1fr); gap: 15px; }
}
@media (max-width: 700px) {
  .practical-section { padding: 55px 5%; }
  .lunch-grid, .bookings-grid, .contact-grid { display: flex; flex-direction: column; gap: 35px; align-items: stretch; }
  .lunch-photos { grid-template-columns: 1.25fr .75fr; gap: 15px; }
  .lunch-photos figcaption { font-size: 15px; }
  .practical-section h2 { font-size: clamp(42px,9vw,60px); margin: 18px 0 24px; }
  .booking-information { border-left: 0; border-top: 1px solid rgba(24,56,46,.25); padding-left: 0; padding-top: 30px; }
  .booking-information h3 { font-size: 30px; }
  .contact-details dd { font-size: 18px; }
  .bouchon-banner { padding: 38px 5%; }
  .bouchon-content { flex-direction: column; align-items: flex-start; gap: 22px; }
  .menu-dialog-toolbar { padding: 12px 15px; }
  .menu-dialog-toolbar h2 { font-size: 21px; }
  .menu-dialog-content { padding: 12px; }
}

/* Bouchon: wide food detail on desktop, dinner atmosphere on smaller screens. */
.bouchon-banner {
  background-color: var(--deep);
  background-image: linear-gradient(90deg, rgba(7,20,16,.92) 0%, rgba(7,20,16,.82) 42%, rgba(7,20,16,.40) 100%), url('assets/bouchon-tart.jpg');
  background-size: cover;
  background-position: center, center 58%;
  color: var(--cream);
  padding-block: 75px;
  min-height: 310px;
  display: flex;
  align-items: center;
}
.bouchon-content { width: 100%; }
.bouchon-banner .eyebrow, .bouchon-banner h2 em { color: var(--brass); }
.bouchon-banner p:not(.eyebrow) { max-width: 570px; }
.bouchon-banner .solid-action { background: var(--brass); border-color: var(--brass); color: var(--deep); }
.bouchon-banner .solid-action:hover { background: var(--cream); border-color: var(--cream); }
@media (max-width: 700px) {
  .bouchon-banner {
    background-image: linear-gradient(180deg, rgba(7,20,16,.62) 0%, rgba(7,20,16,.88) 100%), url('assets/bouchon-dinner.jpg');
    background-position: center, center 72%;
    padding-block: 48px;
    min-height: 360px;
  }
}
