/* KORO / CEREA - scoped component. Does not alter the site's global CSS. */
.koro-cerea-gallery {
  --kcg-ink: #1b2b41;
  --kcg-pink: #be94a0;
  --kcg-paper: #fbfaf8;
  --kcg-muted: #6b7180;
  --kcg-rule: #d6d5d2;
  color: var(--kcg-ink);
  background: var(--kcg-paper);
  padding: clamp(52px,7vw,112px) 20px clamp(64px,8vw,126px);
  font-family: inherit;
}
.koro-cerea-gallery *, .koro-cerea-gallery *::before, .koro-cerea-gallery *::after,
.kcg-lightbox *, .kcg-lightbox *::before, .kcg-lightbox *::after { box-sizing: border-box; }
.kcg-shell { max-width: 1280px; margin: 0 auto; }
.kcg-lead { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(285px,.75fr); gap: clamp(28px,5vw,92px); align-items: end; padding-bottom: clamp(30px,4vw,54px); }
.kcg-eyebrow, .kcg-index, .kcg-smallcap { letter-spacing: .18em; font-size: .69rem; font-weight: 700; line-height: 1.6; }
.kcg-eyebrow { margin: 0 0 28px; display:flex; align-items:center; gap:11px; }
.kcg-dot { display:inline-block; width:9px; height:9px; border-radius:50%; background: var(--kcg-pink); }
.kcg-lead h2 { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.5rem,5vw,5.6rem); line-height:1.06; letter-spacing:-.045em; font-weight:400; margin:0; }
.kcg-lead h2 em { color: var(--kcg-pink); font-weight:400; }
.kcg-lead-aside { padding-bottom:6px; }
.kcg-index { color: var(--kcg-pink); display:block; margin-bottom:22px; }
.kcg-lead-aside p { font-size: clamp(.95rem,1.4vw,1.1rem); line-height:1.68; margin:0 0 12px; }
.kcg-lead-aside .kcg-subnote { font-size:.78rem; line-height:1.55; color:var(--kcg-muted); }
.kcg-photo-grid { display:grid; grid-template-columns: 1.42fr 1fr; grid-template-rows: repeat(2,minmax(0,1fr)); column-gap:18px; row-gap:16px; }
.kcg-photo { margin:0; min-width:0; display:flex; flex-direction:column; background: transparent; }
.kcg-photo-primary { grid-row: 1 / 3; }
.kcg-photo .kcg-expand { position:relative; width:100%; display:grid; place-items:center; padding:0; margin:0; border:0; color:inherit; background:#e7e9e8; overflow:hidden; cursor:zoom-in; flex:1; min-height:0; }
.kcg-photo .kcg-expand:focus-visible { outline:3px solid var(--kcg-pink); outline-offset:4px; }
.kcg-photo .kcg-expand img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; transition:transform .28s ease; }
@media (hover:hover) and (prefers-reduced-motion: no-preference) { .kcg-photo .kcg-expand:hover img { transform: scale(1.015); } }
.kcg-photo-primary .kcg-expand { aspect-ratio: 4 / 3; }
.kcg-photo-second .kcg-expand, .kcg-photo-third .kcg-expand { aspect-ratio: 2.95 / 1.86; }
.kcg-zoom { position:absolute; top:17px; right:17px; width:37px; height:37px; display:grid; place-items:center; border-radius:100%; background:rgba(251,250,248,.93); color:var(--kcg-ink); font-size:20px; box-shadow:0 1px 15px #0001; }
.kcg-photo figcaption { display:flex; gap:14px; padding-top:13px; font-size:.72rem; letter-spacing:.05em; font-weight:700; text-transform:uppercase; color:var(--kcg-pink); }
.kcg-photo figcaption span { color:var(--kcg-ink); font-weight:500; }
.kcg-plan-row { margin-top: clamp(48px,6vw,88px); padding-top: clamp(24px,4vw,46px); display:grid; grid-template-columns:minmax(0,1.3fr) minmax(295px,.7fr); gap:clamp(24px,5.5vw,92px); align-items:center; border-top: 1px solid var(--kcg-rule); }
.kcg-plan-photo .kcg-expand { aspect-ratio:4/3; }
.kcg-plan-copy { max-width: 410px; }
.kcg-plan-copy h3 { font: 400 clamp(2rem,4.3vw,4.2rem)/1.1 Georgia, 'Times New Roman', serif; letter-spacing:-.04em; margin:0 0 28px; }
.kcg-plan-copy > p { color:var(--kcg-ink); line-height:1.73; font-size:1rem; margin:0; }
.kcg-divider { height:1px; background:var(--kcg-rule); margin:35px 0 24px; }
.kcg-plan-copy .kcg-smallcap { color:var(--kcg-pink); font-size:.62rem; display:block; margin-bottom:11px; }
.kcg-plan-copy .kcg-small { color:var(--kcg-muted); font-size:.79rem; line-height:1.7; }
.kcg-lightbox { background:#121a26; color:#fff; border:0; width:min(96vw,1600px); max-width:initial; max-height:96vh; padding:14px 18px 20px; overflow:hidden; }
.kcg-lightbox::backdrop { background:rgba(8,13,19,.91); }
.kcg-lightbox-layout { display:flex; flex-direction:column; height:calc(96vh - 34px); max-height:1050px; }
.kcg-lightbox-top { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:48px; font: 600 12px/1.3 system-ui,sans-serif; letter-spacing:.09em; }
.kcg-lightbox-close { color:#fff; background:none; border:1px solid #6a7380; padding:10px 15px; cursor:pointer; font:inherit; }
.kcg-lightbox-image-wrap { flex:1; min-height:0; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.kcg-lightbox-image-wrap img { width:auto; height:auto; min-height:0; min-width:0; max-width:calc(100% - 90px); max-height:100%; object-fit:contain; }
.kcg-lightbox-arrow { flex:none; width:38px; height:56px; color:#fff; background:#ffffff15; border:1px solid #ffffff55; font-size:24px; cursor:pointer; }
.kcg-lightbox-caption { color:#d9dce2; font: 400 12px/1.5 system-ui,sans-serif; margin:10px 0 2px; text-align:center; }
@media (max-width:880px) {
 .kcg-lead, .kcg-plan-row { grid-template-columns:1fr; gap:25px; }
 .kcg-lead-aside { max-width:680px; }
 .kcg-plan-copy { max-width:700px; }
}
@media (max-width:680px) {
 .koro-cerea-gallery { padding-left:13px; padding-right:13px; }
 .kcg-lead h2 { font-size: clamp(2.3rem,9vw,3.5rem); }
 .kcg-photo-grid { display:flex; flex-direction:column; row-gap:24px; }
 .kcg-photo-primary .kcg-expand { aspect-ratio:4/3; }
 .kcg-photo-second .kcg-expand { aspect-ratio:4/3; }
 .kcg-photo-third .kcg-expand { aspect-ratio:16/9; }
 .kcg-plan-row { margin-top:50px; }
 .kcg-lightbox { width:100vw; max-height:100dvh; padding:12px 8px; }
 .kcg-lightbox-layout { height:calc(100dvh - 26px); }
 .kcg-lightbox-image-wrap { gap:2px; }
 .kcg-lightbox-arrow { width:30px; }
 .kcg-lightbox-image-wrap img { max-width:calc(100% - 70px); }
}
@media (prefers-reduced-motion:reduce) { .kcg-photo .kcg-expand img { transition:none; } }
