/**
 * Bali offer — tropical editorial system.
 */

#bali-main {
	--bali-ink: #173a34;
	--bali-deep: #0c2f2a;
	--bali-jungle: #124b3e;
	--bali-leaf: #2d725c;
	--bali-coral: #e66a4e;
	--bali-coral-dark: #c94d35;
	--bali-sand: #f7f0e3;
	--bali-cream: #fffaf2;
	--bali-aqua: #d9f0ea;
	--bali-gold: #d5a548;
	--bali-muted: #5c6d68;
	--bali-line: rgba(23, 58, 52, .15);
	background: var(--bali-cream);
	color: var(--bali-ink);
	font-family: "Tajawal", sans-serif;
	line-height: 1.75;
	overflow: hidden;
}

#bali-main *, #bali-main *::before, #bali-main *::after { box-sizing: border-box; }
#bali-main a { color: inherit; }
#bali-main h1, #bali-main h2, #bali-main h3, #bali-main p { margin-top: 0; }
#bali-main h1, #bali-main h2, #bali-main h3 {
	color: inherit;
	-webkit-text-fill-color: currentColor;
	background: none;
	letter-spacing: -.025em;
}
#bali-main button, #bali-main input, #bali-main select { font: inherit; }
#bali-main :focus-visible { outline: 3px solid #ffb55e; outline-offset: 4px; }

.ttb-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.ttb-section { padding: clamp(72px, 8vw, 112px) 0; position: relative; }
.ttb-section--sand { background: var(--bali-sand); }
.ttb-eyebrow { color: var(--bali-coral-dark); font-size: .83rem; font-weight: 800; letter-spacing: .08em; margin-bottom: 12px; text-transform: uppercase; }
.ttb-heading { max-width: 780px; margin-bottom: 42px; }
.ttb-heading h2, .ttb-trust h2, .ttb-entry h2, .ttb-season h2, .ttb-faq h2, .ttb-final h2 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.15; margin-bottom: 18px; }
.ttb-heading > p:last-child, .ttb-trust p, .ttb-entry p, .ttb-season p, .ttb-faq header p { color: var(--bali-muted); font-size: 1.08rem; }
.ttb-heading--split { max-width: none; display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: end; }

.ttb-breadcrumb { background: #092b27; color: #dbeae6; border-bottom: 1px solid rgba(255,255,255,.1); }
.ttb-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 13px 0; font-size: .88rem; }
.ttb-breadcrumb li:not(:last-child)::after { content: "/"; margin-inline-start: 8px; opacity: .45; }
.ttb-breadcrumb a { min-height: 44px; display: inline-flex; align-items: center; }

