/* Homepage editorial features; gallery presentation remains independent. */
.hero #hero-title { font-size: clamp(55px, 7.3vw, 110px); line-height: .98; }
.hero-content { padding-bottom: 10vh; max-width: 1000px; }
.legacy-index { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 36px; padding: 28px 5vw; background: #fff; border-bottom: 1px solid var(--line); }
.legacy-index a { color: var(--ink); text-decoration: none; font-family: var(--serif); font-size: 17px; padding: 8px 0; border-bottom: 1px solid transparent; }
.legacy-index a:hover { border-color: currentColor; }
.legacy-section { padding: 110px 7vw; scroll-margin-top: 72px; }
.legacy-section .eyebrow { font-size: 12px; color: #796044; }
.legacy-section h2 { margin: 0; font-size: clamp(48px, 6.7vw, 100px); line-height: 1; letter-spacing: -.045em; }
.legacy-section h3 { font-size: clamp(32px, 3.6vw, 56px); line-height: 1.08; letter-spacing: -.035em; margin: 0 0 24px; }
.legacy-section p { font-size: 16px; line-height: 1.75; }
.legacy-heading { max-width: 820px; margin: 0 auto 65px; text-align: center; }
.legacy-heading > p:last-child { max-width: 650px; margin: 28px auto 0; color: var(--ink-soft); }
.chapter-layout { display: grid; grid-template-columns: 1.25fr 1fr; gap: 6vw; max-width: 1440px; margin: auto; align-items: center; }
.chapter-figure, .refocus-feature figure { margin: 0; min-width: 0; }
.editorial-image { overflow: hidden; background: #eeeae3; }
.editorial-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.chapter-figure .editorial-image { aspect-ratio: 3 / 2; }
.chapter-open { display: block; width: 100%; padding: 6px; border: 0; background: #fff; cursor: zoom-in; }
.chapter-open img, .album-photo-page .editorial-image img { object-fit: contain; object-position: center; }
.album-photo-page .editorial-image { background: #fff; }
.chapter-thumbnails { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.chapter-thumbnails button { padding: 4px; border: 1px solid transparent; background: white; cursor: pointer; }
.chapter-thumbnails button[aria-pressed="true"] { border-color: var(--ink); }
.chapter-thumbnails img { width: 100%; height: 90px; object-fit: contain; }
.chapter-tradition { font-family: var(--serif); color: var(--ink-soft); border-top: 1px solid var(--line); padding-top: 20px; }
.family-photo-dialog { position: fixed; inset: 0; width: 100%; height: 100dvh; max-width: none; max-height: 100dvh; margin: 0; padding: 0; border: 0; overflow: hidden; background: #fff; color: var(--ink); }
.family-photo-dialog::backdrop { background: #fff; }
.family-photo-toolbar { height: calc(50px + env(safe-area-inset-top)); padding: env(safe-area-inset-top) 8px 0; display: flex; align-items: center; gap: 12px; }
.family-photo-toolbar button { min-height: 44px; border: 0; background: #fff; cursor: pointer; font-size: 14px; padding: 0 12px; }
.family-photo-toolbar button:hover { background: #eee; }
.family-photo-toolbar span { margin-left: auto; font-size: 12px; }
#family-photo-close { font-size: 28px; }
.family-photo-stage { position: absolute; inset: calc(50px + env(safe-area-inset-top)) 0 env(safe-area-inset-bottom); }
.family-photo-stage img { width: 100%; height: 100%; object-fit: contain; }
.legacy-section figcaption, .legacy-section .sample-note { font-size: 12px; line-height: 1.6; color: #66615a; }
.legacy-section figcaption { margin-top: 13px; }
.chapter-content { min-width: 0; }
.chapter-tabs { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); margin-bottom: 42px; }
.chapter-tabs button { min-height: 52px; padding: 12px 6px; border: 0; border-bottom: 2px solid transparent; color: #6b655d; background: none; font-family: var(--serif); font-size: 18px; cursor: pointer; }
.chapter-tabs span { display: block; font-family: var(--sans); font-size: 12px; line-height: 1.5; margin-top: 9px; }
.chapter-tabs button[aria-selected="true"] { color: var(--ink); border-bottom-color: transparent; }
#chapter-panel { min-height: 290px; }
.legacy-section button:focus-visible, .legacy-section a:focus-visible, .legacy-section summary:focus-visible, .spread-reader:focus-visible { outline: 2px solid #796044; outline-offset: 5px; }
.library-section { background: #e9e3d8; }
.spread-reader { max-width: 1200px; margin: auto; }
.album-spread { display: grid; grid-template-columns: 1fr 1fr; background: #fff; border: 1px solid #d7d1c7; }
.album-page { min-width: 0; min-height: 450px; padding: clamp(22px, 4vw, 64px); }
.album-title-page { display: flex; flex-direction: column; justify-content: center; border-right: 1px solid #e7e3dc; }
.album-title-page .album-credit { margin-top: 40px; font-family: var(--serif); font-size: 15px; }
.album-photo-page { display: flex; align-items: center; }
.album-photo-page .editorial-image { width: 100%; aspect-ratio: 4 / 5; }
.spread-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; }
.spread-controls button { background: none; border: 0; padding: 14px 0; font-size: 14px; cursor: pointer; }
.spread-controls button:disabled { opacity: .35; cursor: default; }
.spread-controls p { font-size: 13px; }
.centered { text-align: center; }
.library-closing { text-align: center; margin-top: 55px; }
.library-closing p { font-family: var(--serif); font-size: 29px; line-height: 1.35; }
.discretion-section { display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; background: #fff; }
.discretion-section h2 em { font-weight: 400; color: #796044; }
.discretion-section .discretion-lead { font-family: var(--serif); font-size: 27px; margin-top: 36px; }
.discretion-section > div > p { max-width: 530px; }
.discretion-photo { margin: 0; align-self: center; min-width: 0; }
.discretion-photo a { display: block; aspect-ratio: 1280 / 855; overflow: hidden; }
.discretion-photo img { display: block; width: 100%; height: auto; }
.discretion-details { grid-column: 1 / -1; }
.legacy-section details { border-top: 1px solid var(--line); padding: 24px 0; }
.legacy-section details:last-child { border-bottom: 1px solid var(--line); }
.legacy-section summary { font-family: var(--serif); font-size: 25px; cursor: pointer; line-height: 1.3; }
.legacy-section details p { color: var(--ink-soft); }
.refocus-feature { display: grid; grid-template-columns: 1.2fr 1fr; gap: 7vw; align-items: center; }
.refocus-feature .editorial-image { aspect-ratio: 4 / 3; }
.refocus-feature h2 { font-size: clamp(43px, 4.6vw, 72px); }
.refocus-feature .refocus-motto { font-family: var(--serif); font-size: 24px; line-height: 1.45; margin: 32px 0; }
.inquiry-next { color: var(--ink-soft); font-size: 14px; line-height: 1.6; }
@media (max-width: 850px) {
  .legacy-section { padding: 75px 6vw; }
  .chapter-layout, .discretion-section, .refocus-feature { grid-template-columns: 1fr; gap: 40px; }
  .chapter-figure .editorial-image { aspect-ratio: 4 / 3; }
  .legacy-heading { margin-bottom: 40px; }
  .album-page { min-height: 340px; padding: 24px; }
  .album-page h3 { font-size: 34px; }
  #chapter-panel { min-height: 0; }
}
@media (max-width: 540px) {
  .legacy-index { gap: 6px 22px; padding: 20px; }
  .legacy-index a { font-size: 15px; }
  .hero #hero-title { font-size: clamp(48px, 10vw, 60px); }
  .hero-content { padding-left: 6vw; padding-right: 6vw; }
  .album-spread { grid-template-columns: 1fr; }
  .album-page { min-height: 0; padding: 28px; }
  .album-title-page { border-right: 0; border-bottom: 1px solid #e7e3dc; }
  .album-title-page .album-credit { margin: 10px 0 0; }
  .album-photo-page .editorial-image { aspect-ratio: 4 / 3; }
  .chapter-tabs span { font-size: 12px; }
}

.chapter-tabs .chapter-year-indicator { position: absolute; left: 0; top: 0; height: 2px; margin: 0; background: var(--ink); pointer-events: none; transition: transform 320ms ease, width 320ms ease; }
.chapter-controls { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 12px; }
.chapter-controls button { border: 0; padding: 12px 0; min-height: 44px; background: none; color: var(--ink); font-size: 14px; cursor: pointer; }
.chapter-controls span { font-size: 14px; color: var(--ink-soft); text-align: center; }
.chapter-controls button:disabled, .family-photo-toolbar button:disabled { opacity: .35; cursor: default; }
.chapter-open, .family-photo-stage { touch-action: pan-y; }
#chapter-image, #family-photo-large { transform-origin: left center; }
@media (prefers-reduced-motion: reduce) { .chapter-tabs .chapter-year-indicator { transition: none; } }

.chapter-open, .family-photo-stage { perspective: 1600px; }
.chapter-open { position: relative; }
.album-turning-page { position: absolute; inset: 0; display: block; padding: 6px; background: #fff; backface-visibility: hidden; box-shadow: 14px 0 30px rgb(0 0 0 / .14); pointer-events: none; }
.album-turning-page img { display: block; width: 100%; height: 100%; object-fit: contain; }
.family-photo-stage .album-turning-page { padding: 0; }

.refocus-journal { background: #faf9f6; }
.refocus-heading { max-width: 950px; margin-bottom: 55px; }
.refocus-heading h2 em { font-weight: 400; }
.refocus-heading .refocus-motto { max-width: 780px; font-family: var(--serif); font-size: 25px; line-height: 1.5; margin: 30px 0 0; color: var(--ink-soft); }
.refocus-posts { max-width: 1440px; margin: auto; }
.refocus-lead { display: grid; grid-template-columns: 1.1fr 1fr; gap: 5vw; align-items: center; padding-bottom: 55px; }
.refocus-cover { display: flex; align-items: center; justify-content: center; min-width: 0; }
.refocus-cover img { display: block; width: 100%; height: auto; max-height: min(75svh, 680px); object-fit: contain; object-position: center; }
.refocus-journal h3 a { color: inherit; text-decoration: none; }
.refocus-journal h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 7px; }
.refocus-journal .refocus-excerpt { font-size: 18px; line-height: 1.8; color: var(--ink-soft); }
.refocus-read { display: inline-block; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--ink); padding: 12px 0; margin-top: 10px; font-size: 15px; }
.refocus-supporting { display: grid; grid-template-columns: 1fr 1fr; gap: 6vw; border-top: 1px solid var(--line); padding-top: 45px; }
.refocus-supporting article { display: flex; flex-direction: column; align-items: flex-start; }
.refocus-supporting .refocus-thumbnail { display: flex; align-items: center; justify-content: flex-start; width: 100%; height: 200px; margin-bottom: 24px; border: 0; }
.refocus-thumbnail img { display: block; width: auto; max-width: 100%; height: 100%; object-fit: contain; transition: opacity .2s ease; }
.refocus-thumbnail:hover img { opacity: .85; }
.refocus-thumbnail:focus-visible { outline: 2px solid var(--ink); outline-offset: 5px; }
.refocus-supporting h3 { font-size: clamp(26px, 2.4vw, 34px); margin-bottom: 14px; }
.refocus-supporting .refocus-excerpt { font-size: 16px; line-height: 1.75; margin: 0 0 16px; }
.refocus-supporting .refocus-read { margin-top: auto; }
.refocus-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px; max-width: 1440px; margin: 50px auto 0; padding-top: 28px; border-top: 1px solid var(--line); }
.refocus-links a { color: inherit; font-size: 16px; text-underline-offset: 5px; }
@media(max-width: 750px) { .refocus-lead, .refocus-supporting { grid-template-columns: 1fr; gap: 32px; } .refocus-supporting article + article { border-top: 1px solid var(--line); padding-top: 32px; } .refocus-heading .refocus-motto { font-size: 22px; } }

.home-fine-art { background: var(--paper); }
.home-art-layout { display: grid; grid-template-columns: 1.25fr 1fr; gap: 6vw; align-items: center; max-width: 1440px; margin: auto; }
.home-art-layout figure { margin: 0; min-width: 0; }
.home-art-layout figure a, .home-art-layout img { display: block; width: 100%; }
.home-art-layout img { height: auto; }
.home-fine-art h2 { font-size: clamp(40px, 4.4vw, 68px); line-height: 1.08; }
.home-fine-art h2 em { font-weight: 400; }
.home-art-layout > div > p:not(.eyebrow) { max-width: 500px; margin: 26px 0; color: var(--ink-soft); }
.home-art-link { display: inline-block; color: var(--ink); font-family: var(--serif); font-size: 19px; line-height: 1.5; text-decoration: none; border-bottom: 1px solid; padding: 10px 0; }
@media(max-width: 850px) { .home-art-layout { grid-template-columns: 1fr; gap: 32px; } }

.hero-image { object-position: right top; }
@media(max-width: 700px) {
  .hero { display: block; min-height: 0; height: auto; padding-top: 72px; background: var(--paper); color: var(--ink); }
  .hero-image { position: relative; inset: auto; width: 100%; height: auto; object-fit: contain; animation: none; }
  .hero-shade { display: none; }
  .hero-content { position: relative; padding: 32px 6vw 62px; }
  .hero .prototype-note { position: static; margin: 0; padding: 0 6vw 22px; }
  .hero .scroll-cue { display: none; }
}

#stories .section-intro { grid-template-columns: 1.2fr 1fr; gap: 20px 6vw; margin-bottom: 38px; align-items: center; }
#stories .section-intro .eyebrow { grid-column: 1 / -1; margin: 0; }
#stories .section-intro h2 { font-size: clamp(38px, 4vw, 60px); line-height: 1.1; }
.story-tabs { grid-template-columns: repeat(7, minmax(0, 1fr)); }
@media(max-width: 850px) { .story-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); } .story-tabs button { border-bottom: 1px solid var(--line); } .story-tabs button:nth-child(3n) { border-right: 0; } }
@media(max-width: 700px) { #stories .section-intro { grid-template-columns: 1fr; gap: 18px; } .story-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); } .story-tabs button:nth-child(3n) { border-right: 1px solid var(--line); } .story-tabs button:nth-child(2n) { border-right: 0; } }

/* Keep the location/service explorer on the site's shared tan surface. */
.explorer { background: var(--paper); color: var(--ink); }
.explorer-heading h2 em { color: #796044; }
.explorer .segmented, .explorer-grid, .explorer .choice-list, .explorer .choice-list button, .explorer .fit-line, .explorer .legacy-callout { border-color: var(--line); }
.explorer .segmented button, .explorer .choice-list button { color: var(--ink-soft); }
.explorer .segmented button[aria-pressed="true"] { color: var(--paper-light); background: var(--ink); }
.explorer .choice-list button:hover, .explorer .choice-list button.active { color: var(--ink); background: #e9e3d8; }
.explorer-copy > p:not(.eyebrow):not(.fit-line), .explorer .legacy-callout > div { color: var(--ink-soft); }
.explorer .fit-line strong, .explorer .gallery-pilot-link, .explorer .light-link { color: var(--ink); }
.explorer .gallery-pilot-link, .explorer .metadata-link { border-color: var(--line); }
.explorer .metadata-link { color: var(--ink-soft); }
.explorer #explorer-inquiry { color: var(--paper-light); background: var(--ink); border-color: var(--ink); }
.explorer #explorer-inquiry:hover { background: #39392f; }
.explorer .eyebrow, .explorer .fit-line span { color: #796044; }

/* Keep the explorer content within its columns and captions outside the photo. */
.explorer-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); min-height: 0; }
.explorer-content { grid-template-columns: minmax(105px, .32fr) minmax(0, 1fr); min-width: 0; }
.explorer-copy { min-width: 0; padding: clamp(22px, 2.5vw, 38px); }
.explorer-copy h3 { font-size: clamp(30px, 3vw, 46px); line-height: 1.08; overflow-wrap: anywhere; }
.explorer-copy p, .explorer-actions, .explorer-actions > *, .choice-list button { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.explorer-actions .button { white-space: normal; padding: 15px 18px; line-height: 1.5; }
.explorer-visual { min-height: 0; display: flex; flex-direction: column; background: var(--paper); }
.explorer-visual::after { display: none; }
.explorer-image-frame { position: relative; flex: 1; min-height: 520px; overflow: hidden; }
.explorer-image-frame img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.explorer-image-frame.has-print-footer img { height: 118.2%; }
.explorer-visual p { position: static; flex: none; margin: 0; padding: 15px 18px; color: var(--ink-soft); background: transparent; backdrop-filter: none; font-size: 14px; letter-spacing: 0; line-height: 1.5; }
@media(max-width: 1020px) { .explorer-grid { grid-template-columns: minmax(0,1fr); } .explorer-image-frame { flex: none; height: min(65vw, 650px); min-height: 0; } .explorer-content { min-height: 0; } }
@media(max-width: 700px) { .explorer-content { display: block; } .explorer-copy { padding: 30px 24px; } .explorer-image-frame { height: 67vw; } .explorer-copy h3 { font-size: clamp(30px, 8vw, 44px); } }

.story-copy #story-action { margin: 26px 0 12px; min-height: 56px; max-width: 100%; padding: 17px 25px; color: var(--paper-light); background: var(--ink); border: 1px solid var(--ink); font-size: 13px; line-height: 1.5; letter-spacing: .08em; font-weight: 600; white-space: normal; }
.story-copy #story-action:hover { background: #39392f; }
.story-copy #story-action:focus-visible { outline: 2px solid #796044; outline-offset: 5px; }

.story-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 26px 0 12px; }
.story-copy .story-actions #story-action { margin: 0; align-self: stretch; }
.story-gallery-button { min-height: 56px; max-width: 100%; padding: 17px 22px; color: var(--ink); background: transparent; border: 1px solid var(--ink); font-size: 13px; line-height: 1.5; letter-spacing: .08em; text-decoration: none; text-align: center; }
.story-gallery-button:hover { color: var(--paper-light); background: var(--ink); }
.story-gallery-button:focus-visible { outline: 2px solid #796044; outline-offset: 5px; }


/* Collection images and actions share clear, consistent gallery affordances. */
.story-actions { display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-rows: 1fr; }
.story-copy .story-actions .button { width: 100%; min-width: 0; align-self: stretch; display: flex; align-items: center; justify-content: center; padding: 17px 20px; text-align: center; white-space: normal; overflow-wrap: anywhere; }
.story-image-wrap { display: flex; flex-direction: column; background: var(--paper); }
.story-image-link { position: relative; display: block; flex: 1; min-height: 590px; overflow: hidden; }
.story-image-link img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.story-image-link.has-print-footer img { height: 118.2%; }
.story-image-wrap .image-count { position: static; display: block; padding: 16px 0; color: #795532; background: transparent; backdrop-filter: none; font-size: 14px; }
.story-image-link:focus-visible { outline: 3px solid var(--bronze); outline-offset: -3px; }
@media (hover: hover) { .story-image-link:hover img { filter: brightness(.94); } }
@media (prefers-reduced-motion: no-preference) { .story-image-link img { transition: filter 180ms ease; } }
@media (max-width: 700px) { .story-image-link { flex: none; height: 67vw; min-height: 0; } .story-image-wrap { min-height: 0; } }


/* Both collection CTAs use one sizing rule, including the Fine Art tab. */
#stories .story-actions :is(#story-action, #story-gallery-link) {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 100%;
  min-height: 60px;
  margin: 0;
  padding: 17px 20px;
  align-self: stretch;
  align-items: center;
  justify-content: center;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .08em;
  text-align: center;
  white-space: normal;
}

.story-photo-frame { display: contents; }
.story-image-link.is-refocus { display: flex; align-items: center; justify-content: center; }
.story-image-link.is-refocus .story-photo-frame { display: block; position: relative; flex: none; width: min(100%, 400px); aspect-ratio: 1067 / 1600; overflow: hidden; }
.story-image-link.is-refocus img { width: 100%; height: 112.0625%; object-fit: fill; }
@media (max-width: 700px) { .story-image-link.is-refocus .story-photo-frame { width: min(100%, 44.7vw); } }

/* A shorter editorial rhythm, preserving image scale and readable type. */
.legacy-section { padding-top: 94px; padding-bottom: 94px; }
.section-pad { padding-top: 119px; padding-bottom: 119px; }
.legacy-heading { margin-bottom: 55px; }
.legacy-heading > p:last-child { margin-top: 24px; }
.chapter-tabs { margin-bottom: 35px; }
#chapter-panel { min-height: 245px; }
.story-panel, .story-image-wrap { min-height: 550px; }
.story-image-link { min-height: 505px; }
.story-copy { padding-top: 36px; padding-bottom: 36px; }
.refocus-heading { margin-bottom: 46px; }
.refocus-lead { padding-bottom: 46px; }
.refocus-cover img { max-height: min(68svh, 590px); }
.explorer-heading { margin-bottom: 58px; }
.explorer-grid { min-height: 580px; }
.explorer-content, .explorer-visual { min-height: 0; }
.explorer-image-frame { min-height: 445px; }
.library-section { background: var(--paper); }
.book-showcase { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 28px 5vw; max-width: 1380px; margin: auto; align-items: center; }
.book-showcase figure { margin: 0; min-width: 0; }
.book-shelf { grid-column: 1; grid-row: 1 / 3; }
.book-showcase img { width: 100%; height: auto; }
.book-story { grid-column: 2; grid-row: 1; }
.book-story h3 { margin-bottom: 18px; }
.book-story p { color: var(--ink-soft); margin: 14px 0; }
.book-table { grid-column: 2; grid-row: 2; max-width: 400px; }
.book-preview { max-width: 1200px; margin: 24px auto 0; }
.book-preview summary { font-size: 20px; }
.book-preview .spread-reader { margin-top: 28px; }
.library-section > .sample-note { max-width: 1380px; margin: 20px auto 0; font-size: 14px; }
.library-closing { display: flex; justify-content: space-between; align-items: center; gap: 24px; max-width: 1200px; margin: 24px auto 0; text-align: left; }
.library-closing p { font-size: 24px; margin: 0; }
.destination-feature { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); align-items: center; gap: 5vw; background: var(--paper); }
.destination-feature figure { margin: 0; min-width: 0; }
.destination-photo { display: block; position: relative; aspect-ratio: 3 / 2; overflow: hidden; }
.destination-photo img { position: absolute; width: 100%; height: 118.2%; object-fit: cover; object-position: center top; }
.destination-feature h2 { font-size: clamp(46px,5.5vw,82px); }
.destination-feature h2 em { color: #795532; font-weight: 400; }
.destination-feature p:not(.eyebrow) { color: var(--ink-soft); }
.destination-actions { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; margin-top: 24px; }
.destination-actions .button { background: var(--ink); color: var(--paper-light); padding: 16px 22px; font-size: 13px; letter-spacing: .08em; }
.location-planning { padding: 0 18px 18px; color: var(--ink); }
.location-planning summary { font-size: 16px; cursor: pointer; color: #795532; }
.location-planning dl { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 12px 18px; margin: 18px 0 0; font-size: 15px; line-height: 1.6; }
.location-planning dt { font-weight: 600; }
.location-planning dd { margin: 0; color: var(--ink-soft); }
.location-planning[hidden] { display: none; }
@media (hover: hover) { .destination-photo:hover img { filter: brightness(.94); } }
@media (min-width: 701px) { .hero { min-height: 90svh; } }
@media (max-width: 1020px) { .explorer-image-frame { min-height: 0; height: min(58vw,560px); } }
@media (max-width: 850px) {
  .legacy-section { padding-top: 64px; padding-bottom: 64px; }
  .legacy-heading { margin-bottom: 34px; }
  #chapter-panel { min-height: 0; }
  .book-showcase { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; }
  .book-shelf { grid-column: 1; grid-row: 1; }
  .book-table { grid-column: 2; grid-row: 1; max-width: none; }
  .book-story { grid-column: 1 / -1; grid-row: 2; }
  .destination-feature { grid-template-columns: 1fr; gap: 30px; }
  .library-closing { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 700px) {
  .section-pad { padding-top: 68px; padding-bottom: 68px; }
  .story-panel, .story-image-wrap { min-height: 0; }
  .story-image-link { min-height: 0; }
  .explorer-image-frame { height: 60vw; }
  .location-planning dl { grid-template-columns: 1fr; gap: 4px; }
  .location-planning dd { margin-bottom: 12px; }
  .refocus-cover img { max-height: 65svh; }
}

/* Actual finished books: preserve the complete cover and open spreads. */
.book-preview .album-spread { grid-template-columns: .8fr 1.2fr; }
.book-preview .album-page { min-height: 0; padding: clamp(20px,3vw,42px); }
.book-preview .album-photo-page .editorial-image { position:relative; perspective:1600px; aspect-ratio: 3/2; width:100%; background:white; }
.book-preview .album-turning-page { padding:0; z-index:1; }
.book-preview .album-photo-page img { position:static; width:100%; height:100%; object-fit:contain; transform:none; }
@media(max-width:750px){.book-preview .album-spread {grid-template-columns:1fr;} .book-preview .album-title-page{border-right:0;}}

.destination-photo img { position:static; height:100%; object-fit:contain; object-position:center; }
.nantucket-story { background:var(--paper); padding-top:24px; }
.nantucket-story h2 em {color:#795532;font-weight:400;}
.nantucket-moments {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:28px;max-width:1380px;margin:auto;}
.nantucket-moments figure {margin:0;grid-column:span 2;min-width:0;}
.nantucket-moments figure:nth-child(-n+2){grid-column:span 3;}
.nantucket-moments img {display:block;width:100%;height:auto;}
.nantucket-moments figcaption {font-size:14px;color:var(--ink-soft);padding-top:10px;}
.nantucket-closing {display:flex;justify-content:center;align-items:center;gap:28px;flex-wrap:wrap;margin-top:36px;}
@media(max-width:700px){.nantucket-moments{grid-template-columns:1fr;gap:24px;}.nantucket-moments figure,.nantucket-moments figure:nth-child(-n+2){grid-column:1;}.nantucket-closing .button{white-space:normal;text-align:center;}}

/* Match the outlined gallery CTA used in Explore the Work. */
.family-gallery-button{box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-height:60px;font-family:var(--sans);font-weight:600;white-space:normal}
.explorer-actions .family-gallery-button{width:100%;padding:17px 20px}
.family-gallery-button[hidden]{display:none}
.wardrobe-gallery-button{width:100%;max-width:340px;margin-top:24px}

/* Compact mobile navigation and paper-toned hero copy. */
@media(max-width: 700px) {
  .hero #hero-title em, .hero .eyebrow.light { color: #796044; }
  .hero-deck, .hero .prototype-note { color: var(--ink-soft); }
  .hero .button-light, .hero .light-link { color: var(--ink); }
  .hero :is(a, button):focus-visible { outline-color: #795532; }
  .story-tabs button { min-height: 54px; padding: 8px 14px; }
}

/* Matched location and service CTAs, using the collection button proportions. */
.explorer-cta-buttons { display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-rows: 1fr; gap: 12px; width: 100%; }
.explorer-cta-buttons :is(#explorer-inquiry, #explorer-gallery-link) { box-sizing: border-box; display: flex; width: 100%; min-width: 0; height: 100%; min-height: 60px; margin: 0; padding: 17px 20px; align-items: center; justify-content: center; font-size: 13px; line-height: 1.5; letter-spacing: .08em; text-align: center; white-space: normal; }
.explorer-cta-buttons #explorer-gallery-link[hidden] { display: none; }

/* A compact outlined introduction, consistent in default and visited states. */
#discretion .meet-robert-button, #discretion .meet-robert-button:visited { display: inline-flex; min-height: 50px; padding: 13px 24px; font-size: 12px; letter-spacing: .08em; color: var(--ink); background: transparent; border: 1px solid var(--ink); text-decoration: none; }
#discretion .meet-robert-button:hover, #discretion .meet-robert-button:focus-visible { background: var(--link-accent); border-color: var(--link-accent); color: #fff; }

/* Descriptive H1; preserve the established visual headline. */
.hero .hero-service-heading { font-family: var(--sans); font-size: clamp(16px, 1.5vw, 20px); font-weight: 400; line-height: 1.4; letter-spacing: .025em; margin: 0 0 20px; max-width: 34em; color: inherit; }

/* A complete photograph introduces the expandable annual family story. */
#family-chapters .legacy-heading { margin-bottom: 28px; }
#family-chapters .chapter-layout { display: block; max-width: 860px; }
#family-chapters .chapter-figure { max-width: 700px; margin: auto; }
#family-chapters .chapter-open { aspect-ratio: 3 / 2; max-height: 460px; }
#family-chapters .chapter-open img { object-fit: contain; }
#family-chapters .chapter-disclosure { margin-top: 22px; padding: 0; }
#family-chapters .chapter-disclosure summary { padding: 18px 0; font-size: 20px; color: #795532; cursor: pointer; }
.chapter-collapse-label, .chapter-disclosure[open] .chapter-expand-label { display: none; }
.chapter-disclosure[open] .chapter-collapse-label { display: inline; }
.chapter-expanded { padding: 0 0 12px; }
.chapter-expanded > p { max-width: 650px; color: var(--ink-soft); }
.chapter-expanded .chapter-thumbnails { margin-bottom: 26px; }
#family-chapters #chapter-panel { min-height: 0; }
#family-chapters .chapter-tabs { margin-bottom: 24px; }
@media(max-width:700px) { #family-chapters .chapter-disclosure summary { font-size: 18px; } }

/* A second, compact disclosure explains books for every kind of occasion. */
.book-design-process { max-width: 1200px; margin: 0 auto; }
.book-design-process summary { font-size: 20px; }
.book-design-intro { max-width: 760px; padding: 24px 0 12px; }
.book-design-intro h3 { font-size: clamp(32px, 4vw, 52px); }
.book-design-intro p:not(.eyebrow) { color: var(--ink-soft); }
.book-design-steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 56px; list-style: none; margin: 12px 0 20px; padding: 0; }
.book-design-steps li { min-width: 0; }
.book-design-steps h4 { font-family: var(--serif); font-weight: 400; font-size: 26px; line-height: 1.2; margin: 0 0 12px; color: var(--ink); }
.book-design-steps p { margin: 0; color: var(--ink-soft); }
@media(max-width:700px) { .book-design-steps { grid-template-columns: 1fr; gap: 24px; } .book-design-process summary { font-size: 18px; } }

.book-design-steps .book-production-time { margin-top: 14px; }

/* The original photograph ends above its embedded print-footer logo. */
.refocus-cover:has(img[src*="refocus.jpg"]), .refocus-cover:has(img[src*="e45747711fc3cd51583a"]) { display:block; aspect-ratio:1067 / 1601; overflow:hidden; width:100%; max-width:393px; margin-inline:auto; }
.refocus-cover:has(img[src*="refocus.jpg"]) img, .refocus-cover:has(img[src*="e45747711fc3cd51583a"]) img { display:block; width:100%; height:auto; max-height:none; }

.story-image-link.has-print-footer:has(img[src*="refocus.jpg"]) img, .story-image-link.has-print-footer:has(img[src*="e45747711fc3cd51583a"]) img { height:112%; }
