/* Cosmo Resort Series single components — AW 1.3.56
 * Loaded only on Resort Series guides opted in with .cc-guide--v2 (body.cch3-resort-v2).
 * Extends cosmo-home-v3.css (tokens, .cch3-card) + cosmo-single-v3.css (column).
 * Column: <700px = viewport minus 18px gutters; 700–1099px = max 42rem; >=1100px = 420u.
 */
.cch3-resort-v2 { --cc-gutter: 18px; --cc-hair: rgba(29, 26, 23, .14); --cc-label-size: 10.5px; }

/* ---------------------------------------------------------------- kicker */
.cch3-resort-v2 .cch3-kicker--series { color: var(--cch3-tan); }
.cch3-resort-v2 .cch3-kicker--series a { color: var(--cch3-tan-dark); }
.cch3-resort-v2 .cch3-kicker--series a:hover { color: var(--cch3-ink); }

/* ------------------------------------------------------ hero + figures */
.cch3-resort-v2 .cch3-article__hero { margin: 0 0 10px; }
.cch3-resort-v2 .cc-guide--v2 .cc-figure { margin: 2em 0 2.1em; padding: 0; max-width: none; width: auto; }
.cch3-resort-v2 .cc-guide--v2 .cc-figure img { display: block; width: 100%; max-width: none; height: auto; }
@media (max-width: 699px) {
	/* Full-bleed edge to edge; captions stay on the text margin. */
	.cch3-resort-v2 .cch3-article__hero,
	.cch3-resort-v2 .cc-guide--v2 .cc-figure { margin-left: calc(-1 * var(--cc-gutter)); margin-right: calc(-1 * var(--cc-gutter)); }
	.cch3-resort-v2 .cc-guide--v2 .cc-figure figcaption { padding: 0 var(--cc-gutter); }
}

/* -------------------------------------------------- captions + credits */
.cch3-resort-v2 .cc-guide--v2 .cc-figure figcaption {
	margin-top: 10px; font-family: var(--cch3-sans); font-size: 13px; line-height: 1.5; color: var(--cch3-muted);
	font-variation-settings: normal;
}
.cch3-resort-v2 .cc-guide--v2 .cc-credit,
.cch3-resort-v2 .cc-guide--v2 .cc-hero-credit {
	display: block; font-family: var(--cch3-sans); font-size: 10px; line-height: 1.6; letter-spacing: .09em;
	text-transform: uppercase; color: #8a847c; font-variation-settings: normal;
}
.cch3-resort-v2 .cc-guide--v2 .cc-credit { margin-top: 4px; }
.cch3-resort-v2 .cc-guide--v2 .cc-hero-credit { margin: 0 0 26px; }
.cch3-resort-v2 .cc-guide--v2 .cc-credit a,
.cch3-resort-v2 .cc-guide--v2 .cc-hero-credit a { color: inherit; text-decoration: none; text-underline-offset: 2px; }
.cch3-resort-v2 .cc-guide--v2 .cc-credit a:hover,
.cch3-resort-v2 .cc-guide--v2 .cc-hero-credit a:hover,
.cch3-resort-v2 .cc-guide--v2 .cc-credit a:focus-visible,
.cch3-resort-v2 .cc-guide--v2 .cc-hero-credit a:focus-visible { text-decoration: underline; color: var(--cch3-ink); }

/* 1.3.59: credits wrap on every width (never truncated) and the licence link stays one unit ("CC BY 4.0", not "CC" / "BY 4.0"). */
.cch3-resort-v2 .cc-guide--v2 .cc-credit,
.cch3-resort-v2 .cc-guide--v2 .cc-hero-credit { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: break-word; max-width: 100%; height: auto; }
.cch3-resort-v2 .cc-guide--v2 .cc-credit a[rel~="license"],
.cch3-resort-v2 .cc-guide--v2 .cc-hero-credit a[rel~="license"] { white-space: nowrap; }

/* ------------------------------------------------------------ standfirst */
.cch3-resort-v2 .cc-guide--v2 .cc-standfirst { font-size: 1.12em; line-height: 1.5; color: var(--cch3-ink-2); margin-bottom: 1.4em; }

