@charset "utf-8";
/*
  Aozora University - Redesign (Academic x Minimal)
  Loaded AFTER main_styles.css.
*/

@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@500;600;700&display=swap");

:root{
  /* page */
  --bg:#f6f9ff;
  --bg_grad:linear-gradient(180deg, #eaf6ff 0%, #f3f7ff 40%, #f6f9ff 100%);
  --surface:#ffffff;
  --text:#111827;
  --muted:#6b7280;
  /* sky palette */
  --primary:#1f78d6;
  --primary_2:#0b2b5a;
  --sky_1:#56ccf2;
  --sky_2:#2f80ed;
  --primary_soft:#e6f3ff;
  --border:#dbe7f5;
  --radius:16px;
  --shadow:0 16px 44px rgba(2, 32, 71, .10);
  --shadow_sm:0 8px 22px rgba(2, 32, 71, .08);
}



/* Base */
body{
  font-family:"Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size:16px;
  color:var(--text);
  background:var(--bg_grad);
}

.super_container{ background:var(--bg_grad); }
p{
  font-family:"Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color:#374151;
  letter-spacing:0.02em;
}
a{ color:inherit; }
a:hover{ color:var(--primary); }
p a{ border-bottom:1px solid rgba(31,120,214,.35); }
p a:hover{
  background:transparent;
  color:var(--primary);
  border-bottom-color:var(--primary);
}

/* Header */
.header{ box-shadow:0 10px 30px rgba(17,24,39,.10); }
.header_container{
  background:rgba(255,255,255,.86) !important;
  backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid rgba(31,120,214,.18);
}
.header_content{ height:84px !important; }
.header.scrolled .header_content{ height:76px !important; }

.brand{ display:inline-flex; flex-direction:column; gap:2px; text-decoration:none; }
.brand_en{
  color:var(--text) !important;
  font-family:"Noto Serif JP", serif;
  font-size:18px;
  letter-spacing:0.12em;
}
.brand_jp{
  color:var(--muted) !important;
  font-family:"Noto Sans JP", sans-serif;
  font-size:12px;
  letter-spacing:0.08em;
}

/* Nav */
.main_nav li:not(:last-child){ margin-right:18px; }
.main_nav li a{
  font-family:"Noto Sans JP", sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--text) !important;
}
.main_nav li a > p{
  color:var(--muted) !important;
  font-size:11px;
  letter-spacing:0.08em;
  margin:6px 0 0;
}

@media (min-width: 992px){
  .main_nav li a > p{ display:none; }
}

.main_nav li a{ position:relative; }
.main_nav li a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-10px;
  height:2px;
  background:transparent;
  transform:scaleX(.8);
  transition:background .15s ease, transform .15s ease;
}
.main_nav li a:hover::after,
.main_nav li.active a::after{
  background:rgba(31,120,214,.85);
  transform:scaleX(1);
}
.main_nav li a:hover,
.main_nav li.active a{
  color:var(--primary) !important;
}
.navbar-toggler .toggle-menu{ color:var(--text); }
.navbar-toggler{ position:relative; z-index:1051; }
.navbar-toggler .toggle-menu{ pointer-events:none; }

@media (max-width: 991px){
  /* Make the opened menu comfortable on mobile and avoid covering the toggle */
  .navbar-collapse{ background:rgba(255,255,255,.96); border:1px solid rgba(31,120,214,.15); border-radius:14px; padding:10px 12px; margin-top:10px; box-shadow:0 14px 36px rgba(2,32,71,.10); }
  .navbar-nav.main_nav{ width:100%; }
  .navbar-nav.main_nav{ flex-direction:column !important; align-items:flex-start; }
  .navbar-nav.main_nav li{ width:100%; }
  .navbar-nav.main_nav li a{ display:block; width:100%; padding:10px 6px; }
  .main_nav li:not(:last-child){ margin-right:0; }
  .main_nav li a::after{ bottom:0; }
}

/* Hero (carousel) */
.home{ margin-top:84px; }
.carousel-item{ position:relative; }
.carousel-item img{ position:relative; z-index:0; }
.carousel-item::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(47,128,237,.72) 0%, rgba(86,204,242,.38) 52%, rgba(234,246,255,0) 100%);
  z-index:1;
  pointer-events:none;
}

