/* Limestategy: additions to the Lime template stylesheet.
   The template's interactions ran on the Webflow runtime, which is not shipped; ui.js and the rules below
   replace the ones the pages use. Colours and type come from the template's own variables. */

:root {
  --ls-ink: var(--_primitives---colors--neutral-darkest, #1a1a18);
  --ls-paper: var(--_primitives---colors--neutral-lightest, #f6f6f4);
  --ls-lime: var(--_primitives---colors--lime, #b4c84f);
  --ls-lime-ink: var(--_primitives---colors--lime-ink, #6e7c22);
  --ls-line: var(--_primitives---colors--neutral-light, #dcdcd7);
  --ls-muted: #5c5c56;
  --ls-mono: var(--_typography---font-styles--mono, "Space Mono", monospace);
  --ls-head: var(--_typography---font-styles--heading, "Space Grotesk", sans-serif);
}

/* ------------------------------------------------------------ base */
:where(button) { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; text-align: inherit; }
html { scroll-padding-top: 1.5rem; }
img { max-width: 100%; }
:focus-visible { outline: 2px solid var(--ls-lime-ink); outline-offset: 3px; }
.ls-skip { position: absolute; left: 1rem; top: -4rem; z-index: 10000; background: var(--ls-ink); color: var(--ls-paper); padding: .75rem 1rem; font-family: var(--ls-mono); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; }
.ls-skip:focus { top: 1rem; }
main:focus { outline: none; }
.ls-muted { color: var(--ls-muted); }
.ls-link { color: inherit; text-decoration: underline; text-decoration-color: var(--ls-lime); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ls-link:hover { color: var(--ls-lime-ink); }
.ls-break { overflow-wrap: anywhere; }
.ls-maxw { max-width: 44rem; }
.ls-pad { padding: 3rem var(--_spacing---frame--padding-side, 3rem); }
.ls-ul { margin: .5rem 0 0; padding-left: 1.2rem; }
.ls-ul li { margin-bottom: .35rem; }
.text-size-tiny { color: var(--ls-muted); }

/* buttons rendered as <button> */
button.button-primary { font: inherit; }
.button-primary { transition: background-color .25s, color .25s; }
.button-primary:hover, .button-primary:focus-visible { background-color: var(--ls-ink); color: var(--ls-paper); }
.button-primary:hover .button-primary_marker, .button-primary:focus-visible .button-primary_marker { background-color: var(--ls-lime); }
.button-primary[disabled] { opacity: .55; cursor: wait; }
.button-secondary_rule { transition: width .3s ease; }
.button-secondary:hover .button-secondary_rule, .button-secondary:focus-visible .button-secondary_rule { width: 100%; background-color: var(--ls-lime-ink); }
.button-secondary_arrow { width: 1rem; height: 1rem; display: inline-flex; }
.button-group { flex-wrap: wrap; align-items: center; }
.ls-btn-block { width: 100%; justify-content: center; }

/* hover frames on cards (were driven by Webflow interactions) */
.card-frame_component { transition: opacity .3s ease; }
a:hover > .card-frame_component, a:focus-visible > .card-frame_component { opacity: 1; }
.blog_arrow-icon, .work_icon-wrapper, .arrow_diagonal { transition: transform .3s ease; }
a:hover .blog_arrow-icon, a:hover .work_icon-wrapper, a:hover .arrow_diagonal { transform: translate(2px, -2px); }
.arrow_diagonal, .work_icon-wrapper { width: 1.1rem; height: 1.1rem; display: inline-flex; }

/* illustrations are shown whole on their own background, photos fill the frame */
.frame_root.is-illus .frame_image { object-fit: contain; background-color: #e8e8e4; }

/* the lime frame sweep, as a slow CSS animation */
@keyframes ls-sweep { 0% { transform: translateX(-110%); } 60%, 100% { transform: translateX(110%); } }
.frame_sweep-band { animation: ls-sweep 7s ease-in-out infinite; }

/* ------------------------------------------------------------ navbar */
.ls-nav { position: relative; z-index: 999; }
.navbar_logo-wrapper img { width: 100%; height: 100%; }
.ls-dd__toggle { display: flex; width: 100%; align-items: center; justify-content: center; }
.navbar_dropdown-chevron { width: 1rem; height: 1rem; display: inline-flex; transition: transform .25s ease; }
.ls-dd.is-open .navbar_dropdown-chevron { transform: rotate(45deg); }
.ls-dd.is-open .ls-dd__toggle, .navbar_link.w--current { text-decoration: underline; text-decoration-color: var(--ls-lime); text-decoration-thickness: 2px; text-underline-position: under; }
.ls-dd__list { z-index: 998; border-bottom: 1.5px solid var(--ls-ink); border-left: 1.5px solid var(--ls-ink); border-right: 1.5px solid var(--ls-ink); }
.ls-dd__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2rem; }
.navbar_dropdown-link .text-size-small { display: block; color: var(--ls-muted); }
.navbar_item-right { display: flex; flex-direction: column; }
.navbar_dropdown-arrow { width: 1rem; height: 1rem; display: inline-flex; flex: none; }
.navbar_feature-card { display: block; position: relative; }
.navbar_feature-inner { display: block; position: relative; }
.navbar_feature-image-wrapper, .navbar_feature-footer, .navbar_feature-meta { display: flex; }
.navbar_feature-image { width: 100%; height: auto; display: block; }
.ls-nav__cta { white-space: nowrap; }
.menu-icon_line-top, .menu-icon_line-bottom, .menu-icon_line-middle { transition: transform .25s ease, opacity .2s ease; }
.ls-menu-btn[aria-expanded="true"] .menu-icon_line-top { transform: translateY(8px) rotate(45deg); }
.ls-menu-btn[aria-expanded="true"] .menu-icon_line-bottom { transform: translateY(-8px) rotate(-45deg); }
.ls-menu-btn[aria-expanded="true"] .menu-icon_line-middle { opacity: 0; }

@media screen and (min-width: 992px) {
  .ls-menu { display: flex !important; }
  .ls-menu-btn { display: none !important; }
  .ls-dd__list { left: -1.5px; right: -1.5px; width: auto; max-width: none; }
}
@media screen and (max-width: 991px) {
  .ls-nav .navbar_container.is-navbar { background-color: var(--ls-paper); }
  .ls-menu[data-nav-menu-open] {
    display: flex !important; flex-direction: column; text-align: left;
    background-color: var(--ls-paper); border: 1.5px solid var(--ls-ink); border-top: 0;
    padding: .5rem 1.5rem 1.75rem; max-height: calc(100vh - 6rem); overflow-y: auto; z-index: 998;
    justify-content: flex-start; height: auto;
  }
  .ls-menu[data-nav-menu-open] .navbar_menu-right { margin-top: 1.5rem; flex: none; }
  .ls-dd__toggle { justify-content: space-between; font-size: 1.125rem; }
  .ls-dd__list { border: 0; }
  .ls-dd__list.w--open { display: block; position: relative; padding: 0 0 1rem; }
  .ls-dd__cols { grid-template-columns: 1fr; }
  .ls-dd__list .navbar_dropdown-content-right, .ls-dd__list .navbar_dropdown-note { display: none; }
  .ls-dd__list .navbar_dropdown-link { padding: .5rem 0; }
  .ls-menu .navbar_menu-right { width: 100%; align-items: stretch; }
  .ls-menu .navbar_menu-right .button-primary { width: 100%; justify-content: center; }
  .ls-nav .ls-brand { padding-left: 1.25rem; }
}
body.ls-menu-open { overflow: hidden; }
.ls-noui .ls-menu { display: flex !important; flex-direction: column; position: static; }

/* ------------------------------------------------------------ hero and marquee */
.ls-hero-lead { max-width: 34rem; }
.hero_image-wrapper .frame_root, .stats_image-wrapper .frame_root { min-height: 20rem; }
@keyframes ls-marquee { from { transform: translateX(0); } to { transform: translateX(-25%); } }
.ls-marquee { animation: ls-marquee 48s linear infinite; }
.section_banner:hover .ls-marquee { animation-play-state: paused; }
.banner_component { overflow: hidden; }

/* ------------------------------------------------------------ work rows (samples) */
.ls-work-note { padding: 0 var(--_spacing---frame--padding-side, 3rem) 1.25rem; color: var(--ls-muted); max-width: 52rem; }
.ls-work-row { display: block; position: relative; color: inherit; text-decoration: none; }
.work_image { width: 100%; height: auto; display: block; }
.work_title-part { display: inline; }
.ls-work-meta { display: flex; flex-direction: column; gap: .25rem; }
.ls-work-row .work_number-wrapper, .ls-work-row .work_image-wrapper { align-self: auto; }
.ls-work-row .work_row-heading-wrapper, .ls-work-row .work_copy-wrapper { align-self: stretch; }
@media screen and (max-width: 767px) {
  .work_list.ls-work-list { display: block; }
  .ls-work-list .work_inner-wrapper { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr) 1.25rem; grid-template-rows: auto auto; gap: .5rem 1rem; padding: 1.25rem 1rem; align-items: start; }
  .ls-work-list .work_link-row { padding: 0; }
  .ls-work-list .work_number-wrapper, .ls-work-list .ls-work-meta { display: none; }
  .ls-work-list .work_row-heading-wrapper, .ls-work-list .work_copy-wrapper { border: 0; padding: 0; align-self: start; }
  .ls-work-list .work_image-wrapper { grid-column: 1; grid-row: 1 / span 2; }
  .ls-work-list .work_row-heading-wrapper { grid-column: 2; grid-row: 1; }
  .ls-work-list .work_row-heading-wrapper .heading-style-h5 { font-size: 1.25rem; }
  .ls-work-list .work_copy-wrapper:not(.ls-work-meta) { grid-column: 2; grid-row: 2; }
  .ls-work-list .work_icon-wrapper { grid-column: 3; grid-row: 1; }
  .ls-work-note { padding-left: 1rem; padding-right: 1rem; }
}

/* ------------------------------------------------------------ blog cards */
.blog_card-title-part { display: inline; }
.blog_card-image, .blog_list-image, .blog_featured-image { width: 100%; height: auto; display: block; }
@media screen and (max-width: 991px) { .blog_grid.ls-blog-grid { grid-template-columns: 1fr 1fr; } }
@media screen and (max-width: 767px) {
  .blog_grid.ls-blog-grid { display: grid; grid-template-columns: 1fr; }
  .blog_top-wrapper .button-group, .work_top-wrapper .button-group { display: flex; }
}
.ls-blog-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background-color: var(--ls-ink); border-top: 1px solid var(--ls-ink); border-bottom: 1px solid var(--ls-ink); }
.ls-blog-list > * { background-color: var(--ls-paper); }
.blog_list-card-link { display: block; position: relative; height: 100%; color: inherit; text-decoration: none; }
@media screen and (max-width: 991px) { .ls-blog-list { grid-template-columns: 1fr 1fr; } }
@media screen and (max-width: 767px) { .ls-blog-list { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ FAQ accordion */
.ls-faq__q { width: 100%; text-align: left; }
.ls-faq__q .faq_icon-wrapper { transition: transform .3s ease; }
.ls-faq__q .icon-embed-small { width: 1.25rem; height: 1.25rem; display: inline-flex; }
.ls-faq.is-open .faq_icon-wrapper { transform: rotate(45deg); }
.js .ls-faq__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
.js .ls-faq__a > div { min-height: 0; overflow: hidden; }
.js .ls-faq.is-open .ls-faq__a { grid-template-rows: 1fr; }
.ls-noui .ls-faq__a { grid-template-rows: 1fr !important; }
.faq_list { min-width: 0; }

/* ------------------------------------------------------------ catalogue */
.ls-cat { scroll-margin-top: 1rem; }
.ls-cat__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 1rem 3rem; align-items: end; padding: 2.5rem var(--_spacing---frame--padding-side, 3rem) 1.25rem; border-top: 1px solid var(--ls-ink); }
.ls-cat__head p { color: var(--ls-muted); margin: 0; }
.ls-cat:first-child .ls-cat__head { border-top: 0; }
.service_row { display: block; position: relative; color: inherit; text-decoration: none; }
.service_name { margin: 0; }
@media screen and (max-width: 767px) { .ls-cat__head { grid-template-columns: 1fr; padding: 2rem 1rem 1rem; } }

/* ------------------------------------------------------------ deliverable page */
.service_title-part { display: inline; }
.service_steps .service_tagline { min-width: 9rem; }
.ls-rich p { margin: 0 0 1rem; }
.ls-rich ul, .ls-rich ol { margin: 0 0 1.25rem; padding-left: 1.25rem; }
.ls-rich li { margin-bottom: .45rem; }
.ls-rich h3 { font-family: var(--ls-head); font-size: 1.3rem; font-weight: 500; margin: 1.75rem 0 .75rem; }
.ls-rich blockquote { margin: 1.5rem 0; padding: .25rem 0 .25rem 1.25rem; border-left: 3px solid var(--ls-lime); font-family: var(--_typography---font-styles--editorial); font-style: italic; font-size: 1.35rem; line-height: 1.35; }
.ls-rich blockquote p { margin: 0; }
.ls-rich strong { font-weight: 600; }
.ls-table-wrap { overflow-x: auto; margin: 0 0 1.5rem; border: 1px solid var(--ls-ink); -webkit-overflow-scrolling: touch; }
.ls-table { width: 100%; border-collapse: collapse; font-size: .875rem; line-height: 1.45; min-width: 32rem; }
.ls-table th { background: var(--ls-ink); color: var(--ls-paper); font-family: var(--ls-mono); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; text-align: left; padding: .75rem .9rem; font-weight: 600; }
.ls-table td { padding: .7rem .9rem; border-top: 1px solid var(--ls-line); vertical-align: top; }
.ls-table tr:nth-child(even) td { background: #fff; }

/* sticky table of contents: current section */
[data-toc] a.is-active { border-bottom-color: var(--ls-lime); font-weight: 600; }

/* ------------------------------------------------------------ posts and samples */
.post_title-part { display: inline; }
.ls-post-img .frame_root { aspect-ratio: 1600 / 670; height: auto; }
.ls-intro { margin-bottom: 1rem; }
.ls-notice { border: 1.5px solid var(--ls-ink); border-left: 6px solid var(--ls-lime); background: #fff; padding: 1rem 1.25rem; margin-bottom: 2rem; font-size: .95rem; }
.ls-share { display: flex; gap: .5rem; margin-top: .6rem; flex-wrap: wrap; }
.ls-share__btn { border: 1px solid var(--ls-ink); padding: .4rem .7rem; font-family: var(--ls-mono); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: inherit; background: transparent; }
.ls-share__btn:hover { background: var(--ls-lime); }
.post_nav-item { position: relative; color: inherit; text-decoration: none; }
.ls-postnav-empty { min-height: 1px; }

/* ------------------------------------------------------------ bundles */
.ls-bundles-sec { border-top: 1px solid var(--ls-ink); }
.ls-bundles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--ls-ink); }
.ls-bundle { background: var(--ls-paper); padding: 2.25rem 2rem; display: flex; flex-direction: column; gap: 1rem; scroll-margin-top: 1rem; }
.ls-bundle.is-featured { background: var(--ls-lime); }
.ls-bundle__top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.ls-bundle__flag { background: var(--ls-ink); color: var(--ls-lime); padding: .3rem .55rem; }
.ls-bundle h2 { margin: 0; }
.ls-bundle__tag { margin: 0; min-height: 4.5em; }
.ls-bundle__price { display: flex; align-items: baseline; gap: .75rem; border-top: 1px solid var(--ls-ink); padding-top: 1rem; }
.ls-bundle__amount { font-family: var(--ls-head); font-size: 3rem; line-height: 1; font-weight: 500; }
.ls-bundle__save { margin: 0; }
.ls-bundle__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ls-ink); }
.ls-bundle__list li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid rgba(26, 26, 24, .2); font-size: .95rem; }
.ls-bundle__list a { color: inherit; }
.ls-bundle__list span { font-family: var(--ls-mono); font-size: .75rem; white-space: nowrap; }
.ls-bundle__note { margin: 0; color: var(--ls-muted); }
.ls-bundle.is-featured .ls-bundle__note { color: var(--ls-ink); }
.ls-bundle__btn { margin-top: auto; width: 100%; justify-content: center; }
.ls-bundle.is-featured .ls-bundle__btn { background: var(--ls-ink); color: var(--ls-paper); }
.ls-bundle.is-featured .ls-bundle__btn .button-primary_marker { background: var(--ls-lime); }
@media screen and (max-width: 991px) { .ls-bundles { grid-template-columns: 1fr; } .ls-bundle__tag { min-height: 0; } }

/* ------------------------------------------------------------ about */
.ls-about-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: stretch; margin-top: 2rem; }
.ls-about-img .frame_root { min-height: 24rem; }
.ls-about-text { display: flex; flex-direction: column; gap: 1.25rem; justify-content: center; }
.ls-about-text p { margin: 0; }
.ls-about-fit { border-top: 1px solid var(--ls-ink); }
.ls-fit { margin-top: 2rem; }
@media screen and (max-width: 767px) { .ls-about-grid { grid-template-columns: 1fr; gap: 2rem; } .ls-about-img .frame_root { min-height: 16rem; } }

/* ------------------------------------------------------------ CTA blocks */
.ls-cta__right .frame_root { min-height: 18rem; }

/* ------------------------------------------------------------ forms */
.ls-form-panel { height: auto !important; min-height: 0 !important; }
.ls-form__body { padding: 0 var(--_spacing---gap--large, 1.5rem) var(--_spacing---gap--extra-large, 2rem); display: flex; flex-direction: column; }
.ls-bar-full { width: 100%; }
.contact_field-label { font-family: var(--ls-mono); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .5rem; display: block; font-weight: 600; }
.contact_field-label em { text-transform: none; font-style: normal; color: var(--ls-muted); letter-spacing: 0; font-weight: 400; }
.contact_field { font: inherit; color: inherit; display: block; height: auto; min-height: 3.25rem; line-height: 1.4; }
.contact_field[aria-invalid="true"] { border-color: #b3261e; box-shadow: inset 0 0 0 1px #b3261e; }
.ls-select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 1.4rem) 50%, calc(100% - 1rem) 50%; background-size: .4rem .4rem; background-repeat: no-repeat; padding-right: 2.75rem; cursor: pointer; }
.ls-textarea { min-height: 9rem; resize: vertical; }
.ls-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ls-check { display: flex; gap: .75rem; align-items: flex-start; font-size: .9rem; line-height: 1.5; margin: .25rem 0 1.25rem; cursor: pointer; }
.ls-check input { appearance: none; -webkit-appearance: none; flex: none; width: 1.15rem; height: 1.15rem; margin: .15rem 0 0; border: 1.5px solid var(--ls-ink); background: #fff; cursor: pointer; display: grid; place-content: center; }
.ls-check input:checked { background: var(--ls-lime); }
.ls-check input:checked::after { content: ""; width: .55rem; height: .3rem; border-left: 2px solid var(--ls-ink); border-bottom: 2px solid var(--ls-ink); transform: translateY(-1px) rotate(-45deg); }
.ls-check.is-invalid input { border-color: #b3261e; box-shadow: 0 0 0 2px rgba(179, 38, 30, .25); }
.ls-check a { color: inherit; text-decoration: underline; text-decoration-color: var(--ls-lime-ink); }
.ls-form__actions { display: flex; }
.ls-status { margin: 1rem 0 0; font-size: .9rem; min-height: 1.2em; }
.ls-status[data-type="error"] { color: #b3261e; }
.ls-status[data-type="success"] { color: var(--ls-lime-ink); font-weight: 600; }
.ls-status a { color: inherit; }

/* ------------------------------------------------------------ checkout and thank you */
.ls-page-head { border-bottom: 1px solid var(--ls-ink); }
.ls-page-head .heading-style-h2 { margin: .75rem 0 1rem; }
.ls-page-head p { margin: 0; }
.ls-checkout-sec { padding: 0; }
.ls-checkout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); align-items: start; }
.ls-checkout__main { display: flex; flex-direction: column; border-right: 1px solid var(--ls-ink); }
.ls-checkout__side { position: sticky; top: 1.5rem; }
.ls-card { padding: 2rem var(--_spacing---frame--padding-side, 3rem); border-bottom: 1px solid var(--ls-ink); }
.ls-card:last-child { border-bottom: 0; }
.ls-card h2 { margin: 0 0 1.25rem; }
.ls-checkout__side .ls-card { padding: 2rem; }
.ls-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25rem; }
.ls-terms { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: .6rem; font-size: .95rem; }
.ls-summary__line { display: flex; justify-content: space-between; gap: 1rem; font-family: var(--ls-head); font-size: 1.15rem; font-weight: 500; padding-bottom: .75rem; border-bottom: 1px solid var(--ls-line); }
.ls-summary__list { margin: .9rem 0; padding-left: 1.1rem; font-size: .9rem; color: var(--ls-muted); }
.ls-summary__list li { margin-bottom: .3rem; }
.ls-summary__save { color: var(--ls-lime-ink); font-weight: 600; margin: 0 0 .75rem; }
.ls-summary__total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1.5px solid var(--ls-ink); padding-top: 1rem; margin: 0 0 1.25rem; font-family: var(--ls-head); font-size: 1.6rem; font-weight: 500; }
.ls-summary__total > span:first-child { font-family: var(--ls-mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; }
.ls-summary__total small { font-size: .8rem; }
.ls-check--box { background: #fff; border: 1px solid var(--ls-ink); padding: 1rem; font-size: .82rem; }
.ls-summary__fine { margin: 1rem 0 0; }
.ls-tl { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.ls-tl li { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--ls-line); }
.ls-tl .text-style-tagline { color: var(--ls-lime-ink); justify-content: flex-start; }
.ls-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--ls-ink); margin: 0 0 1.25rem; }
.ls-facts > div { padding: 1rem; border-right: 1px solid var(--ls-ink); }
.ls-facts > div:last-child { border-right: 0; }
.ls-facts dt { font-family: var(--ls-mono); font-size: .62rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ls-muted); margin-bottom: .35rem; }
.ls-facts dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.ls-facts--legal { grid-template-columns: minmax(0, 1fr); }
.ls-facts--legal > div { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1rem; border-right: 0; border-bottom: 1px solid var(--ls-line); }
.ls-facts--legal > div:last-child { border-bottom: 0; }
.ls-facts--legal dt { margin: .2rem 0 0; }
.ls-thanks { max-width: 56rem; }
.ls-thanks[data-state="loading"] [data-show] { display: none; }
.ls-thanks[data-state="paid"] [data-show="pending"], .ls-thanks[data-state="pending"] [data-show="paid"] { display: none; }
@media screen and (max-width: 991px) {
  .ls-checkout { grid-template-columns: 1fr; }
  .ls-checkout__main { border-right: 0; border-bottom: 1px solid var(--ls-ink); }
  .ls-checkout__side { position: static; }
}
@media screen and (max-width: 767px) {
  .ls-pad, .ls-card { padding: 1.75rem 1rem; }
  .ls-checkout__side .ls-card { padding: 1.75rem 1rem; }
  .ls-fields { grid-template-columns: 1fr; }
  .ls-tl li { grid-template-columns: 1fr; gap: .25rem; }
  .ls-facts { grid-template-columns: 1fr; }
  .ls-facts > div { border-right: 0; border-bottom: 1px solid var(--ls-ink); }
  .ls-facts > div:last-child { border-bottom: 0; }
  .ls-facts--legal > div { grid-template-columns: 1fr; gap: .25rem; }
}

