@font-face { font-family:'Noto Serif SC'; font-style:normal; font-weight:400; font-display:swap; src:url(chinese-serif-critical-da8be533358c.woff2) format('woff2');
  unicode-range:U+20,U+32,U+33,U+34,U+35,U+36,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+50,U+53,U+54,U+57,U+5F,U+61,U+63,U+64,U+65,U+67,U+68,U+69,U+6C,U+6D,U+6E,U+6F,U+70,U+72,U+73,U+74,U+75,U+78,U+7C,U+B7,U+3002,U+4E0A,U+4E0B,U+4E0E,U+4E13,U+4E2D,U+4E3B,U+4E3E,U+4E86,U+4E8B,U+4EEA,U+4EF7,U+4F53,U+4F5C,U+524D,U+529E,U+52A8,U+5355,U+54A8,U+54C1,U+5730,U+585E,U+5A5A,U+5BFC,U+5C5E,U+5DF1,U+5DF4,U+5E08,U+5E38,U+5F00,U+5F0F,U+5F71,U+6253,U+62A5,U+62CD,U+6444,U+6545,U+6587,U+65B9,U+65C5,U+65E0,U+6848,U+6B63,U+70B9,U+7259,U+73ED,U+7559,U+7684,U+79FB,U+7A7F,U+7AEF,U+7EB1,U+7F57,U+81EA,U+81F3,U+822A,U+83DC,U+897F,U+89C1,U+89E3,U+8BE2,U+8DF3,U+90A3,U+95EE,U+9700,U+9898,U+9A8C,U+FF0C;
}

@font-face { font-family:'Noto Sans SC'; font-style:normal; font-weight:400; font-display:swap; src:url(chinese-sans-critical-cecda3f0820d.woff2) format('woff2');
  unicode-range:U+20,U+32,U+33,U+34,U+35,U+36,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+50,U+53,U+54,U+57,U+5F,U+61,U+63,U+64,U+65,U+67,U+68,U+69,U+6C,U+6D,U+6E,U+6F,U+70,U+72,U+73,U+74,U+75,U+78,U+7C,U+B7,U+3002,U+4E0A,U+4E0B,U+4E0E,U+4E13,U+4E2D,U+4E3B,U+4E3E,U+4E86,U+4E8B,U+4EEA,U+4EF7,U+4F53,U+4F5C,U+524D,U+529E,U+52A8,U+5355,U+54A8,U+54C1,U+5730,U+585E,U+5A5A,U+5BFC,U+5C5E,U+5DF1,U+5DF4,U+5E08,U+5E38,U+5F00,U+5F0F,U+5F71,U+6253,U+62A5,U+62CD,U+6444,U+6545,U+6587,U+65B9,U+65C5,U+65E0,U+6848,U+6B63,U+70B9,U+7259,U+73ED,U+7559,U+7684,U+79FB,U+7A7F,U+7AEF,U+7EB1,U+7F57,U+81EA,U+81F3,U+822A,U+83DC,U+897F,U+89C1,U+89E3,U+8BE2,U+8DF3,U+90A3,U+95EE,U+9700,U+9898,U+9A8C,U+FF0C;
}

@font-face { font-family:Inter; font-style:normal; font-weight:100 900; font-display:swap; src:url(InterVariable-critical-c8f8dc79fdc0.woff2) format('woff2');
  unicode-range:U+20,U+21,U+22,U+23,U+24,U+25,U+26,U+27,U+28,U+29,U+2A,U+2B,U+2C,U+2D,U+2E,U+2F,U+30,U+31,U+32,U+33,U+34,U+35,U+36,U+37,U+38,U+39,U+3A,U+3B,U+3C,U+3D,U+3E,U+3F,U+40,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+48,U+49,U+4A,U+4B,U+4C,U+4D,U+4E,U+4F,U+50,U+51,U+52,U+53,U+54,U+55,U+56,U+57,U+58,U+59,U+5A,U+5B,U+5C,U+5D,U+5E,U+5F,U+60,U+61,U+62,U+63,U+64,U+65,U+66,U+67,U+68,U+69,U+6A,U+6B,U+6C,U+6D,U+6E,U+6F,U+70,U+71,U+72,U+73,U+74,U+75,U+76,U+77,U+78,U+79,U+7A,U+7B,U+7C,U+7D,U+7E,U+B7;
}

@font-face { font-family:Manrope; font-style:normal; font-weight:400; font-display:swap; src:url(Manrope-Regular-critical-7a8398ad5374.woff2) format('woff2');
  unicode-range:U+20,U+21,U+22,U+23,U+24,U+25,U+26,U+27,U+28,U+29,U+2A,U+2B,U+2C,U+2D,U+2E,U+2F,U+30,U+31,U+32,U+33,U+34,U+35,U+36,U+37,U+38,U+39,U+3A,U+3B,U+3C,U+3D,U+3E,U+3F,U+40,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+48,U+49,U+4A,U+4B,U+4C,U+4D,U+4E,U+4F,U+50,U+51,U+52,U+53,U+54,U+55,U+56,U+57,U+58,U+59,U+5A,U+5B,U+5C,U+5D,U+5E,U+5F,U+60,U+61,U+62,U+63,U+64,U+65,U+66,U+67,U+68,U+69,U+6A,U+6B,U+6C,U+6D,U+6E,U+6F,U+70,U+71,U+72,U+73,U+74,U+75,U+76,U+77,U+78,U+79,U+7A,U+7B,U+7C,U+7D,U+7E,U+B7;
}

