/* Shared institute + college design tokens. Keep this after the legacy themes.
   Deliberately target text elements, never icon glyphs or slider positioning. */
@font-face {
  font-family: 'Adoro Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/external/650dac2664ae60a7.ttf') format('truetype');
}
@font-face {
  font-family: 'Adoro Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/external/5a87f4b8748eb300.ttf') format('truetype');
}
@font-face {
  font-family: 'Adoro Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/external/22d43f06832a07ed.ttf') format('truetype');
}
:root {
  --adoro-font: 'Adoro Sans', Arial, sans-serif;
  --adoro-ink: #202c45;
  --adoro-copy: #374151;
  --adoro-muted: #596579;
  --adoro-red: #c61920;
  --adoro-red-hover: #a31319;
  --adoro-body: clamp(1rem, .96rem + .2vw, 1.125rem);
  --adoro-small: clamp(.875rem, .85rem + .12vw, 1rem);
  --adoro-h1: clamp(2rem, 1.4rem + 2.4vw, 3.5rem);
  --adoro-h2: clamp(1.625rem, 1.2rem + 1.7vw, 2.75rem);
  --adoro-h3: clamp(1.375rem, 1.15rem + .9vw, 2rem);
  --adoro-h4: clamp(1.125rem, 1rem + .5vw, 1.5rem);
}
html { font-size: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  font-family: var(--adoro-font) !important;
  font-size: var(--adoro-body) !important;
  font-weight: 400;
  line-height: 1.7;
  color: var(--adoro-copy);
}
body :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--adoro-font) !important;
  font-weight: 700 !important;
  font-style: normal;
  line-height: 1.25 !important;
  letter-spacing: -.015em;
  color: var(--adoro-ink);
  overflow-wrap: break-word;
}
body h1 { font-size: var(--adoro-h1) !important; }
body h2 { font-size: var(--adoro-h2) !important; }
body h3 { font-size: var(--adoro-h3) !important; }
body h4 { font-size: var(--adoro-h4) !important; }
body h5 { font-size: var(--adoro-body) !important; }
body h6 { font-size: var(--adoro-small) !important; }
body :is(p, li, dt, dd, label, blockquote, td, th) {
  font-family: var(--adoro-font) !important;
  font-size: inherit;
  line-height: 1.7;
}
body p { font-size: var(--adoro-body) !important; }
body :is(h1, h2, h3, h4, h5, h6) :is(span, b, strong, a) {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit;
}
body a { color: var(--adoro-red); }
body a:hover, body a:focus-visible { color: var(--adoro-red-hover); }
body :is(.text-theme-colored, .text-theme-color-2, .text-primary),
body :is(h1, h2, h3, h4, h5, h6)[style*="color:red"],
body :is(h1, h2, h3, h4, h5, h6)[style*="color: red"] {
  color: var(--adoro-red) !important;
}
body :is(.text-muted, .text-gray, .text-gray-darkgray) { color: var(--adoro-muted) !important; }
body :is(.bg-theme-colored, .bg-dark) { color: #fff; }
body :is(.bg-theme-colored, .bg-dark) :is(h1, h2, h3, h4, h5, h6, p, a),
body .text-white { color: #fff !important; }
body :is(input, select, textarea, button, .btn) {
  font-family: var(--adoro-font) !important;
  font-size: 1rem !important;
  line-height: 1.5;
}
body :is(input, select, textarea) { max-width: 100%; }
body :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select) {
  min-height: 44px;
}
body :is(textarea, input, select).form-control { height: auto; padding: .65em .85em; color: var(--adoro-copy); }
body :is(.btn-theme-colored, .btn-theme-color-2, .btn-primary, .contact-form-button-submit) {
  background-color: var(--adoro-red) !important;
  border-color: var(--adoro-red) !important;
  color: #fff !important;
}
body :is(.btn-theme-colored, .btn-theme-color-2, .btn-primary, .contact-form-button-submit):hover {
  background-color: var(--adoro-red-hover) !important;
  border-color: var(--adoro-red-hover) !important;
}
body :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid #b86b00;
  outline-offset: 3px;
}
#header.adoro-header, #footer.adoro-footer { font-family: var(--adoro-font); font-size: var(--adoro-small); }
#header .adoro-header-name a { font-family: var(--adoro-font); }
#header :is(.adoro-header-menu a, .adoro-header-about summary, .adoro-header-toggle) {
  font-family: var(--adoro-font);
  font-size: var(--adoro-small);
}
#header :is(.adoro-header-top a, .adoro-header-contact > span, .adoro-header-hours > span, .adoro-header-hours strong) {
  font-size: .875rem;
}
#header .adoro-header-name a { color: var(--adoro-red); }
#header .adoro-header-top,
#header :is(.adoro-header-menu a:hover, .adoro-header-about summary:hover, .adoro-header-menu a[aria-current='page']),
#footer .adoro-footer-enquiry { background-color: var(--adoro-red); }
#header .adoro-header-nav { border-bottom-color: var(--adoro-red); }
#footer h2 { font-size: var(--adoro-h4) !important; color: #fff; border-bottom-color: var(--adoro-red); }
#footer p, #footer dt { font-size: var(--adoro-small) !important; }
#footer .adoro-footer-bottom-inner { font-size: .875rem; }
/* Legacy utility classes should follow the same scale at every breakpoint. */
body :not(h1, h2, h3, h4, h5, h6):is(.font-16, .font-18, .font-20) { font-size: var(--adoro-body) !important; }
body :not(h1, h2, h3, h4, h5, h6):is(.font-24, .font-28, .font-30, .font-32) { font-size: var(--adoro-h3) !important; }
body :not(h1, h2, h3, h4, h5, h6):is(.font-36, .font-40, .font-42, .font-48) { font-size: var(--adoro-h2) !important; }
body :not(h1, h2, h3, h4, h5, h6):is(.font-54, .font-60, .font-64, .font-72) { font-size: var(--adoro-h1) !important; }
@media (max-width: 767px) {
  body :is(p, li, td, th, a) { overflow-wrap: break-word; }
  #header .adoro-header-menu a, #header .adoro-header-about summary { min-height: 44px; }
}

