/* Design tokens are generated from theme.json. Keep this layer structural. */
* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--wp--preset--spacing--96);
}

body {
  margin: 0;
  background: var(--wp--preset--color--paper);
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--newsreader);
  font-size: var(--wp--preset--font-size--body);
  line-height: 1.6;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}

a {
  color: var(--wp--preset--color--accent);
  text-underline-offset: 0.25em;
  text-decoration-thickness: 1px;
}

button,
input,
textarea,
select {
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--body-2);
}

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

button {
  cursor: pointer;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

picture {
  display: block;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
figure {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--fraunces);
  font-weight: 400;
  overflow-wrap: anywhere;
}

h1 {
  font-size: var(--wp--preset--font-size--display);
  font-variation-settings: "opsz" 144;
  letter-spacing: -0.035em;
  line-height: 1.05;
}

h2 {
  font-size: var(--wp--preset--font-size--h2);
  letter-spacing: -0.025em;
  line-height: 1.15;
}

h3,
h4,
h5,
h6 {
  font-size: var(--wp--preset--font-size--h3);
  letter-spacing: -0.015em;
  line-height: 1.3;
}

em {
  font-weight: inherit;
}

p {
  line-height: 1.6;
}

small {
  font-size: var(--wp--preset--font-size--label);
}

:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--wp--preset--color--olive);
  outline-offset: var(--wp--preset--spacing--4);
}

.wp-site-blocks > * + *,
.wp-block-post-content > * + * {
  margin-block-start: 0;
}

.section-shell {
  width: calc(100% - var(--wp--preset--spacing--48) * 2);
  max-width: var(--wp--style--global--wide-size);
  margin-inline: auto;
}

.eyebrow,
.hero-image-caption,
.service-number,
.review small,
.footer-info,
.footer-credit {
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
  line-height: 1.6;
}

.eyebrow,
.footer-info {
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.preview-note {
  padding: var(--wp--preset--spacing--8) var(--wp--preset--spacing--20);
  background: var(--wp--preset--color--paper-2);
  color: var(--wp--preset--color--muted);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
  line-height: 1.5;
  text-align: center;
}

/* Editable core header and navigation. The template-part owns sticky position. */
.wp-site-blocks > .wp-block-template-part:has(.site-header),
.wp-site-blocks > .site-header {
  position: sticky;
  top: 0;
  z-index: 50;
}

.site-header {
  border-bottom: 1px solid var(--wp--preset--color--line);
  background: color-mix(in srgb, var(--wp--preset--color--paper) 92%, transparent);
}

.site-header .header-inner {
  display: flex;
  min-height: calc(var(--wp--preset--spacing--48) + var(--wp--preset--spacing--24) - 1px);
  align-items: center;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--16);
}

.site-header .header-inner > * {
  margin-block: 0;
}

.site-header .wordmark {
  flex: 0 1 auto;
  min-width: 0;
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--fraunces);
  font-size: var(--wp--preset--font-size--h3);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.1;
}

.wordmark a {
  color: inherit;
  text-decoration: none;
}

.main-navigation,
.footer-navigation {
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--nav);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.main-navigation .wp-block-navigation__container {
  gap: var(--wp--preset--spacing--12);
}

.main-navigation .wp-block-navigation-item__content,
.footer-navigation .wp-block-navigation-item__content {
  color: var(--wp--preset--color--ink);
  text-decoration: none;
}

.main-navigation .wp-block-navigation-item__content:hover,
.main-navigation .current-menu-item > .wp-block-navigation-item__content,
.main-navigation .wp-block-navigation-item__content[aria-current="page"],
.footer-navigation .wp-block-navigation-item__content:hover,
.footer-navigation .wp-block-navigation-item__content[aria-current="page"] {
  text-decoration: underline;
  text-decoration-color: var(--wp--preset--color--accent);
  text-underline-offset: 0.4em;
}

.site-header .main-navigation.wp-block-navigation .wp-block-navigation__submenu-container {
  padding: var(--wp--preset--spacing--12);
  border-color: var(--wp--preset--color--line);
  background: var(--wp--preset--color--paper);
  color: var(--wp--preset--color--ink);
  gap: var(--wp--preset--spacing--8);
}

.main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: var(--wp--preset--spacing--8);
}

.header-inquire {
  flex-shrink: 0;
}

.wp-block-button__link,
.wp-element-button,
.contact-page .inquiry-actions button {
  display: inline-flex;
  min-height: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
  align-items: center;
  justify-content: center;
  padding: var(--wp--preset--spacing--12) var(--wp--preset--spacing--24);
  border: 0;
  border-radius: 0;
  background: var(--wp--preset--color--ink);
  color: var(--wp--preset--color--paper);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--nav);
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
  background: var(--wp--preset--color--olive);
  color: var(--wp--preset--color--paper);
}

.text-link {
  /* Keep text and an inline arrow in one underlined formatting context. */
  display: inline-block;
  padding-bottom: var(--wp--preset--spacing--8);
  color: var(--wp--preset--color--accent);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--body-2);
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: 0.4em;
}

.text-link:hover {
  color: var(--wp--preset--color--olive);
}

/* Existing generic page modules; homepage components are defined below. */
.hero {
  display: grid;
  grid-template-columns: 0.85fr 1.45fr;
  align-items: center;
  gap: var(--wp--preset--spacing--48);
  padding-block: var(--wp--preset--spacing--48) var(--wp--preset--spacing--96);
}

.hero-copy {
  min-width: 0;
  padding-bottom: var(--wp--preset--spacing--20);
}

.hero h1 {
  margin-block: var(--wp--preset--spacing--24);
}

.hero-copy > p:not(.eyebrow) {
  margin-bottom: var(--wp--preset--spacing--32);
  color: var(--wp--preset--color--muted);
}

.hero-image {
  min-width: 0;
}

.hero-image img {
  width: 100%;
}

.hero-image-caption {
  display: flex;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--16);
  padding-top: var(--wp--preset--spacing--12);
  color: var(--wp--preset--color--muted);
}

.hero-image-caption span:last-child {
  letter-spacing: 0.1em;
}

.services {
  padding-block: var(--wp--preset--spacing--48) var(--wp--preset--spacing--64);
  border-block: 1px solid var(--wp--preset--color--line);
}

.service-links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--32);
  margin-top: var(--wp--preset--spacing--32);
}

.service-links a {
  display: flex;
  align-items: baseline;
  gap: var(--wp--preset--spacing--12);
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--fraunces);
  font-size: var(--wp--preset--font-size--h3);
  line-height: 1.3;
  text-decoration: none;
}

.service-number {
  color: var(--wp--preset--color--muted);
}

.service-arrow {
  margin-left: auto;
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--h3);
  line-height: 1;
}

.service-links a:hover {
  color: var(--wp--preset--color--accent);
}

.selected-work {
  padding-block: var(--wp--preset--spacing--96);
}

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--32);
  margin-bottom: var(--wp--preset--spacing--48);
}

.section-heading h2 {
  margin-top: var(--wp--preset--spacing--16);
}

.project-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--wp--preset--spacing--32);
}

.project-card {
  min-width: 0;
}

.project-card:nth-child(even) {
  padding-top: var(--wp--preset--spacing--96);
}

.project-image-link {
  display: block;
}

.project-card img {
  width: 100%;
}

.card-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--16);
  margin-top: var(--wp--preset--spacing--24);
}

.card-caption h3 {
  margin-top: var(--wp--preset--spacing--8);
}

.card-caption h3 a {
  color: var(--wp--preset--color--ink);
  text-decoration: none;
}

