/* このファイルは lp.src.css から build-css.sh で生成。直接編集しないこと */
/* =====================================================================
 * かめたろうやー LP
 *
 * このファイルが編集元。数値の末尾の「u」は Figma 上の px を表し、
 * `bash lp/build-css.sh` で calc(N * var(--u)) に展開して lp.css を作る。
 *   PC（1100px〜）: Figma PC版 1440px 幅。1440px 未満は等倍で縮小
 *   SP（〜1099px）: Figma SP版 375px 幅。最大 1.6 倍（600px 幅）まで拡大
 * 各セクションは Figma の座標をそのまま使い、position:absolute で配置している。
 * ===================================================================== */

:root {
	--blue: #005dc1;
	--green: #126435;
	--pink: #ff5a5f;
	--yellow: #fcbc21;
	--aqua: #e5f8f9;
	--pale: #d9e7f6;
	--dot: #b2ceec;
	--jp: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	--maru: "Zen Maru Gothic", var(--jp);
	--u: min(1px, calc(100vw / 1440));
	--w: 1440;
}
@media (max-width: 1099px) {
	:root {
		--u: min(calc(100vw / 375), 1.6px);
		--w: 375;
	}
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: calc(69 * var(--u)); -webkit-text-size-adjust: 100%; }
body.lp {
	margin: 0;
	padding: 0; /* カスタマイザーの追加CSS（768px以下で body に padding:15px）を打ち消す */
	background: #fff;
	color: #000;
	font-family: var(--jp);
	font-size: calc(16 * var(--u));
	line-height: 1.5;
	overflow-x: clip;
}
.lp img { max-width: none; height: auto; vertical-align: top; }
.lp a { color: inherit; text-decoration: none; }
.lp a:hover { opacity: .85; }
:where(.lp) :where(p, h1, h2, h3, ul, ol, figure, dl, dd) { margin: 0; padding: 0; }
:where(.lp) :where(ul, ol) { list-style: none; }
/* 他の CSS に負けないよう、黒丸の打ち消しだけは詳細度を上げておく */
.lp :is(ul, ol, li) { list-style: none; }
.lp li::marker { content: none; }
.lp section { position: relative; width: calc(var(--w) * var(--u)); margin-inline: auto; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.abs { position: absolute; }
/* 画面幅いっぱいに広げる背景 */
.bleed { position: absolute; left: 50%; width: 100vw; transform: translateX(-50%); }
@media (min-width: 1100px) { .sp { display: none !important; } }
@media (max-width: 1099px) { .pc { display: none !important; } }

/* ---------- 共通パーツ ---------- */
.ttl { position: relative; display: flex; flex-direction: column; align-items: center; gap: calc(11 * var(--u)); color: var(--blue); font-size: calc(26 * var(--u)); font-weight: 700; line-height: calc(24 * var(--u)); }
.ttl__wave { width: auto; height: calc(18 * var(--u)); }
.ttl--white { color: #fff; }

.lead { position: relative; display: flex; flex-direction: column; align-items: center; width: calc(270 * var(--u)); padding-top: 0; color: var(--pink); font-weight: 700; line-height: calc(31 * var(--u)); text-align: center; }
.lead__deco { position: absolute; left: 0; top: 0; width: calc(270 * var(--u)); height: calc(62 * var(--u)); }
.lead__s { font-size: calc(21 * var(--u)); }
.lead__l { font-size: calc(25 * var(--u)); }
.lead--white { color: #fff; }
.lead--activity { width: calc(315 * var(--u)); height: calc(51 * var(--u)); }
.lead--activity .lead__deco { width: calc(315 * var(--u)); height: calc(50 * var(--u)); }
.lead--activity .lead__l { font-size: calc(23 * var(--u)); padding-top: calc(7 * var(--u)); }

.btn-airbnb { display: block; width: fit-content; }
.btn-airbnb--detail img { width: calc(325 * var(--u)); margin-left: calc(-1 * var(--u)); }
.btn-airbnb--reserve img { width: calc(316 * var(--u)); }

.cta { position: absolute; display: flex; flex-direction: column; align-items: center; gap: calc(20 * var(--u)); }

.dots { display: flex; justify-content: center; gap: calc(11 * var(--u)); }
.dots button { width: calc(16 * var(--u)); height: calc(16 * var(--u)); padding: 0; border: 0; border-radius: 50%; background: var(--dot); cursor: pointer; }
.dots button[aria-current="true"] { background: var(--blue); }
.dots--white button { background: transparent; box-shadow: inset 0 0 0 1px #fff; }
.dots--white button[aria-current="true"] { background: #fff; }

/* =====================================================================
 * ヘッダー
 * ===================================================================== */
.hd { position: fixed; z-index: 50; inset: 0 0 auto; height: calc(69 * var(--u)); background: #fff; }
/* ログイン中の管理バー分だけ下げる */
.admin-bar .hd { top: 32px; }
@media (max-width: 782px) { .admin-bar .hd { top: 46px; } }
@media (max-width: 600px) { .admin-bar .hd { top: 0; } }
.hd > * { position: absolute; }
.hd__logo { left: calc(35 * var(--u)); top: calc(24 * var(--u)); display: flex; align-items: center; gap: calc(10 * var(--u)); color: var(--green); }
.hd__catch { font-size: calc(15.43 * var(--u)); line-height: calc(19 * var(--u)); white-space: nowrap; }
.hd__name { width: calc(170 * var(--u)); }
.hd__nav { left: calc(487 * var(--u)); top: calc(27 * var(--u)); }
.hd__nav ul { display: flex; gap: calc(26 * var(--u)); font-size: calc(13 * var(--u)); line-height: calc(16 * var(--u)); white-space: nowrap; }
.hd__lang { left: calc(1220 * var(--u)); top: calc(13 * var(--u)); }
.hd__lang img { width: calc(46 * var(--u)); }
.hd__reserve { right: 0; top: 0; width: calc(158 * var(--u)); height: calc(69 * var(--u)); display: flex; align-items: center; justify-content: center; gap: calc(9 * var(--u)); background: var(--pink); color: #fff !important; font-size: calc(16 * var(--u)); font-weight: 700; }
.hd__reserve img { width: calc(30 * var(--u)); }
.hd__menu { display: none; }
@media (min-width: 1441px) {
	.hd__logo { left: calc(50% - 685px); }
	.hd__nav { left: calc(50% - 233px); }
	.hd__lang { left: auto; right: 174px; }
}

.drawer { position: fixed; z-index: 45; inset: 0; padding: calc(75 * var(--u)) 0 calc(120 * var(--u)); overflow-y: auto; background: #fff; }
.admin-bar .drawer { top: 46px; }
@media (max-width: 600px) { .admin-bar .drawer { top: 0; } }
.drawer[hidden] { display: none; }
.drawer__list { width: calc(321 * var(--u)); margin: 0 auto !important; }
.drawer__list li:nth-child(odd) { background: var(--pale); }
.drawer__list a { display: block; color: var(--blue) !important; font-size: calc(22 * var(--u)); line-height: calc(47 * var(--u)); text-align: center; }
.drawer__sns { display: block; width: calc(53 * var(--u)); margin: calc(24 * var(--u)) auto 0; }
.drawer__sns img { width: calc(53 * var(--u)); }
/* メニューを開いている間：ヘッダー下に線、三本線を × に、airbnb バーを常に表示 */
.drawer-open .hd { z-index: 50; border-bottom: 1px solid #ccc; }
.hd__menu-close { display: none; position: relative; width: calc(24 * var(--u)); height: calc(24 * var(--u)); margin: calc(3 * var(--u)); }
.hd__menu-close::before, .hd__menu-close::after { content: ""; position: absolute; left: calc(-4 * var(--u)); top: 50%; width: calc(33.9 * var(--u)); height: calc(1.2 * var(--u)); background: var(--blue); transform: rotate(45deg); }
.hd__menu-close::after { transform: rotate(-45deg); }
.drawer-open .hd__menu-open { display: none; }
.drawer-open .hd__menu-close { display: block; }
.drawer-open .fixed-cta { z-index: 55; opacity: 1 !important; pointer-events: auto !important; transform: none !important; }

/* =====================================================================
 * PC
 * ===================================================================== */
@media (min-width: 1100px) {

	/* ---------- FV ---------- */
	.fv { height: calc(799 * var(--u)); }
	.fv__bg { position: absolute; inset: 0 auto auto 50%; width: 100vw; min-width: 100%; height: calc(799 * var(--u)); transform: translateX(-50%); }
	.fv__bg img { width: 100%; height: 100%; object-fit: cover; }
	.fv__title { position: absolute; left: calc(86 * var(--u)); top: calc(128.8 * var(--u)); }
	.fv__title img { width: calc(714.8 * var(--u)); }
	.fv__panel { position: absolute; left: calc(104 * var(--u)); top: calc(556 * var(--u)); width: calc(414 * var(--u)); height: calc(194 * var(--u)); border-radius: calc(10 * var(--u)); background: rgba(255, 255, 255, .8); }
	.fv__catch { position: absolute; left: 0; right: calc(6 * var(--u)); top: calc(6 * var(--u)); color: var(--green); font-family: var(--maru); font-size: calc(21 * var(--u)); font-weight: 700; line-height: calc(30.4 * var(--u)); text-align: center; }
	.fv__points li { position: absolute; top: calc(146 * var(--u)); width: calc(112 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(16.8 * var(--u)); text-align: center; white-space: nowrap; }
	.fv__points li:nth-child(1) { left: calc(9 * var(--u)); }
	.fv__points li:nth-child(2) { left: calc(148 * var(--u)); }
	.fv__points li:nth-child(3) { left: calc(288 * var(--u)); }
	.fv__points li + li::before { content: ""; position: absolute; left: calc(-16 * var(--u)); top: calc(-73 * var(--u)); width: .8u; height: calc(110 * var(--u)); background: #1a1a1a; }
	.fv__points li:nth-child(3)::before { left: calc(-11 * var(--u)); }
	.fv__icon { position: absolute; }
	.fv__icon .sp { display: none; }
	.fv__points li:nth-child(1) .fv__icon { left: calc(19 * var(--u)); top: calc(-74 * var(--u)); width: calc(70 * var(--u)); }
	.fv__points li:nth-child(2) .fv__icon { left: calc(28 * var(--u)); top: calc(-63 * var(--u)); width: calc(60 * var(--u)); }
	.fv__points li:nth-child(3) .fv__icon { left: calc(7.5 * var(--u)); top: calc(-67 * var(--u)); width: calc(86 * var(--u)); }
	.fv__icon img { width: 100%; }
	.fv__btn { position: absolute; left: calc(561 * var(--u)); top: calc(670 * var(--u)); }

	/* ---------- コンセプト（top 797） ---------- */
	.concept { height: calc(580 * var(--u)); }
	.concept__bg { position: absolute; top: 0; left: 50%; width: 100vw; min-width: 100%; height: calc(564 * var(--u)); transform: translateX(-50%); }
	.concept__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
	.concept__vtext { position: absolute; left: calc(-8 * var(--u)); top: calc(-1 * var(--u)); height: calc(470 * var(--u)); color: rgba(255, 255, 255, .35); font-family: "Science Gothic", var(--jp); font-size: calc(97 * var(--u)); font-weight: 500; line-height: calc(84 * var(--u)); writing-mode: vertical-rl; white-space: nowrap; pointer-events: none; }
	.concept__title { position: absolute; left: 0; right: 0; top: calc(67 * var(--u)); color: #fff; font-size: calc(40 * var(--u)); font-weight: 700; line-height: calc(48 * var(--u)); text-align: center; }
	.concept__body { position: absolute; left: calc(382 * var(--u)); top: calc(143 * var(--u)); width: calc(676 * var(--u)); color: #fff; font-size: calc(18 * var(--u)); font-weight: 500; line-height: calc(30 * var(--u)); text-align: center; }
	.concept__body p + p { margin-top: calc(30 * var(--u)); }
	.concept__ph { position: absolute; }
	.concept__ph, .concept__ph img { display: block; }
	.concept__ph--sign { left: calc(185 * var(--u)); top: calc(239.2 * var(--u)); width: calc(221 * var(--u)); }
	.concept__ph--hibiscus { left: calc(1168 * var(--u)); top: calc(54 * var(--u)); }
	.concept__ph--hibiscus img { width: calc(122 * var(--u)); }
	.concept__ph--family { left: calc(1050.7 * var(--u)); top: calc(249.1 * var(--u)); width: calc(201.7 * var(--u)); }
	.concept__deco { position: absolute; left: calc(142.8 * var(--u)); top: calc(438.2 * var(--u)); z-index: 2; }
	.concept__deco img { width: calc(1078.9 * var(--u)); }

	/* ---------- 過ごし方（top 1377） ---------- */
	.stay { height: calc(1763 * var(--u)); }
	.stay__ttl { position: absolute; inset: 0; z-index: 3; height: 0; color: var(--blue); line-height: calc(84 * var(--u)); }
	.stay__ttl > * { position: absolute; white-space: nowrap; }
	.stay__k1 { left: calc(462 * var(--u)); top: 0; font-size: calc(25 * var(--u)); font-weight: 500; }
	.stay__ttl img { left: calc(493 * var(--u)); top: calc(34 * var(--u)); width: calc(243 * var(--u)); }
	.stay__k2 { left: calc(747 * var(--u)); top: calc(19 * var(--u)); font-size: calc(25 * var(--u)); font-weight: 500; }
	.stay__k3 { left: calc(820 * var(--u)); top: calc(13 * var(--u)); font-size: calc(35 * var(--u)); font-weight: 700; }
	.stay__k2 i { font-style: normal; letter-spacing: calc(-8.5 * var(--u)); }

	.tl { position: absolute; inset: 0; }
	.tl > picture { position: absolute; }
	.tl > picture img { display: block; width: 100%; }
	.tl__deco { left: calc(-91 * var(--u)); top: calc(69.7 * var(--u)); width: calc(1595.8 * var(--u)); }
	.tl__line { left: calc(219 * var(--u)); top: calc(240.5 * var(--u)); width: calc(997.2 * var(--u)); }
	.tl__bubbles { left: calc(220.6 * var(--u)); top: calc(88.2 * var(--u)); width: calc(1019.6 * var(--u)); }
	.tl__photos { left: calc(307.9 * var(--u)); top: calc(258 * var(--u)); width: calc(826.3 * var(--u)); }
	.tl__list { position: absolute; inset: 0; }
	.tl__t, .tl__c { position: absolute; font-weight: 500; line-height: calc(84 * var(--u)); white-space: nowrap; }
	.tl__t { color: #fff; font-size: calc(29 * var(--u)); }
	.tl__t--edge { color: var(--blue); font-size: calc(20 * var(--u)); }
	.tl__c { font-size: calc(20 * var(--u)); }
	.tl__t--wake { left: calc(240 * var(--u)); top: calc(211 * var(--u)); }
	.tl__t--am { left: calc(342 * var(--u)); top: calc(129 * var(--u)); }
	.tl__c--am { left: calc(488 * var(--u)); top: calc(478 * var(--u)); }
	.tl__t--noon { left: calc(752 * var(--u)); top: calc(127 * var(--u)); }
	.tl__c--noon { left: calc(861 * var(--u)); top: calc(478 * var(--u)); }
	.tl__t--pm { left: calc(251 * var(--u)); top: calc(501 * var(--u)); }
	.tl__c--pm { left: calc(370 * var(--u)); top: calc(850 * var(--u)); }
	.tl__t--eve { left: calc(655 * var(--u)); top: calc(986 * var(--u)); }
	.tl__c--eve { left: calc(780 * var(--u)); top: calc(641 * var(--u)); }
	.tl__t--night { left: calc(1140 * var(--u)); top: calc(847 * var(--u)); }
	.tl__c--night { left: calc(849 * var(--u)); top: calc(1191 * var(--u)); }
	.tl__t--sleep { left: calc(1180 * var(--u)); top: calc(1078 * var(--u)); }

	.owner { position: absolute; left: calc(217.8 * var(--u)); top: calc(1131.6 * var(--u)); width: calc(535 * var(--u)); height: calc(556.8 * var(--u)); border: calc(3 * var(--u)) solid var(--blue); border-radius: calc(10 * var(--u)); background: #fff; }
	.owner__deco { position: absolute; left: calc(44.9 * var(--u)); top: calc(-94 * var(--u)); width: calc(111.6 * var(--u)); }
	.owner__deco img { width: 100%; }
	.owner__ph { position: absolute; left: calc(22.7 * var(--u)); top: calc(28.3 * var(--u)); }
	.owner__ph img { width: calc(142.1 * var(--u)); border-radius: calc(10 * var(--u)); }
	.owner__name { position: absolute; left: calc(22.7 * var(--u)); top: calc(175.9 * var(--u)); font-size: calc(15 * var(--u)); line-height: calc(20 * var(--u)); }
	.owner__name strong { display: inline-block; margin-top: calc(7 * var(--u)); font-size: calc(20 * var(--u)); font-weight: 500; line-height: calc(30 * var(--u)); }
	.owner__name small { font-size: calc(14 * var(--u)); }
	.owner__body { position: absolute; left: calc(187.7 * var(--u)); top: calc(25.9 * var(--u)); width: calc(330 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); }
	.owner__body p + p { margin-top: calc(22 * var(--u)); }
	.owner__body--2 { left: calc(22.7 * var(--u)); top: calc(306.9 * var(--u)); width: calc(495 * var(--u)); }
	.cta--owner { left: calc(859 * var(--u)); top: calc(1526 * var(--u)); gap: calc(20 * var(--u)); }

	/* ---------- 沖縄の自然と文化（top 3140） ---------- */
	.nature { height: calc(541 * var(--u)); }
	.nature__ttl { position: absolute; left: calc(218 * var(--u)); top: 0; padding: calc(5 * var(--u)) 0 calc(6 * var(--u)) calc(11 * var(--u)); border-left: calc(3 * var(--u)) solid var(--blue); color: var(--blue); font-size: calc(27 * var(--u)); font-weight: 700; line-height: calc(24 * var(--u)); white-space: nowrap; }
	.nature__ttl br { display: none; }
	.nature__ttl::first-line { word-spacing: 0; }
	.nature__scroll { position: absolute; left: calc(218 * var(--u)); right: calc(50% - 50vw); top: calc(26 * var(--u)); height: calc(410 * var(--u)); overflow-x: auto; scrollbar-width: none; }
	.nature__scroll::-webkit-scrollbar { display: none; }
	.nature__track { position: relative; width: calc(1514 * var(--u)); height: calc(401 * var(--u)); }
	.nature__big { position: absolute; left: 0; top: calc(41.8 * var(--u)); width: calc(435.6 * var(--u)); border-radius: calc(10 * var(--u)); }
	.nb { position: absolute; top: 0; width: calc(307 * var(--u)); height: calc(401 * var(--u)); }
	.nb--stay { left: calc(474 * var(--u)); }
	.nb--play { left: calc(820 * var(--u)); }
	.nb--exp { left: calc(1166 * var(--u)); }
	.nb__mark { position: absolute; left: 0; top: calc(42 * var(--u)); width: calc(119 * var(--u)); height: calc(119 * var(--u)); border: calc(4.78 * var(--u)) solid var(--pale); border-radius: 50%; color: var(--pale); text-align: center; }
	.nb__kanji { position: absolute; left: calc(11.2 * var(--u)); top: calc(-46.8 * var(--u)); width: calc(86 * var(--u)); font-family: var(--maru); font-size: calc(85 * var(--u)); font-weight: 500; line-height: calc(164.8 * var(--u)); }
	.nb__kanji-img { position: absolute; left: calc(4.2 * var(--u)); top: calc(5.2 * var(--u)); width: calc(101.7 * var(--u)); }
	.nb__en { position: absolute; left: 0; right: 0; top: calc(71.2 * var(--u)); font-family: "Ubuntu Condensed", sans-serif; font-size: calc(23.1 * var(--u)); line-height: calc(44.8 * var(--u)); }
	.nb--exp .nb__en { letter-spacing: -.09em; }
	.nb__ph1 { position: absolute; left: calc(139.3 * var(--u)); top: calc(52 * var(--u)); width: calc(167.9 * var(--u)); border-radius: calc(7.8 * var(--u)); }
	.nb__ph2 { position: absolute; left: calc(33.7 * var(--u)); top: calc(182.8 * var(--u)); width: calc(140.3 * var(--u)); border-radius: calc(7.8 * var(--u)); }
	.nb--exp .nb__ph1 { left: calc(139.9 * var(--u)); }
	.nb__txt { position: absolute; left: 0; top: calc(305 * var(--u)); width: calc(310 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(24 * var(--u)); letter-spacing: -.04em; text-align: justify; }
	.hbar { position: absolute; left: calc(218 * var(--u)); top: calc(467 * var(--u)); width: calc(1000 * var(--u)); height: calc(6 * var(--u)); }
	.hbar::before { content: ""; position: absolute; left: 0; right: 0; top: calc(2.5 * var(--u)); height: 1px; background: #ccc; }
	.hbar span { position: absolute; left: 0; top: 0; width: calc(125 * var(--u)); height: calc(5.6 * var(--u)); background: var(--blue); }

	/* ---------- チェックインの流れ（top 3681） ---------- */
	.checkin { height: calc(608 * var(--u)); }
	.checkin .ttl { position: absolute; left: 0; right: 0; top: 0; }
	.steps { position: absolute; left: calc(285 * var(--u)); top: calc(82 * var(--u)); display: flex; gap: calc(47.2 * var(--u)); }
	.steps__item { position: relative; width: calc(182.3 * var(--u)); }
	.steps__ph { width: calc(182.3 * var(--u)); border-radius: calc(10 * var(--u)); }
	.steps__no { position: relative; height: calc(70.7 * var(--u)); border-bottom: 1px solid var(--blue); }
	.steps__no span { position: absolute; left: 0; top: calc(36.7 * var(--u)); color: var(--blue); font-size: calc(20 * var(--u)); font-weight: 500; line-height: calc(24 * var(--u)); letter-spacing: -.04em; }
	.steps__no b { position: absolute; left: calc(46 * var(--u)); top: calc(-6.3 * var(--u)); color: var(--blue); opacity: .25; font-family: "Crimson Text", serif; font-size: calc(75 * var(--u)); font-style: italic; font-weight: 400; line-height: calc(89.1 * var(--u)); letter-spacing: .05em; }
	.steps__txt { margin-top: calc(10 * var(--u)) !important; font-size: calc(16 * var(--u)); line-height: calc(24 * var(--u)); text-align: justify; }
	.cta--row { left: calc(409 * var(--u)); top: calc(494 * var(--u)); flex-direction: row; align-items: flex-start; gap: calc(34 * var(--u)); }
	.cta--row .lead { margin-top: calc(9 * var(--u)); }

	/* ---------- 施設紹介（top 4289） ---------- */
	.facility { height: calc(2424 * var(--u)); color: #fff; }
	.facility__bg { position: absolute; top: 0; left: 50%; width: 100vw; min-width: 100%; height: calc(2424 * var(--u)); transform: translateX(-50%); }
	.facility__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
	.facility .ttl { position: absolute; left: 0; right: 0; top: calc(45 * var(--u)); gap: calc(16 * var(--u)); }
	.facility__lead { position: absolute; left: calc(262 * var(--u)); top: calc(119 * var(--u)); width: calc(917 * var(--u)); font-size: calc(20 * var(--u)); font-weight: 500; line-height: calc(35 * var(--u)); text-align: center; }
	.facility__plan { position: absolute; left: calc(167 * var(--u)); top: calc(271.2 * var(--u)); }
	.facility__plan img { width: calc(1105 * var(--u)); }
	.gallery { position: absolute; left: 0; right: 0; top: calc(1414.2 * var(--u)); }
	.gallery__track { position: relative; left: 50%; display: flex; width: 100vw; overflow-x: auto; transform: translateX(-50%); scroll-snap-type: x mandatory; scrollbar-width: none; }
	.gallery__track::-webkit-scrollbar { display: none; }
	.gallery__track li { flex: none; width: calc(359.2 * var(--u)); scroll-snap-align: center; }
	.gallery__track img { display: block; width: 100%; height: calc(271.1 * var(--u)); object-fit: cover; }
	.gallery .dots { margin-top: calc(31.7 * var(--u)); }
	.option { position: absolute; inset: calc(1785 * var(--u)) 0 auto; }
	.option__ttl { font-size: calc(26 * var(--u)); font-weight: 500; line-height: calc(35 * var(--u)); text-align: center; }
	.option__lead { margin-top: calc(7 * var(--u)) !important; font-size: calc(20 * var(--u)); font-weight: 500; line-height: calc(35 * var(--u)); text-align: center; }
	.option__list { position: absolute; left: calc(257.1 * var(--u)); top: calc(117.1 * var(--u)); display: flex; gap: calc(40 * var(--u)); }
	.option__list li { display: flex; flex-direction: column; align-items: center; }
	.option__list img { width: calc(285.2 * var(--u)); border-radius: calc(10 * var(--u)); }
	.option__list li:nth-child(3) img { width: calc(305 * var(--u)); }
	.option__list h3 { margin-top: calc(13 * var(--u)); font-size: calc(18 * var(--u)); font-weight: 500; line-height: calc(35 * var(--u)); white-space: nowrap; }
	.option__long { letter-spacing: -.08em; }
	.option .cta { left: calc(562 * var(--u)); top: calc(405 * var(--u)); gap: calc(13 * var(--u)); }

	/* ---------- 周辺アクティビティ（top 6713） ---------- */
	.activity { height: calc(1756 * var(--u)); }
	.activity .ttl { position: absolute; left: calc(297 * var(--u)); top: calc(113 * var(--u)); width: calc(341 * var(--u)); gap: calc(17 * var(--u)); font-size: calc(33 * var(--u)); }
	.activity .ttl__wave { width: calc(341 * var(--u)); height: calc(23 * var(--u)); }
	.activity__map { position: absolute; left: calc(732 * var(--u)); top: calc(54 * var(--u)); width: calc(508 * var(--u)); }
	.activity__times { position: absolute; left: calc(303 * var(--u)); top: calc(212 * var(--u)); display: grid; gap: calc(16 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(31 * var(--u)); }
	.activity__times li { position: relative; padding-left: 1.5em; white-space: nowrap; }
	.activity__times li::before { content: "●"; position: absolute; left: 0; }
	.activity__spots { position: absolute; left: calc(297 * var(--u)); top: calc(564.1 * var(--u)); display: grid; grid-template-columns: repeat(3, calc(262.1 * var(--u))); column-gap: calc(29.9 * var(--u)); row-gap: calc(24 * var(--u)); }
	.activity__spots li { text-align: center; }
	.activity__spots img { width: calc(262.1 * var(--u)); border-radius: calc(14.6 * var(--u)); }
	.activity__spots p { margin-top: calc(6.5 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(31 * var(--u)); white-space: nowrap; }
	.activity__spots li:first-child { grid-column: 1 / -1; width: calc(383.7 * var(--u)); margin-bottom: calc(7 * var(--u)); }
	.activity__spots li:first-child img { width: calc(383.7 * var(--u)); }
	.activity__spots li:first-child p { margin-top: calc(6.7 * var(--u)); }
	.activity__spots li:nth-child(7) p { letter-spacing: 0; }
	.activity__spots li:nth-child(6) p { letter-spacing: -.08em; }
	.activity .cta { left: calc(561 * var(--u)); top: calc(1365 * var(--u)); gap: calc(9.5 * var(--u)); }
	.insta { position: absolute; left: calc(505 * var(--u)); top: calc(1520 * var(--u)); }
	.insta img { width: calc(430 * var(--u)); }

	/* ---------- お客様の声（top 8469） ---------- */
	.voice { height: calc(727 * var(--u)); }
	.voice::before { content: ""; position: absolute; inset: 0 auto 0 50%; width: 100vw; background: var(--aqua); transform: translateX(-50%); }
	.voice .ttl { position: absolute; left: 0; right: 0; top: calc(59 * var(--u)); gap: calc(12 * var(--u)); }
	.voice__slider { position: absolute; left: 0; right: 0; top: calc(156 * var(--u)); }
	.voice__track { position: relative; left: 50%; display: flex; align-items: flex-start; gap: calc(30 * var(--u)); width: 100vw; padding: 0 max(0px, calc(50vw - calc(813 * var(--u)))) calc(4 * var(--u)); overflow-x: auto; transform: translateX(-50%); scrollbar-width: none; }
	.voice__track::-webkit-scrollbar { display: none; }
	.vcard { position: relative; flex: none; width: calc(384 * var(--u)); padding: calc(17 * var(--u)) calc(16.5 * var(--u)) calc(17 * var(--u)); border: calc(2 * var(--u)) solid var(--blue); border-radius: calc(10 * var(--u)); background: #fff; scroll-snap-align: center; text-align: center; }
	.vcard__icon { display: block; width: calc(83 * var(--u)); height: calc(83 * var(--u)); margin: 0 auto; border-radius: 50%; object-fit: cover; }
	.vcard__icon--text { display: flex; align-items: center; justify-content: center; border: 1px solid rgba(204, 204, 204, .5); background: var(--pale); color: var(--blue); font-size: calc(17 * var(--u)); font-weight: 700; }
	.vcard__name { margin-top: calc(7 * var(--u)) !important; font-size: calc(20 * var(--u)); font-weight: 400; line-height: calc(22 * var(--u)); }
	.vcard__name small { display: block; margin-top: calc(2 * var(--u)); font-size: calc(15 * var(--u)); font-weight: 400; }
	.vcard__stars { display: block; width: calc(91 * var(--u)); margin: calc(14 * var(--u)) auto 0; }
	.vcard__txt { margin-top: calc(3 * var(--u)) !important; font-size: calc(15 * var(--u)); line-height: calc(21 * var(--u)); text-align: left; }
	.voice .dots { position: absolute; left: 0; right: 0; top: calc(507 * var(--u)); }

	/* ---------- よくある質問（top 9196） ---------- */
	.faq { padding: calc(48 * var(--u)) 0 calc(47 * var(--u)); }
	.faq .ttl { gap: calc(14 * var(--u)); }
	.faq__list { width: calc(647 * var(--u)); margin: calc(12 * var(--u)) auto 0; }
	.faq__item { padding-block: calc(16 * var(--u)); }
	.faq__item summary { position: relative; display: flex; align-items: center; gap: calc(10 * var(--u)); padding-right: calc(40 * var(--u)); list-style: none; font-size: calc(18 * var(--u)); line-height: calc(24 * var(--u)); cursor: pointer; }
	.faq__item summary::-webkit-details-marker { display: none; }
	.faq__mark { flex: none; width: calc(31 * var(--u)); }
	.faq__toggle { position: absolute; right: 0; top: 50%; width: calc(27 * var(--u)); height: calc(27 * var(--u)); margin-top: calc(-13.5 * var(--u)); border-radius: 50%; background: url("../img/faq-plus.svg") center / 100% no-repeat; }
	.faq__item[open] .faq__toggle { background-image: url("../img/faq-minus.svg"); }
	.faq__a { display: flex; align-items: center; gap: calc(10 * var(--u)); margin-top: calc(27 * var(--u)) !important; font-size: calc(16 * var(--u)); line-height: calc(24 * var(--u)); }
	.faq .cta { position: relative; margin-top: calc(13 * var(--u)); gap: calc(15 * var(--u)); }
	.contact { display: flex; gap: calc(20 * var(--u)); }

	/* ---------- ブログ（top 9879） ---------- */
	.blog { padding: calc(61 * var(--u)) 0 calc(66 * var(--u)); }
	.blog::before { content: ""; position: absolute; inset: 0 auto 0 50%; z-index: -1; width: 100vw; background: var(--aqua); transform: translateX(-50%); }
	.blog .ttl { gap: calc(10 * var(--u)); }
	.blog__list { display: grid; grid-template-columns: repeat(3, calc(300 * var(--u))); gap: calc(41 * var(--u)) calc(50 * var(--u)); width: calc(1000 * var(--u)); margin: calc(67 * var(--u)) auto 0 !important; }
	.bcard__thumb { display: block; aspect-ratio: 3 / 2; overflow: hidden; border-radius: calc(10 * var(--u)); background: #ccc; }
	.bcard__thumb img { width: 100%; height: 100%; object-fit: cover; }
	.bcard__ttl { display: -webkit-box; min-height: calc(56 * var(--u)); margin-top: calc(14 * var(--u)) !important; overflow: hidden; font-size: calc(18 * var(--u)); font-weight: 400; line-height: calc(28 * var(--u)); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
	.bcard__more { display: inline-block; margin-top: calc(15 * var(--u)); padding: 0 calc(10 * var(--u)); background: var(--blue); color: #fff !important; font-size: calc(15 * var(--u)); line-height: calc(36 * var(--u)); }
	.blog__all { margin-top: calc(46 * var(--u)) !important; text-align: center; }
	.blog__all a { display: inline-block; width: calc(190 * var(--u)); border: 1px solid var(--blue); background: #fff; color: var(--blue) !important; font-size: calc(15 * var(--u)); line-height: calc(46 * var(--u)); }
	.pager { display: flex; justify-content: center; align-items: center; gap: calc(6 * var(--u)); margin-top: calc(33 * var(--u)); }
	.pager a { display: block; min-width: calc(24 * var(--u)); height: calc(24 * var(--u)); padding: 0 calc(3 * var(--u)); border: .7px solid var(--blue); color: var(--blue) !important; font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); text-align: center; }
	.pager a.is-current { background: var(--blue); color: #fff !important; }
	.pager__dots { color: var(--blue); font-size: calc(12 * var(--u)); }
	.blog__empty { margin-top: calc(60 * var(--u)) !important; text-align: center; }

	/* ---------- アクセス ---------- */
	.access { height: calc(564 * var(--u)); }
	.access iframe { position: absolute; left: 50%; top: 0; width: 100vw; height: 100%; border: 0; transform: translateX(-50%); }

	/* ---------- フッター（top 11522） ---------- */
	.ft { position: relative; width: calc(1440 * var(--u)); height: calc(374 * var(--u)); margin-inline: auto; }
	.ft__mark { position: absolute; left: calc(219 * var(--u)); top: calc(39 * var(--u)); width: calc(146 * var(--u)); }
	.ft__logo { position: absolute; left: calc(390 * var(--u)); top: calc(69 * var(--u)); color: var(--green); font-size: calc(18 * var(--u)); line-height: calc(24 * var(--u)); }
	.ft__logo img { display: block; width: calc(248 * var(--u)); margin: calc(16.5 * var(--u)) 0 0 -.3u; }
	.ft__addr { position: absolute; left: calc(220 * var(--u)); top: calc(201 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(24 * var(--u)); white-space: nowrap; }
	.ft__insta { position: absolute; left: calc(230.8 * var(--u)); top: calc(244.6 * var(--u)); }
	.ft__insta img { width: calc(54.4 * var(--u)); }
	.ft__nav ul { position: absolute; left: calc(844 * var(--u)); top: calc(69 * var(--u)); display: grid; grid-template-rows: repeat(5, calc(40 * var(--u))); grid-auto-flow: column; grid-auto-columns: calc(196 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(40 * var(--u)); white-space: nowrap; }
	.ft__top { position: absolute; left: calc(1254 * var(--u)); top: calc(186.2 * var(--u)); display: flex; flex-direction: column; align-items: center; width: calc(62 * var(--u)); color: var(--blue) !important; font-family: Inter, sans-serif; font-size: calc(18 * var(--u)); font-weight: 700; line-height: calc(22 * var(--u)); }
	.ft__top img { width: calc(62 * var(--u)); }
	.ft__copy { position: absolute; left: calc(1054 * var(--u)); top: calc(298 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(40 * var(--u)); white-space: nowrap; }
	.ft__copy small { font-size: inherit; }

	/* ---------- 追従ボタン ---------- */
	.fixed-cta { position: fixed; z-index: 40; left: calc(-23 * var(--u)); bottom: 40px; transition: opacity .3s, transform .3s; }
	.fixed-cta img { width: calc(332 * var(--u)); }
}

/* =====================================================================
 * SP
 * ===================================================================== */
@media (max-width: 1099px) {
	body.lp { padding-bottom: calc(71 * var(--u)); }
	.hd { height: calc(56 * var(--u)); }
	.hd__logo { left: calc(24 * var(--u)); top: calc(16 * var(--u)); gap: calc(9 * var(--u)); }
	.hd__catch { font-family: Inter, var(--jp); font-size: calc(12 * var(--u)); line-height: calc(24 * var(--u)); }
	.hd__name { width: calc(135.3 * var(--u)); }
	.hd__nav, .hd__reserve { display: none; }
	.hd__lang { left: auto; right: calc(54.8 * var(--u)); top: calc(13.7 * var(--u)); }
	.hd__lang img { width: calc(32.2 * var(--u)); }
	.hd__menu { display: block; right: calc(13 * var(--u)); top: calc(12 * var(--u)); width: calc(30 * var(--u)); height: calc(30 * var(--u)); padding: 0; border: 0; background: none; cursor: pointer; }
	.hd__menu img { width: calc(30 * var(--u)); }
	.lp section { width: calc(375 * var(--u)); }

	/* ---------- FV ---------- */
	.fv { height: calc(659 * var(--u)); }
	.fv::before { content: ""; position: absolute; inset: 0 auto auto 50%; width: 100vw; height: calc(428 * var(--u)); background: var(--blue); transform: translateX(-50%); }
	.fv__bg img { position: absolute; left: 50%; top: 0; width: max(100vw, calc(375 * var(--u))); height: calc(428 * var(--u)); object-fit: cover; object-position: center top; transform: translateX(-50%); }
	.fv::after { content: ""; position: absolute; left: 50%; top: calc(264 * var(--u)); width: 100vw; height: calc(168 * var(--u)); background: linear-gradient(rgba(255, 255, 255, 0), #fff); transform: translateX(-50%); }
	.fv__title { position: absolute; z-index: 2; left: calc(7.9 * var(--u)); top: calc(89.9 * var(--u)); }
	.fv__title img { width: calc(360.3 * var(--u)); }
	.fv__panel { position: absolute; z-index: 2; inset: calc(348 * var(--u)) 0 auto; }
	.fv__catch { width: calc(276 * var(--u)); margin: 0 auto !important; color: var(--green); font-family: var(--maru); font-size: calc(23 * var(--u)); font-weight: 700; line-height: calc(32 * var(--u)); text-align: center; text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 0 10px #fff; }
	.fv__points { position: absolute; left: calc(31 * var(--u)); top: calc(80 * var(--u)); display: flex; gap: calc(16 * var(--u)); }
	.fv__points li { display: flex; flex-direction: column; align-items: center; width: calc(93 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); letter-spacing: -.04em; text-align: center; white-space: nowrap; }
	.fv__icon { display: flex; align-items: center; justify-content: center; width: calc(87 * var(--u)); height: calc(87 * var(--u)); margin-bottom: calc(8 * var(--u)); border-radius: 50%; background: var(--green); }
	.fv__icon .pc { display: none; }
	.fv__points li:nth-child(1) .fv__icon img { width: calc(59.7 * var(--u)); }
	.fv__points li:nth-child(2) .fv__icon img { width: calc(53.8 * var(--u)); }
	.fv__points li:nth-child(3) .fv__icon img { width: calc(69.9 * var(--u)); }
	.fv__btn { position: absolute; left: calc(47.1 * var(--u)); top: calc(575 * var(--u)); }
	.fv__btn img { width: calc(285.6 * var(--u)) !important; margin: 0 !important; }

	/* ---------- コンセプト（top 659） ---------- */
	.concept { height: calc(1002 * var(--u)); }
	.concept__bg img { position: absolute; left: 50%; top: calc(7 * var(--u)); width: max(100vw, calc(376.5 * var(--u))); height: calc(997.5 * var(--u)); object-fit: cover; object-position: left bottom; transform: translateX(-50%); }
	.concept__vtext { display: none; }
	.concept__title { position: absolute; left: 0; right: 0; top: calc(35 * var(--u)); color: #fff; font-size: calc(26 * var(--u)); font-weight: 700; line-height: calc(32 * var(--u)); letter-spacing: -.04em; text-align: center; }
	.concept__body { position: absolute; left: calc(74 * var(--u)); top: calc(87 * var(--u)); width: calc(290 * var(--u)); color: #fff; font-size: calc(16 * var(--u)); font-weight: 500; line-height: calc(30 * var(--u)); letter-spacing: -.04em; }
	.concept__body p + p { margin-top: calc(30 * var(--u)); }
	.concept__ph { position: absolute; }
	.concept__ph img { display: block; }
	.concept__ph--sign { left: calc(-18 * var(--u)); top: calc(708.6 * var(--u)); width: calc(184.2 * var(--u)); border-radius: calc(10 * var(--u)); }
	.concept__ph--hibiscus { left: calc(245.3 * var(--u)); top: calc(687 * var(--u)); }
	.concept__ph--hibiscus img { width: calc(101.6 * var(--u)); }
	.concept__ph--family { left: calc(198.1 * var(--u)); top: calc(856.8 * var(--u)); width: calc(134.5 * var(--u)); }
	.concept__deco { position: absolute; z-index: 2; left: calc(30.3 * var(--u)); top: calc(673.3 * var(--u)); }
	.concept__deco img { width: calc(330.7 * var(--u)); }

	/* ---------- 過ごし方（top 1661） ---------- */
	.stay { height: calc(3061 * var(--u)); overflow-x: clip; overflow-y: visible; }
	.stay__ttl { position: absolute; inset: 0; z-index: 3; height: 0; color: var(--blue); line-height: calc(71.4 * var(--u)); }
	.stay__ttl > * { position: absolute; white-space: nowrap; }
	.stay__ttl br { display: none; }
	.stay__k1 { left: calc(35 * var(--u)); top: 0; font-size: calc(21.25 * var(--u)); font-weight: 500; }
	.stay__ttl img { left: calc(61.3 * var(--u)); top: calc(28.9 * var(--u)); width: calc(206.6 * var(--u)); }
	.stay__k2 { left: calc(277 * var(--u)); top: calc(16 * var(--u)); font-size: calc(21.25 * var(--u)); font-weight: 500; }
	.stay__k3 { left: calc(136 * var(--u)); top: calc(49 * var(--u)); font-size: calc(26 * var(--u)); font-weight: 700; }
	.stay__k2 i { font-style: normal; letter-spacing: calc(-7.2 * var(--u)); }

	.tl { position: absolute; inset: 0; }
	.tl > picture { position: absolute; }
	.tl > picture img { display: block; width: 100%; }
	.tl__deco { left: calc(212.5 * var(--u)); top: calc(89 * var(--u)); width: calc(218.4 * var(--u)); }
	.tl__line { left: calc(62.4 * var(--u)); top: calc(143.5 * var(--u)); width: calc(26.2 * var(--u)); }
	.tl__bubbles { left: calc(35.8 * var(--u)); top: calc(105.2 * var(--u)); width: calc(168.1 * var(--u)); }
	.tl__photos { left: calc(75.5 * var(--u)); top: calc(264.8 * var(--u)); width: calc(260.5 * var(--u)); }
	.tl__list { position: absolute; inset: 0; }
	.tl__t, .tl__c { position: absolute; font-weight: 500; line-height: calc(84 * var(--u)); white-space: nowrap; }
	.tl__t { color: #fff; font-size: calc(23 * var(--u)); }
	.tl__t--edge { color: var(--blue); font-size: calc(20 * var(--u)); }
	.tl__c { font-size: calc(18 * var(--u)); }
	.tl__t--wake { left: calc(56 * var(--u)); top: calc(103 * var(--u)); }
	.tl__t--am { left: calc(105 * var(--u)); top: calc(174 * var(--u)); }
	.tl__c--am { left: calc(129 * var(--u)); top: calc(433 * var(--u)); }
	.tl__t--noon { left: calc(117 * var(--u)); top: calc(525 * var(--u)); }
	.tl__c--noon { left: calc(111 * var(--u)); top: calc(786 * var(--u)); }
	.tl__t--pm { left: calc(117 * var(--u)); top: calc(952 * var(--u)); }
	.tl__c--pm { left: calc(120 * var(--u)); top: calc(1210 * var(--u)); }
	.tl__t--eve { left: calc(115 * var(--u)); top: calc(1309 * var(--u)); }
	.tl__c--eve { left: calc(120 * var(--u)); top: calc(1568 * var(--u)); }
	.tl__t--night { left: calc(124 * var(--u)); top: calc(1665 * var(--u)); }
	.tl__c--night { left: calc(101 * var(--u)); top: calc(1926 * var(--u)); }
	.tl__t--sleep { left: calc(55 * var(--u)); top: calc(1998 * var(--u)); }

	.stay__foot { position: absolute; left: 0; right: 0; top: calc(2104.1 * var(--u)); }
	.owner { position: relative; width: calc(318.8 * var(--u)); margin-left: calc(27.2 * var(--u)); padding: calc(18.8 * var(--u)) calc(13.2 * var(--u)) calc(14 * var(--u)); border: calc(2 * var(--u)) solid var(--blue); border-radius: calc(10 * var(--u)); background: #fff; }
	.owner__deco { position: absolute; right: calc(19 * var(--u)); top: calc(-63 * var(--u)); width: calc(75.6 * var(--u)); }
	.owner__deco img { width: 100%; }
	.owner__head { display: flex; align-items: flex-end; gap: calc(14.6 * var(--u)); }
	.owner__ph img { display: block; width: calc(142.1 * var(--u)); border-radius: calc(10 * var(--u)); }
	.owner__name { padding-bottom: 0; font-size: calc(15 * var(--u)); line-height: calc(20 * var(--u)); white-space: nowrap; }
	.owner__name strong { display: inline-block; margin-top: calc(7 * var(--u)); font-size: calc(20 * var(--u)); font-weight: 500; line-height: calc(30 * var(--u)); }
	.owner__name small { font-size: calc(14 * var(--u)); }
	.owner__body { margin-top: calc(13 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); }
	.owner__body p + p { margin-top: calc(22 * var(--u)); }
	.owner__body--2 { margin-top: calc(22 * var(--u)); }
	.cta--owner { position: relative; margin-top: calc(20 * var(--u)); gap: calc(17 * var(--u)); }
	.cta .lead { transform-origin: top center; }
	.cta--owner .lead, .checkin .lead, .faq .lead, .option .lead { width: calc(234 * var(--u)); }

	/* ---------- 沖縄の自然と文化（top 4722） ---------- */
	.nature { height: calc(717 * var(--u)); }
	.nature__house { position: absolute; left: calc(28 * var(--u)); top: 0; width: calc(318 * var(--u)); border-radius: calc(10 * var(--u)); }
	.nature__ttl { display: none; }
	.nature__scroll { position: absolute; left: 0; right: 0; top: calc(243 * var(--u)); height: calc(410 * var(--u)); overflow-x: auto; scrollbar-width: none; }
	.nature__scroll::-webkit-scrollbar { display: none; }
	.nature__track { position: relative; width: calc(987 * var(--u)); height: calc(400 * var(--u)); }
	.nb { position: absolute; top: 0; width: calc(286 * var(--u)); height: calc(400 * var(--u)); }
	.nb--stay { left: calc(27 * var(--u)); }
	.nb--play { left: calc(350 * var(--u)); }
	.nb--exp { left: calc(673 * var(--u)); }
	.nb__mark { position: absolute; left: 0; top: calc(39 * var(--u)); width: calc(111 * var(--u)); height: calc(111 * var(--u)); border: calc(4.46 * var(--u)) solid var(--pale); border-radius: 50%; color: var(--pale); text-align: center; }
	.nb__kanji { position: absolute; left: calc(10.5 * var(--u)); top: calc(-43.5 * var(--u)); width: calc(80 * var(--u)); font-family: var(--maru); font-size: calc(79.35 * var(--u)); font-weight: 500; line-height: calc(153.7 * var(--u)); }
	.nb__kanji-img { position: absolute; left: calc(3.5 * var(--u)); top: calc(4.5 * var(--u)); width: calc(95 * var(--u)); }
	.nb__en { position: absolute; left: 0; right: 0; top: calc(66.5 * var(--u)); font-family: "Ubuntu Condensed", sans-serif; font-size: calc(21.6 * var(--u)); line-height: calc(41.8 * var(--u)); }
	.nb--exp .nb__en { letter-spacing: -.09em; }
	.nb__ph1 { position: absolute; left: calc(130 * var(--u)); top: calc(48 * var(--u)); width: calc(157 * var(--u)); border-radius: calc(7.3 * var(--u)); }
	.nb__ph2 { position: absolute; left: calc(32 * var(--u)); top: calc(171 * var(--u)); width: calc(131 * var(--u)); border-radius: calc(7.3 * var(--u)); }
	.nb--play .nb__ph2 { left: calc(30 * var(--u)); width: calc(132 * var(--u)); }
	.nb__txt { position: absolute; left: 0; top: calc(284 * var(--u)); width: calc(290 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(22.4 * var(--u)); letter-spacing: -.04em; text-align: justify; }
	.hbar { position: absolute; left: calc(27 * var(--u)); top: calc(665 * var(--u)); width: calc(319 * var(--u)); height: calc(4 * var(--u)); }
	.hbar::before { content: ""; position: absolute; left: 0; right: 0; top: calc(1.5 * var(--u)); height: 1px; background: #ccc; }
	.hbar span { position: absolute; left: 0; top: 0; width: calc(80 * var(--u)); height: calc(4 * var(--u)); background: var(--blue); }

	/* ---------- チェックインの流れ（top 5439） ---------- */
	.checkin { height: calc(1042 * var(--u)); }
	.checkin .ttl { position: absolute; left: 0; right: 0; top: 0; }
	.steps { position: absolute; left: calc(29 * var(--u)); top: calc(92 * var(--u)); width: calc(318 * var(--u)); }
	.steps__item { position: relative; display: grid; grid-template-columns: calc(146 * var(--u)) 1fr; grid-template-rows: auto 1fr; align-content: start; column-gap: calc(17 * var(--u)); min-height: calc(146 * var(--u)); }
	.steps__item + .steps__item { margin-top: calc(40 * var(--u)); }
	.steps__item:not(:last-child)::after { content: ""; position: absolute; left: calc(53.3 * var(--u)); top: calc(155 * var(--u)); width: calc(39.4 * var(--u)); height: calc(22.9 * var(--u)); background: var(--dot); clip-path: polygon(0 0, 100% 0, 50% 100%); }
	.steps__ph { grid-row: 1 / span 2; width: calc(146 * var(--u)); border-radius: calc(10 * var(--u)); }
	.steps__no { position: relative; height: calc(33 * var(--u)); border-bottom: 1px solid var(--blue); }
	.steps__no span { position: absolute; left: calc(1 * var(--u)); top: calc(4 * var(--u)); color: var(--blue); font-size: calc(20 * var(--u)); font-weight: 500; line-height: calc(24 * var(--u)); letter-spacing: -.04em; }
	.steps__no b { position: absolute; left: calc(47 * var(--u)); top: calc(-39 * var(--u)); color: var(--blue); opacity: .25; font-family: "Crimson Text", serif; font-size: calc(75 * var(--u)); font-style: italic; font-weight: 400; line-height: calc(89.1 * var(--u)); letter-spacing: .05em; }
	.steps__txt { margin-top: calc(6 * var(--u)) !important; font-size: calc(16 * var(--u)); line-height: calc(24 * var(--u)); letter-spacing: -.04em; text-align: justify; }
	.cta--row { left: calc(50 * var(--u)); top: calc(878 * var(--u)); gap: calc(17 * var(--u)); }

	/* ---------- 施設紹介（top 6481） ---------- */
	.facility { height: calc(1725.3 * var(--u)); color: #fff; }
	.facility__bg { position: absolute; top: 0; left: 50%; width: 100vw; height: calc(1725.3 * var(--u)); transform: translateX(-50%); }
	.facility__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
	.facility .ttl { position: absolute; left: 0; right: 0; top: calc(31 * var(--u)); gap: calc(9 * var(--u)); }
	.facility__lead { position: absolute; left: calc(29 * var(--u)); top: calc(104 * var(--u)); width: calc(318 * var(--u)); font-size: calc(16 * var(--u)); font-weight: 400; line-height: calc(22 * var(--u)); letter-spacing: -.01em; }
	.facility__plan { position: absolute; left: calc(23 * var(--u)); top: calc(255 * var(--u)); }
	.facility__plan img { width: calc(334 * var(--u)); }
	.gallery { position: absolute; left: 0; right: 0; top: calc(680 * var(--u)); }
	.gallery__track { position: relative; left: 50%; display: flex; width: 100vw; overflow-x: auto; transform: translateX(-50%); scroll-snap-type: x mandatory; scrollbar-width: none; }
	.gallery__track::-webkit-scrollbar { display: none; }
	.gallery__track li { flex: none; width: calc(156 * var(--u)); scroll-snap-align: center; }
	.gallery__track img { display: block; width: 100%; height: calc(118 * var(--u)); object-fit: cover; }
	.gallery .dots { margin-top: calc(21 * var(--u)); gap: calc(11 * var(--u)); }
	.option { position: absolute; inset: calc(853 * var(--u)) 0 auto; }
	.option__ttl { font-size: calc(26 * var(--u)); font-weight: 500; line-height: calc(35 * var(--u)); text-align: center; }
	.option__lead { margin-top: calc(10 * var(--u)) !important; font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); text-align: center; }
	.option__list { position: absolute; left: 0; right: 0; top: calc(114 * var(--u)); display: grid; justify-items: center; gap: calc(4 * var(--u)); }
	.option__list img { display: block; width: calc(203 * var(--u)); height: calc(143 * var(--u)); object-fit: cover; border-radius: calc(10 * var(--u)); }
	.option__list h3 { font-size: calc(18 * var(--u)); font-weight: 400; line-height: calc(35 * var(--u)); text-align: center; white-space: nowrap; }
	.option__list h3.option__long { font-size: calc(17 * var(--u)); letter-spacing: -.13em; }
	.option__list li + li { margin-top: calc(8 * var(--u)); }
	.option .cta { left: calc(53 * var(--u)); top: calc(697 * var(--u)); gap: calc(12 * var(--u)); }

	/* ---------- 周辺アクティビティ（top 8206） ---------- */
	.activity { height: calc(2604 * var(--u)); }
	.activity .ttl { position: absolute; left: 0; right: 0; top: calc(27 * var(--u)); gap: calc(14 * var(--u)); }
	.activity .ttl__wave { width: calc(271 * var(--u)); height: auto; }
	.activity__map { position: absolute; left: calc(32 * var(--u)); top: calc(99 * var(--u)); width: calc(311 * var(--u)); }
	.activity__times { position: absolute; left: calc(188 * var(--u)); top: calc(443 * var(--u)); display: grid; gap: calc(9 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(21 * var(--u)); }
	.activity__times li { position: relative; padding-left: 1.4em; white-space: nowrap; }
	.activity__times li::before { content: "●"; position: absolute; left: 0; }
	.activity__spots { position: absolute; left: calc(56 * var(--u)); top: calc(603 * var(--u)); display: grid; row-gap: calc(18.5 * var(--u)); }
	.activity__spots li { width: calc(262 * var(--u)); text-align: center; }
	.activity__spots img { display: block; width: calc(262 * var(--u)); height: calc(174 * var(--u)); object-fit: cover; border-radius: calc(10 * var(--u)); }
	.activity__spots p { margin-top: calc(6 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(31 * var(--u)); white-space: nowrap; }
	.activity__spots li:nth-child(6) p { letter-spacing: -.08em; }
	.activity .cta { left: calc(50 * var(--u)); top: calc(2210 * var(--u)); gap: calc(16 * var(--u)); }
	.lead--activity { width: calc(275 * var(--u)); height: calc(42 * var(--u)); }
	.lead--activity .lead__deco { width: calc(275 * var(--u)); height: calc(43.7 * var(--u)); }
	.lead--activity .lead__l { font-size: calc(20.3 * var(--u)); padding-top: calc(5 * var(--u)); }
	.insta { position: absolute; left: calc(28 * var(--u)); top: calc(2370.6 * var(--u)); }
	.insta img { width: calc(318.3 * var(--u)); }

	/* ---------- お客様の声（top 10810） ---------- */
	.voice { height: calc(781 * var(--u)); }
	.voice::before { content: ""; position: absolute; inset: 0 auto 0 50%; width: 100vw; background: var(--aqua); transform: translateX(-50%); }
	.voice .ttl { position: absolute; left: 0; right: 0; top: calc(33 * var(--u)); gap: calc(11 * var(--u)); }
	.voice__slider { position: absolute; left: 0; right: 0; top: calc(107 * var(--u)); }
	.voice__track { position: relative; left: 50%; display: flex; align-items: flex-start; gap: calc(28 * var(--u)); width: 100vw; padding: 0 calc(50vw - calc(117 * var(--u))) calc(4 * var(--u)); overflow-x: auto; transform: translateX(-50%); scroll-snap-type: x mandatory; scrollbar-width: none; }
	.voice__track::-webkit-scrollbar { display: none; }
	.vcard { flex: none; width: calc(234 * var(--u)); padding: calc(17 * var(--u)) calc(17.5 * var(--u)) calc(17 * var(--u)); border: calc(2 * var(--u)) solid var(--blue); border-radius: calc(10 * var(--u)); background: #fff; scroll-snap-align: center; text-align: center; }
	.vcard__icon { display: block; width: calc(83 * var(--u)); height: calc(83 * var(--u)); margin: 0 auto; border-radius: 50%; object-fit: cover; }
	.vcard__icon--text { display: flex; align-items: center; justify-content: center; border: 1px solid rgba(204, 204, 204, .5); background: var(--pale); color: var(--blue); font-size: calc(17 * var(--u)); font-weight: 700; }
	.vcard__name { margin-top: calc(5 * var(--u)) !important; font-size: calc(20 * var(--u)); font-weight: 400; line-height: calc(22 * var(--u)); }
	.vcard__name small { display: block; margin-top: calc(2 * var(--u)); font-size: calc(15 * var(--u)); font-weight: 400; white-space: nowrap; }
	.vcard__stars { display: block; width: calc(91 * var(--u)); margin: calc(7 * var(--u)) auto 0; }
	.vcard__txt { margin-top: calc(9 * var(--u)) !important; font-size: calc(15 * var(--u)); line-height: calc(21 * var(--u)); text-align: left; }
	.voice .dots { position: absolute; left: 0; right: 0; top: calc(626 * var(--u)); }

	/* ---------- よくある質問（top 11591） ---------- */
	.faq { padding: calc(31 * var(--u)) 0 calc(31 * var(--u)); }
	.faq .ttl { gap: calc(13 * var(--u)); }
	.faq__list { width: calc(319 * var(--u)); margin: calc(12.5 * var(--u)) 0 0 calc(28 * var(--u)); }
	.faq__item { padding-block: calc(8.5 * var(--u)); }
	.faq__item summary { min-height: calc(45 * var(--u)); }
	.faq__item summary { position: relative; display: flex; align-items: flex-start; gap: calc(8 * var(--u)); padding-right: calc(40 * var(--u)); list-style: none; font-size: calc(18 * var(--u)); line-height: calc(24 * var(--u)); cursor: pointer; }
	.faq__item summary::-webkit-details-marker { display: none; }
	.faq__mark { flex: none; width: calc(31 * var(--u)); }
	.faq__item summary > span, .faq__a > span { padding-top: calc(4 * var(--u)); }
	.faq__toggle { position: absolute; right: 0; top: calc(4 * var(--u)); width: calc(27 * var(--u)); height: calc(27 * var(--u)); background: url("../img/faq-plus.svg") center / 100% no-repeat; }
	.faq__item[open] .faq__toggle { background-image: url("../img/faq-minus.svg"); }
	.faq__a { display: flex; align-items: flex-start; gap: calc(8 * var(--u)); margin-top: calc(10 * var(--u)) !important; padding-right: calc(12 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(24 * var(--u)); }
	.faq .cta { position: relative; margin: calc(14 * var(--u)) 0 0 calc(18 * var(--u)); gap: calc(13 * var(--u)); }
	.contact { display: flex; gap: calc(13 * var(--u)); }

	/* ---------- ブログ（top 12212） ---------- */
	.blog { padding: calc(34 * var(--u)) 0 calc(33 * var(--u)); }
	.blog::before { content: ""; position: absolute; inset: 0 auto 0 50%; z-index: -1; width: 100vw; background: var(--aqua); transform: translateX(-50%); }
	.blog .ttl { gap: calc(10 * var(--u)); }
	.blog__list { display: grid; gap: calc(23 * var(--u)); width: calc(262 * var(--u)); margin: calc(21 * var(--u)) auto 0 !important; }
	.blog__list li:nth-child(n+6) { display: none; }
	.bcard__thumb { display: block; aspect-ratio: 262 / 175; overflow: hidden; border-radius: calc(10 * var(--u)); background: #ccc; }
	.bcard__thumb img { width: 100%; height: 100%; object-fit: cover; }
	.bcard__ttl { display: -webkit-box; margin-top: calc(14 * var(--u)) !important; overflow: hidden; font-size: calc(20 * var(--u)); font-weight: 400; line-height: calc(24 * var(--u)); -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
	.bcard__more { display: inline-block; margin-top: calc(15 * var(--u)); padding: 0 calc(10 * var(--u)); background: var(--blue); color: #fff !important; font-size: calc(15 * var(--u)); line-height: calc(36 * var(--u)); }
	.blog__all { display: none; }
	.pager { display: flex; align-items: center; gap: calc(6 * var(--u)); width: calc(262 * var(--u)); margin: calc(31 * var(--u)) auto 0; }
	.pager a { display: block; min-width: calc(24 * var(--u)); height: calc(24 * var(--u)); padding: 0 calc(3 * var(--u)); border: .7px solid var(--blue); color: var(--blue) !important; font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); text-align: center; }
	.pager a.is-current { background: var(--blue); color: #fff !important; }
	.pager__dots { color: var(--blue); font-size: calc(12 * var(--u)); }
	.blog__empty { margin-top: calc(40 * var(--u)) !important; text-align: center; }

	/* ---------- アクセス ---------- */
	.access { height: calc(310 * var(--u)); }
	.access iframe { position: absolute; left: 50%; top: 0; width: 100vw; height: 100%; border: 0; transform: translateX(-50%); }

	/* ---------- フッター（top 14366） ---------- */
	.ft { position: relative; width: calc(375 * var(--u)); height: calc(637 * var(--u)); margin-inline: auto; }
	.ft__nav ul { position: absolute; left: calc(28 * var(--u)); top: calc(21 * var(--u)); display: grid; grid-template-rows: repeat(5, calc(42 * var(--u))); grid-auto-flow: column; grid-template-columns: calc(171 * var(--u)) calc(122 * var(--u)); column-gap: calc(26 * var(--u)); font-size: calc(18 * var(--u)); font-weight: 500; line-height: calc(41 * var(--u)); white-space: nowrap; }
	.ft__nav li { border-bottom: 1px solid #ccc; }
	.ft__nav li a::before { content: "▪︎"; }
	.ft__brand { position: absolute; inset: 0; }
	.ft__mark { position: absolute; left: calc(97 * var(--u)); top: calc(263 * var(--u)); width: calc(181 * var(--u)); }
	.ft__logo { position: absolute; left: calc(63 * var(--u)); top: calc(456 * var(--u)); width: calc(248 * var(--u)); color: var(--green); font-family: Inter, var(--jp); font-size: calc(17 * var(--u)); line-height: calc(24 * var(--u)); text-align: center; }
	.ft__logo img { display: block; width: calc(248 * var(--u)); margin-top: calc(8 * var(--u)); }
	.ft__addr { position: absolute; left: 0; right: 0; top: calc(537 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(24 * var(--u)); text-align: center; }
	.ft__insta { position: absolute; left: calc(259 * var(--u)); top: calc(586 * var(--u)); }
	.ft__insta img { width: calc(44 * var(--u)); }
	.ft__top { position: absolute; left: calc(320 * var(--u)); top: calc(572 * var(--u)); display: flex; flex-direction: column; align-items: center; width: calc(41 * var(--u)); color: var(--blue) !important; font-family: Inter, sans-serif; font-size: calc(12 * var(--u)); font-weight: 700; line-height: calc(15 * var(--u)); }
	.ft__top img { width: calc(41 * var(--u)); }
	.ft__copy { position: absolute; left: calc(31 * var(--u)); top: calc(613 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(24 * var(--u)); }
	.ft__copy small { font-size: inherit; }

	/* ---------- 追従ボタン ---------- */
	.fixed-cta { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; background: #ff5a5f; }
	.fixed-cta img { width: calc(375 * var(--u)); }

	/* SP 用の吹き出し・ボタンサイズ（PC の 0.8668 倍） */
	.lead { width: calc(234 * var(--u)); line-height: calc(26.9 * var(--u)); }
	.lead__deco { width: calc(234 * var(--u)); height: calc(54 * var(--u)); }
	.lead__s { font-size: calc(18.2 * var(--u)); }
	.lead__l { font-size: calc(21.7 * var(--u)); }
	.btn-airbnb--detail img { width: calc(282 * var(--u)); margin-left: calc(-1 * var(--u)); }
	.btn-airbnb--reserve img { width: calc(270 * var(--u)); }
	.lead.lead--activity { width: calc(275 * var(--u)); height: calc(42 * var(--u)); }
	.lead.lead--activity .lead__deco { width: calc(275 * var(--u)); height: calc(43.7 * var(--u)); }
	.lead.lead--activity .lead__l { font-size: calc(20.3 * var(--u)); line-height: calc(27.4 * var(--u)); padding-top: calc(5 * var(--u)); }
}

/* ---------- お問い合わせボタン（PC/SP 共通の作り。寸法は u） ---------- */
.contact__btn { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff !important; font-weight: 900; text-align: center; }
.contact__btn::after { content: ""; position: absolute; inset: calc(6 * var(--u)); border: calc(1.2 * var(--u)) solid #fff; border-radius: calc(6 * var(--u)); pointer-events: none; }
.contact__btn--airbnb { background: var(--pink); }
.contact__btn--tel { background: var(--blue); }
.contact__no { display: flex; align-items: center; gap: calc(4 * var(--u)); }
.contact__btn small { font-weight: 500; }
@media (min-width: 1100px) {
	.contact__btn { width: calc(224 * var(--u)); height: calc(117 * var(--u)); border-radius: calc(9.6 * var(--u)); font-size: calc(18 * var(--u)); line-height: calc(24 * var(--u)); }
	.contact__btn--airbnb img { width: calc(125 * var(--u)); margin-bottom: calc(7 * var(--u)); }
	.contact__no img { width: calc(20 * var(--u)); }
	.contact__btn small { font-size: calc(13 * var(--u)); }
}
@media (max-width: 1099px) {
	.contact__btn { width: calc(163 * var(--u)); height: calc(104 * var(--u)); border-radius: calc(8.5 * var(--u)); font-size: calc(15.9 * var(--u)); line-height: calc(21.2 * var(--u)); }
	.contact__btn::after { inset: calc(5 * var(--u)); }
	.contact__btn--airbnb img { width: calc(110 * var(--u)); margin-bottom: calc(6 * var(--u)); }
	.contact__no img { width: calc(18 * var(--u)); }
	.contact__btn small { font-size: calc(11.5 * var(--u)); }
}

/* 追従ボタンは FV を過ぎてから表示 */
.fixed-cta.is-hidden { opacity: 0; pointer-events: none; transform: translateY(20px); }
@media (max-width: 1099px) { .drawer-open { overflow: hidden; } }
