/* One shared set of rows aligns adjacent cards, including long product names. */
.product-grid{column-gap:16px;row-gap:12px;align-items:stretch}
.product-card{display:grid;grid-template-rows:subgrid;grid-row:span 6;row-gap:10px;padding:12px;align-content:start}
.product-card>.product-image-link{grid-row:1;align-self:start;margin:0;width:100%;aspect-ratio:3/4;background:rgba(255,255,255,.18)}
.product-card>h3{grid-row:2;min-height:0;margin:0;font-size:1.125rem;line-height:1.35;overflow-wrap:anywhere}
.product-card>.pack-choices{grid-row:3;align-self:start}
.product-card>.card-icons{grid-row:4;align-self:start}
.product-card>.product-price{grid-row:5;align-self:end;margin:0;padding-top:4px}
.product-card>.primary{grid-row:6;align-self:end;margin:0;width:100%}
.pack-choices{display:flex;flex-wrap:wrap;align-items:flex-start;gap:7px;margin:0;min-width:0}
.pack-choice{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;min-height:44px;border-radius:12px;border:1px solid #80aeb4;background:#f7ffffa8;color:#134d59;font-size:1rem;font-weight:600;line-height:1.2}
.pack-choice[aria-pressed=true]{background:#087f8d;border-color:#087f8d;color:white;box-shadow:0 3px 9px #12666d20}
.pack-choice:not(:disabled):hover{box-shadow:0 0 0 2px #168b94}.pack-choice:disabled{text-decoration:line-through;opacity:.55}.pack-stock{display:block;margin:8px 0 16px}
.card-icons{display:grid;grid-template-columns:repeat(var(--traits-count,3),minmax(0,1fr));gap:6px;margin:0;color:#154c56}
.card-trait{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;min-width:0;font-size:1rem;line-height:1.2;overflow-wrap:anywhere}
.trait-art{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:radial-gradient(circle at 30% 25%,#fff,#ecf8f2);border:1px solid #97c4b5;border-radius:50%;width:52px;height:52px;padding:4px;box-shadow:inset 0 0 0 3px #ffffffb0}
.card-icons .trait-art svg{width:100%;height:100%;stroke-width:1.5}
.card-icons .card-trait>span:last-child{font-size:1rem}
.product-detail{grid-template-columns:minmax(240px,400px) minmax(0,1fr);gap:26px;align-items:start}
.detail-photo{width:100%;min-height:0;aspect-ratio:var(--photo-ratio,2/3);padding:0;overflow:hidden;display:block;border-radius:22px;background:#ffffff26;align-self:start}
.detail-photo picture{display:block;width:100%;height:100%}
.detail-photo img{display:block;width:100%;height:100%;max-height:none;max-width:none;object-fit:contain}
.product-detail h1{font-size:1.85rem;line-height:1.2;overflow-wrap:anywhere;margin-bottom:12px}
.trait-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:660px;gap:10px;margin:18px 0}
.trait-tile{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;text-align:center;gap:8px;padding:12px 8px;border-radius:16px;background:#f5ffff85;border:1px solid #ffffffc9;font-size:1rem;font-weight:600;line-height:1.25;min-width:0;overflow-wrap:anywhere}
.trait-tile .trait-art{width:76px;height:76px;padding:7px}.trait-tile .trait-art svg{width:100%;height:100%;stroke-width:1.5}
.buy-panel{padding:16px;margin:18px 0;background:#f7ffff94;gap:20px;justify-content:flex-start}.buy-panel>.primary{margin-left:auto}.buy-panel .product-price{font-size:2rem}
@supports not (grid-template-rows:subgrid){.product-card{display:flex;flex-direction:column}.product-card>h3{min-height:4.1em}.product-card>.card-icons{min-height:7rem}.product-card>.product-price{margin-top:auto}}
@media(max-width:600px){.trait-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1400px){.product-detail{grid-template-columns:minmax(300px,430px) minmax(0,1fr)}}
@media(max-width:900px){.product-detail{grid-template-columns:minmax(0,1fr)}.detail-photo{max-width:430px;margin:0 auto}.product-detail h1{font-size:1.65rem}}
@media(max-width:760px){.product-card{padding:10px;row-gap:9px}.product-card>h3{font-size:1.125rem}.card-icons{gap:4px;grid-template-columns:repeat(var(--traits-count,3),minmax(0,1fr))}.card-trait{font-size:1rem}.trait-art{width:42px;height:42px;padding:3px}.pack-choice{padding:7px 8px}.trait-tile .trait-art{width:64px;height:64px}.detail-photo{max-width:390px}.buy-panel{gap:12px}.buy-panel>.primary{margin-left:0;flex:1}.product-detail{gap:16px}}
@media(max-width:760px){.product-card>.card-icons{grid-template-columns:1fr;gap:7px}.card-trait{flex-direction:row;text-align:left;gap:8px}.card-trait>span:last-child{flex:1}}
