/*!
Theme Name: Libreri and Son
Theme URI: https://libreriandson.com
Author: Paolo Cosentino <gosunnysidesignals@gmail.com>, Steve Woodson <me@stevenwoodson.com>
Description: Custom WordPress theme for Libreri and Son
Version: 2026-01-20 01
*/

main label + input,
  main label > input,
  main label + select,
  main label > select,
  main label + textarea,
  main label > textarea {
    margin-top: 0.5rem;
  }

main fieldset {
    border: 0;
    padding: 1rem 0 0 1rem;
    position: relative;
  }

main label,
  main legend {
    display: block;
    padding-top: 5px;
    position: relative;
  }

main legend {
    padding: 0 0.5rem;
  }

main label.error,
  main .wsf-invalid-feedback {
    color: var(--wp--preset--color--alert);
    font-size: var(--wp--preset--font-size--step-0);
    margin-top: 0.5rem;
  }

main label.error [role='alert'], main .wsf-invalid-feedback [role='alert'] {
      color: var(--wp--preset--color--alert);
    }

main label.valid {
    color: var(--wp--preset--color--success);
  }

/* Inputs
   ========================================================================== */

main input:not([type='submit']),
  main select,
  main textarea {
    border: 1px solid var(--wp--preset--color--washed-black);
    border-radius: 0.25rem;
    box-sizing: border-box;
    font-size: var(--wp--preset--font-size--step-1);
    vertical-align: top;
    width: 100%;
  }

main input:not([type='submit'])[disabled], main select[disabled], main textarea[disabled] {
      border-color: var(--wp--preset--color--washed-black);
    }

main input:not([type='submit'])[type='date'],
    main input:not([type='submit'])[type='month'],
    main input:not([type='submit'])[type='week'],
    main input:not([type='submit'])[type='datetime-local'],
    main select[type='date'],
    main select[type='month'],
    main select[type='week'],
    main select[type='datetime-local'],
    main textarea[type='date'],
    main textarea[type='month'],
    main textarea[type='week'],
    main textarea[type='datetime-local'] {
      padding: 0.5rem 0.75rem;
    }

main input:not([type='submit']):not(.browser-default):focus:not([readonly]), main select:not(.browser-default):focus:not([readonly]), main textarea:not(.browser-default):focus:not([readonly]) {
      box-shadow: none;
    }

main input:not([type='submit'])::placeholder, main select::placeholder, main textarea::placeholder {
      color: var(--wp--preset--color--washed-black);
      font-style: italic;
    }

/* Required styles */

main select[disabled], main textarea[disabled] {
      border-color: var(--wp--preset--color--washed-black);
    }

main select {
    appearance: none;
    background: var(--wp--preset--color--white)
      url("data:image/svg+xml;charset=utf-8,  <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 40'><polygon points='0,0 60,0 30,40' style='fill:black;'/>  </svg>")
      right 10px center no-repeat;
    background-size: 13px;
    padding-right: 34px;
  }

main select::-ms-expand {
      display: none;
    }

main input[type='color'] {
    padding: 1px;
  }

/* Helpers
   ========================================================================== */

main button[type='submit'],
  main input[type='submit'],
  main .wsf-form button.wsf-button.wsf-button-primary {
    background-color: var(--wp--preset--color--caught-red-handed);
    border: 0;
    border-radius: 1em;
    color: var(--wp--preset--color--white);
    font-family: var(--wp--preset--font-family--anton);
    font-size: var(--wp--preset--font-size--step-1);
    font-style: normal;
    font-weight: 400;
    padding: 0.5rem 1.5rem;
    text-decoration: none;
    width: auto;
  }

main button[type='submit']:active,
    main button[type='submit']:focus,
    main button[type='submit']:hover,
    main input[type='submit']:active,
    main input[type='submit']:focus,
    main input[type='submit']:hover,
    main .wsf-form button.wsf-button.wsf-button-primary:active,
    main .wsf-form button.wsf-button.wsf-button-primary:focus,
    main .wsf-form button.wsf-button.wsf-button-primary:hover {
      background-color: var(--wp--preset--color--black);
      color: var(--wp--preset--color--white);
    }

