/* AROMA HEAD SPA（単独ページ用CSS）
   product.css には依存しません。クラス名は hs_ 接頭辞で、PRODUCTページとは独立しています。
   読み込み順：reset.css → flame.css → aromaheadspa.css → anime.css */

.box_hs{
	--ink: #171614;
	--tint: #f5f3f2;
	--rose: #a8506a;
	--ease: cubic-bezier(.22,.61,.36,1);
	position: relative;
	margin: 0 auto;
	padding: 0;
	font-variant-numeric: lining-nums;
	font-feature-settings: "lnum" 1;
	}

/* ---------- タイトル＋ページ内メニュー ---------- */
.box_hs .hs_head{
	padding: 10% 8% 3%;
	}
.box_hs .hs_head + .hs_brand{
	padding-top: 6em;
	}
.box_hs .hs_title{
	text-align: center;
	}
.box_hs .hs_title h2{
	margin: 0;
	font-size: clamp(16px, 1.5vw, 20px);
	font-weight: 400;
	letter-spacing: 0.3em;
	line-height: 1.5em;
	}
.box_hs .hs_catch{
	margin: 1.4em auto 0;
	font-variant-numeric: normal;
	font-feature-settings: normal;
	font-size: clamp(20px, 3.4vw, 30px);
	line-height: 1.9em;
	letter-spacing: 0.08em;
	}
.box_hs .hs_index{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5em 2.6em;
	margin: 4em 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.95rem;
	line-height: 1.8em;
	}
.box_hs .hs_index a{
	color: #4f4a4c;
	text-decoration: underline;
	text-decoration-color: rgba(79,74,76,.3);
	text-underline-offset: 0.65em;
	transition: color .3s, text-decoration-color .3s;
	}
.box_hs .hs_index a:focus-visible{
	color: var(--rose);
	text-decoration-color: var(--rose);
	}
@media (hover: hover){
	.box_hs .hs_index a:hover{
	color: var(--rose);
	text-decoration-color: var(--rose);
	}
}

/* ---------- ブロック（区切りは余白と背景色のみ） ---------- */
.box_hs .hs_brand{
	padding: 9em 8%;
	scroll-margin-top: 5em;
	}
.box_hs .hs_brand.is-tint{
	background: var(--tint);
	}
.box_hs .hs_flex{
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7em;
	}
.box_hs .hs_flex.is-reverse{
	flex-direction: row-reverse;
	}
.box_hs .hs_pic{
	width: 46%;
	}

/* 画像の比率
   PC：すべて 4/5（縦長）
   SP：すべて 4/3（下のSP用メディアクエリで指定）
   切り位置は object-position で調整（例：center 40% / center 60%） */
.box_hs .hs_pic img{
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 44%;
	}

.box_hs .hs_info{
	width: 42%;
	}

/* ---------- 見出し・本文 ---------- */
.box_hs h3{
	/*font-family: "adobe-garamond-pro", serif;*/
	font-style: normal;
	margin: 0em auto 0.5em;
	font-size: 2.7rem;
	letter-spacing: 0.01em;
	line-height: 1.2em;
	}
.box_hs h3 span{
	font-family: "Avenir","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Arial,sans-serif;
	display: block;
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 2em;
	}
.box_hs h4{
	margin: 1.6em 0 0;
	font-size: 1.6em;
	letter-spacing: 0.03em;
	line-height: 1.6em;
	}
.box_hs h5{
	margin: 1.8em 0 0;
	font-size: 1.3rem;
	font-weight: 400;
	line-height: 1.8em;
	}
.box_hs .tx{
	font-size: 0.95rem;
	margin: 1.3em 0;
	line-height: 2.0em;
	}
.box_hs h4,
.box_hs h5,
.box_hs .tx{
	word-break: auto-phrase;
	line-break: strict;
	}
.box_hs h4,
.box_hs h5{
	text-wrap: balance;
	}

/* コース名（AROMA HEAD SPA 60min など長めなので、少し小さくして1行に収める） */
.box_hs .hs_info h3{
	font-size: clamp(1.4rem, 2.8vw, 2.2rem);
	}

/* ---------- 特徴ポイント ---------- */
.box_hs .hs_pts{
	margin: 1.6em 0 2.4em;
	padding: 0;
	list-style: none;
	}
