/* Real artwork, consistent covers and readable project details. */
.project-grid { gap: 34px 28px; }
.project-card { min-width: 0; border-radius: 16px; box-shadow: none; }
.project-card:hover { transform: translateY(-3px); box-shadow: 0 14px 36px #122c4610; }
.project-visual.project-cover {
  display: block;
  padding: 0;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #eef1f3;
  border-radius: 0;
  direction: ltr;
}
.project-cover > img {
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transform: none;
  transition: transform .35s ease;
}
.project-card:hover .project-cover > img { transform: scale(1.015); }
.project-cover .project-tag { top: 18px; left: 18px; right: auto; font-weight: 500; background: #fffffff2; border: 1px solid #ffffff80; }
html[dir=rtl] .project-cover .project-tag { left: auto; right: 18px; direction: rtl; }
.project-caption { min-height: 106px; padding: 23px 25px; }
.project-caption > span:first-child { min-width: 0; }
.project-caption small { line-height: 1.6; margin-top: 5px; }
.circle-arrow { flex-shrink: 0; }
.work-view-label { display: block; color: #0065cd; font-size: .8rem; font-weight: 600; margin-top: 8px; }
.service-thumbnail { aspect-ratio: 4 / 3; height: auto; min-height: 0; margin-top: 15px; background: #eef1f3; }
.service-thumbnail > img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; transform: none; }
.service-row { min-width: 0; }
.service-main { min-width: 0; }
.project-dialog { width: min(1140px, calc(100% - 48px)); max-width: 1140px; max-height: 92dvh; overflow: auto; overscroll-behavior: contain; background: #fff; }
.project-dialog::backdrop { background: #061324c9; }
.dialog-close { position: sticky; display: grid; place-items: center; top: 14px; margin: 14px 14px -58px auto; width: 44px; height: 44px; background: #fff; z-index: 4; color: #142b43; box-shadow: 0 3px 14px #152b4215; }
html[dir=rtl] .dialog-close { left: auto; right: auto; margin: 14px auto -58px 14px; }
.dialog-grid { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; padding: 70px 38px 35px; gap: 35px; }
.dialog-image { padding: 0; height: auto; max-height: none; overflow: visible; border-radius: 12px; background: #eef1f3; }
.dialog-image > img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; border-radius: 12px; }
.dialog-content { padding: 0; min-width: 0; }
.dialog-content h2 { font-size: clamp(2rem, 3vw, 2.8rem); margin-bottom: 18px; }
.dialog-content > p { font-size: 1rem; }
.dialog-content .eyebrow { margin-bottom: 15px; }
.dialog-content .dialog-note { font-size: .82rem; }
.dialog-content .button { font-size: .875rem; }
.dialog-gallery-section { padding: 32px 38px 38px; border-top: 1px solid #e2e9ef; background: #f7f9fb; }
.dialog-gallery-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.dialog-gallery-heading h3 { font-size: 1.4rem; }
.dialog-gallery-heading p { font-size: .85rem; }
.dialog-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.dialog-gallery figure { margin: 0; min-width: 0; }
.dialog-gallery figure:first-child { grid-column: 1 / -1; }
.dialog-gallery figure > a { display: block; background: #e9eef3; padding: 16px; border: 1px solid #dce4ed; border-radius: 10px; }
.dialog-gallery img { width: 100%; height: auto; max-width: 100%; object-fit: contain; border-radius: 4px; }
.dialog-gallery figcaption { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 13px 2px 0; color: #546477; font-size: .875rem; }
.gallery-enlarge { white-space: nowrap; color: #0065cd; font-weight: 600; }
.dialog-gallery-section.is-profile .dialog-gallery { grid-template-columns: repeat(3, 1fr); }
.dialog-gallery-section.is-profile figure:first-child { grid-column: auto; }
.dialog-gallery-section.is-profile figure > a { padding: 12px; }
@media(max-width:850px) {
  .dialog-grid { grid-template-columns: 1fr; padding: 70px 28px 30px; gap: 30px; }
  .dialog-image { max-width: 650px; width: 100%; margin-inline: auto; }
  .dialog-content { padding: 0; }
  .dialog-gallery-section { padding: 30px 28px; }
  .dialog-gallery-section.is-profile .dialog-gallery { grid-template-columns: 1fr 1fr; }
  .service-thumbnail { width: 170px; margin: 0; }
}
@media(max-width:600px) {
  .project-grid { gap: 26px; }
  .project-cover .project-tag { font-size: .68rem; top: 13px; left: 13px; padding: 6px 10px; }
  html[dir=rtl] .project-cover .project-tag { right: 13px; }
  .project-caption { padding: 19px 20px; }
  .project-caption strong { font-size: 1.2rem; }
  .work-view-label { font-size: .8rem; }
  .service-thumbnail { width: 100%; margin-top: 25px; }
  .project-dialog { width: calc(100% - 20px); max-height: 94dvh; border-radius: 16px; }
  .dialog-grid { padding: 68px 20px 28px; gap: 25px; }
  .dialog-content h2 { font-size: 2rem; }
  .dialog-content .button { width: 100%; font-size: .8rem; gap: 15px; }
  .dialog-gallery-section { padding: 27px 20px; }
  .dialog-gallery-heading { display: block; }
  .dialog-gallery-heading p { margin-top: 8px; }
  .dialog-gallery, .dialog-gallery-section.is-profile .dialog-gallery { grid-template-columns: 1fr; gap: 25px; }
  .dialog-gallery figure:first-child { grid-column: auto; }
  .dialog-gallery figure > a, .dialog-gallery-section.is-profile figure > a { padding: 9px; }
  .dialog-gallery figcaption { font-size: .8rem; gap: 12px; }
}
@media(prefers-reduced-motion:reduce) {
  .project-card, .project-cover > img { transition: none; }
  .project-card:hover, .project-card:hover .project-cover > img { transform: none; }
}
