/*
Theme Name: CDMS Consultancy
Theme URI: https://www.cdms.com.my
Author: CDMS Consultancy Sdn. Bhd.
Description: Custom block theme for CDMS Consultancy Sdn. Bhd. Muted, minimal and editable in the WordPress editor.
Version: 1.1.3
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: cdms
*/

:root {
  --stone: #F2F1EE; --linen: #E8E6E1; --hair: #D3D0C9; --hair2: #C9C5BD;
  --graphite: #5C5A55; --charcoal: #1C1F22; --bronze: #76593A; --bronze-soft: #B9A78C;
  --on-dark: #ECE9E3; --on-dark-2: #A8A49C;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: Inter, 'Helvetica Neue', Arial, sans-serif;
  --wrap: 1240px; --gutter: clamp(20px, 3vw, 40px);
  --pad-y: clamp(80px, 10vw, 140px);
}
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--stone); color: var(--charcoal); font-family: var(--sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: var(--charcoal); }
a:hover { color: var(--graphite); }
img { max-width: 100%; height: auto; display: block; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
:where(.wp-block-group, .wp-block-columns) { margin-block: 0; }
.is-layout-flow > * + * { margin-block-start: 0; }

/* ---------- shared ---------- */
.cdms-wrap { max-width: var(--wrap); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); box-sizing: border-box; }
.cdms-section { padding-top: var(--pad-y); padding-bottom: var(--pad-y); }
.cdms-label { margin: 0 0 16px !important; font-size: 12px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--bronze); }
.cdms-dark .cdms-label { color: var(--bronze-soft); }
.cdms-h2 { margin: 0 0 56px; font-family: var(--serif); font-weight: 400; font-size: clamp(34px, 4.5vw, 52px); line-height: 1.1; max-width: 760px; }
.cdms-lead { color: var(--graphite); max-width: 600px; }
.cdms-linen { background: var(--linen); }
.cdms-dark { background: var(--charcoal); color: var(--on-dark); }
.cdms-dark a { color: var(--on-dark); }
.cdms-hair-top { border-top: 1px solid var(--hair); }
.cdms-hair-y { border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }

/* ---------- buttons ---------- */
.wp-block-button__link, .cdms-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 28px; border-radius: 0; background: var(--charcoal); color: var(--stone) !important; font-family: var(--sans); font-size: 14px; letter-spacing: 0.04em; text-decoration: none; border: 1px solid var(--charcoal); box-sizing: border-box; cursor: pointer; }
.wp-block-button__link:hover, .cdms-btn:hover { background: #33373b; }
.is-style-outline .wp-block-button__link { background: transparent; color: var(--charcoal) !important; }
.cdms-textlink { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; text-decoration: none; border-bottom: 1px solid var(--charcoal); }

/* ---------- announcement + header ---------- */
.cdms-ann { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px; min-height: 44px; padding: 10px 24px; box-sizing: border-box; background: var(--charcoal); color: var(--on-dark) !important; text-decoration: none; font-size: 13px; }
.cdms-ann b { font-weight: 400; font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bronze-soft); }
.cdms-ann u { text-decoration: none; border-bottom: 1px solid var(--on-dark); }
.cdms-header { border-bottom: 1px solid var(--hair); background: var(--stone); position: relative; z-index: 20; }
.cdms-header .cdms-wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 22px; padding-bottom: 22px; }
.cdms-logo { display: flex; flex-direction: column; text-decoration: none; line-height: 1; color: var(--charcoal); }
.cdms-logo span:first-child { font-family: var(--serif); font-size: 30px; font-weight: 500; letter-spacing: 0.18em; }
.cdms-logo span:last-child { font-size: 9px; letter-spacing: 0.32em; margin-top: 6px; color: var(--graphite); }
.cdms-nav { display: flex; align-items: center; gap: 32px; font-size: 14px; }
.cdms-nav a { text-decoration: none; }
.cdms-nav .cdms-nav-cta { border: 1px solid var(--charcoal); padding: 12px 20px; }
.cdms-mnav { display: none; }
.cdms-mnav summary { list-style: none; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.cdms-mnav summary::-webkit-details-marker { display: none; }
.cdms-mnav nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--stone); border-bottom: 1px solid var(--hair); padding: 8px 20px 28px; display: flex; flex-direction: column; }
.cdms-mnav nav a { text-decoration: none; padding: 14px 0; border-bottom: 1px solid var(--hair); font-family: var(--serif); font-size: 26px; }
.cdms-mnav nav a.cdms-btn { margin-top: 24px; justify-content: center; font-family: var(--sans); font-size: 14px; border-bottom: 0; }
@media (max-width: 900px) { .cdms-nav { display: none; } .cdms-mnav { display: block; } .cdms-logo span:first-child { font-size: 26px; } }

