/* OPC: shared layout. Content remains in WordPress. */
:root{--ink:#101b2c;--navy:#03131d;--line:#949ba9;--paper:#f7f8fa;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:var(--serif);font-weight:600;line-height:1.8}a,a:visited{color:inherit}a{text-decoration:none}a:hover{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid #a27a36;outline-offset:5px}img{vertical-align:middle}button{font:inherit;cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:600}section[id]{scroll-margin-top:24px}.site{width:100%;overflow:clip}.opc-header{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:12px 3%;background:#fff;position:relative;z-index:10}.opc-brand{display:flex;align-items:center;gap:20px;flex-shrink:0}.brand-mark{width:92px;height:62px;display:block;background:url('../images/design-top.webp') -39px -13px/1073px 855px no-repeat}.brand-name{font-family:Georgia,var(--serif);font-size:19px;line-height:1.5;white-space:nowrap;font-weight:400}.brand-name small{display:block;font-family:var(--serif);font-size:12px;font-weight:700;letter-spacing:.04em}.opc-navigation{display:flex;align-items:center;gap:28px}.opc-navigation ul{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}.opc-navigation li a{font-size:12px;white-space:nowrap;display:block;text-align:center}.opc-navigation small{display:block;font-family:Georgia,serif;font-size:10px;letter-spacing:.02em;margin-top:4px}.header-contact{display:flex;align-items:center;justify-content:center;gap:16px;background:var(--navy);color:#fff!important;padding:10px 25px;border:1px solid #3c4651;min-height:58px;white-space:nowrap;font-size:15px;line-height:1.4}.header-contact small{text-align:center}.header-contact:hover{background:#233348}.envelope{display:inline-block;width:28px;height:20px;border:1px solid currentColor;background:linear-gradient(34deg,transparent 48%,currentColor 49%,currentColor 51%,transparent 52%) left/50% 100% no-repeat,linear-gradient(-34deg,transparent 48%,currentColor 49%,currentColor 51%,transparent 52%) right/50% 100% no-repeat}.opc-menu-toggle{display:none}.opc-footer{background:var(--navy);color:#fff;display:flex;align-items:center;gap:32px;padding:16px 3%;border-top:1px solid #a6abb1;font-size:12px;font-weight:400}.footer-brand{display:flex;align-items:center;gap:24px;white-space:nowrap;font-family:Georgia,serif;font-size:16px}.footer-monogram{font-family:Georgia,serif;letter-spacing:-.28em;font-size:42px;line-height:1;padding-right:.28em}.footer-motto{margin-left:auto;font-size:11px;letter-spacing:.05em}.opc-page,body:not(.home) .site-main{width:min(1080px,90%);margin:70px auto;min-height:50vh}.opc-page h1{font-size:36px;border-bottom:1px solid var(--line);padding-bottom:20px}.opc-page .entry-content{margin-top:30px}.opc-page table{border-collapse:collapse}.opc-page input,.opc-page textarea{font:inherit}.screen-reader-text:focus{z-index:99999}
@media(min-width:1440px){.opc-header{padding-inline:max(3%,calc((100% - 1360px)/2))}}
@media(max-width:1200px){.opc-header{gap:18px;padding-inline:24px}.opc-brand{gap:14px}.brand-name{font-size:16px}.brand-name small{font-size:10px}.opc-navigation,.opc-navigation ul{gap:20px}.header-contact{padding-inline:18px}}
@media(max-width:1024px){.opc-header{min-height:80px}.opc-menu-toggle{display:flex;gap:12px;align-items:center;background:none;border:1px solid var(--ink);border-radius:0;font-size:12px;padding:8px 12px;color:var(--ink)}.opc-menu-toggle span{font-size:20px}.opc-navigation{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:24px;border-top:1px solid #ddd;box-shadow:0 12px 15px #0002}.opc-navigation.is-open{display:flex;flex-direction:column;align-items:stretch}.opc-navigation ul{flex-wrap:wrap;justify-content:center}.opc-navigation li a{font-size:15px}.opc-footer{flex-wrap:wrap;gap:12px 24px}.footer-motto{width:100%;margin:0}}
@media(max-width:600px){.opc-header{min-height:76px;padding:12px 16px;gap:10px}.brand-mark{width:60px;height:42px;background-size:697.45px 555.75px;background-position:-25.35px -8.45px}.opc-brand{gap:10px}.brand-name{font-size:12px}.brand-name small{font-size:8px;letter-spacing:0}.opc-menu-toggle{font-size:10px;padding:6px 8px;gap:6px}.opc-footer{padding:24px}.footer-brand{font-size:14px}.footer-company{font-size:11px}.footer-motto{font-size:9px}.opc-page{margin-block:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.footer-monogram{font-size:0;width:55px;height:40px;display:block;padding:0;background:url('../images/design-top.webp') -23.4px -7.8px/643.8px 513px no-repeat;filter:invert(1) grayscale(1);mix-blend-mode:screen}

/* Sticky navigation, including the WordPress admin toolbar. */
:root { --opc-header-height:92px; --opc-toolbar-height:0px; }
body.admin-bar { --opc-toolbar-height:32px; }
.opc-header { position:sticky; top:var(--opc-toolbar-height); z-index:100; box-shadow:0 2px 12px #03131d14; }
section[id], #primary { scroll-margin-top:calc(var(--opc-header-height) + var(--opc-toolbar-height) + 24px); }
@media(max-width:1024px) {
  .opc-navigation { max-height:calc(100dvh - var(--opc-header-height) - var(--opc-toolbar-height)); overflow-y:auto; }
}
@media(max-width:782px) { body.admin-bar { --opc-toolbar-height:46px; } }
@media(max-width:600px) { body.admin-bar { --opc-toolbar-height:0px; } }