.ttb-hero { min-height: 760px; position: relative; display: grid; align-items: center; color: #fff; background: var(--bali-deep); }
.ttb-hero__media, .ttb-hero__veil { position: absolute; inset: 0; }
.ttb-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 54%; }
.ttb-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,28,25,.2), rgba(3,28,25,.42)); }
.ttb-hero__veil { background: linear-gradient(90deg, rgba(6,35,31,.98) 0%, rgba(6,35,31,.82) 43%, rgba(6,35,31,.28) 76%), linear-gradient(0deg, rgba(6,35,31,.78), transparent 48%); }
.ttb-hero__layout { position: relative; z-index: 1; display: grid; grid-template-columns: 1.35fr .65fr; gap: 72px; align-items: center; padding-block: 88px; }
.ttb-hero__copy { max-width: 760px; }
.ttb-hero .ttb-eyebrow { color: #ffd28a; }
.ttb-hero h1 { font-size: clamp(3rem, 7vw, 5.8rem); line-height: 1.02; margin-bottom: 24px; }
.ttb-hero h1 { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.ttb-hero__lead { font-size: clamp(1.08rem, 2vw, 1.3rem); color: #e8f2ef !important; max-width: 760px; }
.ttb-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.ttb-btn { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: 12px 23px; border-radius: 999px; text-decoration: none; font-weight: 800; transition: transform .2s ease, background .2s ease, color .2s ease; }
.ttb-btn:hover { transform: translateY(-2px); }
.ttb-btn--coral { color: #fff !important; background: var(--bali-coral); box-shadow: 0 12px 28px rgba(132,42,26,.28); }
.ttb-btn--coral:hover { background: var(--bali-coral-dark); }
.ttb-btn--glass { color: #fff !important; border: 1px solid rgba(255,255,255,.55); background: rgba(255,255,255,.08); backdrop-filter: blur(8px); }
.ttb-btn--outline { border: 1px solid rgba(255,255,255,.55); color: #fff !important; }
.ttb-review { display: flex; flex-wrap: wrap; gap: 10px 24px; list-style: none; margin: 32px 0 0; padding: 22px 0 0; border-top: 1px solid rgba(255,255,255,.2); color: #dcebe7 !important; font-size: .9rem; }
.ttb-review li::before { content: "✓"; color: #ffd28a; font-weight: 800; margin-inline-end: 7px; }
.ttb-quote-card { background: rgba(255,250,242,.96); color: var(--bali-ink); border-radius: 28px 28px 4px 28px; padding: 30px; box-shadow: 0 28px 70px rgba(0,0,0,.24); border-top: 5px solid var(--bali-coral); }
.ttb-quote-card__label { font-size: .78rem; font-weight: 800; color: var(--bali-coral-dark); }
.ttb-quote-card h2 { font-size: 1.65rem; line-height: 1.25; margin: 8px 0 20px; }
.ttb-quote-card dl, .ttb-quote-card dd { margin: 0; }
.ttb-quote-card dl > div { display: grid; grid-template-columns: 88px 1fr; gap: 12px; padding: 14px 0; border-top: 1px solid var(--bali-line); }
.ttb-quote-card dt { color: var(--bali-muted); font-size: .82rem; font-weight: 700; }
.ttb-quote-card dd { font-weight: 700; }

.ttb-trust { padding: 38px 0; background: var(--bali-aqua); border-bottom: 1px solid var(--bali-line); }
.ttb-trust__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 70px; align-items: center; }
.ttb-trust h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); margin: 0; }
.ttb-trust p { margin: 0; }

.ttb-style-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ttb-style-grid article { position: relative; min-height: 300px; padding: 34px; background: #fff; border: 1px solid var(--bali-line); border-radius: 24px 24px 5px 24px; box-shadow: 0 12px 36px rgba(23,58,52,.06); }
.ttb-style-grid article > span { display: block; font-size: 3.3rem; line-height: 1; font-weight: 800; color: rgba(45,114,92,.15); }
.ttb-style-grid h3 { font-size: 1.45rem; margin: 17px 0 12px; }
.ttb-style-grid p { color: var(--bali-muted); }
.ttb-style-grid a { min-height: 44px; display: inline-flex; align-items: center; color: var(--bali-coral-dark) !important; font-weight: 800; text-underline-offset: .25em; }

.ttb-area-board { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 18px; }
.ttb-area { padding: 34px; border-radius: 4px 28px 28px 28px; color: #fff; min-height: 390px; display: flex; flex-direction: column; }
.ttb-area--ubud { background: var(--bali-jungle); }
.ttb-area--nusa { background: #27786d; }
.ttb-area--south { background: #b95540; }
.ttb-area div span { color: #f7d69a; font-size: .8rem; font-weight: 800; }
.ttb-area h3 { font-size: 2.2rem; margin: 4px 0 20px; }
.ttb-area p, .ttb-area li { color: rgba(255,255,255,.88) !important; }
.ttb-area ul { margin: auto 0 0; padding: 22px 20px 0 0; border-top: 1px solid rgba(255,255,255,.22); }
.ttb-area li { margin-bottom: 7px; }

.ttb-section--jungle { background: var(--bali-deep); color: #f5fbf8; }
.ttb-section--jungle h2, .ttb-section--jungle h3, .ttb-section--jungle strong { color: #f5fbf8 !important; -webkit-text-fill-color: #f5fbf8 !important; }
.ttb-heading--light .ttb-eyebrow { color: #ffd28a; }
.ttb-heading--light > p:last-child { color: #c9ddd7 !important; }
.ttb-program-switch { display: inline-flex; gap: 6px; padding: 6px; border-radius: 999px; background: rgba(255,255,255,.08); margin-bottom: 28px; }
.ttb-program-switch button { min-height: 48px; padding: 9px 22px; border: 0; border-radius: 999px; background: transparent; color: #d8e7e3; cursor: pointer; font-weight: 800; }
.ttb-program-switch button[aria-selected="true"] { background: #fff4df; color: var(--bali-deep); }
.ttb-program { display: grid; grid-template-columns: .35fr .65fr; gap: 50px; padding: clamp(28px, 5vw, 54px); border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.055); border-radius: 30px 30px 5px 30px; }
.ttb-program[hidden] { display: none; }
.ttb-program__intro { position: sticky; top: 100px; align-self: start; }
.ttb-program__intro span { color: #ffd28a; font-size: .8rem; font-weight: 800; }
.ttb-program__intro h3 { font-size: 2rem; margin: 8px 0 12px; }
.ttb-program__intro p { color: #c9ddd7 !important; }
.ttb-program ol { list-style: none; margin: 0; padding: 0; }
.ttb-program li { display: grid; grid-template-columns: 48px 1fr; gap: 16px; padding: 0 0 24px; position: relative; }
.ttb-program li:not(:last-child)::before { content: ""; position: absolute; right: 23px; top: 48px; bottom: 0; width: 1px; background: rgba(255,255,255,.2); }
.ttb-program li > span { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--bali-coral); font-weight: 800; }
.ttb-program li strong { display: block; font-size: 1.08rem; margin-bottom: 4px; }
.ttb-program li p { margin: 0; color: #c9ddd7 !important; }
.ttb-program-note { margin: 28px 0 0; padding: 22px 26px; color: #eaf4f1 !important; border-right: 4px solid #ffd28a; background: rgba(255,255,255,.06); }

.ttb-scope { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ttb-scope article { padding: 35px; border-radius: 24px; }
.ttb-scope__yes { background: #e5f3eb; border: 1px solid #bddccb; }
.ttb-scope__no { background: #fff0e8; border: 1px solid #f2cbbb; }
.ttb-scope h3 { font-size: 1.4rem; }
.ttb-scope ul { margin: 0; padding-right: 22px; }
.ttb-scope li { margin-bottom: 8px; }
.ttb-price-drivers { margin-top: 22px; padding: 30px; border: 1px solid var(--bali-line); border-radius: 22px; background: var(--bali-sand); }
.ttb-price-drivers h3 { margin-bottom: 20px; }
.ttb-price-drivers div { display: flex; flex-wrap: wrap; gap: 9px; }
.ttb-price-drivers span { padding: 8px 14px; background: #fff; border: 1px solid var(--bali-line); border-radius: 999px; font-weight: 700; }

.ttb-entry { background: #daf0ea; }
.ttb-entry__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 65px; align-items: center; }
.ttb-entry__card { padding: 34px; background: #fff; border-radius: 5px 28px 28px 28px; box-shadow: 0 16px 45px rgba(23,58,52,.1); }
.ttb-entry__card h3 { font-size: 1.45rem; }
.ttb-entry__card ul { padding-right: 22px; }
.ttb-entry__card a, .ttb-season a { display: flex; min-height: 44px; align-items: center; color: var(--bali-coral-dark) !important; font-weight: 800; text-underline-offset: .25em; }

.ttb-season { background: var(--bali-sand); }
.ttb-season__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 65px; align-items: center; }
.ttb-season__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ttb-season__cards article { min-height: 235px; padding: 30px; background: #fff; border: 1px solid var(--bali-line); border-radius: 24px; }
.ttb-season__cards span { color: var(--bali-coral-dark); font-weight: 800; }
.ttb-season__cards h3 { font-size: 1.35rem; margin: 12px 0; }

.ttb-request { background: #103f36; color: #fff; }
.ttb-request .ttb-eyebrow { color: #ffd28a; }
.ttb-request h2 { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.ttb-request__grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 65px; align-items: start; }
.ttb-request h2 { font-size: clamp(2rem, 4vw, 3.4rem); }
.ttb-request__grid > div > p, .ttb-request__grid > div li { color: #d2e4df !important; }
.ttb-builder { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 30px; background: #fffaf2; color: var(--bali-ink); border-radius: 28px 28px 5px 28px; }
.ttb-field { display: flex; flex-direction: column; gap: 6px; }
.ttb-field label { font-size: .86rem; font-weight: 800; }
.ttb-field input, .ttb-field select { width: 100%; min-height: 50px; padding: 10px 12px; border: 1px solid #b9c9c4; border-radius: 10px; background: #fff; color: var(--bali-ink); }
.ttb-field input::placeholder { color: #73837f; opacity: 1; }
.ttb-builder__submit, .ttb-builder__status { grid-column: 1 / -1; }
.ttb-builder__submit .ttb-btn { width: 100%; margin-top: 6px; }
.ttb-builder__status { margin: 0; color: var(--bali-muted); font-size: .86rem; }

.ttb-process { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ttb-process li { padding: 25px; border-top: 4px solid var(--bali-leaf); background: var(--bali-sand); }
.ttb-process li > span { color: var(--bali-coral-dark); font-size: 1.8rem; font-weight: 800; }
.ttb-process h3 { margin: 10px 0 6px; }
.ttb-process p { margin: 0; color: var(--bali-muted); }
.ttb-related { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 28px; }
.ttb-related a { min-height: 110px; display: flex; flex-direction: column; justify-content: center; padding: 22px; border: 1px solid var(--bali-line); border-radius: 18px; text-decoration: none; }
.ttb-related a:hover { border-color: var(--bali-coral); }
.ttb-related span { color: var(--bali-coral-dark); font-size: .78rem; font-weight: 800; }

.ttb-faq { background: var(--bali-aqua); }
.ttb-faq__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 65px; }
.ttb-faq header { position: sticky; top: 100px; align-self: start; }
.ttb-faq__list details { border-bottom: 1px solid rgba(23,58,52,.2); }
.ttb-faq__list summary { min-height: 64px; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 15px 0; cursor: pointer; font-weight: 800; list-style: none; }
.ttb-faq__list summary::-webkit-details-marker { display: none; }
.ttb-faq__list summary span { width: 24px; height: 24px; flex: 0 0 24px; position: relative; }
.ttb-faq__list summary span::before, .ttb-faq__list summary span::after { content: ""; position: absolute; top: 11px; right: 3px; width: 18px; height: 2px; background: var(--bali-ink); }
.ttb-faq__list summary span::after { transform: rotate(90deg); transition: transform .2s ease; }
.ttb-faq__list details[open] summary span::after { transform: rotate(0); }
.ttb-faq__list details div { padding-bottom: 20px; color: var(--bali-muted); }

.ttb-final { padding: 75px 0; background: #082d28; color: #fff; }
.ttb-final__card { display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: 50px; padding: 44px; border-radius: 30px 30px 5px 30px; background: linear-gradient(135deg, #174f43, #0d3932); border: 1px solid rgba(255,255,255,.15); }
.ttb-final .ttb-eyebrow { color: #ffd28a; }
.ttb-final h2 { margin-bottom: 12px; color: #fff !important; -webkit-text-fill-color: #fff !important; }
.ttb-final p { color: #d5e6e1 !important; margin-bottom: 0; }
.ttb-final .ttb-actions { justify-content: flex-end; margin: 0; }

@media (max-width: 980px) {
	.ttb-hero__layout, .ttb-trust__grid, .ttb-entry__grid, .ttb-season__grid, .ttb-request__grid, .ttb-faq__grid { grid-template-columns: 1fr; gap: 38px; }
	.ttb-hero { min-height: auto; }
	.ttb-hero__layout { padding-block: 70px; }
	.ttb-quote-card { max-width: 580px; }
	.ttb-heading--split { grid-template-columns: 1fr; gap: 10px; }
	.ttb-style-grid, .ttb-area-board { grid-template-columns: 1fr 1fr; }
	.ttb-program { grid-template-columns: 1fr; }
	.ttb-program__intro, .ttb-faq header { position: static; }
	.ttb-process { grid-template-columns: 1fr 1fr; }
	.ttb-final__card { grid-template-columns: 1fr; }
	.ttb-final .ttb-actions { justify-content: flex-start; }
}

@media (max-width: 680px) {
	.ttb-shell { width: min(100% - 28px, 1180px); }
	.ttb-section { padding: 64px 0; }
	.ttb-hero__veil { background: linear-gradient(0deg, rgba(6,35,31,.98), rgba(6,35,31,.64)); }
	.ttb-hero h1 { font-size: clamp(2.65rem, 14vw, 4.2rem); }
	.ttb-review { display: grid; }
	.ttb-style-grid, .ttb-area-board, .ttb-scope, .ttb-season__cards, .ttb-builder, .ttb-process, .ttb-related { grid-template-columns: 1fr; }
	.ttb-style-grid article, .ttb-area { min-height: auto; }
	.ttb-program { padding: 24px 18px; }
	.ttb-program-switch { display: grid; width: 100%; border-radius: 18px; }
	.ttb-program-switch button { width: 100%; }
	.ttb-builder__submit, .ttb-builder__status { grid-column: 1; }
	.ttb-final__card { padding: 30px 22px; }
	.ttb-actions .ttb-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	#bali-main *, #bali-main *::before, #bali-main *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
