/*!
 * Local Guide (Google Live) - front end styles.
 * The accent colour is injected as --rt-accent from the plugin settings.
 */
:root{--rt-accent:#0a6b54;}
.rt-guide{margin:2rem 0;}
.rt-head{margin:0 0 1.25rem;}
.rt-h1{margin:0 0 .35rem;line-height:1.2;}
.rt-sub{margin:0 0 .5rem;font-style:italic;color:var(--rt-accent);font-weight:600;}
.rt-intro{margin:0 0 .25rem;max-width:60ch;color:#444;}
.rt-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;align-items:center;}
.rt-fbtn{border:1px solid rgba(0,0,0,.15);background:#fff;color:#1f2937;border-radius:999px;padding:.4rem .9rem;font-size:.9rem;line-height:1.2;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.35rem;}
.rt-fbtn:hover{border-color:var(--rt-accent);}
.rt-fbtn.is-active{background:var(--rt-accent);color:#fff;border-color:var(--rt-accent);}
.rt-cities{margin-top:-.5rem;margin-bottom:1rem;}
.rt-cbtn{border:1px solid rgba(0,0,0,.12);background:#f6f7f8;color:#374151;border-radius:999px;padding:.3rem .8rem;font-size:.8rem;line-height:1.2;cursor:pointer;transition:all .15s ease;}
.rt-cbtn:hover{border-color:var(--rt-accent);}
.rt-cbtn.is-active{background:var(--rt-accent);color:#fff;border-color:var(--rt-accent);}
.rt-de-toggle{font-size:.9rem;display:inline-flex;align-items:center;gap:.35rem;margin-left:.25rem;cursor:pointer;}
.rt-map{width:100%;height:460px;border-radius:14px;overflow:hidden;background:#e9e6df;}
.rt-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem;margin-top:1.25rem;}
.rt-card{position:relative;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:1.1rem 1.2rem;background:#fff;display:flex;flex-direction:column;gap:.5rem;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;}
.rt-card:hover{box-shadow:0 10px 28px rgba(0,0,0,.10);transform:translateY(-2px);}
.rt-card.rt-target{border-color:var(--rt-accent);box-shadow:0 0 0 3px rgba(10,107,84,.18);}
.rt-card.rt-featured{border-color:var(--rt-accent);}
.rt-cat-ico{font-size:1.05rem;}
.rt-card h3{margin:0;font-size:1.12rem;line-height:1.25;display:flex;align-items:center;gap:.4rem;}
.rt-badges{display:flex;flex-wrap:wrap;gap:.35rem;}
.rt-badge{font-size:.72rem;font-weight:600;padding:.12rem .5rem;border-radius:999px;background:rgba(0,0,0,.06);color:#444;}
.rt-badge.rt-permclosed{background:#b42828;color:#fff;}
.rt-badge.rt-top{background:var(--rt-accent);color:#fff;}
.rt-badge.rt-lang{background:rgba(10,107,84,.12);color:var(--rt-accent);}
.rt-rating{display:flex;align-items:center;gap:.4rem;font-size:.92rem;color:#333;}
.rt-stars{color:#f5a623;letter-spacing:1px;}
.rt-count{color:#777;}
.rt-open{font-size:.78rem;font-weight:600;padding:.12rem .5rem;border-radius:999px;display:inline-block;line-height:1.35;}
/* v2.13: "Closed now, opens Mon, 11:00 AM" is longer than "Closed" - allow it to wrap instead of overflowing. */
.rt-open.is-closed{white-space:normal;overflow-wrap:anywhere;}
.rt-iw .rt-open{max-width:100%;}
.rt-open.is-open{background:rgba(10,107,84,.12);color:var(--rt-accent);}
.rt-open.is-closed{background:rgba(180,40,40,.10);color:#b42828;}
.rt-note{font-size:.95rem;color:#444;line-height:1.5;}
.rt-note:before{content:"\201C";color:var(--rt-accent);font-weight:700;}
.rt-note:after{content:"\201D";color:var(--rt-accent);font-weight:700;}
.rt-meta{font-size:.85rem;color:#555;}
.rt-actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding-top:.4rem;}
.rt-btn{font-size:.85rem;font-weight:600;text-decoration:none;color:var(--rt-accent);}
.rt-btn:hover{text-decoration:underline;}
.rt-btn.rt-primary{background:var(--rt-accent);color:#fff;padding:.4rem .8rem;border-radius:8px;border:none;cursor:pointer;}
.rt-share{margin-left:auto;background:none;border:none;color:#888;cursor:pointer;font-size:.8rem;}
.rt-share:hover{color:var(--rt-accent);}
.rt-attrib{margin-top:.75rem;font-size:.72rem;color:#999;}
.rt-iw{max-width:248px;width:auto;font-size:.88rem;line-height:1.35;overflow-wrap:anywhere;word-break:break-word;}
.rt-iw, .rt-iw *{box-sizing:border-box;max-width:100%;}
.rt-tags{display:inline-flex;align-items:center;gap:4px;margin-left:8px;vertical-align:middle;flex-wrap:wrap;}
.rt-tag-ico{height:16px;width:auto;max-width:none;display:inline-block;vertical-align:middle;border-radius:2px;flex:0 0 auto;}
.rt-price-tag{flex:0 0 auto;display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;color:#555;background:#eef0f2;border-radius:6px;padding:1px 6px;line-height:1.6;letter-spacing:.5px;}
.rt-badges:empty{display:none;}
.rt-iw .rt-tags{margin-left:6px;gap:3px;}
.rt-iw .rt-tag-ico{height:15px;}
.rt-seo-tags{margin:.15rem 0 .5rem;color:#555;font-size:.85rem;}
.rt-iw h4{margin:0 0 .2rem;font-size:.95rem;line-height:1.25;}
/* v2.13.3: clamp the note to 2 lines, otherwise the info window scrolls. */
.rt-iw .rt-note{margin:.25rem 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.rt-iw .rt-badges{margin:.15rem 0;}
.rt-iw .rt-open{margin:.1rem 0;}
.rt-iw a{color:var(--rt-accent);font-weight:600;overflow-wrap:anywhere;word-break:break-word;}
.rt-iw-review{margin-top:.45rem;padding-top:.45rem;border-top:1px solid #eee;font-size:.82rem;color:#555;}
.rt-iw-review .rt-author{font-size:.74rem;color:#888;margin-top:.2rem;}
/* Google info window: never scroll horizontally, vertically only when needed */
.gm-style-iw-d{overflow-x:hidden !important;}
/* v2.14.2: Google renders a dedicated row for the close button
   (.gm-style-iw-chr, containing .gm-style-iw-ch). It reserves height and,
   without a Street View image, leaves a large gap above the headline.
   Fix: take the row out of the flow, pin the button to the top right. */
.gm-style .gm-style-iw-chr{
	position:absolute !important; top:4px !important; right:4px !important;
	height:auto !important; min-height:0 !important; padding:0 !important; margin:0 !important;
	z-index:3;
}
.gm-style .gm-style-iw-ch{
	padding:0 !important; min-height:0 !important; height:auto !important; display:block !important;
}
.gm-style .gm-ui-hover-effect{
	top:0 !important; right:0 !important; margin:0 !important;
	width:28px !important; height:28px !important;
	opacity:.7;
}
.gm-style .gm-ui-hover-effect:hover{opacity:1;}
.gm-style .gm-style-iw-c{padding:12px 12px 10px !important;}
.gm-style .gm-style-iw-d{padding-right:0 !important; margin-top:0 !important;}
/* Keep the title clear of the close button */
.rt-iw h4{padding-right:32px;margin-top:0;}
/* v2.16: marker with the title beside it */
/* IMPORTANT: Google anchors the marker at the CENTRE of the content element.
   The label must therefore NOT influence the wrapper width - otherwise the
   pin drifts with the text length and the zoom level.
   Fix: position the label absolutely so the wrapper keeps the pin width. */
.rt-mk{position:relative;display:inline-flex;align-items:center;}
.rt-mk-label{
	display:none;
	position:absolute;
	left:100%;
	top:50%;
	transform:translateY(-50%);
	margin-left:2px;
	max-width:150px;
	padding:2px 6px;
	border-radius:6px;
	background:rgba(255,255,255,.92);
	color:#1a1a1a;
	font-size:12px;
	font-weight:600;
	line-height:1.25;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	box-shadow:0 1px 3px rgba(0,0,0,.25);
	pointer-events:none;
}
#rt-map.rt-show-labels .rt-mk-label{display:block;}
@media(max-width:600px){
	.rt-mk-label{max-width:110px;font-size:11px;}
}
.rt-iw > *:first-child{margin-top:0 !important;}
@media (max-width:600px){
	.rt-iw{max-width:80vw;font-size:.85rem;}
	.gm-style-iw,.gm-style-iw-c{max-width:88vw !important;}
	.gm-style-iw-d{overflow-x:hidden !important;overflow-y:auto !important;max-width:100% !important;}
}
.rt-hidden{display:none !important;}
.rt-empty{margin-top:1rem;color:#777;font-style:italic;}
.rt-pager{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;align-items:center;margin:1.25rem 0 .25rem;}
.rt-pg{min-width:34px;height:34px;border:1px solid rgba(0,0,0,.15);background:#fff;color:#1f2937;border-radius:8px;padding:0 .6rem;cursor:pointer;font-size:.9rem;line-height:1;transition:all .15s ease;}
.rt-pg:hover:not(:disabled){border-color:var(--rt-accent);color:var(--rt-accent);}
.rt-pg.is-active{background:var(--rt-accent);color:#fff;border-color:var(--rt-accent);}
.rt-pg:disabled{opacity:.4;cursor:default;}
.rt-pg-gap{padding:0 .2rem;color:#999;}
.rt-seo{margin-top:1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem;}
.rt-seo-item{border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:1rem 1.1rem;background:#fff;}
.rt-seo-item h3{margin:0 0 .35rem;font-size:1.05rem;}
.rt-seo-item p{margin:0 0 .5rem;color:#444;}
.rt-seo-addr{font-size:.85rem;color:#666;}
@media (max-width:600px){.rt-map{height:340px;}}

/* --- v2.17: filter bar as links, browse block ------------------------- */
/* Astra unterstreicht Links im Inhaltsbereich. Die Filterchips sind Links,
   sollen aber wie Buttons aussehen - deshalb hoehere Spezifitaet. */
.rt-fbtn,.rt-cbtn{text-decoration:none;}
.rt-guide .rt-filters a.rt-fbtn,
.rt-guide .rt-filters a.rt-cbtn,
.rt-guide .rt-filters a.rt-fbtn:hover,
.rt-guide .rt-filters a.rt-cbtn:hover,
.rt-guide .rt-filters a.rt-fbtn:focus,
.rt-guide .rt-filters a.rt-cbtn:focus{text-decoration:none;border-bottom:0;}
.rt-guide .rt-browse-back a{text-decoration:none;}
.rt-fbtn:focus-visible,.rt-cbtn:focus-visible,.rt-browse-list a:focus-visible{outline:2px solid var(--rt-accent);outline-offset:2px;}
a.rt-fbtn:hover,a.rt-cbtn:hover{text-decoration:none;}
a.rt-fbtn.is-active,a.rt-cbtn.is-active{color:#fff;}
.rt-noresult{margin:1.25rem 0;padding:1rem 1.2rem;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fafafa;}
.rt-noresult p{margin:0 0 .5rem;color:#444;}
.rt-browse{margin:2rem 0 0;display:flex;flex-wrap:wrap;gap:2rem;}
.rt-browse-back{flex:0 0 100%;margin:0 0 .5rem;}
.rt-browse-back a{color:var(--rt-accent);font-weight:600;text-decoration:none;}
.rt-browse-col{flex:1 1 220px;min-width:200px;}
.rt-browse-h{font-size:.95rem;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.04em;color:#666;}
.rt-browse-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem .75rem;}
.rt-browse-list li{display:inline-flex;align-items:baseline;gap:.3rem;}
.rt-browse-list a{color:#1f2937;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.18);}
.rt-browse-list a:hover{color:var(--rt-accent);border-color:var(--rt-accent);}
.rt-browse-n{font-size:.75rem;color:#888;}
