/* Fonts and Typography */

@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-display: swap;
  src: url('../fonts/mulish.ttf') format('truetype');
  font-weight: 100 900;
}

@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-display: swap;
  src: url('../fonts/oswald.ttf') format('truetype');
  font-weight: 100 900;
}

/*---------------------------------------------------------*/

body, input, select, textarea, button {
  font-family: var(--sans);
  font-size: var(--txt-base);
  line-height: 1.5;
}

h1 { font-size: var(--txt-xxlarge);}
h2 { font-size: var(--txt-xlarge); }

h3 { 
  font-size: 1em;
  font-weight: 800;
  font-family: var(--sans);
  letter-spacing: 0; 
}

h4 { font-size: var(--txt-medium); }
h5 { font-size: var(--txt-base);   }
h6 { font-size: var(--txt-small);  }

h1, h2, .oswald-font {
  line-height: 1.3;
  letter-spacing: -3%;
  font-weight: 400;
  font-family: var(--serif);
}

b, 
strong {
  font-weight: 700;
}

b.first, 
strong.first {
  font-weight: 800;
}

/* List */
.wp-block-list {
	padding-left: 0.7rem;
		
	ul& li {
	padding-left: 1rem;}

	ul& li::marker {
	content:'\2013';
	/*font-weight:bold;
	/color: var(--gray);*/}
  
	ol& {
	padding-left: 1.5rem;}

	ol& li {
	padding-left: 0.7rem;}

  ol& li::marker {
  content: counter(list-item) ".";
  /*font-weight:bold;
  /color: var(--gray);*/}

}

.list-spacing li {
  margin-top:1rem;

  a:has(+ br:first-of-type) {
    font-weight:700;
  }
}

.maintitle_pretext {
  display: none;
}

/* Single Link Ncard */
.ncard-singlelink {
  --card-radius: var(--radius);
  --card-padding: 1.5rem;
  --card-bcolor: var(--navy);
  --card-bgcolor: var(--navy);
  --card-txtcolor: var(--white);
  --card-direction: row;
  --card-img-ratio: 2/4;
  --card-img-width: 30% !important;
  --card-transition: 0.5s;
  --card-bgcolor-hover: var(--card-bgcolor);
  --card-txtcolor-hover: var(--card-txtcolor);
  --card-bcolor-hover: var(--navy);
  --shadows: none;

  border:none;

  .ncard_text {
    justify-content: center;
  }
  
  .ncard_imgcon {
    padding-top:20%;
    aspect-ratio: unset;
  }

  .ncard_title {
    font-weight: 400;
    line-height: 1.5;
    font-size: var(--txt-midsmall);

    strong {
      font-weight: 800;
    }
  }

  .ncard_url {
    opacity: 1;
    font-size:0.5em;
    color:var(--aqua)
  }

}

/* Gravity Forms on a prompt generator */

body.category-prompt-generators .entry-content > .gform_wrapper {
  padding: var(--gap);
  background-color: var(--smoke);
  margin-bottom: 3rem;
}

div#copyMessage {
  margin-top: 1em;
  color: green;
  padding-left: 1rem;
}

button#copyBtn {
    padding: 0.75rem 1rem;
    border-radius: var(--radius);
    border:solid 1px;
    background: var(--white);
    font-weight: 800;
    font-size: var(--txt-small);
    cursor: pointer;
	  color: var(--blue);
    display:flex;
    gap:0.3em;
    position:relative;
    top:0;

    &:active {
      top:2px;
    }

    &:after {
      content:'';
      background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="%230099FF"><path d="M300-200q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H300Zm0-60h440v-560H300v560ZM180-80q-24 0-42-18t-18-42v-620h60v620h500v60H180Zm120-180v-560 560Z"/></svg>');
      display:block;
      width: min(1.3em);
      aspect-ratio: 1;
      background-position: center;
      background-size: contain;
	    background-repeat:no-repeat;
    }
}

/* area they copy text from */

#copythis {
  font-size:var(--txt-small);
  font-family: monospace;
  line-height:1.5;
  padding:1.5rem;
  box-sizing:border-box;
  max-height:50dvh;
  overflow-y:scroll;
  border: 1px dashed currentColor;

  &:focus {
    outline: solid 4px var(--gold);
    border-color:var(--navy);}

  & strong {
    background:rgba(255, 255, 0, 0.2);
    font-weight: normal;}

}

/* Links */
a {
  transition:0.3s;
}
a:hover {
  text-decoration: none;
}

.sresults_title a:hover {
  text-decoration: underline;
}

/* Paid Membership Pro */

