/* Vast Media shell and typography for the DWP page builder. */
:root{--gallery-max-width:1440px}
.page-builder-main{max-width:1200px;margin:0 auto;padding:48px 24px 80px}
.page-builder-main-wide{width:100%;max-width:none;padding-left:clamp(24px,3vw,56px);padding-right:clamp(24px,3vw,56px)}
.page-builder-main h1{font-size:clamp(30px,4vw,48px);font-weight:750;letter-spacing:-.045em;line-height:1.15;margin:8px 0 16px}
.page-builder-main h2{font-weight:700;font-size:22px;margin:0 0 12px}
.admin-card{padding:30px;margin:24px 0;background:var(--surface-strong);border:1px solid var(--line);border-radius:24px;box-shadow:0 12px 36px #19323a06}
.admin-eyebrow{color:var(--brand-deep);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.14em}
.admin-subtle{color:var(--muted);font-size:13px}
.admin-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.admin-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 17px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:13px;font-weight:700;cursor:pointer;text-decoration:none}
.admin-button.primary{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.admin-button:hover{filter:brightness(.96)}
.admin-button.danger{color:#a13b31;border-color:#e6c9c4}
.admin-notice{padding:16px;margin:20px 0;border:1px solid #b9e1e9;background:#eaf7fa;border-radius:12px}
.admin-error{color:#9d372e;background:#fff2f0;border-color:#e8c8c4}
.page-builder-main input:focus-visible,.page-builder-main textarea:focus-visible,.page-builder-main button:focus-visible,.page-builder-main a:focus-visible,.page-builder-main select:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.pb-builder label{font-size:14px}.pb-builder input,.pb-builder select,.pb-builder textarea{background:#fff;color:var(--ink)}
.pb-builder dialog{margin:auto;color:var(--ink)}
.pb-builder [hidden]{display:none!important}
.admin-builder-block{padding:24px 0}.admin-builder-block-heading{margin-bottom:22px}
.pb-public{font-family:ui-sans-serif,system-ui,sans-serif}.pb-prose{font-weight:400}
.pb-feed-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.pb-feed-cards img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px}.pb-feed-cards a{text-decoration:none}
.seo-character-meter { height: 8px; overflow: hidden; border-radius: 999px; background: #e3ece8; }
.seo-character-meter-fill { display: block; width: 0; height: 100%; border-radius: inherit; background: #1f7a70; transition: width .15s ease, background-color .15s ease; }
.seo-character-meter.is-over-limit .seo-character-meter-fill { background: #b13d32; }
.seo-character-meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.seo-character-count { flex: 0 0 auto; color: #1f7a70; font-size: 12px; font-weight: 800; }
.seo-character-meter.is-over-limit + .seo-character-meta .seo-character-count { color: #b13d32; }
.seo-preview-layout { display: grid; grid-template-columns: minmax(280px, .78fr) minmax(380px, 1.22fr); gap: 28px; align-items: start; }
.seo-preview-fields { display: grid; min-width: 0; gap: 20px; }
.seo-preview-card { min-width: 0; overflow: hidden; border: 1px solid #dfe6e3; border-radius: 14px; background: #fff; box-shadow: 0 8px 22px rgba(23,33,31,.08); }
.search-preview { padding: 22px 24px 24px; }
.search-preview-source { display: flex; align-items: center; gap: 12px; }
.search-preview-avatar { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; background: #f0f2f1; }
.search-preview-avatar img { width: 27px; height: 27px; object-fit: contain; }
.search-preview-site { display: grid; min-width: 0; gap: 2px; }
.search-preview-site strong { overflow: hidden; color: #202124; font-size: 14px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.search-preview-site span { color: #5f6368; font-size: 12px; }
.search-preview-menu { margin-left: auto; color: #5f6368; font-size: 24px; line-height: 1; }
.search-preview-title { margin-top: 22px; color: #1a0dab; font-size: 24px; line-height: 1.2; overflow-wrap: anywhere; }
.search-preview-result { display: grid; grid-template-columns: minmax(0, 1fr) 150px; gap: 18px; align-items: start; margin-top: 12px; }
.search-preview-description { margin: 0; color: #4d5156; font-size: 13px; line-height: 1.5; }
.search-preview-image { display: block; width: 150px; aspect-ratio: 1.35; border-radius: 11px; object-fit: cover; }
.social-preview-image { display: block; width: 100%; aspect-ratio: 1.91; object-fit: cover; }
.social-preview-copy { display: grid; gap: 7px; padding: 16px 18px 19px; }
.social-preview-domain { color: #6b7773; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.social-preview-copy strong { color: #26312e; font-size: 18px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.social-preview-copy p { margin: 0; color: #5f6a66; font-size: 13px; line-height: 1.5; }
.admin-builder-badge { padding: 6px 10px; border-radius: 999px; color: #fff; background: #555; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
@media(max-width:850px){.seo-preview-layout{grid-template-columns:1fr}.pb-feed-cards{grid-template-columns:1fr}.page-builder-main{padding:28px 16px}.admin-card{padding:22px}.search-preview-result{grid-template-columns:minmax(0,1fr) 90px}.search-preview-image{width:90px}}
