*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul,ol{margin:0;padding:0;list-style:none}img,picture,svg,video{display:block;max-width:100%;height:auto}a{color:inherit}button,input,textarea,select{font:inherit;color:inherit}table{border-collapse:collapse;border-spacing:0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}:root{--color-bg: #FFFFFF;--color-bg-alt: #F4F0E6;--color-text: #000000;--color-text-muted: #6B655C;--color-accent: #8B3A3A;--color-rule: #D8D2C4;--color-link: #000000;--color-link-hover: #8B3A3A;--font-serif: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;--font-sans: "Noto Sans JP", "Yu Gothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;--fs-h1: 2.4rem;--fs-h2: 1.6rem;--fs-h3: 1.2rem;--fs-body: 1rem;--fs-small: .85rem;--lh-tight: 1.5;--lh-body: 1.95;--lh-loose: 2.2;--ls-base: .05em;--ls-heading: .08em;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 4rem;--space-xl: 6rem;--space-2xl: 8rem}@media (max-width: 768px){:root{--fs-h1: 1.8rem;--fs-h2: 1.3rem;--fs-h3: 1.1rem;--space-xl: 4.5rem;--space-2xl: 5.5rem}}html{font-size:100%;color-scheme:light}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-serif);font-weight:400;font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.container{max-width:720px;padding:0 var(--space-md);margin:0 auto}.container-wide{max-width:960px;padding:0 var(--space-md);margin:0 auto}a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:.5px;text-underline-offset:4px;transition:color .3s ease}a:hover{color:var(--color-link-hover)}h1,h2,h3{font-family:var(--font-serif);font-weight:500;line-height:var(--lh-tight);letter-spacing:var(--ls-heading)}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}p{line-height:var(--lh-body)}p+p{margin-top:var(--space-md)}hr{border:none;border-top:.5px solid var(--color-rule);margin:var(--space-xl) auto;width:60px}.site-header{padding:var(--space-lg) 0 var(--space-md)}.site-header__inner{display:flex;align-items:center}.site-logo{font-family:var(--font-serif);font-weight:500;font-size:.95rem;letter-spacing:.3em;text-decoration:none;color:var(--color-text);display:inline-block;line-height:1}.site-logo:hover{color:var(--color-link-hover)}.hero{padding:var(--space-xl) 0 var(--space-2xl)}.hero__title{font-size:var(--fs-h1);font-weight:500;margin-bottom:var(--space-lg);letter-spacing:.12em}.hero__lead{font-family:var(--font-serif);font-weight:400;font-size:1.05rem;line-height:var(--lh-loose);color:var(--color-text);letter-spacing:var(--ls-heading)}.section{padding:var(--space-2xl) 0}.section+.section{padding-top:0}.section__heading{margin-bottom:var(--space-lg);position:relative;padding-bottom:var(--space-sm)}.section__heading:after{content:"";display:block;width:40px;height:.5px;background-color:var(--color-accent);position:absolute;left:0;bottom:0}.section__body>p+p{margin-top:var(--space-md)}.dot-list{margin:var(--space-md) 0;padding-left:0}.dot-list li{position:relative;padding-left:1.4em;line-height:var(--lh-body)}.dot-list li+li{margin-top:var(--space-xs)}.dot-list li:before{content:"・";position:absolute;left:0;top:0;color:var(--color-text-muted)}.diagram{margin:var(--space-lg) auto;padding:0;max-width:460px;width:100%;color:var(--color-text)}.diagram--wide{max-width:600px}.diagram svg{width:100%;height:auto;display:block}@media (max-width: 768px){.diagram{margin:var(--space-md) auto}}.benefits{margin-top:var(--space-lg)}.benefits__item+.benefits__item{margin-top:var(--space-xl)}.benefits__heading{font-size:var(--fs-h3);font-weight:500;margin-bottom:var(--space-md);letter-spacing:var(--ls-heading);color:var(--color-text)}.requirements{background-color:var(--color-bg-alt);padding:var(--space-2xl) 0}.requirements-table{width:100%;border-collapse:collapse;margin-top:var(--space-lg)}.requirements-table th,.requirements-table td{text-align:left;padding:var(--space-sm) var(--space-md);border-bottom:.5px solid var(--color-rule);font-weight:400;vertical-align:top}.requirements-table th{width:32%;color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--fs-small);letter-spacing:var(--ls-base);white-space:nowrap}.requirements-table td{font-family:var(--font-serif)}.requirements__note{margin-top:var(--space-md);font-family:var(--font-sans);font-size:var(--fs-small);color:var(--color-text-muted);letter-spacing:var(--ls-base)}.contact{padding:var(--space-2xl) 0;text-align:center}.contact__heading{margin-bottom:var(--space-lg)}.contact__lead{margin-bottom:var(--space-lg);line-height:var(--lh-loose)}.contact__buttons{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);margin-top:var(--space-lg)}.button{display:inline-block;padding:var(--space-sm) var(--space-lg);border:.5px solid var(--color-text);background:transparent;color:var(--color-text);font-family:var(--font-serif);font-size:var(--fs-body);letter-spacing:var(--ls-heading);text-decoration:none;transition:color .3s ease,background-color .3s ease;min-width:260px;text-align:center}.button:hover{background:var(--color-text);color:var(--color-bg)}.site-footer{border-top:.5px solid var(--color-rule);padding:var(--space-lg) 0 var(--space-xl);margin-top:var(--space-xl);font-family:var(--font-sans);font-size:var(--fs-small);color:var(--color-text-muted);letter-spacing:var(--ls-base)}.site-footer__inner>p+p{margin-top:var(--space-xs)}.site-footer a{color:var(--color-text-muted)}.site-footer a:hover{color:var(--color-link-hover)}@media (max-width: 768px){.site-header{padding:var(--space-md) 0 var(--space-sm)}.hero{padding:var(--space-lg) 0 var(--space-xl)}.hero__title{letter-spacing:.08em}.section,.requirements,.contact{padding:var(--space-xl) 0}.requirements-table th,.requirements-table td{display:block;width:100%;padding:var(--space-xs) 0;border-bottom:none}.requirements-table th{padding-top:var(--space-sm);border-top:.5px solid var(--color-rule)}.requirements-table td{padding-bottom:var(--space-sm)}.requirements-table tr:first-child th{border-top:none}}
