/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
@import url("https://fonts.googleapis.com/css2?family=Lato:wght@300;400;500;600;700&display=swap");
html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }

/** Remove default margin. */
body { margin: 0; }

/* HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }

/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */
audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ }

/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }

/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */
[hidden], template { display: none; }

/* Links ========================================================================== */
/** Remove the gray background color from active links in IE 10. */
a { background-color: transparent; }

/** Improve readability when focused and also mouse hovered in all browsers. */
a:active, a:hover { outline: 0; }

/* Text-level semantics ========================================================================== */
/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }

/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */
b, strong { font-weight: bold; }

/** Address styling not present in Safari and Chrome. */
dfn { font-style: italic; }

/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }

/** Address styling not present in IE 8/9. */
mark { background: #ff0; color: #000; }

/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }

/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }

sup { top: -0.5em; }

sub { bottom: -0.25em; }

/* Embedded content ========================================================================== */
/** Remove border when inside `a` element in IE 8/9/10. */
img { border: 0; }

/** Correct overflow not hidden in IE 9/10/11. */
svg:not(:root) { overflow: hidden; }

/* Grouping content ========================================================================== */
/** Address margin not present in IE 8/9 and Safari. */
figure { margin: 1em 40px; }

/** Address differences between Firefox and other browsers. */
hr { box-sizing: content-box; height: 0; }

/** Contain overflow in all browsers. */
pre { overflow: auto; }

/** Address odd `em`-unit font size rendering in all browsers. */
code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; }

/* Forms ========================================================================== */
/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */
/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */
button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ }

/** Address `overflow` set to `hidden` in IE 8/9/10/11. */
button { overflow: visible; }

/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */
button, select { text-transform: none; }

/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }

/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }

/** Remove inner padding and border in Firefox 4+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
input { line-height: normal; }

/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width.  1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }

/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; }

/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; }

/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }

/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }

/** Remove default vertical scrollbar in IE 8/9/10/11. */
textarea { overflow: auto; }

/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */
optgroup { font-weight: bold; }

/* Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }

td, th { padding: 0; }



/* * { box-sizing: border-box; } */

/** Defines variable colors **/
:root {--font_color: #15171a;--style_color: #2d6a66;--title_color: #000000;}

/** Default style font and body **/
/* body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: var(--font_color); } */
/* body {
  padding: 0;
  margin: 0;
  font-family: lato, ubuntu, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open Sans, Helvetica Neue, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--font_color);
} */


body {
  font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Open Sans", "Helvetica Neue", sans-serif;
  font-size: 17px;
  line-height: 1.6;
  color: var(--font_color);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #FEFEFE;
  margin: 0;
  font-weight: 400;
}






#skip-to-content { height: 1px; width: 1px; position: absolute; overflow: hidden; top: -10px; }
#skip-to-content:focus { position: fixed; top: 10px; left: 10px; height: auto; width: auto; background: #e19447; outline: thick solid #e19447; }


/** --------------- Style hyperlinks --------------- **/
.page-header a {
  text-decoration: none;
  color: var(--font_color);
}
.page-header a:hover {
  text-decoration: none;
  color: var(--style_color);
}


.main-content a {
  color: var(--font_color);
  text-decoration: underline;
  text-decoration-style: dashed;
  text-decoration-thickness: 1px; /* Adjust thickness */
  text-underline-offset: 4px; /* Adjust the distance between text and underline */
}
.main-content a:hover {
  text-decoration: underline;
  text-decoration-style: solid;
  color: var(--style_color);
}


/** --------------- Style buttons --------------- **/

.button-group-container {
  display: inline-flex;
  margin-left: auto;
  align-items: center;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.5rem 0.25em; /* Defines vertical and horizontal gap between buttons  */
}

.button-container {
  margin-left: auto;
}

.btn { 
  display: inline-block;
  margin-bottom: 1rem;
  background-color: var(--style_color);
  border-color: var(--style_color);
  border-style: solid;
  border-width: 1px;
  border-radius: 5px;
  transition: color 0.2s, background-color 0.2s, border-color 0.2s;
}
.btn:hover {text-decoration: none; opacity: 0.5;}
.btn + .btn { margin-left: 1rem; }

/* adapt to screen sizes */
@media screen and (min-width: 2560px) { 
  .btn { 
    padding: 0.5rem 0.8rem; 
    font-size: 1.0rem !important; 
  } 
}
@media screen and (min-width: 1920px) and (max-width: 2559px) { 
  .btn { 
    padding: 0.45rem 0.75rem; 
    font-size: 0.95rem !important; 
  } 
}
@media screen and (min-width: 1024px) { .btn { padding: 0.4rem 0.65rem; } }
@media screen and (min-width: 850px) and (max-width: 1024px) { .btn { padding: 0.3rem 0.5rem; font-size: 0.9rem; } }
@media screen and (max-width: 850px) { 
  .btn {
    display: block;
    padding: 0.4rem;
    font-size: 0.9rem; 
  }
  .btn + .btn { margin-top: 0.55rem; margin-left: 0; }
}

/** --------------- Responsive overall screen layout --------------- **/
@media screen and (min-width: 2560px) {
  .main-content {
    max-width: 100%;
    margin: 0 auto;
    font-size: 1.375rem;
    overflow-x: hidden;
  }
}
@media screen and (min-width: 1920px) and (max-width: 2559px) {
  .main-content {
    max-width: 100%;
    margin: 0 auto;
    font-size: 1.25rem;
    overflow-x: hidden;
  }
}
@media screen and (min-width: 1024px) {
  .main-content {
    max-width: 100%;
    margin: 0 auto;
    font-size: 1.125rem;
    overflow-x: hidden;
  }
}
@media screen and (min-width: 850px) and (max-width: 1024px) {
  .main-content {
    font-size: 1.0625rem;
    overflow-x: hidden;
  }
}
@media screen and (max-width: 850px) { .main-content { font-size: 1rem; overflow-x: hidden; } }

/** --------------- Overrides style font and body --------------- **/

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

p {
  color: #15171a;
  font-size: 17px;
  line-height: 1.6;
}

/* Large screen font size adjustments - only for very large displays */
@media screen and (min-width: 2560px) {
  p {
    font-size: 20px;
    line-height: 1.65;
  }
  
  body {
    font-size: 20px;
  }
}

@media screen and (min-width: 1920px) and (max-width: 2559px) {
  p {
    font-size: 18px;
    line-height: 1.62;
  }
  
  body {
    font-size: 18px;
  }
}


.main-content kbd {
  background-color: #fafbfc;
  border: 1px solid #c6cbd1;
  border-bottom-color: #959da5;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #959da5;
  color: #444d56;
  display: inline-block;
  font-size: 11px;
  line-height: 10px;
  padding: 3px 5px;
  vertical-align: middle;
}
.main-content img { max-width: 100%;}
.main-content .project i {font-size: 32px; line-height: 3;}

.main-content { word-wrap: break-word;}
.main-content :first-child { margin-top: 0; }

/** --------------- Style titles --------------- **/
.main-content h1, .main-content h2 { margin-top: 2rem; margin-bottom: 2rem; font-weight: 400; color: var(--title_color);}
.main-content h3, .main-content h4, .main-content h5, .main-content h6 { margin-top: 1rem; margin-bottom: 0.5rem; font-weight: 500; color: var(--title_color);}
.main-content h1 {border-bottom: solid 3px var(--style_color);}

/* Large screen title adjustments - only for very large displays */
@media screen and (min-width: 2560px) {
  .main-content h1 {
    font-size: 2.5rem;
  }
  
  .main-content h2 {
    font-size: 2rem;
  }
  
  .main-content h3 {
    font-size: 1.5rem;
  }
}

@media screen and (min-width: 1920px) and (max-width: 2559px) {
  .main-content h1 {
    font-size: 2.25rem;
  }
  
  .main-content h2 {
    font-size: 1.75rem;
  }
  
  .main-content h3 {
    font-size: 1.375rem;
  }
}

.main-content p { margin-bottom: 1em;}
.main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; }
.main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; }
.main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; }
.main-content .highlight { margin-bottom: 1rem; }
.main-content .highlight pre { margin-bottom: 0; word-break: normal; }
.main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; }
.main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; }
.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; }
.main-content ul, .main-content ol { margin-top: 0; }
.main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; }
.main-content blockquote > :first-child { margin-top: 0; }
.main-content blockquote > :last-child { margin-bottom: 0; }

