/*
Theme Name: Pisang Rental + Paket Wisata
Theme URI: https://pisanglabs.com/
Author: Pisang Labs
Author URI: https://pisanglabs.com/
Description: Theme klasik untuk website Rental Mobil + Paket Wisata. Menampilkan katalog dan shell antarmuka tanpa memindahkan aturan bisnis dari Pisang Core dan Pisang Wisata Module.
Version: 1.6.0
Requires at least: 6.2
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: pisang-wisata-theme
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: custom-logo, featured-images, translation-ready, two-columns
*/

:root {
	--pw-bg: #f7f5ee;
	--pw-surface: #ffffff;
	--pw-surface-soft: #eef6f1;
	--pw-ink: #17231d;
	--pw-muted: #64746b;
	--pw-brand: #16734a;
	--pw-brand-strong: #0d5736;
	--pw-accent: #e5a72d;
	--pw-line: #dce6df;
	--pw-danger: #a83b3b;
	--pw-radius: 18px;
	--pw-shadow: 0 18px 50px rgba(20, 50, 36, 0.10);
	--pw-wrap: 1180px;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--pw-bg);
	color: var(--pw-ink);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

body.admin-bar {
	min-height: calc(100vh - 32px);
}

img {
	max-width: 100%;
	height: auto;
}

button,
input,
select,
textarea {
	font: inherit;
}

a {
	color: var(--pw-brand);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

a:hover,
a:focus-visible {
	color: var(--pw-brand-strong);
}

.pw-container {
	width: min(var(--pw-wrap), calc(100% - 32px));
	margin-inline: auto;
}

.pw-skip-link {
	position: fixed;
	left: 16px;
	top: -100px;
	z-index: 99999;
	padding: 10px 14px;
	border-radius: 10px;
	background: var(--pw-ink);
	color: #fff;
}

.pw-skip-link:focus {
	top: 16px;
}

.pw-site {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.pw-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid rgba(220, 230, 223, 0.92);
	background: rgba(247, 245, 238, 0.94);
	backdrop-filter: blur(16px);
}

.admin-bar .pw-site-header {
	top: 32px;
}

.pw-header-inner {
	min-height: 74px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.pw-brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--pw-ink);
	font-weight: 850;
	letter-spacing: -0.025em;
	text-decoration: none;
}

.pw-brand-mark {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 14px;
	background: var(--pw-brand);
	color: #fff;
	font-size: 20px;
	box-shadow: 0 8px 22px rgba(22, 115, 74, 0.22);
}

.pw-nav ul,
.pw-footer-nav ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 18px;
}

.pw-nav a,
.pw-footer-nav a {
	color: var(--pw-ink);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.pw-main {
	flex: 1;
	padding-block: 48px 72px;
}

.pw-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(32px, 7vw, 84px);
	border: 1px solid var(--pw-line);
	border-radius: 30px;
	background:
		radial-gradient(circle at 92% 8%, rgba(229, 167, 45, 0.25), transparent 26%),
		linear-gradient(135deg, #0f5e3b, #173a2c);
	color: #fff;
	box-shadow: var(--pw-shadow);
}

.pw-hero::after {
	content: "";
	position: absolute;
	right: -90px;
	bottom: -130px;
	width: 320px;
	height: 320px;
	border: 48px solid rgba(255, 255, 255, 0.06);
	border-radius: 50%;
}

.pw-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.09);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pw-hero h1 {
	max-width: 760px;
	margin: 18px 0 12px;
	font-size: clamp(38px, 7vw, 76px);
	line-height: 0.98;
	letter-spacing: -0.055em;
}

.pw-hero p {
	max-width: 650px;
	margin: 0;
	color: rgba(255, 255, 255, 0.80);
	font-size: clamp(16px, 2vw, 20px);
}

.pw-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 28px;
}

.pw-card,
.pw-entry {
	border: 1px solid var(--pw-line);
	border-radius: var(--pw-radius);
	background: var(--pw-surface);
	box-shadow: 0 10px 34px rgba(20, 50, 36, 0.06);
}

.pw-card {
	padding: 24px;
}

.pw-card h2,
.pw-card h3 {
	margin-top: 0;
	line-height: 1.2;
	letter-spacing: -0.025em;
}

.pw-card p:last-child {
	margin-bottom: 0;
}

.pw-content-header {
	margin-bottom: 26px;
}

.pw-content-header h1 {
	margin: 0;
	font-size: clamp(34px, 5vw, 56px);
	line-height: 1.05;
	letter-spacing: -0.045em;
}

.pw-entry {
	overflow: hidden;
	margin-bottom: 20px;
}

.pw-entry-media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.pw-entry-body {
	padding: 24px;
}

.pw-entry-title {
	margin: 0 0 8px;
	font-size: clamp(24px, 3vw, 34px);
	line-height: 1.15;
	letter-spacing: -0.035em;
}

.pw-entry-title a {
	color: var(--pw-ink);
	text-decoration: none;
}

.pw-entry-meta {
	margin-bottom: 14px;
	color: var(--pw-muted);
	font-size: 13px;
}

.pw-pagination {
	margin-top: 28px;
}

.pw-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pw-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding-inline: 12px;
	border: 1px solid var(--pw-line);
	border-radius: 12px;
	background: var(--pw-surface);
	text-decoration: none;
}

.pw-pagination .current {
	border-color: var(--pw-brand);
	background: var(--pw-brand);
	color: #fff;
}

.pw-empty {
	padding: 40px;
	border: 1px dashed var(--pw-line);
	border-radius: var(--pw-radius);
	background: var(--pw-surface);
	text-align: center;
}

.pw-site-footer {
	border-top: 1px solid var(--pw-line);
	background: #10251b;
	color: rgba(255, 255, 255, 0.72);
}

.pw-footer-inner {
	min-height: 110px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.pw-footer-nav a {
	color: rgba(255, 255, 255, 0.82);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	position: fixed !important;
	left: 16px;
	top: 16px;
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 12px 16px;
	clip: auto;
	background: #fff;
	color: var(--pw-ink);
}

@media (max-width: 782px) {
	.admin-bar .pw-site-header {
		top: 46px;
	}

	.pw-header-inner,
	.pw-footer-inner {
		align-items: flex-start;
		flex-direction: column;
		padding-block: 16px;
	}

	.pw-nav ul,
	.pw-footer-nav ul {
		flex-wrap: wrap;
		gap: 12px 16px;
	}

	.pw-grid {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}


/* Paket Wisata estimate and booking form */
.pw-package-booking {
	margin-top: 28px;
}

.pw-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.pw-form-grid label {
	display: grid;
	gap: 7px;
	font-weight: 700;
}

.pw-form-grid input,
.pw-form-grid select,
.pw-form-grid textarea {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid var(--pw-line);
	border-radius: 12px;
	background: #fff;
	color: var(--pw-ink);
}

.pw-form-wide {
	grid-column: 1 / -1;
}

.pw-form-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.pw-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid var(--pw-brand);
	border-radius: 12px;
	background: var(--pw-brand);
	color: #fff;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
}

.pw-button:hover,
.pw-button:focus-visible {
	background: var(--pw-brand-strong);
	color: #fff;
}

.pw-button-secondary {
	background: #fff;
	color: var(--pw-brand);
}

.pw-button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.pw-package-message {
	min-height: 24px;
	margin-top: 14px;
}

.pw-package-message[data-type="error"] {
	color: var(--pw-danger);
}

.pw-package-message[data-type="success"] {
	color: var(--pw-brand-strong);
	font-weight: 800;
}

.pw-package-estimate {
	margin-top: 16px;
	padding: 18px;
	border: 1px solid var(--pw-line);
	border-radius: 14px;
	background: var(--pw-surface-soft);
}

.pw-price-lines {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px 18px;
	margin: 0;
}

.pw-price-lines dt,
.pw-price-lines dd {
	margin: 0;
}

.pw-price-lines dd {
	font-weight: 800;
	text-align: right;
}

.pw-price-total {
	margin: 16px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--pw-line);
	font-size: 1.25rem;
	font-weight: 900;
}

@media (max-width: 620px) {
	.pw-form-grid {
		grid-template-columns: 1fr;
	}
	.pw-form-wide {
		grid-column: auto;
	}
}


/* My Trip actions for destinations and activities. */
.pw-trip-cart-action .pw-form-actions,
.post-type-archive-pisang_trip_item .pw-form-actions {
	align-items: end;
}

.pw-trip-cart-action input[type="number"] {
	width: 96px;
}

[data-pisang-cart-message]:empty {
	display: none;
}

/* Vehicle catalog cards: compact marketplace-style layout. */
.pw-vehicle-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.pw-vehicle-card {
	display: flex;
	min-width: 0;
	overflow: hidden;
	flex-direction: column;
	border: 1px solid var(--pw-line);
	border-radius: 12px;
	background: var(--pw-surface);
	box-shadow: 0 8px 24px rgba(20, 50, 36, 0.07);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.pw-vehicle-card:hover {
	transform: translateY(-3px);
	border-color: rgba(22, 115, 74, 0.34);
	box-shadow: 0 15px 36px rgba(20, 50, 36, 0.12);
}

.pw-vehicle-media {
	display: block;
	overflow: hidden;
	background: #edf2ee;
	text-decoration: none;
}

.pw-vehicle-media img,
.pw-vehicle-placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.pw-vehicle-media img {
	transition: transform 240ms ease;
}

.pw-vehicle-card:hover .pw-vehicle-media img {
	transform: scale(1.025);
}

.pw-vehicle-placeholder {
	display: grid;
	place-items: center;
	font-size: 52px;
}

.pw-vehicle-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 0 16px 16px;
}

.pw-vehicle-title {
	margin: 0;
	padding: 14px 6px 12px;
	border-bottom: 1px dashed var(--pw-line);
	font-size: 18px;
	line-height: 1.25;
	text-align: center;
}

.pw-vehicle-title a {
	color: #334155;
	text-decoration: none;
}

.pw-vehicle-title a:hover,
.pw-vehicle-title a:focus-visible {
	color: var(--pw-brand);
}

.pw-vehicle-specs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	padding: 10px 0 0;
}

.pw-vehicle-specs span {
	padding: 3px 8px;
	border-radius: 999px;
	background: var(--pw-surface-soft);
	color: var(--pw-muted);
	font-size: 11px;
	font-weight: 700;
}

.pw-vehicle-prices {
	margin-top: 4px;
}

.pw-vehicle-price-row {
	display: grid;
	gap: 2px;
	padding: 12px 4px;
	border-bottom: 1px solid #edf1ee;
	text-align: center;
}

.pw-vehicle-price-label {
	color: #475569;
	font-size: 14px;
	font-weight: 700;
}

.pw-vehicle-price {
	color: #145fe6;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
}

.pw-vehicle-price:hover,
.pw-vehicle-price:focus-visible {
	color: #0b47b2;
}

.pw-vehicle-price-note {
	color: var(--pw-muted);
	font-size: 11px;
	line-height: 1.4;
}

.pw-vehicle-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	margin-top: auto;
	padding: 11px 10px 0;
	color: var(--pw-brand);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
}

@media (max-width: 1100px) {
	.pw-vehicle-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.pw-vehicle-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.pw-vehicle-grid {
		grid-template-columns: 1fr;
	}
}

/* ========================================================================== 
   Raja Trip prototype integration · mobile-first public travel storefront
   ========================================================================== */
:root {
	--rt-brand: #f45136;
	--rt-primary: #e8601a;
	--rt-ink: #182947;
	--rt-muted: #636b79;
	--rt-page: #eef0f3;
	--rt-soft: #f5f6f8;
	--rt-line: #e1e5ea;
	--rt-radius: 16px;
	--rt-shadow: 0 10px 28px rgba(24, 41, 71, 0.10);
}

body.pisang-wisata-theme {
	background: var(--rt-page);
	color: var(--rt-ink);
	font-family: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.rt-site {
	min-height: 100vh;
	background: #fff;
}

.rt-navbar {
	position: sticky;
	top: 0;
	z-index: 1000;
	min-height: 72px;
	background: rgba(255, 255, 255, 0.97);
	border-bottom: 1px solid rgba(24, 41, 71, 0.06);
	backdrop-filter: blur(16px);
}

.admin-bar .rt-navbar { top: 32px; }

.rt-navbar-inner {
	min-height: 72px;
	display: flex;
	align-items: center;
	gap: 22px;
}

.rt-brand {
	min-width: 0;
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--rt-brand);
}

.rt-brand:hover,
.rt-brand:focus-visible { color: var(--rt-brand); }

.rt-brand-wordmark {
	max-width: 230px;
	overflow: hidden;
	font-family: Arial Black, Arial, sans-serif;
	font-size: clamp(20px, 3vw, 25px);
	font-weight: 900;
	line-height: 0.95;
	letter-spacing: -1.6px;
	text-transform: uppercase;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rt-brand-logo {
	width: auto;
	max-width: 190px;
	height: 42px;
	object-fit: contain;
}

.rt-desktop-nav { margin-left: auto; }
.rt-desktop-nav ul { display: flex; align-items: center; gap: 20px; margin: 0; padding: 0; list-style: none; }
.rt-desktop-nav a { color: var(--rt-ink); font-size: 14px; font-weight: 700; text-decoration: none; }
.rt-desktop-nav a:hover { color: var(--rt-primary); }

.rt-nav-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 12px;
}

.rt-icon-button,
.rt-nav-actions .pw-my-trip-trigger {
	position: relative;
	width: 42px;
	height: 42px;
	min-height: 42px;
	padding: 0;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--rt-ink);
	cursor: pointer;
	text-decoration: none;
}

.rt-icon-button:hover,
.rt-icon-button:focus-visible,
.rt-nav-actions .pw-my-trip-trigger:hover,
.rt-nav-actions .pw-my-trip-trigger:focus-visible {
	background: #f3f5f7;
	color: var(--rt-primary);
}