.round-link {
  font-size: var(--wp--preset--font-size--h3);
  text-decoration: none;
}

.wp-block-post-content .intro-section {
  width: calc(100% - var(--wp--preset--spacing--48) * 2);
  max-width: var(--wp--style--global--content-size);
  margin: 0 auto var(--wp--preset--spacing--96);
  padding-block: var(--wp--preset--spacing--48);
  text-align: center;
}

.intro-section h2 {
  margin-block: var(--wp--preset--spacing--24);
}

.intro-section p:not(.eyebrow) {
  margin-inline: auto;
  color: var(--wp--preset--color--muted);
}

.process-section {
  padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--96);
  border-top: 1px solid var(--wp--preset--color--line);
}

.process-section > h2 {
  margin-block: var(--wp--preset--spacing--20) var(--wp--preset--spacing--48);
}

.process-section .wp-block-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--32);
}

.process-section h3 {
  margin-block: var(--wp--preset--spacing--16);
}

.process-section p {
  color: var(--wp--preset--color--muted);
}

.inquire-section {
  padding-block: var(--wp--preset--spacing--96);
  border-top: 1px solid var(--wp--preset--color--line);
  text-align: center;
}

.inquire-section h2 {
  margin-block: var(--wp--preset--spacing--24) var(--wp--preset--spacing--32);
}

/* Editable footer: navigation, contact links, three facts, then ownership. */
.site-footer {
  padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--32);
  border-top: 1px solid var(--wp--preset--color--line);
  color: var(--wp--preset--color--muted);
}

.site-footer .section-shell > * + * {
  margin-top: var(--wp--preset--spacing--32);
}

.footer-navigation .wp-block-navigation__container {
  justify-content: center;
  gap: var(--wp--preset--spacing--24);
}

.site-footer .footer-contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--wp--preset--spacing--16) var(--wp--preset--spacing--32);
  font-size: var(--wp--preset--font-size--body-2);
  text-align: center;
}

.footer-contact > * {
  margin: 0;
}

.site-footer .footer-info {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--32);
  padding-block: var(--wp--preset--spacing--32);
  border-block: 1px solid var(--wp--preset--color--line);
  text-align: center;
}

.footer-info > * {
  margin: 0;
}

.site-footer .footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--24);
  font-size: var(--wp--preset--font-size--body-2);
}

.footer-bottom > * {
  margin: 0;
}

/* Collection, story and portfolio pages share the homepage photo components. */
.collection,
.story,
.portfolio-overview {
  min-width: 0;
}

.collection h2,
.story h2,
.portfolio-overview h2 {
  font-size: var(--wp--preset--font-size--h-2);
}

.collection h3,
.story h3,
.portfolio-overview h3,
.collection .review blockquote,
.story .review blockquote {
  font-size: var(--wp--preset--font-size--h-3);
}

.collection-intro,
.portfolio-overview > header {
  padding-block: var(--wp--preset--spacing--64);
}

.collection-heading-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--wp--preset--spacing--64);
  margin-top: var(--wp--preset--spacing--32);
}

.collection-heading-grid h1 > span,
.collection-heading-grid h1 > em {
  display: block;
}

.collection-heading-grid h1 > em {
  margin-top: var(--wp--preset--spacing--8);
  color: var(--wp--preset--color--accent);
}

.collection-description {
  max-width: var(--wp--style--global--content-size);
  color: var(--wp--preset--color--muted);
  overflow-wrap: anywhere;
}

.collection-description p + p {
  margin-top: var(--wp--preset--spacing--16);
}

.collection-tools,
.collection-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--wp--preset--spacing--12) var(--wp--preset--spacing--24);
}

.collection-tools {
  margin-top: var(--wp--preset--spacing--48);
  padding-block: var(--wp--preset--spacing--24);
  border-block: 1px solid var(--wp--preset--color--line);
}

.collection-price {
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--body-2);
}

.collection-chips {
  gap: var(--wp--preset--spacing--8) var(--wp--preset--spacing--20);
}

.collection-chips a {
  display: inline-flex;
  min-height: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
  align-items: center;
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--nav);
  text-decoration-color: var(--wp--preset--color--line);
}

.collection-chips a:hover,
.collection-chips a[aria-current="page"] {
  color: var(--wp--preset--color--accent);
  text-decoration-color: currentColor;
}

.collection-tools > .text-link {
  margin-left: auto;
  padding-bottom: 0;
}

.collection-cover {
  aspect-ratio: 3 / 2;
}

.collection-cover picture,
.collection-cover img {
  width: 100%;
  height: 100%;
}

.collection-cover img {
  object-fit: cover;
}

.collection-collage,
.collection-stories,
.portfolio-categories {
  padding-block: var(--wp--preset--spacing--96);
}

.collection-stories {
  border-top: 1px solid var(--wp--preset--color--line);
}

.collection-stories > h2 {
  margin-bottom: var(--wp--preset--spacing--48);
}

.story-card {
  min-width: 0;
}

.story-card > a {
  display: block;
  color: var(--wp--preset--color--ink);
  text-decoration: none;
}

.story-card img {
  width: 100%;
  height: auto;
}

.story-card h3 {
  margin-top: var(--wp--preset--spacing--20);
}

.story-card a:hover h3 {
  text-decoration: underline;
  text-decoration-color: var(--wp--preset--color--accent);
  text-underline-offset: 0.2em;
}

.story-card > p {
  margin-top: var(--wp--preset--spacing--12);
  color: var(--wp--preset--color--muted);
  overflow-wrap: anywhere;
}

.collection .review-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.story .review-grid {
  grid-template-columns: minmax(0, 1fr);
  max-width: var(--wp--style--global--content-size);
}

.pagination {
  padding-block: 0 var(--wp--preset--spacing--64);
}

.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--wp--preset--spacing--8);
}

.pagination .page-numbers {
  display: inline-flex;
  min-width: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
  min-height: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
  align-items: center;
  justify-content: center;
  padding-inline: var(--wp--preset--spacing--12);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--body-2);
}

.pagination .page-numbers.current {
  color: var(--wp--preset--color--ink);
  border-bottom: 1px solid var(--wp--preset--color--accent);
}

.portfolio-overview > header > p {
  max-width: var(--wp--style--global--content-size);
  margin-top: var(--wp--preset--spacing--24);
  color: var(--wp--preset--color--muted);
}

.portfolio-categories {
  padding-top: 0;
}

.story-heading {
  padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--32);
  text-align: center;
}

.story-heading h1 {
  max-width: var(--wp--style--global--content-size);
  margin: 0 auto var(--wp--preset--spacing--24);
}

.story-intro {
  width: calc(100% - var(--wp--preset--spacing--48) * 2);
  max-width: var(--wp--style--global--content-size);
  margin: 0 auto var(--wp--preset--spacing--64);
  color: var(--wp--preset--color--muted);
  text-align: center;
  overflow-wrap: anywhere;
}

.story-intro p + p {
  margin-top: var(--wp--preset--spacing--20);
}

.story-gallery {
  margin-bottom: var(--wp--preset--spacing--64);
}

/* Equal-height flex rows keep each native ratio. The spacer absorbs spare room
   in the final row instead of enlarging its last photographs. */
.album-grid {
  --album-row-height: 320px;
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--8);
  align-items: flex-start;
}

.album-grid > .album-photo {
  flex: var(--album-ratio) 1 0;
  min-width: min(100%, calc(var(--album-ratio) * var(--album-row-height)));
  margin: 0;
  overflow: hidden;
}

