/* 白い紙面・細い罫線・明朝の文字組み。緑点の流線は独立したブランド表現。 */
@font-face{font-family:'Noto Serif JP';src:url('assets/fonts/NotoSerifJP-sub.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Noto Sans JP';src:url('assets/fonts/NotoSansJP-sub.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Noto Sans JP';src:url('assets/fonts/NotoSansJP-Bold-sub.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('assets/fonts/SpaceGrotesk-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('assets/fonts/SpaceGrotesk-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--paper:#fff;--ink:#101713;--body:#474f49;--muted:#68706a;--green:#276e53;--line:#dfe3df;--serif:var(--sans);--sans:'Space Grotesk','Noto Sans JP',sans-serif;--gutter:clamp(22px,4.2vw,64px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.95 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}p,h1,h2,h3,ol,dl,dd,figure{margin:0}h1,h2,h3{font:700 1em var(--sans);letter-spacing:-.025em}p{text-wrap:pretty}img{display:block;max-width:100%}button{font:inherit}::selection{background:#d5e9dc}:focus-visible{outline:2px solid var(--green);outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip-link{position:fixed;top:-100px;left:20px;background:white;padding:10px;z-index:200}.skip-link:focus{top:10px}.container{width:100%;max-width:1440px;padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:112px;border-top:1px solid var(--line)}h2{font-size:clamp(28px,3.1vw,44px);line-height:1.6;letter-spacing:-.025em}.lead-label{display:flex;gap:16px;align-items:center;font-size:14px;line-height:1.5;color:var(--muted);margin-bottom:42px}.lead-label__num{font-family:monospace;color:var(--green);letter-spacing:.04em}.lead-label__title{letter-spacing:.08em}.lead-label:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green)}
/* ナビ：影・ガラスなしの白い紙面 */
.nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:32px;padding:19px var(--gutter);border-bottom:1px solid var(--line);background:white}.nav__logo{display:flex;flex-direction:column;text-decoration:none;margin-right:auto}.nav__name{font:400 18px/1.65 var(--serif);letter-spacing:.05em}.nav__domain{font:13px/1.6 var(--sans);color:var(--muted)}.nav__links{display:flex;gap:30px}.nav__links a{text-decoration:none;font-size:14px}.nav a:hover{color:var(--green)}.button{display:inline-flex;gap:24px;align-items:center;justify-content:center;padding:15px 24px;border:1px solid var(--green);border-radius:999px;background:var(--green);color:white;font-size:14px;text-decoration:none;transition:background .25s,border-color .25s}.button:hover{background:var(--green);border-color:var(--green);color:white!important}.button--small{padding:10px 18px;font-size:14px}.button--ghost{background:white;color:var(--ink);border-color:var(--line)}.text-link{display:inline-flex;align-items:center;gap:20px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px;text-decoration:none}.text-link:hover{color:var(--green);border-color:var(--green)}
/* ヒーロー：点群は箱ではなく、白い空間に流れる縦の軌跡。 */
.hero{position:relative;isolation:isolate;overflow:hidden;padding:48px 0 56px;min-height:max(650px,calc(100svh - 86px))}.hero__inner{position:relative;z-index:1}.hero .button{text-shadow:none}.hero__meta{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;font-size:13px;color:var(--muted);margin-bottom:72px}.hero__status{display:flex;gap:12px;align-items:flex-start;max-width:42em}.hero__status-text span{display:block;margin-top:4px}.hero__status-dot{width:5px;height:5px;border-radius:50%;background:var(--green);flex:none;margin-top:8px}.hero__area{font-family:monospace;letter-spacing:.05em}.hero__composition{display:block;padding-top:68px}.hero__heading{position:relative;max-width:66%;padding-bottom:0}.hero h1{font-size:clamp(38px,5.25vw,76px);line-height:1.5;letter-spacing:-.025em;max-width:12em}.hero h1 span{color:var(--green)}.hero__actions{display:flex;align-items:center;gap:26px;margin-top:34px;flex-wrap:wrap}.hero__copy{padding:0;position:relative;max-width:32em;margin-top:34px}.hero__sub{font-size:16px;line-height:2.15;max-width:29em;color:var(--body)}.hero__note{font-size:14px;color:var(--muted);margin-top:22px}.hero__art{position:absolute;inset:-10% -5% -10% 5%;width:100%;height:120%;z-index:0;pointer-events:none;transform:rotate(14deg)}.hero__art img,.hero__canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.hero__canvas{display:none}.hero__art.is-canvas .hero__canvas{display:block}.hero__art.is-canvas img{visibility:hidden}.motion-toggle{display:block;margin:56px 0 0 auto;background:white;border:0;border-bottom:1px solid var(--line);padding:8px 0;font-size:13px;color:var(--muted);cursor:pointer;position:relative;z-index:2}.motion-toggle:hover{color:var(--green)}
/* サービス：説明とサービスを異なる密度で組む */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:80px}.split__heading>p{font-size:16px;color:var(--body);margin-top:22px}.split__heading>.text-link{margin-top:24px}#philosophy .split{display:contents}#philosophy .split__heading{display:grid;grid-template-columns:1.1fr 1fr;gap:0 80px}#philosophy h2{grid-row:span 2}#philosophy .split__heading p{margin-top:0}#philosophy .split__heading p+p{margin-top:16px}.service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:64px}.service{padding:30px 32px 0 0;border-top:1px solid var(--ink)}.service+.service{padding-left:32px;border-left:1px solid var(--line)}.service h3{font-size:22px;line-height:1.7;min-height:72px;margin-bottom:18px}.service p{font-size:16px;color:var(--body)}.service__items{list-style:none;padding:0;margin:22px 0 0}.service__items li{font-size:14px;color:var(--muted);padding:5px 0}.service__items li:before{content:'＋';color:var(--green);margin-right:10px}
/* 制作事例：画像を額縁に入れず、記事として左右に配置。 */
.works__heading{display:flex;justify-content:space-between;gap:40px;align-items:end}.works__heading .text-link{flex:none}.works__case{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:72px;align-items:center;margin-top:60px}.works__shot{grid-column:2;grid-row:1;position:relative;background:#f3f5f3;padding:0;overflow:hidden;text-decoration:none;border:1px solid var(--line)}.works__shot img{width:100%;height:auto;transition:filter .4s;filter:saturate(.6)}.works__shot:hover img{filter:saturate(1)}.works__desc{grid-column:1;grid-row:1}.works__meta{display:flex;gap:22px;font-size:13px;color:var(--muted);margin-bottom:22px}.works__desc h3{font-size:32px;margin-bottom:22px;line-height:1.5}.works__desc>p{font-size:16px;color:var(--body);max-width:35em}.works__details{font-size:14px;margin:26px 0}.works__details>div{display:grid;grid-template-columns:66px 1fr;gap:16px;border-top:1px solid var(--line);padding:12px 0}.works__details dt{color:var(--muted)}.works__note{font-size:14px;max-width:66em;color:var(--muted);margin:34px 0 0 auto}
/* 料金：制作と保守を分ける。金額は大きくしすぎない。 */
.price-list{display:grid;grid-template-columns:1fr 1fr;gap:0 64px}.price-category{grid-column:1/-1;font-size:14px;color:var(--muted);padding-bottom:20px}.price-row{padding:26px 0;border-top:1px solid var(--ink)}.price-row__top{display:flex;gap:18px;align-items:baseline;justify-content:space-between;margin-bottom:20px}.price-row h3{font-size:18px;line-height:1.7}.price{font-size:25px;font-family:var(--serif);color:var(--green);white-space:nowrap}.price-row>p{font-size:14px;color:var(--body);max-width:45em}.price-notes{margin-top:30px;padding-top:24px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:16px 64px;font-size:14px;color:var(--muted)}.price-notes .text-link{justify-self:start}
/* 工程：横並びのカードではなく、見出しと細いレールの組み合わせ */
#flow .container{display:grid;grid-template-columns:1fr 1.25fr;gap:0 80px}#flow .lead-label{grid-column:1/-1}#flow h2{grid-column:1;font-size:clamp(28px,2.65vw,40px);max-width:13em}.flow-steps{grid-column:2;list-style:none;padding:0;border-top:1px solid var(--ink)}.flow-steps li{display:grid;grid-template-columns:42px 1fr;gap:4px 16px;padding:24px 0;border-bottom:1px solid var(--line)}.flow-steps__num{font-family:monospace;font-size:14px;color:var(--green);grid-row:span 3;padding-top:3px}.flow-steps__span{font-size:13px;color:var(--muted);grid-column:2}.flow-steps h3{font-size:21px;line-height:1.6;grid-column:2;margin:6px 0 12px}.flow-steps p:last-child{grid-column:2;color:var(--body);font-size:14px}
/* よくある質問と担当者 */
.faq h2{font-size:clamp(28px,2.6vw,38px)}.faq-list{border-top:1px solid var(--ink)}.faq details{border-bottom:1px solid var(--line)}.faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;padding:21px 0;font-size:16px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'＋';flex:none;color:var(--green)}.faq details[open] summary:after{content:'−'}.faq details p{font-size:14px;color:var(--body);padding-bottom:24px}.about__body{padding-top:26px;border-top:1px solid var(--ink)}.about__name{font-size:30px;font-family:var(--serif);margin-bottom:22px}.about__name span{display:block;font:14px var(--sans);color:var(--muted);margin-top:10px}.about__body>p:not(.about__name){font-size:16px;color:var(--body)}.about__details{font-size:14px;margin:24px 0}.about__details>div{display:grid;grid-template-columns:80px 1fr;gap:18px;border-top:1px solid var(--line);padding:14px 0}.about__details dt{color:var(--muted)}
/* 問い合わせ：メールを中心に、余白のある一つの紙面 */
.contact .split{grid-template-columns:1fr 1.25fr}.contact h2{font-size:clamp(30px,3.4vw,48px)}.contact__info{padding-top:26px;border-top:1px solid var(--ink)}.contact__name{font-size:14px;color:var(--muted);margin-bottom:24px}.contact__name span{margin-left:18px}.contact__email{display:flex;justify-content:space-between;gap:10px;font:clamp(19px,2.05vw,29px) var(--serif);text-decoration:none;overflow-wrap:anywhere}.contact__email span{color:var(--green)}.contact__phone{display:inline-block;font:22px var(--serif);text-decoration:none;margin-top:22px}.contact__tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}.copy-email{border:1px solid var(--line);background:white;color:var(--body);border-radius:999px;padding:9px 14px;font-size:13px;cursor:pointer}.copy-status{font-size:14px;color:var(--green)}.contact__note,.contact__privacy{font-size:14px;color:var(--muted);margin-top:20px}.contact__privacy a{text-underline-offset:4px}
/* フッター：Ondaの巨大ドット文字は使わず、流線の小さな断片で締める */
.footer{border-top:1px solid var(--line);padding-top:48px;position:relative;overflow:hidden}.footer__grid{display:grid;grid-template-columns:1.4fr .7fr 1fr 1fr;gap:40px;padding-bottom:48px}.footer__brand{font:18px var(--serif);text-decoration:none}.footer__identity p{font-size:14px;color:var(--muted);max-width:25em;margin-top:16px}.footer__domain{font-family:monospace}.footer__label{font-size:13px;color:var(--muted);margin-bottom:14px}.footer__col{display:flex;flex-direction:column}.footer__col a{padding:7px 0;font-size:14px;text-decoration:none;overflow-wrap:anywhere}.footer__col a:hover{color:var(--green)}.footer__bar{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:22px var(--gutter);font-size:13px}.footer__top{text-decoration:none}.footer__trace{position:absolute;width:190px;height:150px;right:5%;bottom:-118px;pointer-events:none;opacity:.65}.footer__trace img{width:100%;height:100%;object-fit:fill}
/* 法的・事業案内ページ */
.document-page{padding-block:38px 90px}.document-back{font-size:14px;margin-bottom:48px}.document-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:80px}.document-heading h1{font-size:34px;line-height:1.7}.document-heading p{font-size:16px;color:var(--muted);margin-top:20px}.document-body{border-top:1px solid var(--ink)}.document-body section{padding-block:28px;border-bottom:1px solid var(--line)}.document-body h2{font-size:22px;margin-bottom:20px}.document-body p,.document-body li{font-size:16px;color:var(--body)}.document-body p+p{margin-top:16px}.document-body a{overflow-wrap:anywhere}.business-table>div{display:grid;grid-template-columns:85px 1fr;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.business-table dt{color:var(--muted)}.document-body .button{margin-top:22px}
/* ナビゲーションはJavaScriptなしでも開閉する */
.mobile-menu{display:none}.mobile-menu summary{list-style:none;cursor:pointer;width:42px;height:42px;padding:12px;display:grid;align-content:center;gap:6px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{height:1px;background:var(--ink)}.mobile-menu__panel{position:absolute;top:100%;left:0;right:0;background:white;padding:18px 22px;border-bottom:1px solid var(--line)}.mobile-menu__panel a{display:block;font-size:16px;text-decoration:none;padding:12px 0;border-top:1px solid var(--line)}
@media(max-width:1100px){.nav__links{display:none}.mobile-menu{display:block}.hero__composition{grid-template-columns:1.2fr .8fr;gap:35px}.hero h1{font-size:4.6vw}.hero__art{inset:-10% -5% -10% 5%;width:100%}.split,.document-layout{gap:45px}.price-list{gap:0 40px}.price-row__top{display:block}.price{margin-top:10px}#flow .container{gap:0 45px}.service{padding-right:22px}.service+.service{padding-left:22px}.service h3{font-size:20px}.works__case{gap:40px}.footer__grid{gap:24px}}
@media(max-width:768px){:root{--gutter:22px}.nav{padding:14px 18px;gap:8px}.nav__name{font-size:16px}.nav__domain{font-size:13px}.nav__links{display:none}.mobile-menu{display:block}.button--small{font-size:13px;padding:9px 13px}.hero{padding:30px 0 32px;min-height:max(600px,calc(100svh - 72px))}.hero__meta{margin-bottom:58px}.hero__status{font-size:13px;max-width:32em}.hero__area{display:none}.hero__composition{display:block;padding-top:68px}.hero__heading{padding:0;max-width:100%}.hero__composition{padding-top:30px}.hero h1{font-size:clamp(30px,7.4vw,48px);line-height:1.65;letter-spacing:-.04em;max-width:none}.hero__actions{margin-top:26px;gap:24px}.hero__actions .button{font-size:14px;padding:14px 19px}.hero__actions .text-link{font-size:14px;gap:10px}.hero__copy{padding:28px 0 0;margin-top:0;max-width:31em}.hero__sub{font-size:16px;max-width:none}.hero__note{font-size:13px;margin-top:18px}.hero__art{inset:-8% -12% -8% 12%;width:100%;height:116%;transform:rotate(9deg)}.motion-toggle{margin-top:30px;font-size:13px}.section{padding-block:72px}.lead-label{margin-bottom:30px}h2{font-size:28px}.split,.document-layout{grid-template-columns:1fr;gap:32px}#philosophy .split__heading,#plans .split__heading{display:block}#philosophy .split__heading p{margin-top:20px}#plans .split__heading p{margin-top:18px}.service-list{grid-template-columns:1fr;margin-top:36px}.service,.service+.service{padding:26px 0;border-left:0;border-top:1px solid var(--line)}.service h3{min-height:0;font-size:22px;margin-bottom:16px}.service__items{margin-top:16px;display:flex;flex-wrap:wrap;gap:3px 16px}.service__items li{font-size:13px}.works__heading{display:block}.works__heading .text-link{margin-top:24px}.works__case{display:flex;flex-direction:column;gap:28px;margin-top:32px}.works__shot{width:100%;order:0}.works__desc{width:100%;order:1}.works__meta{margin-bottom:12px}.works__desc h3{font-size:28px;margin-bottom:18px}.works__details{margin:22px 0}.works__note{margin-top:30px;font-size:13px}.price-list{grid-template-columns:1fr;gap:0}.price-row{padding:26px 0}.price-row__top{display:flex;align-items:baseline;gap:12px}.price-row h3{font-size:17px}.price{font-size:24px;margin-top:0}.price-notes{grid-template-columns:1fr;gap:18px}.price-notes .text-link{margin-top:6px}#flow .container{display:block}#flow h2{font-size:28px;max-width:none}.flow-steps{margin-top:32px}.flow-steps li{padding:24px 0}.faq h2{font-size:28px}.about__name{font-size:28px}.contact .split{grid-template-columns:1fr}.contact h2{font-size:32px}.contact__email{font-size:21px}.contact__phone{font-size:22px}.footer{padding-top:40px}.footer__grid{grid-template-columns:1fr 1fr;gap:30px}.footer__identity{grid-column:1/-1}.footer__col--contact{grid-column:1/-1}.footer__col a{padding:9px 0}.footer__bar{font-size:13px;gap:18px}.document-heading h1{font-size:29px}.document-body h2{font-size:22px}.business-table>div{grid-template-columns:80px 1fr;gap:14px}}
@media(max-width:380px){.nav{padding-inline:13px}.nav__name{font-size:14px}.hero__actions{gap:16px}.hero__actions .button{padding-inline:15px}.price-row__top{display:block}.price{margin-top:12px}.contact__email{font-size:19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.nav{position:static}.hero__art,.motion-toggle,.footer__trace{display:none}.hero{min-height:0}.section{padding-block:30px}}

/* 支給ロゴは全ページ共通で縦横比を保持する。 */
.nav__logo{width:340px;max-width:38vw;min-width:0;justify-content:center}
.nav__logo-image{display:block;width:100%;height:auto}
@media(max-width:768px){.nav__logo{width:auto;max-width:240px;flex:1;min-width:0}}