.box_hs .hs_pts li{
	position: relative;
	padding: 0.3em 0 0.3em 1.4em;
	font-size: 0.9rem;
	line-height: 1.9em;
	}
.box_hs .hs_pts li::before{
	content: "";
	position: absolute;
	left: 0.15em;
	top: 1.05em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--rose);
	}

/* ---------- 工程を見る（細い枠線＋「＋/−」） ---------- */
.box_hs .hs_detail{
	interpolate-size: allow-keywords; /* 高さのアニメーション用（対応ブラウザのみ） */
	}
.box_hs .hs_detail summary{
	display: inline-flex;
	align-items: center;
	gap: 1.5em;
	cursor: pointer;
	list-style: none;
	padding: 0.75em 1.7em;
	font-size: 0.85rem;
	line-height: 1.6em;
	color: var(--ink);
	border: 1px solid rgba(23,22,20,.45);
	border-radius: 2em;
	transition: background .3s, color .3s, border-color .3s;
	}
.box_hs .hs_detail summary::-webkit-details-marker{
	display: none;
	}
/* ＋/−は文字ではなく線で描く。縦線は開くと回転しながら消える */
.box_hs .hs_detail summary::after{
	content: "";
	flex: none;
	width: 1.0em;
	height: 1.0em;
	background:
		linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat,
		linear-gradient(currentColor, currentColor) center / 1px 100% no-repeat;
	transition: transform .6s var(--ease);
	}
.box_hs .hs_detail[open] summary::after{
	background:
		linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat;
	transform: rotate(180deg);
	}
.box_hs .hs_detail summary .c{
	display: none;
	}
.box_hs .hs_detail[open] summary .o{
	display: none;
	}
.box_hs .hs_detail[open] summary .c{
	display: inline;
	}
.box_hs .hs_detail summary:focus-visible{
	color: #fff;
	background: var(--ink);
	border-color: var(--ink);
	outline: none;
	}
@media (hover: hover){ /* タッチ端末でホバー状態が残らないように */
	.box_hs .hs_detail summary:hover{
	color: #fff;
	background: var(--ink);
	border-color: var(--ink);
	}
}

/* 枠がふわっと広がる（::details-content 対応ブラウザのみ。非対応でも崩れない） */
.box_hs .hs_detail::details-content{
	block-size: 0;
	overflow: clip;
	transition: block-size .8s var(--ease), content-visibility .8s allow-discrete;
	}
.box_hs .hs_detail[open]::details-content{
	block-size: auto;
	}
.box_hs .hs_more{
	margin-top: 2.4em;
	display: block;
	}
/* 中身は上から順に、少しずつ浮かび上がる */
.box_hs .hs_detail[open] .hs_more > div > *{
	animation: hs_rise .9s var(--ease) both;
	animation-delay: 1.0s;
	}
.box_hs .hs_detail[open] .hs_more > div > *:nth-child(1){ animation-delay: .35s; }
.box_hs .hs_detail[open] .hs_more > div > *:nth-child(2){ animation-delay: .45s; }
@keyframes hs_rise{
	from{
		opacity: 0;
		transform: translateY(14px);
		}
	to{
		opacity: 1;
		transform: translateY(0);
		}
	}

/* ---------- リンク ---------- */
.box_hs .hs_links{
	display: flex;
	flex-wrap: wrap;
	gap: 0 2em;
	margin-top: 1.6em;
	}
.box_hs .btn2{
	font-family: "Avenir", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Arial, sans-serif;
	font-size: 0.9rem;
	font-weight: 300;
	margin: 1em 0 0 0;
	position: relative;
	display: inline-block;
	}
.box_hs .btn2 a{
	color: var(--ink);
	}
.box_hs .btn2::after{
	position: absolute;
	bottom: -4px;
	left: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: var(--ink);
	transform: scale(0, 1);
	transform-origin: right top;
	transition: transform .3s;
	}
.box_hs .btn2:hover::after{
	transform-origin: left top;
	transform: scale(1, 1);
	}