.main-content .project h2 {font-weight: bold; font-size: 0.9rem; font-size: 1.1rem;}

/** --------------- Style Tables General --------------- **/
.main-content table {width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; }

/* Override for main layout table - prevent it from creating scroll */
.main-content > table {
  overflow: visible;
  table-layout: fixed;
}
.main-content table th {font-weight: bold;}
.main-content table th, .main-content table td {padding: 0.5rem 1rem; border: 1px solid #e9ebec; }
@media screen and (max-width: 850px) {td {padding: 0}}

.site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; }
@media screen and (min-width: 1024px) { .site-footer { font-size: 1rem; } }
@media screen and (min-width: 850px) and (max-width: 1024px) { .site-footer { font-size: 1rem; } }
@media screen and (max-width: 850px) { .site-footer { font-size: 0.9rem; } }

.site-footer-owner { display: block; font-weight: bold; }

.site-footer-credits { color: #819198; }



/** --------------- Styles Header --------------- **/

.page-header {
  margin: 0 auto; 
  color: var(--title_color);
  text-align: left;
  background-color: #fefefe;
}

.page-header span.contact {
  margin: 1em 1em 0 1em;
  display: block;
}

.project-tagline {
  font-weight: normal; 
  opacity: 0.7; 
  margin: 0em;
}

.project-name { 
  margin-top: 0; 
  margin-bottom: 0.1rem; 
}

/** Style background when popup activated **/
.popup {
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.4);
  display: none;
}
/** Style popup window **/
.popup-content {
  background-color: white;
  margin: 10% auto;
  padding: 20px;
  border: 1px solid #606c71;
  width: 30%;
  text-align: center;
}
/** Displays popup when clicked **/
.show-email {
  display: inline-block;
}
/** Style popup close button **/
.contact button {
  font-weight: normal;
  line-height: 1em;
  padding: 0.5em 1em;
  cursor: pointer;
  border-radius: 5px;
  color: var(--font_color);
  background-color: white;
  font-family: sans-serif;
  border: none;
  box-sizing: border-box;
}
.contact .email button:hover {
  border: 1px solid var(--style_color);
  background-color: white;
  color: var(--style_color);
}
.contact .email button:active {
  border: 1px solid #fff;
  background-color: var(--style_color);
  color: #fff;
}
.contact button:hover {
  border: 1px solid #fff;
  background-color: var(--style_color);
  color: #fff;
}


