/* Shared design tokens. Keep the approved TOP values; reuse on lower pages. */
:root {
  --ink: #10191e;
  --paper: #f4f5f3;
  --muted: #b8c1c4;
  --line: #ffffff32;
  --accent: #d3b784;
  --wine: #7a1730;
  --wine-dark: #4e0d20;
  --gold: #a9894f;
  --gold-line: #a9894f66;
  --copy: #c5cdd0;
  --surface-menu: #162027;
  --surface-story: #131e24;
  --surface-news: #1b252a;
  --surface-hover: #eee4e6;
  --wine-tint: #7a173014;
  --wine-tint-strong: #7a173020;
  --font-sans: 'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;
  --font-mincho: 'Yu Mincho','Hiragino Mincho ProN',serif;
  --font-mincho-display: 'Hiragino Mincho ProN','Yu Mincho',serif;
  --font-script: Baskerville,Georgia,'Times New Roman',serif;
  --font-chevron: 'Helvetica Neue',Arial,sans-serif;
  --font-latin: Georgia,serif;
  --gutter: 7%;
}

:root {
  font-family: var(--font-sans);
  color: var(--paper);
  background: var(--ink);
  font-synthesis: none;
  scroll-behavior: smooth;
  scroll-padding-top: 146px;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
}

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

button {
  font: inherit;
}

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

a:focus-visible,button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 7px;
}

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

p {
  font-size: 1rem;
  line-height: 2;
}

h1,h2,h3,p {
  margin-top: 0;
}

h1,h2 {
  font-family: var(--font-mincho);
  font-weight: 400;
  letter-spacing: .025em;
}

h2 {
  font-size: clamp(1.7rem,2.5vw,2.8rem);
  line-height: 1.8;
}

h3 {
  font-weight: 500;
}

.skip {
  position: fixed;
  top: -100px;
  z-index: 100;
  background: white;
  color: black;
  padding: 15px;
}

.skip:focus {
  top: 0;
}

.header {
  height: 98px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0 4.4%;
  position: absolute;
  inset: 0 0 auto;
  z-index: 10;
  border-bottom: 1px solid var(--line);
}

.brand {
  display: flex;
  flex-direction: column;
  gap: 7px;
  white-space: nowrap;
}

.brand span,.brand {
  font-family: var(--font-latin);
  letter-spacing: .09em;
  font-size: 1.25rem;
}

.brand small {
  font-family: inherit;
  font-size: .75rem;
  letter-spacing: .16em;
}

.book {
  border: 1px solid #ffffff7a;
  padding: 15px 20px;
  font-size: .875rem;
  white-space: nowrap;
  display: flex;
  gap: 25px;
  align-items: center;
}

.book:hover {
  background: var(--paper);
  color: var(--ink);
}

.hero {
  min-height: 780px;
  height: 100svh;
  max-height: 1150px;
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  padding: 240px var(--gutter) 120px;
  overflow: hidden;
}

.hero-image {
  position: absolute;
  inset: 0 0 0 42%;
  z-index: -2;
}

.hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 62%;
}

.hero:after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg,var(--ink) 2%,#10191eee 25%,#10191e4f 65%,#10191e05),linear-gradient(0deg,#10191ed9,transparent 35%);
}

.hero-word {
  position: absolute;
  top: 127px;
  left: 4.1%;
  font: 400 clamp(3.5rem,10.3vw,10rem)/1 var(--font-latin);
  letter-spacing: -.035em;
  white-space: nowrap;
  color: #f4f5f3ed;
}

.hero-copy {
  max-width: 850px;
  padding-top: 30px;
}

.eyebrow {
  font-size: .8125rem;
  letter-spacing: .15em;
  line-height: 1.7;
  margin-bottom: 28px;
}

.hero-copy h1 {
  font-size: clamp(1.9rem,3.2vw,3.4rem);
  line-height: 1.8;
  margin-bottom: 24px;
  text-shadow: 0 2px 18px #0004;
}

.hero-description {
  color: #e0e4e4;
  margin-bottom: 28px;
}

.actions {
  display: flex;
  gap: 32px;
  align-items: center;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 55px;
  padding: 19px 25px;
  min-height: 60px;
  font-size: .9375rem;
  border: 1px solid transparent;
  transition: background .2s,color .2s;
}

.light {
  background: var(--paper);
  color: var(--ink);
}

.light:hover {
  background: var(--accent);
}

.text-link {
  font-size: .9375rem;
  padding: 15px 0;
  border-bottom: 1px solid #ffffff80;
  display: flex;
  gap: 35px;
}

.hero-bottom {
  position: absolute;
  bottom: 28px;
  left: 4.4%;
  right: 4.4%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-size: .75rem;
  letter-spacing: .1em;
  color: #d5dcde;
}

.hero-bottom a {
  font-size: .875rem;
  letter-spacing: 0;
}

.hero-bottom a span {
  padding-left: 20px;
}

.chapter-nav {
  position: sticky;
  top: 0;
  z-index: 9;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  padding: 0 var(--gutter);
  background: #10191ef5;
  border-block: 1px solid var(--line);
}

.chapter-nav a {
  position: relative;
  padding: 25px 12px;
  font-size: .875rem;
  text-align: center;
  color: #b0bbbf;
}

.chapter-nav span {
  font: italic 1rem var(--font-latin);
  margin-right: 16px;
  color: var(--accent);
}

.chapter-nav a:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transition: transform .35s;
}

.chapter-nav a[aria-current] {
  color: white;
}

.chapter-nav a[aria-current]:after,.chapter-nav a:hover:after {
  transform: scaleX(1);
}

.story {
  display: grid;
  grid-template-columns: 50% 50%;
  position: relative;
  background: var(--surface-story);
}

.story-visual {
  position: sticky;
  top: 76px;
  height: calc(100svh - 76px);
  min-height: 500px;
  align-self: start;
  overflow: hidden;
  background: #171d20;
}

.story-visual img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.025);
  transition: opacity .65s ease,transform 1s ease;
  filter: brightness(.76);
}

.story-visual img.is-active {
  opacity: 1;
  transform: scale(1);
}

.story-visual img[data-scene=pearl] {
  object-position: 56% center;
}

.story-visual img[data-scene=approach] {
  object-position: 48% 60%;
}

.story-visual:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg,#10191e9c,transparent 40%);
}

.visual-caption {
  position: absolute;
  bottom: 38px;
  left: 9%;
  z-index: 2;
  font-size: .75rem;
  letter-spacing: .15em;
}

.chapter {
  min-height: calc(100svh - 76px);
  display: flex;
  align-items: center;
  padding: 85px clamp(30px,6vw,95px);
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 0;
}

.chapter-inner {
  max-width: 530px;
}

.chapter .eyebrow {
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 18px;
  letter-spacing: .1em;
}

.number {
  font: italic 2.5rem var(--font-latin);
  color: var(--accent);
}

.chapter p:not(.eyebrow) {
  color: var(--copy);
  line-height: 2.15;
}

.chapter h2 {
  margin-bottom: 30px;
}

.section-link {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  border-bottom: 1px solid #ffffff65;
  font-size: .9375rem;
  padding: 17px 0;
  transition: color .2s;
}

.section-link:hover {
  color: var(--accent);
}

.section-link span {
  transition: transform .25s;
}

.section-link:hover span {
  transform: translateX(3px);
}

.paired-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.signature {
  margin-top: 25px;
  font-size: .875rem !important;
}

.signature span {
  font-family: "Yu Mincho",serif;
  font-size: 1.3rem;
  margin-left: 16px;
  color: white;
}

.mobile-image {
  display: none;
}

.section {
  padding: 110px var(--gutter);
}

.services {
  background: var(--paper);
  color: var(--ink);
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 7%;
}

.section-heading .eyebrow {
  color: #626a6e;
}

.section-heading h2 {
  font-size: clamp(1.9rem,2.8vw,3rem);
}

.section-heading p:last-child {
  color: #5a656a;
}

.service-list {
  border-top: 1px solid #15222b45;
}

.service {
  padding: 27px 14px;
  display: flex;
  gap: 20px;
  align-items: center;
  border-bottom: 1px solid #15222b35;
  transition: background .2s;
}

.service-index {
  font: italic .9375rem var(--font-latin);
  color: #677174;
  align-self: flex-start;
  padding-top: 7px;
}

.service h3 {
  margin-bottom: 8px;
  font-size: 1.125rem;
  line-height: 1.7;
}

.service p {
  margin-bottom: 0;
  font-size: .875rem;
  line-height: 1.8;
  color: #5b6569;
}

.service .arrow {
  margin-left: auto;
  font-size: 1.4rem;
  transition: transform .2s;
}

.service:hover {
  background: #e5e9e8;
}

.service:hover .arrow {
  transform: translateX(3px);
}

.featured {
  background: #e9ecea;
}

.visit {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 10%;
  background: #14232b;
}

.visit h2 {
  font-size: clamp(2rem,3.7vw,3.8rem);
}

.visit p:not(.eyebrow) {
  color: var(--copy);
}

.visit .button {
  margin-top: 15px;
}

.booking-note {
  font-size: .8125rem;
  line-height: 1.9;
  margin-top: 20px;
}

.store-info {
  border-left: 1px solid var(--line);
  padding-left: 18%;
  align-self: center;
}

.store-name {
  font: 1.75rem var(--font-latin) !important;
  letter-spacing: .05em;
  color: white !important;
}

.store-name span {
  display: block;
  font: .875rem sans-serif;
  letter-spacing: .1em;
  margin-top: 12px;
}

address {
  font-style: normal;
  line-height: 2;
  font-size: .9375rem;
  color: var(--copy);
}

.phone {
  font: 1.85rem var(--font-latin);
  display: block;
  margin: 30px 0 15px;
}

footer {
  display: flex;
  gap: 25px;
  align-items: center;
  padding: 35px var(--gutter) 65px;
  flex-wrap: wrap;
  color: #b4bec3;
  font-size: .8125rem;
}

footer .brand {
  margin-right: auto;
}

.motion-toggle {
  position: fixed;
  bottom: 13px;
  right: 15px;
  z-index: 20;
  background: #10191eeb;
  border: 1px solid #ffffff60;
  color: #e2e7e9;
  padding: 10px 14px;
  font-size: .75rem;
  cursor: pointer;
}

