#!/usr/bin/env python3
"""
Tour Venture India — Uttarakhand Destination Page Generator
============================================================
Template: uttarakhand/dehradun-tour-packages.html

Usage:
  python generate_uk_destination.py --dest "Mussoorie" --slug "mussoorie-tour-packages"
  python generate_uk_destination.py --dest "Rishikesh" --slug "rishikesh-tour-packages"
  python generate_uk_destination.py --dest "Haridwar" --slug "haridwar-tour-packages"
  python generate_uk_destination.py --dest "Nainital" --slug "nainital-tour-packages"

  # Batch — generate all at once:
  python generate_uk_destination.py --batch
"""

import argparse
import os
import sys
from datetime import date

SCRIPT_DIR  = os.path.dirname(os.path.abspath(__file__))
TEMPLATE    = os.path.join(SCRIPT_DIR, "dehradun-tour-packages.html")

# ══════════════════════════════════════════════════════════════════════
#  DESTINATION DATA
#  Sirf yahan data add karo — baaki sab automatic ho jayega
# ══════════════════════════════════════════════════════════════════════
DESTINATIONS = {

    "mussoorie": {
        "name"          : "Mussoorie",
        "slug"          : "mussoorie-tour-packages",
        "tagline"       : "Queen of Hills, Uttarakhand",
        "altitude"      : "2,005m",
        "geo_lat"       : "30.4598",
        "geo_long"      : "78.0644",
        "geo_region"    : "IN-UT",
        "placename"     : "Mussoorie, Uttarakhand, India",
        "og_image"      : "https://tourventureindia.com/assets/uk/mussoorie-tour.webp",
        "og_img_alt"    : "Mussoorie — Queen of Hills, Uttarakhand, India",
        "hero_image"    : "../assets/uk/mussoorie-hero.jpg",
        "hero_badge"    : "Queen of Hills",
        "price_from"    : "₹6,499",
        "title_tag"     : "Mussoorie Tour Packages | Best Travel Agency in Mussoorie | Tour Venture India",
        "meta_desc"     : "Book the best Mussoorie tour packages with Tour Venture India — trusted tour operator. Mussoorie Kempty Falls, Lal Tibba, Mall Road & couple packages from ₹6,499/person. Call +91-8057146497.",
        "meta_keywords" : "mussoorie tour packages, mussoorie travel agents, tour operator in mussoorie, mussoorie trip package, mussoorie honeymoon package, mussoorie package, best travel agency in mussoorie, mussoorie tour packages from dehradun, mussoorie tour package for couple",
        "hero_desc"     : 'The "Queen of Hills," <strong>Mussoorie</strong> sits at 2,005m in the Garhwal Himalayan ranges, offering breathtaking views of the Doon Valley and snow-capped peaks. Stroll the iconic <strong>Mall Road</strong>, witness the thundering <strong>Kempty Falls</strong>, and catch panoramic vistas from <strong>Lal Tibba</strong>. Tour Venture India crafts fully customised <strong>Mussoorie tour packages</strong> — honeymoon trips, family getaways, Dehradun combos &amp; weekend escapes — from ₹6,499/person. WhatsApp us for your personalised itinerary in 2 hours.',
        "breadcrumb_label": "Mussoorie",
        "canonical"     : "https://tourventureindia.com/mussoorie-tour-packages",
        "schema_desc"   : "Mussoorie is the Queen of Hills in Uttarakhand, situated at 2,005m in the Garhwal Himalayan ranges. Famous for Mall Road, Kempty Falls, Lal Tibba, Gun Hill, and Camel's Back Road, it is a premier honeymoon and family hill station destination.",
        "attractions"   : ["Mall Road", "Kempty Falls", "Lal Tibba", "Gun Hill", "Camel's Back Road", "Company Garden"],
        "faq_best_time" : "March to June is ideal — pleasant 10°C–25°C weather perfect for sightseeing. October–November offers clear skies and misty valleys. December–February brings snowfall and a magical winter atmosphere.",
        "faq_distance"  : "Mussoorie is approximately 35 km from Dehradun via NH-707A, about 1–1.5 hours by road. Jolly Grant Airport, Dehradun is 60 km away. Delhi to Mussoorie is ~300 km (~6–7 hours by road).",
        "packages": [
            {"title": "Mussoorie Day Tour",        "route": "Mall Road → Kempty Falls → Gun Hill → Lal Tibba",        "dur": "1N/2D", "orig": "₹8,499", "disc": "₹6,499", "rating": "4.7", "reviews": "156", "img": "../assets/uk/mussoorie-tour.webp"},
            {"title": "Mussoorie Honeymoon Package","route": "Mussoorie → Landour → Cloud's End → Kempty Falls Sunset","dur": "2N/3D", "orig": "₹12,499","disc": "₹9,999", "rating": "4.9", "reviews": "212", "img": "../assets/uk/mussoorie-honeymoon.webp"},
            {"title": "Dehradun + Mussoorie Tour",  "route": "Dehradun FRI → Mussoorie Mall Road → Kempty Falls",      "dur": "3N/4D", "orig": "₹11,499","disc": "₹8,999", "rating": "4.8", "reviews": "198", "img": "../assets/uk/dehradunl-tour.webp"},
            {"title": "Mussoorie + Dhanaulti",     "route": "Mussoorie → Dhanaulti Eco Park → Surkhanda Devi Temple", "dur": "3N/4D", "orig": "₹10,499","disc": "₹7,999", "rating": "4.7", "reviews": "134", "img": "../assets/uk/dhanaulti-tour.webp"},
        ],
        "related_packages": [
            ("dehradun-tour-packages.html",  "Dehradun Tour Package"),
            ("dhanaulti-tour-packages.html", "Dhanaulti Tour"),
            ("chakrata-tour-packages.html",  "Chakrata Tour"),
            ("rishikesh-tour-packages.html", "Rishikesh Tour"),
            ("haridwar-tour-packages.html",  "Haridwar Tour"),
            ("lansdowne-tour-packages.html", "Lansdowne Tour"),
        ],
        "sidebar_pkg_options": ["Mussoorie Day Tour","Mussoorie Honeymoon Package","Dehradun + Mussoorie Tour","Mussoorie + Dhanaulti","Custom Package"],
        "wa_msg"        : "Hi, I want to book a Mussoorie tour package.",
        "footer_packages": [
            ("mussoorie-tour-packages.html", "Mussoorie Day Tour"),
            ("mussoorie-tour-packages.html", "Mussoorie Honeymoon"),
            ("mussoorie-tour-packages.html", "Dehradun + Mussoorie"),
            ("mussoorie-tour-packages.html", "Weekend Getaway"),
        ],
        "footer_attractions": [
            ("mall-road-mussoorie.html",    "Mall Road"),
            ("kempty-falls-mussoorie.html", "Kempty Falls"),
            ("lal-tibba-mussoorie.html",    "Lal Tibba"),
            ("gun-hill-mussoorie.html",     "Gun Hill"),
            ("camel-back-road.html",        "Camel's Back Road"),
            ("company-garden-mussoorie.html","Company Garden"),
        ],
    },

    "rishikesh": {
        "name"          : "Rishikesh",
        "slug"          : "rishikesh-tour-packages",
        "tagline"       : "Yoga Capital of the World",
        "altitude"      : "372m",
        "geo_lat"       : "30.0869",
        "geo_long"      : "78.2676",
        "geo_region"    : "IN-UT",
        "placename"     : "Rishikesh, Uttarakhand, India",
        "og_image"      : "https://tourventureindia.com/assets/uk/rishikesh-tour.webp",
        "og_img_alt"    : "Rishikesh — Yoga Capital of the World, Uttarakhand, India",
        "hero_image"    : "../assets/uk/rishikesh-hero.jpg",
        "hero_badge"    : "Yoga Capital of World",
        "price_from"    : "₹4,999",
        "title_tag"     : "Rishikesh Tour Packages | Best Travel Agency in Rishikesh | Tour Venture India",
        "meta_desc"     : "Book the best Rishikesh tour packages with Tour Venture India. River rafting, Laxman Jhula, Beatles Ashram & adventure packages from ₹4,999/person. Call +91-8057146497.",
        "meta_keywords" : "rishikesh tour packages, rishikesh travel agents, tour operator in rishikesh, rishikesh adventure tour, rishikesh river rafting package, best travel agency in rishikesh, rishikesh haridwar package, rishikesh weekend trip",
        "hero_desc"     : 'The spiritual and adventure capital of India, <strong>Rishikesh</strong> sits at 372m at the foothills of the Himalayas on the banks of the sacred <strong>Ganga</strong>. Experience world-class <strong>river rafting</strong>, visit the iconic <strong>Laxman Jhula</strong>, attend the soul-stirring <strong>Ganga Aarti</strong>, and meditate at ancient ashrams. Tour Venture India crafts fully customised <strong>Rishikesh tour packages</strong> — adventure trips, yoga retreats, Haridwar combos &amp; family tours — from ₹4,999/person. WhatsApp us for your personalised itinerary in 2 hours.',
        "breadcrumb_label": "Rishikesh",
        "canonical"     : "https://tourventureindia.com/rishikesh-tour-packages",
        "schema_desc"   : "Rishikesh is known as the Yoga Capital of the World, situated at 372m at the foothills of the Himalayas. Famous for Laxman Jhula, Ram Jhula, Ganga Aarti, river rafting, Beatles Ashram, and numerous yoga ashrams.",
        "attractions"   : ["Laxman Jhula", "Ram Jhula", "Triveni Ghat", "Beatles Ashram", "Neelkanth Mahadev Temple", "Rajaji National Park"],
        "faq_best_time" : "October to March is the best time — pleasant weather ideal for rafting and sightseeing. February–May is best for river rafting as the Ganga is at optimal levels. Avoid monsoon (July–August) for rafting.",
        "faq_distance"  : "Rishikesh is approximately 24 km from Haridwar and 46 km from Dehradun. Delhi to Rishikesh is ~240 km (~5–6 hours by road). Jolly Grant Airport is 35 km from Rishikesh.",
        "packages": [
            {"title": "Rishikesh Adventure Tour",  "route": "River Rafting → Laxman Jhula → Ganga Aarti → Bungee",   "dur": "2N/3D", "orig": "₹6,499", "disc": "₹4,999", "rating": "4.8", "reviews": "243", "img": "../assets/uk/rishikesh-tour.webp"},
            {"title": "Rishikesh Yoga Retreat",    "route": "Yoga Ashram → Meditation → Ganga Aarti → Wellness",     "dur": "3N/4D", "orig": "₹8,499", "disc": "₹6,999", "rating": "4.9", "reviews": "187", "img": "../assets/uk/rishikesh-yoga.webp"},
            {"title": "Rishikesh + Haridwar Tour", "route": "Rishikesh Rafting → Haridwar Ganga Aarti → Har Ki Pauri","dur": "3N/4D", "orig": "₹9,499", "disc": "₹7,499", "rating": "4.8", "reviews": "312", "img": "../assets/uk/haridwar-tour.webp"},
            {"title": "Dehradun + Rishikesh Tour", "route": "Dehradun → Rishikesh River Rafting → Haridwar Ganga Aarti","dur": "2N/3D","orig": "₹6,499", "disc": "₹4,999", "rating": "4.7", "reviews": "167", "img": "../assets/uk/dehradunl-tour.webp"},
        ],
        "related_packages": [
            ("haridwar-tour-packages.html",  "Haridwar Tour Package"),
            ("dehradun-tour-packages.html",  "Dehradun Tour"),
            ("mussoorie-tour-packages.html", "Mussoorie Tour"),
            ("char-dham-yatra.html",         "Char Dham Yatra"),
            ("kedarnath-tour-package.html",  "Kedarnath Package"),
            ("badrinath-tour-package.html",  "Badrinath Package"),
        ],
        "sidebar_pkg_options": ["Rishikesh Adventure Tour","Rishikesh Yoga Retreat","Rishikesh + Haridwar Tour","Dehradun + Rishikesh Tour","Custom Package"],
        "wa_msg"        : "Hi, I want to book a Rishikesh tour package.",
        "footer_packages": [
            ("rishikesh-tour-packages.html", "Rishikesh Adventure Tour"),
            ("rishikesh-tour-packages.html", "Rishikesh Yoga Retreat"),
            ("rishikesh-tour-packages.html", "Rishikesh + Haridwar"),
            ("rishikesh-tour-packages.html", "Weekend Rafting Trip"),
        ],
        "footer_attractions": [
            ("laxman-jhula-rishikesh.html",       "Laxman Jhula"),
            ("ram-jhula-rishikesh.html",           "Ram Jhula"),
            ("triveni-ghat-rishikesh.html",        "Triveni Ghat"),
            ("beatles-ashram-rishikesh.html",      "Beatles Ashram"),
            ("neelkanth-mahadev-temple.html",      "Neelkanth Mahadev"),
            ("rajaji-national-park.html",          "Rajaji National Park"),
        ],
    },

    "haridwar": {
        "name"          : "Haridwar",
        "slug"          : "haridwar-tour-packages",
        "tagline"       : "Gateway to the Gods",
        "altitude"      : "314m",
        "geo_lat"       : "29.9457",
        "geo_long"      : "78.1642",
        "geo_region"    : "IN-UT",
        "placename"     : "Haridwar, Uttarakhand, India",
        "og_image"      : "https://tourventureindia.com/assets/uk/haridwar-tour.webp",
        "og_img_alt"    : "Haridwar — Gateway to the Gods, Uttarakhand, India",
        "hero_image"    : "../assets/uk/haridwar-hero.jpg",
        "hero_badge"    : "Gateway to the Gods",
        "price_from"    : "₹3,999",
        "title_tag"     : "Haridwar Tour Packages | Best Travel Agency in Haridwar | Tour Venture India",
        "meta_desc"     : "Book the best Haridwar tour packages with Tour Venture India. Ganga Aarti at Har Ki Pauri, Chandi Devi, Mansa Devi & pilgrimage packages from ₹3,999/person. Call +91-8057146497.",
        "meta_keywords" : "haridwar tour packages, haridwar travel agents, tour operator in haridwar, haridwar rishikesh package, ganga aarti haridwar, best travel agency in haridwar, haridwar pilgrimage tour, haridwar tour for family",
        "hero_desc"     : 'One of the seven holiest cities in India, <strong>Haridwar</strong> sits at 314m at the foothills of the Himalayas where the sacred <strong>Ganga</strong> descends from the mountains to the plains. Witness the mesmerising <strong>Ganga Aarti at Har Ki Pauri</strong>, seek blessings at <strong>Mansa Devi</strong> and <strong>Chandi Devi</strong> temples, and experience the divine energy of this eternal pilgrimage city. Tour Venture India crafts fully customised <strong>Haridwar tour packages</strong> — Ganga Aarti tours, pilgrimage trips, Rishikesh combos &amp; family packages — from ₹3,999/person.',
        "breadcrumb_label": "Haridwar",
        "canonical"     : "https://tourventureindia.com/haridwar-tour-packages",
        "schema_desc"   : "Haridwar is one of the seven holiest cities in Hinduism, located at 314m at the foothills of the Himalayas. Famous for Har Ki Pauri Ganga Aarti, Mansa Devi Temple, Chandi Devi Temple, and as the starting point of Char Dham Yatra.",
        "attractions"   : ["Har Ki Pauri", "Mansa Devi Temple", "Chandi Devi Temple", "Maya Devi Temple", "Rajaji National Park", "Sapt Rishi Ashram"],
        "faq_best_time" : "October to March is the best time for Haridwar — comfortable weather for sightseeing and Ganga Aarti. March–April brings Mahashivratri and Kumbh Mela seasons. Avoid peak summer afternoons as temperatures can reach 40°C.",
        "faq_distance"  : "Haridwar is approximately 24 km from Rishikesh and 54 km from Dehradun. Delhi to Haridwar is ~230 km (~5–6 hours by road or ~4.5 hours by Shatabdi Express train). Jolly Grant Airport, Dehradun is 40 km away.",
        "packages": [
            {"title": "Haridwar Day Tour",         "route": "Har Ki Pauri → Mansa Devi → Chandi Devi → Ganga Aarti",  "dur": "1N/2D", "orig": "₹5,499", "disc": "₹3,999", "rating": "4.7", "reviews": "289", "img": "../assets/uk/haridwar-tour.webp"},
            {"title": "Haridwar + Rishikesh Tour", "route": "Haridwar Ganga Aarti → Rishikesh Rafting → Laxman Jhula","dur": "2N/3D", "orig": "₹8,499", "disc": "₹6,499", "rating": "4.9", "reviews": "412", "img": "../assets/uk/rishikesh-tour.webp"},
            {"title": "Haridwar Pilgrimage Tour",  "route": "Haridwar → Mansa Devi → Chandi Devi → Ganga Aarti",     "dur": "2N/3D", "orig": "₹6,499", "disc": "₹4,999", "rating": "4.8", "reviews": "234", "img": "../assets/uk/haridwar-pilgrimage.webp"},
            {"title": "Char Dham Yatra Start",     "route": "Haridwar → Yamunotri → Gangotri → Kedarnath → Badrinath","dur": "10N/11D","orig": "₹28,999","disc": "₹24,999","rating": "4.9", "reviews": "187", "img": "../assets/uk/char-dham-yatra-package.jpg"},
        ],
        "related_packages": [
            ("rishikesh-tour-packages.html",    "Rishikesh Tour Package"),
            ("dehradun-tour-packages.html",     "Dehradun Tour"),
            ("char-dham-yatra.html",            "Char Dham Yatra"),
            ("char-dham-yatra-from-haridwar.html","Char Dham from Haridwar"),
            ("kedarnath-tour-package.html",     "Kedarnath Package"),
            ("badrinath-tour-package.html",     "Badrinath Package"),
        ],
        "sidebar_pkg_options": ["Haridwar Day Tour","Haridwar + Rishikesh Tour","Haridwar Pilgrimage Tour","Char Dham Yatra Start","Custom Package"],
        "wa_msg"        : "Hi, I want to book a Haridwar tour package.",
        "footer_packages": [
            ("haridwar-tour-packages.html", "Haridwar Day Tour"),
            ("haridwar-tour-packages.html", "Haridwar + Rishikesh"),
            ("haridwar-tour-packages.html", "Haridwar Pilgrimage Tour"),
            ("haridwar-tour-packages.html", "Ganga Aarti Tour"),
        ],
        "footer_attractions": [
            ("har-ki-pauri-haridwar.html",      "Har Ki Pauri"),
            ("mansa-devi-temple-haridwar.html", "Mansa Devi Temple"),
            ("chandi-devi-temple-haridwar.html","Chandi Devi Temple"),
            ("maya-devi-temple-haridwar.html",  "Maya Devi Temple"),
            ("rajaji-national-park.html",       "Rajaji National Park"),
            ("sapt-rishi-ashram-haridwar.html", "Sapt Rishi Ashram"),
        ],
    },

    "nainital": {
        "name"          : "Nainital",
        "slug"          : "nainital-tour-packages",
        "tagline"       : "Lake District of India",
        "altitude"      : "2,084m",
        "geo_lat"       : "29.3803",
        "geo_long"      : "79.4636",
        "geo_region"    : "IN-UT",
        "placename"     : "Nainital, Uttarakhand, India",
        "og_image"      : "https://tourventureindia.com/assets/uk/nainital-tour.webp",
        "og_img_alt"    : "Nainital — Lake District of India, Uttarakhand",
        "hero_image"    : "../assets/uk/nainital-hero.jpg",
        "hero_badge"    : "Lake District of India",
        "price_from"    : "₹6,999",
        "title_tag"     : "Nainital Tour Packages | Best Travel Agency in Nainital | Tour Venture India",
        "meta_desc"     : "Book the best Nainital tour packages with Tour Venture India. Naini Lake, Naina Devi Temple, Snow View, Mall Road & family packages from ₹6,999/person. Call +91-8057146497.",
        "meta_keywords" : "nainital tour packages, nainital travel agents, tour operator in nainital, nainital trip package, nainital honeymoon package, best travel agency in nainital, nainital tour packages from delhi, nainital corbett package",
        "hero_desc"     : 'The crown jewel of Kumaon, <strong>Nainital</strong> sits at 2,084m around the emerald <strong>Naini Lake</strong> in the Kumaon Hills of Uttarakhand. Enjoy boating on the serene lake, ride the ropeway to <strong>Snow View Point</strong>, seek blessings at <strong>Naina Devi Temple</strong>, and stroll the vibrant <strong>Mall Road</strong>. Tour Venture India crafts fully customised <strong>Nainital tour packages</strong> — honeymoon trips, family holidays, Corbett combos &amp; weekend getaways — from ₹6,999/person.',
        "breadcrumb_label": "Nainital",
        "canonical"     : "https://tourventureindia.com/nainital-tour-packages",
        "schema_desc"   : "Nainital is the Lake District of India, situated at 2,084m in the Kumaon Hills of Uttarakhand. Famous for Naini Lake, Snow View Point, Naina Devi Temple, Mall Road, and as a gateway to Jim Corbett National Park.",
        "attractions"   : ["Naini Lake", "Snow View Point", "Naina Devi Temple", "Mall Road", "Tiffin Top", "Jim Corbett National Park"],
        "faq_best_time" : "March to June is the best time — pleasant weather (10°C–25°C) ideal for sightseeing and boating. October–November is excellent with clear post-monsoon skies. December–February brings snowfall and a magical winter atmosphere.",
        "faq_distance"  : "Nainital is approximately 300 km from Delhi (~6–7 hours by road). Nearest railway station is Kathgodam, 34 km away. Jolly Grant Airport, Dehradun is 290 km. Pantnagar Airport is 65 km from Nainital.",
        "packages": [
            {"title": "Nainital Sightseeing Tour",  "route": "Naini Lake Boating → Snow View → Naina Devi → Mall Road", "dur": "2N/3D", "orig": "₹8,999", "disc": "₹6,999", "rating": "4.7", "reviews": "178", "img": "../assets/uk/nainital-tour.webp"},
            {"title": "Nainital Honeymoon Package", "route": "Naini Lake → Khurpatal → Bhimtal → Sattal Eco Camp",     "dur": "3N/4D", "orig": "₹13,999","disc": "₹10,999","rating": "4.9", "reviews": "234", "img": "../assets/uk/nainital-honeymoon.webp"},
            {"title": "Nainital + Corbett Tour",    "route": "Nainital Lake → Jim Corbett Safari → Dhikuli Resort",    "dur": "4N/5D", "orig": "₹16,999","disc": "₹13,999","rating": "4.8", "reviews": "156", "img": "../assets/uk/corbett-safari.webp"},
            {"title": "Nainital + Mukteshwar Tour", "route": "Nainital → Mukteshwar → Bhalu Gaad Waterfall → Apple Orchard","dur": "3N/4D","orig": "₹11,999","disc": "₹8,999","rating": "4.7","reviews": "112","img": "../assets/uk/mukteshwar-tour.webp"},
        ],
        "related_packages": [
            ("jim-corbett-tour-packages.html", "Jim Corbett Tour"),
            ("mukteshwar-tour-packages.html",  "Mukteshwar Tour"),
            ("almora-tour-packages.html",      "Almora Tour"),
            ("ranikhet-tour-packages.html",    "Ranikhet Tour"),
            ("kausani-tour-packages.html",     "Kausani Tour"),
            ("lansdowne-tour-packages.html",   "Lansdowne Tour"),
        ],
        "sidebar_pkg_options": ["Nainital Sightseeing Tour","Nainital Honeymoon Package","Nainital + Corbett Tour","Nainital + Mukteshwar Tour","Custom Package"],
        "wa_msg"        : "Hi, I want to book a Nainital tour package.",
        "footer_packages": [
            ("nainital-tour-packages.html", "Nainital Sightseeing"),
            ("nainital-tour-packages.html", "Nainital Honeymoon"),
            ("nainital-tour-packages.html", "Nainital + Corbett"),
            ("nainital-tour-packages.html", "Weekend Getaway"),
        ],
        "footer_attractions": [
            ("naini-lake-nainital.html",        "Naini Lake"),
            ("snow-view-point-nainital.html",   "Snow View Point"),
            ("naina-devi-temple-nainital.html", "Naina Devi Temple"),
            ("mall-road-nainital.html",         "Mall Road"),
            ("tiffin-top-nainital.html",        "Tiffin Top"),
            ("jim-corbett-national-park.html",  "Jim Corbett National Park"),
        ],
    },

    "chakrata": {
        "name"          : "Chakrata",
        "slug"          : "chakrata-tour-packages",
        "tagline"       : "Hidden Gem of Uttarakhand",
        "altitude"      : "2,118m",
        "geo_lat"       : "30.6985",
        "geo_long"      : "77.8697",
        "geo_region"    : "IN-UT",
        "placename"     : "Chakrata, Uttarakhand, India",
        "og_image"      : "https://tourventureindia.com/assets/uk/chakrata-tour.webp",
        "og_img_alt"    : "Chakrata — Hidden Gem of Uttarakhand, India",
        "hero_image"    : "../assets/uk/chakrata-hero.jpg",
        "hero_badge"    : "Hidden Gem of Uttarakhand",
        "price_from"    : "₹4,999",
        "title_tag"     : "Chakrata Tour Packages | Best Travel Agency in Chakrata | Tour Venture India",
        "meta_desc"     : "Book the best Chakrata tour packages with Tour Venture India. Tiger Falls, Chilmiri Neck, Deoban forest & offbeat packages from ₹4,999/person. Call +91-8057146497.",
        "meta_keywords" : "chakrata tour packages, chakrata travel agents, tour operator in chakrata, chakrata trip package, chakrata offbeat tour, best travel agency in chakrata, chakrata dehradun package, chakrata weekend trip",
        "hero_desc"     : 'The best-kept secret of Uttarakhand, <strong>Chakrata</strong> sits at 2,118m in the Jaunsar-Bawar region — pristine, peaceful, and largely untouched by mass tourism. Trek to the magnificent <strong>Tiger Falls</strong>, India\'s highest single-drop waterfall, enjoy panoramic Himalayan views from <strong>Chilmiri Neck</strong>, and explore the ancient <strong>Deoban Forest</strong>. Tour Venture India crafts fully customised <strong>Chakrata tour packages</strong> — offbeat getaways, camping trips, Dehradun combos &amp; nature escapes — from ₹4,999/person.',
        "breadcrumb_label": "Chakrata",
        "canonical"     : "https://tourventureindia.com/chakrata-tour-packages",
        "schema_desc"   : "Chakrata is a pristine hill station in Uttarakhand at 2,118m, known as the hidden gem of the Garhwal Himalayas. Famous for Tiger Falls, Chilmiri Neck viewpoint, Deoban Forest, Budher Caves, and Kanasar campsite.",
        "attractions"   : ["Tiger Falls", "Chilmiri Neck", "Deoban Forest", "Budher Caves", "Kanasar", "Ram Tal Garden"],
        "faq_best_time" : "April to June and September to November are the best times — pleasant weather with clear Himalayan views. December to February brings heavy snowfall making Chakrata a snow destination. Avoid July–August due to road conditions.",
        "faq_distance"  : "Chakrata is approximately 98 km from Dehradun (~3 hours by road). Delhi to Chakrata is ~400 km (~8–9 hours by road). No direct train; nearest railhead is Dehradun Railway Station.",
        "packages": [
            {"title": "Chakrata Weekend Getaway", "route": "Tiger Falls → Chilmiri Neck → Deoban → Kanasar Camp",     "dur": "2N/3D", "orig": "₹6,499", "disc": "₹4,999", "rating": "4.7", "reviews": "89",  "img": "../assets/uk/chakrata-tour.webp"},
            {"title": "Chakrata Camping Tour",    "route": "Chakrata → Kanasar Forest Camp → Tiger Falls Trek",       "dur": "2N/3D", "orig": "₹7,499", "disc": "₹5,999", "rating": "4.8", "reviews": "76",  "img": "../assets/uk/chakrata-camping.webp"},
            {"title": "Dehradun + Chakrata Tour", "route": "Dehradun → Chakrata → Tiger Falls → Chilmiri Neck View",  "dur": "2N/3D", "orig": "₹6,499", "disc": "₹4,999", "rating": "4.7", "reviews": "134", "img": "../assets/uk/dehradunl-tour.webp"},
            {"title": "Chakrata Snow Tour",       "route": "Chakrata → Deoban Snow Point → Budher Caves → Kanasar",  "dur": "3N/4D", "orig": "₹8,499", "disc": "₹6,499", "rating": "4.6", "reviews": "58",  "img": "../assets/uk/chakrata-snow.webp"},
        ],
        "related_packages": [
            ("dehradun-tour-packages.html",  "Dehradun Tour Package"),
            ("mussoorie-tour-packages.html", "Mussoorie Tour"),
            ("dhanaulti-tour-packages.html", "Dhanaulti Tour"),
            ("lansdowne-tour-packages.html", "Lansdowne Tour"),
            ("rishikesh-tour-packages.html", "Rishikesh Tour"),
            ("haridwar-tour-packages.html",  "Haridwar Tour"),
        ],
        "sidebar_pkg_options": ["Chakrata Weekend Getaway","Chakrata Camping Tour","Dehradun + Chakrata Tour","Chakrata Snow Tour","Custom Package"],
        "wa_msg"        : "Hi, I want to book a Chakrata tour package.",
        "footer_packages": [
            ("chakrata-tour-packages.html", "Chakrata Weekend Getaway"),
            ("chakrata-tour-packages.html", "Chakrata Camping Tour"),
            ("chakrata-tour-packages.html", "Dehradun + Chakrata"),
            ("chakrata-tour-packages.html", "Chakrata Snow Tour"),
        ],
        "footer_attractions": [
            ("tiger-falls-chakrata.html",    "Tiger Falls"),
            ("chilmiri-neck-chakrata.html",  "Chilmiri Neck"),
            ("deoban-forest-chakrata.html",  "Deoban Forest"),
            ("budher-caves-chakrata.html",   "Budher Caves"),
            ("kanasar-chakrata.html",        "Kanasar"),
            ("ram-tal-garden-chakrata.html", "Ram Tal Garden"),
        ],
    },

    "dhanaulti": {
        "name"          : "Dhanaulti",
        "slug"          : "dhanaulti-tour-packages",
        "tagline"       : "Serene Escape near Mussoorie",
        "altitude"      : "2,286m",
        "geo_lat"       : "30.4250",
        "geo_long"      : "78.2500",
        "geo_region"    : "IN-UT",
        "placename"     : "Dhanaulti, Uttarakhand, India",
        "og_image"      : "https://tourventureindia.com/assets/uk/dhanaulti-tour.webp",
        "og_img_alt"    : "Dhanaulti — Serene Hill Station near Mussoorie, Uttarakhand",
        "hero_image"    : "../assets/uk/dhanaulti-hero.jpg",
        "hero_badge"    : "Serene Hill Escape",
        "price_from"    : "₹5,499",
        "title_tag"     : "Dhanaulti Tour Packages | Best Travel Agency in Dhanaulti | Tour Venture India",
        "meta_desc"     : "Book the best Dhanaulti tour packages with Tour Venture India. Eco Park, Surkhanda Devi Temple, apple orchards & peaceful forest packages from ₹5,499/person. Call +91-8057146497.",
        "meta_keywords" : "dhanaulti tour packages, dhanaulti travel agents, tour operator in dhanaulti, dhanaulti trip package, dhanaulti mussoorie package, best travel agency in dhanaulti, dhanaulti weekend getaway, dhanaulti camping",
        "hero_desc"     : 'A tranquil escape perched at 2,286m, <strong>Dhanaulti</strong> is famous for its lush rhododendron and oak forests, spectacular Himalayan views, and peaceful ambience — far from the crowds of Mussoorie. Visit the scenic <strong>Eco Park</strong>, seek blessings at <strong>Surkhanda Devi Temple</strong>, enjoy adventure activities, and simply breathe in the crisp mountain air. Tour Venture India crafts fully customised <strong>Dhanaulti tour packages</strong> — family retreats, Mussoorie combos, camping trips &amp; weekend getaways — from ₹5,499/person.',
        "breadcrumb_label": "Dhanaulti",
        "canonical"     : "https://tourventureindia.com/dhanaulti-tour-packages",
        "schema_desc"   : "Dhanaulti is a peaceful hill station in Uttarakhand at 2,286m, situated between Mussoorie and Chamba. Famous for Eco Park, Surkhanda Devi Temple, apple orchards, and dense cedar and rhododendron forests.",
        "attractions"   : ["Eco Park", "Surkhanda Devi Temple", "Apple Orchards", "Potato Farm", "Dashavatar Temple", "Surkanda Devi Trek"],
        "faq_best_time" : "March to June is ideal — blooming rhododendrons and pleasant weather. October–November offers clear skies and beautiful autumn colours. December–February is magical with snowfall; roads may be slippery.",
        "faq_distance"  : "Dhanaulti is approximately 62 km from Dehradun (~2 hours by road) and 29 km from Mussoorie. Delhi to Dhanaulti is ~330 km (~7–8 hours by road). No direct train; nearest railhead is Dehradun.",
        "packages": [
            {"title": "Dhanaulti Day Tour",        "route": "Eco Park → Surkhanda Devi → Apple Orchard → Forest Walk", "dur": "1N/2D", "orig": "₹7,499", "disc": "₹5,499", "rating": "4.6", "reviews": "98",  "img": "../assets/uk/dhanaulti-tour.webp"},
            {"title": "Dhanaulti Camping Tour",    "route": "Dhanaulti Forest Camp → Eco Park → Surkhanda Devi Trek",  "dur": "2N/3D", "orig": "₹8,999", "disc": "₹6,999", "rating": "4.8", "reviews": "87",  "img": "../assets/uk/dhanaulti-camping.webp"},
            {"title": "Mussoorie + Dhanaulti",     "route": "Mussoorie Mall Road → Kempty Falls → Dhanaulti Eco Park", "dur": "3N/4D", "orig": "₹11,499","disc": "₹8,999", "rating": "4.8", "reviews": "145", "img": "../assets/uk/mussoorie-tour.webp"},
            {"title": "Dehradun + Dhanaulti Tour", "route": "Dehradun FRI → Robbers Cave → Dhanaulti → Eco Park",     "dur": "2N/3D", "orig": "₹7,499", "disc": "₹5,499", "rating": "4.7", "reviews": "112", "img": "../assets/uk/dehradunl-tour.webp"},
        ],
        "related_packages": [
            ("mussoorie-tour-packages.html", "Mussoorie Tour Package"),
            ("dehradun-tour-packages.html",  "Dehradun Tour"),
            ("chakrata-tour-packages.html",  "Chakrata Tour"),
            ("lansdowne-tour-packages.html", "Lansdowne Tour"),
            ("rishikesh-tour-packages.html", "Rishikesh Tour"),
            ("haridwar-tour-packages.html",  "Haridwar Tour"),
        ],
        "sidebar_pkg_options": ["Dhanaulti Day Tour","Dhanaulti Camping Tour","Mussoorie + Dhanaulti","Dehradun + Dhanaulti Tour","Custom Package"],
        "wa_msg"        : "Hi, I want to book a Dhanaulti tour package.",
        "footer_packages": [
            ("dhanaulti-tour-packages.html", "Dhanaulti Day Tour"),
            ("dhanaulti-tour-packages.html", "Dhanaulti Camping Tour"),
            ("dhanaulti-tour-packages.html", "Mussoorie + Dhanaulti"),
            ("dhanaulti-tour-packages.html", "Dehradun + Dhanaulti"),
        ],
        "footer_attractions": [
            ("eco-park-dhanaulti.html",           "Eco Park"),
            ("surkhanda-devi-temple-dhanaulti.html","Surkhanda Devi Temple"),
            ("apple-orchard-dhanaulti.html",      "Apple Orchards"),
            ("dashavatar-temple-dhanaulti.html",  "Dashavatar Temple"),
            ("potato-farm-dhanaulti.html",        "Potato Farm"),
        ],
    },

    "lansdowne": {
        "name"          : "Lansdowne",
        "slug"          : "lansdowne-tour-packages",
        "tagline"       : "The Peaceful Hill Town of Garhwal",
        "altitude"      : "1,706m",
        "geo_lat"       : "29.8391",
        "geo_long"      : "78.6868",
        "geo_region"    : "IN-UT",
        "placename"     : "Lansdowne, Uttarakhand, India",
        "og_image"      : "https://tourventureindia.com/assets/uk/lansdowne-tour.webp",
        "og_img_alt"    : "Lansdowne — Peaceful Hill Town, Garhwal, Uttarakhand",
        "hero_image"    : "../assets/uk/lansdowne-hero.jpg",
        "hero_badge"    : "Peaceful Hill Town",
        "price_from"    : "₹4,999",
        "title_tag"     : "Lansdowne Tour Packages | Best Travel Agency in Lansdowne | Tour Venture India",
        "meta_desc"     : "Book the best Lansdowne tour packages with Tour Venture India. Tip N Top viewpoint, Bhulla Tal, Tarkeshwar Mahadev & peaceful hill packages from ₹4,999/person. Call +91-8057146497.",
        "meta_keywords" : "lansdowne tour packages, lansdowne travel agents, tour operator in lansdowne, lansdowne trip package, lansdowne offbeat tour, best travel agency in lansdowne, lansdowne weekend trip, lansdowne garhwal package",
        "hero_desc"     : 'A perfect escape from the crowds, <strong>Lansdowne</strong> sits at 1,706m in the Garhwal Hills — a colonial-era cantonment town known for its pristine forests, peaceful walks, and unspoilt natural beauty. Visit the panoramic <strong>Tip N Top</strong> viewpoint, boat on <strong>Bhulla Tal</strong> lake, and seek blessings at the ancient <strong>Tarkeshwar Mahadev Temple</strong>. Tour Venture India crafts fully customised <strong>Lansdowne tour packages</strong> — offbeat getaways, nature trails, family retreats &amp; weekend escapes — from ₹4,999/person.',
        "breadcrumb_label": "Lansdowne",
        "canonical"     : "https://tourventureindia.com/lansdowne-tour-packages",
        "schema_desc"   : "Lansdowne is a peaceful cantonment hill station in Garhwal, Uttarakhand, situated at 1,706m. Famous for Tip N Top viewpoint, Bhulla Tal, Tarkeshwar Mahadev Temple, St. Mary's Church, and pristine Garhwal forests.",
        "attractions"   : ["Tip N Top Viewpoint", "Bhulla Tal", "Tarkeshwar Mahadev Temple", "St. Mary's Church", "War Memorial", "Garhwal Rifles Regimental Museum"],
        "faq_best_time" : "March to June and September to November are the best times — pleasant weather with clear forest walks. December–January brings cold and occasional snowfall. Lansdowne is a year-round destination, perfect for those seeking peace and nature.",
        "faq_distance"  : "Lansdowne is approximately 260 km from Delhi (~6 hours by road). Nearest railway station is Kotdwar, 40 km away. Dehradun is ~115 km from Lansdowne (~3.5 hours by road). Jolly Grant Airport is ~120 km away.",
        "packages": [
            {"title": "Lansdowne Day Tour",       "route": "Tip N Top → Bhulla Tal → Tarkeshwar Temple → War Memorial","dur": "1N/2D", "orig": "₹6,499", "disc": "₹4,999", "rating": "4.6", "reviews": "78",  "img": "../assets/uk/lansdowne-tour.webp"},
            {"title": "Lansdowne Nature Retreat", "route": "Lansdowne Forest Trails → Bhulla Tal → Tarkeshwar Mahadev","dur": "2N/3D", "orig": "₹7,999", "disc": "₹5,999", "rating": "4.7", "reviews": "67",  "img": "../assets/uk/lansdowne-nature.webp"},
            {"title": "Lansdowne + Rishikesh",    "route": "Lansdowne → Rishikesh River Rafting → Haridwar Ganga Aarti","dur": "3N/4D","orig": "₹10,499","disc": "₹7,999","rating": "4.8","reviews": "89", "img": "../assets/uk/rishikesh-tour.webp"},
            {"title": "Lansdowne Camping Tour",   "route": "Lansdowne Forest Camp → Tarkeshwar Mahadev → Bhulla Tal", "dur": "2N/3D", "orig": "₹8,499", "disc": "₹6,499", "rating": "4.7", "reviews": "54",  "img": "../assets/uk/lansdowne-camping.webp"},
        ],
        "related_packages": [
            ("rishikesh-tour-packages.html", "Rishikesh Tour Package"),
            ("haridwar-tour-packages.html",  "Haridwar Tour"),
            ("chakrata-tour-packages.html",  "Chakrata Tour"),
            ("dhanaulti-tour-packages.html", "Dhanaulti Tour"),
            ("mussoorie-tour-packages.html", "Mussoorie Tour"),
            ("dehradun-tour-packages.html",  "Dehradun Tour"),
        ],
        "sidebar_pkg_options": ["Lansdowne Day Tour","Lansdowne Nature Retreat","Lansdowne + Rishikesh","Lansdowne Camping Tour","Custom Package"],
        "wa_msg"        : "Hi, I want to book a Lansdowne tour package.",
        "footer_packages": [
            ("lansdowne-tour-packages.html", "Lansdowne Day Tour"),
            ("lansdowne-tour-packages.html", "Lansdowne Nature Retreat"),
            ("lansdowne-tour-packages.html", "Lansdowne + Rishikesh"),
            ("lansdowne-tour-packages.html", "Lansdowne Camping Tour"),
        ],
        "footer_attractions": [
            ("tip-n-top-lansdowne.html",        "Tip N Top Viewpoint"),
            ("bhulla-tal-lansdowne.html",        "Bhulla Tal"),
            ("tarkeshwar-mahadev-lansdowne.html","Tarkeshwar Mahadev"),
            ("st-marys-church-lansdowne.html",   "St. Mary's Church"),
            ("war-memorial-lansdowne.html",      "War Memorial"),
        ],
    },

}


