  /* lessonstyle.css
 * Cleaned: all unused SoftChalk styles removed.
 * Retained only styles used across Essays Module Part 1 pages:
 * Essays_Module_1_A, _12, _13, _14, _15
 * ─────────────────────────────────────────────────────────── */


/* ── Reset / base ─────────────────────────────────────────── */

legend {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  color: inherit;
  border: 0;
  font-size: inherit;
  line-height: inherit;
}

html {
  height: 100%;
  width: 100%;
  overflow: auto;
}

body {
  height: 100%;
  width: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
}

html body {
  font-size: 100%;
  font-family: "Open Sans", Arial, sans-serif;
  color: #000;
  background-color: #FFF !important;
  line-height: 1.6;
}


/* ── Typography ───────────────────────────────────────────── */

p {
  font-size: 1.6rem;
  line-height: 1.6em;
  margin-bottom: 16px;
}

h1 {
  font-size: 3.6em;
  font-family: "Open Sans", Arial, sans-serif;
  font-weight: bold;
  color: #1C234A;
}

h2 {
  font-size: 3.4em;
  font-family: "Open Sans", Arial, sans-serif;
  font-weight: bolder;
  color: #1C234A;
}

h3 {
  font-size: 3em;
  font-family: "Open Sans", Arial, sans-serif;
  font-weight: bold;
  color: #1C234A;
}

h4 {
  font-size: 2.8em;
  font-family: "Open Sans", Arial, sans-serif;
  font-weight: bold;
  color: #1C234A;
}

h5 {
  font-size: 2.4em;
  font-family: "Open Sans", Arial, sans-serif;
  font-weight: bold;
  color: #1C234A;
}

h6 {
  font-size: 2em;
  font-family: "Open Sans", Arial, sans-serif;
  font-weight: bold;
  color: #1C234A;
}

h1, h2, h3, h4, h5, h6 {
  line-height: 1.5em;
}

a {
  color: #1C234A;
/*	font-weight: bold;*/
  text-decoration: underline;
}

a:hover,
a:visited:hover,
a:focus {
  color: #2D53B3;
}

ul, ol {
  font-size: 1.6rem;
}

ul li p, ol li p,
ul li, ol li {
  font-size: 1.6rem;
}

li {
  padding-left: 10px;
}

hr {
  width: 100%;
  height: 2px;
  border: 0px none !important;
  color: #1C234A;
  background-color: #1C234A;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: baseline;
}

.highlight {
	color: black;
	background-color: #e6cf01;
}


/* ── Skip link ────────────────────────────────────────────── */

.skip-link {
  position: absolute;
  top: -100px;
  background-color: #FFF;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  color: #000;
  display: block;
  font-size: 14px;
  font-weight: 700;
  height: auto;
  left: 6px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  width: auto;
  z-index: 100000;
  transition: top .75s ease-out;
}

.skip-link:focus {
  color: #2D53B3;
  top: 7px;
  transition: top 0s;
}


/* ── Banner / header ──────────────────────────────────────── */

.banner {
  margin: 0;
  padding: 40px;
  color: #FFF;
  background-color: #1C234A;
  text-align: center;
  flex: 0 1 auto;
}

.banner h1 {
  font-size: 3rem;
  margin-top: 0;
  margin-bottom: 0;
  line-height: 1.2;
  color: #FFF;
}

.banner p {
  margin-top: 10px;
  margin-bottom: 0;
  font-size: 1.75rem;
  color: #FFF;
  line-height: 1.2;
}

#page-jumbotron {
  z-index: 0;
}

#page-banner img {
  max-height: 110px;
  width: auto;
}


/* ── Navbar ───────────────────────────────────────────────── */

.navbar {
  font-family: Arial, sans-serif;
  background-color: #2D53B3 !important;
  color: #FFF;
  text-align: left;
  margin-bottom: 0px;
  border-bottom: 1px solid #C7C7C7;
  transition: top 0.2s ease-in-out;
  width: 100%;
}

.navbar-default {
  background-color: transparent;
}

.navbar-static-top {
  border: none;
}

.navbar #sidebar-toggle-btn:focus,
.navbar a:focus,
.navbar button:focus {
  background-color: #2D53B3 !important;
  color: #FFFFFF !important;
}

.navbar.nav-up {
  top: -50px;
  position: fixed;
}

.navbar.nav-down {
  top: 0;
  position: fixed;
}