/* Header button style */
.page-header .btn {
  border-radius: 6px;
  padding: 0.2em 1em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #FEFEFE;
  border: 0px solid #c6cbd1;
  color: var(--font_color);
}
.page-header .btn:hover {
  background-color: #fefefe;
  border-color: white;
  color: var(--style_color);
  opacity: 1;
}

.page-header .button-group-container {
  display: flex;             /* Use flexbox */
  justify-content: center;    /* Centers the elements horizontally */
  gap: 0px 20px;                  /* Adds vertical space between the span elements */
}

.page-header .button-container {
  margin-right: 0.75em;
  margin-left: 0.75em;
  margin: 0; /* Centers elements */
}

.page-header .btn span.img_btn {
  display: inline-flex;
  padding: 0em;
  height: 2.2em; /* Defines button drawing width */
  align-items: center;
  justify-content: center;
}

.page-header .btn span.text_container {
  display: inline-block;
  font-size: 1.1em;
  font-family: sans-serif;
  font-weight: 500;
  line-height: 1;
}

/* Large screen page header button adjustments */
@media screen and (min-width: 2560px) {
  .page-header .btn {
    padding: 0.25em 1.2em !important;
    font-size: 1.1rem !important;
  }
  
  .page-header .btn span.text_container {
    font-size: 1.25em !important;
  }
}

@media screen and (min-width: 1920px) and (max-width: 2559px) {
  .page-header .btn {
    padding: 0.22em 1.1em !important;
    font-size: 1.05rem !important;
  }
  
  .page-header .btn span.text_container {
    font-size: 1.2em !important;
  }
}

.page-header .side-column #photo img {
  width: 70%;
  max-width: 70%; 
  height: auto;
  display: block;
  border-color: var(--style_color);
  border-style: solid;
  border-width: 5px;
  height: auto;
  border-radius: 50%;
}

/* Responsive design */
@media screen and (min-width: 1024px) {
  .page-header {
    padding-top: 2rem;
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 1.5rem;
  }
  
  .page-header span.contact {
    margin-bottom: 0;
  }
  
  .page-header .button-group-container {
    margin-bottom: 0;
  }
  
  .page-header .button-container {
    margin-bottom: 0;
  }
  
  .page-header .btn {
    margin-bottom: 0;
  }
  
  .page-header .main-column {
    width: 70%;
    vertical-align: top;
  }
  
  .page-header .side-column {
    width: 15%;
    text-align: center;
    vertical-align: top;
  }
  
  .project-name { 
    font-size: 3.5rem; 
    font-weight: 600; 
  }
  
  .project-tagline { 
    font-size: 1.375rem; 
    font-weight: 400; 
  }
}

@media screen and (min-width: 850px) and (max-width: 1024px) {
  .page-header {
    padding: 1.5rem 2rem;
    padding-left: 0;
    padding-right: 0;
  }
  
  .page-header span.contact {
    margin: 0.5em;
  }
  
  .page-header .main-column {
    width: 70%;
    vertical-align: top;
  }
  
  .page-header .side-column {
    width: 15%;
    text-align: center;
    vertical-align: top;
  }
  
  .project-name { 
    font-size: 2.5rem; 
    font-weight: 600; 
  }
  
  .project-tagline { 
    font-size: 1.25rem; 
    font-weight: 400; 
  }
}

@media screen and (max-width: 850px) {
  .page-header {
    padding: 1.5rem 1rem;
    padding-left: 0;
    padding-right: 0;
  }
  
  .page-header span.contact {
    margin: 0.5em;
  }
  
  .page-header .side-column {
    display: none;
    width: 100%;
  }
  
  .page-header .main-column {
    display: block;
    width: 100%;
  }
  
  .project-name { 
    font-size: 2rem; 
    font-weight: 600; 
  }
  
  .project-tagline { 
    font-size: 1.125rem; 
    font-weight: 400; 
  }
}



/** --------------- Styles side-bar --------------- **/

/** General styles **/
.main-content .side-column {
  height: 100%; /* Full-height: remove this if you want "auto" height */
  width: 15%; /* Set the width of the sidebar */
  position: fixed; /* Fixed Sidebar (stay in place on scroll) */
  overflow-x: hidden; /* Disable horizontal scroll */
  padding-top: 2rem;
  padding-left: 1rem;
  padding-right: 1rem;
  text-align: center;
  border: none;
  line-height: 1.8em;
  box-sizing: border-box;
}

/** Tab styles **/
.main-content .side-column a {
  all: initial;
  position: static;
  display: block;
  width: 100%;
  font-size: 0.75em;
  text-align: center;
  line-height: 1em;
  padding: 0.5em;
  cursor: pointer;
  border-radius: 5px;
  text-transform: uppercase;
  color: var(--style_color);
  font-weight: bold;
  font-family: sans-serif;
  border: none;
  box-sizing: border-box;
}
.main-content .side-column a:hover{border: 1px solid var(--style_color); }
.main-content .side-column a:active{
  border: 1px solid #fff;
  background-color: var(--style_color);
  color: #fff;
}

/* Large screen side column button adjustments */
@media screen and (min-width: 2560px) {
  .main-content .side-column a {
    font-size: 0.85em !important;
    padding: 0.6em !important;
  }
}

