/* Local Home only. Square methodology cards use existing theme colours and photos. */
.execution-section { background: var(--bg); }
.execution-header { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .7fr); align-items: end; gap: 72px; margin-bottom: 40px; text-align: left; }
.execution-header .execution-heading { min-width: 0; }
.execution-header h2 { max-width: 690px; margin: 0; font-family: var(--font-heading); font-size: clamp(36px, 4vw, 56px); line-height: 1; }
.execution-header h2 em { color: var(--text); font-style: normal; }
.execution-header .section-kicker { color: var(--text); margin-bottom: 14px; }
.execution-header > p { max-width: 510px; margin: 0 0 4px; color: #5a6472; font-size: 13px; line-height: 1.75; text-align: left; }
.execution-grid { display: flex; flex-wrap: wrap; justify-content: center; align-items: start; gap: 18px; padding: 0; margin: 0; list-style: none; }
.execution-card { position: relative; flex: 0 0 calc((100% - 54px) / 4); min-width: 0; aspect-ratio: 1; padding: 20px 14px 14px; display: grid; grid-template-rows: minmax(0, .24fr) minmax(0, .44fr) minmax(0, .32fr); gap: 5px; border: 1px solid var(--border); border-radius: 14px; background: #fff; box-shadow: 0 5px 16px rgba(22,35,59,.06); text-align: center; }
.execution-number { position: absolute; top: 0; left: 0; width: 48px; height: 48px; padding: 6px 19px 0 0; clip-path: polygon(0 0, 100% 0, 0 100%); border-radius: 13px 0 0 0; background: var(--text); color: #fff; font-family: var(--font-heading); font-size: 20px; font-weight: 700; line-height: 1; }
.execution-card h3 { align-self: center; margin: 0; color: var(--text); font-family: var(--font-heading); font-size: clamp(17px, 1.7vw, 23px); line-height: 1.05; }
.execution-image { display: block; width: 100%; height: 100%; min-height: 0; border-radius: 7px; object-fit: cover; }
.execution-card p { align-self: center; margin: 0; color: var(--text-muted); font-size: clamp(10px, .9vw, 12px); line-height: 1.4; overflow-wrap: anywhere; }
.execution-principles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; list-style: none; margin: 26px 0 0; padding: 24px; border-radius: 14px; background: var(--text); color: var(--text-light); }
.execution-principles li { min-width: 0; padding-left: 14px; border-left: 2px solid var(--amber); }
.execution-principles h3 { margin: 0 0 7px; color: var(--text-light); font-family: var(--font-heading); font-size: 20px; line-height: 1.15; }
.execution-principles p { margin: 0; color: var(--text-light); font-size: 11px; line-height: 1.6; }
@media (max-width: 1023px) {
    .execution-header { gap: 35px; }
    .execution-card { flex-basis: calc((100% - 28px) / 3); padding: 18px 11px 11px; border-radius: 12px; }
    .execution-grid { gap: 14px; }
    .execution-card h3 { font-size: clamp(16px, 2.1vw, 21px); }
    .execution-card p { font-size: clamp(9px, 1.25vw, 11px); line-height: 1.35; }
    .execution-principles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .execution-header { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-bottom: 28px; }
    .execution-header h2 { font-size: 34px; }
    .execution-header > p { font-size: 13.5px; }
    .execution-grid { gap: 10px; }
    .execution-card { flex-basis: calc((100% - 10px) / 2); padding: 16px 9px 9px; gap: 3px; border-radius: 10px; }
    .execution-number { width: 34px; height: 34px; padding: 4px 13px 0 0; font-size: 15px; border-top-left-radius: 9px; }
    .execution-card h3 { font-size: clamp(13px, 3.5vw, 19px); line-height: 1.05; }
    .execution-card p { font-size: clamp(9px, 2.35vw, 11px); line-height: 1.25; }
    .execution-image { border-radius: 5px; }
    .execution-principles { grid-template-columns: minmax(0, 1fr); padding: 20px; gap: 16px; }
}