.motion-off,.motion-off * {
  scroll-behavior: auto !important;
  transition: none !important;
  animation: none !important;
}

@media (min-width:1700px) {
  .hero-copy {
    padding-top: 65px;
  }
}

@media (max-width:1000px) {
  .hero {
    padding-left: 6%;
    min-height: 740px;
  }

  .hero-word {
    top: 145px;
  }

  .hero-image {
    left: 28%;
  }

  .chapter {
    padding: 65px 32px;
  }

  .chapter h2 {
    font-size: 1.8rem;
  }

  .services {
    gap: 5%;
  }

  .store-info {
    padding-left: 10%;
  }

  .paired-links {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

@media (max-width:680px) {
  :root {
    scroll-padding-top: 72px;
  }

  .header {
    height: 80px;
    padding: 0 6%;
    gap: 12px;
  }

  .brand span,.brand {
    font-size: 1rem;
  }

  .brand small {
    font-size: .6875rem;
  }

  .book {
    font-size: .8125rem;
    padding: 12px;
    gap: 12px;
  }

  .hero {
    height: auto;
    max-height: none;
    padding: 225px var(--gutter) 105px;
    align-items: flex-end;
  }

  .hero-image {
    inset: 0 0 0 12%;
  }

  .hero-image img {
    object-position: 50% 42%;
  }

  .hero:after {
    background: linear-gradient(0deg,var(--ink) 0%,#10191ee8 26%,#10191e52 68%,#10191e50);
  }

  .hero-word {
    top: 112px;
    left: 6%;
    font-size: 10.5vw;
  }

  .hero-copy {
    padding-top: 70px;
  }

  .hero-copy .eyebrow {
    margin-bottom: 20px;
    font-size: .75rem;
  }

  .hero-copy h1 {
    font-size: clamp(1.5rem,5.5vw,2.15rem);
    margin-bottom: 18px;
    letter-spacing: 0;
  }

  .hero-description {
    font-size: .875rem;
    line-height: 2;
  }

  .actions {
    gap: 22px;
    flex-wrap: wrap;
  }

  .button {
    gap: 30px;
    padding: 16px 18px;
    font-size: .875rem;
  }

  .text-link {
    font-size: .8125rem;
    gap: 10px;
  }

  .hero-bottom {
    left: 7%;
    right: 7%;
    bottom: 25px;
    font-size: .6875rem;
  }

  .hero-bottom a {
    max-width: 210px;
    line-height: 1.8;
    text-align: right;
  }

  .hero-bottom>span:last-child {
    display: none;
  }

  .chapter-nav a {
    padding: 18px 3px;
    font-size: .75rem;
    line-height: 1.5;
  }

  .chapter-nav span {
    font-size: .8125rem;
    display: block;
    margin: 0 0 4px;
  }

  .story {
    display: block;
  }

  .story-visual {
    display: none;
  }

  .chapter {
    min-height: 0;
    padding: 60px var(--gutter) 65px;
  }

  .chapter-inner {
    max-width: none;
  }

  .chapter h2 {
    font-size: clamp(1.5rem,6.1vw,2rem);
    line-height: 1.85;
    margin-bottom: 26px;
  }

  .chapter .eyebrow {
    margin-bottom: 22px;
    font-size: .75rem;
  }

  .number {
    font-size: 2rem;
  }

  .mobile-image {
    display: block;
    width: 100%;
    height: 245px;
    object-fit: cover;
    margin-bottom: 28px;
  }

  .chapter p:not(.eyebrow) {
    line-height: 2;
    font-size: 1rem;
  }

  .paired-links {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }

  .section-link {
    font-size: .875rem;
  }

  .section {
    padding: 65px var(--gutter);
  }

  .services {
    display: block;
  }

  .section-heading h2 {
    font-size: 1.8rem;
  }

  .section-heading {
    margin-bottom: 35px;
  }

  .service {
    padding: 23px 5px;
    gap: 15px;
  }

  .service h3 {
    font-size: 1rem;
  }

  .service p {
    font-size: .8125rem;
  }

  .visit {
    display: block;
  }

  .visit h2 {
    font-size: 2.2rem;
  }

  .booking-note {
    font-size: .75rem;
  }

  .store-info {
    margin-top: 50px;
    padding: 35px 0 0;
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  footer {
    padding: 30px var(--gutter) 70px;
    gap: 20px;
    font-size: .75rem;
  }

  footer .brand {
    width: 100%;
    font-size: 1.25rem;
  }

  .motion-toggle {
    padding: 8px 10px;
  }

  .story-visual img {
    transition: none;
  }
}

@media (prefers-reduced-motion:reduce) {
  :root:not(.motion-enabled) {
    scroll-behavior: auto;
  }

  :root:not(.motion-enabled) *,:root:not(.motion-enabled) *:before,:root:not(.motion-enabled) *:after {
    transition: none !important;
    animation: none !important;
  }
}

@media print {
  .header,.chapter-nav,.motion-toggle,.hero-word,.hero-bottom {
    display: none;
  }

  .hero,.chapter {
    min-height: 0;
    height: auto;
    padding: 25px;
  }

  .story,.services,.visit {
    display: block;
  }

  .story-visual {
    display: none;
  }

  body,.services,.visit,.story {
    color: #000;
    background: #fff;
  }

  .hero-image {
    display: none;
  }

  .hero:after {
    display: none;
  }

  .hero-copy h1,.chapter p:not(.eyebrow),.visit p:not(.eyebrow) {
    color: #000;
  }

  .section {
    padding: 25px;
  }

  .store-info {
    border: 0;
    padding: 0;
  }
}

/*Content additions use the established layout and palette.*/

.chapter .chapter-note {
  font-size: .9375rem !important;
  color: #adbcc2 !important;
  border-left: 1px solid #d3b78480;
  padding-left: 20px;
  margin: 28px 0 20px;
}

.scene-caption {
  display: none;
}

.faq {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 7%;
  padding-top: 75px;
  margin-top: 30px;
  border-top: 1px solid #15222b35;
}

.faq h2 {
  font-size: 1.9rem;
}

.faq .eyebrow {
  color: #626a6e;
}

.faq-list {
  border-top: 1px solid #15222b45;
}

.faq details {
  border-bottom: 1px solid #15222b35;
}

.faq summary {
  font-size: 1rem;
  line-height: 1.9;
  padding: 24px 32px 24px 0;
  cursor: pointer;
  list-style: none;
  position: relative;
}

.faq summary::-webkit-details-marker {
  display: none;
}

.faq summary:after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 24px;
  font-size: 1.3rem;
  color: #536269;
}

.faq details[open] summary:after {
  content: "−";
}

.faq details p {
  color: #4b595f;
  font-size: .9375rem;
  line-height: 2;
  margin: 0 0 24px;
}

.faq summary:focus-visible {
  outline: 2px solid #536269;
  outline-offset: 5px;
}

@media (max-width:680px) {
  :root {
    --scene-height: clamp(190px,31svh,290px);
    --chapter-nav-height: 76px;
  }

  .hero-image {
    inset: -7% 0 -7% 12%;
    transform: translate3d(0,var(--photo-drift,0px),0);
  }

  .mobile-motion-on .hero-image {
    will-change: transform;
  }

  .hero-intro .hero-image img {
    animation: mobile-opening 1.65s cubic-bezier(.16,1,.3,1) both;
  }

  .hero-intro .hero-word {
    animation: mobile-word 1.1s cubic-bezier(.16,1,.3,1) both;
  }

  .hero-intro .hero-copy h1 {
    animation: mobile-title 1.05s .12s cubic-bezier(.16,1,.3,1) both;
  }

  .hero-copy .actions {
    position: relative;
    z-index: 1;
  }

  .chapter-nav {
    height: var(--chapter-nav-height);
    padding: 0 3%;
  }

  .chapter-nav a {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 2px;
    font-size: .8125rem;
    line-height: 1.6;
  }

  .chapter-nav span {
    margin-bottom: 2px;
  }

  .mobile-story-enhanced .story-visual {
    display: block;
    position: sticky;
    top: var(--chapter-nav-height);
    height: var(--scene-height);
    min-height: 0;
    width: 100%;
    z-index: 5;
    isolation: isolate;
    contain: paint;
  }

  .mobile-story-enhanced .story-visual img {
    opacity: 1;
    width: 100%;
    height: 100%;
    inset: 0;
    transition: none;
    transform: scale(var(--scene-scale,1));
    clip-path: inset(0 0 calc(100% - var(--scene-reveal,0%)) 0);
    object-fit: cover;
    filter: brightness(.88);
  }

  .mobile-story-enhanced .story-visual img[data-scene=pearl] {
    --scene-reveal: 100%;
    z-index: 1;
    object-position: center 56%;
  }

  .mobile-story-enhanced .story-visual img[data-scene=jewelry] {
    z-index: 2;
    object-position: center 65%;
  }

  .mobile-story-enhanced .story-visual img[data-scene=approach] {
    z-index: 3;
    object-position: center 60%;
  }

  .mobile-story-enhanced .story-visual:after {
    z-index: 4;
    background: linear-gradient(0deg,#10191ead,transparent 45%);
  }

  .mobile-story-enhanced .visual-caption {
    display: none;
  }

  .mobile-story-enhanced .scene-caption {
    display: flex;
    position: absolute;
    bottom: 18px;
    left: 7%;
    right: 7%;
    z-index: 6;
    justify-content: space-between;
    gap: 15px;
    align-items: center;
    color: #fff;
    font-size: .8125rem;
    letter-spacing: .08em;
  }

  .mobile-story-enhanced .chapter {
    padding: 38px var(--gutter) 58px;
    min-height: calc(100svh - var(--scene-height) - var(--chapter-nav-height));
    scroll-margin-top: calc(var(--scene-height) + 12px);
  }

  .mobile-story-enhanced .mobile-image {
    display: none;
  }

  .mobile-story-enhanced .chapter h2 {
    font-size: clamp(1.45rem,5.8vw,1.95rem);
    margin-bottom: 23px;
    line-height: 1.9;
  }

  .mobile-story-enhanced .chapter .eyebrow {
    margin-bottom: 17px;
  }

  .chapter .chapter-note {
    font-size: .9375rem !important;
    line-height: 2 !important;
    padding-left: 16px;
    margin: 22px 0 18px;
  }

  .services {
    position: relative;
    z-index: 6;
  }

  .service p {
    line-height: 1.9;
  }

  .faq {
    display: block;
    padding-top: 38px;
    margin-top: 50px;
  }

  .faq>div:first-child {
    margin-bottom: 27px;
  }

  .faq h2 {
    font-size: 1.7rem;
  }

  .faq summary {
    font-size: .9375rem;
    line-height: 1.9;
  }

  .faq details p {
    font-size: .9375rem;
  }

  .motion-toggle {
    font-size: .75rem;
    bottom: max(10px,env(safe-area-inset-bottom));
    right: 12px;
    box-shadow: 0 2px 12px #0002;
  }
}

@keyframes mobile-opening {
  from {
    transform: scale(1.24) translate3d(-2%,2%,0);
    clip-path: inset(0 0 0 24%);
  }

  to {
    transform: scale(1);
    clip-path: inset(0);
  }
}

@keyframes mobile-word {
  from {
    transform: translate3d(0,22px,0);
    opacity: .4;
  }

  to {
    transform: translate3d(0,0,0);
    opacity: 1;
  }
}

@keyframes mobile-title {
  from {
    transform: translate3d(0,28px,0);
    opacity: .55;
  }

  to {
    transform: translate3d(0,0,0);
    opacity: 1;
  }
}

@media (max-width:680px) and (max-height:520px) {
  :root {
    --scene-height: 140px;
  }

  .mobile-story-enhanced .story-visual {
    position: relative;
    top: 0;
  }

  .mobile-story-enhanced .chapter {
    scroll-margin-top: 0;
  }
}

@media print {
  .mobile-story-enhanced .story-visual,.scene-caption {
    display: none;
  }

  .faq {
    display: block;
  }

  .faq details p {
    display: block;
  }

  .mobile-story-enhanced .chapter {
    min-height: 0;
  }
}

@media (max-width:680px) {
  .mobile-motion-on .hero-word-scale {
    display: block;
    transform: scale(var(--word-scale,1));
    transform-origin: left top;
  }

  .mobile-motion-on .hero-title-scale {
    display: block;
    transform: scale(var(--title-scale,1));
    transform-origin: left top;
  }
}

/*Intentionally composed lines; body copy keeps its natural reading flow.*/

.title-line {
  display: block;
}

.service>div {
  min-width: 0;
  flex: 1;
}

.service .arrow,.service-index,.section-link>span {
  flex-shrink: 0;
}

.visit-tools {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9%;
  padding-top: 80px;
  border-top: 1px solid var(--line);
  background: var(--ink);
}

.calendar-panel,.map-panel {
  min-width: 0;
}

.utility-heading {
  min-height: 155px;
  display: flex;
  flex-direction: column;
}

.utility-heading .eyebrow {
  color: var(--accent);
  margin: 0 0 10px;
}

.utility-heading h2 {
  font-size: 1.8rem;
  line-height: 1.5;
  margin: 0 0 12px;
}

.utility-heading .hours {
  font: 1.7rem/1.6 var(--font-latin);
  letter-spacing: .04em;
  margin: auto 0 22px;
}

.hours span {
  font-size: 1rem;
  color: #a5b3b9;
  margin: 0 12px;
}

.access-walk {
  font-size: .9375rem;
  color: #b9c7cd;
  margin: auto 0 25px;
}

.calendar-toolbar {
  height: 62px;
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  border-block: 1px solid var(--line);
  margin-bottom: 17px;
}

.calendar-toolbar button {
  height: 44px;
  width: 44px;
  border: 0;
  background: transparent;
  color: #ead6b6;
  cursor: pointer;
  font: 1.9rem/1 var(--font-latin);
  border-radius: 2px;
}

.calendar-toolbar button:hover {
  background: #ffffff0b;
}

.calendar-toolbar button:disabled {
  opacity: .3;
  cursor: default;
}

#calendar-month {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  text-align: center;
  font: 1.8rem/1 var(--font-latin);
  letter-spacing: .05em;
  white-space: nowrap;
}

.calendar-toolbar [data-month-prev] {
  grid-column: 1;
  grid-row: 1;
}

.calendar-toolbar [data-month-next] {
  grid-column: 3;
  grid-row: 1;
}

#calendar-month span {
  font: .875rem/1.5 "Hiragino Kaku Gothic ProN",sans-serif;
  letter-spacing: 0;
  margin: 0 12px 0 5px;
  color: #c0cbd0;
}

.business-calendar {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 2px 4px;
  font-variant-numeric: tabular-nums;
}

.business-calendar th {
  font-size: .8125rem;
  font-weight: 400;
  color: #9cadb5;
  height: 34px;
}

.business-calendar td {
  height: 40px;
  text-align: center;
  padding: 0;
  font-size: 1rem;
  line-height: 1;
}

.business-calendar time {
  display: inline-flex;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 50%;
}

.calendar-closed time {
  background: #d3b78424;
  color: #efd9b6;
}

.calendar-today time {
  border-color: #e5d6bb;
  box-shadow: inset 0 0 0 3px var(--ink);
}

.calendar-legend {
  display: flex;
  gap: 22px;
  border-top: 1px solid var(--line);
  padding-top: 19px;
  margin-top: 10px;
  color: #c0cbd0;
  font-size: .8125rem;
}

.calendar-legend>span {
  display: flex;
  align-items: center;
  gap: 8px;
}

.calendar-legend i {
  display: inline-block;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  font-style: normal;
}

.legend-closed {
  background: #d3b78455;
}

.legend-today {
  border: 1px solid #e5d6bb;
}

.calendar-schedule {
  font-size: .9375rem;
  margin: 19px 0 8px;
  line-height: 1.8;
  color: #e3e8e8;
}

.calendar-schedule>span {
  display: block;
}

.calendar-note {
  font-size: .875rem;
  color: #a9b9c1;
  line-height: 1.9;
  margin: 0 0 17px;
}

.map-frame {
  height: 360px;
  width: 100%;
  overflow: hidden;
  background: #e4e9e6;
  border: 1px solid #ffffff25;
}

.map-frame iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

.map-address {
  font-size: .9375rem;
  line-height: 1.9;
  color: #c5d0d5;
  margin: 22px 0 8px;
}

.map-address>span {
  display: block;
}

@media (max-width:680px) {
  .header .brand small {
    font-size: .75rem;
    letter-spacing: .06em;
  }

  .hero-copy h1 {
    font-size: clamp(1.125rem,5.9vw,2rem);
    line-height: 1.95;
  }

  .hero-copy .actions {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 14px;
    align-items: center;
  }

  .hero-copy .actions .button {
    gap: 8px;
    padding: 16px 12px;
    font-size: .875rem;
    white-space: nowrap;
  }

  .hero-copy .actions .text-link {
    gap: 8px;
    font-size: .875rem;
    white-space: nowrap;
    justify-self: end;
  }

  .hero-bottom {
    font-size: .75rem;
    letter-spacing: .03em;
    gap: 12px;
  }

  .hero-bottom a {
    white-space: nowrap;
    font-size: .75rem;
    max-width: none;
  }

  .hero-bottom a span {
    padding-left: 6px;
  }

  .hero-bottom>span:first-child {
    font-size: .75rem;
    letter-spacing: .03em;
  }

  .chapter-nav a {
    font-size: .875rem;
    white-space: nowrap;
  }

  :root {
    --scene-height: clamp(220px,34svh,310px);
  }

  .mobile-story-enhanced .story-visual img {
    transform: translate3d(var(--scene-x,0px),var(--scene-y,0px),0) scale(var(--scene-scale,1));
  }

  .mobile-story-enhanced .story-visual:after {
    background: linear-gradient(90deg,#10191e9c,transparent 90%),linear-gradient(0deg,#10191ed1,transparent 78%);
  }

  .mobile-story-enhanced .scene-caption {
    display: block;
    inset: 18px 7% 20px;
    pointer-events: none;
  }

  .scene-title {
    --caption-opacity: 0;
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: var(--caption-opacity);
    color: #edd6ae;
  }

  .scene-title[data-scene-title=jewelry] {
    color: #d4e0e5;
  }

  .scene-title[data-scene-title=approach] {
    color: #ead7c1;
  }

  .scene-meta {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 12px;
    transform: translate3d(calc(-1 * var(--caption-x,0px)),0,0) scale(var(--caption-scale,1));
    transform-origin: left center;
  }

  .scene-ordinal {
    font: italic 4.2rem/.88 var(--font-script);
    letter-spacing: -.07em;
  }

  .scene-hairline {
    display: block;
    width: 48px;
    height: 1px;
    background: currentColor;
    opacity: .65;
  }

  .scene-total {
    font: .8125rem/1 var(--font-latin);
    letter-spacing: .1em;
    opacity: .85;
  }

  .scene-jp {
    font: 400 clamp(1.125rem,5.3vw,1.55rem)/1.65 var(--font-mincho-display);
    letter-spacing: .12em;
    margin: 0;
    white-space: nowrap;
    text-shadow: 0 2px 18px #0005;
    transform: translate3d(calc(-1 * var(--caption-x,0px)),0,0) scale(var(--caption-scale,1));
    transform-origin: left center;
  }

  .scene-script {
    font: italic clamp(1.8rem,8vw,2.45rem)/1.1 var(--font-script);
    letter-spacing: -.025em;
    margin: 8px 0 0;
    white-space: nowrap;
    transform: translate3d(var(--caption-x,0px),0,0) scale(var(--caption-scale,1));
    transform-origin: left center;
    color: #f7f2e8;
  }

  .mobile-story-enhanced .chapter h2 {
    font-size: clamp(1.375rem,5.5vw,1.875rem);
    letter-spacing: .02em;
  }

  .paired-links {
    gap: 14px;
  }

  .paired-links .section-link {
    gap: 8px;
    white-space: nowrap;
    font-size: .875rem;
  }

  .section-heading h2 {
    font-size: clamp(1.5rem,6.5vw,1.875rem);
  }

  .visit h2 {
    font-size: clamp(1.75rem,7.5vw,2.2rem);
  }

  .visit .button {
    gap: 20px;
    white-space: nowrap;
  }

  .visit-tools {
    display: block;
    padding-top: 50px;
  }

  .utility-heading {
    min-height: 0;
  }

  .utility-heading h2 {
    font-size: 1.65rem;
  }

  .utility-heading .hours {
    font-size: 1.5rem;
    margin: 5px 0 22px;
  }

  .map-panel {
    margin-top: 48px;
    padding-top: 44px;
    border-top: 1px solid var(--line);
  }

  .map-frame {
    height: 320px;
  }

  .access-walk {
    margin: 2px 0 22px;
  }

  .map-address {
    font-size: .875rem;
  }

  .calendar-toolbar {
    margin-bottom: 10px;
  }

  .calendar-note {
    font-size: .875rem;
  }
}

@media (max-width:360px) {
  .hero-bottom>span:first-child {
    display: none;
  }

  .hero-bottom {
    justify-content: flex-end;
  }

  .hero-copy .actions {
    grid-template-columns: 1.1fr .9fr;
    gap: 12px;
  }

  .hero-copy .actions .button {
    font-size: .8125rem;
    padding-inline: 10px;
  }

  .hero-copy .actions .text-link {
    font-size: .8125rem;
  }

  .service {
    gap: 12px;
  }

  .service h3 {
    font-size: .9375rem;
  }
}

@media (max-width:680px) and (max-height:520px) {
  :root {
    --scene-height: 200px;
  }

  .scene-ordinal {
    font-size: 2.8rem;
  }

  .scene-script {
    font-size: 1.75rem;
  }
}

@media print {
  .calendar-toolbar button,.map-frame {
    display: none;
  }

  .visit-tools {
    display: block;
    color: #000;
    background: #fff;
  }

  .utility-heading h2,.calendar-note,.calendar-schedule,.map-address {
    color: #000;
  }

  .business-calendar time {
    color: #000;
  }
}

/*The chapter index leaves with chapter 03 through native sticky containment.*/

.story-range {
  position: relative;
  isolation: isolate;
}

/*Brand accents from the existing draft, concentrated on decisions and dividers.*/

.header {
  border-bottom-color: var(--gold-line);
}

.book {
  background: var(--wine);
  color: #fff;
  border: 0;
}

.book:hover {
  background: var(--wine-dark);
  color: #fff;
}

.hero-copy .text-link {
  border-bottom-color: var(--gold);
}

.chapter-nav {
  border-block-color: var(--gold-line);
}

.chapter-nav a[aria-current] {
  background: var(--wine-dark);
}

.chapter .chapter-note {
  border-left-color: var(--gold-line);
}

.section-heading .eyebrow,.faq .eyebrow,.service h3,.service-index {
  color: var(--wine);
}

.section-heading .eyebrow,.utility-heading .eyebrow,.visit .eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
}

.section-heading .eyebrow:before,.utility-heading .eyebrow:before,.visit .eyebrow:before {
  content: "";
  width: 32px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

.service-list {
  border-top-color: var(--gold);
}

.service {
  border-bottom-color: var(--gold-line);
}

.featured {
  background: #f0e8e9;
  box-shadow: none;
}

.service:hover {
  background: var(--surface-hover);
}

.service .arrow {
  color: var(--wine);
}

.faq,.faq-list,.faq details {
  border-color: var(--gold-line);
}

.faq summary:after {
  color: var(--wine);
}

.visit {
  background: var(--wine-dark);
  border-top: 1px solid var(--gold);
}

.visit .button {
  color: var(--wine-dark);
  border: 0;
}

.visit .eyebrow {
  color: #ead6b4;
}

.store-info,.visit-tools,.calendar-toolbar,.calendar-legend,.map-panel {
  border-color: var(--gold-line);
}

.visit .section-link,.visit-tools .section-link {
  border-bottom-color: var(--gold-line);
}

footer {
  border-top: 1px solid var(--gold-line);
  padding-bottom: 32px;
}

.motion-toggle {
  position: static;
  min-height: 44px;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid var(--gold-line);
  font-size: .875rem;
  background: transparent;
  box-shadow: none;
  max-width: 100%;
}

/*Shared masthead and closing navigation.*/

a:focus-visible,button:focus-visible,summary:focus-visible {
  outline: 2px solid #9dafb9;
  outline-offset: 5px;
}

.services a:focus-visible,.services summary:focus-visible {
  outline-color: var(--wine);
}

.link-chevron {
  display: inline-block;
  flex-shrink: 0;
  font: 300 1.4rem/1 var(--font-chevron);
  letter-spacing: 0;
  vertical-align: -.05em;
}

.service .link-chevron {
  font-size: 1.55rem;
}

.site-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px;
  background: #10191ef7;
}

.header {
  height: auto;
  min-height: 98px;
  padding-block: 16px;
  z-index: 40;
}

.site-bar .brand {
  flex: 1 0 7rem;
  margin-right: auto;
  gap: 4px;
}

.site-bar .brand span {
  line-height: 1.15;
}

.site-bar .brand small {
  line-height: 1.4;
}

.site-bar .book {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 12px;
  line-height: 1.5;
  font-size: .875rem;
  letter-spacing: .02em;
  border: 0;
}

.site-menu {
  position: static;
  flex-shrink: 0;
}

.site-menu summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 0;
  list-style: none;
  cursor: pointer;
  font-size: .875rem;
  line-height: 1.5;
  color: var(--paper);
  white-space: nowrap;
  touch-action: manipulation;
}

.site-menu summary::-webkit-details-marker {
  display: none;
}

.menu-caret {
  display: inline-block;
  font: 300 1.3em/1 var(--font-chevron);
  transform: rotate(90deg);
  transition: transform .18s;
}

.site-menu[open] .menu-caret {
  transform: rotate(-90deg);
}

.menu-panel {
  position: absolute;
  right: 4.4%;
  top: calc(100% + 8px);
  display: block;
  width: min(340px,calc(100vw - 28px));
  max-height: calc(100svh - var(--header-height,98px) - 24px);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 10px 20px;
  background: var(--surface-menu);
  border: 0;
  border-top: 1px solid var(--gold);
  box-shadow: 0 12px 30px #0003;
}

.menu-panel a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 52px;
  padding: 14px 0;
  border-bottom: 1px solid #ffffff24;
  font-size: 1rem;
  line-height: 1.6;
  color: #e5e9e9;
}