/* --------------------------------------------- shared panel eyebrow */
.cch3-resort-v2 .cc-guide--v2 .cc-glance-title,
.cch3-resort-v2 .cc-guide--v2 .cc-know-title,
.cch3-resort-v2 .cc-guide--v2 .cc-whofor > h2 {
	font-family: var(--cch3-sans); font-weight: 600; font-size: 11px; line-height: 1.2; letter-spacing: .2em;
	text-transform: uppercase; color: var(--cch3-tan-dark); margin: 0 0 12px; font-variation-settings: normal;
}
.cch3-resort-v2 .cc-guide--v2 dt {
	font-family: var(--cch3-sans); font-weight: 600; font-size: var(--cc-label-size); line-height: 1.3; letter-spacing: .14em;
	text-transform: uppercase; color: var(--cch3-muted); margin: 0 0 3px;
}
.cch3-resort-v2 .cc-guide--v2 dd { margin: 0; padding: 0; }
.cch3-resort-v2 .cc-guide--v2 dl { margin: 0; padding: 0; }

/* ------------------------------------------------------------ at a glance */
.cch3-resort-v2 .cc-guide--v2 .cc-glance { background: var(--cch3-outer); padding: 20px 20px 10px; margin: 0 0 2.2em; }
.cch3-resort-v2 .cc-guide--v2 .cc-glance-row { padding: 9px 0 10px; border-top: 1px solid var(--cc-hair); }
.cch3-resort-v2 .cc-guide--v2 .cc-glance-row:first-child { border-top: 0; padding-top: 2px; }
.cch3-resort-v2 .cc-guide--v2 .cc-glance dd { font-family: var(--cch3-serif); font-size: 15.5px; line-height: 1.38; color: var(--cch3-ink); }
@media (max-width: 699px) {
	/* Stacked rows with the small-caps label run in ahead of the value: keeps the panel <520px at 390. */
	.cch3-resort-v2 .cc-guide--v2 .cc-glance { padding: 18px 18px 7px; }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance-title { margin-bottom: 8px; }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance-row { padding: 8px 0 9px; font-size: 15px; line-height: 1.38; }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance dt { display: inline; margin: 0 8px 0 0; font-size: 9.5px; letter-spacing: .13em; line-height: 1; }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance dd { display: inline; font-size: 15px; line-height: 1.38; }
}
@media (min-width: 700px) {
	.cch3-resort-v2 .cc-guide--v2 .cc-glance { padding: 26px 30px 16px; }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance-row,
	.cch3-resort-v2 .cc-guide--v2 .cc-glance-row:first-child { border-top: 1px solid var(--cc-hair); padding: 11px 0 12px; }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance dd { font-size: 16px; }
}

/* -------------------------------------------------------- story h2s */
.cch3-resort-v2 .cc-guide--v2 { counter-reset: cc-sec; }
.cch3-resort-v2 .cc-guide--v2 h2.cc-sec {
	counter-increment: cc-sec; font-family: var(--cch3-serif); font-weight: 400; font-variation-settings: "opsz" 40;
	font-size: 29px; line-height: 1.15; letter-spacing: -.01em; margin: 2.1em 0 .95em;
}
.cch3-resort-v2 .cc-guide--v2 h2.cc-sec::before {
	content: counter(cc-sec, decimal-leading-zero) "\00a0\00b7\00a0" attr(data-kicker);
	content: counter(cc-sec, decimal-leading-zero) "\00a0\00b7\00a0" attr(data-kicker) / "";
	display: block; margin-bottom: 12px; font-family: var(--cch3-sans); font-weight: 600; font-size: 11px; line-height: 1.2;
	letter-spacing: .2em; text-transform: uppercase; color: var(--cch3-tan); font-variation-settings: normal;
}
.cch3-resort-v2 .cc-guide--v2 h2.cc-sec::after { content: ""; display: block; width: 40px; height: 2px; background: var(--cch3-tan); margin-top: 16px; }

/* ----------------------------------------------------------- drop cap */
.cch3-resort-v2 .cc-guide--v2 p.cc-dropcap::first-letter {
	float: left; font-family: var(--cch3-serif); font-weight: 400; font-variation-settings: "opsz" 72; color: var(--cch3-tan);
	font-size: 4.1em; line-height: .82; margin: .06em .1em 0 -.02em;
}

/* --------------------------------------------------------- pull quote */
.cch3-resort-v2 .cc-guide--v2 .cc-pullquote { margin: 2.2em 0; padding: 26px 0 22px; border-top: 1px solid var(--cch3-tan); border-bottom: 1px solid var(--cch3-tan); text-align: center; max-width: none; }
.cch3-resort-v2 .cc-guide--v2 .cc-pullquote blockquote { margin: 0; padding: 0; border: 0; }
.cch3-resort-v2 .cc-guide--v2 .cc-pullquote blockquote p {
	margin: 0; font-family: var(--cch3-serif); font-style: italic; font-weight: 300; font-variation-settings: "opsz" 60;
	font-size: 32px; line-height: 1.18; letter-spacing: -.01em; color: var(--cch3-ink);
}
.cch3-resort-v2 .cc-guide--v2 .cc-pullquote--own blockquote p { font-size: 24px; line-height: 1.26; }
@media (max-width: 699px) { .cch3-resort-v2 .cc-guide--v2 .cc-pullquote--own blockquote p { font-size: 21px; } }
.cch3-resort-v2 .cc-guide--v2 .cc-pullquote figcaption {
	margin-top: 14px; font-family: var(--cch3-sans); font-weight: 600; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--cch3-tan-dark);
}