#floatingscore {
  text-align: right;
  font-size: 1.6em;
  display: inline-block;
  margin: 17px 0 15px;
  color: #FFF;
  margin-bottom: 15px;
  line-height: 1;
}

#page-counter {
  font-size: 1.3em;
  padding-left: 0;
  margin: 8px 0;
  text-align: center;
  list-style: none;
  color: #FFF;
}

#page-counter li > a,
#page-counter li > div {
  padding: 0;
  border: none;
}

#page-counter .page-count {
  bottom: 2px;
  font-size: 20px;
  font-weight: 600;
}

.screen-reader-text {
  position: absolute !important;
  left: -999em;
}

.glyphicon {
  text-decoration: none;
}

.pager-next a,
.pager-prev a {
  width: 25px;
  height: 25px;
  text-decoration: none;
  color: #FFF;
  line-height: 2em !important;
}

.pager-next a:hover  { color: #aaaaaa; }
.pager-next a:focus  { color: #FFF; }
.pager-prev a:hover  { color: #aaaaaa; }
.pager-prev a:focus  { color: #FFF; }

.pager li {
  display: inline-block;
}

.pager li > a:focus,
.pager li > a:hover {
  background-color: transparent;
}

.pager li > a,
.pager li > span {
  border: none;
  border-radius: 0;
  background-color: transparent;
}

.navbar .btn:focus,
.navbar .pager a:focus,
.sidebar-toggle-btn:focus {
  outline-width: dotted;
  outline-style: 2px;
  outline-color: #DCDCDC;
}


/* ── Sidebar toggle button ────────────────────────────────── */

#sidebar-toggle-btn {
  background: none;
  border: none;
  font-size: 2em;
  color: #FFF;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}

#sidebar-toggle-btn span {
  position: absolute !important;
  left: -999em;
}

#sidebar-toggle-btn:focus { color: #aaaaaa; }
#sidebar-toggle-btn:hover { color: #aaaaaa; }


/* ── Main layout ──────────────────────────────────────────── */

.container-main {
  display: flex;
  flex-direction: row;
  position: relative;
  flex: 1 0 auto;
  padding: 0;
  margin-top: 0px !important;
  overflow: hidden;
}

/*
 * flex: 1 1 100% lets #main-col grow to fill all available space. When the sidebar is closed (width:0), this means the content naturally spans the full container width with no ghost whitespace.
 * min-width: 0 prevents flex overflow on narrow viewports.
 */
#main-col {
  display: flex;
  flex: 1 1 100%;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  padding: 15px;
  min-width: 0;
  overflow: hidden;
}

#main-col a {
  word-wrap: break-word;
}

#content-main {
  margin: 20px 70px 0 70px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

#content-main .row {
  margin-bottom: 10px;
}

#cover {
  display: block;
  position: relative;
  z-index: 0;
}


/* ── Bottom navigation row ────────────────────────────────── */

#horizontal-bottom-nav-row {
  margin-top: auto;
  border-top: 1px solid #DCDCDC;
  border-bottom: 1px solid #DCDCDC;
  width: 100%;
}

#vertical-bottom-nav-row,
#vertical-top-nav-row {
  display: none;
}

.pager-wrap {
  max-width: 500px;
  margin: 0 auto;
  position: relative;
}

#horizontal-bottom-nav-row .pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 15px;
  background-color: #FFF;
  color: #494949;
  font-weight: bold;
  position: relative;
}

#horizontal-bottom-nav-row .pager li > a:hover,
.pager li > span:hover {
  background-color: #FFF;
  color: #030303;
}

#horizontal-bottom-nav-row span {
  width: 25px;
  height: 25px;
  position: absolute;
  top: 4px;
}

#horizontal-bottom-nav-row .pager li.previous > a { padding-left: 30px; }
#horizontal-bottom-nav-row .pager li.next > a     { padding-right: 30px; }

#horizontal-bottom-nav-row .next span {
  right: 0;
  background-image: url("/twc/Modules/Essays_Module_1/sclb_extras/images/arrowright_gray.png");
}

#horizontal-bottom-nav-row .next a:hover span,
#horizontal-bottom-nav-row .next a:focus span {
  background-image: url("/twc/Modules/Essays_Module_1/sclb_extras/images/arrowright.png");
}

#horizontal-bottom-nav-row .previous a:hover span,
#horizontal-bottom-nav-row .previous a:focus span {
  background-image: url("/twc/Modules/Essays_Module_1/sclb_extras/images/arrowleft.png");
}

#horizontal-bottom-nav-row .previous span {
  left: 0;
  background-image: url("/twc/Modules/Essays_Module_1/sclb_extras/images/arrowleft_gray.png");
}

