img { max-width: 100%; height: auto; }
:root{--bg:rgb(245,244,224);--main:rgb(128,225,249);--accent:rgb(243,145,89);--ink:#493426;--line:#a89b85;--soft-line:#e5dfbd;--font:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.8;overflow-x:clip}body.locked{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}button,a{-webkit-tap-highlight-color:transparent}button{background:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #345b68;outline-offset:5px}p{margin:0;text-align:left}h1,h2,h3{margin:0;font-weight:700;line-height:1.5}h2{font-size:clamp(22px,2.22vw,32px);white-space:nowrap;letter-spacing:.025em;position:relative;margin-bottom:40px}h2:after{content:"";display:block;width:76px;height:4px;background:var(--main);margin-top:15px}h3{font-size:22px;letter-spacing:.025em}figure,ol,dl,dd{margin:0}ol{padding:0;list-style:none}img{display:block}.container{width:min(1120px,calc(100% - 80px));margin-inline:auto}.section{padding-block:64px;margin-block:48px;position:relative}.bleed-left { margin-left: calc(50% - 50vw); }
.bleed-right { margin-right: calc(50% - 50vw); }
.bleed-full { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.header{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:14px;white-space:nowrap;font-size:29px;font-weight:700}.brand-mark{width:64px;height:auto}.header nav{display:flex;align-items:center;gap:25px;font-size:14px;font-weight:600}.nav-button{border:1px solid var(--ink);border-radius:10px;padding:10px 22px}.menu-toggle{display:none}.hero{position:relative;padding-bottom:38px}.hero-layout{position:relative;min-height:560px;display:grid;grid-template-columns:52% 48%;align-items:center}.hero-copy{position:relative;z-index:2;padding:0 15px 48px 0}.hero h1{font-size:clamp(36px,3.45vw,50px);letter-spacing:0;line-height:1.5;margin-bottom:36px}.hero h1 span{display:block;white-space:nowrap}.hero p{font-size:20px;font-weight:600;margin-bottom:40px}.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;min-height:56px;padding:12px 34px;border-radius:100px;font-weight:700;font-size:18px;line-height:1.7;border:1.5px solid transparent;transition:transform .35s ease-out,box-shadow .35s ease-out;background:transparent}.button:hover{transform:translateY(-3px);box-shadow:0 5px 18px #49342618}.primary{background:var(--accent);color:#493020}.outline{border-color:var(--ink);min-width:280px}.arrow{width:22px;height:1px;background:currentColor;position:relative;display:inline-block;flex-shrink:0}.arrow:after{content:"";position:absolute;right:0;top:-4px;width:8px;height:8px;border-right:1.5px solid;border-top:1.5px solid;transform:rotate(45deg)}.hero-visual{align-self:start;position:relative;margin-top:34px;margin-right:calc((1120px - 100vw)/2);padding-bottom:40px;overflow:visible}.photo-base{position:relative;overflow:visible;background:var(--main);width:85%;margin-top:28px}.photo-base img{position:relative;width:118%;max-width:none;aspect-ratio:1.23;object-fit:cover;margin-left:7%;transform:translateY(-12%);z-index:1}.hero-visual .photo-base{width:78%;margin-top:22px}.hero-visual img{width:122%;aspect-ratio:1.18;object-position:55% center;margin-left:8%;transform:translateY(-9%)}.flow-lines{position:absolute;width:330px;height:110px;bottom:-5px;left:0;fill:none;stroke:var(--main);stroke-width:1.5;opacity:.25;pointer-events:none}.concept{display:grid;grid-template-columns:44% 51%;gap:5%;align-items:center}.concept-visual{padding:15px 30px 0 0}.concept .photo-base img{aspect-ratio:1.42;object-position:center}.concept h2{font-size:clamp(22px,2.05vw,29px)}.section-copy p{line-height:1.8}.three-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.reasons article{position:relative;padding:20px 0;text-align:center}.reasons article+article:before{content:"";position:absolute;left:-20px;top:24px;bottom:24px;border-left:1px solid var(--soft-line)}.icon{width:58px;height:60px;object-fit:contain;margin:0 auto 24px}.reasons p,.steps p{font-size:16px;margin:16px auto 0;text-align:center}.ribbon-heading:before{content:"";position:absolute;left:-20px;top:-12px;width:140px;height:48px;background:var(--main);opacity:.25;clip-path:polygon(8% 18%,100% 0,94% 48%,100% 75%,0 100%);z-index:-1}.ribbon-heading{isolation:isolate}.works{gap:44px;margin-top:64px}.work-card{padding:0 8px;transition:transform .35s ease-out,filter .35s ease-out}.work-card:hover{transform:translateY(-4px);filter:drop-shadow(0 8px 6px #49342612)}.works .photo-base{width:96%;margin-top:20px}.works .photo-base img{width:100%;margin-left:6%;aspect-ratio:1.2;transform:translateY(-12%);clip-path:polygon(0 10%,100% 0,100% 100%,0 100%)}.work-card figcaption{font-weight:600;font-size:17px;text-align:center;margin-top:20px;white-space:nowrap}.caption{font-size:14px;text-align:center;margin-top:32px}.center{text-align:center;margin-top:36px}.materials{display:grid;grid-template-columns:51% 46%;gap:3%;align-items:center}.material-visual{position:relative}.material-visual img{width:100%;aspect-ratio:1.28;object-fit:cover;mask-image:radial-gradient(ellipse closest-side,#000 64%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse closest-side,#000 64%,transparent 100%);transform:scale(1.15)}.dots{position:absolute;width:100px;height:110px;right:-20px;top:-15px;opacity:.25;background-image:radial-gradient(var(--main) 2px,transparent 2.5px);background-size:20px 20px;clip-path:polygon(0 0,100% 0,100% 100%)}.steps li{text-align:center;position:relative;padding:0 0 15px}.step-number{display:grid;place-items:center;margin:0 auto 24px;width:42px;height:42px;background:var(--main);border-radius:50%;font-weight:600}.steps .icon{margin-bottom:22px}.steps li:not(:last-child):after{content:"";position:absolute;right:-52px;top:99px;width:65px;border-top:1px solid var(--ink)}.steps li:not(:last-child):before{content:"";position:absolute;right:-52px;top:95px;width:8px;height:8px;border-right:1px solid var(--ink);border-top:1px solid var(--ink);transform:rotate(45deg)}.faq>div{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:30px 0}.faq>div+div{border-top:1px solid var(--line)}.faq dt,.faq dd{display:flex;align-items:center;gap:18px;font-size:16px}.faq dd{border-left:1px solid var(--line);padding-left:30px}.faq span{width:40px;height:40px;border-radius:50%;background:var(--main);display:grid;place-items:center;font-size:22px;flex-shrink:0}.faq dd span{background:#eddfb0}.contact{position:relative;text-align:center;padding-block:128px 144px}.contact h2{font-size:30px;margin-bottom:28px}.contact h2:after{display:none}.contact>p{text-align:center}.accent-rays{width:48px;height:28px;object-fit:contain;margin:0 auto 26px}.contact-actions{display:flex;justify-content:center;gap:32px;margin-top:64px}.contact-actions .primary{min-width:360px}.footer{border-top:1px solid var(--line);min-height:150px;display:flex;align-items:center;gap:34px}.footer .brand{font-size:24px;margin-right:auto}.footer .brand-mark{width:55px}.footer nav{display:flex;gap:20px}.footer button{border:0;padding:12px 0;font-size:13px}.footer small{font-size:12px}.back-top{position:fixed;right:20px;bottom:20px;width:48px;height:48px;border:1px solid var(--ink);border-radius:50%;background:var(--bg);display:none;place-items:center;z-index:10}.back-top.visible{display:grid}.back-top span{width:12px;height:12px;transform:rotate(-45deg);border-right:2px solid;border-top:2px solid;margin-top:6px}.skip-link{position:fixed;top:-100px;z-index:50;padding:12px;background:white}.skip-link:focus{top:5px}.js-motion .reveal{opacity:0;transform:translateY(16px);transition:opacity .35s ease-out,transform .35s ease-out}.js-motion .reveal.in-view{opacity:1;transform:none}dialog{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:40px;width:min(600px,calc(100% - 32px));max-height:85vh;overflow:auto;color:var(--ink)}dialog::backdrop{background:#271e1880}dialog h2{font-size:24px;white-space:normal}dialog p{margin-block:20px}.dialog-close{display:block;margin:0 0 25px auto;min-height:44px;border:1px solid var(--ink);padding:4px 16px;border-radius:6px}form{display:grid;gap:12px}form label{margin-top:8px;font-weight:600}input,select,textarea{width:100%;border:1px solid var(--line);padding:12px;background:#fffef6;border-radius:4px}form .button{margin-top:20px}.demo-note{font-weight:700}
@media(min-width:1441px){.hero-visual{margin-right:calc((1120px - 100vw)/2)}}
@media(max-width:1279px){.hero-visual{margin-right:-40px}.hero h1{font-size:3.4vw}.hero p{font-size:17px}.header nav{gap:16px}.brand{font-size:25px}.work-card figcaption{font-size:15px}.three-columns{gap:28px}.reasons p,.steps p{font-size:16px;text-align:left}.steps li:not(:last-child):after{width:40px;right:-34px}.steps li:not(:last-child):before{right:-34px}}
@media(max-width:1000px){.header nav{gap:12px;font-size:12px}.brand{font-size:22px}.brand-mark{width:48px}.hero-layout{min-height:450px}.hero p{font-size:16px}.hero .button{font-size:16px;padding-inline:22px}.three-columns{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}.three-columns>:last-child{grid-column:1/-1;max-width:460px;width:100%;justify-self:center}.reasons article+article:before,.steps li:before,.steps li:after{display:none}.concept{grid-template-columns:41% 55%;gap:4%}.concept h2{font-size:22px}.concept p br,.materials p br{display:none}.materials{grid-template-columns:53% 44%}.faq>div{gap:20px}.faq dd{padding-left:20px}.footer{flex-wrap:wrap;padding-block:30px;gap:18px}.footer .brand{width:100%}}
@media(max-width:700px){.container{width:calc(100% - 40px)}.header{min-height:84px}.brand{font-size:23px}.brand-mark{width:48px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:48px;height:48px;border:1px solid var(--ink);border-radius:6px;z-index:31}.menu-toggle span{width:23px;height:1px;background:var(--ink);margin-inline:auto}.header nav{display:none;position:fixed;z-index:30;top:84px;left:0;right:0;background:var(--bg);padding:28px 24px 40px;box-shadow:0 10px 15px #49342620;font-size:17px;align-items:stretch;gap:14px}.header nav.open{display:flex;flex-direction:column}.header nav a{padding:12px}.hero-layout{display:flex;flex-direction:column;align-items:stretch;min-height:auto}.hero-copy{padding:24px 0 0}.hero h1{font-size:clamp(28px,7.6vw,40px);margin-bottom:26px}.hero p{font-size:16px;margin-bottom:28px}.button{width:100%;max-width:360px;min-height:56px;font-size:16px;padding:13px 22px}.hero-visual{margin-top:60px;margin-right:-20px;padding-bottom:12px}.hero-visual .photo-base{width:80%;margin-left:0}.hero-visual img{width:119%;aspect-ratio:1.25;margin-left:6%}.hero{padding-bottom:24px}.flow-lines{width:150px;height:55px;bottom:-18px}.section{padding-block:40px;margin-block:32px}h2{font-size:clamp(19px,5.2vw,27px);margin-bottom:28px;letter-spacing:0}h2:after{margin-top:12px;width:54px;height:3px}h3{font-size:21px}.concept{display:flex;flex-direction:column;gap:44px;align-items:stretch}.concept .section-copy{order:-1}.concept h2{font-size:clamp(19px,5.2vw,27px)}.concept-visual{padding:0 10px 0 0}.photo-base img{transform:translateY(-8%)}.concept .photo-base img{aspect-ratio:1.42}.three-columns{grid-template-columns:1fr;gap:40px}.three-columns>:last-child{grid-column:auto;max-width:none}.reasons article{padding:24px}.reasons p,.steps p{text-align:left;width:fit-content;max-width:100%}.reasons .icon{margin-bottom:24px}.works{margin-top:48px;gap:48px}.work-card{padding-inline:10px}.work-card figcaption{font-size:17px}.caption{margin-top:30px}.center{margin-top:28px}.materials{display:flex;flex-direction:column;gap:32px;align-items:stretch}.material-visual{margin:0 12px}.dots{right:-10px;width:72px;height:80px;background-size:16px 16px}.steps{gap:44px}.steps li{padding:24px}.steps .icon{margin-bottom:24px}.faq>div{grid-template-columns:1fr;gap:24px;padding-block:28px}.faq dt,.faq dd{font-size:16px;gap:14px;align-items:flex-start}.faq dd{padding:0;border:0}.faq span{width:34px;height:34px;font-size:19px}.contact{padding-block:80px 96px}.contact h2{font-size:clamp(18px,4.7vw,24px);letter-spacing:0}.contact>p{text-align:left}.contact-actions{flex-direction:column;align-items:center;gap:24px;margin-top:48px}.contact-actions .primary{min-width:0}.footer{padding:36px 0 85px;gap:26px;align-items:flex-start}.footer .brand{font-size:23px}.footer nav{gap:22px}.footer small{width:100%}.back-top{right:12px;bottom:12px}dialog{padding:24px}dialog h2{font-size:22px}.ribbon-heading:before{left:-9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js-motion .reveal{opacity:1;transform:none}}


/* LP完成デザインとの照合によるレイアウト補正 */
:root {
  --photo-backing: color-mix(in srgb, var(--main) 53%, var(--bg));
}
.photo-base { background: var(--photo-backing); }
.hero-layout {
  grid-template-columns: 44.6% 55.4%;
  min-height: 620px;
}
.hero-copy { padding-bottom: 58px; padding-right: 0; }
.hero h1 { font-size: clamp(36px, 3.45vw, 50px); }
.hero-visual {
  margin-top: 34px;
  padding-bottom: 0;
  margin-right: calc((1120px - 100vw) / 2);
}
.hero-visual .photo-base { width:78%; margin-top:22px; }
.hero-visual img {
  width:120.2%;
  max-width:none;
  aspect-ratio:1.18;
  object-fit:cover;
  object-position:65% 50%;
  margin-left:8%;
  transform:translateY(-9%);
}
.flow-lines { bottom:10px; width:330px; height:100px; }
.concept { grid-template-columns:44% 51%; gap:5%; }
.concept-visual { padding:0 30px 0 0; }
.concept .photo-base { width:85%; margin-top:32px; }
.concept .photo-base img {
  width:111%;
  margin-left:8%;
  transform:translateY(-15%);
  aspect-ratio:1.42;
  object-position:50% 45%;
}
.reasons .icon { width:56px; height:60px; margin-bottom:24px; }
.ribbon-heading:before { width:146px; top:-14px; height:45px; }
.works { gap:40px; margin-top:48px; }
.work-card { padding:0 6px; }
.works .photo-base { width:97%; margin-top:20px; }
.works .photo-base img {
  width:95%;
  margin-left:6%;
  aspect-ratio:1.2;
  transform:translateY(-12%);
  object-position:center;
  clip-path:polygon(0 10%,100% 0,100% 100%,0 100%);
}
.work-card figcaption { margin-top:18px; }
.caption { margin-top:28px; }
.center { margin-top:32px; }
.materials { grid-template-columns:51% 46%; gap:3%; }
.material-visual img {
  transform:scale(1.1);
  aspect-ratio:1.28;
  object-position:55% 50%;
  mask-image:radial-gradient(ellipse 67% 68% at 50% 50%, #000 49%, transparent 77%);
  -webkit-mask-image:radial-gradient(ellipse 67% 68% at 50% 50%, #000 49%, transparent 77%);
}
.dots { width:100px; height:110px; right:-20px; top:-15px; }
.steps .icon { width:56px; height:60px; }
.step-number { margin-bottom:20px; }
.faq>div { padding:27px 0; }
.contact .accent-rays { width:48px; height:28px; margin-bottom:22px; }
.contact-actions { gap:32px; }
.footer { gap:28px; }
@media (min-width:1001px) and (max-width:1279px) {
  .hero-visual { margin-right:-40px; }
  .hero-layout { min-height:550px; }
  .hero h1 { font-size:3.25vw; }
  .concept h2 { font-size:clamp(22px,2.05vw,29px); }
}
@media (min-width:701px) and (max-width:1000px) {
  .hero-layout { grid-template-columns:46% 54%; min-height:460px; }
  .hero-visual { margin-right:-40px; }
  .hero h1 { font-size:3.2vw; }
  .hero-copy { padding-bottom:32px; }
  .hero-copy p { font-size:16px; }
  .concept { grid-template-columns:40% 56%; gap:4%; }
  .concept h2 { font-size:21px; }
  .materials { grid-template-columns:53% 44%; }
}
@media (max-width:700px) {
  .hero-layout { display:flex; min-height:0; }
  .hero-copy { padding:24px 0 0; }
  .hero h1 { font-size:clamp(28px,7.6vw,40px); }
  .hero-visual { margin:60px -20px 0 0; padding-bottom:12px; }
  .hero-visual .photo-base { width:80%; }
  .hero-visual img { width:119%; margin-left:6%; aspect-ratio:1.25; }
  .flow-lines { width:150px; height:55px; bottom:-18px; }
  .concept { display:flex; gap:44px; }
  .concept-visual { padding:0 10px 0 0; }
  .concept .photo-base img { width:111%; transform:translateY(-10%); }
  .works { gap:48px; margin-top:48px; }
  .works .photo-base { width:96%; }
  .works .photo-base img { width:95%; transform:translateY(-10%); }
  .materials { display:flex; gap:32px; }
  .material-visual img { transform:scale(1.05); }
  .dots { width:72px; height:80px; right:-10px; background-size:16px 16px; }
  .contact-actions { gap:24px; }
  .faq>div { padding-block:28px; }
}