/* ------------------------------------------------------ who it's for */
.cch3-resort-v2 .cc-guide--v2 .cc-whofor { margin: 2.4em 0; padding: 20px 20px 6px 20px; border-left: 2px solid var(--cch3-tan); background: var(--cch3-outer); }
.cch3-resort-v2 .cc-guide--v2 .cc-whofor p { font-size: 1.07em; line-height: 1.55; }
@media (min-width: 700px) {
	.cch3-resort-v2 .cc-guide--v2 .cc-whofor { background: transparent; padding: 4px 0 2px 26px; }
	.cch3-resort-v2 .cc-guide--v2 .cc-whofor p:last-child { margin-bottom: 0; }
}

/* ------------------------------------------------- before you book */
.cch3-resort-v2 .cc-guide--v2 .cc-know { margin: 2.6em 0 2.2em; padding: 22px 20px 24px; border: 1px solid var(--cch3-rule); }
.cch3-resort-v2 .cc-guide--v2 .cc-know-row { padding: 12px 0 13px; border-top: 1px solid var(--cc-hair); }
.cch3-resort-v2 .cc-guide--v2 .cc-know-row:first-child { border-top: 0; padding-top: 2px; }
.cch3-resort-v2 .cc-guide--v2 .cc-know dd { font-family: var(--cch3-serif); font-size: 16px; line-height: 1.45; color: var(--cch3-ink); overflow-wrap: break-word; }
.cch3-resort-v2 .cc-guide--v2 .cc-know-address,
.cch3-resort-v2 .cc-guide--v2 .cc-know-contact { display: block; }
.cch3-resort-v2 .cc-guide--v2 .cc-know-contact { margin-top: 4px; color: var(--cch3-ink-2); }
.cch3-resort-v2 .cc-guide--v2 .cc-nowrap { white-space: nowrap; }
.cch3-resort-v2 .cc-guide--v2 .cc-know-cta { margin: 16px 0 0; }
.cch3-resort-v2 .cc-guide--v2 .cc-btn-outline {
	display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 20px; border: 1px solid var(--cch3-ink);
	font-family: var(--cch3-sans); font-weight: 500; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; line-height: 1;
	color: var(--cch3-ink); background: transparent; white-space: nowrap; transition: background .2s ease, color .2s ease;
}
.cch3-resort-v2 .cc-guide--v2 .cc-btn-outline:hover,
.cch3-resort-v2 .cc-guide--v2 .cc-btn-outline:focus-visible { background: var(--cch3-ink); color: var(--cch3-page); }
@media (min-width: 700px) {
	.cch3-resort-v2 .cc-guide--v2 .cc-know { padding: 26px 30px 28px; }
	.cch3-resort-v2 .cc-guide--v2 .cc-know-row { display: grid; grid-template-columns: 132px 1fr; column-gap: 20px; align-items: baseline; }
	.cch3-resort-v2 .cc-guide--v2 .cc-know-row dt { margin: 0; }
}

/* ---------------------------------------------------------- disclosure */
.cch3-resort-v2 .cc-guide--v2 .cc-disclosure {
	margin: 2.4em 0 0; padding-top: 16px; border-top: 1px solid var(--cc-hair);
	font-family: var(--cch3-sans); font-size: 13px; line-height: 1.55; color: var(--cch3-muted); font-style: normal; font-variation-settings: normal;
}
.cch3-resort-v2 .cc-guide--v2 .cc-disclosure em { font-style: normal; }