#horizontal-bottom-nav-row .pager {
  position: relative;
}


/* ── Sidebar ──────────────────────────────────────────────── */
/*
 * CLOSED STATE: width is 0 so the sidebar takes NO space in
 * the flex row. This is what fixes the ghost whitespace on
 * tablets when the menu is collapsed. The width animates
 * open alongside the opacity fade.
 */

#sidebar {
  font-family: Arial;
  flex-shrink: 0;
  overflow: hidden;
  width: 0;
  visibility: hidden;
  opacity: 0;
  transition:
    width    0.35s ease,
    opacity  0.35s ease,
    visibility 0s linear 0.35s;
}

#sidebar * {
  word-wrap: break-word;
}

#sidebar.sidebar-open {
  width: 25%;
  visibility: visible;
  opacity: 1;
  overflow-x: hidden;
  overflow-y: auto;
  transition:
    width    0.35s ease,
    opacity  0.6s  ease,
    visibility 0s linear 0s;
}

.sidebar-menu {
  padding: 65px 0 0 0;
  background-color: #FFF;
}

.sidebar-menu .sidebar-toggle-btn {
  display: none;
}

.sidebar-menu .panel-group {
  margin: 0 30px;
}

.sidebar-menu .panel {
  border: none;
  background-color: #FFF;
  color: #000;
  border-left: 3px solid #EEE;
  padding: 0 0 0 20px;
}

.sidebar-menu h1,
.sidebar-menu h2,
.sidebar-menu h3,
.sidebar-menu h4,
.sidebar-menu h5,
.sidebar-menu h6 {
	font-size: 2rem;
  font-family: "Open Sans", Arial, sans-serif;
  line-height: 1.2;
  font-weight: bold;
  color: #2D53B3;
}

.panel-group {
  margin: 0;
}

.panel-group .panel {
  margin-bottom: 30px;
  box-shadow: none;
  border-radius: 0px;
}

.panel-group .panel-heading .panel-body {
  padding: 0;
  margin-top: 10px;
}

.panel-body p:last-child {
  margin-bottom: 0;
}

.panel-default > .panel-heading {
  background-color: transparent !important;
}

#sidebar-toc .panel {
  border-left: none;
}

#sidebar-toc h2 {
  margin: 0 0 5px;
  color: #2D53B3;
  font-weight: bold;
}


/* ── Sidebar navigation list ──────────────────────────────── */

ol.sidebar-nav {
  list-style: none;
  margin: 0;
  padding: 0;
}

ol.sub-nav {
  margin-left: 15px;
}

/* 1.6rem (16px) replaces the old hardcoded 14px — WCAG minimum */
.sidebar-nav li {
  font-size: 1.6rem;
}

.sidebar-nav a {
  font-weight: bold;
  text-decoration: none;
  padding: 10px;
  display: flex;
  align-items: center;
  min-height: 44px;  /* WCAG 2.5.5 recommended touch target */
  position: relative;
}

.sidebar-nav a:focus,
.sidebar-nav a:hover {
/*  color: #494949;*/
  background-color: #EEE;
  text-decoration: none;
}

/* Current page highlight */
.current-toc-title {
  box-sizing: border-box;
  padding: 10px 30px;
  border-left: 4px solid #2D53B3;
  background-color: #EEE;
  color: #2D53B3;
  font-weight: bold;
  display: block;
  position: relative;
}

.sidebar-nav .current-toc-title {
	margin-left: -30px;
  	margin-right: -30px;
}

.sub-nav .current-toc-title {
	margin-left: 0;
	margin-right: 0;
}

.current-toc-title a {
  color: #2D53B3;
  font-weight: bold;
  text-decoration: none;
}

/* Nested sub-nav — reset any inherited highlight */
.sidebar-nav > li > ol.sub-nav {
  margin-top: 10px;
  margin-bottom: 10px;
	font-weight: bold;
/*  border-left: 2px solid #EEE;*/
  background-color: transparent;
  padding-left: 15px;
/*  list-style-type: upper-roman;*/
}

.sidebar-nav > li > ol.sub-nav li {
  background-color: #FFF;
  border-left: none;
  padding-left: 0;
}

.sidebar-nav > li > ol.sub-nav li a:focus,
.sidebar-nav > li > ol.sub-nav li a:hover {
  background-color: #EEE;
}

#sidebar-title-panel,
#sidebar-footer-panel {
  display: none;
}