/* ------------------------------------------------------------ legal pages */
.legal_title-part { display: inline; }
.ls-legal-sec { scroll-margin-top: 1.5rem; }
.ls-legal-text { font-size: .975rem; line-height: 1.65; }
.ls-legal-text a { color: inherit; text-decoration: underline; text-decoration-color: var(--ls-lime); text-decoration-thickness: 2px; text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal_contents-list { display: flex; flex-direction: column; }
.legal_contents-link { color: inherit; }
.ls-docs-head { margin-top: 2rem; }
.ls-doclink[aria-current="page"] { font-weight: 600; border-bottom-color: var(--ls-lime); }
.ls-summary-box { border: 1.5px solid var(--ls-ink); background: #fff; padding: 1.25rem 1.5rem; margin: 0 0 1rem; }
.ls-summary-box .text-style-tagline { color: var(--ls-lime-ink); margin-bottom: .75rem; display: block; }
.ls-summary-box ul { margin: 0; padding-left: 1.1rem; }
.ls-summary-box li { margin-bottom: .45rem; }
.ls-summary-box p:last-child { margin-bottom: 0; }
.ls-inline-btn { text-decoration: underline; text-decoration-color: var(--ls-lime); text-decoration-thickness: 2px; text-underline-offset: 3px; font-weight: 500; }
.ls-print { margin: 0; }
@media print {
  .ls-nav, .ls-footer, .legal_sidebar, .breadcrumb_component, .ls-print, .ls-cc, .legal_hero-image-wrapper { display: none !important; }
  .legal_body-grid { grid-template-columns: 1fr; }
  .main-wrapper { border: 0; }
}

/* ------------------------------------------------------------ footer */
.ls-footer { color: #e9e9e4; }
.ls-footer a { color: inherit; }
.ls-footer__band { gap: 0; align-items: stretch; }
.ls-footer__start { padding: 3.5rem var(--_spacing---frame--padding-side, 3rem); display: flex; flex-direction: column; gap: 1.25rem; align-items: flex-start; }
.ls-footer__kicker { color: var(--ls-lime); }
.ls-footer .footer_heading { margin: 0; }
.ls-footer__lead { margin: 0; max-width: 30rem; color: #c9c9c2; }
.ls-footer__buttons { gap: 1.25rem; }
.ls-footer__textlink { font-family: var(--ls-mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: underline; text-decoration-color: var(--ls-lime); text-underline-offset: 4px; }
.ls-footer__visual { min-height: 20rem; height: auto; }
.ls-footer__visual .footer_content-right-info-wrapper { position: relative; z-index: 1; padding: 3.5rem var(--_spacing---frame--padding-side, 3rem); height: 100%; display: flex; align-items: center; }
.ls-footer__visual .footer_image-wrapper { position: absolute; inset: 0; }
.ls-footer__visual .footer_image { width: 100%; height: 100%; object-fit: cover; }
.ls-footer__h3 { margin: 0 0 1rem; color: #fff; }
.ls-footer__p { margin: 0 0 1.5rem; color: rgba(255, 255, 255, .85); }
.ls-footer__mail { gap: .75rem; text-decoration: none; overflow-wrap: anywhere; }
.ls-footer__mail:hover { background: var(--ls-paper); color: var(--ls-ink); }
.ls-footer__mail-icon { filter: invert(1); }
.ls-footer__mail:hover .ls-footer__mail-icon { filter: none; }
.ls-footer__grid {
  display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, .9fr)) minmax(0, 1fr) minmax(0, 1.2fr);
  border-top: 1px solid rgba(255, 255, 255, .15);
}
.ls-footer__grid > * { padding: 2.75rem 1.75rem; border-right: 1px solid rgba(255, 255, 255, .15); min-width: 0; }
.ls-footer__grid > *:first-child { padding-left: var(--_spacing---frame--padding-side, 3rem); }
.ls-footer__grid > *:last-child { border-right: 0; padding-right: var(--_spacing---frame--padding-side, 3rem); }
.ls-footer__logo { display: inline-flex; align-items: center; gap: .75rem; font-family: var(--ls-head); font-weight: 600; letter-spacing: .15rem; text-transform: uppercase; font-size: .95rem; text-decoration: none; }
.ls-footer__logo img { background: var(--ls-paper); }
.ls-footer__pitch { margin: 1.25rem 0; color: #bdbdb6; font-size: .92rem; line-height: 1.6; max-width: 22rem; }
.ls-footer__badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.ls-footer__badges li { border: 1px solid rgba(255, 255, 255, .25); padding: .35rem .6rem; font-family: var(--ls-mono); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; color: #dcdcd5; }
.ls-footer__title { font-family: var(--ls-mono); font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ls-lime); margin: 0 0 1rem; font-weight: 600; padding-bottom: .75rem; border-bottom: 1px solid rgba(255, 255, 255, .15); }
.ls-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .2rem; }
.ls-footer__list a, .ls-footer__linkbtn { display: inline-block; padding: .3rem 0; font-size: .875rem; text-decoration: none; color: #ecece7; transition: color .2s; text-align: left; line-height: 1.4; }
.ls-footer__list a:hover, .ls-footer__linkbtn:hover { color: var(--ls-lime); }
.ls-footer__contact li { display: flex; flex-direction: column; gap: .1rem; margin-bottom: .55rem; font-size: .875rem; }
.ls-footer__contact a { padding: 0; overflow-wrap: anywhere; }
.ls-footer__label { font-family: var(--ls-mono); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; color: #8f8f88; }
.ls-footer__legal { border-top: 1px solid rgba(255, 255, 255, .15); padding: 1.25rem var(--_spacing---frame--padding-side, 3rem); }
.ls-footer__legal p { margin: 0; font-size: .8rem; color: #a9a9a2; line-height: 1.6; }
.ls-footer__legal strong { color: #e9e9e4; }
.ls-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .15); gap: 1rem 2rem; flex-wrap: wrap; font-size: .78rem; }
.ls-footer__bottom p { margin: 0; }
.ls-footer__top { font-family: var(--ls-mono); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: #e9e9e4; }
.ls-footer__top:hover { color: var(--ls-lime); }
@media screen and (max-width: 1199px) {
  .ls-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ls-footer__brand { grid-column: 1 / -1; border-right: 0 !important; border-bottom: 1px solid rgba(255, 255, 255, .15); padding-right: var(--_spacing---frame--padding-side, 3rem) !important; }
  .ls-footer__col--contact { grid-column: 1 / -1; border-top: 1px solid rgba(255, 255, 255, .15); padding-left: var(--_spacing---frame--padding-side, 3rem) !important; }
  .ls-footer__col--contact .ls-footer__contact { flex-direction: row; flex-wrap: wrap; gap: .5rem 2.5rem; }
  .ls-footer__grid > :nth-child(2) { padding-left: var(--_spacing---frame--padding-side, 3rem); }
  .ls-footer__grid > :nth-child(4) { border-right: 0; }
}
@media screen and (max-width: 991px) {
  .ls-footer__start, .ls-footer__visual .footer_content-right-info-wrapper { padding: 2.5rem 2rem; }
}
@media screen and (max-width: 767px) {
  .ls-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "brand brand" "company legal" "services services" "contact contact"; }
  .ls-footer__grid > * { padding: 2rem 1rem !important; border-right: 0 !important; border-top: 0 !important; border-bottom: 1px solid rgba(255, 255, 255, .15); }
  .ls-footer__brand { grid-area: brand; }
  .ls-footer__grid > :nth-child(2) { grid-area: company; border-right: 1px solid rgba(255, 255, 255, .15) !important; }
  .ls-footer__grid > :nth-child(3) { grid-area: services; }
  .ls-footer__grid > :nth-child(4) { grid-area: legal; }
  .ls-footer__col--contact { grid-area: contact; border-bottom: 0; }
  .ls-footer__grid > :nth-child(3) .ls-footer__list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; }
  .ls-footer__col--contact .ls-footer__contact { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 1rem; }
  .ls-footer__start, .ls-footer__visual .footer_content-right-info-wrapper { padding: 2.25rem 1rem; }
  .ls-footer__legal { padding: 1.25rem 1rem; }
  .ls-footer__bottom { padding: 1.25rem 1rem 1.5rem; }
}
@media screen and (max-width: 400px) {
  .ls-footer__grid > :nth-child(3) .ls-footer__list, .ls-footer__col--contact .ls-footer__contact { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------ cookie banner */
.ls-cc { position: fixed; z-index: 10001; left: 1rem; bottom: 1rem; width: min(27rem, calc(100vw - 2rem)); background: var(--ls-paper); color: var(--ls-ink); border: 1.5px solid var(--ls-ink); box-shadow: 6px 6px 0 var(--ls-ink); padding: 1.25rem 1.25rem 1.1rem; }
.ls-cc[hidden] { display: none; }
.ls-cc__title { font-family: var(--ls-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; margin: 0 0 .5rem; display: flex; align-items: center; gap: .5rem; }
.ls-cc__title::before { content: ""; width: .5rem; height: .5rem; background: var(--ls-lime); }
.ls-cc__text { font-size: .85rem; line-height: 1.55; margin: 0 0 1rem; }
.ls-cc__text a { color: inherit; text-decoration: underline; text-decoration-color: var(--ls-lime-ink); }
.ls-cc__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.ls-cc__btn { border: 1.5px solid var(--ls-ink); padding: .7rem .5rem; font-family: var(--ls-head); font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; background: var(--ls-lime); text-align: center; }
.ls-cc__btn:hover { background: var(--ls-ink); color: var(--ls-paper); }
.ls-cc__link { grid-column: 1 / -1; font-family: var(--ls-mono); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 3px; padding: .35rem 0 0; text-align: center; }
.ls-cc-modal { position: fixed; inset: 0; z-index: 10002; background: rgba(26, 26, 24, .55); display: grid; place-items: center; padding: 1rem; }
.ls-cc-modal[hidden] { display: none; }
.ls-cc-modal__box { background: var(--ls-paper); border: 1.5px solid var(--ls-ink); width: min(34rem, 100%); max-height: calc(100vh - 2rem); overflow-y: auto; padding: 1.75rem; }
.ls-cc-modal__box h2 { font-family: var(--ls-head); font-size: 1.6rem; font-weight: 500; margin: 0 0 .5rem; }
.ls-cc-modal__box > p { font-size: .9rem; margin: 0 0 1.25rem; }
.ls-cc-modal__box a { color: inherit; }
.ls-cc-cat { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .9rem 0; border-top: 1px solid var(--ls-line); }
.ls-cc-cat h3 { font-size: 1rem; font-weight: 600; margin: 0 0 .2rem; }
.ls-cc-cat p { font-size: .82rem; margin: 0; color: var(--ls-muted); }
.ls-switch { position: relative; flex: none; width: 2.75rem; height: 1.5rem; }
.ls-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.ls-switch span { position: absolute; inset: 0; border: 1.5px solid var(--ls-ink); background: #fff; transition: background .2s; }
.ls-switch span::after { content: ""; position: absolute; top: 2px; left: 2px; width: calc(1.5rem - 7px); height: calc(1.5rem - 7px); background: var(--ls-ink); transition: transform .2s; }
.ls-switch input:checked + span { background: var(--ls-lime); }
.ls-switch input:checked + span::after { transform: translateX(1.25rem); }
.ls-switch input:disabled + span { opacity: .6; }
.ls-switch input:focus-visible + span { outline: 2px solid var(--ls-lime-ink); outline-offset: 2px; }
.ls-cc-modal__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: 1.25rem; }
.ls-cc__btn--solid { background: var(--ls-ink); color: var(--ls-paper); }
.ls-cc__btn--solid:hover { background: var(--ls-lime); color: var(--ls-ink); }

/* ------------------------------------------------------------ reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .ls-marquee { animation: none; }
}

#email-hint { margin: 0 0 1.25rem; }
.ls-footer .button-primary { color: var(--ls-ink); }
.ls-footer .button-primary:hover, .ls-footer .button-primary:focus-visible { background-color: var(--ls-paper); color: var(--ls-ink); }
.ls-footer .button-primary:hover .button-primary_marker { background-color: var(--ls-lime-ink); }
