/*
Theme Name: Tour Tiger Hub
Theme URI: https://tourtiger.co.th
Author: Tour Tiger (Thailand) Co., Ltd.
Description: Bespoke Koh Samui tours, transfers, rentals and stays — one trusted Tour Tiger booking experience.
Version: 2.1.0
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: tour-tiger-hub
*/

:root{
  --tt-ink:#1c1a17;
  --tt-ink-deep:#12100e;
  --tt-cream:#faf6ef;
  --tt-orange:#e8632c;
  --tt-orange-dark:#c94f1f;
  --tt-green:#2f6b4f;
  --tt-lagoon:#0e3b36;
  --tt-gold:#d9a441;
  --tt-line:#e5ddd0;
  --tt-radius:16px;
  --tt-shadow:0 10px 30px rgba(28,26,23,.08);
  --tt-glow:0 14px 40px rgba(232,99,44,.22);
  --tt-grad:linear-gradient(120deg,#e8632c 0%,#d9a441 100%);
  --tt-grad-soft:linear-gradient(120deg,#fdf1e4,#fae7cd);
  font-size:16px;
}

*{box-sizing:border-box;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--tt-ink);
  background:var(--tt-cream);
  line-height:1.55;
}
img{max-width:100%;display:block;}
a{color:var(--tt-orange-dark);text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3,h4{font-family:Georgia,"Times New Roman",serif;line-height:1.12;margin:0 0 .5em;letter-spacing:-.015em;}
::selection{background:var(--tt-orange);color:#fff;}
html{scroll-behavior:smooth;}
:focus-visible{outline:2px solid var(--tt-orange);outline-offset:2px;}
.container{max-width:1120px;margin:0 auto;padding:0 20px;}
.overline{text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;color:var(--tt-orange-dark);font-weight:700;}

/* Gradient-accented word inside display headings */
.grad-word{background:var(--tt-grad);-webkit-background-clip:text;background-clip:text;color:transparent;}

/* ── Buttons ────────────────────────────────────── */
.btn{
  position:relative;display:inline-block;padding:.78em 1.6em;border-radius:999px;font-weight:700;
  border:2px solid transparent;background:linear-gradient(120deg,#e8632c,#d9772c);color:#fff;
  box-shadow:0 6px 18px rgba(232,99,44,.3);overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.btn::after{
  content:"";position:absolute;top:0;left:-80%;width:55%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-20deg);transition:left .45s ease;
}
.btn:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--tt-glow);filter:saturate(1.05);}
.btn:hover::after{left:120%;}
.btn--outline{background:transparent;color:var(--tt-orange-dark);border-color:var(--tt-orange);box-shadow:none;}
.btn--outline:hover{background:var(--tt-orange);color:#fff;}
.btn--sm{padding:.55em 1.15em;font-size:.88rem;}

/* ── Header (glass, sticky) ─────────────────────── */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.78);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid rgba(229,221,208,.7);
}
.site-header__inner{display:flex;align-items:center;gap:14px;padding:9px 20px;max-width:1220px;margin:0 auto;}
.site-logo{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.site-logo:hover{text-decoration:none;}
.site-logo__mark{height:44px;width:auto;}
.site-logo__text{display:flex;flex-direction:column;font-family:Georgia,serif;line-height:1.05;}
.site-logo__text strong{font-size:1.22rem;color:var(--tt-ink);letter-spacing:-.01em;}
.site-logo__text span{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tt-orange-dark);}

.main-nav{margin-left:auto;}
.main-nav > ul{list-style:none;display:flex;align-items:center;gap:2px;margin:0;padding:0;}
.main-nav a,.nav-group__btn{
  display:inline-block;color:var(--tt-ink);font-weight:600;font-size:.9rem;white-space:nowrap;
  padding:8px 12px;border-radius:10px;background:none;border:none;cursor:pointer;font-family:inherit;line-height:inherit;
  position:relative;
}
.main-nav a::after,.nav-group__btn::after{
  content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;border-radius:2px;
  background:var(--tt-grad);transform:scaleX(0);transform-origin:left;transition:transform .22s ease;
}
.main-nav a:hover,.nav-group__btn:hover{text-decoration:none;}
.main-nav a:hover::after,.nav-group:hover .nav-group__btn::after,.nav-group:focus-within .nav-group__btn::after{transform:scaleX(1);}
.nav-group{position:relative;}
.nav-group__btn .caret{display:inline-block;margin-left:4px;font-size:.62em;transition:transform .2s ease;transform:translateY(-1px);}
.nav-group:hover .caret,.nav-group:focus-within .caret{transform:rotate(180deg) translateY(1px);}
.nav-drop{
  position:absolute;left:0;top:calc(100% + 6px);margin:0;padding:8px;list-style:none;min-width:210px;
  background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border:1px solid rgba(229,221,208,.8);border-radius:14px;box-shadow:0 18px 44px rgba(28,26,23,.16);
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease,visibility .18s;
  z-index:60;
}
.nav-group:hover .nav-drop,.nav-group:focus-within .nav-drop,.nav-group.open .nav-drop{opacity:1;visibility:visible;transform:translateY(0);}
.nav-drop a{display:block;padding:9px 12px;border-radius:9px;font-size:.9rem;}
.nav-drop a::after{display:none;}
.nav-drop a:hover{background:var(--tt-grad-soft);}

.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.header-cta{display:none;}
@media(min-width:1080px){.header-cta{display:inline-block;}}

/* Language switcher (globe dropdown) */
.lang-switch{position:relative;}
.lang-switch summary{list-style:none;cursor:pointer;font-size:1.2rem;padding:6px 8px;border-radius:10px;line-height:1;}
.lang-switch summary::-webkit-details-marker{display:none;}
.lang-switch[open] summary,.lang-switch summary:hover{background:var(--tt-grad-soft);}
.lang-switch ul{
  position:absolute;right:0;top:100%;margin:8px 0 0;padding:8px;list-style:none;min-width:150px;
  background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border:1px solid rgba(229,221,208,.8);border-radius:14px;box-shadow:0 18px 44px rgba(28,26,23,.16);z-index:60;
}
.lang-switch li a{display:block;padding:8px 12px;border-radius:9px;color:var(--tt-ink);font-weight:600;font-size:.9rem;}
.lang-switch li a:hover{background:var(--tt-grad-soft);text-decoration:none;}
.lang-switch li a.is-active{color:var(--tt-orange-dark);}

/* Mobile nav: hamburger + panel */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:10px;margin-left:auto;}
.nav-toggle span{display:block;width:24px;height:2.5px;background:var(--tt-ink);margin:5px 0;border-radius:2px;transition:transform .2s ease,opacity .2s ease;}
body.nav-open .nav-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg);}
body.nav-open .nav-toggle span:nth-child(2){opacity:0;}
body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
@media(max-width:1019px){
	.nav-toggle{display:block;}
	.main-nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;
		background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
		border-bottom:1px solid var(--tt-line);box-shadow:var(--tt-shadow);max-height:calc(100vh - 64px);overflow:auto;}
	body.nav-open .main-nav{display:block;}
	.main-nav > ul{flex-direction:column;align-items:stretch;gap:0;padding:8px 0;}
	.main-nav > ul > li{border-top:1px solid rgba(229,221,208,.6);}
	.main-nav > ul > li:first-child{border-top:none;}
	.main-nav a,.nav-group__btn{display:block;width:100%;text-align:left;padding:13px 24px;font-size:1.02rem;}
	.main-nav a::after,.nav-group__btn::after{display:none;}
	.nav-group__btn{display:none;} /* groups flatten on mobile */
	.nav-drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;background:none;
		-webkit-backdrop-filter:none;backdrop-filter:none;min-width:0;padding:0;}
	.nav-drop a{padding:13px 24px;font-size:1.02rem;border-radius:0;}
	.site-header__inner{position:relative;flex-wrap:wrap;}
}

