/* Pages libres, articles, boutique : colonne de lecture au trait SOASY. */
body.soasy-generic { background: #EBEEED; color: #0F1C26; }
.soasy-prose { box-sizing: border-box; max-width: 820px; margin: 0 auto; padding: clamp(40px, 5vw, 72px) clamp(20px, 4.5vw, 64px) clamp(64px, 7vw, 104px); font: 400 1.05rem/1.7 'Barlow', system-ui, sans-serif; color: #374650; }
.soasy-prose.soasy-wide { max-width: 1460px; }
.soasy-prose h1, .soasy-prose h2, .soasy-prose h3, .soasy-prose h4 { font-family: 'Barlow Condensed', sans-serif; font-weight: 600; text-transform: uppercase; color: #0F1C26; line-height: 1.05; margin: 1.6em 0 .5em; text-wrap: balance; }
.soasy-prose h1 { font-size: clamp(2.4rem, 5vw, 4.4rem); margin-top: 0; }
.soasy-prose h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.soasy-prose h3 { font-size: 1.3rem; }
.soasy-prose p, .soasy-prose ul, .soasy-prose ol { margin: 0 0 1.1em; text-wrap: pretty; }
.soasy-prose a { color: #0A6B66; border-bottom: 1px solid rgba(12, 127, 122, .4); text-decoration: none; }
.soasy-prose a:hover { color: #0F1C26; border-color: #0F1C26; }
.soasy-prose img { max-width: 100%; height: auto; display: block; }
.soasy-prose figure, .soasy-figure { margin: 1.6em 0; border: 1px solid rgba(15, 28, 38, .22); padding: 8px; }
.soasy-prose blockquote { margin: 1.6em 0; padding: 4px 0 4px 20px; border-left: 2px solid #0C7F7A; font-family: 'Barlow Condensed', sans-serif; font-size: 1.4rem; color: #0F1C26; }
.soasy-prose table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: .95rem; }
.soasy-prose th, .soasy-prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid rgba(15, 28, 38, .14); }
.soasy-prose th { font: 500 .7rem 'IBM Plex Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: #5A6870; }
.soasy-prose code, .soasy-prose pre { font-family: 'IBM Plex Mono', monospace; font-size: .9em; }
.soasy-prose pre { padding: 16px; overflow-x: auto; border: 1px solid rgba(15, 28, 38, .2); }
.soasy-meta { font: 500 .66rem 'IBM Plex Mono', monospace !important; letter-spacing: .16em; text-transform: uppercase; color: #0A6B66 !important; margin: 0 0 12px !important; }
.soasy-btn, .soasy-prose .wp-block-button__link, .soasy-prose button, .soasy-prose input[type="submit"], .woocommerce .button { display: inline-block; border: 0 !important; border-radius: 0 !important; background: #17B8B0 !important; color: #04231F !important; font: 600 .95rem/1 'Barlow Condensed', sans-serif !important; letter-spacing: .08em; text-transform: uppercase; padding: 15px 26px !important; cursor: pointer; transition: background .15s ease; }
.soasy-btn:hover, .soasy-prose .wp-block-button__link:hover, .soasy-prose button:hover, .soasy-prose input[type="submit"]:hover, .woocommerce .button:hover { background: #22D3C9 !important; }
.soasy-prose input[type="text"], .soasy-prose input[type="email"], .soasy-prose input[type="search"], .soasy-prose input[type="tel"], .soasy-prose input[type="number"], .soasy-prose select, .soasy-prose textarea { box-sizing: border-box; max-width: 100%; border: 1px solid rgba(15, 28, 38, .3); border-radius: 0; background: transparent; padding: 11px 13px; font: 400 1rem 'Barlow', sans-serif; color: #0F1C26; }
.soasy-prose input:focus, .soasy-prose select:focus, .soasy-prose textarea:focus { outline: none; border-color: #0C7F7A; }
.soasy-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 24px; margin: 28px 0; }
.soasy-card { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 18px; border: 1px solid rgba(15, 28, 38, .25) !important; color: #374650 !important; transition: background .15s ease; }
.soasy-card:hover { background: rgba(12, 127, 122, .06); }
.soasy-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; margin-bottom: 6px; }
.soasy-card strong { font-family: 'Barlow Condensed', sans-serif; font-size: 1.35rem; font-weight: 600; text-transform: uppercase; color: #0F1C26; line-height: 1.1; }
.soasy-card .soasy-meta { margin: 0 !important; }
.soasy-prose .nav-links { display: flex; gap: 8px; flex-wrap: wrap; font: 500 .8rem 'IBM Plex Mono', monospace; }
.soasy-prose .nav-links .page-numbers { padding: 8px 12px; border: 1px solid rgba(15, 28, 38, .25); border-bottom-width: 1px; }
.soasy-prose .nav-links .current { background: #0F1C26; color: #EEF3F5; }
.soasy-404 { min-height: 50vh; }
.alignwide { max-width: 1180px; }
.alignfull { max-width: none; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
