/*
Theme Name: Ollie
Theme URI: olliewp.com
Author: Mike McAlister
Author URI: mikemcalister.com
Description: Launch a blazing-fast, pixel-perfect website with the Ollie WordPress block theme! Ollie features over 50 beautiful pattern designs, 7 full-page pattern layouts, and a fully-customizable design system with Global Styles. Ollie integrates seamlessly with all of the powerful new WordPress editor features, giving you the most lightweight and powerful website builder on the planet — no expensive page builder plugin required! ✶ Full demo: https://demo.olliewp.com ✶
Tags: blog, portfolio, entertainment, grid-layout, one-column, two-columns, three-columns, four-columns, block-patterns, block-styles, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, rtl-language-support, style-variations, template-editing, theme-options, translation-ready, wide-blocks
Tested up to: 6.7.1
Requires PHP: 7.3
Version: 1.6.0
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ollie

Ollie WordPress Theme, (C) 2026 Mike McAlister.
Ollie is distributed under the terms of the GNU GPL.
*/

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

*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

b,
strong {
  font-weight: var(--wp--custom--font-weight--semi-bold);
}

ol,
ul {
  padding: 0;
}

ol:where(:not([class*="wp-block"])),
ol:where(.wp-block-list),
ul:where(:not([class*="wp-block"])),
ul:where(.wp-block-list) {
  padding-inline-start: var(--wp--preset--spacing--medium);
}

div[class*="wp-block-"] figcaption {
  color: var(--wp--preset--color--secondary);
  font-size: var(--wp--preset--font-size--x-small);
  margin-bottom: 0;
  margin-top: 20px;
  text-align: center;
}

img,
figure {
  max-width: 100%;
  height: auto;
}

/* Temporary fix for text-decoration-thickness in Firefox */
@-moz-document url-prefix() {
  a {
    text-decoration-thickness: 0.1rem !important;
  }
}

.wpml-language-switcher-block ul.hasSpacing.isHorizontal li:not(:last-child) {
  margin: 0 !important;
}

/* Standardize form styling
--------------------------------------------- */

input,
button,
textarea,
select {
  font: inherit;
}

input[type="button"],
input[type="email"],
input[type="search"],
input[type="submit"],
input[type="text"],
textarea {
  -webkit-appearance: none;
  appearance: none;
}

input:not([type="submit"]):not([type="radio"]),
select,
textarea,
.wp-block-post-comments-form
  input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wp-block-post-comments-form textarea {
  color: var(--wp--preset--color--main);
  border-radius: 5px;
  border: solid 1px
    color-mix(
      in srgb,
      var(--wp--preset--color--tertiary) 100%,
      var(--wp--preset--color--main) 20%
    );
  padding: 22px 40px !important;
  font-size: var(--wp--preset--font-size--small);
  background-color: #fff;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.02),
    0 0.5px 1px rgba(0, 0, 0, 0.04);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline-color: var(--wp--preset--color--main);
  outline-offset: 1px;
}

input[type="checkbox"],
input[type="image"],
input[type="radio"] {
  width: auto;
}

select {
  -webkit-appearance: none;
  appearance: none;
  background: var(--wp--preset--color--base)
    url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=)
    no-repeat;
  background-size: 16px;
  background-position: calc(100% - 12px) 50%;
  padding-right: 2.2em;
}

label {
  width: 100%;
  display: block;
}

::placeholder {
  color: var(--wp--preset--color--secondary);
  font-size: var(--wp--preset--font-size--small);
  opacity: 0.75;
}

/* Helper styles
---------------------------------------------------------------------------- */

a.more-link {
  display: block;
}

/* Inline code */
*:not(.wp-block-code) > code {
  background-color: var(--wp--preset--color--tertiary);
  padding: 3px 5px;
  position: relative;
  border-radius: 3px;
}

.wp-block-categories {
  position: relative;
}

/* Remove margin on term description on archive pages */
.wp-block-term-description p:last-child {
  margin-bottom: 0;
}

/* Hide post meta div if no tags assigned */
.single .wp-block-group:has(> .post-meta:empty) {
  display: none;
}

.wp-block-group:empty:has(+ .comment-respond) {
  display: none;
}

.row-logos > figure {
  flex-shrink: 1 !important;
}

/* Sticky header */

body:not(.wp-admin) header:has(> .is-position-sticky) {
  position: sticky;
  top: calc(0px + var(--wp-admin--admin-bar--height, 0px));
  z-index: 100;
}

/* Account for admin bar on mobile */

@media (max-width: 600px) {
  header:has(> .is-position-sticky) {
    top: 0;
  }
}

/* Mobile helper classes */

@media (max-width: 781px) {
  .ollie-hide-on-mobile {
    display: none;
  }

  .ollie-unstick-mobile {
    position: static;
  }

  header:has(> .ollie-unstick-mobile) {
    position: static;
  }
}

/* Table
--------------------------------------------- */

.wp-block-table table {
  background: var(--wp--preset--color--base);
  border-radius: 5px;
  border: solid 1px var(--wp--preset--color--border-light);
  font-size: var(--wp--preset--font-size--x-small);
}
.wp-block-table.is-style-stripes {
  border-bottom: none;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background-color: var(--wp--preset--color--tertiary);
}

.wp-block-table td,
.wp-block-table th,
.wp-block-table thead {
  border: none;
  border-bottom: solid 1px
    color-mix(
      in srgb,
      var(--wp--preset--color--border-light) 50%,
      var(--wp--preset--color--base) 5%
    );
}

.wp-block-table th,
.wp-block-table tfoot {
  text-align: left;
  background-color: color-mix(
    in srgb,
    var(--wp--preset--color--tertiary) 75%,
    var(--wp--preset--color--base) 5%
  );
}