.menu-panel a:last-child {
  border-bottom: 0;
}

.menu-panel .link-chevron {
  color: #aab8bf;
}

.menu-panel a:hover,.menu-panel a:active {
  color: #fff;
  background: #ffffff08;
}

.site-menu[open] .menu-panel {
  animation: menu-appear .18s ease-out;
}

.site-menu:not([open]) .menu-panel {
  display: none;
}

@keyframes menu-appear {
  from {
    opacity: 0;
    transform: translateY(var(--menu-enter,-6px));
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.calendar-today time {
  position: relative;
  border-color: transparent;
  box-shadow: none;
}

.calendar-today time:after {
  content: "";
  position: absolute;
  bottom: 1px;
  left: 9px;
  right: 9px;
  height: 2px;
  background: var(--accent);
}

.calendar-legend .legend-today {
  border: 0;
  border-bottom: 2px solid var(--accent);
  border-radius: 0;
  height: 8px;
}

.mobile-actions {
  display: none;
}

@media (max-width:680px) {
  :root {
    --masthead-height: calc(76px + env(safe-area-inset-top,0px));
    --mobile-actions-height: calc(77px + env(safe-area-inset-bottom,0px));
    scroll-padding-top: 0;
    scroll-padding-bottom: calc(var(--mobile-actions-height) + 16px);
  }

  .mobile-actions-enhanced body {
    padding-bottom: var(--mobile-actions-height);
  }

  .hero {
    min-height: calc(100svh - 25px);
  }

  .chapter {
    scroll-margin-top: calc(var(--chapter-nav-height) + 12px);
  }

  .mobile-story-enhanced .chapter {
    scroll-margin-top: calc(var(--chapter-nav-height) + var(--scene-height) + 12px);
  }

  .site-bar {
    gap: 8px;
    padding-inline: max(14px,env(safe-area-inset-left,0px)) max(14px,env(safe-area-inset-right,0px));
  }

  .site-bar .brand span {
    font-size: 1rem;
    letter-spacing: .06em;
  }

  .site-bar .brand small {
    font-size: .75rem;
    letter-spacing: .04em;
  }

  .site-bar .book {
    padding-inline: 8px;
  }

  .header {
    min-height: var(--masthead-height);
    padding-top: calc(12px + env(safe-area-inset-top,0px));
    padding-bottom: 12px;
  }

  .hero-word {
    top: calc(112px + env(safe-area-inset-top,0px));
  }

  .hero {
    padding-top: calc(225px + env(safe-area-inset-top,0px));
  }

  .mobile-header-enhanced .header {
    position: fixed;
    transform: translate3d(0,var(--header-offset,0px),0);
  }

  .mobile-header-enhanced .header.is-away {
    visibility: hidden;
    pointer-events: none;
  }

  .menu-panel {
    right: 14px;
    max-height: calc(100svh - var(--header-height,var(--masthead-height)) - 24px);
  }

  .mobile-actions {
    position: relative;
    display: flex;
    min-height: calc(77px + env(safe-area-inset-bottom,0px));
    border-top: 1px solid var(--gold);
    padding-top: 12px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom,0px));
  }

  .mobile-actions-enhanced .mobile-actions {
    position: fixed;
    inset: auto 0 0;
    z-index: 40;
    transform: translate3d(0,var(--actions-offset,100%),0);
    visibility: hidden;
    pointer-events: none;
  }

  .mobile-actions-enhanced .mobile-actions.is-visible {
    visibility: visible;
  }

  .mobile-actions-enhanced .mobile-actions.is-ready {
    pointer-events: auto;
  }

  .mobile-actions .menu-panel {
    top: auto;
    bottom: calc(100% + 8px);
    max-height: calc(100svh - var(--mobile-actions-height) - 24px);
    border-top: 0;
    border-bottom: 1px solid var(--gold);
    --menu-enter: 6px;
    box-shadow: 0 -12px 30px #0003;
  }

  .mobile-actions .menu-caret {
    transform: rotate(-90deg);
  }

  .mobile-actions .site-menu[open] .menu-caret {
    transform: rotate(90deg);
  }

  .mobile-actions a:focus-visible,.mobile-actions summary:focus-visible {
    outline-offset: 2px;
  }

  footer {
    padding-bottom: 30px;
  }
}