@media screen and (min-width: 1920px) and (max-width: 2559px) {
  .main-content .side-column a {
    font-size: 0.8em !important;
    padding: 0.55em !important;
  }
}

/** --------------- Styles main-column --------------- **/

.main-content .main-column {
  width:70%;
  max-width: 70%;
  text-align: left;
  vertical-align:top;
  border: none;
  box-sizing: border-box;
  overflow: visible;
}

/* Responsive layout adjustments to remove side-column when screen is too small */
@media screen and (max-width: 850px) {
  .main-content .main-column { width:100%; }

  .main-content .side-column { width:0%; display: None;}
}


/** --------------- Styles news --------------- **/


/*By default hides details */
#show-news, .detail-news {display:none;}
/*Display details when clicked */
#show-news:checked~.detail-news {display:block;}
/*Hides 'show' button if details clicked */
#show-news:checked ~ .short-news {display: none; }

/* Container for show / hide button and content. */
.news div[for='show-news']{
  width: 100%;
  text-align: left;
}

/* Center button in news with container. */
.news .label_container {
  text-align: center;
}

/* Style of button */
.news .label_container label[for='show-news']{
  position: static;  /* defines position of the hide/show button */
  width: 10%;  /* useless?*/
  padding: 0.5em; /* padding around text*/
  bottom: 0;
  font-size: 0.65em;
  text-align: center;
  line-height: 1em;
  cursor: pointer;
  border-radius: 5px;
  text-transform: uppercase;
  font-weight: bold;
  font-family: sans-serif;
}

/* aspect of button show/hide when hovered */
.news label:hover { border: 1px solid; }
/*Aspect of button show/hide when clicked */
.news label:active {
  border: 1px solid #fff;
  background-color: #606c71;
  color: #fff;
}


/** --------------- Styles resume --------------- **/

/** --------------- Entry Cards Styling --------------- */

