/*
Theme Name: greensansho
*/
@charset "utf-8";
*,
*::before,
*::after {
  box-sizing: border-box
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0
}

ul[role='list'],
ol[role='list'] {
  list-style: none;
}

body {
  min-height: 100vh;
  line-height: 1.5
}

h1,
h2,
h3,
h4,
button,
input,
label {
  line-height: 1.1
}

a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor
}

img,
picture {
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit
}

textarea:not([rows]) {
  min-height: 10em
}

:target {
  scroll-margin-block: 5ex
}

body {
  position: relative;
  color: #333;
  font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
.sans{
  font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}

h1 {
  font-size: 18px;
}

h2 {
  font-size: 18px;
}

h3 {
  font-size: 18px;
}

h4 {
  font-size: 16px;
}

h5 {
  font-size: 16px;
}

h6 {
  font-size: 16px;
}

p {
  font-size: 18px;
  line-height: 1.75;
}

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

li {
  font-size: 18px;
}

.stack>*+* {
  margin-top: 16px;
}

.stack__small>*+* {
  margin-top: 8px;
}

.stack__large>*+* {
  margin-top: 32px;
}


.txt-large {
  font-size: 120%;
}

.txt-small {
  font-size: 80%;
}

.txt-center {
  text-align: center;
}

.txt-right {
  text-align: right !important;
}

.img-center {
  display: block;
  margin-inline: auto;
}

.mb-16 {
  margin-bottom: 16px;
}

.mb-32 {
  margin-bottom: 32px;
}

.mb-64 {
  margin-bottom: 64px;
}

.mt-8 {
  margin-top: 8px;
}

.mt-16 {
  margin-top: 16px;
}

.mt-32 {
  margin-top: 32px;
}

.mt-64 {
  margin-top: 64px;
}

.map-container {
  position: relative;
  overflow: hidden;
  padding-bottom: 56.25%;
  /* 16:9 (9÷16=0.5625) */
}

.map-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* ベース */
body {
  position: relative;
  color: #333;
  height: 100%;
}

:root {
  --orange: #EC6C4C;
  --green: #60B357;
  --beige: #F5F2EE;
}

.wrapper {
  margin-inline: auto;
  padding-inline: 3vw;
  max-width: calc(1280px + 6vw);
}

.narrow__wrapper {
  margin-inline: auto;
  max-width: 960px;
}

a {
  text-decoration: none;
  color: var(--deep-blue);
  transition: all .3s ease;
}

a:hover {
  opacity: .8;
}

.tel a {
  color: var(--black);
  text-decoration: none;
}

/*
ヘッダー
*/
#header{
  transition: all 1s ease;
}
.site__header {
  position: fixed;
  top: 0;
  width: 100%;
  height:60px;
  padding-inline: 3vw;
  margin-inline: auto;
  background-color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  z-index: 100;
}

.site__header__menu__list {
  display: flex;
  align-items: center;
  gap: 24px;
  height: 32px;
}

.site__header__menu__list li {
  line-height: 1;
  font-size:16px;
  font-weight:600;
}

/*
フッター
*/
.site__footer {
  position: sticky;
  top: 100vh;
  width: 100%;
  font-size: 24px;
  line-height: 1.2;
  padding-block: 36px;
  background: var(--green);
  color: #fff;
}
.site__footer p{
	font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	text-align:center;
	font-weight:700;
	color:#fff;
}



/*
ページ共通
*/
.site__main {
  padding-top: 60px;
}

section {
  padding-bottom: 80px;
}
section:last-of-type {
  padding-bottom: 160px;
}

.font-size__l {
  font-size: clamp(26px, 3.2vw, 34px);
}
.font-size__m {
  font-size: clamp(20px, 2.8vw, 28px);
}
.font-size__s {
  font-size: clamp(18px, 2.2vw, 22px);
}



/* top */
.top_hero__wrapper {
  position: relative;
  aspect-ratio: 2733/1692;
  margin-inline:calc(50% - 50vw);
  background: url(images/hero-top.webp) center center no-repeat;
  background-size: cover;
}
.top-newslist li{
  display:flex;
  flex-direction: row-reverse;
  justify-content: start;
  align-items: center;
  position:relative;
  border-top:1px solid #999;
}
.top-newslist li::before{
  content: '';
  position: absolute;
  top: -1px;
  width: 20%;
  height: 1px;
  background: var(--green);
}
.top-newslist li:last-child{
  position:relative;
  border-bottom:1px solid #999;
}
.top-newslist li:last-child::after{
  content: '';
  position: absolute;
  bottom: -1px;
  width: 20%;
  height: 1px;
  background: var(--green);
}
.top-newslist li > *{
  padding: 8px 16px;
  margin:0;
}

/* page */
.page__hero__wrapper {
  position: relative;
  aspect-ratio: 3.5/1;
  margin-inline: calc(50% - 50vw);
  overflow: visible;
}

.page__hero__wrapper.news__hero {
  background: url('images/hero-news.webp') center center no-repeat;
  background-size: cover;
}
.page__hero__wrapper.company__hero {
  background: url('images/hero-company.webp') center center no-repeat;
  background-size: cover;
}
.page__hero__wrapper.recruit__hero {
  background: url('images/hero-recruit.webp') center center no-repeat;
  background-size: cover;
}
.page__hero__wrapper.products__hero {
  background: url('images/hero-product.webp') center center no-repeat;
  background-size: cover;
}
.page__hero__wrapper.pp__hero {
  background: url('images/hero-pp.webp') center center no-repeat;
  background-size: cover;
}
.page__hero__wrapper.order__hero {
  background: url('images/hero-order.webp') center center no-repeat;
  background-size: cover;
}
.page__hero__wrapper.contact__hero {
  background: url('images/hero-contact.webp') center center no-repeat;
  background-size: cover;
}

