/* Tower Bridge Hospital — site header, mega-menu and mobile menu (tn-*). 2026-09-29 */
.tn{--tn-n:#0B2345;--tn-n2:#081B38;--tn-b:#003087;--tn-b2:#0B63CE;--tn-ink:#1F2A3A;--tn-mu:#5A6B82;--tn-ln:#E1E8F1;--tn-pale:#EEF4FB;--tn-pale2:#F4F8FC;--tn-wa:#1FA855;
 --tn-sans:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;--tn-serif:'Fraunces',Georgia,'Times New Roman',serif;
 position:relative;z-index:1000;font-family:var(--tn-sans);color:var(--tn-ink);background:#fff}
html body .tn *,html body .tn *::before,html body .tn *::after{box-sizing:border-box}
html body .tn :is(ul,ol){list-style:none !important;margin:0 !important;padding:0 !important}
html body .tn :is(ul,ol)>li{margin:0 !important;padding:0;background:none !important}
html body .tn :is(ul,ol)>li::before,html body .tn :is(ul,ol)>li::marker{content:none !important;display:none !important}
html body .tn p{margin:0}
html body .tn a{text-decoration:none;-webkit-text-fill-color:currentColor}
html body .tn a::after,html body .tn a::before{content:none}
html body .tn svg{flex:none}
html body .tn button{font-family:var(--tn-sans);-webkit-appearance:none;appearance:none}
.tn-wrap{max-width:1360px;margin:0 auto;padding:0 clamp(16px,2.4vw,32px)}
html body .tn a:focus-visible,html body .tn button:focus-visible,html body .tn input:focus-visible{outline:3px solid #7FB0E6 !important;outline-offset:2px}

/* ---------- utility bar ---------- */
html body .tn .tn-util{background:var(--tn-pale2);border-bottom:1px solid var(--tn-ln);font-size:13px}
.tn-util__in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px}
.tn-util__l,.tn-util__r{display:flex;align-items:center;gap:6px 18px;flex-wrap:nowrap;min-width:0}
html body .tn .tn-ua{display:inline-flex;align-items:center;gap:7px;min-height:32px;color:var(--tn-n) !important;font:500 13px/1.2 var(--tn-sans);white-space:nowrap}
html body .tn .tn-ua svg{width:16px;height:16px;color:var(--tn-b)}
html body .tn .tn-ua:hover span{text-decoration:underline;text-underline-offset:3px}
html body .tn .tn-util__r .tn-ua--port+.tn-ua--port{padding-left:16px;border-left:1px solid #D4DEEA}
html body .tn .tn-util .a11y-controls{display:flex !important;align-items:center;gap:4px;margin:0 !important;padding:0 !important;background:none !important;border:0 !important;position:static !important}
html body .tn .tn-util .a11y-btn{min-width:28px !important;height:28px !important;padding:0 6px !important;border-radius:7px !important;border:1px solid #D4DEEA !important;background:#fff !important;color:var(--tn-n) !important;font:700 11.5px/1 var(--tn-sans) !important;box-shadow:none !important}
html body .tn .tn-util .a11y-btn svg{width:14px;height:14px}
html body .tn .tn-util .lang-switch{position:relative !important;margin:0 !important}
html body .tn .tn-util .lang-trigger{height:28px !important;min-height:28px !important;padding:0 9px !important;border-radius:7px !important;border:1px solid #D4DEEA !important;background:#fff !important;color:var(--tn-n) !important;font:700 12px/1 var(--tn-sans) !important;box-shadow:none !important}
html body .tn .tn-book{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;background:var(--tn-n);color:#fff !important;font:700 14px/1.1 var(--tn-sans);white-space:nowrap;transition:background .18s}
html body .tn .tn-book:hover{background:var(--tn-b)}
html body .tn .tn-book svg{width:17px;height:17px;color:#fff}
html body .tn .tn-book--util{min-height:36px;padding:8px 16px;margin-left:4px}

/* live opening-hours / emergency strip kept from the original header */
html body .tn .announce-bar{position:relative !important;top:auto !important;margin:0 !important}

/* ---------- logo + search row ---------- */
html body .tn .tn-main{background:#fff;border-bottom:1px solid var(--tn-ln)}
.tn-main__in{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,600px) minmax(180px,1fr);align-items:center;gap:24px;min-height:84px}
html body .tn .tn-brand{display:inline-flex;align-items:center;justify-self:start}
html body .tn .tn-logo{display:block;height:48px !important;width:auto !important;max-width:none !important}
html body .tn .tn-search{position:relative !important;display:flex !important;align-items:center;width:100% !important;max-width:none !important;height:52px;margin:0 !important;padding:0 6px 0 50px !important;border-radius:999px !important;background:var(--tn-pale2) !important;border:1px solid #D9E3EF !important;box-shadow:inset 0 1px 2px rgba(11,35,69,.05) !important;transition:border-color .18s,box-shadow .18s}
html body .tn .tn-search:focus-within{border-color:#8DB4E2 !important;background:#fff !important;box-shadow:0 0 0 4px rgba(11,99,206,.12) !important}
html body .tn .tn-search .tn-si{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--tn-n)}
html body .tn .tn-search input{flex:1;min-width:0;height:100% !important;margin:0 !important;padding:0 10px 0 0 !important;border:0 !important;background:transparent !important;box-shadow:none !important;outline:0;font:500 15px/1.2 var(--tn-sans) !important;color:var(--tn-n) !important;border-radius:0 !important}
html body .tn .tn-search input::placeholder{color:#6A7B91;opacity:1}
html body .tn .tn-search button{display:grid !important;place-items:center;width:40px !important;height:40px !important;min-width:40px;margin:0 !important;padding:0 !important;border-radius:50% !important;border:0 !important;background:var(--tn-b2) !important;color:#fff !important;cursor:pointer;box-shadow:none !important;position:static !important}
html body .tn .tn-search button svg{width:18px;height:18px;color:#fff}
.tn-main__r{display:none;justify-self:end;align-items:center;gap:10px}

/* ---------- primary nav row ---------- */
html body .tn .tn-nav{position:relative;background:#fff;border-bottom:1px solid var(--tn-ln);box-shadow:0 10px 24px -22px rgba(11,35,69,.35)}
.tn-list{display:flex !important;align-items:center;justify-content:space-between;gap:2px;min-height:58px}
html body .tn .tn-item{position:static !important}
html body .tn .tn-top{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:9px 12px;border:0;border-radius:10px;background:transparent;color:var(--tn-n) !important;font:600 14.5px/1.1 var(--tn-sans);letter-spacing:-.005em;white-space:nowrap;cursor:pointer;transition:background .16s,color .16s}
html body .tn .tn-top .tn-tc{width:15px;height:15px;color:#6D7F96;transition:transform .2s}
html body .tn .tn-top:hover,html body .tn .tn-item.is-open>.tn-top{background:#E8F1FB;color:var(--tn-b) !important}
html body .tn .tn-item.is-open>.tn-top .tn-tc{transform:rotate(180deg);color:var(--tn-b)}
html body .tn .tn-item.is-current>.tn-top::after{content:"" !important;position:absolute;left:12px;right:12px;bottom:3px;height:2px;border-radius:2px;background:var(--tn-b2)}
.tn-s{display:none}

/* ---------- mega panel ---------- */
html body .tn .tn-mega{position:absolute;top:calc(100% + 8px);left:0;z-index:1001;width:auto;max-width:calc(100vw - 32px);background:#fff;border:1px solid var(--tn-ln);border-radius:20px;box-shadow:0 2px 6px rgba(11,35,69,.05),0 40px 80px -40px rgba(11,35,69,.45);overflow:auto;overscroll-behavior:contain}
html body .tn .tn-mega[hidden]{display:none !important}
html body .tn .tn-mega--wide{width:min(1320px,calc(100vw - 32px))}
.tn-mega__in{padding:26px 28px 22px}
.tn-cols{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:0}
html body .tn .tn-mega:not(.tn-mega--wide) .tn-cols{grid-template-columns:repeat(var(--n),minmax(230px,280px))}
.tn-col{min-width:0;padding:0 18px;border-left:1px solid #EDF1F6}
.tn-col:first-child{padding-left:4px;border-left:0}
.tn-col:last-child{padding-right:4px}
.tn-col--span2{grid-column:span 2}
.tn-col--span2 .tn-colb{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 18px}
.tn-colh{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px;min-height:56px}
.tn-ico{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#EAF2FB;color:var(--tn-n);flex:none}
.tn-ico svg{width:24px;height:24px;stroke-width:1.5}
html body .tn .tn-colt{font:500 18px/1.2 var(--tn-serif);color:var(--tn-n);letter-spacing:-.01em;margin:3px 0 3px}
html body .tn .tn-cold{font-size:12.6px;line-height:1.4;color:var(--tn-mu)}
html body .tn .tn-links li a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 8px;margin:0 -8px;border-radius:8px;color:var(--tn-n) !important;font:500 14px/1.3 var(--tn-sans);transition:background .14s,color .14s}
html body .tn .tn-links li a:hover,html body .tn .tn-links li a:focus-visible{background:#F0F5FB;color:var(--tn-b) !important}
html body .tn .tn-links .tn-lc{width:14px;height:14px;color:#9AAABD;transition:transform .14s,color .14s}
html body .tn .tn-links li a:hover .tn-lc{transform:translateX(2px);color:var(--tn-b)}
html body .tn .tn-links .tn-subh{margin:12px 0 4px !important;font:700 10.5px/1.3 var(--tn-sans);letter-spacing:.13em;text-transform:uppercase;color:var(--tn-b2)}
html body .tn .tn-links .tn-subh:first-child{margin-top:0 !important}
.tn-col--note .tn-colb{padding:16px;border-radius:14px;background:var(--tn-pale2);border:1px solid var(--tn-ln)}
html body .tn .tn-note{font-size:13.6px;line-height:1.6;color:var(--tn-ink);margin:0 0 10px}
html body .tn .tn-note:last-child{margin:0}
html body .tn .tn-note a,html body .tn .tn-contact a{color:var(--tn-b) !important;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.tn-col--alert .tn-colb{background:#FDF3F2;border-color:#F3D3CF}
.tn-col--alert .tn-ico{background:#FCE5E2;color:#B42318}
html body .tn .tn-col--alert .tn-note a{color:#B42318 !important}
.tn-contact{display:grid;gap:10px}
html body .tn .tn-contact li{display:flex;gap:10px;align-items:flex-start;font-size:13.6px;line-height:1.45;color:var(--tn-ink)}
html body .tn .tn-contact svg{width:17px;height:17px;color:var(--tn-b);margin-top:1px}
.tn-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:22px}
html body .tn .tn-foot a{display:flex;align-items:center;gap:14px;min-height:64px;padding:12px 20px;border-radius:14px;transition:background .16s}
html body .tn .tn-foot a>svg:first-child{width:26px;height:26px;flex:none}
html body .tn .tn-foot b{display:block;font:700 15px/1.25 var(--tn-sans)}
html body .tn .tn-foot small{display:block;font-size:12.8px;line-height:1.35;margin-top:2px}
html body .tn .tn-foot .tn-fa{width:18px;height:18px;margin-left:auto;transition:transform .16s}
html body .tn .tn-foot a:hover .tn-fa{transform:translateX(3px)}
html body .tn .tn-foot__all{background:var(--tn-pale2);border:1px solid var(--tn-ln);color:var(--tn-n) !important}
html body .tn .tn-foot__all small{color:var(--tn-mu)}
html body .tn .tn-foot__all:hover{background:#EAF2FB}
html body .tn .tn-foot__book{background:var(--tn-n);color:#fff !important}
html body .tn .tn-foot__book small{color:rgba(255,255,255,.78)}
html body .tn .tn-foot__book:hover{background:var(--tn-b)}
html body .tn .tn-foot__book svg{color:#fff}
/* no-JS fallback: open on hover / keyboard focus */
html body .tn:not(.tn-js) .tn-item:is(:hover,:focus-within)>.tn-mega{display:block !important;left:50%;transform:translateX(-50%)}

/* ---------- desktop sizing ---------- */
@media (max-width:1320px){html body .tn .tn-top{padding:9px 9px;font-size:14px}.tn-mega__in{padding:22px 22px 18px}.tn-col{padding:0 14px}}
@media (max-width:1240px) and (min-width:1100px){html body .tn .tn-util__l .tn-ua--addr{display:none}}
@media (max-width:1180px) and (min-width:1100px){html body .tn .tn-ua--reg span{display:none}}
@media (min-width:1100px){html body .tn .tn-drawer{display:none !important}}

/* ---------- mobile / tablet (< 1100px) ---------- */
@media (max-width:1099.98px){
 html body .tn .tn-util__l .tn-ua--addr,html body .tn .tn-ua--reg,html body .tn .tn-ua--port,html body .tn .tn-book--util{display:none}
 .tn-util__in{min-height:44px}
 .tn-util__r{gap:8px}
 .tn-main__in{grid-template-columns:auto minmax(0,1fr);min-height:68px;gap:12px}
 html body .tn .tn-main .tn-search{display:none !important}
 html body .tn .tn-logo{height:40px !important}
 .tn-main__r{display:flex}
 html body .tn .tn-book--m{min-height:44px;padding:10px 18px;border-radius:10px;font-size:14.5px}
 html body .tn .tn-burger{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:46px;height:46px;padding:0;border:1px solid var(--tn-ln);border-radius:12px;background:#fff;cursor:pointer}
 html body .tn .tn-burger span{display:block;width:20px;height:2px;border-radius:2px;background:var(--tn-n)}
 html body .tn .tn-nav{display:none}
}
@media (max-width:420px){html body .tn .tn-logo{height:34px !important}html body .tn .tn-book--m{padding:10px 14px;font-size:14px}.tn-main__in{gap:8px}html body .tn .tn-util__l .tn-ua span{font-size:12.5px}}
@media (max-width:359px){html body .tn .tn-logo{height:30px !important}html body .tn .tn-book--m{padding:9px 11px}}

/* ---------- mobile drawer ---------- */
html body .tn .tn-drawer{position:fixed;inset:0;z-index:2147483600;display:flex;flex-direction:column;background:#fff;overflow:hidden}
html body .tn .tn-drawer[hidden]{display:none !important}
.tn-dr__top{display:flex;align-items:center;gap:10px;padding:12px clamp(16px,4.5vw,24px);border-bottom:1px solid var(--tn-ln);background:#fff}
.tn-dr__top .tn-brand{margin-right:auto}
html body .tn .tn-dr__top .tn-logo{height:38px !important}
html body .tn .tn-book--dr{min-height:44px;padding:10px 20px;font-size:15px}
html body .tn .tn-dr__x{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--tn-n);cursor:pointer}
html body .tn .tn-dr__x svg{width:26px;height:26px;stroke-width:1.8}
.tn-dr__body{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px clamp(16px,4.5vw,24px) calc(28px + env(safe-area-inset-bottom,0px))}
html body .tn .tn-search--dr{display:flex !important;height:54px;border-radius:14px !important;padding-right:8px !important;margin-bottom:14px !important}
html body .tn .tn-search--dr button{width:38px !important;height:38px !important;min-width:38px;border-radius:10px !important;background:var(--tn-n) !important}
.tn-quick{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:16px}
html body .tn .tn-quick>:is(a,button){display:flex;align-items:center;gap:12px;min-height:66px;padding:12px 14px;border-radius:14px;border:1px solid #DCE7F3;background:#EFF5FC;color:var(--tn-n) !important;font:700 14.5px/1.25 var(--tn-sans);text-align:left;cursor:pointer}
html body .tn .tn-quick svg{width:28px;height:28px;color:var(--tn-b);stroke-width:1.5}
.tn-dr__list{border-top:1px solid var(--tn-ln)}
html body .tn .tn-dr__it{border-bottom:1px solid var(--tn-ln) !important}
html body .tn .tn-dr__row{display:flex;align-items:center;gap:14px;width:100%;min-height:60px;padding:8px 10px;margin:0;border:0;border-radius:12px;background:transparent;color:var(--tn-n);text-align:left;cursor:pointer}
html body .tn .tn-dr__ic{display:grid;place-items:center;width:34px;flex:none;color:var(--tn-n)}
html body .tn .tn-dr__ic svg{width:28px;height:28px;stroke-width:1.5}
html body .tn .tn-dr__lab{flex:1;font:500 19px/1.2 var(--tn-serif);letter-spacing:-.01em}
html body .tn .tn-dr__ch{width:20px;height:20px;color:var(--tn-n);transition:transform .2s}
html body .tn .tn-dr__it.is-open{border-bottom-color:transparent !important}
html body .tn .tn-dr__it.is-open>.tn-dr__row{background:#EAF2FB;border-radius:14px 14px 0 0}
html body .tn .tn-dr__it.is-open>.tn-dr__row .tn-dr__ch{transform:rotate(90deg)}
.tn-dr__panel{padding:6px 10px 12px 56px;margin-bottom:10px;border-radius:0 0 14px 14px;background:linear-gradient(180deg,#EAF2FB,#F4F8FC)}
html body .tn .tn-dr__panel[hidden]{display:none !important}
.tn-dr__grp{position:relative;border-left:2px solid #C9DAEE}
html body .tn .tn-dr__sub{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:46px;padding:8px 6px 8px 14px;border:0;background:transparent;color:var(--tn-n);font:600 15px/1.3 var(--tn-sans);text-align:left;cursor:pointer}
html body .tn .tn-dr__sub svg{width:17px;height:17px;color:var(--tn-n);transition:transform .2s}
html body .tn .tn-dr__sub[aria-expanded="true"] svg{transform:rotate(90deg)}
.tn-dr__links{padding:0 0 8px 14px}
html body .tn .tn-dr__links[hidden]{display:none !important}
html body .tn .tn-dr__links a{display:flex;align-items:center;min-height:42px;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid #E2EBF5;margin:0 0 6px;color:var(--tn-n) !important;font:500 14.5px/1.3 var(--tn-sans)}
html body .tn .tn-dr__links .tn-dr__h{margin:10px 0 6px;font:700 10.5px/1.3 var(--tn-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--tn-b2)}
html body .tn .tn-dr__all{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;padding:8px 14px;margin:4px 0 6px;border-radius:10px;color:var(--tn-b) !important;font:700 14px/1.3 var(--tn-sans)}
html body .tn .tn-dr__all svg{width:16px;height:16px}
html body .tn .tn-dr__cta{display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;margin:20px 0 10px;border-radius:14px;background:var(--tn-n);color:#fff !important;font:700 17px/1.2 var(--tn-sans)}
html body .tn .tn-dr__cta svg{width:20px;height:20px;color:#fff}
.tn-dr__2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:10px}
html body .tn .tn-dr__2 a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:8px 10px;border-radius:12px;background:#EFF5FC;border:1px solid #DCE7F3;color:var(--tn-n) !important;font:600 14px/1.25 var(--tn-sans);text-align:center}
html body .tn .tn-dr__2 svg{width:20px;height:20px;color:var(--tn-n)}
html body .tn .tn-dr__2--s a{min-height:46px;background:#fff;font-size:13px}
html body .tn .tn-dr__emerg{display:flex;gap:10px;align-items:flex-start;margin:14px 0 0;padding:12px 14px;border-radius:12px;background:#FDF3F2;border:1px solid #F3D3CF;font-size:13px;line-height:1.5;color:#5C1F18}
html body .tn .tn-dr__emerg svg{width:18px;height:18px;color:#B42318;flex:none;margin-top:1px}
html body .tn .tn-dr__emerg a{color:#B42318 !important;font-weight:800}
html.tn-lock,html.tn-lock body{overflow:hidden !important}
@media (prefers-reduced-motion:reduce){html body .tn *{transition:none !important}}
html.tn-lock .tn{z-index:2147483600 !important}
html body .tn .tn-dr__note{padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #E2EBF5}
html body .tn .tn-dr__note .tn-note{font-size:13.5px}
html body .tn .tn-dr__note .tn-contact li{font-size:13.5px}
html body .tn .tn-search button{transform:none !important;top:auto !important;right:auto !important;bottom:auto !important;left:auto !important}
html body .tn .announce-bar{padding-top:0 !important;padding-bottom:0 !important;min-height:0 !important}
html body .tn .announce-bar .live-bar-inner{min-height:34px !important;padding-top:6px !important;padding-bottom:6px !important}
/* label fitting (set by JS when the row would overflow) */
html body .tn .tn-nav.tn-fit1 .tn-l{display:none}
html body .tn .tn-nav.tn-fit1 .tn-s{display:inline}
html body .tn .tn-nav.tn-fit2 .tn-top{padding:9px 7px;font-size:13.5px;gap:4px}
html body .tn .tn-nav.tn-fit2 .tn-top .tn-tc{width:13px;height:13px}
html body .tn #liveBar{padding:0 !important;min-height:0 !important}
html body .tn #liveBar .live-bar-inner{padding:4px 16px !important;min-height:0 !important}
html body .tn #liveBar .emerg{padding-top:0 !important;padding-bottom:0 !important}
/* tighter rows so the larger menus fit typical laptop screens */
html body .tn .tn-links li a{padding:4px 8px}
html body .tn .tn-colh{margin-bottom:10px;min-height:50px}
html body .tn .tn-ico{width:44px;height:44px}
html body .tn .tn-ico svg{width:22px;height:22px}
.tn-main__in{min-height:78px}
html body .tn .tn-dr__sub{font-weight:600;font-size:15.5px}
@media (max-height:860px) and (min-width:1100px){.tn-main__in{min-height:70px}html body .tn .tn-search{height:46px}html body .tn .tn-logo{height:42px !important}.tn-mega__in{padding-top:20px}.tn-foot{margin-top:14px}html body .tn .tn-foot a{min-height:54px;padding:9px 16px}html body .tn .tn-links li a{padding:3px 8px;font-size:13.6px}html body .tn .tn-cold{display:none}html body .tn .tn-colh{min-height:0;align-items:center}}
/* keep the CTA strip visible: columns scroll inside the panel on short screens */
html body .tn .tn-mega{overflow:hidden}
html body .tn .tn-mega__in{display:flex;flex-direction:column;max-height:inherit}
html body .tn .tn-cols{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
html body .tn .tn-foot{flex:none}
html body .tn .tn-links li a{padding:3px 8px;line-height:1.28}
.tn-col{padding:0 15px}
html body .tn .tn-cols.tn-more{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 36px),transparent)}
html body .tn .tn-nav.tn-fit3 .tn-top{padding:8px 5px;font-size:13px}
html body .tn .tn-nav.tn-fit3 .tn-top .tn-tc{display:none}
html body .tn .tn-links li a::after{content:"" !important;display:block;flex:none;width:13px;height:13px;background:#9AAABD;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .14s,background .14s}
html body .tn .tn-links li a:hover::after{background:var(--tn-b);transform:translateX(2px)}
@media (max-width:400px){html body .tn .tn-util__l .tn-ua span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}html body .tn .tn-util .a11y-btn{min-width:26px !important;height:26px !important;padding:0 4px !important}.tn-util__r{gap:6px}html body .tn .tn-util .lang-trigger{padding:0 7px !important}}
/* Grace launcher on phones: pure pink pill, always labelled "Chat to Grace"; the whole pill flashes (colour, glow and a gentle pulse), above the booking bar (2026-09-29) */
@media (max-width:767px){
 html body .tbhc-launch{display:inline-flex !important;align-items:center !important;justify-content:center !important;gap:9px !important;width:auto !important;min-width:0 !important;height:52px !important;padding:0 20px 0 15px !important;border-radius:16px !important;left:auto !important;right:14px !important;bottom:calc(84px + env(safe-area-inset-bottom,0px)) !important;background:#E6007E !important;background-image:none !important;color:#fff !important;border:0 !important;font:700 15px/1 Manrope,system-ui,-apple-system,sans-serif !important;letter-spacing:.005em !important;overflow:visible !important;transform-origin:center !important;animation:tbhGraceFlash 1.4s ease-in-out infinite !important}
 html body .tbhc-launch[hidden]{display:none !important}
 html body .tbhc-launch span{position:static !important;width:auto !important;height:auto !important;overflow:visible !important;clip:auto !important;white-space:nowrap !important;color:#fff !important;-webkit-text-fill-color:#fff !important}
 html body .tbhc-launch svg{width:22px !important;height:22px !important;color:#fff !important;filter:none !important}
 html body .tbhc-launch::after,html body .tbhc-launch::before{content:none !important;display:none !important}
 html body .tbhc-teaser{left:auto !important;right:14px !important;max-width:min(300px,calc(100vw - 28px)) !important;bottom:calc(150px + env(safe-area-inset-bottom,0px)) !important}
 html.tn-lock body .tbhc-launch,html.tn-lock body .tbhc-teaser{visibility:hidden !important}
}
@keyframes tbhGraceFlash{0%,100%{background-color:#E6007E;transform:scale(1);box-shadow:0 0 0 0 rgba(230,0,126,.55),0 12px 26px -10px rgba(230,0,126,.6)}50%{background-color:#FF5AAE;transform:scale(1.06);box-shadow:0 0 0 10px rgba(255,90,174,0),0 0 26px 6px rgba(255,90,174,.75),0 12px 26px -10px rgba(230,0,126,.6)}}
@media (prefers-reduced-motion:reduce){html body .tbhc-launch{animation:none !important}}
/* Clean ampersand: the Fraunces "&" is an ornate swash. Serve "&" from a 780-byte Manrope subset (OFL) wherever Fraunces is used. Declared after the Google Fonts faces, so it wins for U+0026 only. */
@font-face{font-family:'Fraunces';src:url('/assets/fonts/tbh-amp.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0026}
@font-face{font-family:'Fraunces';src:url('/assets/fonts/tbh-amp.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap;unicode-range:U+0026}
/* Phones (<=767): compact premium header — logo, search, Book, menu (approved mobile reference, 2026-09-29).
   The utility bar and live bar move out of the header; text-size/contrast/language move into the menu, and the
   "not an emergency service" notice stays in the menu and in the page-foot emergency strip. */
html body .tn .tn-sbtn{display:none}
@media (max-width:767.98px){
 html body .tn .tn-util,html body .tn #liveBar{display:none !important}
 html body .tn .tn-main{background:linear-gradient(180deg,#F1F6FD 0%,#F7FAFE 100%) !important;border-bottom:1px solid #E3ECF6}
 html body .tn .tn-main__in{min-height:76px;gap:10px;padding-top:10px;padding-bottom:10px}
 html body .tn .tn-main__r{display:flex;align-items:center;gap:8px}
 html body .tn .tn-sbtn{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;margin:0;border-radius:50%;border:1px solid #DCE6F2;background:#fff;color:#0B2345;cursor:pointer;box-shadow:0 6px 16px -12px rgba(11,35,69,.5)}
 html body .tn .tn-sbtn svg{width:20px;height:20px}
 html body .tn .tn-book--m{display:inline-flex !important;align-items:center;gap:8px;min-height:44px !important;padding:0 16px !important;border-radius:12px !important;font-size:15px !important}
 html body .tn .tn-book--m svg{width:18px;height:18px;flex:none}
 html body .tn .tn-burger{width:44px !important;height:44px !important;border-radius:50% !important;background:#EAF2FB !important;border:1px solid #DCE6F2 !important}
 html body .tn .tn-dr__util{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding:10px 12px;border-radius:12px;background:#F4F8FD;border:1px solid #E3ECF6}
 html body .tn .tn-dr__util[hidden]{display:none}
 html body .tn .tn-dr__util .a11y-controls{display:flex !important;gap:4px;margin:0 !important;padding:0 !important;background:none !important;border:0 !important}
 html body .tn .tn-dr__util .a11y-btn{min-width:36px !important;height:36px !important;border-radius:8px !important;border:1px solid #D4DEEA !important;background:#fff !important;color:#0B2345 !important;font-size:13px !important}
 html body .tn .tn-dr__util .lang-switch{position:relative !important;margin-left:auto !important}
 html body .tn .tn-dr__util .lang-trigger{height:36px !important;padding:0 10px !important;border-radius:8px !important}
 html body .tn .tn-dr__util .lang-menu{right:0 !important;left:auto !important;max-width:calc(100vw - 48px) !important}
}
@media (max-width:389px){
 html body .tn .tn-main__r{gap:6px}
 html body .tn .tn-sbtn,html body .tn .tn-burger{width:40px !important;height:40px !important}
 html body .tn .tn-book--m{padding:0 12px !important;font-size:14px !important;min-height:40px !important}
}

/* ===== Shared design tokens (site-wide, 2026-09-29) ===== */
:root{--tbh-navy:#0B2345;--tbh-blue:#1E63C9;--tbh-blue-2:#3F7FD6;--tbh-light-blue:#EEF5FD;--tbh-bg:#F5F9FD;--tbh-text:#1F2A3A;--tbh-muted:#56657A;--tbh-border:#DCE6F2;
 --tbh-radius-card:16px;--tbh-radius-btn:12px;--tbh-btn-h:50px;--tbh-shadow-card:0 8px 24px rgba(18,61,100,.06);--tbh-shadow-card-hover:0 14px 32px rgba(18,61,100,.1)}

/* ===== Shared hero CTA system for the .sp-hero page template (≈290 pages) =====
   Row 1: booking + prices. Row 2: WhatsApp / Call / Ask Grace, equal height and radius. */
html body main .sp-hero .sp-actions--main,html body main .sp-hero .sp-actions--contact{display:flex !important;flex-wrap:wrap !important;align-items:stretch !important;gap:10px !important;margin:0 !important;grid-template-columns:none !important}
html body main .sp-hero .sp-actions--main{margin-top:4px !important}
html body main .sp-hero .sp-actions--contact{margin-top:10px !important}
html body main .sp-hero .sp-actions--main .sp-btn,html body main .sp-hero .sp-actions--contact .sp-btn{display:inline-flex !important;align-items:center !important;justify-content:center !important;gap:8px !important;min-height:var(--tbh-btn-h) !important;height:auto !important;margin:0 !important;padding:0 20px !important;border-radius:var(--tbh-radius-btn) !important;font-size:15px !important;font-weight:600 !important;line-height:1.2 !important;white-space:nowrap !important;width:auto !important;transform:none !important;text-decoration:none !important;grid-column:auto !important}
html body main .sp-hero .sp-actions--contact .sp-btn{min-height:46px !important;padding:0 16px !important;font-size:14.5px !important}
html body main .sp-hero .sp-actions--contact .sp-btn svg,html body main .sp-hero .sp-actions--main .sp-btn svg{width:18px !important;height:18px !important;flex:none !important}
html body main .sp-hero .sp-actions--contact .sp-btn--sec{background:#fff !important;color:var(--tbh-navy) !important;border:1.5px solid #C9D8EC !important}
html body main .sp-hero .sp-actions--contact .sp-btn--sec svg{color:var(--tbh-blue) !important}
html body main .sp-hero .sp-actions--contact .sp-btn--sec:hover{border-color:var(--tbh-navy) !important}
html body main .sp-hero .sp-btn--grace[hidden]{display:none !important}
html body main .sp-hero .sp-actions .sp-btn:focus-visible{outline:3px solid var(--tbh-blue-2) !important;outline-offset:3px !important}
@media (max-width:767.98px){
 html body main .sp-hero .sp-actions--main{display:grid !important;grid-template-columns:minmax(0,1fr) !important;width:100% !important}
 html body main .sp-hero .sp-actions--main .sp-btn{width:100% !important;min-height:52px !important;white-space:normal !important;text-align:center !important}
 html body main .sp-hero .sp-actions--contact{display:grid !important;grid-auto-flow:column !important;grid-auto-columns:minmax(0,1fr) !important;width:100% !important;gap:8px !important}
 html body main .sp-hero .sp-actions--contact .sp-btn{width:100% !important;min-height:48px !important;padding:0 8px !important;font-size:13.5px !important;gap:6px !important;white-space:normal !important;text-align:center !important}
}
/* hero facts / notes rhythm for the .sp-hero template */
html body main .sp-hero .sp-actions--contact+:is(.gn-hfacts,.sp-hero__note,.sp-hmeta,dl,ul,p){margin-top:22px !important}
html body main .sp-hero .gn-hfacts{row-gap:12px !important}
html body main .sp-hero .gn-hfacts+.gn-hfacts{margin-top:14px !important}
html body main .sp-hero .sp-hmeta{margin-top:18px !important}
/* consecutive one-line notes read as a tidy list, not as empty boxes */
html body main .sp-hero .sp-hero__note:has(+ .sp-hero__note),html body main .sp-hero .sp-hero__note+.sp-hero__note{display:flex !important;align-items:baseline;gap:10px;margin:0 0 6px !important;padding:0 !important;border:0 !important;border-radius:0 !important;background:none !important;box-shadow:none !important;font-size:14.5px !important;line-height:1.5 !important;color:var(--tbh-muted) !important}
html body main .sp-hero .sp-hero__note:has(+ .sp-hero__note)::before,html body main .sp-hero .sp-hero__note+.sp-hero__note::before{content:"" !important;flex:none;width:6px;height:6px;border-radius:50%;background:var(--tbh-blue-2);transform:translateY(-2px);position:static !important;display:block !important}
/* GP-family heroes (gpx template, 366 pages): four-button rows become a tidy 2×2 group instead of leaving one orphan */
@media (min-width:768px){
 html body main .gpx-actions:has(> :nth-child(4)){display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important;max-width:520px}
 html body main .gpx-actions:has(> :nth-child(4))>*{width:100% !important;justify-content:center !important;margin:0 !important}
}
html body main .gpx-actions>*{min-height:48px}
/* phones: Grace's greeting bubble sat over page content; the flashing button stays */
@media (max-width:767.98px){html body .tbhc-teaser{display:none !important}}