.album-spacer {
  flex: 999 1 0;
  min-width: 0;
  height: 0;
}

.album-photo > a {
  display: block;
  width: 100%;
  height: 100%;
  color: inherit;
}

.album-grid .album-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.album-link:focus-visible {
  outline: 3px solid var(--wp--preset--color--accent);
  outline-offset: -3px;
}

.story-photo-count {
  margin-top: var(--wp--preset--spacing--12);
  color: var(--wp--preset--color--muted);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
}

.pswp .pswp__story-link {
  position: absolute;
  bottom: var(--wp--preset--spacing--20);
  left: var(--wp--preset--spacing--16);
  right: var(--wp--preset--spacing--16);
  text-align: center;
  pointer-events: none;
}

.pswp .pswp__story-link a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding-inline: var(--wp--preset--spacing--16);
  background: var(--wp--preset--color--paper);
  color: var(--wp--preset--color--ink);
  pointer-events: auto;
}

.pswp .pswp__story-link[hidden] {
  display: none;
}

@media (hover: hover) {
  .album-link {
    cursor: zoom-in;
  }

  .album-link img {
    transition: transform 300ms ease;
  }

  .album-link:hover img {
    transform: scale(1.03);
  }
}

@media (prefers-reduced-motion: reduce) {
  .album-link img,
  .album-link:hover img {
    transition: none;
    transform: none;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .album-grid {
    --album-row-height: 260px;
  }
}

@media (max-width: 767px) {
  .album-grid {
    --album-row-height: 180px;
  }
}

.story-pagination {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--24);
  align-items: start;
  padding-block: var(--wp--preset--spacing--32) var(--wp--preset--spacing--96);
  border-top: 1px solid var(--wp--preset--color--line);
}

.story-pagination > * {
  min-width: 0;
  overflow-wrap: anywhere;
}

.story-pagination > :nth-child(2) {
  justify-self: center;
  text-align: center;
}

.story-pagination > :last-child {
  justify-self: end;
  text-align: right;
}

.story-pagination a {
  font-size: var(--wp--preset--font-size--body-2);
}

.story-pagination [aria-disabled="true"] {
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--body-2);
}

.testimonials {
  padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--96);
  border-top: 1px solid var(--wp--preset--color--line);
}

.review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--32);
  margin-top: var(--wp--preset--spacing--32);
}

/* Scroll through the shell gutters while keeping the first card with its title. */
.review-carousel {
  min-width: 0;
  margin-top: var(--wp--preset--spacing--32);
}

.review-controls {
  display: flex;
  justify-content: flex-end;
  gap: var(--wp--preset--spacing--8);
  margin-bottom: var(--wp--preset--spacing--16);
}

.review-controls[hidden],
.review-controls button[hidden] {
  display: none;
}

.review-controls button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
  height: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
  padding: 0;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 50%;
  background: var(--wp--preset--color--paper);
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--h-3);
  line-height: 1;
}

.review-controls button:disabled {
  color: var(--wp--preset--color--muted);
  opacity: 0.5;
  cursor: default;
}

.review-rail {
  min-width: 0;
  margin-inline: calc(-1 * var(--wp--preset--spacing--48));
  padding-inline: var(--wp--preset--spacing--48);
  scroll-padding-inline: var(--wp--preset--spacing--48);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.review-rail::-webkit-scrollbar {
  display: none;
}

.review-rail:focus-visible {
  outline: 2px solid var(--wp--preset--color--olive);
  outline-offset: var(--wp--preset--spacing--4);
}

.review-track {
  display: flex;
  align-items: flex-start;
  gap: var(--wp--preset--spacing--32);
  padding: 0;
  margin: 0;
  list-style: none;
}

.review-track > li {
  flex: 0 0 clamp(280px, 30vw, 360px);
  min-width: 0;
  scroll-snap-align: start;
}

/* JavaScript adds this class only after checking that the quote overflows. */
.review-rail blockquote.is-collapsed {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 8;
  overflow: hidden;
}

.review-read-more {
  margin-top: var(--wp--preset--spacing--12);
  padding: 0 0 var(--wp--preset--spacing--8);
  border: 0;
  border-radius: 0;
  background: transparent;
  text-align: left;
}

.review-all-link {
  margin-top: var(--wp--preset--spacing--24);
}

@media (max-width: 767px) {
  .review-rail {
    margin-inline: calc(-1 * var(--wp--preset--spacing--20));
    padding-inline: var(--wp--preset--spacing--20);
    scroll-padding-inline: var(--wp--preset--spacing--20);
  }

  .review-track > li {
    flex-basis: 84vw;
  }

  .review-rail blockquote.is-collapsed {
    -webkit-line-clamp: 7;
  }
}

.review {
  min-width: 0;
}

.review blockquote {
  margin: 0 0 var(--wp--preset--spacing--24);
  font-family: var(--wp--preset--font-family--newsreader);
  font-size: var(--wp--preset--font-size--h3);
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.review figcaption {
  display: flex;
  align-items: center;
  gap: var(--wp--preset--spacing--16);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
}

.review small {
  display: block;
  margin-top: var(--wp--preset--spacing--4);
  color: var(--wp--preset--color--muted);
}

.review-avatar {
  width: var(--wp--preset--spacing--48);
  height: var(--wp--preset--spacing--48);
  border-radius: 50%;
  object-fit: cover;
}

.review-photos {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--8);
  padding: 0;
  margin: var(--wp--preset--spacing--16) 0 0;
  list-style: none;
}

.review-photos li {
  flex: 0 0 var(--wp--preset--spacing--64);
}

.review-photos img {
  display: block;
  width: var(--wp--preset--spacing--64);
  height: var(--wp--preset--spacing--64);
  object-fit: cover;
  border-radius: calc(var(--wp--preset--spacing--4) / 2);
}

@media (max-width: 1023px) {
  .review-photos li {
    flex-basis: calc(var(--wp--preset--spacing--64) - var(--wp--preset--spacing--8));
  }

  .review-photos img {
    width: calc(var(--wp--preset--spacing--64) - var(--wp--preset--spacing--8));
    height: calc(var(--wp--preset--spacing--64) - var(--wp--preset--spacing--8));
  }
}

.page-body {
  min-height: 55vh;
  padding: var(--wp--preset--spacing--64) var(--wp--preset--spacing--48) var(--wp--preset--spacing--96);
}

.page-body h1 {
  margin-bottom: var(--wp--preset--spacing--32);
}

.page-body p {
  margin-bottom: var(--wp--preset--spacing--24);
}

.image-placeholder {
  display: flex;
  aspect-ratio: 3 / 2;
  align-items: center;
  justify-content: center;
  padding: var(--wp--preset--spacing--24);
  background: var(--wp--preset--color--paper-2);
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--body-2);
  text-align: center;
}

.empty-note {
  max-width: var(--wp--style--global--content-size);
  padding-block: var(--wp--preset--spacing--32);
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--body-2);
}

.skip-link {
  position: fixed;
  top: calc(-1 * var(--wp--preset--spacing--96));
  left: var(--wp--preset--spacing--16);
  z-index: 100;
  padding: var(--wp--preset--spacing--12) var(--wp--preset--spacing--20);
  background: var(--wp--preset--color--paper);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--body-2);
}

.skip-link:focus {
  top: var(--wp--preset--spacing--16);
}

@media (min-width: 1024px) {
  .site-header .main-navigation {
    flex: 0 1 auto;
    min-width: 0;
  }

  .site-header .main-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close {
    display: none;
  }

  .site-header .main-navigation .wp-block-navigation__responsive-container-open {
    display: none;
  }

  .site-header .main-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
    position: relative;
    display: block;
    width: 100%;
    background: transparent;
  }
}