/* ── Hero ───────────────────────────────────────── */
.hero{padding:64px 0 48px;background:linear-gradient(180deg,#fff,var(--tt-cream));}
.hero h1{text-wrap:balance;}
.hero--photo{
  position:relative;background-size:cover;background-position:center;
  padding:120px 0 96px;color:#fff;
}
.hero--photo .overline{color:var(--tt-gold);}
.hero--photo h1{color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35);}
.hero--photo p.lede{color:#efe9dd;}
.hero__inner{display:grid;gap:36px;align-items:center;position:relative;}
@media(min-width:860px){.hero__inner{grid-template-columns:1.15fr .85fr;}}
.hero h1{font-size:clamp(2.2rem,4.8vw,3.6rem);}
.hero p.lede{font-size:1.16rem;max-width:54ch;color:#4a453e;line-height:1.65;}
.trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.trust-chip{background:#fff;border:1px solid var(--tt-line);border-radius:999px;padding:6px 14px;font-size:.8rem;font-weight:600;}
.hero--photo .trust-chip{
  background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.hero__panel{
  background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-radius:var(--tt-radius);box-shadow:0 24px 60px rgba(0,0,0,.28);padding:26px;border:1px solid rgba(255,255,255,.5);
  color:var(--tt-ink);
}
.hero__panel h3{font-size:1.1rem;}
.hero__panel p{font-size:.95rem;}

/* Review strip */
.review-strip{
  display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  margin:0;padding:14px 20px;background:var(--tt-ink);color:#e9e4da;font-size:.92rem;
}
.review-strip .stars{color:var(--tt-gold);letter-spacing:2px;font-size:1rem;}
.review-strip a{color:#f3cfa9;font-weight:600;}

/* ── Lanes / category tiles ─────────────────────── */
.lanes{padding:56px 0 8px;}
.lanes__grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.lane-card{
  position:relative;background:#fff;border:1px solid rgba(229,221,208,.7);border-radius:18px;padding:26px;
  box-shadow:0 6px 20px rgba(28,26,23,.05);transition:transform .2s ease,box-shadow .2s ease;overflow:hidden;
}
.lane-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--tt-grad);}
.lane-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(28,26,23,.12);}
.lane-card h3{font-size:1.15rem;}
.lane-card p{color:#57534a;font-size:.95rem;}
.lane-card a{font-weight:700;}

/* ── Sections & listing grid ────────────────────── */
.section{padding:64px 0;}
.section h2{font-size:clamp(1.55rem,2.7vw,2.2rem);}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:10px;margin-bottom:26px;}
.section-head h2{position:relative;display:inline-block;margin-bottom:.2em;}
.listing-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));}
.listing-card{
  background:#fff;border:1px solid rgba(229,221,208,.7);border-radius:20px;overflow:hidden;
  box-shadow:0 6px 20px rgba(28,26,23,.06);display:flex;flex-direction:column;
  transition:transform .22s ease,box-shadow .22s ease;
}
.listing-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(28,26,23,.14);}
.listing-card__media{position:relative;aspect-ratio:4/3;background:#eee2cf;overflow:hidden;}
.listing-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.listing-card:hover .listing-card__media img{transform:scale(1.05);}
.listing-card__media::after{
  content:"";position:absolute;inset:auto 0 0 0;height:44%;
  background:linear-gradient(180deg,transparent,rgba(18,16,14,.55));pointer-events:none;
}
.media-price{
  position:absolute;left:12px;bottom:10px;z-index:2;color:#fff;font-weight:800;font-size:1.06rem;
  text-shadow:0 1px 10px rgba(0,0,0,.5);
}
.media-price--ask{font-size:.85rem;font-weight:600;}
.media-badge{
  position:absolute;top:12px;left:12px;z-index:2;font-size:.64rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.09em;color:#fff;
  background:linear-gradient(120deg,#d9743f,#c25a2a);border-radius:999px;padding:5px 12px;
  box-shadow:0 2px 10px rgba(0,0,0,.25);
}
/* Full-width ticket strip under the mobility grid — avoids an orphaned
 * fourth card in the 3-up rows most laptops render. */
.ticket-strip{
  margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:linear-gradient(120deg,#fdf7ec,#f6e8d2);border:1px solid rgba(217,164,65,.35);
  border-radius:20px;padding:22px 26px;
}
.ticket-strip h4{font-family:Georgia,serif;font-size:1.16rem;margin:0 0 6px;}
.ticket-strip p{margin:0;color:#5b544a;font-size:.95rem;line-height:1.5;max-width:560px;}
.ticket-strip__actions{display:flex;gap:10px;flex-wrap:wrap;}
/* Party band — a touch of dusk; keeps the page's section rhythm (no extra
 * margin: the tint starts where the band starts). */
.section--party{background:linear-gradient(180deg,rgba(58,42,66,.05),rgba(58,42,66,.11));}

.listing-card__body{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1;}
.listing-badge{
  align-self:flex-start;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  border-radius:999px;padding:4px 11px;background:var(--tt-grad-soft);color:var(--tt-orange-dark);
  border:1px solid rgba(217,164,65,.4);
}
.listing-card h4{font-family:Georgia,serif;font-size:1.16rem;margin:0;line-height:1.25;}
.listing-card h4 a{color:var(--tt-ink);}
.listing-meta{font-size:.85rem;color:#6b6459;display:flex;gap:14px;flex-wrap:wrap;}
.listing-price{font-weight:800;font-size:1.18rem;margin-top:auto;color:var(--tt-orange-dark);}
.listing-price--ask{font-size:.92rem;font-weight:600;color:#8a8478;}
.listing-card__actions{padding:0 18px 18px;margin-top:auto;}
.listing-card__actions .btn{width:100%;text-align:center;}

/* ── Trust / about blocks ───────────────────────── */
.trust-block{background:#fff;border:1px solid var(--tt-line);border-radius:var(--tt-radius);padding:28px;box-shadow:var(--tt-shadow);}
.two-col{display:grid;gap:28px;}
@media(min-width:820px){.two-col{grid-template-columns:1fr 1fr;}}
.about-photo{border-radius:var(--tt-radius);box-shadow:var(--tt-shadow);margin-bottom:20px;}

/* ── Footer ─────────────────────────────────────── */
.site-footer{
  position:relative;background:linear-gradient(180deg,#211e1a,var(--tt-ink-deep));color:#e9e4da;
  padding:52px 0 24px;margin-top:56px;overflow:hidden;
}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--tt-grad);}
.site-footer a{color:#f3cfa9;}
.footer-mark{position:absolute;right:-40px;bottom:-60px;width:280px;opacity:.07;pointer-events:none;}
.footer-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));position:relative;}
.footer-grid ul{list-style:none;margin:0;padding:0;}
.footer-grid ul li{margin:4px 0;}
.footer-legal{margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);font-size:.78rem;color:#b5ac9c;position:relative;}
.footer-legal strong{color:#e9e4da;}
.footer-credits{margin-top:14px;font-size:.68rem;color:#7d766a;line-height:1.6;position:relative;}

/* ── Timetable tables ───────────────────────────── */
.table-wrap{overflow-x:auto;border-radius:var(--tt-radius);box-shadow:var(--tt-shadow);}
.tt-table{width:100%;border-collapse:collapse;background:#fff;font-size:.9rem;min-width:560px;}
.tt-table th{background:var(--tt-ink);color:#f3cfa9;text-align:left;padding:10px 14px;font-weight:700;}
.tt-table td{padding:10px 14px;border-top:1px solid var(--tt-line);vertical-align:top;}
.tt-table tr:nth-child(even) td{background:#fbf8f2;}
.tt-note{color:#6b6459;font-size:.82rem;font-weight:400;}

/* ── Booking form ───────────────────────────────── */
.booking-form label{display:block;font-weight:600;font-size:.85rem;margin-bottom:10px;}
.booking-form input,.booking-form textarea{
	display:block;width:100%;margin-top:4px;padding:10px 12px;
	border:1px solid var(--tt-line);border-radius:10px;font:inherit;background:#fff;
	transition:border-color .15s ease,box-shadow .15s ease;
}
.booking-form input:focus,.booking-form textarea:focus{outline:none;border-color:var(--tt-orange);box-shadow:0 0 0 3px rgba(232,99,44,.18);}
.booking-form__grid{display:grid;gap:0 14px;grid-template-columns:1fr 1fr;}
.booking-form__grid label:first-child{grid-column:1/-1;}
.booking-form .btn{margin-top:6px;width:100%;text-align:center;border:none;}
.tt-hp{position:absolute !important;left:-9999px !important;height:1px;width:1px;overflow:hidden;}

/* ── Empty state ────────────────────────────────── */
.empty-note{background:#fff;border:1px dashed var(--tt-line);border-radius:var(--tt-radius);padding:24px;color:#6b6459;}

/* ── Scroll reveal (JS adds .in-view; motion-safe only) ── */
@media(prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease;}
  .reveal.in-view{opacity:1;transform:none;}
}
