/*
Theme Name: Ramaya WP Theme
Theme URI: https://example.com
Author: Anda
Author URI: https://example.com
Description: Template dasar WordPress — titik awal untuk tema kustom.
Version: 1.9.18
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ramaya-wp-theme
*/

/* Lebar konten seragam: header, isi, footer */
:root {
 --ramaya-content-max: 1140px;
 --ramaya-gutter-x: clamp(1rem, 4vw, 2rem);
 --ramaya-nav-breakpoint: 992px;
 --ramaya-ease-out: cubic-bezier(0.33, 1, 0.68, 1);
 --ramaya-duration: 0.32s;

 /* Warna default — selaras Ramaya Boat Booking Engine (sea / teal editorial) */
 --ramaya-body-bg: #ffffff;
 --ramaya-body-text: #2a3b46;
 --ramaya-link: #2c5f6b;
 --ramaya-heading: #0e1f29;
 --ramaya-accent-title: #2c5f6b;
 --ramaya-meta: #6d7f8c;
 --ramaya-muted: #5b6f7a;
 --ramaya-border: #e3eaee;
 --ramaya-blockquote-border: #cfe8ee;
 --ramaya-blockquote-text: #3d5260;
 /* Sea palette (RBBE) — tombol, booking widget, CTA */
 --ramaya-sea: #52a9b8;
 --ramaya-sea-hover: #4496a4;
 --ramaya-sea-deep: #2c5f6b;
 --ramaya-sea-soft: #e9f4f6;
 --ramaya-sea-mid: #cfe8ee;
 --ramaya-page-soft: #f4fafc;
 --ramaya-btn-shadow: 0 3px 12px rgba(82, 169, 184, 0.25);
 --ramaya-btn-shadow-hover: 0 6px 20px rgba(82, 169, 184, 0.32);
 --ramaya-header-text: #ffffff;
 --ramaya-header-warm: #f0b35a;
 --ramaya-header-coral: #e8956f;
 --ramaya-header-bg-gradient: linear-gradient(
 112deg,
 rgba(14, 31, 41, 0.94) 0%,
 rgba(44, 95, 107, 0.9) 26%,
 rgba(82, 169, 184, 0.84) 50%,
 rgba(232, 149, 111, 0.58) 74%,
 rgba(26, 43, 54, 0.92) 100%
 );
 --ramaya-header-shadow:
 0 8px 28px rgba(14, 31, 41, 0.22),
 inset 0 1px 0 rgba(255, 255, 255, 0.14);
 --ramaya-nav-hover-bg: rgba(255, 255, 255, 0.16);
 --ramaya-nav-active-bg: rgba(255, 255, 255, 0.24);
 --ramaya-toggle-bg: rgba(255, 255, 255, 0.14);
 --ramaya-toggle-hover-bg: rgba(255, 255, 255, 0.26);
 --ramaya-toggle-outline: rgba(255, 255, 255, 0.55);
 --ramaya-brand-icon-bg: linear-gradient(
 145deg,
 rgba(255, 255, 255, 0.2) 0%,
 rgba(82, 169, 184, 0.32) 100%
 );
 --ramaya-backdrop: rgba(14, 31, 41, 0.42);
 --ramaya-mobile-panel-bg: rgba(22, 38, 48, 0.97);
 --ramaya-mobile-panel-border: rgba(82, 169, 184, 0.12);
 --ramaya-mobile-panel-outer-border: rgba(82, 169, 184, 0.16);
 --ramaya-dropdown-bg: rgba(22, 38, 48, 0.94);
 --ramaya-dropdown-border: rgba(82, 169, 184, 0.1);
 --ramaya-dropdown-shadow: 0 18px 50px rgba(14, 31, 41, 0.28);
 --ramaya-mobile-panel-shadow:
 0 12px 40px rgba(14, 31, 41, 0.24),
 0 0 0 1px rgba(82, 169, 184, 0.08);
 --ramaya-hero-header-bg: var(--ramaya-header-bg-gradient);
 /* Sama seperti hero: halaman produk/tanpa hero tidak lagi lebih “padat” dari beranda */
 --ramaya-header-bg: var(--ramaya-header-bg-gradient);
 --ramaya-footer-text: #6d7f8c;
 --ramaya-wa-bg: #25d366;
 --ramaya-wa-color: #ffffff;

 /* Travel Product Manager (TPM) harmony defaults */
 --tpm-lx-accent: var(--ramaya-sea, var(--ramaya-link));
 --tpm-lx-ink: var(--ramaya-heading);
 --tpm-lx-muted: var(--ramaya-muted);
 --tpm-lx-line: var(--ramaya-border);

 /* Phinisi Trip Manager (PTM) harmony defaults */
 --ptm-lx-accent: var(--ramaya-sea, var(--ramaya-link));
 --ptm-lx-ink: var(--ramaya-heading);
 --ptm-lx-muted: var(--ramaya-muted);
 --ptm-lx-line: var(--ramaya-border);

 /* Kartu grid — dipakai TPM/PTM grid + RBBE [rbbe_where_to_go] */
 --ramaya-card-ink-soft: color-mix(in srgb, var(--ramaya-heading) 88%, var(--ramaya-muted));
 --ramaya-card-muted-soft: color-mix(in srgb, var(--ramaya-muted) 78%, #94a3b8);
 --ramaya-card-link-soft: color-mix(in srgb, var(--ramaya-sea-deep, var(--ramaya-link)) 72%, #475569);
 --ramaya-card-title-size: 0.98rem;
 --ramaya-card-meta-size: 0.84rem;
 --ramaya-card-label-size: 0.68rem;
 --ramaya-card-radius: 16px;
 --ramaya-card-gap: clamp(12px, 1.75vw, 18px);
 --ramaya-card-shadow: 0 8px 28px rgba(15, 23, 42, 0.05);
 --ramaya-card-shadow-hover: 0 14px 36px rgba(15, 23, 42, 0.08);

 /* Footer rich — selaras header, RBBE, TPM, PTM */
 --ramaya-ft-bg: #162630;
 --ramaya-ft-text: rgba(255, 255, 255, 0.94);
 --ramaya-ft-muted: rgba(255, 255, 255, 0.62);
 --ramaya-ft-line: color-mix(in srgb, var(--ramaya-sea) 18%, transparent);
 --ramaya-ft-accent: var(--ramaya-sea);
 --ramaya-ft-brand-size: clamp(0.85rem, 2vw, 1rem);
 --ramaya-ft-heading-size: var(--ramaya-card-label-size, 0.68rem);
 --ramaya-ft-body-size: var(--ramaya-card-meta-size, 0.84rem);
 --ramaya-ft-nav-size: 0.9rem;
 --ramaya-ft-radius: var(--ramaya-card-radius, 16px);
 --ramaya-ft-radius-sm: 12px;
}

/* Reset ringkas */
*,
*::before,
*::after {
 box-sizing: border-box;
}

body {
 margin: 0;
 font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
 line-height: 1.6;
 color: var(--ramaya-body-text);
 background: var(--ramaya-body-bg);
}

/* Travel Product Category (TPM taxonomy) */
.entry-header--taxonomy {
 max-width: var(--ramaya-content-max);
 margin: 0 auto;
 padding: 0 0 0.5rem;
}

.entry-content--taxonomy {
 color: var(--ramaya-muted);
 max-width: none;
 text-align: justify;
 text-justify: inter-word;
 hyphens: auto;
}

.ramaya-tax-grid {
 max-width: var(--ramaya-content-max);
 margin: 0 auto;
 padding: 1rem 0 2.25rem;
}

/* Page transition loader (overlay + spinner + bar) */
.ramaya-page-loader {
 position: fixed;
 left: 0;
 right: 0;
 top: 0;
 z-index: 100000; /* above sticky header */
 pointer-events: none;
}

body.admin-bar .ramaya-page-loader {
 top: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
 body.admin-bar .ramaya-page-loader {
 top: var(--wp-admin--admin-bar--height, 46px);
 }
}

.ramaya-page-loader__overlay {
 position: fixed;
 inset: 0;
 background: rgba(10, 12, 16, 0.22);
 -webkit-backdrop-filter: blur(0px);
 backdrop-filter: blur(0px);
 opacity: 0;
 transition: opacity 220ms var(--ramaya-ease-out), backdrop-filter 220ms var(--ramaya-ease-out),
 -webkit-backdrop-filter 220ms var(--ramaya-ease-out);
}

.ramaya-page-loader__center {
 position: fixed;
 inset: 0;
 display: grid;
 place-items: center;
 opacity: 0;
 transform: translateY(8px) scale(0.98);
 transition: opacity 220ms var(--ramaya-ease-out), transform 220ms var(--ramaya-ease-out);
}

.ramaya-page-loader__spinner {
 width: 56px;
 height: 56px;
 border-radius: 999px;
 border: 3px solid rgba(255, 255, 255, 0.18);
 border-top-color: rgba(255, 255, 255, 0.82);
 box-shadow: 0 18px 50px rgba(0, 0, 0, 0.25);
 background: rgba(20, 22, 28, 0.25);
 -webkit-backdrop-filter: blur(12px);
 backdrop-filter: blur(12px);
 animation: ramaya-spinner-rotate 0.85s linear infinite;
}

@keyframes ramaya-spinner-rotate {
 to {
 transform: rotate(360deg);
 }
}

.ramaya-page-loader__bar {
 position: fixed;
 left: 0;
 right: 0;
 top: 0;
 height: 3px;
 width: 0%;
 /* Solid, subtle (no white sliding shimmer) */
 background: rgba(255, 255, 255, 0.55);
 transform-origin: left center;
 transition: width 420ms var(--ramaya-ease-out);
}

.ramaya-page-loader--active {
}

html.ramaya-loading .ramaya-page-loader__overlay {
 opacity: 1;
 -webkit-backdrop-filter: blur(6px);
 backdrop-filter: blur(6px);
}

html.ramaya-loading .ramaya-page-loader__center {
 opacity: 1;
 transform: translateY(0) scale(1);
}

/* Bar muncul halus di atas saat loading */
html.ramaya-loading .ramaya-page-loader {
 height: 3px;
}

@keyframes ramaya-loader-shimmer {
 0% {
 background-position: 0% 50%;
 }
 100% {
 background-position: 220% 50%;
 }
}

@media (prefers-reduced-motion: reduce) {
 .ramaya-page-loader__spinner {
 animation-duration: 2.2s;
 }
 .ramaya-page-loader__overlay,
 .ramaya-page-loader__center {
 transition-duration: 1ms;
 }
}

body.site-nav-open {
 overflow: hidden;
 touch-action: none;
}

/*
 * Mobile menu open: sticky breaks when body overflow is hidden.
 * Pin the whole header (bar + dropdown) to the viewport.
 */
@media (max-width: 991.98px) {
	body.site-nav-open header.site-header,
	header.site-header.site-header--nav-open {
		position: fixed !important;
		top: 0 !important;
		left: 0;
		right: 0;
		width: 100%;
		z-index: 99990;
	}

	body.admin-bar.site-nav-open header.site-header {
		top: var(--wp-admin--admin-bar--height, 46px) !important;
	}

	@media screen and (max-width: 782px) {
		body.admin-bar.site-nav-open header.site-header {
			top: var(--wp-admin--admin-bar--height, 46px) !important;
		}

		html.ramaya-header-flush-top body.admin-bar.site-nav-open header.site-header {
			top: 0 !important;
		}
	}
}

/*
 * Admin bar + header sticky:
 * Pakai --wp-admin--admin-bar--height (WP 6.3+) supaya tidak “bolong” saat scroll/login.
 * !important mengalahkan Bootstrap/plugin yang memaksa top:0 pada navbar/header.
 */
html.admin-bar,
body.admin-bar {
 background-color: var(--ramaya-body-bg);
}

html.admin-bar {
 scroll-padding-top: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
 html.admin-bar {
 scroll-padding-top: var(--wp-admin--admin-bar--height, 46px);
 }
}

body.admin-bar header.site-header,
html.admin-bar header.site-header {
 top: var(--wp-admin--admin-bar--height, 32px) !important;
}

@media screen and (max-width: 782px) {
 body.admin-bar header.site-header,
 html.admin-bar header.site-header {
 top: var(--wp-admin--admin-bar--height, 46px) !important;
 }

 /*
 * Mobile: saat halaman di-scroll, offset admin bar sering meninggalkan ruang kosong
 * di atas header. Kelas .ramaya-header-flush-top (di-set dari header-nav.js)
 * menempelkan header ke top: 0.
 */
 html.ramaya-header-flush-top body.admin-bar header.site-header {
 top: 0 !important;
 }
}

@media (prefers-reduced-motion: reduce) {
 :root {
 --ramaya-duration: 0.01ms;
 }
}

a {
 color: var(--ramaya-link);
 text-decoration: none;
 transition: color 0.2s var(--ramaya-ease-out, ease);
}

a:hover {
 color: var(--ramaya-sea-deep, var(--ramaya-link));
 text-decoration: underline;
}

/* ——— Header: sticky + transparan (scoped keras vs Bootstrap / plugin) ——— */
header.site-header {
 position: sticky;
 top: 0;
 z-index: 99990;
 width: 100%;
 margin: 0;
 padding: 0.75rem 0;
 border: none;
 border-radius: 0;
 background: var(--ramaya-header-bg) !important;
 -webkit-backdrop-filter: blur(14px) saturate(1.25);
 backdrop-filter: blur(14px) saturate(1.25);
 box-shadow: var(--ramaya-header-shadow);
 isolation: isolate;
}

header.site-header::after {
 content: "";
 position: absolute;
 left: 0;
 right: 0;
 bottom: 0;
 height: 3px;
 background: linear-gradient(
 90deg,
 var(--ramaya-sea-deep) 0%,
 var(--ramaya-sea) 22%,
 var(--ramaya-header-warm) 50%,
 var(--ramaya-header-coral) 72%,
 var(--ramaya-sea) 100%
 );
 opacity: 0.92;
 pointer-events: none;
 /* Di bawah .site-header__inner (z-index: 2) agar tidak menutupi sub-menu */
 z-index: 0;
}

/* Kolom konten standar (header, hasil booking, dll.) */
.ramaya-content-shell,
.site-header .site-header__inner {
 width: 100%;
 max-width: var(--ramaya-content-max);
 margin-left: auto;
 margin-right: auto;
 padding-left: var(--ramaya-gutter-x);
 padding-right: var(--ramaya-gutter-x);
 box-sizing: border-box;
}

.site-header .site-header__inner {
 display: flex !important;
 flex-direction: row !important;
 flex-wrap: nowrap !important;
 justify-content: space-between !important;
 align-items: center !important;
 gap: 0.75rem;
 width: 100%;
 position: relative;
 z-index: 2;
}

/* Desktop: bar tidak menambah wrapper layout (brand + toggle tetap flex item inner) */
.site-header .site-header__bar {
 display: contents;
}

.site-header .site-brand {
 display: inline-flex !important;
 flex-direction: row !important;
 align-items: center !important;
 gap: 0.65rem;
 color: var(--ramaya-header-text) !important;
 text-decoration: none !important;
}

.site-header .site-brand:hover,
.site-header .site-brand:focus,
.site-header .site-brand:visited {
 text-decoration: none !important;
 color: var(--ramaya-header-text) !important;
}

.site-header .site-brand__logo {
 display: flex;
 align-items: center;
 justify-content: center;
 color: var(--ramaya-header-text) !important;
}

.site-header .site-brand__logo-svg {
 display: block;
 flex-shrink: 0;
}

.site-header .site-brand__name {
 font-weight: 800;
 font-size: clamp(0.85rem, 2vw, 1rem);
 letter-spacing: 0.06em;
 text-transform: uppercase;
 line-height: 1.2;
 color: var(--ramaya-header-text) !important;
}

.site-header--brand-icon-text .site-brand__name {
 text-shadow:
 0 1px 2px rgba(14, 31, 41, 0.35),
 0 0 22px rgba(82, 169, 184, 0.42);
}

.site-header--brand-icon-text .site-brand__logo--icon {
 border: none;
 box-shadow: none;
 background: transparent;
}

.site-header--brand-icon-text .site-brand__logo--icon.site-brand__logo--with-image {
 border-radius: 0;
 overflow: visible;
 width: auto;
 height: auto;
 max-width: 42px;
 max-height: 42px;
}

.site-header--brand-icon-text .site-brand__logo--icon.site-brand__logo--with-image .site-brand__img--icon {
 padding: 0;
 width: auto;
 height: auto;
 max-width: 42px;
 max-height: 42px;
}

/* Brand: logo penuh (Customizer) — kompatibel PNG/SVG transparan */
.site-header .site-brand__full-wrap {
 display: flex;
 align-items: center;
 max-width: min(220px, 52vw);
 line-height: 0;
 background: transparent;
}

.site-header .site-brand__img--full {
 display: block;
 max-height: 2.75rem;
 width: auto;
 max-width: 100%;
 height: auto;
 object-fit: contain;
 background: transparent;
}

/* Brand: ikon kecil + judul */
.site-header .site-brand__logo--icon {
 flex-shrink: 0;
 width: 40px;
 height: 40px;
 overflow: hidden;
 display: flex;
 align-items: center;
 justify-content: center;
 color: var(--ramaya-header-text) !important;
 background: var(--ramaya-brand-icon-bg);
}

.site-header .site-brand__logo--icon.site-brand__logo--circle {
 border-radius: 50%;
}

.site-header .site-brand__logo--icon.site-brand__logo--square {
 border-radius: 8px;
}

.site-header .site-brand__img--icon {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}

/* Gambar unggahan di mode ikon: tanpa pelat warna tema di balik transparansi logo */
.site-header .site-brand__logo--icon.site-brand__logo--with-image {
 background: transparent !important;
 box-shadow: none;
}

.site-header .site-brand__logo--icon.site-brand__logo--with-image .site-brand__img--icon {
 object-fit: contain;
 object-position: center;
 padding: 2px;
 box-sizing: border-box;
 background: transparent;
}

/* Panel: desktop = inline; mobile = dropdown (lihat media query) */
.site-header .site-header__panel {
 flex: 1 1 auto;
 min-width: 0;
 display: flex;
 justify-content: flex-end;
 align-items: center;
}

.site-header .site-header__actions {
 display: flex !important;
 flex-direction: row !important;
 flex-wrap: wrap !important;
 align-items: center !important;
 justify-content: flex-end !important;
 gap: 1rem;
 width: 100%;
 min-width: 0;
}

/* Grup tombol kanan header (currency + hamburger) — mobile */
.site-header .site-header__bar-end {
 display: none;
 align-items: center;
 gap: 6px;
 flex-shrink: 0;
}

@media (max-width: 991.98px) {
 .site-header .site-header__bar-end {
 display: inline-flex;
 }
}

/* Tombol hamburger — hanya mobile */
.site-header .site-header__toggle {
 display: none;
 flex-shrink: 0;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 margin: 0;
 padding: 0;
 border: 1px solid color-mix(in srgb, var(--ramaya-sea) 40%, rgba(255, 255, 255, 0.35));
 border-radius: 12px;
 background: linear-gradient(
 145deg,
 rgba(255, 255, 255, 0.18) 0%,
 rgba(82, 169, 184, 0.22) 100%
 );
 color: var(--ramaya-header-text);
 cursor: pointer;
 box-shadow: 0 4px 14px rgba(14, 31, 41, 0.16);
 transition:
 background-color var(--ramaya-duration) var(--ramaya-ease-out),
 transform var(--ramaya-duration) var(--ramaya-ease-out),
 box-shadow var(--ramaya-duration) var(--ramaya-ease-out);
 -webkit-tap-highlight-color: transparent;
}

.site-header .site-header__toggle:hover,
.site-header .site-header__toggle:focus-visible {
 background: linear-gradient(
 145deg,
 rgba(255, 255, 255, 0.28) 0%,
 rgba(82, 169, 184, 0.34) 100%
 );
 box-shadow: 0 6px 18px rgba(14, 31, 41, 0.2);
 outline: 2px solid var(--ramaya-toggle-outline);
 outline-offset: 2px;
}

.site-header .site-header__toggle-bars {
 position: relative;
 display: block;
 width: 20px;
 height: 14px;
}

.site-header .site-header__toggle-line {
 position: absolute;
 left: 0;
 width: 100%;
 height: 2px;
 border-radius: 1px;
 background: currentColor;
 transition:
 transform var(--ramaya-duration) var(--ramaya-ease-out),
 opacity var(--ramaya-duration) var(--ramaya-ease-out),
 top var(--ramaya-duration) var(--ramaya-ease-out);
}

.site-header .site-header__toggle-line:nth-child(1) {
 top: 0;
}

.site-header .site-header__toggle-line:nth-child(2) {
 top: 6px;
}

.site-header .site-header__toggle-line:nth-child(3) {
 top: 12px;
}

.site-header.site-header--nav-open .site-header__toggle-line:nth-child(1) {
 top: 6px;
 transform: rotate(45deg);
}

.site-header.site-header--nav-open .site-header__toggle-line:nth-child(2) {
 opacity: 0;
 transform: scaleX(0);
}

.site-header.site-header--nav-open .site-header__toggle-line:nth-child(3) {
 top: 6px;
 transform: rotate(-45deg);
}

/* Backdrop: di belakang inner + dropdown, di atas konten halaman */
.site-header .site-header__backdrop {
 display: block;
 position: fixed;
 inset: 0;
 z-index: 1;
 background: var(--ramaya-backdrop);
 -webkit-backdrop-filter: blur(6px);
 backdrop-filter: blur(6px);
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transition:
 opacity var(--ramaya-duration) var(--ramaya-ease-out),
 visibility var(--ramaya-duration) var(--ramaya-ease-out);
}

.site-header.site-header--nav-open .site-header__backdrop {
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
}

.site-header .site-nav {
 display: block !important;
 margin: 0;
 padding: 0;
 background: transparent !important;
 border: none !important;
}

.site-header .site-nav .menu,
.site-header .site-nav ul.menu {
 list-style: none !important;
 margin: 0 !important;
 padding: 0 !important;
 display: flex !important;
 flex-direction: row !important;
 flex-wrap: wrap !important;
 align-items: center !important;
 gap: 0.25rem;
}

.site-header .site-nav .menu li {
 margin: 0;
 padding: 0;
 list-style: none !important;
 background: transparent !important;
 border: none !important;
 float: none !important;
 position: relative;
}

.site-header .site-nav .menu .ramaya-menu-item__inner {
 display: flex;
 align-items: center;
 gap: 0.35rem;
}

.site-header .site-nav .menu .ramaya-menu-item__inner > a {
 flex: 1 1 auto;
 min-width: 0;
}

.site-header .site-nav .menu .ramaya-submenu-toggle {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 38px;
 height: 38px;
 border-radius: 999px;
 border: none;
 background: transparent;
 color: var(--ramaya-header-text);
 cursor: pointer;
 flex: 0 0 auto;
 transition: background-color 0.15s ease, transform 0.15s ease;
}

.site-header .site-nav .menu .ramaya-submenu-toggle:hover,
.site-header .site-nav .menu .ramaya-submenu-toggle:focus {
 background: var(--ramaya-nav-hover-bg);
 outline: none;
}

.site-header .site-nav .menu .ramaya-submenu-toggle__icon {
 width: 10px;
 height: 10px;
 border-right: 2px solid currentColor;
 border-bottom: 2px solid currentColor;
 transform: rotate(45deg);
 display: inline-block;
}

.site-header .site-nav .menu li.ramaya-submenu-open > .ramaya-menu-item__inner > .ramaya-submenu-toggle .ramaya-submenu-toggle__icon {
 transform: rotate(-135deg);
}

.site-header .site-nav .menu ul.sub-menu {
 list-style: none;
 margin: 0;
 padding: 0;
}

.site-header .site-nav .menu a,
.site-header .site-nav .menu a:link,
.site-header .site-nav .menu a:visited,
.site-header .site-nav .menu .nav-link {
 display: inline-block !important;
 padding: 0.45rem 0.95rem !important;
 border-radius: 999px !important;
 border: none !important;
 color: var(--ramaya-header-text) !important;
 font-weight: 500;
 font-size: 0.9rem;
 text-decoration: none !important;
 background: transparent !important;
 transition: background-color 0.15s ease;
 box-shadow: none !important;
}

.site-header .site-nav .menu a:hover,
.site-header .site-nav .menu a:focus,
.site-header .site-nav .menu .nav-link:hover {
 text-decoration: none !important;
 color: var(--ramaya-header-text) !important;
 background: var(--ramaya-nav-hover-bg) !important;
}

.site-header .site-nav .menu .current-menu-item > a,
.site-header .site-nav .menu .current_page_item > a,
.site-header .site-nav .menu .current-menu-item > .nav-link {
 background: var(--ramaya-nav-active-bg) !important;
 color: var(--ramaya-header-text) !important;
}

.site-header a.site-header__wa,
.site-header .site-header__wa {
 display: inline-flex !important;
 align-items: center !important;
 justify-content: center !important;
 width: 44px !important;
 height: 44px !important;
 min-width: 44px;
 border-radius: 50% !important;
 background: var(--ramaya-wa-bg) !important;
 color: var(--ramaya-wa-color) !important;
 text-decoration: none !important;
 flex-shrink: 0;
 border: none !important;
 padding: 0 !important;
 box-shadow: none !important;
 transition: transform 0.15s ease, filter 0.15s ease;
}

.site-header a.site-header__wa:hover,
.site-header a.site-header__wa:focus,
.site-header .site-header__wa:hover {
 text-decoration: none !important;
 color: var(--ramaya-wa-color) !important;
 background: var(--ramaya-wa-bg) !important;
 filter: brightness(1.08);
 transform: scale(1.04);
}

.site-header .site-header__wa-icon {
 display: block;
 color: inherit;
}

/* ——— Mobile: dropdown ke bawah + hamburger ——— */
@media (max-width: 991.98px) {
 .site-header .site-header__inner {
 flex-direction: column !important;
 flex-wrap: nowrap !important;
 align-items: stretch !important;
 gap: 0;
 }

 .site-header .site-header__bar {
 display: flex !important;
 flex-direction: row !important;
 flex-wrap: nowrap !important;
 justify-content: space-between !important;
 align-items: center !important;
 width: 100%;
 gap: 0.75rem;
 flex-shrink: 0;
 min-height: 44px;
 }

 .site-header .site-header__toggle {
 display: inline-flex !important;
 }

 .site-header .site-header__panel {
 position: relative !important;
 inset: auto !important;
 flex: 0 0 auto !important;
 display: flex !important;
 flex-direction: column !important;
 align-items: stretch !important;
 justify-content: flex-start !important;
 width: 100% !important;
 max-width: none !important;
 margin: 0 !important;
 padding: 0 !important;
 background: transparent !important;
 box-shadow: none !important;
 -webkit-backdrop-filter: none !important;
 backdrop-filter: none !important;
 transform: none !important;
 z-index: 3;
 max-height: 0;
 opacity: 0;
 overflow: hidden;
 visibility: hidden;
 pointer-events: none;
 transition:
 max-height 0.38s var(--ramaya-ease-out),
 opacity var(--ramaya-duration) var(--ramaya-ease-out),
 visibility var(--ramaya-duration) var(--ramaya-ease-out);
 }

 .site-header.site-header--nav-open .site-header__panel {
 max-height: min(78vh, 520px);
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
 overflow-x: hidden;
 overflow-y: auto;
 -webkit-overflow-scrolling: touch;
 }

 .site-header .site-header__actions {
 flex-direction: column !important;
 align-items: stretch !important;
 justify-content: flex-start !important;
 gap: 0.45rem;
 margin-top: 0.65rem;
 padding: 0.85rem 0.85rem 1rem;
 border-radius: 18px;
 background: var(--ramaya-mobile-panel-bg) !important;
 -webkit-backdrop-filter: blur(20px);
 backdrop-filter: blur(20px);
 box-shadow: var(--ramaya-mobile-panel-shadow);
 border: 1px solid var(--ramaya-mobile-panel-outer-border);
 }

 .site-header .site-nav .menu,
 .site-header .site-nav ul.menu {
 flex-direction: column !important;
 align-items: stretch !important;
 width: 100%;
 gap: 0.25rem;
 }

 .site-header .site-nav .menu a,
 .site-header .site-nav .menu a:link,
 .site-header .site-nav .menu a:visited,
 .site-header .site-nav .menu .nav-link {
 display: block !important;
 width: 100%;
 padding: 0.78rem 0.95rem !important;
 border-radius: 14px !important;
 font-size: 0.98rem;
 font-weight: 500;
 letter-spacing: 0.01em;
 text-align: left;
 }

 .site-header .site-nav .menu li.ramaya-has-submenu > ul.sub-menu {
 display: none;
 padding: 0.2rem 0 0.45rem;
 }

 .site-header .site-nav .menu li.ramaya-has-submenu.ramaya-submenu-open > ul.sub-menu {
 display: flex;
 }

 /* Jarak antar grup (parent -> submenu) biar tidak terlalu mepet */
 .site-header .site-nav .menu li.ramaya-has-submenu.ramaya-submenu-open > ul.sub-menu {
 margin-top: 6px;
 }

 .site-header .site-nav .menu ul.sub-menu a {
 padding: 0.65rem 0.95rem !important;
 border-radius: 12px !important;
 opacity: 0.95;
 }

 .site-header .site-nav .menu ul.sub-menu {
 /* Minimal, modern: no vertical line */
 margin-left: 0.35rem;
 padding-left: 0;
 border-left: none;
 flex-direction: column;
 gap: 4px;
 }

 .site-header .site-nav .menu li.ramaya-has-submenu > ul.sub-menu a {
 background: rgba(255, 255, 255, 0.04) !important;
 }

 .site-header .site-nav .menu li.ramaya-has-submenu > ul.sub-menu a:hover,
 .site-header .site-nav .menu li.ramaya-has-submenu > ul.sub-menu a:focus {
 background: rgba(255, 255, 255, 0.08) !important;
 }

 .site-header .site-nav .menu .ramaya-submenu-toggle {
 width: 44px;
 height: 44px;
 border-radius: 14px;
 background: rgba(255, 255, 255, 0.06);
 }

 /* Mobile WA: tombol pill memanjang di kanan */
 .site-header a.site-header__wa,
 .site-header .site-header__wa {
 margin-top: 0.65rem;
 align-self: flex-end;
 width: auto !important;
 min-width: 0 !important;
 height: 44px !important;
 border-radius: 999px !important;
 padding: 0 14px !important;
 gap: 10px;
 box-shadow: 0 10px 26px rgba(0, 0, 0, 0.22);
 }

 .site-header .site-header__wa::after {
 content: "WhatsApp";
 font-weight: 600;
 font-size: 0.95rem;
 letter-spacing: 0.01em;
 color: inherit;
 line-height: 1;
 white-space: nowrap;
 }
}

/* ——— Desktop: menu horizontal + dropdown ——— */
@media (min-width: 992px) {
 .site-header .site-header__inner {
 flex-direction: row !important;
 flex-wrap: nowrap !important;
 align-items: center !important;
 gap: 0.75rem;
 }

 .site-header .site-header__bar {
 display: contents !important;
 }

 .site-header .site-header__backdrop {
 display: none !important;
 }

 .site-header .site-header__toggle {
 display: none !important;
 }

 .site-header .site-header__panel {
 position: static !important;
 transform: none !important;
 visibility: visible !important;
 width: auto !important;
 max-width: none !important;
 max-height: none !important;
 opacity: 1 !important;
 inset: auto !important;
 flex: 1 1 auto !important;
 flex-direction: row !important;
 justify-content: flex-end !important;
 align-items: center !important;
 overflow: visible !important;
 pointer-events: auto !important;
 background: transparent !important;
 box-shadow: none !important;
 -webkit-backdrop-filter: none !important;
 backdrop-filter: none !important;
 transition: none !important;
 z-index: auto;
 }

 .site-header .site-nav .menu li.ramaya-has-submenu > ul.sub-menu {
 position: absolute;
 /* nempel ke parent agar hover tidak putus */
 top: 100%;
 left: 0;
 min-width: 240px;
 padding: 0.5rem;
 border-radius: 14px;
 background: var(--ramaya-dropdown-bg);
 -webkit-backdrop-filter: blur(18px);
 backdrop-filter: blur(18px);
 box-shadow: var(--ramaya-dropdown-shadow);
 border: 1px solid var(--ramaya-dropdown-border);
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transform: translateY(6px);
 transition:
 opacity var(--ramaya-duration) var(--ramaya-ease-out),
 transform var(--ramaya-duration) var(--ramaya-ease-out),
 visibility var(--ramaya-duration) var(--ramaya-ease-out);
 z-index: 99999;
 }

 .site-header .site-nav .menu li.ramaya-has-submenu:hover > ul.sub-menu,
 .site-header .site-nav .menu li.ramaya-has-submenu:focus-within > ul.sub-menu,
 .site-header .site-nav .menu li.ramaya-has-submenu.ramaya-submenu-open > ul.sub-menu {
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
 transform: translateY(0);
 }

 .site-header .site-nav .menu li.ramaya-has-submenu > ul.sub-menu a {
 display: block !important;
 width: 100%;
 border-radius: 10px !important;
 padding: 0.55rem 0.85rem !important;
 white-space: normal;
 }

 .site-header .site-nav .menu li.ramaya-has-submenu > ul.sub-menu a:hover,
 .site-header .site-nav .menu li.ramaya-has-submenu > ul.sub-menu a:focus {
 background: rgba(255, 255, 255, 0.10) !important;
 }

 .site-header .site-nav .menu li.ramaya-has-submenu > .ramaya-menu-item__inner > a {
 padding-right: 0.55rem !important;
 }
}

/* Konten — sama lebar & jarak kiri-kanan dengan header */
.site {
 max-width: var(--ramaya-content-max);
 margin-left: auto;
 margin-right: auto;
 padding: 1.5rem var(--ramaya-gutter-x);
 width: 100%;
}

.site-title {
 font-size: 1.5rem;
 margin: 0 0 0.5rem;
}

.site-description {
 margin: 0 0 2rem;
 color: var(--ramaya-muted);
 font-size: 0.95rem;
}

.entry {
 margin-bottom: 2rem;
 padding-bottom: 2rem;
 border-bottom: 1px solid var(--ramaya-border);
}

.entry-title {
 font-size: 1.25rem;
 margin: 0 0 0.5rem;
}

.entry-meta {
 font-size: 0.85rem;
 color: var(--ramaya-meta);
 margin-bottom: 0.75rem;
}

.entry--singular {
 border-bottom: none;
 padding-bottom: 0;
}

.entry-title--singular {
 font-size: clamp(1.35rem, 3vw, 1.75rem);
 font-weight: 700;
 margin: 0 0 0.5rem;
 color: color-mix(in srgb, var(--ramaya-heading) 92%, var(--ramaya-body-text));
}

.entry-content {
 line-height: 1.65;
 color: var(--ramaya-body-text);
}

.entry-content a {
 color: var(--ramaya-link);
 font-weight: 500;
}

.entry-content a:hover {
 color: var(--ramaya-sea-deep, var(--ramaya-link));
}

.entry-content > *:first-child {
 margin-top: 0;
}

.entry-content p {
 margin: 0 0 1rem;
}

.entry-content ul,
.entry-content ol {
 margin: 0 0 1rem 1.25rem;
 padding: 0;
}

.entry-content li {
 margin-bottom: 0.35rem;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
 margin: 1.5rem 0 0.75rem;
 line-height: 1.35;
 color: var(--ramaya-heading);
}

.entry-content h2:first-child,
.entry-content h3:first-child {
 margin-top: 0;
}

.entry-content blockquote {
 margin: 1rem 0;
 padding-left: 1rem;
 border-left: 3px solid var(--ramaya-blockquote-border);
 color: var(--ramaya-blockquote-text);
}

.entry-content .page-links,
.entry-content nav.page-links {
 margin-top: 1.5rem;
 font-size: 0.9rem;
 color: var(--ramaya-meta);
}

.page-links-title {
 margin-right: 0.35rem;
}

/* Gutenberg / WP block buttons — selaras CTA booking */
.entry-content .wp-block-button__link,
.wp-block-button__link {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 0.65rem 1.25rem;
 border-radius: 999px;
 background: linear-gradient(
 180deg,
 var(--ramaya-sea, var(--ramaya-link)) 0%,
 var(--ramaya-sea-deep, var(--ramaya-link)) 100%
 );
 color: #fff !important;
 border: none;
 font-weight: 600;
 font-size: 0.9375rem;
 line-height: 1.2;
 text-decoration: none !important;
 box-shadow: var(--ramaya-btn-shadow);
 transition:
 background 0.2s var(--ramaya-ease-out, ease),
 box-shadow 0.2s var(--ramaya-ease-out, ease),
 transform 0.15s var(--ramaya-ease-out, ease);
}

.entry-content .wp-block-button__link:hover,
.wp-block-button__link:hover {
 background: linear-gradient(
 180deg,
 var(--ramaya-sea-hover, var(--ramaya-link)) 0%,
 var(--ramaya-sea-deep, var(--ramaya-link)) 100%
 );
 box-shadow: var(--ramaya-btn-shadow-hover);
 transform: translateY(-1px);
 color: #fff !important;
}

.entry-content .wp-block-button.is-style-outline .wp-block-button__link {
 background: transparent;
 color: var(--ramaya-sea-deep, var(--ramaya-link)) !important;
 border: 1px solid var(--ramaya-sea-mid, var(--ramaya-border));
 box-shadow: none;
}

.entry-content .wp-block-button.is-style-outline .wp-block-button__link:hover {
 background: var(--ramaya-sea-soft, var(--ramaya-page-soft));
 border-color: var(--ramaya-sea, var(--ramaya-link));
 color: var(--ramaya-sea-deep, var(--ramaya-link)) !important;
 transform: none;
}

.site-footer {
 margin-top: 3rem;
 padding: 0;
 border: none;
 background: transparent;
 font-size: 0.9rem;
 color: var(--ramaya-footer-text);
 clear: both;
}

/* Ruang bawah halaman diserahkan ke footer agar atas/bawah konten footer seimbang */
.site:has(> .site-footer:last-child) {
 padding-bottom: 0;
}

.site-footer__inner {
 --ramaya-footer-row-h: 2.125rem;
 display: flex;
 align-items: center;
 justify-content: space-between;
 flex-wrap: nowrap;
 gap: 0.75rem 1rem;
 max-width: var(--ramaya-content-max);
 margin-left: auto;
 margin-right: auto;
 padding: 1.25rem 0;
 border-top: 1px solid var(--ramaya-border);
 box-sizing: border-box;
 width: 100%;
 min-height: calc(var(--ramaya-footer-row-h) + 2.5rem);
}

.site-footer p,
.site-footer__copy {
 margin: 0;
 flex: 1 1 auto;
 min-width: 0;
 display: flex;
 align-items: center;
 align-self: center;
 height: var(--ramaya-footer-row-h);
 min-height: var(--ramaya-footer-row-h);
 line-height: 1;
}

.site-footer__copy-inner {
 display: inline-flex;
 align-items: center;
 gap: 0.35em;
 line-height: 1;
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
 max-width: 100%;
}

.site-footer__copy a {
 display: inline-flex;
 align-items: center;
 line-height: 1;
 flex-shrink: 0;
}

.site-footer__actions {
 display: flex;
 align-items: center;
 align-self: center;
 flex: 0 0 auto;
 flex-wrap: nowrap;
 gap: 0.5rem;
 margin-left: auto;
 height: var(--ramaya-footer-row-h);
 overflow: visible;
}

.site-footer__bar,
.site-footer__inner {
 overflow: visible;
}

.ramaya-footer-btn {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 0.45rem;
 box-sizing: border-box;
 height: var(--ramaya-footer-row-h);
 min-height: var(--ramaya-footer-row-h);
 padding: 0 1rem 0 0.75rem;
 border-radius: 999px;
 border: 1px solid transparent;
 font-size: 0.8125rem;
 font-weight: 600;
 letter-spacing: 0.02em;
 line-height: 1;
 text-decoration: none;
 white-space: nowrap;
 cursor: pointer;
 font-family: inherit;
 transition:
 color 0.2s var(--ramaya-ease-out, ease),
 background 0.2s var(--ramaya-ease-out, ease),
 border-color 0.2s var(--ramaya-ease-out, ease),
 box-shadow 0.2s var(--ramaya-ease-out, ease),
 transform 0.15s var(--ramaya-ease-out, ease);
}

.ramaya-footer-btn__icon {
 display: inline-flex;
 flex-shrink: 0;
 align-items: center;
 justify-content: center;
 width: 1.125rem;
 height: 1.125rem;
}

.ramaya-footer-btn__icon svg {
 display: block;
 width: 100%;
 height: 100%;
}

.ramaya-footer-btn__label {
 line-height: 1.1;
}

.ramaya-footer-btn--icon-only {
 width: var(--ramaya-footer-row-h);
 min-width: var(--ramaya-footer-row-h);
 padding: 0;
 justify-content: center;
}

.ramaya-footer-btn--icon-only .ramaya-footer-btn__icon {
 width: 1.125rem;
 height: 1.125rem;
}

.ramaya-footer-btn--login {
 color: #fff;
 background: linear-gradient(
 135deg,
 var(--ramaya-sea, var(--ramaya-link)) 0%,
 var(--ramaya-sea-deep, var(--ramaya-link)) 100%
 );
 border-color: color-mix(in srgb, var(--ramaya-sea, var(--ramaya-link)) 35%, transparent);
 box-shadow:
 0 1px 2px rgba(14, 31, 41, 0.06),
 var(--ramaya-btn-shadow);
}

.ramaya-footer-btn--login:hover,
.ramaya-footer-btn--login:focus-visible {
 color: #fff;
 background: linear-gradient(
 135deg,
 var(--ramaya-sea-hover, var(--ramaya-link)) 0%,
 var(--ramaya-sea, var(--ramaya-link)) 100%
 );
 box-shadow:
 0 2px 4px rgba(14, 31, 41, 0.08),
 var(--ramaya-btn-shadow-hover);
 transform: translateY(-1px);
 outline: none;
}

.ramaya-footer-btn--dashboard {
 color: var(--ramaya-body-text);
 background: #fff;
 border-color: var(--ramaya-border);
 box-shadow:
 0 1px 2px rgba(14, 31, 41, 0.04),
 0 4px 12px rgba(14, 31, 41, 0.04);
}

.ramaya-footer-btn--dashboard:hover,
.ramaya-footer-btn--dashboard:focus-visible {
 color: var(--ramaya-sea-deep, var(--ramaya-link));
 border-color: color-mix(in srgb, var(--ramaya-sea, var(--ramaya-link)) 35%, var(--ramaya-border));
 background: var(--ramaya-sea-soft, var(--ramaya-page-soft));
 box-shadow:
 0 2px 4px rgba(14, 31, 41, 0.06),
 0 8px 20px rgba(82, 169, 184, 0.12);
 transform: translateY(-1px);
 outline: none;
}

/* Footer dashboard submenu (premium) */
.ramaya-footer-dashboard {
 position: relative;
 display: inline-flex;
}

.ramaya-footer-dashboard__chevron {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 0.875rem;
 height: 0.875rem;
 margin-left: -0.15rem;
 opacity: 0.72;
 transition: transform 0.22s var(--ramaya-ease-out, ease), opacity 0.2s ease;
}

.ramaya-footer-dashboard.is-open .ramaya-footer-dashboard__chevron {
 transform: rotate(180deg);
 opacity: 1;
}

.ramaya-footer-dashboard.is-open .ramaya-footer-btn--dashboard {
 color: var(--ramaya-sea-deep, var(--ramaya-link));
 border-color: color-mix(in srgb, var(--ramaya-sea, var(--ramaya-link)) 42%, var(--ramaya-border));
 background: var(--ramaya-sea-soft, var(--ramaya-page-soft));
 box-shadow:
 0 2px 6px rgba(14, 31, 41, 0.08),
 0 10px 24px rgba(82, 169, 184, 0.16);
}

.ramaya-footer-dashboard__menu {
 position: absolute;
 right: 0;
 bottom: calc(100% + 0.65rem);
 z-index: 120;
 min-width: min(17.5rem, calc(100vw - 2rem));
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transform: translateY(0.5rem) scale(0.96);
 transform-origin: bottom right;
 transition:
 opacity 0.22s var(--ramaya-ease-out, ease),
 visibility 0.22s var(--ramaya-ease-out, ease),
 transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
}

.ramaya-footer-dashboard.is-open .ramaya-footer-dashboard__menu {
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
 transform: translateY(0) scale(1);
}

.ramaya-footer-dashboard__menu-glow {
 position: absolute;
 inset: -1px;
 border-radius: 1rem;
 background: linear-gradient(
 135deg,
 color-mix(in srgb, var(--ramaya-sea, #52a9b8) 55%, transparent),
 color-mix(in srgb, var(--ramaya-link, #0e7490) 35%, transparent)
 );
 opacity: 0.55;
 filter: blur(10px);
 pointer-events: none;
}

.ramaya-footer-dashboard__menu-inner {
 position: relative;
 padding: 0.55rem;
 border-radius: 0.95rem;
 background:
 linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 252, 253, 0.96) 100%);
 border: 1px solid color-mix(in srgb, var(--ramaya-sea, #52a9b8) 22%, var(--ramaya-border));
 box-shadow:
 0 1px 2px rgba(14, 31, 41, 0.06),
 0 12px 32px rgba(14, 31, 41, 0.14),
 0 24px 48px rgba(82, 169, 184, 0.12);
 backdrop-filter: blur(12px);
 -webkit-backdrop-filter: blur(12px);
}

.ramaya-footer-dashboard__menu-head {
 margin: 0 0 0.35rem;
 padding: 0.15rem 0.45rem 0.25rem;
 font-size: 0.625rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: #64748b;
}

.ramaya-footer-dashboard__item {
 display: flex;
 align-items: center;
 gap: 0.65rem;
 padding: 0.55rem 0.55rem;
 border-radius: 0.7rem;
 text-decoration: none;
 color: var(--ramaya-body-text, #0f172a);
 transition:
 background 0.18s ease,
 color 0.18s ease,
 transform 0.18s ease,
 box-shadow 0.18s ease;
}

.ramaya-footer-dashboard__item + .ramaya-footer-dashboard__item {
 margin-top: 0.2rem;
}

.ramaya-footer-dashboard__item:hover,
.ramaya-footer-dashboard__item:focus-visible {
 color: var(--ramaya-sea-deep, var(--ramaya-link));
 background: linear-gradient(
 135deg,
 color-mix(in srgb, var(--ramaya-sea-soft, #e8f6f8) 80%, #fff),
 #fff
 );
 box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ramaya-sea, #52a9b8) 18%, transparent);
 transform: translateX(2px);
 outline: none;
}

.ramaya-footer-dashboard__item-icon {
 display: inline-flex;
 flex-shrink: 0;
 align-items: center;
 justify-content: center;
 width: 2.1rem;
 height: 2.1rem;
 border-radius: 0.6rem;
 color: var(--ramaya-sea-deep, var(--ramaya-link));
 background: linear-gradient(
 145deg,
 color-mix(in srgb, var(--ramaya-sea-soft, #e8f6f8) 90%, #fff),
 #fff
 );
 border: 1px solid color-mix(in srgb, var(--ramaya-sea, #52a9b8) 16%, var(--ramaya-border));
 box-shadow: 0 2px 8px rgba(82, 169, 184, 0.1);
}

.ramaya-footer-dashboard__item-body {
 display: flex;
 flex-direction: column;
 gap: 0.1rem;
 min-width: 0;
 flex: 1 1 auto;
}

.ramaya-footer-dashboard__item-title {
 font-size: 0.8125rem;
 font-weight: 650;
 line-height: 1.25;
}

.ramaya-footer-dashboard__item-desc {
 font-size: 0.6875rem;
 font-weight: 500;
 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
 color: #94a3b8;
 line-height: 1.2;
}

.ramaya-footer-dashboard__item-arrow {
 flex-shrink: 0;
 font-size: 1.15rem;
 line-height: 1;
 color: #cbd5e1;
 transition: color 0.18s ease, transform 0.18s ease;
}

.ramaya-footer-dashboard__item:hover .ramaya-footer-dashboard__item-arrow,
.ramaya-footer-dashboard__item:focus-visible .ramaya-footer-dashboard__item-arrow {
 color: var(--ramaya-sea, var(--ramaya-link));
 transform: translateX(2px);
}

.ramaya-footer-btn--logout {
 color: #64748b;
 background: rgba(255, 255, 255, 0.92);
 border-color: var(--ramaya-border);
 box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.ramaya-footer-btn--logout:hover,
.ramaya-footer-btn--logout:focus-visible {
 color: #dc2626;
 border-color: #fecaca;
 background: #fef2f2;
 box-shadow: 0 4px 14px rgba(220, 38, 38, 0.12);
 transform: translateY(-1px);
 outline: none;
}

.ramaya-footer-btn:active {
 transform: translateY(0);
}

@media (max-width: 640px) {
 .site-footer__inner {
 --ramaya-footer-row-h: 2rem;
 gap: 0.5rem 0.65rem;
 padding: 1rem 0;
 min-height: calc(var(--ramaya-footer-row-h) + 2rem);
 }

 .site-footer {
 font-size: 0.8125rem;
 }

 .ramaya-footer-btn {
 padding: 0 0.75rem 0 0.6rem;
 font-size: 0.6875rem;
 gap: 0.35rem;
 box-shadow: none;
 }

 .ramaya-footer-btn--icon-only {
 width: var(--ramaya-footer-row-h);
 min-width: var(--ramaya-footer-row-h);
 padding: 0;
 }

 .ramaya-footer-btn--login,
 .ramaya-footer-btn--dashboard,
 .ramaya-footer-btn--logout {
 box-shadow: none;
 }

 .ramaya-footer-btn:hover,
 .ramaya-footer-btn:focus-visible {
 transform: none;
 }

 .ramaya-footer-btn__icon {
 width: 1rem;
 height: 1rem;
 }
}

body.ramaya-login-modal-open {
 overflow: hidden;
}

.ramaya-login-modal {
 --ramaya-login-accent: var(--ramaya-sea, #52a9b8);
 --ramaya-login-accent-deep: var(--ramaya-sea-deep, #2c5f6b);
 --ramaya-login-accent-soft: var(--ramaya-sea-soft, #e9f4f6);
 --ramaya-login-ink: var(--ramaya-heading, #0e1f29);
 --ramaya-login-muted: var(--ramaya-muted, #5b6f7a);
 --ramaya-login-surface: #ffffff;
 --ramaya-login-field: var(--ramaya-page-soft, #f4fafc);
 --ramaya-login-border: var(--ramaya-border, #e3eaee);
 position: fixed;
 inset: 0;
 z-index: 100000;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 1.25rem;
 box-sizing: border-box;
}

.ramaya-login-modal[hidden] {
 display: none !important;
}

.ramaya-login-modal__backdrop {
 position: absolute;
 inset: 0;
 background: rgba(30, 41, 59, 0.32);
 -webkit-backdrop-filter: blur(10px);
 backdrop-filter: blur(10px);
}

.ramaya-login-modal__dialog {
 position: relative;
 width: 100%;
 max-width: 26rem;
 padding: 2rem 1.75rem 1.75rem;
 border-radius: 20px;
 background: var(--ramaya-login-surface);
 border: 1px solid rgba(255, 255, 255, 0.85);
 box-shadow:
 0 4px 6px rgba(15, 23, 42, 0.04),
 0 24px 60px rgba(15, 23, 42, 0.12);
 box-sizing: border-box;
}

.ramaya-login-modal__close {
 position: absolute;
 top: 1rem;
 right: 1rem;
 width: 2.25rem;
 height: 2.25rem;
 padding: 0;
 border: none;
 border-radius: 999px;
 background: #f1f5f9;
 color: #64748b;
 font-size: 1.35rem;
 line-height: 1;
 cursor: pointer;
 transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.ramaya-login-modal__close:hover,
.ramaya-login-modal__close:focus-visible {
 background: #e8eef6;
 color: var(--ramaya-login-ink);
 outline: none;
 transform: scale(1.04);
}

.ramaya-login-modal__header {
 text-align: center;
 margin-bottom: 1.35rem;
 padding-right: 1.5rem;
}

.ramaya-login-modal__badge {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 3rem;
 height: 3rem;
 margin-bottom: 0.85rem;
 border-radius: 999px;
 background: linear-gradient(145deg, var(--ramaya-login-accent-soft) 0%, #f8fafc 100%);
 color: var(--ramaya-login-accent-deep);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.ramaya-login-modal__badge svg {
 width: 1.35rem;
 height: 1.35rem;
}

.ramaya-login-modal__title {
 margin: 0 0 0.4rem;
 font-size: 1.375rem;
 font-weight: 600;
 letter-spacing: -0.02em;
 color: #1e293b;
}

.ramaya-login-modal__lead {
 margin: 0;
 font-size: 0.875rem;
 font-weight: 400;
 color: var(--ramaya-login-muted);
 line-height: 1.55;
 max-width: 20rem;
 margin-left: auto;
 margin-right: auto;
}

.ramaya-login-modal__message {
 margin: 0 0 1rem;
 padding: 0.65rem 0.85rem;
 border-radius: 10px;
 font-size: 0.8125rem;
 line-height: 1.45;
}

.ramaya-login-modal__message[hidden] {
 display: none !important;
}

.ramaya-login-modal__message.is-error {
 background: #fef7f7;
 color: #b4535a;
 border: 1px solid #f5e0e2;
}

.ramaya-login-modal__message.is-success {
 background: #f4faf6;
 color: #4a7c59;
 border: 1px solid #dceee3;
}

.ramaya-login-form__field {
 margin: 0 0 1.1rem;
}

.ramaya-login-form__field label {
 display: block;
 margin-bottom: 0.4rem;
 font-size: 0.8125rem;
 font-weight: 600;
 letter-spacing: 0.01em;
 color: var(--ramaya-login-ink);
}

.ramaya-login-form__input {
 width: 100%;
 padding: 0.7rem 0.85rem;
 border: 1px solid var(--ramaya-login-border);
 border-radius: 12px;
 background: var(--ramaya-login-field);
 font: inherit;
 font-size: 0.9375rem;
 color: #1e293b;
 box-sizing: border-box;
 transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.ramaya-login-form__input::placeholder {
 color: #a8b4c4;
 opacity: 1;
}

.ramaya-login-form__input:hover {
 border-color: #d5dde8;
 background: #fff;
}

.ramaya-login-form__input:focus {
 border-color: var(--ramaya-login-accent);
 background: #fff;
 outline: none;
 box-shadow: 0 0 0 3px rgba(107, 140, 206, 0.18);
}

.ramaya-login-form__hint {
 display: block;
 margin-top: 0.4rem;
 font-size: 0.75rem;
 line-height: 1.45;
 color: var(--ramaya-login-muted);
}

.ramaya-login-form__field--row {
 display: flex;
 align-items: center;
 justify-content: space-between;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin-bottom: 1.25rem;
}

.ramaya-login-form__remember {
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 font-size: 0.8125rem;
 font-weight: 500;
 color: var(--ramaya-login-ink);
 margin: 0;
 cursor: pointer;
}

.ramaya-login-form__remember input[type="checkbox"] {
 width: 1rem;
 height: 1rem;
 margin: 0;
 accent-color: var(--ramaya-login-accent);
}

.ramaya-login-form__lost {
 font-size: 0.8125rem;
 font-weight: 500;
 color: var(--ramaya-login-accent-deep);
 text-decoration: none;
 transition: color 0.15s ease;
}

.ramaya-login-form__lost:hover {
 color: var(--ramaya-login-accent);
 text-decoration: underline;
}

.ramaya-login-form__submit {
 width: 100%;
 margin-top: 0;
 padding: 0.75rem 1rem;
 border: none;
 border-radius: 12px;
 background: linear-gradient(145deg, var(--ramaya-login-accent) 0%, var(--ramaya-login-accent-deep) 100%);
 color: #fff;
 font: inherit;
 font-size: 0.9375rem;
 font-weight: 600;
 letter-spacing: 0.02em;
 cursor: pointer;
 box-shadow: var(--ramaya-btn-shadow, 0 3px 12px rgba(82, 169, 184, 0.25));
 transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.ramaya-login-form__submit:hover:not(:disabled) {
 background: linear-gradient(
 145deg,
 var(--ramaya-sea-hover, var(--ramaya-login-accent)) 0%,
 var(--ramaya-login-accent-deep) 100%
 );
 box-shadow: var(--ramaya-btn-shadow-hover, 0 6px 20px rgba(82, 169, 184, 0.32));
 transform: translateY(-1px);
}

.ramaya-login-form__submit:active:not(:disabled) {
 transform: translateY(0);
}

.ramaya-login-form__submit:disabled {
 opacity: 0.72;
 cursor: wait;
 box-shadow: none;
}

.ramaya-login-form__submit-text {
 display: inline-block;
}

@media (max-width: 480px) {
 .ramaya-login-modal__dialog {
 padding: 1.65rem 1.25rem 1.5rem;
 border-radius: 18px;
 }

 .ramaya-login-modal__header {
 margin-bottom: 1.15rem;
 }
}

.ramaya-login-dest-modal__choices {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
}

.ramaya-login-dest-modal__choice {
 display: flex;
 align-items: center;
 gap: 0.85rem;
 width: 100%;
 padding: 0.9rem 0.95rem;
 border: 1px solid color-mix(in srgb, var(--ramaya-login-accent, #52a9b8) 18%, var(--ramaya-login-border, #e3eaee));
 border-radius: 14px;
 background:
 linear-gradient(180deg, #ffffff 0%, color-mix(in srgb, var(--ramaya-login-accent-soft, #e9f4f6) 55%, #fff) 100%);
 color: var(--ramaya-login-ink, #0e1f29);
 font: inherit;
 text-align: left;
 cursor: pointer;
 box-shadow: 0 1px 2px rgba(14, 31, 41, 0.04);
 transition:
 border-color 0.18s ease,
 background 0.18s ease,
 box-shadow 0.18s ease,
 transform 0.18s ease;
}

.ramaya-login-dest-modal__choice:hover,
.ramaya-login-dest-modal__choice:focus-visible {
 border-color: color-mix(in srgb, var(--ramaya-login-accent, #52a9b8) 42%, var(--ramaya-login-border, #e3eaee));
 background: linear-gradient(
 135deg,
 color-mix(in srgb, var(--ramaya-login-accent-soft, #e9f4f6) 70%, #fff),
 #fff
 );
 box-shadow:
 0 2px 8px rgba(82, 169, 184, 0.12),
 0 10px 24px rgba(14, 31, 41, 0.06);
 transform: translateY(-1px);
 outline: none;
}

.ramaya-login-dest-modal__choice:active {
 transform: translateY(0);
}

.ramaya-login-dest-modal__choice-icon {
 display: inline-flex;
 flex-shrink: 0;
 align-items: center;
 justify-content: center;
 width: 2.55rem;
 height: 2.55rem;
 border-radius: 0.75rem;
 color: var(--ramaya-login-accent-deep, #2c5f6b);
 background: linear-gradient(145deg, var(--ramaya-login-accent-soft, #e9f4f6) 0%, #fff 100%);
 border: 1px solid color-mix(in srgb, var(--ramaya-login-accent, #52a9b8) 16%, var(--ramaya-login-border, #e3eaee));
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.ramaya-login-dest-modal__choice-icon svg {
 width: 1.25rem;
 height: 1.25rem;
}

.ramaya-login-dest-modal__choice-body {
 display: flex;
 flex-direction: column;
 gap: 0.12rem;
 min-width: 0;
 flex: 1 1 auto;
}

.ramaya-login-dest-modal__choice-label {
 font-size: 1rem;
 font-weight: 700;
 letter-spacing: 0.04em;
 line-height: 1.2;
 color: var(--ramaya-login-ink, #0e1f29);
}

.ramaya-login-dest-modal__choice-desc {
 font-size: 0.8125rem;
 font-weight: 500;
 line-height: 1.35;
 color: var(--ramaya-login-muted, #5b6f7a);
}

.ramaya-login-dest-modal__choice-path {
 font-size: 0.6875rem;
 font-weight: 500;
 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
 line-height: 1.2;
 color: #94a3b8;
}

.ramaya-login-dest-modal__choice-arrow {
 flex-shrink: 0;
 font-size: 1.35rem;
 line-height: 1;
 color: #cbd5e1;
 transition: color 0.18s ease, transform 0.18s ease;
}

.ramaya-login-dest-modal__choice:hover .ramaya-login-dest-modal__choice-arrow,
.ramaya-login-dest-modal__choice:focus-visible .ramaya-login-dest-modal__choice-arrow {
 color: var(--ramaya-login-accent, #52a9b8);
 transform: translateX(2px);
}

.screen-reader-text {
 border: 0;
 clip: rect(1px, 1px, 1px, 1px);
 clip-path: inset(50%);
 height: 1px;
 margin: -1px;
 overflow: hidden;
 padding: 0;
 position: absolute;
 width: 1px;
 word-wrap: normal !important;
}

/* ========== Hero gambar utama (semua halaman termasuk beranda) ========== */
body.ramaya-page-hero {
 overflow-x: hidden;
}

body.ramaya-page-hero header.site-header {
 position: fixed !important;
 top: 0 !important;
 left: 0;
 right: 0;
 width: 100%;
 background: var(--ramaya-header-bg-gradient) !important;
 -webkit-backdrop-filter: blur(16px) saturate(1.3);
 backdrop-filter: blur(16px) saturate(1.3);
 box-shadow: var(--ramaya-header-shadow);
}

body.admin-bar.ramaya-page-hero header.site-header,
html.admin-bar body.ramaya-page-hero header.site-header {
 top: var(--wp-admin--admin-bar--height, 32px) !important;
}

@media screen and (max-width: 782px) {
 body.admin-bar.ramaya-page-hero header.site-header,
 html.admin-bar body.ramaya-page-hero header.site-header {
 top: var(--wp-admin--admin-bar--height, 46px) !important;
 }

 html.ramaya-header-flush-top body.admin-bar.ramaya-page-hero header.site-header,
 html.ramaya-header-flush-top body.ramaya-page-hero.admin-bar header.site-header {
 top: 0 !important;
 }
}

body.ramaya-page-hero .site {
 padding: 0;
 max-width: none;
 width: 100%;
}

body.ramaya-page-hero .site-footer__inner {
 padding-left: var(--ramaya-gutter-x);
 padding-right: var(--ramaya-gutter-x);
}

body.ramaya-page-hero .site-main {
 padding-top: 0;
 margin-top: 0;
 max-width: var(--ramaya-content-max);
 margin-left: auto;
 margin-right: auto;
 width: 100%;
 padding-left: var(--ramaya-gutter-x);
 padding-right: var(--ramaya-gutter-x);
 box-sizing: border-box;
}

body.ramaya-page-hero .entry--front-page,
body.ramaya-page-hero .entry--has-hero,
body.ramaya-page-hero .entry--has-booking-hero {
 margin-top: 0;
 padding-top: 0;
 border-bottom: none;
}

body.ramaya-page-hero .entry-content {
 margin-top: 0;
 padding-top: 0;
}

body.ramaya-page-hero .page-hero {
 width: 100vw;
 max-width: 100vw;
 margin-left: calc(50% - 50vw);
 margin-right: calc(50% - 50vw);
 margin-top: 0;
 margin-bottom: 0;
 line-height: 0;
 position: relative;
 z-index: 0;
 overflow: hidden;
 min-height: clamp(220px, 45vh, 560px);
}

body.ramaya-page-hero .page-hero__img {
 width: 100%;
 height: 100%;
 min-height: clamp(220px, 45vh, 560px);
 object-fit: cover;
 display: block;
}

body.ramaya-page-hero .entry--has-hero .entry-content {
 max-width: 100%;
 margin-left: 0;
 margin-right: 0;
 padding: 1.5rem 0 0;
 box-sizing: border-box;
 width: 100%;
}

/* Booking hero: site-main full-bleed — konten editor di bawah hero ikut kolom 1140 */
body.ramaya-page-hero .entry--has-booking-hero .entry-content,
body.ramaya-booking-hero .entry--booking-page .entry-content {
 max-width: var(--ramaya-content-max);
 margin-left: auto;
 margin-right: auto;
 padding: 1.5rem var(--ramaya-gutter-x) 0;
 box-sizing: border-box;
 width: 100%;
}

/* Blok editor full-bleed tetap dalam kolom 1140 */
body.ramaya-page-hero .entry-content .alignwide,
body.ramaya-page-hero .entry-content .alignfull,
body.ramaya-booking-hero .entry-content .alignwide,
body.ramaya-booking-hero .entry-content .alignfull {
 max-width: 100%;
 margin-left: 0;
 margin-right: 0;
}

/* Hero beranda: identitas situs — tinggi = viewport penuh (desktop & mobile) */
body.ramaya-page-hero .entry--front-page .page-hero--home {
 display: block;
 position: relative;
 isolation: isolate;
 min-height: 100vh;
 min-height: 100dvh;
 min-height: 100svh;
}

body.ramaya-page-hero .entry--front-page .page-hero--home .page-hero__img {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}

body.ramaya-page-hero .entry--front-page .page-hero__overlay {
 position: absolute;
 inset: 0;
 z-index: 1;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: max(env(safe-area-inset-top), 1rem) var(--ramaya-gutter-x) max(env(safe-area-inset-bottom), 1.25rem);
 background: linear-gradient(
 180deg,
 rgba(12, 14, 18, 0.55) 0%,
 rgba(12, 14, 18, 0.28) 45%,
 rgba(12, 14, 18, 0.5) 100%
 );
 pointer-events: none;
}

body.ramaya-page-hero .entry--front-page .page-hero__inner {
 width: 100%;
 max-width: var(--ramaya-content-max);
 margin: 0 auto;
 text-align: center;
 pointer-events: auto;
}

body.ramaya-page-hero .entry--front-page .page-hero__title {
 margin: 0 0 0.5rem;
 font-size: clamp(1.65rem, 5vw, 2.75rem);
 font-weight: 700;
 line-height: 1.15;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: #fff;
 text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

body.ramaya-page-hero .entry--front-page .page-hero__tagline {
 margin: 0;
 max-width: 36rem;
 margin-left: auto;
 margin-right: auto;
 font-size: clamp(0.95rem, 2.4vw, 1.15rem);
 line-height: 1.5;
 font-weight: 400;
 color: rgba(255, 255, 255, 0.92);
 text-shadow: 0 1px 16px rgba(0, 0, 0, 0.35);
}

/* ramaya-overflow-x-guard: kill rare mobile sideways shift */
html {
 overflow-x: clip;
}
.ramaya-page-loader,
.ramaya-page-loader__overlay,
.ramaya-page-loader__center,
.ramaya-page-loader__bar {
 max-width: 100vw;
 max-width: 100%;
}