# ══════════════════════════════════════════════════════════════════════
#  PACKAGE CARDS HTML GENERATOR
# ══════════════════════════════════════════════════════════════════════
def build_pkg_grid(dest):
    """Generate package cards HTML for the destination."""
    cards = ""
    for p in dest["packages"]:
        cards += f'''
      <div class="col-sm-6 col-xl-4 pkg-item" data-cat="all" data-price="{p["disc"].replace("₹","").replace(",","")}" data-nights="2" data-rating="{p["rating"]}">
        <div class="hf-card">
          <div class="hf-card-img"><img src="{p["img"]}" alt="{p["title"]}" loading="lazy"><span class="hf-dur">{p["dur"]}</span></div>
          <div class="hf-card-body">
            <h3 class="hf-card-title">{p["title"]}</h3>
            <p class="hf-card-dest"><i class="fa-solid fa-location-dot" style="color:#E8621A;"></i> {p["route"]}</p>
            <hr class="hf-divider">
            <div class="hf-rating"><span class="hf-stars">★★★★★</span><span class="hf-rating-num">{p["rating"]}</span><span class="hf-rating-cnt">({p["reviews"]} reviews)</span></div>
            <div class="hf-price-row"><div class="hf-price"><div class="hf-price-orig">{p["orig"]}</div><div class="hf-price-disc">{p["disc"]}</div><div class="hf-price-pp">per person</div></div><a href="../contact.html" class="hf-btn">Get Quote <i class="fa-solid fa-arrow-right"></i></a></div>
          </div>
        </div>
      </div>'''
    return cards