/* ------------------------------------------------------------ end module */
.cch3-resort-v2 .cc-more { margin: 56px 0 0; padding: 40px 0 0; border-top: 1px solid var(--cc-hair); }
.cch3-resort-v2 .cc-more__block + .cc-more__block { margin-top: 48px; }
.cch3-resort-v2 .cc-more__title { font-family: var(--cch3-serif); font-weight: 400; font-variation-settings: "opsz" 48; font-size: 28px; line-height: 1.12; letter-spacing: -.01em; }
.cch3-resort-v2 .cc-more__title--also { font-size: 22px; }
.cch3-resort-v2 ul.cc-more__grid,
.cch3-resort-v2 ul.cc-more__grid > li { list-style: none !important; margin: 0; padding: 0; background-image: none; }
.cch3-resort-v2 ul.cc-more__grid > li::marker { content: none; }
.cch3-resort-v2 ul.cc-more__grid { margin-top: 20px; }
.cch3-resort-v2 .cc-more .cch3-card__media { aspect-ratio: 4 / 3; }
.cch3-resort-v2 .cc-more .cch3-card__title { font-size: 20px; line-height: 1.25; margin-top: 8px !important; }
.cch3-resort-v2 .cc-more .cch3-card__cat { margin-top: 14px !important; }
.cch3-resort-v2 .cc-more__all { margin-top: 26px; font-family: var(--cch3-sans); font-weight: 500; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.cch3-resort-v2 .cc-more__all a { color: var(--cch3-tan-dark); border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.cch3-resort-v2 .cc-more__all a:hover { color: var(--cch3-ink); }
@media (max-width: 699px) {
	/* Horizontal scroll with snap; cards peek so the row reads as scrollable. */
	.cch3-resort-v2 .cc-more { margin-left: calc(-1 * var(--cc-gutter)); margin-right: calc(-1 * var(--cc-gutter)); }
	.cch3-resort-v2 .cc-more__title, .cch3-resort-v2 .cc-more__all { margin-left: var(--cc-gutter); margin-right: var(--cc-gutter); }
	.cch3-resort-v2 ul.cc-more__grid {
		display: grid; grid-auto-flow: column; grid-auto-columns: 76%; gap: 16px; overflow-x: auto; overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory; scroll-padding-left: var(--cc-gutter); padding: 0 var(--cc-gutter) 6px; -webkit-overflow-scrolling: touch; scrollbar-width: none;
	}
	.cch3-resort-v2 ul.cc-more__grid::-webkit-scrollbar { display: none; }
	.cch3-resort-v2 ul.cc-more__grid > li { scroll-snap-align: start; }
}
@media (min-width: 700px) {
	.cch3-resort-v2 ul.cc-more__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px 20px; }
	.cch3-resort-v2 .cc-more .cch3-card__title { font-size: 19px; }
}

/* ============================================================ desktop */
@media (min-width: 700px) {
	.cch3-resort-v2 { --cc-gutter: 34px; }
	.cch3-resort-v2 .cc-more { max-width: 60rem; margin-left: auto; margin-right: auto; }
}
@media (min-width: 1100px) {
	.cch3-resort-v2 { --cc-wide: min(calc(625 * var(--u)), calc(100vw - 64px)); --cc-col: calc(420 * var(--u)); --cc-label-size: max(10.5px, calc(6.6 * var(--u))); }
	.cch3-resort-v2 .cc-guide--v2 .cc-know-row { grid-template-columns: calc(84 * var(--u)) 1fr; column-gap: calc(12 * var(--u)); }
	/* Images sit exactly on the text column. */
	.cch3-resort-v2 .cch3-article__hero,
	.cch3-resort-v2 .cc-guide--v2 .cc-figure { margin-left: 0; margin-right: 0; width: 100%; }
	/* Wide variant breaks out symmetrically to ~1040px at 1280; caption stays on the column. */
	.cch3-resort-v2 .cc-guide--v2 .cc-figure--wide { width: var(--cc-wide); margin-left: calc((100% - var(--cc-wide)) / 2); margin-right: 0; margin-top: 2.6em; margin-bottom: 2.6em; }
	.cch3-resort-v2 .cc-guide--v2 .cc-figure--wide figcaption { width: var(--cc-col); margin-left: auto; margin-right: auto; }
	.cch3-resort-v2 .cc-guide--v2 .cc-figure figcaption { font-size: max(13px, calc(7.9 * var(--u))); }
	.cch3-resort-v2 .cc-guide--v2 .cc-credit, .cch3-resort-v2 .cc-guide--v2 .cc-hero-credit { font-size: max(10px, calc(6.1 * var(--u))); }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance-title,
	.cch3-resort-v2 .cc-guide--v2 .cc-know-title,
	.cch3-resort-v2 .cc-guide--v2 .cc-whofor > h2,
	.cch3-resort-v2 .cc-guide--v2 h2.cc-sec::before,
	.cch3-resort-v2 .cc-guide--v2 .cc-pullquote figcaption { font-size: max(11px, calc(6.7 * var(--u))); }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance dd { font-size: calc(10.4 * var(--u)); }
	.cch3-resort-v2 .cc-guide--v2 .cc-glance { padding: calc(17 * var(--u)) calc(19 * var(--u)) calc(10 * var(--u)); }
	.cch3-resort-v2 .cc-guide--v2 h2.cc-sec { font-size: calc(19 * var(--u)); }
	.cch3-resort-v2 .cc-guide--v2 .cc-pullquote blockquote p { font-size: calc(23 * var(--u)); }
	.cch3-resort-v2 .cc-guide--v2 .cc-pullquote--own blockquote p { font-size: calc(19 * var(--u)); }
	.cch3-resort-v2 .cc-guide--v2 .cc-know dd { font-size: calc(10.6 * var(--u)); }
	.cch3-resort-v2 .cc-guide--v2 .cc-know { padding: calc(17 * var(--u)) calc(19 * var(--u)) calc(18 * var(--u)); }
	.cch3-resort-v2 .cc-guide--v2 .cc-disclosure { font-size: max(13px, calc(7.9 * var(--u))); }
	.cch3-resort-v2 .cc-guide--v2 .cc-btn-outline { height: calc(26 * var(--u)); padding: 0 calc(13 * var(--u)); font-size: max(11px, calc(6.6 * var(--u))); }
	.cch3-resort-v2 .cc-more { width: var(--cc-wide); max-width: none; margin-top: calc(36 * var(--u)); padding-top: calc(26 * var(--u)); }
	.cch3-resort-v2 .cc-more__title { font-size: calc(19 * var(--u)); }
	.cch3-resort-v2 .cc-more__title--also { font-size: calc(15 * var(--u)); }
	.cch3-resort-v2 ul.cc-more__grid { gap: calc(18 * var(--u)) calc(14 * var(--u)); margin-top: calc(14 * var(--u)); }
	.cch3-resort-v2 .cc-more .cch3-card__media { aspect-ratio: 4 / 3; height: auto; }
	.cch3-resort-v2 .cc-more .cch3-card__title { font-size: calc(12.4 * var(--u)); line-height: 1.25; }
	.cch3-resort-v2 .cc-more__all { font-size: max(11px, calc(6.6 * var(--u))); }
}

/* Preview shims (inline end module / style used before 1.3.56 was deployed) hide once the template renders the real thing. */
.cch3-resort-v2 .cc-preview-shim { display: none !important; }

/* 1.3.72: draft fact strip (Delaire and future). Unused on live Asia guides. */
.cch3-resort-v2 .cc-guide--v2 .cc-facts {
	margin: 1.6em 0 2em; padding: 18px 0;
	border-top: 1px solid var(--cch3-tan); border-bottom: 1px solid var(--cch3-tan);
}
.cch3-resort-v2 .cc-guide--v2 .cc-facts ul {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 0;
}
.cch3-resort-v2 .cc-guide--v2 .cc-facts li {
	font-family: var(--cch3-sans); font-size: 12px; letter-spacing: .08em;
	text-transform: uppercase; color: var(--cch3-ink-2); padding: 4px 14px;
}
.cch3-resort-v2 .cc-guide--v2 .cc-facts li:not(:last-child) { border-right: 1px solid var(--cc-hair); }
@media (max-width: 699px) {
	.cch3-resort-v2 .cc-guide--v2 .cc-facts li {
		font-size: 11px; padding: 4px 10px; width: 50%; text-align: center;
		box-sizing: border-box; border-right: 0;
	}
	.cch3-resort-v2 .cc-guide--v2 .cc-facts li:nth-child(odd) { border-right: 1px solid var(--cc-hair); }
}

/* 1.3.73: Visit CTA arrow. The "↗" glyph is not in Work Sans, so iOS/Android fall back to the colour
 * emoji font and draw it as a blue-square emoji. Hide the glyph and draw a tan fine-line arrow
 * (24u viewBox, 1.4 stroke, round caps, same as the panel icons) via mask. Content markup unchanged. */
.cch3-resort-v2 .cc-guide--v2 .cc-btn-outline > span[aria-hidden="true"] {
	display: inline-block; flex: 0 0 auto; width: 14px; height: 14px;
	font-size: 0; line-height: 0; color: transparent; text-shadow: none; overflow: hidden;
	background: var(--cch3-tan);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 17.4L17.4 6.6'/%3E%3Cpath d='M8.8 6.6h8.6v8.6'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 17.4L17.4 6.6'/%3E%3Cpath d='M8.8 6.6h8.6v8.6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cch3-resort-v2 .cc-guide--v2 .cc-btn-outline > span[aria-hidden="true"]::before,
.cch3-resort-v2 .cc-guide--v2 .cc-btn-outline > span[aria-hidden="true"]::after { content: none; }
