/* ==========================================================================
   Layout: containers, section rhythm, grids
   ========================================================================== */

.container { width: 100%; margin: 0 auto; }
.w-1200 { max-width: var(--w-1200); }
.w-1160 { max-width: var(--w-1160); }
.w-1100 { max-width: var(--w-1100); }
.w-1000 { max-width: var(--w-1000); }
.w-900  { max-width: var(--w-900); }
.w-820  { max-width: var(--w-820); }
.w-720  { max-width: var(--w-720); }

/* Section padding (horizontal gutter is 28px on home, 24px elsewhere —
   preserved exactly as approved). */
.sec            { padding: 0 24px; }
.sec--g28       { padding: 0 28px; }
.sec-hero-home  { padding: 96px 28px 72px; }
.sec-stats      { padding: 0 28px 88px; }
.sec-intro      { padding: 0 28px 96px; }
.sec-band       { padding: 80px 28px 88px; }
.sec-editions   { padding: 88px 28px 40px; }
.sec-note-home  { padding: 56px 28px 104px; }
.sec-hero       { padding: 80px 24px 24px; }
.sec-hero--tight{ padding: 80px 24px 20px; }
.sec-body       { padding: 20px 24px 56px; }
.sec-cards      { padding: 48px 24px 24px; }
.sec-panel      { padding: 40px 24px; }
.sec-disclaimer { padding: 56px 24px 40px; }
.sec-steps      { padding: 32px 24px 40px; }
.sec-pricing    { padding: 44px 24px 24px; }
.sec-pricing-fine { padding: 24px 24px 60px; }
.sec-about-body { padding: 8px 24px 40px; }
.sec-faq        { padding: 16px 24px 48px; }
.sec-contact    { padding: 80px 24px 60px; }
.sec-404        { padding: 120px 24px; }

.text-center { text-align: center; }

/* Grids ------------------------------------------------------------------- */
.grid { display: grid; }
.grid-2       { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.grid-2--tight{ grid-template-columns: 1fr 1fr; gap: 36px; max-width: 56em; }
.grid-2--panel{ grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.grid-2--intro{ grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 56px; align-items: start; }
.grid-2--contact { grid-template-columns: .85fr 1.15fr; gap: 56px; }
.grid-3       { grid-template-columns: repeat(3, 1fr); gap: 16px; }
.grid-4       { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.grid-4--cards{ grid-template-columns: repeat(4, 1fr); gap: 16px; }
.stack-30 { display: flex; flex-direction: column; gap: 30px; }
.stack-22 { display: flex; flex-direction: column; gap: 22px; }
.stack-14 { display: flex; flex-direction: column; gap: 14px; }

.rule-top { border-top: 1px solid var(--color-line); padding-top: 28px; }
