
:root{
  --ink:#2f2a67;
  --ink-dark:#231f48;
  --peach:#fae5d5;
  --peach-soft:#fff7f1;
  --orange:#f58a3a;
  --purple:#8c4aa1;
  --navy:#373170;
  --blue:#1765a5;
  --teal:#18aaa9;
  --red:#ef5366;
  --white:#fff;
  --line:#eadbd0;
  --shadow:0 12px 28px rgba(47,42,103,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:#28242b;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,Meiryo,sans-serif;line-height:1.8;-webkit-font-smoothing:antialiased;
text-align: justify;font-weight: 500;}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.container{width:min(1120px,calc(100% - 48px));margin-inline:auto}
.container.narrow{width:min(900px,calc(100% - 48px))}
.section-space{padding:60px 0}
.sp-only{display:none}

.hero{background:#efe9e6;border-top:3px solid var(--ink)}
.hero-inner{display:flex;justify-content:center;align-items:center;padding:0 24px}
.hero img{width:min(450px,100%);box-shadow:0 0 0 1px rgba(47,42,103,.08)}

.overview{position:relative;overflow:hidden;background:var(--peach-soft)}
.overview::before,.overview::after{content:"";position:absolute;border-radius:999px;pointer-events:none}
.overview::before{width:420px;height:190px;background:#f3cdb6;left:-180px;bottom:40px;transform:rotate(-8deg);opacity:.55}
.overview::after{width:300px;height:300px;border:34px solid rgba(24,170,169,.12);right:-120px;top:30px}
.section-kicker{display:inline-block;margin-bottom:10px;color:var(--teal);font-size:13px;font-weight:800;letter-spacing:.16em}
h1,h2,h3,p{margin-top:0}
h1{margin-bottom:30px;color:var(--ink-dark);font-size:clamp(28px,5vw,42px);line-height:1.35;letter-spacing:.01em}

/* KVトンマナに合わせたキャンペーンタイトル */
.kv-kicker{
  display:table;
  margin:30px auto 20px;
  padding:7px 26px 8px;
  border-radius:999px;
  background:var(--teal);
  color:#fff;
  font-family:"Noto Sans JP",sans-serif;
  font-size:clamp(15px,2vw,20px);
  font-weight:800;
  line-height:1.4;
  letter-spacing:.05em;
  text-align:center;
}
.campaign-title{
  margin:0 0 30px;
  color:inherit;
  font-size:1rem;
  line-height:1;
  letter-spacing:0;
  text-align:center;
}
.campaign-title-sub{
	display:flex;
	align-items:baseline;
	justify-content:center;
	gap:.35em;
	margin-bottom:18px;
	color:#111;
	white-space:nowrap;
}
.campaign-brand{
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:clamp(40px,5.5vw,64px);
  font-weight:900;
  line-height:1;
  
}
.campaign-rest{
  font-family:"Noto Sans JP",sans-serif;
  font-size:clamp(22px,3vw,34px);
  font-weight:900;
  line-height:1.2;
  letter-spacing:.01em;
}
.campaign-title-main{
	display:block;
	color:#302776;
	font-family:"Noto Sans JP",sans-serif;
	font-size:clamp(46px,7vw,76px);
	font-weight:900;
	line-height:1.15;
	
}

.campaign-title-main .autumn{
	font-size:1em;
}

.campaign-title-main .no{
	margin:0 .03em 0 .02em;
	font-size:.56em;
	letter-spacing:0;
	vertical-align:.10em;
}

.autumn-stack{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin-right:.08em;
  line-height:.72;
}
.autumn-stack .autumn{
  display:block;
  font-size:.78em;
}
.autumn-stack .no{
  display:block;
  margin-top:.10em;
  font-size:.42em;
  letter-spacing:0;
}
.sento-title{
  display:inline-block;
}
.overview-card{position:relative;z-index:1;padding:34px 38px;background:#fff;border:1px solid #f2ded1;border-radius:22px;box-shadow:var(--shadow);font-size:16px}
.overview-card p:last-child{margin-bottom:0}
.em-red{color:var(--red)}
.outline-list{display:grid;gap:10px;margin:28px 0 20px}
.outline-list>div{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:13px 0;border-bottom:1px dashed #dfd2ca}
.outline-list dt{font-weight:800;color:var(--ink)}
.outline-list dd{margin:0;font-weight:700}
.note{font-size:12px;color:#777}

.sampling{background:#fff}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:34px}
.section-heading h2{margin:0;color:var(--ink-dark);font-size:clamp(27px,3.4vw,42px);line-height:1.35}
.section-heading>p{max-width:430px;margin:0;color:#666;font-size:16px}
.sample-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.sample-card{min-width:0}
.sample-link{display:block;height:100%;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px;text-decoration:none;box-shadow:0 7px 22px rgba(47,42,103,.07);transition:transform .2s ease,box-shadow .2s ease}
.sample-link:hover{transform:translateY(-3px);box-shadow:0 13px 28px rgba(47,42,103,.12)}
.sample-photo{margin:0;aspect-ratio:16/10;overflow:hidden;background:#eee}
.sample-photo img{width:100%;height:100%;object-fit:cover}
.sample-body{padding:16px 17px 18px}
.sample-area{margin-bottom:5px;color:var(--teal);font-size:16px;font-weight:800}
.sample-area span{margin-left:.45em;color:#777;font-weight:600}
.sample-body h3{margin-bottom:12px;color:var(--ink-dark);font-size:22px;line-height:1.6}
.more{display:inline-flex;align-items:center;gap:.45em;color:var(--ink);font-size:12px;font-weight:800}

.all-facilities{position:relative;background:#fbe7d9;overflow:hidden}
.all-facilities::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 10%,rgba(24,170,169,.08) 0 11%,transparent 11.5%),radial-gradient(circle at 88% 40%,rgba(55,49,112,.08) 0 9%,transparent 9.5%);pointer-events:none}
.facility-heading{position:relative;z-index:1}
.pref-nav{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 34px}
.pref-chip{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:7px 12px;border-radius:999px;color:#fff;text-decoration:none;font-size:13px;font-weight:800;box-shadow:0 4px 10px rgba(47,42,103,.08)}
.pref-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:24px;align-items:start}
.pref-block{overflow:hidden;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.9);border-radius:20px;box-shadow:var(--shadow);scroll-margin-top:20px}
.pref-head{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:14px 54px 14px 18px;
  border:0;
  color:#fff;
  font:inherit;
  text-align:left;
  cursor:pointer;
  appearance:none;
}
.pref-head h3{margin:0;font-size:25px;letter-spacing:.06em}
.pref-head span{font-size:12px;font-weight:700;opacity:.9}
.pref-head::after{
  content:"";
  position:absolute;
  right:22px;
  top:50%;
  width:10px;
  height:10px;
  border-right:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:translateY(-65%) rotate(45deg);
  transition:transform .2s ease;
}
.pref-head[aria-expanded="true"]::after{
  transform:translateY(-35%) rotate(225deg);
}
.pref-head:focus-visible{
  outline:3px solid rgba(255,255,255,.9);
  outline-offset:-5px;
}
.facility-list[hidden]{display:none}
.facility-list{list-style:none;margin:0;padding:14px 18px 18px}
.facility-row{display:grid;grid-template-columns:130px 1fr;gap:16px;align-items:start;padding:10px 0;border-bottom:1px dashed #ded5cd}
.facility-row:last-child{border-bottom:0}
.city-tag{display:inline-flex;align-items:center;justify-content:center;min-width:100px;margin-top:2px;padding:3px 10px;border-radius:999px;color:#fff;font-size:14px;font-weight:800;line-height:1.7;white-space:nowrap}
.facility-name{font-size:16px;font-weight:700;line-height:2.1;text-decoration:none;text-underline-offset:3px}
.facility-name:hover{text-decoration:underline}
/* 都道府県ごとの識別色（重複なし） */
.theme-hokkaido{--pref-color:#ef7f3b}
.theme-miyagi{--pref-color:#7a4b9d}
.theme-chiba{--pref-color:#d95f76}
.theme-tokyo{--pref-color:#38326f}
.theme-kanagawa{--pref-color:#176aa5}
.theme-niigata{--pref-color:#139b93}
.theme-shizuoka{--pref-color:#2a8e63}
.theme-aichi{--pref-color:#9b4b76}
.theme-mie{--pref-color:#c77720}
.theme-kyoto{--pref-color:#5c6e3a}
.theme-osaka{--pref-color:#267fbd}
.theme-hyogo{--pref-color:#5a579f}
.theme-hiroshima{--pref-color:#b5523d}
.theme-fukuoka{--pref-color:#8b6930}
.pref-block .pref-head,.pref-block .city-tag,.pref-chip{background:var(--pref-color)}

footer{padding:34px 0;background:var(--ink-dark);color:#fff}
.footer-inner{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:30px;
}

.footer-inner strong{
	font-size:26px;
	line-height:1;
	letter-spacing:.03em;
}

.footer-inner img{
	display:block;
	width:auto;
	height:38px;
	object-fit:contain;
}

@media (max-width:900px){
  .sample-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .section-heading{align-items:flex-start;flex-direction:column;gap:12px}
  .section-heading>p{max-width:none}
}
@media (max-width:680px){
  body{font-size:14px;line-height:1.75}
  .container,.container.narrow{width:min(100% - 40px,1120px)}
  .section-space{padding:30px 0}
  .sp-only{display:block}
  .hero-inner{padding:0}
  .hero img{width:100%;max-width:450px}
  h1{font-size:34px;margin-bottom:22px}
  .kv-kicker{
    margin:24px auto 16px;
    padding:6px 14px 7px;
    font-size:13px;
    letter-spacing:.03em;
  }
  .campaign-title{margin-bottom:22px}
  .campaign-title-sub{gap:.25em;margin-bottom:8px}
  .campaign-brand{font-size:38px}
  .campaign-rest{font-size:20px}
  .campaign-title-main{font-size:45px}
  .overview-card{padding:24px 20px;border-radius:16px;font-size:14px}
  .outline-list>div{grid-template-columns:1fr;gap:3px;padding:11px 0}
  .outline-list dt{font-size:12px}
  .sample-grid{
	grid-template-columns:1fr;
	gap:16px;
}

.sample-link{
	display:grid;
	grid-template-columns:46% 1fr;
	border-radius:14px;
}

.sample-photo{
	height:100%;
	aspect-ratio:auto;
}

.sample-body{
	padding:14px;
	min-height:180px;

	display:flex;
	flex-direction:column;
	justify-content:center;
}

.sample-body h3{
	font-size:20px;
	margin-bottom:8px;
}
  .pref-nav{gap:7px;margin-bottom:24px}
  .pref-chip{min-width:auto;padding:6px 10px;font-size:12px}
  .pref-grid{grid-template-columns:1fr;gap:17px}
  .pref-head{padding:12px 52px 12px 15px}
  .pref-head h3{font-size:21px}
  .facility-list{padding:10px 14px 14px}
  .facility-row{grid-template-columns:96px 1fr;gap:16px;padding:8px 0}
  .city-tag{min-width:0;font-size:11px;padding:2px 7px}
  .facility-name{font-size:15px}
}
@media (max-width:390px){

  .kv-kicker{font-size:12px;padding-inline:11px}
  .campaign-brand{font-size:34px}
  .campaign-rest{font-size:18px}
  .campaign-title-main{font-size:40px}
  .sample-area{font-size:14px}
  .sample-body h3{font-size:18px}
}

.kaisei-decol-regular {
  font-family: "Kaisei Decol", serif;
  font-weight: 400;
  font-style: normal;
}

.kaisei-decol-medium {
  font-family: "Kaisei Decol", serif;
  font-weight: 500;
  font-style: normal;
}

.kaisei-decol-bold {
  font-family: "Kaisei Decol", serif;
  font-weight: 700;
  font-style: normal;
}
.hero-about {
	width: min(1100px, calc(100% - 48px));
}

.section-space-top{padding:30px 0}


.flex {
	display: flex;
	align-items: flex-start;
	gap: 60px;
}

.main-image {
	flex: 4 1 0;
	min-width: 0;
}

.title-set {
	flex: 6 1 0;
	min-width: 0;
}

.main-image img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width:768px){
	.flex{
		display: block;
	}
	
	.main-image{
		padding-top: 0!important;
	}
	.section-space-top{padding:20px 0}
}

.page-top{
	position:fixed;
	right:24px;
	bottom:24px;
	z-index:1000;

	display:flex;
	align-items:center;
	justify-content:center;

	width:52px;
	height:52px;
	border-radius:50%;

	background:var(--ink-dark);
	color:#fff;
	text-decoration:none;

	box-shadow:0 6px 18px rgba(0,0,0,.18);
	transition:
		transform .2s ease,
		background .2s ease,
		box-shadow .2s ease;
}

.page-top:hover{
	transform:translateY(-4px);
	background:var(--teal);
	box-shadow:0 10px 22px rgba(0,0,0,.22);
}

.page-top span{
	font-size:24px;
	line-height:1;
}

.mt30{
	margin-top: 30px!important;
}

.outline-list-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background-color:var(--ink);
  color:#fff;
  margin:0;
  text-align:left;
  padding:5px 0 5px 12px;
}
.outline-list-title a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:stretch;
  margin-left:auto;
  padding:0 14px;
  color:inherit;
  text-decoration:none;
}
.page-link{
  display:block;
  font-size:14px;
  line-height:1;
}
.facility-name--pending{
  color:#666;
  text-decoration:none;
}
@media (max-width:768px){
	.page-link{
  display:block;
  font-size:12px;
  line-height:1.6;
}
}
