/**
 * Plus business detail page, 2026-10 redesign (single-plus.php).
 * Layout from .cursor/templates/pages/Plus-Directory-Page-Template.html;
 * fonts, body size and line-height inherited from the site; title, subtitle,
 * tag/label and call-button text copied from nova-lista-premium-listing.css;
 * colours from the theme's --wmsf-* tokens (fallbacks are the theme's own
 * values). Mobile-first. Every selector sits under .wms-tpl-plus-listing.
 * Loaded only when Nova_Lista_Public::route_template() serves a Plus page.
 */

.wms-tpl-plus-listing {
	display: block;
	padding-bottom: 80px;
	background: var(--wmsf-bg, #fff);
	color: var(--wmsf-ink, #17202b);
	word-break: keep-all;
	overflow-wrap: break-word;
}
/* Cancel the theme's body top offset so the header band runs up behind the fixed header, as on the Premium page. */
.wmsf-rd .wms-tpl-plus-listing { margin-top: calc(-1 * var(--wmsf-top-offset, 84px)); }
.wms-tpl-plus-listing *,
.wms-tpl-plus-listing *::before,
.wms-tpl-plus-listing *::after { box-sizing: border-box; }
.wms-tpl-plus-listing :is(h1, h2, p) { margin: 0; }

/* ---- Header band ----------------------------------------------------- */

.wms-tpl-plus-listing .wms-tpl-plus-listing__header { position: relative; isolation: isolate; overflow: hidden; background: var(--wmsf-bg, #fff); border-bottom: 1px solid var(--wmsf-line, #e3e7ec); }
/* Hero wash, same values as .wms-tpl-premium-listing::before, clipped at the header's bottom edge. */
.wms-tpl-plus-listing .wms-tpl-plus-listing__header::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	z-index: -1;
	height: 780px;
	background:
		radial-gradient(42% 55% at 90% 10%, color-mix(in srgb, #1d4ed8 15%, transparent), transparent 70%),
		radial-gradient(34% 48% at 4% 28%, color-mix(in srgb, var(--wmsf-accent, #0b6e64) 10%, transparent), transparent 70%);
	-webkit-mask: linear-gradient(#000 40%, transparent);
	mask: linear-gradient(#000 40%, transparent);
	pointer-events: none;
}
.wms-tpl-plus-listing .wms-tpl-plus-listing__header-inner { max-width: 880px; margin: 0 auto; padding: 20px 16px 88px; }
.wmsf-rd .wms-tpl-plus-listing .wms-tpl-plus-listing__header-inner { padding-top: calc(var(--wmsf-top-offset, 84px) + 20px); }
.wms-tpl-plus-listing .wms-tpl-plus-listing__back { color: var(--wmsf-ink-3, #647080); font-size: 14.5px; font-weight: 500; text-decoration: none; transition: color .15s ease; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__back:hover { color: var(--wmsf-ink, #17202b); }

.wms-tpl-plus-listing .wms-tpl-plus-listing__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__tag { padding: 4px 10px; border: 1px solid var(--wmsf-line-2, #cfd6de); border-radius: 6px; background: var(--wmsf-bg, #fff); color: var(--wmsf-ink-2, #465262); font-size: 13px; font-weight: 700; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__tag--category { border-color: transparent; background: var(--wmsf-dir-tint, rgb(37 99 235 / .12)); color: var(--wmsf-dir-text, #1d4ed8); letter-spacing: 0; text-transform: none; }

.wms-tpl-plus-listing .wms-tpl-plus-listing__title { margin: 14px 0 4px; color: var(--wmsf-ink, #17202b); font-size: clamp(30px, 5.4vw, 50px); font-weight: 800; letter-spacing: -0.045em; line-height: 1.1; text-wrap: balance; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__subtitle { color: var(--wmsf-ink-2, #465262); font-size: 18px; }

/* ---- Card ------------------------------------------------------------ */

.wms-tpl-plus-listing .wms-tpl-plus-listing__main { position: relative; max-width: 880px; margin: -64px auto 0; padding: 0 16px; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__card { overflow: hidden; border: 1px solid var(--wmsf-line, #e3e7ec); border-radius: 20px; background: var(--wmsf-bg, #fff); box-shadow: 0 24px 48px -32px rgb(23 32 43 / .25); }
.wms-tpl-plus-listing .wms-tpl-plus-listing__row { display: flex; flex-wrap: wrap; }

.wms-tpl-plus-listing .wms-tpl-plus-listing__label { color: var(--wmsf-ink-3, #647080); font-size: 13px; font-weight: 700; line-height: 1.4; letter-spacing: .04em; }

/* 소개 = the editor body, else the short description. */
.wms-tpl-plus-listing .wms-tpl-plus-listing__intro { flex: 999 1 380px; min-width: 0; padding: 24px; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__intro .wms-tpl-plus-listing__label { color: var(--wmsf-accent-text, #0a6157); }
.wms-tpl-plus-listing .wms-tpl-plus-listing__intro-text { max-width: 60ch; margin-top: 10px; color: var(--wmsf-ink-2, #465262); text-wrap: pretty; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__intro-text :is(p, ul, ol, table, figure) { margin: 0 0 1em; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__intro-text > :last-child { margin-bottom: 0; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__intro-text img { max-width: 100%; height: auto; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__intro-text a { color: var(--wmsf-dir-text, #1d4ed8); }

/* Contact aside. Top and left borders sit 1px outside the box: the card clips
   whichever one lies on its own edge, so stacked shows the top rule and side
   by side shows the left one, at any width the row happens to wrap. */
.wms-tpl-plus-listing .wms-tpl-plus-listing__contact { display: flex; flex: 1 1 260px; flex-direction: column; gap: 20px; min-width: 0; margin: -1px 0 0 -1px; padding: 24px; border-top: 1px solid var(--wmsf-line, #e3e7ec); border-left: 1px solid var(--wmsf-line, #e3e7ec); background: var(--wmsf-bg-2, #f3f5f7); }

.wms-tpl-plus-listing .wms-tpl-plus-listing__call { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; margin-top: 8px; padding: 0 14px; border: 0; border-radius: var(--wmsf-r-pill, 999px); background: var(--wmsf-dir-accent, #2563eb); color: #fff; font-size: 13.5px; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; text-decoration: none; white-space: nowrap; transition: background-color .25s ease, box-shadow .25s ease, transform .15s var(--wmsf-ease-out, cubic-bezier(0.23, 1, 0.32, 1)); }
.wms-tpl-plus-listing .wms-tpl-plus-listing__call svg { flex: none; width: 16px; height: 16px; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__call:active { transform: scale(.97); }
.wms-tpl-plus-listing .wms-tpl-plus-listing__call:focus-visible { outline: 3px solid var(--wmsf-dir-tint, rgb(37 99 235 / .12)); outline-offset: 2px; }

.wms-tpl-plus-listing .wms-tpl-plus-listing__address { margin: 4px 0 0; color: var(--wmsf-ink-2, #465262); font-style: normal; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__directions { display: inline-block; margin-top: 6px; color: var(--wmsf-dir-text, #1d4ed8); font-size: 15px; font-weight: 600; text-decoration: none; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__directions:hover { text-decoration: underline; }
.wms-tpl-plus-listing .wms-tpl-plus-listing__value { display: inline-block; margin-top: 4px; color: var(--wmsf-ink-2, #465262); overflow-wrap: anywhere; }
.wms-tpl-plus-listing a.wms-tpl-plus-listing__value { color: var(--wmsf-dir-text, #1d4ed8); text-decoration: none; }
.wms-tpl-plus-listing a.wms-tpl-plus-listing__value:hover { text-decoration: underline; }

/* ---- Responsive ------------------------------------------------------ */

@media (hover: hover) and (pointer: fine) {
	.wms-tpl-plus-listing .wms-tpl-plus-listing__call:hover { background: var(--wmsf-dir-accent-hover, #1d4ed8); color: #fff; text-decoration: none; box-shadow: 0 8px 24px -8px color-mix(in srgb, var(--wmsf-dir-accent, #2563eb) 70%, transparent); }
}
@media (min-width: 641px) {
	.wms-tpl-plus-listing .wms-tpl-plus-listing__header-inner { padding: 28px 24px 96px; }
	.wmsf-rd .wms-tpl-plus-listing .wms-tpl-plus-listing__header-inner { padding-top: calc(var(--wmsf-top-offset, 84px) + 28px); }
	.wms-tpl-plus-listing .wms-tpl-plus-listing__main { padding: 0 24px; }
	.wms-tpl-plus-listing .wms-tpl-plus-listing__intro,
	.wms-tpl-plus-listing .wms-tpl-plus-listing__contact { padding: 32px; }
	.wms-tpl-plus-listing .wms-tpl-plus-listing__map { height: 320px; }
}
@media (min-width: 768px) {
	.wms-tpl-plus-listing .wms-tpl-plus-listing__call { min-height: 44px; padding-inline: 18px; font-size: 15px; }
	.wms-tpl-plus-listing .wms-tpl-plus-listing__call svg { width: 18px; height: 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.wms-tpl-plus-listing .wms-tpl-plus-listing__back,
	.wms-tpl-plus-listing .wms-tpl-plus-listing__call { transition: none; }
}
