@charset "UTF-8";
/* 下層ページの共通の体裁（団体ページ v2 と同じ決まり）
   もとは photos/_work/group-sample-v2/source/style.css。
   サイト共通のヘッダー・フッターに当たらないよう、すべて .gsample の中だけに限定している。
   ページ側は <main class="gsample"> で囲み、bodyClass に gsample-page を足して使う。
   ヘッダーの写真は、ページごとに .hero-image の style で指定する。 */

.gsample {
	--navy:#06385e;
	--ink:#172c3c;
	--blue:#35bae3;
	--cyan:#00a7c4;
	--pale:#eaf7fc;
	--line:#d7e3ea;
	--bg:#fffcfc;
}
.gsample * {
	box-sizing:border-box;
}
html {
	scroll-behavior:smooth;
	scroll-padding-top:76px;
}
.gsample {
	background:var(--bg);
	color:var(--ink);
	font-family:'Yu Gothic','Hiragino Kaku Gothic ProN','Meiryo',sans-serif;
	line-height:1.85;
	font-size:15px;
}
.gsample a {
	color:inherit;
	text-decoration:none;
}
.gsample button {
	font:inherit;
}
.gsample a,
.gsample button,
.gsample summary {
	-webkit-tap-highlight-color:transparent;
}
.gsample a:focus-visible,
.gsample button:focus-visible,
.gsample summary:focus-visible {
	outline:3px solid #f2a500;
	outline-offset:5px;
}
.gsample img {
	max-width:100%;
	display:block;
	object-fit:cover;
}
.gsample h1,
.gsample h2,
.gsample h3,
.gsample h4,
.gsample p,
.gsample figure {
	margin:0;
}
.gsample a.button:hover {
	transform:translateY(-2px);
	filter:brightness(1.08);
}
.gsample .container {
	width:min(1040px,calc(100% - 64px));
	margin-inline:auto;
}
.gsample .hero {
	position:relative;
	isolation:isolate;
	overflow:hidden;
	color:white;
	background:#062d46;
}
.gsample .hero-image {
	position:absolute;
	inset:0;
	z-index:-2;
	background-position:75% 57%;
	background-repeat:no-repeat;
	background-size:cover;
}
.gsample .hero:after {
	content:'';
	position:absolute;
	inset:0;
	z-index:-1;
	background:linear-gradient(90deg,rgba(1,28,46,.96),rgba(0,56,80,.85) 48%,rgba(0,29,47,.3));
}
.gsample .hero-content {
	padding:22px 0 44px;
}
.gsample .breadcrumb {
	font-size:11px;
	color:#b9d6e6;
	margin-bottom:30px;
}
.gsample .breadcrumb span {
	margin:0 10px;
}
.gsample .eyebrow {
	font-size:13px;
	font-weight:700;
	letter-spacing:.09em;
	margin-bottom:10px;
	color:#c6ecf9;
}
.gsample h1 {
	font-size:clamp(25px,3.4vw,38px);
	line-height:1.5;
	letter-spacing:.04em;
	font-weight:700;
}
.gsample .hero-lead {
	font-size:16px;
	margin-top:12px;
	letter-spacing:.03em;
}
.gsample .hero-tags {
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin-top:24px;
}
.gsample .hero-tags span {
	font-size:12px;
	border:1px solid #86becb;
	padding:3px 12px;
	border-radius:3px;
}
.gsample .section-nav {
	display:flex;
	justify-content:center;
	gap:28px;
	border-bottom:1px solid var(--line);
	padding:22px 0;
	font-weight:700;
	font-size:13px;
}
.gsample .section-nav a {
	position:relative;
	white-space:nowrap;
}
.gsample .section-nav a:hover {
	color:var(--cyan);
}
.gsample .section {
	padding-top:58px;
	scroll-margin-top:20px;
}
.gsample .section-heading {
	display:flex;
	align-items:baseline;
	gap:10px;
	margin-bottom:20px;
}
.gsample .section-heading h2 {
	font-size:27px;
	line-height:1.5;
	font-weight:500;
	color:var(--navy);
	letter-spacing:.04em;
}
.gsample .spark {
	font-size:25px;
	line-height:1;
	color:var(--blue);
}
.gsample .section-intro {
	margin-bottom:25px;
}
.gsample .booking-grid {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:22px;
}
.gsample .booking-card {
	border:1px solid #bcd6e4;
	background:#fff;
	padding:24px 28px 21px;
	border-radius:7px;
	border-top:4px solid var(--navy);
}
.gsample .booking-card.consultation {
	border-top-color:var(--cyan);
}
.gsample .booking-top {
	display:flex;
	align-items:center;
	gap:12px;
}
.gsample .booking-number {
	font-size:13px;
	font-weight:700;
	color:var(--cyan);
	letter-spacing:.08em;
}
.gsample .booking-label {
	font-size:12px;
	font-weight:700;
	background:#eaf6fb;
	color:var(--navy);
	padding:2px 10px;
	border-radius:2px;
}
.gsample .booking-card h3 {
	font-size:22px;
	color:var(--navy);
	margin-top:12px;
}
.gsample .booking-card p {
	font-size:14px;
	margin:6px 0 18px;
}
.gsample .booking-card p strong {
	font-size:17px;
	margin:0 3px;
}
.gsample .button {
	display:inline-flex;
	justify-content:center;
	align-items:center;
	gap:20px;
	border-radius:3px;
	font-size:15px;
	min-height:52px;
	padding:12px 24px;
	font-weight:700;
	transition:transform .15s,filter .15s;
}
.gsample .booking-card .button {
	width:100%;
	justify-content:space-between;
}
.gsample .primary {
	color:white;
	background:var(--navy);
	border:1px solid var(--navy);
}
.gsample .secondary {
	background:white;
	color:var(--navy);
	border:1px solid var(--navy);
}
.gsample .booking-card small {
	display:block;
	text-align:center;
	font-size:12px;
	color:#526b7d;
	margin-top:10px;
}
.gsample .small-note {
	font-size:12px;
	color:#52677a;
	line-height:1.9;
	margin-top:12px;
}
.gsample .price-section {
	padding-top:48px;
}
.gsample .price-heading {
	display:flex;
	align-items:center;
	justify-content:space-between;
	color:var(--navy);
	font-size:12px;
	margin-bottom:12px;
}
.gsample .price-heading h3 {
	font-size:16px;
}
.gsample .price-heading h3 span {
	font-size:12px;
	margin-left:12px;
	font-weight:500;
}
.gsample .price-grid {
	display:grid;
	grid-template-columns:repeat(4,1fr);
	border-top:2px solid var(--blue);
	border-bottom:1px solid var(--blue);
	background:var(--pale);
}
.gsample .price-grid>div {
	text-align:center;
	padding:20px 10px;
	border-right:1px solid white;
}
.gsample .price-grid>div:last-child {
	border:0;
}
.gsample .price-grid span {
	display:block;
	font-size:13px;
	font-weight:500;
}
.gsample .price-grid strong {
	font-size:34px;
	color:var(--navy);
	line-height:1.9;
	font-weight:700;
}
.gsample .price-grid strong small {
	font-size:16px;
	margin-left:4px;
}
.gsample .price-grid .free {
	font-size:26px;
}
.gsample .info-rows {
	margin-top:22px;
}
.gsample .info-rows>div {
	display:grid;
	grid-template-columns:150px 1fr;
	padding:13px 0;
	border-bottom:1px solid var(--line);
	gap:16px;
}
.gsample .info-rows h3 {
	font-size:13px;
	color:var(--navy);
}
.gsample .info-rows p {
	font-size:13px;
}
.gsample .info-rows p span {
	color:#5a7081;
}
.gsample .info-rows strong {
	font-size:16px;
}
.gsample .facility-feature {
	display:grid;
	grid-template-columns:1fr 1.05fr;
	gap:48px;
	align-items:center;
	margin-top:32px;
}
.gsample .facility-feature>img {
	width:100%;
	height:268px;
	border-radius:5px;
}
.gsample .facility-feature h3 {
	font-size:24px;
	color:var(--navy);
	line-height:1.7;
	margin:7px 0 14px;
	font-weight:700;
}
.gsample .facility-feature p {
	font-size:14px;
}
.gsample .number-label {
	font-size:13px;
	color:var(--cyan);
	font-weight:700;
	letter-spacing:.08em;
}
.gsample .facility-feature.reverse {
	margin-top:38px;
}
.gsample .reverse .facility-feature-copy {
	order:2;
}
.gsample .inline-facts {
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	margin-top:17px;
}
.gsample .inline-facts span {
	font-size:12px;
	background:#edf6f9;
	color:var(--navy);
	padding:4px 12px;
}
.gsample .subheading {
	font-size:19px;
	color:var(--navy);
	border-bottom:1px solid #bce1ee;
	padding-bottom:10px;
	margin-top:42px;
	margin-bottom:20px;
}
.gsample .exhibit-grid {
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:20px;
}
.gsample .exhibit-grid img {
	width:100%;
	height:185px;
	border-radius:4px;
}
.gsample .exhibit-grid h4 {
	font-size:16px;
	color:var(--navy);
	margin-top:12px;
}
.gsample .exhibit-grid p {
	font-size:12px;
	color:#526b7d;
	margin-top:4px;
}
.gsample .shop-panel {
	display:grid;
	grid-template-columns:1fr 1fr;
	align-items:center;
	gap:32px;
	background:#f0f7fa;
	border:1px solid #dde9ee;
	padding:22px;
	margin-top:35px;
	border-radius:5px;
}
.gsample .shop-panel img {
	width:100%;
	height:220px;
	border-radius:3px;
}
.gsample .mini-label {
	font-size:12px;
	font-weight:700;
	color:var(--cyan);
}
.gsample .shop-panel h3 {
	font-size:20px;
	color:var(--navy);
	margin:5px 0 12px;
	line-height:1.7;
}
.gsample .shop-panel p {
	font-size:13px;
}
.gsample .support-line {
	padding:24px 0;
	border-bottom:1px solid var(--line);
}
.gsample .support-line h3 {
	font-size:16px;
	color:var(--navy);
	margin-bottom:9px;
}
.gsample .support-line p {
	display:flex;
	flex-wrap:wrap;
	gap:10px 30px;
	font-size:13px;
}
.gsample .support-line p span:before {
	content:'✓';
	color:var(--cyan);
	margin-right:8px;
}
.gsample .access-section>p {
	font-size:13px;
}
.gsample .access-grid {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:0 35px;
	margin-top:15px;
}
.gsample .access-grid>div {
	display:flex;
	justify-content:space-between;
	gap:20px;
	padding:14px 0;
	border-bottom:1px solid var(--line);
	font-size:13px;
}
.gsample .access-grid strong {
	color:var(--cyan);
	font-size:14px;
}
.gsample .model-title {
	display:flex;
	align-items:center;
	gap:14px;
	margin-top:30px;
}
.gsample .model-title>span {
	color:white;
	background:var(--cyan);
	padding:4px 12px;
	font-size:12px;
	white-space:nowrap;
	border-radius:20px;
}
.gsample .model-title h3 {
	font-size:21px;
	font-weight:500;
	color:var(--navy);
}
.gsample .itinerary {
	padding:0;
	list-style:none;
	margin:22px 0;
}
.gsample .itinerary li {
	position:relative;
	display:grid;
	grid-template-columns:160px 1fr;
	gap:16px;
	align-items:start;
	padding:17px 20px;
	border-top:1px solid var(--line);
}
.gsample .itinerary li:last-child {
	border-bottom:1px solid var(--line);
}
.gsample .itinerary li.highlight {
	background:var(--pale);
	border-left:3px solid var(--blue);
}
.gsample .itinerary time {
	font-size:14px;
	font-weight:700;
	color:var(--cyan);
	padding-top:2px;
	white-space:nowrap;
}
.gsample .itinerary h4 {
	font-size:15px;
	color:var(--navy);
}
.gsample .itinerary p {
	font-size:12px;
	margin-top:3px;
}
.gsample .model-photos {
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:13px;
}
.gsample .model-photos img {
	width:100%;
	height:147px;
	border-radius:4px;
}
.gsample .model-photos figcaption {
	font-size:12px;
	color:#5b7080;
	margin-top:5px;
}
.gsample .model-more {
	margin-top:24px;
	border-top:1px solid var(--line);
	border-bottom:1px solid var(--line);
}
.gsample .model-more summary {
	padding:15px 0;
	font-size:14px;
	color:var(--navy);
	cursor:pointer;
}
.gsample .model-more p {
	padding:0 0 15px;
	font-size:13px;
}
.gsample .contact-section {
	padding:30px;
	background:#edf7fb;
	border:1px solid #c9e5ef;
	margin-top:54px;
	border-radius:5px;
}
.gsample .contact-section .section-heading {
	margin-bottom:14px;
}
.gsample .contact-section>p {
	font-size:13px;
}
.gsample .contact-grid {
	display:grid;
	grid-template-columns:1fr 1fr;
	margin-top:24px;
	gap:25px;
}
.gsample .contact-grid>div+div {
	border-left:1px solid #c4dce6;
	padding-left:25px;
}
.gsample .contact-label {
	display:block;
	font-size:12px;
	color:#5a6c7a;
}
.gsample .phone {
	font-size:29px;
	line-height:1.8;
	letter-spacing:.03em;
	font-weight:700;
	color:var(--navy);
}
.gsample .mail {
	font-size:22px;
	line-height:2.2;
	font-weight:700;
	color:var(--navy);
}
.gsample .mail span {
	font-size:16px;
}
.gsample .contact-grid p {
	font-size:12px;
}
.gsample .contact-grid small {
	font-size:11px;
	color:#5c7180;
}
.gsample .procedures-section {
	padding-top:55px;
}
.gsample .procedures-section .section-intro {
	font-size:13px;
	margin-bottom:15px;
}
.gsample .accordion-list {
	border-top:1px solid #bfd5e2;
}
.gsample .accordion-list details {
	border-bottom:1px solid #bfd5e2;
}
.gsample .accordion-list summary {
	list-style:none;
	display:flex;
	align-items:center;
	justify-content:space-between;
	font-weight:700;
	color:var(--navy);
	padding:19px 5px;
	cursor:pointer;
	font-size:15px;
}
.gsample .accordion-list summary::-webkit-details-marker {
	display:none;
}
.gsample .accordion-list summary:after {
	content:'＋';
	font-size:22px;
	font-weight:400;
	flex-shrink:0;
	margin-left:20px;
}
.gsample .accordion-list details[open] summary:after {
	content:'−';
}
.gsample .accordion-list summary:hover {
	color:var(--cyan);
}
.gsample .detail-content {
	padding:4px 25px 22px;
	background:#f6fafc;
	font-size:13px;
}
.gsample .detail-content h3 {
	font-size:14px;
	color:var(--navy);
	margin:15px 0 7px;
}
.gsample .detail-content p {
	margin-top:10px;
}
.gsample .detail-content ul {
	padding-left:20px;
}
.gsample .detail-content li {
	margin-top:7px;
}
.gsample .detail-content table {
	width:100%;
	border-collapse:collapse;
	font-size:12px;
	margin-top:15px;
}
.gsample .detail-content td,
.gsample .detail-content th {
	padding:12px;
	border:1px solid #c7d9e4;
	text-align:left;
}
.gsample .detail-content thead {
	background:#e5f2f9;
	color:var(--navy);
}
.gsample .text-link {
	display:inline-block;
	border-bottom:1px solid var(--cyan);
	color:var(--navy);
	font-weight:700;
	margin-top:10px;
}
.gsample .bottom-cta {
	background:#e9f5fb;
	text-align:center;
	margin-top:56px;
	padding:36px 28px;
	border-radius:5px;
}
.gsample .bottom-cta h2 {
	font-size:23px;
	color:var(--navy);
	font-weight:500;
}
.gsample .bottom-cta p {
	font-size:13px;
	margin:9px 0 23px;
}
.gsample .bottom-cta>div {
	display:flex;
	justify-content:center;
	gap:16px;
}
.gsample .bottom-cta .button {
	min-width:300px;
}
.gsample .brochure {
	display:inline-block;
	margin-top:21px;
	font-size:12px;
	text-decoration:underline;
	text-underline-offset:4px;
	color:var(--navy);
}
.gsample .mobile-booking {
	display:none;
}
.gsample .hero-content {
	padding-top:18px;
	padding-bottom:30px;
}
.gsample .breadcrumb {
	margin-bottom:20px;
}
.gsample .hero-tags {
	margin-top:18px;
}
.gsample .hero h1 {
	font-size:clamp(25px,3.1vw,35px);
}
.gsample .reservation {
	padding-top:34px;
}
.gsample .section-nav {
	padding-top:18px;
	padding-bottom:18px;
}
@media (min-width:1400px) {
	.gsample .hero-image {
		background-position:70% 57%;
	}
}
@media (max-width:900px) {
	.gsample .section-nav {
		gap:16px;
		font-size:12px;
	}
	.gsample .booking-card {
		padding:21px;
	}
	.gsample .booking-card h3 {
		font-size:20px;
	}
	.gsample .facility-feature {
		gap:28px;
	}
	.gsample .facility-feature h3 {
		font-size:21px;
	}
	.gsample .exhibit-grid img {
		height:145px;
	}
	.gsample .model-photos img {
		height:115px;
	}
	.gsample .phone {
		font-size:25px;
	}
	.gsample .mail {
		font-size:19px;
	}
	.gsample .bottom-cta .button {
		min-width:0;
		flex:1;
	}
	.gsample .shop-panel {
		gap:22px;
	}
	.gsample .shop-panel h3 {
		font-size:18px;
	}
}
@media (max-width:680px) {
	.gsample {
		font-size:14px;
	}
	.gsample .container {
		width:calc(100% - 36px);
	}
	.gsample .hero-content {
		padding-top:16px;
		padding-bottom:30px;
	}
	.gsample .breadcrumb {
		margin-bottom:24px;
		font-size:10px;
	}
	.gsample .eyebrow {
		font-size:10px;
		letter-spacing:.02em;
	}
	.gsample .hero h1 {
		font-size:25px;
		line-height:1.6;
		letter-spacing:0;
		max-width:340px;
	}
	.gsample .hero-lead {
		font-size:12px;
		margin-top:10px;
	}
	.gsample .hero-tags {
		gap:6px;
		margin-top:20px;
	}
	.gsample .hero-tags span {
		font-size:10px;
		padding:2px 7px;
	}
	.gsample .hero-image {
		background-position:65% center;
	}
	.gsample .hero:after {
		background:linear-gradient(90deg,rgba(0,29,46,.96),rgba(0,44,65,.77));
	}
	.gsample .section-nav {
		justify-content:start;
		overflow:auto;
		gap:22px;
		padding:17px 0;
		font-size:11px;
		scrollbar-width:none;
	}
	.gsample .section-nav::-webkit-scrollbar {
		display:none;
	}
	.gsample .section {
		padding-top:35px;
	}
	.gsample .section-heading {
		gap:8px;
		margin-bottom:17px;
	}
	.gsample .section-heading h2 {
		font-size:21px;
		letter-spacing:0;
	}
	.gsample .spark {
		font-size:20px;
	}
	.gsample .section-intro {
		font-size:13px;
		margin-bottom:19px;
	}
	.gsample .desktop {
		display:none;
	}
	.gsample .booking-grid {
		grid-template-columns:1fr;
		gap:15px;
	}
	.gsample .booking-card {
		padding:18px 20px 16px;
	}
	.gsample .booking-card h3 {
		font-size:20px;
		margin-top:9px;
	}
	.gsample .booking-card p {
		font-size:13px;
		margin:4px 0 13px;
	}
	.gsample .booking-card p strong {
		font-size:16px;
	}
	.gsample .booking-number {
		font-size:12px;
	}
	.gsample .booking-label {
		font-size:11px;
	}
	.gsample .booking-card small {
		font-size:11px;
		margin-top:7px;
	}
	.gsample .button {
		min-height:48px;
		font-size:14px;
		padding:11px 18px;
	}
	.gsample .small-note {
		font-size:11px;
	}
	.gsample .price-heading {
		font-size:10px;
	}
	.gsample .price-heading h3 {
		font-size:14px;
	}
	.gsample .price-heading h3 span {
		margin-left:7px;
		font-size:10px;
	}
	.gsample .price-grid {
		grid-template-columns:1fr 1fr;
	}
	.gsample .price-grid>div {
		padding:12px 5px;
	}
	.gsample .price-grid>div:nth-child(-n+2) {
		border-bottom:1px solid white;
	}
	.gsample .price-grid span {
		font-size:12px;
	}
	.gsample .price-grid strong {
		font-size:29px;
	}
	.gsample .price-grid .free {
		font-size:23px;
	}
	.gsample .price-grid strong small {
		font-size:14px;
	}
	.gsample .info-rows {
		margin-top:15px;
	}
	.gsample .info-rows>div {
		grid-template-columns:1fr;
		gap:4px;
		padding:13px 0;
	}
	.gsample .info-rows p {
		font-size:12px;
	}
	.gsample .info-rows h3 {
		font-size:13px;
	}
	.gsample .info-rows p strong {
		font-size:15px;
	}
	.gsample .facility-feature,
	.gsample .facility-feature.reverse {
		grid-template-columns:1fr;
		gap:16px;
		margin-top:25px;
	}
	.gsample .reverse .facility-feature-copy {
		order:0;
	}
	.gsample .facility-feature h3 {
		font-size:21px;
		line-height:1.6;
		margin-bottom:10px;
	}
	.gsample .facility-feature>img {
		height:215px;
	}
	.gsample .facility-feature p {
		font-size:13px;
	}
	.gsample .number-label {
		font-size:12px;
	}
	.gsample .subheading {
		font-size:17px;
		margin-top:30px;
	}
	.gsample .exhibit-grid {
		grid-template-columns:1fr;
		gap:20px;
	}
	.gsample .exhibit-grid article {
		display:grid;
		grid-template-columns:132px 1fr;
		column-gap:14px;
	}
	.gsample .exhibit-grid img {
		grid-row:1/3;
		height:93px;
	}
	.gsample .exhibit-grid h4 {
		font-size:14px;
		margin-top:7px;
	}
	.gsample .exhibit-grid p {
		font-size:11px;
		margin:3px 0 0;
		align-self:start;
	}
	.gsample .shop-panel {
		grid-template-columns:1fr;
		padding:16px;
		gap:15px;
		margin-top:25px;
	}
	.gsample .shop-panel img {
		height:205px;
	}
	.gsample .shop-panel h3 {
		font-size:18px;
		margin-bottom:8px;
	}
	.gsample .shop-panel p {
		font-size:12px;
	}
	.gsample .support-line {
		padding:18px 0;
	}
	.gsample .support-line h3 {
		font-size:14px;
	}
	.gsample .support-line p {
		display:grid;
		gap:6px;
		font-size:12px;
	}
	.gsample .access-grid {
		grid-template-columns:1fr;
		margin-top:7px;
	}
	.gsample .access-grid>div {
		padding:12px 0;
		font-size:12px;
	}
	.gsample .access-grid strong {
		font-size:13px;
	}
	.gsample .access-section>p {
		font-size:12px;
	}
	.gsample .model-title {
		display:block;
		margin-top:23px;
	}
	.gsample .model-title>span {
		display:inline-block;
		font-size:10px;
		padding:2px 11px;
	}
	.gsample .model-title h3 {
		font-size:20px;
		line-height:1.7;
		margin-top:10px;
	}
	.gsample .itinerary {
		margin:17px 0;
	}
	.gsample .itinerary li {
		grid-template-columns:1fr;
		gap:3px;
		padding:13px 10px;
	}
	.gsample .itinerary time {
		font-size:12px;
	}
	.gsample .itinerary h4 {
		font-size:13px;
	}
	.gsample .itinerary p {
		font-size:11px;
	}
	.gsample .model-photos {
		grid-template-columns:1fr 1fr;
		gap:12px;
	}
	.gsample .model-photos img {
		height:112px;
	}
	.gsample .model-photos figcaption {
		font-size:10px;
	}
	.gsample .model-more summary {
		font-size:12px;
		line-height:1.9;
	}
	.gsample .model-more p {
		font-size:12px;
	}
	.gsample .contact-section {
		padding:22px 18px;
		margin-top:35px;
	}
	.gsample .contact-section .section-heading h2 {
		font-size:20px;
	}
	.gsample .contact-section>p {
		font-size:12px;
	}
	.gsample .contact-grid {
		grid-template-columns:1fr;
		gap:18px;
		margin-top:20px;
	}
	.gsample .contact-grid>div+div {
		border-left:0;
		border-top:1px solid #c4dce6;
		padding:16px 0 0;
	}
	.gsample .phone {
		font-size:29px;
	}
	.gsample .mail {
		font-size:22px;
		line-height:1.9;
	}
	.gsample .contact-grid small {
		font-size:10px;
	}
	.gsample .procedures-section .section-heading h2 {
		font-size:19px;
	}
	.gsample .accordion-list summary {
		font-size:13px;
		padding:16px 0;
		line-height:1.8;
	}
	.gsample .accordion-list summary:after {
		font-size:20px;
	}
	.gsample .detail-content {
		padding:1px 13px 16px;
		font-size:12px;
	}
	.gsample .detail-content h3 {
		font-size:12px;
	}
	.gsample .detail-content td,
	.gsample .detail-content th {
		padding:7px;
		font-size:10px;
	}
	.gsample .bottom-cta {
		margin-top:35px;
		padding:24px 18px;
	}
	.gsample .bottom-cta h2 {
		font-size:19px;
		line-height:1.8;
	}
	.gsample .bottom-cta p {
		font-size:12px;
		margin-bottom:18px;
	}
	.gsample .bottom-cta>div {
		flex-direction:column;
		gap:11px;
	}
	.gsample .brochure {
		font-size:11px;
	}
	.gsample .mobile-booking {
		display:grid;
		grid-template-columns:1fr 1fr;
		gap:8px;
		position:fixed;
		z-index:20;
		bottom:0;
		left:0;
		right:0;
		background:rgba(255,255,255,.97);
		padding:9px 12px calc(9px + env(safe-area-inset-bottom));
		border-top:1px solid var(--line);
		box-shadow:0 -2px 12px #1232;
	}
	.gsample .mobile-booking a {
		text-align:center;
		padding:11px 3px;
		font-size:12px;
		font-weight:700;
		background:var(--navy);
		color:white;
		border:1px solid var(--navy);
		border-radius:3px;
	}
	.gsample .mobile-booking a+a {
		background:white;
		color:var(--navy);
	}
}
@media (prefers-reduced-motion:reduce) {
	html {
		scroll-behavior:auto;
	}
	.gsample .button {
		transition:none;
	}
}

