@charset "UTF-8";

.main { padding-top: var(--header-h); }

.inner {
	width: min(var(--inner), 100% - var(--gutter) * 2);
	margin-inline: auto;
}

/* ============================================================
   MV  デザイン原寸 1920x1080。stage の font-size をビューポート連動にし、
   中の座標を em(=原寸px/10) で置くことで全体が等比スケールする
   ============================================================ */
.mv {
	position: relative;
	overflow: hidden;
}

.mv__stage {
	position: relative;
	width: 100%;
	aspect-ratio: 1920 / 1080;
	font-size: calc(100vw / 192);
}

.mv__art { position: absolute; inset: 0; }

/* 重なった部分だけが明るくなる。isolate でグループを閉じ、内側に背景色を敷かない
   (白背景をこの中に入れると screen で全部白に飛ぶ) */
.mv__blobs {
	position: absolute;
	inset: 0;
	isolation: isolate;
	overflow: hidden;
}

.mvBlob {
	position: absolute;
	mix-blend-mode: screen;
	transform-origin: center;
	transform: rotate(-1deg) skewX(-31deg) scaleY(.857);
	max-width: none;
}

.mvBlob--a { left: 72.546em;  top: 14.85em;   width: 161.248em; height: 93.401em; }
.mvBlob--b { left: 86.915em;  top: 20.519em;  width: 49.170em;  height: 28.481em; }
.mvBlob--c { left: -19.674em; top: 77.349em;  width: 161.248em; height: 93.401em; }
.mvBlob--d { left: 114.946em; top: 56.949em;  width: 161.248em; height: 93.401em; }
.mvBlob--e { left: 117.743em; top: -26.848em; width: 121.153em; height: 70.176em; }

.mvArt {
	position: absolute;
	max-width: none;
}

.mvArt--postShadow    { left: 122.505em; top: 66.803em; width: 19.848em; height: 14.808em; transform: rotate(-4.2deg) scaleY(.98) skewX(14.66deg); }
.mvArt--post          { left: 117.078em; top: 49.100em; width: 11.693em; height: 21.687em; }
.mvArt--postmanShadow { left: 138.271em; top: 71.032em; width: 20.819em; height: 15.141em; transform: rotate(-4.2deg) scaleY(.98) skewX(14.66deg); }
.mvArt--postman       { left: 126.677em; top: 48.800em; width: 19.939em; height: 26.729em; }
.mvArt--flyer         { left: 124.400em; top: 53.650em; width: 4.150em;  height: 2.550em; }

.mvArt--p1shadow  { left: 162.920em; top: 89.265em; width: 10.529em; height: 4.535em; }
.mvArt--p1shadow2 { left: 171.424em; top: 85.782em; width: 8.747em;  height: 3.806em; }
.mvArt--p1        { left: 161.300em; top: 72.500em; width: 14.649em; height: 18.478em; }
.mvArt--p2shadow  { left: 108.943em; top: 35.845em; width: 15.517em; height: 7.155em; }
.mvArt--p2        { left: 105.800em; top: 23.000em; width: 12.374em; height: 16.449em; }
.mvArt--p3shadow  { left: 96.114em;  top: 91.063em; width: 19.639em; height: 7.274em; }
.mvArt--p3        { left: 92.800em;  top: 77.000em; width: 17.538em; height: 17.296em; }
.mvArt--p4shadow  { left: 155.078em; top: 30.582em; width: 15.993em; height: 7.834em; transform: rotate(-4deg) skewX(28deg) scaleY(.88); }
.mvArt--p4        { left: 151.903em; top: 18.814em; width: 15.884em; height: 15.565em; transform: rotate(-3.84deg); }

.mvArt--arc { left: 107.900em; top: 39.900em; width: 48.102em; height: 27.710em; }

.mvPlus {
	position: absolute;
	background: rgba(110, 168, 255, .3);
	clip-path: polygon(40% 0, 60% 0, 60% 40%, 100% 40%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0 60%, 0 40%, 40% 40%);
}