.pmpro {
  --pmpro--box-shadow: none;
  --pmpro--base--border-radius: 5px;

  input[type="email"][readonly="readonly"] {
    background: transparent;
    cursor: default;
    pointer-events: none;
  }

  .pmpro_section #loginform .input {
    --pmpro--color--base: white;
    width:100%;
  }

  .login-remember {
    margin-top: 2rem;
  }

  .pmpro_form_input:not([type="submit"], [type="checkbox"], [type="radio"]) {
    width: 100%;
    /*
    --pmpro--color--base: #fff;
    --pmpro--base--spacing--small: var(--field-padding);
    height: var(--input-height);

    &:focus {
      box-shadow: var(--field-shadow-focus);
    }
      */
  }

  .pmpro_form_fields,
  .pmpro_cols-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem 0.75rem;
  }

  @media(min-width:500px){
    .pmpro_cols-2 {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  .pmpro_section, 
  .pmpro_content_message {
    padding: 1.5rem;
    background: var(--smoke);
    border-radius: 10px;
    margin-bottom: clamp(2rem, 8vw, 3rem);

    .pmpro_form_field-password-toggle{
      position: relative;

      button {
        position: absolute;
        top:0;
        right:0;
        font-size: var(--txt-small);
      }
    }

    .pmpro_form_submit {
      display: flex;
      gap: 0.7rem;
      margin-top: 3rem;
      flex-wrap: wrap;
    }

    .pmpro_form_fieldset, 
    #loginform {
      padding:0;
      border:none;
      margin-bottom:1.5rem;

      .pmpro_form_hint {
        font-size: var(--txt-xsmall);
        margin-block:0.5rem 0;
      }

      label {
        display: block;
        font-weight: bold;
        font-size: var(--txt-small);
        margin-bottom: 0.5rem;

        &[for="pmpro_mailpoet_opt-in_lists_3"] {
          display: inline;
        }
      }

      legend {
        width: 100%;
      }

    }

    h2.pmpro_card_title,
    h2.pmpro_form_heading,
    h2.pmpro_section_title {
      align-items: start !important;
      margin-block: 1.5rem;
      color: var(--dark-blue);
  
      font-size: var(--txt-midsmall);

      letter-spacing: 0;
      border-bottom: dotted 1px var(--gray);
      text-transform: uppercase;
      padding-bottom: 0.75rem;
    }

    .pmpro_heading-with-avatar {
      display: flex;
      align-items: center;
      justify-content: start;
      font-size: inherit !important;
      gap: 1em;
      font-weight: normal;

      img { border-radius: 50%; }
    }

    .pmpro_card_actions:not(.pmpro_font-medium) {
      background: rgba(0,0,0,0.03);
      margin: 3rem -1.5rem -1.5rem;
      padding: 1rem 1.5rem;
      border-radius: 0 0 10px 10px;
      font-size:var(--txt-xsmall);
      display:flex; gap:0.7rem; flex-wrap: wrap;

      a {                 
        display: block;
        text-decoration: none;
        font-weight: 500;
        padding: 0.5em 1em;
        background: rgba(255, 255, 255, 1);
        color: inherit;
        border-radius: 5px;
        transition:0.3s;

        &:hover {
          background: var(--dark-blue);
          color:white;
        }
      }

      .pmpro_card_action_separator { 
        display: none;
      }

    }
  }

  .pmpro_table {
    font-family: var(--txt-small);
    margin-bottom:2rem;
    --border: dotted 1px var(--gray);
  }

  #pmpro_order_single .pmpro_card_actions,
  #pmpro_order_single .pmpro_card_actions > * {
    all: unset;
  }

  #pmpro_order_single .pmpro_card_actions {
    display: flex;
    justify-content: end;
    
    .pmpro_btn-print{
      display: flex;
      gap:0.5rem;
      font-size: var(--txt-xsmall);
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 3px;
    }
  }

  .pmpro_card_title {
    display: flex;
	  gap:0.5rem;
	  flex-wrap:wrap;
    justify-content: space-between;
    font-size: var(--txt-medium) !important;
    text-transform: none !important;
    margin-top: 3rem !important;
  }

  .pmpro_list_item_label {
    display: block;
    font-weight: 800;
    font-size: var(--txt-small);
    margin-bottom: 0.5rem;
  }

  .pmpro_tag-success {
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    font-family: var(--sans);
  }

  .pmpro_card_actions:has(#other_discount_code_p){
    margin: 3rem auto;
    border-radius: 0;
    font-size: var(--txt-base);
    text-align: left;

    input#pmpro_other_discount_code {
      margin-bottom:1rem
    }
  }
  
  

  body.formstyles & .pmpro_form_label input[type="checkbox"],
  body.formstyles & .login-remember input[type="checkbox"]{
  position: static !important;
  clip: unset !important;
  min-height: auto !important;}

}

