/* Variables
-------------------------------------------------------------- */

:root {

    /* Background colors */
    --background-primary:       #e0e7eb;
    --background-inverse:       #015271;
    --button-background-primary:#015271;
    --input-background-inactive:rgba(255, 255, 255, 0.72);
    --input-background-active:  rgba(255, 255, 255, 1);

    --overlay-background:       rgba(255, 255, 255, 0.8);
  
    /* Text & form colors */
    --text-primary:         #015271;
    --text-secondary:       #5D7078;
    --text-primary-inverse: rgb(223, 223, 223);
    --button-text-primary:  #FFFFFF;
    --border-color:         #015271;

    /* Dimensions */
    --form-item-height:         50px;
    --form-item-border-width:    2px;
    --form-item-gap:             8px;
    --form-item-padding:        12px;
    --max-width:              1160px;
}


/* Reset
-------------------------------------------------------------- */

* {
    box-sizing: border-box;
    text-rendering: geometricPrecision;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, del, dfn, em, img, ins, kbd, q, samp, small, strong, b, i, dl, dt, dd, ol, ul, li, fieldset, form, input, textarea, button, label, table, tbody, tfoot, thead, tr, th, td, article, aside, footer, header, nav, section {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
}


/* Basics
-------------------------------------------------------------- */

body {
    background-color: var(--background-primary);
    color: var(--text-secondary);
    font-family: 'Euclid Circular B', sans-serif;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
    overflow-x: hidden;
}

main {
    max-width: var(--max-width);
    margin: 20px auto 0;
    padding: 0 20px;
}

.one-column {
    margin-bottom: 20px;
    margin-top: 64px;
    background-size: 45%;
    background-position: right -2% top 70%;
    background-repeat: no-repeat;
    background-image: url('/static/images/hero1.png');
}

.one-column span {
    position: relative;
    left: 5px;
    font-size: 12px;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    font-weight: 500;
}

.two-columns {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    margin-top: 20px;
}

.two-columns > div {
    flex: 1;
}

footer {
    color: var(--text-secondary) !important;
    background: var(--background-inverse);
    margin: 140px 0 0;
    width: 100%;
}

footer .inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 24px 20px 128px;
}

footer p, footer a, footer h3, footer small {
    color: var(--text-primary-inverse);
}


/* Text
-------------------------------------------------------------- */

h1 {
    color: var(--text-primary);
    font-size: 72px;
    font-weight: 500;
    letter-spacing: -1.67px;
    margin-top: 16px;
    margin-bottom: 32px;
    line-height: 1.2;
}

h2 {
    font-weight: 500;
    margin: 100px 0 20px 0;
    background-color: transparent;
    font-size: 25px;
    color: var(--text-primary);
    letter-spacing: -0.72px;
}

h3 {
    font-weight: 500;
    font-size: 17px;
    color: var(--text-primary);
    margin: 10px 0;
    letter-spacing: -0.4px;
}

a { text-decoration: underline; cursor: pointer;}

p {
    letter-spacing: -0.5px;
    line-height: 1.4;
}

.subheading {
    font-size: 20px;
    letter-spacing: -0.5px;
    width: 50%;
    margin-bottom: 48px;
}

.smalldesc {
    font-size: 16px;
    font-weight: 400;
    letter-spacing: -0.33px;
    max-width: 90%;
    margin-bottom: 48px;
}

small {
    display: block;
    margin-top: 12px;
    line-height: 1.4;
}


/* Forms
-------------------------------------------------------------- */

form {
    display: flex;
    gap: var(--form-item-gap);
    max-width: 480px;
}

form.form-horizontal { flex-direction: row; }
form.form-vertical   { flex-direction: column; }

input[type="email"] {
    height: var(--form-item-height);
    padding: 0 var(--form-item-padding);
}

textarea {
    width: 100%;
    height: auto;
    padding: var(--form-item-padding);
    resize: none;
}