/* WS Form Helpers
   ========================================================================== */

main .wsf-form label.wsf-label {
    font-family: var(--wp--preset--font-family--anton);
  }

/* Error & Success styles */

main .wsf-validated input:not([type='submit'])[aria-invalid='true'], main .wsf-validated select[aria-invalid='true'], main .wsf-validated textarea[aria-invalid='true'], main .wsf-validated .content-editor[aria-invalid='true'] {
        border: 1px solid var(--wp--preset--color--alert);
        box-shadow: inset 0px 0px 3px var(--wp--preset--color--alert);
      }

main .wsf-validated input:not([type='submit'])[aria-invalid='false'], main .wsf-validated select[aria-invalid='false'], main .wsf-validated textarea[aria-invalid='false'], main .wsf-validated .content-editor[aria-invalid='false'] {
        border: 1px solid var(--wp--preset--color--success);
        box-shadow: inset 0px 0px 3px var(--wp--preset--color--success);
      }

/* Global Variables
   ========================================================================== */

:root {
  --outline-color: var(--wp--preset--color--magenta);
  --outline-offset: max(6px, 0.16em);
  --outline-size: max(4px, 0.08em);
  --outline-style: solid;

  --gutter: 1.25rem;
  --wp--style--root--padding-bottom: 0;
}

html {
  overflow-x: hidden;
  scrollbar-gutter: stable;
}

body > .wp-site-blocks {
  padding: 0 !important;
}

/* Focus Styles
   ========================================================================== */

/* Base :focus styles for fallback purposes
:is(a, button, input, select, textarea, summary):focus,
[type='checkbox']:focus + span:after,
[type='radio']:focus + span:after {
  border-radius: 0.5rem;
  outline: var(--outline-size) var(--outline-style) var(--outline-color);
  outline-offset: var(--outline-offset, var(--outline-size));
  z-index: 1;
}
 */

/* Final :focus-visible styles */

:is(a, button, input, select, summary, textarea):focus-visible,
[type='checkbox']:focus-visible + span:after,
[type='radio']:focus-visible + span:after {
  border-radius: 0.5rem;
  outline: var(--outline-size) var(--outline-style) var(--outline-color) !important;
  outline-offset: var(--outline-offset, var(--outline-size));
  z-index: 1;
}

:target {
  scroll-margin-top: 2ex;
}

/* Base selection styles that invert whatever colors are rendered */