/* Base card styling for all entry types */
.entry-card {
  background: linear-gradient(135deg, #ffffff 0%, #fafbfc 100%);
  border-radius: 12px;
  padding: 1.5rem;
  margin: 1.5rem 0;
  box-shadow: 
    0 4px 20px rgba(0, 0, 0, 0.08),
    0 1px 3px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(207, 159, 255, 0.15);
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

/* Removed left accent bar for cleaner look */

/* Hover effects */
.entry-card:hover {
  transform: translateY(-2px);
  box-shadow: 
    0 8px 32px rgba(0, 0, 0, 0.12),
    0 2px 8px rgba(0, 0, 0, 0.08);
  border-color: rgba(207, 159, 255, 0.25);
}

/* Removed hover effect for left accent bar */

/* Remove default hr separators when using cards */
.entry-card + hr {
  display: none;
}

/* Adjust row margins inside cards */
.entry-card .row {
  margin-bottom: 0;
  margin-top: 0;
}

/* Special styling for publication cards */
.publication-card {
  background: linear-gradient(135deg, #ffffff 0%, rgba(207, 159, 255, 0.04) 100%);
  border: 1px solid rgba(207, 159, 255, 0.18);
}

/* Removed publication card left accent */

.publication-card:hover {
  border-color: rgba(207, 159, 255, 0.3);
}

/* Special styling for education cards */
.education-card {
  background: linear-gradient(135deg, #ffffff 0%, rgba(207, 159, 255, 0.04) 100%);
  border: 1px solid rgba(207, 159, 255, 0.18);
}

/* Removed education card left accent */

.education-card:hover {
  border-color: rgba(207, 159, 255, 0.3);
}

/* Special styling for project cards */
.project-card {
  background: linear-gradient(135deg, #ffffff 0%, rgba(207, 159, 255, 0.04) 100%);
  border: 1px solid rgba(207, 159, 255, 0.18);
}

/* Removed project card left accent */

.project-card:hover {
  border-color: rgba(207, 159, 255, 0.3);
}

/* Enhanced spacing for card content */
.entry-card h3 {
  margin-top: 0;
  margin-bottom: 0.75rem;
  color: var(--title_color);
}

.entry-card p {
  margin-bottom: 0.5rem;
}

.entry-card p:last-child {
  margin-bottom: 0;
}

/* Additional spacing between text and buttons in research experience cards */
.entry-card .column.right div[style*="display: flex"] {
  gap: 1rem;
}

.entry-card .column.right div[style*="display: flex"] > div[id*="button"] {
  padding-left: 0.75rem !important;
}

/* Better alignment for card images */
.entry-card .column.left img {
  transition: transform 0.3s ease;
}

.entry-card:hover .column.left img {
  transform: scale(1.02);
}

/* Responsive adjustments for cards */
@media screen and (max-width: 850px) {
  .entry-card {
    margin: 1rem 0;
    padding: 1.25rem;
    border-radius: 10px;
  }
}

@media screen and (max-width: 480px) {
  .entry-card {
    margin: 0.75rem 0;
    padding: 1rem;
    border-radius: 8px;
  }
  
  .entry-card:hover {
    transform: translateY(-1px);
  }
  
  .entry-card:hover .column.left img {
    transform: scale(1.01);
  }
}

/** Style tables**/
.main-content .resume {padding: 0;}
.main-content .resume td:second-child {text-align: left; width: 1%; white-space: nowrap; font-style: italic;  }  /** First column of CV tables **/
.main-content .resume tr:nth-child(odd) {background: rgb(211, 211, 211,0.3)} /** lignes paires (0,2,...) **/
.main-content .resume tr:nth-child(even) {background: #fff}

.main-content dl { padding: 0; }
.main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; }
.main-content dl dd { padding: 0; margin-bottom: 1rem; }
.main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; }


.resume .row:before {
  display: table;
  box-sizing: border-box;
}
.resume .row:after {
  content: "";
  display: table;
  clear: both;
}
.resume .column {
  box-sizing: border-box;
  display: inline-block;
  float: none;
  position: relative;
  vertical-align: middle;
}
.resume .left {
  width: 15%;
  /* padding-right: 1%;  
  padding-left: 1%; */
  text-align: center;
}
.resume .center {
  width: 16%;
  padding-right: 0.75%;  
  padding-left: 0.75%;
  text-align: center;
}
.resume .right {
  width: 68%;
  /* padding-left: 1%;
  padding-right: 0px; */
  text-align: justify;
  line-height: 2em;
}

/* Fix button alignment in research experience */
.resume .right div[style*="display: flex"] {
  align-items: baseline;
  line-height: 1.6;
}

.resume .right div[style*="display: flex"] span p {
  margin: 0;
  line-height: 1.6;
}

.resume .right div[style*="display: flex"] > div {
  align-self: baseline;
  padding-top: 0;
}

/** --------------- Affiliations Grid Styles --------------- **/
.affiliations {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: visible;
}

.affiliations-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: 3.5rem;
  align-items: center;
  justify-items: center;
  margin: 0 auto;
  max-width: 100%;
  padding: 0;
  box-sizing: border-box;
}


/* Horizontal scrolling for past affiliations */
.past-affiliations .affiliations-grid {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  max-width: none; /* allow grid to grow wider than its container so scrolling works */
  gap: 7rem; /* Increased gap for more visual spacing between logos */
  align-items: center;
  justify-content: flex-start; /* Start from left edge, don't center */
  padding: 0.5rem 0 12px; /* Adjusted padding for scrollbar */
}

/* Webkit scrollbar styling for past affiliations - hidden by default */
.past-affiliations::-webkit-scrollbar {
  height: 0px;
}

.past-affiliations:hover::-webkit-scrollbar {
  height: 6px;
}

.past-affiliations::-webkit-scrollbar-thumb {
  background-color: var(--style_color);
  border-radius: 3px;
}

/* Ensure affiliation items don't shrink in horizontal scroll */
.past-affiliations .affiliation-item {
  flex-shrink: 0;
  min-width: 120px; /* Ensure each item takes up minimum space */
}

/* Smooth scrolling for internal links */
html {
  scroll-behavior: smooth;
}

/* Carousel wrapper for past affiliations */
.past-affiliations-carousel {
  display: flex;
  align-items: center;
  justify-content: center; /* Center the entire carousel horizontally */
  position: relative;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
  gap: 0.4rem; /* Reduced gap for closer button positioning */
  padding: 0 0.5rem 0 1rem; /* More padding on left for left button spacing */
}

/* Carousel navigation buttons */
.carousel-btn {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border: 2px solid var(--style_color);
  background-color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 10;
  color: var(--style_color);
}

.carousel-btn:hover {
  background-color: var(--style_color);
  color: white;
  transform: scale(1.1);
}

.carousel-btn:active {
  transform: scale(0.95);
}

.carousel-btn svg {
  width: 20px;
  height: 20px;
  stroke-width: 2.5;
}

.carousel-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
  transform: none;
}

.carousel-btn:disabled:hover {
  background-color: white;
  color: var(--style_color);
  transform: none;
}

/* Special styling for the previous button when disabled - make it transparent */
.carousel-btn-prev:disabled {
  opacity: 0;
  cursor: default;
  transform: none;
}

.carousel-btn-prev:disabled:hover {
  opacity: 0;
  background-color: white;
  color: var(--style_color);
  transform: none;
}

/* Special styling for the next button when disabled - make it transparent */
.carousel-btn-next:disabled {
  opacity: 0;
  cursor: default;
  transform: none;
}

.carousel-btn-next:disabled:hover {
  opacity: 0;
  background-color: white;
  color: var(--style_color);
  transform: none;
}

/* Affiliations container for side-by-side layout */
.affiliations-container {
  display: flex;
  align-items: flex-start;
  width: 100%;
  box-sizing: border-box;
  gap: min(5rem, 6vw); /* Reduced gap to account for button hover scaling */
}

.affiliations-headers {
  display: flex;
  align-items: flex-start;
  gap: 0;
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 0.5rem;
}

.current-header {
  flex: 0 0 160px;
  min-width: 160px;
  padding-right: 1.5rem;
  box-sizing: border-box;
}

.past-header {
  flex: 1 1 0;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  margin-left: 6rem;
  margin-right: 1rem; /* Reduced to match past-affiliations */
}

.current-affiliation {
  flex: 0 0 160px;
  min-width: 160px;
  padding-right: 1.5rem;
  box-sizing: border-box;
}

.past-affiliations {
  flex: 1 1 0;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto; /* Allow horizontal scrolling */
  overflow-y: hidden;
  box-sizing: border-box;
  scrollbar-width: none; /* Hide scrollbar for Firefox */
  scrollbar-color: var(--style_color) transparent;
  margin: 0 auto; /* Center the carousel container */
  /* Fallback width before JavaScript calculates precise dimensions */
  width: 400px;
}

/* Webkit scrollbar styling for past affiliations - hidden by default */
.past-affiliations::-webkit-scrollbar {
  height: 0px;
}

/* Single affiliation grid for current affiliation */
.affiliations-grid-single {
  display: flex;
  justify-content: center;
  align-items: center;
}

.affiliations-grid-single .affiliation-item img {
  max-width: 100px;
  max-height: 75px;
}

.affiliation-item {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.affiliation-item:hover {
  transform: translateY(-3px);
  opacity: 0.8;
}

.affiliation-item img {
  max-width: 90px;
  max-height: 65px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(20%);
  transition: filter 0.2s ease;
}

.affiliation-item:hover img {
  filter: grayscale(0%);
}

/* Date and Conference Styling inspired by Summary */
.date-badge {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--font_color);
  background: linear-gradient(135deg, rgba(83, 171, 172, 0.38) 0%, rgba(83, 171, 172, 0.22) 100%);
  padding: 0.25rem 0.7rem;
  border-radius: 15px;
  border: 1px solid rgba(45, 106, 102, 0.45);
  white-space: nowrap;
  display: inline-block;
  transition: all 0.2s ease;
}

/* Large screen badge adjustments */
@media screen and (min-width: 2560px) {
  .date-badge {
    font-size: 0.95rem !important;
    padding: 0.35rem 0.8rem !important;
  }
  
  .conference-badge {
    font-size: 1rem !important;
    padding: 0.1rem 0.5rem !important;
  }
  
  .news-date {
    font-size: 0.95rem !important;
    padding: 0.35rem 0.8rem !important;
  }
  
  .award-badge {
    font-size: 1.05rem !important;
    padding: 0.1rem 0.5rem !important;
  }
  
  .summary-period {
    font-size: 0.9rem !important;
    padding: 0.25rem 0.7rem !important;
  }
}

@media screen and (min-width: 1920px) and (max-width: 2559px) {
  .date-badge {
    font-size: 0.9rem !important;
    padding: 0.3rem 0.75rem !important;
  }
  
  .conference-badge {
    font-size: 0.95rem !important;
    padding: 0.05rem 0.45rem !important;
  }
  
  .news-date {
    font-size: 0.9rem !important;
    padding: 0.3rem 0.75rem !important;
  }
  
  .award-badge {
    font-size: 1rem !important;
    padding: 0.05rem 0.45rem !important;
  }
  
  .summary-period {
    font-size: 0.85rem !important;
    padding: 0.22rem 0.65rem !important;
  }
}

/* Responsive adjustments for badges - small screens */
@media screen and (max-width: 850px) {
  .date-badge, .conference-badge, .news-date {
    font-size: 0.75rem !important;
    padding: 0.2rem 0.5rem !important;
  }
  
  .award-badge {
    font-size: 0.75rem !important;
  }
  
  .summary-period {
    font-size: 0.7rem !important;
  }
}

@media screen and (max-width: 480px) {
  .date-badge, .conference-badge, .news-date {
    font-size: 0.7rem !important;
    padding: 0.15rem 0.4rem !important;
  }
  
  .award-badge {
    font-size: 0.7rem !important;
  }
  
  .summary-period {
    font-size: 0.65rem !important;
  }
}

.date-badge:hover {
  transform: translateY(-1px);
}

.conference-badge {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--title_color);
  background: linear-gradient(135deg, rgba(83, 171, 172, 0.38) 0%, rgba(83, 171, 172, 0.38) 100%);
  padding: 0rem 0.4rem;
  border-radius: 20px;
  border: 1px solid rgba(45, 106, 102, 0.45);
  white-space: nowrap;
  display: inline-block;
  transition: all 0.2s ease;
  margin-right: 0.5rem;
}

.conference-badge:hover {
  transform: translateY(-1px);
}

.news-date {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--font_color);
  background: linear-gradient(135deg, rgba(83, 171, 172, 0.38) 0%, rgba(83, 171, 172, 0.22) 100%);
  padding: 0.2rem 0.6rem;
  border-radius: 12px;
  border: 1px solid rgba(45, 106, 102, 0.45);
  white-space: nowrap;
  display: inline-block;
  transition: all 0.2s ease;
  margin-right: 0.5rem;
}