def build_sidebar_pkg_options(dest):
    """Generate sidebar package select options."""
    html = '<option value="">Select Package</option>\n'
    for pkg in dest["sidebar_pkg_options"]:
        html += f'                  <option>{pkg}</option>\n'
    return html


def build_footer_pkg_options(dest):
    """Generate footer select options."""
    html = '<option value="">Package Type</option>\n'
    for pkg in dest["sidebar_pkg_options"]:
        html += f'          <option>{pkg}</option>\n'
    return html


def build_related_packages(dest):
    """Generate related packages sidebar links."""
    html = ""
    for href, label in dest["related_packages"]:
        html += f'                <a href="{href}"  style="display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;text-decoration:none;padding:8px 10px;border-radius:8px;background:#f8f9fc;"><i class="fa-solid fa-chevron-right" style="color:#E8621A;font-size:9px;flex-shrink:0;"></i>{label}</a>\n'
    return html


def build_footer_packages_col(dest):
    """Generate footer tour packages column links."""
    html = ""
    for href, label in dest["footer_packages"]:
        html += f'            <li><a href="{href}">{label}</a></li>\n'
    return html


def build_footer_attractions_col(dest):
    """Generate footer attractions column links."""
    html = ""
    for href, label in dest["footer_attractions"]:
        html += f'            <li><a href="{href}">{label}</a></li>\n'
    return html


