/* Shared project preview and sidebar. */
.project-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; align-items: start; }
.gallery-frame { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--line-soft); border-radius: 24px; box-shadow: var(--shadow-float); }
.gallery-view { position: relative; display: grid; place-items: center; background: #f6f5f1; aspect-ratio: 3 / 2; overflow: hidden; }
.gallery-view img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.gallery-view.library-image-square { aspect-ratio: 1 / 1; }
.gallery-view.library-image-square img { object-fit: contain; object-position: center; }

.project-aside { position: sticky; top: calc(var(--header-h) + 20px); display: grid; gap: 14px; align-items: start; }
.project-aside.project-aside-unified { grid-template-columns: minmax(0, 1fr); }
.buy-card { display: grid; min-width: 0; gap: 18px; padding: 26px; background: #fff; border: 1px solid var(--line-soft); border-radius: 22px; box-shadow: var(--shadow-card); }
.buy-card-top { display: flex; align-items: center; justify-content: space-between; }
.buy-card-top .num { color: var(--muted-2); font-size: 14px; }
.buy-card h2 { font-size: 25px; line-height: 1.15; }
.buy-card p { color: var(--muted); font-size: 15px; line-height: 1.55; }
.buy-card-intro { display: grid; gap: 12px; }
.buy-card h2 { overflow-wrap: anywhere; text-wrap: balance; }
.buy-card-self .buy-card-intro h2 { font-family: var(--body); font-size: 17px; font-weight: 700; line-height: 1.35; letter-spacing: 0; text-wrap: balance; }
.buy-card .button { white-space: normal; text-align: center; }
.buy-card .button-download-green { color: #18713b; background: #e5f5eb; border-color: #e5f5eb; }
.buy-card .button-download-green:hover { color: #145e32; background: #d7efdf; border-color: #d7efdf; box-shadow: 0 10px 24px rgba(24, 113, 59, .14); }
.buy-card .button-download-green:focus-visible { outline-color: #18713b; }
.buy-card .button-download-gray { color: var(--ink); background: var(--soft); border-color: var(--soft); }
.buy-card .button-download-gray:hover { color: var(--ink); background: var(--line); border-color: var(--line); box-shadow: 0 10px 24px rgba(17, 17, 17, .08); }
.buy-card .button-download-gray:focus-visible { outline-color: var(--ink); }
.site-benefits-list { display: grid; gap: 16px; list-style: none; }
.site-benefits-list li { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 600; line-height: 1.45; }
.site-benefits-list .i { flex: none; width: 20px; height: 20px; color: var(--accent); }
.design-contents-footer { display: grid; gap: 14px; }
.design-contents-agents { display: flex; align-items: center; justify-content: center; gap: 24px; }
.design-contents-agents img { width: 72px; height: auto; }
.design-contents-agents .design-contents-openai { width: 20px; height: 20px; }
