:root{--bg: #f1f6f8;--surface: #ffffff;--surface-alt: #fdfbf4;--surface-sky: #e8f2f6;--sumi: #23404f;--sumi-mid: #4d6a7a;--sumi-soft: #55707e;--line: #d5e3e9;--line-strong: #b9ceda;--vermilion: #d6402a;--vermilion-deep: #b8331f;--vermilion-soft: #fdeeeb;--vermilion-line: #f3c9c1;--leaf: #2d7343;--leaf-soft: #eaf6ee;--leaf-line: #c4e3ce;--marigold: #f5c04a;--marigold-soft: #fdf4dd;--maru: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Noto Sans JP", sans-serif;--sans: "Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--mono-fig: "BIZ UDGothic", "Osaka-Mono", "MS Gothic", monospace;--round-lg: 22px;--round: 16px;--round-sm: 10px;--round-pill: 999px;--shadow-card: 0 2px 0 rgba(35, 64, 79, .05), 0 10px 24px rgba(35, 64, 79, .07);--shadow-card-hover: 0 2px 0 rgba(35, 64, 79, .06), 0 16px 32px rgba(35, 64, 79, .12);--shadow-btn: 0 3px 0 var(--vermilion-deep);--nav-h: 66px;--max-w: 1040px;--space: 24px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px);scroll-padding-bottom:96px}body{font-family:var(--sans);background:var(--bg);color:var(--sumi);font-size:16px;line-height:1.95;-webkit-font-smoothing:antialiased}::selection{background:var(--marigold-soft);color:var(--sumi)}a{color:inherit}:focus-visible{outline:2px solid var(--vermilion);outline-offset:3px;border-radius:4px}.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:16px;top:16px;z-index:200;background:var(--surface);color:var(--vermilion-deep);font-family:var(--maru);font-weight:700;padding:12px 20px;border-radius:var(--round-pill);box-shadow:var(--shadow-card)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--maru);font-weight:700;font-size:15px;line-height:1;min-height:48px;padding:15px 26px;border:none;border-radius:var(--round-pill);text-decoration:none;cursor:pointer;transition:transform .12s,box-shadow .12s,background .15s}.btn--primary{background:var(--vermilion);color:var(--surface);box-shadow:var(--shadow-btn)}.btn--primary:hover{background:var(--vermilion-deep)}.btn--primary:active{transform:translateY(2px);box-shadow:0 1px 0 var(--vermilion-deep)}.btn--soft{background:var(--surface);color:var(--vermilion-deep);border:2px solid var(--vermilion)}.btn--soft:hover{background:var(--vermilion-soft)}.btn--lg{font-size:17px;min-height:56px;padding:18px 34px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--round);box-shadow:var(--shadow-card)}.panel{background:var(--surface-alt);border:1px solid var(--marigold);border-radius:var(--round)}.chip{display:inline-flex;align-items:center;font-family:var(--maru);font-weight:500;font-size:13.5px;line-height:1;padding:8px 15px;border-radius:var(--round-pill);background:var(--surface-sky);color:var(--sumi-mid);text-decoration:none}a.chip{min-height:40px;padding:11px 16px}a.chip:hover{background:var(--vermilion-soft);color:var(--vermilion-deep)}.bubble{position:relative;background:var(--surface);border:2px solid var(--line-strong);border-radius:var(--round-lg);padding:22px 26px}.bubble:before,.bubble:after{content:"";position:absolute;left:40px;width:0;height:0;border-style:solid}.bubble:before{bottom:-18px;border-width:18px 15px 0 0;border-color:var(--line-strong) transparent transparent transparent}.bubble:after{bottom:-14px;border-width:15px 12px 0 0;border-color:var(--surface) transparent transparent transparent}.bubble--sky{background:var(--surface-sky);border-color:var(--line-strong)}.bubble--sky:after{border-top-color:var(--surface-sky)}section{max-width:var(--max-w);margin:0 auto;padding:0 var(--space)}.section-label{display:inline-flex;align-items:center;gap:8px;font-family:var(--maru);font-weight:700;font-size:14px;color:var(--vermilion-deep);background:var(--vermilion-soft);padding:7px 16px;border-radius:var(--round-pill);margin-bottom:20px}.page-title{font-family:var(--maru);font-weight:900;font-size:clamp(30px,4.8vw,44px);line-height:1.45;margin-bottom:20px}.section-title{font-family:var(--maru);font-weight:700;font-size:clamp(24px,3.6vw,34px);line-height:1.55;margin-bottom:20px}.lead{font-size:16.5px;color:var(--sumi-mid);line-height:2;max-width:660px;margin-bottom:40px}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;color:var(--sumi-soft);margin-bottom:32px}.breadcrumb a{display:inline-flex;align-items:center;min-height:40px;padding:8px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--round-pill);color:var(--sumi-mid);text-decoration:none;transition:border-color .2s,color .2s}.breadcrumb a:hover{color:var(--vermilion-deep);border-color:var(--vermilion-line)}nav.site-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#ffffffeb;backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav-inner{max-width:var(--max-w);margin:0 auto;padding:0 var(--space);height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:16px}.nav-logo{display:inline-flex;align-items:center;min-height:44px;font-family:var(--maru);font-weight:900;font-size:22px;color:var(--sumi);text-decoration:none;white-space:nowrap}.nav-logo .dot{color:var(--vermilion)}.nav-right{display:flex;align-items:center;gap:22px}.nav-links{display:flex;gap:18px}.nav-links a{display:inline-flex;align-items:center;min-height:44px;padding:10px 4px;font-family:var(--maru);font-weight:500;font-size:15px;color:var(--sumi-mid);text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--vermilion-deep)}.nav-cta{font-size:14.5px;min-height:44px;padding:13px 22px}.nav-links a[href="/contact/"]{display:none}html.nav-open,html.nav-open body{overflow:hidden}.hamburger{display:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--round-pill);cursor:pointer;width:46px;height:46px;position:relative;z-index:110}.hamburger span{display:block;width:20px;height:2px;border-radius:var(--round-pill);background:var(--sumi-mid);position:absolute;left:13px;transition:all .25s}.hamburger span:nth-child(1){top:16px}.hamburger span:nth-child(2){top:22px}.hamburger span:nth-child(3){top:28px}.hamburger[aria-expanded=true]{border-color:var(--vermilion-line)}.hamburger[aria-expanded=true] span{background:var(--vermilion-deep)}.hamburger[aria-expanded=true] span:nth-child(1){top:22px;transform:rotate(45deg)}.hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.hamburger[aria-expanded=true] span:nth-child(3){top:22px;transform:rotate(-45deg)}footer.site-footer{background:var(--surface);border-top:1px solid var(--line);padding:40px 0 32px;margin-top:100px}.footer-inner{max-width:var(--max-w);margin:0 auto;padding:0 var(--space);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:15px;color:var(--sumi-soft)}.footer-inner a{display:inline-flex;align-items:center;min-height:44px;color:var(--sumi-mid);text-decoration:none;transition:color .2s}.footer-inner a:hover{color:var(--vermilion-deep)}.footer-links{display:flex;gap:20px;flex-wrap:wrap}.mobile-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#fffffff2;backdrop-filter:blur(12px);border-top:1px solid var(--line)}.mobile-cta .btn{width:100%}.mobile-cta{transform:translateY(110%);transition:transform .25s ease}.mobile-cta.is-shown{transform:translateY(0)}@media(max-width:820px){:root{--space: 20px}.nav-links{display:none}.hamburger{display:block}.nav-cta{display:none}.nav-right{display:contents}.nav-links.open{display:flex;flex-direction:column;position:fixed;top:var(--nav-h);left:0;right:0;height:calc(100vh - var(--nav-h));height:calc(100dvh - var(--nav-h));background:var(--bg);padding:32px var(--space);gap:8px;z-index:100;overflow-y:auto}.nav-links a[href="/contact/"]{display:inline-flex}.nav-links.open a{font-family:var(--maru);font-weight:700;font-size:19px;color:var(--sumi);background:var(--surface);border:1px solid var(--line);border-radius:var(--round);padding:18px 22px}.mobile-cta{display:block}body{padding-bottom:calc(80px + env(safe-area-inset-bottom))}footer.site-footer{margin-top:72px}.footer-inner{flex-direction:column;align-items:flex-start;gap:4px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