.box_hs .btn2 i{
	display: inline-block;
	width: 0.7em;
	height: 0.7em;
	margin-left: 0.35em;
	vertical-align: -0.04em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23000' stroke-width='1'%3E%3Cpath d='M1.5 10.5L10.5 1.5M3.5 1.5h7v7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23000' stroke-width='1'%3E%3Cpath d='M1.5 10.5L10.5 1.5M3.5 1.5h7v7'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .3s var(--ease);
	}
.box_hs .btn2:hover i{
	transform: translate(2px, -2px);
	}

/* ================= ここから：このページ専用 ================= */

/* 共通：1カラムで読ませる幅 */
.box_hs .hs_wrap{
	max-width: 800px;
	margin: 0 auto;
	}
.box_hs .hs_reserve,
.box_hs .hs_faq{
	scroll-margin-top: 5em;
	}

/* 見出し（英語タイトル → 日本語の小さな補足を下に。サイトの共通タイトルと同じ順） */
.box_hs .hs_coursehead h3 span,
.box_hs .hs_reserve h3 span,
.box_hs .hs_faq h3 span{
	margin-top: 0.4em;
	}

/* ---------- 香り（背景色ではなく、上下の細い線で区切る） ---------- */
.box_hs .hs_brand.hs_bordered{
	border-top: 1px solid rgba(23,22,20,.15);
	border-bottom: 1px solid rgba(23,22,20,.15);
	}
.box_hs .hs_lead{
	margin: 2.4em 0 0;
	font-size: 1.1rem;
	line-height: 2.3em;
	letter-spacing: 0.08em;
	}

/* ---------- コース見出し ---------- */
.box_hs .hs_coursehead{
	padding: 9em 8% 6em;
	text-align: center;
	scroll-margin-top: 5em;
	}

/* ---------- 施術内容（60分の全工程） ---------- */
.box_hs .hs_steps{
	margin: 5em 0 0;
	padding: 0;
	list-style: none;
	}
.box_hs .hs_steps > li{
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 0 1.5em;
	padding: 3.2em 0;
	border-top: 1px solid rgba(23,22,20,.15);
	}
.box_hs .hs_no{
	padding-top: 0.45em; /* 小見出しの分だけ下げて、大見出しの高さに合わせる */
	font-family: "adobe-garamond-pro", serif;
	font-size: 2.6rem;
	line-height: 1.1em;
	color: var(--rose);
	}
.box_hs .hs_steps h5{
	margin: 0 0 1.2em;
	font-size: 1.3rem;
	}
.box_hs .hs_cap{
	margin: 0 0 0.2em;
	font-family: "Avenir","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Arial,sans-serif;
	font-size: 0.75rem;
	letter-spacing: 0.13em;
	line-height: 1.8em;
	color: #8a8486;
	}
.box_hs .hs_steps .tx{
	max-width: 34em;
	margin: 0.6em 0;
	}

/* ---------- 「工程を見る」の中身（簡略手順） ---------- */
.box_hs .hs_mini{
	margin: 0;
	padding: 0;
	list-style: none;
	}
.box_hs .hs_mini li{
	display: flex;
	align-items: baseline;
	gap: 1.6em;
	padding: 0.95em 0;
	border-top: 1px solid rgba(23,22,20,.18);
	font-size: 0.95rem;
	line-height: 1.7em;
	}
.box_hs .hs_mini li:last-child{
	border-bottom: 1px solid rgba(23,22,20,.18);
	}
.box_hs .hs_mini li > span{
	flex: none;
	min-width: 1.6em;
	font-family: "adobe-garamond-pro", serif;
	font-size: 1.3rem;
	color: var(--rose);
	}
.box_hs .hs_mini small{
	display: block;
	margin-top: 0.1em;
	font-size: 0.8rem;
	line-height: 1.8em;
	color: #7a7476;
	}
.box_hs .hs_note{
	margin: 1.2em 0 0;
	font-size: 0.75rem;
	color: #8a8486;
	}
.box_hs .hs_note a{
	text-decoration: underline;
	text-decoration-color: rgba(79,74,76,.3);
	text-underline-offset: 0.4em;
	}

/* ---------- 料金・ご予約 ---------- */
.box_hs .hs_reserve{
	padding: 9em 8%;
	text-align: center;
	}
.box_hs .hs_reserve .hs_links{
	justify-content: center;
	margin-top: 3.5em;
	}