@media (max-width: 1023px) {
  .site-header .header-inner {
    gap: var(--wp--preset--spacing--20);
  }

  .site-header .wordmark {
    margin-right: auto;
  }

  .site-header .main-navigation {
    order: 3;
  }

  .site-header .header-inquire {
    order: 2;
  }

  .site-header .main-navigation .wp-block-navigation__responsive-container-open {
    display: flex;
    min-width: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
    min-height: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
    align-items: center;
    justify-content: center;
  }

  .site-header .main-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none;
  }

  .site-header .main-navigation.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open {
    padding: var(--wp--preset--spacing--24) var(--wp--preset--spacing--20);
    background: var(--wp--preset--color--paper);
    color: var(--wp--preset--color--ink);
  }

  .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
  .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    align-items: flex-start;
  }

  .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    gap: var(--wp--preset--spacing--24);
  }

  .site-header .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
    padding: var(--wp--preset--spacing--12) 0 0 var(--wp--preset--spacing--20);
    gap: var(--wp--preset--spacing--12);
  }

  .main-navigation .wp-block-navigation__responsive-container-close {
    min-width: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
    min-height: calc(var(--wp--preset--spacing--32) + var(--wp--preset--spacing--12));
  }

  .service-links,
  .process-section .wp-block-columns,
  .review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .section-shell,
  .wp-block-post-content .intro-section,
  .story-intro {
    width: calc(100% - var(--wp--preset--spacing--20) * 2);
  }

  .site-header .header-inner {
    min-height: calc(var(--wp--preset--spacing--48) + var(--wp--preset--spacing--12) - 1px);
    gap: var(--wp--preset--spacing--12);
  }

  .site-header .wordmark {
    font-size: var(--wp--preset--font-size--body);
  }

  .header-inquire .wp-block-button__link {
    padding-inline: 0;
    background: transparent;
    color: var(--wp--preset--color--accent);
    font-size: var(--wp--preset--font-size--body-2);
    letter-spacing: 0;
    text-decoration: underline;
    text-transform: none;
  }

  .header-inquire .wp-block-button__link:hover {
    color: var(--wp--preset--color--olive);
  }

  .hero {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--24);
    padding-block: var(--wp--preset--spacing--32) var(--wp--preset--spacing--64);
  }

  .hero-copy {
    padding-bottom: 0;
  }

  .hero-copy > p:not(.eyebrow) {
    margin-bottom: var(--wp--preset--spacing--24);
  }

  .hero-image-caption {
    flex-wrap: wrap;
    gap: var(--wp--preset--spacing--8);
  }

  .services {
    padding-block: var(--wp--preset--spacing--32);
  }

  .service-links,
  .project-grid,
  .process-section .wp-block-columns,
  .review-grid,
  .site-footer .footer-info {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--24);
  }

  .selected-work,
  .inquire-section {
    padding-block: var(--wp--preset--spacing--64);
  }

  .section-heading {
    display: block;
    margin-bottom: var(--wp--preset--spacing--32);
  }

  .section-heading h2 {
    margin-bottom: var(--wp--preset--spacing--24);
  }

  .project-card:nth-child(even) {
    padding-top: 0;
  }

  .card-caption {
    margin-top: var(--wp--preset--spacing--16);
  }

  .wp-block-post-content .intro-section {
    margin-bottom: var(--wp--preset--spacing--64);
    padding-block: var(--wp--preset--spacing--20);
  }

  .process-section {
    padding-block: var(--wp--preset--spacing--48) var(--wp--preset--spacing--64);
  }

  .site-footer {
    padding-block: var(--wp--preset--spacing--48) var(--wp--preset--spacing--32);
  }

  .footer-navigation .wp-block-navigation__container {
    justify-content: flex-start;
    gap: var(--wp--preset--spacing--16) var(--wp--preset--spacing--24);
  }

  .site-footer .footer-contact,
  .site-footer .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--wp--preset--spacing--16);
    text-align: left;
  }

  .footer-contact {
    overflow-wrap: anywhere;
  }

  .site-footer .footer-info {
    text-align: left;
  }

  .collection-intro,
  .portfolio-overview > header {
    padding-block: var(--wp--preset--spacing--32) var(--wp--preset--spacing--48);
  }

  .collection-heading-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--24);
    margin-top: var(--wp--preset--spacing--24);
  }

  .collection-tools {
    align-items: flex-start;
    margin-top: var(--wp--preset--spacing--32);
    gap: var(--wp--preset--spacing--16);
  }

  .collection-tools > .text-link {
    margin-left: 0;
  }

  .collection-cover {
    aspect-ratio: 4 / 5;
  }

  .collection-collage,
  .collection-stories,
  .portfolio-categories {
    padding-block: var(--wp--preset--spacing--64);
  }

  .portfolio-categories {
    padding-top: 0;
  }

  .collection-stories > h2 {
    margin-bottom: var(--wp--preset--spacing--32);
  }

  .collection .review-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .story-heading {
    padding-block: var(--wp--preset--spacing--32) var(--wp--preset--spacing--24);
  }

  .story-heading h1 {
    margin-bottom: var(--wp--preset--spacing--20);
  }

  .story-intro {
    margin-bottom: var(--wp--preset--spacing--48);
  }

  .story-gallery {
    margin-bottom: var(--wp--preset--spacing--48);
  }

  .story-pagination {
    grid-template-columns: minmax(0, 1fr);
    padding-bottom: var(--wp--preset--spacing--64);
  }

  .story-pagination > :nth-child(2),
  .story-pagination > :last-child {
    justify-self: start;
    text-align: left;
  }

  .testimonials {
    padding-block: var(--wp--preset--spacing--48) var(--wp--preset--spacing--64);
  }

  .page-body {
    padding: var(--wp--preset--spacing--48) var(--wp--preset--spacing--20) var(--wp--preset--spacing--64);
  }


}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation: none;
    transition: none;
  }
}

/* Homepage: photo-led sections. All presentation values use the shared tokens. */
/* WordPress normalizes the h2/h3 preset slugs to h-2/h-3 CSS variables. */
[data-home-section] h2 {
  font-size: var(--wp--preset--font-size--h-2);
}

[data-home-section] h3,
.home-reviews .review blockquote {
  font-size: var(--wp--preset--font-size--h-3);
}

.home-hero,
.home-categories,
.home-essay,
.home-collage,
.home-reviews,
.home-services,
.home-about,
.home-closing {
  min-width: 0;
}

.home-photo,
.home-collage-photo {
  min-width: 0;
  margin: 0;
}

.home-photo img,
.home-collage-photo img {
  width: 100%;
}

.home-photo > a,
.home-collage-photo > a {
  display: block;
}

.home-hero {
  position: relative;
  isolation: isolate;
  margin-block: var(--wp--preset--spacing--24) 0;
  aspect-ratio: 3 / 2;
}

.home-hero-media {
  position: absolute;
  inset: 0;
  z-index: -1;
  margin: 0;
}

.home-hero-media picture,
.home-hero-media img {
  width: 100%;
  height: 100%;
}

.home-hero-media img {
  object-fit: cover;
}

.home-hero-copy {
  position: absolute;
  left: var(--wp--preset--spacing--32);
  bottom: var(--wp--preset--spacing--32);
  width: min(55%, var(--wp--style--global--content-size));
  padding: var(--wp--preset--spacing--32);
  background: var(--wp--preset--color--paper);
}