@media (max-width:680px) and (max-height:520px) {
  .mobile-story-enhanced .chapter {
    scroll-margin-top: calc(var(--chapter-nav-height) + 12px);
  }
}

@media print {
  body,.mobile-actions-enhanced body {
    padding-bottom: 0;
  }

  .site-bar,.motion-toggle,.menu-panel {
    display: none;
  }

  .visit {
    background: #fff;
  }

  .service h3,.service-index {
    color: #000;
  }
}

/*Service names and hit areas stay still; only the mobile photographs turn.*/

.service-art {
  display: none;
}

@media (max-width:680px) {
  .service {
    display: grid;
    grid-template-columns: 22px minmax(0,1fr) clamp(84px,26vw,124px) 12px;
    column-gap: 8px;
    row-gap: 17px;
    padding: 25px 8px 28px;
    align-items: start;
  }

  .service .service-copy {
    display: contents;
  }

  .service:before {
    content: "";
    grid-column: 1/-1;
    grid-row: 1;
    align-self: stretch;
    margin: -8px -8px;
    background: var(--wine-tint);
    pointer-events: none;
  }

  .service-index {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    position: relative;
    padding: 0;
    font-size: .875rem;
    line-height: 1;
  }

  .service h3 {
    grid-column: 2/4;
    grid-row: 1;
    align-self: center;
    position: relative;
    margin: 0;
    padding: 0;
    background: none;
    border-radius: 0;
    font-size: clamp(1rem,4.4vw,1.125rem);
    line-height: 1.65;
    letter-spacing: 0;
  }

  .service p {
    grid-column: 1/3;
    grid-row: 2;
    align-self: center;
    padding-right: 7px;
    font-size: .875rem;
    line-height: 1.95;
    overflow-wrap: anywhere;
  }

  .service .arrow {
    grid-column: 4;
    grid-row: 1;
    align-self: center;
    justify-self: end;
    position: relative;
    margin: 0;
  }

  .service-art {
    display: block;
    grid-column: 3/5;
    grid-row: 2;
    aspect-ratio: 5/6;
    position: relative;
    align-self: center;
    pointer-events: none;
  }

  .service-art img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 2px;
    box-shadow: 0 8px 16px -10px #34202266;
    transform-origin: center center;
  }

  .service-art-wearing img {
    object-position: 38% center;
  }

  .service-art-inherited img {
    object-position: 25% center;
  }

  .service:nth-child(even) .service-art {
    --service-direction: -1;
  }

  .mobile-motion-on .service-art img {
    transform: perspective(620px) translate3d(calc(var(--service-direction,1) * var(--service-x,0px)),var(--service-y,0px),0) rotateX(var(--service-pitch,0deg)) rotateY(calc(var(--service-direction,1) * var(--service-turn,0deg))) rotateZ(calc(var(--service-direction,1) * var(--service-roll,0deg))) scale(var(--service-scale,1));
  }

  .mobile-motion-on .service-art.is-in-view img {
    will-change: transform;
  }

  .service:active {
    background: var(--surface-hover);
  }

  .service:hover .arrow {
    transform: none;
  }
}