/* ---------- hero ---------- */
.cdms-hero { padding-top: clamp(56px, 8vw, 120px); padding-bottom: 80px; }
.cdms-hero .wp-block-columns { gap: 64px; align-items: flex-end !important; }
.cdms-hero h1 { margin: 0; font-size: clamp(44px, 6vw, 76px); line-height: 1.02; letter-spacing: -0.01em; }
.cdms-hero .cdms-sub { margin: 32px 0 0; max-width: 520px; font-size: 18px; color: var(--graphite); }
.cdms-hero .wp-block-buttons { margin-top: 44px; gap: 20px; }
.cdms-hero figure { margin: 0; }
.cdms-hero figure img { width: 100%; height: clamp(320px, 40vw, 560px); object-fit: cover; object-position: 55% 50%; }

/* ---------- credentials ---------- */
.cdms-creds .wp-block-columns { padding-top: 40px; padding-bottom: 40px; gap: 32px; }
.cdms-creds .cdms-fig { margin: 0; font-family: var(--serif); font-size: clamp(28px, 3.2vw, 40px); line-height: 1; }
.cdms-creds .cdms-figtxt { margin: 10px 0 0; font-size: 13px; color: var(--graphite); }

/* ---------- our role ---------- */
.cdms-role .wp-block-columns { gap: 64px; }
.cdms-role .cdms-big { margin: 0; font-family: var(--serif); font-size: clamp(28px, 3.6vw, 44px); line-height: 1.2; }
.cdms-role .cdms-lead { margin: 32px 0 0; }

/* ---------- why CDM 2024 ---------- */
.cdms-stats { gap: 40px; }
.cdms-stats .wp-block-column { border-top: 1px solid var(--charcoal); padding-top: 24px; }
.cdms-stats .cdms-fig { margin: 0; font-family: var(--serif); font-size: clamp(32px, 3.6vw, 48px); line-height: 1; }
.cdms-stats .cdms-figtxt { margin: 16px 0 0; font-size: 15px; color: var(--graphite); }
.cdms-duty { margin-top: 96px !important; gap: 24px; }
.cdms-duty .wp-block-column { background: var(--linen); padding: 0 0 32px; }
.cdms-duty figure { margin: 0 0 24px; }
.cdms-duty figure img { width: 100%; height: 180px; object-fit: cover; }
.cdms-duty .wp-block-column > *:not(figure) { margin-left: 28px; margin-right: 28px; }
.cdms-duty .cdms-if { margin-top: 0; margin-bottom: 10px; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bronze); }
.cdms-duty h3 { margin-top: 0; margin-bottom: 12px; font-size: 34px; font-weight: 500; line-height: 1; }
.cdms-duty .cdms-must { margin-top: 0; font-size: 15px; color: var(--graphite); }
.cdms-duty .cdms-help { margin-top: 14px; margin-bottom: 0; padding-top: 14px; border-top: 1px solid var(--hair2); font-size: 15px; }
.cdms-note { margin: 32px 0 0; font-size: 12px; color: var(--graphite); }

