a{color:inherit;text-decoration:none}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}:focus-visible{outline:2px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.skip-link{position:absolute;left:16px;top:-80px;z-index:100;padding:12px;background:var(--paper)}.skip-link:focus{top:12px}header{position:relative;border-bottom:0}header>a{display:block}body{font-size:var(--body-size,18px)}.chapter,.editorial{scroll-margin-top:90px}.chapter{padding-top:var(--section-gap,64px)!important}main img{border-radius:var(--image-radius,0px)}.work-open-button{display:block;width:100%}.work-open-button img{width:100%;height:auto}.main-filters button{font-size:20px;display:inline-flex;align-items:center;min-height:60px;padding-bottom:12px;color:var(--muted);border-bottom:2px solid transparent}.main-filters button[aria-pressed=true]{border-color:var(--ink);color:var(--ink)}.sub-filters button{min-height:40px;font-size:14px;color:var(--muted)}.sub-filters button[aria-pressed=true]{font-weight:700;color:var(--ink)}.case-row a{font-size:14px;justify-self:start;padding:8px 0}.editorial{padding-top:64px;padding-bottom:80px}.editorial-body{max-width:1080px}.editorial h1{font-size:52px;font-weight:400;line-height:1.4;letter-spacing:.035em;margin-bottom:32px;max-width:1000px}.editorial h2{font-size:28px;line-height:1.5;font-weight:400;margin-top:var(--section-gap,64px);margin-bottom:24px}.editorial h3{font-size:20px;font-weight:400;margin-top:32px;margin-bottom:12px}.editorial p{font-size:var(--body-size,18px);line-height:1.95;color:var(--muted);margin:0 0 20px;max-width:900px}.page-actions{display:flex;gap:40px;margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}.case-gallery{display:flex;align-items:center;gap:24px;margin:32px 0 40px}.case-gallery figure{flex:1;min-width:0}.case-gallery img{width:100%;height:auto}.inquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px;margin:40px 0 56px;max-width:920px}.inquiry-form label{display:block;font-size:16px}.inquiry-form input:not([type=checkbox]),.inquiry-form textarea{display:block;width:100%;margin-top:12px;border:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:13px 14px;font:inherit}.inquiry-form textarea{resize:vertical}.inquiry-form .full{grid-column:1/-1}.inquiry-form fieldset{border:0;padding:0;margin:0}.service-choices{display:flex;flex-wrap:wrap;gap:16px 24px;margin-top:16px}.service-choices label{display:flex;align-items:center;gap:8px}.service-choices input{accent-color:var(--gold);width:18px;height:18px}.submit{background:var(--ink);color:var(--paper);padding:14px 28px;border:1px solid var(--ink);font:inherit;min-height:48px}.form-preview{font-size:14px!important}.trap{position:absolute!important;left:-10000px}.direct-contact{display:flex;gap:32px}#form-status{margin-top:20px}.id-diagram{display:block;width:100%;height:auto;max-height:320px}.hero-photo{touch-action:pan-y}.hero-photo img{transition:opacity .15s}.nav a{white-space:nowrap}.footer-social:has(.footer-social-icons:empty){display:none}.footer-social-icons:empty{display:none}
@media(max-width:760px){body{font-size:min(var(--body-size,18px),18px)}.mobile-menu{border:0;background:none;font:inherit;cursor:pointer}.nav.menu-open{display:flex;position:absolute;top:calc(100% - 1px);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:16px 20px;background:var(--paper);border:1px solid var(--line);z-index:50;box-shadow:0 16px 24px #27292412}.nav.menu-open a{padding:13px 8px;font-size:16px}.nav.menu-open .contact{margin-top:8px;padding:12px}.main-filters{gap:24px}.main-filters button{font-size:16px;min-height:52px}.sub-filters button{font-size:13px}.editorial{padding-top:36px;padding-bottom:48px}.editorial h1{font-size:34px;line-height:1.45;margin-bottom:24px}.editorial h2{font-size:25px;margin-top:40px;margin-bottom:20px}.editorial p{font-size:min(var(--body-size,18px),17px);line-height:1.9}.case-gallery{flex-direction:column;gap:20px}.case-gallery figure{width:100%}.inquiry-form{grid-template-columns:1fr;gap:24px}.page-actions{gap:28px}.chapter{padding-top:clamp(32px,var(--section-gap,64px),64px)!important}.id-diagram{max-height:260px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.footer-base nav a{display:inline-flex;align-items:center;min-height:44px}.id-diagram{overflow:visible}

.id-size-label .id-size-number{display:inline;font:inherit;color:inherit;margin:0}.id-diagram text[data-edit]{user-select:text;pointer-events:bounding-box}

/* Gold buttons only in explicit section-ending action groups. */
:root{--action-gold:#907010;--action-gold-hover:#775c0d;--action-radius:8px;--action-gap:16px}
body :is(.commercial-actions,.portrait-inquiry,.id-inquiry,.page-actions,.closing-action) a.textlink{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:48px;max-width:100%;padding:12px 24px;border:0;border-radius:var(--action-radius);background:var(--action-gold);color:#fff;line-height:1.5;text-align:center;text-decoration:none;transition:background-color .18s ease}
body :is(.commercial-actions,.portrait-inquiry,.id-inquiry,.page-actions,.closing-action) a.textlink:hover{background:var(--action-gold-hover);color:#fff}
body :is(.commercial-actions,.portrait-inquiry,.id-inquiry,.page-actions,.closing-action) a.textlink:focus-visible{background:var(--action-gold-hover);color:#fff;outline:2px solid var(--action-gold);outline-offset:4px}
.commercial-actions,.page-actions{flex-wrap:wrap;align-items:center;gap:var(--action-gap)}
@media(prefers-reduced-motion:reduce){body :is(.commercial-actions,.portrait-inquiry,.id-inquiry,.page-actions,.closing-action) a.textlink{transition:none}}

/* Portfolio gutters share one token horizontally and vertically. */
.work-masonry{--work-gap:var(--gallery-gap,16px);column-gap:var(--work-gap)}
.work-card{display:block;margin-bottom:var(--work-gap);break-inside:avoid}
@media(max-width:760px){.work-masonry{--work-gap:calc(var(--gallery-gap,16px) * .625)}}

/* One complete photo per viewport, with quiet chrome and no secondary zoom. */
.work-lightbox{position:fixed;inset:0;margin:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;border:0;padding:72px 80px;background:var(--paper);color:var(--ink);overflow:hidden;overscroll-behavior:contain}
.work-lightbox::backdrop{background:var(--paper)}
body:has(.work-lightbox[open]){overflow:hidden}
.light-series{height:100%;width:100%;max-width:1440px;margin:auto;touch-action:pan-y pinch-zoom}
.light-series figure,.light-image-stage{height:100%;width:100%;margin:0;min-width:0;min-height:0}
.light-image-stage{display:flex;align-items:center;justify-content:center}
.light-series img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;flex:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;touch-action:pan-y pinch-zoom}
.light-series[data-navigable="true"] img{cursor:pointer}
.light-close,.light-prev,.light-next{position:fixed;z-index:5;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--paper);color:var(--ink);font:28px/1 Arial,sans-serif}
.light-close{top:max(16px,env(safe-area-inset-top));right:20px}
.light-prev{top:calc(50% - 22px);left:18px}.light-next{top:calc(50% - 22px);right:18px}
.light-count{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);font-size:13px;letter-spacing:.12em;color:var(--muted);pointer-events:none}
@media(max-width:760px){.work-lightbox{padding:72px 16px}.light-close{right:10px}.light-prev,.light-next{top:auto;bottom:max(12px,env(safe-area-inset-bottom))}.light-prev{left:12px}.light-next{right:12px}}

/* Three-column footer: contact, opening hours, online consultation. */
.site-footer{--footer-column-padding:28px;--footer-line-gap:6px}
.site-footer .footer-grid{display:grid;grid-template-columns:1.1fr 1.25fr 1fr;gap:0;align-items:stretch}
.site-footer .footer-column{min-width:0;padding:8px var(--footer-column-padding) 12px}
.site-footer .footer-column+.footer-column{border-left:1px solid var(--line)}
.site-footer .footer-column h3{font-size:14px;line-height:1.5;font-weight:400;letter-spacing:.1em;color:var(--gold);margin:0 0 10px}
.site-footer .footer-column p,.site-footer .footer-address-row{font-size:15px;line-height:1.7;color:var(--ink);margin:0}
.site-footer .footer-column p+p{margin-top:var(--footer-line-gap)}
.site-footer .footer-column p:empty{display:none}
.site-footer .footer-address-row{display:flex;align-items:baseline;gap:8px;margin-top:var(--footer-line-gap)}
.site-footer .footer-address-row>span{flex:none}
.site-footer .footer-address{overflow-wrap:anywhere}
.site-footer .footer-social{margin:10px 0 0}
.site-footer .footer-social-icons{gap:8px}
.site-footer .social-icon{width:36px;height:36px;flex-basis:36px;border:1px solid var(--line);border-radius:50%}
.site-footer .social-icon:first-child{margin-left:0}
.site-footer .social-icon img{width:18px;height:18px}
.site-footer .social-icon:hover{border-color:var(--gold)}
.site-footer .footer-base{margin-top:28px;padding-top:16px}
@media(max-width:1100px) and (min-width:761px){.site-footer{--footer-column-padding:18px}.site-footer .footer-grid{grid-template-columns:1.2fr 1fr 1fr}}
@media(max-width:760px){
.site-footer .footer-grid{grid-template-columns:minmax(0,1fr);border-right:0;gap:24px}
.site-footer .footer-column{padding:2px 0 2px 18px}
.site-footer .footer-column+.footer-column{border-left:0}
.site-footer .footer-column h3{margin-bottom:8px}
}

/* Small map symbol beside the address; the surrounding text keeps its size. */
.site-footer .footer-map-icon{display:inline-flex;position:relative;flex:0 0 1em;width:1em;height:1em;align-self:baseline;transform:translateY(.12em);color:var(--gold)}
.site-footer .footer-map-icon svg{display:block;width:100%;height:100%}
.site-footer .footer-map-icon::after{content:"";position:absolute;inset:-5px}
.site-footer .footer-map-icon:hover{color:var(--ink)}

/* Cooperation strategy: reuse site margins, color tokens and the existing type scale. */
.cooperation-note{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;border-top:1px solid var(--line);padding:32px 0 48px;margin-top:32px}
.cooperation-note h2{font-size:24px;line-height:1.5;margin:0 0 12px}.cooperation-note p{max-width:52em;font-size:16px;line-height:1.9;margin:0;color:var(--muted)}
.cooperation-note>a{white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.inquiry-cooperation{margin:32px 0}.inquiry-cooperation h2{font-size:24px}
#black-sesame{scroll-margin-top:32px}
@media(max-width:760px){.cooperation-note{grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 0 32px}.cooperation-note h2{font-size:22px}}

/* Shared main-navigation states: the indicator never changes link geometry. */
#main-nav{--nav-motion:200ms;--nav-indicator-offset:5px}
#main-nav>a{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;transition:color var(--nav-motion) ease,border-color var(--nav-motion) ease,background-color var(--nav-motion) ease}
#main-nav>a:not(.contact){padding:6px 0;border:0;background-image:none}
#main-nav>a:not(.contact)::after{content:"";position:absolute;left:0;right:0;bottom:var(--nav-indicator-offset);height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform var(--nav-motion) ease}
#main-nav>a:not(.contact)[aria-current]::after,#main-nav>a:not(.contact):focus-visible::after{transform:scaleX(1)}
#main-nav>a:focus-visible{color:var(--gold)}
#main-nav>a.contact[aria-current]{border-color:var(--gold);color:var(--gold)}
@media(hover:hover) and (pointer:fine){#main-nav>a:hover{color:var(--gold)}#main-nav>a:not(.contact):hover::after{transform:scaleX(1)}#main-nav>a.contact:hover{border-color:var(--gold)}}
@media(max-width:760px){#main-nav>a{justify-content:flex-start}#main-nav>a:not(.contact){padding:13px 8px}#main-nav>a:not(.contact)::after{left:8px;right:8px}#main-nav>a[aria-current]{color:var(--gold)}}
@media(prefers-reduced-motion:reduce){#main-nav>a,#main-nav>a::after{transition:none}}

/* Photography disclosure: aligned text, light rules and restrained movement. */
#main-nav .nav-photography{--submenu-width:280px;--submenu-chevron:14px;--submenu-row:34px;--submenu-motion:180ms;position:relative;padding:0;margin:0;border:0;min-width:0}
#main-nav .nav-photography>summary{display:flex;align-items:center;gap:6px;min-height:44px;padding:6px 0;margin:0;font:inherit;color:inherit;cursor:pointer;list-style:none;white-space:nowrap;position:relative}
#main-nav .nav-photography>summary::-webkit-details-marker{display:none}
#main-nav .nav-photography>summary::after{content:none;display:none}
#main-nav .nav-photography>summary:hover,#main-nav .nav-photography>summary:focus-visible{color:var(--gold)}
#main-nav .nav-photography>summary>span{display:inline-block;position:static;flex:0 0 var(--submenu-chevron);width:var(--submenu-chevron);height:auto;text-align:center;font-size:14px;line-height:1;transition:transform var(--submenu-motion) ease}
#main-nav .nav-photography>summary>span::before,#main-nav .nav-photography>summary>span::after{content:none;display:none}
#main-nav .nav-photography[open]>summary>span{transform:rotate(90deg)}
#main-nav .photography-submenu{box-sizing:border-box;position:absolute;left:0;top:calc(100% - 6px);z-index:70;width:var(--submenu-width);min-width:0;height:auto;padding:0 0 4px;margin:0;background:var(--paper);border:0;border-radius:0;box-shadow:none}
#main-nav .photography-submenu>a{box-sizing:border-box;position:relative;width:max-content;max-width:100%;display:flex;align-items:center;min-height:var(--submenu-row);padding:5px 0;font-family:inherit;font-size:inherit;font-weight:400;line-height:1.6;white-space:nowrap;color:var(--ink);background:none;border:0;transition:color var(--nav-motion) ease}
#main-nav .photography-submenu>a[aria-current]{color:var(--gold)}
#main-nav .photography-submenu>a:focus-visible{color:var(--gold)}
#main-nav .nav-photography[open]>.photography-submenu{animation:photography-disclose var(--submenu-motion) ease both}
@keyframes photography-disclose{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){#main-nav .photography-submenu>a:hover{color:var(--gold)}#main-nav .photography-submenu>a:hover::after{transform:scaleX(1)}}
@media(max-width:760px){
 #main-nav .nav-photography>summary{padding:13px 8px;font-size:16px}
 #main-nav .photography-submenu{position:static;width:auto;padding:0 8px 4px 28px;border:0;margin:-6px 0 0;background:transparent}
 #main-nav .photography-submenu>a{min-height:44px;padding:8px 0;font-size:16px}
}
@media(prefers-reduced-motion:reduce){#main-nav .nav-photography>summary>span,#main-nav .photography-submenu>a{transition:none}#main-nav .nav-photography[open]>.photography-submenu{animation:none}}

/* Desktop service names retain their right-hand alignment. */
@media(min-width:761px){
 #main-nav .photography-submenu{left:auto;right:calc(var(--submenu-chevron)/2);padding-right:0;border-right:0}
 #main-nav .photography-submenu>a{justify-content:flex-end;text-align:right;margin-left:auto}
}

/* Use the same left-to-right underline as the top-level navigation. */
#main-nav .photography-submenu>a::after{content:"";position:absolute;left:0;right:0;bottom:var(--nav-indicator-offset);height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform var(--nav-motion) ease}
#main-nav .photography-submenu>a[aria-current]::after,#main-nav .photography-submenu>a:focus-visible::after{transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){#main-nav .photography-submenu>a:hover::after{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){#main-nav .photography-submenu>a::after{transition:none}}

/* Redraw top-level link underlines on every entry, including the current page. */
@keyframes main-nav-underline-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
#main-nav>a:not(.contact):focus-visible::after{transition:none;animation:main-nav-underline-in 220ms linear both}
@media(hover:hover) and (pointer:fine){#main-nav>a:not(.contact):hover::after{transition:none;animation:main-nav-underline-in 220ms linear both}}
@media(prefers-reduced-motion:reduce){#main-nav>a:not(.contact)::after{animation:none}}

/* Reserve space only when the open menu would overlap visible page content. */
.nav-clearance{height:0;pointer-events:none;overflow-anchor:none;transition:height 220ms ease}
@media(min-width:761px){#main-nav .photography-submenu{background:transparent}}
@media(max-width:760px){.nav-clearance{display:none}}
@media(prefers-reduced-motion:reduce){.nav-clearance{transition:none}}

/* Temporary design proposal: reuse the existing editorial grid. */
.design-updating{padding-top:16px;min-height:380px}.design-updating h2{font-size:52px;font-weight:400;line-height:1.4;letter-spacing:.035em;margin:0 0 32px}.design-updating .page-actions{flex-wrap:wrap}@media(max-width:760px){.design-updating{min-height:320px;padding-top:8px}.design-updating h2{font-size:36px}}