:root {
  --paper:#ffffff;
  --ivory:#fbf1f2;
  --sand:#e5c8cc;
  --gold:#1e1e1e;
  --ink:#1e1e1e;
  --muted:#656565;
  --line:#1e1e1e40;
  --serif:Baskerville,'Baskerville Old Face','Hoefler Text',Palatino,Georgia,'Noto Serif JP','Yu Mincho',serif;
  --sans:Inter,'Helvetica Neue','Noto Sans JP','Hiragino Kaku Gothic ProN',Arial,sans-serif;
  --label-size:16px;
  --compact-size:16px;
  --footer-size:13.333333px;
  scroll-behavior:smooth;
  --header-height:104px;
  scroll-padding-top:calc(var(--header-height) + 16px)
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.95;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit;
  color:inherit
}
img {
  display:block;
  width:100%;
  height:auto
}
button,a,summary {
  -webkit-tap-highlight-color:transparent
}
button:focus-visible,a:focus-visible,summary:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:6px
}
h1,h2,h3,p {
  margin:0
}
h1,h2 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.65;
  text-wrap:pretty
}
h1 {
  font-size:clamp(29px,2.55vw,45px);
  letter-spacing:.04em
}
h2 {
  font-size:clamp(25px,2.2vw,36px);
  letter-spacing:.025em
}
h3 {
  font-size:17px;
  font-weight:500;
  line-height:1.7
}
p+p {
  margin-top:20px
}
.small {
  font-size:12px;
  line-height:1.9;
  color:var(--muted)
}
.micro {
  font-size:11px;
  line-height:1.8;
  color:var(--muted)
}
.eyebrow {
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:.16em;
  line-height:1.8;
  color:var(--gold)
}
.eyebrow span {
  margin-right:15px
}
.section-heading {
  margin-bottom:30px
}
.section-heading .eyebrow {
  margin-bottom:17px
}
.section {
  max-width:1280px;
  margin:auto;
  padding:95px 64px
}
.section-lead {
  max-width:760px;
  margin-bottom:38px
}
.section-lead p {
  margin-bottom:13px
}
.skip-link {
  position:fixed;
  top:-100px;
  left:10px;
  z-index:1000;
  background:white;
  padding:10px
}
.skip-link:focus {
  top:10px
}
.site-header-shell { position:sticky; top:0; height:var(--header-height); z-index:40; }
.site-header-bar { position:relative; }
.site-header-shell.is-scrolled .site-header { box-shadow:0 5px 18px #0000000d; }
.mobile-nav { max-height:calc(100dvh - var(--header-height)); overflow-y:auto; }
.site-header {
  height:var(--header-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 4.5%;
  gap:28px;
  background:var(--paper);
  position:relative;
  z-index:20;
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s ease
}
.wordmark {
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  line-height:1.2;
  flex-shrink:0
}
.wordmark>span {
  font-family:Georgia,serif;
  font-size:29px;
  letter-spacing:.13em;
  color:var(--gold)
}
.wordmark small {
  font-size:7px;
  letter-spacing:.23em;
  margin-top:8px
}
.site-header nav {
  display:flex;
  gap:28px;
  font-size:12px
}
.site-header nav a:hover,.text-link:hover {
  color:var(--gold)
}
.header-actions {
  display:flex;
  gap:25px;
  align-items:center
}
.languages {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:11px;
  white-space:nowrap
}
.languages a[aria-current] {
  border-bottom:1px solid var(--gold)
}
.languages>span {
  color:#888888
}
.header-contact {
  padding:10px 19px;
  border:1px solid var(--gold);
  font-size:11px;
  white-space:nowrap
}
.menu-toggle {
  display:none;
  width:40px;
  height:40px;
  background:none;
  border:0;
  padding:8px
}
.menu-toggle span {
  display:block;
  width:24px;
  height:1px;
  background:var(--ink);
  margin:7px 0
}
.mobile-nav {
  position:absolute;
  left:0;
  right:0;
  top:var(--header-height);
  background:var(--paper);
  z-index:19;
  padding:25px 7%;
  box-shadow:0 15px 20px #0000000d
}
.mobile-nav:not([hidden]) {
  display:grid;
  gap:18px
}
.hero {
  display:grid;
  grid-template-columns:45% 55%;
  max-width:1680px;
  margin:auto;
  min-height:650px
}
.hero-copy {
  padding:70px 11% 55px 14%;
  display:flex;
  align-items:flex-start;
  flex-direction:column;
  justify-content:center
}
.hero-copy .eyebrow {
  margin-bottom:27px
}
.hero-rule {
  height:1px;
  width:45px;
  background:var(--gold);
  margin:28px 0
}
.hero-intro {
  font-size:13px;
  line-height:2.15;
  max-width:390px
}
.hero-copy .button {
  margin-top:29px
}
.hero-copy .micro {
  margin-top:13px
}
.hero-copy .text-link {
  margin-top:30px;
  font-size:11px
}
.hero-photo {
  position:relative;
  min-width:0;
  max-height:900px;
  overflow:hidden
}
.hero-photo img {
  height:100%;
  object-fit:cover;
  object-position:center 45%;
  aspect-ratio:2/3
}
.photo-credit {
  position:absolute;
  bottom:20px;
  right:20px;
  writing-mode:vertical-rl;
  color:white;
  font-size:8px;
  letter-spacing:.17em;
  text-shadow:0 1px 4px #000
}
.button {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:25px;
  min-height:54px;
  padding:15px 23px;
  background:var(--gold);
  color:white;
  font-size:12px;
  line-height:1.8;
  border:1px solid var(--gold);
  transition:background .2s
}
.button:hover {
  background:#333333
}
.text-link {
  display:inline-flex;
  gap:15px;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--gold);
  padding-bottom:5px;
  font-size:12px;
  line-height:1.8
}
.intro {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  border-bottom:1px solid var(--line)
}
.intro .section-heading {
  margin:0
}
.trust-points {
  display:flex;
  flex-wrap:wrap;
  gap:11px 22px;
  margin:25px 0;
  font-size:9px;
  letter-spacing:.12em;
  color:var(--gold)
}
.stories .section-heading,.plans .section-heading,.locations .section-heading,.process>.section-heading,.faq>.section-heading {
  text-align:center
}
.stories>.section-lead,.plans>.section-lead,.locations>.section-lead,.process>.section-lead {
  text-align:center;
  margin-left:auto;
  margin-right:auto
}
.story-gallery {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:18px
}
.photo {
  position:relative;
  display:block;
  padding:0;
  border:0;
  background:var(--ivory);
  width:100%;
  cursor:zoom-in;
  overflow:hidden
}
.photo img {
  height:100%;
  object-fit:cover;
  transition:transform .5s
}
.photo:hover img {
  transform:scale(1.025)
}
.story-gallery .photo {
  aspect-ratio:1/1
}
.story-gallery .tall {
  grid-row:span 2;
  aspect-ratio:auto
}
.story-gallery .wide {
  grid-column:span 2;
  aspect-ratio:2.06/1
}
.zoom-mark {
  position:absolute;
  right:13px;
  bottom:11px;
  background:#ffffffde;
  border-radius:50%;
  font-size:17px;
  width:27px;
  height:27px;
  line-height:18px
}
.story-caption {
  display:flex;
  justify-content:space-between;
  margin-top:18px;
  font-size:10px;
  letter-spacing:.09em;
  color:var(--muted)
}
.plans {
  max-width:none;
  background:var(--ivory)
}
.plans>.section-lead,.plans>.section-heading,.plan-grid {
  max-width:1152px;
  margin-left:auto;
  margin-right:auto
}
.plan-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:23px
}
.plan-card {
  background:var(--paper);
  display:flex;
  flex-direction:column
}
.plan-card>picture {
  aspect-ratio:4/3;
  object-fit:cover
}
.plan-body {
  padding:26px;
  display:flex;
  flex:1;
  align-items:flex-start;
  flex-direction:column
}
.plan-body>.eyebrow {
  font-size:9px
}
.duration {
  font-family:Georgia,serif;
  font-size:49px;
  line-height:1.4;
  margin:15px 0 18px
}
.duration span {
  font-family:var(--sans);
  font-size:11px;
  margin-left:12px
}
.plan-body>p[data-copy-id] {
  font-size:12px;
  line-height:2.1;
  flex:1
}
.price {
  font-family:Georgia,serif;
  font-size:25px;
  letter-spacing:.03em;
  line-height:1.4;
  margin:24px 0 9px
}
.plan-body>.small {
  font-size:10px
}
.plan-body>.text-link {
  margin-top:24px;
  font-size:11px;
  width:100%;
  min-height:43px
}
.feature {
  display:grid;
  grid-template-columns:46% 54%;
  gap:0
}
.feature-copy {
  padding:40px 0 40px 75px;
  align-self:center
}
.feature-photo .photo {
  height:100%;
  aspect-ratio:3/4
}
.feature-photo img {
  object-position:center
}
.feature-copy>p {
  font-size:13px
}
.note-box {
  border-left:2px solid var(--sand);
  padding:4px 0 4px 20px;
  margin:25px 0
}
.emphasis {
  font-size:13px
}
.small-price {
  font-size:22px
}
.small-price span {
  font:11px var(--sans);
  color:var(--muted)
}
.option-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  border-top:1px solid var(--line);
  padding-top:58px;
  padding-bottom:58px
}
.option-section .section-heading {
  margin:0
}
.option-section>div>p:first-child {
  font-size:13px
}
.option-section .price {
  margin-top:15px
}
.option-section p.small {
  margin-top:14px
}
.location-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px
}
.location-grid img {
  aspect-ratio:3/4;
  object-fit:cover
}
.location-grid h3 {
  font-family:var(--serif);
  font-size:22px;
  margin-top:21px
}
.location-grid p {
  margin-top:8px
}
.location-note {
  font-size:12px;
  border-top:1px solid var(--line);
  padding-top:22px;
  margin-top:35px;
  color:var(--muted)
}
.vows {
  background:var(--ivory);
  max-width:none;
  text-align:center
}
.vows>p {
  max-width:720px;
  margin:auto;
  font-size:13px
}
.steps {
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 60px
}
.steps li {
  display:flex;
  gap:23px;
  border-top:1px solid var(--line);
  padding:24px 0 29px
}
.step-number {
  font-family:Georgia,serif;
  color:var(--gold);
  font-size:25px;
  line-height:1.4
}
.steps h3 {
  font-size:15px
}
.steps p {
  font-size:12px;
  color:var(--muted);
  margin-top:8px
}
.timeline-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
  margin-top:28px
}
.timeline-grid>div {
  padding:30px;
  background:var(--ivory)
}
.timeline-grid h3 {
  font:16px Georgia,serif;
  letter-spacing:.07em;
  color:var(--gold);
  margin-bottom:14px
}
.timeline-grid p {
  font-size:12px
}
.inclusions {
  padding-top:30px
}
.inclusions table {
  border-collapse:collapse;
  width:100%;
  font-size:12px;
  text-align:left
}
.inclusions caption {
  text-align:left;
  margin-bottom:18px;
  font-size:12px;
  color:var(--muted)
}
.inclusions th,.inclusions td {
  padding:19px 22px;
  border-bottom:1px solid var(--line)
}
.inclusions thead {
  background:var(--ivory)
}
.inclusions th {
  font-weight:500;
  width:46%
}
.inclusions>.small {
  margin-top:23px
}
.team {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  border-top:1px solid var(--line);
  padding-top:70px;
  padding-bottom:70px
}
.team p {
  font-size:13px
}
.team-links {
  display:flex;
  flex-wrap:wrap;
  gap:25px;
  margin-top:25px
}
.faq {
  padding-top:30px
}
.faq-list {
  max-width:900px;
  margin:auto
}
.faq details {
  border-top:1px solid var(--line)
}
.faq details:last-child {
  border-bottom:1px solid var(--line)
}
.faq summary {
  display:flex;
  justify-content:space-between;
  gap:25px;
  padding:24px 8px;
  list-style:none;
  cursor:pointer;
  font-size:13px
}
.faq summary::-webkit-details-marker {
  display:none
}
.faq summary .icon {
  color:var(--gold);
  flex-shrink:0
}
.faq details[open] summary .icon {
  transform:rotate(45deg)
}
.faq details>p {
  font-size:12px;
  color:var(--muted);
  padding:0 38px 25px 8px;
  margin:0
}
.inquiry {
  display:grid;
  grid-template-columns:1fr 1fr;
  background:var(--ivory);
  max-width:1680px;
  margin:auto
}
.inquiry-photo img {
  height:100%;
  max-height:700px;
  object-fit:cover;
  object-position:center 30%
}
.inquiry-copy {
  padding:70px 13%;
  align-self:center
}
.inquiry-copy h2 {
  margin:24px 0
}
.inquiry-copy>p:not(.eyebrow) {
  font-size:13px
}
.inquiry-copy>.button {
  margin-top:28px
}
.inquiry-copy>p.small {
  font-size:11px;
  margin-top:15px
}
.terms {
  max-width:920px;
  padding-top:60px;
  padding-bottom:60px;
  text-align:center
}
.terms h2 {
  font-size:23px;
  margin-bottom:20px
}
.terms>p {
  font-size:12px;
  color:var(--muted)
}
.site-footer {
  padding:35px 4.5%;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  font-size:10px;
  color:var(--muted)
}
.site-footer .wordmark>span {
  font-size:23px
}
.mobile-inquiry {
  display:none
}
.lightbox {
  border:0;
  padding:0;
  background:#1e1e1e;
  color:white;
  width:100vw;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0
}
.lightbox::backdrop {
  background:#1e1e1e
}
.lightbox[open] {
  display:grid;
  grid-template-columns:65px 1fr 65px;
  grid-template-rows:65px 1fr
}
.lightbox-bar {
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 25px
}
.lightbox button {
  background:transparent;
  border:0;
  color:white;
  font-size:26px;
  cursor:pointer;
  min-width:44px;
  min-height:44px
}
.lightbox-count {
  font-size:12px;
  letter-spacing:.13em
}
.lightbox-stage {
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  padding-bottom:20px
}
.lightbox-stage img {
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain
}
.gallery-error {
  position:absolute;
  background:#1e1e1e;
  padding:20px;
  font-size:14px
}
.gallery-prev,.gallery-next {
  align-self:center
}
.lightbox-stage img:not([src]) {
  display:none
}
body.gallery-open {
  overflow:hidden
}
@media(min-width:1700px) {
  .hero-copy {
    padding-left:100px
  }
}
@media(max-width:1100px) {
  .site-header nav {
    gap:18px
  }
  .header-contact {
    display:none
  }
  .hero-copy {
    padding:48px 10%
  }
  .hero {
    min-height:580px
  }
  .section {
    padding:70px 40px
  }
  .intro {
    gap:45px
  }
  .feature-copy {
    padding-left:40px
  }
  .option-section,.team {
    gap:45px
  }
  .plan-body {
    padding:20px
  }
  .plan-body>.eyebrow {
    letter-spacing:.08em
  }
  .inquiry-copy {
    padding:50px 11%
  }
}
@media(max-width:900px) {
  .site-header nav {
    display:none
  }
  .menu-toggle {
    display:block
  }
  :root {
    --header-height:88px
  }
  .mobile-nav {
    top:var(--header-height)
  }
  .hero-copy {
    padding:40px 9%
  }
  .hero h1 {
    font-size:28px
  }
  .hero-intro {
    font-size:12px
  }
  .hero-copy .button {
    font-size:11px;
    gap:16px;
    padding:13px 17px
  }
  .hero-copy .micro {
    font-size:10px
  }
  .section {
    padding:65px 30px
  }
  .plan-grid {
    gap:15px
  }
  .plan-body {
    padding:18px
  }
  .duration {
    font-size:38px
  }
  .duration span {
    font-size:10px;
    display:block;
    margin:0
  }
  .plan-body>p[data-copy-id] {
    font-size:11px
  }
  .feature-copy {
    padding-left:30px
  }
  .feature-copy .section-heading h2 {
    font-size:25px
  }
  .story-gallery {
    gap:12px
  }
  .inquiry-copy {
    padding:40px 9%
  }
  .site-footer {
    gap:20px
  }
  .site-footer a {
    line-height:1.7
  }
}
@media(max-width:700px) {
  :root {
    --header-height:78px;
    scroll-padding-top:calc(var(--header-height) + 16px)
  }
  body {
    font-size:14px;
    padding-bottom:76px
  }
  .site-header {
    height:var(--header-height);
    padding:15px 6%;
    gap:14px
  }
  .wordmark>span {
    font-size:23px
  }
  .wordmark small {
    font-size:6px;
    margin-top:5px;
    letter-spacing:.18em
  }
  .header-actions {
    gap:16px
  }
  .languages {
    font-size:10px;
    gap:7px
  }
  .menu-toggle {
    width:32px;
    padding:4px
  }
  .mobile-nav {
    top:var(--header-height)
  }
  .hero {
    display:flex;
    flex-direction:column;
    min-height:0
  }
  .hero-photo {
    order:-1;
    max-height:none;
    width:100%;
    height:clamp(420px,115vw,650px)
  }
  .hero-photo img {
    object-position:center 43%;
    aspect-ratio:auto
  }
  .hero-copy {
    padding:37px 7% 46px;
    display:block
  }
  .hero-copy .eyebrow {
    font-size:9px;
    margin-bottom:18px
  }
  .hero h1 {
    font-size:29px;
    line-height:1.75;
    max-width:420px;
    letter-spacing:.02em
  }
  .hero-rule {
    margin:20px 0
  }
  .hero-intro {
    font-size:13px;
    max-width:100%;
    line-height:2.05
  }
  .hero-copy .button {
    font-size:12px;
    margin-top:23px;
    min-height:54px;
    width:100%
  }
  .hero-copy .micro {
    font-size:10px
  }
  .hero-copy .text-link {
    margin-top:22px
  }
  .photo-credit {
    bottom:15px;
    right:12px;
    font-size:7px
  }
  .section {
    padding:53px 7%
  }
  h2 {
    font-size:25px;
    line-height:1.8
  }
  .section-heading {
    margin-bottom:24px
  }
  .section-heading .eyebrow {
    font-size:9px;
    margin-bottom:12px
  }
  .intro {
    display:block
  }
  .intro .section-heading {
    margin-bottom:25px
  }
  .intro>div>p {
    font-size:13px
  }
  .intro>div>p.small {
    font-size:11px
  }
  .trust-points {
    gap:10px 18px;
    font-size:8px
  }
  .section-lead {
    font-size:12px;
    margin-bottom:26px
  }
  .stories>.section-heading,.plans>.section-heading,.locations>.section-heading,.process>.section-heading,.faq>.section-heading {
    text-align:left
  }
  .stories>.section-lead,.plans>.section-lead,.locations>.section-lead,.process>.section-lead {
    text-align:left
  }
  .story-gallery {
    grid-template-columns:1fr 1fr;
    gap:9px
  }
  .story-gallery .tall {
    grid-row:auto;
    aspect-ratio:2/3
  }
  .story-gallery .photo:nth-child(2) {
    aspect-ratio:2/3
  }
  .story-gallery .wide {
    aspect-ratio:1.5/1
  }
  .story-caption {
    gap:15px;
    font-size:9px;
    letter-spacing:.02em;
    align-items:flex-start
  }
  .story-caption>span:last-child {
    text-align:right
  }
  .plan-grid {
    grid-template-columns:1fr;
    gap:27px
  }
  .plan-card>picture {
    aspect-ratio:1.5/1
  }
  .plan-body {
    padding:26px
  }
  .duration {
    font-size:45px;
    margin:12px 0
  }
  .duration span {
    display:inline;
    font-size:11px;
    margin-left:14px
  }
  .plan-body>.eyebrow {
    font-size:10px
  }
  .plan-body>p[data-copy-id] {
    font-size:13px;
    flex:none
  }
  .plan-body>.small {
    font-size:11px
  }
  .plan-body>.text-link {
    font-size:12px;
    margin-top:18px
  }
  .price {
    font-size:27px
  }
  .feature {
    display:flex;
    flex-direction:column;
    gap:30px
  }
  .feature-photo .photo {
    max-height:580px;
    aspect-ratio:4/5
  }
  .feature-copy {
    padding:0
  }
  .option-section {
    display:block;
    padding-top:40px;
    padding-bottom:40px
  }
  .option-section .section-heading {
    margin-bottom:22px
  }
  .location-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .location-grid article {
    display:grid;
    grid-template-columns:42% 1fr;
    grid-template-rows:auto 1fr;
    gap:0 22px
  }
  .location-grid img {
    grid-row:1/3;
    aspect-ratio:3/4;
    height:100%;
    min-height:180px
  }
  .location-grid h3 {
    font-size:20px;
    margin-top:5px
  }
  .location-grid p {
    font-size:11px;
    margin-top:12px
  }
  .location-note {
    font-size:11px;
    margin-top:28px
  }
  .vows {
    text-align:left
  }
  .steps {
    display:block
  }
  .steps li {
    gap:22px;
    padding:22px 0
  }
  .steps h3 {
    font-size:14px
  }
  .steps p {
    font-size:12px
  }
  .timeline-grid {
    grid-template-columns:1fr;
    gap:15px;
    margin-top:22px
  }
  .timeline-grid>div {
    padding:25px
  }
  .inclusions {
    padding-top:20px
  }
  .inclusions th,.inclusions td {
    padding:15px 10px;
    font-size:11px
  }
  .inclusions th {
    width:44%
  }
  .inclusions caption {
    font-size:11px
  }
  .team {
    display:block
  }
  .team-links {
    gap:24px;
    align-items:flex-start;
    flex-direction:column
  }
  .faq {
    padding-top:25px
  }
  .faq summary {
    font-size:13px;
    padding:22px 0;
    gap:18px
  }
  .faq details>p {
    padding:0 23px 22px 0
  }
  .inquiry {
    display:block
  }
  .inquiry-photo {
    height:360px;
    overflow:hidden
  }
  .inquiry-photo img {
    object-position:center 35%
  }
  .inquiry-copy {
    padding:42px 7% 48px
  }
  .inquiry-copy h2 {
    font-size:25px
  }
  .inquiry-copy .button {
    width:100%
  }
  .terms {
    padding-top:40px;
    padding-bottom:40px
  }
  .terms h2 {
    font-size:21px
  }
  .terms>p {
    font-size:11px
  }
  .site-footer {
    padding:30px 7%;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px
  }
  .site-footer .wordmark {
    align-items:flex-start
  }
  .site-footer p {
    text-align:right
  }
  .site-footer>a:last-child {
    text-align:right
  }
  .mobile-inquiry {
    display:block;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    padding:9px 6% max(9px,env(safe-area-inset-bottom));
    background:#fffffff2;
    backdrop-filter:blur(8px);
    z-index:25;
    border-top:1px solid var(--line)
  }
  .mobile-inquiry>.button {
    width:100%;
    min-height:45px;
    padding:10px 18px;
    font-size:12px
  }
  .lightbox[open] {
    grid-template-columns:44px 1fr 44px;
    grid-template-rows:60px 1fr
  }
  .lightbox-bar {
    padding:0 12px
  }
  .lightbox-stage {
    padding-bottom:max(20px,env(safe-area-inset-bottom))
  }
  .lightbox button {
    font-size:23px
  }
}
@media(prefers-reduced-motion:reduce) {
  :root {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }
}
/* Keep Japanese bridal terms together instead of breaking inside a word. */
:lang(ja) .hero h1 {
  font-size:clamp(27px,2.15vw,37px);
  letter-spacing:.01em
}
.title-line {
  display:block;
  white-space:nowrap
}
@media(max-width:1100px) and (min-width:701px) {
  :lang(ja) .hero h1 {
    font-size:clamp(20px,2.45vw,27px)
  }
}
@media(max-width:700px) {
  :lang(ja) .hero h1 {
    font-size:clamp(20px,6.15vw,29px)
  }
}