/* ここから下はサイトに合わせた分だけ（見本には無い） */
/* 見本の見出しは1つだけなので、サイトのページ見出しの装飾は使わない */
.gsample-page .p-page__contents {
	display: block;
	padding: 0;
}
/* スマホの画面下に予約ボタンの帯を出すページだけ、サイト共通の白い帯（.c-sp-dock）と
   入れ替える。共通の帯は z-index 9993 で手前にあるため、消して同じ高さに置き換える。
   body の下余白（64px）は共通CSSが付けているので、そのぶんの場所はすでに空いている。 */
@media screen and (max-width: 680px) {
	.gsample-page--dock .c-sp-dock {
		display: none;
	}
	.gsample-page--dock .mobile-booking {
		z-index: 9993;
	}
}

/* 開閉表示（見本の .model-more）を続けて並べたときに、線が二重にならないようにする */
.gsample .model-more + .model-more {
	border-top: 0;
	margin-top: 0;
}
.gsample .model-more[open] {
	padding-bottom: 15px;
}
.gsample .model-more > ul,
.gsample .model-more > ol {
	padding-left: 1.4em;
	list-style: disc;
}
.gsample .model-more > ol.itinerary {
	list-style: none;
	padding-left: 0;
}
.gsample .model-more > ul > li {
	margin-top: 7px;
	font-size: 13px;
}
/* チラシは縦長なので、切り取らずに全体を見せる */
.gsample .model-photos--flyer {
	grid-template-columns: repeat(2, 1fr);
	margin-inline: auto;
	max-width: 420px;
}
.gsample .model-photos--flyer img {
	height: auto;
	object-fit: contain;
}