/* ---------- services ---------- */
.cdms-head-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 56px; }
.cdms-head-row .cdms-h2 { margin: 0; }
.cdms-services-body { gap: 56px; }
.cdms-services-body figure { margin: 0; height: 100%; }
.cdms-services-body figure img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.cdms-svc { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); border-top: 1px solid var(--hair2); }
.cdms-svc > .wp-block-group { padding: 36px 32px 40px 0; border-bottom: 1px solid var(--hair2); }
.cdms-svc .cdms-num { margin: 0 0 18px; font-size: 13px; color: var(--bronze); }
.cdms-svc h3 { margin: 0 0 10px; font-size: 26px; font-weight: 500; line-height: 1.2; }
.cdms-svc p:last-child { margin: 0; font-size: 15px; color: var(--graphite); }

/* ---------- sectors ---------- */
.cdms-sectors { border-top: 1px solid var(--hair); }
.cdms-sector { display: flex; flex-wrap: wrap; align-items: center; gap: 32px; padding: 28px 0; border-bottom: 1px solid var(--hair); }
.cdms-sector .cdms-num { flex: 0 0 48px; margin: 0; font-size: 13px; color: var(--bronze); }
.cdms-sector figure { flex: 0 0 200px; margin: 0; }
.cdms-sector figure img { width: 200px; height: 130px; object-fit: cover; }
.cdms-sector h3 { flex: 1 1 280px; margin: 0; font-size: clamp(28px, 3.2vw, 40px); line-height: 1.1; }
.cdms-sector p:last-child { flex: 1 1 320px; margin: 0; font-size: 15px; color: var(--graphite); }

/* ---------- approach ---------- */
.cdms-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.cdms-steps > .wp-block-group { border-top: 1px solid #4A4D50; padding: 32px 32px 0 0; position: relative; }
.cdms-steps > .wp-block-group::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; background: var(--bronze-soft); }
.cdms-steps .cdms-num { margin: 0 0 12px; font-size: 13px; color: var(--bronze-soft); }
.cdms-steps h3 { margin: 0 0 12px; font-size: 34px; line-height: 1.1; }
.cdms-steps p:last-child { margin: 0 0 24px; font-size: 15px; color: var(--on-dark-2); }

