:root{--blue:#1455ed;--ink:#233c69;--muted:#58627a;--paper:#fff8e7;--line:#cbcbbc;--ease:cubic-bezier(.22,1,.36,1);font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}p,h1,h2,h3{margin:0}p{font-size:1rem;line-height:2.15}button,summary{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:6px}::selection{background:var(--blue);color:var(--paper)}.wrap{width:calc(100% - 120px);max-width:1400px;margin:auto}.section{padding:120px 0}.eyebrow{font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.1em;font-weight:500}.skip-link{position:fixed;top:-100px;z-index:90;background:var(--paper);padding:15px}.skip-link:focus{top:10px}.site-header{position:sticky;top:0;background:#fff8e7f5;z-index:20}.header-inner{height:100px;margin:0 60px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px}.brand-symbol{width:23px;height:27px}.brand-word img{width:127px;height:34px}.legal-name{display:block;color:var(--blue);font-size:.75rem;letter-spacing:.16em}.global-nav{display:flex;gap:32px;align-items:center;font-size:.875rem}.global-nav a{padding:10px 0}.global-nav a:hover{color:var(--blue)}.nav-contact{border-bottom:1px solid var(--blue)}.nav-contact span{margin-left:22px}.nav-toggle{display:none}
.hero{padding-top:72px}.hero-inner{display:grid;grid-template-columns:1fr 1.1fr;gap:0;position:relative;min-height:660px}.hero-copy{position:relative;z-index:2;padding-top:10px}.hero-eyebrow{color:var(--blue);margin-bottom:32px}.hero h1{font-family:'Noto Serif JP',serif;font-size:clamp(2.5rem,4.5vw,4.6rem);font-weight:400;line-height:1.6;letter-spacing:.025em;width:135%;white-space:nowrap}.line{display:block}.hero-lead{margin-top:35px;font-size:.9375rem}.round-link{display:flex;align-items:center;gap:36px;font-size:.875rem;margin-top:32px;width:fit-content}.link-circle{display:grid;place-items:center;width:50px;height:50px;border:1px solid var(--blue);border-radius:50%;color:var(--blue);transition:background .25s,color .25s}.round-link:hover .link-circle{background:var(--blue);color:var(--paper)}.hero-photo{position:relative;align-self:end;margin-top:145px;margin-bottom:40px;padding-left:24px}.hero-photo img{width:100%;height:430px;object-fit:cover;border-radius:160px 0 0 0}.photo-index{display:block;position:absolute;right:0;top:-29px;font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.06em}.hero-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:22px 0}.hero-bottom p{font-size:.8125rem}.hero-bottom p span{padding:0 15px}.scroll-link{font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.08em}.scroll-link span{margin-left:28px}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:60px}.section-heading h2,.section-intro h2,.company h2{font-family:'Noto Serif JP',serif;font-size:2.3rem;font-weight:400;line-height:1.7;margin-top:20px}.heading-note{font-size:.9375rem}.service-card{display:grid;grid-template-columns:1.12fr 1fr;gap:90px;padding:56px 0 90px;border-top:1px solid var(--line)}.service-card.reverse{grid-template-columns:1fr 1.12fr;padding-bottom:0}.reverse .service-visual{order:2}.service-photo{overflow:hidden;align-self:start}.service-photo img{width:100%;aspect-ratio:1.14;object-fit:cover;transition:transform .8s var(--ease)}.service-card:hover .service-photo img{transform:scale(1.025)}.service-card:first-of-type .service-photo{border-radius:0 0 90px 0}.reverse .service-photo{border-radius:90px 0 0 0}.service-body{padding-top:24px}.service-body .eyebrow{color:var(--blue)}.service-body h3{font-size:1.65rem;font-weight:500;margin:20px 0 22px;line-height:1.65}.service-statement{font-family:'Noto Serif JP',serif;font-size:1.2rem;margin-bottom:20px}.service-body>p:not(.eyebrow):not(.service-statement){color:var(--muted)}.service-tags{display:flex;flex-wrap:wrap;gap:8px 14px;list-style:none;margin:24px 0;padding:0;font-size:.8125rem}.service-tags li{border-bottom:1px solid var(--line);padding:6px 0}.service-details{border-top:1px solid var(--line);margin-top:28px}.service-details summary{cursor:pointer;list-style:none;padding:20px 0;display:flex;justify-content:space-between;font-size:.875rem}.service-details summary::-webkit-details-marker{display:none}.detail-plus:after{content:'+';font-size:1.3rem;color:var(--blue)}details[open] .detail-plus:after{content:'−'}.service-details ul{list-style:none;padding:0 0 20px;margin:0}.service-details li{font-size:.875rem;line-height:1.9;padding:12px 0;color:var(--muted)}.service-details strong{display:block;color:var(--ink);font-weight:500}
.about{background:#e9eddf;border-radius:140px 0 0 0}.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:90px}.about-lead{margin-top:30px}.value{border-top:1px solid #b9c4b7;padding:30px 0}.value-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.small-number{font-family:Georgia,serif;font-style:italic;font-size:1.5rem;color:var(--blue)}.value h3{font-weight:500;font-size:1.2rem;margin-bottom:15px}.value p{color:var(--muted)}.process-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:35px}.process-list li{border-top:1px solid var(--line);padding-top:20px}.step-number{font-family:Georgia,serif;font-style:italic;font-size:2.5rem;color:var(--blue)}.process-list h3{font-size:1.1rem;font-weight:500;margin:28px 0 18px}.process-list p{font-size:.9375rem;color:var(--muted)}.company{border-top:1px solid var(--line)}.company-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:90px}.company-data{margin:0}.company-data>div{display:grid;grid-template-columns:140px 1fr;gap:25px;border-top:1px solid var(--line);padding:25px 0;font-size:.9375rem;line-height:2}.company-data dt{color:var(--muted)}.company-data dd{margin:0}.contact{margin:0 30px;background:var(--blue);color:var(--paper);border-radius:0 100px 0 0;padding:70px 0}.contact-inner>.reveal{display:grid;grid-template-columns:1fr 1fr;column-gap:90px}.contact .eyebrow,.contact h2,.contact p{grid-column:1}.contact h2{font-family:'Noto Serif JP',serif;font-weight:400;font-size:2.3rem;margin:18px 0 20px}.contact-status{grid-column:2;grid-row:2/5;align-self:center;border-top:1px solid #8aaaf1;border-bottom:1px solid #8aaaf1;padding:28px 0;display:grid;gap:12px;font-size:.875rem;line-height:1.8}.contact-status-title{font-size:1rem}.site-footer{padding:50px 0;display:flex;align-items:center;gap:30px;flex-wrap:wrap}.site-footer p{font-size:.75rem;margin-right:auto}.notice-link{font-size:.8125rem}.back-top{font-family:Arial,sans-serif;font-size:.75rem}.back-top span{margin-left:12px}.js .reveal.is-pending{opacity:0;transform:translateY(18px)}.js .reveal{transition:opacity .85s var(--ease),transform .85s var(--ease)}.js .reveal.is-visible{opacity:1;transform:none}
@media(min-width:1500px){.hero-inner{min-height:750px}.hero-photo img{height:500px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.header-inner{margin:0 32px}.global-nav{gap:22px}.hero-inner{min-height:590px}.hero-photo img{height:340px}.hero h1{font-size:4.7vw}.service-card,.service-card.reverse{gap:40px}.about-grid,.company-grid{gap:45px}.service-body h3{font-size:1.4rem}.process-list{gap:22px}.contact-inner>.reveal{column-gap:40px}}
@media(max-width:760px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 44px)}.header-inner{height:84px;margin:0 22px}.brand-symbol{width:21px}.brand-word img{width:117px;height:31px}.legal-name{font-size:.75rem}.nav-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;background:none;border:1px solid var(--line);border-radius:50%;width:44px;height:44px}.nav-toggle span{width:18px;height:1px;background:var(--blue)}.global-nav{display:none;position:absolute;top:84px;left:0;right:0;padding:24px;background:var(--paper);border-bottom:1px solid var(--line)}.global-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:12px}.hero{padding-top:34px}.hero-inner{display:flex;flex-direction:column;min-height:0}.hero h1{font-size:clamp(1.9rem,7vw,3rem);width:auto;letter-spacing:.015em;white-space:normal}.hero-eyebrow{font-size:.75rem;margin-bottom:22px}.hero-lead{margin-top:22px;font-size:.9375rem}.hero-photo{margin:53px 0 28px;width:91%;padding:0;align-self:flex-end}.hero-photo img{height:auto;aspect-ratio:1.25;border-radius:90px 0 0 0}.photo-index{font-size:.75rem}.round-link{margin-top:22px}.hero-bottom p{font-size:.75rem}.hero-bottom p span{padding:0 5px}.scroll-link{font-size:.75rem}.scroll-link span{margin-left:8px}.section{padding:75px 0}.section-heading{display:block;margin-bottom:35px}.section-heading h2,.section-intro h2,.company h2,.contact h2{font-size:1.85rem}.heading-note{margin-top:24px}.service-card,.service-card.reverse{display:flex;flex-direction:column;gap:30px;padding:32px 0 48px}.reverse .service-visual{order:0}.service-photo{width:100%}.service-photo img{aspect-ratio:1.35}.service-body{padding:0}.service-body h3{font-size:1.5rem;margin-top:16px}.about{border-radius:75px 0 0 0}.about-grid,.company-grid{grid-template-columns:1fr;gap:45px}.about-lead{margin-top:22px}.process-list{grid-template-columns:1fr 1fr;gap:36px 24px}.process-list h3{font-size:1rem;margin-top:20px}.process-list p{font-size:.875rem}.company-data>div{grid-template-columns:90px 1fr;gap:18px;font-size:.875rem}.contact{margin:0 12px;border-radius:0 65px 0 0;padding:50px 0}.contact-inner>.reveal{display:block}.contact-status{margin-top:30px}.contact p{font-size:.9375rem}.site-footer{gap:25px 20px;padding:35px 0}.site-footer p{order:5;width:100%}.site-footer .brand{width:100%}.back-top{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal.is-pending{opacity:1;transform:none}}

