/* Carnival limousine tuner page. Built by tools/build_limousine.py; shares cards and dialogs with manufacturers.css. */
.lm-groups-band { padding:16px 0; background:#fff; border-bottom:1px solid var(--line); }
.lm-hero { padding-top:64px; }
.lm-hero h1 { font-size:clamp(2rem,3.6vw,3rem); line-height:1.32; letter-spacing:-.045em; color:#fff; }
.lm-hero h1 em { font-style:normal; color:#e5cb92; }
.lm-hero h1+p { margin-top:24px; }
.lm-hero .actions { margin-top:30px; }
.lm-zones { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 28px; margin-top:44px; }
.lm-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
.lm-steps .step { font-weight:700; }
.lm-request { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:56px; align-items:center; }
.lm-request h2+p { margin-top:20px; }
.lm-asks { list-style:none; margin:0; padding:0; counter-reset:ask; border-top:2px solid var(--navy); }
.lm-asks li { counter-increment:ask; display:grid; grid-template-columns:40px minmax(0,1fr); gap:4px 8px; padding:18px 0; border-bottom:1px solid var(--line); }
.lm-asks li::before { content:'Q' counter(ask); grid-row:span 2; font-size:.82rem; font-weight:700; color:var(--gold-dark); padding-top:3px; }
.lm-asks strong { font-size:1rem; line-height:1.6; color:var(--ink); }
.lm-asks span { font-size:.86rem; color:var(--text); }
.lm-firm-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.lm-firm-grid>li { min-width:0; }
.lm-firm { height:100%; padding-bottom:16px; border-color:#dce3de; }
.lm-branch-count { margin-top:auto; padding-top:8px; font-size:.75rem; font-weight:650; color:var(--maker-accent,#24473f); }
.lm-tuners { align-items:start; }
.lm-tuners h2+p { margin-top:20px; }
.lm-tuners .actions { margin-top:28px; }
.lm-tuner-points { grid-template-columns:minmax(0,1fr); gap:0; margin:0; border-top:2px solid var(--navy); }
.lm-tuner-points li { padding:18px 4px; border-bottom:1px solid var(--line); font-size:.98rem; color:var(--ink); }
.lm-next { padding:28px 32px; }
.lm-next h2 { font-size:1.25rem; margin-bottom:10px; }
.lm-next p { font-size:.92rem; }
.lm-aka { margin-top:6px; color:#c9d8cf; font-size:.85rem; }
.lm-sub { margin:18px 0 10px; font-size:1.05rem; color:#17283a; }
.lm-branches { list-style:none; margin:0; padding:0; border-top:1px solid #e1e7e2; }
.lm-branches li { display:grid; grid-template-columns:110px minmax(0,1fr) auto; gap:12px; padding:11px 0; border-bottom:1px solid #e1e7e2; font-size:.86rem; }
.lm-branches strong { color:#17283a; }
.lm-branches span { color:#4e5b67; overflow-wrap:anywhere; }
.lm-branches a { color:#17283a; font-weight:600; white-space:nowrap; text-decoration:none; }
.lm-branches a:hover { text-decoration:underline; }
.lm-ask { margin-top:26px; padding:20px 22px; border-radius:10px; background:var(--maker-tint,#eef4ee); }
.lm-ask h3 { font-size:1rem; margin-bottom:8px; color:#17283a; }
.lm-ask p { font-size:.88rem; }
.lm-ask .md-model-actions { margin-top:16px; }
@media(max-width:1100px) {
  .lm-firm-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:900px) {
  .lm-firm-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lm-request { grid-template-columns:minmax(0,1fr); gap:28px; }
}
@media(max-width:760px) {
  .lm-groups-band { padding:12px 0; }
  .lm-hero { padding-top:44px; }
  .lm-hero h1 { font-size:1.85rem; }
  .lm-zones, .lm-steps { grid-template-columns:minmax(0,1fr); }
  .lm-firm-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
  .lm-next { padding:22px; }
  .lm-branches li { grid-template-columns:minmax(0,1fr); gap:2px; }
}

/* ── 업체 타일(갤러리): 베이스 차량 이미지 + 업체명·대표 튜닝·위치 ── */
.lm-tiles { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.lm-tiles>li { min-width:0; }
.lm-tile { position:relative; display:flex; flex-direction:column; height:100%; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:10px; color:var(--ink); text-decoration:none; transition:border-color .18s, box-shadow .18s, transform .18s; }
.lm-tile:hover, .lm-tile:focus-visible { border-color:var(--gold-dark); box-shadow:0 8px 22px #1023361a; transform:translateY(-2px); }
/* 포스터형 썸네일: 톤별 배경 + 오른쪽 위 차량 + 왼쪽 아래 업체명 */
.lm-tile { --tile-bg:#e2eaf2; --tile-ink:var(--navy); }
.lm-tone-navy { --tile-bg:linear-gradient(150deg,#7189a3 0%,#4f6884 100%); --tile-ink:#fff; }
.lm-tone-warm { --tile-bg:linear-gradient(150deg,#f6efdf 0%,#eadcbc 100%); }
.lm-tone-green { --tile-bg:linear-gradient(150deg,#eaf1ed 0%,#d6e4dc 100%); }
.lm-tone-blue { --tile-bg:linear-gradient(150deg,#ebf1f6 0%,#d5e1ec 100%); }
.lm-tile-media { position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--tile-bg); }
.lm-tile-media img { position:absolute; right:-6%; top:22%; width:78%; height:auto; filter:drop-shadow(0 10px 10px #0000002e); }
.lm-tile-name { position:absolute; left:14px; bottom:12px; right:14px; font-size:1.35rem; font-weight:800; letter-spacing:-.04em; line-height:1.25; color:var(--tile-ink); text-shadow:0 1px 0 #ffffff40; }
.lm-tone-navy .lm-tile-name { text-shadow:0 2px 8px #00000059; }
.lm-tile-place { position:absolute; top:10px; left:10px; display:inline-flex; align-items:center; gap:4px; padding:3px 10px 3px 8px; border-radius:999px; background:#fffffff0; font-size:.74rem; font-weight:700; color:var(--navy); }
.lm-tile-place svg { width:13px; height:13px; }
.lm-tile-arrow { position:absolute; top:10px; right:10px; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#fffffff0; color:var(--gold-dark); font-size:.85rem; }
.lm-tile-body { display:flex; flex-direction:column; gap:6px; padding:16px 16px 18px; flex:1; }

.lm-tile-line { font-size:.84rem; line-height:1.55; color:var(--text); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.lm-tile-kinds { list-style:none; margin:auto 0 0; padding:6px 0 0; display:flex; flex-wrap:wrap; gap:4px; }
.lm-tile-kinds li { padding:1px 8px; border-radius:4px; background:#f1f4f2; font-size:.72rem; color:#4e5b67; }
@media (max-width:1000px) { .lm-tiles { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) { .lm-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .lm-tile-body { padding:12px 12px 14px; } .lm-tile-name { font-size:1.12rem; left:10px; bottom:8px; } }
@media (max-width:420px) { .lm-tiles { grid-template-columns:1fr; } }

/* ── 업체 상세(소개 글) 페이지 ── */
.lm-pf { padding-top:24px; padding-bottom:72px; }
.lm-pf-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:center; margin:20px 0 8px; padding:36px; background:var(--tint); border:1px solid var(--line); border-radius:var(--radius); }
.lm-pf-hero h1 { margin-top:8px; font-size:clamp(1.9rem,3.2vw,2.6rem); color:var(--navy); }
.lm-pf-aka { color:var(--muted); font-size:.9rem; }
.lm-pf-tagline { margin-top:12px; font-size:1.05rem; font-weight:600; color:var(--ink); line-height:1.6; }
.lm-pf-facts { margin:20px 0 0; display:grid; gap:8px; }
.lm-pf-facts>div { display:grid; grid-template-columns:84px minmax(0,1fr); gap:12px; font-size:.9rem; }
.lm-pf-facts dt { font-weight:700; color:var(--navy); }
.lm-pf-facts dd { margin:0; color:var(--text); overflow-wrap:anywhere; }
.lm-pf-hero .actions { margin-top:22px; }
.lm-pf-media { margin:0; padding:24px; background:linear-gradient(160deg,#fff 0%,#e6edf2 100%); border-radius:var(--radius); }
.lm-pf-media img { display:block; width:100%; height:auto; }
.lm-pf-media figcaption { margin-top:10px; font-size:.72rem; color:var(--muted); }
.lm-pf-section { margin-top:56px; }
.lm-pf-section .eyebrow { margin-bottom:6px; }
.lm-pf-section h2 { font-size:1.55rem; color:var(--navy); margin-bottom:16px; }
.lm-pf-section>p { max-width:860px; color:var(--text); }
.lm-pf-section>p+p { margin-top:12px; }
.lm-pf-models { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.lm-pf-model { padding:20px 22px; background:#fff; border:1px solid var(--line); border-left:4px solid var(--gold-dark); border-radius:10px; }
.lm-pf-badge { display:inline-block; padding:1px 9px; border-radius:4px; background:#faf7ef; font-size:.74rem; font-weight:700; color:var(--gold-dark); }
.lm-pf-model h3 { margin:8px 0 8px; font-size:1.08rem; color:var(--navy); }
.lm-pf-model ul { margin:0; padding-left:18px; font-size:.88rem; color:var(--text); line-height:1.65; }
.lm-pf-list { margin:0; border-top:1px solid var(--line); }
.lm-pf-list>div { display:grid; grid-template-columns:220px minmax(0,1fr); gap:20px; padding:14px 0; border-bottom:1px solid var(--line); }
.lm-pf-list dt { font-weight:700; color:var(--navy); }
.lm-pf-list dd { margin:0; color:var(--text); font-size:.92rem; }
.lm-pf-services { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.lm-pf .lm-ask { margin-top:56px; }
.lm-pf .lm-ask h2 { font-size:1.1rem; margin-bottom:8px; color:#17283a; }
.lm-pf-source { margin-top:40px; padding:24px 26px; background:#faf7ef; border:1px solid #eadfc5; border-radius:var(--radius); font-size:.88rem; color:var(--text); }
.lm-pf-source strong { color:var(--gold-dark); margin-right:6px; }
.lm-pf-links { list-style:none; margin:12px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px 16px; }
.lm-pf-links a { color:var(--navy); font-weight:600; }
.lm-pf-source .actions { margin-top:18px; }
@media (max-width:900px) {
  .lm-pf-hero { grid-template-columns:1fr; gap:24px; padding:24px 20px; }
  .lm-pf-models, .lm-pf-services { grid-template-columns:1fr; }
  .lm-pf-list>div { grid-template-columns:1fr; gap:4px; }
}
.lm-pf-hero .md-region { color:var(--gold-dark); font-weight:700; font-size:.85rem; display:inline-flex; align-items:center; gap:4px; }
.lm-pf-hero .md-region svg { width:15px; height:15px; }
