/* Art direction layer: shared tokens and interaction styles remain in main.css. */
:root {--font-display:clamp(38px,4.7vw,64px);--space-section:clamp(64px,8vw,112px)}
.channel-icon {width:20px;height:20px;flex:0 0 20px;object-fit:contain}
.button {gap:12px}
.button>.channel-icon {margin:0}
.calendar-icon {flex:0 0 18px}
.contact .channel-icon,.editorial-footer .channel-icon {filter:invert(93%) sepia(9%) saturate(150%)}
.button:disabled .channel-icon {opacity:.75}
.atmosphere {display:block;position:absolute;inset:0;pointer-events:none}
.atmosphere img {width:100%;height:100%;object-fit:cover}

/* A large typographic signature meets a photographic, layered composition. */
.editorial-hero {position:relative;isolation:isolate;display:grid;grid-template-columns:1.04fr 1fr;max-width:1600px;margin:auto;min-height:760px}
.opening-copy {padding:54px 34px 60px max(var(--gutter),calc((100vw - 1200px)/2));position:relative;z-index:2;align-self:center}
.opening-copy>.eyebrow {font-size:9px;letter-spacing:.18em;margin-bottom:30px}
.opening-copy h1 {font:400 clamp(94px,10vw,152px)/.77 var(--serif);letter-spacing:-.045em;margin:0 0 42px;width:max-content;max-width:100%}
.opening-copy h1 em {display:block;font-weight:400;padding-left:80px;margin-top:20px}
.opening-copy h1 small {display:block;font:10px/1.5 var(--sans);letter-spacing:.4em;margin:25px 0 0 90px}
.opening-description {max-width:430px;padding-left:25px;border-left:1px solid var(--gold)}
.opening-description h2 {font-size:clamp(28px,2.5vw,36px);line-height:1.2;margin-bottom:14px;max-width:390px}
.opening-description>p {font-size:12px;max-width:370px}
.opening-description .fine {font-size:10px;margin:14px 0 0}
.opening-description .actions {margin-top:24px}
.opening-description .text-link {font-size:11px}
.opening-art {position:relative;min-width:0;overflow:hidden;background:var(--nude);margin:0 0 30px;border-left:1px solid var(--border-subtle)}
.opening-art .atmosphere {opacity:1}
.opening-art .atmosphere img {object-position:25% center;filter:contrast(1.055) brightness(.99)}
.opening-art::after {content:'';position:absolute;inset:0;background:linear-gradient(160deg,#f8f5f100,#f8f5f110);pointer-events:none}
.opening-main,.opening-detail {position:absolute;z-index:2;padding:8px;background:var(--ivory);box-shadow:0 16px 45px #29262535}
.opening-main {width:240px;left:13%;top:16%;transform:rotate(-2deg)}
.opening-detail {width:180px;right:11%;bottom:15%;transform:rotate(2deg)}
.opening-main img,.opening-detail img {width:100%;height:auto}
.opening-main figcaption,.opening-detail figcaption {padding:10px 2px 2px;font-size:8px;letter-spacing:.1em;color:var(--muted)}
.opening-signature {position:absolute;bottom:9%;left:8%;z-index:3;font:italic 30px/1 var(--serif);color:var(--gold-ink)}
.opening-location {position:absolute;top:44px;right:24px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.2em;color:var(--ink);z-index:2}
.trust {background:var(--nude);border-color:var(--border-subtle);padding-block:24px}

/* Portrait, personal story and compact facts. */
.editorial-story {grid-template-columns:.85fr 1.15fr;gap:clamp(48px,8vw,110px);align-items:start;padding-block:100px}
.editorial-story .portrait {max-width:317px;margin-top:35px;position:relative}
.editorial-story .portrait::before {content:'';position:absolute;inset:-24px 25px 65px -25px;border:1px solid var(--gold);z-index:-1}
.editorial-story .portrait-frame {padding:0;border:0;background:transparent}
.editorial-story .portrait img {aspect-ratio:317/620;object-fit:cover;object-position:center top;border-radius:0}
.editorial-story .portrait figcaption {margin-top:12px;padding-bottom:10px}
.editorial-story .section-heading h2 {max-width:480px}
.editorial-story .lead {font:400 24px/1.45 var(--serif);color:var(--ink);max-width:520px}
.story-body {display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:24px}
.story-body p {font-size:12px;line-height:1.9}
.story-body p:last-child {grid-column:1/-1;max-width:530px}
.story-facts {list-style:none;padding:18px 0 0;margin:20px 0 0;border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:10px 22px;color:var(--gold-ink);font-size:10px}
.story-facts li::before {content:'—';margin-right:6px}
.editorial-story .signature {margin-top:25px;font-size:54px}
.care-strip {background:var(--ink);color:var(--ivory)}
.care-strip .differences {padding-block:54px}
.care-strip .section-heading {display:flex;align-items:center;gap:32px;max-width:none;margin-bottom:32px}
.care-strip .eyebrow {margin:0;white-space:nowrap;color:var(--nude)}
.care-strip h2 {font-size:32px}
.care-strip .number {color:var(--gold)}
.care-strip article {border-color:#b89b7270}
.care-strip h3 {font-size:23px}
.care-strip p {color:var(--nude);font-size:11px}
.services {background:var(--surface-secondary)}
.service-layout {grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,72px)}
.service-intro h2 {font-size:clamp(42px,5vw,66px);max-width:350px}
.service-image {width:240px;padding:12px;margin-left:0;margin-top:28px;background:var(--ivory);border:1px solid var(--border-subtle);box-shadow:0 8px 24px #29262506}
.service-photo {border-radius:0}
.price-row {padding-block:17px;border-bottom-color:#b89b7266}
.price-row strong {font-size:34px}
.price-row dt {font-size:13px}

/* Natural photo proportions with asymmetric scales and a staggered rhythm. */
.gallery-section {max-width:1240px;padding-block:100px 74px}
.gallery-intro h2 {max-width:630px}
 .editorial-gallery {grid-template-columns:repeat(5,minmax(0,1fr));gap:26px 22px;align-items:start}
.editorial-gallery .gallery-item {width:100%;max-width:207px;justify-self:center;margin-top:0}
.editorial-gallery .gallery-item:nth-child(5n+2) {margin-top:24px}
.editorial-gallery .gallery-item:nth-child(5n+4) {margin-top:12px}
.editorial-gallery .gallery-wide {grid-column:span 2;max-width:426px;align-self:center}
.editorial-gallery .gallery-wide .gallery-photo img {aspect-ratio:426/283}
.editorial-gallery.is-filtered {grid-template-columns:repeat(4,minmax(0,1fr))}
.editorial-gallery.is-filtered .gallery-item {margin-top:0;width:100%;max-width:207px;grid-column:auto}
.gallery-photo {border-radius:0}
.gallery-caption {padding-top:12px;border-top:1px solid var(--border-subtle);margin-top:10px}
.editorial-quote {display:grid;grid-template-columns:minmax(0,900px);justify-content:center;align-items:center;gap:0;padding:48px var(--gutter);background:var(--nude);text-align:left}
.editorial-quote blockquote {font-size:clamp(32px,3.65vw,52px);margin:0 0 20px;max-width:800px}
.editorial-quote i {font-size:26px}
.quote-role {display:block;font-size:9px;letter-spacing:.18em;color:var(--muted);margin:8px 0 0 48px}
.credential-note {display:block;color:var(--gold-ink);font-size:11px;border-left:1px solid var(--gold);padding-left:12px;margin-bottom:24px}
.credential-backdrop {background:var(--surface-soft)}
.certification-layout {padding-block:94px;gap:70px}
.certification-layout h2 {max-width:520px}
.certificate-frame {padding:18px;background:var(--ivory);border:1px solid #b89b7280;box-shadow:0 8px 24px #29262507;height:280px}
.certificate-grid>button:last-child {margin-top:52px}
.experience {display:block;background:var(--ivory);padding-block:44px;margin-block:0;border-radius:0}
.experience-copy {display:grid;grid-template-columns:.8fr 1.2fr;gap:0 48px;max-width:none}
.experience-copy .section-heading {grid-row:span 2}
.experience-copy p {margin-bottom:0}
.experience-copy h2 {font-size:40px}
.experience-art {width:185px}
.experience-art img {border-radius:0}
.experience-art>span {display:none}

/* Two photographic pauses: one warm and centered, one dark and offset. */
.full-screen {position:relative;isolation:isolate;min-height:88svh;display:flex;align-items:center;overflow:hidden;padding:100px max(var(--gutter),calc((100vw - 1160px)/2))}
.full-screen::after {content:'';position:absolute;inset:0;z-index:-1;pointer-events:none}
.full-screen .atmosphere {z-index:-2}
.care-moment {background:var(--nude)}
.care-moment::after {background:linear-gradient(90deg,#f8f5f1eb 0%,#f8f5f1b3 40%,#f8f5f108 80%)}
.moment-copy {max-width:570px}
.moment-copy h2 {font:400 clamp(48px,5.4vw,78px)/1.04 var(--serif);letter-spacing:-.03em;margin-bottom:24px;text-wrap:balance}
.moment-copy p {font-size:14px;max-width:370px;margin-bottom:28px}
.moment-copy>.eyebrow {margin-bottom:28px}
.moment-copy .button {min-height:50px}
.moment-signature {position:absolute;bottom:32px;right:var(--gutter);font-size:9px;letter-spacing:.12em;color:var(--gold-ink)}
.expression-moment {background:var(--ink);color:var(--ivory);align-items:flex-end;justify-content:flex-end}
.expression-moment::after {background:linear-gradient(90deg,#29262505,#29262588 55%,#292625df)}
.expression-moment .moment-copy {max-width:520px;padding-bottom:30px}
.expression-moment .moment-copy p {color:var(--nude)}
.expression-moment .eyebrow,.expression-moment .moment-signature {color:var(--nude)}
.moment-work {border-color:var(--gold);color:var(--ivory);background:transparent}
.location {padding-block:68px}
.contact {padding-block:72px;background:var(--nude);color:var(--ink)}
.contact-inner {grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px)}
.contact h2 {font-size:clamp(40px,4.5vw,64px)}
.contact .eyebrow {color:var(--gold-ink)}
.contact p,.contact .fine {color:var(--muted)}
.contact .channel-icon {filter:none}
.contact .button {color:var(--ink);border-color:var(--gold)}
.contact .button:disabled {color:var(--muted);border-color:var(--border-subtle)}
.contact .button.line:disabled {background:var(--ivory);border-color:var(--gold)}
.contact .button.line:not(:disabled) {background:var(--ink);color:var(--ivory)}
.contact .button.line:not(:disabled) .channel-icon {filter:invert(1)}
.contact .instagram-channel {border-bottom:1px solid var(--gold)}
.contact .contact-options {padding:28px;border:1px solid var(--border-subtle);background:var(--surface-soft);border-radius:var(--radius)}
.contact .actions {margin:0 0 14px;gap:10px}
.contact .button {min-height:50px}
.contact .unavailable-mark {display:none}
.instagram {padding-block:48px;border-top:1px solid var(--border-subtle);gap:40px}
.instagram h2 {font-size:clamp(34px,3.5vw,48px)}
.instagram-profile {display:flex;align-items:center;gap:20px;border-block:1px solid var(--border-subtle);padding:24px 16px;min-height:104px}
.instagram-profile .channel-icon {width:30px;height:30px;flex-basis:30px}
.instagram-profile span {font:400 32px/1.2 var(--serif)}
.instagram-profile small {display:block;font:500 13px/1.6 var(--sans);letter-spacing:.02em;color:var(--muted);margin-top:8px}
.instagram-profile>span:last-child {margin-left:auto;font-size:22px}

/* An editorial close, with navigation and language selection still accessible. */
.footer-surface {background:var(--ink);color:var(--ivory)}
.editorial-footer {max-width:1280px;padding-block:68px 28px;grid-template-columns:1.2fr .75fr 1fr;gap:40px;align-items:start;border:0;position:relative}
.editorial-footer .brand {font-size:48px;width:max-content}
.editorial-footer .brand small {font-size:9px}
.editorial-footer p {color:var(--nude)}
.footer-brand {position:relative}
.editorial-footer .eyebrow {color:var(--gold);margin-bottom:16px}
.footer-navigation {display:grid;grid-template-columns:1fr 1fr;gap:0 14px;font-size:11px}
.footer-navigation .eyebrow {grid-column:1/-1}
.footer-navigation a {display:flex;align-items:center;min-height:44px}
.editorial-footer .footer-links {display:flex;flex-direction:column;align-items:start;gap:0;justify-content:start}
.editorial-footer .footer-links .button {padding:8px 0;font-size:11px;gap:12px;color:var(--ivory)}
.editorial-footer .footer-links .button:disabled {color:var(--nude)}
.footer-language {display:flex;align-items:center;gap:20px;color:var(--nude);font-size:10px;margin-top:18px}
.editorial-footer .language {color:var(--ivory)}
.editorial-footer .language option {background:var(--ink);color:var(--ivory)}
.editorial-footer .footer-bottom {color:var(--nude);border-color:#b89b7266;margin-top:10px;padding-top:24px;font-size:10px}
.footer-surface :is(a,button,select):focus-visible,.expression-moment a:focus-visible {outline-color:var(--gold)}
:lang(ja) .opening-description h2 {font-size:26px;line-height:1.7;letter-spacing:0}
:lang(ja) .editorial-story .lead {font-family:var(--serif);font-size:18px;line-height:1.9}
:lang(ja) .care-strip h2 {font-size:26px}
:lang(ja) .service-intro h2 {font-size:38px;line-height:1.6}
:lang(ja) .editorial-quote blockquote {font-size:clamp(24px,2.8vw,35px)}
:lang(ja) .moment-copy h2 {font:400 clamp(30px,3.6vw,50px)/1.6 var(--serif);letter-spacing:.01em}
:lang(ja) .contact h2 {font-size:36px;line-height:1.6}

@media(hover:hover) and (pointer:fine) {
  .footer-navigation a:hover {color:var(--gold)}
  .contact .instagram-channel:hover {color:var(--ink)}
  .moment-work:hover {color:var(--ink)}
  .editorial-footer .button:not(:disabled):hover {background:transparent;color:var(--gold)}
}
@media(max-width:1100px) {
  .editorial-hero {min-height:730px}
  .opening-copy {padding:48px 28px 48px var(--gutter)}
  .opening-copy h1 {font-size:110px}
  .opening-copy h1 em {padding-left:52px}
  .opening-copy h1 small {margin-left:60px}
  .opening-main {width:235px;left:9%;top:14%}
  .opening-detail {width:175px;right:7%;bottom:13%}
  .editorial-gallery {grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 22px}
  .editorial-gallery .gallery-wide {grid-column:auto;max-width:235px}
  .editorial-quote {gap:35px}
  .certification-layout {gap:40px}
}
@media(max-width:900px) {
  .opening-copy h1 {font-size:90px}
  .opening-description {padding-left:16px}
  .opening-description .button {padding:12px 16px;gap:8px}
  .opening-main {width:210px;left:8%}
  .opening-detail {width:160px;right:5%;bottom:18%}
  .opening-signature {font-size:35px}
  .editorial-story {gap:44px}
  .story-body {grid-template-columns:1fr;gap:0}
  .editorial-footer {gap:26px;grid-template-columns:1fr 1fr}
  .footer-brand {grid-column:1/-1}
  .editorial-footer .brand {font-size:42px}
  .full-screen {min-height:80svh}
}
@media(max-width:760px) {
  :root {--space-section:60px;--font-display:clamp(36px,10vw,44px)}
  .editorial-hero {display:flex;flex-direction:column;min-height:0}
  .opening-copy {padding:35px var(--gutter) 34px;align-self:stretch}
  .opening-copy>.eyebrow {font-size:8px;letter-spacing:.13em;margin-bottom:28px}
  .opening-copy h1 {font-size:clamp(92px,25vw,127px);margin:0 0 32px;line-height:.75}
  .opening-copy h1 em {padding-left:56px;margin-top:16px}
  .opening-copy h1 small {font-size:9px;margin:22px 0 0 62px;letter-spacing:.34em}
  .opening-description {max-width:100%;padding-left:16px}
  .opening-description h2 {font-size:28px;max-width:330px}
  .opening-description>p {font-size:12px}
  .opening-description .actions {display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 4px}
  .opening-description .button {gap:9px;padding:12px;font-size:11px}
  .opening-art {width:100%;height:420px;margin:0;overflow:hidden}
  .opening-art .atmosphere img {object-position:left center}
  .opening-main {width:208px;left:10%;top:25px;transform:rotate(-3deg)}
  .opening-detail {width:148px;right:6%;bottom:28px;transform:rotate(5deg)}
  .opening-signature {left:7%;bottom:20px;max-width:40%;font-size:25px;line-height:1.15}
  .opening-location {right:16px;top:24px;font-size:8px}
  .trust {padding-block:20px;font-size:9px;gap:14px}
  .editorial-story {display:flex;flex-direction:column;padding-block:64px;gap:38px}
  .editorial-story .portrait {max-width:280px;align-self:center;margin:14px 0 0}
  .editorial-story .portrait::before {inset:-14px 20px 65px -15px}
  .editorial-story .portrait img {aspect-ratio:317/590}
  .editorial-story .lead {font-size:23px}
  .story-body {grid-template-columns:1fr;margin-top:22px}
  .story-facts {flex-direction:column;gap:10px}
  .care-strip .differences {padding-block:40px}
  .care-strip .section-heading {display:block;margin-bottom:26px}
  .care-strip .eyebrow {margin-bottom:16px}
  .care-strip h2 {font-size:34px}
  .care-strip h3 {font-size:21px}
  .service-layout {grid-template-columns:1fr;gap:30px}
  .service-intro {grid-template-columns:1fr 120px}
  .service-intro h2 {font-size:37px}
  .service-image {width:120px;margin:0;padding:8px}
  .price-row {padding-block:15px}
  .price-row strong {font-size:28px}
  .price-row dt {font-size:12px}
  .gallery-section {padding-block:64px 45px}
  .editorial-gallery,.editorial-gallery.is-filtered {grid-template-columns:1fr 1fr;gap:28px 16px}
  .editorial-gallery .gallery-item {width:100%;max-width:none;margin-top:0}
  .editorial-gallery .gallery-item:nth-child(even) {width:90%;margin-top:36px;justify-self:end}
  .editorial-gallery .gallery-wide {width:100%;max-width:426px;grid-column:span 2;margin-top:0;justify-self:center}
  .editorial-gallery.is-filtered .gallery-item {width:100%;margin-top:0}
  .gallery-caption {font-size:9px}
  .editorial-quote {grid-template-columns:1fr;gap:14px;padding-block:32px;text-align:left}
  .editorial-quote blockquote {font-size:36px;margin-bottom:16px}
  .editorial-quote .eyebrow {font-size:8px}
  .certification-layout {padding-block:64px;gap:30px}
  .certificate-frame {height:220px;padding:10px;box-shadow:0 4px 14px #29262507}
  .certificate-grid>button:last-child {margin-top:32px}
  .experience {margin:0;padding:36px var(--gutter)}
  .experience-copy {display:block}
  .experience-copy .section-heading {margin-bottom:20px}
  .experience-copy p {margin-bottom:16px}
  .experience-art {width:110px}
  .experience-copy h2 {font-size:30px}
  .full-screen {min-height:clamp(520px,76svh,700px);padding:60px var(--gutter);align-items:flex-end}
  .care-moment .atmosphere img {object-position:65% center}
  .care-moment::after {background:linear-gradient(0deg,#f8f5f1fa 0%,#f8f5f1d9 42%,#f8f5f126 80%)}
  .moment-copy {max-width:100%;padding-bottom:24px}
  .moment-copy h2 {font-size:clamp(40px,11vw,52px);line-height:1.06;max-width:380px}
  .moment-copy p {font-size:12px;max-width:300px}
  .moment-copy>.eyebrow {font-size:9px;margin-bottom:20px}
  .moment-copy .button {font-size:11px}
  .moment-signature {bottom:20px;right:var(--gutter);font-size:8px}
  .expression-moment {justify-content:flex-start;min-height:clamp(560px,80svh,720px)}
  .expression-moment .atmosphere img {object-position:left top}
  .expression-moment::after {background:linear-gradient(0deg,#292625fa,#292625c9 48%,#29262505 85%)}
  .expression-moment .moment-copy {padding-bottom:24px;max-width:350px}
  .location {padding-block:48px}
  .contact {padding-block:56px}
  .contact-inner {grid-template-columns:1fr;gap:24px}
  .contact h2 {font-size:41px}
  .contact .contact-options {padding:20px}
  .contact .button {gap:8px;padding:12px 10px;font-size:11px}
  .contact .instagram-channel {padding:10px 0}
  .instagram {padding-block:40px;gap:22px}
  .instagram h2 {font-size:36px}
  .instagram-profile {padding:20px 12px}
  .editorial-footer {grid-template-columns:1fr 1fr;padding:48px var(--gutter) calc(110px + env(safe-area-inset-bottom));gap:28px 20px}
  .editorial-footer .brand {font-size:39px}
  .footer-navigation {grid-template-columns:1fr;font-size:10px;gap:0}
  .footer-social {min-width:0}
  .editorial-footer .footer-links {grid-column:auto;grid-row:auto;gap:0;align-items:start}
  .editorial-footer .footer-links .button {font-size:10px;gap:10px}
  .footer-language {display:block;margin-top:18px}
  .footer-language .language {display:block;margin-top:5px;font-size:10px}
  .editorial-footer .footer-bottom {font-size:8px;gap:16px;margin-top:0}
  .mobile-cta .button {gap:6px;font-size:10px}
  .mobile-cta .channel-icon {width:17px;height:17px;flex-basis:17px}
  :lang(ja) .opening-description h2 {font-size:22px;line-height:1.7}
  :lang(ja) .editorial-story .lead {font-size:17px}
  :lang(ja) .care-strip h2 {font-size:25px}
  :lang(ja) .service-intro h2 {font-size:26px}
  :lang(ja) .editorial-quote blockquote {font-size:25px;line-height:1.7}
  :lang(ja) .instagram h2 {font-size:25px;line-height:1.6}
  :lang(ja) .moment-copy h2 {font-size:30px;line-height:1.65}
  :lang(ja) .contact h2 {font-size:29px}
  :lang(ja) .experience-copy h2 {font-size:24px}
}
@media(max-width:374px) {
  .opening-copy h1 {font-size:89px}
  .opening-copy h1 em {padding-left:48px}
  .opening-copy h1 small {margin-left:53px}
  .opening-description .button {padding:12px 8px;gap:7px;font-size:10px}
  .opening-art {height:375px}
  .opening-main {width:190px;left:7%;top:25px}
  .opening-detail {width:130px;right:6%;bottom:25px}
  .opening-signature {font-size:23px;left:6%;bottom:20px}
  .service-intro {grid-template-columns:1fr 100px}
  .service-image {width:100px}
  .service-intro h2 {font-size:32px}
  .certificate-frame {height:185px}
  .experience-art {width:90px}
  .moment-copy h2 {font-size:40px}
  .editorial-footer .brand {font-size:34px}
}
@media(prefers-reduced-motion:reduce) {
  .opening-main,.opening-detail {transform:none}
}

/* Small legibility refinements to the established header and menu. */
header nav {font-size:12px}
header .language {font-size:12px}
.price-row dd {min-width:88px}
.certificate-caption {font-size:11px}
@media(max-width:760px) {header .language {font-size:10px}.certificate-caption {font-size:10px}}