#content-main > .sidebar-toggle-btn {
  display: none;
}

#sidebar-left {
  display: none;
}


/* ── Btn (navbar/pager use only) ──────────────────────────── */

.btn {
  border-radius: 20px;
  font-weight: bold;
  padding: 10px 24px;
  background-color: #1C234A;
  color: #FFF;
  font-size: 1.6rem;
  box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.4);
}

.btn:hover,
.btn:focus {
  background-color: #1C234A;
  color: #FFF;
  box-shadow: none;
}


/* ── Page-specific logo images ────────────────────────────── */

.logo_1 {
  display: inline-block;
  text-indent: -9999px;
  margin-left: 400px;
  margin-top: -200px;
  z-index: -9999;
  position: relative;
  width: 500px;
  height: 150px;
  background-image: url("/twc/Modules/Essays_Module_1/Laptop_Icon.svg");
  background-size: 500px 150px;
}

.logo_2 {
  display: inline-block;
  margin-left: 230px;
  margin-top: -130px;
  z-index: -9999;
  position: relative;
  width: 500px;
  height: 150px;
  background-image: url("/twc/Modules/Essays_Module_1/Brainstorm_Icon.svg");
  background-size: 500px 150px;
}

.logo_3 {
  display: inline-block;
  margin-left:230px;
  margin-top: -150px;
  z-index:-9999;
  position: relative;
  width: 500px;
  height: 150px;
  background-image: url("/twc/Modules/Essays_Module_1/Key_Points.svg");
  background-size: 500px 150px;
}

.logo_4 {
  display: inline-block;
  margin-left: 350px;
  margin-top: -150px;
  z-index: -9999;
  position: relative;
  width: 500px;
  height: 150px;
  background-image: url("/twc/Modules/Essays_Module_1/Gather_Information.svg");
  background-size: 500px 150px;
}

.logo_5 {
  display: inline-block;
  margin-left: 480px;
  margin-top: -150px;
  z-index: -9999;
  position: relative;
  width: 500px;
  height: 150px;
  background-image: url("/twc/Modules/Essays_Module_1/Write_About.svg");
  background-size: 500px 150px;
}

#Arrow_1 {
  height: -30;
  width: 1000;
  margin: 3em 0 0;
}


/* ── Essay prompt box ─────────────────────────────────────── */

.essay-prompt {
  display: block;
  background-color: white;
  border: solid black 2px;
  padding: 4em;
  max-width: 850px;
  margin: 2em 0;
}

.essay-prompt h3 {
  font-size: 1.75rem !important;
  font-weight: 700;
  text-align: center;
}

.essay-prompt h4 {
  font-size: 1.6rem !important;
  font-weight: 700;
  text-align: left;
}


/* ── Collapsible sections ─────────────────────────────────── */

.collapsible {
  background-color: #643D6B;
  color: #EEEEEE;
  cursor: pointer;
  padding: 18px;
  width: 100%;
  border: none;
  text-align: left;
  outline: none;
  font-size: 25px;
}

.active,
.collapsible:hover {
  background-color: #EEEEEE;
  color: #643D6B;
}

.content {
  padding: 0 18px;
  display: none;
  overflow: hidden;
  background-color: #EEEEEE;
}


/* ── Footer ───────────────────────────────────────────────── */

#footer {
  color: #494949;
  clear: both;
  background-color: #FFF;
  border-top: 6px solid #DCDCDC;
  border-bottom: 6px solid #DCDCDC;
  padding: 2em 15px;
  height: auto !important;
  margin-bottom: 0;
}

#footer a {
  color: #494949;
  text-decoration: underline;
}

#footer a:hover,
#footer a:focus {
  text-decoration: none;
}

#footer a:focus {
  background-color: #EEEEEE !important;
}

#footer-copyright          { text-align: left; font-size: 1.3em; }
#footer-date-last-modified { text-align: left; font-size: 1.3em; }

.footer-wrap {
  width: 100%;
  position: relative;
  z-index: 0;
}


/* ── Page entry animation ─────────────────────────────────── */

.sc-animated {
  animation-duration: 0.66s;
  animation-fill-mode: both;
}