body.pmpro-body-level-required {

  .pmpro_card_title {
    display: none;
  }

  .pmpro_card {
    background-color: var(--gold);
  }

}

.entry-content :where(p, ul, ol, details, dl) + :where(h2, h3, h4, h5, h6) {
  margin-top: 2.5rem;
}

/* Make the footer stay at the bottom and adjust for the Admin Bar */

.wp-site-blocks {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  & > :last-child {
      margin-top: auto;
  }
}

body.admin-bar .wp-site-blocks {
  min-height: calc(100vh - 32px); 
}

@media(max-width: 782px){
  body.admin-bar .wp-site-blocks {
   min-height: calc(100vh - 46px); 
  }
}


/* Drop Caps */

.has-drop-cap:not(:focus):first-letter,
.nctext-dropcap .nctext_paragraphs > p:first-of-type::first-letter {
  --cap-size: 5.4em;
  --cap-color: currentColor;
  --cap-font: inherit;
  --cap-weight: 500;
  --cap-lines: 3;
}

/* this class is used for native WP blocks */
.has-drop-cap:not(:focus):first-letter,
/* this class is used for Text Columns block */
.nctext-dropcap .nctext_paragraphs > p:first-of-type::first-letter {
  float: left;
  font-family: var(--cap-font);
  font-size: var(--cap-size);
  font-weight: var(--cap-weight);
  line-height: .68;
  margin: .05em .1em 0 0;
  text-transform: uppercase;
  color: var(--cap-color);
  initial-letter: var(--cap-lines);
  margin-inline-end: 0.2em;
}

/* Buttons not styled by the block editor */

.gform_wrapper.gravity-theme .gform_previous_button.button,
.gform_next_button, 
.gform_button,
.pmpro input[type="submit"],
.pmpro .pmpro_btn:not(button[type="button"]),
.pmpro .pmpro_btn-cancel,
.magic-login-submit {
  --pmpro--base--border-radius: 5px !important;
  --pmpro--color--accent--variation: var(--blue);
  padding:0.5rem 1.5rem;
  border-radius: 5px;
  font-weight: 800;
  font-size: 0.9rem;
  border:solid 1px transparent;
  background-color: var(--dark-blue);
  color: var(--white);
  position:relative;
  top:0;
  transition:0.3s;
  cursor: pointer;
  text-decoration: none;

  &:hover {
    /*
    background-color: var(--blue);
    color:#fff;
    border-color:var(--blue);
    */
    box-shadow: var(--field-shadow-focus);
  }

  &:active,
  &:focus {
    top:2px;
  }
}

.wp-block-button__link:hover {
  box-shadow: var(--field-shadow-focus);
}

.gform_wrapper.gravity-theme .gform_previous_button.button,
body .pmpro .pmpro_btn-cancel.pmpro_btn {
  border-color: var(--navy);
  background-color: var(--white);
  color: var(--navy);  text-decoration: none;
}

/* for CTA buttons */

.wp-block-button.cta_arrow a:before {
  /*
  content:'\e905';
  font-family:'ncicons';
  color: currentColor;
  */
  content:'+';
  font-weight:normal;
  display:inline-block;
  margin-right: 0.3em;
  font-size: 1.5em;
  line-height: 0;
  color:var(--aqua);
}

.btn-secondary:hover a {
  box-shadow:none;
}

/* Magic Login */

#magic-login-login-block .magic-login-block-description {
  font-weight: normal;
  margin-bottom:1rem;
}

#magic-login-block-title {
      font-family: var(--sans);
    font-weight: 800;
    font-size: 1em;
    letter-spacing: 0;
}

.magic-login-submit,
#loginform input[type="submit"] {
  margin-top: 1rem;
  font-size: 1em;
  height: var(--input-height);
}

#loginform input[type="submit"] {
  width: 100%;
  display: block;
}

/* Content block spacing */
.wp-site-blocks > .wp-block-post-content {

  & > * {
    width: var(--width-limit);
    max-width:var(--width-standard);
    margin-inline:auto;
  }

  & > .alignwide {
    max-width:var(--width-wide);
  }

  & > .alignfull {
    max-width:100%;
    width:100%;
  }
  
}

/* Links in Content */

.wp-block-post-content,
.wp-block-comment-content {

  /* Link and Button Indicator for new window */

  :is(p, li) a[target="_blank"]:not(.wp-block-social-link-anchor):after,
  .wp-block-button__link[target="_blank"]:after {
    content: '\00A0\ea7e'; /* non breaking space and upward right arrow */
    font-family: 'ncicons';
    font-size: 1.5ex;
  }

}

/* Grid Background */