@media print {
  .service-art,.service:before {
    display: none;
  }

  .service h3 {
    background: none;
    padding: 0;
  }
}

/*One readable announcement before the existing sticky chapter range.*/

.news-strip {
  background: var(--surface-news);
  border-top: 1px solid var(--gold-line);
  padding: 0 var(--gutter);
}

.news-entry {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 24px;
  align-items: center;
  min-height: 78px;
  padding: 18px 0;
  font-size: .875rem;
  line-height: 1.8;
}

.news-label {
  color: #dfc8a3;
  white-space: nowrap;
}

.news-copy {
  display: flex;
  gap: 24px;
  align-items: baseline;
  min-width: 0;
}

.news-copy time {
  color: #b9c3c8;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.news-copy>span {
  color: #f2f4f2;
}

.news-entry>.link-chevron {
  color: #c3aa80;
}

.news-entry:hover .news-copy>span {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.brand-intro {
  padding: 64px var(--gutter);
  background: var(--ink);
}

.brand-intro-inner {
  max-width: 760px;
  margin-inline: auto;
}

.brand-intro-inner:before {
  content: "";
  display: block;
  width: 48px;
  height: 1px;
  margin-bottom: 24px;
  background: var(--gold);
}

.brand-intro h2 {
  margin: 0 0 22px;
  font-size: clamp(1.5rem,2.5vw,2.125rem);
  line-height: 1.7;
  letter-spacing: 0;
  text-wrap: balance;
}

.brand-intro p {
  margin: 0;
  color: var(--copy);
  line-height: 2;
  text-wrap: pretty;
}

.brand-intro p+p {
  margin-top: 16px;
}

.chapter .chapter-lead {
  color: #f0f2f1 !important;
}

.chapter .number {
  font-size: 1.125rem;
}

.more-services {
  margin-top: 40px;
}

.more-services>h3 {
  font-family: var(--font-mincho-display);
  font-weight: 400;
  font-size: 1.3rem;
  line-height: 1.6;
  margin: 0 0 18px;
}

.extra-service-list {
  border-top: 1px solid var(--gold-line);
}

.extra-service {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 76px;
  padding: 17px 8px;
  border-bottom: 1px solid var(--gold-line);
}

.extra-service>span:first-child {
  min-width: 0;
}

.extra-service strong {
  display: block;
  font-size: 1rem;
  line-height: 1.65;
  font-weight: 500;
  color: var(--wine);
}

.extra-service small {
  display: block;
  margin-top: 5px;
  font-size: .875rem;
  line-height: 1.75;
  color: #5b6569;
}

.extra-service>.link-chevron {
  color: var(--wine);
}

.extra-service:hover,.extra-service:active {
  background: var(--surface-hover);
}

.store-photo {
  margin: 0 0 28px;
}

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

.store-photo figcaption {
  margin-top: 12px;
  color: var(--muted);
  font-size: .8125rem;
  line-height: 1.8;
  text-wrap: pretty;
}

.social-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding-top: 22px;
  border-top: 1px solid var(--gold-line);
  text-align: center;
}

.social-label {
  margin: 0;
  color: var(--muted);
  font-size: .8125rem;
  line-height: 1.8;
  letter-spacing: .08em;
}

.social-icons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
}

.social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  min-height: 44px;
  line-height: 1;
  color: #e1e6e8;
}

.social-links a:hover {
  color: #dfc8a3;
}

.social-links svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  fill: currentColor;
}

@media (max-width:680px) {
  .news-entry {
    gap: 14px;
    padding: 17px 0;
    min-height: 85px;
  }

  .news-copy {
    display: block;
  }

  .news-copy>span {
    display: block;
  }

  .brand-intro {
    padding-block: 46px 50px;
  }

  .brand-intro h2 {
    font-size: clamp(1.125rem,5vw,1.625rem);
    margin-bottom: 20px;
  }

  .brand-intro p {
    font-size: .9375rem;
  }

  .chapter .number {
    font-size: 1rem;
  }

  .scene-meta {
    gap: 10px;
    margin-bottom: 14px;
  }

  .scene-ordinal {
    font-size: 1.125rem;
    line-height: 1;
    letter-spacing: 0;
  }

  .scene-hairline {
    width: 36px;
  }

  .scene-total {
    font-size: .8125rem;
  }

  .scene-jp {
    font-size: clamp(1.25rem,6.3vw,1.875rem);
    letter-spacing: .035em;
  }

  .scene-script {
    font-size: clamp(1.2rem,5.4vw,1.65rem);
    margin-top: 11px;
  }

  .mobile-story-enhanced .story-visual img[data-scene=approach] {
    object-position: center center;
  }

  .service.featured {
    background: transparent;
  }

  .service.featured:before {
    background: var(--wine-tint-strong);
  }

  .more-services {
    margin-top: 35px;
  }

  #calendar {
    scroll-margin-top: 20px;
  }

  .social-links {
    padding-top: 20px;
  }
}

@media print {
  .news-strip {
    color: #000;
    background: #fff;
  }

  .news-copy>span,.news-copy time,.news-label {
    color: #000;
  }

  .social-links {
    display: none;
  }
}

@media (min-width:681px) and (max-width:1000px) {
  .chapter h2 {
    font-size: clamp(1.25rem,3vw,1.8rem);
  }
}

@media print {
  .brand-intro {
    padding: 25px;
    background: #fff;
    color: #000;
  }

  .brand-intro p {
    color: #000;
  }
}