@keyframes sc-animation {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.sc-animation {
  animation-name: sc-animation;
}


/* ══════════════════════════════════════════════════════════════
   RESPONSIVE BREAKPOINTS
   ══════════════════════════════════════════════════════════════

   Breakpoint map:
   ┌──────────────────┬────────────────────────────────────────┐
   │ > 1024px         │ Desktop — sidebar 25%, side-panel      │
   │ 769px – 1024px   │ Tablet landscape — sidebar 280px       │
   │ ≤ 768px          │ Tablet portrait + mobile — full-width  │
   │                  │ dropdown from top of #main-container   │
   │ ≤ 540px          │ Small mobile — tighter spacing         │
   └──────────────────┴────────────────────────────────────────┘

   WCAG notes applied throughout:
   · All font sizes at or above 1rem (16px)
   · Touch targets minimum 44px tall (WCAG 2.5.5)
   · Headings scaled down on mobile to prevent overflow/zoom
   · Sidebar uses aria-hidden + visibility (not display:none)
     so CSS transitions can still animate
   ══════════════════════════════════════════════════════════════ */


/* ── Desktop ≥ 769px ─────────────────────────────────────── */

@media (min-width: 769px) {
  #main-col {
    padding: 20px;
    position: relative;
  }
}


/* ── Tablet landscape: 769px – 1024px ───────────────────── */
/*
 * Cap the open sidebar at 280px so it doesn't crowd the
 * content area. Closed state needs no rule here — the base
 * width:0 already prevents reserved whitespace.
 */

@media (max-width: 1024px) and (min-width: 769px) {
  #sidebar.sidebar-open {
    width: 280px;
  }
}


/* ── Tablet portrait + mobile: ≤ 768px ──────────────────── */
/*
 * SIDEBAR: switches from a side-panel to a full-width overlay
 * that drops down from the top of #main-container (which sits
 * directly below the navbar and hamburger button).
 *
 * How the drop-down works:
 * · position:absolute removes the sidebar from the flex row,
 *   so #main-col expands to 100% width at all times.
 * · transform:translateY(-100%) positions it above the
 *   container; overflow:hidden on #main-container clips it
 *   invisibly.
 * · On .sidebar-open, translateY(0) slides it into view.
 * · The width and opacity transitions from the base rule are
 *   replaced here with a transform + opacity transition.
 *
 * TYPOGRAPHY: headings are scaled down to prevent text from
 * overflowing or triggering browser zoom on narrow screens.
 */

@media (max-width: 768px) {

  /* Headings: scale down to prevent overflow and zoom */
  h1 { font-size: 2.2rem; }
  h2 { font-size: 2rem;   }
  h3 { font-size: 1.8rem; }
  h4 { font-size: 1.6rem; }
  h5 { font-size: 1.6rem; }
  h6 { font-size: 1.6rem; }

  .banner h1 {
    font-size: 1.8rem;
  }

  /* Content margins: reduced for narrower viewports */
  #content-main {
    margin: 20px 16px 0 16px;
  }

  #floatingscore {
    font-size: 1.4rem;
  }

  .btn {
    padding: 5px 12px;
  }

  .essay-prompt {
    padding: 20px;
  }

  /* Sidebar: full-width dropdown */
  #sidebar {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: auto;
    max-height: 75vh;
    overflow-y: auto;
    z-index: 200;

    /* Replace the width-based transition with translateY.
       The sidebar starts hidden above the container edge;
       overflow:hidden on #main-container keeps it invisible. */
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition:
      transform   0.35s ease,
      opacity     0.35s ease,
      visibility  0s linear 0.35s;
  }

  #sidebar.sidebar-open {
    width: 100% !important;
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    transition:
      transform   0.35s ease,
      opacity     0.35s ease,
      visibility  0s linear 0s;
  }

  /* Reduce top padding inside the sidebar panel on mobile */
  .sidebar-menu {
    padding: 20px 0;
  }

  /* Sidebar nav: enforce 16px minimum and 44px touch targets */
  .sidebar-nav li {
    font-size: 1.6rem;
  }

  .sidebar-nav a {
    min-height: 44px;
    padding: 12px 10px;
  }
}


/* ── Small mobile: ≤ 540px ───────────────────────────────── */

@media (max-width: 540px) {

  .banner {
    padding: 16px 12px;
  }

  .banner h1 {
    font-size: 2rem;
  }

  #content-main {
    margin: 16px 12px 0 12px;
  }

  #floatingscore {
    text-align: center;
  }

  #floatingscore span {
    display: block;
  }

  #page-counter li {
    font-size: 1.4rem;
  }

  .collapsible {
    font-size: 1.6rem;
    padding: 14px;
  }

  /* Visual definition for the open sidebar against content below */
  #sidebar.sidebar-open {
    border-bottom: 2px solid #C7C7C7;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.15);
  }
}
