/**
 * Premium business detail page, 2026-10-09 redesign (single-premium.php).
 * Layout from .cursor/templates/pages/Premium-Directory Page-Template.html;
 * fonts inherited from the site; text sizes, hero wash, hero wrap and body
 * widths kept from the previous Premium stylesheet; colours from the theme's
 * --wmsf-* tokens (fallbacks are the theme's own values). Mobile-first.
 * Every selector sits under .wms-tpl-premium-listing.
 * Loaded by Nova_Lista_Public::route_template() for every Premium page.
 */

.wms-tpl-premium-listing {
	--pl-gutter: clamp(16px, 4vw, 32px);
	--pl-nav-max: 100%;
	position: relative;
	isolation: isolate;
	overflow-x: clip;
	display: block;
	background: var(--wmsf-bg, #fff);
	color: var(--wmsf-ink, #17202b);
	font-size: 17px;
	line-height: 1.65;
	letter-spacing: -0.005em;
	word-break: keep-all;
	overflow-wrap: break-word;
}
/* Cancel the theme's body top offset so the wrapper + its ::before wash start at
   page top, running up behind the fixed header like redesigned topic pages. */
.wmsf-rd .wms-tpl-premium-listing { margin-top: calc(-1 * var(--wmsf-top-offset, 84px)); }
@media (min-width: 576px)  { .wms-tpl-premium-listing { --pl-nav-max: 540px; } }
@media (min-width: 768px)  { .wms-tpl-premium-listing { --pl-nav-max: 720px; } }
@media (min-width: 992px)  { .wms-tpl-premium-listing { --pl-nav-max: 960px; } }
@media (min-width: 1200px) { .wms-tpl-premium-listing { --pl-nav-max: 1140px; } }
@media (min-width: 1400px) { .wms-tpl-premium-listing { --pl-nav-max: 1320px; } }
/* Hero wash, values from the IRS 가이드 topic page (alpha-category.css --guide), masked out below the hero. */
.wms-tpl-premium-listing::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-premium-listing *,
.wms-tpl-premium-listing *::before,
.wms-tpl-premium-listing *::after { box-sizing: border-box; }
.wms-tpl-premium-listing :is(h1, h2, p) { margin: 0; }
.wms-tpl-premium-listing :is(h1, h2) { text-wrap: balance; letter-spacing: -0.03em; line-height: 1.22; }

.wms-tpl-premium-listing .wms-tpl-premium-listing__wrap { max-width: calc(var(--pl-nav-max) + var(--pl-gutter) * 2); margin-inline: auto; padding-inline: var(--pl-gutter); }

/* ---- Hero ------------------------------------------------------------ */

.wms-tpl-premium-listing .wms-tpl-premium-listing__hero { border-bottom: 1px solid var(--wmsf-line, #e3e7ec); }
.wms-tpl-premium-listing .wms-tpl-premium-listing__hero-inner { padding-top: clamp(96px, 12vh, 120px); padding-bottom: clamp(40px, 5vw, 64px); }
.wms-tpl-premium-listing .wms-tpl-premium-listing__back { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 22px; color: var(--wmsf-ink-3, #647080); font-size: 14.5px; font-weight: 500; text-decoration: none; transition: color .15s ease; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__back:hover { color: var(--wmsf-ink, #17202b); }
.wms-tpl-premium-listing .wms-tpl-premium-listing__hero-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 20px; }

.wms-tpl-premium-listing .wms-tpl-premium-listing__photo { position: relative; display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 120px; height: 144px; overflow: hidden; border-radius: 18px; background: var(--wmsf-line, #e3e7ec); box-shadow: 0 18px 40px -18px rgb(23 32 43 / .35); }
.wms-tpl-premium-listing .wms-tpl-premium-listing__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__photo--placeholder { background: var(--wmsf-bg-2, #f3f5f7); color: var(--wmsf-ink-2, #465262); box-shadow: none; border: 1px solid var(--wmsf-line, #e3e7ec); }
.wms-tpl-premium-listing .wms-tpl-premium-listing__photo--placeholder svg { width: 44%; height: auto; }

.wms-tpl-premium-listing .wms-tpl-premium-listing__identity { flex: 1 1 420px; min-width: 0; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__badge { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: var(--wmsf-r-pill, 999px); background: rgb(29 78 216 / .08); color: var(--wmsf-dir-text, #1d4ed8); font-size: 13.5px; font-weight: 800; line-height: 1.4; letter-spacing: -0.01em; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__title { margin-top: 14px; color: var(--wmsf-ink, #17202b); font-size: clamp(30px, 5.4vw, 50px); font-weight: 800; letter-spacing: -0.045em; line-height: 1.1; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__subtitle { margin-top: 6px; color: var(--wmsf-ink-2, #465262); font-size: 18px; }

.wms-tpl-premium-listing .wms-tpl-premium-listing__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__chips li { margin: 0; padding: 6px 12px; border: 1px solid var(--wmsf-line, #e3e7ec); border-radius: 8px; background: var(--wmsf-bg, #fff); color: var(--wmsf-ink-2, #465262); font-size: 13px; font-weight: 700; line-height: 1.4; }

.wms-tpl-premium-listing .wms-tpl-premium-listing__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 24px; }

/* ---- Buttons (hero actions + contact card) --------------------------- */

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

.wms-tpl-premium-listing .wms-tpl-premium-listing__share-status:not(:empty) { padding: 6px 12px; border-radius: var(--wmsf-r-pill, 999px); background: var(--wmsf-ink, #17202b); color: #fff; font-size: 13px; font-weight: 600; line-height: 1.4; }

/* ---- Layout: 소개 + sidebar ------------------------------------------ */

/* Body container = the theme's topic-page body (.wmsf-wrap.wmsf-alpha-category__body). */
.wms-tpl-premium-listing .wms-tpl-premium-listing__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 3.5vw, 48px); align-items: start; max-width: var(--wmsf-page, 1160px); padding-inline: var(--wmsf-gutter, clamp(16px, 4vw, 32px)); padding-top: 32px; padding-bottom: clamp(56px, 7.5vw, 96px); }

/* 소개 = eyebrow + the editor body. */
.wms-tpl-premium-listing .wms-tpl-premium-listing__about { min-width: 0; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__eyebrow { color: var(--wmsf-accent-text, #0a6157); font-size: 13px; font-weight: 700; line-height: 1.4; letter-spacing: .04em; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content { margin-top: 10px; color: var(--wmsf-ink-2, #465262); font-size: 16px; line-height: 1.72; text-wrap: pretty; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content :is(p, ul, ol, table, figure) { margin: 0 0 1em; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content > :last-child { margin-bottom: 0; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content :is(h2, h3, h4) { margin: 1.5em 0 .5em; color: var(--wmsf-ink, #17202b); font-weight: 800; }
/* Editor convention: the first top-level H2 is the 소개 headline, the first top-level blockquote its pull quote. */
.wms-tpl-premium-listing .wms-tpl-premium-listing__content > h2:first-of-type { margin: 0 0 20px; font-size: 22px; line-height: 1.3; letter-spacing: -0.02em; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content > blockquote:first-of-type { margin: 0 0 24px; padding: 16px 18px; border: 0; border-radius: 16px; background: var(--wmsf-bg-2, #f3f5f7); color: var(--wmsf-ink, #17202b); font-size: 17px; font-style: normal; font-weight: 600; line-height: 1.55; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content > blockquote:first-of-type > :last-child { margin-bottom: 0; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content img { display: block; max-width: 200px; height: auto; margin-bottom: 1em; border-radius: 14px; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content a { color: var(--wmsf-dir-text, #1d4ed8); text-decoration: none; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content a:hover { text-decoration: underline; }
/* Legacy profile table in older 소개 bodies. */
.wms-tpl-premium-listing .wms-tpl-premium-listing__content table { width: 100%; border-collapse: collapse; overflow: hidden; border-radius: 14px; background: var(--wmsf-bg, #fff); font-size: 15px; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content :is(th, td) { padding: 11px 14px; border-bottom: 1px solid var(--wmsf-line, #e3e7ec); text-align: left; vertical-align: top; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content tr:last-child :is(th, td) { border-bottom: 0; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content th { width: 34%; color: var(--wmsf-ink, #17202b); font-weight: 700; }
/* Editor-authored CTA (a.nlc-btn.nlc-dm-cta) = the primary button. */
.wms-tpl-premium-listing .wms-tpl-premium-listing__content a.nlc-btn.nlc-dm-cta { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; 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; 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-premium-listing .wms-tpl-premium-listing__content a.nlc-btn.nlc-dm-cta:active { transform: scale(.97); }
.wms-tpl-premium-listing .wms-tpl-premium-listing__content a.nlc-btn.nlc-dm-cta i { font-size: 13.5px; line-height: 1; }

/* Sidebar: contact card + map card. */
.wms-tpl-premium-listing .wms-tpl-premium-listing__sidebar { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__card { border: 1px solid var(--wmsf-line, #e3e7ec); border-radius: 20px; background: var(--wmsf-bg, #fff); }
.wms-tpl-premium-listing .wms-tpl-premium-listing__contact { padding: 24px; box-shadow: 0 20px 40px -28px rgb(23 32 43 / .25); }
.wms-tpl-premium-listing .wms-tpl-premium-listing__contact-title { color: var(--wmsf-ink, #17202b); font-size: 18px; font-weight: 800; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__contact-sub { margin: 4px 0 16px; color: var(--wmsf-ink-3, #647080); font-size: 13.5px; line-height: 1.55; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__contact .wms-tpl-premium-listing__btn + .wms-tpl-premium-listing__btn { margin-top: 8px; }

.wms-tpl-premium-listing .wms-tpl-premium-listing__map { overflow: hidden; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__map-frame { height: 180px; background: repeating-linear-gradient(45deg, var(--wmsf-bg-2, #f3f5f7), var(--wmsf-bg-2, #f3f5f7) 12px, var(--wmsf-bg-3, #e9edf1) 12px, var(--wmsf-bg-3, #e9edf1) 24px); }
.wms-tpl-premium-listing .wms-tpl-premium-listing__map-frame .nova-lista-directory__map-preview { width: 100%; height: 100%; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__map-frame .nova-lista-directory__map-frame { display: block; width: 100%; height: 100%; border: 0; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__map-info { padding: 16px 20px; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__map-info address { display: block; color: var(--wmsf-ink-3, #647080); font-size: 14.5px; font-style: normal; line-height: 1.55; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__map-info address::first-line { color: var(--wmsf-ink, #17202b); font-weight: 700; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__directions { display: inline-block; margin-top: 6px; color: var(--wmsf-dir-text, #1d4ed8); font-size: 14px; font-weight: 600; text-decoration: none; }
.wms-tpl-premium-listing .wms-tpl-premium-listing__directions:hover { text-decoration: underline; }

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

@media (hover: hover) and (pointer: fine) {
	.wms-tpl-premium-listing .wms-tpl-premium-listing__btn--primary:hover,
	.wms-tpl-premium-listing .wms-tpl-premium-listing__content a.nlc-btn.nlc-dm-cta:hover { border-color: var(--wmsf-dir-accent-hover, #1d4ed8); 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); }
	.wms-tpl-premium-listing .wms-tpl-premium-listing__btn--secondary:hover { border-color: var(--wmsf-ink, #17202b); color: var(--wmsf-ink, #17202b); }
}
@media (min-width: 641px) {
	.wms-tpl-premium-listing .wms-tpl-premium-listing__hero-row { gap: 36px; }
	.wms-tpl-premium-listing .wms-tpl-premium-listing__photo { width: 200px; height: 240px; border-radius: 24px; }
	.wms-tpl-premium-listing .wms-tpl-premium-listing__content > blockquote:first-of-type { padding: 20px 24px; font-size: 18px; }
}
@media (min-width: 768px) {
	.wms-tpl-premium-listing .wms-tpl-premium-listing__btn,
	.wms-tpl-premium-listing .wms-tpl-premium-listing__content a.nlc-btn.nlc-dm-cta { min-height: 44px; padding-inline: 18px; font-size: 15px; }
	.wms-tpl-premium-listing .wms-tpl-premium-listing__btn svg { width: 18px; height: 18px; }
	.wms-tpl-premium-listing .wms-tpl-premium-listing__btn--icon { width: 44px; padding: 0; }
	.wms-tpl-premium-listing .wms-tpl-premium-listing__content a.nlc-btn.nlc-dm-cta i { font-size: 15px; }
}
@media (min-width: 861px) {
	.wms-tpl-premium-listing .wms-tpl-premium-listing__back { margin-bottom: 30px; }
}
@media (min-width: 992px) {
	.wms-tpl-premium-listing .wms-tpl-premium-listing__layout { grid-template-columns: minmax(0, 1fr) 280px; padding-top: 46px; }
	.wms-tpl-premium-listing .wms-tpl-premium-listing__sidebar { grid-column: 2; position: sticky; top: 96px; }
}
@media (min-width: 1200px) {
	.wms-tpl-premium-listing .wms-tpl-premium-listing__layout { grid-template-columns: minmax(0, 1fr) 320px; }
}
@media (prefers-reduced-motion: reduce) {
	.wms-tpl-premium-listing .wms-tpl-premium-listing__back,
	.wms-tpl-premium-listing .wms-tpl-premium-listing__btn,
	.wms-tpl-premium-listing .wms-tpl-premium-listing__content a.nlc-btn.nlc-dm-cta { transition: none; }
}
