/* Generator additions on top of the approved mockup styles */
.skip{position:absolute;left:-999px;top:0;background:var(--surface);padding:8px 12px;z-index:50}
.skip:focus{left:8px}
.d-block{display:block}
a.plain{color:inherit;text-decoration:none}
a.plain:hover{text-decoration:underline}
.on-dark{color:var(--on-dark-strong)}
.nav a[aria-current=page]{color:var(--sage-700);text-decoration:underline;text-underline-offset:6px}
.crumbs .here{color:var(--ink)}
.draft{display:inline-block;vertical-align:middle;font:600 .66rem/1 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);background:var(--clay-50);border:1px dashed var(--gap-line);padding:3px 7px;border-radius:999px;margin-left:6px}
summary .draft{margin-left:8px}
button.chip{cursor:pointer;font-family:inherit}
.cmp td .price{white-space:nowrap}
.cmp td.name a{text-decoration:none}
.plist{list-style:none;margin:0;padding:0}
.plist li{padding:5px 0;border-bottom:1px dashed var(--line);line-height:1.45}
.plist li:last-child{border-bottom:0}
.pricebox .foot a{color:inherit}
.card.one{grid-template-columns:1fr}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;align-items:center}
.prov-hero .actions .btn{padding:11px 20px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:10px 18px;margin:0 0 18px;font-size:.94rem}
.kv dt{color:var(--muted)} .kv dd{margin:0;word-break:break-word}
.svc-full{grid-template-columns:1fr;gap:9px}
.osm iframe{width:100%;height:280px;border:1px solid var(--line);border-radius:14px;display:block}
.warn{color:var(--gap-ink)}
.lrows{display:grid;gap:8px;margin-bottom:28px}
.lrow{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px;text-decoration:none;color:var(--ink)}
.lrow:hover{border-color:var(--sage-300)}
.lrow b{display:block;color:var(--sage-900);font-weight:600}
.lrow small{color:var(--muted);font-size:.82rem}
.lmeta{display:flex;align-items:center;gap:10px;flex:none}
.lmeta .pill{margin:0}
.box .lrow{padding:10px 12px;margin-bottom:8px;border-radius:10px}
.box .lrow .lmeta{flex-direction:column;align-items:flex-end;gap:4px}
.box .lrow .lmeta .pill{display:none}
.rh{font-size:1.4rem;margin:30px 0 12px}
.one-col{display:block!important;max-width:820px}
.page-hero{padding-bottom:28px}
.prose{max-width:820px}
.prose h2{font-size:1.65rem;margin-top:1.6em}
.prose h3{margin-top:1.4em}
.prose ul,.prose ol{padding-left:1.3em}
.prose li{margin-bottom:.45em}
.prose table:not(.cmp){width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:.94rem;margin:0 0 1.2em}
.prose table:not(.cmp) th,.prose table:not(.cmp) td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:left}
.prose table:not(.cmp) th{background:var(--cream-2);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.prose table:not(.cmp) td:last-child{font-weight:600;white-space:nowrap}
.tbl-wrap{overflow-x:auto;margin:0 0 1.2em}
.prices-tbl{min-width:640px}
.footnote{font-size:.86rem;color:var(--muted);border-top:1px solid var(--line);margin-top:-.5em;padding-top:.6em}
.footnote hr{display:none}
.footnote-ref a,a.footnote-ref{font-size:.75em;text-decoration:none}
.formbox{display:grid;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-top:20px}
.formbox label{display:grid;gap:6px;font-weight:600;font-size:.92rem}
.formbox input,.formbox textarea{font:inherit;font-weight:400;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--cream)}
.formbox .cb{display:flex;align-items:center;gap:8px;font-weight:500}
.formbox button[disabled]{opacity:.55;cursor:not-allowed;justify-self:start}
@media (max-width:640px){
  .nav.open{display:flex;position:absolute;top:72px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:16px;background:var(--cream);border-bottom:1px solid var(--line);padding:18px 20px}
  .kv{grid-template-columns:1fr;gap:2px}
  .kv dd{margin-bottom:10px}
  .lrow{flex-direction:column;align-items:flex-start}
  .lmeta{flex-wrap:wrap}
  .box .lrow .lmeta{flex-direction:row;align-items:center}
  .filters .sort{margin-left:0;width:100%}
  .town-hero h1{font-size:2.1rem}
}
.osm iframe{background:var(--cream-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='20'%3E%3Ctext x='0' y='14' font-family='sans-serif' font-size='12' fill='%23887'%3ELoading map from OpenStreetMap%E2%80%A6%3C/text%3E%3C/svg%3E") center no-repeat}
.preview-flag{text-transform:none;letter-spacing:0;font-size:.82rem;font-weight:500;color:#fff;background:var(--accent,#A4532F)}
