/* オフキャンバスSNSアイコンの統一サイズ */
.offCanvas__social-icon img {
  width: 40px;     /* 横幅 */
  height: 40px;    /* 高さ */
  object-fit: contain; /* 比率を保って枠内に収める */
  display: inline-block;
}

/* 브랜드 로고 클릭 비활성화 */
.brands-section a,
.brands-carousel a,
[class*="brand"] a {
    pointer-events: none !important;
    cursor: default !important;
}

.brands-section a:hover,
.brands-carousel a:hover,
[class*="brand"] a:hover {
    opacity: 1 !important;
}
/* SEO: H1 output for page titles (converted from h2.title) */
.breadcrumb__content h1.title,
.blog__details-content h1.title,
.project__details-content h1.title,
h1.title{color:var(--heading-color)!important;}
/* UX: keep in-content photos a readable size on PC and mobile */
figure.image{margin:28px auto;text-align:center;}
figure.image img{max-height:520px;width:auto;max-width:100%;height:auto;border-radius:10px;display:block;margin:0 auto;}
figure.image figcaption{background:transparent;color:#666;font-size:13px;line-height:1.7;padding-top:8px;text-align:center;}
.ck-content p > img, .ck-content div > img{max-height:520px;max-width:100%;height:auto;border-radius:10px;}
.ck-content p > img{display:block;margin:20px auto;}
@media (max-width:576px){figure.image img,.ck-content p > img,.ck-content div > img{max-height:300px;}}

/* Brand logo strip: allow clicks on partner school logos */
.brand-area .brand-item a,
.brand-area .brand-item img { pointer-events: auto !important; }
.brand-area .brand-item a { cursor: pointer; }
/* Brand logo strip: uniform logo height */
.brand-area .brand-item { min-height: 90px; }
.brand-area .brand-item img { max-height: 62px; width: auto !important; height: auto !important; max-width: 100%; object-fit: contain; }

/* FIX: inline object-fit is stripped by the HTML sanitizer, so card thumbnails
   with width:100% + a fixed px height were stretching horizontally.
   Re-apply cropping here. */
img[style*="width:100%"][style*="px"],
img[style*="width: 100%"][style*="px"]{
  object-fit: cover;
  object-position: center;
  display: block;
}
/* FIX: icon images inside flex containers were being squashed */
.icon img{ object-fit: contain; }