.home-hero-copy h1 {
  max-width: 12ch;
}

.home-hero-copy > * + * {
  margin-top: var(--wp--preset--spacing--20);
}

.home-hero-copy > p:not(.eyebrow) {
  max-width: 48ch;
  color: var(--wp--preset--color--muted);
}

.home-categories,
.home-collage,
.home-services,
.home-about {
  padding-block: var(--wp--preset--spacing--96);
}

.home-categories > h2,
.home-collage > h2,
.home-services > h2 {
  margin-bottom: var(--wp--preset--spacing--48);
}

/* Services retain their existing grid; they are outside the cover-row change. */
.services-grid.home-category-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--48) var(--wp--preset--spacing--32);
}

.services-grid .home-category {
  grid-column: span 2;
  min-width: 0;
}

.services-grid .home-category:nth-child(4) {
  grid-column: 2 / 4;
}

.services-grid .home-category:nth-child(5) {
  grid-column: 4 / 6;
}

.services-grid .home-photo {
  aspect-ratio: 4 / 5;
}

.services-grid .home-photo img {
  height: 100%;
  object-fit: cover;
}

/* Cover/card rows share a photograph's bounded ratio. The final flexible
   spacer keeps an incomplete row at its target size; text stays below frames. */
.photo-rows,
.collection-story-grid {
  --photo-row-height: 420px;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--wp--preset--spacing--48) var(--wp--preset--spacing--8);
}

.photo-rows > .photo-item,
.collection-story-grid > .photo-item {
  flex: var(--photo-ratio) 1 0;
  min-width: min(100%, calc(var(--photo-ratio) * var(--photo-row-height)));
  /* A solitary portrait before a wide photograph must not grow a screen tall. */
  max-width: min(100%, calc(var(--photo-ratio) * var(--photo-row-height) * 1.25));
  margin: 0;
}

.home-collage-grid.photo-rows,
.collection-collage .photo-rows {
  row-gap: var(--wp--preset--spacing--8);
}

.photo-rows::after,
.collection-story-grid::after {
  content: "";
  flex: 999 1 0;
  min-width: 0;
  height: 0;
}

.photo-frame {
  aspect-ratio: var(--photo-ratio);
  overflow: hidden;
}

.photo-frame > a {
  display: block;
  width: 100%;
  height: 100%;
}

.photo-frame img,
.album-grid .photo-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: var(--photo-fit, contain);
}

.home-category > a {
  display: block;
  color: var(--wp--preset--color--ink);
  text-decoration: none;
}

.home-category h3 {
  margin-top: var(--wp--preset--spacing--20);
}

.home-category h3 em,
.home-about h2 em,
.home-closing h2 em {
  color: var(--wp--preset--color--accent);
}

.home-category a:hover h3 {
  text-decoration: underline;
  text-decoration-color: var(--wp--preset--color--accent);
  text-underline-offset: 0.2em;
}

.home-price {
  margin-top: var(--wp--preset--spacing--8);
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--body-2);
}

.home-essay,
.home-reviews {
  padding-block: var(--wp--preset--spacing--96);
  background: var(--wp--preset--color--paper-2);
}

.home-essay-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  align-items: center;
  gap: var(--wp--preset--spacing--64);
}

.home-essay-images {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: var(--wp--preset--spacing--32);
}

.home-essay-images .home-photo:nth-child(2) {
  margin-top: var(--wp--preset--spacing--96);
}

.home-essay-copy > * + *,
.home-about-copy > * + * {
  margin-top: var(--wp--preset--spacing--24);
}

.home-essay-copy p,
.home-about-copy p {
  max-width: 55ch;
  color: var(--wp--preset--color--muted);
}

.home-collage-group + .home-collage-group {
  margin-top: var(--wp--preset--spacing--64);
}

.home-caption {
  margin-top: var(--wp--preset--spacing--20);
  color: var(--wp--preset--color--muted);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
  line-height: 1.6;
  letter-spacing: 0.12em;
  text-align: center;
  text-transform: uppercase;
}

.home-reviews .home-trust-line {
  margin-top: var(--wp--preset--spacing--16);
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--body-2);
}

.home-reviews .review-grid {
  margin-top: var(--wp--preset--spacing--32);
}

.home-reviews .review,
.testimonials .review-rail .review {
  padding: var(--wp--preset--spacing--32);
  border: 1px solid var(--wp--preset--color--line);
  background: var(--wp--preset--color--paper);
}

.home-reviews .review blockquote {
  margin: 0;
}

.home-reviews .review figcaption {
  margin-top: var(--wp--preset--spacing--24);
}

.home-service-list {
  margin: 0 0 var(--wp--preset--spacing--24);
  padding: 0;
  list-style: none;
}

.home-service-list li {
  border-bottom: 1px solid var(--wp--preset--color--line);
}

.home-service-list li:first-child {
  border-top: 1px solid var(--wp--preset--color--line);
}

.home-service-list a {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: var(--wp--preset--spacing--8);
  padding-block: var(--wp--preset--spacing--16);
  color: var(--wp--preset--color--ink);
  text-decoration: none;
}

.home-service-list a:hover {
  color: var(--wp--preset--color--accent);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.home-service-list .home-service-price {
  flex-shrink: 0;
  margin: 0;
  color: var(--wp--preset--color--muted);
}

.home-about {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  align-items: center;
  gap: var(--wp--preset--spacing--96);
  border-top: 1px solid var(--wp--preset--color--line);
}

.home-about-portrait img {
  height: auto;
}

.home-closing {
  padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--32);
  background: var(--wp--preset--color--paper-2);
  text-align: center;
}

.home-closing.section-shell {
  width: 100%;
  max-width: none;
  padding-inline: max(var(--wp--preset--spacing--48), calc((100% - var(--wp--style--global--wide-size)) / 2));
}

.home-closing h2 span,
.home-closing h2 em {
  display: block;
}

.home-closing h2 em {
  margin-top: var(--wp--preset--spacing--8);
}

.home-closing .wp-element-button,
.home-closing .wp-block-button__link {
  margin-top: var(--wp--preset--spacing--32);
}

.closing-info {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--32);
  margin-top: var(--wp--preset--spacing--48);
  padding-top: var(--wp--preset--spacing--24);
  border-top: 1px solid var(--wp--preset--color--line);
  color: var(--wp--preset--color--muted);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
  line-height: 1.6;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .home-hero-copy {
    left: var(--wp--preset--spacing--24);
    bottom: var(--wp--preset--spacing--24);
    width: 75%;
    padding: var(--wp--preset--spacing--24);
  }

  .photo-rows,
  .collection-story-grid {
    --photo-row-height: 320px;
  }

  .services-grid.home-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .services-grid .home-category:nth-child(n) {
    grid-column: auto;
  }

  .home-essay-grid {
    gap: var(--wp--preset--spacing--32);
  }

  .home-essay-images {
    gap: var(--wp--preset--spacing--24);
  }

  .home-essay-images .home-photo:nth-child(2) {
    margin-top: var(--wp--preset--spacing--64);
  }

  .home-about {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--wp--preset--spacing--48);
  }
}