/* Original logo and a readable descriptor in one horizontal composition. */
.wordmark {
  flex-direction:row;
  align-items:center;
  gap:18px;
}
.wordmark .brand-logo {
  width:68px;
  height:auto;
  flex-shrink:0;
}
.wordmark small {
  margin:0;
  white-space:nowrap;
  font-size:13px;
  line-height:1.5;
  letter-spacing:.12em;
  color:var(--ink);
}
.site-footer .wordmark .brand-logo { width:60px; }
.site-footer .wordmark small { font-size:11px; }
@media (max-width:1100px) {
  .wordmark { gap:13px; }
  .wordmark small { font-size:11px; letter-spacing:.08em; }
}
@media (max-width:700px) {
  .wordmark { gap:11px; }
  .wordmark .brand-logo { width:52px; }
  .wordmark small { font-size:10px; letter-spacing:.08em; }
  .header-actions { gap:12px; }
  .site-footer .wordmark { grid-column:1 / -1; }
  .site-footer .wordmark .brand-logo { width:56px; }
  .site-footer .wordmark small { font-size:12px; }
  .site-footer p { text-align:left; }
}
@media (max-width:360px) {
  .site-header { padding-left:5%; padding-right:5%; gap:9px; }
  .wordmark { gap:8px; }
  .wordmark .brand-logo { width:46px; }
  .wordmark small { font-size:9px; letter-spacing:.03em; }
  .header-actions { gap:8px; }
}

