.front354-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(130px,auto);gap:22px;margin-top:25px;align-items:center}.front354-el{min-width:0;overflow-wrap:anywhere}.front354-tl{grid-column:1}.front354-tc{grid-column:2}.front354-tr{grid-column:3}.front354-ml{grid-column:1}.front354-mc{grid-column:2}.front354-mr{grid-column:3}.front354-bl{grid-column:1}.front354-bc{grid-column:2}.front354-br{grid-column:3}.front354-text{padding:16px;font-size:17px;line-height:1.65}.front354-frame{margin:0;width:100%;aspect-ratio:4/3;overflow:hidden}.front354-frame img{width:100%;height:100%;object-fit:cover}.front354-rounded{border-radius:24px}.front354-circle{border-radius:50%;aspect-ratio:1}.front354-oval{border-radius:50%;aspect-ratio:1.45}.front354-square{border-radius:0}.front354-polaroid{padding:10px 10px 32px;background:#fff;box-shadow:0 9px 22px #0002}.front354-shadow{border-radius:12px;box-shadow:0 14px 30px #0003}.front354-classic{padding:10px;border:8px ridge #c4b49a;background:#fff;box-shadow:0 6px 16px #0003}@media(max-width:800px){.front354-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.front354-el{grid-column:auto!important}}@media(max-width:580px){.front354-grid{grid-template-columns:1fr}.front354-el{grid-column:1!important}.front354-frame{max-width:100%}}
/* 3.55: flexible widths, without breaking existing layouts. */
.front354-grid{grid-auto-flow:row dense;align-items:stretch}
.front354-el.front355-wide{grid-column:span 2}
.front354-el.front355-full{grid-column:1/-1}
@media(max-width:800px){.front354-el.front355-wide{grid-column:span 2!important}.front354-el.front355-full{grid-column:1/-1!important}}
@media(max-width:580px){.front354-el.front355-wide,.front354-el.front355-full{grid-column:1!important}}

/* 3.57: explicit start columns for merged 2 + 1 / 1 + 2 rows. */
@media(min-width:801px){
.front354-el.front355-wide.front354-tl,.front354-el.front355-wide.front354-ml,.front354-el.front355-wide.front354-bl{grid-column:1/span 2}
.front354-el.front355-wide.front354-tc,.front354-el.front355-wide.front354-tr,.front354-el.front355-wide.front354-mc,.front354-el.front355-wide.front354-mr,.front354-el.front355-wide.front354-bc,.front354-el.front355-wide.front354-br{grid-column:2/span 2}
}

/* 3.58: row spans for vertical 2+1 / 1+2 and 2x2 blocks. */
@media(min-width:801px){
.front354-grid{grid-template-rows:repeat(3,minmax(170px,auto));grid-auto-flow:row dense;align-items:stretch}
.front354-el.front354-tl,.front354-el.front354-tc,.front354-el.front354-tr{grid-row-start:1}
.front354-el.front354-ml,.front354-el.front354-mc,.front354-el.front354-mr{grid-row-start:2}
.front354-el.front354-bl,.front354-el.front354-bc,.front354-el.front354-br{grid-row-start:3}
.front354-el.front358-tall{grid-row-end:span 2}
.front354-el.front358-tall .front354-frame{height:100%;aspect-ratio:auto}
}
@media(max-width:800px){.front354-el.front358-tall{grid-row:auto!important}.front354-el.front358-tall .front354-frame{height:auto;aspect-ratio:4/3}}

/* 3.58.1: merged image tiles fill both grid rows, not just two columns. */
@media(min-width:801px){
.front354-grid>.front354-el.front358-tall{min-height:0;align-self:stretch;display:flex;flex-direction:column}
.front354-grid>.front354-el.front358-tall>.front354-frame{flex:1 1 auto;height:100%;min-height:0;aspect-ratio:auto!important}
.front354-grid>.front354-el.front358-tall>.front354-frame>img{display:block;width:100%;height:100%;min-height:100%;object-fit:cover;object-position:center}
.front354-grid>.front354-el.front358-tall>.front354-frame.front354-circle{width:min(100%,380px);height:auto;aspect-ratio:1!important;flex:0 0 auto;align-self:center}
.front354-grid>.front354-el.front358-tall>.front354-frame.front354-oval{width:100%;height:auto;aspect-ratio:1.45!important;flex:0 0 auto}
}

/* 3.58.2: optional heading inside a flexible text tile. */
.front3582-heading{font-family:Georgia,'Times New Roman',serif;color:var(--green,#0b4a36);font-size:clamp(1.05rem,1.65vw,1.4rem);line-height:1.25;margin:0 0 .6em}

/* 3.59: flexible tile spacing and image fitting */
.front354-grid.front359-gap-compact{gap:8px}
.front354-grid.front359-gap-normal{gap:22px}
.front354-grid.front359-gap-spacious{gap:38px}
.front354-frame img.front359-fit-contain{object-fit:contain!important;background:#f5f7f3}
.front354-frame img.front359-fit-cover{object-fit:cover!important}
.front359-focus-center{object-position:center}.front359-focus-top{object-position:center top}.front359-focus-bottom{object-position:center bottom}.front359-focus-left{object-position:left center}.front359-focus-right{object-position:right center}.front359-focus-top-left{object-position:left top}.front359-focus-top-right{object-position:right top}.front359-focus-bottom-left{object-position:left bottom}.front359-focus-bottom-right{object-position:right bottom}
@media(max-width:580px){.front354-grid.front359-gap-spacious{gap:22px}}
/* Override legacy centered cropping in tall tiles. */
.front354-frame img.front359-focus-center{object-position:center!important}
.front354-frame img.front359-focus-top{object-position:center top!important}
.front354-frame img.front359-focus-bottom{object-position:center bottom!important}
.front354-frame img.front359-focus-left{object-position:left center!important}
.front354-frame img.front359-focus-right{object-position:right center!important}
.front354-frame img.front359-focus-top-left{object-position:left top!important}
.front354-frame img.front359-focus-top-right{object-position:right top!important}
.front354-frame img.front359-focus-bottom-left{object-position:left bottom!important}
.front354-frame img.front359-focus-bottom-right{object-position:right bottom!important}
