/* Shared layout primitives for public pages and the page editor. */
.cms-layout {min-width:0;overflow-wrap:anywhere;--layout-columns:2;--layout-gap:24px;}
.cms-layout > * {min-width:0;max-width:100%;}
.cms-layout[data-gap=small] {gap:12px;--layout-gap:12px;}
.cms-layout[data-gap=medium] {gap:24px;--layout-gap:24px;}
.cms-layout[data-gap=large] {gap:40px;--layout-gap:40px;}
.cms-layout[data-layout=layoutStack] {display:flex;flex-direction:column;}
.cms-layout[data-layout=layoutRow] {display:flex;flex-wrap:wrap;}
.cms-layout[data-layout=layoutRow] > * {flex:1 1 180px;}
.cms-layout[data-layout=layoutGrid] {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(160px,calc(100% / var(--layout-columns) - var(--layout-gap)))),1fr));}
.cms-layout[data-columns="1"] {--layout-columns:1;}
.cms-layout[data-columns="3"] {--layout-columns:3;}
.cms-layout[data-columns="4"] {--layout-columns:4;}
.cms-layout[data-align=start] {align-items:flex-start;}
.cms-layout[data-align=center] {align-items:center;}
.cms-layout[data-align=end] {align-items:flex-end;}
.cms-layout[data-align=stretch] {align-items:stretch;}
.cms-layout[data-layout=layoutStack] > p {margin:0;}
.cms-accordion {margin:24px 0;}
.cms-accordion > details {border:1px solid var(--border);border-radius:6px;margin:8px 0;}
.cms-accordion summary {font-weight:650;padding:16px;cursor:pointer;}
.cms-accordion summary:focus-visible,.cms-tabs button:focus-visible {outline:3px solid #b87500;outline-offset:2px;}
.cms-accordion .accordion-body {padding:0 16px 16px;}
.cms-tabs {margin:24px 0;}
.cms-tabs .tab-buttons {display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--border);padding:4px;}
.cms-tabs .tab-buttons button {flex-shrink:0;min-height:44px;padding:10px 16px;border:1px solid var(--border);border-radius:5px 5px 0 0;background:var(--surface);color:var(--text);cursor:pointer;}
.cms-tabs .tab-buttons [aria-selected=true] {background:var(--accent);color:#fff;}
.cms-tabs .tab-panel {padding:20px 0;}
.cms-tabs .tab-panel[hidden] {display:none;}
.cms-tabs .tab-panel > h3 {margin-top:0;}
@media(max-width:600px) {
  .cms-layout[data-layout=layoutGrid] {grid-template-columns:minmax(0,1fr);}
  .cms-layout[data-layout=layoutRow] > * {flex-basis:100%;}
}

.cms-tabs .tab-buttons[hidden] {display:none;}
