/*
Theme Name:   Trip Hub Asia
Theme URI:    https://www.triphubasia.com/
Description:  Trip Hub Asia child theme for Twenty Twenty-Five. Brand colours from the logo (orange #FA5B04, blue #2C6AAD), Plus Jakarta Sans, and templates for the TripHub Marketplace plugin.
Author:       Trip Hub Asia
Template:     twentytwentyfive
Version:      1.2.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain:  triphubasia
*/

/* ---------- Global polish ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: #FA5B04; color: #fff; }
:where(a) { text-underline-offset: .18em; text-decoration-thickness: 1px; }
img { height: auto; }

/* ---------- Header ---------- */
.wp-block-template-part:has(> .th-header) { position: sticky; top: 0; z-index: 100; }
.admin-bar .wp-block-template-part:has(> .th-header) { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-block-template-part:has(> .th-header) { top: 0; } }
.th-header { position: relative; background: rgba(255, 255, 255, .92); backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid rgba(226, 232, 240, .8); transition: box-shadow .25s; }
.th-header.is-scrolled { box-shadow: 0 6px 24px rgba(19, 48, 79, .08); }
.th-header .wp-block-image { margin: 0; }
.th-header .wp-block-image img { width: 190px; max-width: 46vw; display: block; }
.th-header .wp-block-navigation { font-weight: 600; font-size: .95rem; }
.th-header .wp-block-navigation-item__content { padding: .5em .25em; }
.th-header .wp-block-navigation-item__content:hover { color: #FA5B04; }
.th-header .wp-block-navigation__submenu-container { border-radius: 14px !important; border: 1px solid #E2E8F0 !important; box-shadow: 0 18px 50px rgba(19, 48, 79, .16); padding: 8px !important; min-width: 220px !important; }
.th-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { border-radius: 8px; padding: .55em .9em !important; }
.th-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: #FFF3EB; }
.th-header__actions .wp-block-button__link { padding: .6em 1.2em; font-size: .9rem; }
@media (max-width: 960px) { .th-header__signin { display: none !important; } }
@media (max-width: 600px) { .th-header__partner { display: none !important; } }

/* ---------- Buttons (core) ---------- */
.wp-block-button__link, .wp-element-button { transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease; box-shadow: 0 8px 18px -8px rgba(250, 91, 4, .65); }
.wp-block-button__link:hover, .wp-element-button:hover { transform: translateY(-1px); box-shadow: 0 12px 24px -10px rgba(250, 91, 4, .8); }
.wp-block-button.is-style-outline > .wp-block-button__link { box-shadow: none; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #FFF3EB; border-color: #FA5B04; color: #DE4E00; }
.is-style-th-blue > .wp-block-button__link { background: #2C6AAD; box-shadow: 0 8px 18px -8px rgba(44, 106, 173, .65); }
.is-style-th-blue > .wp-block-button__link:hover { background: #1F5590; }
.is-style-th-white > .wp-block-button__link { background: #fff; color: #DE4E00; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .35); }

/* ---------- Hero ---------- */
.th-hero { position: relative; overflow: hidden; }
.th-hero .wp-block-cover__inner-container { position: relative; z-index: 2; }
.th-hero h1 { text-wrap: balance; text-shadow: 0 2px 30px rgba(0, 0, 0, .25); }
.th-hero .th-search { margin-top: 28px; }
.th-hero__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; margin-top: 26px; color: #fff; font-weight: 600; font-size: .92rem; }
.th-hero__badges span { display: inline-flex; align-items: center; gap: 8px; opacity: .95; }
.th-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 60px; z-index: 1; background: var(--wp--preset--color--base); clip-path: ellipse(70% 100% at 50% 100%); }

.th-page-hero { position: relative; background: radial-gradient(1200px 400px at 85% -10%, rgba(250, 91, 4, .22), transparent 60%), linear-gradient(135deg, #13304F, #2C6AAD); color: #fff; }
.th-page-hero :where(h1, p) { color: #fff; }
.th-page-hero .th-search { margin-top: 22px; }

/* ---------- Sections ---------- */
.th-eyebrow-txt { font-size: .78rem !important; font-weight: 800 !important; letter-spacing: .14em; text-transform: uppercase; color: #FA5B04; }
.th-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.th-why .wp-block-column { background: #fff; border: 1px solid #E2E8F0; border-radius: 20px; padding: 28px 24px; box-shadow: 0 1px 2px rgba(19, 48, 79, .06), 0 8px 24px rgba(19, 48, 79, .07); transition: transform .25s; }
.th-why .wp-block-column:hover { transform: translateY(-4px); }
.th-icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 16px; background: #FFF3EB; font-size: 1.6rem; margin: 0 0 16px !important; }
.th-why .wp-block-column:nth-child(even) .th-icon { background: #EDF4FC; }

.th-cta { position: relative; overflow: hidden; border-radius: 28px; background: linear-gradient(120deg, #FA5B04 0%, #FF7A2E 45%, #2C6AAD 130%); color: #fff; }
.th-cta::before { content: ""; position: absolute; right: -80px; top: -80px; width: 320px; height: 320px; border-radius: 50%; background: rgba(255, 255, 255, .12); }
.th-cta::after { content: "✈"; position: absolute; right: 6%; bottom: 8%; font-size: 9rem; opacity: .12; transform: rotate(-12deg); }
.th-cta :where(h2, p) { color: #fff; position: relative; z-index: 1; }
.th-cta .wp-block-buttons { position: relative; z-index: 1; }
.th-cta__list { list-style: none; padding: 0; display: grid; gap: 8px; position: relative; z-index: 1; }
.th-cta__list li::before { content: "✓"; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(255, 255, 255, .25); margin-right: 10px; font-size: .75rem; }

.th-steps-row .wp-block-column { position: relative; padding-top: 8px; }
.th-num { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #13304F; color: #fff; font-weight: 800; margin-bottom: 12px !important; }

/* ---------- Footer ---------- */
.th-footer { background: #13304F; color: #C8D6E8; }
.th-footer a { color: #fff; text-decoration: none; }
.th-footer a:hover { color: #FF8A3D; }
.th-footer h3, .th-footer h4 { color: #fff; }
.th-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.th-footer__logo { display: inline-block; background: #fff; border-radius: 14px; padding: 10px 14px; }
.th-footer__logo img { width: 180px; display: block; }
.th-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); }
.th-pay { display: inline-flex; gap: 8px; flex-wrap: wrap; }
.th-pay span { padding: 5px 10px; border-radius: 8px; background: rgba(255, 255, 255, .08); font-size: .78rem; font-weight: 700; color: #fff; }

/* ---------- Content pages ---------- */
.wp-block-post-title { text-wrap: balance; }
.single-th_listing .wp-block-post-title { font-size: clamp(1.7rem, 3.4vw, 2.6rem); }
.th-term-desc p { color: rgba(255, 255, 255, .85); max-width: 680px; }

/* Blog cards (core query loop) */
.th-posts .wp-block-post { background: #fff; border: 1px solid #E2E8F0; border-radius: 18px; overflow: hidden; box-shadow: 0 1px 2px rgba(19, 48, 79, .06), 0 8px 24px rgba(19, 48, 79, .07); }
.th-posts .wp-block-post-featured-image { margin: 0; }
.th-posts .wp-block-post-featured-image img { aspect-ratio: 16/10; object-fit: cover; }

/* Default WP forms (comments, search, password) */
:where(input[type=text], input[type=email], input[type=search], input[type=password], input[type=url], textarea) { border-radius: 10px; }
.wp-block-search__input { border-radius: 999px !important; padding-inline: 18px !important; }
.wp-block-search__button { border-radius: 999px !important; }
.th-account-link { font-weight: 700; font-size: .95rem; color: var(--wp--preset--color--contrast); text-decoration: none; padding: .5em .75em; border-radius: 999px; }
.th-account-link:hover { background: #FFF3EB; color: #DE4E00; text-decoration: none; }
.th-footer h4 { margin: 0 0 14px; }
.th-footer__label { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: #8FA5C0; margin-bottom: 2px; }

/* ---------- Homepage (Klook / KKday style) ---------- */
.th-hero--home h1 { margin-bottom: 8px; }
.th-hero--home::after { display: none; }
.th-home-lift { position: relative; z-index: 5; margin-top: -58px !important; }
.th-rail + .th-rail { margin-top: 56px; }
.th-trustbar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.th-trustbar > div { display: grid; grid-template-columns: 44px 1fr; column-gap: 12px; align-items: center; padding: 18px; border-radius: 18px; background: #F5F7FB; }
.th-trustbar span { grid-row: span 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #fff; font-size: 1.3rem; box-shadow: 0 4px 12px rgba(19, 48, 79, .06); }
.th-trustbar b { font-size: .95rem; }
.th-trustbar small { color: #5E6A7D; font-size: .82rem; }
@media (max-width: 900px) { .th-trustbar { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .th-trustbar { grid-template-columns: 1fr; } }
.th-hero--home { overflow: visible !important; }
.th-hero--home:focus-within, .th-hero--home:has(.th-hsearch__drop:not([hidden])) { z-index: 10; }
.editor-styles-wrapper .wp-block-template-part:has(> .th-header), .editor-styles-wrapper .th-header { position: relative !important; top: 0 !important; }
/* Two-row header: logo + account on top, Klook-style menu bar below */
.th-header .th-mm { margin-top: 4px; }
.th-header .th-header__top { min-height: 52px; }
.th-header .th-header__logo { margin: 0; }
@media (max-width: 600px) { .th-header .th-header__logo img { width: 150px !important; } }
@media (max-width: 900px) { .th-header { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background: #fff !important; } }