input[type="email"], textarea {
    background-color: var(--input-background-inactive);
    font-size: 16px;
    font-family: 'Euclid Circular B', sans-serif;
    font-weight: 400;
    letter-spacing: -0.33px;
    border-radius: 8px;
    flex-shrink: 3;
    transition: background-color 0.16s linear;
    border: var(--form-item-border-width) solid var(--input-background-active);
    width: 100%; /* Take up available space; shrink if needed */
}

input[type="email"]:focus, textarea:focus {
    border: var(--form-item-border-width) solid var(--border-color);
}

input[type="email"]:focus, input[type="email"]:hover, textarea:focus, textarea:hover {
    background-color: var(--input-background-active);
}

button {
    position: relative; /* For showing spinner */
    background-color: var(--button-background-primary);
    color: var(--button-text-primary);
    height: var(--form-item-height);
    padding: 0 24px;
    border-radius: 8px;
    font-family: 'Euclid Circular B', sans-serif;
    font-weight: 500;
    font-size: 16px;
    flex-shrink: 0; /* Prevents button from shrinking */
    transition: opacity, box-shadow 0.16s linear;
    cursor: pointer;
}

button.secondary {
    background-color: var(--background-primary);
    color: var(--text-primary);
    border: var(--form-item-border-width) solid var(--border-color);
}

button:hover            { box-shadow: inset 0 0 100px 100px rgba(255,255,255, 0.2); }
button.secondary:hover  { box-shadow: inset 0 0 100px 100px rgba(255,255,255, 0.32); }

button:active {
    opacity: 0.56;
}

.google-sign-in-button {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    background-color: white;
    border-radius: 4px;
    border: 1px solid rgb(218, 220, 224);
    transition: all 0.3s linear;
    padding: 0 12px;
    height: 40px;
    cursor: pointer;
    user-select: none;
    color: rgb(60, 64, 67);
    font-size: 14px;
    letter-spacing: 0.25px;
    font-family: 'Product Sans Regular';
}
  
.google-sign-in-button:hover {
    background-color: #F8FAFE;
    border-color: #D2E3FC;
}
  
.google-sign-in-button .google-logo {
    display: inline-block;
    width: 18px;
    height: 18px;
    background-size: 18px auto;
    margin-right: 8px;
    margin-bottom: -0.5px;
}

.glowing {
    filter: drop-shadow(0px 0px 24px var(--background-primary));
}


/* Alert
----------------------------------------------- */