/* Shared lower-page components. Edit this file for TOP and all detail pages. */
:root.page-header-pinned { scroll-padding-top:calc(var(--page-header-height,var(--masthead-height,98px)) + var(--page-title-bar-height,0px) + 16px); }
.page-content { background:var(--ink); color:var(--paper); }
.page-content .page-intro { background:var(--surface-story); color:var(--paper); border-bottom:1px solid var(--gold-line); }
.page-content .page-body { background:var(--paper); color:var(--ink); padding:48px 0 70px; }
.page-content .page-intro .breadcrumbs { color:var(--muted); }
.page-content .page-intro .eyebrow { color:var(--accent); }
.page-content .header { position:sticky; inset:0 0 auto; }
.page-content .page-title-bar { position:absolute; top:100%; left:0; right:0; z-index:0; padding:10px max(20px,4.4%); background:var(--surface-story); color:var(--accent); border-bottom:1px solid var(--gold-line); font:500 .875rem/1.5 var(--font-sans); letter-spacing:.025em; opacity:0; visibility:hidden; transform:translateY(-8px); pointer-events:none; transition:opacity .24s ease,transform .3s cubic-bezier(.2,.7,.2,1),visibility .3s; }
.page-content .page-title-bar span { display:block; max-width:1160px; margin-inline:auto; text-wrap:balance; line-break:strict; overflow-wrap:anywhere; }
.page-content .page-title-bar.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.page-content .header .menu-panel { z-index:2; }
.page-content .menu-panel { padding:8px 14px; }
.page-content .menu-panel a { font-size:.875rem; line-height:1.45; padding:8px 0; min-height:36px; border:0; text-decoration:none; }
.page-content .page-wrap { width:min(1160px,86%); margin-inline:auto; }
.page-content a:focus-visible,.page-content summary:focus-visible { outline:2px solid var(--wine); outline-offset:5px; }
.page-content .header a:focus-visible,.page-content .header summary:focus-visible,.page-content footer a:focus-visible { outline-color:var(--accent); }
.page-content .breadcrumbs { padding:26px 0 4px; color:#59656b; font-size:.875rem; }
.page-content .breadcrumbs ol { display:flex; flex-wrap:wrap; align-items:center; gap:10px; list-style:none; padding:0; margin:0; }
.page-content .breadcrumbs li+li:before { content:'›'; margin-right:10px; }
.page-content .breadcrumbs a { display:inline-block; padding-block:8px; text-decoration:underline; text-underline-offset:4px; }
.page-content .page-lead { display:grid; gap:50px; padding:55px 0 76px; align-items:center; }
.page-content .page-lead.has-photo { grid-template-columns:minmax(0,1.35fr) minmax(220px,.8fr); }
.page-content .page-lead>div { min-width:0; container-type:inline-size; }
.page-content .eyebrow { color:#626b6d; font-size:.75rem; letter-spacing:.15em; margin-bottom:20px; }
.page-content h1 { margin:0 0 26px; }
.page-content .page-title { display:block; font:500 1rem/1.7 var(--font-sans); color:var(--accent); margin-bottom:18px; letter-spacing:.06em; }
.page-content .page-headline { display:block; font-family:var(--font-mincho-display); font-weight:400; font-size:clamp(2rem,3.7vw,3.8rem); line-height:1.6; letter-spacing:.025em; text-wrap:balance; }
.page-content .headline-phrase { display:inline-block; max-width:100%; }
.page-content :is(h1,h2,h3,.page-title,.page-link-list strong) { line-break:strict; word-break:normal; overflow-wrap:anywhere; text-wrap:balance; }
.page-content :is(p,dd) { line-break:strict; text-wrap:pretty; }
.page-content .page-description { max-width:690px; margin-bottom:28px; line-height:2; color:var(--copy); }
.page-content .page-lead-photo { margin:0; justify-self:end; width:fit-content; max-width:min(100%,420px); border-bottom:1px solid var(--gold); padding-bottom:18px; }
.page-content .page-lead-photo img { width:auto; height:auto; }
.page-content .button { min-height:52px; gap:28px; padding:16px 23px; line-height:1.5; border:0; }
.page-content .page-primary { background:var(--wine); color:#fff; }
.page-content .page-primary:hover { background:var(--wine-dark); }
.page-content .page-secondary { background:transparent; border:1px solid #849095; color:var(--ink); }
.page-content .page-secondary:hover { background:var(--wine-tint); }
.page-content .page-quick { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0 0 42px; border-block:1px solid var(--gold-line); background:#fff; }
.page-content .page-quick div { padding:23px 25px; }
.page-content .page-quick div+div { border-left:1px solid #17272f1e; }
.page-content .page-quick dt { color:var(--wine); font-size:.875rem; margin-bottom:8px; }
.page-content .page-quick dd { margin:0; font-size:1rem; line-height:1.8; }
.page-content .page-toc { padding:14px 0 18px; margin-bottom:12px; }
.page-content .page-toc>span { font-size:.875rem; color:#58656a; }
.page-content .page-toc ul { list-style:none; margin:8px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:0 22px; }
.page-content .page-toc a { display:inline-flex; align-items:baseline; gap:8px; min-height:32px; padding:5px 0; font-size:.875rem; line-height:1.5; text-decoration:none; border:0; }
.page-content .page-toc .link-chevron { transform:rotate(90deg); color:var(--wine); font-size:1.15rem; }
.page-content .page-reading { max-width:940px; margin-inline:auto; }
.page-content .page-section { padding:54px 0; scroll-margin-top:0; }
.page-content .page-section+.page-section { border-top:1px solid #17272f24; }
.page-content .page-section h2 { font-size:clamp(1.5rem,2.5vw,2.15rem); line-height:1.8; margin:0 0 24px; background:var(--wine-tint); padding:13px 20px; }
.page-content .page-section>p { color:#37464e; margin-bottom:25px; }
.page-content .page-section h3 { font-size:1.125rem; line-height:1.8; margin:0 0 8px; }
.page-content .page-points { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 38px; margin:22px 0 0; }
.page-content .page-points>div { border-bottom:1px solid #17272f24; padding:20px 0; }
.page-content .page-points dt { font-size:1.075rem; font-weight:500; margin-bottom:8px; line-height:1.8; }
.page-content .page-points dd { margin:0; color:#445259; font-size:1rem; line-height:1.95; }
.page-content .page-steps { list-style:none; counter-reset:step; padding:0; margin:24px 0 0; }
.page-content .page-steps li { counter-increment:step; position:relative; padding:22px 0 22px 56px; border-bottom:1px solid #17272f24; }
.page-content .page-steps li:before { content:counter(step,decimal-leading-zero); position:absolute; top:23px; left:0; font:400 1.15rem/1.8 var(--font-latin); color:var(--wine); }
.page-content .page-steps p { color:#445259; margin-bottom:0; }
.page-content .page-table-wrap { margin:26px 0; overflow:auto; }
.page-content .page-table-wrap:focus-visible { outline:2px solid var(--wine); outline-offset:3px; }
.page-content .page-table { width:100%; border-collapse:collapse; text-align:left; font-size:1rem; line-height:1.85; }
.page-content .page-table th,.page-content .page-table td { border-bottom:1px solid #17272f2e; padding:17px 20px; vertical-align:top; overflow-wrap:anywhere; }
.page-content .page-table thead { background:#e7eae7; }
.page-content .page-table thead th { font-size:.875rem; font-weight:500; }
.page-content .page-table tbody th { width:29%; font-weight:500; }
.page-content .page-table td { color:#445259; }
.page-content .page-note { font-size:.875rem; line-height:1.9; color:#53616a; border-left:2px solid var(--gold); padding-left:15px; }
.page-content .page-inline-links { display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:24px; }
.page-content .section-link { color:var(--wine); font-size:1rem; min-height:44px; gap:14px; padding:12px 0; border-color:var(--gold-line); line-height:1.75; }
.page-content .section-link:hover { color:var(--wine-dark); }
.page-content .page-faq details { padding:0; border-bottom:1px solid #17272f30; }
.page-content .page-faq summary { display:list-item; cursor:pointer; padding:22px 8px 22px 0; line-height:1.9; font-size:1rem; list-style-position:inside; }
.page-content .page-faq summary::marker { color:var(--wine); }
.page-content .page-faq details>p { padding:0 15px 14px; color:#445259; }
.page-content .page-related { background:var(--paper); color:var(--ink); padding:48px 0 58px; border-top:1px solid var(--gold-line); }
.page-content .page-related h2 { font-size:1.5rem; }
.page-content .page-related .page-wrap>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px 40px; }
.page-content .page-related .section-link { justify-content:space-between; }
.page-content .page-consult { padding:65px 0; background:var(--surface-story); color:var(--paper); }
.page-content .page-consult .page-wrap { display:grid; grid-template-columns:1.3fr .7fr; gap:44px; align-items:center; }
.page-content .page-consult h2 { font-size:clamp(1.65rem,2.3vw,2.5rem); margin-bottom:18px; }
.page-content .page-consult .eyebrow { color:var(--accent); }
.page-content .page-consult p { color:#c5cdd0; }
.page-content .page-consult .section-link { display:flex; width:fit-content; color:var(--paper); margin-top:12px; }
.page-content .page-consult .page-note { margin-top:22px; }
.page-content .page-footer-nav { display:flex; gap:16px 30px; flex-wrap:wrap; padding:32px 7%; background:var(--ink); color:#c5cdd0; }
.page-content .page-footer-nav a { padding-block:8px; font-size:.875rem; text-decoration:underline; text-underline-offset:4px; line-height:1.6; }
.page-content footer { background:var(--ink); color:var(--paper); margin-bottom:0; }
.page-content .page-link-list>a { display:flex; align-items:center; gap:30px; justify-content:space-between; border-bottom:1px solid #17272f2e; padding:24px 0; }
.page-content .page-link-list strong { display:block; font-weight:500; color:var(--wine); margin-bottom:8px; font-size:1.125rem; line-height:1.8; }
.page-content .page-link-list a>span>span { display:block; color:#445259; font-size:1rem; line-height:1.9; }
.page-content .page-link-list a:hover { background:var(--wine-tint); }
.page-content .booking-paths { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px; }
.page-content .booking-paths>div { border-top:1px solid var(--gold); padding-top:24px; }
.page-content .booking-paths .button { margin:8px 0 20px; }
.page-content .page-inquiry { margin-top:30px; padding-top:24px; border-top:1px solid #17272f24; }
.page-content .page-editor { font-size:.875rem; color:#59656b; padding:25px 0 45px; }
.page-content .visit-tools { margin:10px 0 0; background:var(--ink); color:var(--paper); }
.page-content .visit-tools .eyebrow { color:var(--accent); }
.page-content .visit-tools .section-link { color:var(--paper); }
@media(max-width:900px) {
  .page-content .page-lead.has-photo { gap:30px; grid-template-columns:1.4fr .8fr; }
  .page-content .page-headline { font-size:clamp(1.65rem,3.5vw,2.6rem); }
  .page-content .page-quick div { padding:20px 15px; }
}
@media(max-width:680px) {
  .page-content .page-wrap { width:auto; margin-inline:20px; }
  .page-content .page-body { padding:28px 0 45px; }
  .page-content .breadcrumbs { padding-top:16px; font-size:.875rem; }
  .page-content .page-lead,.page-content .page-lead.has-photo { display:block; padding:32px 0 35px; }
  .page-content .page-headline { font-size:clamp(1.65rem,6.8vw,2.2rem); line-height:1.65; }
  .page-content .page-title { font-size:1rem; margin-bottom:14px; }
  .page-content .page-description { line-height:2; }
  .page-content .page-lead-photo { width:70%; max-width:320px; margin:32px 0 0 auto; padding-bottom:14px; }
  .page-content .page-quick { grid-template-columns:1fr; margin-bottom:20px; }
  .page-content .page-quick div { display:grid; grid-template-columns:6.2em minmax(0,1fr); gap:12px; padding:16px 12px; }
  .page-content .page-quick div+div { border-left:0; border-top:1px solid #17272f1e; }
  .page-content .page-quick dt { margin:0; line-height:1.8; }
  .page-content .page-quick dd { font-size:1rem; }
  .page-content .page-toc ul { gap:0; display:block; }
  .page-content .page-toc a { min-height:32px; line-height:1.5; }
  .page-content .page-section { padding:36px 0; scroll-margin-top:0; }
  .page-content .page-section h2 { font-size:clamp(1.2rem,4.8vw,1.45rem); line-height:1.65; padding:12px 14px; margin-bottom:20px; }
  .page-content .page-points { display:block; }
  .page-content .page-points>div { padding:18px 0; }
  .page-content .page-table { font-size:1rem; }
  .page-content .page-table th,.page-content .page-table td { padding:13px 10px; }
  .page-content .page-table tbody th { width:32%; }
  .page-content .page-related .page-wrap>div { display:block; }
  .page-content .page-related .section-link { display:flex; }
  .page-content .page-consult { padding:42px 0; }
  .page-content .page-consult .page-wrap,.page-content .booking-paths { display:block; }
  .page-content .booking-paths>div+div { margin-top:28px; }
  .page-content .page-consult .page-wrap>div+div { margin-top:30px; }
  .page-content .page-footer-nav { padding:30px 20px; gap:10px 25px; }
  .page-content .page-link-list>a { gap:16px; }
  .page-content .section-link { font-size:1rem; }
  .page-content .visit-tools { padding-inline:20px; }
}
@supports (font-size:1cqi) {
  .page-content .page-headline { font-size:clamp(1.65rem,7cqi,3.8rem); }
}
@media(prefers-reduced-motion:reduce) {
  .page-content *, .page-content *:before, .page-content *:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
@media print {
  :root.page-header-pinned { scroll-padding-top:0; }
  .page-content { background:white; color:black; }
  .page-content .page-intro,.page-content .page-body,.page-content .page-related { background:white; color:black; }
  .page-content .page-intro p,.page-content .page-intro .page-title,.page-content .page-intro .eyebrow { color:black; }
  .page-content .header,.page-content .page-toc,.page-content .page-consult,.page-content .page-footer-nav,.page-content footer { display:none; }
  .page-content .page-wrap { width:100%; margin:0; }
  .page-content .page-section { break-inside:auto; padding:20px 0; }
  .page-content .page-section h2 { break-after:avoid; }
  .page-content .page-table-wrap { overflow:visible; }
  .page-content .page-faq details>p { display:block; }
}
/* Integrated editorial sections: shared type and palette, no additional motion. */
.home-work,.home-journal{margin-top:clamp(64px,9vw,120px);padding-top:32px;border-top:1px solid var(--gold,#bfa77d)}
.home-work h2,.home-journal h2{font-size:clamp(25px,3.4vw,40px);line-height:1.6;text-wrap:balance}
.home-work ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:32px 0}
.home-work h3,.home-journal h3{font-size:20px;font-weight:500;line-height:1.6;color:#781d36}
.home-work p,.home-journal p{font-size:16px;line-height:1.9}
.home-journal>div{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:28px 0}
.home-journal>div>a{display:block;color:inherit;text-decoration:none;padding:24px 0;border-top:1px solid #d9d4cd}
.home-journal .home-preparing{margin-top:32px;color:#535d61;font-size:14px}
.page-bullets{padding-left:1.5em;line-height:1.9}.page-bullets li+li{margin-top:.65em}
@media(max-width:680px){.home-work ol,.home-journal>div{grid-template-columns:1fr;gap:18px}.home-work h3,.home-journal h3{font-size:19px}}
/* TOP motion and editorial rhythm — 2026-09-15. */
.home-page::before{content:"";position:fixed;inset:0;z-index:1000;background:#fff;pointer-events:none;animation:pw-arrival .95s ease-out both}
@keyframes pw-arrival{0%,15%{opacity:1}100%{opacity:0;visibility:hidden}}
.opening-skip .home-page::before,.motion-off .home-page::before{display:none}
.hero-intro .hero-word{transform-origin:top left;animation:pw-word-arrival 1.7s .08s cubic-bezier(.16,1,.3,1) both}
@keyframes pw-word-arrival{from{transform:translate3d(32vw,32vh,0) scale(2.25);opacity:.1}30%{opacity:1}to{transform:translate3d(0,0,0) scale(1);opacity:1}}
.home-page .news-strip{background:#fff;color:var(--ink)}
.home-page .news-copy time{color:#515a5e}
.home-page .news-copy>span{color:var(--ink)}
.home-page .news-label,.home-page .news-entry>.link-chevron{color:#826431}
.home-page .service-focus{display:flex;align-items:center;gap:20px;width:100%}
.home-page .home-work{margin:0;background:var(--ink);color:var(--paper);border-top:1px solid var(--gold-line);display:block}
.home-page .home-work>.eyebrow{color:var(--accent)}
.home-page .home-work h2,.home-page .home-journal h2{font-family:var(--font-mincho);font-weight:400;line-height:1.65;font-size:clamp(1.65rem,3.1vw,2.7rem);letter-spacing:.03em}
.home-page .home-work h2>span,.home-page .home-journal h2>span,.home-page .home-faq h2>span{display:block}
.home-work-photo{margin:36px 0 0}
.home-work-photo img{display:block;width:100%;height:clamp(200px,34vw,460px);object-fit:cover;object-position:50% 45%}
.home-work-photo figcaption{font-size:.875rem;color:var(--muted);line-height:1.7;margin-top:12px}
.home-page .home-work ol{gap:36px;margin:42px 0 30px}
.home-page .home-work ol>li{padding-top:18px;border-top:1px solid var(--gold-line)}
.home-page .home-work h3{color:var(--paper);font-size:1.2rem;margin:12px 0}
.home-page .home-work p:not(.eyebrow){color:var(--copy)}
.work-step{font:italic 1rem var(--font-latin);color:var(--accent)}
.home-page .home-work .section-link{color:var(--paper);border-color:var(--gold-line)}
.home-page .home-faq{margin:0;background:#fff;color:var(--ink);border:0;grid-template-columns:.9fr 1.1fr;gap:7%}
.faq-brand{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.faq-brand img{width:80px;height:auto;flex-shrink:0;margin-top:-10px}
.home-page .home-faq .eyebrow{color:#826431;font-size:.8125rem}
.home-page .home-faq h2{font:400 clamp(1.8rem,3.5vw,3.2rem)/1.6 var(--font-mincho);letter-spacing:.02em;margin:18px 0 22px}
.home-page .home-faq .faq-promise{font-size:1rem;line-height:1.9;color:var(--wine);margin-bottom:12px}
.faq-caption{font-size:.875rem;color:#5b6468;line-height:1.8}
.home-page .home-faq .faq-list{border-top:2px solid var(--wine)}
.home-page .home-faq summary{padding-left:30px;font-size:1rem}
.home-page .home-faq summary::before{content:"Q";position:absolute;left:0;top:25px;color:var(--wine);font-family:var(--font-latin);font-style:italic}
.home-page .home-faq details[open] summary{color:var(--wine)}
.home-page .home-faq details p{padding-left:30px;font-size:1rem}
.home-page .home-faq .section-link{display:inline-block;margin-top:24px;color:var(--wine);border-color:var(--gold)}
.home-page .home-journal{margin:0;background:#fff;color:var(--ink);border-top:1px solid var(--gold-line)}
.home-page .home-journal>.eyebrow{color:#826431}
.home-page .home-journal>.journal-entries{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:36px 0}
.home-page .home-journal .journal-entry{display:block;padding:0 0 24px;border:0;border-bottom:1px solid var(--gold-line);text-decoration:none;color:inherit}
.journal-entry figure{position:relative;margin:0 0 24px;aspect-ratio:16/9;overflow:hidden;background:#e7e8e4}
.journal-entry figure img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s}
.journal-entry figure>span{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--paper);font-size:.75rem;letter-spacing:.12em;line-height:1.6;padding:8px 12px}
.home-page .home-journal .journal-category{font-size:.8125rem;color:#705b39;margin:0 0 12px}
.home-page .home-journal .journal-entry h3{font:400 clamp(1.3rem,2.3vw,1.85rem)/1.6 var(--font-mincho);color:var(--ink);margin:0 0 12px;text-wrap:balance}
.journal-entry h3>span{display:inline-block}
.home-page .journal-entry p{font-size:1rem;line-height:1.8;margin-bottom:20px}
.journal-read{color:var(--wine);font-size:.875rem;display:flex;align-items:center;justify-content:space-between}
.home-page .home-journal>.section-link{color:var(--wine);border-color:var(--gold)}
.home-page .home-journal .home-preparing{max-width:45em;font-size:.875rem;line-height:1.9}
.journal-entry:hover figure img{transform:scale(1.035)}
@media(max-width:680px){
 .home-page .hero-word{font-size:11.2vw;left:5%}
 .home-page .hero .actions .text-link{font-size:.9375rem}
 .home-page .service{display:block;padding:8px 0;border-bottom-color:var(--gold-line);background:none}
 .home-page .service:before{display:none}
 .home-page .service-focus{display:grid;position:relative;grid-template-columns:22px minmax(0,1fr) clamp(84px,26vw,124px) 12px;column-gap:8px;row-gap:17px;width:calc(100% - 20px);margin:0 10px;padding:24px 0 28px;transform-origin:center}
 .home-page .service-focus:before{content:"";grid-column:1/-1;grid-row:1;align-self:stretch;margin:-8px -8px;background:var(--wine-tint);pointer-events:none}
 .mobile-motion-on .home-page .service-focus{transform:scale(var(--service-focus,1))}
 .home-page .service:focus-visible .service-focus,.home-page .service:active .service-focus{transform:none}
 .home-page .service p{font-size:1rem;padding-right:5px;line-height:1.85}
 .home-page .home-work ol{grid-template-columns:1fr;gap:20px}
 .home-page .home-work ol>li{display:grid;grid-template-columns:26px 1fr;column-gap:12px}
 .work-step{grid-column:1;grid-row:1;padding-top:16px}
 .home-page .home-work ol h3{grid-column:2;grid-row:1}
 .home-page .home-work ol p{grid-column:2;grid-row:2;margin:0}
 .home-page .home-work-photo{margin-top:26px}
 .home-page .home-faq{display:block}
 .home-page .home-faq .faq-intro{margin-bottom:34px}
 .home-page .home-faq h2>span{display:inline-block}
 .home-page .home-faq h2>span:first-child{display:block}
 .home-page .home-faq h2{font-size:clamp(1.65rem,7.2vw,2.1rem)}
 .home-page .home-faq .faq-brand img{width:68px}
 .home-page .home-journal>.journal-entries{grid-template-columns:1fr;gap:30px}
 .home-page .home-journal .journal-entry{display:grid;grid-template-columns:30% minmax(0,1fr);gap:20px;padding:0 0 30px;align-items:start}
 .journal-entry figure{aspect-ratio:3/4;margin:0}
 .journal-entry figure>span{display:none}
 .home-page .home-journal .journal-entry h3{font-size:clamp(1.15rem,5vw,1.4rem);text-wrap:wrap}
 .journal-entry h3>span{display:block}
 .home-page .home-journal .journal-category{font-size:.75rem;margin-bottom:8px}
 .home-page .journal-entry p{font-size:.9375rem;margin-bottom:14px}
}
@media(prefers-reduced-motion:reduce){
 .home-page::before{display:none}
 .hero-intro .hero-word,.hero-intro .hero-image img,.hero-intro .hero-copy h1{animation:none}
 .home-page .service-focus,.home-page .service-art img{transform:none!important}
 .journal-entry figure img{transition:none}
}
.motion-off .hero-word,.motion-off .hero-image img,.motion-off .hero-copy h1{animation:none}
@media print{.home-page::before{display:none}.home-page .home-work{background:white;color:black}.home-page .home-work p:not(.eyebrow),.home-page .home-work h3{color:black}}
.home-page .home-work,.home-page .home-faq,.home-page .home-journal{padding-block:clamp(64px,8vw,110px)}
.home-work-photo .work-inspection{aspect-ratio:1024/480;overflow:hidden;position:relative}
.home-work-photo .work-inspection img{width:100%;height:auto;max-width:none;object-fit:initial;display:block}
.home-professionals{margin-top:64px;padding-top:40px;border-top:1px solid var(--gold-line)}
.home-page .home-professionals>.eyebrow{color:var(--accent);font-size:.75rem}
.home-page .home-professionals h2{font-size:clamp(1.35rem,2.5vw,2rem)}
.professional-intro{max-width:40em;margin:18px 0 30px;line-height:1.9}
.professional-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:30px 0}
.professional-card{display:grid;grid-template-columns:100px minmax(0,1fr);gap:20px;align-items:start}
.professional-photo{position:relative;overflow:hidden;aspect-ratio:4/5;margin:0;background:#c8c8c8}
.professional-photo img{position:absolute;width:205%;height:auto;max-width:none;left:-53%;top:-15%;display:block}
.professional-card h3{font-size:1.1rem;font-weight:500;line-height:1.6;margin:0 0 10px;color:var(--wine)}
.professional-card p{font-size:1rem;line-height:1.9;margin:0}
.home-page .home-work .professional-card .professional-photo{margin:0 0 18px}
.professional-grid.is-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.is-compact .professional-card{grid-template-columns:80px minmax(0,1fr);gap:16px}
.home-page .home-work .professional-card h3{font-size:1rem;line-height:1.7;margin:0 0 10px}
.home-page .home-work .professional-card p{font-size:.875rem;line-height:1.8}
@media(max-width:900px){.professional-grid.is-compact{gap:18px}.is-compact .professional-card{display:block}.is-compact .professional-photo{width:100%;max-width:150px;margin-bottom:18px}}
@media(max-width:680px){
 .home-work-photo .work-inspection{aspect-ratio:16/9}
 .home-work-photo .work-inspection img{position:relative;width:125%;left:-12.5%}
 .home-professionals{margin-top:48px;padding-top:32px}
 .home-page .home-journal h2{font-size:clamp(1.35rem,6.2vw,1.8rem)}
 .home-page .home-work h2{font-size:clamp(1.3rem,5.8vw,1.7rem)}
 .professional-grid{grid-template-columns:1fr;gap:30px}
 .professional-card{grid-template-columns:85px minmax(0,1fr);gap:18px}
 .professional-grid.is-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
 .home-page .home-work .is-compact .professional-card h3{font-size:.875rem;line-height:1.7}
 .home-page .home-work .is-compact .professional-card p{font-size:.875rem;line-height:1.8}
}

/* Owner photo batch 01: show the whole clasp/product, preserve existing motion. */
.home-page .service-art img[data-owner-photo]{object-fit:contain;object-position:center;box-shadow:none}
.home-page .service-art:has(img[data-owner-photo]):not(.service-art-inherited){aspect-ratio:4/3}
.home-page .story-visual img[data-owner-photo]{object-position:center}
.home-page .journal-entry img[data-owner-photo]{object-fit:contain;object-position:center}
.home-page .journal-entry figure:has(img[data-owner-photo]){background:#e8e7e3}
.page-process-photo{margin:32px 0}
.page-process-photo img{display:block;width:100%;height:auto}
.page-process-photo figcaption{margin-top:12px;color:var(--body-muted,#535d61);font-size:.875rem;line-height:1.8}

/* Close-up examples: preserve the whole photograph and its original colour. */
.page-photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:28px}
.page-photo-gallery figure{margin:0;min-width:0}
.page-photo-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#e8e7e3}
.page-photo-gallery h3{font-size:1.1rem;line-height:1.7;color:var(--wine);margin:18px 0 8px}
.page-photo-gallery p{font-size:1rem;line-height:1.9;margin:0}
@media(max-width:680px){.page-photo-gallery{grid-template-columns:1fr;gap:36px}}

/* Shared online entrances; independent of the existing scroll animation. */
.online-entries{background:#10191e;color:#f6f5f2;padding:clamp(40px,6vw,80px) 5%;border-top:1px solid var(--gold-line)}
.online-entries-inner{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.online-entries h2{font:clamp(1.4rem,3vw,2rem)/1.65 var(--font-mincho);margin:12px 0 16px;color:inherit}
.online-entries p{font-size:1rem;line-height:1.9}.online-entries .eyebrow{color:#c8b185;font-size:.875rem;letter-spacing:.14em}
.online-entries a{display:inline-flex;align-items:center;gap:20px;padding:12px 0;color:#f6f5f2;font-size:1rem;text-decoration:none;border-bottom:1px solid #c8b185;min-height:44px}
.online-entries a:hover{color:#dcc8a5}.online-entries a:focus-visible{outline:2px solid #c8b185;outline-offset:5px}
.online-entries small{display:block;margin-top:12px;font-size:.875rem;line-height:1.7;color:#c0c7ca}
@media(max-width:680px){.online-entries-inner{grid-template-columns:1fr;gap:32px}.online-entries-inner>div+div{border-top:1px solid var(--gold-line);padding-top:28px}}
/* TOP portrait labels: retain three portraits, omit biographies. */
.home-professionals .is-compact .professional-card{display:block;text-align:center}
.home-professionals .professional-photo{margin-inline:auto!important}
.home-page .home-work .home-professionals .is-compact .professional-card h3{font-size:clamp(9px,2.55vw,14px);line-height:1.5;letter-spacing:-.05em;white-space:nowrap;margin:0}
/* Pearl care examples: matched before/after pairs, including small screens. */
.care-comparisons{margin-top:32px}.care-comparison{padding:28px 0;border-top:1px solid var(--gold-line)}.care-comparison h3{font:clamp(1.15rem,3vw,1.5rem)/1.6 var(--font-mincho);margin:0 0 18px;color:var(--wine)}.care-comparison-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.care-comparison-pair figure{margin:0;min-width:0}.care-comparison-pair figcaption{font-size:1rem;line-height:1.6;padding:8px 10px;background:var(--wine-tint);margin-bottom:8px}.care-comparison-pair img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#e8e7e3}.care-comparison-pair a{display:block}.care-comparison>p{font-size:1rem;line-height:1.8;margin:16px 0 0}@media(max-width:400px){.care-comparison-pair{gap:8px}.care-comparison-pair figcaption{padding:8px 6px}}
@media(max-width:680px){.map-frame{height:auto;aspect-ratio:1.18}.map-frame iframe{height:100%;min-height:280px}}

/* Respect iOS Dynamic Type: rem inherits the user's preferred body text size.
   Preserve the site's typefaces. No in-site text-size controls or zoom limits. */
html { font-size: 100%; }
@supports (font: -apple-system-body) {
  html { font: -apple-system-body; font-family: var(--font-sans); }
}
/* Text formerly sized in fixed pixels should grow with the root. */
.home-work p,.home-journal p { font-size:1rem; }
.home-work h3 { font-size:1.25rem; }
.home-journal .home-preparing { font-size:.875rem; }

/* Reuse the chapter palette on related service and guide pages. */
[data-chapter-tone="approach"]{--topic-bg:#332c26;--topic-link:#e5c596}
[data-chapter-tone="jewelry"]{--topic-bg:#24343e;--topic-link:#b7d6e5}
[data-chapter-tone="pearl"]{--topic-bg:#303630;--topic-link:#d6dabb}
[data-chapter-tone] .page-section h2{background:var(--topic-bg);color:var(--topic-link)}
[data-chapter-tone].page-content .section-link{background:var(--topic-bg);color:var(--topic-link);padding-inline:16px}
.owner-message{padding:28px 6% 0;max-width:1320px;margin:auto}
.owner-message p{font-size:1rem;line-height:1.95;margin:0}