.mvPlus--a { left: 67.2em; top: 37.1em; width: 7em; height: 7em; }
.mvPlus--b { left: 8.5em;  top: 74.6em; width: 9em; height: 9em; }
.mvPlus--c { left: 76.4em; top: 20.5em; width: 9em; height: 9em; }
.mvPlus--d { left: 25.8em; top: 83.3em; width: 5em; height: 5em; }

/* ---- コピー ---- */
.mv__copy {
	position: absolute;
	left: 20em;
	top: 26.4em;
	color: var(--navy);
}

.mv__catch {
	font-size: 8em;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.mv__line { display: block; }

.mv__catchPlus {
	display: inline-block;
	width: .625em;
	height: .625em;
	margin: 0 .06em -.04em;
	background: var(--navy);
	clip-path: polygon(40% 0, 60% 0, 60% 40%, 100% 40%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0 60%, 0 40%, 40% 40%);
}

.mv__lead {
	margin-left: 1em;
	font-size: 2.2em;
	line-height: 1.7;
	letter-spacing: .05em;
	color: var(--font-color);
	white-space: nowrap;
}

.mv__lead:first-of-type { margin-top: 2.8em; }
.mv__lead + .mv__lead { margin-top: 1em; }

.mv__num {
	font-family: var(--font-en);
	font-weight: 300;
	font-size: 1.09em;
}

/* ---- イントロ ---- */
.mvIntro {
	position: absolute;
	inset: 0;
	display: grid;
	place-content: center;
	background: #fff;
	pointer-events: none;
	opacity: 0;
}

.mvIntro__logo { width: 30.69em; height: auto; }

.mvSkip {
	position: absolute;
	right: 24px;
	bottom: 24px;
	z-index: 5;
	padding: 8px 20px;
	border-radius: 40px;
	border: 1px solid rgba(8, 0, 89, .3);
	background: rgba(255, 255, 255, .8);
	font-size: 13px;
	color: var(--navy);
	opacity: 0;
	pointer-events: none;
	transition: opacity .3s;
}

.mv.is-playing .mvSkip { opacity: 1; pointer-events: auto; }

/* ---- イントロ再生中の初期状態と再生 ---- */
.mv.is-playing .mvIntro { opacity: 1; animation: psIntroOut .6s 2s forwards; }
.mv.is-playing .mvIntro__logo { clip-path: inset(0 100% 0 0); animation: psWipe 1.1s .3s forwards cubic-bezier(.22,.61,.36,1); }

.mv.is-playing .mvBlob { transform: rotate(-1deg) skewX(-31deg) scaleY(.857) scale(0); opacity: 0; }
.mv.is-playing .mvBlob--a { animation: psBlobIn .9s 2.6s forwards cubic-bezier(.22,.61,.36,1); }
.mv.is-playing .mvBlob--c { animation: psBlobIn .9s 3.0s forwards cubic-bezier(.22,.61,.36,1); }
.mv.is-playing .mvBlob--b { animation: psBlobIn .9s 3.3s forwards cubic-bezier(.22,.61,.36,1); }
.mv.is-playing .mvBlob--e { animation: psBlobIn .9s 3.5s forwards cubic-bezier(.22,.61,.36,1); }
.mv.is-playing .mvBlob--d { animation: psBlobIn .9s 3.7s forwards cubic-bezier(.22,.61,.36,1); }

.mv.is-playing .mvArt--post,
.mv.is-playing .mvArt--postShadow { opacity: 0; animation: psDrop .7s .9s forwards cubic-bezier(.34,1.4,.64,1); }

.mv.is-playing .mvArt--postman,
.mv.is-playing .mvArt--postmanShadow,
.mv.is-playing .mvArt--flyer { opacity: 0; animation: psWalkIn 1.3s 1.5s forwards cubic-bezier(.22,.61,.36,1); }

.mv.is-playing .mv__line { opacity: 0; animation: psRise .8s forwards cubic-bezier(.22,.61,.36,1); }
.mv.is-playing .mv__line:nth-child(1) { animation-delay: 4.4s; }
.mv.is-playing .mv__line:nth-child(2) { animation-delay: 4.6s; }
.mv.is-playing .mv__line:nth-child(3) { animation-delay: 4.8s; }

.mv.is-playing .mv__lead { opacity: 0; animation: psRise .8s 5.4s forwards cubic-bezier(.22,.61,.36,1); }
.mv.is-playing .mv__lead + .mv__lead { animation-delay: 5.6s; }

.mv.is-playing .mvArt--p1, .mv.is-playing .mvArt--p1shadow, .mv.is-playing .mvArt--p1shadow2,
.mv.is-playing .mvArt--p2, .mv.is-playing .mvArt--p2shadow,
.mv.is-playing .mvArt--p3, .mv.is-playing .mvArt--p3shadow,
.mv.is-playing .mvArt--p4, .mv.is-playing .mvArt--p4shadow { opacity: 0; animation: psPop .7s forwards cubic-bezier(.34,1.4,.64,1); }

.mv.is-playing .mvArt--p3, .mv.is-playing .mvArt--p3shadow { animation-delay: 5.2s; }
.mv.is-playing .mvArt--p1, .mv.is-playing .mvArt--p1shadow, .mv.is-playing .mvArt--p1shadow2 { animation-delay: 5.5s; }
.mv.is-playing .mvArt--p2, .mv.is-playing .mvArt--p2shadow { animation-delay: 5.8s; }
.mv.is-playing .mvArt--p4, .mv.is-playing .mvArt--p4shadow { animation-delay: 6.1s; }

.mv.is-playing .mvArt--arc { opacity: 0; animation: psRise .9s 6.4s forwards cubic-bezier(.22,.61,.36,1); }
.mv.is-playing .mvPlus { opacity: 0; animation: psPop .8s 6.6s forwards cubic-bezier(.34,1.4,.64,1); }

@keyframes psWipe   { to { clip-path: inset(0 0 0 0); } }
@keyframes psIntroOut { to { opacity: 0; } }
@keyframes psBlobIn { to { transform: rotate(-1deg) skewX(-31deg) scaleY(.857) scale(1); opacity: 1; } }
@keyframes psDrop   { from { opacity: 0; translate: 0 -3em; } to { opacity: 1; translate: 0 0; } }
@keyframes psWalkIn { from { opacity: 0; translate: 12em 0; } to { opacity: 1; translate: 0 0; } }
@keyframes psRise   { from { opacity: 0; translate: 0 1.6em; } to { opacity: 1; translate: 0 0; } }
@keyframes psPop    { from { opacity: 0; scale: .8; } to { opacity: 1; scale: 1; } }

@media (prefers-reduced-motion: reduce) {
	.mv.is-playing * { animation: none !important; opacity: 1 !important; }
	.mv.is-playing .mvIntro { display: none; }
	.mv.is-playing .mvBlob { transform: rotate(-1deg) skewX(-31deg) scaleY(.857); }
}

/* ============================================================
   3つの強み
   ============================================================ */
.strengths {
	padding: 120px 0 140px;
}

.strengths .secHead { margin-bottom: 114px; }

.strengths__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 45px;
	width: min(var(--inner), 100% - var(--gutter) * 2);
	margin-inline: auto;
}

