/* cases.css: component-owned rules. Shared priority order is declared in tokens.css. */
@layer presentation {
/* cases */
#cases {
  grid-template-columns: 90px 300px 1fr;
  padding-top: var(--space-65);
  padding-bottom: var(--space-65);
}

#cases>.section-intro {
  grid-column: 2/4;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-45);
}

#cases .case-introduction {
  max-width: 330px;
  padding-top: var(--space-6);
}

#cases .case-introduction p {
  margin: 0;
  font-size: var(--font-13);
}

#cases .case-introduction .small-note {
  margin-top: var(--space-14);
}

#cases .case-editorial {
  grid-column: 2/4;
  display: grid;
  grid-template-columns: repeat(12,minmax(0,1fr));
  gap: var(--space-32) var(--space-24);
  min-width: 0;
  align-items: start;
  margin-top: var(--space-10);
}

#cases .editorial-case {
  padding: 0;
  text-align: left;
  display: block;
  width: 100%;
  min-width: 0;
  position: relative;
}

#cases .case-photograph {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 1.65;
  background: var(--color-e7eceb);
}

#cases .case-photograph img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  transition: transform 1s ease,filter .7s ease;
}

#cases .case-photograph:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg,transparent 25%,var(--color-ffffff20) 48%,transparent 68%);
  transform: translateX(-120%);
  transition: transform 1.2s;
  pointer-events: none;
}

#cases .editorial-case:hover .case-photograph:after {
  transform: translateX(120%);
}

#cases .editorial-case:hover img {
  transform: scale(1.015);
  filter: brightness(1.025);
}

#cases .editorial-case:focus-visible {
  outline: 2px solid var(--color-ink);
  outline-offset: var(--space-7);
}

#cases .case-caption {
  display: block;
  padding-top: var(--space-15);
  border-bottom: 1px solid var(--color-b7c3cf65);
  padding-bottom: var(--space-18);
}

#cases .case-label {
  display: flex;
  align-items: center;
  gap: var(--space-12);
  font: var(--font-10)/1.7 Georgia,var(--sans);
  letter-spacing: .12em;
}

#cases .case-label .case-arrow {
  margin-left: auto;
  font-size: var(--font-17);
  letter-spacing: 0;
}

#cases .case-caption strong {
  display: block;
  font: var(--font-22)/1.6 var(--serif);
  font-weight: 400;
  letter-spacing: .065em;
  margin: var(--space-8) 0;
}

#cases .case-material {
  display: block;
  font-size: var(--font-11);
  letter-spacing: .025em;
  line-height: 1.8;
}

#cases .editorial-case.office {
  grid-column: 1/8;
  grid-row: 1;
}

#cases .editorial-case.office .case-photograph {
  aspect-ratio: 1.8;
}

#cases .editorial-case.office .case-caption strong {
  font-size: var(--font-27);
}

#cases .editorial-case.commercial {
  grid-column: 9/13;
  grid-row: 1;
  margin-top: var(--space-50);
}

#cases .editorial-case.commercial .case-photograph {
  aspect-ratio: 1.35;
}

#cases .editorial-case.hotel {
  grid-column: 1/4;
  grid-row: 2;
  margin-top: var(--space-15);
}

#cases .editorial-case.hotel .case-photograph {
  aspect-ratio: 1.35;
}

#cases .editorial-case.home {
  grid-column: 5/8;
  grid-row: 2;
  margin-top: var(--space-65);
}

#cases .editorial-case.home .case-photograph {
  aspect-ratio: 1.55;
}

#cases .editorial-case.public {
  grid-column: 9/13;
  grid-row: 2;
}

#cases .editorial-case.public .case-photograph {
  aspect-ratio: 1.55;
}

#detail-dialog.case-detail {
  width: min(850px,92vw);
  padding: var(--space-32);
}

#detail-dialog.case-detail #dialog-title {
  font-size: var(--font-29);
  line-height: 1.65;
  margin: var(--space-17) 0 var(--space-21);
  letter-spacing: .065em;
  white-space: pre-line;
}

