/* ============================================================
   247 Taxis — shared styles
   Footer + booking modal. These appear on EVERY page, so edit
   them here once and the change applies site-wide.
   ============================================================ */

/* ===== Brand palette & fonts (single source of truth) ===== */
:root{
  --ink: #141414;
  --ink-soft: #3d3d3d;
  --muted: #6b6b6b;
  --line: #e7e3dc;
  --paper: #faf8f4;
  --paper-2: #f2efe8;
  --white: #ffffff;
  --orange: #f36a1c;
  --orange-ink: #d4540c;
  --yellow: #ffc400;
  --green: #46be3c;
  --blue: #1bb4ee;
  --pink: #e8457a;
  --pink-dark: #2d0d1a;
}

/* ===== Header / Nav (single source of truth) =====
   Markup + behaviour live in assets/site.js. Edit the nav once
   there and it updates on every page. */
header.site{position:fixed;top:0;left:0;right:0;z-index:60;background:transparent;border-bottom:1px solid transparent;transition:background .35s ease,border-color .35s ease;}
header.site.scrolled{background:rgba(250,248,244,.92);backdrop-filter:saturate(1.4) blur(14px);border-bottom-color:var(--line);}
header.site .stripe{display:flex;height:6px;width:100%;overflow:hidden;border-radius:0;}
header.site .stripe span{flex:1;}
header.site .stripe span:nth-child(1){background:var(--orange);}
header.site .stripe span:nth-child(2){background:var(--yellow);}
header.site .stripe span:nth-child(3){background:var(--green);}
header.site .stripe span:nth-child(4){background:var(--blue);}
header.site:not(.scrolled) .nav-flat{color:rgba(255,255,255,.72);}
header.site:not(.scrolled) .nav-flat:hover{background:rgba(255,255,255,.1);color:#fff;}
header.site:not(.scrolled) .nav-trigger{color:rgba(255,255,255,.72);}
header.site:not(.scrolled) .nav-trigger:hover,
header.site:not(.scrolled) .nav-item.open .nav-trigger{background:rgba(255,255,255,.1);color:#fff;}
header.site:not(.scrolled) .burger{border-color:rgba(255,255,255,.3);background:transparent;}
header.site:not(.scrolled) .burger span,
header.site:not(.scrolled) .burger span::before,
header.site:not(.scrolled) .burger span::after{background:#fff;}
header.site .nav{display:flex;align-items:center;height:74px;gap:20px;}
header.site .brand{display:flex;align-items:center;gap:12px;flex:0 0 auto;}
header.site .brand img{height:42px;width:auto;}
header.site .nav-links{display:flex;align-items:center;justify-content:center;gap:4px;flex:1 1 auto;}
header.site .nav-flat{padding:9px 16px;border-radius:99px;font-weight:600;font-size:17px;color:var(--ink-soft);transition:background .15s,color .15s;}
header.site .nav-flat:hover{background:var(--paper-2);color:var(--ink);}
header.site .nav-flat.active{color:var(--ink);font-weight:700;}
header.site:not(.scrolled) .nav-flat.active{color:#fff;}
header.site .nav-item{position:relative;}
header.site .nav-trigger{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:0;background:none;cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:17px;color:var(--ink-soft);border-radius:99px;transition:background .15s,color .15s;}
header.site .nav-trigger:hover,header.site .nav-item.open .nav-trigger,header.site .nav-trigger.active{background:var(--paper-2);color:var(--ink);}
header.site .nav-trigger.active{font-weight:700;}
header.site .nav-trigger .caret{transition:transform .22s var(--ease,cubic-bezier(.4,.05,.2,1));}
header.site .nav-item.open .nav-trigger .caret{transform:rotate(180deg);}
header.site .dropdown{position:absolute;top:calc(100% + 12px);left:0;min-width:288px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg,0 24px 60px rgba(20,20,20,.16));padding:8px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s;z-index:70;}
header.site .dropdown::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px;}
header.site .nav-item.open .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
header.site .dropdown a{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-radius:12px;transition:background .14s;}
header.site .dropdown a:hover{background:var(--paper);}
header.site .dropdown a b{font-family:var(--font-display);font-weight:700;font-size:15.5px;color:var(--ink);letter-spacing:-.01em;}
header.site .dropdown a small{color:var(--muted);font-size:13px;line-height:1.35;}
header.site .nav-cta{display:flex;align-items:center;gap:12px;flex:0 0 auto;margin-left:auto;}
header.site .burger{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;align-items:center;justify-content:center;}
header.site .burger span{display:block;width:20px;height:2px;background:var(--ink);position:relative;}
header.site .burger span::before,header.site .burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink);}
header.site .burger span::before{top:-6px;}
header.site .burger span::after{top:6px;}
header.site .mobile-menu{display:none;flex-direction:column;gap:0;padding:10px 28px 24px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 24px 40px rgba(20,20,20,.14);}
header.site .mm-flat{padding:15px 4px;border-bottom:1px solid var(--line);font-weight:600;font-size:19px;font-family:var(--font-display);}
header.site .mm-group{border-bottom:1px solid var(--line);}
header.site .mm-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:15px 4px;background:none;border:0;cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:19px;color:var(--ink);}
header.site .mm-trigger svg{transition:transform .25s;}
header.site .mm-group.open .mm-trigger svg{transform:rotate(180deg);}
header.site .mm-sub{max-height:0;overflow:hidden;transition:max-height .3s;}
header.site .mm-sub a{display:flex;flex-direction:column;gap:2px;padding:11px 4px 11px 16px;font-weight:600;font-size:16px;color:var(--ink-soft);}
header.site .mm-sub a b{font-weight:600;font-size:16px;color:var(--ink-soft);}
header.site .mm-sub a small{font-weight:500;font-size:13px;line-height:1.35;color:var(--muted);}
header.site .mm-sub a:first-child{padding-top:4px;}
header.site .mm-sub a:last-child{padding-bottom:14px;}
header.site .mobile-menu .mm-cta{display:flex;gap:10px;margin-top:18px;}
body.menu-open header.site .mobile-menu{display:flex;}
/* keep the top bar opaque while the menu is open, even over a hero */
body.menu-open header.site{background:rgba(250,248,244,.98);backdrop-filter:saturate(1.4) blur(14px);border-bottom-color:transparent;}
body.menu-open header.site .nav-flat,
body.menu-open header.site .nav-trigger{color:var(--ink-soft);}
body.menu-open header.site .burger{border-color:var(--line);background:#fff;}
body.menu-open header.site .burger span,
body.menu-open header.site .burger span::before,
body.menu-open header.site .burger span::after{background:var(--ink);}
@media(max-width:900px){
  header.site .nav-links{display:none;}
  header.site .burger{display:flex;}
}

/* ===== Footer ===== */
footer.site{background:var(--ink);color:#fff;padding:64px 0 30px;}
footer.site .foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:40px;}
footer.site .brandcol img{height:42px;margin-bottom:16px;}
footer.site .brandcol p{color:#a8a5a0;font-size:15px;max-width:34ch;line-height:1.55;}
footer.site .foot-contact{margin-top:18px;display:flex;flex-direction:column;gap:6px;}
footer.site .foot-contact a{font-family:var(--font-display);font-weight:700;font-size:18px;color:#fff;}
footer.site .foot-contact span{color:#86837e;font-size:13.5px;line-height:1.5;max-width:32ch;}
footer.site .foot-social{display:flex;gap:10px;margin-top:20px;}
footer.site .foot-social a{width:42px;height:42px;border-radius:11px;border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;color:#cbc8c3;transition:background .18s,color .18s,border-color .18s,transform .18s;}
footer.site .foot-social a:hover{background:#fff;color:var(--ink);border-color:#fff;transform:translateY(-2px);}
footer.site .foot-col h5{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#86837e;margin-bottom:14px;font-weight:700;}
footer.site .foot-col a{display:block;color:#cbc8c3;padding:6px 0;font-weight:500;font-size:15px;}
footer.site .foot-col a:hover{color:#fff;}
footer.site .foot-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);color:#86837e;font-size:14px;}
footer.site .foot-legal{display:flex;gap:22px;}
footer.site .foot-legal a{color:#86837e;}
footer.site .foot-legal a:hover{color:#fff;}
@media(max-width:900px){footer.site .foot-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){footer.site .foot-grid{grid-template-columns:1fr;}}

/* ===== Booking modal ===== */
.book-modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:24px;font-family:var(--font-body);}
.book-modal.open{display:flex;}
.book-modal__backdrop{position:fixed;inset:0;background:rgba(12,12,12,.62);backdrop-filter:blur(4px);opacity:0;transition:opacity .25s ease;}
.book-modal.open .book-modal__backdrop{opacity:1;}
.book-modal__panel{position:relative;background:#fff;border-radius:20px;width:min(940px,96vw);max-height:94vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.45);transform:translateY(18px) scale(.98);opacity:0;transition:transform .28s cubic-bezier(.4,.05,.2,1),opacity .28s ease;}
.book-modal.open .book-modal__panel{transform:none;opacity:1;}
.book-modal__stripe{display:flex;height:5px;flex:none;}
.book-modal__stripe span{flex:1;}
.book-modal__stripe span:nth-child(1){background:var(--orange);}.book-modal__stripe span:nth-child(2){background:var(--yellow);}.book-modal__stripe span:nth-child(3){background:var(--green);}.book-modal__stripe span:nth-child(4){background:var(--blue);}
.book-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px 15px 20px;border-bottom:1px solid var(--line);flex:none;}
.book-modal__title{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:18px;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;}
.book-modal__title .d{width:8px;height:8px;border-radius:50%;background:var(--orange);}
.book-modal__close{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink);transition:background .15s,border-color .15s;}
.book-modal__close:hover{background:var(--paper-2);}
.book-modal__body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fff;}
.book-modal__body iframe{width:100%;border:0;display:block;min-height:760px;}
.book-modal__loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px 20px;color:var(--muted);font-weight:600;font-size:15px;}
.book-modal__spin{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--orange);border-radius:50%;animation:bmspin .7s linear infinite;}
@keyframes bmspin{to{transform:rotate(360deg);}}
body.book-lock{overflow:hidden;}
@media(max-width:600px){.book-modal{padding:0;}.book-modal__panel{width:100%;height:100%;max-height:100%;border-radius:0;}}