/* Wedding day coverage is a distinct service beside the photoshoot plans. */
.wedding-day-card {
  max-width:1152px;
  margin:28px auto 0;
  padding:36px;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:45px;
  background:var(--paper);
  border-top:2px solid var(--sand);
}
.wedding-day-card h3 { font-family:var(--serif); font-size:25px; margin:13px 0 16px; }
.wedding-day-card p:not(.eyebrow):not(.price) { font-size:13px; max-width:700px; }
.wedding-day-action { display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.wedding-day-action .price { margin:0; }
@media(max-width:900px) {
  .wedding-day-card { grid-template-columns:1fr; gap:24px; padding:28px; }
  .wedding-day-action { flex-direction:row; align-items:center; flex-wrap:wrap; gap:24px; }
}
@media(max-width:700px) {
  .wedding-day-card { padding:26px; }
  .wedding-day-card h3 { font-size:23px; }
  .wedding-day-action { align-items:flex-start; flex-direction:column; gap:18px; }
  .wedding-day-action .button { width:100%; }
}

/* Picture sources share the exact display box with their fallback image. */
picture { display:block; }
.hero-photo>picture, .photo>picture, .inquiry-photo>picture { width:100%; height:100%; }
.plan-card>picture { overflow:hidden; }
.plan-card>picture>img { height:100%; object-fit:cover; }
@media(max-width:700px) { .location-grid picture { grid-row:1 / 3; } }

/* The Shoko & Masafumi collection is portrait-led: preserve gowns and veils. */
.story-gallery .photo { aspect-ratio:2 / 3; }
.plan-card>picture { aspect-ratio:2 / 3; }
@media(max-width:700px) {
  .story-gallery .photo, .story-gallery .photo:nth-child(2) { aspect-ratio:2 / 3; }
}

/* Two cinematic photo interludes, closer to the main DiaFoto wedding site. */
.photo-banner {
  background:#1e1e1e;
  color:#ffffff;
}
.photo-banner-inner {
  max-width:1680px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.parallax-frame {
  --parallax-distance:64px;
  position:relative;
  display:block;
  width:100%;
  min-height:680px;
  padding:0;
  border:0;
  overflow:hidden;
  background:#1e1e1e;
  cursor:zoom-in;
}
.parallax-image {
  position:absolute;
  display:block;
  inset:-74px 0;
  will-change:transform;
}
.parallax-image picture, .parallax-image img { width:100%; height:100%; }
.parallax-image img { object-fit:cover; object-position:center 63%; }
.banner-copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:65px clamp(36px,6vw,100px);
}
.banner-copy .eyebrow { color:#e5c8cc; margin-bottom:32px; font-size:9px; }
.banner-copy h2 { max-width:480px; font-size:clamp(29px,3vw,48px); line-height:1.6; }
.banner-description { max-width:390px; margin-top:28px; font-size:13px; color:#e5e5e5; }
.photo-banner--reverse { background:#fbf1f2; color:var(--ink); }
.photo-banner--reverse .parallax-frame { order:2; }
.photo-banner--reverse .banner-copy { order:1; }
.photo-banner--reverse .eyebrow { color:#656565; }
.photo-banner--reverse .banner-description { color:#656565; }
.plan-card .plan-body { padding:34px 28px; border-top:1px solid var(--sand); }
.location-grid { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:900px; margin:0 auto; gap:45px; }
@media(max-width:900px) {
  .parallax-frame { min-height:570px; }
  .banner-copy { padding:40px 30px; }
  .banner-copy h2 { font-size:29px; }
}
@media(max-width:700px) {
  .photo-banner-inner { position:relative; display:block; }
  .parallax-frame { --parallax-distance:36px; min-height:510px; height:75svh; max-height:760px; }
  .parallax-image { inset:-42px 0; }
  .parallax-frame::after {
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(30,30,30,.6),rgba(30,30,30,.12) 40%,transparent 65%);
  }
  .banner-copy, .photo-banner--reverse .banner-copy {
    position:absolute;
    top:0;
    left:0;
    right:0;
    padding:36px 8%;
    color:white;
    pointer-events:none;
  }
  .banner-copy .eyebrow, .photo-banner--reverse .eyebrow { color:#ffffff; margin-bottom:16px; font-size:8px; }
  .banner-copy h2 { max-width:340px; font-size:29px; line-height:1.7; text-shadow:0 1px 12px #0004; }
  .banner-description { display:none; }
  .location-grid { grid-template-columns:1fr; gap:30px; }
}
@media(prefers-reduced-motion:reduce) {
  .parallax-image { will-change:auto; transform:none!important; }
}

.feature-photo .photo { aspect-ratio:2 / 3; }

@media(max-width:700px) { .banner-copy h2 { font-size:clamp(22px,7vw,29px); } }

/* R1: shared readable type, DiaFoto-style photo hero and one icon vocabulary. */
.icon {
  display:inline-block;
  width:20px;
  height:20px;
  flex:0 0 auto;
  vertical-align:middle;
}
.button { font-size:15px; }
.button>.icon { width:18px; height:18px; }
.text-link { font-size:15px; }
.header-contact { display:inline-flex; align-items:center; gap:12px; font-size:14px; }
.menu-toggle .icon { width:24px; height:24px; }
.menu-toggle [data-icon="heroicons/x-mark"] { display:none; }
.menu-toggle[aria-expanded="true"] [data-icon="heroicons/bars-3"] { display:none; }
.menu-toggle[aria-expanded="true"] [data-icon="heroicons/x-mark"] { display:block; }
.lightbox button { display:grid; place-items:center; }
.lightbox button .icon { width:26px; height:26px; }
.zoom-mark { display:grid; place-items:center; width:18px; height:18px; }
.zoom-mark .icon { width:11px; height:11px; }

.wordmark small {
  font-family:var(--sans);
  font-weight:600;
  font-size:16px;
  letter-spacing:.12em;
}
.site-header nav { font-size:14px; }
.languages { font-size:14px; }
:is(.eyebrow,.section-heading .eyebrow,.banner-copy .eyebrow,.photo-banner--reverse .eyebrow,.inquiry-copy>.eyebrow,.trust-points,.story-caption) {
  font-family:var(--sans);
  font-size:var(--label-size);
  font-weight:500;
  line-height:1.6;
  letter-spacing:.08em;
}
.story-note { font-size:18px; line-height:1.8; color:var(--muted); }
:is(.small,.micro,.feature-copy>p,.option-section>div>p:first-child,.banner-description,.steps p,.timeline-grid p,.team p,.faq details>p,.terms>p,.wedding-day-card p:not(.eyebrow):not(.price),.inquiry-copy>p:not(.eyebrow),.inquiry-copy>p.small) { font-size:var(--compact-size); }
.plan-body>.eyebrow { font-family:var(--sans); font-size:18px; font-weight:500; letter-spacing:.04em; line-height:1.55; }
.plan-body>p[data-copy-id] { font-size:16px; line-height:1.9; }
.plan-body>.text-link { font-size:15px; }
.duration span { font-family:var(--sans); font-size:var(--label-size); }
.duration,.price,.step-number { font-family:var(--serif); }
.site-footer { flex-wrap:wrap; font-family:Manrope,'Noto Sans JP','Hiragino Kaku Gothic ProN',Arial,sans-serif; font-size:var(--footer-size); font-weight:400; font-style:normal; line-height:1.6; letter-spacing:.025em; }
.site-footer>a:not(.wordmark) { display:inline-flex; gap:10px; align-items:center; }
.site-footer .wordmark small { font-family:inherit; font-size:var(--footer-size); font-weight:400; font-style:normal; letter-spacing:.04em; }
.inclusions table,.inclusions caption,.inclusions>.small { font-size:14.4px; }
.inclusions h2 { font-size:43.2px; }

.hero {
  display:block;
  position:relative;
  isolation:isolate;
  max-width:none;
  height:calc(100svh - 104px);
  min-height:560px;
  max-height:960px;
  color:white;
  overflow:hidden;
}
.hero-photo { position:absolute; inset:0; height:100%; max-height:none; z-index:-2; }
.hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(30,30,30,.58),transparent 68%),linear-gradient(0deg,rgba(30,30,30,.62),transparent 65%); pointer-events:none; }
.hero-photo img { width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:50% 62%; }
.hero-copy { position:absolute; left:5vw; right:5vw; bottom:6%; max-width:1000px; padding:0; display:flex; }
.hero-copy .eyebrow { font-size:var(--label-size); margin-bottom:18px; color:#ffffff; }
:lang(ja) .hero h1,.hero h1 { font-size:clamp(36px,4.6vw,76px); line-height:1.35; letter-spacing:.025em; max-width:100%; }
.hero h1 .title-line { white-space:normal; }
.hero h1 .title-line:last-child { font-size:.72em; margin-top:8px; }
.hero-copy .button { margin-top:24px; font-size:15px; }
.hero-copy .micro { font-size:14px; color:#ffffff; }
.hero-copy .text-link { color:white; border-color:#e5c8cc; margin-top:18px; font-size:14px; }
.hero-introduction { max-width:1050px; padding:40px 5vw; margin:auto; }
.hero-introduction .hero-intro { max-width:none; font-size:17px; line-height:1.95; }
.photo-credit { font-family:var(--sans); font-size:var(--label-size); }
.timeline-grid h3 { font-family:var(--sans); font-size:var(--label-size); font-weight:500; }

@media(min-width:701px) and (max-width:1100px) {
  .site-header { gap:18px; }
  .site-header nav { gap:18px; font-size:12px; }
  .header-contact { display:none; }
  .wordmark small { font-size:13px; letter-spacing:.07em; }
  .hero-copy { max-width:80vw; }
  .hero-copy .eyebrow { font-size:14px; }
  .hero h1 .title-line:last-child { font-size:.65em; }
  .site-footer { gap:24px; }
}
@media(max-width:900px) { .hero { height:calc(100svh - 88px); } }
@media(max-width:700px) {
  :root { --label-size:14px; --compact-size:14px; }
  .site-header { gap:12px; }
  .site-header .wordmark { min-width:0; flex-shrink:1; }
  .site-header .wordmark small { white-space:normal; text-wrap:balance; }
  .site-header .header-actions { flex-shrink:0; }
  .wordmark small { font-size:11px; letter-spacing:.08em; }
  .languages { font-size:12px; }
  .header-contact { display:none; }
  .hero { height:76svh; min-height:520px; max-height:720px; }
  .hero-photo { position:absolute; height:100%; }
  .hero-photo img { object-position:50% 43%; }
  .hero-photo::after { background:linear-gradient(0deg,rgba(30,30,30,.82),transparent 70%); }
  .hero-copy { left:7%; right:7%; bottom:30px; display:flex; max-width:none; }
  .hero-copy .eyebrow,.hero-copy .micro,.hero-copy .text-link { display:none; }
  :lang(ja) .hero h1,.hero h1 { font-size:clamp(27px,7vw,36px); line-height:1.5; }
  .hero h1 .title-line:last-child { font-size:.72em; }
  .hero-copy .button { width:auto; max-width:100%; padding:12px 16px; margin-top:18px; gap:14px; font-size:13px; }
  .hero-introduction { padding:30px 7%; }
  .hero-introduction .hero-intro { font-size:14px; line-height:2; }
  .photo-credit { top:18px; bottom:auto; }
  .story-note { font-size:15px; }
  .plan-body>.eyebrow { font-size:16px; }
  .plan-body>p[data-copy-id] { font-size:14px; }
  .plan-body>.text-link { font-size:14px; }
  .inclusions th,.inclusions td,.inclusions caption,.inclusions>.small { font-size:13.2px; }
  .inclusions h2 { font-size:30px; }
  .site-footer { display:flex; flex-direction:column; align-items:flex-start; gap:22px; font-size:var(--footer-size); }
  .site-footer .wordmark small { font-size:12px; white-space:normal; }
  .site-footer>a:last-child { text-align:left; }
}
@media(max-width:360px) {
  .wordmark small { font-size:10px; letter-spacing:.03em; }
  .header-actions { gap:7px; }
}

/* Owner Mobile R2: photographic beauty break and a real team portrait. */
.beauty-section {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  width:100%;
  margin:0 auto;
  border-top:1px solid var(--line);
}
.beauty-visual { position:relative; aspect-ratio:3/4; overflow:hidden; }
.beauty-visual>picture { width:100%; height:100%; }
.beauty-visual img { width:100%; height:100%; object-fit:cover; object-position:60% 32%; }
.beauty-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(30,30,30,.72),transparent 65%); pointer-events:none; }
.beauty-overlay { position:absolute; inset:auto 0 0; z-index:1; padding:40px 8%; color:white; }
.beauty-overlay .section-heading { margin:0; }
.beauty-overlay .section-heading .eyebrow,.beauty-overlay h2 { color:white; }
.beauty-overlay h2 { font-size:clamp(25px,2.2vw,36px); line-height:1.6; }
.beauty-copy { align-self:center; padding:48px 12%; font-size:var(--compact-size); line-height:2; }
.team { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:36px 70px; }
.team>.section-heading { grid-column:1/-1; margin:0; }
.team-portrait { margin:0; width:100%; max-width:360px; }
.team-portrait picture { width:100%; aspect-ratio:4/5; }
.team-portrait img { width:100%; height:100%; object-fit:cover; }
.team-portrait figcaption { margin-top:12px; font-size:14px; color:var(--muted); }
.team-copy { align-self:center; }
@media(max-width:700px) {
  .hero-copy .button { display:none; }
  .beauty-section { display:block; max-width:none; }
  .beauty-visual { width:100%; aspect-ratio:3/2; }
  .beauty-overlay { padding:22px 7%; }
  .beauty-overlay .eyebrow { margin-bottom:8px; }
  .beauty-overlay h2 { font-size:25px; }
  .beauty-copy { padding:28px 7% 40px; }
  .location-grid article { display:block; }
  .location-grid picture { grid-row:auto; }
  .location-grid img { width:100%; height:auto; min-height:0; aspect-ratio:2/3; }
  .location-grid h3 { margin-top:18px; }
  .location-grid p { margin-top:12px; }
  .team { display:block; }
  .team>.section-heading { margin-bottom:24px; }
  .team-portrait { max-width:none; margin-bottom:24px; }
}


/* Owner R3: main DiaFoto white/blush/charcoal palette; full-size photo features. */
/* Shared JP/KR testimonials: WowDress editorial rhythm, DiaFoto palette. */
.client-reviews {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
  gap:64px;
  border-top:1px solid var(--line);
}
.reviews-heading { align-self:start; position:sticky; top:calc(var(--header-height) + 16px); min-width:0; }
.reviews-heading .eyebrow { margin-bottom:17px; }
.reviews-note { margin-top:22px; font-size:13px; color:var(--muted); }
.review-stack { min-width:0; }
.review-stack blockquote { margin:0; padding:32px 0; border-top:1px solid var(--line); }
.review-stack blockquote>p { font-family:var(--serif); font-size:clamp(21px,1.7vw,27px); line-height:1.85; letter-spacing:.025em; overflow-wrap:anywhere; }
.review-stack footer { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-top:24px; font-size:13px; }
.review-stack footer b { font-weight:500; letter-spacing:.1em; white-space:nowrap; }
.review-stack footer a { display:inline-flex; align-items:center; gap:8px; color:var(--muted); }
.review-stack .all-reviews { margin-top:0; gap:18px; font-size:14px; }
.review-stack a:hover { color:var(--ink); }
.review-stack a .icon { flex-shrink:0; }
@media(max-width:1180px) {
  .client-reviews { grid-template-columns:minmax(0,1fr); gap:28px; }
  .reviews-heading { position:static; }
}
@media(max-width:700px) {
  .client-reviews { padding-top:52px; padding-bottom:52px; }
  .review-stack blockquote { padding:26px 0; }
  .review-stack blockquote>p { font-size:21px; }
  .review-stack footer a { min-height:44px; }
  .reviews-note { margin-top:14px; }
}
/* Palette measured from diafotoweddings.com on 2026-11-09, receipt in state/japan-r3. */
@media(min-width:701px) {
  [data-section="photo-banner-veil"] .photo-banner-inner { max-width:none; width:100%; }
  [data-section="photo-banner-veil"] .parallax-frame { min-height:680px; height:100svh; }
}
@media(min-width:1200px) {
  .team { max-width:1640px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .team-portrait { max-width:720px; }
}

/* Structured wedding and outfit prices. */
.wedding-day-card { display:block; font-family:'Noto Sans JP',sans-serif; }
html[lang="ko"] .wedding-day-card { font-family:'Noto Sans KR',sans-serif; }
html[lang="zh-Hans"] .wedding-day-card { font-family:'Noto Sans SC',sans-serif; }
.wedding-day-card .button,.wedding-day-card .eyebrow,.wedding-day-card h3,.wedding-day-card h4 { font-family:inherit; }
.wedding-prices,.wedding-delivery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(22px,5vw,64px); }
.wedding-detail { margin-top:28px; }
.wedding-prices section { border-top:1px solid #c9c0b8; padding-top:17px; }
.wedding-day-card h4 { font-size:20px; font-weight:500; margin:0 0 8px; letter-spacing:.02em; }
.wedding-day-card .wedding-meta { margin:0 0 13px; color:#70665e; font-size:15px !important; }
.wedding-prices dl { margin:0; }
.wedding-prices dl div,.outfit-offer-heading { display:flex; justify-content:space-between; gap:16px; align-items:baseline; }
.wedding-prices dl div { padding:8px 0; border-bottom:1px solid #ded8d2; font-size:16px; }
.wedding-prices dt { min-width:0; }
.wedding-prices dd,.outfit-price { margin:0; white-space:nowrap; font-variant-numeric:tabular-nums; font-family:var(--serif); font-size:clamp(19px,2vw,25px); font-weight:400; letter-spacing:.03em; }
.wedding-day-card .wedding-note { margin:20px 0 0; line-height:1.9; color:#625b55; font-size:15px !important; }
.wedding-delivery { margin-top:32px; border-top:1px solid #c9c0b8; padding-top:20px; }
.wedding-delivery-grid { margin-top:17px; }
.wedding-delivery h5 { font-size:16px; font-weight:600; margin:0 0 8px; }
.wedding-delivery ul { padding-left:1.2em; margin:0; line-height:1.9; font-size:15px; }
.wedding-day-action { margin-top:27px; }
.outfit-offers { margin:24px 0; border-top:1px solid #c9c0b8; }
.outfit-offer { padding:17px 0; border-bottom:1px solid #ded8d2; }
.outfit-offer h3 { font-family:var(--sans); font-size:17px; font-weight:500; margin:0; }
.outfit-offer p { font-size:15px; line-height:1.8; margin:8px 0 0; }
@media(max-width:700px) {
 .wedding-prices,.wedding-delivery-grid { grid-template-columns:1fr; gap:24px; }
 .wedding-delivery { margin-top:26px; }
 .wedding-prices dl div { font-size:15px; }
 .wedding-day-action .button { font-size:14px; padding-left:16px; padding-right:16px; }
 .outfit-offer h3 { font-size:16px; }
}
.beauty-offer { font-size:16px; line-height:1.8; }
.beauty-offer p { margin:0; }
.beauty-offer-price { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-top:24px; padding:16px 0; border-top:1px solid #c9c0b8; border-bottom:1px solid #ded8d2; }
.beauty-offer-price h3 { margin:0; font-family:var(--sans); font-size:17px; font-weight:500; }
.beauty-offer .beauty-offer-included { margin:12px 0 20px; font-size:15px; }
@media(max-width:700px) { .beauty-offer { font-size:15px; } .beauty-offer-price h3 { font-size:16px; } }

:root {
  --serif:Baskerville,'Baskerville Old Face','Hoefler Text',Palatino,Georgia,'Noto Serif SC','Songti SC',serif;
  --sans:Inter,'Helvetica Neue','Noto Sans SC','PingFang SC',sans-serif;
}
html:lang(zh-Hans) { line-break:strict; word-break:normal; overflow-wrap:anywhere; }
.site-footer,.site-footer .wordmark small { font-family:Manrope,Inter,'Noto Sans SC',sans-serif; }

/* CN owner review R2/R3: expose the photograph, shade only behind the copy. */
html:lang(zh-Hans) .hero-photo img { object-position:50% 50%; }
html:lang(zh-Hans) .hero-photo::after {
  inset:auto auto 0 0;
  width:min(1100px,85%);
  height:70%;
  background:radial-gradient(ellipse at bottom left,rgba(20,20,20,.78),rgba(20,20,20,.40) 40%,transparent 75%);
}
@media(max-width:700px) {
  html:lang(zh-Hans) .hero-photo img { object-position:50% 43%; }
  html:lang(zh-Hans) .hero-photo::after {
    width:100%;
    height:230px;
    max-height:42%;
    background:linear-gradient(0deg,rgba(20,20,20,.76),rgba(20,20,20,.38) 45%,transparent);
  }
}

/* R4: keep the two desktop columns, extend the street banner to both edges. */
html:lang(zh-Hans) [data-section="photo-banner-streets"] .photo-banner-inner { max-width:none; }
@media(max-width:700px) {
  html:lang(zh-Hans) [data-section="photo-banner-streets"] .banner-copy {
    position:static;
    padding:34px 7% 40px;
    color:var(--ink);
  }
  html:lang(zh-Hans) [data-section="photo-banner-streets"] .parallax-frame::after { display:none; }
  html:lang(zh-Hans) [data-section="photo-banner-streets"] .banner-copy .eyebrow { color:#656565; }
  html:lang(zh-Hans) [data-section="photo-banner-streets"] .banner-description { display:block; color:#656565; }
}
