/* Visit and press: the same quiet typography and material palette as the house. */
body:is([data-route="visit"], [data-route="press"]) .page-section {
  padding-block: clamp(48px, 6.5vw, 108px);
  background: none;
}
body:is([data-route="visit"], [data-route="press"]) .page-section--alt::before { display: none; }
body:is([data-route="visit"], [data-route="press"]) .page-pair__copy { padding: 0; }
body:is([data-route="visit"], [data-route="press"]) .page-pair__copy .copy {
  max-width: 54ch;
  font-size: clamp(16px, 1.25vw, 21px);
  line-height: 1.75;
}
body:is([data-route="visit"], [data-route="press"]) .page-h2 {
  font-size: clamp(34px, 3.6vw, 62px);
  line-height: 1.04;
  text-transform: none;
  max-width: 19ch;
}
body:is([data-route="visit"], [data-route="press"]) .ph__cap {
  font-size: 11px;
  letter-spacing: .1em;
  line-height: 1.6;
}
body:is([data-route="visit"], [data-route="press"]) .page-links .pill {
  min-height: 48px;
  white-space: normal;
  text-align: center;
  font-size: clamp(11px, .9vw, 14px);
}
body:is([data-route="visit"], [data-route="press"]) .page-links--closing {
  padding-block: 28px clamp(64px, 7vw, 120px);
}

/* Visit: an invitation, followed by a concise walk through the estate. */
body[data-route="visit"] .page-hero { min-height: 72svh; }
body[data-route="visit"] .page-hero__media img { object-position: 45% 56%; }
body[data-route="visit"] .page-lead { padding-top: clamp(44px, 5vw, 84px); }
body[data-route="visit"] .page-answer {
  max-width: 38ch;
  font-family: var(--font-display);
  font-size: clamp(26px, 2.7vw, 44px);
  line-height: 1.24;
  color: var(--cream);
}
body[data-route="visit"] .page-pair { align-items: center; }
body[data-route="visit"] .page-pair__fig { margin-inline: 0; }
body[data-route="visit"] .page-pair__fig picture { aspect-ratio: 6 / 5; }
body[data-route="visit"] #museum .page-pair__fig picture,
body[data-route="visit"] #restaurant .page-pair__fig picture { aspect-ratio: 5 / 6; }
body[data-route="visit"] #tasting .page-pair__fig picture { aspect-ratio: 5 / 6; }
body[data-route="visit"] #restaurant .ph-gallery { gap: 20px; }
body[data-route="visit"] #restaurant .ph--gallery picture { aspect-ratio: 5 / 4; }
body[data-route="visit"] #road .page-pair__fig picture { aspect-ratio: 4 / 3; }
body[data-route="visit"] #book { padding-top: clamp(56px, 7vw, 112px); }
body[data-route="visit"] #book .page-pair {
  max-width: 1000px;
  border-top: 1px solid color-mix(in oklch, var(--gold) 40%, transparent);
  padding-top: clamp(40px, 5vw, 80px);
}
body[data-route="visit"] #book .page-h2 { max-width: 20ch; }
body[data-route="visit"] #book .grows__list { gap: 20px 36px; margin-block: 32px 0; }
body[data-route="visit"] #book .grows__list li { display: block; padding: 20px 0; }
body[data-route="visit"] #book .grows__name {
  display: block;
  margin-bottom: 10px;
  font-family: var(--font-text);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold-2);
}
body[data-route="visit"] #book .grows__note { display: block; font-size: 15px; line-height: 1.6; }
body[data-route="visit"] #book .page-links .pill { font-size: clamp(16px, 1.5vw, 23px); letter-spacing: .04em; }

