/* Gallery-only styles. Shared site components retain their existing styles. */
.gallery-page { --gallery-gap: 24px; }
.gallery-intro { background: var(--brand-tint); padding: 52px 0 44px; text-align: center; }
.gallery-intro h1 { font-size: clamp(32px, 3.6vw, 48px); font-weight: 800; line-height: 1.15; letter-spacing: -.035em; margin: 0 0 18px; }
.gallery-description { max-width: 690px; margin: 0 auto; color: var(--ink-muted); font-size: 17px; line-height: 1.7; }
.gallery-section { padding: 36px 0 60px; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px var(--gallery-gap); }
.gallery-card { min-width: 0; }
.gallery-media { position: relative; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 10px; background: #f5f4f2; overflow: hidden; isolation: isolate; }
.gallery-open { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: default; touch-action: pan-y; }
.gallery-open img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-open img[hidden] { display: none; }
.gallery-open:focus-visible { outline-offset: -4px; }
.gallery-card-info { padding: 13px 1px 0; }
.gallery-card h3 { font-size: 16px; font-weight: 600; line-height: 1.5; margin: 0; }
.gallery-order-guide { padding-top: 42px; margin-bottom: 48px; border-top: 1px solid var(--line); }
.gallery-order-intro { max-width: 780px; margin-bottom: 24px; }
.gallery-order-intro h2 { margin: 0 0 14px; font-size: clamp(26px, 3vw, 34px); line-height: 1.25; font-weight: 750; letter-spacing: -.025em; }
.gallery-order-intro p { margin: 0; color: var(--ink-muted); font-size: 16px; line-height: 1.7; }
.gallery-table-hint { display: none; margin: 0 0 12px; color: var(--ink-muted); font-size: 13px; }
.gallery-table-scroll { overflow-x: auto; border: 1px solid var(--brand-line); border-radius: 10px; }
.gallery-table-scroll:focus-visible { outline-offset: 4px; }
.gallery-order-table { width: 100%; min-width: 1140px; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 14px; line-height: 1.65; }
.gallery-order-table th, .gallery-order-table td { padding: 20px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.gallery-order-table thead th { background: var(--brand-tint); font-weight: 700; line-height: 1.4; }
.gallery-order-table thead th:nth-child(1) { width: 10%; }
.gallery-order-table thead th:nth-child(2) { width: 9%; }
.gallery-order-table thead th:nth-child(3) { width: 18%; }
.gallery-order-table thead th:nth-child(4) { width: 23%; }
.gallery-order-table thead th:nth-child(5) { width: 21%; }
.gallery-order-table thead th:nth-child(6) { width: 19%; }
.gallery-order-table tbody th { font-weight: 650; }
.gallery-order-table tbody td { background: var(--surface); }
.gallery-order-table tbody tr:nth-child(even) > * { background: var(--surface-alt); }
.gallery-order-table .gallery-moq { font-weight: 650; white-space: nowrap; }
.gallery-moq span { display: block; color: var(--ink-muted); font-size: 12px; font-weight: 400; }
.gallery-order-table p { margin: 0 0 12px; }
.gallery-order-table p:last-child { margin-bottom: 0; }
.gallery-order-table td:nth-child(3) p:first-child { font-weight: 600; }
.gallery-order-table tbody tr:last-child > * { border-bottom: 0; }
.gallery-order-terms { margin-top: 24px; padding: 24px; border-radius: 10px; background: var(--brand-tint); }
.gallery-order-terms h3 { margin: 0 0 20px; font-size: 20px; font-weight: 700; }
.gallery-terms-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; }
.gallery-terms-grid > div + div { padding-left: 24px; border-left: 1px solid var(--brand-line); }
.gallery-terms-grid dt { margin-bottom: 6px; color: var(--ink-muted); font-size: 14px; font-weight: 400; }
.gallery-terms-grid dd { margin: 0; font-size: 23px; font-weight: 700; line-height: 1.4; }
.gallery-order-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 20px; color: var(--ink-muted); font-size: 13px; line-height: 1.7; }
.gallery-order-notes p { margin: 0; }
.gallery-order-notes strong { color: var(--ink); }
.gallery-order-notes a { color: var(--brand-strong); text-decoration: underline; text-underline-offset: 3px; }
.gallery-order-notes a:hover { color: var(--brand); }
.gallery-cta { margin-bottom: 60px; padding: 38px 40px; border: 1px solid var(--brand-line); border-radius: 12px; background: var(--brand-tint); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.gallery-cta h2 { font-size: 26px; line-height: 1.3; letter-spacing: -.02em; font-weight: 750; margin: 0 0 10px; }
.gallery-cta p { color: var(--ink-muted); font-size: 15px; line-height: 1.7; margin: 0; max-width: 650px; }
.gallery-cta-link { display: inline-flex; align-items: center; justify-content: center; gap: 16px; flex-shrink: 0; border-radius: 6px; background: var(--brand); color: white; padding: 14px 22px; font-size: 15px; font-weight: 600; }
.gallery-cta-link:hover { background: var(--brand-strong); color: white; }
.gallery-page [hidden] { display: none !important; }
@media (max-width: 1199.98px) {
  .gallery-table-hint { display: block; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .gallery-page { --gallery-gap: 12px; }
  .gallery-intro { padding: 36px 0 30px; }
  .gallery-intro h1 { max-width: 330px; margin-inline: auto; }
  .gallery-description { font-size: 15px; }
  .gallery-section { padding: 26px 0 36px; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; }
  .gallery-media { border-radius: 7px; }
  .gallery-card-info { padding-top: 10px; }
  .gallery-card h3 { font-size: 14px; line-height: 1.45; }
  .gallery-order-guide { padding-top: 30px; margin-bottom: 32px; }
  .gallery-order-intro p { font-size: 15px; }
  .gallery-order-table { width: calc(400vw - 364px); min-width: 0; }
  .gallery-order-table th, .gallery-order-table td { padding: 16px; }
  .gallery-order-table thead th:nth-child(1) { width: 124px; }
  .gallery-order-table thead th:nth-child(2) { width: 112px; }
  .gallery-order-table thead th:nth-child(n+3) { width: auto; }
  .gallery-order-table tr > :first-child { position: sticky; left: 0; z-index: 1; border-right: 1px solid var(--line); }
  .gallery-order-table tbody th { background: var(--surface); }
  .gallery-order-terms { padding: 22px; }
  .gallery-terms-grid { grid-template-columns: 1fr; gap: 16px; }
  .gallery-terms-grid > div + div { padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--brand-line); }
  .gallery-order-notes { grid-template-columns: 1fr; gap: 12px; margin-top: 18px; }
  .gallery-cta { padding: 26px 22px; margin-bottom: 36px; flex-direction: column; align-items: flex-start; gap: 20px; }
  .gallery-cta h2 { font-size: 24px; }
  .gallery-cta p { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .gallery-page * { scroll-behavior: auto !important; transition: none !important; } }
