/* FINOVAS Thailand — palette and typography from the approved brand guide.
   Scoped to the branch route so other countries retain their design. */
body.branch-th {
  --navy: #0B1F3A; --navy-deep: #0B1F3A; --navy-soft: #15314f;
  --sky: #1677FF; --sky-strong: #1262d4; --sky-tint: #EEF6FF;
  --muted: #4F6F8F; --silver: #B8C2CC; --mist: #EEF6FF;
  --ink: #0B1F3A; --line: #dce4ec;
  --font: 'IBM Plex Sans Thai', system-ui, sans-serif;
  --font-zh: 'IBM Plex Sans Thai', 'Noto Sans SC', sans-serif;
  --r-sm: 6px; --r-md: 8px; --r-lg: 10px; --r-pill: 6px;
  font-weight: 400;
}
.branch-th h1, .branch-th h2, .branch-th h3 { letter-spacing: -.025em; }
.branch-th .site-header { background: #fff; box-shadow: none; border-bottom: 1px solid var(--line); }
.branch-th .nav__logo .logo-mark rect { fill: #0B1F3A; }
.branch-th .nav__logo .logo-mark circle { fill: #1677FF; }
.branch-th .logo-word { text-transform: uppercase; letter-spacing: .015em; }
.branch-th .btn { box-shadow: none; transition: background .2s, color .2s; }
.branch-th .btn--primary, .branch-th .btn--accent { background: var(--sky-strong); color: #fff; }
.branch-th .btn:hover { transform: none; }
.branch-th .footer-cta { display: none; }
.branch-th .site-footer, .branch-th .site-footer__inner { background: var(--navy); }
.branch-th .deco { display: none; }
.branch-th .chat-fab { animation: none; box-shadow: 0 4px 14px #0b1f3a20; background: var(--navy); border: 1px solid #ffffff36; }
.branch-th .booking-aside { background: var(--navy); }
.branch-th .modal, .branch-th .cookie-banner { border-radius: 8px; }
.th-page { font-size: 16px; line-height: 1.8; }
.th-page .container { max-width: 1280px; }
.th-page h1 { font-size: clamp(2.35rem, 3.9vw, 3.6rem); line-height: 1.34; font-weight: 700; }
.th-page h2 { font-size: clamp(1.85rem, 2.6vw, 2.7rem); line-height: 1.4; font-weight: 700; }
.th-page h3 { font-size: 1.3rem; line-height: 1.5; font-weight: 600; }
.th-kicker { font-size: 11px; letter-spacing: .15em; font-weight: 600; text-transform: uppercase; color: var(--muted); margin-bottom: 20px; }
.th-hero { background: var(--navy); color: #d2deeb; }
.th-breadcrumb { display: flex; gap: 14px; align-items: center; font-size: 12px; padding: 24px 0; border-bottom: 1px solid #ffffff1f; color: #b8c2cc; }
.th-breadcrumb a { color: #b8c2cc; }
.th-hero-grid { display: grid; grid-template-columns: 1fr 1.02fr; align-items: center; gap: 60px; padding: 60px 0 70px; }
.th-hero h1 { color: #fff; margin-bottom: 24px; }
.th-hero .th-kicker { color: #a6c9ff; margin-bottom: 18px; }
.th-hero-lead { max-width: 460px; font-size: 17px; line-height: 1.95; }
.th-actions { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; margin-top: 32px; }
.th-button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 14px 22px; border-radius: 4px; font-size: 15px; font-weight: 600; background: var(--sky-strong); color: #fff; min-height: 48px; transition: background .2s, color .2s; }
.th-button svg, .th-text-link svg { width: 18px; height: 18px; }
.th-button:hover { background: #0d50b1; }
.th-text-link { display: inline-flex; gap: 12px; align-items: center; color: #fff; font-size: 14px; border-bottom: 1px solid #7c92b0; padding: 8px 0; }
.th-text-link:hover { color: #bcd5ff; }
.th-signature { font-size: 10px; line-height: 1.9; letter-spacing: .13em; margin-top: 38px; color: #9cb0c8; }
.th-hero-photo { min-width: 0; margin: 0; }
.th-hero-photo img { width: 100%; aspect-ratio: 1.2; height: auto; object-fit: cover; object-position: 50% 50%; }
.th-hero-photo figcaption { padding: 18px 0 0; font-size: 12px; color: #b8c2cc; border-top: 1px solid #ffffff26; margin-top: 15px; }
.th-values { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid #ffffff26; padding: 28px 0; }
.th-values > div { display: grid; grid-template-columns: 30px 1fr; padding-left: 26px; border-left: 1px solid #ffffff26; }
.th-values > div:first-child { padding-left: 0; border: 0; }
.th-index { font-size: 10px; color: #839bb8; padding-top: 4px; font-weight: 700; }
.th-values div > span:nth-child(2) { color: #fff; font-size: 18px; font-weight: 600; }
.th-values small { grid-column: 2; color: #a9bbd0; font-size: 11px; }
.th-section { padding: clamp(64px, 7vw, 100px) 0; }
.th-section-head { max-width: 760px; margin-bottom: 44px; }
.th-section-head > p:last-child, .th-section-lead { color: var(--muted); font-size: 17px; margin-top: 18px; line-height: 1.9; }
.th-service-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.th-service { display: flex; align-items: flex-start; gap: 24px; padding: 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .2s; }
.th-service:hover { background: #f7faff; }
.th-service-number { font-size: 12px; font-weight: 700; color: var(--muted); padding-top: 4px; }
.th-service h3 { margin-bottom: 10px; }
.th-service p { color: var(--muted); font-size: 15px; line-height: 1.9; max-width: 410px; }
.th-button--text { margin-top: 14px; padding: 7px 0; background: transparent; color: var(--sky-strong); font-size: 13px; min-height: 44px; }
.th-button--text:hover { background: transparent; color: var(--navy); }
/* Structural spacing belongs to the base rule so hover cannot override the image layout. */
.th-service--help { background: var(--navy); padding-left: 70px; }
.th-service--help h3 { color: #fff; }
.th-service--help p { color: #c1cede; }
.th-service--help .th-kicker { color: #9fbcdd; margin-bottom: 12px; }
.th-button--light { background: #fff; color: var(--navy); margin-top: 24px; }
.th-button--light:hover { background: #dcecff; }
.th-partner { background: var(--mist); }
.th-partner-grid { display: grid; grid-template-columns: 1fr 1.18fr; gap: 90px; }
.th-partner-grid > div:first-child { max-width: 425px; }
.th-principles { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.th-principles article { padding-top: 22px; border-top: 1px solid #b8c2cc; }
.th-principles .th-kicker { font-size: 10px; margin-bottom: 10px; }
.th-principles h3 { font-size: 18px; margin-bottom: 10px; }
.th-principles article > p:last-child { font-size: 14px; color: var(--muted); }
.th-process { background: var(--navy); color: #b8c8da; }
.th-process h2, .th-process h3 { color: #fff; }
.th-process .th-kicker { color: #97b6da; }
.th-process-head { display: grid; grid-template-columns: 1.2fr 1fr; gap: 90px; align-items: end; }
.th-process-head > p { max-width: 360px; }
.th-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 42px; margin-top: 64px; }
.th-steps li { border-top: 1px solid #ffffff36; padding-top: 24px; }
.th-steps li > span { display: block; font-size: 32px; line-height: 1; color: #85b7ff; font-weight: 700; margin-bottom: 28px; }
.th-steps h3 { margin-bottom: 16px; font-size: 21px; }
.th-steps p { font-size: 15px; }
.th-faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 85px; }
.th-faq .faq-list { max-width: none; }
.th-faq .faq-item { border-radius: 0; border: 0; border-bottom: 1px solid var(--line); box-shadow: none; }
.th-faq .faq-q { font-weight: 600; font-size: 16px; }
.th-faq .reveal { opacity: 1; transform: none; transition: none; }
.th-closing { background: #EEF6FF; padding: 66px 0; }
.th-closing .container { display: flex; justify-content: space-between; gap: 36px; align-items: center; }
.th-closing p:not(.th-kicker) { color: var(--muted); margin-top: 16px; }
.th-closing .th-button { margin: 0; background: var(--sky-strong); color: white; flex-shrink: 0; }
.th-closing .th-button:hover { background: #0d50b1; }
.th-page .reveal { transform: translateY(12px); transition-duration: .45s; }
.th-page .reveal.is-visible { transform: none; }
@media (max-width: 1080px) {
  .branch-th .nav__actions { margin-left: auto; }
}
@media (max-width: 1050px) {
  .th-hero-grid { gap: 32px; }
  .th-partner-grid, .th-faq-grid { gap: 40px; }
  .th-service { padding: 28px 22px; gap: 18px; }
  .th-service--help { padding-left: 54px; }
}
@media (max-width: 760px) {
  .th-hero-grid { grid-template-columns: 1fr; padding: 38px 0; gap: 36px; }
  .th-hero-photo img { aspect-ratio: 1.5; }
  .th-hero-lead { max-width: 100%; }
  .th-signature { margin-top: 28px; }
  .th-values { grid-template-columns: 1fr 1fr; gap: 24px 16px; }
  .th-values > div { border: 0; padding-left: 0; }
  .th-values div > span:nth-child(2) { font-size: 16px; }
  .th-values small { font-size: 10px; }
  .th-service-grid, .th-partner-grid, .th-faq-grid, .th-process-head, .th-steps { grid-template-columns: 1fr; }
  .th-service { padding: 26px 20px; }
  .th-service--help { padding: 30px 24px; }
  .th-partner-grid { gap: 38px; }
  .th-principles { gap: 26px; }
  .th-process-head { gap: 24px; }
  .th-steps { gap: 30px; margin-top: 40px; }
  .th-steps li > span { margin-bottom: 16px; font-size: 28px; }
  .th-faq-grid { gap: 28px; }
  .th-closing .container { align-items: flex-start; flex-direction: column; }
  .th-actions { gap: 16px 22px; }
  .th-page .th-button { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .branch-th *, .branch-th *::before, .branch-th *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .th-page .reveal { opacity: 1; transform: none; }
}