.strengthCard {
	position: relative;
	border-radius: 24px;
	background: var(--light-navy);
	padding-bottom: 40px;
}

.strengthCard__no {
	position: absolute;
	top: -34px;
	left: 50%;
	transform: translateX(-50%);
	display: grid;
	place-content: center;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	background: var(--navy);
	color: #fff;
	font-family: var(--font-en);
	font-size: 18px;
	letter-spacing: 1px;
	z-index: 2;
}

/* 上部のカラー面。下辺だけカーブさせる */
.strengthCard__head {
	position: relative;
	padding: 68px 20px 96px;
	text-align: center;
	border-radius: 24px 24px 0 0;
	color: var(--navy);
	clip-path: ellipse(120% 100% at 50% 0%);
}

.strengthCard--cyan  .strengthCard__head { background: var(--cyan); }
.strengthCard--green .strengthCard__head { background: var(--green); }
.strengthCard--pink  .strengthCard__head { background: var(--pink); color: #fff; }

.strengthCard__label {
	font-size: 21px;
	font-weight: 500;
	letter-spacing: 2px;
	line-height: 1;
}

.strengthCard__num {
	margin-top: 18px;
	font-family: var(--font-en);
	font-size: 84px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0;
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 6px;
}

.strengthCard__unit {
	font-family: var(--font-jp);
	font-size: 21px;
	font-weight: 500;
	letter-spacing: 1px;
}

/* カラー面の下カーブに重ねて置く */
.strengthCard__illust {
	display: block;
	margin: -70px auto 26px;
	position: relative;
	z-index: 1;
	height: 150px;
}

.strengthCard__illust img {
	height: 100%;
	width: auto;
	margin-inline: auto;
}

.strengthCard__body { padding: 0 35px; }

.strengthCard__text {
	font-size: 15px;
	line-height: 1.9;
	letter-spacing: .04em;
}

/* ============================================================
   ご注文の流れ
   ============================================================ */
.flow {
	position: relative;
	padding: 60px 0 200px;
	isolation: isolate;
	overflow: hidden;
}

/* 上下に曲線を持つブルーの帯 */
.flow__bg {
	position: absolute;
	left: 50%;
	translate: -50% 0;
	top: 180px;
	width: 130vw;
	height: 840px;
	background: var(--blue);
	border-radius: 50% 50% 45% 55% / 14% 12% 12% 14%;
	z-index: -1;
}

.flow .secHead { margin-bottom: 105px; }

.flow__list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 35px;
	width: min(var(--inner), 100% - var(--gutter) * 2);
	margin-inline: auto;
}