/* ---------- safe by design ---------- */
.cdms-sbd { gap: 64px; align-items: center !important; }
.cdms-bars p.cdms-cap { margin: 8px 0; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--graphite); }
.cdms-bar { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; min-height: 64px; box-sizing: border-box; padding: 12px 20px; margin: 0 0 8px; }
.cdms-bar strong { font-family: var(--serif); font-weight: 400; font-size: 24px; line-height: 1.1; }
.cdms-bar span { font-size: 13px; }
.cdms-bar.b1 { width: 100%; background: #1C1F22; color: var(--stone); }
.cdms-bar.b2 { width: 88%; background: #3A3D40; color: var(--stone); }
.cdms-bar.b3 { width: 76%; background: #5C5A55; color: var(--stone); }
.cdms-bar.b4 { width: 64%; background: #A8A49C; color: var(--charcoal); }
.cdms-bar.b5 { width: 52%; background: #D3D0C9; color: var(--charcoal); }
@media (max-width: 600px) { .cdms-bar { min-height: 0; } .cdms-bar strong { font-size: 20px; } .cdms-bar span { font-size: 12px; } }

/* ---------- why CDMS ---------- */
.cdms-why { gap: 64px; }
.cdms-why figure { margin: 0; }
.cdms-why figure img { width: 100%; height: clamp(320px, 38vw, 520px); object-fit: cover; }
.cdms-why .cdms-pt { border-top: 1px solid var(--hair); padding-top: 22px; margin-top: 28px; }
.cdms-why .cdms-pt h3 { margin: 0 0 6px; font-family: var(--sans); font-size: 16px; font-weight: 600; }
.cdms-why .cdms-pt p { margin: 0; font-size: 15px; color: var(--graphite); }

/* ---------- latest posts ---------- */
.cdms-latest.wp-block-latest-posts { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 40px; padding: 0; margin: 0; list-style: none; }
.cdms-latest li { border-top: 1px solid var(--charcoal); padding-top: 24px; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.cdms-latest .wp-block-latest-posts__post-title { font-family: var(--serif); font-size: 28px; line-height: 1.2; text-decoration: none; order: 2; }
.cdms-latest .wp-block-latest-posts__post-date { order: 1; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--graphite); }
.cdms-latest .wp-block-latest-posts__post-excerpt { order: 3; margin: 0; font-size: 15px; color: var(--graphite); }
.cdms-empty { color: var(--graphite); }
.cdms-latest:empty { display: block; }
.cdms-latest:empty::before { content: "Updates coming soon."; color: var(--graphite); font-size: 15px; }

/* ---------- contact + form ---------- */
.cdms-contact { gap: 64px; }
.cdms-contact h2 { margin: 0; font-size: clamp(38px, 5vw, 60px); line-height: 1.05; }
.cdms-form { background: var(--linen); padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; gap: 18px; }
.cdms-form .cdms-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px 20px; }
.cdms-form label { display: block; font-size: 13px; color: #3A3D40; margin-bottom: 6px; }
.cdms-form .req { color: #8A2F2F; }
.cdms-form input[type=text], .cdms-form input[type=email], .cdms-form input[type=tel], .cdms-form select, .cdms-form textarea { width: 100%; box-sizing: border-box; min-height: 48px; padding: 0 14px; border: 1px solid #8A8780; border-radius: 0; background: #fff; font-family: inherit; font-size: 15px; color: var(--charcoal); }
.cdms-form textarea { padding: 12px 14px; min-height: 140px; resize: vertical; line-height: 1.5; }
.cdms-form input:focus, .cdms-form select:focus, .cdms-form textarea:focus { outline: 2px solid var(--charcoal); outline-offset: 1px; }
.cdms-form .cdms-consent { display: flex; gap: 12px; align-items: flex-start; font-size: 13px; color: #3A3D40; line-height: 1.5; }
.cdms-form .cdms-consent input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--charcoal); }
.cdms-form button { align-self: flex-start; min-height: 52px; padding: 0 36px; }
.cdms-hp { position: absolute !important; left: -9999px !important; }
.cdms-msg { padding: 28px; background: var(--linen); }
.cdms-msg.err { border-left: 3px solid #8A2F2F; }
.cdms-msg p { margin: 0 0 8px; }
.cdms-msg .big { font-family: var(--serif); font-size: 32px; line-height: 1.15; }

/* ---------- footer ---------- */
.cdms-footer { border-top: 1px solid var(--hair); }
.cdms-footer .cdms-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 32px; padding-top: 56px; padding-bottom: 56px; font-size: 13px; color: var(--graphite); }
.cdms-footer .cdms-wrap > div { display: flex; flex-direction: column; gap: 8px; }
.cdms-footer a { color: var(--graphite); }
.cdms-footer .cdms-flogo { font-family: var(--serif); font-size: 22px; letter-spacing: 0.18em; color: var(--charcoal); }

/* ---------- news + posts ---------- */
.cdms-page-title { margin: 0; font-size: clamp(42px, 6vw, 72px); line-height: 1.02; max-width: 820px; }
.cdms-cats { display: flex; flex-wrap: wrap; gap: 10px; margin: 48px 0 0; padding: 0; list-style: none; }
.cdms-cats a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 22px; border: 1px solid var(--charcoal); text-decoration: none; font-size: 14px; }
.cdms-cats a.on, .cdms-cats a:hover { background: var(--charcoal); color: var(--stone); }
.cdms-postlist { border-top: 1px solid var(--hair); margin-top: 48px; }
.cdms-postlist .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.cdms-postlist .wp-block-post { display: flex; flex-wrap: wrap; gap: 8px 32px; padding: 32px 0; border-bottom: 1px solid var(--hair); }
.cdms-postlist .cdms-meta { flex: 0 0 180px; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--graphite); }
.cdms-postlist .cdms-meta a { color: var(--bronze); text-decoration: none; }
.cdms-postlist .cdms-meta > * { margin: 0 0 4px; }
.cdms-postlist .cdms-body { flex: 1 1 420px; min-width: 0; }
.cdms-postlist .wp-block-post-title { margin: 0 0 8px; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; }
.cdms-postlist .wp-block-post-title a { text-decoration: none; }
.cdms-postlist .wp-block-post-excerpt { margin: 0; font-size: 15px; color: var(--graphite); }
.cdms-postlist .wp-block-post-excerpt__more-text { display: none; }
.cdms-postlist .wp-block-post-terms a, .cdms-article .wp-block-post-terms a { color: var(--bronze); text-decoration: none; }
.wp-block-query-pagination { margin-top: 32px; gap: 16px; }
.cdms-article { max-width: 760px; }
.cdms-article .wp-block-post-title { font-size: clamp(36px, 5vw, 56px); line-height: 1.08; margin: 12px 0 32px; }
.cdms-article .wp-block-post-featured-image { margin: 0 0 40px; }
.cdms-article .wp-block-post-content { font-size: 17px; line-height: 1.75; }
.cdms-article .wp-block-post-content h2 { font-size: 34px; margin: 48px 0 16px; }
.cdms-article .wp-block-post-content h3 { font-size: 26px; margin: 36px 0 12px; }
.cdms-article .cdms-meta { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--graphite); display: flex; gap: 16px; }
.cdms-article .cdms-meta a { color: var(--bronze); text-decoration: none; }
.cdms-prose { max-width: 760px; font-size: 17px; line-height: 1.75; }
.cdms-svc-item .cdms-num, .cdms-step .cdms-num { margin-top: 0; }

/* ---------- small screens ---------- */
@media (max-width: 781px) {
  :root { --pad-y: 64px; }
  .cdms-h2 { margin-bottom: 32px; }
  .cdms-hero .wp-block-columns { gap: 40px; }
  .cdms-hero .wp-block-button, .cdms-hero .wp-block-button__link { width: 100%; justify-content: center; }
  .cdms-hero figure img { height: 280px; }
  .cdms-creds .wp-block-columns, .cdms-stats { display: grid !important; grid-template-columns: 1fr 1fr; gap: 24px 16px !important; }
  .cdms-creds .wp-block-columns { padding-top: 28px; padding-bottom: 28px; }
  .cdms-stats .cdms-fig { font-size: 26px; }
  .cdms-stats .cdms-figtxt { font-size: 13px; margin-top: 8px; }
  .cdms-stats .wp-block-column { padding-top: 14px; }
  .cdms-duty { margin-top: 56px !important; }
  .cdms-duty figure img { height: 150px; }
  .cdms-duty .wp-block-column { padding-bottom: 24px; }
  .cdms-duty .wp-block-column > *:not(figure) { margin-left: 20px; margin-right: 20px; }
  .cdms-duty .cdms-must { display: none; }
  .cdms-services-body { gap: 28px !important; }
  .cdms-services-body figure img { min-height: 0; height: 220px; }
  .cdms-svc > .wp-block-group { padding: 20px 0 22px; }
  .cdms-svc .cdms-num { margin-bottom: 6px; }
  .cdms-svc h3 { font-size: 22px; }
  .cdms-sector { gap: 10px 16px; padding: 22px 0; }
  .cdms-sector .cdms-num { flex-basis: 100%; }
  .cdms-sector figure, .cdms-sector figure img { flex-basis: 100%; width: 100%; height: 150px; }
  .cdms-sector h3 { flex-basis: 100%; font-size: 26px; }
  .cdms-sector p:last-child { flex-basis: 100%; font-size: 14px; }
  .cdms-steps > .wp-block-group { padding: 20px 0 0; }
  .cdms-steps h3 { font-size: 26px; margin-bottom: 6px; }
  .cdms-steps p:last-child { margin-bottom: 20px; }
  .cdms-sbd, .cdms-why, .cdms-contact { gap: 32px !important; }
  .cdms-why figure img { height: 240px; }
  .cdms-why .cdms-pt { margin-top: 18px; padding-top: 16px; }
  .cdms-role .wp-block-columns { gap: 8px !important; }
  .cdms-latest.wp-block-latest-posts { gap: 24px; }
  .cdms-form button { width: 100%; justify-content: center; }
}

/* ---------- justified body text ---------- */
.wp-block-post-content p, .wp-block-post-content li, .cdms-prose p, .cdms-prose li {
  text-align: justify; text-justify: inter-word; hyphens: auto; -webkit-hyphens: auto;
}
.wp-block-post-content .cdms-label, .wp-block-post-content .cdms-fig, .wp-block-post-content .cdms-num,
.wp-block-post-content .cdms-cap, .wp-block-post-content .cdms-note, .wp-block-post-content .wp-block-buttons,
.cdms-form p, .cdms-msg p { text-align: left; hyphens: manual; }

/* ---------- SEO additions (v1.1) ---------- */
.cdms-hero h1.cdms-h1 { font-family: var(--sans); font-size: 12px; font-weight: 400; line-height: 1.6; letter-spacing: 0.28em; text-transform: uppercase; color: var(--bronze); margin: 0 0 28px !important; }
.cdms-hero .cdms-display { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(44px, 6vw, 76px); line-height: 1.02; letter-spacing: -0.01em; text-align: left !important; hyphens: manual !important; }
.cdms-morelinks { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 32px 0 0; text-align: left !important; }
.cdms-morelinks a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; text-decoration: none; border-bottom: 1px solid var(--charcoal); }
.cdms-morelinks a::after { content: "\2192"; margin-left: 8px; }
.cdms-faq-section { border-top: 1px solid var(--hair); padding-bottom: 0; }
.cdms-faq-section .wp-block-columns { gap: 64px; }
.cdms-faq { border-top: 1px solid var(--hair); }
.cdms-faq details { border-bottom: 1px solid var(--hair); }
.cdms-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 44px; padding: 22px 0; font-family: var(--serif); font-size: clamp(21px, 2vw, 24px); line-height: 1.25; }
.cdms-faq summary::-webkit-details-marker { display: none; }
.cdms-faq summary::after { content: "+"; flex: 0 0 auto; font-family: var(--sans); font-size: 22px; color: var(--bronze); }
.cdms-faq details[open] summary::after { content: "\2212"; }
.cdms-faq details p { margin: 0 0 24px; color: var(--graphite); font-size: 15px; max-width: 680px; }
.cdms-intro { font-size: 19px; line-height: 1.65; color: var(--charcoal); margin: 0 0 8px; }
.cdms-prose h2 { font-size: clamp(28px, 3vw, 36px); line-height: 1.15; margin: 48px 0 14px; }
.cdms-prose ul { padding-left: 1.2em; }
.cdms-prose li { margin-bottom: 10px; }
.cdms-prose .cdms-note { margin-top: 40px; }
.wp-block-post-content .cdms-display, .wp-block-post-content .cdms-morelinks, .cdms-prose .cdms-label { text-align: left; hyphens: manual; }
@media (max-width: 781px) {
  .cdms-hero h1.cdms-h1 { font-size: 11px; letter-spacing: 0.22em; }
  .cdms-faq-section .wp-block-columns { gap: 8px !important; }
  .cdms-intro { font-size: 17px; }
}

/* homepage: short lines in narrow columns read better left-aligned (v1.1.2) */
.home .wp-block-post-content p, .home .wp-block-post-content li { text-align: left; hyphens: manual; }
.home .cdms-faq details p { text-align: justify; hyphens: auto; }

/* duty cards: full role name under the abbreviation (v1.1.3) */
.cdms-duty .cdms-fullname { margin-top: -4px; margin-bottom: 14px; font-size: 13px; letter-spacing: 0.02em; color: var(--bronze); }