#detail-dialog.case-detail .case-detail-photo {
  aspect-ratio: 1.75;
  object-fit: cover;
  max-height: none;
  margin: 0 0 var(--space-23);
}

#detail-dialog.case-detail .case-detail-label {
  font: var(--font-10)/1.8 Georgia,var(--sans);
  letter-spacing: .12em;
  margin-bottom: var(--space-10);
}

#detail-dialog.case-detail .case-specification {
  display: grid;
  grid-template-columns: 1fr 1.7fr;
  gap: var(--space-24);
  border-top: 1px solid var(--color-line);
  padding-top: var(--space-20);
}

#detail-dialog.case-detail dl {
  margin: 0;
}

#detail-dialog.case-detail dt {
  font-size: var(--font-11);
  color: var(--color-muted);
  margin-bottom: var(--space-5);
}

#detail-dialog.case-detail dd {
  margin: 0 0 var(--space-16);
  font-size: var(--font-13);
}

#detail-dialog.case-detail .case-intent h3 {
  font-size: var(--font-23);
  margin-bottom: var(--space-10);
}

#detail-dialog.case-detail .case-intent p {
  font-size: var(--font-13);
  line-height: 1.95;
}

#detail-dialog.case-detail .case-related {
  margin-top: var(--space-20);
  display: inline-flex;
  gap: var(--space-20);
  border-bottom: 1px solid var(--color-8099a8);
  padding: var(--space-6) 0;
  font-size: var(--font-12);
}

#detail-dialog.case-detail .case-demo-note {
  border-top: 1px solid var(--color-b7c3cf60);
  padding-top: var(--space-15);
  margin-top: var(--space-22);
  font-size: var(--font-11);
  line-height: 1.8;
}

/* cases */
@media(max-width:1150px) {
#cases {
  grid-template-columns: 65px 230px 1fr;
}

#cases .case-editorial {
  gap: var(--space-26) var(--space-18);
}

#cases .case-caption strong {
  font-size: var(--font-19);
}

#cases .editorial-case.office .case-caption strong {
  font-size: var(--font-24);
}
}

/* cases */
@media(max-width:850px) {
#cases {
  grid-template-columns: 65px 1fr;
  padding: var(--space-45) 5%;
}

#cases>.section-intro {
  grid-column: 2;
  display: block;
}

#cases .case-introduction {
  margin-top: var(--space-20);
  max-width: none;
}

#cases .case-editorial {
  grid-column: 2;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: var(--space-28) var(--space-20);
}

#cases .editorial-case.office {
  grid-column: 1/7;
  grid-row: 1;
}

#cases .editorial-case.commercial {
  grid-column: 1/4;
  grid-row: 2;
  margin-top: 0;
}

#cases .editorial-case.hotel {
  grid-column: 4/7;
  grid-row: 2;
  margin-top: var(--space-45);
}

#cases .editorial-case.home {
  grid-column: 1/4;
  grid-row: 3;
  margin-top: 0;
}

#cases .editorial-case.public {
  grid-column: 4/7;
  grid-row: 3;
  margin-top: var(--space-30);
}
}

/* cases */
@media(max-width:560px) {
#cases {
  display: block;
  padding: var(--space-45) 7%;
}

#cases>.section-intro {
  display: block;
}

#cases .case-introduction {
  padding: 0;
  margin-top: var(--space-20);
}

#cases .case-editorial {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: var(--space-27) var(--space-16);
  margin-top: var(--space-30);
}

#cases .editorial-case.office {
  grid-column: 1/3;
  grid-row: 1;
}

#cases .editorial-case.office .case-photograph {
  aspect-ratio: 1.5;
}

#cases .editorial-case.commercial {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
}

#cases .editorial-case.hotel {
  grid-column: 2;
  grid-row: 2;
  margin-top: var(--space-40);
}

#cases .editorial-case.home {
  grid-column: 1;
  grid-row: 3;
  margin: 0;
}

#cases .editorial-case.public {
  grid-column: 2;
  grid-row: 3;
  margin-top: var(--space-30);
}

#cases .case-caption {
  padding-top: var(--space-10);
  padding-bottom: var(--space-12);
}