.box_hs .hs_msg{
	margin: 2.4em 0 0;
	font-size: 1.1rem;
	letter-spacing: 0.15em;
	line-height: 2.4em;
	}
.box_hs .hs_pick{
	margin: 2.8em 0 0;
	font-size: 0.85rem;
	color: #6b6567;
	}
.box_hs .hs_attn{
	margin: 2em 0 0;
	font-size: 0.7rem;
	line-height: 1.9em;
	color: #8a8486;
	}
.box_hs .hs_bns{
	display: grid;
	gap: 1em;
	max-width: 640px;
	margin: 1.6em auto 0;
	text-align: left;
	}
.box_hs .hs_bn{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5em;
	padding: 1.8em 2em;
	color: var(--ink);
	text-decoration: none;
	border: 1px solid rgba(23,22,20,.18);
	transition: border-color .3s, background .3s;
	}
.box_hs .hs_bn:focus-visible{
	border-color: var(--ink);
	background: var(--tint);
	}
.box_hs .hs_bn b{
	display: block;
	font-family: "adobe-garamond-pro", serif;
	font-weight: 400;
	font-size: 1.5rem;
	letter-spacing: 0.04em;
	line-height: 1.5em;
	}
.box_hs .hs_bn small{
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	color: #7a7476;
	}
.box_hs .hs_bn .bp{
	flex: none;
	font-family: "adobe-garamond-pro", serif;
	font-size: 1.5rem;
	text-align: right;
	white-space: nowrap;
	}
.box_hs .hs_bn .bp i{
	display: block;
	font-family: inherit;
	font-style: normal;
	font-size: 0.65rem;
	letter-spacing: 0.2em;
	color: var(--rose);
	}
@media (hover: hover){
	.box_hs .hs_bn:hover{
	border-color: var(--ink);
	background: var(--tint);
	}
	.box_hs .hs_bn:hover .bp i{
	text-decoration: underline;
	text-underline-offset: 0.4em;
	}
}

/* ---------- FAQ ---------- */
.box_hs .hs_faq{
	padding: 9em 8%;
	}
.box_hs .hs_faq.is-tint{
	background: var(--tint);
	}
.box_hs .hs_faq h3{
	text-align: center;
	}
.box_hs .hs_qa{
	max-width: 640px;
	margin: 4em auto 0;
	}
.box_hs .hs_qa details{
	border-top: 1px solid rgba(23,22,20,.18);
	}
.box_hs .hs_qa details:last-child{
	border-bottom: 1px solid rgba(23,22,20,.18);
	}
.box_hs .hs_qa summary{
	position: relative;
	padding: 1.3em 2.4em 1.3em 0;
	font-size: 0.95rem;
	line-height: 1.8em;
	letter-spacing: 0.06em;
	list-style: none;
	cursor: pointer;
	}
.box_hs .hs_qa summary::-webkit-details-marker{
	display: none;
	}
/* ＋/−は 「工程を見る」と同じく、線で描く */
.box_hs .hs_qa summary::after{
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 0.9em;
	height: 0.9em;
	margin-top: -0.45em;
	background:
		linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat,
		linear-gradient(currentColor, currentColor) center / 1px 100% no-repeat;
	transition: transform .6s var(--ease);
	}
.box_hs .hs_qa details[open] summary::after{
	background:
		linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat;
	transform: rotate(180deg);
	}
.box_hs .hs_qa summary:focus-visible{
	outline: 1px solid var(--rose);
	outline-offset: 4px;
	}
.box_hs .hs_qa .tx{
	max-width: 34em;
	margin: 0 0 1.6em;
	}
.box_hs .hs_qa details[open] .tx{
	animation: hs_rise .9s var(--ease) both;
	}

/* ================= 動き・レスポンシブ（まとめ） ================= */

/* 動きを減らす設定の方には演出をオフ */
@media (prefers-reduced-motion: reduce){
	.box_hs .hs_detail::details-content{ transition: none; }
	.box_hs .hs_detail summary::after{ transition: none; }
	.box_hs .hs_detail[open] .hs_more > div > *{ animation: none; }
	.box_hs .hs_qa summary::after{ transition: none; }
	.box_hs .hs_qa details[open] .tx{ animation: none; }
	.box_hs .hs_bn{ transition: none; }
	}