.blueprint-bg {
	--c1: #000;
	--c2: rgb(0,29,72);
  background-image: 
    repeating-linear-gradient(0deg, var(--c1) 0px, var(--c1) 1px,transparent 1px, transparent 9px),
    repeating-linear-gradient(90deg, var(--c1) 0px, var(--c1) 1px,transparent 1px, transparent 9px),
    linear-gradient(90deg, var(--c2),var(--c2));
}

/* Cards */

.solutions_card {
	position:relative;
	background-color: var(--sol_bgcolor, #fff);
}

.solutions_card h3 { 
	font-family: var(--sans);
	line-height:normal;
	font-size: 1em;
	letter-spacing:0;
	font-weight: 800; 
	margin-block: 0 0.5rem !important;
}

.solutions_card p { 
	font-size: 0.9em; 
}

.solutions_card .wp-block-image {
	margin-bottom:2rem;
	width: fit-content;
	/* 
	  padding: 0.4em;
	  background: var(--sol_color, #ffe185); 
	  border-radius: 50%;
	*/
	padding: 0;
	background: linear-gradient(to top, var(--sol_color, #ffe185) 55%, transparent 30%);
}

.solutions_card:nth-child(even) {
	--sol_color: #a0feee;
}

.solutions_card .wp-block-image img { 
	width:40px !important;
	aspect-ratio:1;
	object-fit:contain;
}

@media(max-width:550px){
	
	.solutions_card .wp-block-image {
		position: absolute;
    	left: 1.5rem;
	}
	.solutions_card {
		padding-left: 5.5rem !important;
	}
	.solutions_card p {
        max-width: 300px;
    }
	
}

/* Accordion */
.nccordion.schema-faq {
  --acc-border-color: white;
  --acc-bg-color: white;
  --acc-border-radius: var(--radius);
  --acc-text-color: var(--navy);
  --acc-scroll-margin: 0px;
  --acc-icon-bg-color: var(--smoke);

  .nccordion_header {
    padding: 1em 3em 1em 1em;
    text-wrap: pretty;

    &:before {
      right: 0.75rem;
      top: 0.75rem;
      font-size: 0.5em;
      width: 3em;
      color: var(--navy);
    }
  }

  .nccordion_details[open] .nccordion_header:before {
    --acc-icon-bg-color: var(--gold);
  }

  .nccordion_details:not(:last-child) {
    margin-bottom: 1.5rem;
  }

  .nccordion_content {
    font-size: var(--txt-midsmall);
    padding: 0.5rem 1.5rem var(--gap);
    text-wrap: pretty;
  }
}

/* Global Styles */

#footer {

  svg.custom-logo path { 
    fill: rgba(255,255,255,0.7);
  }

  a, svg.custom-logo path {
    transition:0.3s;
  }

  a:hover {
    color:#fff;
    text-decoration:underline;
  }

  svg.custom-logo:hover path {
    fill: #fff;
  }

  @media(max-width:760px){
    .footer-links {
      flex-direction: column; 
      gap: 1.5rem; 
    }
    .wp-block-social-links {
      flex-basis: auto;
    }
  }

}

/* Cookie Plugin */

body {
  --ck-color: var(--navy);

  .cky-notice-des *, 
  .cky-preference-content-wrapper *, 
  .cky-dma-content-wrapper *, 
  .cky-accordion-header-des *, 
  .cky-gpc-wrapper .cky-gpc-desc * {
      font-size: var(--txt-small);
      line-height: 1.5;
  }

  .cky-notice .cky-title {
  font-size: var(--txt-medium)!important;
  color: inherit !important;
  }

  .cky-btn-revisit-wrapper,
  .cky-btn-accept {
  background-color: var(--ck-color) !important;
  color: #fff;
  }

  .cky-btn-customize,
  .cky-btn-reject,
  .cky-btn-preferences {
  color: var(--ck-color) !important;
  background: transparent;
  }

  .cky-btn-preferences,
  .cky-btn-accept,
  .cky-btn-reject,
  .cky-btn-customize {
  border: 1px solid var(--ck-color) !important;
  }

  .cky-btn {
      font-size: var(--txt-small);
      line-height: 1em;
      padding: 8px;
      font-weight: 500;
      border-radius: 50px;
  }

}

/* Big Search */

#header .ncsearchreveal {
    --bg-color-start: var(--blue);
    --bg-color-end: var(--navy);
    --text-color: #fff;
    --text-size: 1.2em;
    --text-align: left;
    --field-padding: 0.5rem 1.5rem;
    --field-border: solid 1px var(--navy);
    --x-button-size: 1em;
    --x-button-color: var(--white);
    --x-button-color-hover: var(--white);
    --s-height: clamp(80px, 8vw, 100px);
}