# ══════════════════════════════════════════════════════════════════════
#  MAIN GENERATOR
# ══════════════════════════════════════════════════════════════════════
def generate_page(dest_key):
    dest_key = dest_key.lower().strip().replace(" ", "-")

    if dest_key not in DESTINATIONS:
        print(f"\n❌  '{dest_key}' not found in DESTINATIONS dict.")
        print(f"   Available: {', '.join(DESTINATIONS.keys())}\n")
        sys.exit(1)

    d = DESTINATIONS[dest_key]
    today = date.today().strftime("%Y-%m-%d")
    today_human = date.today().strftime("%B %d, %Y")

    if not os.path.exists(TEMPLATE):
        print(f"❌  Template not found: {TEMPLATE}")
        sys.exit(1)

    with open(TEMPLATE, "r", encoding="utf-8") as f:
        html = f.read()

    name  = d["name"]
    slug  = d["slug"]
    name_lower = name.lower()

    # ── 1. Meta / SEO ──────────────────────────────────────────────
    html = html.replace(
        'lang="en">',
        'lang="en">'
    )
    html = html.replace(
        '<title>Dehradun Tour Packages | Best Travel Agency in Dehradun | Tour Venture India</title>',
        f'<title>{d["title_tag"]}</title>'
    )
    html = html.replace(
        'name="description" content="Book the best Dehradun tour packages with Tour Venture India — trusted tour operator in Dehradun. Dehradun Mussoorie package, FRI, Robbers Cave, Sahastradhara & couple packages from ₹5,999/person. Call +91-8057146497."',
        f'name="description" content="{d["meta_desc"]}"'
    )
    html = html.replace(
        'name="keywords" content="dehradun tour packages, dehradun travel agents, tour operator in dehradun, tour and travels dehradun, dehradun mussoorie tour package, dehradun package, dehradun trip package, dehradun tour package for couple, dehradun trip, dehradun mussoorie package, dehradun travel packages, best travel agency in dehradun, best tour operators in dehradun, best tour and travel in dehradun"',
        f'name="keywords" content="{d["meta_keywords"]}"'
    )

    # ── 2. Geo tags ─────────────────────────────────────────────────
    html = html.replace('content="IN-UT"\n<meta name="geo.position"', f'content="{d["geo_region"]}"\n<meta name="geo.position"')
    html = html.replace('content="30.3165;78.0322"', f'content="{d["geo_lat"]};{d["geo_long"]}"')
    html = html.replace('content="30.3165;78.0322"', f'content="{d["geo_lat"]};{d["geo_long"]}"')
    html = html.replace('content="30.3165, 78.0322"', f'content="{d["geo_lat"]}, {d["geo_long"]}"')
    html = html.replace('content="Dehradun, Uttarakhand, India"', f'content="{d["placename"]}"')

    # ── 3. Canonical & OG ──────────────────────────────────────────
    html = html.replace(
        'href="https://tourventureindia.com/dehradun-tour-packages"',
        f'href="{d["canonical"]}"'
    )
    html = html.replace(
        'content="https://tourventureindia.com/dehradun-tour-packages"',
        f'content="{d["canonical"]}"'
    )
    html = html.replace(
        'content="https://tourventureindia.com/assets/uk/dehradunl-tour.webp"',
        f'content="{d["og_image"]}"'
    )
    html = html.replace(
        'content="Dehradun — Doon Valley and Robbers Cave in the capital city of Uttarakhand, India"',
        f'content="{d["og_img_alt"]}"'
    )
    html = html.replace(
        'content="Dehradun Tour Packages | Best Travel Agency in Dehradun | Tour Venture India"',
        f'content="{d["title_tag"]}"'
    )
    html = html.replace(
        'content="Book best Dehradun tour packages with Tour Venture India — trusted tour operator in Dehradun. Dehradun Mussoorie package, couple & family travel packages from ₹5,999/person."',
        f'content="{d["meta_desc"]}"'
    )
    # Twitter
    html = html.replace(
        'content="Dehradun Tour Packages | Best Travel Agency in Dehradun – TVI"',
        f'content="{d["title_tag"]}"'
    )
    html = html.replace(
        'content="Explore Dehradun — FRI, Robbers Cave, Sahastradhara, Mussoorie combo. Book customised tour packages from ₹5,999/person."',
        f'content="{d["meta_desc"]}"'
    )
    html = html.replace(
        'content="Dehradun — Doon Valley, capital of Uttarakhand, India"',
        f'content="{d["og_img_alt"]}"'
    )

    # ── 4. Schema JSON-LD ───────────────────────────────────────────
    html = html.replace(
        '"url":"https://tourventureindia.com/dehradun-tour-packages"',
        f'"url":"{d["canonical"]}"'
    )
    html = html.replace(
        '"name":"Dehradun Tour Packages | Best Travel Agency in Dehradun | Tour Venture India"',
        f'"name":"{d["title_tag"]}"'
    )
    html = html.replace(
        '"description":"Book the best Dehradun tour packages with Tour Venture India. Dehradun Mussoorie package, FRI, Robbers Cave, Sahastradhara & couple packages from ₹5,999/person."',
        f'"description":"{d["meta_desc"]}"'
    )
    html = html.replace(
        '"name":"Dehradun","item":"https://tourventureindia.com/dehradun-tour-packages"',
        f'"name":"{name}","item":"{d["canonical"]}"'
    )
    html = html.replace(
        '"name":"Dehradun Tour Packages","item":"https://tourventureindia.com/dehradun-tour-packages"',
        f'"name":"{name} Tour Packages","item":"{d["canonical"]}"'
    )
    html = html.replace(
        '"name":"TouristDestination"},"name":"Dehradun"',
        f'"name":"TouristDestination"}},"name":"{name}"'
    )
    html = html.replace(
        '"description":"Dehradun is the capital of Uttarakhand',
        f'"description":"{d["schema_desc"][:50]}'
    )
    # Full schema description replacement
    html = html.replace(
        '"description":"Dehradun is the capital of Uttarakhand, situated at 640m in the scenic Doon Valley flanked by the Shivalik hills and Mussoorie range. Famous for the Forest Research Institute (FRI), Robbers Cave, Sahastradhara sulphur springs, Tapkeshwar Mahadev Temple, and Mindrolling Monastery, it is a year-round destination and gateway to Mussoorie, Rishikesh, and Haridwar."',
        f'"description":"{d["schema_desc"]}"'
    )

    # ── 5. Hero section ─────────────────────────────────────────────
    html = html.replace(
        'aria-label="Dehradun Tour Packages">',
        f'aria-label="{name} Tour Packages">'
    )
    html = html.replace(
        'style="background-image:url(../assets/uk/panch-kedar-hero.jpg);"',
        f'style="background-image:url({d["hero_image"]});"'
    )
    html = html.replace(
        '<span class="inner-hero-badge">Capital of Uttarakhand</span>',
        f'<span class="inner-hero-badge">{d["hero_badge"]}</span>'
    )
    html = html.replace(
        '<h1 class="inner-hero-title">Dehradun Tour Packages</h1>',
        f'<h1 class="inner-hero-title">{name} Tour Packages</h1>'
    )
    html = html.replace(
        'Gateway to the Himalayas, <strong>Dehradun</strong> sits at 640m in the lush Doon Valley — flanked by the Shivalik hills and the Mussoorie range. Explore the grand colonial <strong>Forest Research Institute</strong>, wade through the hidden canyon of <strong>Robbers Cave</strong>, and soak in the sulphur springs of <strong>Sahastradhara</strong>. Tour Venture India crafts fully customised <strong>Dehradun tour packages</strong> — city tours, Mussoorie combos, couple getaways &amp; family trips — from ₹5,999/person. WhatsApp us for your personalised itinerary in 2 hours.',
        d["hero_desc"]
    )
    html = html.replace(
        '<li class="breadcrumb-item active">Dehradun</li>',
        f'<li class="breadcrumb-item active">{d["breadcrumb_label"]}</li>'
    )

    # ── 6. Sidebar — Book Package Form ──────────────────────────────
    html = html.replace(
        '<i class="fa-solid fa-suitcase me-2" style="color:#fb923c;"></i>Book Dehradun Package',
        f'<i class="fa-solid fa-suitcase me-2" style="color:#fb923c;"></i>Book {name} Package'
    )
    # Sidebar package options
    old_options = '''<option value="">Select Package</option>
                  <option>Dehradun City Tour</option>
                  <option>Dehradun + Mussoorie</option>
                  <option>Dehradun + Rishikesh</option>
                  <option>Dehradun + Chakrata</option>
                  <option>Dehradun + Dhanaulti</option>
                  <option>Custom Package</option>'''
    html = html.replace(old_options, build_sidebar_pkg_options(d))

    # ── 7. TOC links ────────────────────────────────────────────────
    html = html.replace(
        '>Dehradun Tour Packages</a>',
        f'>{name} Tour Packages</a>'
    )
    html = html.replace(
        '>How to Reach Dehradun</a>',
        f'>How to Reach {name}</a>'
    )

    # ── 8. Related Packages sidebar ─────────────────────────────────
    old_related = '''                <a href="mussoorie-tour-packages.html"  style="display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;text-decoration:none;padding:8px 10px;border-radius:8px;background:#f8f9fc;"><i class="fa-solid fa-chevron-right" style="color:#E8621A;font-size:9px;flex-shrink:0;"></i>Mussoorie Tour Package</a>
                <a href="rishikesh-tour-packages.html"  style="display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;text-decoration:none;padding:8px 10px;border-radius:8px;background:#f8f9fc;"><i class="fa-solid fa-chevron-right" style="color:#E8621A;font-size:9px;flex-shrink:0;"></i>Rishikesh Tour</a>
                <a href="haridwar-tour-packages.html"   style="display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;text-decoration:none;padding:8px 10px;border-radius:8px;background:#f8f9fc;"><i class="fa-solid fa-chevron-right" style="color:#E8621A;font-size:9px;flex-shrink:0;"></i>Haridwar Tour</a>
                <a href="chakrata-tour-packages.html"   style="display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;text-decoration:none;padding:8px 10px;border-radius:8px;background:#f8f9fc;"><i class="fa-solid fa-chevron-right" style="color:#E8621A;font-size:9px;flex-shrink:0;"></i>Chakrata Tour</a>
                <a href="dhanaulti-tour-packages.html"  style="display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;text-decoration:none;padding:8px 10px;border-radius:8px;background:#f8f9fc;"><i class="fa-solid fa-chevron-right" style="color:#E8621A;font-size:9px;flex-shrink:0;"></i>Dhanaulti Tour</a>
                <a href="lansdowne-tour-packages.html"  style="display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;text-decoration:none;padding:8px 10px;border-radius:8px;background:#f8f9fc;"><i class="fa-solid fa-chevron-right" style="color:#E8621A;font-size:9px;flex-shrink:0;"></i>Lansdowne Tour</a>'''
    html = html.replace(old_related, build_related_packages(d))

    # ── 9. Package grid ─────────────────────────────────────────────
    html = html.replace(
        'Showing <span id="pkg-count">4</span> Dehradun Tour Packages',
        f'Showing <span id="pkg-count">{len(d["packages"])}</span> {name} Tour Packages'
    )
    # Replace the 4 Dehradun package cards
    old_pkg_grid = '''      <div class="col-sm-6 col-xl-4 pkg-item" data-cat="all" data-price="5999" data-nights="1" data-rating="4.6">
        <div class="hf-card">
          <div class="hf-card-img"><img src="../assets/uk/dehradunl-tour.webp" alt="Dehradun City Tour" loading="lazy"><span class="hf-dur">1N/2D</span></div>
          <div class="hf-card-body">
            <h3 class="hf-card-title">Dehradun City Tour</h3>
            <p class="hf-card-dest"><i class="fa-solid fa-location-dot" style="color:#E8621A;"></i> FRI → Sahastradhara → Robbers Cave → Tapkeshwar Temple</p>
            <hr class="hf-divider">
            <div class="hf-rating"><span class="hf-stars">★★★★★</span><span class="hf-rating-num">4.6</span><span class="hf-rating-cnt">(134 reviews)</span></div>
            <div class="hf-price-row"><div class="hf-price"><div class="hf-price-orig">₹7,499</div><div class="hf-price-disc">₹5,999</div><div class="hf-price-pp">per person</div></div><a href="../contact.html" class="hf-btn">Get Quote <i class="fa-solid fa-arrow-right"></i></a></div>
          </div>
        </div>
      </div>
      <div class="col-sm-6 col-xl-4 pkg-item" data-cat="all" data-price="7499" data-nights="3" data-rating="4.8">
        <div class="hf-card">
          <div class="hf-card-img"><img src="../assets/uk/mussoorie-tour.webp" alt="Dehradun + Mussoorie Package" loading="lazy"><span class="hf-dur">3N/4D</span></div>
          <div class="hf-card-body">
            <h3 class="hf-card-title">Dehradun + Mussoorie Package</h3>
            <p class="hf-card-dest"><i class="fa-solid fa-location-dot" style="color:#E8621A;"></i> Dehradun → FRI → Mussoorie → Kempty Falls → Lal Tibba</p>
            <hr class="hf-divider">
            <div class="hf-rating"><span class="hf-stars">★★★★★</span><span class="hf-rating-num">4.8</span><span class="hf-rating-cnt">(198 reviews)</span></div>
            <div class="hf-price-row"><div class="hf-price"><div class="hf-price-orig">₹9,499</div><div class="hf-price-disc">₹7,499</div><div class="hf-price-pp">per person</div></div><a href="mussoorie-tour-packages.html" class="hf-btn">Get Quote <i class="fa-solid fa-arrow-right"></i></a></div>
          </div>
        </div>
      </div>
      <div class="col-sm-6 col-xl-4 pkg-item" data-cat="all" data-price="4999" data-nights="2" data-rating="4.7">
        <div class="hf-card">
          <div class="hf-card-img"><img src="../assets/uk/rishikesh-tour.webp" alt="Dehradun + Rishikesh Tour" loading="lazy"><span class="hf-dur">2N/3D</span></div>
          <div class="hf-card-body">
            <h3 class="hf-card-title">Dehradun + Rishikesh Tour</h3>
            <p class="hf-card-dest"><i class="fa-solid fa-location-dot" style="color:#E8621A;"></i> Dehradun → Rishikesh River Rafting → Haridwar Ganga Aarti</p>
            <hr class="hf-divider">
            <div class="hf-rating"><span class="hf-stars">★★★★★</span><span class="hf-rating-num">4.7</span><span class="hf-rating-cnt">(167 reviews)</span></div>
            <div class="hf-price-row"><div class="hf-price"><div class="hf-price-orig">₹6,499</div><div class="hf-price-disc">₹4,999</div><div class="hf-price-pp">per person</div></div><a href="rishikesh-tour-packages.html" class="hf-btn">Get Quote <i class="fa-solid fa-arrow-right"></i></a></div>
          </div>
        </div>
      </div>
      <div class="col-sm-6 col-xl-4 pkg-item" data-cat="all" data-price="4999" data-nights="2" data-rating="4.7">
        <div class="hf-card">
          <div class="hf-card-img"><img src="../assets/uk/chakrata-tour.webp" alt="Dehradun + Chakrata Tour" loading="lazy"><span class="hf-dur">2N/3D</span></div>
          <div class="hf-card-body">
            <h3 class="hf-card-title">Dehradun + Chakrata Tour</h3>
            <p class="hf-card-dest"><i class="fa-solid fa-location-dot" style="color:#E8621A;"></i> Dehradun → Chakrata → Tiger Falls → Chilmiri Neck View</p>
            <hr class="hf-divider">
            <div class="hf-rating"><span class="hf-stars">★★★★★</span><span class="hf-rating-num">4.7</span><span class="hf-rating-cnt">(89 reviews)</span></div>
            <div class="hf-price-row"><div class="hf-price"><div class="hf-price-orig">₹6,499</div><div class="hf-price-disc">₹4,999</div><div class="hf-price-pp">per person</div></div><a href="chakrata-tour-packages.html" class="hf-btn">Get Quote <i class="fa-solid fa-arrow-right"></i></a></div>
          </div>
        </div>
      </div>'''
    html = html.replace(old_pkg_grid, build_pkg_grid(d))

    # ── 10. WhatsApp message ────────────────────────────────────────
    html = html.replace(
        "I want to book a Dehradun tour package.",
        d["wa_msg"]
    )
    html = html.replace(
        "Please send me a free Dehradun tour quote.",
        f"Please send me a free {name} tour quote."
    )

    # ── 11. Footer package options ──────────────────────────────────
    old_footer_opts = '''          <option>Dehradun City Tour</option>
          <option>Dehradun + Mussoorie</option>
          <option>Dehradun + Rishikesh</option>
          <option>Dehradun + Chakrata</option>
          <option>Dehradun + Dhanaulti</option>
          <option>Custom Package</option>'''
    html = html.replace(old_footer_opts, build_footer_pkg_options(d))

    # ── 12. Footer Tour Packages column ────────────────────────────
    old_footer_pkgs = '''            <li><a href="dehradun-tour-packages.html">Dehradun Day Tour</a></li>
            <li><a href="dehradun-tour-packages.html">Dehradun + Mussoorie</a></li>
            <li><a href="dehradun-tour-packages.html">Dehradun + Rishikesh</a></li>
            <li><a href="dehradun-tour-packages.html">Weekend Getaway</a></li>
            <li><a href="dehradun-tour-packages.html">Dehradun + Dhanaulti</a></li>'''
    html = html.replace(old_footer_pkgs, build_footer_packages_col(d))

    # ── 13. Footer Attractions column ──────────────────────────────
    old_footer_attr = '''            <li><a href="robbers-cave-dehradun.html">Robber's Cave</a></li>
            <li><a href="sahastradhara-dehradun.html">Sahastradhara</a></li>
            <li><a href="malsi-deer-park.html">Malsi Deer Park</a></li>
            <li><a href="forest-research-institute-dehradun.html">Forest Research Institute</a></li>
            <li><a href="mindrolling-monastery-dehradun.html">Mindrolling Monastery</a></li>
            <li><a href="tapkeshwar-temple-dehradun.html">Tapkeshwar Temple</a></li>
            <li><a href="santala-devi-temple-dehradun.html">Santala Devi Temple</a></li>'''
    html = html.replace(old_footer_attr, build_footer_attractions_col(d))

    # ── 14. Attractions section heading ─────────────────────────────
    html = html.replace(
        '<h2 style="font-size:22px;font-weight:800;color:#1a2340;margin:0 0 6px;">Top Attractions in Dehradun</h2>',
        f'<h2 style="font-size:22px;font-weight:800;color:#1a2340;margin:0 0 6px;">Top Attractions in {name}</h2>'
    )
    html = html.replace(
        '<p style="font-size:13px;color:#6b7280;margin:0;">Explore the most beautiful spots in Dehradun, Uttarakhand</p>',
        f'<p style="font-size:13px;color:#6b7280;margin:0;">Explore the most beautiful spots in {name}, Uttarakhand</p>'
    )

    # ── 15. About section ────────────────────────────────────────────
    html = html.replace(
        f'<h2 style="font-size:1.3rem;font-weight:800;color:#1a2340;margin:0 0 16px;padding-bottom:12px;border-bottom:2px solid #f0f0f0;">Best Travel Agents in Dehradun</h2>',
        f'<h2 style="font-size:1.3rem;font-weight:800;color:#1a2340;margin:0 0 16px;padding-bottom:12px;border-bottom:2px solid #f0f0f0;">Best Travel Agents in {name}</h2>'
    )
    html = html.replace(
        'Why Book Your Dehradun Package with Tour Venture India?',
        f'Why Book Your {name} Package with Tour Venture India?'
    )
    html = html.replace(
        'Fully customisable Dehradun itinerary',
        f'Fully customisable {name} itinerary'
    )
    html = html.replace(
        'GST-registered & verified tour operator in Dehradun',
        f'GST-registered & verified tour operator in Uttarakhand'
    )

    # ── 16. Best Time to Visit & How to Reach headings ───────────────
    html = html.replace(
        'Best Time to Visit Dehradun',
        f'Best Time to Visit {name}'
    )
    html = html.replace(
        'How to Reach Dehradun',
        f'How to Reach {name}'
    )
    html = html.replace(
        f'id="how-to-reach"',
        f'id="how-to-reach"'
    )

    # ── 17. FAQ section ──────────────────────────────────────────────
    html = html.replace(
        'What is the best time to visit Dehradun?',
        f'What is the best time to visit {name}?'
    )
    html = html.replace(
        'How far is Dehradun from Delhi?',
        f'How far is {name} from Delhi?'
    )
    html = html.replace(
        'March to June is the best time — pleasant weather (15°C–30°C) ideal for sightseeing. September–November is also excellent with clear skies and cool temperatures. December–February is great for snow lovers heading to Mussoorie.',
        d.get("faq_best_time", f"March to June is the best time to visit {name}. October–November is also excellent with clear skies and cool temperatures.")
    )
    html = html.replace(
        'Dehradun is approximately 300 km from Delhi via NH-334, about 6–7 hours by road. By train, the Shatabdi Express takes about 4.5 hours from New Delhi. Jolly Grant Airport is 26 km from Dehradun city.',
        d.get("faq_distance", f"Check distance and travel time from Delhi to {name}.")
    )

    # ── 18. Generic "Dehradun" text replacements ─────────────────────
    #  (Run LAST so specific replacements above are not overwritten)
    html = html.replace("Dehradun tour packages", f"{name} tour packages")
    html = html.replace("Dehradun Tour Packages", f"{name} Tour Packages")
    html = html.replace("Dehradun tour package", f"{name} tour package")
    html = html.replace("Dehradun Tour Package", f"{name} Tour Package")
    html = html.replace("dehradun-tour-packages", slug)
    html = html.replace("in Dehradun", f"in {name}")
    html = html.replace("to Dehradun", f"to {name}")
    html = html.replace("from Dehradun", f"from {name}")

    # ── 15. Save file ───────────────────────────────────────────────
    out_file = os.path.join(SCRIPT_DIR, f"{slug}.html")
    with open(out_file, "w", encoding="utf-8") as f:
        f.write(html)

    print(f"\n✅  Page generated!")
    print(f"   File : {out_file}")
    print(f"   Dest : {name}")
    print(f"   Slug : {slug}")
    print(f"   URL  : https://tourventureindia.com/{slug}")
    print(f"   Pkgs : {len(d['packages'])} packages\n")
    return out_file