.wp-block-table td,
.wp-block-table th {
  padding: 0.8em 1em;
}

.wp-block-table tfoot {
  border-top: solid 1px var(--wp--preset--color--border-light);
}

.wp-block-table tfoot td {
  border-bottom: none;
}

/* =========================
HEADER GLOBAL
========================= */

.banner-page {
  padding-right: var(--wp--preset--spacing--medium) !important;
  padding-left: var(--wp--preset--spacing--medium) !important;
}

/* =========================
LOGO
========================= */

.custom-logo {
  transition:
    transform 0.35s ease,
    opacity 0.35s ease;
}

.custom-logo:hover {
  transform: scale(1.04);
  opacity: 0.92;
}

/* =========================
NAVIGATION
========================= */

.wp-block-navigation__container {
  gap: 1.8rem;
}

/* LIENS */

.wp-block-navigation-item__content {
  position: relative;
  padding: 0.45rem 0;
  text-decoration: none;
  font-weight: 500;
  transition:
    color 0.25s ease,
    transform 0.25s ease;
  text-decoration: none !important;
}

/* Ligne animée */

.wp-block-navigation-item__content::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 2px;
  width: 100%;
  height: 2px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s ease;
  opacity: 0.85;
}

.wp-block-navigation-item__content:hover::after,
.wp-block-navigation-item.current-menu-item
  .wp-block-navigation-item__content::after {
  transform: scaleX(1);
  transform-origin: left;
}

.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container)
  li:last-child {
  padding-bottom: 0 !important;
}

.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container)
  li:last-child
  .wp-block-navigation-item__content::after {
  bottom: 0 !important;
}
/* Hover texte */

.wp-block-navigation-item__content:hover {
  transform: translateY(-2px);
}

/* Menu actif */

.current-menu-item .wp-block-navigation-item__label {
  font-weight: 700;
}

/* =========================
SOUS MENU
========================= */

.wp-block-navigation__submenu-container {
  border: none;
  padding: 0.8rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(20px);
  box-shadow:
    0 10px 30px rgba(0, 0, 0, 0.08),
    0 2px 8px rgba(0, 0, 0, 0.04);

  opacity: 0;
  /*transform: translateY(12px);*/
  visibility: hidden;

  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    visibility 0.25s ease;
}

/* Apparition submenu */

.wp-block-navigation-item:hover > .wp-block-navigation__submenu-container,
.wp-block-navigation-item:focus-within
  > .wp-block-navigation__submenu-container {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}

.wp-block-navigation
  .has-child
  .wp-block-navigation-submenu__toggle[aria-expanded="true"]
  ~ .wp-block-navigation__submenu-container,
.wp-block-navigation
  .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within
  > .wp-block-navigation__submenu-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, 150px);
  margin-top: 22px;
}

@media (max-width: 1024px) {
  .wp-block-navigation
    .has-child
    .wp-block-navigation-submenu__toggle[aria-expanded="true"]
    ~ .wp-block-navigation__submenu-container,
  .wp-block-navigation
    .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within
    > .wp-block-navigation__submenu-container {
    grid-template-columns: 1fr;
    background-color: #193c23 !important;
    color: #fff !important;
    padding-left: 0;
		padding-top: 0 !important;
  }

	.wp-block-navigation
    .has-child
    .wp-block-navigation-submenu__toggle[aria-expanded="true"]
    ~ .wp-block-navigation__submenu-container a:before {
  content: "";
  position: absolute;
   left: 28px;
    bottom: 25%;
    width: 2px;
    height: 50%;
  background-color: #ffffff;
	opacity: 1;
}
	.wp-block-navigation
    .has-child
    .wp-block-navigation-submenu__toggle[aria-expanded="true"]
    ~ .wp-block-navigation__submenu-container a::after {
  display: none;
}
}

.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container) {
  border-radius: 0;
  transition: all 0.25s ease-in-out;
}
.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container)
  li:first-child {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  padding-top: 0 !important;
}
.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container)
  li:last-child {
  border-bottom-right-radius: 5px;
  border-bottom-left-radius: 0;
}
.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container)
  li:nth-child(3) {
  border-bottom-left-radius: 5px;
}

.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container)
  li:hover {
  background-color: #193420;
  color: #fff;
}

.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container)
  li {
  color: #fff;
}

html[lang="fr-FR"]
  .wp-block-navigation__submenu-container
  .wp-block-navigation-item__label {
  font-weight: 400;
}

html[lang="fr-FR"]
  .wp-block-navigation__submenu-container
  .wp-block-navigation-item__label::first-line {
  font-weight: 700;
}

.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container)
  li
  a:before {
  content: "";
  position: absolute;
  left: 27px;
  height: 50%;
  width: 2px;
  top: 25%;
  background-color: #ffffff;
}
.wp-block-navigation__responsive-container:not(.is-menu-open)
  :where(.wp-block-navigation__submenu-container)
  li
  a::after {
  display: none;
}
/* Liens submenu */

/* =========================
ANIMATION BANNIÈRE HERO
========================= */

.banner-img img {
  animation: heroZoomOut 6s ease-out forwards;

  transform: scale(1.3);
  will-change: transform;
}

/* Animation */
@keyframes heroZoomOut {
  from {
    transform: scale(1.3);
  }

  to {
    transform: scale(1);
  }
}

.wp-block-navigation-item .wp-block-navigation-link {
  background-color: #193c23;
}

.wp-block-navigation
  .has-child
  .wp-block-navigation__submenu-container
  > .wp-block-navigation-item
  > .wp-block-navigation-item__content {
  padding: 22px 40px !important;
}