.news-date:hover {
  transform: translateY(-1px);
}

.award-badge {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--font_color);
  background:rgba(239, 124, 37, 1);x
  padding: 0rem 0.4rem;
  border-radius: 20px;
  border: 1px solid rgba(45, 106, 102, 0.35);
  white-space: nowrap;
  display: inline-block;
  transition: all 0.2s ease;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  font-family: sans-serif;
}

.award-badge:hover {
  transform: translateY(-1px);
}

/* Affiliation Summary Styles */
.affiliation-summary {
  position: relative;
  width: 100%;
  margin-top: 0;
  
  /* Collapsible without reserved space */
  max-height: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 0.3s ease, max-height 0.3s ease;
  
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  border-radius: 8px; /* Smaller border radius for tighter look */
  padding: 0 0.75rem; /* Tighter horizontal padding */
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06); /* Lighter shadow */
  border-left: 3px solid var(--style_color); /* Thinner border */
  overflow: hidden;
}

.affiliation-summary::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px; /* Thinner top line */
  background: linear-gradient(90deg, var(--style_color), rgba(67, 139, 202, 0.3));
}

.affiliation-summary.visible {
  margin-top: 1rem; /* Reduced top margin */
  max-height: 150px; /* More conservative max height */
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
  padding: 0.75rem; /* Tighter overall padding */
}