.alert-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1;
    height: 100vh;
    min-height: -webkit-fill-available;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--overlay-background);
    opacity: 0;
    -webkit-animation: showhide 3.2s forwards ease-out;
    animation: showhide 3.2s forwards ease-out;
}
  
  @keyframes showhide { 
    0%   {opacity: 0;}
    25%  {opacity: 1;}
    75%  {opacity: 1;}
    100% {opacity: 0;}
  }
  
  @-webkit-keyframes showhide { 
    0%   {opacity: 0;}
    25%  {opacity: 1;}
    75%  {opacity: 1;}
    100% {opacity: 0;}
  }
  
  .alert-box { 
    text-align: center;
    background: var(--background-inverse); 
    border-radius: 6px;
    margin-bottom: 88px;
  }
  
  .alert-box .alert-icon {
    width: 240px;
    height: 132px;
    background-image: url('/static/images/icon-check-white.svg');
    background-size: 80px 80px;
    background-repeat: no-repeat;
    background-position: center;
  }
  
  .alert-box .alert-message {
    font-family: 'Euclid Circular B', sans-serif;
    font-weight: 500;
    padding: 0 8px 12px;
    color: var(--text-primary-inverse);
    line-height: 1.5;
    font-size: 17px;
    letter-spacing: -0.4px;
  }
  
  
  /* Spinner-Light and Spinner-Dark (pure css class-based spinner)
  ----------------------------------------------- */
  
  [class^="spinner"], [class*=" spinner"], [class^="spinner"] *, [class*=" spinner"] * {
    color: transparent !important;
    pointer-events: none;
    /* text-indent: -9999px; */
    /* padding-left: -4000px; */
  }
  
  [class^="spinner"] *, [class*=" spinner"] * { /* e.g. when spinner is applied to input-box */
    visibility: hidden;
  }
  
  .spinner-dark::before  { /* hides e.g. Google Pay icon pseudo-image */
    visibility: hidden;
  }
  
  .spinner-dark::after  {
    position: absolute;
    content: "";
    border: 2px solid rgba(255,255,255,0.8);
    border-radius: 290486px;
    border-right-color: transparent;
    border-top-color: transparent;
    height: 18px;
    width: 18px;
    top: 50%;
    left: 50%;
    margin-left: -11px;
    margin-top: -11px;
    -webkit-animation: spin 500ms infinite linear;
    animation: spin 500ms infinite linear;
  }
  
  .spinner-light::after  {
    position: absolute;
    content: "";
    border: 2px solid rgba(0,0,0,0.4);
    border-radius: 290486px;
    border-right-color: transparent;
    border-top-color: transparent;
    height: 18px;
    width: 18px;
    top: 50%;
    left: 50%;
    margin-left: -11px;
    margin-top: -11px;
    -webkit-animation: spin 500ms infinite linear;
    animation: spin 500ms infinite linear;
  }
  
  @-webkit-keyframes spin {
    from {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
    }
    to {
      -webkit-transform: rotate(359deg);
      transform: rotate(359deg);
    }
  }
  @keyframes spin {
    from {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
    }
    to {
      -webkit-transform: rotate(359deg);
      transform: rotate(359deg);
    }
  }

  
/* Accessibility
-------------------------------------------------------------- */

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    white-space: nowrap;
}

/* Media Queries
-------------------------------------------------------------- */

@media only screen and (max-width: 1023px) {

    .one-column {
        background-size: 45%;
        background-position: right 5% top 70%;
    }

    h1 {
        font-size: 48px;
    }
}

@media only screen and (max-width: 767px) {
    .one-column {
        background-size: 50%;
        background-position: right -10% top 70%;
    }
    .two-columns {
        flex-direction: column;
        gap: 0;
    }
}

@media only screen and (max-width: 600px) {

    body {
        margin-top: 24px;
    }

    main {
        /* width: 100%; */
        margin: 0px auto;
    }

    footer .inner {
        width: 100%;
    }

    h1 {
        font-size: 32px;
    }

    .subheading {
        font-size: 18px;
    }

    .one-column {
        margin-bottom: 20px;
        margin-top: 24px;
        background-size: 55%;
        background-position: right -20% top 30%;
    }

    .one-column span {
        position: relative;
        left: 2px;
        font-size: 14px;
        letter-spacing: -0.5px;
    }
}

@media only screen and (max-width: 480px) {
    .one-column {
        background-size: 65%;
        background-position: right -55% top 45%;
    }
}


/* Fonts
-------------------------------------------------------------- */

@font-face {
    font-family: 'Euclid Circular B';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: local('Euclid Circular B'), url('/static/type/Euclid-Circular-B-Medium.woff') format('woff');
}

@font-face {
    font-family: 'Euclid Circular B';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: local('Euclid Circular B'), url('/static/type/Euclid-Circular-B-Regular.woff') format('woff');
}

@font-face {
    font-family: 'Euclid Circular B';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: local('Euclid Circular B'), url('/static/type/Euclid-Circular-B-Light.woff') format('woff');
}

@font-face {
    font-family: 'Product Sans Regular'; /* for Google sign-in button */
    font-style: normal;
    font-weight: normal;
    font-display: swap;
    src: local('Product Sans Regular'), url('/static/type/ProductSans-Regular.woff') format('woff');
}
