/* Astro Q&A block + Guide page layout (presentation only; markup comes from astro-member-portal).
   Typography uses the theme tokens only. */
.amp-qa {
	background: rgb(255 255 255 / 70%);
	border: 1px solid var(--wp--preset--color--hairline, #e8e3da);
	border-radius: 12px;
	margin: 0 0 1rem;
	overflow: hidden;
}

.amp-qa__summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	list-style: none;
	min-height: 48px;
	padding: 1.25rem 1.25rem;
}

.amp-qa__summary::-webkit-details-marker {
	display: none;
}

.amp-qa__summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #c86928);
	outline-offset: -4px;
}

.amp-qa .amp-qa__question {
	color: var(--wp--preset--color--charcoal, #272624);
	font-family: var(--astro-font-editorial);
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
	font-weight: 400;
	line-height: 1.25;
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
}

.amp-qa__icon {
	color: var(--wp--preset--color--muted, #6e6a64);
	flex: 0 0 auto;
	font-family: var(--astro-font-functional);
	font-size: 1.5rem;
	font-weight: 300;
	line-height: 1;
}

.amp-qa__icon::before {
	content: "+";
}

.amp-qa[open] > .amp-qa__summary .amp-qa__icon::before {
	content: "\2212";
}

.amp-qa__answer {
	border-top: 1px solid var(--wp--preset--color--hairline, #e8e3da);
	color: var(--wp--preset--color--muted, #6e6a64);
	font-family: var(--astro-font-functional);
	font-size: 0.9375rem;
	line-height: 1.7;
	margin: 0 1.25rem;
	overflow-wrap: anywhere;
	padding-block: 1.25rem 1.5rem;
}

.amp-qa__answer > :first-child { margin-top: 0; }
.amp-qa__answer > :last-child { margin-bottom: 0; }
.amp-qa__answer :where(img, video, iframe) { max-width: 100%; }

/* Guide page */
.wp-site-blocks > .astro-house-guide-canvas {
	box-sizing: border-box;
	padding-block: clamp(2.5rem, 4vw, 3.5rem) clamp(4rem, 6vw, 5rem);
	padding-inline: 1.25rem;
}

.wp-block-post-content :has(> .amp-guide) {
	max-width: none;
}

.amp-guide {
	margin-inline: auto;
	max-width: 72rem;
}

.amp-guide-hero__eyebrow {
	color: var(--wp--preset--color--primary, #c86928);
	font-family: var(--astro-font-functional);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	margin: 0 0 0.75rem;
	text-transform: uppercase;
}

.amp-guide-hero__title {
	font-family: var(--astro-font-editorial);
	font-size: clamp(2.25rem, 1.6rem + 3vw, 3.75rem);
	font-weight: 400;
	line-height: 1.1;
	margin: 0;
	overflow-wrap: anywhere;
}

.amp-guide-hero__intro {
	color: var(--wp--preset--color--muted, #6e6a64);
	font-family: var(--astro-font-functional);
	font-size: 0.9375rem;
	line-height: 1.7;
	margin: 0.75rem 0 0;
	max-width: 36rem;
}

.amp-guide-body {
	display: grid;
	gap: 1.5rem;
	margin-top: 2rem;
}

.amp-guide-index {
	background: #fcfaf7;
	border: 1px solid var(--wp--preset--color--hairline, #e8e3da);
	border-radius: 12px;
	box-sizing: border-box;
	padding: 1.25rem;
}

.amp-guide-index__title {
	color: var(--wp--preset--color--muted, #6e6a64);
	font-family: var(--astro-font-functional);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	margin: 0 0 0.75rem;
	text-transform: uppercase;
}

.amp-guide-index__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.amp-guide-index__link,
.amp-guide-index__text {
	color: var(--wp--preset--color--charcoal, #272624);
	display: block;
	font-family: var(--astro-font-functional);
	font-size: 0.9375rem;
	min-height: 44px;
	overflow-wrap: anywhere;
	padding-block: 0.65rem;
	text-decoration: none;
}

.amp-guide-index__text { color: var(--wp--preset--color--muted, #6e6a64); }
.amp-guide-index__link:hover { color: var(--wp--preset--color--primary, #c86928); }
.amp-guide-index__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #c86928);
	outline-offset: 2px;
}

.amp-guide-main { min-width: 0; }
.amp-guide-main :where(.amp-qa) { scroll-margin-top: 1.5rem; }

@media (min-width: 640px) {
	.wp-site-blocks > .astro-house-guide-canvas { padding-inline: 2.5rem; }
}

@media (min-width: 1024px) {
	.amp-guide-body {
		align-items: start;
		gap: 3rem;
		grid-template-areas: "main index";
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	}
	.amp-guide-main { grid-area: main; }
	.amp-guide-index { grid-area: index; position: sticky; top: 1.5rem; }
	.amp-guide-index__list { display: block; }
	.amp-qa__summary { padding: 1.5rem 1.75rem; }
	.amp-qa__answer { margin-inline: 1.75rem; }
}

/* Editor canvas */
.amp-qa-editor { border: 1px solid var(--wp--preset--color--hairline, #e8e3da); border-radius: 12px; padding: 1rem 1.25rem; }
.amp-qa-editor .amp-qa__answer { margin: 0; }

/* Multilingual authoring (editor only). One language version is shown at a time; the others stay in the block tree, hidden here.
   The active language is editor state on [data-amp-qa-active-lang], never saved. Tabs use admin functional typography. */
.amp-qa-editor__langs { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 1rem; }
.amp-qa-editor__lang { align-items: center; background: transparent; border: 1px solid var(--wp--preset--color--hairline, #e8e3da); border-radius: 4px; color: inherit; cursor: pointer; display: inline-flex; font: 600 12px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; gap: 6px; min-height: 32px; padding: 0 10px; }
.amp-qa-editor__lang.is-active { background: #1e1e1e; border-color: #1e1e1e; color: #fff; }
.amp-qa-editor__lang-status { opacity: 0.75; }
.amp-qa-editor[data-amp-qa-active-lang="en"] > .amp-qa-editor__answer > [data-amp-qa-lang]:not([data-amp-qa-lang="en"]),
.amp-qa-editor[data-amp-qa-active-lang="vi"] > .amp-qa-editor__answer > [data-amp-qa-lang]:not([data-amp-qa-lang="vi"]),
.amp-qa-editor[data-amp-qa-active-lang="ko"] > .amp-qa-editor__answer > [data-amp-qa-lang]:not([data-amp-qa-lang="ko"]),
.amp-qa-editor[data-amp-qa-active-lang="ja"] > .amp-qa-editor__answer > [data-amp-qa-lang]:not([data-amp-qa-lang="ja"]),
.amp-qa-editor[data-amp-qa-active-lang="zh"] > .amp-qa-editor__answer > [data-amp-qa-lang]:not([data-amp-qa-lang="zh"]),
.amp-qa-editor:not([data-amp-qa-active-lang="en"]) > .amp-qa-editor__answer > :not([data-amp-qa-lang]),
.amp-qa-editor__answer.is-hidden { display: none; }
.amp-qa-editor__missing { background: rgb(0 0 0 / 3%); border: 1px dashed var(--wp--preset--color--hairline, #e8e3da); border-radius: 8px; font: 13px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; margin: 0 0 0.5rem; padding: 0.75rem 1rem; }
.amp-qa-editor__missing p { margin: 0 0 0.5rem; }
.amp-qa-editor__missing-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* Dynamic Q&A answer: Self check-in (functional typography only) */
.amp-qa-checkin__notice { margin: 0; }
.amp-qa-checkout__guide > :first-child { margin-top: 0; }
.amp-qa-checkout__guide > :last-child { margin-bottom: 0; }
.amp-qa-checkin__guide > :first-child { margin-top: 0; }
.amp-qa-checkin__guide > :last-child { margin-bottom: 0; }
/* Quick Access: mobile = video full width, codes side by side; desktop = one row. */
.amp-qa-checkin__quick { display: grid; gap: 0.625rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 1.25rem; }
.amp-qa-checkin__item { background: var(--wp--preset--color--sand, #f6f2ea); border: 1px solid var(--wp--preset--color--hairline, #e8e3da); border-radius: 8px; display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; padding: 0.625rem 0.75rem; }
.amp-qa-checkin__item--video, .amp-qa-checkin__item--solo { grid-column: 1 / -1; }
.amp-qa-checkin__label { color: var(--wp--preset--color--muted, #6e6a64); font-family: var(--astro-font-functional); font-size: 0.8125rem; line-height: 1.35; overflow-wrap: anywhere; }
.amp-qa-checkin__code { color: var(--wp--preset--color--charcoal, #272624); font-family: var(--astro-font-functional); font-size: 1.0625rem; font-weight: 600; letter-spacing: 0.02em; overflow-wrap: anywhere; }
.amp-qa-checkin__video-link { align-items: center; background: none; border: 0; color: var(--wp--preset--color--charcoal, #272624); cursor: pointer; display: inline-flex; font-family: var(--astro-font-functional); font-size: 1rem; font-weight: 600; gap: 0.75rem; justify-content: flex-start; min-height: 2.75rem; padding: 0; text-align: start; }
.amp-qa-checkin__video-link:focus-visible { outline: 2px solid var(--wp--preset--color--primary, #c86928); outline-offset: 4px; border-radius: 4px; }
.amp-qa-checkin__play { align-items: center; border: 1.5px solid var(--wp--preset--color--primary, #c86928); border-radius: 50%; box-sizing: border-box; display: inline-flex; flex: 0 0 auto; height: 2.5rem; justify-content: center; transition: background-color 0.15s; width: 2.5rem; }
.amp-qa-checkin__play::before { border-color: transparent transparent transparent var(--wp--preset--color--primary, #c86928); border-style: solid; border-width: 0.4375rem 0 0.4375rem 0.6875rem; content: ""; margin-inline-start: 0.1875rem; }
.amp-qa-checkin__video-link:hover .amp-qa-checkin__play { background: rgb(200 105 40 / 10%); }
.amp-qa-checkin__video-text { min-width: 0; overflow-wrap: anywhere; }
/* Four items (video + room + entrance + lockbox): 2x2 on mobile, one row on desktop. */
.amp-qa-checkin__quick--four .amp-qa-checkin__item--video { grid-column: auto; }

/* Video guide modal (self check-in assistant): full-viewport surface, 9:16 video, then Room | Stairway door | Lockbox in one row.
   The server only renders the codes when sensitive access is allowed; before that the availability notice takes their place. */
.amp-video-modal[hidden] { display: none; }
.amp-video-modal { background: #fcfaf7; box-sizing: border-box; color: var(--wp--preset--color--charcoal, #272624); display: flex; inset: 0; justify-content: center; position: fixed; z-index: 100000; }
.amp-video-modal__panel { box-sizing: border-box; display: flex; flex-direction: column; height: 100%; max-width: 40rem; width: 100%; }
.amp-video-modal__bar { align-items: center; border-bottom: 1px solid var(--wp--preset--color--hairline, #e8e3da); box-sizing: border-box; display: grid; grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem; flex: 0 0 auto; gap: 0.5rem; min-height: 3.5rem; padding: 0 0.5rem 0 0.5rem; padding-top: env(safe-area-inset-top, 0); }
html.amp-video-modal-open #astro-chatbot-bubble-root { display: none !important; }
.amp-video-modal__heading { grid-column: 2; min-width: 0; padding-block: 0.875rem; text-align: center; }
.amp-video-modal__close { grid-column: 3; justify-self: end; }
.amp-video-modal__eyebrow { color: var(--wp--preset--color--primary, #c86928); font-family: var(--astro-font-functional); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; line-height: 1.2; margin: 0 0 0.5625rem; text-transform: uppercase; }
.amp-video-modal__rule { background: var(--wp--preset--color--primary, #c86928); display: block; height: 1px; margin: 0.6875rem auto 0; width: 1.75rem; }
.amp-video-modal__title { color: var(--wp--preset--color--charcoal, #272624); font-family: var(--astro-font-editorial); font-size: 1.5rem; font-weight: 400; line-height: 1.2; margin: 0; min-width: 0; overflow-wrap: anywhere; }
.amp-video-modal__close { align-items: center; background: none; border: 0; border-radius: 50%; color: var(--wp--preset--color--charcoal, #272624); cursor: pointer; display: inline-flex; flex: 0 0 auto; font-family: var(--astro-font-functional); font-size: 2rem; height: 2.75rem; justify-content: center; line-height: 1; padding: 0; width: 2.75rem; }
.amp-video-modal__close { transition: color 0.15s; }
.amp-video-modal__close:hover, .amp-video-modal__close:focus-visible { background: var(--wp--preset--color--sand, #f6f2ea); color: var(--wp--preset--color--primary, #c86928); }
.amp-video-modal__close:focus-visible, .amp-video-modal__value:focus-visible { outline: 2px solid var(--wp--preset--color--primary, #c86928); outline-offset: 2px; }
.amp-video-modal__scroll { align-items: center; box-sizing: border-box; display: flex; flex: 1 1 auto; flex-direction: column; gap: 1rem; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom, 0)); }
.amp-video-modal__frame { aspect-ratio: 9 / 16; background: #272624; border-radius: 12px; flex: 0 0 auto; overflow: hidden; width: min(100%, 26rem, max(11rem, calc((100dvh - 16.5rem) * 9 / 16))); }
.amp-video-modal__frame iframe { border: 0; display: block; height: 100%; width: 100%; }
.amp-video-modal__below { box-sizing: border-box; flex: 0 0 auto; width: min(100%, 26rem); }
.amp-video-modal__codes { border-bottom: 1px solid var(--wp--preset--color--hairline, #e8e3da); border-top: 1px solid rgb(200 105 40 / 35%); display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; list-style: none; margin: 0; padding: 0; }
.amp-video-modal__cell { box-sizing: border-box; display: flex; flex-direction: column; gap: 0.125rem; min-width: 0; padding: 0.625rem 0.5rem; }
.amp-video-modal__cell + .amp-video-modal__cell { border-inline-start: 1px solid var(--wp--preset--color--hairline, #e8e3da); }
.amp-video-modal__label { color: var(--wp--preset--color--muted, #6e6a64); font-family: var(--astro-font-functional); font-size: 0.6875rem; letter-spacing: 0.08em; line-height: 1.3; overflow-wrap: anywhere; text-transform: uppercase; }
.amp-video-modal__value { background: none; border: 0; border-radius: 4px; color: var(--wp--preset--color--charcoal, #272624); cursor: pointer; font-family: var(--astro-font-functional); font-size: 1.125rem; font-weight: 600; letter-spacing: 0.02em; line-height: 1.3; min-height: 2.75rem; overflow-wrap: anywhere; padding: 0.25rem 0; text-align: center; }
.amp-video-modal__value:hover, .amp-video-modal__value:focus-visible, .amp-video-modal__value.is-copied { color: var(--wp--preset--color--primary, #c86928); }
.amp-video-modal__copied { color: var(--wp--preset--color--primary, #c86928); font-family: var(--astro-font-functional); font-size: 0.8125rem; height: 1.25rem; line-height: 1.25rem; margin: 0.375rem 0 0; opacity: 0; text-align: center; transition: opacity 0.15s; }
.amp-video-modal__copied.is-visible { opacity: 1; }
.amp-video-modal__notice { color: var(--wp--preset--color--muted, #6e6a64); font-family: var(--astro-font-functional); font-size: 0.9375rem; line-height: 1.6; margin: 0; text-align: center; }
@media (min-width: 40rem) {
	.amp-video-modal__frame { width: min(100%, 23.75rem, max(11rem, calc((100dvh - 17.5rem) * 9 / 16))); }
	.amp-video-modal__bar { padding-inline: 1rem; }
	.amp-video-modal__scroll { padding-block: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) { .amp-video-modal__copied { transition: none; } }
.amp-qa-checkin__steps-title { color: var(--wp--preset--color--charcoal, #272624); font-family: var(--astro-font-functional); font-size: 1rem; font-weight: 600; margin: 0 0 0.5rem; }
@media (min-width: 40rem) {
	.amp-qa-checkin__quick { grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; grid-template-columns: none; }
	.amp-qa-checkin__item--video, .amp-qa-checkin__item--solo { grid-column: auto; }
}

/* Guide authored lists: exactly two Astro styles, scoped to Guide answers (never My Stay / Services / Home / chrome).
   ASTRO COMPACT is the default for any plain ol/ul; ol.astro-list--steps is ASTRO STEPS. Semantic ol/ul/li stay intact (CSS counters only). */
.amp-guide-body .amp-qa__answer :is(ol:not(.astro-list--steps), ul) { counter-reset: astro-compact; list-style: none; margin: 0.5rem 0; padding: 0; }
.amp-guide-body .amp-qa__answer :is(ol:not(.astro-list--steps), ul) > li { counter-increment: astro-compact; margin: 0; min-width: 0; padding-inline-start: 1.5rem; position: relative; }
.amp-guide-body .amp-qa__answer :is(ol:not(.astro-list--steps), ul) > li + li { margin-top: 0.375rem; }
.amp-guide-body .amp-qa__answer :is(ol:not(.astro-list--steps), ul) > li::before { color: var(--wp--preset--color--primary, #c86928); font-weight: 600; inset-inline-start: 0; letter-spacing: 0; position: absolute; top: 0; }
/* Compact ordered: same 01 / 02 / 03 numerals as Steps, but a small outlined circle (24px so two digits sit comfortably). */
.amp-guide-body .amp-qa__answer ol:not(.astro-list--steps) > li { padding-inline-start: 2rem; }
.amp-guide-body .amp-qa__answer ol:not(.astro-list--steps) > li::before { align-items: center; background: transparent; border: 1px solid var(--wp--preset--color--primary, #c86928); border-radius: 50%; box-sizing: border-box; content: counter(astro-compact, decimal-leading-zero); display: flex; font-family: var(--astro-font-functional); font-size: 0.625rem; font-variant-numeric: tabular-nums; height: 1.5rem; justify-content: center; line-height: 1; top: 0.05rem; width: 1.5rem; }
.amp-guide-body .amp-qa__answer ul > li::before { content: "\2726"; font-family: "Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2", system-ui, sans-serif; font-size: 0.72em; font-weight: 400; line-height: 2.36; }
.amp-guide-body .amp-qa__answer li > :is(ol, ul) { margin: 0.375rem 0 0; }
.amp-guide-body .amp-qa__answer li > :first-child { margin-top: 0; }
.amp-guide-body .amp-qa__answer li > :last-child { margin-bottom: 0; }
/* ASTRO STEPS */
.amp-guide-body .amp-qa__answer ol.astro-list--steps { border-inline-start: 1px solid var(--wp--preset--color--primary, #c86928); counter-reset: astro-step; list-style: none; margin: 0.75rem 0; padding: 0 0 0 0.875rem; }
.amp-guide-body .amp-qa__answer ol.astro-list--steps > li { counter-increment: astro-step; margin: 0; min-width: 0; padding-inline-start: 3rem; position: relative; }
.amp-guide-body .amp-qa__answer ol.astro-list--steps > li + li { margin-top: 1rem; }
.amp-guide-body .amp-qa__answer ol.astro-list--steps > li::before { color: var(--wp--preset--color--primary, #c86928); content: counter(astro-step, decimal-leading-zero); font-family: var(--astro-font-editorial); font-size: 1.5rem; font-variant-numeric: lining-nums tabular-nums; font-weight: 300; inset-inline-start: 0; letter-spacing: 0; line-height: 1.1; position: absolute; top: 0.15rem; }
.amp-guide-body .amp-qa__answer ol.astro-list--steps > li > :is(ol, ul) { margin-top: 0.5rem; }

/* CJK optical tuning (KO/JA/ZH): smaller display sizes and lighter UI weight than the EN/VI baseline. */
:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) .amp-guide-hero__title {
	font-weight: 400;
	line-height: 1.3;
}

:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) :is(.amp-guide-hero__eyebrow, .amp-guide-index__title) {
	font-weight: 500;
	letter-spacing: 0.06em;
}

:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) .amp-qa .amp-qa__question {
	line-height: 1.45;
}

:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) :is(.amp-qa-checkin__code, .amp-qa-checkin__video-link, .amp-qa-checkin__steps-title) {
	font-weight: 500;
}
:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) .amp-qa-checkin__code {
	letter-spacing: 0;
}
:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) :is(.amp-video-modal__label, .amp-video-modal__value) {
	letter-spacing: 0;
}
:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) .amp-video-modal__label {
	font-size: 0.75rem;
}

:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) :is(.amp-guide-hero__intro, .amp-guide-index__link, .amp-guide-index__text) {
	line-height: 1.65;
}
/* G6VT optical refinement: lighter supported CJK weights (300) for display, matching Cormorant's calm feel. */
:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) :is(.amp-guide-hero__title, .amp-qa .amp-qa__question) {
	font-synthesis-weight: none;
	font-weight: 300;
}

:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) :is(.amp-guide-hero__intro, .amp-guide-index__link, .amp-guide-index__text) {
	font-weight: 300;
}

:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) .amp-guide-index__link:hover,
:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) .amp-guide-index__link:focus-visible {
	font-weight: 400;
}
/* G6VT-R1: subtle optical lift for Guide CJK functional text. */
:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) :is(.amp-guide-hero__intro, .amp-guide-index__link, .amp-guide-index__text) {
	font-size: 1rem;
}

:is(:root:lang(ko), :root:lang(ja), :root:lang(zh)) :is(.amp-guide-hero__eyebrow, .amp-guide-index__title) {
	font-size: 0.78rem;
}

/* GUIDE-R4: Guide copy wraps like My Stay — Korean at spaces (not inside words), Japanese by phrase where supported. */
:root:lang(ko) :is(.amp-guide-hero, .amp-guide-body) { word-break: keep-all; overflow-wrap: break-word; }
:root:lang(ja) :is(.amp-guide-hero, .amp-guide-body) { line-break: strict; word-break: auto-phrase; }
