@charset "UTF-8";
/* CSS Document */

:root{
--clr-grn:#07B53B;
--clr-grn-rgb:7,181,59;
--clr-red:#FF3300;
--clr-yel:#F5E828;
--clr-bg01:#F9F7F3;
}


/*=============================================================
	contents
=============================================================*/


/* common
-------------------------------------------------------------*/
#wrapper{ overflow: hidden;}

main article.contents{ width: 100%; padding: 4.8rem 0; position: relative;}
main article.contents section{ width: 90%; margin: 0px auto;}

.spbr{ display: block;}

/* hero area
-------------------------------------------------------------*/
#heroarea{ background-image: linear-gradient(#07b53b, #10d34a); border-radius: 0 0 8.0rem 0; padding-top: 62.0vw;}
#heroarea section{ width: 100%; position: relative;}
#heroarea section h1{ width: 80%; position: absolute; top: -57.0vw; left: 10%; z-index: 100;}
#heroarea section h1 img{ width: 100%; height: auto;}
#heroarea section dl{ width: 88%; position: relative; margin: 0 auto;}
#heroarea section dl dt{}
#heroarea section dl dt img,
#heroarea section dl dd img{ width: 100%; height: auto;}
#heroarea section dl dd{ width: 37vw; position: absolute; bottom: 23.0vw; left: 23.5vw; z-index: 100;}
#heroarea section dl dd a{ display: block; border-radius: 50px; box-shadow: 0 4px 0 #003767; overflow: hidden; position: relative; top: 0; transition: all 0.3s ease 0s;}
#heroarea section dl dd a:hover{ box-shadow: none; top: 4px;}

/* campaign
-------------------------------------------------------------*/
.campaign{}
.campaign section{ position: relative; padding-bottom: 2.4rem;}
.campaign section:after{ content: ""; width: 100%; height: 88%; border: solid 4px var(--clr-yel); border-radius: 16px; position: absolute; bottom: 0; left: 0; z-index: -1;}
.campaign section ul{ display: flex; justify-content: space-between; flex-wrap: wrap;}
.campaign section ul li{ width: 33%;}
.campaign section ul li img{ width: 100%; height: auto;}
.campaign section p{ font-size: 2.0rem; line-height: 1.2em; text-align: center; font-weight: 900; margin-top: 1.0rem;}
.campaign section p span{ font-size: 1.6rem;}
.campaign section p strong{ color: var(--clr-grn);}
.campaign section h2{ font-size: 2.4rem; line-height: 1.2em; text-align: center; font-weight: 900; margin-top: 0.8rem;}
.campaign section h2 span{ font-size: 2.4rem;}
.campaign section h2 strong{ color: var(--clr-red);}