.summary-content {
  display: flex;
  flex-direction: column;
  gap: 0.4rem; /* Even tighter gap between elements */
}

.summary-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--title_color);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.summary-title::before {
  content: '🎓';
  font-size: 1rem;
}

.summary-title.research-type::before {
  content: '🔬';
  font-size: 1rem;
}

.summary-title.education-type::before {
  content: '🎓';
  font-size: 1rem;
}

.summary-title-text {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.summary-description {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--text_color);
  margin: 0;
  text-align: justify;
}

.summary-period {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--font_color);
  background: rgba(67, 139, 202, 0.1);
  padding: 0.2rem 0.6rem;
  border-radius: 15px;
  border: 1px solid rgba(67, 139, 202, 0.2);
  white-space: nowrap;
}

/* Hover effects for affiliation items */
.affiliation-item {
  cursor: pointer;
  position: relative;
}

/** --------------- Responsive layout adjustments --------------- **/

/* Medium screens: sidebar disappeared, reduce spacing */
@media screen and (max-width: 1024px) and (min-width: 481px) {
  .affiliations-container {
    gap: min(3.5rem, 5vw); /* Reduced gap to prevent button overflow on hover */
  }
  
  .current-header {
    flex: 0 0 120px;
    min-width: 120px;
    padding-right: 1rem;
  }
  
      .past-header {
      margin-left: min(3.5rem, 5vw); /* Match reduced container gap */
      margin-right: 0.5rem;
    }
  
  .current-affiliation {
    flex: 0 0 120px;
    min-width: 120px;
    padding-right: 1rem;
  }
  
  .past-affiliations {
    margin: 0 auto; /* Keep centered for medium screens */
    width: min(250px, calc(100vw - 200px));
    max-width: calc(100vw - 200px);
  }
  
  .past-affiliations .affiliations-grid {
    gap: 2.5rem;
  }
  
  .affiliation-item img {
    max-width: 70px;
    max-height: 55px;
  }
  
  .affiliations-grid-single .affiliation-item img {
    max-width: 80px;
    max-height: 60px;
  }
  
  .carousel-btn {
    width: 35px;
    height: 35px;
  }
  
  .carousel-btn svg {
    width: 18px;
    height: 18px;
  }
  
  /* Responsive summary styles for medium screens */
  .affiliation-summary {
    margin-top: 0; /* Reset to collapsible */
    padding: 0 0.6rem; /* Tighter horizontal padding */
  }
  
  .affiliation-summary.visible {
    margin-top: 0.75rem; /* Reduced margin */
    max-height: 130px; /* Smaller max height */
    padding: 0.6rem; /* Tighter overall padding */
  }
  
  .summary-title {
    font-size: 1.05rem;
  }
  
  .summary-description {
    font-size: 0.92rem;
  }
  
  .summary-period {
    font-size: 0.75rem;
  }
}