/* サイトの共通ヘッダーは画面に固定で重なるので、その高さぶんだけ上に余白を足す
   （見本は自前のヘッダーが固定ではなかったため、この指定だけ見本と異なる） */
.gsample .hero-content {
	padding-top: calc(var(--header-height, 80px) + 18px);
}
@media screen and (max-width: 680px) {
	.gsample .hero-content {
		padding-top: calc(var(--header-height, 65px) + 16px);
	}
}


/* ───────────────────────────────────────────────
   下層ページ用に足した決まり（見本の部品を他のページでも使えるようにしたもの）
   ─────────────────────────────────────────────── */

/* 低めのヘッダー（記事・案内ページ用）。団体ページより帯を薄くする */
.gsample .hero--page .hero-content {
	padding-bottom: 34px;
	padding-top: calc(var(--header-height, 80px) + 24px);
}
/* 本文の下に、フッターとの間の余白をとる */
.gsample .main-content {
	padding-bottom: 72px;
}
.gsample .hero--page h1 {
	font-size: clamp(23px, 2.8vw, 32px);
}
.gsample .hero--page .hero-lead {
	font-size: 14px;
	margin-top: 10px;
	max-width: 640px;
}
.gsample .breadcrumb a:hover {
	text-decoration: underline;
}

/* 面で区切るパネル（白地に白が並ばないようにするため） */
.gsample .panel {
	background: var(--pale);
	border: 1px solid #c9e5ef;
	border-radius: 5px;
	padding: 24px 28px;
}
.gsample .panel--plain {
	background: #fff;
	border-color: var(--line);
}
.gsample .panel + .panel {
	margin-top: 18px;
}