@media (max-width: 767px) {
  .home-hero {
    aspect-ratio: 4 / 5;
    margin-top: var(--wp--preset--spacing--20);
  }

  .home-hero-copy {
    left: var(--wp--preset--spacing--12);
    right: var(--wp--preset--spacing--12);
    bottom: var(--wp--preset--spacing--12);
    width: auto;
    padding: var(--wp--preset--spacing--16);
  }

  .home-hero-copy > * + * {
    margin-top: var(--wp--preset--spacing--12);
  }

  .home-hero-copy > p:not(.eyebrow) {
    font-size: var(--wp--preset--font-size--body-2);
  }

  .home-hero-copy .text-link {
    padding-bottom: 0;
  }

  .home-categories,
  .home-essay,
  .home-collage,
  .home-reviews,
  .home-services,
  .home-about {
    padding-block: var(--wp--preset--spacing--64);
  }

  .home-categories > h2,
  .home-collage > h2,
  .home-services > h2 {
    margin-bottom: var(--wp--preset--spacing--32);
  }

  .home-essay-grid,
  .home-about {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--32);
  }

  .photo-rows,
  .collection-story-grid {
    gap: var(--wp--preset--spacing--48);
  }

  .services-grid.home-category-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--48) var(--wp--preset--spacing--32);
  }

  .services-grid .home-category:nth-child(n) {
    grid-column: auto;
  }

  .photo-rows > .photo-item,
  .collection-story-grid > .photo-item {
    flex: 0 0 100%;
    min-width: 0;
    max-width: 100%;
    width: 100%;
  }

  .photo-rows::after,
  .collection-story-grid::after {
    display: none;
  }

  .home-essay-images {
    gap: var(--wp--preset--spacing--24);
  }

  .home-essay-images .home-photo:nth-child(2) {
    margin-top: var(--wp--preset--spacing--48);
  }

  .home-essay-copy > * + *,
  .home-about-copy > * + * {
    margin-top: var(--wp--preset--spacing--20);
  }

  .home-collage-group + .home-collage-group {
    margin-top: var(--wp--preset--spacing--48);
  }

  .home-caption {
    margin-top: var(--wp--preset--spacing--16);
    text-align: left;
  }

  .home-reviews .review {
    padding: var(--wp--preset--spacing--24);
  }

  .home-service-list a {
    flex-wrap: wrap;
    gap: var(--wp--preset--spacing--4) var(--wp--preset--spacing--16);
  }

  .home-about-portrait {
    width: 100%;
  }

  .home-closing.section-shell {
    padding-inline: var(--wp--preset--spacing--20);
  }

  .closing-info {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--20);
    margin-top: var(--wp--preset--spacing--32);
  }
}

/* Supporting pages reuse the portfolio grids, media and closing components. */
.support-page {
  overflow-wrap: anywhere;
}

.support-page h2 {
  font-size: var(--wp--preset--font-size--h-2);
}

.support-page h3,
.support-page .review blockquote {
  font-size: var(--wp--preset--font-size--h-3);
}

.support-page h1 em,
.support-page h2 em {
  color: var(--wp--preset--color--accent);
}

.support-intro {
  padding-block: var(--wp--preset--spacing--96) var(--wp--preset--spacing--64);
}

.support-intro p {
  max-width: var(--wp--style--global--content-size);
  margin-top: var(--wp--preset--spacing--24);
  color: var(--wp--preset--color--muted);
}

.gallery-collage,
.services-grid,
.faq-layout {
  margin-bottom: var(--wp--preset--spacing--96);
}

.gallery-collage img {
  width: 100%;
  height: auto;
}

.about-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
  align-items: start;
  gap: var(--wp--preset--spacing--64);
  padding-block: var(--wp--preset--spacing--96);
}

.about-portrait img {
  width: 100%;
  height: auto;
}

.about-copy,
.faq-content,
.faq-photos {
  min-width: 0;
}

.about-copy h1 {
  margin-bottom: var(--wp--preset--spacing--24);
}

.copy-draft-note {
  margin-bottom: var(--wp--preset--spacing--24);
  color: var(--wp--preset--color--muted);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
}

.about-body p + p {
  margin-top: var(--wp--preset--spacing--24);
}

.about-process {
  padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--96);
  border-top: 1px solid var(--wp--preset--color--line);
}

.about-process ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--48);
  margin: var(--wp--preset--spacing--48) 0 0;
  padding: 0;
  list-style: none;
  counter-reset: process;
}

.about-process li {
  min-width: 0;
  counter-increment: process;
}

.about-process li::before {
  content: "0" counter(process);
  color: var(--wp--preset--color--muted);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
}

.about-process h3 {
  margin-block: var(--wp--preset--spacing--16);
}

.about-process p {
  color: var(--wp--preset--color--muted);
}

.about-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--32);
  margin-bottom: var(--wp--preset--spacing--96);
}

.about-photos.has-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.about-photos figure:nth-child(2) {
  padding-top: var(--wp--preset--spacing--64);
}

.about-photos img {
  width: 100%;
  height: auto;
}

.about-language {
  padding-block: var(--wp--preset--spacing--48);
  color: var(--wp--preset--color--muted);
  text-align: center;
}

.support-page .service-card h2 {
  margin-top: var(--wp--preset--spacing--20);
  font-size: var(--wp--preset--font-size--h-3);
}

.service-subtypes {
  margin-top: var(--wp--preset--spacing--12);
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--body-2);
}

.service-card > .text-link {
  margin-top: var(--wp--preset--spacing--24);
  color: var(--wp--preset--color--accent);
  text-decoration: underline;
}

.services-facts {
  max-width: var(--wp--style--global--content-size);
  margin-bottom: var(--wp--preset--spacing--96);
}

.services-facts ul {
  margin: var(--wp--preset--spacing--32) 0 0;
  padding: 0;
  list-style: none;
}

.services-facts li {
  padding-block: var(--wp--preset--spacing--20);
  border-top: 1px solid var(--wp--preset--color--line);
}

.services-facts li:last-child {
  border-bottom: 1px solid var(--wp--preset--color--line);
}

.services-facts a {
  display: inline-block;
}

.faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  align-items: start;
  gap: var(--wp--preset--spacing--64);
}

.faq-content h2 {
  margin-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--24);
}

.faq-content h2:first-child {
  margin-top: 0;
}

.faq-content .wp-block-details {
  margin: 0;
  border-top: 1px solid var(--wp--preset--color--line);
}

.faq-content .wp-block-details summary {
  padding-block: var(--wp--preset--spacing--20);
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--fraunces);
  font-size: var(--wp--preset--font-size--h-3);
  line-height: 1.4;
  cursor: pointer;
}

.faq-content .wp-block-details summary::marker {
  color: var(--wp--preset--color--accent);
}

.faq-content .wp-block-details[open] {
  padding-bottom: var(--wp--preset--spacing--24);
}

.faq-content .wp-block-details > :not(summary) {
  margin-top: var(--wp--preset--spacing--16);
}

.faq-content .wp-block-details p,
.faq-owner-notes {
  color: var(--wp--preset--color--muted);
}

.faq-content .owner-placeholder {
  font: inherit;
  color: inherit;
  background: none;
  white-space: normal;
  overflow-wrap: anywhere;
}

.faq-owner-notes {
  padding: var(--wp--preset--spacing--24);
  margin-block: var(--wp--preset--spacing--48);
  border: 1px solid var(--wp--preset--color--line);
  background: var(--wp--preset--color--paper-2);
  font-size: var(--wp--preset--font-size--body-2);
}

.faq-owner-notes p + p {
  margin-top: var(--wp--preset--spacing--16);
}

.faq-photos {
  display: grid;
  gap: var(--wp--preset--spacing--32);
}

.faq-photos img {
  width: 100%;
  height: auto;
}

@media (max-width: 1023px) {
  .about-intro,
  .faq-layout {
    gap: var(--wp--preset--spacing--32);
  }

  .about-process ol {
    gap: var(--wp--preset--spacing--24);
  }
}