/* Courses page: consistent card rows without Bootstrap float wrapping. */
.master-courses { background-color: var(--adoro-red); }
.master-courses #master-courses-title {
  margin: 0 0 clamp(24px, 4vw, 40px);
  padding: 0 15px;
  color: #fff;
  text-align: center;
}
.master-courses-list { padding: 0 15px; }
.master-courses-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}
.master-course-card { min-width: 0; display: flex; }
.master-course-card .service-block {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  overflow: hidden;
}
.master-course-card .thumb { flex: none; }
.master-course-card .thumb img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  margin: 0;
}
.master-course-card .content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px !important;
}
.master-course-card h4 { margin-top: 0; padding-bottom: 16px; }
.master-course-card p { margin: 0 0 20px; text-align: left; }
.master-course-card .btn { margin-top: auto !important; white-space: normal; }
@media (min-width: 768px) and (max-width: 1199px) {
  .master-courses-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .master-courses-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .master-course-card .content { padding: 20px !important; }
}

/* Blog listing and responsive editorial photography. */
.latest-blogs { padding: clamp(36px, 6vw, 80px) 0; background: #f4f6f9; }
.latest-blogs > .container { padding-top: 0; padding-bottom: 0; }
.blog-intro { max-width: 800px; margin: 0 auto 40px; text-align: center; }
.blog-intro h1 { margin: 12px 0 20px; }
.blog-category { color: var(--adoro-red); font-size: .875rem; font-weight: 700; letter-spacing: .06em; }
.latest-blogs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; align-items: start; }
.latest-blogs .blog-card { min-width: 0; border: 1px solid #dce2ea; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 6px 24px #202c450a; }
.latest-blogs .blog-card > img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; }
.blog-card-body { padding: 26px; }
.latest-blogs .blog-card h3 { margin: 12px 0 18px; font-size: var(--adoro-h4) !important; }
.latest-blogs .blog-card p { margin: 0 0 22px; }
.blog-article { margin-top: 24px; border-top: 1px solid #dce2ea; padding-top: 16px; }
.blog-article summary { padding: 10px 0; color: var(--adoro-red); font-weight: 700; cursor: pointer; }
.blog-article-content { padding-top: 14px; }
.latest-blogs .blog-article-content h4 { font-size: 1.125rem !important; margin: 20px 0 12px; }
.blog-article-content .btn { white-space: normal; text-align: left; }
@media (min-width: 768px) and (max-width: 1199px) {
  .latest-blogs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .latest-blogs-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .blog-card-body { padding: 22px; }
}

/* Full blog pages use ordinary static URLs and a readable article measure. */
.latest-blogs .blog-card > a { display: block; }
.latest-blogs .blog-card > a img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; }
.latest-blogs .blog-card h3 a { color: var(--adoro-ink); }
.latest-blogs .blog-card h3 a:hover { color: var(--adoro-red); }
.blog-detail { padding: 32px 0 64px; background: #f4f6f9; }
.blog-detail > .container { max-width: 960px; padding-top: 0; padding-bottom: 0; }
.blog-breadcrumbs { margin-bottom: 28px; font-size: var(--adoro-small); }
.blog-detail-article { padding: clamp(20px, 4vw, 48px); background: #fff; border: 1px solid #dce2ea; border-radius: 12px; }
.blog-detail-article h1 { margin: 12px 0 24px; }
.blog-detail-intro { color: var(--adoro-copy); }
.blog-byline { color: var(--adoro-muted); font-size: var(--adoro-small) !important; margin: 20px 0; }
.blog-detail-article > img { display: block; width: 100%; height: auto; border-radius: 8px; margin: 24px 0 36px; }
.blog-detail-content h2 { font-size: var(--adoro-h3) !important; margin: 32px 0 16px; }
.blog-detail-content p { margin-bottom: 24px; }
.blog-detail-content .btn { white-space: normal; }
.blog-related { padding: 32px 0 0; }
.blog-related h2 { font-size: var(--adoro-h3) !important; }
.blog-related li { margin-bottom: 12px; }

/* Photograph crops stay consistent; article images preserve the full composition. */
.latest-blogs-grid { align-items: stretch; }
.latest-blogs .blog-card { display: flex; flex-direction: column; }
.latest-blogs .blog-card > a { overflow: hidden; flex-shrink: 0; }
.latest-blogs .blog-card > a img { object-fit: cover; aspect-ratio: 8 / 5; }
.latest-blogs .blog-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; }
.latest-blogs .blog-read-more { margin-top: auto; white-space: normal; }
.blog-detail-article > img { max-width: 100%; object-fit: contain; }