.flowCard {
	position: relative;
	border-radius: 20px;
	background: #fff;
	padding: 75px 20px 30px;
	text-align: center;
	box-shadow: 0 10px 30px rgba(8, 0, 89, .08);
}

/* カード間の三角。最後のカードには出さない */
.flowCard::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -27px;
	translate: 0 -50%;
	border-style: solid;
	border-width: 20px 0 20px 17px;
	border-color: transparent transparent transparent #fff;
}

.flowCard:last-child::after { content: none; }

.flowCard__no {
	position: absolute;
	top: -25px;
	left: 50%;
	transform: translateX(-50%);
	display: grid;
	place-content: center;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: var(--navy);
	color: #fff;
	font-family: var(--font-en);
	font-size: 14px;
	letter-spacing: 1px;
}

.flowCard__icon {
	display: block;
	width: 80px;
	height: 80px;
	margin: 0 auto 26px;
}

.flowCard__ttl {
	font-size: 18px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: .05em;
	color: var(--navy);
	min-height: 54px;
}

.flowCard__text {
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.7;
	letter-spacing: .02em;
}

/* ============================================================
   営業所ネットワーク
   ============================================================ */
.office {
	position: relative;
	padding: 140px 0 160px;
	background: var(--light-navy);
	border-radius: 80px 80px 0 0;
}

.office .secHead { margin-bottom: 90px; }

.office__body {
	display: grid;
	grid-template-columns: minmax(0, 494px) minmax(0, 1fr);
	gap: 60px;
	width: min(var(--inner), 100% - var(--gutter) * 2);
	margin-inline: auto;
}

.office__lead {
	font-size: 20px;
	font-weight: 500;
	line-height: 1.7;
	color: var(--navy);
}

.office__note {
	margin-top: 26px;
	font-size: 15px;
	line-height: 1.7;
}

.areaList {
	margin-top: 54px;
	padding: 40px 50px;
	border-radius: 20px;
	background: #fff;
}

.areaList__group + .areaList__group { margin-top: 22px; }

.areaList__pref {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	padding: 6px 0;
	border-radius: 6px;
	background: var(--navy);
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .08em;
}

.areaList__items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px 16px;
	margin-top: 12px;
	padding-left: 12px;
}

.areaList__items a {
	position: relative;
	padding-left: 14px;
	font-size: 14px;
	line-height: 1.9;
	transition: color .25s;
}

.areaList__items a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	translate: 0 -50%;
	width: 5px;
	height: 5px;
	border-top: 1.5px solid var(--navy);
	border-right: 1.5px solid var(--navy);
	transform: rotate(45deg);
}