@media (max-width: 767px) {
  .support-intro {
    padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--48);
  }

  .gallery-collage,
  .services-grid,
  .services-facts,
  .faq-layout,
  .about-photos {
    margin-bottom: var(--wp--preset--spacing--64);
  }

  .about-intro,
  .faq-layout,
  .about-process ol,
  .about-photos,
  .about-photos.has-three,
  .about-reviews .review-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .about-intro,
  .about-process {
    padding-block: var(--wp--preset--spacing--64);
  }

  .about-intro,
  .about-process ol,
  .about-photos {
    gap: var(--wp--preset--spacing--24);
  }

  .about-copy {
    order: 1;
  }

  .about-portrait {
    order: 2;
  }

  .about-photos figure:nth-child(2) {
    padding-top: 0;
  }

  .faq-content {
    order: 1;
  }

  .faq-photos {
    order: 2;
  }
}

/* Contact: a quiet, readable form with explicit feedback and a calendar slot. */
.contact-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--16) var(--wp--preset--spacing--32);
  margin-top: var(--wp--preset--spacing--32);
}

.contact-form-section,
.contact-availability {
  max-width: var(--wp--style--global--content-size);
}

.contact-form-section {
  margin-bottom: var(--wp--preset--spacing--96);
}

/* One native details calendar starts below the date field. With JS the same
   node moves into the desktop sidebar; no-JS keeps a useful inline disclosure. */
.contact-form-main,
.contact-calendar-sidebar {
  min-width: 0;
}

.contact-calendar-sidebar[hidden] {
  display: none;
}

.contact-calendar-inline {
  margin-top: var(--wp--preset--spacing--16);
}

.contact-calendar-panel > summary {
  min-height: var(--wp--preset--spacing--48);
  padding-block: var(--wp--preset--spacing--12);
  color: var(--wp--preset--color--accent);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--nav);
  cursor: pointer;
}

.contact-calendar-content > h2 {
  margin: var(--wp--preset--spacing--16) 0;
  font-size: var(--wp--preset--font-size--h3);
}

.contact-calendar-content > p {
  margin-bottom: var(--wp--preset--spacing--24);
  font-size: var(--wp--preset--font-size--body-2);
  color: var(--wp--preset--color--muted);
}

.contact-calendar-panel .wpsbc-container[data-columns] .wpsbc-calendars,
.contact-calendar-panel .wpsbc-container[data-columns] .wpsbc-calendars .wpsbc-calendar {
  margin-inline: 0;
}

.contact-calendar-panel .wpsbc-container[data-columns] .wpsbc-calendars .wpsbc-calendar {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.wayne-availability [data-wayne-date][role="button"] {
  cursor: pointer;
}

.wayne-availability [data-wayne-date][role="button"]:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent);
  outline-offset: -2px;
}

@media (min-width: 1024px) {
  .contact-form-section:has(.is-calendar-layout) {
    max-width: var(--wp--style--global--wide-size);
  }

  .contact-form-layout.is-calendar-layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.4fr);
    align-items: start;
    gap: var(--wp--preset--spacing--48);
  }

  .is-calendar-layout .contact-calendar-sidebar {
    position: sticky;
    top: calc(var(--wayne-contact-header-offset, 72px) + var(--wp--preset--spacing--24));
  }

  .is-calendar-layout .contact-calendar-panel > summary {
    display: none;
  }

  .is-calendar-layout .contact-calendar-content > h2 {
    margin-top: 0;
  }

  .is-calendar-layout .contact-calendar-inline {
    margin: 0;
  }
}

.contact-page :is(.wayne-inquiry-form, .wayne-review-submission-form) {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--32);
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--body-2);
  line-height: 1.6;
}

.contact-page .inquiry-field {
  min-width: 0;
}

.contact-page .inquiry-field.is-wide,
.contact-page .inquiry-feedback,
.contact-page .inquiry-actions,
.contact-page .inquiry-privacy,
.contact-page .inquiry-turnstile,
.contact-page .wayne-inquiry-form > .cf-turnstile {
  grid-column: 1 / -1;
}

.contact-page .inquiry-field label {
  display: block;
  margin-bottom: var(--wp--preset--spacing--8);
}

.contact-page .inquiry-field input:not([type="hidden"]),
.contact-page .inquiry-field select,
.contact-page .inquiry-field textarea {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: var(--wp--preset--spacing--48);
  margin: 0;
  padding: var(--wp--preset--spacing--12) var(--wp--preset--spacing--4);
  border: 0;
  border-bottom: 1px solid var(--wp--preset--color--muted);
  border-radius: 0;
  background: transparent;
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--body-2);
  line-height: 1.6;
}

.contact-page .inquiry-field textarea {
  min-height: calc(var(--wp--preset--spacing--96) + var(--wp--preset--spacing--48));
  resize: vertical;
}

.contact-page .inquiry-field :is(input, textarea)::placeholder {
  color: var(--wp--preset--color--muted);
  opacity: 1;
}

.contact-page .inquiry-field [aria-invalid="true"] {
  border-bottom-color: var(--wp--preset--color--error);
}

.contact-page .inquiry-field-error,
.contact-page .inquiry-feedback.is-error {
  color: var(--wp--preset--color--error);
}

.contact-page .inquiry-field-error,
.contact-page .inquiry-field-help {
  display: block;
  margin-top: var(--wp--preset--spacing--8);
  font-size: var(--wp--preset--font-size--label);
}

.contact-page .inquiry-field-help,
.contact-page .inquiry-privacy {
  color: var(--wp--preset--color--muted);
}

.contact-page .inquiry-field-help[hidden] {
  display: none;
}

.contact-page .inquiry-feedback {
  padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--24);
  border: 1px solid currentColor;
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--body-2);
  overflow-wrap: anywhere;
}

.contact-page .inquiry-feedback.is-success {
  color: var(--wp--preset--color--olive);
}

.contact-page .inquiry-feedback ul {
  margin: var(--wp--preset--spacing--8) 0 0;
  padding-left: var(--wp--preset--spacing--24);
}

.contact-page .inquiry-feedback a {
  color: inherit;
}

.contact-page .inquiry-actions button:hover {
  background: var(--wp--preset--color--olive);
}

.contact-page .inquiry-actions button:disabled {
  color: var(--wp--preset--color--muted);
  background: var(--wp--preset--color--paper-2);
  cursor: not-allowed;
}

.contact-page .inquiry-actions button.is-submitting {
  color: var(--wp--preset--color--paper);
  background: var(--wp--preset--color--olive);
  cursor: wait;
}

.contact-page .inquiry-privacy {
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
}

.contact-page .inquiry-honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.contact-availability {
  margin-bottom: var(--wp--preset--spacing--96);
}

.contact-availability > p {
  margin-top: var(--wp--preset--spacing--24);
  color: var(--wp--preset--color--muted);
}

.contact-calendar-slot {
  margin-top: var(--wp--preset--spacing--32);
}

.calendar-placeholder {
  padding: var(--wp--preset--spacing--32);
  border: 1px solid var(--wp--preset--color--line);
  color: var(--wp--preset--color--muted);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--body-2);
}

.contact-outro {
  margin-bottom: var(--wp--preset--spacing--64);
}

.contact-photo img {
  width: 100%;
  height: auto;
}

.contact-info {
  text-align: center;
}

.contact-info a {
  color: inherit;
}

