/*
Theme Name:  Technica TRAVELPORT
Theme URI:   https://technicatravelport.com
Author:      Technica TRAVELPORT
Author URI:  https://technicatravelport.com
Description: Premium travel agency theme for Technica TRAVELPORT, Jorhat Assam. Includes custom post types for Destinations and Tour Packages, WooCommerce booking, WhatsApp integration, testimonials, Instagram gallery, blog, and custom itinerary form.
Version:     1.0.0
License:     GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: technica-travelport
Tags:        travel, tour, woocommerce, booking, responsive, custom-post-types
*/

/* ── GOOGLE FONTS ── */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,900;1,400&family=Inter:wght@300;400;500;600;700&family=Caveat:wght@600;700&display=swap');

/* ── CSS VARIABLES ── */
:root {
  --tt-primary:     #1B3A6B;
  --tt-primary-dk:  #162F58;
  --tt-secondary:   #E0A526;
  --tt-tagline:     #D42020;
  --tt-cream:       #FBF9F5;
  --tt-muted:       #64748B;
  --tt-border:      #E2E8F0;
  --tt-radius:      12px;
}

/* ── BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; background: var(--tt-cream); color: #1e293b; line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }

/* ── TYPOGRAPHY ── */
h1,h2,h3,h4,h5,h6 { font-family: 'Playfair Display', serif; font-weight: 700; line-height: 1.25; }
.tt-script { font-family: 'Caveat', cursive; font-weight: 700; color: var(--tt-tagline); }

/* ── CONTAINER ── */
.tt-container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