/* Small screens: mobile layout */
@media screen and (max-width: 480px) {
  .affiliations-container {
    gap: 0.75rem;
    padding: 0 0.25rem;
  }
  
  .current-header {
    flex: 0 0 100px;
    min-width: 100px;
    padding-right: 0.75rem;
  }
  
  .past-header {
    margin-left: 0.75rem;
    margin-right: 0.25rem;
  }
  
  .current-affiliation {
    flex: 0 0 100px;
    min-width: 100px;
    padding-right: 0.75rem;
  }
  
  .past-affiliations {
    margin: 0 auto; /* Keep centered for mobile screens */
    width: min(160px, calc(100vw - 140px));
    max-width: calc(100vw - 140px);
  }
  
  .past-affiliations .affiliations-grid {
    gap: 1.8rem;
  }
  
  .affiliation-item img {
    max-width: 55px;
    max-height: 40px;
  }
  
  .affiliations-grid-single .affiliation-item img {
    max-width: 70px;
    max-height: 50px;
  }
  
  .carousel-btn {
    width: 28px;
    height: 28px;
  }
  
  .carousel-btn svg {
    width: 14px;
    height: 14px;
  }
  
  .past-affiliations-carousel {
    gap: 0.15rem;
  }
  
  /* Responsive padding for about section */
  .Bio > div[style*="text-align: justify"] {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  
  /* Responsive summary styles */
  .affiliation-summary {
    margin-top: 0; /* Reset to collapsible */
    padding: 0 0.5rem; /* Tighter horizontal padding */
    /* Override horizontal margins for mobile */
    margin-left: 1.5rem;
    margin-right: 1.5rem;
    max-width: calc(100% - 3rem);
  }
  
  .affiliation-summary.visible {
    margin-top: 0.5rem; /* Minimal margin for mobile */
    max-height: 120px; /* Smaller max height for mobile */
    padding: 0.5rem; /* Tight padding for mobile */
    margin-left: 1.5rem;
    margin-right: 1.5rem;
    max-width: calc(100% - 3rem);
  }
  
  .summary-title {
    font-size: 1rem;
  }
  
  .summary-description {
    font-size: 0.9rem;
  }
  
  .summary-period {
    font-size: 0.7rem;
  }
}

/* for smaller screens */
@media (max-width: 1050px) {
  .resume .left {
    width: 49%;
    padding: 0;
    text-align: left;
    margin: 0;
    margin-bottom: 10px;
  }

  .resume .center {
    margin-left: auto;
    width: 49%;
    padding: 0;
    margin: 0;
    margin-bottom: 10px;
    text-align: right;
  }

  .resume .right {
    width: 100%;
    line-height: 1.5em;
    text-align: left;
  }
}


/** --------------- Styles projects --------------- **/


/*By default hides details */
#show-liris, .detail-liris, #show-par, .detail-par, #show-knockoffs, .detail-knockoffs {display:none;}
/*Display details when clicked */
#show-liris:checked~.detail-liris, #show-par:checked~.detail-par, #show-knockoffs:checked~.detail-knockoffs {display:block;}
/*Hides 'show' button if details clicked */
#show-liris:checked ~ .short-liris, #show-par:checked ~ .short-par, #show-knockoffs:checked ~ .short-knockoffs {display: none; }




/* General aspect of button show/hide */
label[for='show-liris'], label[for='show-par'], label[for='show-knockoffs'] {
  position: static;  /* defines position of the hide/show button */
  width: 10%;
  bottom: 0;
  font-size: 0.65em;
  text-align: center;
  line-height: 1em;
  padding: 0.6em;
  cursor: pointer;
  border-radius: 5px;
  text-transform: uppercase;
  font-weight: bold;
  font-family: sans-serif;
}
label[for='show-liris']:hover, label[for='show-par']:hover, label[for='show-knockoffs']:hover { border: 1px solid; } /* aspect of button show/hide when hovered */
/*Aspect of button show/hide when clicked */
label[for='show-liris']:active, label[for='show-par']:active, label[for='show-knockoffs']:active {
  border: 1px solid #fff;
  background-color: #606c71;
  color: #fff;
}


/* Table projets */
.projects .row:before {
  display: table;
  box-sizing: border-box;
}
.projects .row:after {
  content: "";
  display: table;
  clear: both;
}
.projects .column {
  box-sizing: border-box;
  display: inline-block;
  float: none;
  position: relative;
  vertical-align: middle;
}
.projects .left {
  width: 39%;
  padding-right: 1%;  
  padding-left: 1%;
  text-align: center;
}
.projects .right {
  width: 60.5%;
  padding-left: 1%;
  padding-right: 0px;
  text-align: justify;
}

/* for smaller screens */
@media (max-width: 1050px) {
  .projects .left {
    display: none;
  }
  .projects .center {
    width: 100%;
    padding: 0;
    margin: 0;
  }

  .projects .right {
    width: 100%;
    line-height: 1.5em;
  }
}


/* Aspect buttons for project papers */
.projects .btn, .resume .btn {
  display: inline-block;
  all: initial;
  position: static;  /* defines position of the hide/show button */
  width: 10%;
  bottom: 0;
  font-size: 0.75em;
  text-align: center;
  line-height: 1em;
  padding: 0.5em;
  cursor: pointer;
  border-radius: 5px;
  text-transform: uppercase;
  color: var(--style_color);
  font-weight: bold;
  font-family: sans-serif;
  border: 1px solid var(--style_color);
}
.projects .btn:hover, .resume .btn:hover  {
  border: 1px solid #fff;
  background-color: var(--style_color);
  color: #fff;
}

.projects .course-projects hr {
    width:75%;
    margin: auto;
    margin-top: 25px;
    margin-bottom: 25px 
  }
  
.projects .course-projects p {
  text-align: justify;
}

.projects a.btn, .resume a.btn {
  margin-bottom: 0rem;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

/* Button content wrapper - using traditional inline alignment */
.page-header .btn > span,
.projects .btn > span,
.resume .btn > span {
  display: inline-block;
  vertical-align: middle;
  white-space: nowrap;
}

.page-header .btn > span > *,
.projects .btn > span > *,
.resume .btn > span > * {
  vertical-align: middle;
  margin-right: 0.3em;
}

.page-header .btn > span > *:last-child,
.projects .btn > span > *:last-child,
.resume .btn > span > *:last-child {
  margin-right: 0;
}

.page-header .btn span.img_btn, .projects .btn span.img_btn, .resume .btn span.img_btn {
  display: inline-flex;
  padding: 0em;
  height: 1em;  /* Defines button drawing width */
  align-items: center;
  justify-content: center;
}

.projects .btn span.text_container, .resume .btn span.text_container {
  display: inline-block;
  line-height: 1;
  font-family: sans-serif;
  font-weight: 700;
  /* padding-left: 0.2em; */
}

/* Large screen project and resume button adjustments */
@media screen and (min-width: 2560px) {
  .projects .btn, .resume .btn {
    font-size: 0.8em !important;
    padding: 0.55em !important;
  }
  
  .projects .btn span.text_container, .resume .btn span.text_container {
    font-size: 1.05em !important;
  }
}

@media screen and (min-width: 1920px) and (max-width: 2559px) {
  .projects .btn, .resume .btn {
    font-size: 0.78em !important;
    padding: 0.52em !important;
  }
  
  .projects .btn span.text_container, .resume .btn span.text_container {
    font-size: 1.02em !important;
  }
}