{"id":23,"date":"2024-02-20T16:50:19","date_gmt":"2024-02-20T16:50:19","guid":{"rendered":"https:\/\/es.theweddingcarhirepeople.com\/?page_id=23"},"modified":"2025-09-25T16:18:36","modified_gmt":"2025-09-25T16:18:36","slug":"tu-historia","status":"publish","type":"page","link":"https:\/\/es.theweddingcarhirepeople.com\/es\/tu-historia\/","title":{"rendered":"Su historia"},"content":{"rendered":"\n<!-- TWCHP \u2014 Your History (Flagship v2) -->\n<section id=\"twchp-history\" class=\"twc-wrap\" aria-label=\"Your bookings and quotes history\">\n\n  <!-- INLINE SVG ICON SPRITE (define once per page) -->\n  <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"display:none\">\n    <symbol id=\"i-clock\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M12 7v5l3 2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/symbol>\n    <symbol id=\"i-doc\" viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2V8l-6-6Z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M14 2v6h6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M8 13h8M8 17h8M8 9h4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/symbol>\n    <symbol id=\"i-badge\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M8.5 12.5 11 15l4.5-5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/symbol>\n    <symbol id=\"i-headset\" viewBox=\"0 0 24 24\"><path d=\"M4 12a8 8 0 0 1 16 0\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><rect x=\"3\" y=\"12\" width=\"5\" height=\"7\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><rect x=\"16\" y=\"12\" width=\"5\" height=\"7\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M8 19c1.5 1 3.5 1 5 0\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/symbol>\n    <symbol id=\"i-refresh\" viewBox=\"0 0 24 24\"><path d=\"M20 12a8 8 0 1 1-2.3-5.7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M20 4v6h-6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/symbol>\n    <symbol id=\"i-print\" viewBox=\"0 0 24 24\"><path d=\"M6 9V4h12v5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><rect x=\"4\" y=\"9\" width=\"16\" height=\"8\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M6 17v3h12v-3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/symbol>\n    <symbol id=\"i-cal\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"17\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M8 2v4M16 2v4M3 10h18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/symbol>\n    <symbol id=\"i-docs\" viewBox=\"0 0 24 24\"><rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M8 7h8M8 11h8M8 15h5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/symbol>\n    <symbol id=\"i-star\" viewBox=\"0 0 24 24\"><path d=\"M12 3.5 14.9 9l6 .9-4.4 4.3 1 6-5.4-2.9L6.7 20l1-6L3.3 9.9 9.3 9z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\/><\/symbol>\n    <symbol id=\"i-shield\" viewBox=\"0 0 24 24\"><path d=\"M12 3 5 6v6c0 5.2 3.9 7.8 7 9 3.1-1.2 7-3.8 7-9V6l-7-3z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/symbol>\n    <symbol id=\"i-geo\" viewBox=\"0 0 24 24\"><path d=\"M12 21s7-4.5 7-10a7 7 0 0 0-14 0c0 5.5 7 10 7 10z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><circle cx=\"12\" cy=\"11\" r=\"2.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/symbol>\n  <\/svg>\n\n  <!-- HERO -->\n  <header class=\"hero\">\n    <h1>Your history<\/h1>\n    <p class=\"lead\">Welcome back. Here you can revisit quotes, view booking details, and keep everything organised as your big day approaches.<\/p>\n    <div class=\"chips\">\n      <span class=\"chip\">\u2605 Verified suppliers<\/span>\n      <span class=\"chip\">\u2713 Secure payments<\/span>\n      <span class=\"chip\" id=\"history-country-chip\"><svg class=\"chip-ic\"><use href=\"#i-geo\"\/><\/svg>United Kingdom-based support<\/span>\n    <\/div>\n    <div class=\"cta-row\">\n      <a class=\"btn btn-primary\" href=\"\/quote\/\">Get a new quote<\/a>\n      <a class=\"btn btn-dark\" href=\"\/contact-us\/\">Contact support<\/a>\n      <button type=\"button\" class=\"btn action\" id=\"twc-refresh\"><svg class=\"btn-ic\"><use href=\"#i-refresh\"\/><\/svg>Refresh<\/button>\n      <button type=\"button\" class=\"btn action\" id=\"twc-print\"><svg class=\"btn-ic\"><use href=\"#i-print\"\/><\/svg>Print<\/button>\n    <\/div>\n  <\/header>\n\n  <!-- SUMMARY CARDS -->\n  <section class=\"stats\" aria-label=\"At a glance\">\n    <div class=\"card stat\">\n      <span class=\"stat-ic\"><svg><use href=\"#i-docs\"\/><\/svg><\/span>\n      <div class=\"num\" id=\"quotes-count\">0<\/div>\n      <div class=\"lbl\">Total quotes<\/div>\n    <\/div>\n    <div class=\"card stat\">\n      <span class=\"stat-ic\"><svg><use href=\"#i-badge\"\/><\/svg><\/span>\n      <div class=\"num\" id=\"bookings-count\">0<\/div>\n      <div class=\"lbl\">Active bookings<\/div>\n    <\/div>\n    <div class=\"card stat\">\n      <span class=\"stat-ic\"><svg><use href=\"#i-cal\"\/><\/svg><\/span>\n      <div class=\"num\" id=\"days-to-event\">\u2014<\/div>\n      <div class=\"lbl\">Days to next event<\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ACTION CARDS -->\n  <section class=\"quick-actions\" aria-label=\"Quick actions\">\n    <div class=\"qa-grid\">\n      <a class=\"card qa\" href=\"\/quote\/\">\n        <span class=\"ic\"><svg><use href=\"#i-doc\"\/><\/svg><\/span>\n        <h3>Start a new quote<\/h3>\n        <p class=\"muted\">Compare prices and availability for your date.<\/p>\n      <\/a>\n      <a class=\"card qa\" href=\"\/customer-faqs\/\">\n        <span class=\"ic\"><svg><use href=\"#i-star\"\/><\/svg><\/span>\n        <h3>Customer FAQs<\/h3>\n        <p class=\"muted\">Popular questions on payments, changes, and timings.<\/p>\n      <\/a>\n      <a class=\"card qa\" href=\"\/contact-us\/\">\n        <span class=\"ic\"><svg><use href=\"#i-headset\"\/><\/svg><\/span>\n        <h3>Talk to our team<\/h3>\n        <p class=\"muted\">Wedding-savvy support when you need it.<\/p>\n      <\/a>\n    <\/div>\n  <\/section>\n\n  <!-- HISTORY TABLES -->\n  <section class=\"history\" aria-label=\"Your bookings and quotes\">\n    <div class=\"card history-card\">\n      <div class=\"history-head\">\n        <h2>Your bookings &#038; quotes<\/h2>\n        <p class=\"sub\">Swipe sideways on smaller screens to view the full table.<\/p>\n      <\/div>\n      <div class=\"table-wrap\">\n        <!-- This shortcode renders customer-specific quotes and bookings tables -->\n        <input type=\"hidden\" value=\"0\" id =\"hfhost\" \/><input type=\"hidden\" value=\"\/wedding-car-hire\/datasheet\/\" id =\"hfdatasheet\" \/><div id=\"quotedata\" style=\"display:none;\">\n    <h2>Retrieving your quotes<\/h2>\n    <img decoding=\"async\" src=\"https:\/\/instant-quote.co\/images\/ajax-loader.gif\" alt=\"Loading quotations from Instant-Quote.co\" \/>\n<\/div>\n<div id=\"bookingdata\" style=\"display:none;\">\n    <h2>Retrieving your bookings<\/h2>\n    <img decoding=\"async\" src=\"https:\/\/instant-quote.co\/images\/ajax-loader.gif\" alt=\"Loading bookings from Instant-Quote.co\" \/>\n<\/div>\n<div style=\"display:none;\">\n\t<div id=\"QuoteFormPopup\" title=\"Quotation\" class=\"modal fade\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"ModalCenterTitle\" aria-hidden=\"true\" style=\"width:80vw;\">\n\t\t<div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n\t\t\t<div class=\"modal-content\">\n\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"modal-body\">\n\t\t\t\t\t<div id=\"iqquotecontent\">\n\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"modal-footer\"><button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\" style=\"float: left;cursor:pointer;\" onclick=\"jQuery('#QuoteFormPopup').dialog('close')\">Close<\/button>\n\t\t\t\t<\/div>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div> \n<\/div>\n\n\n\n      <\/div>\n      <div class=\"empty-state\" id=\"history-empty\" role=\"status\" aria-live=\"polite\">\n        <span class=\"ic\"><svg><use href=\"#i-clock\"\/><\/svg><\/span>\n        <h3>No history yet<\/h3>\n        <p class=\"muted\">When you request quotes or make a booking, they will appear here.<\/p>\n        <div class=\"cta-row\">\n          <a class=\"btn btn-primary\" href=\"\/quote\">Get a new quote<\/a>\n          <a class=\"btn btn-dark\" href=\"\/customer-faqs\/\">Read FAQs<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- TRUST STRIP -->\n  <section class=\"assurance\" aria-label=\"Why book with us\">\n    <div class=\"assurance-grid\">\n      <article class=\"card assure\">\n        <span class=\"ic\"><svg><use href=\"#i-shield\"\/><\/svg><\/span>\n        <h3>Protected &#038; transparent<\/h3>\n        <p>Clear agreements, upfront pricing, and receipts for every payment.<\/p>\n      <\/article>\n      <article class=\"card assure\">\n        <span class=\"ic\"><svg><use href=\"#i-badge\"\/><\/svg><\/span>\n        <h3>Vetted operators<\/h3>\n        <p>Only trusted suppliers with a quality track record on our platform.<\/p>\n      <\/article>\n      <article class=\"card assure\">\n        <span class=\"ic\"><svg><use href=\"#i-headset\"\/><\/svg><\/span>\n        <h3>Human support<\/h3>\n        <p>UK-based team supporting couples across your country.<\/p>\n      <\/article>\n    <\/div>\n  <\/section>\n\n  <!-- CTA -->\n  <section class=\"cta-banner\" aria-label=\"Ready to continue?\">\n    <div class=\"cta-inner card\">\n      <h2>Ready to continue your planning?<\/h2>\n      <p>Browse availability, lock in favourites, and keep everything in one place.<\/p>\n      <div class=\"cta-row\">\n        <a class=\"btn btn-primary\" href=\"\/quote\/\">Start your quote<\/a>\n        <a class=\"btn btn-dark\" href=\"\/join-us\/\">List your vehicle<\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n<\/section>\n\n<style>\n  :root{\n    --cta1: var(--twchp-cta1, #d2b744);\n    --cta2: var(--twchp-cta2, #34465a);\n    --ink: var(--twchp-ink, #0f0f13);\n    --muted: var(--twchp-muted, #5b5f6a);\n    --line: var(--twchp-line, #ececf2);\n    --card: var(--twchp-card, #ffffff);\n    --wrap: min(1100px, 92vw);\n    --radius: 18px;\n    --shadow: 0 10px 26px rgba(17,17,17,.06);\n  }\n\n  \/* LAYOUT *\/\n  #twchp-history{max-width:var(--wrap);margin-inline:auto;padding:2rem 0 4rem;color:var(--ink)}\n\n  \/* HERO *\/\n  .hero h1{font-size:clamp(2rem,4.5vw,3rem);line-height:1.1;margin:.2rem 0 .4rem}\n  .lead{color:var(--muted);font-size:1.125rem;max-width:68ch}\n  .chips{display:flex;gap:.6rem;flex-wrap:wrap;margin:.8rem 0 1rem}\n  .chip{display:inline-flex;align-items:center;gap:.45rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.45rem .8rem;box-shadow:var(--shadow);font-weight:600;color:#1c2530}\n  .chip-ic{width:16px;height:16px}\n  .cta-row{display:flex;gap:.8rem;flex-wrap:wrap;margin:1rem 0 0}\n  .btn{display:inline-flex;align-items:center;gap:.45rem;justify-content:center;padding:.85rem 1.35rem;border-radius:999px;font-weight:800;text-decoration:none;border:1px solid transparent;box-shadow:var(--shadow);transition:transform .15s ease, box-shadow .2s ease;cursor:pointer;background:#fff;color:#111}\n  .btn:hover{transform:translateY(-2px)}\n  .btn-primary{background:var(--cta1);color:#111}\n  .btn-dark{background:#202833;color:#fff}\n  .btn-ic{width:18px;height:18px}\n  \/* Force site defaults for dark button *\/\n  #twchp-history a.btn.btn-dark{background:#202833;color:#fff !important;}\n  #twchp-history a.btn.btn-dark:hover{color:var(--cta1) !important;}\n  #twchp-history a.btn.btn-dark:focus-visible{outline:3px solid var(--cta1);outline-offset:2px}\n\n  \/* CARDS \/ UTIL *\/\n  .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}\n  .sub{color:var(--muted);margin:.1rem 0 1rem}\n  .muted{color:var(--muted)}\n  .ic{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:#f6f7fb;border:1px solid var(--line);box-shadow:var(--shadow);margin:0 0 .5rem}\n  .ic svg{width:22px;height:22px;color:#1f2a37}\n\n  \/* SUMMARY STATS *\/\n  .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.6rem 0}\n  .stat{padding:1rem;text-align:center}\n  .stat-ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:#f6f7fb;border:1px solid var(--line);box-shadow:var(--shadow);margin:0 0 .4rem}\n  .stat-ic svg{width:24px;height:24px;color:#1f2a37}\n  .stat .num{font-weight:900;font-size:clamp(1.6rem,3.5vw,2.25rem)}\n  .stat .lbl{color:var(--muted);margin-top:.2rem}\n  @media (max-width:860px){.stats{grid-template-columns:1fr}}\n\n  \/* QUICK ACTIONS *\/\n  .quick-actions{margin:1.6rem 0}\n  .qa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}\n  .qa{padding:1rem;text-decoration:none;color:inherit}\n  .qa h3{margin:.1rem 0 .3rem}\n  .qa p{margin:0}\n  .qa:hover{box-shadow:0 14px 28px rgba(0,0,0,.08);transform:translateY(-2px)}\n  @media (max-width:860px){.qa-grid{grid-template-columns:1fr}}\n\n  \/* HISTORY \/ TABLE WRAP *\/\n  .history{margin:2rem 0}\n  .history-card{padding:1.1rem}\n  .history-head{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem;flex-wrap:wrap}\n  .history-head h2{margin:.1rem 0}\n  .table-wrap{margin:.6rem 0 0;border:1px dashed #dadde6;border-radius:calc(var(--radius) + 2px);padding:1rem;overflow:auto;-webkit-overflow-scrolling:touch}\n  .empty-state{display:none;text-align:center;padding:1.2rem;border:1px dashed #e1e4ec;border-radius:calc(var(--radius) + 2px);margin-top:1rem}\n  .empty-state h3{margin:.2rem 0 .2rem}\n\n  \/* ASSURANCE *\/\n  .assurance{margin:2rem 0 0}\n  .assurance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}\n  .assure{padding:1.1rem}\n  .assure h3{margin:.1rem 0 .35rem}\n  .assure p{margin:0;color:var(--muted)}\n  @media (max-width:860px){.assurance-grid{grid-template-columns:1fr}}\n\n  \/* CTA *\/\n  .cta-banner{margin:2.2rem 0 0}\n  .cta-inner{padding:1.2rem;text-align:center}\n  .cta-inner p{color:var(--muted)}\n\n  \/* TABLES FROM SHORTCODE (quotestable \/ bookingstable) *\/\n  table.quotestable, table.bookingstable{width:100%;border-collapse:separate;border-spacing:0 1rem;font-size:.95rem;color:#333}\n  table.quotestable thead th, table.bookingstable thead th{background:#fffdf2;color:#3a3a3a;padding:.75rem 1rem;font-size:1rem;text-align:left;border-bottom:2px solid var(--cta1)}\n  table.quotestable tbody tr, table.bookingstable tbody tr{background:#fff;border:1px solid #ececf2;border-radius:12px;box-shadow:var(--shadow);transition:box-shadow .2s ease, transform .15s ease}\n  table.quotestable tbody tr:hover, table.bookingstable tbody tr:hover{box-shadow:0 14px 28px rgba(0,0,0,.08);transform:translateY(-2px)}\n  table.quotestable td, table.bookingstable td{padding:1rem;vertical-align:top;background:transparent;border:none}\n  table.quotestable img, table.bookingstable img{max-width:120px;height:auto;border-radius:8px;margin-top:.25rem;display:block}\n\n  \/* Buttons inside shortcode output *\/\n  a.iqbtnbook, a.iqbtnmybooking, a.iqshowlink, span.iqshowlink, span.iqmorepictures{\n    display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-weight:800;text-decoration:none;border:1px solid transparent;box-shadow:var(--shadow);transition:transform .15s ease, box-shadow .2s ease;cursor:pointer\n  }\n  a.iqbtnbook, a.iqbtnmybooking{background:var(--cta1);color:#111;padding:.55rem 1.1rem}\n  a.iqbtnbook:hover, a.iqbtnmybooking:hover{transform:translateY(-2px)}\n  a.iqshowlink, span.iqshowlink{background:#fff;color:#1c2530;border:2px solid var(--cta1);padding:.5rem 1rem}\n  a.iqshowlink:hover, span.iqshowlink:hover{background:#fffdf2}\n  span.iqmorepictures{background:#fff;color:#1c2530;border:2px solid var(--cta2);padding:.5rem 1rem}\n  span.iqmorepictures:hover{background:#eef3f9}\n\n  @media (prefers-reduced-motion: reduce){\n    .btn,.qa,.table tr{transition:none}\n    .btn:hover,.qa:hover,.table tr:hover{transform:none}\n  }\n<\/style>\n<style>\n\/* Gold bar under the H1 (page-scoped) *\/\n#twchp-history .hero h1{ position:relative; }\n#twchp-history .hero h1::after{\n  content:\"\"; display:block; width:56px; height:4px;\n  margin:.55rem 0 0; background:var(--cta1); border-radius:999px;\n}\n\n  \/* ==== SHORTCODE BUTTON RESTYLE (TWCHP Flagship) ==== *\/\n  \/* First two buttons \u2192 CTA2 *\/\n  #twchp-history .table-wrap a.iqshowlink,\n  #twchp-history .table-wrap span.iqshowlink,\n  #twchp-history .table-wrap span.iqmorepictures{\n    background: var(--cta2) !important;\n    color: #fff !important;\n    border: 1px solid var(--cta2) !important;\n    padding: .6rem 1.15rem !important;\n    border-radius: 999px !important;\n    font-weight: 800 !important;\n    text-decoration: none !important;\n    display: inline-flex !important;\n    align-items: center;\n    justify-content: center;\n    box-shadow: var(--shadow);\n    position: static !important;  \/* undo any absolute positioning *\/\n    bottom: auto !important;\n    transition: transform .15s ease, box-shadow .2s ease;\n  }\n  #twchp-history .table-wrap a.iqshowlink:hover,\n  #twchp-history .table-wrap span.iqshowlink:hover,\n  #twchp-history .table-wrap span.iqmorepictures:hover{\n    transform: translateY(-2px);\n    box-shadow: 0 14px 28px rgba(0,0,0,.12);\n  }\n\n  \/* Third button (Book \/ My Booking) \u2192 CTA1 *\/\n  #twchp-history .table-wrap a.iqbtnbook,\n  #twchp-history .table-wrap a.iqbtnmybooking{\n    background: var(--cta1) !important;\n    color: #111 !important;\n    border: 1px solid transparent !important;\n    padding: .6rem 1.15rem !important;\n    border-radius: 999px !important;\n    font-weight: 800 !important;\n    text-decoration: none !important;\n    display: inline-flex !important;\n    align-items: center;\n    justify-content: center;\n    box-shadow: var(--shadow);\n    transition: transform .15s ease, box-shadow .2s ease;\n  }\n  #twchp-history .table-wrap a.iqbtnbook:hover,\n  #twchp-history .table-wrap a.iqbtnmybooking:hover{\n    transform: translateY(-2px);\n    box-shadow: 0 14px 28px rgba(0,0,0,.12);\n  }\n\n  \/* Optional: compact spacing on mobile so buttons don\u2019t collide *\/\n  @media (max-width: 768px){\n    #twchp-history .table-wrap a.iqshowlink,\n    #twchp-history .table-wrap span.iqshowlink,\n    #twchp-history .table-wrap span.iqmorepictures,\n    #twchp-history .table-wrap a.iqbtnbook,\n    #twchp-history .table-wrap a.iqbtnmybooking{\n      margin-top: .5rem !important;\n    }\n  }\n<\/style>\n\n<!-- TWCHP Your History \u2014 FIXED JS (header row safe, no &&) -->\n<script>\n(function(){\n  function txt(el){ return el ? (el.textContent || el.innerText || '').trim() : ''; }\n  function byId(id){ return document.getElementById(id); }\n\n  \/* Turn any NodeList of rows into only data rows (must contain at least one TD) *\/\n  function dataRows(sel){\n    var out = [];\n    var rows = document.querySelectorAll(sel);\n    if(!rows){ return out; }\n    for(var i=0;i<rows.length;i++){\n      var r = rows[i];\n      var hasTD = r.querySelector('td') ? true : false;\n      if(hasTD){ out.push(r); }\n    }\n    return out;\n  }\n\n  \/* Toolbar *\/\n  document.addEventListener('DOMContentLoaded', function(){\n    var r = byId('twc-refresh'); if(r){ r.addEventListener('click', function(){ location.reload(); }); }\n    var p = byId('twc-print');   if(p){ p.addEventListener('click', function(){ try{ window.print(); }catch(e){} }); }\n  });\n\n  \/* Counters + days *\/\n  document.addEventListener('DOMContentLoaded', function(){\n    try{\n      var quotesCountEl   = byId('quotes-count');\n      var bookingsCountEl = byId('bookings-count');\n      var daysEl          = byId('days-to-event');\n      var emptyEl         = byId('history-empty');\n\n      var mon = { jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11 };\n      function parseDateLoose(s){\n        if(!s){ return null; }\n        s = String(s).trim();\n        var m, d;\n\n        m = s.match(\/(^|\\D)(\\d{1,2})[\\\/\\-](\\d{1,2})[\\\/\\-](\\d{4})(\\D|$)\/);\n        if(m){ d = new Date(+m[4], +m[3]-1, +m[2]); if(!isNaN(d)){ return d; } }\n\n        m = s.match(\/(^|\\D)(\\d{4})[\\\/\\-](\\d{1,2})[\\\/\\-](\\d{1,2})(\\D|$)\/);\n        if(m){ d = new Date(+m[2], +m[3]-1, +m[4]); if(!isNaN(d)){ return d; } }\n\n        m = s.match(\/(^|\\D)(\\d{1,2})\\s+([A-Za-z]{3,})\\s+(\\d{4})(\\D|$)\/);\n        if(m){ var mo = mon[m[3].slice(0,3).toLowerCase()]; if(mo>=0){ d = new Date(+m[4], mo, +m[2]); if(!isNaN(d)){ return d; } } }\n\n        m = s.match(\/(^|\\D)([A-Za-z]{3,})\\s+(\\d{1,2}),\\s*(\\d{4})(\\D|$)\/);\n        if(m){ var mo2 = mon[m[2].slice(0,3).toLowerCase()]; if(mo2>=0){ d = new Date(+m[4], mo2, +m[3]); if(!isNaN(d)){ return d; } } }\n\n        return null;\n      }\n\n      function inactiveBooking(row){\n        var t = txt(row).toLowerCase();\n        var bad = ['cancelled','canceled','declined','expired','refunded','failed','void'];\n        for(var i=0;i<bad.length;i++){ if(t.indexOf(bad[i])>-1){ return true; } }\n        return false;\n      }\n\n      function eventDateFromRow(row){\n        var first = row.querySelector('td:nth-child(2)');\n        var d = parseDateLoose(txt(first));\n        if(d){ return d; }\n        var cells = row.querySelectorAll('td');\n        for(var i=0;i<cells.length;i++){\n          d = parseDateLoose(txt(cells[i]));\n          if(d){ return d; }\n        }\n        return null;\n      }\n\n      function soonestFutureDate(){\n        var now = new Date(); now.setHours(0,0,0,0);\n        var soon = null;\n\n        function scan(sel){\n          var rows = dataRows(sel); \/* filtered *\/\n          if(!rows){ return; }\n          for(var i=0;i<rows.length;i++){\n            var d = eventDateFromRow(rows[i]);\n            if(!d){ continue; }\n            d.setHours(0,0,0,0);\n            if(d >= now){\n              if(!soon){ soon = d; }\n              else { if(d < soon){ soon = d; } }\n            }\n          }\n        }\n\n        scan('table.quotestable tbody tr');\n        scan('table.bookingstable tbody tr');\n        return soon;\n      }\n\n      function compute(){\n        var qRows = dataRows('table.quotestable tbody tr');   \/* header-safe *\/\n        var bRows = dataRows('table.bookingstable tbody tr'); \/* header-safe *\/\n\n        var qCount = qRows.length;\n        var bActive = 0;\n        for(var i=0;i<bRows.length;i++){ if(!inactiveBooking(bRows[i])){ bActive++; } }\n\n        if(quotesCountEl){ quotesCountEl.textContent = String(qCount); }\n        if(bookingsCountEl){ bookingsCountEl.textContent = String(bActive); }\n\n        var noQuotes = true; if(qRows.length > 0){ noQuotes = false; }\n        var noBooks  = true; if(bRows.length > 0){ noBooks  = false; }\n\n        if(noQuotes){\n          if(noBooks){ if(emptyEl){ emptyEl.style.display = 'block'; } }\n          else { if(emptyEl){ emptyEl.style.display = 'none'; } }\n        } else {\n          if(emptyEl){ emptyEl.style.display = 'none'; }\n        }\n\n        var soon = soonestFutureDate();\n        if(daysEl){\n          if(soon){\n            var today = new Date(); today.setHours(0,0,0,0);\n            var diff = Math.ceil((soon.getTime() - today.getTime()) \/ (1000*60*60*24));\n            daysEl.textContent = diff >= 0 ? String(diff) : '\u2014';\n          } else {\n            daysEl.textContent = '\u2014';\n          }\n        }\n      }\n\n      function schedule(){\n        compute();\n        setTimeout(compute, 500);\n        setTimeout(compute, 1500);\n        setTimeout(compute, 3000);\n      }\n      schedule();\n\n      var wrap = document.querySelector('#twchp-history .table-wrap');\n      if(wrap){\n        if(window.MutationObserver){\n          var t = null;\n          var mo = new MutationObserver(function(){\n            if(t){ clearTimeout(t); }\n            t = setTimeout(compute, 120);\n          });\n          mo.observe(wrap, { childList:true, subtree:true });\n        }\n      }\n    }catch(e){}\n  });\n\n  \/* Geo chip (unchanged) *\/\n  document.addEventListener('DOMContentLoaded', function(){\n    var chip = document.getElementById('history-country-chip');\n    if(!chip){ return; }\n\n    function codeFromHost(h){\n      h = String(h || '').toLowerCase().trim();\n      if(h.indexOf('www.')===0){ h = h.slice(4); }\n      if(h.indexOf('staging.')===0){ h = h.slice(8); }\n      if(h.indexOf('preview.')===0){ h = h.slice(8); }\n      if(h.indexOf('dev.')===0){ h = h.slice(4); }\n      var parts = h.split('.');\n      var sub = parts[0] || '';\n      if(\/^[a-z]{2,3}$\/.test(sub)){ return sub; }\n      var last2 = parts.slice(-2).join('.');\n      var last1 = parts[parts.length-1];\n      var map = { 'com.au':'au', 'co.nz':'nz', 'co.uk':'uk', 'ie':'ie', 'ca':'ca', 'us':'us' };\n      if(map[last2]){ return map[last2]; }\n      if(map[last1]){ return map[last1]; }\n      return '';\n    }\n\n    var names = { au:'Australia', nz:'New Zealand', uk:'United Kingdom', ie:'Ireland', ca:'Canada', us:'United States' };\n    var code = codeFromHost(location.host || location.hostname);\n    var fallback = names[code] || 'United Kingdom';\n    chip.innerHTML = '<svg class=\"chip-ic\" aria-hidden=\"true\"><use href=\"#i-geo\"><\/use><\/svg>' + fallback + '-based support';\n\n    var PROXY_URL = 'https:\/\/theweddingcarhirepeople.com\/data\/contact-proxy.php';\n    try{\n      var ctrl = (typeof AbortController !== 'undefined') ? new AbortController() : null;\n      var sig  = ctrl ? ctrl.signal : undefined;\n      var timer = setTimeout(function(){ if(ctrl){ try{ctrl.abort();}catch(e){} } }, 6000);\n\n      fetch(PROXY_URL, { signal: sig, credentials: 'omit' })\n        .then(function(r){ return r.ok ? r.json() : Promise.reject('bad'); })\n        .then(function(raw){\n          clearTimeout(timer);\n          var data = raw;\n          if(!data){ return; }\n          if(Array.isArray(data)){\n            var out = {};\n            for(var i=0;i<data.length;i++){\n              var o = data[i];\n              if(o){ if(typeof o === 'object'){ for(var k in o){ if(Object.prototype.hasOwnProperty.call(o,k)){ out[k] = o[k]; } } } }\n            }\n            data = out;\n          }\n          var node = null;\n          if(code){ if(data){ if(data[code]){ node = data[code]; } } }\n          if(!node){ return; }\n          var nm = node.countryName || node.country || node['Local Office'] || node.address || fallback;\n          chip.innerHTML = '<svg class=\"chip-ic\" aria-hidden=\"true\"><use href=\"#i-geo\"><\/use><\/svg>' + nm + '-based support';\n        })\n        .catch(function(){ clearTimeout(timer); });\n    }catch(e){}\n  });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Your history Welcome back. Here you can revisit quotes, view booking details, and keep everything organised as your big day approaches. \u2605 Verified suppliers \u2713 Secure payments United Kingdom-based support Get a new quote Contact support Refresh Print 0 Total quotes 0 Active bookings \u2014 Days to next event Start a new quote Compare prices [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_iqpageproperties":{"pagetype":"","latlong":"0,0","latitude":"","longitude":"","country":"","county":"","town":"","product":"","service":"","host":"","postcode":"","wikipedia":"","wikidata":"","website":"","language":"","iqassetgroup":"","showroomid":"","state":"","state_name":""},"footnotes":""},"class_list":["post-23","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/es.theweddingcarhirepeople.com\/es\/wp-json\/wp\/v2\/pages\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es.theweddingcarhirepeople.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/es.theweddingcarhirepeople.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/es.theweddingcarhirepeople.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/es.theweddingcarhirepeople.com\/es\/wp-json\/wp\/v2\/comments?post=23"}],"version-history":[{"count":0,"href":"https:\/\/es.theweddingcarhirepeople.com\/es\/wp-json\/wp\/v2\/pages\/23\/revisions"}],"wp:attachment":[{"href":"https:\/\/es.theweddingcarhirepeople.com\/es\/wp-json\/wp\/v2\/media?parent=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}