#cases .case-label {
  font-size: var(--font-9);
  gap: var(--space-5);
  letter-spacing: .025em;
}

#cases .case-label .case-arrow {
  font-size: var(--font-14);
}

#cases .case-caption strong {
  font-size: var(--font-17);
  line-height: 1.7;
  letter-spacing: .02em;
  margin: var(--space-7) 0;
}

#cases .editorial-case.office .case-caption strong {
  font-size: var(--font-23);
}

#cases .case-material {
  font-size: var(--font-11);
  line-height: 1.8;
}

#detail-dialog.case-detail {
  width: 92vw;
  padding: var(--space-33) var(--space-21) var(--space-24);
}

#detail-dialog.case-detail #dialog-title {
  font-size: var(--font-25);
}

#detail-dialog.case-detail .case-detail-photo {
  aspect-ratio: 1.5;
}

#detail-dialog.case-detail .case-specification {
  display: block;
}

#detail-dialog.case-detail .case-intent {
  margin-top: var(--space-15);
}

#detail-dialog.case-detail .case-intent h3 {
  font-size: var(--font-22);
}
}

/* cases */
@media(prefers-reduced-motion:reduce) {
#cases .case-photograph img,
#cases .case-photograph:after {
  transition: none;
}
}

/* typography */
.mobile-case-break {
  display: none;
}

/* typography */
@media(max-width:560px) {
#cases .case-caption strong .mobile-case-break {
  display: block;
}

#cases .case-caption strong .desktop-case-break {
  display: none;
}

#cases .case-material-value {
  display: block;
}
}

/* typography */
#cases .case-introduction p {
  font-size: var(--font-15);
}

#cases .case-label {
  font-size: var(--font-11);
  letter-spacing: .08em;
  gap: var(--space-8);
}

#cases .case-caption strong {
  font-size: var(--font-24);
  letter-spacing: .035em;
  line-height: 1.6;
  text-wrap: balance;
}

#cases .editorial-case.office .case-caption strong {
  font-size: var(--font-28);
}

#cases .case-material {
  font-size: var(--font-13);
  letter-spacing: .01em;
  line-height: 1.85;
}

#cases .editorial-case:hover .case-caption strong {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
  text-decoration-color: var(--color-718b98);
}

#detail-dialog.case-detail .case-detail-label {
  font-size: var(--font-11);
  letter-spacing: .1em;
}

#detail-dialog.case-detail dt {
  font-size: var(--font-13);
}

#detail-dialog.case-detail dd,
#detail-dialog.case-detail .case-intent p {
  font-size: var(--font-15);
}

#detail-dialog.case-detail .case-related {
  font-size: var(--font-14);
  gap: var(--space-22);
}

#detail-dialog.case-detail .case-demo-note {
  font-size: var(--font-13);
}

/* typography */
@media(max-width:850px) {
#cases .case-caption strong {
  font-size: var(--font-23);
}
}

/* typography */
@media(max-width:560px) {
#cases .case-label {
  font-size: var(--font-11);
  letter-spacing: 0;
}

#cases .case-caption strong {
  font-size: var(--font-19);
  line-height: 1.65;
  letter-spacing: 0;
}

#cases .case-caption strong br {
  display: none;
}

#cases .editorial-case.office .case-caption strong {
  font-size: var(--font-23);
}

#cases .editorial-case.office .case-caption strong br {
  display: block;
}

#cases .case-material {
  font-size: var(--font-13);
  letter-spacing: 0;
  text-wrap: pretty;
}
}

/* final-polish */
@media(max-width:560px) {
#cases .case-phrase {
  white-space: nowrap;
}
}

/* final-polish */
@media(max-width:360px) {
#cases .case-caption strong .desktop-case-break {
  display: block;
}
}

/* phase1 */
.case-caption strong {
  word-break: auto-phrase;
  line-break: strict;
  overflow-wrap: normal;
  text-wrap: balance;
}
}

@layer constraints {
/* cases */
#cases .case-introduction .small-note {
  font-size: var(--font-11);
}

/* typography */
#cases .case-introduction .small-note {
  font-size: var(--font-13);
}
}

