:root {
  --colour-brand: #285e50;
  --colour-on-brand: #ffffff;
  --colour-surface: #ffffff;
  --colour-on-surface: #20302c;
  --colour-muted: #53665a;
  --colour-focus: #155eef;
  --colour-success: #23644a;
  --colour-warning: #8b581c;
  --colour-danger: #a73e3e;
  --font-display: Georgia, serif;
  --density-factor: 1;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--colour-on-surface);
  background: var(--colour-surface);
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-width: 280px; line-height: 1.55; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
img { max-width: 100%; height: auto; }
a { color: var(--colour-brand); }
:focus-visible { outline: 3px solid var(--colour-focus); outline-offset: 3px; }
.cms-skip { position: absolute; left: -9999px; top: 0; z-index: 100; padding: .6rem 1rem; background: var(--colour-surface); }
.cms-skip:focus { left: .5rem; top: .5rem; }
.cms-kicker { margin: 0 0 .25rem; color: var(--colour-brand); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cms-help { display: block; color: var(--colour-muted); font-size: .85rem; font-weight: 400; }
.cms-button { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border: 1px solid var(--colour-brand); border-radius: .7rem; padding: .65rem 1rem; background: var(--colour-brand); color: var(--colour-on-brand); font-weight: 700; line-height: 1.25; text-align: center; text-decoration: none; }
.cms-button:hover { filter: brightness(.91); }
.cms-button:disabled { opacity: .48; cursor: not-allowed; filter: none; }
.cms-button--secondary { background: var(--colour-surface); color: var(--colour-brand); }
.cms-button--quiet { background: transparent; border-color: transparent; color: var(--colour-brand); }
.cms-notice { margin: 0 0 1rem; border-left: 4px solid var(--colour-success); border-radius: .35rem; padding: .7rem 1rem; background: #edf8f2; color: var(--colour-on-surface); }
.cms-notice--error { border-color: var(--colour-danger); background: #fff0f0; }
.cms-notice[hidden] { display: none; }

/* Studio */
.cms-studio { background: #f3f6f4; }
.cms-studio-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem 2rem; border-bottom: 1px solid #dbe5df; padding: 1rem clamp(1rem, 3vw, 3rem); background: var(--colour-surface); }
.cms-studio-header strong { display: block; font-family: var(--font-display); font-size: 1.2rem; }
.cms-studio-header nav { display: flex; flex-wrap: wrap; gap: .2rem 1rem; }
.cms-studio-header nav a { border-radius: .4rem; padding: .35rem; font-weight: 650; text-decoration: none; }
.cms-studio-header nav a:hover { text-decoration: underline; }
.cms-studio-main { width: min(1500px, 100%); margin: 0 auto; padding: clamp(1rem, 3vw, 2.5rem); }
.cms-page-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.cms-page-heading h1 { margin: .1rem 0; font-family: var(--font-display); font-size: clamp(1.9rem, 4vw, 3.1rem); line-height: 1.12; overflow-wrap: anywhere; }
.cms-page-heading p:last-child { margin: .3rem 0 0; color: var(--colour-muted); }
.cms-panel { min-width: 0; margin-bottom: 1.15rem; border: 1px solid #dbe5df; border-radius: 1rem; padding: clamp(1rem, 2vw, 1.5rem); background: var(--colour-surface); box-shadow: 0 10px 32px rgb(27 56 42 / 5%); }
.cms-panel h2, .cms-panel h3 { margin: 0 0 .35rem; line-height: 1.3; }
.cms-panel p { color: var(--colour-muted); }
.cms-panel label { display: block; margin: .9rem 0 .35rem; font-weight: 650; }
.cms-panel input:not([type="color"]):not([type="file"]), .cms-panel select, .cms-panel textarea { display: block; width: 100%; min-width: 0; margin-top: .3rem; border: 1px solid #aebdb4; border-radius: .55rem; padding: .55rem .7rem; background: #fff; color: #20302c; }
.cms-panel textarea { resize: vertical; min-height: 5rem; }
.cms-create-form { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; align-items: end; gap: 1rem; }
.cms-create-form label { min-width: 0; }
.cms-create-form button { margin-bottom: .35rem; }
.cms-page-list { display: grid; gap: .5rem; }
.cms-page-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border: 1px solid #dbe5df; border-radius: .65rem; padding: .8rem 1rem; text-decoration: none; }
.cms-page-row:hover { border-color: var(--colour-brand); background: #f8fbf9; }
.cms-page-row strong, .cms-page-row small { display: block; overflow-wrap: anywhere; }
.cms-page-row small { color: var(--colour-muted); }
.cms-editor-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); align-items: start; gap: 1.15rem; }
.cms-editor-main { min-width: 0; }
.cms-section-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: start; gap: .6rem 1rem; }
.cms-section-heading p { margin: 0; }
.cms-count { align-self: start; border-radius: 999px; padding: .25rem .6rem; background: #e7f1ea; color: var(--colour-brand); font-size: .8rem; font-weight: 700; }
.cms-block-list { display: grid; gap: .75rem; margin-top: 1rem; }
.cms-block-card { border: 1px solid #d3e0d8; border-radius: .75rem; padding: 1rem; background: #fbfdfb; }
.cms-block-card-header { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: .5rem; }
.cms-block-card-header h3 { margin: 0; font-size: 1rem; }
.cms-block-actions { display: flex; flex-wrap: wrap; gap: .2rem; }
.cms-icon-button { border: 1px solid #c8d8cf; border-radius: .4rem; padding: .3rem .5rem; background: #fff; color: var(--colour-brand); font-size: .8rem; font-weight: 650; }
.cms-icon-button:hover:not(:disabled) { background: #e7f1ea; }
.cms-icon-button:disabled { opacity: .45; cursor: not-allowed; }
.cms-block-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .15rem .9rem; }
.cms-field { min-width: 0; }
.cms-field:has(textarea), .cms-field:has(.cms-repeat-list) { grid-column: 1 / -1; }
.cms-repeat-list { display: grid; gap: .55rem; margin: .4rem 0; }
.cms-repeat-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: .5rem; border-left: 3px solid #c9dccc; padding: .5rem; background: #fff; }
.cms-repeat-row > label { min-width: 0; margin: 0; }
.cms-repeat-row .cms-icon-button { grid-column: 2; grid-row: 1; }
.cms-repeat-row textarea { margin: 0 !important; }
.cms-add-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .6rem; margin-top: 1rem; }
.cms-add-row label { grid-column: 1 / -1; margin-bottom: -.5rem; }
.cms-media-upload { border-top: 1px solid #e1eae4; margin-top: 1.2rem; padding-top: .7rem; }
.cms-media-upload input[type="file"] { display: block; max-width: 100%; margin: .5rem 0; }
.cms-design-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem 1rem; }
.cms-design-fields label { min-width: 0; }
.cms-design-link-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; align-items: end; gap: .6rem; border-left: 3px solid #c9dccc; padding: .5rem; background: #fff; }
.cms-design-link-row label { min-width: 0; margin: 0; }
.cms-action-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 1rem 0 1.5rem; }
.cms-history { list-style: none; margin: .8rem 0 0; padding: 0; }
.cms-history li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; border-top: 1px solid #e4ece6; padding: .7rem 0; }
.cms-history strong, .cms-history small { display: block; }
.cms-history small { color: var(--colour-muted); overflow-wrap: anywhere; }
.cms-preview-panel { position: sticky; top: 1rem; }
.cms-device-controls { display: flex; flex-wrap: wrap; gap: .25rem; margin: 1rem 0; }
.cms-device-controls button { border: 1px solid #c9d8ce; border-radius: .4rem; padding: .35rem .6rem; background: #fff; color: var(--colour-brand); }
.cms-device-controls button[aria-pressed="true"] { background: var(--colour-brand); color: var(--colour-on-brand); }
.cms-preview-viewport { display: flex; justify-content: center; overflow: auto; min-height: 450px; border: 1px solid #aebdb4; border-radius: .65rem; padding: .7rem; background: #e5ebe7; }
.cms-preview-viewport iframe { flex: 0 0 auto; width: 100%; height: 590px; border: 0; background: #fff; box-shadow: 0 3px 20px rgb(0 0 0 / 12%); }
.cms-preview-viewport[data-device="tablet"] iframe { width: min(768px, 100%); }
.cms-preview-viewport[data-device="phone"] iframe { width: min(390px, 100%); }
.cms-theme-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.cms-theme-tabs a { border: 1px solid #bdd0c3; border-radius: 999px; padding: .45rem .8rem; text-decoration: none; font-weight: 700; }
.cms-theme-tabs a[aria-current="page"] { background: var(--colour-brand); color: var(--colour-on-brand); }
.cms-preset-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); gap: .5rem; margin: .8rem 0; }
.cms-preset-card { display: flex; align-items: center; gap: .55rem; min-width: 0; border: 1px solid #cbd9cf; border-radius: .6rem; padding: .45rem; background: #fff; color: #20302c; text-align: left; }
.cms-preset-card:hover, .cms-preset-card[aria-pressed="true"] { border-color: var(--colour-brand); box-shadow: inset 0 0 0 1px var(--colour-brand); }
.cms-preset-swatch { flex: 0 0 30px; width: 30px; height: 30px; border-radius: .4rem; }
.cms-preset-card strong, .cms-preset-card small { display: block; line-height: 1.2; }
.cms-preset-card strong { font-size: .75rem; }
.cms-preset-card small { color: #53665a; font-size: .68rem; }
.cms-preset-guidance { border-left: 3px solid var(--colour-brand); margin: .75rem 0 1rem; padding: .55rem .75rem; background: #f5f9f6; font-size: .9rem; }
.cms-theme-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 1.15rem; }
.cms-colour-row { display: flex !important; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; border-bottom: 1px solid #edf1ee; padding: .4rem 0; }
.cms-colour-controls { display: flex; align-items: center; gap: .5rem; width: min(190px, 100%); }
.cms-colour-controls input[type="color"] { flex: 0 0 44px; width: 44px; height: 38px; border: 1px solid #aebdb4; border-radius: .4rem; padding: 2px; }
.cms-colour-controls input[type="text"] { margin: 0 !important; }
.cms-theme-preview { position: sticky; top: 1rem; }
#cms-theme-sample { border: 1px solid #dbe5df; border-radius: .8rem; padding: 1.5rem; background: var(--colour-surface); color: var(--colour-on-surface); font-family: var(--font-display); }
#cms-theme-sample h3 { font-family: var(--font-display); font-size: 1.8rem; }
#cms-theme-sample .cms-sample-muted { color: var(--colour-muted); }
.cms-sample-status { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; font-size: .82rem; font-weight: 700; }
.cms-sample-status span:nth-child(1) { color: var(--colour-success); }
.cms-sample-status span:nth-child(2) { color: var(--colour-warning); }
.cms-sample-status span:nth-child(3) { color: var(--colour-danger); }

/* Published and preview pages */
.cms-public { background: var(--colour-surface); color: var(--colour-on-surface); }
.cms-preview-banner { padding: .55rem 1rem; background: #f6ecca; color: #402d0c; text-align: center; font-size: .85rem; font-weight: 750; }
.cms-public-header { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .7rem 2rem; border-bottom: 1px solid #dce6de; padding: 1rem clamp(1rem, 4vw, 4rem); }
.cms-public-header nav { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.cms-public-header a { text-decoration: none; font-weight: 650; }
.cms-public-header a:hover { text-decoration: underline; }
.cms-brand { display: inline-flex; align-items: center; gap: .55rem; min-width: 0; font-family: var(--font-display); font-size: 1.35rem; font-weight: 750; overflow-wrap: anywhere; }
.cms-brand img { flex: 0 0 auto; width: 48px; height: 48px; object-fit: contain; }
.cms-header-logo--left .cms-brand { order: 1; }
.cms-header-logo--center .cms-brand { order: 2; margin-inline: auto; }
.cms-header-logo--right .cms-brand { order: 3; margin-left: auto; }
.cms-header-menu--left .cms-main-nav, .cms-header-menu--left .cms-mega-nav, .cms-header-menu--left .cms-popout { order: 1; }
.cms-header-menu--center .cms-main-nav, .cms-header-menu--center .cms-mega-nav, .cms-header-menu--center .cms-popout { order: 2; margin-inline: auto; }
.cms-header-menu--right .cms-main-nav, .cms-header-menu--right .cms-mega-nav, .cms-header-menu--right .cms-popout { order: 3; margin-left: auto; }
.cms-header-cta { order: 4; }
.cms-header--bold { border-bottom: 0; background: var(--colour-brand); color: var(--colour-on-brand); }
.cms-header--bold a, .cms-header--bold summary { color: var(--colour-on-brand); }
.cms-header--bold .cms-header-cta { border-color: var(--colour-on-brand); background: var(--colour-on-brand); color: var(--colour-brand); }
.cms-mega-nav { align-items: center; }
.cms-mega-group { position: relative; }
.cms-mega-group summary { cursor: pointer; font-weight: 650; }
.cms-mega-panel { position: absolute; top: calc(100% + .65rem); left: 0; z-index: 20; display: grid; min-width: min(22rem, calc(100vw - 2rem)); gap: .3rem; border: 1px solid #c9d8ce; border-radius: .65rem; padding: .8rem; background: var(--colour-surface); box-shadow: 0 12px 24px rgb(0 0 0 / 14%); }
.cms-header-menu--right .cms-mega-panel { left: auto; right: 0; }
.cms-header-menu--center .cms-mega-panel { left: 50%; transform: translateX(-50%); }
.cms-mega-panel a { color: var(--colour-brand); }
.cms-popout { position: relative; }
.cms-popout summary { cursor: pointer; border: 1px solid currentColor; border-radius: .5rem; padding: .35rem .65rem; font-weight: 700; }
.cms-popout nav { position: absolute; top: calc(100% + .5rem); right: 0; z-index: 20; display: grid; width: min(20rem, calc(100vw - 2rem)); gap: .35rem; border: 1px solid #c9d8ce; border-radius: .65rem; padding: .8rem; background: var(--colour-surface); box-shadow: 0 12px 24px rgb(0 0 0 / 14%); }
.cms-header-menu--left .cms-popout nav { left: 0; right: auto; }
.cms-header-menu--center .cms-popout nav { left: 50%; right: auto; transform: translateX(-50%); }
.cms-popout nav a { color: var(--colour-brand); }
.cms-nav-child { margin-left: .7rem; font-size: .9rem; }
.cms-public-main { width: min(1300px, 100%); margin: 0 auto; padding: 0 clamp(1rem, 4vw, 4rem) 2rem; }
.cms-page-title { margin: clamp(1.5rem, 4vw, 3rem) 0 1rem; font-family: var(--font-display); font-size: clamp(2rem, 5vw, 4rem); line-height: 1.1; overflow-wrap: anywhere; }
.cms-breadcrumbs { margin-top: 1.2rem; font-size: .9rem; }
.cms-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .25rem .6rem; list-style: none; margin: 0; padding: 0; }
.cms-breadcrumbs li + li::before { content: '/'; margin-right: .6rem; color: var(--colour-muted); }
.cms-block { margin: 1rem 0; border-radius: 1.25rem; padding: calc(2rem * var(--density-factor)); overflow-wrap: anywhere; }
.cms-spacing--compact { padding-block: calc(1rem * var(--density-factor)); }
.cms-spacing--spacious { padding-block: calc(4rem * var(--density-factor)); }
.cms-tone--default { background: transparent; }
.cms-tone--soft { background: color-mix(in srgb, var(--colour-brand) 8%, var(--colour-surface)); }
.cms-tone--accent { background: var(--colour-brand); color: var(--colour-on-brand); }
.cms-tone--accent a { color: var(--colour-on-brand); }
.cms-block h2 { margin: 0 0 .7rem; font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2.6rem); line-height: 1.15; }
.cms-block h3 { margin: 0 0 .3rem; font-family: var(--font-display); }
.cms-block p { max-width: 65ch; margin: .5rem 0; }
.cms-hero { display: grid; grid-template-columns: minmax(0, 1fr); align-content: center; min-height: 250px; }
.cms-hero .cms-button { justify-self: start; }
.cms-hero--center { text-align: center; justify-items: center; }
.cms-hero--center .cms-button { justify-self: center; }
.cms-hero--center p { margin-inline: auto; }
.cms-eyebrow { color: var(--colour-muted); font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cms-rich-text { max-width: 75ch; }
.cms-rich-text.cms-align--center { margin-inline: auto; text-align: center; }
.cms-rich-text.cms-align--center p { margin-inline: auto; }
.cms-columns, .cms-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 1rem; margin-top: 1.2rem; }
.cms-columns article, .cms-steps article { min-width: 0; border: 1px solid #dbe5df; border-radius: .7rem; padding: 1rem; }
.cms-block details { border-bottom: 1px solid #c9d8ce; padding: .7rem 0; }
.cms-block summary { cursor: pointer; font-weight: 700; }
.cms-block blockquote { margin: 0; font-family: var(--font-display); font-size: clamp(1.3rem, 3vw, 2rem); }
.cms-block blockquote footer { margin-top: 1rem; font-family: system-ui, sans-serif; font-size: .9rem; font-weight: 700; }
.cms-block address { font-style: normal; }
.cms-block figure { margin: 0; }
.cms-block figure img { display: block; width: 100%; max-height: 650px; border-radius: .65rem; object-fit: cover; }
.cms-block figure.cms-image--contained img { width: auto; max-width: 100%; margin-inline: auto; }
.cms-block figcaption { margin-top: .4rem; color: var(--colour-muted); font-size: .9rem; }
.cms-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: .8rem; }
.cms-gallery figure img { aspect-ratio: 4 / 3; }
.cms-gallery--tiled figure:nth-child(3n+1) { grid-column: span 2; }
.cms-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr)); gap: 1rem; }
.cms-stats div { border-top: 2px solid currentColor; padding-top: .5rem; }
.cms-stats dt { color: var(--colour-muted); font-size: .9rem; }
.cms-stats dd { margin: 0; font-family: var(--font-display); font-size: 2rem; font-weight: 750; }
.cms-testimonial-grid, .cms-team-grid, .cms-service-grid, .cms-feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 1rem; margin-top: 1rem; }
.cms-testimonial-grid blockquote, .cms-team-grid article, .cms-service-grid article, .cms-feature-grid article { min-width: 0; border: 1px solid #dbe5df; border-radius: .8rem; padding: 1.2rem; background: var(--colour-surface); color: var(--colour-on-surface); }
.cms-testimonial-grid blockquote { font-size: 1.1rem; }
.cms-testimonial-grid--scroll { display: flex; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; padding-bottom: .5rem; }
.cms-testimonial-grid--scroll blockquote { flex: 0 0 min(320px, 86%); scroll-snap-align: start; }
.cms-team-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: .55rem; object-fit: cover; }
.cms-team-role { color: var(--colour-brand); font-weight: 750; }
.cms-pricing-list { display: grid; gap: .35rem; margin-top: 1rem; }
.cms-pricing-list article { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: .3rem 1rem; border-bottom: 1px solid #dbe5df; padding: .8rem 0; }
.cms-pricing-list article > div { min-width: 0; flex: 1 1 220px; }
.cms-pricing-list article strong { font-family: var(--font-display); font-size: 1.3rem; white-space: nowrap; }
.cms-feature-symbol { display: inline-flex; align-items: center; justify-content: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--colour-brand); color: var(--colour-on-brand); font-size: 1.3rem; }
.cms-video { width: min(100%, 900px); aspect-ratio: 16 / 9; margin-top: 1rem; overflow: hidden; border-radius: .8rem; background: #172220; }
.cms-video iframe { display: block; width: 100%; height: 100%; border: 0; }
.cms-image-text { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(1rem, 3vw, 2.5rem); }
.cms-image-text img { display: block; width: 100%; max-height: 540px; border-radius: .75rem; object-fit: cover; }
.cms-image-text--right img { order: 2; }
.cms-image-text > div { min-width: 0; }
.cms-logo-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.5rem 2.5rem; margin-top: 1rem; }
.cms-logo-strip img { width: min(130px, 35vw); max-height: 80px; object-fit: contain; }
.cms-block address { white-space: pre-line; }
.cms-public-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; border-top: 1px solid #dce6de; padding: 2rem clamp(1rem, 4vw, 4rem); background: #f3f7f3; }
.cms-public-footer p { margin: 0; }
.cms-public-footer nav { display: grid; align-content: start; gap: .25rem; }
.cms-footer--compact { align-items: center; }
.cms-footer--columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.cms-footer--contact { border-top: 4px solid var(--colour-brand); background: var(--colour-surface); }
.cms-footer--editorial { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); background: var(--colour-brand); color: var(--colour-on-brand); }
.cms-footer--editorial a { color: var(--colour-on-brand); }
.cms-footer--editorial .cms-footer-brand strong { font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2.5rem); }

@media (max-width: 1100px) {
  .cms-editor-grid, .cms-theme-grid { grid-template-columns: minmax(0, 1fr); }
  .cms-preview-panel, .cms-theme-preview { position: static; }
  .cms-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-create-form button { justify-self: start; }
}
@media (max-width: 900px) {
  .cms-public-header > * { order: 0 !important; margin-inline: 0 !important; }
  .cms-main-nav, .cms-mega-nav { width: 100%; }
  .cms-mega-nav { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .cms-mega-group { grid-column: 1 / -1; width: 100%; }
  .cms-mega-panel, .cms-popout nav { position: static; width: 100%; min-width: 0; margin-top: .4rem; box-shadow: none; transform: none !important; }
}
@media (max-width: 680px) {
  .cms-studio-main { padding: 1rem; }
  .cms-create-form, .cms-block-fields, .cms-design-fields, .cms-design-link-row { grid-template-columns: minmax(0, 1fr); }
  .cms-field:has(textarea), .cms-field:has(.cms-repeat-list) { grid-column: auto; }
  .cms-action-bar .cms-button { width: 100%; }
  .cms-public-main { padding-inline: 1rem; }
  .cms-block { padding: 1.2rem; }
  .cms-spacing--spacious { padding-block: 2rem; }
  .cms-gallery--tiled figure:nth-child(3n+1) { grid-column: auto; }
  .cms-image-text { grid-template-columns: minmax(0, 1fr); }
  .cms-image-text--right img { order: 0; }
  .cms-public-header { align-items: start; }
  .cms-footer--columns, .cms-footer--editorial { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; } }