.carousel-item::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(1200px 520px at 18% 28%, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 60%),
    radial-gradient(900px 420px at 42% 38%, rgba(255,255,255,.35) 0%, rgba(255,255,255,0) 62%),
    radial-gradient(1100px 520px at 70% 30%, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 55%, rgba(255,255,255,.12) 100%);
  z-index:1;
  pointer-events:none;
}
.carousel-item img{
  height:560px;
  object-fit:cover;
  filter:saturate(1.05) contrast(1.02) brightness(1.02);
}
@media (max-width: 991px){
  .carousel-item img{ height:420px; }
}

/* Make caption visible on mobile too */
.carousel-caption.d-none.d-md-block{ display:block !important; }

.carousel-caption{
  left:7% !important;
  right:auto !important;
  top:50% !important;
  bottom:auto !important;
  transform:translateY(-50%);
  text-align:left;
  padding:0 !important;
  max-width:560px;
  position:absolute;
  z-index:20;
  pointer-events:auto;
}
.carousel-caption *{ pointer-events:auto; }

/* Allow hero CTA clicks (carousel controls cover large area by default) */
.carousel-control-prev,
.carousel-control-next{
  width:72px;
  pointer-events:none;
  z-index:10;
}
.carousel-control-prev .carousel-control-prev-icon,
.carousel-control-next .carousel-control-next-icon{
  pointer-events:auto;
}
@media (max-width: 991px){
  .carousel-caption{
    left:6% !important;
    right:6% !important;
    max-width:none;
  }
}

.hero_brand{ margin-bottom:12px; }
.hero_brand_en{
  color:#ffffff !important;
  font-family:"Noto Serif JP", serif;
  font-size:44px;
  letter-spacing:0.10em;
  line-height:1.1;
  text-shadow:0 14px 34px rgba(2,32,71,.32);
}
.hero_brand_jp{
  color:rgba(255,255,255,.82) !important;
  font-family:"Noto Sans JP", sans-serif;
  font-size:14px;
  letter-spacing:0.14em;
  margin-top:6px;
}
@media (max-width: 991px){
  .hero_brand_en{ font-size:32px; }
}

.content-slide p{
  position:static !important;
  left:auto !important;
  right:auto !important;
  color:rgba(255,255,255,.92) !important;
  text-shadow:0 12px 28px rgba(2,32,71,.28);
  font-size:15px;
  letter-spacing:0.03em;
  line-height:1.9;
  text-align:left !important;
  max-width:52ch;
}