.rt-icon-button svg,
.rt-bottom-nav svg {
	width: 25px;
	height: 25px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.rt-cart-badge {
	position: absolute;
	top: 1px;
	right: -1px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: var(--rt-brand);
	color: #fff;
	font-size: 10px;
	box-shadow: 0 0 0 2px #fff;
}

.rt-my-trip-dialog {
	width: min(480px, 100%);
	max-height: 100dvh;
	border-radius: 20px 0 0 20px;
}

.rt-kicker {
	display: block;
	margin: 0 0 7px;
	color: var(--rt-primary);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.rt-home { padding: 0 0 18px; background: #fff; }
.rt-home .pw-container { width: min(1180px, calc(100% - 36px)); }

.rt-hero {
	padding: 72px 0 62px;
	background: linear-gradient(180deg, #f4f6f8 0%, #f8f9fa 76%, #fff 100%);
}

.rt-hero-inner { text-align: center; }
.rt-hero h1 {
	max-width: 760px;
	margin: 0 auto;
	color: var(--rt-ink);
	font-size: clamp(34px, 6vw, 62px);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.045em;
}

.rt-search {
	max-width: 720px;
	height: 62px;
	margin: 34px auto 0;
	padding: 6px;
	display: flex;
	align-items: center;
	background: #fff;
	border: 1px solid rgba(24, 41, 71, 0.05);
	border-radius: 999px;
	box-shadow: 0 16px 32px rgba(24, 41, 71, 0.12);
}

.rt-search input {
	min-width: 0;
	flex: 1;
	height: 100%;
	padding: 0 22px;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--rt-ink);
	font-size: 16px;
	font-weight: 600;
}

.rt-search button,
.rt-primary-button {
	min-height: 50px;
	padding: 0 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 999px;
	background: var(--rt-primary);
	color: #fff;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
}

.rt-search button:hover,
.rt-primary-button:hover { color: #fff; filter: brightness(0.96); }

.rt-quick-links {
	max-width: 760px;
	margin: 28px auto 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}

.rt-quick-links a {
	min-height: 72px;
	padding: 13px 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	border: 1px solid var(--rt-line);
	border-radius: 15px;
	background: rgba(255,255,255,.88);
	color: var(--rt-ink);
	font-size: 12px;
	font-weight: 800;
	text-decoration: none;
}
.rt-quick-links a:hover { border-color: rgba(232,96,26,.38); color: var(--rt-primary); transform: translateY(-1px); }
.rt-quick-icon {
	width: 38px;
	height: 38px;
	display: grid;
	place-items: center;
	border-radius: 12px;
	background: rgba(232, 96, 26, 0.10);
	color: var(--rt-primary);
	transition: background-color .16s ease, transform .16s ease;
}
.rt-quick-icon svg {
	width: 24px;
	height: 24px;
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.85;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.rt-quick-icon img {
	width: 24px;
	height: 24px;
	display: block;
	object-fit: contain;
	object-position: center;
}
.rt-quick-label {
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.rt-quick-links a:hover .rt-quick-icon,
.rt-quick-links a:focus-visible .rt-quick-icon {
	background: rgba(232, 96, 26, 0.16);
	transform: translateY(-1px);
}


.rt-section { padding: 58px 0; border-top: 1px solid var(--rt-line); }
.rt-section:nth-of-type(even) { background: var(--rt-soft); }
.rt-section-head {
	margin-bottom: 24px;
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 18px;
}
.rt-section-head h2,
.rt-custom-copy h2,
.rt-trust-card h2 {
	margin: 0;
	color: var(--rt-ink);
	font-size: clamp(24px, 3vw, 34px);
	font-weight: 800;
	line-height: 1.18;
	letter-spacing: -0.035em;
}
.rt-section-head > a { color: var(--rt-primary); font-size: 14px; font-weight: 800; text-decoration: none; white-space: nowrap; }

.rt-iconic-track,
.rt-package-track,
.rt-rental-track {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	padding: 2px 2px 14px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.rt-iconic-track::-webkit-scrollbar,
.rt-package-track::-webkit-scrollbar,
.rt-rental-track::-webkit-scrollbar { display: none; }

.rt-iconic-card {
	position: relative;
	width: min(430px, 76vw);
	aspect-ratio: 1.25 / 1;
	flex: 0 0 min(430px, 76vw);
	overflow: hidden;
	border-radius: 17px;
	background: #dce5ef;
	color: #fff;
	scroll-snap-align: start;
	text-decoration: none;
	isolation: isolate;
}
.rt-iconic-card::after { content: ""; position: absolute; z-index: 1; inset: 45% 0 0; background: linear-gradient(180deg, transparent, rgba(9,18,30,.75)); }
.rt-iconic-card > span:last-child { position: absolute; z-index: 2; right: 18px; bottom: 18px; left: 18px; overflow: hidden; font-size: clamp(22px, 4vw, 32px); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 2px 8px rgba(0,0,0,.3); }
.rt-cover-image,
.rt-image-placeholder { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .26s ease; }
.rt-image-placeholder { display: grid; place-items: center; background: linear-gradient(145deg,#dce7f2,#f4d6c8); color: rgba(24,41,71,.35); font-size: 64px; font-weight: 900; }
.rt-iconic-card:hover .rt-cover-image { transform: scale(1.025); }

.rt-package-card {
	width: min(340px, 80vw);
	flex: 0 0 min(340px, 80vw);
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--rt-line);
	border-radius: 16px;
	box-shadow: 0 2px 8px rgba(24,41,71,.04);
	scroll-snap-align: start;
}
.rt-package-image { position: relative; height: 230px; display: block; overflow: hidden; background: #dce5ef; }
.rt-package-badge { position: absolute; top: 12px; left: 12px; padding: 7px 11px; border-radius: 8px; background: #172a4d; color: #fff; font-size: 12px; font-weight: 800; }
.rt-package-body { min-height: 235px; padding: 18px; display: flex; flex-direction: column; }
.rt-card-type { margin: 0 0 7px; color: var(--rt-muted); font-size: 13px; font-weight: 700; }
.rt-package-body h3,
.rt-rental-card h3 { margin: 0; font-size: 18px; line-height: 1.35; }
.rt-package-body h3 a,
.rt-rental-card h3 a { color: var(--rt-ink); text-decoration: none; }
.rt-package-meta { margin: 10px 0 0; color: var(--rt-muted); font-size: 13px; line-height: 1.55; }
.rt-package-footer { margin-top: auto; padding-top: 22px; display: flex; align-items: end; justify-content: space-between; gap: 14px; }
.rt-rating { color: var(--rt-ink); font-size: 13px; font-weight: 700; }
.rt-price { color: #d84b55; font-size: 18px; font-weight: 800; text-align: right; }
.rt-price small { display: block; color: var(--rt-muted); font-size: 10px; font-weight: 600; }

.rt-custom-section { background: #fff !important; }
.rt-custom-card {
	position: relative;
	min-height: 380px;
	overflow: hidden;
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	align-items: center;
	border-radius: 24px;
	background: linear-gradient(135deg, #fff4ef, #fff 58%, #f7f8fa);
	border: 1px solid rgba(232,96,26,.18);
	box-shadow: 0 12px 34px rgba(180,70,10,.10);
}
.rt-custom-art { height: 100%; min-height: 380px; display: grid; place-items: center; overflow: hidden; color: rgba(232,96,26,.56); background: radial-gradient(circle at 40% 30%, #fff 0 12%, transparent 12.5%), linear-gradient(145deg,#ffd9c8,#fff3ed); }
.rt-custom-art svg { width: 115%; max-width: none; }
.rt-custom-copy { padding: 52px; }
.rt-custom-copy p { margin: 16px 0 0; color: var(--rt-muted); }
.rt-custom-actions { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.rt-text-button { border: 0; background: transparent; color: var(--rt-primary); font-weight: 800; cursor: pointer; }

/* Aktivitas berada tepat setelah Kustom Trip, mengikuti urutan prototype. */
.rt-activity-section { background: var(--rt-soft) !important; }
.rt-activity-track {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	padding: 2px 2px 14px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.rt-activity-track::-webkit-scrollbar { display: none; }
.rt-activity-card {
	width: min(340px, 80vw);
	flex: 0 0 min(340px, 80vw);
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--rt-line);
	border-radius: 16px;
	box-shadow: 0 2px 8px rgba(24,41,71,.04);
	scroll-snap-align: start;
}
.rt-activity-image { position: relative; height: 220px; display: block; overflow: hidden; background: #dce5ef; }
.rt-activity-card:hover .rt-cover-image { transform: scale(1.025); }
.rt-activity-badge { position: absolute; z-index: 2; top: 12px; left: 12px; max-width: calc(100% - 24px); padding: 7px 11px; overflow: hidden; border-radius: 8px; background: #172a4d; color: #fff; font-size: 12px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.rt-activity-body { min-height: 240px; padding: 18px; display: flex; flex-direction: column; }
.rt-activity-body h3 { margin: 0; font-size: 18px; line-height: 1.35; }
.rt-activity-body h3 a { color: var(--rt-ink); text-decoration: none; }
.rt-activity-meta { margin: 10px 0 0; color: var(--rt-muted); font-size: 13px; line-height: 1.55; }
.rt-activity-footer { margin-top: auto; padding-top: 22px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rt-activity-add { min-height: 40px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; background: var(--rt-primary); color: #fff; font: inherit; font-size: 12px; font-weight: 800; text-decoration: none; cursor: pointer; white-space: nowrap; }
.rt-activity-add:hover { color: #fff; filter: brightness(.96); }
.rt-activity-add:disabled { opacity: .62; cursor: wait; }
.rt-activity-body .pw-package-message { min-height: 18px; margin-top: 8px; font-size: 12px; }

.rt-rental-card {
	width: min(300px, 76vw);
	flex: 0 0 min(300px, 76vw);
	overflow: hidden;
	border: 1px solid var(--rt-line);
	border-radius: 16px;
	background: #fff;
	scroll-snap-align: start;
}
.rt-rental-image { height: 190px; display: block; overflow: hidden; background: #dce5ef; }
.rt-rental-card > div { padding: 17px; }
.rt-rental-card p { margin: 10px 0 0; color: var(--rt-ink); font-size: 13px; }
.rt-rental-card strong { color: var(--rt-primary); font-size: 16px; }
.rt-rental-card .rt-muted { color: var(--rt-muted); }

.rt-trust-card {
	display: grid;
	grid-template-columns: minmax(0,1fr) minmax(260px,.8fr) auto;
	gap: 36px;
	align-items: center;
	padding: 36px;
	border: 1px solid rgba(232,96,26,.16);
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--rt-shadow);
}
.rt-trust-card ul { margin: 0; padding: 0; display: grid; gap: 15px; list-style: none; }
.rt-trust-card li { position: relative; padding-left: 34px; font-weight: 700; line-height: 1.45; }
.rt-trust-card li::before { content: "✓"; position: absolute; left: 0; top: -4px; color: var(--rt-primary); font-size: 25px; font-weight: 900; }
.rt-trust-score { min-width: 125px; text-align: center; }
.rt-trust-score span { display: block; color: #83cf3b; letter-spacing: 2px; }
.rt-trust-score strong { display: block; margin-top: 6px; font-size: 34px; }
.rt-trust-score small { color: var(--rt-muted); }

.rt-attraction-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0 30px; }
.rt-attraction-grid a { min-width: 0; padding: 17px 0; border-bottom: 1px solid var(--rt-line); color: var(--rt-ink); text-decoration: none; }
.rt-attraction-grid strong,
.rt-attraction-grid span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rt-attraction-grid strong { font-size: 15px; }
.rt-attraction-grid span { margin-top: 5px; color: var(--rt-muted); font-size: 12px; }

.rt-site-info { padding: 22px 0; background: #f3f4f6; border-top: 1px solid var(--rt-line); }
.rt-site-info-inner details { border-bottom: 1px solid #dfe3e8; }
.rt-site-info-inner summary { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--rt-ink); font-size: 17px; font-weight: 700; cursor: pointer; list-style: none; }
.rt-site-info-inner summary::-webkit-details-marker { display: none; }
.rt-site-info-inner summary::after { content: "+"; font-size: 24px; font-weight: 400; }
.rt-site-info-inner details[open] summary::after { content: "−"; }
.rt-site-info-inner details div { padding: 0 0 17px; display: grid; gap: 7px; }
.rt-site-info-inner details a { color: #314c43; font-size: 14px; font-weight: 700; }

.rt-footer { padding: 36px 0 96px; background: #eceff2; color: #4d5867; }
.rt-footer-inner { display: grid; grid-template-columns: 1fr auto; gap: 26px; align-items: start; }
.rt-footer-brand span { color: var(--rt-brand); font-family: Arial Black, Arial, sans-serif; font-size: 22px; font-weight: 900; text-transform: uppercase; }
.rt-footer-brand p { max-width: 560px; margin: 10px 0 0; font-size: 13px; }
.rt-footer .pw-footer-nav ul { margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 18px; list-style: none; }
.rt-footer .pw-footer-nav a { color: #314c43; font-size: 13px; font-weight: 800; }
.rt-footer-copy { grid-column: 1 / -1; margin: 0; font-size: 12px; }

.rt-bottom-nav {
	position: fixed;
	z-index: 900;
	bottom: 0;
	left: 50%;
	width: min(100%, 760px);
	min-height: 66px;
	padding-bottom: env(safe-area-inset-bottom);
	display: none;
	grid-template-columns: repeat(4,1fr);
	transform: translateX(-50%);
	background: rgba(255,255,255,.98);
	border-top: 1px solid rgba(24,41,71,.1);
	box-shadow: 0 -8px 22px rgba(24,41,71,.07);
}
.rt-bottom-nav a,
.rt-bottom-nav button { min-width: 0; min-height: 64px; padding: 7px 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border: 0; background: transparent; color: #687080; font-size: 10px; font-weight: 700; text-decoration: none; cursor: pointer; }
.rt-bottom-nav a:hover,
.rt-bottom-nav button:hover { color: var(--rt-primary); }
.rt-bottom-icon-wrap { position: relative; display: inline-grid; place-items: center; }
.rt-bottom-icon-wrap b { position: absolute; top: -8px; right: -12px; min-width: 17px; height: 17px; padding: 0 4px; display: grid; place-items: center; border-radius: 999px; background: var(--rt-brand); color: #fff; font-size: 9px; }

@media (max-width: 900px) {
	.rt-desktop-nav { display: none; }
	.rt-custom-card { grid-template-columns: 1fr; }
	.rt-custom-art { min-height: 250px; }
	.rt-custom-copy { padding: 34px; }
	.rt-trust-card { grid-template-columns: 1fr 1fr; }
	.rt-trust-score { grid-column: 1 / -1; }
	.rt-attraction-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 600px) {
	body.pisang-wisata-theme { background: #fff; }
	.rt-site { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
	.admin-bar .rt-navbar { top: 46px; }
	.rt-navbar,
	.rt-navbar-inner { min-height: 64px; }
	.rt-navbar-inner { width: calc(100% - 30px); gap: 7px; }
	.rt-brand-wordmark { max-width: 150px; font-size: 20px; }
	.rt-brand-logo { max-width: 145px; height: 37px; }
	.rt-nav-actions { gap: 3px; }
	.rt-icon-button,
	.rt-nav-actions .pw-my-trip-trigger { width: 36px; height: 36px; min-height: 36px; }
	.rt-icon-button svg { width: 24px; height: 24px; }
	.rt-home .pw-container { width: calc(100% - 34px); }
	.rt-hero { padding: 40px 0 50px; }
	.rt-hero h1 { max-width: 330px; font-size: 30px; letter-spacing: -1.15px; }
	.rt-search { height: 56px; margin-top: 28px; }
	.rt-search input { padding: 0 12px; font-size: 14px; }
	.rt-search button { min-height: 44px; padding: 0 18px; font-size: 14px; }
	.rt-quick-links { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
	.rt-quick-links a { min-height: 66px; padding: 9px 4px; font-size: 9px; }
	.rt-quick-icon { width: 34px; height: 34px; border-radius: 11px; }
	.rt-quick-icon svg, .rt-quick-icon img { width: 21px; height: 21px; }
	.rt-section { padding: 38px 0; }
	.rt-section-head { margin-bottom: 20px; }
	.rt-section-head h2,
	.rt-custom-copy h2,
	.rt-trust-card h2 { font-size: 23px; }
	.rt-section-head > a { font-size: 12px; }
	.rt-iconic-card { width: 100%; flex-basis: 100%; aspect-ratio: 1 / .82; }
	.rt-package-card,
	.rt-activity-card { width: 78vw; flex-basis: 78vw; }
	.rt-package-image,
	.rt-activity-image { height: 48vw; }
	.rt-custom-card { min-height: 0; border-radius: 18px; }
	.rt-custom-art { min-height: 210px; }
	.rt-custom-copy { padding: 26px 22px 30px; }
	.rt-custom-actions { align-items: stretch; flex-direction: column; }
	.rt-primary-button { width: 100%; }
	.rt-rental-card { width: 74vw; flex-basis: 74vw; }
	.rt-trust-card { grid-template-columns: 1fr; gap: 24px; padding: 24px 20px; }
	.rt-trust-score { grid-column: auto; text-align: left; }
	.rt-attraction-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; }
	.rt-footer { padding-bottom: 90px; }
	.rt-footer-inner { grid-template-columns: 1fr; }
	.rt-bottom-nav { display: grid; }
	.rt-my-trip-dialog { width: 100%; margin: auto 0 0; max-height: 86dvh; border-radius: 22px 22px 0 0; }
}

@media (max-width: 360px) {
	.rt-home .pw-container,
	.rt-navbar-inner { width: calc(100% - 28px); }
	.rt-brand-wordmark { max-width: 125px; font-size: 18px; }
	.rt-hero h1 { font-size: 27px; }
	.rt-search button { padding-inline: 14px; }
	.rt-quick-links a { font-size: 8px; }
	.rt-attraction-grid { grid-template-columns: 1fr; }
}

/* ========================================================================== 
   Batch 17 · prototype-faithful activity and rental cards
   ========================================================================== */
html,
body.pisang-wisata-theme {
	background: #eceff2;
}

body.pisang-wisata-theme,
body.pisang-wisata-theme button,
body.pisang-wisata-theme input,
body.pisang-wisata-theme select,
body.pisang-wisata-theme textarea {
	font-family: "Plus Jakarta Sans", Arial, sans-serif;
}

.rt-site,
.rt-home {
	background: #ffffff;
}

.rt-navbar {
	background: #ffffff;
}

.rt-hero {
	background: linear-gradient(180deg, #f4f6f8 0%, #f8f9fa 72%, #ffffff 100%);
}

.rt-custom-section,
.rt-rental-section,
.rt-iconic,
.rt-attraction-list {
	background: #ffffff !important;
}

.rt-package-section,
.rt-activity-section,
.rt-trust-section {
	background: #f5f6f8 !important;
}

.rt-section {
	border-color: #e1e5ea;
}

/* Aktivitas memakai komposisi kartu yang sama dengan prototype: foto besar,
   badge kiri, tombol My Trip bulat kanan, body panjang, dan harga di kanan. */
.rt-activity-track {
	gap: 18px;
	padding: 0 2px 14px;
}

.rt-activity-card {
	position: relative;
	width: 314px;
	flex: 0 0 314px;
	overflow: hidden;
	color: var(--rt-ink);
	background: #ffffff;
	border: 1px solid #e4e7ec;
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(24, 41, 71, 0.03);
	scroll-snap-align: start;
}

.rt-activity-image {
	position: relative;
	height: 210px;
	overflow: hidden;
	background: #dce5ef;
}

.rt-activity-image > a {
	width: 100%;
	height: 100%;
	display: block;
}

.rt-activity-image .rt-cover-image,
.rt-activity-image .rt-image-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rt-activity-badge {
	position: absolute;
	z-index: 2;
	top: 12px;
	left: 12px;
	max-width: calc(100% - 76px);
	padding: 8px 11px;
	overflow: hidden;
	color: #ffffff;
	background: #172a4d;
	border-radius: 7px;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.2px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rt-activity-add {
	position: absolute;
	z-index: 3;
	top: 10px;
	right: 10px;
	width: 42px;
	height: 42px;
	min-height: 42px;
	padding: 0;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 999px;
	color: var(--rt-ink);
	background: #ffffff;
	box-shadow: 0 2px 7px rgba(24, 41, 71, 0.12);
	font-size: 0;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.rt-activity-add::before {
	content: "+";
	display: block;
	font-family: Arial, sans-serif;
	font-size: 27px;
	font-weight: 400;
	line-height: 1;
	transform: translateY(-1px);
}

.rt-activity-add:hover,
.rt-activity-add:focus-visible {
	color: var(--rt-primary);
	background: #ffffff;
	filter: none;
	transform: translateY(-1px);
}

.rt-activity-add:disabled {
	opacity: 0.62;
	cursor: wait;
}

.rt-activity-body {
	min-height: 255px;
	padding: 18px 17px 16px;
	display: flex;
	flex-direction: column;
}

.rt-activity-body .rt-card-type {
	margin: 0 0 8px;
	color: #666d7c;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
}

.rt-activity-body h3 {
	margin: 0;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.42;
	letter-spacing: -0.55px;
}

.rt-activity-body h3 a {
	color: var(--rt-ink);
	text-decoration: none;
}

.rt-activity-meta {
	margin: 12px 0 0;
	color: var(--rt-ink);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: -0.15px;
}

.rt-activity-footer {
	margin-top: auto;
	padding-top: 24px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
}

.rt-activity-note {
	margin: 0;
	color: var(--rt-ink);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
}

.rt-activity-price {
	margin-left: auto;
	text-align: right;
}

.rt-activity-price span {
	display: block;
	margin-bottom: 2px;
	color: #626978;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.25;
}

.rt-activity-price strong {
	display: inline;
	color: #d84b55;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.45px;
	white-space: nowrap;
}

.rt-activity-price small {
	display: block;
	margin-top: 2px;
	color: #626978;
	font-size: 10px;
	font-weight: 600;
}

.rt-activity-body .pw-package-message {
	min-height: 16px;
	margin-top: 7px;
	font-size: 11px;
}

/* Rental mengikuti kartu foto penuh di prototype. Semua kendaraan tetap bisa
   digeser, tetapi setiap kartu memakai overlay dan hierarki visual yang sama. */
.rt-rental-track {
	gap: 16px;
	padding: 0 2px 14px;
}

.rt-rental-card {
	position: relative;
	width: 430px;
	max-width: 100%;
	aspect-ratio: 1 / 0.72;
	flex: 0 0 430px;
	overflow: hidden;
	color: #ffffff;
	background: #dce5ef;
	border: 0;
	border-radius: 14px;
	box-shadow: none;
	scroll-snap-align: start;
	text-decoration: none;
	isolation: isolate;
}

.rt-rental-card::after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 33% 0 0;
	background: linear-gradient(180deg, transparent 0%, rgba(8, 15, 19, 0.15) 26%, rgba(8, 15, 19, 0.82) 100%);
	pointer-events: none;
}

.rt-rental-image {
	position: absolute;
	inset: 0;
	height: 100%;
	display: block;
	overflow: hidden;
	background: #dce5ef;
}

.rt-rental-image .rt-cover-image,
.rt-rental-image .rt-image-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 54%;
	transition: transform 260ms ease;
}

.rt-rental-card:hover .rt-cover-image {
	transform: scale(1.025);
}

.rt-rental-content {
	position: absolute;
	z-index: 2;
	right: 16px;
	bottom: 59px;
	left: 16px;
	padding: 0;
	color: #ffffff;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.38);
}

.rt-rental-type {
	position: absolute;
	left: 0;
	bottom: calc(100% + 13px);
	margin: 0;
	padding: 7px 10px;
	color: #ffffff;
	background: rgba(17, 32, 55, 0.82);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.1px;
	text-shadow: none;
	backdrop-filter: blur(5px);
}

.rt-rental-card h3 {
	max-width: 93%;
	margin: 0;
	display: -webkit-box;
	overflow: hidden;
	color: #ffffff;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.7px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.rt-rental-meta {
	margin: 7px 0 0;
	overflow: hidden;
	color: rgba(255, 255, 255, 0.88);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -0.2px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rt-rental-footer {
	position: absolute;
	z-index: 2;
	right: 16px;
	bottom: 15px;
	left: 16px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	color: #ffffff;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.38);
}

.rt-rental-note {
	margin: 0;
	color: rgba(255, 255, 255, 0.92);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
}

.rt-rental-price {
	margin-left: auto;
	text-align: right;
}

.rt-rental-price span {
	display: block;
	margin-bottom: 1px;
	color: rgba(255, 255, 255, 0.72);
	font-size: 10px;
	font-weight: 600;
	line-height: 1.2;
}

.rt-rental-price strong {
	display: block;
	color: #ffffff;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.45px;
	white-space: nowrap;
}

.rt-rental-price small {
	display: block;
	margin-top: 2px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 10px;
	font-weight: 600;
}

@media (max-width: 600px) {
	.rt-activity-card {
		width: 73vw;
		flex-basis: 73vw;
	}

	.rt-activity-image {
		height: 48.8vw;
	}

	.rt-activity-body {
		min-height: 255px;
	}

	.rt-rental-card {
		width: 100%;
		max-width: none;
		flex-basis: 100%;
		aspect-ratio: 1 / 0.72;
	}
}

@media (max-width: 360px) {
	.rt-activity-card {
		width: 76vw;
		flex-basis: 76vw;
	}

	.rt-rental-card {
		aspect-ratio: 1 / 0.74;
	}

	.rt-rental-content {
		right: 13px;
		bottom: 57px;
		left: 13px;
	}

	.rt-rental-card h3 {
		font-size: 18px;
	}

	.rt-rental-footer {
		right: 13px;
		bottom: 13px;
		left: 13px;
	}

	.rt-rental-price strong {
		font-size: 16px;
	}
}

/* ========================================================================== 
   Batch 18 · activity cards mirror package cards
   ========================================================================== */
/* The activity card intentionally shares the exact outer geometry of the
   "Jelajahi paket liburan pilihan" card. The image starts at the card edge,
   without the generic .pw-card padding that previously created a white frame. */
.rt-activity-card {
	width: min(340px, 80vw);
	flex: 0 0 min(340px, 80vw);
	padding: 0;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid var(--rt-line);
	border-radius: 16px;
	box-shadow: 0 2px 8px rgba(24, 41, 71, 0.04);
	scroll-snap-align: start;
}

.rt-activity-image {
	position: relative;
	width: 100%;
	height: 230px;
	margin: 0;
	overflow: hidden;
	background: #dce5ef;
	border-radius: 0;
}

.rt-activity-image > a,
.rt-activity-image .rt-cover-image,
.rt-activity-image .rt-image-placeholder {
	width: 100%;
	height: 100%;
	display: block;
	margin: 0;
	border-radius: 0;
}

.rt-activity-image .rt-cover-image {
	object-fit: cover;
}

.rt-activity-body {
	min-height: 235px;
	padding: 18px;
}

@media (max-width: 600px) {
	.rt-activity-card {
		width: 78vw;
		flex-basis: 78vw;
	}

	.rt-activity-image {
		height: 48vw;
	}

	.rt-activity-body {
		min-height: 235px;
	}
}

@media (max-width: 360px) {
	.rt-activity-card {
		width: 78vw;
		flex-basis: 78vw;
	}
}



/* ========================================================================== 
   Batch 19 · separate destinations and activities
   ========================================================================== */
html,
body {
	background: #eceff2;
	font-family: "Plus Jakarta Sans", Arial, sans-serif;
}

/* Activity cards are photographic products. Every word placed over the image
   stays white and receives a dark lower gradient for contrast. */
.rt-activity-card {
	position: relative;
	width: min(340px, 80vw);
	aspect-ratio: 3 / 4;
	flex: 0 0 min(340px, 80vw);
	padding: 0;
	overflow: hidden;
	color: #ffffff;
	background: #dce5ef;
	border: 0;
	border-radius: 16px;
	box-shadow: 0 4px 16px rgba(24, 41, 71, 0.10);
	isolation: isolate;
}

.rt-activity-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: inherit;
	background: #dce5ef;
}

.rt-activity-image::after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 28% 0 0;
	background: linear-gradient(180deg, transparent 0%, rgba(7, 14, 24, 0.18) 25%, rgba(7, 14, 24, 0.90) 100%);
	pointer-events: none;
}

.rt-activity-photo-link,
.rt-activity-photo-link .rt-cover-image,
.rt-activity-photo-link .rt-image-placeholder {
	width: 100%;
	height: 100%;
	display: block;
	border-radius: inherit;
}

.rt-activity-photo-link .rt-cover-image {
	object-fit: cover;
	transition: transform 260ms ease;
}

.rt-activity-card:hover .rt-cover-image {
	transform: scale(1.025);
}

.rt-activity-badge {
	position: absolute;
	z-index: 3;
	top: 14px;
	left: 14px;
	max-width: calc(100% - 76px);
	padding: 8px 11px;
	overflow: hidden;
	color: #ffffff;
	background: rgba(23, 42, 77, 0.86);
	border: 1px solid rgba(255, 255, 255, 0.20);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	text-overflow: ellipsis;
	white-space: nowrap;
	backdrop-filter: blur(6px);
}

.rt-activity-add {
	position: absolute;
	z-index: 4;
	top: 12px;
	right: 12px;
	width: 42px;
	height: 42px;
	padding: 0;
	display: grid;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 999px;
	color: #182947;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 4px 12px rgba(7, 14, 24, 0.18);
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.rt-activity-overlay {
	position: absolute;
	z-index: 2;
	right: 16px;
	bottom: 15px;
	left: 16px;
	color: #ffffff;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.46);
}

.rt-activity-overlay .rt-card-type,
.rt-activity-overlay h3,
.rt-activity-overlay h3 a,
.rt-activity-overlay .rt-activity-meta,
.rt-activity-overlay .rt-activity-note,
.rt-activity-overlay .rt-activity-price span,
.rt-activity-overlay .rt-activity-price strong,
.rt-activity-overlay .rt-activity-price small,
.rt-activity-overlay .pw-package-message {
	color: #ffffff;
}

.rt-activity-overlay .rt-card-type {
	margin: 0 0 7px;
	font-size: 11px;
	font-weight: 700;
	opacity: 0.86;
}

.rt-activity-overlay h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.27;
	letter-spacing: -0.65px;
}

.rt-activity-overlay h3 a { text-decoration: none; }
.rt-activity-overlay .rt-activity-meta {
	margin: 8px 0 0;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.45;
	opacity: 0.90;
}

.rt-activity-overlay .rt-activity-footer {
	margin-top: 18px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
}

.rt-activity-overlay .rt-activity-note {
	margin: 0;
	max-width: 48%;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.3;
	opacity: 0.86;
}

.rt-activity-overlay .rt-activity-price {
	margin-left: auto;
	text-align: right;
}

.rt-activity-overlay .rt-activity-price span,
.rt-activity-overlay .rt-activity-price small {
	display: block;
	font-size: 10px;
	font-weight: 600;
	opacity: 0.78;
}

.rt-activity-overlay .rt-activity-price strong {
	display: block;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.18;
	white-space: nowrap;
}

.rt-activity-overlay .pw-package-message {
	min-height: 14px;
	margin-top: 6px;
	font-size: 11px;
}

.pw-related-activity-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 10px;
}

.pw-related-activity-grid a {
	padding: 12px 14px;
	border: 1px solid var(--pw-line);
	border-radius: 12px;
	font-weight: 750;
	text-decoration: none;
}

@media (max-width: 600px) {
	.rt-activity-card {
		width: 78vw;
		flex-basis: 78vw;
	}
	.rt-activity-overlay h3 { font-size: 18px; }
}

/* ==========================================================================
   Batch 20 · rental overlay text contrast hotfix
   ========================================================================== */
/* Legacy rules such as `.rt-rental-card p` carried a dark ink color with
   higher specificity than the photographic rental-card selectors. Keep every
   label placed over the image white, while retaining softer white for meta. */
.rt-rental-card,
.rt-rental-card:link,
.rt-rental-card:visited,
.rt-rental-card:hover,
.rt-rental-card:focus-visible {
	color: #ffffff;
}

.rt-rental-card .rt-rental-content,
.rt-rental-card .rt-rental-content h3,
.rt-rental-card .rt-rental-content p,
.rt-rental-card .rt-rental-footer,
.rt-rental-card .rt-rental-footer p,
.rt-rental-card .rt-rental-price strong {
	color: #ffffff;
}

.rt-rental-card .rt-rental-type {
	color: #ffffff;
}

.rt-rental-card .rt-rental-meta,
.rt-rental-card .rt-rental-note {
	color: rgba(255, 255, 255, 0.92);
}

.rt-rental-card .rt-rental-price span,
.rt-rental-card .rt-rental-price small {
	color: rgba(255, 255, 255, 0.78);
}



/* ================================================================
   Batch 21 · activity CTA is icon-only
   ================================================================ */
.rt-activity-card .rt-activity-add {
	font-size: 0 !important;
}

.rt-activity-card .rt-activity-add::before {
	content: none !important;
}

.rt-activity-card .rt-activity-plus-icon {
	width: 24px;
	height: 24px;
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.25;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.rt-activity-overlay .rt-activity-footer {
	justify-content: flex-end;
}


/* ================================================================
   Batch 22 · orange activity plus and 20-place destination list
   ================================================================ */
.rt-activity-card .rt-activity-add,
.rt-activity-card .rt-activity-add:hover,
.rt-activity-card .rt-activity-add:focus-visible,
.rt-activity-card .rt-activity-add:active {
	color: #e8601a !important;
	background: #ffffff !important;
	border-color: rgba(232, 96, 26, 0.24) !important;
}

.rt-activity-card .rt-activity-plus-icon {
	stroke: #e8601a !important;
	color: #e8601a !important;
}


/* ================================================================
   Batch 23 · robust visible orange plus icon
   ================================================================ */
.rt-activity-card .rt-activity-plus-icon {
	position: relative;
	width: 22px;
	height: 22px;
	display: block;
	flex: 0 0 22px;
	color: #e8601a !important;
}

.rt-activity-card .rt-activity-plus-icon::before,
.rt-activity-card .rt-activity-plus-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	border-radius: 999px;
	background: #e8601a !important;
	transform: translate(-50%, -50%);
}

.rt-activity-card .rt-activity-plus-icon::before {
	width: 16px;
	height: 3px;
}

.rt-activity-card .rt-activity-plus-icon::after {
	width: 3px;
	height: 16px;
}


/* ================================================================
   Batch 24 · mobile-safe activity plus icon
   ================================================================ */
.rt-activity-card .rt-activity-add {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: grid !important;
	place-items: center !important;
	background: #ffffff !important;
	color: #e8601a !important;
	-webkit-text-fill-color: #e8601a !important;
	opacity: 1;
}

.rt-activity-card .rt-activity-add::before,
.rt-activity-card .rt-activity-add::after,
.rt-activity-card .rt-activity-plus-icon::before,
.rt-activity-card .rt-activity-plus-icon::after {
	content: none !important;
	display: none !important;
}

.rt-activity-card svg.rt-activity-plus-icon {
	width: 24px !important;
	height: 24px !important;
	display: block !important;
	overflow: visible !important;
	color: #e8601a !important;
	fill: none !important;
	stroke: #e8601a !important;
	opacity: 1 !important;
	pointer-events: none;
}

.rt-activity-card svg.rt-activity-plus-icon path {
	fill: none !important;
	stroke: #e8601a !important;
	stroke-width: 2.8 !important;
	stroke-linecap: round !important;
	opacity: 1 !important;
}

@media (max-width: 600px) {
	.rt-activity-card .rt-activity-add,
	.rt-activity-card .rt-activity-add:hover,
	.rt-activity-card .rt-activity-add:focus,
	.rt-activity-card .rt-activity-add:active,
	.rt-activity-card .rt-activity-add:disabled {
		width: 42px !important;
		height: 42px !important;
		min-height: 42px !important;
		background: #ffffff !important;
		color: #e8601a !important;
		-webkit-text-fill-color: #e8601a !important;
		opacity: 1 !important;
	}

	.rt-activity-card svg.rt-activity-plus-icon,
	.rt-activity-card svg.rt-activity-plus-icon path {
		visibility: visible !important;
		display: block !important;
		stroke: #e8601a !important;
		opacity: 1 !important;
	}
}

/* Batch 04: mobile-first public package detail and 24-hour guest checkout. */
.pw-package-detail{max-width:900px;margin-inline:auto;padding-bottom:92px}.pw-package-detail .pw-entry-media{overflow:hidden;border-radius:0 0 28px 28px;max-height:520px}.pw-package-detail .pw-entry-media img{width:100%;height:clamp(260px,48vw,520px);object-fit:cover}.pw-package-detail .pw-entry-body{position:relative;margin-top:-42px}.pw-package-detail .pw-content-header{position:relative;z-index:2;padding:24px;border:1px solid var(--pw-line);border-radius:24px;background:var(--pw-surface);box-shadow:0 18px 48px rgba(15,23,42,.09)}.pw-package-detail .pw-entry-title{font-size:clamp(30px,6vw,52px);line-height:1.08}.pw-package-detail>.pw-entry-body>.pw-card{border-radius:20px}.pw-package-checkout-intro{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:24px;padding:22px;border:1px solid #bfdbfe;border-radius:20px;background:linear-gradient(135deg,#eff6ff,#fff)}.pw-package-checkout-intro h2{margin:4px 0 7px;font-size:24px}.pw-package-checkout-intro p{margin:0;color:var(--pw-muted)}.pw-package-kicker{display:inline-block;color:#2563eb;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.pw-package-sticky-booking{position:fixed;left:50%;bottom:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(900px,calc(100% - 24px));padding:12px 14px 12px 18px;border:1px solid rgba(203,213,225,.9);border-bottom:0;border-radius:20px 20px 0 0;background:rgba(255,255,255,.96);box-shadow:0 -18px 50px rgba(15,23,42,.16);backdrop-filter:blur(16px);transform:translateX(-50%)}.pw-package-sticky-booking span{display:block;color:#64748b;font-size:11px;font-weight:700}.pw-package-sticky-booking strong{display:block;color:#0f172a;font-size:17px}.pw-booking-sheet{width:min(620px,100%);max-width:none;height:auto;max-height:92dvh;margin:auto auto 0;padding:0;border:0;border-radius:28px 28px 0 0;background:transparent;overflow:visible}.pw-booking-sheet::backdrop{background:rgba(15,23,42,.52);backdrop-filter:blur(3px)}.pw-booking-sheet-card{display:flex;flex-direction:column;max-height:92dvh;border:1px solid #e2e8f0;border-bottom:0;border-radius:28px 28px 0 0;background:#fff;box-shadow:0 -24px 70px rgba(15,23,42,.24);overflow:hidden}.pw-booking-handle{width:48px;height:5px;margin:10px auto 0;border-radius:99px;background:#cbd5e1}.pw-booking-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 20px 14px;border-bottom:1px solid #eef2f7}.pw-booking-sheet-head h2{margin:3px 0 0;font-size:20px;line-height:1.2}.pw-booking-close{display:grid;place-items:center;width:38px;height:38px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;color:#64748b;font-size:25px;cursor:pointer}.pw-booking-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:12px 20px;background:#f8fafc}.pw-booking-progress span{padding:7px 8px;border-radius:999px;background:#e2e8f0;color:#94a3b8;font-size:10px;font-weight:800;text-align:center}.pw-booking-progress span.is-active{background:#dbeafe;color:#1d4ed8}.pw-booking-sheet form{display:flex;flex:1;min-height:0;flex-direction:column}.pw-booking-sheet-body{flex:1;min-height:0;padding:18px 20px 26px;overflow:auto;-webkit-overflow-scrolling:touch}.pw-booking-step h3{margin:0 0 14px;font-size:20px}.pw-booking-note{margin:-7px 0 16px;color:#64748b;font-size:13px}.pw-booking-sheet .pw-form-grid{gap:13px}.pw-booking-sheet label span{display:block;margin-bottom:6px;color:#334155;font-size:12px;font-weight:800}.pw-booking-sheet input,.pw-booking-sheet select,.pw-booking-sheet textarea{width:100%;min-height:46px;border:1px solid #dbe2ea;border-radius:13px;background:#fff;padding:10px 12px;color:#0f172a;font:inherit}.pw-booking-sheet textarea{min-height:86px;resize:vertical}.pw-booking-sheet input:focus,.pw-booking-sheet select:focus,.pw-booking-sheet textarea:focus{outline:3px solid rgba(37,99,235,.12);border-color:#2563eb}.pw-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.pw-booking-sheet-foot{position:sticky;bottom:0;padding:10px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #e2e8f0;background:#fff}.pw-booking-actions{display:flex;justify-content:flex-end;gap:10px}.pw-booking-actions .pw-button{min-width:132px}.pw-package-message{min-height:20px;margin-bottom:6px;font-size:12px}.pw-package-message[data-type=error]{color:#b91c1c}.pw-package-message[data-type=success]{color:#047857}.pw-package-message[data-type=info]{color:#64748b}.pw-payment-plan{display:grid;gap:10px;margin-top:14px}.pw-payment-plan label{display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid #e2e8f0;border-radius:15px;cursor:pointer}.pw-payment-plan label:has(input:checked){border-color:#60a5fa;background:#eff6ff}.pw-payment-plan input{width:18px;min-height:18px;margin-top:2px}.pw-payment-plan span{margin:0}.pw-payment-plan strong,.pw-payment-plan small{display:block}.pw-payment-plan small{margin-top:3px;color:#64748b;font-weight:500}.pw-terms-check{display:flex!important;align-items:flex-start;gap:10px;margin-top:16px;padding:13px;border-radius:14px;background:#f8fafc}.pw-terms-check input{width:18px;min-height:18px;margin-top:2px}.pw-terms-check span{margin:0!important;font-weight:600!important}.pw-review-summary{padding:15px;border:1px solid #dbeafe;border-radius:16px;background:#f8fbff}.pw-review-summary h4{margin:0 0 12px}.pw-price-lines{display:grid;grid-template-columns:1fr auto;gap:8px 14px;margin:0}.pw-price-lines dt{color:#64748b}.pw-price-lines dd{margin:0;color:#334155;font-weight:800;text-align:right}.pw-price-total{display:flex;justify-content:flex-end;margin:14px 0 0;padding-top:12px;border-top:1px solid #dbeafe;color:#0f172a;font-size:19px;font-weight:900}.pw-price-due{margin:6px 0 0;color:#2563eb;font-weight:900;text-align:right}.pw-booking-success{text-align:center;padding:22px 10px}.pw-success-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:#dcfce7;color:#15803d;font-size:32px;font-weight:900}.pw-order-code{display:inline-block;margin:12px 0;padding:11px 16px;border:1px dashed #60a5fa;border-radius:12px;background:#eff6ff;color:#1d4ed8;font:900 18px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}.pw-booking-open{overflow:hidden}
@media(max-width:700px){.pw-package-detail .pw-entry-body{margin-top:-28px;padding-inline:12px}.pw-package-detail .pw-content-header{padding:18px;border-radius:20px}.pw-package-checkout-intro{align-items:stretch;flex-direction:column}.pw-package-sticky-booking{width:100%;border-radius:18px 18px 0 0}.pw-package-sticky-booking .pw-button{padding-inline:16px}.pw-booking-sheet{width:100%;max-height:94dvh}.pw-booking-sheet-card{max-height:94dvh}.pw-booking-progress{padding-inline:12px}.pw-booking-sheet-head,.pw-booking-sheet-body,.pw-booking-sheet-foot{padding-left:16px;padding-right:16px}.pw-booking-sheet .pw-form-grid{grid-template-columns:1fr}.pw-booking-actions .pw-button{flex:1;min-width:0}}


/* ================================================================
 * RajaTrip-inspired Paket Wisata detail + booking sheet, Batch 05.
 * Visual layer only. Pricing, quota, workflow and persistence remain
 * authoritative in Pisang Wisata Module and Pisang Core.
 * ================================================================ */
body.single-pisang_trip_package{margin:0;background:#e5e7eb;color:#0f172a}.single-pisang_trip_package .pw-site-header,.single-pisang_trip_package .pw-site-footer{display:none}.single-pisang_trip_package .pw-main{padding:0}.single-pisang_trip_package .pw-container{width:100%;max-width:none;padding:0}.rt-package-app{width:100%;max-width:430px;min-height:100vh;margin:0 auto 96px;background:#f8f9fa;box-shadow:0 0 40px rgba(15,23,42,.24);overflow:hidden}.rt-package-hero{position:relative;height:260px;overflow:hidden;border-radius:0 0 28px 28px;background:#e2e8f0}.rt-package-hero>img{width:100%;height:100%;object-fit:cover}.rt-package-hero-placeholder{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,#dbeafe,#93c5fd);color:#1e3a8a;font-size:24px;font-weight:800}.rt-package-hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(15,23,42,.20),transparent 52%,rgba(15,23,42,.16))}.rt-package-hero-actions{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:16px}.rt-package-hero-actions>div{display:flex;gap:12px}.rt-round-action{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.20);color:#fff;text-decoration:none;font-size:21px;font-weight:800;backdrop-filter:blur(12px);cursor:pointer}.rt-round-action.is-solid{background:#fff;color:#ef4444;box-shadow:0 3px 12px rgba(15,23,42,.12)}.rt-round-action.is-active{background:#fee2e2;color:#dc2626}.rt-gallery-dots{position:absolute;bottom:20px;left:0;right:0;z-index:3;display:flex;justify-content:center;gap:8px}.rt-gallery-dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.55);cursor:pointer;transition:.2s}.rt-gallery-dots button.is-active{width:24px;background:#fff}.rt-package-content{position:relative;z-index:4;margin-top:-32px;padding:0 20px 28px}.rt-package-title-card{padding:20px;border:1px solid #f1f5f9;border-radius:18px;background:#fff;box-shadow:0 4px 20px rgba(0,0,0,.05)}.rt-package-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rt-package-title-row h1{margin:0;color:#0f172a;font-family:Georgia,'Times New Roman',serif;font-size:28px;line-height:1.15}.rt-duration-badge{flex:none;margin-top:4px;padding:7px 10px;border-radius:9px;background:#eff6ff;color:#2563eb;font-size:12px;font-weight:800}.rt-package-meta{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px;color:#64748b;font-size:13px;font-weight:500}.rt-package-price-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid #f1f5f9}.rt-package-price-row small,.rt-package-price-row strong,.rt-package-price-row em{display:block}.rt-package-price-row small{margin-bottom:3px;color:#64748b;font-size:12px}.rt-package-price-row strong{color:#2563eb;font-size:23px;line-height:1.15}.rt-package-price-row em{display:inline;color:#64748b;font-size:11px;font-style:normal;font-weight:500}.rt-seat-badge{padding:7px 10px;border-radius:9px;background:#fef2f2;color:#dc2626;font-size:11px;font-weight:800}.rt-package-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0 28px}.rt-package-metrics>div{padding:12px 8px;border:1px solid #f1f5f9;border-radius:13px;background:#fff;text-align:center;box-shadow:0 2px 8px rgba(15,23,42,.04)}.rt-package-metrics strong,.rt-package-metrics span{display:block}.rt-package-metrics strong{color:#2563eb;font-size:18px}.rt-package-metrics span{margin-top:2px;color:#64748b;font-size:10px;font-weight:700}.rt-package-section{margin-bottom:32px}.rt-package-section h2{margin:0 0 12px;color:#0f172a;font-size:18px;line-height:1.35}.rt-package-section>p{margin:0;color:#64748b;font-size:14px;line-height:1.7}.rt-read-more{margin-top:7px}.rt-read-more summary{color:#2563eb;font-size:13px;font-weight:800;cursor:pointer}.rt-read-more>div{margin-top:12px;color:#64748b;font-size:14px;line-height:1.7}.rt-package-help{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:30px;padding:15px;border:1px solid #dbeafe;border-radius:14px;background:#eff6ff}.rt-package-help strong,.rt-package-help span{display:block}.rt-package-help strong{font-size:12px}.rt-package-help span{margin-top:2px;color:#64748b;font-size:10px}.rt-package-help a{padding:8px 14px;border-radius:999px;background:#22c55e;color:#fff;text-decoration:none;font-size:12px;font-weight:800}.rt-tab-buttons{display:flex;margin-bottom:18px;border-bottom:1px solid #e5e7eb}.rt-tab-buttons button{flex:1;padding:12px;border:0;border-bottom:2px solid transparent;background:none;color:#94a3b8;font-size:14px;font-weight:600;cursor:pointer}.rt-tab-buttons button.is-active{border-color:#2563eb;color:#2563eb;font-weight:800}.rt-facility-tabs ul{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 10px;margin:0;padding:0;list-style:none}.rt-facility-tabs li{display:flex;align-items:flex-start;gap:8px;color:#0f172a;font-size:13px;font-weight:600}.rt-facility-tabs li span{flex:none;color:#22c55e;font-size:18px;line-height:1}.rt-itinerary-card{padding:18px;border:1px solid #f1f5f9;border-radius:18px;background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.04)}.rt-itinerary-day+.rt-itinerary-day{margin-top:28px}.rt-day-badge{display:inline-block;margin-bottom:16px;padding:8px 11px;border:1px solid #dbeafe;border-radius:9px;background:#eff6ff;color:#1e3a8a;font-size:12px;font-weight:800}.rt-itinerary-timeline{position:relative;margin-left:8px;padding-left:23px;border-left:2px solid #bfdbfe}.rt-itinerary-stop{position:relative;margin:0 0 25px}.rt-itinerary-stop:last-child{margin-bottom:0}.rt-timeline-dot{position:absolute;top:5px;left:-31px;width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:#3b82f6;box-shadow:0 0 0 2px #bfdbfe}.rt-itinerary-stop h3{margin:0;color:#0f172a;font-size:16px;line-height:1.35}.rt-itinerary-stop p{margin:5px 0 0;color:#64748b;font-size:13px;line-height:1.65}.rt-itinerary-stop img{width:100%;height:128px;margin-top:11px;border:1px solid #f1f5f9;border-radius:13px;object-fit:cover}.rt-important-notes{margin:0 0 28px;padding:18px;border:1px solid #fde68a;border-radius:18px;background:#fffbeb;color:#92400e}.rt-important-notes h3{margin:0 0 10px;font-size:13px}.rt-important-notes ul{margin:0;padding-left:18px;font-size:13px;line-height:1.65}.rt-related-packages ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}.rt-related-packages a{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #f1f5f9;border-radius:14px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 2px 8px rgba(15,23,42,.04)}.rt-related-packages img{width:80px;height:80px;border-radius:12px;object-fit:cover}.rt-related-packages strong,.rt-related-packages small{display:block}.rt-related-packages strong{font-size:14px}.rt-related-packages small{margin-top:6px;color:#64748b;font-size:11px}.rt-smart-booking-bar{position:fixed;left:50%;bottom:0;z-index:90;display:flex;gap:10px;width:100%;max-width:430px;padding:12px calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));border-top:1px solid #dbeafe;background:rgba(255,255,255,.96);box-shadow:0 -10px 24px rgba(15,23,42,.08);backdrop-filter:blur(14px);transform:translateX(-50%)}.rt-wa-square{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:16px;background:linear-gradient(135deg,#25d366,#16a34a);color:#fff;text-decoration:none;font-size:22px;font-weight:900}.rt-booking-summary{display:flex;flex:1;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04);text-align:left;cursor:pointer}.rt-booking-summary>span:last-child{text-align:right}.rt-booking-summary small,.rt-booking-summary strong,.rt-booking-summary em{display:block}.rt-booking-summary small{color:#64748b;font-size:9px;text-transform:uppercase;letter-spacing:.12em}.rt-booking-summary strong{max-width:190px;overflow:hidden;color:#0f172a;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.rt-booking-summary>span:last-child strong{color:#2563eb;font-size:14px}.rt-booking-summary em{margin-top:2px;color:#64748b;font-size:9px;font-style:normal}.rt-booking-modal{width:100%;max-width:430px;height:auto;max-height:calc(90dvh - 78px);margin:auto auto 78px;padding:0;border:0;background:transparent;overflow:visible;transition:max-height .32s ease,margin .32s ease}.rt-booking-modal::backdrop{background:rgba(15,23,42,.46);backdrop-filter:blur(2px)}.rt-booking-modal.is-fullscreen{max-width:430px;max-height:100dvh;height:100dvh;margin:0 auto}.rt-booking-sheet-card{display:flex;max-height:calc(90dvh - 78px);min-height:calc(90dvh - 78px);flex-direction:column;border:1px solid rgba(255,255,255,.8);border-radius:28px 28px 0 0;background:#f8f9fa;box-shadow:0 -18px 50px rgba(15,23,42,.20);overflow:hidden;transition:border-radius .32s ease,max-height .32s ease,min-height .32s ease}.rt-booking-modal.is-fullscreen .rt-booking-sheet-card{max-height:100dvh;min-height:100dvh;border-radius:0}.rt-booking-handle{width:48px;height:6px;margin:9px auto 4px;border-radius:999px;background:#cbd5e1}.rt-booking-modal.is-fullscreen .rt-booking-handle{display:none}.rt-booking-sheet-card form{display:flex;min-height:0;flex:1;flex-direction:column}.rt-booking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 20px 12px}.rt-booking-head small{color:#64748b;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.rt-booking-head h2{margin:4px 0 0;color:#0f172a;font-size:18px;line-height:1.2}.rt-booking-head p{margin:4px 0 0;color:#64748b;font-size:12px}.rt-booking-head button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #f1f5f9;border-radius:50%;background:#fff;color:#64748b;font-size:24px;cursor:pointer}.rt-booking-body{flex:1;min-height:0;padding:0 20px 14px;overflow:auto;-webkit-overflow-scrolling:touch}.rt-sheet-card{margin-bottom:8px;padding:12px;border:1px solid #f1f5f9;border-radius:16px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.rt-sheet-card label{display:block;margin-bottom:7px;color:#0f172a;font-size:12px;font-weight:800}.rt-sheet-card input,.rt-sheet-card textarea{width:100%;min-height:38px;margin-top:7px;padding:8px 11px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;color:#0f172a;font:inherit;font-size:12px}.rt-two-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rt-sheet-card-title{display:flex;align-items:center;justify-content:space-between}.rt-sheet-card-title span{padding:4px 8px;border-radius:999px;background:#f8fafc;color:#64748b;font-size:9px;font-weight:800}.rt-date-chips{display:flex;gap:8px;overflow:auto;padding:1px 1px 3px;scrollbar-width:none}.rt-date-chips::-webkit-scrollbar{display:none}.rt-date-chips button{display:flex;width:56px;height:56px;flex:none;align-items:center;justify-content:center;flex-direction:column;border:1px solid #e2e8f0;border-radius:12px;background:#fff;color:#0f172a;cursor:pointer}.rt-date-chips button.is-active{border-color:#334155;background:#334155;color:#fff}.rt-date-chips span,.rt-date-chips small{font-size:9px}.rt-date-chips strong{font-size:16px;line-height:1.05}.rt-pax-card{display:flex;align-items:center;justify-content:space-between}.rt-pax-card>div:first-child small{display:block;color:#64748b;font-size:10px}.rt-pax-card>div:last-child{display:flex;align-items:center;gap:12px}.rt-pax-card button{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:#f1f5f9;color:#0f172a;font-size:20px;font-weight:800;cursor:pointer}.rt-pax-card strong{width:28px;text-align:center}.rt-estimate-card{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:10px;padding:13px;border:1px solid #e2e8f0;border-radius:16px;background:#f1f5f9}.rt-estimate-card small,.rt-estimate-card strong,.rt-estimate-card span{display:block}.rt-estimate-card small{color:#64748b;font-size:10px}.rt-estimate-card strong{margin-top:3px;font-size:20px}.rt-estimate-card span{color:#64748b;font-size:10px}.rt-step-context{margin:4px 0 14px}.rt-step-context>span{float:right;padding:5px 9px;border-radius:999px;background:#fff;color:#64748b;font-size:9px;font-weight:800}.rt-step-context h3{margin:0;color:#0f172a;font-size:18px}.rt-step-context p{margin:4px 0 0;color:#64748b;font-size:12px}.rt-hotel-options,.rt-payment-options{display:grid;gap:9px}.rt-hotel-options label,.rt-payment-options label{display:flex;align-items:flex-start;gap:10px;padding:13px;border:2px solid #e2e8f0;border-radius:16px;background:#fff;cursor:pointer}.rt-hotel-options label:has(input:checked),.rt-payment-options label:has(input:checked){border-color:#334155;background:#f8fafc}.rt-hotel-options input,.rt-payment-options input{width:17px;height:17px;margin-top:2px;accent-color:#334155}.rt-hotel-options strong,.rt-hotel-options small,.rt-payment-options strong,.rt-payment-options small{display:block}.rt-hotel-options strong,.rt-payment-options strong{font-size:12px}.rt-hotel-options small,.rt-payment-options small{margin-top:3px;color:#64748b;font-size:10px}.rt-payment-options{grid-template-columns:1fr 1fr;margin:12px 0}.rt-terms{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:12px;border-radius:14px;background:#fff;color:#64748b;font-size:11px;line-height:1.45}.rt-terms input{width:18px;height:18px;flex:none;accent-color:#334155}.rt-booking-foot{padding:9px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #e2e8f0;background:#fff}.rt-booking-foot>div:last-child{display:flex;gap:10px}.rt-back-button,.rt-primary-button,.rt-booking-success button{height:44px;border-radius:12px;font-size:14px;font-weight:800;cursor:pointer}.rt-back-button{min-width:92px;border:1px solid #e2e8f0;background:#fff;color:#0f172a}.rt-primary-button{flex:1;border:0;background:#475569;color:#fff;box-shadow:0 4px 12px rgba(71,85,105,.18)}.rt-primary-button:disabled{background:#cbd5e1}.rt-booking-success{text-align:center;padding:25px 5px}.rt-success-spinner{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 13px;border:1px solid #dbeafe;border-radius:50%;background:#eff6ff;color:#2563eb;font-size:30px;font-weight:900}.rt-booking-success h3{margin:0;font-size:18px}.rt-booking-success>p{max-width:290px;margin:8px auto;color:#64748b;font-size:12px;line-height:1.55}.rt-wa-confirm{display:flex;align-items:center;justify-content:center;width:100%;height:44px;margin-top:14px;border-radius:12px;background:#25d366;color:#fff;text-decoration:none;font-size:14px;font-weight:800}.rt-booking-success button{width:100%;margin-top:9px;border:1px solid #e2e8f0;background:#fff;color:#0f172a}.pw-review-summary{background:#fff}.pw-price-lines{font-size:12px}.pw-price-total{font-size:17px}
@media(min-width:431px){body.single-pisang_trip_package{padding:18px 0}.rt-package-app{border-radius:26px}.rt-package-hero{border-radius:26px 26px 28px 28px}.rt-smart-booking-bar{bottom:18px;border:1px solid #dbeafe;border-radius:18px}.rt-booking-modal{margin-bottom:96px}.rt-booking-modal.is-fullscreen{height:calc(100dvh - 36px);margin:18px auto}.rt-booking-modal.is-fullscreen .rt-booking-sheet-card{min-height:calc(100dvh - 36px);max-height:calc(100dvh - 36px);border-radius:26px}}

/* Batch 06: prototype-faithful itinerary + intentional desktop composition. */
.rt-package-desktop-grid,
.rt-package-primary,
.rt-package-aside {
	display: block;
}

.rt-desktop-booking-card {
	display: none;
}

@media (min-width: 900px) {
	body.single-pisang_trip_package {
		padding: 28px;
		background: #e9eef5;
	}

	.rt-package-app {
		max-width: 1180px;
		margin: 0 auto;
		border-radius: 30px;
		background: #f8f9fa;
		box-shadow: 0 24px 70px rgba(15, 23, 42, .18);
		overflow: hidden;
	}

	.rt-package-hero {
		height: 480px;
		border-radius: 30px 30px 38px 38px;
	}

	.rt-package-hero-actions {
		padding: 24px 28px;
	}

	.rt-gallery-dots {
		bottom: 30px;
	}

	.rt-package-content {
		margin-top: -72px;
		padding: 0 34px 52px;
	}

	.rt-package-title-card {
		max-width: 980px;
		margin: 0 auto 28px;
		padding: 28px 30px;
		border-radius: 24px;
		box-shadow: 0 18px 50px rgba(15, 23, 42, .10);
	}

	.rt-package-title-row h1 {
		max-width: 760px;
		font-size: 40px;
	}

	.rt-package-meta {
		font-size: 14px;
	}

	.rt-package-price-row strong {
		font-size: 30px;
	}

	.rt-package-desktop-grid {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 340px;
		align-items: start;
		gap: 28px;
		max-width: 1080px;
		margin: 0 auto;
	}

	.rt-package-primary {
		min-width: 0;
	}

	.rt-package-aside {
		position: sticky;
		top: 28px;
		display: grid;
		gap: 18px;
	}

	.rt-package-metrics {
		margin-top: 0;
	}

	.rt-package-metrics > div {
		padding: 17px 12px;
		border-radius: 16px;
	}

	.rt-package-section h2 {
		font-size: 22px;
	}

	.rt-package-section > p,
	.rt-read-more > div {
		font-size: 15px;
	}

	.rt-itinerary-card {
		padding: 26px;
		border-radius: 22px;
	}

	.rt-itinerary-stop h3 {
		font-size: 18px;
	}

	.rt-itinerary-stop p {
		font-size: 14px;
	}

	.rt-itinerary-stop img {
		height: 220px;
		border-radius: 16px;
	}

	.rt-important-notes,
	.rt-related-packages {
		margin-bottom: 0;
	}

	.rt-desktop-booking-card {
		display: flex;
		flex-direction: column;
		gap: 8px;
		padding: 22px;
		border: 1px solid #dbeafe;
		border-radius: 22px;
		background: #fff;
		box-shadow: 0 16px 40px rgba(15, 23, 42, .08);
	}

	.rt-desktop-booking-card small,
	.rt-desktop-booking-card strong,
	.rt-desktop-booking-card span {
		display: block;
	}

	.rt-desktop-booking-card small {
		color: #64748b;
		font-size: 11px;
		font-weight: 800;
		letter-spacing: .12em;
		text-transform: uppercase;
	}

	.rt-desktop-booking-card strong {
		color: #2563eb;
		font-size: 28px;
		line-height: 1.15;
	}

	.rt-desktop-booking-card span {
		color: #64748b;
		font-size: 12px;
		line-height: 1.55;
	}

	.rt-desktop-booking-card button {
		width: 100%;
		height: 48px;
		margin-top: 8px;
		border: 0;
		border-radius: 14px;
		background: #475569;
		color: #fff;
		font-size: 14px;
		font-weight: 800;
		cursor: pointer;
	}

	.rt-smart-booking-bar {
		display: none;
	}

	.rt-booking-modal,
	.rt-booking-modal.is-fullscreen {
		width: min(720px, calc(100vw - 56px));
		max-width: 720px;
		height: auto;
		max-height: 88vh;
		margin: auto;
	}

	.rt-booking-sheet-card,
	.rt-booking-modal.is-fullscreen .rt-booking-sheet-card {
		min-height: min(720px, 86vh);
		max-height: 86vh;
		border-radius: 28px;
	}

	.rt-booking-handle,
	.rt-booking-modal.is-fullscreen .rt-booking-handle {
		display: block;
	}

	.rt-booking-head {
		padding: 18px 26px 14px;
	}

	.rt-booking-body {
		padding: 0 26px 20px;
	}

	.rt-booking-foot {
		padding: 12px 26px 18px;
	}

	.rt-hotel-options {
		grid-template-columns: 1fr 1fr;
	}
}

/* ========================================================================== 
   Batch 07 · package detail desktop surface cleanup
   Keep the approved mobile prototype intact. Desktop uses one page surface,
   one content width, and no nested "app inside body inside card" backgrounds.
   ========================================================================== */

/* The package screen owns its navigation and booking bar. Prevent the global
   footer accordion and mobile bottom navigation from stacking underneath it. */
.single-pisang_trip_package .rt-site-info,
.single-pisang_trip_package .rt-bottom-nav {
	display: none !important;
}

@media (min-width: 900px) {
	html,
	body.single-pisang_trip_package,
	.single-pisang_trip_package .rt-site,
	.single-pisang_trip_package .pw-main,
	.single-pisang_trip_package .rt-package-app {
		background: #f8fafc !important;
	}

	body.single-pisang_trip_package {
		padding: 0;
		overflow-x: hidden;
	}

	.single-pisang_trip_package .pw-site-header,
	.single-pisang_trip_package .pw-site-footer {
		display: none !important;
	}

	.single-pisang_trip_package .pw-main {
		padding: 0 0 72px;
	}

	.single-pisang_trip_package .pw-container {
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 0;
	}

	.rt-package-app {
		width: 100%;
		max-width: none;
		min-height: 0;
		margin: 0;
		border-radius: 0;
		box-shadow: none;
		overflow: visible;
	}

	.rt-package-hero {
		width: min(1180px, calc(100% - 48px));
		height: clamp(420px, 39vw, 520px);
		margin: 28px auto 0;
		border-radius: 28px;
		box-shadow: 0 18px 48px rgba(15, 23, 42, .10);
	}

	.rt-package-hero-actions {
		padding: 24px;
	}

	.rt-package-content {
		width: min(1180px, calc(100% - 48px));
		margin: -76px auto 0;
		padding: 0;
	}

	.rt-package-title-card {
		width: min(1040px, calc(100% - 48px));
		max-width: none;
		margin: 0 auto 30px;
		padding: 28px 30px;
		border: 1px solid #e2e8f0;
		border-radius: 24px;
		box-shadow: 0 18px 50px rgba(15, 23, 42, .10);
	}

	.rt-package-title-row {
		gap: 24px;
	}

	.rt-package-title-row h1 {
		max-width: 780px;
		font-size: clamp(34px, 3.2vw, 46px);
	}

	.rt-package-meta {
		gap: 18px;
		font-size: 14px;
	}

	.rt-package-price-row {
		padding-top: 18px;
	}

	.rt-package-price-row strong {
		font-size: 30px;
	}

	.rt-package-desktop-grid {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(300px, 340px);
		align-items: start;
		gap: 32px;
		width: 100%;
		max-width: none;
		margin: 0;
	}

	.rt-package-primary {
		min-width: 0;
	}

	.rt-package-aside {
		position: sticky;
		top: 28px;
		display: grid;
		gap: 18px;
		min-width: 0;
	}

	.rt-package-metrics {
		margin: 0 0 32px;
		gap: 14px;
	}

	.rt-package-metrics > div {
		padding: 17px 12px;
		border-color: #e2e8f0;
		border-radius: 16px;
		box-shadow: none;
	}

	.rt-package-section {
		margin-bottom: 34px;
	}

	.rt-package-section h2 {
		font-size: 22px;
	}

	.rt-package-section > p,
	.rt-read-more > div {
		font-size: 15px;
	}

	.rt-package-help {
		padding: 18px 20px;
		border-radius: 18px;
	}

	.rt-itinerary-card {
		padding: 26px;
		border-color: #e2e8f0;
		border-radius: 22px;
		box-shadow: none;
	}

	.rt-itinerary-stop h3 {
		font-size: 18px;
	}

	.rt-itinerary-stop p {
		font-size: 14px;
	}

	.rt-itinerary-stop img {
		height: 220px;
		border-radius: 16px;
	}

	.rt-desktop-booking-card,
	.rt-important-notes,
	.rt-related-packages {
		margin: 0;
	}

	.rt-desktop-booking-card {
		display: flex;
		flex-direction: column;
		gap: 8px;
		padding: 22px;
		border: 1px solid #dbeafe;
		border-radius: 22px;
		background: #ffffff;
		box-shadow: 0 12px 34px rgba(15, 23, 42, .07);
	}

	.rt-desktop-booking-card button {
		width: 100%;
		height: 48px;
		margin-top: 8px;
		border: 0;
		border-radius: 14px;
		background: #475569;
		color: #ffffff;
		font-size: 14px;
		font-weight: 800;
		cursor: pointer;
	}

	.rt-related-packages {
		padding: 0;
		background: transparent;
	}

	.rt-related-packages a {
		border-color: #e2e8f0;
		box-shadow: none;
	}

	.rt-smart-booking-bar {
		display: none !important;
	}

	.rt-booking-modal,
	.rt-booking-modal.is-fullscreen {
		width: min(720px, calc(100vw - 56px));
		max-width: 720px;
		height: auto;
		max-height: 88vh;
		margin: auto;
	}

	.rt-booking-sheet-card,
	.rt-booking-modal.is-fullscreen .rt-booking-sheet-card {
		min-height: min(720px, 86vh);
		max-height: 86vh;
		border-radius: 28px;
	}
}

@media (min-width: 900px) and (max-width: 1060px) {
	.rt-package-hero,
	.rt-package-content {
		width: calc(100% - 36px);
	}

	.rt-package-title-card {
		width: calc(100% - 36px);
	}

	.rt-package-desktop-grid {
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: 24px;
	}
}

/* Homepage uses .rt-package-section as a banded section. On a package-detail
   screen the same class means a content block, so it must not paint another
   background layer behind every paragraph. */
.single-pisang_trip_package .rt-package-section {
	background: transparent !important;
}

/* ========================================================================== 
   Batch 08 · true desktop package layout
   Mobile remains the approved prototype. Desktop gets an intentional
   marketplace layout: heading, mosaic gallery, sticky booking card, then
   readable content. No mobile card is stretched to fill a desktop monitor.
   ========================================================================== */

.rt-package-desktop-head,
.rt-desktop-gallery-thumbs,
.rt-desktop-gallery-all {
	display: none;
}

@media (min-width: 900px) {
	html,
	body.single-pisang_trip_package,
	.single-pisang_trip_package .rt-site,
	.single-pisang_trip_package .pw-main,
	.single-pisang_trip_package .rt-package-app {
		background: #ffffff !important;
	}

	body.single-pisang_trip_package {
		padding: 0;
		color: #0f172a;
	}

	.single-pisang_trip_package .pw-main {
		padding: 0 0 88px;
	}

	.rt-package-app {
		width: 100%;
		max-width: none;
		margin: 0;
		border-radius: 0;
		box-shadow: none;
		overflow: visible;
	}

	.rt-package-desktop-shell {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 350px;
		grid-template-rows: auto auto auto;
		column-gap: 24px;
		row-gap: 18px;
		width: min(1240px, calc(100% - 48px));
		margin: 0 auto;
		padding-top: 24px;
	}

	/* Flatten the mobile wrappers only on desktop so the relevant children can
	   take explicit grid areas. The DOM remains unchanged for mobile. */
	.rt-package-left,
	.rt-package-content,
	.rt-package-desktop-grid {
		display: contents;
	}

	.rt-package-desktop-head {
		grid-column: 1 / -1;
		grid-row: 1;
		display: flex;
		align-items: flex-end;
		justify-content: space-between;
		gap: 28px;
		min-width: 0;
		padding: 0 0 2px;
	}

	.rt-package-desktop-head-copy {
		min-width: 0;
		max-width: 900px;
	}

	.rt-package-eyebrow {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		margin-bottom: 6px;
		color: #475569;
		font-size: 11px;
		font-weight: 800;
		letter-spacing: .06em;
		text-transform: uppercase;
	}

	.rt-package-desktop-head h1 {
		max-width: 900px;
		margin: 0;
		color: #0f172a;
		font-family: "Noto Serif", Georgia, serif;
		font-size: clamp(28px, 2.7vw, 42px);
		line-height: 1.12;
		letter-spacing: -.028em;
	}

	.rt-package-desktop-meta {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px 16px;
		margin-top: 10px;
		color: #475569;
		font-size: 12px;
		font-weight: 650;
	}

	.rt-package-desktop-meta .is-rating {
		color: #0f172a;
		text-decoration: underline;
		text-underline-offset: 3px;
	}

	.rt-package-desktop-actions {
		display: flex;
		gap: 8px;
		flex: none;
		padding-bottom: 2px;
	}

	.rt-package-desktop-actions button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 38px;
		padding: 0 12px;
		border: 0;
		border-radius: 10px;
		background: transparent;
		color: #0f172a;
		font-size: 12px;
		font-weight: 800;
		text-decoration: underline;
		text-underline-offset: 3px;
		cursor: pointer;
	}

	.rt-package-desktop-actions button:hover {
		background: #f1f5f9;
	}

	.rt-package-hero {
		position: relative;
		grid-column: 1;
		grid-row: 2;
		display: block;
		width: 100%;
		height: clamp(360px, 36vw, 470px);
		margin: 0;
		border-radius: 14px;
		background: #e2e8f0;
		box-shadow: none;
		overflow: hidden;
	}

	.rt-package-hero.has-desktop-thumbs {
		display: grid;
		grid-template-columns: minmax(0, 2.25fr) minmax(210px, .9fr);
		gap: 4px;
	}

	.rt-package-hero > img[data-gallery-image] {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.rt-package-hero.has-desktop-thumbs > img[data-gallery-image],
	.rt-package-hero.has-desktop-thumbs > .rt-package-hero-placeholder {
		grid-column: 1;
		grid-row: 1;
	}

	.rt-desktop-gallery-thumbs {
		grid-column: 2;
		grid-row: 1;
		display: grid;
		grid-template-rows: repeat(2, minmax(0, 1fr));
		gap: 4px;
		min-width: 0;
		min-height: 0;
	}

	.rt-desktop-gallery-thumbs img {
		display: block;
		width: 100%;
		height: 100%;
		min-height: 0;
		object-fit: cover;
	}

	.rt-desktop-gallery-thumbs img:only-child {
		grid-row: 1 / 3;
	}

	.rt-desktop-gallery-all {
		position: absolute;
		right: 14px;
		bottom: 14px;
		z-index: 5;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 36px;
		padding: 0 12px;
		border: 1px solid #cbd5e1;
		border-radius: 10px;
		background: rgba(255, 255, 255, .94);
		color: #0f172a;
		box-shadow: 0 4px 16px rgba(15, 23, 42, .12);
		font-size: 11px;
		font-weight: 800;
		cursor: pointer;
	}

	.rt-package-hero-overlay,
	.rt-package-hero-actions,
	.rt-gallery-dots {
		display: none !important;
	}

	/* Mobile floating title card is replaced by the desktop heading above. */
	.rt-package-title-card {
		display: none;
	}

	.rt-package-primary {
		grid-column: 1;
		grid-row: 3;
		min-width: 0;
		padding-top: 2px;
	}

	.rt-package-aside {
		position: sticky;
		top: 18px;
		grid-column: 2;
		grid-row: 2 / span 2;
		display: grid;
		align-self: start;
		gap: 16px;
		min-width: 0;
	}

	.rt-package-metrics {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0;
		margin: 0;
		padding: 20px 0;
		border-bottom: 1px solid #e2e8f0;
	}

	.rt-package-metrics > div {
		min-height: 58px;
		padding: 6px 18px;
		border: 0;
		border-right: 1px solid #e2e8f0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		text-align: left;
	}

	.rt-package-metrics > div:first-child {
		padding-left: 0;
	}

	.rt-package-metrics > div:last-child {
		border-right: 0;
	}

	.rt-package-metrics strong {
		font-size: 18px;
	}

	.rt-package-metrics span {
		margin-top: 3px;
		font-size: 11px;
	}

	.rt-package-section {
		margin: 0;
		padding: 26px 0;
		border-bottom: 1px solid #e2e8f0;
		background: transparent !important;
	}

	.rt-package-section h2 {
		margin: 0 0 12px;
		font-size: 23px;
		line-height: 1.25;
	}

	.rt-package-section > p,
	.rt-read-more > div {
		max-width: 850px;
		font-size: 14px;
		line-height: 1.75;
	}

	.rt-package-help {
		margin: 0;
		padding: 18px 0;
		border: 0;
		border-bottom: 1px solid #e2e8f0;
		border-radius: 0;
		background: transparent;
	}

	.rt-package-help a {
		padding: 9px 14px;
		border-radius: 999px;
	}

	.rt-facility-tabs .rt-tab-buttons {
		max-width: 520px;
	}

	.rt-facility-tabs ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 820px;
	}

	.rt-itinerary-card {
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.rt-itinerary-day {
		padding: 20px 0 28px;
		border-bottom: 1px solid #e2e8f0;
	}

	.rt-itinerary-day:last-child {
		border-bottom: 0;
	}

	.rt-itinerary-stop img {
		height: clamp(220px, 24vw, 320px);
		border-radius: 14px;
	}

	.rt-desktop-booking-card {
		display: flex;
		flex-direction: column;
		gap: 10px;
		padding: 18px;
		border: 1px solid #cbd5e1;
		border-radius: 14px;
		background: #ffffff;
		box-shadow: 0 6px 20px rgba(15, 23, 42, .08);
	}

	.rt-booking-urgency {
		align-self: flex-start;
		padding: 4px 8px;
		border-radius: 4px;
		background: #e11d48;
		color: #ffffff !important;
		font-size: 9px !important;
		font-weight: 900;
		letter-spacing: .02em;
	}

	.rt-desktop-booking-card > small {
		margin-top: 2px;
		color: #475569;
		font-size: 10px;
		font-weight: 700;
		letter-spacing: 0;
		text-transform: none;
	}

	.rt-desktop-booking-card > strong {
		color: #0f172a;
		font-size: 22px;
		line-height: 1.1;
	}

	.rt-desktop-booking-card > strong em {
		color: #475569;
		font-size: 10px;
		font-style: normal;
		font-weight: 600;
	}

	.rt-desktop-booking-card .rt-booking-select,
	.rt-desktop-booking-card .rt-booking-cta {
		width: 100%;
		height: 42px;
		margin: 0;
		border-radius: 999px;
		font-size: 12px;
		font-weight: 800;
		cursor: pointer;
	}

	.rt-desktop-booking-card .rt-booking-select {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
		padding: 0 13px;
		border: 1px solid #e2e8f0;
		background: #f1f5f9;
		color: #0f172a;
	}

	.rt-booking-select span {
		flex: 1;
		text-align: left;
	}

	.rt-booking-select b,
	.rt-booking-select i {
		font-style: normal;
	}

	.rt-desktop-booking-card .rt-booking-cta {
		border: 0;
		background: #0b7cf4;
		color: #ffffff;
		box-shadow: none;
	}

	.rt-desktop-booking-card .rt-booking-cta:hover {
		background: #0867cc;
	}

	.rt-booking-assurances {
		display: grid;
		gap: 12px;
		margin-top: 8px;
		padding-top: 14px;
		border-top: 1px solid #e2e8f0;
	}

	.rt-booking-assurances p {
		display: grid;
		grid-template-columns: 18px 1fr;
		gap: 2px 8px;
		margin: 0;
		color: #0f172a;
	}

	.rt-booking-assurances p > span {
		grid-row: 1 / 3;
		display: grid;
		place-items: center;
		width: 18px;
		height: 18px;
		border: 1px solid #0d9488;
		border-radius: 50%;
		color: #0d9488;
		font-size: 10px;
		font-weight: 900;
	}

	.rt-booking-assurances b {
		font-size: 11px;
		line-height: 1.25;
	}

	.rt-booking-assurances small {
		color: #64748b;
		font-size: 9px;
		line-height: 1.45;
	}

	.rt-important-notes {
		padding: 16px;
		border: 1px solid #fde68a;
		border-radius: 12px;
		background: #fffbeb;
		box-shadow: none;
	}

	.rt-related-packages {
		padding: 0;
		border: 0;
	}

	.rt-related-packages h2 {
		font-size: 16px;
	}

	.rt-related-packages a {
		border: 1px solid #e2e8f0;
		border-radius: 12px;
		box-shadow: none;
	}

	.rt-smart-booking-bar {
		display: none !important;
	}

	.rt-booking-modal,
	.rt-booking-modal.is-fullscreen {
		width: min(720px, calc(100vw - 48px));
		max-width: 720px;
		height: auto;
		max-height: 88vh;
		margin: auto;
	}

	.rt-booking-sheet-card,
	.rt-booking-modal.is-fullscreen .rt-booking-sheet-card {
		min-height: min(720px, 86vh);
		max-height: 86vh;
		border-radius: 24px;
	}
}

@media (min-width: 900px) and (max-width: 1080px) {
	.rt-package-desktop-shell {
		grid-template-columns: minmax(0, 1fr) 320px;
		column-gap: 18px;
		width: calc(100% - 32px);
	}

	.rt-package-desktop-head h1 {
		font-size: clamp(26px, 3vw, 36px);
	}

	.rt-package-hero.has-desktop-thumbs {
		grid-template-columns: minmax(0, 2fr) 190px;
	}
}

/* ========================================================================== 
   Batch 09 · mobile marketplace composition
   Mobile follows the approved marketplace reference: mosaic gallery, centered
   identity, concise description, and an icon-led benefit list. Desktop rules
   from Batch 08 remain authoritative from 900px upward.
   ========================================================================== */
.rt-mobile-origin,
.rt-mobile-benefits {
	display: none;
}

@media (min-width: 900px) {
	.rt-desktop-gallery-thumbs img:nth-child(n + 3) {
		display: none;
	}
}

@media (max-width: 899px) {
	html,
	body.single-pisang_trip_package,
	.single-pisang_trip_package .rt-site,
	.single-pisang_trip_package .pw-main,
	.single-pisang_trip_package .pw-container,
	.single-pisang_trip_package .rt-package-app {
		margin: 0;
		padding: 0;
		background: #ffffff !important;
	}

	body.single-pisang_trip_package {
		min-width: 0;
		overflow-x: hidden;
	}

	.rt-package-app {
		width: 100%;
		max-width: 100%;
		min-height: 100vh;
		margin: 0;
		border-radius: 0;
		box-shadow: none;
		overflow: visible;
	}

	.rt-package-desktop-shell,
	.rt-package-left,
	.rt-package-content,
	.rt-package-desktop-grid,
	.rt-package-primary {
		display: block;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 0;
	}

	.rt-package-desktop-head,
	.rt-package-aside,
	.rt-desktop-gallery-all,
	.rt-gallery-dots,
	.rt-package-metrics,
	.rt-package-help,
	.rt-package-price-row {
		display: none !important;
	}

	.rt-package-hero,
	.rt-package-hero.has-desktop-thumbs {
		position: relative;
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-template-rows: 108px 72px;
		gap: 4px;
		width: calc(100% - 8px);
		height: 184px;
		margin: 4px 4px 0;
		border-radius: 12px;
		background: #e2e8f0;
		box-shadow: none;
		overflow: hidden;
	}

	.rt-package-hero > img[data-gallery-image],
	.rt-package-hero > .rt-package-hero-placeholder {
		grid-column: 1 / 3;
		grid-row: 1;
		display: block;
		width: 100%;
		height: 100%;
		min-width: 0;
		min-height: 0;
		object-fit: cover;
	}

	.rt-package-hero .rt-desktop-gallery-thumbs {
		display: contents !important;
	}

	.rt-package-hero .rt-desktop-gallery-thumbs img {
		display: block !important;
		width: 100%;
		height: 100%;
		min-width: 0;
		min-height: 0;
		object-fit: cover;
	}

	.rt-package-hero .rt-desktop-gallery-thumbs img:nth-child(1) {
		grid-column: 1;
		grid-row: 2;
	}

	.rt-package-hero .rt-desktop-gallery-thumbs img:nth-child(2) {
		grid-column: 2;
		grid-row: 2;
	}

	.rt-package-hero .rt-desktop-gallery-thumbs img:nth-child(3) {
		grid-column: 3;
		grid-row: 1 / 3;
	}

	.rt-package-hero-overlay {
		display: block !important;
		position: absolute;
		inset: 0;
		z-index: 1;
		background: linear-gradient(to bottom, rgba(15, 23, 42, .16), transparent 42%);
		pointer-events: none;
	}

	.rt-package-hero-actions {
		display: flex !important;
		position: absolute;
		inset: 0 0 auto;
		z-index: 4;
		align-items: center;
		justify-content: space-between;
		padding: 8px;
		pointer-events: none;
	}

	.rt-package-hero-actions > * {
		pointer-events: auto;
	}

	.rt-package-hero-actions > div {
		display: flex;
		gap: 6px;
	}

	.rt-round-action {
		width: 30px;
		height: 30px;
		border: 1px solid rgba(255, 255, 255, .78);
		background: rgba(255, 255, 255, .92);
		color: #0f172a;
		box-shadow: 0 2px 7px rgba(15, 23, 42, .16);
		font-size: 15px;
		backdrop-filter: none;
	}

	.rt-round-action.is-solid,
	.rt-round-action.is-active {
		background: #ffffff;
		color: #0f172a;
	}

	.rt-package-content {
		position: relative;
		z-index: 2;
		margin: 0;
		padding: 0 12px 104px;
	}

	.rt-package-title-card {
		display: block;
		width: 100%;
		max-width: 560px;
		margin: 0 auto;
		padding: 10px 6px 13px;
		border: 0;
		border-bottom: 1px solid #e5e7eb;
		border-radius: 0;
		background: #ffffff;
		box-shadow: none;
		text-align: center;
	}

	.rt-mobile-origin {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 4px;
		margin-bottom: 5px;
		color: #475569;
		font-size: 8px;
		font-weight: 800;
		line-height: 1.2;
	}

	.rt-mobile-origin i {
		color: #f97316;
		font-style: normal;
		font-size: 9px;
	}

	.rt-package-title-row {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		gap: 6px;
	}

	.rt-package-title-row h1 {
		max-width: 420px;
		margin: 0;
		color: #0f172a;
		font-size: clamp(17px, 5.3vw, 22px);
		line-height: 1.08;
		font-weight: 850;
		letter-spacing: -.035em;
		text-align: center;
	}

	.rt-duration-badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 18px;
		padding: 2px 7px;
		border-radius: 2px;
		background: #0f172a;
		color: #ffffff;
		font-size: 8px;
		font-weight: 850;
		line-height: 1;
	}

	.rt-package-meta {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-wrap: wrap;
		gap: 4px 8px;
		margin-top: 5px;
		color: #0f172a;
		font-size: 9px;
		line-height: 1.25;
	}

	.rt-package-meta span:first-child {
		color: #0f172a;
		font-weight: 800;
		text-decoration: underline;
		text-underline-offset: 2px;
	}

	.rt-package-about {
		margin: 0;
		padding: 8px 7px 14px;
		border-bottom: 1px solid #e5e7eb;
		background: #ffffff !important;
		text-align: center;
	}

	.rt-package-about h2 {
		display: none;
	}

	.rt-package-about > p {
		max-width: 470px;
		margin: 0 auto;
		color: #0f172a;
		font-size: 10px;
		line-height: 1.45;
		font-weight: 560;
		text-align: center;
	}

	.rt-package-about .rt-read-more {
		margin-top: 5px;
		font-size: 9px;
	}

	.rt-mobile-benefits {
		display: grid;
		gap: 0;
		margin: 0;
		padding: 4px 4px 8px;
		border-bottom: 1px solid #e5e7eb;
		background: #ffffff;
	}

	.rt-mobile-benefits article {
		display: grid;
		grid-template-columns: 28px minmax(0, 1fr);
		align-items: start;
		gap: 9px;
		padding: 8px 0;
	}

	.rt-mobile-benefits article > span {
		display: grid;
		place-items: center;
		width: 24px;
		height: 24px;
		border-radius: 8px;
		background: #f1f5f9;
		color: #0f172a;
		font-size: 10px;
		font-weight: 900;
	}

	.rt-mobile-benefits strong,
	.rt-mobile-benefits small {
		display: block;
	}

	.rt-mobile-benefits strong {
		margin-top: 1px;
		color: #0f172a;
		font-size: 9px;
		line-height: 1.2;
		font-weight: 850;
	}

	.rt-mobile-benefits small {
		margin-top: 2px;
		color: #475569;
		font-size: 8px;
		line-height: 1.35;
	}

	.rt-facility-tabs,
	#rencana-perjalanan {
		margin: 0;
		padding: 18px 0;
		background: #ffffff !important;
	}

	.rt-facility-tabs h2,
	#rencana-perjalanan > h2 {
		font-size: 18px;
		line-height: 1.25;
	}

	.rt-facility-tabs ul {
		grid-template-columns: 1fr;
	}

	.rt-itinerary-card {
		padding: 0;
		border: 0;
		border-radius: 0;
		background: #ffffff;
		box-shadow: none;
	}

	.rt-itinerary-day {
		padding: 12px 0 18px;
	}

	.rt-itinerary-stop img {
		height: 180px;
		border-radius: 10px;
	}

	.rt-smart-booking-bar {
		left: 6px;
		right: 6px;
		bottom: calc(6px + env(safe-area-inset-bottom));
		width: auto;
		max-width: none;
		transform: none;
		border: 1px solid #dbe2ea;
		border-radius: 12px;
		background: rgba(255, 255, 255, .97);
		box-shadow: 0 7px 24px rgba(15, 23, 42, .18);
	}
}

@media (max-width: 360px) {
	.rt-package-hero,
	.rt-package-hero.has-desktop-thumbs {
		grid-template-rows: 100px 66px;
		height: 170px;
	}

	.rt-package-content {
		padding-inline: 10px;
	}

	.rt-package-title-row h1 {
		font-size: 17px;
	}
}

/* ========================================================================== 
   Batch 10 · mobile typography scale
   The mobile package UI follows the owner-approved type scale. Decorative
   text may use 9–10px; readable content never drops below 11px.
   ========================================================================== */
@media (max-width: 899px) {
	.single-pisang_trip_package .rt-package-app {
		font-size: 14px;
		line-height: 1.55;
	}

	/* 36px · primary heading */
	.rt-package-title-row h1 {
		max-width: 100%;
		font-size: 36px;
		line-height: 1.08;
		letter-spacing: -.035em;
	}

	/* 11px labels, 10px badges, 12px supporting metadata */
	.rt-mobile-origin {
		margin-bottom: 10px;
		font-size: 11px;
		line-height: 1.35;
	}

	.rt-mobile-origin i {
		font-size: 10px;
	}

	.rt-duration-badge {
		min-height: 28px;
		padding: 7px 11px;
		border-radius: 5px;
		font-size: 10px;
	}

	.rt-package-meta {
		gap: 7px 12px;
		margin-top: 12px;
		font-size: 12px;
		line-height: 1.45;
	}

	.rt-package-title-card {
		padding: 20px 4px 22px;
	}

	/* 14px main body and interactive text */
	.rt-package-about {
		padding: 18px 0 22px;
		text-align: center;
	}

	.rt-package-about > p,
	.rt-read-more > div {
		max-width: 100%;
		font-size: 14px;
		line-height: 1.7;
	}

	.rt-package-about .rt-read-more,
	.rt-package-about .rt-read-more summary {
		margin-top: 10px;
		font-size: 14px;
		line-height: 1.45;
	}

	/* 15px card titles, 12px supporting descriptions */
	.rt-mobile-benefits {
		padding: 8px 0 14px;
	}

	.rt-mobile-benefits article {
		grid-template-columns: 44px minmax(0, 1fr);
		gap: 12px;
		padding: 13px 0;
	}

	.rt-mobile-benefits article > span {
		width: 40px;
		height: 40px;
		border-radius: 13px;
		font-size: 14px;
	}

	.rt-mobile-benefits strong {
		margin-top: 0;
		font-size: 15px;
		line-height: 1.3;
	}

	.rt-mobile-benefits small {
		margin-top: 4px;
		font-size: 12px;
		line-height: 1.5;
	}

	/* 18px section titles */
	.rt-package-section h2,
	.rt-facility-tabs h2,
	#rencana-perjalanan > h2,
	.rt-related-packages h2 {
		font-size: 18px;
		line-height: 1.35;
	}

	.rt-facility-tabs,
	#rencana-perjalanan {
		padding: 24px 0;
	}

	.rt-tab-buttons button {
		min-height: 50px;
		padding: 13px 8px;
		font-size: 16px;
		line-height: 1.3;
	}

	.rt-facility-tabs li {
		gap: 10px;
		font-size: 14px;
		line-height: 1.55;
	}

	.rt-day-badge {
		font-size: 12px;
		line-height: 1.45;
	}

	.rt-itinerary-stop h3 {
		font-size: 16px;
		line-height: 1.35;
	}

	.rt-itinerary-stop p {
		font-size: 14px;
		line-height: 1.7;
	}

	.rt-important-notes h3 {
		font-size: 15px;
	}

	.rt-important-notes ul {
		font-size: 14px;
		line-height: 1.65;
	}

	.rt-related-packages strong {
		font-size: 15px;
		line-height: 1.35;
	}

	.rt-related-packages small {
		font-size: 12px;
		line-height: 1.45;
	}

	/* Smart booking bar: 11px labels, 15px title, 16px price, 10px units */
	.rt-smart-booking-bar {
		gap: 10px;
		padding: 10px;
	}

	.rt-wa-square {
		width: 54px;
		height: 54px;
		font-size: 22px;
	}

	.rt-booking-summary {
		min-height: 58px;
		padding: 10px 13px;
	}

	.rt-booking-summary small {
		font-size: 11px;
		line-height: 1.3;
		letter-spacing: .08em;
	}

	.rt-booking-summary strong {
		max-width: 210px;
		font-size: 15px;
		line-height: 1.3;
	}

	.rt-booking-summary > span:last-child strong {
		font-size: 16px;
		line-height: 1.2;
	}

	.rt-booking-summary em {
		font-size: 10px;
		line-height: 1.3;
	}

	/* Booking modal */
	.rt-booking-head small {
		font-size: 11px;
	}

	.rt-booking-head h2,
	.rt-step-context h3,
	.rt-booking-success h3 {
		font-size: 18px;
		line-height: 1.35;
	}

	.rt-booking-head p,
	.rt-step-context p,
	.rt-booking-success > p {
		font-size: 12px;
		line-height: 1.5;
	}

	.rt-sheet-card {
		padding: 14px;
	}

	.rt-sheet-card label {
		font-size: 13px;
		line-height: 1.4;
	}

	.rt-sheet-card input,
	.rt-sheet-card textarea,
	.rt-sheet-card select {
		min-height: 46px;
		font-size: 14px;
		line-height: 1.45;
	}

	.rt-sheet-card-title span,
	.rt-step-context > span {
		font-size: 10px;
	}

	.rt-date-chips button {
		width: 64px;
		height: 64px;
	}

	.rt-date-chips span,
	.rt-date-chips small {
		font-size: 10px;
	}

	.rt-date-chips strong,
	.rt-pax-card strong,
	.rt-estimate-card strong {
		font-size: 16px;
	}

	.rt-pax-card > div:first-child small,
	.rt-estimate-card small,
	.rt-step-context p,
	.rt-hotel-options small,
	.rt-payment-options small {
		font-size: 12px;
		line-height: 1.45;
	}

	.rt-estimate-card span {
		font-size: 10px;
	}

	.rt-hotel-options strong,
	.rt-payment-options strong {
		font-size: 15px;
		line-height: 1.35;
	}

	.rt-terms {
		font-size: 12px;
		line-height: 1.55;
	}

	.rt-back-button,
	.rt-primary-button,
	.rt-booking-success button,
	.rt-wa-confirm {
		font-size: 14px;
	}

	.pw-price-lines {
		font-size: 13px;
		line-height: 1.5;
	}

	.pw-price-total,
	.pw-order-code {
		font-size: 16px;
	}
}