# ══════════════════════════════════════════════════════════════════════
#  CLI
# ══════════════════════════════════════════════════════════════════════
def main():
    parser = argparse.ArgumentParser(
        description="TVI — Uttarakhand Destination Page Generator",
        formatter_class=argparse.RawDescriptionHelpFormatter,
        epilog="""
Examples:
  python generate_uk_destination.py --dest mussoorie
  python generate_uk_destination.py --dest rishikesh
  python generate_uk_destination.py --dest haridwar
  python generate_uk_destination.py --dest nainital
  python generate_uk_destination.py --dest chakrata
  python generate_uk_destination.py --dest dhanaulti
  python generate_uk_destination.py --dest lansdowne

  # Generate ALL destinations at once:
  python generate_uk_destination.py --batch
        """
    )
    parser.add_argument("--dest",  help="Destination key (e.g. mussoorie)")
    parser.add_argument("--batch", action="store_true", help="Generate all destinations")
    args = parser.parse_args()

    if args.batch:
        print(f"\n🗺️  Batch mode — generating {len(DESTINATIONS)} pages...\n")
        for key in DESTINATIONS:
            generate_page(key)
        print(f"✅  All {len(DESTINATIONS)} pages generated!\n")
    elif args.dest:
        generate_page(args.dest)
    else:
        parser.print_help()
        print("\nAvailable destinations:", ", ".join(DESTINATIONS.keys()))


if __name__ == "__main__":
    main()