.areaList__items a:hover { color: var(--navy); }

.office__map { position: relative; }

.office__mapNote {
	position: absolute;
	right: 0;
	top: 90px;
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: 14px;
	line-height: 1.6;
}

.office__pin {
	width: 20px;
	height: 26px;
	background: var(--navy);
	clip-path: path("M10 0C4.5 0 0 4.4 0 9.9C0 17 10 26 10 26C10 26 20 17 20 9.9C20 4.4 15.5 0 10 0Z");
	flex-shrink: 0;
}

/* ============================================================
   PLUS+DAYS
   ============================================================ */
.days {
	position: relative;
	padding: 140px 0 160px;
	overflow: hidden;
}

.days__head {
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr) auto;
	align-items: end;
	gap: 40px;
	width: min(var(--inner), 100% - var(--gutter) * 2);
	margin-inline: auto;
	margin-bottom: 60px;
}

.days__head .secHead { margin-bottom: 0; }

.days__lead {
	font-size: 15px;
	line-height: 1.8;
	padding-bottom: 6px;
}

.days__nav {
	display: flex;
	gap: 12px;
}

.days__arrow {
	position: relative;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1px solid rgba(8, 0, 89, .3);
	transition: background .25s, border-color .25s;
}

.days__arrow::before {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--navy);
	border-right: 2px solid var(--navy);
}

.days__arrow--prev::before { transform: translateX(2px) rotate(-135deg); }
.days__arrow--next::before { transform: translateX(-2px) rotate(45deg); }

.days__arrow--next {
	background: var(--navy);
	border-color: var(--navy);
}

.days__arrow--next::before { border-color: #fff; }

.days__arrow:disabled { opacity: .35; cursor: default; }

/* 右へ流れる横スクロール。左端はコンテンツ幅に揃える */
.days__viewport {
	padding-left: max(var(--gutter), (100% - var(--inner)) / 2);
	overflow: hidden;
}

.days__list {
	display: flex;
	gap: 40px;
	transition: transform .5s cubic-bezier(.22, .61, .36, 1);
}

.daysCard {
	flex: 0 0 440px;
	max-width: 440px;
}

.daysCard__link { display: block; }

.daysCard__img {
	display: block;
	position: relative;
	aspect-ratio: 440 / 300;
	border-radius: 16px;
	overflow: hidden;
	background: var(--light-navy);
}

.daysCard__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s;
}

.daysCard__link:hover .daysCard__img img { transform: scale(1.04); }

.daysCard__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 40px;
}

.daysCard__date {
	font-family: var(--font-en);
	font-size: 14px;
	color: var(--gray);
	letter-spacing: .04em;
}

.daysCard__ttl {
	display: block;
	margin-top: 20px;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: .02em;
	color: var(--navy);
}

.days__more {
	margin-top: 70px;
	text-align: center;
}

/* ============================================================
   よくあるご質問
   ============================================================ */
.faq {
	position: relative;
	padding: 140px 0 180px;
	background: var(--light-navy);
	border-radius: 80px 80px 0 0;
}

.faq .secHead {
	width: min(var(--inner), 100% - var(--gutter) * 2);
	margin-inline: auto;
	margin-bottom: 60px;
}

.faq__cols {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 80px;
	width: min(var(--inner), 100% - var(--gutter) * 2);
	margin-inline: auto;
}

.faq__col > * + * { margin-top: 20px; }

.faqItem {
	border-radius: 16px;
	background: #fff;
	overflow: hidden;
}

.faqItem__q {
	display: flex;
	align-items: center;
	gap: 20px;
	width: 100%;
	padding: 40px 40px 40px 30px;
	text-align: left;
}

.faqItem__mark {
	display: grid;
	place-content: center;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: var(--navy);
	color: #fff;
	font-family: var(--font-en);
	font-size: 16px;
	flex-shrink: 0;
}

.faqItem__mark--a { background: var(--cyan); }

.faqItem__ttl {
	flex: 1;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: .04em;
	color: var(--navy);
}

