/* Extracted common rules from approved P01, 2026-10-16. */
:root {
  --paper:#fbfaf7; --ink:#141414; --indigo:#002436; --muted:#62635f;
  --line:#d7d3ca; --line-strong:#aaa79f; --white:#fff;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Zen Kaku Gothic New","Yu Gothic",sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
* { box-sizing:border-box }
body { margin:0; background:var(--paper); color:var(--ink); font:400 15px/1.8 var(--sans); font-variant-numeric:lining-nums; -webkit-font-smoothing:antialiased }
h1,h2,h3,p,figure { margin:0 }
h1,h2,h3 { word-break:keep-all; text-wrap:balance }
a { color:inherit; text-decoration:none }
img { display:block; max-width:100% }
button,select { font:inherit; color:inherit }
button { cursor:pointer }
a,button,select { -webkit-tap-highlight-color:transparent }
a:focus-visible,button:focus-visible,select:focus-visible { outline:2px solid var(--indigo); outline-offset:5px }
.skip { position:fixed; left:12px; top:-90px; z-index:100; padding:12px; background:white }
.skip:focus { top:8px }
.site-header { height:100px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; padding:0 36px; position:relative; z-index:20; background:var(--paper) }
.nav { display:flex; align-items:center; gap:22px; white-space:nowrap; font-size:13px; letter-spacing:.025em }
.nav-right { justify-content:flex-end }
.nav a:not(.consult) { padding-block:12px; min-height:44px }
.nav a:hover { text-decoration:underline; text-underline-offset:7px }
.brand { display:flex; align-items:center; gap:12px; white-space:nowrap }
.brand img { width:44px; height:auto }
.brand span { font:500 26px/1 var(--serif); letter-spacing:.065em; font-variant-numeric:lining-nums tabular-nums }
.languages { display:flex; align-items:center; gap:5px; font-size:12px }
.languages button { border:0; background:none; padding:10px 2px; min-height:44px; min-width:28px; color:var(--muted); cursor:default }
.consult { padding:10px 21px; min-height:44px; background:var(--indigo); color:white }
.consult:hover,.mobile-consult:hover { background:#294b78 }
.menu-toggle,.phone,.mobile-consult,.mobile-extra { display:none }
.text-link,.all-link,.brand-link { display:inline-flex; align-items:center; gap:38px; border-bottom:1px solid currentColor; min-height:48px; font-size:13px; max-width:100% }
.text-link>span:last-child,.all-link>span,.brand-link>span { font:400 25px/1 var(--sans); transition:transform 350ms var(--ease) }
a:is(:hover,:focus-visible) .text-link>span:last-child,a.text-link:is(:hover,:focus-visible)>span:last-child,.all-link:is(:hover,:focus-visible)>span,.brand-link:is(:hover,:focus-visible)>span { transform:translateX(5px) }
.brand-link { margin-top:28px }
.site-footer { border-top:1px solid var(--line); padding:110px 7vw 100px }
.footer-wordmark { font:400 clamp(52px,6.4vw,96px)/1 var(--serif); letter-spacing:-.035em; font-variant-numeric:lining-nums tabular-nums }
.footer-details { display:grid; grid-template-columns:1fr 1.6fr; gap:60px; margin-top:48px; align-items:start }
.pending { font-size:12px; color:var(--muted) }
.footer-phone { display:inline-flex; min-height:44px; align-items:center }
.footer-details nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 32px }
.footer-link { font-size:14px; letter-spacing:.06em; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px }
.footer-link:hover { color:var(--indigo) }
.copyright { font-size:11px; color:var(--muted); margin-top:60px }
.motion { position:fixed; bottom:20px; right:24px; z-index:30; display:flex; gap:10px; align-items:center; padding:4px 10px 4px 14px; background:var(--paper); border:1px solid var(--line); font-size:12px }
.motion select { background:transparent; border:0; min-height:44px; padding:0 20px 0 4px }
.motion small { display:none }
.motion.is-reduced small { display:block; padding-block:12px }
.motion.is-reduced label,.motion.is-reduced select { display:none }
@keyframes arrive { from{opacity:.25} to{opacity:1} }
@keyframes quiet { from{opacity:0} to{opacity:1} }
@keyframes settle { from{transform:scale(1.06)} to{transform:scale(1)} }
@keyframes window-open { from{clip-path:inset(0 100% 0 0)} to{clip-path:inset(0)} }
[data-motion=subtle] .hero-copy,[data-motion=subtle] .hero-mark { animation:arrive 900ms var(--ease) both }
[data-motion=subtle] .landscape img { animation:settle 1100ms var(--ease) both }
[data-motion=subtle] .in-view { animation:quiet 950ms var(--ease) both }
[data-motion=bold] .hero-copy,[data-motion=bold] .hero-mark { animation:arrive 1000ms var(--ease) both }
[data-motion=bold] .landscape { animation:window-open 1100ms var(--ease) both }
[data-motion=bold] .in-view { animation:quiet 1000ms var(--ease) both; animation-delay:var(--delay,0ms) }
[data-motion=bold] .entry.in-view .photo img,[data-motion=bold] .product.in-view img { animation:settle 1100ms var(--ease) both }
[data-motion=none] *,[data-motion=none] *::before,[data-motion=none] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important }
@media (max-width:1190px) {
.site-header { padding-inline:22px; gap:20px }
.nav{gap:12px;font-size:11px}
.brand span{font-size:23px}
.brand img{width:38px}
.consult{padding:10px 13px}
}
@media (max-width:1020px) {
.site-header{height:80px;padding:0 20px;gap:8px}
.menu-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;font-size:23px;grid-column:1;justify-self:start}
.brand{position:absolute;left:50%;transform:translateX(-50%);gap:7px}
.brand img{width:32px}
.brand span{font-size:24px}
.nav-right{grid-column:3;gap:4px}
.nav-right>a{display:none}
.nav-right .phone{display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;font:500 11px/1 var(--sans)}
.languages{font-size:11px}
.nav-left{display:none}
.site-header.menu-open .nav-left{display:flex;position:absolute;top:80px;inset-inline:0;padding:22px 24px 28px;gap:2px;background:var(--paper);flex-direction:column;align-items:stretch;box-shadow:0 12px 14px #0000000a;max-height:calc(100svh - 160px);overflow:auto}
.nav-left a{font-size:15px;min-height:48px}
.mobile-extra{display:block}
.mobile-consult{display:block;position:fixed;bottom:16px;left:16px;padding:12px 20px;background:var(--indigo);color:white;z-index:30;min-height:48px;font-size:13px}
.motion{bottom:16px;right:16px}
.footer-details{grid-template-columns:1fr;gap:32px}
}
@media (max-width:760px) {
.site-header{padding-inline:14px}
.brand span{font-size:22px}
.brand img{width:29px}
.brand{gap:6px}
.languages{gap:3px}
.text-link,.all-link,.brand-link{font-size:12px;gap:26px}
.site-footer{padding:70px 24px 110px}
.footer-details{margin-top:36px}
.footer-details nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}
.copyright{margin-top:40px}
}
@media (prefers-reduced-motion:reduce) {
*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
.external-arrow { display:inline-block; width:1em; height:1em; vertical-align:-.12em; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round }
@media(max-width:760px){.footer-link{font-size:13px;letter-spacing:.02em}} /* footer 2026-10-20 */
