/* Header refinement: direct links, hover discovery, and independent account actions. */
.tv-navigation{align-self:stretch}.tv-mega{align-self:stretch;display:flex;align-items:center}
.tutsa-v2 .td-card-cover{background-image:none}
.tv-pattern:before,.tv-footer:before,.tv-navy-band:before,.tutsa-v2 .tutsa-pro-head:before{opacity:.035}
.tv-header>.tv-shell{width:min(1440px,calc(100% - 64px))}.tv-header .tv-logo img{width:174px;height:58px}.tv-nav{min-height:108px;gap:38px}.tv-navigation{justify-content:flex-start;gap:23px;min-width:0}.tv-navigation>a,.tv-find-link{font-size:14.5px;font-weight:600;color:#183250;text-decoration:none;white-space:nowrap}.tv-navigation>a:hover,.tv-find-link:hover{color:#1554ec}.tv-auth{margin-left:auto;display:flex;gap:10px;align-items:center;padding-left:20px;flex-shrink:0}.tv-dropdown-trigger{display:flex;align-items:center;gap:3px}.tv-drop-toggle{display:grid;place-items:center;width:25px;height:38px;padding:0;border:0;background:transparent;color:#183250;border-radius:4px;cursor:pointer;box-shadow:none}.tv-drop-toggle:hover,.tv-drop-toggle:focus-visible{background:#edf3ff;color:#1554ec}.tv-drop-toggle svg{display:block;flex-shrink:0}.tv-dropdown{position:relative}.tv-mega{position:static}.tv-mega-panel,.tv-account-panel{display:none}.tv-mega-panel{top:calc(100% - 1px)}.tv-mega-panel:before{content:'';position:absolute;bottom:100%;left:0;right:0;height:32px}.tv-mega.is-open>.tv-mega-panel,.tv-account.is-open>.tv-account-panel{display:block}
.tv-account-panel{position:absolute;top:calc(100% + 14px);right:0;width:306px;padding:25px;background:#fff;border:1px solid #d7e1ef;border-radius:9px;box-shadow:0 15px 40px #10274724;color:#183250;z-index:110}.tv-account-panel:before{content:'';position:absolute;top:-15px;left:0;right:0;height:15px}.tv-account-panel h2{font-size:25px;letter-spacing:-.04em;line-height:1.2;margin:0 0 15px}.tv-account-panel p{font-size:14px;line-height:1.65;color:#526175;margin:0 0 18px}.tutsa-v2 .tv-auth-button{display:block;padding:13px 23px;font-size:14.5px;line-height:1.3;font-weight:700;text-decoration:none;border:1px solid transparent;border-radius:6px;white-space:nowrap;min-height:48px}.tutsa-v2 .tv-auth-ghost{background:#fff;color:#183250;border-color:#bdcbdc}.tutsa-v2 .tv-auth-ghost:hover,.tutsa-v2 .tv-auth-ghost:focus-visible{background:#edf3ff;color:#103dab;border-color:#7995ba}.tutsa-v2 .tv-auth-solid,.tutsa-v2 .tv-auth-solid:visited{background:#1554ec;color:white;border-color:#1554ec}.tutsa-v2 .tv-auth-solid:hover,.tutsa-v2 .tv-auth-solid:focus-visible{background:#103dab;color:white;border-color:#103dab}.tutsa-v2 .tv-account-go{display:block;background:#1554ec;color:white;text-align:center;text-decoration:none;font-size:13px;font-weight:700;padding:13px 14px;border-radius:4px}.tutsa-v2 .tv-account-go:hover,.tutsa-v2 .tv-account-go:focus-visible{color:white;background:#103dab}.tv-account-note{border-top:1px solid #dbe3ed;padding-top:15px;margin-top:18px;font-size:12px;line-height:1.7;color:#526175}.tv-account-more{display:block;font-size:12px;text-align:center;margin-top:15px;text-decoration:none;font-weight:600}.tv-footer-bottom{flex-wrap:wrap;align-items:center}.tv-footer-credit{margin-left:auto;font-size:12px}.tutsa-v2 .tv-footer-credit a{font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.tv-footer-policies{flex-basis:100%;justify-content:flex-end;margin-top:2px}
@media(min-width:1201px){.tv-mega:focus-within:not(.is-dismissed)>.tv-mega-panel,.tv-account:focus-within:not(.is-dismissed)>.tv-account-panel{display:block}.tv-navigation{display:flex!important}.tv-mega-panel{max-height:calc(100vh - 125px)}}
@media(max-width:1200px){.tv-mega{display:block}}
@media(hover:hover) and (min-width:1201px){.tv-mega:hover:not(.is-dismissed)>.tv-mega-panel,.tv-account:hover:not(.is-dismissed)>.tv-account-panel{display:block}.tv-mega:hover .tv-find-link{color:#1554ec}}
@media(min-width:1201px) and (max-width:1380px){.tv-header>.tv-shell{width:calc(100% - 48px)}.tv-nav{gap:27px}.tv-navigation{gap:18px}.tv-auth{padding-left:10px;gap:8px}.tutsa-v2 .tv-auth-button{padding-inline:18px}.tv-header .tv-logo img{width:166px;height:56px}.tv-navigation>a,.tv-find-link{font-size:14px}}
@media(max-width:1200px){.tv-header>.tv-shell{width:calc(100% - 48px)}.tv-nav{min-height:94px;justify-content:space-between}.tv-header .tv-logo img{width:164px;height:55px}.tv-menu{display:flex!important;align-items:center;gap:10px;min-height:46px;padding:10px 14px;border:1px solid #c7d2df;color:#183250;background:white;border-radius:5px}.tv-navigation{display:none;position:absolute;top:100%;left:0;right:0;background:white;border-bottom:1px solid #d9e1ec;padding:18px 24px 25px;box-shadow:0 12px 20px #1027470d}.tv-navigation.is-open{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;max-height:calc(100dvh - 94px);overflow:auto}.tv-navigation>a,.tv-navigation.is-open>a{font-size:16px;padding:14px 0}.tv-dropdown-trigger{justify-content:space-between;min-height:51px}.tv-find-link{font-size:16px;padding-block:14px}.tv-drop-toggle{width:44px;height:44px;border:1px solid #d9e3ef}.tv-drop-toggle svg{width:17px;height:17px}.tv-mega-panel{position:static;transform:none;width:100%;max-height:none;margin:0;border:0;border-top:1px solid #d7e1ef;border-radius:0;box-shadow:none;padding:24px 0 0}.tv-mega-panel:before{display:none}.tv-mega-heading{flex-direction:column;align-items:start}.tv-mega-heading h2{font-size:25px}.tv-mega-columns{grid-template-columns:1fr 1fr;gap:28px}.tv-mega-bottom{margin:0;padding:17px;flex-direction:column}.tv-auth{margin:18px 0 0;padding:20px 0 0;border-top:1px solid #d7e1ef;gap:12px}.tv-account{flex:1}.tutsa-v2 .tv-auth-button{text-align:center;font-size:15px;padding:14px}.tv-account-panel{display:none!important}}
@media(max-width:760px){.tv-header>.tv-shell{width:calc(100% - 40px)}.tv-nav{min-height:86px}.tv-header .tv-logo img{width:158px;height:53px}.tv-navigation.is-open{max-height:calc(100dvh - 86px);padding-inline:20px}.tv-footer-credit{margin-left:0}.tv-footer-bottom{gap:15px 24px}.tv-footer-policies{justify-content:flex-start;margin-top:10px}.tv-mega-columns{gap:28px 18px}.tv-mega-heading h2{font-size:23px}}

/* 0.9.0 --------------------------------------------------------------
   Four footer columns now that Legal sits beside For tutors, the map
   pins, and the directory empty state. */
.tv-footer-top{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:56px}
@media(max-width:1100px){.tv-footer-top{grid-template-columns:1fr 1fr;gap:40px 28px}}
@media(max-width:640px){.tv-footer-top{grid-template-columns:1fr}.tv-footer-top>div:first-child{grid-column:auto}}

/* "Find a tutor" sat a size larger than its siblings, which read as a
   permanently active item. It now matches, and only lights up on the
   directory, the map and tutor profiles. */
.tv-find-link{font-size:14.5px;padding-block:0}
@media(max-width:1200px){.tv-find-link{font-size:16px;padding-block:14px}}
.tv-find-link[aria-current]{color:var(--tv-blue)}

/* Map */
.td-mapbox{height:min(620px,70vh);width:100%;border-radius:14px;overflow:hidden;background:#e8eef7}
.td-mapbox.is-unavailable{display:none}
.td-map-status{display:block;margin-top:12px;font-size:13.5px;color:var(--tv-muted,#526175)}
.td-pin{min-width:170px;font-family:"DM Sans",system-ui,sans-serif}
.td-pin b{display:block;font-size:15px;margin-bottom:4px}
.td-pin-badge{display:inline-block;background:#dff4e2;color:#1d7a35;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;margin-bottom:6px}
.td-pin-where,.td-pin-rate{display:block;font-size:12.5px;color:var(--tv-muted,#526175)}
.td-pin a{display:inline-block;margin-top:8px;font-weight:700;font-size:13px;color:var(--tv-blue,#1554ec)}
.leaflet-container{font:inherit}

/* Directory empty state */
.td-empty h2{margin-top:6px}

/* Tutor supplied media on a public profile */
.tp-video{margin:26px 0}
.tp-video video{width:100%;max-width:640px;border-radius:12px;display:block;background:#000}
.tp-gallery{list-style:none;display:flex;flex-wrap:wrap;gap:12px;margin:14px 0 26px;padding:0}
.tp-gallery img{width:186px;height:140px;object-fit:cover;border-radius:10px;display:block}
.tp-pay{font-size:13px;margin:12px 0 0}
.tp-pay b{font-weight:700}
.tp-pay-note,.tp-intro-msg{font-size:13px;line-height:1.55;margin:10px 0 0;color:var(--tv-muted,#526175)}
.tp-not-accepting{font-size:13px;line-height:1.55;margin:12px 0 0;background:#fff5e6;border-radius:8px;padding:10px 12px}
@media(max-width:560px){.tp-gallery img{width:100%;height:180px}}

/* 0.10.0 --------------------------------------------------------------
   "Find a tutor" was reading as permanently active. The cause was
   specificity, not markup: `.tutsa-v2 a` is 0-1-1 and beat the plain
   `.tv-find-link` at 0-1-0, so the link inherited the global blue while
   its siblings, matched by `.tv-navigation>a`, stayed dark. Scoping to
   the nav lifts it to 0-2-0 and it wins. */
.tv-navigation .tv-find-link{color:#183250}
.tv-navigation .tv-find-link:hover{color:var(--tv-blue)}
.tv-navigation .tv-find-link[aria-current]{color:var(--tv-blue)}
.tv-mega:hover .tv-find-link{color:var(--tv-blue)}

/* ---------------------------------------------- map search */
.td-map-search{margin:14px 0 0}
.td-map-search label{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;
	text-transform:uppercase;color:var(--tv-muted,#526175);margin-bottom:8px}
.td-map-search>div{display:flex;gap:8px;flex-wrap:wrap}
.td-map-search input{flex:1 1 210px;min-width:0;background:#fff;border:1px solid var(--tv-line,#dce1e5);
	border-radius:8px;padding:12px 14px;font:400 15px/1.4 inherit;color:var(--tv-ink,#102747)}
.td-map-search input:focus{outline:none;border-color:var(--tv-blue,#1554ec);
	box-shadow:0 0 0 3px rgba(21,84,236,.16)}
.td-map-search.is-busy{opacity:.65;pointer-events:none}
.td-map-clear{background:none;border:1px solid var(--tv-line,#dce1e5);border-radius:8px;
	padding:12px 16px;font:700 14px/1 inherit;color:var(--tv-muted,#526175);cursor:pointer}
.td-map-clear:hover{background:#eef2f8}

/* ---------------------------------------------- nearby list */
.td-map-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px;
	max-height:250px;overflow-y:auto}
.td-map-list li{border-radius:8px;transition:background .15s}
.td-map-list li.is-active,.td-map-list li:hover{background:#eaf0ff}
.td-map-list a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;text-decoration:none}
.td-map-list b{font-size:14px;color:var(--tv-ink,#102747)}
.td-map-list span{font-size:12.5px;color:var(--tv-muted,#526175)}
.td-map-list small{font-size:12px;color:var(--tv-blue,#1554ec);font-weight:700}

/* ---------------------------------------------- pin card, hover and click */
.leaflet-tooltip.td-pin-tip{background:#fff;border:0;border-radius:12px;padding:0;
	box-shadow:0 8px 28px rgba(16,39,71,.18),0 0 0 1px rgba(16,39,71,.08);
	white-space:normal;width:250px}
.leaflet-tooltip.td-pin-tip::before{display:none}
.leaflet-tooltip.td-pin-here{width:auto;padding:7px 11px;font:700 12.5px/1 inherit;
	color:var(--tv-ink,#102747)}

.td-pin{display:block;padding:13px 15px;font-family:"DM Sans",system-ui,sans-serif;min-width:190px}
.td-pin-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.td-pin-photo{flex:0 0 42px;width:42px;height:42px;border-radius:50%;overflow:hidden;display:block}
.td-pin-photo img{width:42px;height:42px;object-fit:cover;display:block}
.td-pin-initials{display:grid;place-items:center;background:#0c2546;color:#fff;
	font:700 15px/1 "DM Sans",system-ui,sans-serif}
.td-pin b{display:block;font-size:14.5px;color:var(--tv-ink,#102747);line-height:1.25}
.td-pin-badge{display:inline-block;margin-top:3px;background:#dff4e2;color:#1d7a35;
	border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700}
.td-pin-headline{display:block;font-size:12.5px;line-height:1.45;color:var(--tv-ink,#102747);margin-bottom:6px}
.td-pin-where,.td-pin-subjects,.td-pin-rate{display:block;font-size:12px;line-height:1.5;
	color:var(--tv-muted,#526175)}
.td-pin-where b{display:inline;font-size:12px;color:var(--tv-blue,#1554ec)}
.td-pin-rate{margin-top:4px;color:var(--tv-ink,#102747);font-weight:700}
.td-pin-link{display:inline-block;margin-top:10px;font-weight:700;font-size:13px;
	color:var(--tv-blue,#1554ec);text-decoration:none}
.td-pin-link:hover{text-decoration:underline;text-underline-offset:3px}
.leaflet-popup-content{margin:0;width:230px !important}
.leaflet-popup-content-wrapper{border-radius:12px;padding:0}

@media(max-width:900px){
	.td-map-list{max-height:200px}
	.leaflet-tooltip.td-pin-tip{width:215px}
}

/* 0.13 ----------------------------------------------------------------
   Address type ahead, shared by the map search and the signup form. */
.tutsa-ac-wrap{position:relative;flex:1 1 210px;min-width:0}
.tutsa-ac{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;
	list-style:none;margin:0;padding:6px;background:#fff;border-radius:10px;
	box-shadow:0 12px 34px rgba(16,39,71,.16),0 0 0 1px rgba(16,39,71,.09);
	max-height:290px;overflow-y:auto}
.tutsa-ac li{padding:10px 12px;border-radius:7px;cursor:pointer;line-height:1.35}
.tutsa-ac li.is-active,.tutsa-ac li:hover{background:#eaf0ff}
.tutsa-ac b{display:block;font-size:14px;font-weight:600;color:var(--tv-ink,#102747)}
.tutsa-ac span{display:block;font-size:12.5px;color:var(--tv-muted,#526175);margin-top:2px}

/* The signup form stacks, so the field should fill its row. */
.tr-field .tutsa-ac-wrap,.ta-field .tutsa-ac-wrap{flex:1 1 auto;display:block;width:100%}

/* Breathing room between the map card header and the search row. */
.td-map-label{margin-bottom:16px}
.td-map-search{margin:0 0 18px}
.td-map-search label{margin-bottom:9px}

/* 0.14 ----------------------------------------------------------------
   The suggestion list has to clear Leaflet, whose panes and controls sit
   between z-index 400 and 1000. */
.tutsa-ac{z-index:1600}
.td-map-search{position:relative;z-index:1600}

/* Signed in account menu, beside Log out */
.tv-mine .tv-account-panel{min-width:280px}
.tv-mine-panel h2{font-size:13px;letter-spacing:.06em;text-transform:uppercase;opacity:.6;margin:0 0 10px}
.tv-mine-link{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;
	font-weight:600;font-size:14.5px;color:var(--tv-ink,#102747)}
.tv-mine-link small{display:block;font-weight:400;font-size:12.5px;color:var(--tv-muted,#526175);margin-top:2px}
.tv-mine-link:hover{background:#eef3ff}

/* On a phone the header collapses, so the account links are shown
   expanded rather than hidden behind a hover that cannot happen. */
@media(max-width:1200px){
	.tv-auth{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;
		margin-top:14px;padding-top:16px;border-top:1px solid rgba(16,39,71,.1)}
	.tv-auth .tv-auth-button{width:100%;text-align:center;justify-content:center}
	.tv-mine .tv-dropdown-trigger .tv-drop-toggle{display:none}
	/* The mobile rules hide every account panel with display:none!important,
	   which is right for the logged out marketing dropdowns but wrong for a
	   signed in tutor's own menu, so this one is opted back in. */
	.tv-mine .tv-account-panel,.tv-mine-panel{position:static;display:block!important;opacity:1;visibility:visible;
		transform:none;box-shadow:none;border:0;padding:4px 0 0;min-width:0;width:100%;pointer-events:auto}
	.tv-mine-link{padding:11px 10px}
}

/* Address preview map on the signup form */
.tr-placemap{margin:0 0 20px}
.tr-placemap-canvas{height:230px;border-radius:12px;overflow:hidden;background:#e8eef7}
.tr-placemap-note{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--tv-muted,#526175)}

/* Google Maps info windows. Google supplies the white bubble and the
   tail, so the card inside only needs its own spacing removed at the
   edges and a sensible width on a phone. */
.gm-style .td-pin{padding:2px 2px 4px;min-width:180px;max-width:250px}
.gm-style .gm-style-iw-c{padding:12px 14px;border-radius:12px;
	box-shadow:0 14px 34px rgba(12,37,70,.22)}
.gm-style .gm-style-iw-d{overflow:auto!important}
.gm-style .gm-style-iw-chr{height:0;min-height:0}
/* Older Maps builds ignore headerDisabled, so the hover card's close
   button is hidden here as well. The clicked card keeps its own. */
.gm-style .gm-style-iw-c:has(.td-pin:not(.is-popup)) .gm-style-iw-chr{display:none}
.gm-style .gm-style-iw-c:has(.td-pin:not(.is-popup)) button.gm-ui-hover-effect{display:none!important}

/* The address field while its chosen place is being looked up. */
[data-tutsa-place].is-loading{background-image:linear-gradient(90deg,
	rgba(21,84,236,0) 0%,rgba(21,84,236,.14) 50%,rgba(21,84,236,0) 100%);
	background-size:180px 100%;background-repeat:no-repeat;
	animation:tutsa-ac-wait 1s linear infinite}
@keyframes tutsa-ac-wait{from{background-position:-180px 0}to{background-position:120% 0}}
