 /* #BASE CSS (Initital Setup)
---------------------------------
    #BASE CONTENT
        #TYPOGRAPHY
            #BODY
            #HEADINGS
            #PARAGRAPHS
            #LINKS
            #HELPERS
        #MEDIA
            #IMAGES
        #COMPONENTS
            #BUTTONS
    #BASE LAYOUT
        #SIMPLE RESET
        #MEDIAQUERIES
        #CONTAINER
        #GRID SYSTEM
    #BASE SITE
        #SITE STRUCTURE
            #HEADER
                # site-id (LOGO)
            #FOOTER
            #SECTIONS
            #SUB PAGES
        #SITE NAVIGATION
            #TOGGLE-NAV (Default for Small Screens)
--------------------------------- */

 /* TYPOGRAPHY */

 body {
     font-size: 87.5%;
     /* 14px = 1em */
     line-height: 1.5;
     color: rgba(0, 0, 0, .8);
 }

 body {
     font-size: 1em;
     /* 16px */
     font-family: "Lato", sans-serif;
 }

 /* HEADINGS */
 /*    Based on a Traditional Typographic Scale
    48, 36, 24, 21, 18, 16
*/

 h1,
 h2,
 h3,
 h4,
 h5,
 h6 {
     margin: .5em 0;

 }

 h1 {
     font-size: 3em;
     /* 48px */
     line-height: 1;
 }

 h2 {
     font-size: 2.25em;
     /* 36px */
     line-height: 1.1;
 }

 h3 {
     font-size: 1.5em;
     /* 24px */
     line-height: 1.2;
 }

 h4 {
     font-size: 1.3125em;
     /* 21px */
     line-height: 1.3;
 }

 h5 {
     font-size: 1.125em;
     /* 18px */
     line-height: 1.4;
 }

 h6 {
     font-size: 1em;
     /* 16px */
     line-height: 1.5;
 }

 h1 .hidden-sm {
     color: grey;
 }

 /* PARAGRAPHS */

 p {
     margin: .5em 0;
     max-width: 38em;
 }

 .site-footer p {
     text-align: center;
 }


 /* LINES */
 a {
     color: rgba(0, 0, 102, .8);
     text-decoration: none;
 }

 a:hover {
     color: rgba(0, 0, 102, 1);
     text-decoration: underline;
 }



 /* HELPER CLASSES */
 .text-centered {
     text-align: center;
 }

 .full-width {
     max-width: none;
     width: 100%;
 }

 .horiz-conter {
     margin-left: auto;
     margin-right: auto;
 }

 .hidden {
     position: absolute;
     top: -9999px;
     left: -9999px;
 }

 @media (min-width: 768px) {
     .hidden-desktop {
         position: absolute;
         top: -9999px;
         left: -9999px;
     }
 }

 @media (max-width: 767px) {
     .hidden-mobile {
         position: absolute;
         top: -9999px;
         left: -9999px;
     }
 }

 /* IMAGES */
 img {
     max-width: 100%;
     height: auto;
 }

 .responsive-img {
     aspect-ratio: 16/9;
     width: 100%;
     object-fit: cover;
 }

 /* BUTTONS */
 .button,
 button,
 form input[type="submit"] {
     font-size: inherit;
     line-height: 1;
     background-color: rgba(0, 0, 255, 1);
     border: 1px solid rgba(0, 0, 255, 1);
     color: rgba(255, 255, 255, 1);
     padding: 1em;
     display: inline-block;
     margin: .5em .5em .5em 0em;
     text-align: center;
     border-radius: .5em;
 }

 .button:hover,
 button:hover,
 form input[type="submit"]:hover {
     background-color: rgba(0, 0, 153, 1);
     border-color: rgba(0, 0, 153, 1);
     color: rgba(255, 255, 255, 1);
     text-decoration: none;
 }

 .button.alt {
     background-color: transparent;
     color: rgba(0, 0, 153, 1);
 }

 .button.alt:hover {
     background-color: rgba(0, 0, 153, 1);
     color: rgba(255, 255, 255, .8);
 }


 /* LAYOUT */

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

 body {
     margin: 0;
 }

 /* CONTAINER */
 .container {
     max-width: 1000px;
     margin: 0 auto;
     padding: 0 4%;

 }

 /* MEDIA QUERIES */
 @media (min-width: 768px) {
     /* TABLET SIZED STYLING GO HERE */
 }

 @media (min-width: 1050px) {
     body {
         font-size: 100%;
         /* 16px */
     }
 }

 @media (min-width: 1250px) {
     body {
         font-size: 112.5%;
         /* 18px */
     }

     .container {
         max-width: 1200px;

     }
 }

 /* FOR DEMO PURPOSES ONLY */
 body.demo {
     padding-top: 2em;
 }

 body.demo::before {
     content: "Small Screen (Mobile) Less Than 780px";
     background-color: #933;
     width: 100%;
     position: fixed;
     top: 0;
     text-align: center;
     color: white;
     padding: .5em;

 }

 @media (min-width: 768px) {
     body.demo::before {
         background-color: #bcb83d;
         content: "Midsize (Tablet) Screen 768px - 1050px";

     }
 }

 @media (min-width: 1050px) {
     body.demo::before {
         background-color: #693;
         content: "Large (Notebook) Screen 1050px - 1250px ";
     }
 }

 @media (min-width: 1250px) {
     body.demo::before {
         background-color: #09c;
         content: "Extra Large Screen 1250px + ";
     }
 }

 /* SEMANTIC GRID SYSTEM */
 .row>.column {
     margin-bottom: 4%;
 }

 .row+.row {
     margin-top: 3em;
 }

 .row {
     align-items: flex-start;
     gap: 2rem;
 }

 /* CAN ONLY WORK FOR TABLET OR HIGHER, NOT SMALL DEVICES */
 @media (min-width: 768px) {

     .row {
         display: flex;
         justify-content: space-between;
         margin-left: -2%;
         margin-right: -2%;
     }

     .row>.column {
         flex-grow: 1;
         margin-left: 2%;
         margin-right: 2%;
     }

     .row>.column.one-half {
         max-width: 46%;
     }

     .row>.column.one-third {
         max-width: 29.3333%;
     }

     .row>.column.two-thirds {
         max-width: 62.6666%;
     }

     .row>.column.one-fourth {
         max-width: 21%;
     }

     .row>.column.centered {
         margin-left: auto;
         margin-right: auto;
     }
 }

 /* FOR DEMO PURPOSES ONLY */
 .demo .column {
     background: rgba(0, 0, 0, .2);
     padding: 1em;
     text-align: center;
 }


 /* SITE STRUCTURE */
 html {
     scroll-behavior: smooth;
 }

 /* SITE HEADER */
 .site-header {
     padding: .25em 0;
 }


 /* ON LARGER SCREENS PLACE LOGO LEFT AND NAV RIGHT */
 @media (min-width: 768px) {
     .site-header .container {
         display: flex;
         justify-content: space-between;
     }
 }

 /* STYLING FOR BOTH HEADER AND FOOTER */
 .site-header a,
 .site-footer a {
     color: rgba(0, 0, 0, .8);
 }

 .site-header a:hover,
 .site-footer a:hover {
     color: rgba(0, 0, 0, 1);
     text-decoration: none;
 }

 /* LOGO AREA */


 .site-id h1 {
     font-size: 1.5em;
     margin: 0;
     padding-top: .55em;
     text-align: center;
 }

 /* SITE NAV */

 .site-nav ul {
     margin: 0;
     padding: 0;
     list-style: none;
     display: flex;
     justify-content: center;
 }

 .site-nav a {
     display: block;
     padding: 0.75em;
     font-size: 1em;
 }

 .site-nav .menu-button {
     display: none;
 }

 /* SECTIONS */
 section {
     padding: 3em 0;
 }

 /* HERO */

 .hero {
     padding: 4rem 0;
 }

 .hero-flex {
     display: flex;
     align-items: center;
     justify-content: space-between;
     flex-wrap: wrap;
 }

 .hero-image img {
     width: 300px;
     height: 300px;
     object-fit: cover;
     border-radius: 4px;
 }

 .hero-text {
     max-width: 500px;
 }

 .cta-link {
     display: inline-block;
     margin-top: 1rem;
     color: #e94d3c;
     text-decoration: none;
     font-weight: bold;
 }


 /* PROJECT SECTION */

 .projects-grid-overlay {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
     gap: 2rem;
 }

 .project-tile {
     position: relative;
     overflow: hidden;
     border-radius: 8px;
     cursor: pointer;
 }

 .project-tile img {
     width: 100%;
     height: auto;
     display: block;
     transition: transform 0.3s ease;
 }

 .project-tile:hover img {
     transform: scale(1.05);
 }

 .overlay {
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     bottom: 0;
     background: rgba(0, 0, 0, 0.6);
     color: white;
     opacity: 0;
     display: flex;
     align-items: center;
     justify-content: center;
     text-align: center;
     padding: 1rem;
     transition: opacity 0.3s ease;
 }

 .project-tile:hover .overlay {
     opacity: 1;
 }

 .overlay h3 {
     margin: 0;
     font-size: 1.25rem;
     font-weight: 600;
 }

 @media (max-width: 768px) {

     .project-block,
     .project-block.reverse {
         flex-direction: column;
     }
 }


 /* ABOUT SECTION */

 .about-flex {
     display: flex;
     align-items: flex-start;
     gap: 2rem;
 }

 .about-img img {
     width: 250px;
     height: 250px;
     object-fit: cover;
 }

 .about-text {
     max-width: 600px;
 }


 /* FOOTER SECTION */

 .site-footer {
     padding: 4rem 0;
     background: #fff;
     text-align: center;
 }

 .site-footer p {
     text-align: center;
     margin-left: auto;
     margin-right: auto;
     max-width: none;
     /* override the global max-width */
 }

 .footer-nav {
     list-style: none;
     padding: 0;
     display: flex;
     justify-content: center;
     gap: 2rem;
 }

 .footer-nav a {
     text-decoration: none;
     color: #000;
 }

 .site-footer .button.alt {
     margin-top: 2rem;
     font-size: 0.9em;
     background: none;
     border: 1px solid #ccc;
     color: #333;
 }

 .site-footer .button.alt:hover {
     background: #eee;
     color: #000;
 }

 /* TOGGLE NAV */

 @media (max-width: 767px) {
     .toggle-nav .site-id {
         position: absolute;
     }

     .toggle-nav .site-nav {
         text-align: right;
     }


     .toggle-nav .site-nav .menu-button {
         display: block;
         display: inline-block;
         cursor: pointer;
         padding: .5em .8em;
         margin-bottom: .8em;
         border: 1px solid black;
     }

     .toggle-nav .site-nav .menu-button::selection {
         background-color: rgba(255, 255, 255, 0);
     }

     .toggle-nav .site-nav ul {
         display: block;
         text-align: center;
     }

     .toggle-nav .site-nav a:hover {
         background-color: rgba(0, 0, 153, 1);
         color: white;
     }

     .toggle-nav[data-navstate="closed"] ul {
         height: 0;
         overflow: hidden;
     }

     .toggle-nav[data-navstate="open"] ul {
         height: auto;
         overflow: visible;
     }
 }

 /* NAVICON */
 .toggle-nav .site-nav .menu-button.navicon {
     border: none;
     color: rgba(255, 255, 255, 0);
     padding: 0;
 }

 .toggle-nav .site-nav .menu-button.navicon::after {
     content: "\2630";
     display: inline-block;
     padding: .2em .4em;
     margin: 0;
     color: rgba(0, 0, 0, .8);
     font-size: 1.5em;
 }

 .toggle-nav[data-navstate="open"] .site-nav .menu-button.navicon::after {
     content: "\2715";
 }

 /* STICKY header - works with a class="sticky" on .site-header */
 .site-header.sticky {
     position: fixed;
     width: 100%;
     top: 0;
     z-index: 100;
     background-color: #fff;
 }

 .site-header.sticky+.site-main {
     padding-top: 3em;
 }

 .sticky-nav {
     position: sticky;
     top: 5rem;
 }

 /* SUB PAGES */

 article {
     max-width: 600px;
     margin-left: auto;
     margin-right: auto;
 }

 article h1,
 article h1+.subhead,
 .date {
     text-align: center;
 }

 article h2.subhead {
     font-size: 1.5em;
     line-height: 1.2;
 }

 article .subhead {
     font-weight: normal;
     opacity: .7;
 }

 article .date {
     font-size: .75em;
     opacity: .5;
     margin-bottom: 3em;
 }

 article p+h2,
 article p+h3,
 article p+h4,
 article p+h5,
 article p+h6 {
     margin-top: 1.5em;
 }

 /* article p:first-of-type {
    font-size: 1.4em;
    line-height: 1.3;

} */

 article p:first-of-type:first-letter {
     font-size: 3em;
     line-height: 1em;
     background: #000;
     color: #fff;
     padding: .2em .4em;
     margin-right: .3em;
     float: left;
 }

 /* FORMS */

 form {
     max-width: 600px;
     margin: 2em auto;
 }

 form label,
 form input,
 form textarea {
     box-sizing: border-box;
     display: block;
     width: 100%;
     font-size: 1em;
 }

 form label {
     margin-top: 1em;
     margin-bottom: 0.25em;
 }

 form input[type="text"],
 form textarea {
     border: 1px solid #ccc;
     padding: .5em;
     color: #666;

 }

 form textarea {
     min-height: 10em;
     line-height: 1.5;

 }

 form input[type="submit"] {
     margin-top: 1.5em;
     width: auto;
 }

 /* CUSTOM SITE CSS */

 .section-title {
     text-align: center;
     margin-bottom: 2em;
 }

 .section-title::after {
     content: "";
     display: block;
     width: 100px;
     margin: .5em auto;
     border-bottom: 3px solid rgba(0, 0, 0, .2);
 }

 /* QUOTE */
 .quote {
     font-style: italic;
     font-size: 1.25em;
     margin: 1em 0;
     text-align: center;
 }

 /* VIDEO PLAYER */
 .video-wrapper {
     position: relative;
     padding-bottom: 56.25%;
     /* 16:9 aspect ratio */
     height: 0;
     overflow: hidden;
     max-width: 100%;
     margin: 2em 0;
 }

 .video-wrapper iframe {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
 }

 /* COREPOWER - IMAGE GRID */
 .side-by-side-images {
     display: flex;
     justify-content: center;
     gap: 1rem;
     /* spacing between images */
     flex-wrap: wrap;
     /* wrap on small screens */
     margin-top: 1.5rem;
 }

 .side-by-side-images img {
     max-width: 100%;
     height: auto;
     border-radius: 8px;
     box-shadow: 0 0 12px rgba(0, 0, 0, 0.05);
 }

 /* COREPOWER - USER PERSONAS IMAGES */
 /* Add a class="persona" to each <img> or target the section */
 .persona {
     width: 250px;
     /* or whatever size you want */
     height: auto;
     /* keep aspect ratio */
     max-width: none;
     /* stop the 100 % rule from shrinking it */
 }