@media (max-width: 767px) {
  .contact-shortcuts {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--wp--preset--spacing--8);
  }

  .contact-page :is(.wayne-inquiry-form, .wayne-review-submission-form) {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--24);
  }

  .contact-form-section,
  .contact-availability {
    margin-bottom: var(--wp--preset--spacing--64);
  }

  .contact-page .inquiry-feedback,
  .calendar-placeholder {
    padding: var(--wp--preset--spacing--20);
  }

  .contact-info {
    text-align: left;
  }
}

/* Review identity precedes the quotation consistently across all placements. */
.review > figcaption,
.home-reviews .review > figcaption {
  margin: 0 0 var(--wp--preset--spacing--24);
}

.review > blockquote {
  margin: 0;
}

/* WP Simple Booking Calendar: warm, read-only availability. Vendor files stay intact. */
.wayne-availability {
    max-width: var(--wp--style--global--content-size);
    font-family: var(--wp--preset--font-family--inter);
}
.wayne-availability .wpsbc-container {
    visibility: visible;
}
.wayne-availability .wpsbc-container .wpsbc-calendars .wpsbc-calendar {
    background: var(--wp--preset--color--paper);
    border-color: var(--wp--preset--color--line);
}
.wayne-availability .wpsbc-container .wpsbc-calendars .wpsbc-calendar .wpsbc-calendar-header {
    background: var(--wp--preset--color--paper-2);
}
.wayne-availability .wpsbc-container .wpsbc-calendars .wpsbc-calendar .wpsbc-calendar-header select {
    color: var(--wp--preset--color--ink);
    background: var(--wp--preset--color--paper);
    border-color: var(--wp--preset--color--line);
    font-family: var(--wp--preset--font-family--inter);
    font-size: var(--wp--preset--font-size--nav);
}
.wayne-availability .wpsbc-container .wpsbc-calendars .wpsbc-calendar .wpsbc-calendar-header-navigation :is(.wpsbc-prev, .wpsbc-next) {
    background: var(--wp--preset--color--muted);
    color: var(--wp--preset--color--paper);
    border-radius: 0;
}
.wayne-availability .wpsbc-container .wpsbc-calendars .wpsbc-calendar table :is(th, td),
.wayne-availability .wpsbc-container .wpsbc-calendars .wpsbc-calendar table tr td .wpsbc-date-number {
    font-family: var(--wp--preset--font-family--inter);
    font-size: var(--wp--preset--font-size--nav);
}
.wayne-availability .wpsbc-container .wpsbc-calendars .wpsbc-calendar table tr td .wayne-calendar-booked .wpsbc-date-number {
    color: var(--wp--preset--color--paper);
}
.wayne-availability .wpsbc-container .wpsbc-calendars .wpsbc-calendar table tr td .wayne-calendar-open .wpsbc-date-number {
    color: var(--wp--preset--color--ink);
}
.wayne-availability .wpsbc-container .wpsbc-calendars .wpsbc-calendar table tr td .wpsbc-date.wpsbc-gap {
    background: var(--wp--preset--color--paper);
}
.wayne-availability .wpsbc-container .wpsbc-legend-item-icon.wayne-calendar-open div:first-of-type,
.wayne-availability .wpsbc-container .wpsbc-legend-item-icon.wayne-calendar-open div:nth-of-type(2),
.wayne-calendar-swatch.wayne-calendar-open {
    background-color: var(--wp--preset--color--paper-2);
}
.wayne-availability .wpsbc-container .wpsbc-legend-item-icon.wayne-calendar-booked div:first-of-type,
.wayne-availability .wpsbc-container .wpsbc-legend-item-icon.wayne-calendar-booked div:nth-of-type(2),
.wayne-calendar-swatch.wayne-calendar-booked {
    background-color: var(--wp--preset--color--muted);
}
.wayne-availability .wpsbc-container .wpsbc-legend-item-icon.wayne-calendar-booked svg {
    fill: var(--wp--preset--color--muted);
}
.wayne-calendar-legend {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wp--preset--spacing--16);
    padding: 0;
    list-style: none;
    font-size: var(--wp--preset--font-size--nav);
}
.wayne-calendar-legend li {
    display: flex;
    align-items: center;
    gap: var(--wp--preset--spacing--8);
}
.wayne-calendar-swatch {
    display: inline-block;
    width: var(--wp--preset--spacing--16);
    height: var(--wp--preset--spacing--16);
    border: 1px solid var(--wp--preset--color--line);
}
.wayne-calendar-note {
    max-width: var(--wp--style--global--content-size);
    font-size: var(--wp--preset--font-size--nav);
    color: var(--wp--preset--color--muted);
}
@media (prefers-reduced-motion: reduce) {
    .wayne-availability .wpsbc-overlay-spinner > div {
        animation: none;
    }
}

/* T7 not-found image and recovery links; reuse the shared type and spacing. */
.not-found-page {
  padding-block: var(--wp--preset--spacing--48) var(--wp--preset--spacing--96);
}

.not-found-photo {
  margin: 0 0 var(--wp--preset--spacing--32);
}

.not-found-photo img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 55vh;
  object-fit: cover;
}

.not-found-page h1 {
  margin-block: 0 var(--wp--preset--spacing--24);
}

.not-found-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--16) var(--wp--preset--spacing--32);
}

@media (max-width: 767px) {
  .not-found-page {
    padding-block: var(--wp--preset--spacing--32) var(--wp--preset--spacing--64);
  }

  .not-found-photo img {
    aspect-ratio: 4 / 3;
  }
}

/* Client review submission reuses the Contact form's type, inputs and feedback. */
.review-all-link {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--12) var(--wp--preset--spacing--32);
}

.review-submission-page .inquiry-feedback[hidden],
.review-submission-page .review-upload-previews[hidden] {
  display: none;
}

.review-submission-page .review-name-choice {
  margin: 0;
  padding: 0;
  border: 0;
}

.review-submission-page .review-name-choice legend {
  padding: 0;
  margin-bottom: var(--wp--preset--spacing--16);
}

.review-submission-page .inquiry-field .review-choice {
  display: flex;
  align-items: flex-start;
  gap: var(--wp--preset--spacing--12);
  margin-bottom: var(--wp--preset--spacing--16);
  overflow-wrap: anywhere;
}

.review-submission-page .inquiry-field input:is([type="radio"], [type="checkbox"]) {
  flex: 0 0 auto;
  width: var(--wp--preset--spacing--20);
  height: var(--wp--preset--spacing--20);
  min-height: 0;
  margin-top: var(--wp--preset--spacing--4);
  padding: 0;
  accent-color: var(--wp--preset--color--ink);
}

.review-public-name-field {
  margin: 0 0 var(--wp--preset--spacing--24) var(--wp--preset--spacing--32);
}

.review-submission-page .inquiry-field input[type="file"] {
  font-size: var(--wp--preset--font-size--label);
}

.review-submission-page .inquiry-field input:disabled {
  color: var(--wp--preset--color--muted);
  opacity: 0.7;
}

.review-upload-previews {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: var(--wp--preset--spacing--16);
  padding: 0;
  margin: var(--wp--preset--spacing--24) 0 0;
  list-style: none;
}

.review-upload-previews > li {
  min-width: 0;
}

.review-upload-previews img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.review-upload-previews button {
  min-height: var(--wp--preset--spacing--48);
  max-width: 100%;
  padding: var(--wp--preset--spacing--8) 0;
  border: 0;
  background: transparent;
  color: var(--wp--preset--color--accent);
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--label);
  text-decoration: underline;
  text-underline-offset: 0.3em;
  cursor: pointer;
}

.review-upload-status {
  display: block;
  margin-top: var(--wp--preset--spacing--12);
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--label);
}