/* ── HEADER ── */
.tt-topbar { background: var(--tt-primary); color: rgba(255,255,255,0.85); font-size:12px; padding: 0 24px; }
.tt-topbar-inner { max-width:1280px; margin:0 auto; height:36px; display:flex; align-items:center; justify-content:flex-end; gap:24px; }
.tt-topbar a { color: inherit; transition: color .2s; }
.tt-topbar a:hover { color: var(--tt-secondary); }
.site-header { position: sticky; top: 0; z-index: 100; background: transparent; border-bottom: 1px solid transparent; transition: background .35s ease, border-color .35s ease, box-shadow .35s ease; }
.site-header.tt-scrolled { background: rgba(251,249,245,0.97); backdrop-filter: blur(12px); border-bottom: 1px solid var(--tt-border); box-shadow: 0 4px 20px rgba(0,0,0,.12); }
.tt-header-inner { max-width:1280px; margin:0 auto; padding:0 24px; height:76px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.tt-logo { display:flex; align-items:center; gap:12px; }
.tt-logo img.icon { height:48px; width:48px; object-fit:contain; }
.tt-logo img.mark { height:40px; width:auto; object-fit:contain; }
.tt-nav { display:flex; align-items:center; gap:4px; }
.tt-nav a { padding:8px 12px; font-size:14px; font-weight:500; color:#475569; border-radius:6px; transition:color .2s,background .2s; }
.site-header:not(.tt-scrolled) .tt-nav a { color:rgba(255,255,255,.92); }
.site-header:not(.tt-scrolled) .tt-nav a:hover { color:var(--tt-secondary); }
.site-header:not(.tt-scrolled) .tt-btn-outline { border-color:rgba(255,255,255,.6); color:#fff; }
.site-header:not(.tt-scrolled) #tt-wish-icon { stroke:#fff; }
.tt-nav a:hover, .tt-nav a.active { color: var(--tt-primary); }
.tt-nav a.active { border-bottom: 2px solid var(--tt-secondary); }
.tt-header-actions { display:flex; align-items:center; gap:8px; }
.tt-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 20px; border-radius:8px; font-weight:600; font-size:14px; cursor:pointer; border:none; transition:.2s; }
.tt-btn-outline { background:transparent; border:1.5px solid var(--tt-border); color:var(--tt-primary); }
.tt-btn-outline:hover { border-color:var(--tt-primary); }
.tt-btn-primary { background:var(--tt-secondary); color:#fff; }
.tt-btn-primary:hover { background:#c9921e; }
.tt-btn-gold { background:var(--tt-secondary); color:#1B3A6B; }

/* ── HERO ── */
.tt-hero { position:relative; height:90vh; min-height:560px; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.tt-hero-bg { position:absolute; top:-12%; left:0; right:0; height:124%; background:center/cover no-repeat; will-change:transform; }
.tt-hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, rgba(27,58,107,.45), rgba(27,58,107,.75)); }
.tt-hero-content { position:relative; z-index:2; color:#fff; padding:24px; max-width:860px; }
.tt-hero-badge { display:inline-flex; align-items:center; gap:6px; background:var(--tt-secondary); color:#1B3A6B; font-size:11px; font-weight:700; letter-spacing:.08em; padding:6px 14px; border-radius:999px; margin-bottom:20px; }
.tt-hero h1 { font-size: clamp(2.2rem, 6vw, 4.5rem); font-weight:900; text-shadow:0 2px 20px rgba(0,0,0,.4); }
.tt-hero p.tagline { font-family:'Caveat',cursive; font-size:clamp(1.5rem,4vw,2.8rem); color:var(--tt-tagline); text-shadow:0 0 12px rgba(255,255,255,.5); margin-bottom:12px; }
.tt-hero p.subtitle { font-size:1.1rem; color:rgba(255,255,255,.88); max-width:600px; margin:0 auto 32px; }
.tt-hero-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* ── SECTIONS ── */
.tt-section { padding: 80px 0; }
.tt-section-alt { background: #f1f5f9; }
.tt-section-primary { background: var(--tt-primary); color:#fff; }
.tt-section-header { text-align:center; max-width:640px; margin:0 auto 48px; }
.tt-section-header .tt-script { font-size:1.5rem; display:block; margin-bottom:8px; }
.tt-section-header h2 { font-size:clamp(1.8rem,4vw,3rem); color:var(--tt-primary); }
.tt-section-primary .tt-section-header h2 { color:#fff; }
.tt-section-header p { margin-top:12px; color:var(--tt-muted); }

/* ── GRID ── */
.tt-grid-3 { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px; }
.tt-grid-4 { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
.tt-grid-2 { display:grid; grid-template-columns:repeat(auto-fill,minmax(400px,1fr)); gap:24px; }

/* ── CARDS ── */
.tt-card { background:#fff; border-radius:var(--tt-radius); overflow:hidden; border:1px solid var(--tt-border); transition:transform .3s,box-shadow .3s; }
.tt-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.12); }
.tt-card-img { position:relative; aspect-ratio:4/3; overflow:hidden; background:#e2e8f0; }
.tt-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.tt-card:hover .tt-card-img img { transform:scale(1.06); }
.tt-card-badge { position:absolute; top:10px; left:10px; background:var(--tt-secondary); color:#1B3A6B; font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px; }
.tt-card-rating { position:absolute; top:10px; right:10px; background:rgba(255,255,255,.96); font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px; display:flex; align-items:center; gap:4px; }
.tt-card-rating::before { content:'★'; color:var(--tt-secondary); }
.tt-card-body { padding:20px; }
.tt-card-body h3 { font-size:1.1rem; color:var(--tt-primary); margin-bottom:8px; }
.tt-card-meta { font-size:12px; color:var(--tt-muted); display:flex; gap:12px; margin-bottom:8px; flex-wrap:wrap; }
.tt-card-price { font-family:'Playfair Display',serif; font-size:1.5rem; font-weight:700; color:var(--tt-primary); }
.tt-card-price small { font-family:'Inter',sans-serif; font-size:11px; font-weight:400; color:var(--tt-muted); }
.tt-card-foot { border-top:1px solid var(--tt-border); padding:12px 20px; display:flex; justify-content:space-between; align-items:center; }
.tt-card-foot a { font-size:12px; font-weight:600; color:var(--tt-secondary); }
.tt-card-foot a:hover { text-decoration:underline; }

/* ── DESTINATION CARD ── */
.tt-dest-card { border-radius:var(--tt-radius); overflow:hidden; position:relative; aspect-ratio:3/4; }
.tt-dest-card img { width:100%;height:100%;object-fit:cover;transition:transform .5s; }
.tt-dest-card:hover img { transform:scale(1.07); }
.tt-dest-card-over { position:absolute;inset:0;background:linear-gradient(to top,rgba(27,58,107,.85) 0%,transparent 55%);display:flex;flex-direction:column;justify-content:flex-end;padding:20px; }
.tt-dest-card-over h3 { color:#fff;font-size:1.2rem; }
.tt-dest-card-over p { color:rgba(255,255,255,.8);font-size:12px;margin-top:4px; }

/* ── STATS ── */
.tt-stats { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:0; border-top:1px solid rgba(255,255,255,.1); }
.tt-stat { padding:32px 24px; text-align:center; border-right:1px solid rgba(255,255,255,.1); }
.tt-stat:last-child { border-right:none; }
.tt-stat-num { font-family:'Playfair Display',serif; font-size:2.5rem; font-weight:900; color:var(--tt-secondary); }
.tt-stat-lbl { font-size:13px; color:rgba(255,255,255,.75); margin-top:4px; }

/* ── TESTIMONIALS ── */
.tt-testi { background:#fff;border-radius:var(--tt-radius);padding:28px;border:1px solid var(--tt-border); }
.tt-testi-stars { color:var(--tt-secondary);font-size:1rem;margin-bottom:12px; }
.tt-testi-text { font-size:14px;color:#475569;line-height:1.7;font-style:italic; }
.tt-testi-name { margin-top:16px;font-weight:600;color:var(--tt-primary); }
.tt-testi-loc { font-size:12px;color:var(--tt-muted); }

/* ── INSTAGRAM GRID ── */
.tt-ig-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:8px; }
.tt-ig-item { position:relative;aspect-ratio:1;overflow:hidden;border-radius:8px;cursor:pointer; }
.tt-ig-item img { width:100%;height:100%;object-fit:cover;transition:transform .4s; }
.tt-ig-item:hover img { transform:scale(1.1); }
.tt-ig-over { position:absolute;inset:0;background:rgba(27,58,107,.7);opacity:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:600;transition:opacity .3s; }
.tt-ig-item:hover .tt-ig-over { opacity:1; }

/* ── BLOG ── */
.tt-blog-card { background:#fff;border-radius:var(--tt-radius);overflow:hidden;border:1px solid var(--tt-border);transition:transform .3s,box-shadow .3s; }
.tt-blog-card:hover { transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.1); }
.tt-blog-card img { width:100%;aspect-ratio:16/9;object-fit:cover; }
.tt-blog-card-body { padding:20px; }
.tt-blog-card-cat { font-size:11px;font-weight:700;color:var(--tt-secondary);text-transform:uppercase;letter-spacing:.06em; }
.tt-blog-card-body h3 { margin:8px 0;font-size:1.05rem;color:var(--tt-primary); }
.tt-blog-card-body p { font-size:13px;color:var(--tt-muted);line-height:1.6; }

/* ── CTA STRIP ── */
.tt-cta { background:var(--tt-secondary);padding:64px 24px;text-align:center; }
.tt-cta h2 { font-family:'Playfair Display',serif;font-size:2.2rem;color:var(--tt-primary); }
.tt-cta p { margin:12px 0 28px;color:rgba(27,58,107,.8); }

/* ── FOOTER ── */
.site-footer { background:var(--tt-primary);color:rgba(255,255,255,.8); }
.tt-footer-grid { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;max-width:1280px;margin:0 auto;padding:64px 24px 40px; }
.tt-footer-logo { margin-bottom:16px;background:#fff;display:inline-block;padding:8px 12px;border-radius:8px; }
.tt-footer-logo img { height:40px;width:auto; }
.tt-footer-desc { font-size:13px;line-height:1.7; }
.tt-footer h4 { color:#fff;font-family:'Playfair Display',serif;margin-bottom:16px;font-size:1rem; }
.tt-footer ul { list-style:none; }
.tt-footer ul li { margin-bottom:8px; }
.tt-footer ul li a { font-size:13px;color:rgba(255,255,255,.7);transition:color .2s; }
.tt-footer ul li a:hover { color:var(--tt-secondary); }
.tt-footer-bottom { max-width:1280px;margin:0 auto;padding:20px 24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:16px;flex-wrap:wrap; }

/* ── SINGLE PACKAGE ── */
.tt-package-hero { position:relative;height:55vh;min-height:380px;overflow:hidden; }
.tt-package-hero img { width:100%;height:100%;object-fit:cover; }
.tt-package-hero-over { position:absolute;inset:0;background:linear-gradient(to bottom,transparent 30%,rgba(27,58,107,.85)); }
.tt-package-hero-content { position:absolute;bottom:0;left:0;right:0;padding:40px 24px;color:#fff;max-width:1280px;margin:0 auto; }
.tt-package-hero-content h1 { font-size:clamp(1.8rem,4vw,3rem); }
.tt-package-layout { max-width:1280px;margin:0 auto;padding:48px 24px;display:grid;grid-template-columns:1fr 340px;gap:40px;align-items:start; }
.tt-package-sidebar { background:#fff;border-radius:var(--tt-radius);border:1px solid var(--tt-border);padding:28px;position:sticky;top:100px; }
.tt-price-tag { font-family:'Playfair Display',serif;font-size:2.5rem;font-weight:900;color:var(--tt-primary); }
.tt-price-tag small { font-size:13px;font-weight:400;font-family:'Inter',sans-serif;color:var(--tt-muted); }
.tt-divider { border:none;border-top:1px solid var(--tt-border);margin:20px 0; }
.tt-highlight-list, .tt-incl-list { list-style:none;padding:0; }
.tt-highlight-list li, .tt-incl-list li { padding:6px 0;font-size:14px;color:#475569;display:flex;align-items:flex-start;gap:8px; }
.tt-highlight-list li::before { content:'→';color:var(--tt-secondary);font-weight:700;flex-shrink:0; }
.tt-incl-list li.yes::before { content:'✓';color:#16a34a;font-weight:700;flex-shrink:0; }
.tt-incl-list li.no::before { content:'✗';color:#dc2626;font-weight:700;flex-shrink:0; }
.tt-itinerary-day { margin-bottom:20px;border-left:3px solid var(--tt-secondary);padding-left:16px; }
.tt-itinerary-day h4 { color:var(--tt-primary);margin-bottom:4px; }
.tt-itinerary-day p { font-size:14px;color:#475569; }

/* ── FLOATING BUTTONS ── */
.tt-float { position:fixed;right:20px;bottom:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;align-items:flex-end; }
.tt-float a { display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;font-weight:600;font-size:14px;text-decoration:none;color:#fff;box-shadow:0 6px 20px rgba(0,0,0,.2);transition:transform .2s; }
.tt-float a:hover { transform:scale(1.05); }
.tt-float .tt-book { background:var(--tt-secondary);color:#1B3A6B; }
.tt-float .tt-wa { background:#25D366; }

/* ── FORMS ── */
.tt-form-group { margin-bottom:20px; }
.tt-form-group label { display:block;font-size:13px;font-weight:600;color:var(--tt-primary);margin-bottom:6px; }
.tt-form-group input, .tt-form-group textarea, .tt-form-group select { width:100%;padding:10px 14px;border:1.5px solid var(--tt-border);border-radius:8px;font-family:'Inter',sans-serif;font-size:14px;transition:border-color .2s; }
.tt-form-group input:focus, .tt-form-group textarea:focus, .tt-form-group select:focus { outline:none;border-color:var(--tt-primary); }

/* ── UTILITY ── */
.text-primary { color:var(--tt-primary); }
.text-secondary { color:var(--tt-secondary); }
.text-muted { color:var(--tt-muted); }
.text-tagline { color:var(--tt-tagline); }
.mb-2 { margin-bottom:8px; } .mb-4 { margin-bottom:16px; } .mb-6 { margin-bottom:24px; }
.mt-2 { margin-top:8px; } .mt-4 { margin-top:16px; } .mt-6 { margin-top:24px; }
.flex { display:flex; } .items-center { align-items:center; } .gap-2 { gap:8px; } .gap-4 { gap:16px; }
.rounded { border-radius:var(--tt-radius); }

/* ── RESPONSIVE ── */
@media (max-width:1024px) {
  .tt-nav { display:none; }
  .tt-package-layout { grid-template-columns:1fr; }
  .tt-footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:768px) {
  .tt-ig-grid { grid-template-columns:repeat(2,1fr); }
  .tt-footer-grid { grid-template-columns:1fr; }
  .tt-stats { grid-template-columns:repeat(2,1fr); }
  .tt-hero { height:70vh; }
}
@media (max-width:480px) {
  .tt-ig-grid { grid-template-columns:repeat(2,1fr); }
  .tt-package-sidebar { position:static; }
}