.faqItem__toggle {
	position: relative;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

.faqItem__toggle::before,
.faqItem__toggle::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	background: var(--navy);
}

.faqItem__toggle::before { width: 20px; height: 2px; }
.faqItem__toggle::after  { width: 2px; height: 20px; transition: opacity .3s, transform .3s; }

.faqItem.is-open .faqItem__toggle::after { opacity: 0; transform: rotate(90deg); }

.faqItem__a {
	display: grid;
	grid-template-columns: 50px minmax(0, 1fr);
	gap: 20px;
	padding: 0 40px 0 30px;
	height: 0;
	overflow: hidden;
	visibility: hidden;
}

.faqItem.is-open .faqItem__a {
	height: auto;
	visibility: visible;
	padding-bottom: 40px;
}

.faqItem__a p {
	font-size: 15px;
	line-height: 1.9;
	letter-spacing: .02em;
}

/* ============================================================
   SP
   ============================================================ */
@media (max-width: 900px) {
	/* MVは1920原寸のステージ。SPでは縦長にクロップして左寄せの絵づらにする */
	.mv__stage {
		font-size: calc(100vw / 96);
		aspect-ratio: auto;
		height: calc(100vw * 1080 / 960);
		overflow: hidden;
	}

	.mv__art { transform: translateX(-26%); }

	.mv__copy {
		left: 2em;
		top: 6em;
		z-index: 2;
	}

	.mv__catch { font-size: 4.4em; letter-spacing: .06em; }
	.mv__lead { font-size: 1.5em; margin-left: .4em; }
	.mv__lead:first-of-type { margin-top: 2em; }

	.mvPlus--a, .mvPlus--c { display: none; }

	.mvSkip { right: 14px; bottom: 14px; }

	.strengths { padding: 80px 0; }
	.strengths .secHead { margin-bottom: 70px; }

	.strengths__list {
		grid-template-columns: minmax(0, 1fr);
		gap: 70px;
	}

	.strengthCard__head { padding: 54px 20px 70px; }
	.strengthCard__num { font-size: 64px; }

	.flow { padding: 40px 0 100px; }
	.flow .secHead { margin-bottom: 60px; }

	.flow__bg {
		top: 120px;
		height: 1100px;
		border-radius: 50% 50% 45% 55% / 6% 5% 5% 6%;
	}

	.flow__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 46px 16px;
	}

	.flowCard { padding: 60px 12px 24px; }
	.flowCard::after { content: none; }
	.flowCard__icon { width: 60px; height: 60px; margin-bottom: 16px; }
	.flowCard__ttl { font-size: 15px; min-height: 0; }
	.flowCard__text { font-size: 12px; }

	.office {
		padding: 80px 0 100px;
		border-radius: 40px 40px 0 0;
	}

	.office .secHead { margin-bottom: 50px; }

	.office__body {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
	}

	.office__lead { font-size: 17px; }
	.areaList { margin-top: 32px; padding: 28px 24px; }
	.areaList__items { gap: 4px 10px; }

	.office__mapNote {
		position: static;
		margin-top: 16px;
	}

	.days { padding: 80px 0 100px; }

	.days__head {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
		margin-bottom: 36px;
	}

	.days__nav { justify-content: flex-end; }

	.days__list { gap: 20px; }
	.daysCard { flex-basis: 280px; max-width: 280px; }
	.daysCard__meta { margin-top: 20px; }
	.daysCard__ttl { margin-top: 12px; font-size: 15px; }
	.days__more { margin-top: 44px; }

	.tag { width: auto; padding: 6px 14px; font-size: 13px; }

	.faq {
		padding: 80px 0 100px;
		border-radius: 40px 40px 0 0;
	}

	.faq__cols {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

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

	.faqItem__q { padding: 24px 20px; gap: 14px; }
	.faqItem__mark { width: 38px; height: 38px; font-size: 14px; }
	.faqItem__ttl { font-size: 15px; }

	.faqItem__a {
		grid-template-columns: 38px minmax(0, 1fr);
		gap: 14px;
		padding: 0 20px;
	}

	.faqItem.is-open .faqItem__a { padding-bottom: 24px; }
}

