:root{--paper:#fff;--ink:#272729;--muted:#66666a;--line:#dedee0;--soft:#f5f5f6;--accent:#865664;--serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP',Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic','Noto Sans CJK JP',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/2 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;max-width:100%;height:auto}figure{margin:0}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}a:hover{color:var(--accent)}::selection{background:#ecdde3}.skip{position:fixed;top:-100px;left:20px;background:#fff;padding:10px;z-index:100}.skip:focus{top:10px}.wrap{max-width:1400px;margin:auto;padding:0 5.2%}.site-header{background:#fff;position:relative;z-index:5}.header-inner{max-width:1600px;padding:2rem 5.2% 1.6rem;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:2rem}.wordmark{font:3.25rem/.9 Georgia,serif;letter-spacing:-.055em;white-space:nowrap}.wordmark span{font:italic 1.125rem/1 Georgia,serif;letter-spacing:.01em;margin-right:.3rem}.desktop-nav{display:flex;gap:2rem;align-items:center;font-size:.875rem}.desktop-nav a:not(.nav-book){position:relative}.desktop-nav a[aria-current=page]:after{content:'';position:absolute;bottom:-6px;left:0;right:0;height:1px;background:var(--ink)}.nav-book{background:var(--ink);color:#fff;padding:.6rem 1.4rem;font-size:.875rem}.nav-book:hover{background:var(--accent);color:#fff}.mobile-menu{display:none}.eyebrow{font:.75rem/1.7 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 1.5rem}
.hero{display:grid;grid-template-columns:minmax(0,34fr) minmax(0,45fr) minmax(0,21fr);gap:2.5%;max-width:1600px;margin:auto;padding:2.25rem 5.2% 1.3rem;align-items:center}.hero-copy{padding:0 0 1.5rem}.hero h1{font:400 clamp(1.7rem,2.7vw,2.6rem)/1.85 var(--serif);letter-spacing:.04em;margin:0 0 1.5rem}.hero-copy>p:not(.eyebrow){font-size:1rem;line-height:2.15}.hero-copy .hero-location{font-size:.875rem!important;color:var(--muted);margin:1.5rem 0 1rem}.hero-photo{position:relative}.hero-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:52% 55%}.photo-note{font-size:.75rem;letter-spacing:.04em;color:var(--muted);margin:.65rem 0 0}.hero-photo .photo-note{text-align:right}.hero-aside{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;padding:2rem 0 1.9rem}.hero-script{font:italic clamp(1.7rem,3.5vw,3.25rem)/1.3 Georgia,serif;letter-spacing:-.035em;margin:0 0 2rem}.hero-aside figure img{width:100%;aspect-ratio:1.4;object-fit:contain;background:#fff}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--ink);padding:.55rem 0;font-size:.875rem;line-height:1.7;min-height:2.75rem}.text-link:after{content:'↗';font-size:1.2rem;flex-shrink:0}.text-link:hover{border-color:var(--accent)}.hero .text-link{margin-top:.6rem}.hero-foot{padding:1.5rem 0 2rem;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);font-size:.75rem;line-height:1.7;color:var(--muted);letter-spacing:.09em;gap:1.5rem}.intro{display:grid;grid-template-columns:1fr 1.05fr;gap:12%;padding:7rem 4% 2rem}.intro h2,.section-title{font:400 clamp(1.7rem,2.5vw,2.4rem)/1.8 var(--serif);letter-spacing:.055em;margin:0}.intro p{margin:0 0 1.35rem;font-size:1rem;line-height:2.4}.intro .eyebrow{margin-bottom:1.5rem}.section{padding:6.5rem 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:3rem}.section-head .eyebrow{margin-bottom:1rem}.section-head p:not(.eyebrow){margin:1rem 0 0;max-width:36rem;font-size:1rem}.big-en{font:400 clamp(2.8rem,5.8vw,5.5rem)/1.1 Georgia,serif;letter-spacing:-.06em;margin:0 0 1rem}.section-label{font:1.125rem/1.9 var(--serif);margin:0}.photo-section{padding-top:5.5rem}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem 1.75rem}.gallery-item{margin:0;min-width:0}.gallery-item img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:opacity .25s}.gallery-item a:hover img{opacity:.84}.gallery-caption{font-size:.75rem;line-height:1.7;color:var(--muted);display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-top:.65rem}.gallery-caption a{border-bottom:1px solid var(--line);padding:.15rem 0}.gallery-bottom{text-align:center;margin-top:2.5rem}.gallery-notice{margin-top:2rem;max-width:55rem;padding-bottom:1rem}.soft{background:var(--soft)}.sessions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem 2rem}.session-card .media{overflow:hidden;background:#eee}.session-card img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .5s}.session-card a:hover img{transform:scale(1.025)}.session-label{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem;flex-wrap:wrap;border-bottom:1px solid #ceced0;padding:1.1rem 0 .75rem}.session-label h3{font:400 1.4rem/1.6 var(--serif);margin:0}.session-label span{font-size:.75rem;letter-spacing:.04em;color:var(--muted)}.session-card p{font-size:1rem;line-height:1.9;margin:1rem 0 0}.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.plan{padding:2rem 1.75rem 2.25rem 0}.plan+.plan{border-left:1px solid var(--line);padding-left:1.75rem}.plan .eyebrow{margin-bottom:1rem}.plan h3{font:400 1.5rem/1.6 var(--serif);margin:0 0 .6rem}.plan .cuts{font-size:.875rem;color:var(--muted);margin:0 0 1.5rem}.price{font:3.1rem/1.2 Georgia,serif;letter-spacing:-.04em;margin:0 0 .75rem}.price small{font: .875rem var(--sans);letter-spacing:0}.plan p{font-size:1rem;line-height:1.9}.plan .price-sub{font-size:.875rem}.small-note,.plan p.small-note,.detail-copy p.small-note{font-size:.8125rem;color:var(--muted);line-height:1.95}.plan-extra{display:flex;justify-content:space-between;align-items:center;gap:1.25rem;margin-top:1.5rem}.plan-extra .text-link{flex-shrink:0}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:start}.access-grid .brand-large{font:4.6rem/1.2 Georgia,serif;letter-spacing:-.06em;margin:0 0 2rem}.access-grid dl{margin:0}.access-grid dl div{display:grid;grid-template-columns:6rem 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}dt{font-size:.875rem;color:var(--muted)}dd{margin:0;font-size:1rem}dd a{text-decoration:underline;text-underline-offset:.25rem}.booking{padding:6rem 5.2%;background:#272729;color:#fff;text-align:center}.booking .eyebrow{color:#d3cbd0}.booking h2{font:400 clamp(1.75rem,3vw,2.6rem)/1.8 var(--serif);margin:0 0 1.2rem}.booking p{font-size:1rem;line-height:2}.booking-actions{display:flex;justify-content:center;gap:1rem;margin-top:2rem}.button{display:inline-flex;justify-content:center;align-items:center;min-width:15rem;min-height:3.4rem;border:1px solid #bbb;padding:.8rem 1.6rem;transition:background .2s;font-size:.875rem;line-height:1.8}.button:hover{background:#424246;color:#fff}.button.dark{background:#fff;color:var(--ink);border-color:#fff}.button.dark:hover{background:#ecdde3;border-color:#ecdde3}.site-footer{max-width:1600px;margin:auto;padding:3.5rem 5.2%;display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}.footer-brand address{font:.875rem/2 var(--sans);color:var(--muted);margin-top:1.5rem}.site-footer small{font-size:.75rem;color:var(--muted)}.footer-links{display:flex;gap:1.5rem;font-size:.875rem;flex-wrap:wrap}.mobile-book{display:none}.breadcrumbs{font-size:.8125rem;color:var(--muted);padding-top:2rem;display:flex;gap:.8rem;flex-wrap:wrap}.breadcrumbs a{border-bottom:1px solid var(--line)}.page-heading{padding:4.5rem 0;max-width:55rem}.page-heading h1{font:400 clamp(2rem,4.4vw,3.7rem)/1.6 var(--serif);margin:0 0 1.5rem;letter-spacing:.04em}.page-heading p{line-height:2.15;margin:0;max-width:46rem;font-size:1rem}.page-heading .eyebrow{margin-bottom:1.1rem}.content-section{padding-bottom:5.5rem}.options{width:100%;border-collapse:collapse;margin:2rem 0}.options td,.options th{border-bottom:1px solid var(--line);padding:1.4rem 1rem;text-align:left;vertical-align:top}.options th{font:400 1.125rem/1.8 var(--serif);width:30%}.options td:last-child{white-space:nowrap;font:1.5rem/1.8 Georgia,serif;text-align:right}.options td:nth-child(2){font-size:1rem;color:var(--muted)}.detail-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8%;align-items:center;margin:3rem 0 5rem}.detail-hero figure{margin:0}.detail-hero img{width:100%;max-height:650px;object-fit:contain}.detail-hero h1{font:400 clamp(1.8rem,3.2vw,2.8rem)/1.85 var(--serif);letter-spacing:.04em;margin:0 0 1.5rem}.detail-hero p{line-height:2.2;font-size:1rem}.detail-hero .eyebrow{font-size:.75rem}.detail-copy{max-width:47.5rem;margin:0 auto 4rem}.detail-copy h2,.faq-title{font:400 1.7rem/1.85 var(--serif);margin:0 0 1.2rem}.detail-copy p{font-size:1rem;line-height:2.2}.detail-price{padding:2.25rem;background:var(--soft);margin:2.5rem 0;border-left:2px solid var(--ink)}.detail-price h3{font:400 1.3rem/1.8 var(--serif);margin:0 0 1rem}.detail-price p{margin:.6rem 0}.faq{max-width:52rem;margin:2rem 0 0}.faq details{border-bottom:1px solid var(--line)}.faq summary{padding:1.4rem 1.75rem 1.4rem 0;cursor:pointer;font-size:1rem;line-height:1.9}.faq details p{padding:0 1.5rem 1.5rem 0;margin:0;font-size:1rem;line-height:2}.category-nav{display:flex;flex-wrap:wrap;gap:.75rem 1.75rem;margin:0 0 2.5rem;font-size:.875rem}.category-nav a{border-bottom:1px solid var(--line);padding:.5rem 0}.category-nav a:hover{border-color:var(--ink)}.gallery-group{padding-bottom:5rem;scroll-margin-top:2rem}.gallery-group h2{font:400 1.8rem/1.8 var(--serif);margin:0 0 1.75rem}.related{display:flex;justify-content:space-between;gap:1.25rem;padding:1.6rem 0;border-top:1px solid var(--line);margin-top:2.5rem;font-size:.875rem;flex-wrap:wrap}.flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.25rem;margin-top:2.5rem}.flow article{border-top:1px solid var(--line);padding-top:1.25rem}.flow span{font:1.8rem Georgia,serif;color:var(--muted)}.flow h3{font:400 1.3rem/1.8 var(--serif)}.flow p{font-size:1rem}.access-feature{padding:2.75rem;background:var(--soft)}
@media(min-width:1700px){.hero{padding-top:3rem}.hero h1{font-size:2.7rem}}
@media(max-width:1100px){.desktop-nav{gap:1.2rem}.header-inner{gap:1rem}.wordmark{font-size:2.8rem}.hero{grid-template-columns:40fr 60fr;gap:5%;padding-top:2.5rem}.hero-aside{display:none}.hero h1{font-size:clamp(1.8rem,3.3vw,2.4rem)}.hero-photo img{aspect-ratio:1}.intro{padding:5rem 0 1rem;gap:8%}.section{padding:5rem 0}.sessions{gap:2.5rem 1.5rem}.plan{padding:1.6rem 1rem 2rem 0}.plan+.plan{padding-left:1rem}.price{font-size:2.6rem}.plan h3{font-size:1.3rem}.access-grid{gap:7%}.footer-links{gap:1rem}}
@media(max-width:760px){.wrap{padding:0 6%}.header-inner{padding:1.55rem 6% 1.25rem}.wordmark{font-size:2.7rem}.wordmark span{font-size:1rem}.desktop-nav{display:none}.mobile-menu{display:block}.mobile-menu summary{list-style:none;font-size:.875rem;letter-spacing:.06em;cursor:pointer;padding:.35rem 0;min-height:2.75rem;display:flex;align-items:center}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary:after{content:'＋';font-size:1.15rem;margin-left:.7rem}.mobile-menu[open] summary:after{content:'−'}.mobile-menu nav{position:absolute;top:5.5rem;left:0;right:0;padding:1.5rem 6% 2rem;background:#fff;box-shadow:0 12px 15px #00000009;display:grid;gap:.5rem;border-bottom:1px solid var(--line);font-size:1rem}.mobile-menu nav a{padding:.4rem 0}.hero{display:grid;grid-template-columns:minmax(0,1fr);padding:1.3rem 6% 0;gap:1.5rem}.hero-copy{padding:0}.hero h1{font-size:clamp(1.6rem,6.7vw,2.7rem);line-height:1.75;letter-spacing:.05em;margin:0 0 .8rem}.hero-copy>p:not(.eyebrow){font-size:1rem;line-height:2;margin:.5rem 0}.hero-copy .hero-location{font-size:.875rem!important;margin:.8rem 0}.hero .eyebrow{font-size:.75rem;margin-bottom:1rem;letter-spacing:.13em}.hero .text-link{margin-top:.3rem}.hero-photo img{aspect-ratio:1.08;object-position:50% 55%}.hero-aside{display:none}.photo-note{font-size:.75rem}.hero-foot{padding:1.5rem 0;font-size:.75rem;letter-spacing:.025em;gap:1rem}.hero-foot span:last-child{display:none}.intro{grid-template-columns:1fr;padding:3.8rem 0 0;gap:1.5rem}.intro h2{font-size:1.7rem;line-height:1.9}.intro p{font-size:1rem;line-height:2.2}.section{padding:3.75rem 0}.section-head{margin-bottom:2rem;gap:1rem;align-items:start;flex-wrap:wrap}.section-head .text-link{font-size:.875rem;gap:1rem}.section-head p:not(.eyebrow){font-size:1rem}.big-en{font-size:clamp(2.5rem,10vw,4rem);margin-bottom:.8rem}.section-label{font-size:1.1rem}.section-title{font-size:1.65rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.7rem .9rem}.gallery-item:nth-child(3n+2),.gallery-item:nth-child(3n){padding-top:0}.gallery-caption{font-size:.75rem;gap:.25rem}.gallery-caption span{max-width:100%}.gallery-grid .gallery-item img{aspect-ratio:3/4}.sessions{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.2rem 1rem}.session-label{gap:.3rem;padding-top:.8rem}.session-label h3{font-size:1.125rem}.session-label span{font-size:.75rem}.session-card p{font-size:1rem;line-height:1.85}.plans{grid-template-columns:1fr}.plan,.plan+.plan{padding:1.8rem 0;border-left:0}.plan+.plan{border-top:1px solid var(--line)}.plan h3{font-size:1.5rem}.price{font-size:2.8rem}.plan .cuts{margin-bottom:1rem}.plan-extra{align-items:start;flex-direction:column;gap:.65rem}.access-grid{grid-template-columns:1fr;gap:2rem}.access-grid .brand-large{font-size:3.8rem;margin-bottom:1.2rem}.access-grid dl div{grid-template-columns:5rem 1fr;gap:.8rem}.booking{padding:3.7rem 6%}.booking h2{font-size:1.75rem}.booking p{font-size:1rem}.booking-actions{flex-direction:column;gap:.8rem}.button{width:100%;min-width:0}.site-footer{padding:2.5rem 6% 8rem;flex-direction:column;align-items:start;gap:1.7rem}.footer-links{gap:.8rem 1.5rem}.mobile-book{position:fixed;bottom:0;left:0;right:0;z-index:6;display:grid;grid-template-columns:1fr 1.5fr;background:#fff;border-top:1px solid var(--line);padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));gap:.65rem}.mobile-book a{font-size:.875rem;text-align:center;padding:.65rem .4rem;line-height:1.6;display:flex;align-items:center;justify-content:center}.mobile-book a:last-child{background:var(--ink);color:#fff}.page-heading{padding:3rem 0}.page-heading h1{font-size:clamp(1.65rem,6.5vw,2.2rem)}.page-heading p{font-size:1rem}.content-section{padding-bottom:3.75rem}.options{display:block}.options tbody,.options tr{display:block}.options tr{border-bottom:1px solid var(--line);padding:1.2rem 0}.options td,.options th{display:block;border:0;padding:.25rem 0;width:100%}.options td:last-child{text-align:left;font-size:1.5rem}.detail-hero{grid-template-columns:1fr;gap:2rem;margin:2.25rem 0 3.5rem}.detail-hero h1{font-size:clamp(1.55rem,6.4vw,2.3rem)}.detail-hero figure{order:2}.detail-hero img{max-height:580px}.detail-copy h2,.faq-title{font-size:1.5rem}.detail-price{padding:1.6rem}.flow{grid-template-columns:1fr;gap:1.25rem}.flow h3{margin:.8rem 0}.flow p{margin:0}.access-feature{padding:1.75rem}.category-nav{gap:.5rem 1.2rem}.related{flex-direction:column}.gallery-group{padding-bottom:3.5rem}}
@media(max-width:360px){.sessions{grid-template-columns:1fr}.gallery-grid{gap:1.4rem .65rem}.mobile-book{grid-template-columns:1fr 1.4fr}.mobile-book a{font-size:.875rem}.access-grid dl div{grid-template-columns:4.5rem 1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Reuse the official mark at its native resolution; trim only surrounding white space in layout. */
.brand-link{position:relative;display:block;flex:0 0 auto;width:5.5rem;height:6.375rem;overflow:hidden}
.brand-logo{position:absolute;width:9.375rem;height:9.375rem;max-width:none;left:-1.9375rem;top:-1.4375rem;object-fit:contain}
.header-inner{padding-top:.8rem;padding-bottom:.8rem}
.hero-photo.hero-shichigosan img{aspect-ratio:4/5;object-fit:contain;object-position:center}
@media(max-width:760px){.header-inner{padding-top:.55rem;padding-bottom:.55rem}.brand-link{width:4.95rem;height:5.74rem}.brand-logo{width:8.44rem;height:8.44rem;left:-1.744rem;top:-1.294rem}.mobile-menu nav{top:100%}.hero-photo.hero-shichigosan img{aspect-ratio:4/5}.hero{padding-top:.9rem}}

/* The two requested pinned photos follow the main portrait at their full proportions. */
.opening-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;max-width:960px;margin:3.5rem auto 0}
.opening-photos figure{min-width:0;margin:0}
.opening-photos button[data-photo-src]{display:block}
.opening-photos img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain}
.opening-photos .photo-note{margin-top:.75rem}
@media(max-width:760px){.opening-photos{gap:.75rem;margin-top:2rem}.opening-photos .photo-note{font-size:.7rem;letter-spacing:.02em}}

/* Featured group portraits and celebration photography. */
.occasion-feature{margin:3.5rem 0;padding:2.75rem;border:1px solid var(--line);background:#f6f8fa;scroll-margin-top:9rem}
.occasion-heading h2{font-size:clamp(1.5rem,2.5vw,2.1rem);font-weight:400;margin:.6rem 0 1rem}
.occasion-heading>p:last-child{margin-bottom:2rem}
.occasion-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem}
.occasion-cards article{padding-top:1.5rem;border-top:1px solid #bac4ce;min-width:0}
.occasion-cards h3{font-size:1.5rem;font-weight:400;margin:.5rem 0 1rem}
.occasion-price{font-size:2.6rem;line-height:1.3;letter-spacing:.025em;margin:1.3rem 0 .5rem;font-variant-numeric:tabular-nums}
.occasion-price span{font-size:1rem;margin-left:.45rem}
.occasion-includes{font-size:1rem;font-weight:500;line-height:1.8;margin-bottom:1.4rem}
@media(max-width:760px){.occasion-feature{padding:1.5rem;margin:2.5rem 0}.occasion-cards{grid-template-columns:1fr;gap:2rem}.occasion-heading h2{font-size:1.5rem}.occasion-cards h3{font-size:1.3rem}.occasion-price{font-size:2.3rem}}

.access-logo{display:block;width:9.375rem;height:9.375rem;max-width:100%;object-fit:contain;margin:1rem 0 1.5rem}

/* Official wardrobe highlight categories. */
.wardrobe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem 2rem}
.wardrobe-card{min-width:0}
.wardrobe-photo{display:block;background:#f7f7f7}
.wardrobe-photo img{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:contain}
.wardrobe-caption{padding-top:1.25rem}
.wardrobe-caption h2{font-family:var(--serif);font-size:1.5rem;font-weight:400;margin:0 0 1rem}
.wardrobe-caption .text-link{font-size:.875rem}
.wardrobe-guide{max-width:48rem;line-height:2}
@media(max-width:760px){.wardrobe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}.wardrobe-caption{padding-top:.8rem}.wardrobe-caption h2{font-size:1.2rem}.wardrobe-caption .text-link{font-size:.875rem;gap:.3rem}}

.desktop-nav a{white-space:nowrap}
@media(min-width:761px) and (max-width:1100px){.desktop-nav{flex-wrap:wrap;justify-content:flex-end;row-gap:.6rem}}

/* In-page wardrobe selection and full-photo viewing. */
.wardrobe-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.2rem}
.wardrobe-filters[hidden],.wardrobe-card[hidden]{display:none}
.wardrobe-filter{font:inherit;font-size:.875rem;line-height:1.6;padding:.6rem 1rem;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);cursor:pointer;min-height:44px}
.wardrobe-filter[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.wardrobe-filter:focus-visible,.wardrobe-viewer button:focus-visible,.wardrobe-photo:focus-visible{outline:2px solid #28628c;outline-offset:4px}
.wardrobe-photo{position:relative;cursor:zoom-in}
.wardrobe-zoom{position:absolute;right:.6rem;bottom:.6rem;padding:.4rem .65rem;background:#fffffff0;color:var(--ink);font-size:.875rem}
.wardrobe-category,.wardrobe-code,.wardrobe-count{font-size:.875rem;color:var(--muted);line-height:1.8}
.wardrobe-category{margin:0 0 .4rem}.wardrobe-code{margin:.5rem 0 0}.wardrobe-caption h2{margin:0;font-size:1.3rem}
.page-heading .wardrobe-note{margin-top:1rem;font-size:.875rem;color:var(--muted)}
.wardrobe-viewer{padding:0;border:0;background:#fff;color:var(--ink);width:min(96vw,1100px);max-width:96vw;max-height:94dvh;height:94dvh;margin:auto;overflow:hidden}
.wardrobe-viewer::backdrop{background:rgb(0 0 0 / .78)}
.wardrobe-viewer-inner{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.wardrobe-viewer-head,.wardrobe-viewer-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:#fff}
.wardrobe-viewer-head h2{font:400 1.1rem/1.6 var(--serif);margin:0}
.wardrobe-viewer-head p{font-size:.875rem;line-height:1.5;color:var(--muted);margin:0 0 .25rem}
.wardrobe-viewer button{font:inherit;font-size:.875rem;border:1px solid var(--line);background:white;color:var(--ink);padding:.6rem .9rem;min-height:44px;cursor:pointer;flex-shrink:0}
.wardrobe-viewer button:disabled{opacity:.35;cursor:default}
.wardrobe-viewer-stage{min-height:0;background:#f4f4f4;display:flex;align-items:center;justify-content:center}
.wardrobe-viewer-stage img{width:100%;height:100%;object-fit:contain}
.wardrobe-viewer-foot p{margin:0;font-size:.875rem}
html.wardrobe-viewing{overflow:hidden}
@media(max-width:760px){.wardrobe-caption h2{font-size:1.125rem}.wardrobe-viewer-head,.wardrobe-viewer-foot{padding:.75rem;gap:.6rem}.wardrobe-viewer-head h2{font-size:1rem}.wardrobe-viewer-head p{font-size:.875rem}.wardrobe-viewer button{padding:.5rem .7rem}.wardrobe-zoom{right:.3rem;bottom:.3rem;font-size:.875rem;padding:.25rem .4rem}}

/* Preserve the complete composition of supplied portfolio photographs. */
/* Equal frames keep every portfolio row aligned without cropping photographs. */
.gallery-grid{align-items:start}
.gallery-grid .gallery-item{padding-top:0;display:flex;flex-direction:column}
.gallery-grid .gallery-item>button[data-photo-src]{display:block;width:100%;aspect-ratio:4/5;background:#f7f7f7;overflow:hidden}
.gallery-grid .gallery-item img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:contain;object-position:center}
.gallery-caption{min-height:2.5rem;align-items:baseline;font-size:.875rem}
@media(max-width:760px){.gallery-grid{gap:1.5rem .9rem}.gallery-caption{min-height:3rem}}

/* Photo products: supplied catalog photos, readable specifications and delivery. */
.product-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start;padding:0 0 5rem;margin-bottom:4rem;border-bottom:1px solid var(--line);scroll-margin-top:8rem}
.product-image{display:block;min-width:0}.product-image img{display:block;width:100%;height:auto;object-fit:contain}
.product-info{padding-top:1rem}.product-info>p{line-height:2}.product-info .section-title{font-size:clamp(1.5rem,2.5vw,2.2rem)}
.product-prices{width:100%;border-collapse:collapse;margin:2rem 0;font-size:1rem}.product-prices caption{text-align:left;font-weight:600;padding-bottom:1rem}.product-prices th,.product-prices td{text-align:left;padding:1rem .3rem;border-bottom:1px solid var(--line);font-weight:400;line-height:1.7}.product-prices thead th{font-size:.875rem;color:var(--muted)}.product-prices td,.product-prices th:last-child{text-align:right;white-space:nowrap}.product-prices td{font-size:1.2rem}
.product-delivery{padding:1.5rem;background:#f6f6f6}.product-delivery h3{font-size:1rem;margin:0 0 .75rem}.product-delivery p{font-size:1rem;line-height:2;margin:0}.product-process{max-width:52rem}.product-process p{font-size:1rem;line-height:2.1}
.product-teasers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.product-teasers article{min-width:0}.product-teasers .product-image{background:#f7f7f7}.product-teasers img{height:320px;object-fit:contain}.product-teasers h3{font-size:1.2rem;font-weight:400;margin:1rem 0 .5rem}
.desktop-nav{flex-wrap:wrap;justify-content:flex-end;row-gap:.5rem}
@media(max-width:760px){.product-detail{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2.5rem;padding-bottom:2.5rem}.product-info{padding:0}.product-teasers{grid-template-columns:1fr}.product-teasers img{height:380px}.product-prices{font-size:.875rem}.product-prices td{font-size:1.1rem}}

/* Photo-led motion, without changing the aligned portfolio grid. */
.hero-photo{transform-origin:50% 60%}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .gallery-item>button[data-photo-src],.opening-photos figure>button[data-photo-src]{transition:box-shadow .35s ease}
  .gallery-item>button[data-photo-src]:hover,.opening-photos figure>button[data-photo-src]:hover{box-shadow:0 12px 32px #00000010}
  .text-link,.button{transition:background-color .25s ease,color .25s ease}
}
@media(prefers-reduced-motion:reduce){
  .hero-photo,.hero-aside,.opening-photos>figure{transform:none!important}
}

button[data-photo-src]{display:block;width:100%;padding:0;border:0;border-radius:0;color:inherit;font:inherit;text-align:inherit;cursor:zoom-in;background:transparent}
button[data-photo-src]:focus-visible{outline:2px solid #28628c;outline-offset:4px}
.gallery-grid button[data-photo-src],.wardrobe-photo{background:#f7f7f7}
.photo-viewer{border:0;padding:0;margin:auto;width:min(96vw,1200px);max-width:96vw;height:92vh;height:92dvh;max-height:96dvh;background:#fff;color:var(--ink);overflow:hidden}
.photo-viewer::backdrop{background:rgb(0 0 0 / .85)}
.photo-viewer-inner{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr)}
.photo-viewer header{display:flex;gap:1rem;align-items:center;justify-content:flex-end;padding:.75rem 1rem}
.photo-viewer header p{margin:0;font-size:.875rem;line-height:1.6}
.photo-viewer header button{flex-shrink:0;min-height:44px;padding:.5rem 1rem;background:white;border:1px solid #ccc;color:inherit;font:inherit;cursor:pointer}
.photo-viewer-stage{min-height:0;background:#f4f4f4}
.photo-viewer-stage img{display:block;width:100%;height:100%;object-fit:contain}
html.photo-viewing{overflow:hidden}
@media(max-width:760px){.photo-viewer header{gap:.5rem;padding:.5rem}.photo-viewer header p{max-height:4.8em;overflow:auto}}