/* 表（見本の detail-content の表と同じ形。本文の大きさに合わせて少し大きく） */
.gsample .table-block {
	-webkit-overflow-scrolling: touch;
	margin-top: 16px;
	overflow-x: auto;
}
.gsample .data-table {
	border-collapse: collapse;
	font-size: 14px;
	min-width: 560px;
	width: 100%;
}
.gsample .data-table td,
.gsample .data-table th {
	border: 1px solid #c7d9e4;
	padding: 12px;
	text-align: left;
	vertical-align: middle;
}
.gsample .data-table thead th,
.gsample .data-table tbody th {
	background: #e5f2f9;
	color: var(--navy);
	font-weight: 700;
}
.gsample .data-table td {
	background: #fff;
	text-align: center;
}

/* 箇条書き */
.gsample .bullet-list {
	list-style: disc;
	padding-left: 1.4em;
}
.gsample .bullet-list li {
	margin-top: 8px;
}
.gsample .bullet-list li:first-child {
	margin-top: 0;
}

/* ボタンの並び */
.gsample .button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 18px;
}

/* 2列に分けたい内容（細い列に固まらないように） */
.gsample .two-col {
	display: grid;
	gap: 24px 35px;
	grid-template-columns: 1fr 1fr;
	margin-top: 22px;
}
.gsample .two-col--wide {
	grid-template-columns: 1.15fr 1fr;
}
/* 2列に並んだパネルは高さをそろえ、ボタンを下端にそろえる（2026-11） */
.gsample .two-col > .panel + .panel {
	margin-top: 0;
}
.gsample .two-col > .panel {
	display: flex;
	flex-direction: column;
}
.gsample .two-col > .panel > .button-row {
	margin-top: auto;
	padding-top: 14px;
}