/*-------------------------------------------------------------------------- iPad ---*/
@media screen and (max-width : 1180px)  {
	.box_hs .hs_flex{
	gap: 4em;
	}
	.box_hs .hs_steps > li{
	grid-template-columns: 72px 1fr;
	}
}

/*-------------------------------------------------------------------- SP ---*/
@media screen and (max-width : 768px)  {
	.box_hs .hs_head{
	padding: 21% 7% 10%;
	}
	.box_hs .hs_catch{
	margin-top: 1em;
	font-size: 1.15rem;
	}
	.box_hs .hs_index{
	justify-content: flex-start;
	flex-wrap: nowrap;
	overflow-x: auto;
	white-space: nowrap;
	gap: 2em;
	margin-top: 2.5em;
	padding-bottom: 0.8em;
	font-size: 0.8rem;
	-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2.5em), transparent);
	mask-image: linear-gradient(to right, #000 calc(100% - 2.5em), transparent);
	}
	.box_hs .hs_index li{
	flex: none;
	}
	.box_hs .hs_index li:last-child{
	padding-right: 2.5em;
	}
	.box_hs .hs_brand{
	padding: 5em 7%;
	scroll-margin-top: 3em;
	}
	.box_hs .hs_flex,
	.box_hs .hs_flex.is-reverse{
	flex-direction: column;
	align-items: stretch;
	gap: 2.4em;
	}
	.box_hs .hs_pic,
	.box_hs .hs_info{
	width: 100%;
	}
	/* SPの画像比率：全画像 4/3 */
	.box_hs .hs_pic img{
	aspect-ratio: 4 / 3;
	}
	.box_hs h3{
	margin: 0em auto 0.5em;
	font-size: 2em;
	}
	.box_hs h3 span{
	font-size: 0.65rem;
	letter-spacing: 0.03em;
	}
	.box_hs h4{
	margin: 1.5em 0 0;
	font-size: 1.3em;
	letter-spacing: 0.03em;
	}
	.box_hs h5{
	font-size: 1rem;
	line-height: 1.7em;
	}
	.box_hs .tx{
	font-size: 0.75rem;
	margin: 1.3em 0;
	}
	.box_hs .hs_pts li{
	font-size: 0.78rem;
	}
	.box_hs .hs_detail summary{
	font-size: 0.78rem;
	gap: 1.2em;
	padding: 0.6em 1.4em;
	}
	.box_hs .btn2{
	font-size: 0.8rem;
	}
	.box_hs .hs_steps{
	margin-top: 3em;
	}
	.box_hs .hs_steps > li{
	grid-template-columns: 1fr;
	padding: 2.4em 0;
	}
	.box_hs .hs_no{
	padding-top: 0;
	margin-bottom: 0.4em;
	font-size: 2rem;
	}
	.box_hs .hs_steps h5{
	font-size: 1.05rem;
	}
	.box_hs .hs_cap{
	font-size: 0.7rem;
	}
	.box_hs .hs_mini li{
	gap: 1.2em;
	font-size: 0.85rem;
	}
	.box_hs .hs_mini small{
	font-size: 0.75rem;
	}
	.box_hs .hs_lead{
	font-size: 0.9rem;
	}
	.box_hs .hs_coursehead{
	padding: 5em 7% 3em;
	scroll-margin-top: 3em;
	}
	.box_hs .hs_reserve,
	.box_hs .hs_faq{
	padding: 5em 7%;
	scroll-margin-top: 3em;
	}
	.box_hs .hs_msg{
	font-size: 0.8rem;
	}
	.box_hs .hs_bn{
	flex-direction: column;
	align-items: flex-start;
	gap: 0.8em;
	padding: 1.5em 1.4em;
	}
	.box_hs .hs_bn b,
	.box_hs .hs_bn .bp{
	font-size: 1rem;
	}
	.box_hs .hs_bn .bp{
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	}
	.box_hs .hs_bn .bp i{
	font-size: 0.78rem;
	}
	.box_hs .hs_qa{
	margin-top: 2.5em;
	}
	.box_hs .hs_qa summary{
	font-size: 0.85rem;
	}
	.box_hs .hs_reserve .hs_links{
	justify-content: flex-start;
	}
}