/* Press: a practical library, with each real download visibly identified. */
body[data-route="press"] .page-hero--plain { min-height: auto; }
body[data-route="press"] .page-hero__title { max-width: none; }
body[data-route="press"] .page-lead { padding-top: 32px; }
body[data-route="press"] .page-answer { max-width: 52ch; font-size: clamp(18px, 1.7vw, 26px); }
body[data-route="press"] .page-section .page-pair--solo { max-width: var(--container); }
body[data-route="press"] .page-pair__copy { width: 100%; }
body[data-route="press"] .press-copy-label {
  display: block;
  margin-bottom: 16px;
  color: var(--gold-2);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
}
body[data-route="press"] #about .copy { padding-top: 24px; border-top: 1px solid color-mix(in oklch, var(--cream) 18%, transparent); }
body[data-route="press"] .files { list-style: none; padding: 0; }
body[data-route="press"] .files li { position: relative; min-width: 0; }
body[data-route="press"] .files a {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  min-height: 44px;
  font-size: 14px;
  line-height: 1.5;
  transition: color .3s var(--ease-out);
}
body[data-route="press"] .files a::after {
  content: "↓";
  display: inline-block;
  margin-top: 14px;
  color: var(--gold-2);
  font-size: 21px;
  line-height: 1;
  transition: transform .3s var(--ease-out);
}
body[data-route="press"] .files a:hover::after { transform: translateY(3px); }
body[data-route="press"] .files a:focus-visible { outline: 1px solid var(--gold-2); outline-offset: 7px; }
body[data-route="press"] .files a img {
  width: 100%;
  height: 180px;
  margin-bottom: 22px;
  padding: 36px;
  object-fit: contain;
  background: var(--paper, #f1eee7);
}
body[data-route="press"] .files__size { position: absolute; right: 0; bottom: 20px; font-size: 12px; }
body[data-route="press"] #logo .files { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; border: 0; }
body[data-route="press"] #logo .files li { padding-block: 0 20px; }
body[data-route="press"] #bottles .files { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; border: 0; }
body[data-route="press"] #bottles .files li { padding-block: 0 20px; }
body[data-route="press"] #bottles .files a img { height: clamp(220px, 24vw, 350px); padding: 24px 12px; }
body[data-route="press"] #estate .ph-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  margin: 32px 0 0;
  padding: 0;
  gap: 32px 24px;
  overflow: visible;
}
body[data-route="press"] #estate .ph--gallery picture { aspect-ratio: 3 / 2; }
body[data-route="press"] #enquiries .page-pair {
  border-top: 1px solid color-mix(in oklch, var(--gold) 40%, transparent);
  padding-top: clamp(36px, 5vw, 72px);
}

@media (min-width: 901px) {
  body:is([data-route="visit"], [data-route="press"]) .container { max-width: 1440px; }
  body[data-route="visit"] .page-pair { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(48px, 7vw, 112px); }
  body[data-route="visit"] .page-pair--flip { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
  body[data-route="visit"] #book .page-pair { grid-template-columns: 1fr; }
  body[data-route="press"] #about .page-pair__copy { display: grid; grid-template-columns: 1fr 1fr; gap: 0 64px; align-items: start; }
  body[data-route="press"] #about .page-h2 { grid-column: 1 / -1; margin-bottom: 36px; }
  body[data-route="press"] #about .copy + .copy { margin-top: 0; }
  body[data-route="press"] #logo .files { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 36px; }
  body[data-route="press"] #bottles .files { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 36px; gap: 40px 32px; }
  body[data-route="press"] #estate .ph-gallery { gap: 44px 32px; }
}

@media (max-width: 900px) {
  /* Reserve the complete image column before lazy images have loaded. */
  body[data-route="visit"] .page-pair__fig { width: 100%; }
}

@media (max-width: 600px) {
  body[data-route="visit"] .page-hero { min-height: 65svh; }
  body[data-route="visit"] #museum .page-pair__fig picture,
  body[data-route="visit"] #restaurant .page-pair__fig picture,
  body[data-route="visit"] #tasting .page-pair__fig picture { aspect-ratio: 4 / 5; }
  body[data-route="visit"] #restaurant .ph-gallery { display: grid; grid-template-columns: 1fr; margin-inline: 0; padding: 0; }
  body[data-route="visit"] #restaurant .ph--gallery picture { aspect-ratio: 3 / 2; }
  body[data-route="press"] #logo .files { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  body[data-route="press"] #logo .files a img { height: 140px; padding: 18px; }
  body[data-route="press"] #estate .ph-gallery { grid-template-columns: 1fr; }
  body[data-route="press"] #bottles .files { gap: 24px 16px; }
  body[data-route="press"] .files a { font-size: 12px; }
  body[data-route="press"] .files a img { margin-bottom: 16px; }
  body[data-route="press"] #bottles .files a img { height: 240px; }
  body[data-route="press"] #enquiries .page-links .pill { letter-spacing: .04em; text-transform: none; overflow-wrap: anywhere; }
}

@media (prefers-reduced-motion: reduce) {
  body[data-route="press"] .files a,
  body[data-route="press"] .files a::after { transition: none; }
  body[data-route="press"] .files a:hover::after { transform: none; }
}