/* 図版 */
.gsample .figure-block img {
	border-radius: 4px;
	height: auto;
	width: 100%;
}
.gsample .figure-block figcaption {
	color: #5b7080;
	font-size: 12px;
	margin-top: 6px;
}

/* ヘッダーの写真は、文字が読めるように暗く敷く */
.gsample .hero--page:after {
	background: linear-gradient(90deg, rgba(0, 23, 38, 0.94), rgba(0, 40, 62, 0.88) 55%, rgba(0, 29, 47, 0.62));
}

/* 問い合わせフォーム：面の中に入れて、白地に白にならないようにする */
.gsample .form-panel {
	background: var(--pale);
	border: 1px solid #c9e5ef;
	border-radius: 5px;
	margin-top: 22px;
	padding: 26px 28px;
}
.gsample .form-panel .p-contact-form {
	margin: 0;
}

@media (max-width: 680px) {
	.gsample .hero--page .hero-content {
		padding-bottom: 26px;
		padding-top: calc(var(--header-height, 65px) + 18px);
	}
	.gsample .main-content {
		padding-bottom: 48px;
	}
	.gsample .hero--page h1 {
		font-size: 22px;
	}
	.gsample .panel {
		padding: 18px 16px;
	}
	.gsample .two-col,
	.gsample .two-col--wide {
		gap: 18px;
		grid-template-columns: 1fr;
	}
	.gsample .button-row {
		flex-direction: column;
		gap: 10px;
	}
	.gsample .button-row .button {
		width: 100%;
	}
	.gsample .data-table {
		font-size: 12px;
		min-width: 520px;
	}
	.gsample .data-table td,
	.gsample .data-table th {
		padding: 8px;
	}
	.gsample .form-panel {
		padding: 18px 14px;
	}
}

/* パネルの中の見出しと本文 */
.gsample .panel h3 {
	color: var(--navy);
	font-size: 17px;
	font-weight: 700;
	margin-bottom: 8px;
}
.gsample .panel p {
	font-size: 14px;
}
.gsample .panel .button-row {
	margin-top: 14px;
}
.gsample .subheading + p,
.gsample .subheading + .table-block {
	margin-top: 0;
}
