.tm-map-block{background:#fffdf7;border:1px solid #dce2d5;margin:30px 0;overflow:hidden}.tm-map-block>header{padding:24px 28px}.tm-map-block>header>span{color:#8b681f;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tm-map-block h2{color:#20392a;font-family:Georgia,serif;font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:0;margin:5px 0 8px}.tm-map-block header div{color:#5d695f}.tm-map{height:var(--tm-map-height,560px);max-height:72vh;min-height:320px;width:100%;z-index:1}.tm-map-help{color:#667269;font-size:.8rem;margin:0;padding:12px 28px}.tm-marker-wrap{background:none;border:0}.tm-marker{background:#d49f30;border:3px solid #fff;border-radius:50% 50% 50% 8px;box-shadow:0 2px 7px rgba(24,45,31,.4);display:block;height:30px;position:relative;transform:rotate(-45deg);width:30px}.tm-marker i{background:#fff;border-radius:50%;height:8px;left:8px;position:absolute;top:8px;width:8px}.tm-marker--green{background:#3f7048}.tm-marker--blue{background:#367395}.tm-marker--red{background:#b7463c}.tm-marker--purple{background:#775482}.leaflet-control-attribution{font-size:10px}@media(max-width:600px){.tm-map{height:480px;min-height:360px}.tm-map-block>header{padding:20px}.tm-map-help{padding:10px 20px}}
.tm-map-block .leaflet-popup-content-wrapper { padding: 0; border: 1px solid #dee2e6; border-radius: 6px; background: #fff; color: #212529; box-shadow: 0 8px 24px rgb(0 0 0 / .15); }
.tm-map-block .leaflet-popup-content { margin: 0; font-family: inherit; }
.tm-map-block .leaflet-container a.leaflet-popup-close-button { width: 40px; height: 44px; padding: 8px; color: #495057; font-size: 24px; }
.tm-map-block .tm-description{overflow-wrap:anywhere}.tm-map-block .tm-description img{max-width:100%;height:auto}.tm-map-block .tm-description div{padding:0;max-height:none;overflow:visible}.tm-map-block .tm-description p{margin:0 0 .75rem}.tm-map-block .tm-description p:last-child{margin-bottom:0}.tm-map-block .tm-description ul,.tm-map-block .tm-description ol{padding-left:1.5rem}.tm-map-block .tm-description a{display:inline;margin:0}
.tm-map-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;margin:1.5rem 0}.tm-map-controls label{display:flex;flex-direction:column;gap:.4rem;flex:1 1 15rem;font-weight:600}.tm-map-controls input,.tm-map-controls select,.tm-map-controls button,.tm-focus-place{font:inherit;min-height:44px;max-width:100%;padding:.6rem;border:1px solid #73857b;border-radius:.35rem;background:#fff;color:#174f3f}.tm-location-info{flex-basis:100%;font-size:.9rem;margin:0}.tm-place-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1rem}.tm-place{min-width:0;border:1px solid #ccd9d1;border-radius:.5rem;padding:1rem;overflow-wrap:anywhere;background:#fff;color:#183f34}.tm-place summary{font-weight:700;cursor:pointer;min-height:44px}.tm-place-type{font-size:.9rem}.tm-place[hidden]{display:none}.tm-map-controls :focus-visible,.tm-place :focus-visible{outline:3px solid #bd7900;outline-offset:3px}

/* Attribution links remain identifiable without relying on colour. */
.leaflet-control-attribution a{text-decoration:underline;text-underline-offset:.12em}

/* Public contact card: self-contained icons, no font or remote asset dependency. */
.tm-map-block .tm-contact-popup .leaflet-popup-content-wrapper{padding:0;border:0;border-radius:14px;background:#fff;color:#203b32;box-shadow:0 12px 36px rgb(12 43 31 / .24);overflow:hidden}
.tm-map-block .tm-contact-popup .leaflet-popup-content{margin:0;width:300px!important;max-width:min(calc(100vw - 64px),var(--tm-contact-max-width,300px));max-height:min(440px,65vh);overflow:auto;overscroll-behavior:contain;font-family:inherit;font-size:14px;line-height:1.5}
.tm-map-block .tm-contact-popup .tm-popup{margin:0;text-align:left;overflow-wrap:anywhere}
.tm-map-block .tm-contact-popup .tm-popup__header{padding:18px 50px 18px 18px;background:#174f3f;color:#fff}
.tm-map-block .tm-contact-popup .tm-popup__eyebrow{display:flex;align-items:center;gap:6px;margin-bottom:7px;color:#e7f4ed;font-size:11px;font-weight:700;letter-spacing:.06em;line-height:1.4;text-transform:uppercase}
.tm-map-block .tm-contact-popup .tm-popup__title{padding:0;margin:0;border:0;background:none;color:#fff;font-family:inherit;font-size:20px;font-weight:700;line-height:1.25;letter-spacing:normal}
.tm-contact-icon{display:block;width:19px;height:19px;flex:0 0 19px}
.tm-popup__eyebrow .tm-contact-icon{width:15px;height:15px;flex-basis:15px}
.tm-map-block .tm-contact-popup .tm-popup__body{padding:17px}
.tm-map-block .tm-contact-popup .tm-popup__contacts{margin:0;display:grid;gap:14px}
.tm-map-block .tm-contact-popup .tm-popup__row{position:relative;padding-left:31px;min-width:0}
.tm-popup__row dt{margin:0 0 2px;color:#52695f;font-size:11px;font-weight:700;line-height:1.5;text-transform:uppercase;letter-spacing:.04em}
.tm-popup__row dt .tm-contact-icon{position:absolute;left:0;top:3px;color:#28624b}
.tm-popup__row dd{margin:0;color:#203b32;font-size:14px;font-weight:500;line-height:1.45;overflow-wrap:anywhere}
.tm-map-block .tm-contact-popup .tm-popup__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px}
.tm-map-block .tm-contact-popup .tm-popup__action{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 7px;margin:0;border:1px solid #c8dcd0;border-radius:8px;background:#eff6f1;color:#174f3f;text-decoration:none;font-size:13px;font-weight:700;line-height:1.3;text-align:center;overflow-wrap:anywhere}
.tm-map-block .tm-contact-popup .tm-popup__action:last-child:nth-child(odd){grid-column:1/-1}
.tm-map-block .tm-contact-popup .tm-popup__action:hover{background:#dfeee4;border-color:#618971;color:#123e31;text-decoration:underline;text-underline-offset:3px}
.tm-map-block .tm-contact-popup .tm-popup__legacy{margin-top:16px;padding-top:12px;border-top:1px solid #dce8df}
.tm-map-block .tm-contact-popup .tm-popup__legacy summary{display:list-item;min-height:36px;padding:4px 0;color:#315944;font-size:12px;font-weight:600;cursor:pointer}
.tm-map-block .tm-contact-popup .tm-description{padding-top:10px;color:#354c40;font-size:13px;line-height:1.5}
.tm-map-block .tm-contact-popup .tm-description a{color:#174f3f;text-decoration:underline;font-weight:600}
.tm-map-block .tm-contact-popup .tm-popup__empty{margin:0;color:#52695f}
.tm-map-block .leaflet-container .tm-contact-popup a.leaflet-popup-close-button{top:7px;right:6px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:#fff;font-family:Arial,sans-serif;font-size:29px;line-height:1;text-decoration:none}
.tm-map-block .leaflet-container .tm-contact-popup a.leaflet-popup-close-button:hover{background:#28624b;color:#fff}
.tm-map-block .tm-contact-popup :focus-visible{outline:3px solid #ae6500;outline-offset:3px}
.tm-map-block .leaflet-container .tm-contact-popup a.leaflet-popup-close-button:focus-visible{outline:3px solid #fff;outline-offset:-5px;background:#28624b}
@media(max-width:360px){.tm-map-block .tm-contact-popup .tm-popup__header{padding-left:14px}.tm-map-block .tm-contact-popup .tm-popup__body{padding:14px}.tm-map-block .tm-contact-popup .tm-popup__title{font-size:18px}.tm-map-block .tm-contact-popup .tm-popup__action{gap:5px;font-size:12px}}

.tm-map-request{padding:24px;border:1px solid #d5e1d8;border-radius:12px;background:#f3f7f4;color:#233c33;margin:16px 0}.tm-map-request p{line-height:1.6}.tm-map-request button{min-height:44px;padding:10px 18px;border:0;border-radius:8px;background:#1b4d3e;color:#fff;font:inherit;cursor:pointer}.tm-map[hidden]{display:none!important}

.tm-map-block .leaflet-control-attribution a { text-decoration: underline; text-underline-offset: 2px; }
.tm-map-privacy { margin: 0; padding: 12px 24px; color: #52605a; font-size: .875rem; line-height: 1.6; }
