/* TOP専用。共通の書体・配色・ナビ開閉・ボタン構造を再利用する。 */
body[data-page="top"]{--container-width:1280px;--heading:#30233e;--ink:#30283b;--color-text:var(--ink);--purple:#79608d;--home-border:#e5dce9;background:#fff;font-family:var(--serif);line-height:1.9}
body[data-page="top"] :is(main,.site-footer) .container{width:min(var(--container-width),calc(100% - 7vw))}
body[data-page="top"] .site-footer .site-logo{display:inline-flex;gap:14px;align-items:center;white-space:nowrap;font-size:24px;color:#281e35;letter-spacing:.025em}
.links-mark{width:62px;height:38px;fill:none;stroke:#a080b4;stroke-width:4.2;flex-shrink:0}body[data-page="top"] .footer-links a{font-family:var(--roman);font-weight:500;font-size:13px;color:#30233e;white-space:nowrap}
body[data-page="top"] .button{min-width:0;min-height:50px;border-radius:999px;padding:11px 27px;font-family:var(--serif);font-size:16px;line-height:1.5;background:linear-gradient(110deg,#a388b5,#654879);border:0;box-shadow:0 4px 10px #5e3a7710;gap:25px}
body[data-page="top"] .button:hover{filter:brightness(.94)}
body[data-page="top"] .button-secondary{background:#ffffffed;color:#624773;border:1px solid #9675aa}
body[data-page="top"] .button-secondary:hover{background:#f5f0f8}
body[data-page="top"] .button-arrow{font:28px/1 Georgia,serif;width:24px;height:24px}
body[data-page="top"] .nav-contact{min-height:40px;padding:9px 25px;font:600 12px/1.5 var(--serif);color:#fff;gap:17px}
body[data-page="top"] .nav-contact span{font:22px/1 Georgia,serif}
body[data-page="top"] .chapter{gap:20px;margin-bottom:7px}
body[data-page="top"] .chapter>b{font:600 16px/1.5 var(--roman);letter-spacing:.28em}
body[data-page="top"] .chapter::after{content:"";width:52px;height:1px;background:#aa91bb}
body[data-page="top"] h2{font-size:clamp(28px,3vw,38px);line-height:1.45;letter-spacing:.08em;margin-bottom:18px}
.home-hero{position:relative;isolation:isolate;overflow:hidden;min-height:435px;background:#f3edf7}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-3}
.home-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#fcfaff 0%,#faf7ffed 27%,#f8f3ffb5 44%,#e9dff72b 69%,#e9dff710)}
.hero-ribbons{position:absolute;inset:0;width:100%;height:100%;z-index:-1;fill:#d8c5e740;pointer-events:none}
.hero-ribbons path+path{fill:#e9daf15c}
.hero-inner{padding-block:43px 49px}.hero-copy{padding-left:3.5%;max-width:665px}
body[data-page="top"] .home-hero .chapter{margin-bottom:15px}
body[data-page="top"] h1{font-size:clamp(36px,3.6vw,52px);line-height:1.4;letter-spacing:.08em;margin:0 0 20px;font-weight:500;color:#2c1d3c}
.hero-lead{font-size:16px;line-height:1.8;letter-spacing:.03em;margin-bottom:24px}
.hero-actions{display:flex;gap:22px}.hero-actions .button{min-width:230px}
.home-about{position:relative;overflow:hidden;padding-block:44px}
.home-about .split-layout{position:relative;z-index:1;grid-template-columns:1fr 1.1fr;gap:6%}
.about-copy{padding-left:9%}.about-copy p:not(.chapter){font-size:15px;line-height:1.95;margin-bottom:20px}
.about-copy .button{min-width:225px;min-height:44px;font-size:14px;padding-block:9px}
.about-photo{width:100%;aspect-ratio:2.05;object-fit:cover;object-position:center 62%;display:block}
.home-services{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(130deg,#faf7fd,#fff 50%,#f5eff9);padding-block:36px 38px}
.section-intro{text-align:center;margin-bottom:26px}.section-intro .chapter{justify-content:center}.section-intro .chapter::before{content:"";height:1px;width:44px;background:#aa91bb}.section-intro p:not(.chapter){font-size:15px;margin-bottom:0}.section-intro h2{margin-bottom:10px!important}
.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.service-card{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-width:0;min-height:330px;border-radius:11px;text-decoration:none;box-shadow:0 5px 14px #6947760d;border:1px solid #ffffffd9;transition:transform .2s,box-shadow .2s;background:#eee7f1}
.service-card>picture>img{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%}
.service-digital>picture>img{object-position:60% center}.service-consulting>picture>img{object-position:center}
.service-card::before{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(115deg,#624675d9,#80638b89 45%,#b5a2bf22 75%)}
.service-card::after{content:"";position:absolute;z-index:-1;inset:45% 0 0;background:linear-gradient(0deg,#faf7ff 12%,#f8f3fce8 42%,#f8f3fc00)}
.service-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px #69477626}
.service-card-heading{padding:20px 26px 10px}.service-card .line-icon{color:#fff;width:45px;height:45px;margin:0 0 6px}
.service-card h3{font-family:var(--serif);color:#fff;font-size:clamp(18px,1.7vw,24px);font-weight:500;line-height:1.5;letter-spacing:.035em;margin:0;text-shadow:0 1px 4px #3c234354}
.service-card-body{position:relative;margin-top:auto;padding:27px 45px 22px 24px;min-height:111px}
.service-card-body p{font-size:13px;line-height:1.65;margin:0}.card-arrow{position:absolute;right:14px;bottom:29px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#8c709e;color:white;font:25px/1 Georgia,serif}
.service-card .card-arrow svg{transition:transform .25s ease}
.service-card:is(:hover,:focus-visible) .card-arrow svg{transform:translateX(4px)}
@media(prefers-reduced-motion:reduce){.service-card .card-arrow svg{transition:none}.service-card:is(:hover,:focus-visible) .card-arrow svg{transform:none}}
.home-information{padding-block:22px 32px;background:linear-gradient(0deg,#fff,#fbf8fd)}
.information-panel{display:grid;grid-template-columns:34% 1fr;background:linear-gradient(110deg,#eee5f5,#faf8fc);border:1px solid var(--home-border);border-radius:14px;overflow:hidden;box-shadow:0 2px 5px #39244806}
.information-title{padding:31px 40px}.information-title h2{margin:0!important}.news-panel{background:#ffffffeb;border-radius:13px;border-left:1px solid var(--home-border);padding:30px 32px 23px;display:flex;flex-direction:column;justify-content:center}
.news-empty{font-size:15px;border-bottom:1px solid var(--home-border);padding:0 0 22px;margin:0}.news-panel .text-link{display:flex;align-items:center;align-self:flex-end;gap:20px;font-size:13px;text-decoration:none;margin-top:16px}
.news-panel .text-link span{font:24px Georgia,serif}
body[data-page="top"] .home-contact{background:linear-gradient(90deg,#715180a6,#7d5a8b98),url('../images/office-desk-v1.jpg') center 68%/cover;border:0;padding-block:34px 40px;color:#fff}
.home-contact h2{color:#fff!important;margin-bottom:9px!important}.home-contact p{font-size:16px;margin-bottom:17px;letter-spacing:.04em}.home-contact .button{margin-top:0;min-width:350px;justify-content:center;border:0}
.home-company{padding-block:36px;background:#fff}
.company-layout{display:grid;grid-template-columns:28% 1fr;gap:4%;align-items:start;padding-inline:4%}
.home-company .chapter{margin-top:10px}.home-company .definition-list{margin:0;border:1px solid var(--home-border);border-radius:4px;overflow:hidden;font-size:14px}
.home-company .definition-list>div{padding:0;gap:0;grid-template-columns:24% 1fr;border-color:var(--home-border)}
.home-company .definition-list>div:last-child{border:0}.home-company dt{background:#f1ebf5;color:#40314c;font-weight:500;padding:5px 26px}.home-company dd{padding:5px 27px;background:#fdfcfe;white-space:normal}.home-company dd a{text-decoration:none}
body[data-page="top"] .site-footer{background:linear-gradient(110deg,#fff,#faf7fd);border-top:1px solid var(--home-border);padding-block:24px 18px}
.footer-main{display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-main .footer-links{gap:24px;margin:0}.footer-main .site-logo{font-size:22px!important}.footer-main .links-mark{width:55px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.footer-bottom .footer-note{display:flex;flex-wrap:wrap;gap:20px;margin:0;font-size:11px}.footer-bottom .footer-copyright{margin:0;font-size:11px}.home-back-top{text-decoration:none;font-size:20px}
@media(min-width:1600px){.home-hero{min-height:480px}.hero-inner{padding-top:62px}.home-about{padding-block:55px}.about-photo{aspect-ratio:1.95}}
@media(max-width:1150px) and (min-width:769px){body[data-page="top"] .site-footer .site-logo{font-size:20px;gap:8px}.links-mark{width:47px}body[data-page="top"] .nav-contact{padding:8px 17px}.hero-copy{padding-left:2%}.hero-actions .button{min-width:210px}.about-copy{padding-left:2%}.about-copy p:not(.chapter){font-size:13px}.service-card-heading{padding:18px}.service-card-body{padding-left:18px;padding-right:38px}.service-card-body p{font-size:12px}.service-card{min-height:300px}.information-title{padding-inline:30px}.footer-main{flex-wrap:wrap}.footer-main .footer-links{gap:22px}.footer-main .nav-contact{margin-left:auto}.company-layout{padding-inline:2%}}
@media(max-width:900px) and (min-width:769px){body[data-page="top"] .site-footer .site-logo{font-size:17px}.links-mark{width:40px}.service-card-heading{padding:15px}.service-card h3{font-size:17px}.service-card-body p br{display:none}.hero-lead{font-size:14px}}
@media(max-width:768px){body[data-page="top"] :is(main,.site-footer) .container{width:calc(100% - 40px)}body[data-page="top"] .site-footer .site-logo{font-size:20px;gap:8px}.links-mark{width:46px;height:29px}body[data-page="top"] .nav-contact{width:auto;justify-content:center}.home-hero{min-height:580px}.hero-photo{object-position:73% bottom;object-fit:cover;height:58%;top:auto;bottom:0}.home-hero::before{background:linear-gradient(180deg,#faf7ff 0%,#faf7ff 35%,#faf7ffed 45%,#f7efffa8 55%,#eee3fb10 77%)}.hero-ribbons{opacity:.65}.hero-inner{padding-block:35px 240px}.hero-copy{padding:0;max-width:none}body[data-page="top"] .chapter>b{font-size:13px;letter-spacing:.24em}body[data-page="top"] h1{font-size:clamp(29px,7.2vw,48px);line-height:1.5;letter-spacing:.04em;margin-bottom:16px}.hero-lead{font-size:13px;line-height:1.9;margin-bottom:21px}.desktop-break{display:none}.hero-actions{gap:10px}.hero-actions .button{min-width:0;width:50%;font-size:13px;padding:10px 14px;gap:10px;min-height:44px}body[data-page="top"] .home-hero .chapter{margin-bottom:12px}body[data-page="top"] h2{font-size:29px;margin-bottom:15px}.home-about{padding-block:34px}.home-about .split-layout{grid-template-columns:1fr;gap:25px}.about-copy{padding:0}.about-copy p:not(.chapter){font-size:14px;line-height:2}.about-copy .button{width:195px;min-width:0}.about-photo{aspect-ratio:1.65}.home-services{padding-block:32px}.section-intro p:not(.chapter){font-size:13px;line-height:1.9}.section-intro .chapter{gap:15px}.section-intro .chapter::before,.section-intro .chapter::after{width:30px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.service-card{min-height:315px;border-radius:9px}.service-card-heading{padding:15px 13px}.service-card .line-icon{width:36px;height:36px;margin-bottom:7px}.service-card h3{font-size:clamp(14px,3.65vw,24px);line-height:1.55;letter-spacing:0}.service-card-body{padding:30px 12px 42px;min-height:128px}.service-card-body p{font-size:12px;line-height:1.7}.service-card-body p br{display:none}.card-arrow{right:12px;bottom:13px;width:23px;height:23px;font-size:21px}.home-information{padding-block:0 28px}.information-panel{grid-template-columns:1fr}.information-title{padding:22px 24px}.information-title .chapter{margin-bottom:4px}.information-title h2{font-size:26px!important}.news-panel{border-left:0;border-top:1px solid var(--home-border);padding:23px}.news-empty{font-size:13px;padding-bottom:20px}.news-panel .text-link{font-size:12px}.home-contact{padding-block:32px!important}.home-contact p{font-size:13px}.home-contact .button{min-width:0;width:auto;max-width:100%;font-size:14px;padding-inline:25px}.company-layout{grid-template-columns:1fr;gap:10px;padding:0}.home-company{padding-block:26px 32px}.home-company .definition-list{font-size:12px}.home-company .definition-list>div{grid-template-columns:29% 1fr}.home-company dt,.home-company dd{padding:9px 12px}.footer-main{flex-wrap:wrap;gap:20px}.footer-main .site-logo{font-size:21px!important}.footer-main nav{width:100%;order:2}.footer-main .footer-links{display:flex;flex-wrap:wrap;gap:12px 24px}.footer-main .nav-contact{margin:0;font-size:11px!important;padding:9px 17px!important}.footer-bottom{flex-wrap:wrap;gap:14px}.footer-bottom .footer-note{font-size:10px;gap:12px}.footer-bottom .footer-copyright{font-size:10px}.home-back-top{margin-left:auto}}
@media(max-width:359px){body[data-page="top"] :is(main,.site-footer) .container{width:calc(100% - 28px)}body[data-page="top"] .site-footer .site-logo{font-size:18px}.hero-actions .button{font-size:12px;padding-inline:10px}.service-card{min-height:330px}.service-card-heading{padding-inline:10px}.service-card h3{font-size:14px}.home-company dt,.home-company dd{padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.service-card{transition:none}.service-card:hover{transform:none}}
body[data-page="top"] .hero-actions .button{min-width:230px}
body[data-page="top"] .about-copy .button{min-width:225px;min-height:44px;font-size:14px;padding-block:9px}
body[data-page="top"] .home-contact .button{min-width:350px;justify-content:center;border:0}
@media(max-width:1150px) and (min-width:769px){body[data-page="top"] .hero-actions .button{min-width:210px}}
@media(max-width:768px){body[data-page="top"] .hero-actions .button{min-width:0;width:50%;font-size:13px;padding:11px 14px;gap:10px;min-height:46px;white-space:nowrap}body[data-page="top"] .about-copy .button{width:195px;min-width:0}body[data-page="top"] .home-contact .button{min-width:0;width:auto;font-size:14px;padding:14px 25px;gap:20px}.hero-photo{object-position:88% bottom}.home-company .definition-list>div{grid-template-columns:31% 1fr}.home-company dt{font-size:11px;padding-inline:10px}}
@media(max-width:359px){body[data-page="top"] .hero-actions .button{font-size:12px;padding-inline:10px;gap:6px}}

/* ヘッダーは下層と同じ共通CSS・変数で表示する。 */

/* COMPANY専用カンプ。本文・写真・曲線を独立させる。 */
.home-company.company-concept{position:relative;isolation:isolate;overflow:hidden;padding:0;min-height:clamp(580px,50vw,900px);background:#fcfaff;color:#252541}
.company-concept .company-visual{position:absolute;z-index:-3;inset:0 0 0 auto;width:65%;margin:0}
.company-concept .company-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:67% center}
.company-concept::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(90deg,#fcfaff 0%,#fcfaff 30%,#fcfafff5 40%,#fcfaffd9 49%,#fcfaff78 58%,#fcfaff00 70%)}
.company-concept .company-curves{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.company-concept .company-concept-inner{width:88%;max-width:1560px;margin-inline:auto;padding-block:clamp(36px,3.1vw,58px) clamp(75px,6.8vw,125px)}
.company-concept .company-concept-copy{width:65%;max-width:960px}
.company-concept .company-kicker{display:flex;align-items:center;gap:18px;margin:0 0 14px;color:#60419c;font:600 16px/1.5 var(--sans);letter-spacing:.14em}
.company-concept .company-kicker::before{content:"";width:60px;height:3px;background:#b598eb;flex-shrink:0}
.company-concept .company-subtitle{font:500 16px/1.6 var(--sans);letter-spacing:.06em;margin:0 0 17px}
body[data-page="top"] .company-concept h2{color:#252541;font:500 clamp(28px,3vw,38px)/1.45 var(--serif);letter-spacing:.02em;margin:0 0 24px}
.company-concept h2>span{display:block;white-space:nowrap}.company-concept h2 em{font-style:normal;color:#6442a7}
.company-concept .company-accent-rule{display:block;width:78px;height:4px;background:linear-gradient(90deg,#61439e,#bea5ed);margin-bottom:27px}
.company-concept .company-philosophy{font:400 15px/1.95 var(--sans);letter-spacing:.005em}
.company-concept .company-philosophy p{margin:0 0 24px}
.company-concept .company-philosophy p:last-child{margin-bottom:34px}
body[data-page="top"] .company-concept .company-button{display:inline-flex;align-items:center;justify-content:center;gap:40px;min-width:225px;min-height:44px;padding:9px 27px;background:linear-gradient(115deg,#a381df,#604299 78%);color:white;font:600 14px/1.5 var(--sans);border-radius:999px;box-shadow:none;border:0}
.company-concept .company-button svg{width:29px;height:24px;flex-shrink:0}
@media(min-width:1600px){.company-concept .company-concept-copy{width:64%}.company-concept .company-philosophy p{margin-bottom:30px}.company-concept .company-philosophy p:last-child{margin-bottom:42px}}
@media(min-width:769px) and (max-width:1100px){.company-concept .company-concept-inner{width:90%;padding-block:38px 90px}.company-concept .company-concept-copy{width:69%}body[data-page="top"] .company-concept h2{font-size:clamp(28px,3vw,38px)}.company-concept .company-philosophy{font-size:14px}.company-concept .company-pc-break{display:none}.company-concept::before{background:linear-gradient(90deg,#fcfaff 0%,#fcfafff5 37%,#fcfaffda 49%,#fcfaff88 62%,#fcfaff00 78%)}}
@media(max-width:768px){.home-company.company-concept{display:flex;flex-direction:column;min-height:0;padding:0;background:#fcfaff}.company-concept .company-concept-inner{order:0;width:calc(100% - 40px);padding:35px 0 26px;margin-inline:auto}.company-concept .company-concept-copy{width:100%;max-width:none}.company-concept .company-kicker{font-size:13px;gap:13px;margin-bottom:12px}.company-concept .company-kicker::before{width:36px;height:2px}.company-concept .company-subtitle{font-size:15px;margin-bottom:17px}body[data-page="top"] .company-concept h2{font-size:29px;line-height:1.5;letter-spacing:0;margin-bottom:20px}.company-concept h2>span{white-space:normal}.company-concept h2 em{white-space:nowrap}.company-concept .company-accent-rule{width:52px;height:3px;margin-bottom:22px}.company-concept .company-philosophy{font-size:14px;line-height:1.95;letter-spacing:.01em}.company-concept .company-philosophy p{margin-bottom:20px}.company-concept .company-philosophy p:last-child{margin-bottom:26px}.company-concept .company-pc-break{display:none}body[data-page="top"] .company-concept .company-button{min-width:0;width:225px;max-width:100%;min-height:44px;font-size:14px;padding:9px 24px;gap:35px}.company-concept .company-visual{position:relative;order:1;inset:auto;z-index:0;width:100%;height:clamp(260px,65vw,460px);margin:0}.company-concept .company-visual img{object-position:center 62%}.company-concept .company-visual::before{content:"";position:absolute;inset:0 0 auto;height:65px;background:linear-gradient(#fcfaff,#fcfaff00);pointer-events:none}.company-concept::before{display:none}.company-concept .company-curves{z-index:1;top:auto;bottom:0;height:220px;pointer-events:none}}
@media(max-width:359px){.company-concept .company-concept-inner{width:calc(100% - 32px)}body[data-page="top"] .company-concept h2{font-size:26px}.company-concept .company-philosophy{font-size:13px}}

/* COMPANYの文字組みと左端をABOUTのインナーに統一。背景は従来のまま。 */
.home-company.company-concept{min-height:0}
.company-concept .company-concept-inner{max-width:1280px;padding-block:44px 64px}
.company-concept .company-concept-copy{width:70%;max-width:none;padding-left:4.028571%}
body[data-page="top"] .company-concept h2{font-size:clamp(28px,3vw,38px);line-height:1.45;letter-spacing:.08em;margin-bottom:18px}
.company-concept h2>span{white-space:normal}
.company-concept .company-philosophy{font:inherit;font-size:15px;line-height:1.95;letter-spacing:normal}
.company-concept .company-philosophy p,.company-concept .company-philosophy p:last-child{margin-bottom:20px}
body[data-page="top"] .company-concept .company-button{font-family:var(--serif);font-weight:700;gap:25px;justify-content:space-between}
@media(min-width:1600px){.company-concept .company-concept-inner{padding-top:55px}}
@media(min-width:769px) and (max-width:1150px){.company-concept .company-concept-copy{padding-left:.895238%}.company-concept .company-philosophy{font-size:13px}}
@media(max-width:768px){.company-concept .company-concept-inner{padding-block:34px 26px}.company-concept .company-concept-copy{width:100%;padding:0}body[data-page="top"] .company-concept h2{font-size:29px;line-height:1.45;letter-spacing:.08em;margin-bottom:15px}.company-concept .company-philosophy{font-size:14px;line-height:2}body[data-page="top"] .company-concept .company-button{width:195px}}
body[data-page="top"] .button.button-compact{width:auto;min-width:225px;min-height:44px;max-width:100%;padding:9px 27px;gap:25px;border-radius:999px;font:700 14px/1.5 var(--serif);justify-content:space-between}
@media(max-width:768px){body[data-page="top"] .button.button-compact{min-width:0}body[data-page="top"] :is(.about-copy,.company-concept) .button.button-compact{width:195px}}
/* Align CONTACT with the ABOUT/COMPANY content inset at every breakpoint. */
body[data-page="top"] .shared-contact-frame{width:min(var(--container-width),calc(100% - 7vw));margin-inline:auto}
body[data-page="top"] .shared-contact-inner{width:100%;padding-left:4.028571%}
body[data-page="top"] .shared-contact-heading{text-align:left}
body[data-page="top"] .shared-contact-heading>.chapter{justify-content:flex-start}
@media(min-width:769px) and (max-width:1150px){body[data-page="top"] .shared-contact-inner{padding-left:.895238%}}
@media(max-width:768px){body[data-page="top"] .shared-contact-frame{width:calc(100% - 40px)}body[data-page="top"] .shared-contact-inner{padding-left:0}}
@media(max-width:359px){body[data-page="top"] .shared-contact-frame{width:calc(100% - 28px)}}
@supports (background-image:image-set(url("../images/office-desk-v1.webp") type("image/webp"))){body[data-page="top"] .home-contact{background-image:linear-gradient(90deg,#715180a6,#7d5a8b98),image-set(url('../images/office-desk-v1.webp') type('image/webp'),url('../images/office-desk-v1.jpg') type('image/jpeg'))}}
@media(max-width:768px){body[data-page="top"] .company-concept .company-button{white-space:nowrap;gap:12px;padding-inline:18px}}
@media(max-width:359px){body[data-page="top"] .shared-contact .shared-contact-action .shared-contact-button{font-size:12px;padding-inline:14px;gap:8px}}