.half-overlap-js {
  position: relative;
  /* topで下にずらす用 */
  text-align: center;
  /* 中央寄せ */
}

.half-overlap-js img {
  display: inline-block;
  /* 中央寄せと高さ計測のため */
  height: auto;
  width: 20%;
  min-width: 160px;
}


/* 見出し01 */
.sec__title{
  text-align:center;
  margin-bottom:48px;
}
.sec__title img{
  max-width:300px;
}
/* 見出し（緑背景） */
.bg-title-green{
	display:inline-block;
	font-size:22px;
	padding:10px 16px;
	background:#D0E2C5;
}
/* 背景付きセクション */
.sec__bg{
  margin-inline:calc(50% - 50vw);
  padding-inline:calc(50vw - 50%);
  margin-bottom:60px;
  padding-block:60px 100px;
  background:var(--beige);
}
.sec__bg.no-mgn{
  margin-bottom:0 !important;
}

.txt-center-left {
	margin: 16px auto;
	text-align: center;
	display: block;
}
.txt-center-left p {
	text-align: left;
	display: inline-block;
}
.border-w--heading{
  display:inline-block;
  font-size:20px;
  padding:10px 8px;
  border-top:1px solid var(--orange);
  border-bottom:1px solid var(--orange);
}
.dot-list li{
  display:flex;
  align-items: center;
  padding-block:4px;
}
.dot-list li::before{
 content: "⚫︎"; /* 記号(黒丸)を挿入 */
 color: var(--orange); /* 好きな色にする */
 font-size: 0.6em; /* 点の大きさ */
 margin-right: 1em; /* 点とテキストの距離 */
}
.black-dot-list{
}
.black-dot-list li{
	margin-left:24px;
	margin-bottom:8px;
	list-style-type: disc;
}
.color-red{
	color:#C73834;
}

/* ブログ */
.news-wrapper{
  margin-inline:auto;
  max-width:960px;
}

.archivetitle{
  text-align: center;
  font-size:clamp(22px, 2.8vw, 30px);
  margin-bottom:48px;
}
.single__article .archivetitle{
  text-align: left;
}

.article__info{
  display:flex;
  align-items: center;
  position:relative;
  border-top:1px solid #999;
}
.article__info li{
  padding:8px 16px;
}
.expt__post__title h2{
  padding-left:32px;
}
.article__info{
  position:relative;
  border-top:1px solid #999;
}
.article__info::before{
  content: '';
  position: absolute;
  top: -1px;
  width: 15%;
  height: 1px;
  background: var(--green);
}
.expt__post__wrapper{
  position:relative;
  border-bottom:1px solid #999;
}
.expt__post__wrapper::after{
  content: '';
  position: absolute;
  bottom: -1px;
  width: 15%;
  height: 1px;
  background: var(--green);
}

@media screen and (max-width: 639px) {
.article__info{
  flex-direction: column;
  align-items: flex-start; 
}
.expt__post__title{
  padding-top:0 !important;
}
}

.article__main__text{
	margin-bottom:32px;
}
.article__main__text p{
	line-height:1.75;
	margin-bottom:24px;
}
.article__main__text figure{
	margin-bottom:24px;
}
.article__main__text p a{
	text-decoration:underline;
}

ul.page-numbers{
	margin-top:40px;
	display:flex;
	justify-content:center;
	gap:8px;
}
ul.page-numbers li a,ul.page-numbers li span{
	padding:8px;
}
.page-numbers .current{
	background:#cdcdcd;
}

.single__nav{
	margin-top:40px;
}
.nav-links{
	display:flex;
	justify-content:center;
	gap:16px;
}
.single__nav a{
	display:inline-block;
	color:#fff;
	background:var(--orange);
	padding:8px 16px;
}


/* forms */
/* 必須ラベル */
.smf-item:has([data-validations~="required"]) .smf-item__label__text::after {
	content: "必須";
	display: inline-block;
	padding: 3px 3px;
	color: #fff;
	background-color: #D72F21;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	margin-left: .6em;
	border-radius: 3px;
}

.smf-form input[type=text],.smf-form input[type=email],.smf-form input[type=tel]{
	width:100%;
}
.smf-form input[type=text],.smf-form input[type=email],.smf-form input[type=tel],.smf-form textarea{
	border:none !important;
	background:#F7F7F7 !important;
}

.smf-action .smf-button-control__control[data-action="confirm"],
.smf-action .smf-button-control__control[data-action="complete"] {
  font-weight:700;
	background: #fcfcfc;
	background: linear-gradient(180deg, #fcfcfc 20%, #F5F2EE 100%);
	color:#333;
	border-radius:30px;
	border:1px solid #333;
	padding:10px 80px;
}
.smf-action .smf-button-control__control[data-action="back"] {
	border-radius:30px;
	padding:10px 40px;
	margin-bottom:1em;
}

[data-screen="confirm"] .input {
  display:none;
}
