/* Shared navigation. Kept separate from the existing page styles. */
.ds-header { --ds-ink:#0f172a; --ds-muted:#64748b; --ds-gold:#967520; --ds-line:#e8e2d4; }
.ds-bar { height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.ds-brand { flex-shrink:0; }
.ds-brand img { display:block; height:36px; width:auto; max-width:100%; }
.ds-navigation { display:flex; align-items:center; gap:8px; }
.ds-toplink,.ds-trigger { display:flex; align-items:center; justify-content:center; gap:10px; padding:14px 15px; font:500 14px/1.5 'Noto Sans JP',sans-serif; color:var(--ds-ink); white-space:nowrap; border:0; background:transparent; cursor:pointer; border-radius:6px; }
.ds-toplink:hover,.ds-trigger:hover,.ds-trigger[aria-expanded="true"],.ds-header [aria-current="page"] { color:var(--ds-gold); background:#faf6ed; }
.ds-contact { margin-left:12px; padding:12px 22px; border:1px solid #c5a35a; border-radius:999px; color:#73581b; }
.ds-chevron { width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); }
.ds-trigger[aria-expanded="true"] .ds-chevron { transform:rotate(225deg); }
.ds-mega { position:absolute; top:100%; left:0; right:0; max-height:calc(100vh - 80px); overflow-y:auto; overscroll-behavior:contain; background:#fff; border-top:1px solid var(--ds-line); border-bottom:3px solid #c5a35a; box-shadow:0 20px 35px #0f172a24; padding:28px max(24px, calc((100% - 1160px) / 2)) 0; }
.ds-mega[hidden] { display:none; }
.ds-mega-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.ds-mega-heading span { font:600 10px/1.5 sans-serif; letter-spacing:.22em; color:var(--ds-gold); }
.ds-mega-heading h2 { font-size:23px; line-height:1.5; margin-top:3px; color:var(--ds-ink); }
.ds-mega-heading p { font-size:13px; color:var(--ds-muted); }
.ds-columns { display:grid; grid-template-columns:1fr 1fr 1fr; gap:32px; }
.ds-group h3 { font-size:13px; color:var(--ds-gold); padding-bottom:12px; border-bottom:1px solid var(--ds-line); margin-bottom:8px; }
.ds-service { display:block; padding:12px; margin:2px -12px; border-radius:6px; color:var(--ds-ink); }
.ds-service strong { display:flex; justify-content:space-between; gap:10px; font-size:15px; font-weight:500; }
.ds-service strong span { color:var(--ds-gold); }
.ds-service small { display:block; font-size:11px; color:var(--ds-muted); margin-top:4px; }
.ds-service:hover { color:var(--ds-gold); background:#faf6ed; }
.ds-mega-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--ds-line); margin-top:24px; padding:18px 0; font-size:12px; }
.ds-mega-bottom p { color:var(--ds-muted); }
.ds-mega-bottom a { color:var(--ds-gold); font-weight:600; }
.ds-toggle { display:none; }
.ds-header a:focus-visible,.ds-header button:focus-visible { outline:2px solid #967520; outline-offset:3px; }
#contact { scroll-margin-top:96px; }
@media(max-width:1000px) {
 .ds-bar { height:72px; gap:12px; }
 .ds-brand { min-width:0; }
 .ds-brand img { max-width:calc(100vw - 100px); height:auto; max-height:36px; }
 .ds-toggle { display:flex; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; flex-shrink:0; border:0; background:transparent; cursor:pointer; padding:10px; }
 .ds-toggle span { width:24px; height:2px; background:var(--ds-ink); }
 .ds-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
 .ds-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
 .ds-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
 .ds-navigation { display:none; position:absolute; top:100%; left:0; right:0; padding:16px 24px 24px; background:white; border-top:1px solid var(--ds-line); box-shadow:0 20px 35px #0f172a24; max-height:calc(100vh - 72px); max-height:calc(100dvh - 72px); overflow-y:auto; overscroll-behavior:contain; }
 .ds-navigation.is-open { display:block; }
 .ds-toplink,.ds-trigger { justify-content:space-between; width:100%; padding:15px 0; border-radius:0; border-bottom:1px solid var(--ds-line); text-align:left; }
 .ds-contact { margin:16px 0 0; padding:12px; justify-content:center; border:1px solid #c5a35a; border-radius:999px; }
 .ds-mega { position:static; max-height:none; overflow:visible; box-shadow:none; padding:20px 16px 0; border:0; background:#faf9f6; }
 .ds-mega-heading { display:none; }
 .ds-columns { grid-template-columns:1fr; gap:20px; }
 .ds-service { padding:12px 8px; margin:2px -8px; }
 .ds-mega-bottom { display:block; line-height:1.8; }
 .ds-mega-bottom a { display:inline-block; padding:10px 0; }
}
/* Primary ARC service pages, ordered exactly as the source deck's six tiles. */
.ds-core { padding-bottom:24px; }
.ds-core-heading { display:flex; gap:16px; align-items:baseline; margin-bottom:14px; }
.ds-core-heading>span { color:var(--ds-gold); font:600 10px/1.5 sans-serif; letter-spacing:.15em; }
.ds-core-heading h3 { font-size:16px; color:var(--ds-ink); }
.ds-core-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.ds-core-card { display:flex; gap:12px; align-items:flex-start; position:relative; padding:17px 30px 17px 16px; background:#f8f6f0; border:1px solid #e8dfca; border-radius:6px; color:var(--ds-ink); }
.ds-core-number { color:var(--ds-gold); font:500 11px/1.7 sans-serif; }
.ds-core-card strong { display:block; font:600 16px/1.4 Inter,sans-serif; }
.ds-core-jp { display:block; font-size:12px; color:#7e6326; margin-top:4px; }
.ds-core-card small { display:block; font-size:10px; line-height:1.6; color:var(--ds-muted); margin-top:7px; }
.ds-core-arrow { position:absolute; top:15px; right:12px; color:var(--ds-gold); }
.ds-core-card:hover,.ds-core-card[aria-current="page"] { background:#f0e6cd; border-color:#c5a35a; }
.ds-other-heading { border-top:1px solid var(--ds-line); padding-top:20px; margin-bottom:16px; color:var(--ds-muted); font-size:12px; }
.ds-mega-heading { margin-bottom:18px; }
.ds-columns .ds-service { padding-top:8px; padding-bottom:8px; }
.ds-columns .ds-service small { display:none; }
.ds-columns .ds-service strong { font-size:13px; }
@media(max-width:1000px){
 .ds-core-grid { grid-template-columns:1fr 1fr; }
 .ds-core-heading { display:block; }
 .ds-core-heading h3 { margin-top:5px; font-size:15px; }
 .ds-core-card { background:#fff; }
 .ds-core-card strong { font-size:14px; }
 .ds-core-card small { display:none; }
}
@media(max-width:600px){
 .ds-core-grid { grid-template-columns:1fr; gap:8px; }
 .ds-core-card { padding:14px 28px 14px 12px; }
}