/* あなたもこんなお悩みありませんか？
-------------------------------------------------------------*/
.worries{ position: relative; overflow: hidden; padding-top: 0 !important;}
.worries:after{ content: ""; width: 150%; height: 80%; border-radius: 100%; background: var(--clr-grn); position: absolute; top: 90%; left: -25%; transform: translateY(-50%); z-index: -1;}
.worries section h2{ font-size: 2.4rem; line-height: 1.2em; text-align: center; font-weight: 900;}
.worries section ul{ width: 100%; margin: 0px auto; margin-top: 2.4rem;}
.worries section ul li{ width: 100%; text-align: center;}
.worries section ul li:nth-child(n+2){ margin-top: 0.24em;}
.worries section ul li img{ width: auto; height: 46px;}
.worries section ol{ display: flex; justify-content: space-between; flex-wrap: wrap; padding: 0 20%; margin-top: 2.4rem;}
.worries section ol li{ width: 100%;}
.worries section ol li:nth-child(2){ display: none;}
.worries section ol li img{ width: 100%; height: auto;}
.worries section h3{ font-size: 3.2rem; line-height: 1.4em; font-weight: 900; color: #FFF; text-align: center; margin-top: 1.6rem;}
.worries section h3 span{ display: inline-block; padding: 0 0.16em; margin: 0 0.16em; background: #FFF; color: #111;}

/* オンデマンド印刷って？
-------------------------------------------------------------*/
.whatisit{ background: var(--clr-bg01);}
.whatisit section{ position: relative; z-index: 10;}
/*.whatisit section:before{ content: ""; width: 100%; height: 110%; background: #FFF; border-radius: 40px; position: absolute; top: 50%; transform: translateY(-50%); left: 32%; z-index: -1;}*/
.whatisit h2{ font-size: 2.4rem; line-height: 7.2rem; font-weight: 900; text-align: center; position: relative;}
.whatisit h2:before{ content: ""; width:100%; height: 100%; background: url("../../images/decoration_01.webp") no-repeat center center; background-size: contain; position: absolute; top: 0; left: 0; z-index: -1;}
.whatisit .column{ display: flex; justify-content: space-between; flex-wrap: wrap; margin-top: 2.4rem;}
.whatisit .column figure{ width: 100%; padding-bottom: 64%; border-radius: 16px; box-shadow: 0 0 16px rgba(0,0,0,0.16); overflow: hidden; position: relative; order: 1;}
.whatisit .column figure img{ width: 100%; height: auto; position: absolute; top: 50%; left: 0; transform: translateY(-50%); overflow: hidden;}
.whatisit .column .inner{ width: 100%; order: 2; margin-top: 2.0em;}
.whatisit .column .inner h3{ font-size: 2.4rem; line-height: 1.2em; font-weight: 900; text-align: center;}
.whatisit .column .inner ul{ display: flex; justify-content: space-between; flex-wrap: wrap; width: 90%; margin: 0.5em auto;}
.whatisit .column .inner ul li{ width: 32%; font-size: 2.0rem; line-height: 1.0em; font-weight: 900; color: #FFF000; background: var(--clr-grn); padding: 0.16em 0; text-align: center; border-radius: 8px;}
.whatisit .column .inner p{ margin-top: 1.0em;}

.whatisit .box{ margin-top: 2.4rem; border: dotted 2px #000; border-radius: 24px; padding: 1.0em;}
.whatisit .box dt{ font-size: 2.0rem; line-height: 1.2em; font-weight: 900; text-align: center; color: var(--clr-grn);}
.whatisit .box dd{ margin-top: 0.5em;}

/* オンデマンド印刷はこんな方におすすめ
-------------------------------------------------------------*/
.scene{ background: var(--clr-bg01); overflow: hidden;}
.scene section{ position: relative;}
.scene section:before{ content: ""; width: 180%; padding-bottom: 180%; border-radius: 100%; background: rgba(var(--clr-grn-rgb),0.64); position: absolute; top: 10%; right: 30%; z-index: 1;}
.scene section:after{ content: ""; width: 180%; padding-bottom: 180%; border-radius: 100%; background: rgba(var(--clr-grn-rgb),0.8); position: absolute; top: 10%; left: 30%; z-index: 1;}
.scene h2{ font-size: 2.4rem; line-height: 1.2em; padding: 0.4em 0; text-align: center; font-weight: 900; position: relative; z-index: 10;}
.scene h2:before{ content: ""; width:100%; height: 100%; background: url("../../images/decoration_02.webp") no-repeat center center; background-size: contain; position: absolute; top: 0; left: 0; z-index: -1;}

.swiper{ width: 100% !important; margin: 4.0rem auto 0 !important; position: relative; z-index: 100 !important;}
.swiper-wrapper { width: 100%;}
.swiper-slide { display: flex !important; justify-content: space-between; flex-wrap: wrap; align-items: center; background: #FFF; border-radius: 16px;}
.swiper-slide figure{ display: none;}
.swiper-slide figure img{ width: auto; height: 100%; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);}
.swiper-slide dl{ width: 100%; padding: 1.5em 3.0em;}
.swiper-slide dl dt{ font-size: 2.0rem; line-height: 1.4em; min-height: 8.0rem; font-weight: 900; color: var(--clr-grn); padding-left: 90px; position: relative; display: flex; justify-content: flex-start; align-items: center;}
.swiper-slide dl dt:before{ content: ""; width: 8.0rem; height: 8.0rem; border-radius: 100%; overflow: hidden; position: absolute; top: 50%; left: 0; transform: translateY(-50%);}
.swiper-slide.scene01 dl dt:before{ background: url("../../images/voice_01.webp") no-repeat; background-size: contain;}
.swiper-slide.scene02 dl dt:before{ background: url("../../images/voice_02.webp") no-repeat; background-size: contain;}
.swiper-slide.scene03 dl dt:before{ background: url("../../images/voice_03.webp") no-repeat; background-size: contain;}
.swiper-slide.scene04 dl dt:before{ background: url("../../images/voice_04.webp") no-repeat; background-size: contain;}
.swiper-slide dl dd{ font-size: 1.6rem; line-height: 1.6em; margin-top: 0.5em;}
.swiper-button-prev,
.swiper-button-next { width: 32px !important; height: 32px !important; background-size: contain; transform: translateY(-50%); margin-top: 0 !important;}
.swiper-button-next {background-image: url("../../images/arrow.webp"); transform: translateY(-50%) scale(-1, 1);}
.swiper-button-prev { background-image: url("../../images/arrow.webp"); transform: translateY(-50%);}
.swiper-button-prev:after,
.swiper-button-next:after { display: none;}


/* オンデマンド印刷はこんな方におすすめ
-------------------------------------------------------------*/
.simulation{ position: relative; z-index: 100; border-radius: 48px 48px 0 0; overflow: hidden;}
.simulation h2{ font-size: 2.4rem; line-height: 7.2rem; font-weight: 900; text-align: center; position: relative; z-index: 10;}
.simulation h2:before{ content: ""; width:100%; height: 100%; background: url("../../images/decoration_03.webp") no-repeat center center; background-size: contain; position: absolute; top: 0; left: 0; z-index: -1;}
.simulation section > p{ margin-top: 1.0em;}
.simulation figure{ margin-top: 2.4rem;}
.simulation figure img{ width: 100%; height: auto;}
.simulation .modalBtn{ width: 72%; margin: 2.4rem auto 0;}
.simulation .modalBtn a{ display: block; border-radius: 16px; box-shadow: 0 8px 0px #CCC000; position: relative; top: 0; overflow: hidden; transition: all 0.3s ease 0s;}
.simulation .modalBtn a:hover{ top: 8px; box-shadow: none;}
.simulation .modalBtn a img{ width: 100%; height: auto;}

/* modal */
.modal{ position: fixed; top: 0; left: 0; width: 100%; height: 100%; text-align: center; background: rgba(0,0,0,50%); padding: 40px 20px; overflow: auto; opacity: 0; visibility: hidden; transition: .3s; box-sizing: border-box; z-index: 1001;}
.modal:before{ content: ""; display: inline-block; vertical-align: middle; height: 100%; margin-left: -0.2em;}
.modal.is-active{ opacity: 1; visibility: visible;}
.modal-container{ position: relative; display: inline-block; vertical-align: middle; max-width: 600px; width: 80%;}
.modal-close{ position: absolute; display: flex; align-items: center; justify-content: center; top: -20px; right: -20px; width: 40px; height: 40px; color: #fff; background: #000; border-radius: 50%; cursor: pointer;}
.modal-content{ background: #fff; text-align: left; line-height: 1.8; padding: 1.6em; border-radius: 24px;}
.modal-content figure{ width: 100%;}
.modal-content figure img{ width: 100%; height: auto;}
.modal-content p{ font-size: 1.6rem; line-height: 1.4em; margin-top: 1.0em;}

/* かんたん3ステップで注文OK
-------------------------------------------------------------*/
.step{}
.step h2{ font-size: 2.4rem; line-height: 1.2em; text-align: center; font-weight: 900;}
.step h2 em{ color: var(--clr-yel); background: #000; padding: 0.08em 0.16em; font-style: normal;}
.step h2 span{ font-size: 2.0rem;}
.step h2 strong{ color: var(--clr-grn);}
.step ul{ display: flex; justify-content: space-between; flex-wrap: wrap; width: 72%; margin: 2.4rem auto 0;}
.step ul li{ width: 100%;}
.step ul li:nth-child(n+2){ margin-top: 1.0em;}
.step ul li img{ width: 100%; height: auto;}
.step figure{ width: 72%; margin: 4.0rem auto 0;}
.step figure img{ width: 100%; height: auto;}
.step .button{ width: 72%; margin: 2.4rem auto 0;}
.step .button a{ display: block; border-radius: 16px; box-shadow: 0 8px 0px #003767; position: relative; top: 0; overflow: hidden; transition: all 0.3s ease 0s;}
.step .button a:hover{ top: 8px; box-shadow: none;}
.step .button a img{ width: 100%; height: auto;}

/* お客様の声
-------------------------------------------------------------*/
.voice{ position: relative;}
.voice:before{ content: ""; width: 200%; height: 200%; background: repeating-linear-gradient( -45deg, #F5E828, #F5E828 30px, white 30px, white 60px); position: absolute; top: 100%; left: -1%; transform: translate(-50%,-50%) rotate(15deg); z-index: -2;}
.voice:after{ content: ""; width: 200%; height: 200%; background: var(--clr-yel); position: absolute; top: 100%; left: 101%; transform: translate(-50%,-50%) rotate(-15deg); z-index: -1;}
.voice section{ background: #FFF; border-radius: 24px; padding: 3.2rem; position: relative; z-index: 100;}
.voice section h2{ font-size: 2.4rem; line-height: 7.2rem; font-weight: 900; text-align: center; position: relative; z-index: 10;}
.voice section h2:before{ content: ""; width:100%; height: 100%; background: url("../../images/decoration_04.webp") no-repeat center center; background-size: contain; position: absolute; top: 0; left: 0; z-index: -1;}
.voice section ul{ width: 56%; margin: 2.4rem auto 0; display: flex; justify-content: space-between; flex-wrap: wrap;}
.voice section ul li{ width: 100%;}
.voice section ul li:nth-child(n+2){ margin-top: 2.4rem;}
.voice section ul li img{ width: 100%; height: auto;}

/* CTA
-------------------------------------------------------------*/
.cta{ width: 100%; aspect-ratio: 2000 / 2200; background: url("../../images/cta_bg.webp") center / cover no-repeat , #FFF; position: relative; display: grid; place-items: center; border-radius: 40px 40px 0 0; min-height: 60svh; container-type: size; overflow: hidden;}
.cta section{ width: min(90%, 1280px); display: grid; justify-items: center; gap: clamp(16px, 3vw, 32px);}
.cta figure{  margin: 0; width: 100%;}
.cta figure img{ display: block; max-width: 100%; height: auto; max-height: 90cqh; object-fit: contain; margin: 0px auto;}
.cta .button{ width: 72%; margin: 0 auto;}
.cta .button a{ display: block; border-radius: 16px; box-shadow: 0 8px 0 #003767; position: relative; top: 0; overflow: hidden; transition: all 0.3s ease 0s;}
.cta .button a:hover{ top: 8px; box-shadow: none;}
.cta .button a img{ width: 100%; height: auto;}

/* ── フォールバック（container-type 非対応ブラウザ向け） ── */
@supports not (container-type: size){
.cta figure img{ max-height: 85svh; object-fit: contain;}
}

/*=============================================================
	layout
=============================================================*/

/* header
-------------------------------------------------------------*/
header{ display: none; position: absolute; top: 0; left: 0; width: 100%; z-index: 100;}
header section{ width: 100%; padding: 2.4rem 4%; display: flex; justify-content: flex-start; flex-wrap: wrap; align-items: center;}
header section .siteLogo{ width: 260px;}
header section .siteLogo img{ width: 100%; height: auto;}
header section nav{ margin-left: 4.0rem;}
header section nav ul{ display: flex; justify-content: flex-start; flex-wrap: wrap;}
header section nav ul li{ font-size: 1.8rem; line-height: 1.4em; font-weight: 600;}
header section nav ul li:nth-child(n+2){ margin-left: 1.0em;}
header section nav ul li a{ display: inline-block; color: #FFF; text-decoration: none; padding: 0.5em 0;}
header section nav ul li a:hover{ color: rgba(255,255,255,0.72);}

/* footer
-------------------------------------------------------------*/
footer{ background: #222; padding: 4.8rem 0;}
footer section{ width: 90%; margin: 0px auto;}
footer section .siteLogo{ width: 48%; margin: 0px auto;}
footer section .siteLogo img{ width: 100%; height: auto;}
footer section .ftInfo{ margin-top: 2.4rem; padding-top: 2.4rem; border-top: solid 1px rgba(255,255,255,0.16); display: flex; justify-content: space-between; flex-wrap: wrap;}
footer section .ftInfo .column{ width: 100%; display: flex; justify-content: space-between; flex-wrap: wrap;}
footer section .ftInfo .column .inner{ width: 100%;}
footer section .ftInfo .column .inner:nth-child(n+2){ margin-top: 2.4rem;}
footer section .ftInfo .column .inner h2{ font-size: 2.0rem; line-height: 1.2em; font-weight: 700; color: #FFF;}
footer section .ftInfo .column .inner p.address{ font-size: 1.4rem; line-height: 1.2em; color: #FFF; margin-top: 1.6rem;}
footer section .ftInfo .column .inner dl.address{ display: flex; justify-content: space-between; flex-wrap: wrap; margin-top: 1.0rem;}
footer section .ftInfo .column .inner dl.address dt{ width: 6.5em; font-size: 1.4rem; line-height: 1.2em; color: #FFF;}
footer section .ftInfo .column .inner dl.address dd{ width: calc(100% - 6.5em); font-size: 1.4rem; line-height: 1.2em; color: #FFF;}
footer section .ftInfo .column .inner .callnumber{ margin-top: 1.6rem; display: flex; justify-content: flex-start; flex-wrap: wrap; align-items: flex-end;}
footer section .ftInfo .column .inner .callnumber a{ font-family: "Barlow", sans-serif; font-weight: 500; font-style: normal; display: inline-block; font-size: 3.2rem; line-height: 0.9em; color: #FFF; text-decoration: none; padding-left: 1.0em; position: relative;}
footer section .ftInfo .column .inner .callnumber a:before{ content: ""; width: 24px; height: 24px; background: url("../../images/phone_icon.webp") no-repeat; background-size: contain; position: absolute; top: 0.1em; left: 0;}
footer section .ftInfo .column .inner .callnumber a:hover{ color: rgba(255,255,255,0.72);}
footer section .ftInfo .column .inner .callnumber span{ font-size: 1.2rem; line-height: 1.2em; color: #FFF; margin-left: 0.5em;}
footer section .ftInfo .column .inner .callnumber em{ display: block; width: 100%; font-size: 1.2rem; line-height: 1.2em; color: #FFF; margin-top: 0.72em;}
footer section .ftInfo .column nav{ width: 100%; margin-top: 3.2rem;}
footer section .ftInfo .column nav ul{ display: flex; justify-content: space-between; flex-wrap: wrap;}
footer section .ftInfo .column nav ul li{ font-size: 1.4rem; line-height: 1.2em; width: 100%;}
footer section .ftInfo .column nav ul li:nth-child(n+2){ margin-top: 0.4em;}
footer section .ftInfo .column nav ul li a{ display: block; color: #FFF; text-decoration: none; background: rgba(255,255,255,0.24); padding: 0.8em; text-align: left;}
footer section .ftInfo .column nav ul li a:hover{ color: rgba(255,255,255,0.72); text-decoration: none;}

footer section .ftInfo .ftNavi{ width: 100%; margin-top: 3.2rem;}
footer section .ftInfo .ftNavi ul{ display: flex; justify-content: space-between; flex-wrap: wrap;}
footer section .ftInfo .ftNavi ul li{ width: 100%; line-height: 1.4em; border-bottom: solid 1px rgba(255,255,255,0.08);}
footer section .ftInfo .ftNavi ul li:nth-child(1){ border-top: solid 1px rgba(255,255,255,0.08);}
footer section .ftInfo .ftNavi ul li a{ display: block; color: #FFF; text-decoration: none; padding: 1.0em 0.4em; position: relative;}
footer section .ftInfo .ftNavi ul li a:before{ content: "\f08e"; font-family: "Font Awesome 6 Free","Font Awesome 6 Brands"; font-weight: 600; font-size: 1.4rem; position: absolute; bottom: 0.8em; right: 0.8em; opacity: 1.0; transition: all 0.3s ease 0s;}
footer section .ftInfo .ftNavi ul li a:hover:before{ opacity: 1.0;}
footer section .ftInfo .ftNavi ul li a:after{ content: ""; width: 0; height: 1px; background: #FFF; position: absolute; bottom:-1px; right: 0; transition: all 0.3s ease 0s;}
footer section .ftInfo .ftNavi ul li a:hover:after{ width: 100%; left: 0;}
footer section .ftInfo .ftNavi ul li a span{ display: block; font-size: 1.4rem; line-height: 1.2em;}
footer section .copyright{ margin-top: 6.4rem; text-align: center; font-size: 1.4rem; line-height: 1.2em; color: #FFF;}

/*=============================================================
	common
=============================================================*/
*{ -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;}

body{ 
	margin:0;
	padding:0;
	text-align:center;
	font-size: 1.6rem;
	line-height: 1.8em;
	font-family: -apple-system,"Noto Sans JP", BlinkMacSystemFont, "Helvetica Neue", YuGothic, Hiragino Kaku Gothic ProN, Arial, Meiryo, sans-serif;
	font-optical-sizing: auto;
	color: #111;
	background: #FFF;
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	position:relative;
}

a{color: rgba(51,51,51,1.0); text-decoration:underline; transition: all 0.3s ease 0s;}
a:hover{color: rgba(51,51,51,0.64); text-decoration:none;}

/*=============================================================
	reset
=============================================================*/
html { height:100%; font-size:62.5%;}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,blockquote,th,td,img,p{ margin: 0px; padding: 0px; font-weight: 400;}
address,caption,cite,code,dfn,em,strong,th,var { font-style: normal;}
h1, h2, h3, h4, h5, h6,
div, p, pre, ul, ol, dl, dt, dd,
address, form, blockquote{ text-align: left; display: block;}
table { border-collapse: collapse; border-spacing: 0;}
caption,th { text-align: left;}
q:before,q:after { content: '';}
figure{ margin: 0; padding: 0;}
img,
object,
embed { vertical-align: top;}
legend{ display: none;}
h1,h2,h3,h4,h5,h6 { font-size: 100%;}
img,abbr,acronym,fieldset{ border:none;}
li{ list-style-type: none;}
svg{ fill: currentColor;}
input[type="submit"]{ background-color: transparent; border: none; cursor: pointer; outline: none; padding: 0; appearance: none;}

html.lenis, html.lenis body{ height: auto;}
.lenis.lenis-smooth { scroll-behavior: auto !important;}
.lenis.lenis-stopped { overflow: hidden;}

/*---------- align ----------*/
.align-left{ text-align: left;}
.align-right{ text-align: right;}
.align-center{ text-align: center;}

/*----- clearfix -----*/
.container,
.clearfix { zoom:1;}
.container:after,
.clearfix:after{ content: ""; display: block; clear: both;}
.clearfloat { clear: both; height: 0; font-size: 1px; line-height: 0px;}