::selection {
  background-color: var(--wp--preset--color--washed-black);
  color: var(--wp--preset--color--white, #fff);
  filter: none;
  -webkit-text-fill-color: initial;
}

@media screen and (max-width: 600px) {
  h2 {
    font-weight: 500;
  }
  h3 {
    font-weight: 400;
  }
}

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

/* Skip Links*/

.skip-link.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.skip-link.screen-reader-text:focus {
  background-color: #eee;
  clip: auto !important;
  clip-path: none;
  color: #444;
  display: block;
  font-size: 1em;
  height: auto;
  left: 50%;
  line-height: normal;
  padding: 5px 30px;
  text-decoration: none;
  top: 0;
  transform: translateX(-50%);
  width: auto;
  z-index: 100000;
}

@media (max-width: 42rem) {
  .skip-link.screen-reader-text:focus {
    left: 65%;
  }
}

/* Links and buttons that open in a new tab */

main a[target='_blank'] {
  padding-right: 1.2em;
  position: relative;
}

main a[target='_blank']:before {
    background: url('data:image/svg+xml,<svg fill="%23e51b5e" xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 512 512"><path d="M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112v320c0 44.2 35.8 80 80 80h320c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v112c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h112c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"/></svg>')
      no-repeat;
    background-size: cover;
    content: '';
    height: 0.8em;
    position: absolute;
    right: 0.2em;
    top: 50%;
    transform: translateY(-50%);
    width: 0.8em;
  }

main a[target='_blank']:after {
    border: 0;
    clip: rect(0, 0, 0, 0);
    content: 'opens in a new tab';
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
  }

main a[target='_blank'].wp-element-button {
    padding-right: 2.5em !important;
  }

main a[target='_blank'].wp-element-button:before {
      filter: brightness(0) invert(1);
      height: 1em;
      right: 1em;
      width: 1em;
    }

.breadcrumbs ol {
  align-items: center;
  color: var(--wp--preset--color--washed-black);
  display: inline-flex;
  font-family: var(--wp--preset--font-family--anton);
  font-size: var(--wp--preset--font-size--step-n-1);
  list-style: none;
  margin: 0;
  margin-block-start: var(--wp--preset--spacing--1);
  padding: 0.1em 0.8em 0.1em 0.8em;
}

.breadcrumbs ol li {
    align-items: center;
    display: flex;
    margin-right: 0.5em;
  }

.breadcrumbs ol li:last-child {
      margin-right: 0;
    }

.breadcrumbs ol li:not(:last-child)::after {
      border: 2px solid var(--wp--preset--color--washed-black);
      border-width: 2px 2px 0 0;
      content: '';
      display: inline-block;
      height: 0.3em;
      margin: 0.2em;
      margin-left: 0.5em;
      transform: rotate(45deg);
      width: 0.3em;
    }

footer {
}

header {
  /* @link https://utopia.fyi/clamp/calculator?a=330,1480,100—300 */
  --fluid-100-300: clamp(6.25rem, 2.663rem + 17.3913vw, 18.75rem);
  padding: var(--wp--preset--spacing--1) 0;
}

header img {
    width: var(--fluid-100-300);
  }

header .header-navigation-container {
    align-self: center;
  }

header .header-navigation-container > nav {
      justify-content: end;
    }

header .wp-block-navigation__responsive-container-close svg,
  header .wp-block-navigation__responsive-container-open svg {
    width: 40px;
    height: 40px;
  }

header .wp-block-navigation__container {
    gap: var(--wp--preset--spacing--3);
  }

header .wp-block-navigation a.wp-block-navigation-item__content {
    text-decoration: none;
  }

header .wp-block-navigation a.wp-block-navigation-item__content:focus,
    header .wp-block-navigation a.wp-block-navigation-item__content:hover {
      text-decoration: none;
    }

header .wp-block-navigation .current-menu-item a.wp-block-navigation-item__content {
    color: var(--wp--preset--color--caught-red-handed);
    text-decoration: underline;
  }

@media screen and (min-width: 600px) {
    header .header-navigation-container {
      align-self: flex-end;
    }

      header .header-navigation-container > nav {
        justify-content: center;
      }

    header .wp-block-navigation .wp-block-navigation-item.header-home-link {
      display: none;
    }
  }

main {
  margin-block: 0;
  padding-block: 0;
}

.required {
  color: var(--wp--preset--color--alert);
}

.wp-block-columns,
.wp-block-group {
  border-color: var(--wp--preset--color--caught-red-handed);
}

.wp-block-image figcaption {
    color: var(--wp--preset--color--black);
    font-family: var(--wp--preset--font-family--roboto-slab);
    font-size: var(--wp--preset--font-size--step-n-1);
    font-weight: 400;
    font-style: italic;
    margin-block-start: var(--wp--preset--spacing--0-25);
    text-align: center;
  }

.wp-block-post-title {
  margin-bottom: var(--wp--preset--spacing--3);
}

.wp-block-query-pagination-numbers {
  display: flex;
  gap: var(--wp--preset--spacing--1);
}

@media screen and (max-width: 781px) {
  .home-more-case-studies.is-content-justification-right {
    justify-content: flex-start;
  }
}

/* @import-glob 'patterns/*.css'; */