.hero_actions{ display:flex; gap:12px; margin-top:18px; flex-wrap:wrap; }
.btn_hero{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:44px;
  padding:0 18px;
  border-radius:999px;
  font-weight:700;
  letter-spacing:.06em;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.35);
}
.btn_hero.primary{ background:linear-gradient(180deg, var(--sky_1) 0%, var(--sky_2) 100%); color:#ffffff !important; border-color:rgba(255,255,255,.0); }
.btn_hero.ghost{ background:rgba(255,255,255,.14); color:#ffffff !important; border-color:rgba(255,255,255,.45); }
.btn_hero:hover{ transform:translateY(-1px); box-shadow:0 10px 20px rgba(0,0,0,.18); }

/* Quick links */
.quick_links{ padding:26px 0 6px; }
.ql_grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:14px;
}
@media (max-width: 991px){
  .ql_grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
.ql_item{
  background:linear-gradient(180deg, #ffffff 0%, #f4fbff 100%);
  border:1px solid rgba(31,120,214,.14);
  border-radius:var(--radius);
  padding:16px 16px;
  box-shadow:var(--shadow_sm);
  text-decoration:none;
  position:relative;
  overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.ql_item::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:3px;
  background:linear-gradient(90deg, var(--sky_1), var(--sky_2));
  opacity:.85;
}
.ql_item:hover{ transform:translateY(-2px); box-shadow:var(--shadow); border-color:rgba(31,120,214,.28); }
.ql_title{ display:block; position:relative; padding-left:14px; font-family:"Noto Serif JP", serif; font-size:16px; letter-spacing:.08em; }
.ql_sub{ display:block; color:var(--muted); font-size:12px; letter-spacing:.06em; margin-top:4px; }

/* Section titles */
.home_title{
  font-family:"Noto Serif JP", serif;
  font-size:28px;
  letter-spacing:0.08em;
  text-transform:none;
}
.home_title_sub{
  font-family:"Noto Sans JP", sans-serif;
  color:var(--muted) !important;
  border-bottom:2px solid rgba(31,120,214,.95);
  margin-bottom:18px;
}

/* News/Event/Graduates cards */
.news{ background:var(--bg_grad); padding:56px 0 24px; }
.news_col{ padding-top:14px; padding-bottom:14px; }
.news_post_small{
  background:linear-gradient(180deg, #ffffff 0%, #f3f9ff 100%);
  border:1px solid rgba(31,120,214,.18);
  border-radius:var(--radius);
  padding:16px 18px;
  box-shadow:var(--shadow_sm);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.news_post_small:hover{
  transform:translateY(-2px);
  border-color:rgba(31,120,214,.35);
  box-shadow:var(--shadow);
}
.news_post_small_title{ margin-top:8px; }
.news_post_small_title a{
  color:var(--text) !important;
  font-family:"Noto Serif JP", serif;
}
.news_post_meta ul li a{ color:var(--muted) !important; }
.news_post_meta ul li a:hover{ color:var(--primary) !important; }

/* Remove legacy divider lines */
.news_post_small:not(:last-child){
  padding-bottom:16px;
  border-bottom:0 !important;
  margin-bottom:14px;
}

/* Event date box */
.calendar_border,
.calendar_news_border{
  background:linear-gradient(180deg, var(--sky_2) 0%, var(--primary_2) 100%) !important;
  border-radius:12px;
}
.courses{ background:var(--bg_grad); padding:44px 0 64px; }
.course{
  background:linear-gradient(180deg, #ffffff 0%, #f3f9ff 100%);
  border:1px solid rgba(31,120,214,.18);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow_sm);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.course:hover{ transform:translateY(-2px); box-shadow:var(--shadow); border-color:rgba(31,120,214,.28); }
.course_image img{ width:100%; height:190px; object-fit:cover; }
.course_body{ padding:18px 18px 10px; }
.course_title a{ font-family:"Noto Serif JP", serif; color:var(--text) !important; }
.course_footer{ padding:0 18px 18px; background:transparent; }
.course_price a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  padding:0 16px;
  border-radius:999px;
  background:var(--primary_soft);
  color:var(--primary) !important;
  font-weight:700;
  text-decoration:none;
}
.course_price a:hover{ background:rgba(31,120,214,.14); }

/* Counter */
.counter{ margin-top:0 !important; }
.counter_background{ filter:grayscale(1) contrast(1.05) brightness(1.15); opacity:.22; }

/*
  Milestone cards (教授数 / 卒業生徒 / 学習コース / 受賞)
  - On mobile, show as a clean 2-column grid (Bootstrap .col-6)
  - Prevent fixed widths from main_styles.css from breaking the layout
*/
.milestones{ row-gap:16px; }
.milestone{ width:auto; }
.milestone_counter{ height:100%; }
.milestone:not(:first-child)::after{ display:none !important; }
.milestone_counter{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(31,120,214,.18);
  border-radius:var(--radius);
  padding:18px 14px;
  box-shadow:var(--shadow_sm);
  overflow:hidden;
}
.milestone_value{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:8px;
}
.milestone_value img{
  width:46px;
  height:auto;
  display:block;
  /* original icons are white, so invert to make them readable on a light card */
  filter:invert(1) brightness(.55);
  opacity:.34;
}
.milestone_value_text{
  display:flex;
  align-items:baseline;
  gap:4px;
  white-space:nowrap;
}
.milestone_counter p{ color:var(--muted); font-weight:700; letter-spacing:.06em; margin:0; }
.milestone_counter .milestone_number{
  color:var(--primary_2);
  line-height:1;
  font-size:clamp(30px, 7vw, 40px);
}
.milestone_counter .milestone_count{
  color:var(--muted);
  font-weight:700;
  white-space:nowrap;
  font-size:clamp(12px, 3.2vw, 16px);
}

/* tighten typography on very small phones */
@media (max-width: 420px){
  .milestone_counter{ padding:14px 10px; }
  .milestone_value{ gap:10px; }
  .milestone_value img{ width:40px; }
  .milestone_counter .milestone_number{ font-size:32px; }
  .milestone_counter .milestone_count{ font-size:12px; }
}

/* Footer */
.footer{ background:linear-gradient(180deg, #0b3a78 0%, var(--primary_2) 100%) !important; }
.footer_logo_text{ font-family:"Noto Serif JP", serif; letter-spacing:.10em; }
.footer_logo_sub{ color:rgba(255,255,255,.75); font-size:12px; letter-spacing:.12em; margin-top:4px; }
.footer_note{ color:rgba(255,255,255,.92); font-weight:700; letter-spacing:.06em; }
.footer_note_sub{ color:rgba(255,255,255,.70); font-weight:500; font-size:12px; margin-top:8px; line-height:1.7; }
.footer a{ color:#ffffff; }
.footer a:hover{ color:rgba(255,255,255,.85); }
.footer_links_spacer{ visibility:hidden; pointer-events:none; }
.footer_links_container{ margin-top:0 !important; }
.footer_contact_info{ padding-bottom:12px; }
.copyright_row{ border-top:1px solid rgba(255,255,255,.12); }

/* Mobile footer spacing: add breathing room between link list and SNS note */
@media (max-width: 991px){
  .footer .footer_note{ margin-top:18px; }
}

.calendar_border_1,
.calendar_news_border_1{
  border:1px solid rgba(255,255,255,.75) !important;
  border-radius:10px;
}
.calendar_border_1 > .calendar_month,
.calendar_news_border_1 > .calendar_month,
.calendar_border_1 .calendar_day > span:first-child,
.calendar_news_border_1 .calendar_day > span:first-child{
  color:#ffffff !important;
  text-shadow:0 10px 30px rgba(2,32,71,.35);
}

/* Pagination */
.news-pagination .page-numbers{
  border:1px solid rgba(31,120,214,.18);
  color:var(--text);
  border-radius:10px;
}
.news-pagination .page-numbers.current{
  background:var(--primary_soft);
  border-color:rgba(31,120,214,.25);
  color:var(--primary);
}

/* Footer */
.footer{ border-top:1px solid var(--border); }


/* Quick link accent dot */
.ql_title::before{
  content:"";
  position:absolute;
  left:0;
  top:0.65em;
  width:8px;
  height:8px;
  border-radius:999px;
  background:linear-gradient(180deg, var(--sky_1) 0%, var(--sky_2) 100%);
  box-shadow:0 10px 20px rgba(2,32,71,.12);
}

/* Sidebar (lower pages) */
.sidebar .section_title_container.category_title h2{
  white-space:nowrap;
  letter-spacing:0.12em;
}

/* Search: add spacing between the title and the form */
.sidebar_search .section_title_container.category_title h2{
  margin-bottom:14px;
}

/* Make sidebar headings less likely to wrap on narrow widths */
.sidebar .section_title_container.category_title{
  overflow:hidden;
}

/* Event time (archive/category) */
.calendar_hour{
  width:110px;
  height:35px;
  background-color:#b39a6b;
  color:#ffffff;
  font-size:14px;
  text-align:center;
  margin-top:8px;
  padding-top:7px;
  white-space:nowrap;
  border-radius:6px;
}


/* Footer: align link list to divider */
.footer_links{ padding-left:0 !important; }
.footer_links_container ul{ padding-left:0 !important; margin-left:0 !important; }

/* Sidebar: prevent wrapping + add bottom breathing room */
.sidebar{ padding-bottom:80px; }
.sidebar .section_title_container.category_title .section_subtitle{ white-space:nowrap; }
.sidebar_search .section_title_container.category_title h2{ margin-bottom:18px; }

/* Calendar: suffix styling for 「日」 */
.calendar_border_1 .calendar_day > span:nth-child(2),
.calendar_news_border_1 .calendar_day > span:nth-child(2){
  font-size:12px;
  margin-left:2px;
  opacity:.92;
}


/* v10+ fixes: calendar badge normalization, sidebar underline, and footer link column */

/* Sidebar category subtitle underline should match text width (not full column) */
.sidebar .section_title_container.category_title .section_subtitle{
  display:inline-block;
  width:fit-content;
  padding-bottom:6px;
}

/* Calendar badge: keep the same look across list/detail pages (event/news/graduates) */
:root{
  --event-badge-w: 100px;
  --event-time-w: 100px;
}

.calendar_border,
.calendar_news_border{
  width: var(--event-badge-w);
  height: var(--event-badge-w);
}
.calendar_border_1,
.calendar_news_border_1{
  width: calc(var(--event-badge-w) - 11px);
  height: calc(var(--event-badge-w) - 11px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:12px 6px 10px;
  box-sizing:border-box;
}

/* Reset any legacy styles that cause the badge to "崩れる" on some templates */
.calendar_month,
.calendar_day,
.calendar_day span{
  margin:0;
  padding:0;
  border:0 !important;
  background:none !important;
  box-shadow:none !important;
}

.calendar_month{
  line-height:1;
}

.calendar_day{
  line-height:1;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}

.calendar_day span{
  line-height:1;
  display:inline-block;
}

/* Hide 「日」 if any old template still outputs it */
.calendar_border_1 .calendar_day > span:nth-child(2),
.calendar_news_border_1 .calendar_day > span:nth-child(2){
  display:none !important;
}

/* Time strip width should match the badge */
.calendar_hour{
  width: var(--event-time-w);
  white-space:nowrap;
  box-sizing:border-box;
}

/* Footer: keep content but remove separators and give links a cleaner block */
.footer_links{
  position:relative;
  padding-left:0 !important;
}
.footer_links::before{
  content:none !important;
}
.footer_links_container{
  margin-top:10px !important;
  padding:18px 18px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
}
.footer_links_container ul{
  margin:0 !important;
  padding:0 !important;
}
.footer_links_container ul li{
  margin:0 0 10px;
}
.footer_links_container ul li:last-child{
  margin-bottom:0;
}
.footer_links_container ul li a{
  opacity:.9;
}

/* Calendar badge: unify layout across list/detail templates (no negative margins) */
.calendar_border,
.calendar_news_border{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px;
  box-sizing:border-box;
}
.calendar_border_1,
.calendar_news_border_1{
  width:100% !important;
  height:100% !important;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:10px 0;
  box-sizing:border-box;
}
.calendar_month{
  margin:0 !important;
  padding:0 !important;
  line-height:1.1;
}
.calendar_day{
  margin:0 !important;
  padding:0 !important;
  line-height:1;
}
/* v13 fixes: calendar center alignment + footer link block integration */

/* Calendar badge: force month/day to center (some templates set absolute/float) */
.calendar_month,
.calendar_day,
.calendar_day span{
  position:static !important;
  float:none !important;
}
.calendar_month,
.calendar_day{
  width:100% !important;
  text-align:center !important;
}
.calendar_day{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.calendar_day span{
  text-align:center !important;
}

/* Footer: remove separator line and make link list feel integrated (no floating card) */
.footer_contact_info{
  border-right:none !important;
}
.footer_links_container{
  background:transparent !important;
  border:none !important;
  padding:0 !important;
  border-radius:0 !important;
}
.footer_links_container ul li a{
  color:rgba(255,255,255,.88) !important;
}
.footer_links_container ul li a:hover{
  color:#ffffff !important;
  text-decoration:underline;
  text-underline-offset:4px;
}

/* =========================================================
   v14 fixes
   - Calendar day/month truly centered (some pages were drifting)
   - Footer link block flattened + typography unified
   ========================================================= */

/* Calendar badge: force perfect centering for month/day on all pages */
.calendar_border_1,
.calendar_news_border_1{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
}
.calendar_border_1 .calendar_month,
.calendar_news_border_1 .calendar_month,
.calendar_border_1 .calendar_day,
.calendar_news_border_1 .calendar_day{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  padding:0 !important;
  margin:0 !important;
}
.calendar_border_1 .calendar_day > span,
.calendar_news_border_1 .calendar_day > span{
  display:block !important;
  width:100% !important;
  text-align:center !important;
  padding:0 !important;
  margin:0 !important;
  line-height:1 !important;
}

/* Footer: remove divider + remove "floating" card look around links */
.footer_contact_info{
  border-right:none !important;
}
.footer_links_container{
  padding:0 !important;
  border:none !important;
  background:transparent !important;
  border-radius:0 !important;
  box-shadow:none !important;
  margin-top:0 !important;
}

/* Footer links typography = address typography */
.footer_links_container ul li a,
.footer_links_container ul li a:link,
.footer_links_container ul li a:visited{
  font-size:15px !important;
  color:#ffffff99 !important;
  font-family:inherit !important;
  font-weight:400 !important;
  letter-spacing:0.02em !important;
}
.footer_links_container ul li a:hover{
  color:#ffffff !important;
  opacity:1 !important;
}

/* v15 calendar + footer final adjustments */
/* Center the white frame inside the blue badge */
.calendar_border,
.calendar_news_border {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Center month/day inside the white frame (was pushed to bottom-right) */
.calendar_border_1,
.calendar_news_border_1 {
  align-items: center !important;
  justify-content: space-between !important;
  text-align: center !important;
}

.calendar_border_1 > .calendar_month,
.calendar_news_border_1 > .calendar_month {
  margin-left: auto !important;
  margin-right: auto !important;
}

.calendar_day,
.calendar_news_day {
  width: 100% !important;
  text-align: center !important;
}

/* Footer links: match address typography and make bold */
.footer_links_container {
  border-left: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.footer_links_container a {
  font-weight: 700 !important;
  font-family: inherit !important;
}

/* =========================================================
   v16 hotfix (portfolio request)
   - Footer links must be bold (ニュース/イベント等)
   - Calendar month/day must be centered as a group inside the blue badge
   Why here: redesign.css is loaded after main_styles.css, so it should own
   the final overrides.
   ========================================================= */

/* Footer links: force bold even if previous rules set 400 with !important */
.footer_links_container ul li a,
.footer_links_container ul li a:link,
.footer_links_container ul li a:visited {
  font-weight: 700 !important;
}

/* Calendar badge: center the month/day group (override space-between layouts) */
.calendar_border,
.calendar_news_border {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.calendar_border_1,
.calendar_news_border_1 {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
}

.calendar_border_1 .calendar_month,
.calendar_news_border_1 .calendar_month,
.calendar_border_1 .calendar_day,
.calendar_news_border_1 .calendar_day {
  width: 100% !important;
  text-align: center !important;
  padding: 0 !important;
  margin: 0 !important;
}

.calendar_border_1 .calendar_day,
.calendar_news_border_1 .calendar_day {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.calendar_border_1 .calendar_day > span,
.calendar_news_border_1 .calendar_day > span {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  padding: 0 !important;
  margin: 0 !important;
}


/* === Overrides (portfolio fixes) === */

/* Footer: make nav links same color as other text, and keep current hover color */
.footer_links_container ul li a{
  color:#ffffff !important;
  font-weight:700 !important;
}
.footer_links_container ul li a:hover{
  color:#14bdee !important;
}

/* Carousel: enable fade (bootstrap carousel-fade) with smoother timing */
.carousel.carousel-fade .carousel-item{
  transition-duration: 600ms;
}

/* =========================================================
   v4 hotfix
   - Carousel: true fade transition (Bootstrap v4.0.0-beta.2 compatible)
   - Calendar badge: ensure the white frame + month/day are centered inside blue
   ========================================================= */

/* Carousel fade (Bootstrap beta2 doesn't ship carousel-fade styles) */
.carousel.carousel-fade .carousel-item{
  opacity:0;
  transition: opacity .8s ease-in-out;
}
.carousel.carousel-fade .carousel-item.active,
.carousel.carousel-fade .carousel-item-next.carousel-item-left,
.carousel.carousel-fade .carousel-item-prev.carousel-item-right{
  opacity:1;
}
.carousel.carousel-fade .active.carousel-item-left,
.carousel.carousel-fade .active.carousel-item-right{
  opacity:0;
}
.carousel.carousel-fade .carousel-item-next,
.carousel.carousel-fade .carousel-item-prev,
.carousel.carousel-fade .carousel-item.active{
  transform: translateX(0);
}

/* Calendar badge centering (mobile rules add padding -> off-center) */
.calendar_border,
.calendar_news_border{
  padding:0 !important;
  box-sizing:border-box !important;
}
.calendar_border_1,
.calendar_news_border_1{
  width: calc(100% - 12px) !important;
  height: calc(100% - 12px) !important;
  margin: 6px !important;
  position: static !important;
  top: auto !important;
  left: auto !important;
}


/* v5 footer label color */
.footer_contact_info ul li span{ color:#ffffff !important; }

/* =========================================================
   v6 About Us timeline color
   - Change timeline accent (line/dots/borders) to #72777B
   ========================================================= */

/* Try common body classes for About Us (slug variations) */
body.page-about_us .timeline,
body.page-about-us .timeline{
  --timelineMainColor: #72777B !important;
  --uiTimelineMainColor: #72777B !important;
}

/* Vertical line */
body.page-about_us .timeline:before,
body.page-about-us .timeline:before,
body.page-about_us .timeline::before,
body.page-about-us .timeline::before,
body.page-about_us .timeline-line,
body.page-about-us .timeline-line,
body.page-about_us .timeline__line,
body.page-about-us .timeline__line{
  background-color:#72777B !important;
}

/* Dots / badges / markers */
body.page-about_us .timeline-dot,
body.page-about-us .timeline-dot,
body.page-about_us .timeline__dot,
body.page-about-us .timeline__dot,
body.page-about_us .timeline-point,
body.page-about-us .timeline-point,
body.page-about_us .timeline__point,
body.page-about-us .timeline__point,
body.page-about_us .timeline-badge,
body.page-about-us .timeline-badge,
body.page-about_us .timeline__badge,
body.page-about-us .timeline__badge,
body.page-about_us .timeline__box:before,
body.page-about-us .timeline__box:before{
  background-color:#72777B !important;
  border-color:#72777B !important;
}

/* Card accents / borders */
body.page-about_us .timeline-content,
body.page-about-us .timeline-content,
body.page-about_us .timeline__content,
body.page-about-us .timeline__content,
body.page-about_us .timeline__post,
body.page-about-us .timeline__post,
body.page-about_us .timeline-card,
body.page-about-us .timeline-card{
  border-color:#72777B !important;
}

/* Arrow/chevron accents often use border-color on pseudo elements */
body.page-about_us .timeline-content:before,
body.page-about-us .timeline-content:before,
body.page-about_us .timeline-content:after,
body.page-about-us .timeline-content:after,
body.page-about_us .timeline-card:before,
body.page-about-us .timeline-card:before,
body.page-about_us .timeline-card:after,
body.page-about-us .timeline-card:after{
  border-left-color:#72777B !important;
  border-right-color:#72777B !important;
}

/* =========================================================
   v7 About Us (Cool Timeline plugin) timeline color
   - Override Cool Timeline block accents to #72777B
   ========================================================= */

/* Root block class used by Cool Timeline (Gutenberg block) */
.wp-block-cool-timeline-content-timeline-block{
  --ctl-primary: #72777B;
  --ctl-main-color: #72777B;
  --cool-timeline-primary: #72777B;
}

/* Vertical line (common implementations use :before/:after) */
.wp-block-cool-timeline-content-timeline-block .cool-vertical-timeline-body:before,
.wp-block-cool-timeline-content-timeline-block .cool-vertical-timeline-body::before,
.wp-block-cool-timeline-content-timeline-block .cool-vertical-timeline-body:after,
.wp-block-cool-timeline-content-timeline-block .cool-vertical-timeline-body::after,
.wp-block-cool-timeline-content-timeline-block .cool-timeline-block-list:before,
.wp-block-cool-timeline-content-timeline-block .cool-timeline-block-list::before,
.wp-block-cool-timeline-content-timeline-block .cool-timeline-block-list:after,
.wp-block-cool-timeline-content-timeline-block .cool-timeline-block-list::after{
  background-color:#72777B !important;
}

/* Dots / icons (SVG uses currentColor) */
.wp-block-cool-timeline-content-timeline-block .timeline-block-icon,
.wp-block-cool-timeline-content-timeline-block .timeline-block-icon *{
  color:#72777B !important;
  fill:#72777B !important;
  stroke:#72777B !important;
}

/* Card accent stripe / arrow notch (plugin often uses border-color on pseudo elements) */
.wp-block-cool-timeline-content-timeline-block .cool-timeline-content,
.wp-block-cool-timeline-content-timeline-block .timeline-block-timeline-content{
  border-left-color:#72777B !important;
  border-right-color:#72777B !important;
}

.wp-block-cool-timeline-content-timeline-block .cool-timeline-content:before,
.wp-block-cool-timeline-content-timeline-block .cool-timeline-content::before,
.wp-block-cool-timeline-content-timeline-block .cool-timeline-content:after,
.wp-block-cool-timeline-content-timeline-block .cool-timeline-content::after,
.wp-block-cool-timeline-content-timeline-block .timeline-block-timeline-content:before,
.wp-block-cool-timeline-content-timeline-block .timeline-block-timeline-content::before,
.wp-block-cool-timeline-content-timeline-block .timeline-block-timeline-content:after,
.wp-block-cool-timeline-content-timeline-block .timeline-block-timeline-content::after{
  border-left-color:#72777B !important;
  border-right-color:#72777B !important;
  border-top-color:#72777B !important;
  border-bottom-color:#72777B !important;
  background-color:#72777B !important;
}