/* 企業向け表現・短い写真・正式な概要と入力欄 */
.hero-photo img{height:215px;border-radius:65px 0 0 0}.hero-inner{min-height:540px}.hero-photo{margin-bottom:65px}
.service-photo img{aspect-ratio:2.28;object-position:center 55%}.service-card:first-of-type .service-photo{border-radius:0 0 35px 0}.reverse .service-photo{border-radius:35px 0 0 0}
.about{background:#f3f0e7;border-radius:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.small-number{font-family:Arial,sans-serif;font-style:normal;font-size:1rem}.value{border-color:var(--line)}.about h2,.company h2{font-family:'Noto Sans JP',sans-serif;font-weight:500;font-size:2rem}.company-grid{grid-template-columns:.65fr 1.35fr;gap:70px}.company-data{border-bottom:1px solid var(--line)}.company-data>div{padding:0;gap:0;grid-template-columns:170px 1fr}.company-data dt{padding:23px 25px;background:#f2eedf;color:var(--ink);font-weight:500}.company-data dd{padding:23px 30px;background:#fffaf0}.pending-info{color:#687183}.business-list{margin:0;padding-left:1.2em;line-height:2}.contact{background:#f2eedf;color:var(--ink);border-radius:0;margin:0;border-top:1px solid var(--line)}.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:75px}.contact h2{font-family:'Noto Sans JP',sans-serif;font-size:2rem;font-weight:500}.form-status{font-size:.875rem!important;color:var(--muted);margin-top:25px}.contact-address{margin-top:35px;font-size:.875rem}.contact-address>div{border-top:1px solid var(--line);padding:18px 0}.contact-address dt{font-weight:500}.contact-address dd{margin:8px 0 0;color:var(--muted)}.contact-form{display:grid;gap:23px}.form-row{display:grid;gap:10px}.form-row label{font-size:.9375rem;font-weight:500}.form-row label span{font-size:.75rem;color:var(--blue);margin-left:12px}.form-row label .optional{color:var(--muted)}.form-row input,.form-row select,.form-row textarea{width:100%;min-width:0;font:inherit;font-size:1rem;color:var(--ink);border:1px solid #b8bebd;border-radius:3px;background:#fffdf7;padding:14px 16px;line-height:1.6}.form-row textarea{resize:vertical;min-height:150px}.form-row input::placeholder,.form-row textarea::placeholder{color:#747b83}.form-row :is(input,select,textarea):focus{outline:2px solid var(--blue);outline-offset:2px}.form-submit{font:inherit;font-size:.9375rem;padding:18px;border:1px solid #bbc1c6;color:#596478;background:#e4e4de;cursor:not-allowed}
@media(min-width:1500px){.hero-photo img{height:250px}.hero-inner{min-height:600px}}
@media(max-width:1050px){.hero-photo img{height:170px}.hero-inner{min-height:500px}.company-grid,.contact-layout{gap:35px}.company-data>div{grid-template-columns:140px 1fr}}
@media(max-width:760px){.hero-inner{min-height:0}.hero-photo{margin:45px 0 28px}.hero-photo img{height:auto;aspect-ratio:2.5;border-radius:40px 0 0 0}.service-photo img{aspect-ratio:2.7}.company-grid,.contact-layout{grid-template-columns:1fr;gap:32px}.about h2,.company h2,.contact h2{font-size:1.65rem}.company-data>div{grid-template-columns:110px 1fr}.company-data dt,.company-data dd{padding:18px 13px}.contact{margin:0}.contact-form{gap:22px}}

/* 向かい合う曲線と、控えめなモーション */
.hero-logo{align-self:center;justify-self:end;width:90%;max-width:440px;margin-top:90px;display:grid;justify-items:center;padding:30px 0 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.logo-stage{display:grid;justify-items:center;gap:24px}.animated-symbol{display:block;width:155px;height:155px;overflow:visible}.hero-wordmark{width:145px;height:auto}.animation-control{font:inherit;font-size:.75rem;color:var(--muted);background:transparent;border:0;border-bottom:1px solid var(--line);padding:10px 3px;min-height:40px;margin-top:22px;cursor:pointer}.animation-control:hover{color:var(--blue)}
.logo-half{transform-box:fill-box;transform-origin:center;animation:logo-breathe-a 7s ease-in-out infinite}.half-b{animation-name:logo-breathe-b}
@keyframes logo-breathe-a{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(3px,3px) rotate(5deg)}}
@keyframes logo-breathe-b{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(-3px,-3px) rotate(5deg)}}
.js .hero-logo .logo-stage{animation:logo-arrive 1.3s var(--ease) both}.js .hero-copy .line{overflow:hidden}.js .hero-copy .line>span{display:block;animation:copy-arrive 1.1s var(--ease) both}.js .hero-copy .line:nth-child(2)>span{animation-delay:.12s}
@keyframes logo-arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes copy-arrive{from{opacity:0;transform:translateY(105%)}to{opacity:1;transform:none}}
.js .reveal{transition-duration:1s}.js .value:nth-child(2){transition-delay:.1s}.js .value:nth-child(3){transition-delay:.2s}.js .service-card .service-photo img{transition:transform 1.2s var(--ease),opacity 1.2s var(--ease)}.js .service-card.is-pending .service-photo img{transform:scale(1.05);opacity:0}.js .service-card.is-visible .service-photo img{transform:scale(1);opacity:1}
.animation-paused .logo-half,.logo-offscreen .logo-half{animation-play-state:paused}.animation-paused .reveal,.animation-paused .service-photo img{transition:none!important;opacity:1!important;transform:none!important}.animation-paused .hero-copy .line>span,.animation-paused .logo-stage{animation:none!important;opacity:1!important;transform:none!important}
@media(max-width:760px){.hero-logo{width:100%;max-width:none;margin:34px 0 26px;align-self:auto;justify-self:auto;padding-top:23px}.animated-symbol{width:115px;height:115px}.logo-stage{gap:15px}.hero-wordmark{width:125px}.animation-control{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.logo-half,.js .hero-copy .line>span,.js .hero-logo .logo-stage{animation:none!important}.animation-control{display:none}.js .service-card.is-pending .service-photo img{transform:none;opacity:1}}

/* 事業写真の高さをさらに約20%抑える */
.service-photo img{aspect-ratio:2.85}
.details-body{overflow:hidden}.details-body>ul{margin:0}.service-details[open] .detail-plus:after{content:'−'}
.company-data dd,.contact-address dd{overflow-wrap:anywhere}.form-submit{background:var(--blue);color:#fff;border-color:var(--blue);cursor:pointer;transition:background .2s}.form-submit:hover{background:#1044c0}.mail-help{font-size:.8125rem;color:var(--muted)}.mail-help a,.contact-address a,.company-data a{text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.service-photo img{aspect-ratio:3.35}}
