@charset "UTF-8";
/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
:root {
  --brun-montagne: #5B1F14;
  --rouge-terre: #C9483B;
  --orange-chaud: #E89A3A;
  --jaune-sable: #F1C26B;
  --creme: #FAF2E3;
  --noir: #1A1A1A;
  --anthracite: #2A2A2A;
  --gris-bord: #3A3A3A;
  --gris-medium: #888780;
  --gris-clair: #5A5A5A;
  --role-athlete: #5DCAA5;
  --role-benevole: #E6954A;
  --role-staff: #AFA9EC;
  --pin-village: #C9483B;
  --pin-sports: #E89A3A;
  --pin-parking: #4A90A8;
  --pin-services: #6BA87F;
  --pin-hebergement: #F1C26B;
  --etat-attente: #C9483B;
  --etat-aplacer: #E89A3A;
  --etat-place: #6BA87F;
  --etat-fait: #6BA87F;
  --etat-encours: #E89A3A;
  --etat-urgent: #C9483B;
  --etat-na: #888780;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
:root {
  --bg-page: #1A1A1A;
  --bg-surface: #2A2A2A;
  --bg-elevated: #3A3A3A;
  --text-main: #FAF2E3;
  --text-secondary: #888780;
  --text-muted: #888780;
  --border-subtle: rgba(255, 255, 255, 0.1);
  --border-strong: rgba(255, 255, 255, 0.2);
  --titre-signature: #F1C26B;
}

@media (prefers-color-scheme: light) {
  :root:not([data-theme]) {
    --bg-page: #FAF2E3;
    --bg-surface: #FFFFFF;
    --bg-elevated: #F5EBD3;
    --text-main: #1A1A1A;
    --text-secondary: #5B1F14;
    --text-muted: #888780;
    --border-subtle: rgba(91, 31, 20, 0.15);
    --border-strong: rgba(91, 31, 20, 0.3);
    --titre-signature: #5B1F14;
  }
}
[data-theme=dark] {
  --bg-page: #1A1A1A;
  --bg-surface: #2A2A2A;
  --bg-elevated: #3A3A3A;
  --text-main: #FAF2E3;
  --text-secondary: #888780;
  --text-muted: #888780;
  --border-subtle: rgba(255, 255, 255, 0.1);
  --border-strong: rgba(255, 255, 255, 0.2);
  --titre-signature: #F1C26B;
}

[data-theme=light] {
  --bg-page: #FAF2E3;
  --bg-surface: #FFFFFF;
  --bg-elevated: #F5EBD3;
  --text-main: #1A1A1A;
  --text-secondary: #5B1F14;
  --text-muted: #888780;
  --border-subtle: rgba(91, 31, 20, 0.15);
  --border-strong: rgba(91, 31, 20, 0.3);
  --titre-signature: #5B1F14;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
*, *::before, *::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

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

p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

button {
  background: none;
  border: none;
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  list-style: none;
}

body {
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: var(--text-main);
  background-color: var(--bg-page);
}
@media (max-width: 767px) {
  body {
    font-size: 16px;
  }
}
body {
  background-image: radial-gradient(ellipse at top, rgba(91, 31, 20, 0.15) 0%, transparent 50%), radial-gradient(ellipse at bottom, rgba(91, 31, 20, 0.08) 0%, transparent 50%);
  background-attachment: fixed;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

h1 {
  font-size: 36px;
}

h2 {
  font-size: 28px;
}

h3 {
  font-size: 24px;
}

h4 {
  font-size: 20px;
}

h5 {
  font-size: 17px;
}

h6 {
  font-size: 15px;
}

.titre-brush {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-weight: 400;
  color: var(--titre-signature);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.eyebrow {
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #E89A3A;
}

.container {
  width: 100%;
  margin-inline: auto;
  padding-inline: 16px;
}
@media (min-width: 768px) {
  .container {
    max-width: 720px;
    padding-inline: 24px;
  }
}
@media (min-width: 1024px) {
  .container {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container {
    max-width: 1200px;
  }
}

.container-content {
  width: 100%;
  max-width: 680px;
  margin-inline: auto;
  padding-inline: 16px;
}

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

.skip-link {
  position: absolute;
  top: -100px;
  left: 0;
  background: #F1C26B;
  color: #1A1A1A;
  padding: 12px 16px;
  z-index: 9999;
}
.skip-link:focus {
  top: 0;
}

:focus-visible {
  outline: 2px solid var(--titre-signature);
  outline-offset: 2px;
}

:focus:not(:focus-visible) {
  outline: none;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.site-header {
  position: sticky;
  top: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 56px;
  overflow: hidden;
  padding: 0 20px;
  background: color-mix(in srgb, var(--bg-page) 85%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .site-header {
    padding: 0 32px;
  }
}
@media (min-width: 1024px) {
  .site-header {
    height: 64px;
    padding: 0 40px;
  }
}
@media (min-width: 1200px) {
  .site-header {
    padding: 0 48px;
  }
}

.site-logo {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  font-weight: 400;
  color: var(--titre-signature);
  line-height: 1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-shadow: 0 2px 8px color-mix(in srgb, var(--titre-signature) 15%, transparent);
}
@media (min-width: 768px) {
  .site-logo {
    font-size: 32px;
  }
}
@media (min-width: 1024px) {
  .site-logo {
    font-size: 36px;
  }
}

.site-logo-img {
  display: block;
  background-color: var(--titre-signature);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: left center;
  mask-position: left center;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
@media (min-width: 768px) {
  .header-actions {
    gap: 16px;
  }
}

.header-user-icon {
  position: relative;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  color: var(--text-main);
  cursor: pointer;
  transition: all 150ms ease;
}
.header-user-icon svg {
  width: 18px;
  height: 18px;
}
.header-user-icon:hover {
  background: var(--bg-elevated);
  border-color: var(--titre-signature);
  color: var(--titre-signature);
}
.header-user-icon.is-logged {
  border-color: #5DCAA5;
}
.header-user-icon.is-logged::after {
  content: "";
  position: absolute;
  top: -2px;
  right: -2px;
  width: 10px;
  height: 10px;
  background: #5DCAA5;
  border-radius: 9999px;
  border: 2px solid var(--bg-page);
}
@media (min-width: 768px) {
  .header-user-icon {
    width: 42px;
    height: 42px;
  }
  .header-user-icon svg {
    width: 20px;
    height: 20px;
  }
}

.header-burger {
  width: 38px;
  height: 38px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  cursor: pointer;
  transition: all 150ms ease;
}
.header-burger span {
  display: block;
  width: 16px;
  height: 2px;
  background: var(--text-main);
  border-radius: 2px;
  transition: all 150ms ease;
}
.header-burger:hover {
  background: var(--bg-elevated);
  border-color: var(--titre-signature);
}
.header-burger:hover span {
  background: var(--titre-signature);
}
.header-burger.is-open span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.header-burger.is-open span:nth-child(2) {
  opacity: 0;
}
.header-burger.is-open span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}
@media (min-width: 768px) {
  .header-burger {
    width: 42px;
    height: 42px;
  }
  .header-burger span {
    width: 18px;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.theme-toggle {
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  color: var(--text-main);
  cursor: pointer;
  transition: all 150ms ease;
}
.theme-toggle svg {
  width: 18px;
  height: 18px;
}
.theme-toggle:hover {
  background: var(--bg-elevated);
  border-color: var(--titre-signature);
  color: var(--titre-signature);
}
@media (min-width: 768px) {
  .theme-toggle {
    width: 42px;
    height: 42px;
  }
  .theme-toggle svg {
    width: 20px;
    height: 20px;
  }
}
.theme-toggle .icon-sun {
  display: none;
}
.theme-toggle .icon-moon {
  display: block;
}

[data-theme=light] .theme-toggle .icon-moon {
  display: none;
}
[data-theme=light] .theme-toggle .icon-sun {
  display: block;
}

@media (prefers-color-scheme: light) {
  :root:not([data-theme]) .theme-toggle .icon-moon {
    display: none;
  }
  :root:not([data-theme]) .theme-toggle .icon-sun {
    display: block;
  }
}
/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.burger-panel {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, var(--bg-page) 0%, #5B1F14 100%);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-12px);
  transition: opacity 250ms ease, transform 250ms ease, visibility 0s linear 250ms ease;
}
.burger-panel.is-open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 250ms ease, transform 250ms ease, visibility 0s;
}
@media (min-width: 1024px) {
  .burger-panel {
    left: auto;
    width: 480px;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.6);
    border-left: 1px solid var(--border-subtle);
    transform: translateX(20px);
  }
  .burger-panel.is-open {
    transform: translateX(0);
  }
}

.burger-backdrop {
  display: none;
}
@media (min-width: 1024px) {
  .burger-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 999;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    visibility: hidden;
    opacity: 0;
    transition: opacity 250ms ease, visibility 0s linear 250ms ease;
  }
  .burger-backdrop.is-open {
    visibility: visible;
    opacity: 1;
    transition: opacity 250ms ease, visibility 0s;
  }
}

.burger-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .burger-header {
    padding: 20px 24px;
  }
}

.burger-close {
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  color: var(--text-main);
  transition: all 150ms ease;
}
.burger-close svg {
  width: 16px;
  height: 16px;
}
.burger-close:hover {
  background: var(--bg-elevated);
  color: var(--titre-signature);
}
@media (min-width: 768px) {
  .burger-close {
    width: 42px;
    height: 42px;
  }
  .burger-close svg {
    width: 18px;
    height: 18px;
  }
}

.burger-nav {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 24px 20px;
}
@media (min-width: 768px) {
  .burger-nav {
    padding: 32px 32px;
  }
}
@media (min-width: 1024px) {
  .burger-nav {
    justify-content: flex-start;
    padding-top: 40px;
  }
}

.burger-nav-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border-radius: 9999px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  font-size: 28px;
  font-weight: 600;
  color: var(--text-main);
  transition: all 150ms ease;
}
.burger-nav-item .burger-nav-icon {
  width: 28px;
  height: 28px;
  color: var(--titre-signature);
  flex-shrink: 0;
}
.burger-nav-item .burger-nav-arrow {
  margin-left: auto;
  width: 20px;
  height: 20px;
  color: #E89A3A;
  opacity: 0;
  transform: translateX(-4px);
  transition: all 150ms ease;
}
.burger-nav-item:hover, .burger-nav-item:focus-visible {
  background: color-mix(in srgb, var(--text-main) 8%, transparent);
  border-color: var(--titre-signature);
  color: var(--titre-signature);
  transform: translateX(2px);
}
.burger-nav-item:hover .burger-nav-arrow, .burger-nav-item:focus-visible .burger-nav-arrow {
  opacity: 1;
  transform: translateX(0);
}
.burger-nav-item.is-active {
  background: color-mix(in srgb, var(--titre-signature) 14%, transparent);
  border-color: var(--titre-signature);
  color: var(--titre-signature);
}
.burger-nav-item.is-active .burger-nav-arrow {
  opacity: 1;
  transform: translateX(0);
}
@media (min-width: 768px) {
  .burger-nav-item {
    font-size: 30px;
  }
}

.burger-footer {
  padding: 20px;
  border-top: 1px solid var(--border-subtle);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (min-width: 768px) {
  .burger-footer {
    padding: 24px;
  }
}

.burger-map-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-radius: 14px;
  background: #C9483B;
  color: #FAF2E3;
  font-weight: 600;
  transition: all 150ms ease;
}
.burger-map-btn svg {
  width: 22px;
  height: 22px;
}
.burger-map-btn:hover {
  background: rgb(206.508, 90.666, 78.992);
  transform: translateY(-1px);
}

.burger-meta {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

body.has-burger-open {
  overflow: hidden;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.site-footer {
  margin-top: 64px;
  padding: 48px 20px 32px;
  background: var(--bg-surface);
  border-top: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .site-footer {
    padding: 64px 32px 48px;
  }
}

.single-discipline .site-footer,
.page-template-template-discipline .site-footer {
  padding-bottom: 110px;
}
@media (min-width: 768px) {
  .single-discipline .site-footer,
  .page-template-template-discipline .site-footer {
    padding-bottom: 130px;
  }
}

.footer-inner {
  max-width: 1200px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media (min-width: 768px) {
  .footer-inner {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 48px;
  }
}

.footer-brand {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer-brand .footer-logo {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 36px;
  color: var(--titre-signature);
  line-height: 1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.footer-brand .footer-tagline {
  font-size: 13px;
  color: var(--text-muted);
  max-width: 280px;
}
.footer-brand .footer-dates {
  font-size: 13px;
  color: #E89A3A;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.footer-cols {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
@media (min-width: 768px) {
  .footer-cols {
    grid-template-columns: repeat(3, 1fr);
  }
}

.footer-col h4 {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #E89A3A;
  margin-bottom: 12px;
}
.footer-col ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.footer-col li {
  list-style: none;
}
.footer-col a {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 9999px;
  background: var(--bg-elevated);
  border: 1px solid var(--border-subtle);
  font-size: 13px;
  color: var(--text-main);
  opacity: 0.9;
  transition: all 150ms ease;
  white-space: nowrap;
}
.footer-col a:hover {
  opacity: 1;
  color: var(--titre-signature);
  border-color: var(--titre-signature);
  transform: translateY(-1px);
}

.footer-bottom {
  max-width: 1200px;
  margin: 32px auto 0;
  padding-top: 24px;
  border-top: 1px solid var(--border-subtle);
  display: flex;
  flex-direction: column;
  gap: 20px;
  font-size: 11px;
  color: var(--text-muted);
}
.footer-bottom__row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}
@media (min-width: 768px) {
  .footer-bottom__row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    text-align: left;
  }
}
.footer-bottom .footer-credits {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.footer-bottom .footer-legal-link {
  opacity: 0.55;
  transition: opacity 150ms ease;
  text-decoration: none;
  font-size: 11px;
}
.footer-bottom .footer-legal-link:hover {
  opacity: 1;
}
.footer-bottom .footer-socials {
  display: flex;
  gap: 12px;
}
.footer-bottom .footer-socials a {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-elevated);
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  color: var(--text-main);
  transition: all 150ms ease;
}
.footer-bottom .footer-socials a:hover {
  background: #F1C26B;
  border-color: #F1C26B;
  color: #1A1A1A;
  transform: translateY(-1px);
}
.footer-bottom .footer-socials a svg {
  width: 18px;
  height: 18px;
}

.footer-made-wrap {
  display: flex;
  justify-content: center;
}

.footer-made {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 16px;
  border-radius: 9999px;
  background: var(--bg-elevated);
  border: 1px solid var(--border-subtle);
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 0.02em;
}
.footer-made__heart {
  color: #C9483B;
  font-size: 14px;
  line-height: 1;
}
.footer-made__author {
  color: var(--titre-signature);
  font-weight: 600;
  text-decoration: none;
  transition: color 150ms ease;
}
.footer-made__author:hover {
  color: #E89A3A;
  text-decoration: underline;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.auth-modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: flex;
  align-items: stretch;
  justify-content: center;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  visibility: hidden;
  opacity: 0;
  transition: opacity 250ms ease, visibility 0s linear 250ms ease;
}
.auth-modal.is-open {
  visibility: visible;
  opacity: 1;
  transition: opacity 250ms ease, visibility 0s;
}
@media (min-width: 768px) {
  .auth-modal {
    align-items: center;
    padding: 32px;
  }
}

.auth-modal-container {
  width: 100%;
  max-width: 480px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .auth-modal-container {
    max-height: 90vh;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.6);
  }
}

.auth-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-subtle);
}

.auth-modal-logo {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 20px;
  color: var(--titre-signature);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.auth-modal-close {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-elevated);
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  color: var(--text-main);
}
.auth-modal-close svg {
  width: 14px;
  height: 14px;
}

.auth-modal-body {
  flex: 1;
  padding: 24px 24px 32px;
  overflow-y: auto;
}

.auth-modal-eyebrow {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  text-align: center;
  margin-bottom: 8px;
}

.auth-modal-title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 28px;
  text-align: center;
  margin-bottom: 8px;
  line-height: 1.1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.auth-modal-pitch {
  font-size: 13px;
  color: var(--text-main);
  opacity: 0.85;
  text-align: center;
  margin-bottom: 24px;
  line-height: 1.5;
}

.auth-biometric-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 20px 20px;
  margin-bottom: 20px;
  background: linear-gradient(135deg, #F1C26B 0%, #E89A3A 100%);
  color: #1A1A1A;
  border-radius: 14px;
  font-weight: 600;
  font-size: 17px;
  box-shadow: 0 4px 12px rgba(241, 194, 107, 0.25);
  transition: all 150ms ease;
}
.auth-biometric-btn svg {
  width: 22px;
  height: 22px;
}
.auth-biometric-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(241, 194, 107, 0.4);
}
.auth-biometric-btn.is-unsupported {
  display: none;
}

.auth-separator {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0;
  font-size: 11px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.auth-separator::before, .auth-separator::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border-subtle);
}

.auth-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.auth-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.auth-field label {
  font-size: 11px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.auth-input {
  width: 100%;
  padding: 12px 16px;
  background: var(--bg-page);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  color: var(--text-main);
  font-size: 15px;
  transition: border-color 150ms ease;
}
.auth-input:focus {
  border-color: var(--titre-signature);
  outline: none;
}
.auth-input::placeholder {
  color: var(--text-muted);
}

.auth-submit-btn {
  width: 100%;
  padding: 16px 20px;
  background: #C9483B;
  color: #FAF2E3;
  border-radius: 10px;
  font-weight: 600;
  font-size: 15px;
  margin-top: 8px;
  transition: all 150ms ease;
}
.auth-submit-btn:hover {
  background: rgb(206.508, 90.666, 78.992);
}

.auth-forgot-link {
  text-align: center;
  font-size: 13px;
  color: #E89A3A;
  margin-top: 12px;
}

.auth-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.auth-message {
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.5;
}
.auth-message--error {
  background: rgba(201, 72, 59, 0.12);
  border: 1px solid rgba(201, 72, 59, 0.4);
  color: #C9483B;
}
.auth-message--success {
  background: rgba(230, 149, 74, 0.12);
  border: 1px solid rgba(230, 149, 74, 0.4);
  color: #E6954A;
}
.auth-message[hidden] {
  display: none;
}

.auth-strength {
  margin-top: 8px;
}
.auth-strength[hidden] {
  display: none;
}
.auth-strength__bar {
  width: 100%;
  height: 4px;
  background: var(--border-subtle);
  border-radius: 9999px;
  overflow: hidden;
}
.auth-strength__fill {
  height: 100%;
  width: 0;
  background: #C9483B;
  transition: width 150ms ease, background-color 150ms ease;
}
.auth-strength__label {
  display: inline-block;
  margin-top: 4px;
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.auth-strength--weak .auth-strength__fill {
  width: 25%;
  background: #C9483B;
}
.auth-strength--fair .auth-strength__fill {
  width: 50%;
  background: #E89A3A;
}
.auth-strength--good .auth-strength__fill {
  width: 75%;
  background: #F1C26B;
}
.auth-strength--strong .auth-strength__fill {
  width: 100%;
  background: #E6954A;
}

.auth-modal[data-mode=login] [data-auth-show]:not([data-auth-show~=login]) {
  display: none;
}
.auth-modal[data-mode=register] [data-auth-show]:not([data-auth-show~=register]) {
  display: none;
}
.auth-modal[data-mode=forgot] [data-auth-show]:not([data-auth-show~=forgot]) {
  display: none;
}

.auth-sms-toggle {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--border-subtle);
  text-align: center;
  font-size: 13px;
  color: var(--text-muted);
}
.auth-sms-toggle a {
  color: #E89A3A;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.auth-modal-footer {
  padding: 20px 24px;
  border-top: 1px solid var(--border-subtle);
  text-align: center;
  font-size: 13px;
  color: var(--text-muted);
}
.auth-modal-footer a {
  color: var(--titre-signature);
  font-weight: 500;
}

.auth-modal-bientot {
  display: none;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 32px 24px;
  gap: 16px;
}
.auth-modal-bientot__icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--surface-2, rgba(255, 255, 255, 0.06));
  display: flex;
  align-items: center;
  justify-content: center;
}
.auth-modal-bientot__icon svg {
  width: 28px;
  height: 28px;
  color: #E89A3A;
}
.auth-modal-bientot__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  font-weight: 400;
  color: var(--titre-signature);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0;
}
.auth-modal-bientot__desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
  max-width: 320px;
  margin: 0;
}
.auth-modal-bientot__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 500;
  color: #E89A3A;
  text-decoration: underline;
  text-underline-offset: 3px;
  margin-top: 8px;
}
.auth-modal-bientot__link svg {
  width: 14px;
  height: 14px;
}

.auth-modal[data-bientot=true] .auth-modal-bientot {
  display: flex;
  aria-hidden: false;
}
.auth-modal[data-bientot=true] .auth-modal-body,
.auth-modal[data-bientot=true] .auth-modal-footer {
  display: none;
}

body.has-modal-open {
  overflow: hidden;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 20px 20px 0;
  font-size: 14px;
  letter-spacing: 0.02em;
  font-weight: 500;
}
@media (min-width: 768px) {
  .breadcrumb {
    padding: 20px 32px 0;
    font-size: 13px;
    gap: 12px;
  }
}
.breadcrumb__link {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 9999px;
  background: var(--bg-elevated);
  border: 1px solid var(--border-subtle);
  color: var(--text-main);
  text-decoration: none;
  transition: all 150ms ease;
  white-space: nowrap;
}
.breadcrumb__link:hover {
  color: var(--titre-signature);
  border-color: var(--titre-signature);
  transform: translateY(-1px);
}
.breadcrumb__current {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 9999px;
  background: color-mix(in srgb, var(--titre-signature) 14%, transparent);
  border: 1px solid var(--titre-signature);
  color: var(--titre-signature);
  font-weight: 600;
  white-space: nowrap;
}
.breadcrumb__sep {
  display: none;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.page-hero {
  padding: 8px 20px 32px;
  border-bottom: 1px solid var(--border-subtle);
  text-align: center;
}
@media (min-width: 768px) {
  .page-hero {
    padding: 12px 32px 40px;
  }
}
@media (min-width: 1024px) {
  .page-hero {
    padding: 16px 32px 48px;
    max-width: 1200px;
    margin-inline: auto;
  }
}
@media (min-width: 1440px) {
  .page-hero {
    max-width: 1400px;
  }
}
.page-hero__tagline {
  color: color-mix(in srgb, var(--titre-signature) 60%, transparent);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 12px;
}
.page-hero__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 36px;
  line-height: 0.95;
  margin: 0 0 16px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .page-hero__title {
    font-size: 56px;
  }
}
@media (min-width: 1024px) {
  .page-hero__title {
    font-size: 72px;
  }
}
.page-hero__lead {
  color: color-mix(in srgb, var(--text-main) 80%, transparent);
  font-size: 13px;
  line-height: 1.7;
  margin: 0 auto;
  max-width: 540px;
}
.page-hero__lead strong {
  color: var(--titre-signature);
  font-weight: 600;
}
@media (min-width: 768px) {
  .page-hero__lead {
    font-size: 15px;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.filters {
  padding: 24px 20px 20px;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .filters {
    padding: 32px 32px 24px;
  }
}
.filters > * {
  max-width: 960px;
  margin-inline: auto;
}
.filters__label {
  color: color-mix(in srgb, var(--titre-signature) 70%, transparent);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  text-align: center;
  margin-bottom: 12px;
}
.filters__label:not(:first-child) {
  margin-top: 20px;
}

.filter-dates {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.filter-dates--with-all {
  grid-template-columns: repeat(4, 1fr);
}

.filter-date {
  padding: 12px 8px;
  background: color-mix(in srgb, var(--text-main) 4%, transparent);
  border: 1px solid color-mix(in srgb, var(--titre-signature) 20%, transparent);
  border-radius: 10px;
  text-align: center;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.filter-date:hover {
  background: color-mix(in srgb, var(--text-main) 8%, transparent);
}
.filter-date.is-active {
  background: var(--titre-signature);
  border-color: var(--titre-signature);
}
.filter-date__num {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 26px;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.filter-date.is-active .filter-date__num {
  color: #FAF2E3;
}
.filter-date__name {
  color: color-mix(in srgb, var(--text-main) 55%, transparent);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: 4px;
  font-weight: 500;
}
.filter-date.is-active .filter-date__name {
  color: rgba(250, 242, 227, 0.85);
}
.filter-date__count {
  color: color-mix(in srgb, var(--titre-signature) 80%, transparent);
  font-size: 10px;
  font-weight: 500;
}
.filter-date.is-active .filter-date__count {
  color: rgba(250, 242, 227, 0.75);
}
.filter-date--all .filter-date__num {
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-size: 17px;
  font-weight: 700;
  padding-top: 8px;
  text-transform: none;
  letter-spacing: 0;
}

.filter-tags {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
@media (min-width: 768px) {
  .filter-tags {
    grid-template-columns: repeat(4, 1fr);
  }
}

.filter-tag {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 16px;
  background: color-mix(in srgb, var(--text-main) 4%, transparent);
  border: 1px solid color-mix(in srgb, var(--titre-signature) 20%, transparent);
  border-radius: 10px;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
}
.filter-tag:hover {
  background: color-mix(in srgb, var(--text-main) 8%, transparent);
}
.filter-tag.is-active {
  background: var(--titre-signature);
  border-color: var(--titre-signature);
}
.filter-tag__icon {
  width: 22px;
  height: 22px;
  color: #E89A3A;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.filter-tag__icon svg {
  width: 100%;
  height: 100%;
}
.filter-tag.is-active .filter-tag__icon {
  color: #FAF2E3;
}
.filter-tag__label {
  color: color-mix(in srgb, var(--text-main) 85%, transparent);
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}
.filter-tag.is-active .filter-tag__label {
  color: #FAF2E3;
  font-weight: 600;
}
.filter-tag__count {
  color: color-mix(in srgb, var(--text-main) 40%, transparent);
  font-size: 11px;
  font-weight: 500;
}
.filter-tag.is-active .filter-tag__count {
  color: rgba(250, 242, 227, 0.7);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.results-info {
  max-width: 1200px;
  margin-inline: auto;
  padding: 16px 20px 0;
  color: color-mix(in srgb, var(--text-main) 50%, transparent);
  font-size: 11px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media (min-width: 768px) {
  .results-info {
    padding: 20px 32px 0;
  }
}
.results-info__count strong {
  color: var(--titre-signature);
  font-weight: 600;
}
.results-info__reset {
  background: none;
  border: none;
  color: #C9483B;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  padding: 0;
  transition: color 150ms ease;
}
.results-info__reset:hover {
  color: #E89A3A;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.cta-banner {
  text-align: center;
  padding: 24px 20px;
}
@media (min-width: 768px) {
  .cta-banner {
    padding: 32px 32px;
  }
}
.cta-banner > * {
  max-width: 720px;
  margin-inline: auto;
}
.cta-banner--primary {
  max-width: 720px;
  margin: 24px auto 32px;
  background: linear-gradient(135deg, #5B1F14 0%, #C9483B 100%);
  border-radius: 14px;
}
@media (min-width: 768px) {
  .cta-banner--primary {
    margin: 32px auto 40px;
  }
}
.cta-banner--subtle {
  background: var(--bg-surface);
  border-top: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .cta-banner--subtle {
    padding: 40px 32px;
  }
}
@media (min-width: 1024px) {
  .cta-banner--subtle {
    padding: 48px 40px;
  }
}
.cta-banner__eyebrow {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 8px;
  color: color-mix(in srgb, #F1C26B 70%, transparent);
}
.cta-banner--subtle .cta-banner__eyebrow {
  color: color-mix(in srgb, var(--titre-signature) 70%, transparent);
}
.cta-banner__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  line-height: 1.05;
  margin: 0 0 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
  color: #F1C26B;
}
@media (min-width: 768px) {
  .cta-banner__title {
    font-size: 36px;
  }
}
@media (min-width: 1024px) {
  .cta-banner__title {
    font-size: 44px;
  }
}
.cta-banner--subtle .cta-banner__title {
  color: var(--titre-signature);
}
.cta-banner__sub {
  font-size: 13px;
  line-height: 1.5;
  margin: 0 auto 20px;
  max-width: 480px;
  color: color-mix(in srgb, #FAF2E3 85%, transparent);
}
@media (min-width: 768px) {
  .cta-banner__sub {
    font-size: 15px;
  }
}
.cta-banner--subtle .cta-banner__sub {
  color: color-mix(in srgb, var(--text-main) 80%, transparent);
}
.cta-banner__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 32px;
  background: #F1C26B;
  color: #5B1F14;
  font-size: 15px;
  font-weight: 700;
  border-radius: 9999px;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: transform 150ms ease, box-shadow 150ms ease;
}
.cta-banner__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(241, 194, 107, 0.3);
}
@media (min-width: 768px) {
  .cta-banner__btn {
    padding: 16px 40px;
    font-size: 17px;
  }
}
.cta-banner__btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cta-banner__btn-icon svg {
  width: 14px;
  height: 14px;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.cards-section {
  padding: 16px 20px 32px;
}
@media (min-width: 768px) {
  .cards-section {
    padding: 20px 32px 40px;
  }
}
@media (min-width: 1024px) {
  .cards-section {
    padding: 24px 32px 48px;
    max-width: 1200px;
    margin-inline: auto;
  }
}
@media (min-width: 1440px) {
  .cards-section {
    max-width: 1400px;
  }
}

.card {
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 16px;
  position: relative;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  transition: transform 150ms ease, box-shadow 150ms ease;
}
.card:last-child {
  margin-bottom: 0;
}
.card:has(.card__link:hover) {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}
.card__link {
  position: absolute;
  inset: 0;
  z-index: 1;
  font-size: 0;
  text-decoration: none;
}
.card__link:focus-visible {
  outline: 2px solid var(--titre-signature);
  outline-offset: -2px;
  border-radius: 14px;
}

.card-img {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
}

.card-img--sport-xc {
  background: linear-gradient(135deg, #378ADD 0%, #185FA5 60%, #0C447C 100%);
}

.card-img--sport-att {
  background: linear-gradient(135deg, #E89A3A 0%, #C9483B 100%);
}

.card-img--sport-hk {
  background: linear-gradient(135deg, #1D9E75 0%, #0F6E56 100%);
}

.card-img--sport-vd {
  background: linear-gradient(135deg, #D4537E 0%, #993556 100%);
}

.card-img--sport-el {
  background: linear-gradient(135deg, #97C459 0%, #3B6D11 100%);
}

.card-img--sport-bc {
  background: linear-gradient(135deg, #8FC9A4 0%, #6BA87F 50%, #4A8260 100%);
}

.card-img--sport-vg {
  background: linear-gradient(135deg, #888780 0%, #2A2A2A 100%);
}

.card-img--concert-1 {
  background: linear-gradient(135deg, #D4537E 0%, #993556 60%, #4B1528 100%);
}

.card-img--concert-2 {
  background: linear-gradient(135deg, #7F77DD 0%, #3C3489 100%);
}

.card-img--concert-3 {
  background: linear-gradient(135deg, #F0997B 0%, #993C1D 100%);
}

.card-img--concert-4 {
  background: linear-gradient(135deg, #5DCAA5 0%, #0F6E56 100%);
}

.card-img--concert-5 {
  background: linear-gradient(135deg, #F0997B 0%, #E89A3A 50%, #BA7517 100%);
}

.card-img--concert-6 {
  background: linear-gradient(135deg, #378ADD 0%, #0C447C 100%);
}

.card-img--concert-7 {
  background: linear-gradient(135deg, #1A1A1A 0%, #5F5E5A 100%);
}

.card-img--anim-kids {
  background: linear-gradient(135deg, #F1C26B 0%, #E89A3A 100%);
}

.card-img--anim-cine {
  background: linear-gradient(135deg, #534AB7 0%, #26215C 100%);
}

.card-img--anim-petanque {
  background: linear-gradient(135deg, #C0DD97 0%, #639922 100%);
}

.card-img--anim-aerien {
  background: linear-gradient(135deg, #378ADD 0%, #0C447C 100%);
}

.card-img--anim-crete {
  background: linear-gradient(135deg, #5B1F14 0%, #C9483B 50%, #E89A3A 100%);
}

.card-img__shape {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: rgba(0, 0, 0, 0.35);
  clip-path: polygon(0 100%, 0 55%, 20% 30%, 40% 50%, 60% 20%, 80% 45%, 100% 25%, 100% 100%);
}

.card-img__top-row {
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  z-index: 2;
}

.card__date {
  padding: 5px 10px;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 6px;
  color: #F1C26B;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.card__badges {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-end;
}

.card__badge {
  padding: 4px 10px;
  border-radius: 9999px;
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.card__badge svg {
  width: 10px;
  height: 10px;
}
.card__badge .sport-icon-img {
  width: 10px;
  height: 10px;
  object-fit: contain;
  display: inline-block;
}
.card__badge--bike {
  background: color-mix(in srgb, var(--sport-bike-color) 25%, transparent);
  color: color-mix(in srgb, var(--sport-bike-color) 85%, white);
  border: 1px solid color-mix(in srgb, var(--sport-bike-color) 50%, transparent);
}
.card__badge--para {
  background: color-mix(in srgb, var(--sport-para-color) 25%, transparent);
  color: color-mix(in srgb, var(--sport-para-color) 85%, white);
  border: 1px solid color-mix(in srgb, var(--sport-para-color) 50%, transparent);
}
.card__badge--multi {
  background: color-mix(in srgb, var(--sport-multi-color) 25%, transparent);
  color: color-mix(in srgb, var(--sport-multi-color) 85%, white);
  border: 1px solid color-mix(in srgb, var(--sport-multi-color) 50%, transparent);
}
.card__badge--fun {
  background: color-mix(in srgb, var(--sport-fun-color) 25%, transparent);
  color: color-mix(in srgb, var(--sport-fun-color) 85%, white);
  border: 1px solid color-mix(in srgb, var(--sport-fun-color) 50%, transparent);
}
.card__badge--trail {
  background: color-mix(in srgb, var(--sport-trail-color) 25%, transparent);
  color: color-mix(in srgb, var(--sport-trail-color) 85%, white);
  border: 1px solid color-mix(in srgb, var(--sport-trail-color) 50%, transparent);
}
.card__badge--kids {
  background: rgba(241, 194, 107, 0.3);
  color: #F1C26B;
  border: 1px solid rgba(241, 194, 107, 0.5);
}
.card__badge--petanque {
  background: rgba(151, 196, 89, 0.25);
  color: #C0DD97;
  border: 1px solid rgba(151, 196, 89, 0.4);
}
.card__badge--aerien {
  background: rgba(55, 138, 221, 0.25);
  color: #85B7EB;
  border: 1px solid rgba(55, 138, 221, 0.4);
}
.card__badge--nature {
  background: rgba(232, 154, 58, 0.25);
  color: #FAC775;
  border: 1px solid rgba(232, 154, 58, 0.4);
}

.card-body {
  padding: 16px 20px;
}

.card__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 24px;
  line-height: 1;
  margin: 0 0 4px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.card__tag {
  color: color-mix(in srgb, var(--text-main) 55%, transparent);
  font-size: 11px;
  margin-bottom: 12px;
}

.card__desc {
  color: color-mix(in srgb, var(--text-main) 75%, transparent);
  font-size: 13px;
  line-height: 1.5;
  margin: 0 0 16px;
}

.card-stats {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
}

.card-stat {
  flex: 1;
  padding: 8px 12px;
  background: color-mix(in srgb, var(--text-main) 4%, transparent);
  border-radius: 6px;
}
.card-stat__label {
  color: color-mix(in srgb, var(--titre-signature) 60%, transparent);
  font-size: 9px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 2px;
  font-weight: 500;
}
.card-stat__value {
  color: var(--titre-signature);
  font-size: 11px;
  font-weight: 600;
}

.card-ctas {
  display: flex;
  gap: 8px;
  position: relative;
  z-index: 2;
}

.card-btn {
  flex: 1;
  position: relative;
  z-index: 2;
  padding: 12px 12px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-size: 11px;
  font-weight: 600;
  border-radius: 6px;
  border: none;
  text-align: center;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.card-btn--primary {
  background: #C9483B;
  color: #FAF2E3;
}
.card-btn--primary:hover {
  background: #E89A3A;
}
.card-btn--outline {
  background: transparent;
  color: var(--titre-signature);
  border: 1px solid color-mix(in srgb, var(--titre-signature) 40%, transparent);
}
.card-btn--outline:hover {
  border-color: var(--titre-signature);
  background: color-mix(in srgb, var(--titre-signature) 5%, transparent);
}
.card-btn--external {
  background: #888780;
  color: #FAF2E3;
}
.card-btn--external:hover {
  background: color-mix(in srgb, #888780 80%, black);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.card-price-tag {
  position: absolute;
  bottom: 12px;
  right: 12px;
  padding: 8px 12px;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 6px;
  font-size: 10px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  z-index: 2;
}
.card-price-tag svg {
  width: 10px;
  height: 10px;
}
.card-price-tag--free {
  color: #5DCAA5;
  border: 1px solid rgba(93, 202, 165, 0.4);
}
.card-price-tag--paid {
  color: #F1C26B;
  border: 1px solid rgba(241, 194, 107, 0.4);
}
.card-price-tag--muted {
  background: rgba(91, 31, 20, 0.7);
  color: color-mix(in srgb, #F1C26B 60%, transparent);
  border: 1px solid color-mix(in srgb, #F1C26B 20%, transparent);
}
.card-price-tag__amount {
  color: #FAF2E3;
  font-size: 13px;
  font-weight: 700;
}
.card-price-tag__ext {
  font-size: 9px;
  color: color-mix(in srgb, #FAF2E3 55%, transparent);
  font-weight: 400;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.card--concert {
  margin-bottom: 16px;
}

.card-banner {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
}

.card-banner__noise {
  position: absolute;
  inset: 0;
  opacity: 0.15;
  background-image: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.3) 0px, transparent 2px), radial-gradient(circle at 70% 60%, rgba(255, 255, 255, 0.2) 0px, transparent 3px);
  background-size: 60px 60px, 80px 80px;
  pointer-events: none;
}

.card-banner__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.55) 85%, rgba(0, 0, 0, 0.8) 100%);
  pointer-events: none;
}

.card-banner__photo-hint {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: rgba(255, 255, 255, 0.4);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  border: 1px dashed rgba(255, 255, 255, 0.35);
  padding: 8px 12px;
  border-radius: 6px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.card-banner__top {
  position: absolute;
  top: 16px;
  left: 16px;
  right: 16px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  z-index: 2;
}

.card-banner__time {
  padding: 5px 10px;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 6px;
  color: #F1C26B;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.card-banner__time svg {
  width: 11px;
  height: 11px;
}

.card-banner__style {
  padding: 5px 10px;
  border-radius: 9999px;
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.card-banner__style--rock {
  background: rgba(232, 154, 58, 0.3);
  color: #F1C26B;
  border: 1px solid rgba(241, 194, 107, 0.5);
}
.card-banner__style--reggae {
  background: rgba(93, 202, 165, 0.3);
  color: #9FE1CB;
  border: 1px solid rgba(93, 202, 165, 0.5);
}
.card-banner__style--pop {
  background: rgba(212, 83, 126, 0.3);
  color: #F4C0D1;
  border: 1px solid rgba(212, 83, 126, 0.5);
}
.card-banner__style--electro {
  background: rgba(127, 119, 221, 0.3);
  color: #CECBF6;
  border: 1px solid rgba(127, 119, 221, 0.5);
}

.card-banner__bottom {
  position: absolute;
  bottom: 16px;
  left: 16px;
  right: 16px;
  z-index: 2;
}

.card-banner__day {
  color: color-mix(in srgb, #F1C26B 85%, transparent);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 4px;
}

.card-banner__name {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: #F1C26B;
  font-size: 36px;
  line-height: 1;
  margin: 0;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

.card-concert-body {
  padding: 16px 16px;
}

.card-concert__duration {
  color: color-mix(in srgb, var(--titre-signature) 60%, transparent);
  font-size: 11px;
  margin-bottom: 8px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-weight: 500;
}
.card-concert__duration svg {
  width: 11px;
  height: 11px;
}

.card-concert__desc {
  color: color-mix(in srgb, var(--text-main) 75%, transparent);
  font-size: 11px;
  line-height: 1.5;
  margin: 0 0 16px;
}

.card-concert__cta {
  display: block;
  width: 100%;
  padding: 12px 20px;
  background: transparent;
  color: var(--titre-signature);
  font-size: 11px;
  font-weight: 600;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--titre-signature) 40%, transparent);
  text-align: center;
  cursor: pointer;
  text-decoration: none;
  transition: background 150ms ease, border-color 150ms ease;
}
.card-concert__cta:hover {
  border-color: var(--titre-signature);
  background: color-mix(in srgb, var(--titre-signature) 5%, transparent);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.card-access-tag {
  position: absolute;
  bottom: 12px;
  right: 12px;
  padding: 8px 12px;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 6px;
  font-size: 10px;
  font-weight: 600;
  color: #5DCAA5;
  border: 1px solid rgba(93, 202, 165, 0.4);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  z-index: 2;
}
.card-access-tag svg {
  width: 10px;
  height: 10px;
}
.card-access-tag--register {
  color: #F1C26B;
  border-color: rgba(241, 194, 107, 0.4);
}

.card-animation__cta {
  display: block;
  width: 100%;
  padding: 12px 12px;
  background: transparent;
  color: var(--titre-signature);
  font-size: 11px;
  font-weight: 600;
  border-radius: 6px;
  border: 1px solid color-mix(in srgb, var(--titre-signature) 40%, transparent);
  text-align: center;
  cursor: pointer;
  text-decoration: none;
  transition: background 150ms ease, border-color 150ms ease;
}
.card-animation__cta:hover {
  border-color: var(--titre-signature);
  background: color-mix(in srgb, var(--titre-signature) 5%, transparent);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.card-highlight {
  margin-bottom: 16px;
  background: linear-gradient(135deg, #5B1F14 0%, #C9483B 50%, #E89A3A 100%);
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  border: 1px solid color-mix(in srgb, #F1C26B 30%, transparent);
}

.card-highlight__img {
  position: relative;
  aspect-ratio: 3/2;
  overflow: hidden;
}

.card-highlight__mountain {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: #2A2A2A;
  clip-path: polygon(0 100%, 0 55%, 15% 25%, 30% 45%, 45% 10%, 60% 30%, 75% 15%, 90% 40%, 100% 20%, 100% 100%);
}

.card-highlight__sun {
  position: absolute;
  top: 30%;
  right: 25%;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #F1C26B;
  box-shadow: 0 0 60px rgba(241, 194, 107, 0.6);
}

.card-highlight__rays {
  position: absolute;
  top: 30%;
  right: 25%;
  width: 40px;
  height: 40px;
}
.card-highlight__rays svg {
  position: absolute;
  top: -20px;
  left: -20px;
  width: 80px;
  height: 80px;
}

.card-highlight__labels {
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  display: flex;
  justify-content: space-between;
  z-index: 2;
}

.card-highlight__emphasis {
  padding: 4px 12px;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 6px;
  color: #F1C26B;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.card-highlight__emphasis svg {
  width: 10px;
  height: 10px;
}

.card-highlight__body {
  padding: 20px;
  position: relative;
}

.card-highlight__eyebrow {
  color: color-mix(in srgb, #F1C26B 80%, transparent);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 4px;
}

.card-highlight__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: #F1C26B;
  font-size: 28px;
  line-height: 1;
  margin: 0 0 8px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.card-highlight__desc {
  color: color-mix(in srgb, #FAF2E3 90%, transparent);
  font-size: 11px;
  line-height: 1.5;
  margin: 0 0 16px;
}

.card-highlight__ctas {
  display: flex;
  gap: 8px;
}

.card-highlight__btn {
  flex: 1;
  padding: 12px 16px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-size: 11px;
  font-weight: 600;
  border-radius: 10px;
  border: none;
  text-align: center;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease, transform 150ms ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.card-highlight__btn--primary {
  background: #F1C26B;
  color: #5B1F14;
}
.card-highlight__btn--primary:hover {
  transform: translateY(-1px);
}
.card-highlight__btn--outline {
  background: transparent;
  color: #F1C26B;
  border: 1px solid rgba(241, 194, 107, 0.5);
}
.card-highlight__btn--outline:hover {
  border-color: #F1C26B;
  background: rgba(241, 194, 107, 0.08);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.page-discipline {
  --discipline: #C9483B;
  --discipline-dark: #8B2E25;
}
@media (min-width: 1024px) {
  .page-discipline {
    max-width: 960px;
    margin-inline: auto;
  }
}
.page-discipline--rouge {
  --discipline: #C9483B;
  --discipline-dark: #8B2E25;
}
.page-discipline--orange {
  --discipline: #E89A3A;
  --discipline-dark: #B57420;
}
.page-discipline--jaune {
  --discipline: #F1C26B;
  --discipline-dark: #B58838;
}
.page-discipline--brun {
  --discipline: #5B1F14;
  --discipline-dark: #3A140D;
}
.page-discipline--sienne {
  --discipline: #A85738;
  --discipline-dark: #7A3E29;
}
.page-discipline--ocre {
  --discipline: #C19754;
  --discipline-dark: #8A6B3A;
}
.page-discipline--bordeaux {
  --discipline: #7D2A28;
  --discipline-dark: #561C1B;
}
.page-discipline--vert-sauge {
  --discipline: #7E9B7B;
  --discipline-dark: #566D54;
}
.page-discipline--vert-mousse {
  --discipline: #4F6951;
  --discipline-dark: #36493A;
}
.page-discipline--bleu-ardoise {
  --discipline: #5B7691;
  --discipline-dark: #3E5366;
}
.page-discipline--mauve {
  --discipline: #9485B5;
  --discipline-dark: #675A88;
}
.page-discipline--terracotta {
  --discipline: #D67E5E;
  --discipline-dark: #A45A40;
}
@supports (color: color-mix(in srgb, red, blue)) {
  .page-discipline[style*="--discipline-custom"] {
    --discipline-dark: color-mix(in srgb, var(--discipline) 70%, #000);
  }
}

.discipline-section {
  padding: 32px 20px;
  border-top: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .discipline-section {
    padding: 40px 32px;
  }
}
.discipline-section > * {
  max-width: 1200px;
  margin-inline: auto;
}
.discipline-section__eyebrow {
  display: block;
  width: 100%;
  font-size: 13px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 600;
  text-align: center !important;
  margin-bottom: 8px;
}
.discipline-section__title {
  display: block;
  width: 100%;
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  color: var(--titre-signature);
  margin-bottom: 20px;
  line-height: 1.05;
  font-weight: 400;
  text-align: center !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .discipline-section__title {
    font-size: 36px;
  }
}

.discipline-concept-text p {
  color: color-mix(in srgb, var(--text-main) 90%, transparent);
  margin-bottom: 16px;
  line-height: 1.7;
}
.discipline-concept-text p:last-child {
  margin-bottom: 0;
}
.discipline-concept-text strong {
  color: var(--titre-signature);
  font-weight: 500;
}

.discipline-concept-callout {
  margin-top: 20px;
  background: linear-gradient(135deg, rgba(107, 168, 127, 0.18), rgba(107, 168, 127, 0.06));
  border-left: 3px solid #6BA87F;
  padding: 16px 16px;
  border-radius: 6px;
  font-size: 13px;
  color: var(--text-main);
  font-style: italic;
  line-height: 1.5;
}
.discipline-concept-callout strong {
  color: #6BA87F;
  font-style: normal;
  font-weight: 600;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.discipline-hero {
  position: relative;
  min-height: 540px;
  margin-top: 12px;
  overflow: hidden;
  isolation: isolate;
}
@media (min-width: 768px) {
  .discipline-hero {
    min-height: 620px;
    border-radius: 24px;
    margin: 16px 20px 0;
  }
}
@media (min-width: 1024px) {
  .discipline-hero {
    min-height: 700px;
  }
}

.discipline-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: radial-gradient(circle at 70% 35%, rgba(241, 194, 107, 0.35), transparent 45%), radial-gradient(ellipse at 30% 80%, color-mix(in srgb, var(--discipline-dark) 55%, transparent), transparent 55%), linear-gradient(180deg, rgba(91, 31, 20, 0.4) 0%, rgba(26, 26, 26, 0.85) 100%), linear-gradient(135deg, var(--discipline-dark), #5B1F14);
}

.discipline-hero__lines {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: repeating-linear-gradient(115deg, transparent 0 60px, rgba(255, 255, 255, 0.04) 60px 61px, transparent 61px 80px);
  pointer-events: none;
}

.discipline-hero__silhouette {
  position: absolute;
  bottom: 18%;
  right: -20px;
  width: 280px;
  height: 280px;
  opacity: 0.18;
  pointer-events: none;
  z-index: -1;
}
@media (min-width: 768px) {
  .discipline-hero__silhouette {
    width: 360px;
    height: 360px;
    bottom: 14%;
  }
}

.discipline-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(26, 26, 26, 0.7) 70%, var(--bg-page) 100%);
}

.discipline-hero__content {
  position: relative;
  z-index: 1;
  min-height: 540px;
  padding: 32px 20px 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .discipline-hero__content {
    min-height: 620px;
    padding: 40px 32px;
  }
}
@media (min-width: 1024px) {
  .discipline-hero__content {
    min-height: 700px;
  }
}

.discipline-hero__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.discipline-hero__eyebrow {
  font-size: 11px;
  color: #F1C26B;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
}

.discipline-hero__dot {
  width: 6px;
  height: 6px;
  background: #C9483B;
  border-radius: 50%;
  animation: discipline-hero-pulse 2s infinite;
}

@keyframes discipline-hero-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
.discipline-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: color-mix(in srgb, var(--sport-type, var(--discipline)) 20%, transparent);
  border: 1px solid var(--sport-type, var(--discipline));
  color: var(--sport-type, var(--discipline));
  padding: 6px 12px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.discipline-hero__badge svg {
  width: 14px;
  height: 14px;
}
.discipline-hero__badge .sport-icon-img {
  width: 14px;
  height: 14px;
  object-fit: contain;
  display: inline-block;
}
.page-discipline--sport-bike .discipline-hero__badge {
  --sport-type: var(--sport-bike-color);
}
.page-discipline--sport-para .discipline-hero__badge {
  --sport-type: var(--sport-para-color);
}
.page-discipline--sport-multi .discipline-hero__badge {
  --sport-type: var(--sport-multi-color);
}
.page-discipline--sport-fun .discipline-hero__badge {
  --sport-type: var(--sport-fun-color);
}
.page-discipline--sport-trail .discipline-hero__badge {
  --sport-type: var(--sport-trail-color);
}

.discipline-hero__bottom {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.discipline-hero__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 56px;
  line-height: 0.95;
  color: #F1C26B;
  font-weight: 400;
  margin-bottom: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .discipline-hero__title {
    font-size: 80px;
  }
}
@media (min-width: 1024px) {
  .discipline-hero__title {
    font-size: 96px;
  }
}

.discipline-hero__pitch {
  font-size: 17px;
  color: #FAF2E3;
  line-height: 1.4;
  max-width: 92%;
  font-weight: 500;
}
.discipline-hero__pitch strong {
  color: #F1C26B;
  font-weight: 700;
}

.discipline-hero__cta {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.discipline-hero__btn {
  background: #C9483B;
  color: #FAF2E3;
  padding: 16px 20px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-shadow: 0 8px 24px rgba(201, 72, 59, 0.3);
  transition: background 150ms ease, transform 150ms ease, box-shadow 150ms ease;
  border: none;
  cursor: pointer;
}
.discipline-hero__btn:hover {
  background: #E89A3A;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(232, 154, 58, 0.35);
}
.discipline-hero__btn svg {
  width: 18px;
  height: 18px;
}

.discipline-hero__btn-meta {
  font-size: 15px;
  color: color-mix(in srgb, #FAF2E3 80%, transparent);
  text-align: center;
}
.discipline-hero__btn-meta strong {
  color: #F1C26B;
  font-weight: 700;
  font-size: 24px;
}
@media (min-width: 768px) {
  .discipline-hero__btn-meta {
    font-size: 17px;
  }
  .discipline-hero__btn-meta strong {
    font-size: 28px;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.discipline-split {
  padding: 32px 20px;
}
@media (min-width: 768px) {
  .discipline-split {
    padding: 40px 32px;
  }
}
.discipline-split__eyebrow {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 8px;
}
.discipline-split__title {
  display: block;
  width: 100%;
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  color: var(--titre-signature);
  margin: 0 0 20px;
  line-height: 1.05;
  font-weight: 400;
  text-align: center !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .discipline-split__title {
    font-size: 36px;
  }
}
.discipline-split__grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (min-width: 1024px) {
  .discipline-split__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: start;
  }
}

.discipline-map {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  overflow: hidden;
}

.discipline-map__preview {
  height: 200px;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  display: block;
}

.discipline-map__bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 75% 20%, rgba(241, 194, 107, 0.2), transparent 35%), radial-gradient(circle at 25% 75%, color-mix(in srgb, var(--discipline) 25%, transparent), transparent 45%), linear-gradient(135deg, rgba(91, 31, 20, 0.5), rgba(232, 154, 58, 0.2)), repeating-linear-gradient(60deg, rgba(241, 194, 107, 0.04) 0 1px, transparent 1px 14px), #5B1F14;
}

.discipline-map__route {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.discipline-map__route svg {
  width: 100%;
  height: 100%;
}
.discipline-map__route path {
  fill: none;
  stroke: var(--discipline);
  stroke-width: 3;
  stroke-dasharray: 6 4;
  filter: drop-shadow(0 0 6px color-mix(in srgb, var(--discipline) 60%, transparent));
}

.discipline-map__pin {
  position: absolute;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  transform: translate(-50%, -100%);
}
.discipline-map__pin--start {
  top: 30%;
  left: 78%;
}
.discipline-map__pin--end {
  top: 75%;
  left: 22%;
}

.discipline-map__pin-marker {
  width: 32px;
  height: 32px;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.4);
  font-size: 13px;
  font-weight: 700;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
}
.discipline-map__pin-marker span {
  transform: rotate(45deg);
}
.discipline-map__pin--start .discipline-map__pin-marker {
  background: var(--discipline);
}
.discipline-map__pin--end .discipline-map__pin-marker {
  background: #C9483B;
}

.discipline-map__pin-label {
  margin-top: 4px;
  background: rgba(26, 26, 26, 0.85);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  color: #FAF2E3;
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 6px;
  white-space: nowrap;
  font-weight: 500;
}

.discipline-map__overlay-cta {
  position: absolute;
  bottom: 12px;
  right: 12px;
  z-index: 3;
  background: rgba(26, 26, 26, 0.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 11px;
  color: #F1C26B;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-weight: 500;
}
.discipline-map__overlay-cta svg {
  width: 12px;
  height: 12px;
}

.discipline-map__link {
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--text-main);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  border-top: 1px solid var(--border-subtle);
  transition: background 150ms ease;
}
.discipline-map__link:hover {
  background: color-mix(in srgb, var(--text-main) 5%, transparent);
}
.discipline-map__link-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.discipline-map__link-left svg {
  width: 16px;
  height: 16px;
  color: #E89A3A;
}
.discipline-map__link-arrow {
  width: 14px;
  height: 14px;
  color: var(--text-muted);
}

.discipline-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
@media (min-width: 768px) {
  .discipline-stats {
    gap: 12px;
  }
}

.discipline-stat {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 12px;
}
.discipline-stat--highlight {
  background: linear-gradient(135deg, rgba(232, 154, 58, 0.15), rgba(201, 72, 59, 0.1));
  border-color: rgba(241, 194, 107, 0.3);
}
.discipline-stat__icon {
  width: 28px;
  height: 28px;
  color: #E89A3A;
  margin-bottom: 8px;
}
.discipline-stat__icon svg {
  width: 100%;
  height: 100%;
  stroke-width: 2;
}
.discipline-stat--highlight .discipline-stat__icon {
  color: #F1C26B;
}
.discipline-stat__label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--text-muted);
  margin-bottom: 4px;
  font-weight: 500;
}
.discipline-stat__value {
  font-size: 17px;
  color: var(--text-main);
  font-weight: 700;
  line-height: 1.2;
}
.discipline-stat--highlight .discipline-stat__value {
  color: #F1C26B;
}
.discipline-stat__sub {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 2px;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.discipline-timeline {
  display: flex;
  flex-direction: column;
  position: relative;
}

.discipline-timeline__step {
  display: flex;
  gap: 16px;
  position: relative;
  padding-bottom: 20px;
}
.discipline-timeline__step:last-child {
  padding-bottom: 0;
}
.discipline-timeline__step::before {
  content: "";
  position: absolute;
  left: 17px;
  top: 36px;
  bottom: 0;
  width: 2px;
  background: var(--border-subtle);
}
.discipline-timeline__step:last-child::before {
  display: none;
}

.discipline-timeline__marker {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--bg-surface);
  border: 2px solid #E89A3A;
  color: #E89A3A;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 13px;
  z-index: 1;
  position: relative;
}

.discipline-timeline__content {
  flex: 1;
  padding-top: 4px;
}

.discipline-timeline__time {
  font-size: 20px;
  color: #F1C26B;
  letter-spacing: 0.02em;
  font-weight: 700;
  margin-bottom: 4px;
  line-height: 1.1;
}

.discipline-timeline__title {
  font-size: 17px;
  color: var(--text-main);
  font-weight: 600;
  margin-bottom: 4px;
}

.discipline-timeline__desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.discipline-conditions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media (min-width: 768px) {
  .discipline-conditions {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }
}

.discipline-condition {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 16px;
  text-align: left;
}
.discipline-condition__icon {
  width: 32px;
  height: 32px;
  color: #F1C26B;
  margin-bottom: 12px;
}
.discipline-condition__icon svg {
  width: 100%;
  height: 100%;
  stroke-width: 1.8;
}
.discipline-condition__title {
  font-size: 13px;
  color: var(--text-main);
  font-weight: 500;
  margin-bottom: 4px;
}
.discipline-condition__desc {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.5;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.discipline-rewards {
  background: linear-gradient(135deg, rgba(91, 31, 20, 0.7), rgba(232, 154, 58, 0.4)), #5B1F14;
  border-radius: 14px;
  padding: 24px 20px;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .discipline-rewards {
    padding: 32px 24px;
  }
}
.discipline-rewards__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 24px;
  color: #F1C26B;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
}
@media (min-width: 768px) {
  .discipline-rewards__title {
    font-size: 28px;
  }
}
.discipline-rewards__pitch {
  font-size: 13px;
  color: color-mix(in srgb, #FAF2E3 95%, transparent);
  margin-bottom: 16px;
  line-height: 1.5;
}
.discipline-rewards__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.discipline-reward {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(26, 26, 26, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  padding: 8px 12px;
  border-radius: 6px;
  border: 1px solid rgba(241, 194, 107, 0.2);
}
.discipline-reward__medal {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #1A1A1A;
}
.discipline-reward__medal--gold {
  background: #F1C26B;
}
.discipline-reward__medal--silver {
  background: #C8C8C8;
}
.discipline-reward__medal--bronze {
  background: #D08C5C;
}
.discipline-reward__text {
  font-size: 13px;
  color: #FAF2E3;
  flex: 1;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.discipline-related {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media (min-width: 768px) {
  .discipline-related {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }
}

.discipline-related-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: var(--text-main);
  transition: transform 150ms ease;
}
.discipline-related-card:hover {
  transform: translateY(-3px);
}
.discipline-related-card__img {
  aspect-ratio: 4/3;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #5B1F14, #C9483B);
}
.discipline-related-card__img--vert {
  background: linear-gradient(135deg, #4A8260, #6BA87F);
}
.discipline-related-card__img--orange {
  background: linear-gradient(135deg, #5B1F14, #E89A3A);
}
.discipline-related-card__img--jaune {
  background: linear-gradient(135deg, #E89A3A, #F1C26B);
}
.discipline-related-card__img--rouge {
  background: linear-gradient(135deg, #5B1F14, #C9483B);
}
.discipline-related-card__img--brun {
  background: linear-gradient(135deg, #5B1F14, #C9483B);
}
.discipline-related-card__img svg {
  width: 32px;
  height: 32px;
  color: rgba(255, 255, 255, 0.4);
}
.discipline-related-card__day {
  position: absolute;
  top: 8px;
  left: 8px;
  background: rgba(26, 26, 26, 0.7);
  color: #F1C26B;
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 6px;
  font-weight: 500;
  letter-spacing: 0.05em;
}
.discipline-related-card__body {
  padding: 12px;
}
.discipline-related-card__name {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-main);
  margin-bottom: 4px;
  line-height: 1.2;
}
.discipline-related-card__meta {
  font-size: 11px;
  color: var(--text-muted);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.discipline-cta-sticky {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateY(110%);
  width: calc(100% - 16px);
  max-width: 720px;
  padding: 12px 16px 20px;
  background: color-mix(in srgb, var(--bg-page) 92%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--border-subtle);
  border-bottom: none;
  border-radius: 14px 14px 0 0;
  z-index: 100;
  transition: transform 250ms ease;
}
.discipline-cta-sticky.is-visible {
  transform: translateX(-50%) translateY(0);
}
@media (min-width: 768px) {
  .discipline-cta-sticky {
    max-width: 960px;
    padding: 12px 24px 16px;
  }
}
.discipline-cta-sticky__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.discipline-cta-sticky__info {
  min-width: 0;
  text-align: right;
}
.discipline-cta-sticky__price {
  font-size: 20px;
  color: #F1C26B;
  font-weight: 700;
  line-height: 1.1;
}
.discipline-cta-sticky__label {
  font-size: 13px;
  color: var(--text-muted);
  margin-top: 2px;
}
.discipline-cta-sticky__btn {
  background: #C9483B;
  color: #FAF2E3;
  padding: 12px 20px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  transition: background 150ms ease;
}
.discipline-cta-sticky__btn:hover {
  background: #E89A3A;
}
.discipline-cta-sticky__btn svg {
  width: 14px;
  height: 14px;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.map-hero {
  padding: 12px 20px 8px;
  text-align: center;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .map-hero {
    padding: 16px 32px 12px;
  }
}
.map-hero__eyebrow {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 2px;
}
.map-hero__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 28px;
  line-height: 1;
  margin: 0 0 2px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .map-hero__title {
    font-size: 36px;
  }
}
.map-hero__subtitle {
  font-size: 11px;
  color: var(--text-muted);
}
@media (min-width: 768px) {
  .map-hero__subtitle {
    font-size: 13px;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.map-level-toggle {
  margin: 0 20px 8px;
  display: flex;
  background: var(--bg-surface);
  border-radius: 10px;
  padding: 4px;
  border: 1px solid var(--border-subtle);
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .map-level-toggle {
    margin: 0 auto 12px;
    max-width: 480px;
  }
}
.map-level-toggle__btn {
  flex: 1;
  padding: 12px;
  background: transparent;
  border: none;
  color: var(--text-muted);
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-size: 13px;
  font-weight: 500;
  border-radius: 6px;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.map-level-toggle__btn svg {
  width: 14px;
  height: 14px;
}
.map-level-toggle__btn.is-active {
  background: #F1C26B;
  color: #1A1A1A;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(241, 194, 107, 0.2);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.map-filter-chips {
  padding: 0 20px 8px;
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  flex-shrink: 0;
}
.map-filter-chips::-webkit-scrollbar {
  display: none;
}
@media (min-width: 768px) {
  .map-filter-chips {
    padding: 0 32px 12px;
    flex-wrap: wrap;
    overflow-x: visible;
    justify-content: center;
  }
}

.map-filter-chip {
  flex-shrink: 0;
  padding: 7px 12px;
  background: color-mix(in srgb, var(--text-main) 8%, transparent);
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  color: var(--text-main);
  font-size: 11px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
  white-space: nowrap;
}
.map-filter-chip svg {
  width: 11px;
  height: 11px;
}
.map-filter-chip.is-active {
  background: #F1C26B;
  color: #1A1A1A;
  border-color: #F1C26B;
}
.map-filter-chip:not(.is-active):hover {
  border-color: var(--text-muted);
}

.map-chip-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.map-chip-dot--rouge {
  background: #C9483B;
}
.map-chip-dot--orange {
  background: #E89A3A;
}
.map-chip-dot--bleu {
  background: #4A90A8;
}
.map-chip-dot--vert {
  background: #6BA87F;
}
.map-chip-dot--jaune {
  background: #F1C26B;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.map-level1 {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(241, 194, 107, 0.18), transparent 50%), radial-gradient(circle at 70% 80%, rgba(107, 168, 127, 0.22), transparent 55%), linear-gradient(135deg, rgba(91, 31, 20, 0.4), rgba(232, 154, 58, 0.15)), #5B1F14;
}
.map-level1[hidden] {
  display: none;
}

.map-village-zone {
  position: absolute;
  background: rgba(250, 242, 227, 0.05);
  border: 1px dashed rgba(241, 194, 107, 0.3);
  border-radius: 14px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: 6px 8px;
}
.map-village-zone__label {
  font-size: 8px;
  color: #F1C26B;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: rgba(26, 26, 26, 0.7);
  padding: 2px 5px;
  border-radius: 6px;
  font-weight: 500;
}

.map-village-paths {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.map-village-paths svg {
  width: 100%;
  height: 100%;
}
.map-village-paths path {
  fill: none;
  stroke: rgba(241, 194, 107, 0.35);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-dasharray: 2 5;
}

.map-illustrated-pin {
  position: absolute;
  transform: translate(-50%, -100%);
  z-index: 5;
  cursor: pointer;
  transition: transform 150ms ease;
  background: none;
  border: none;
  padding: 0;
}
.map-illustrated-pin:hover {
  transform: translate(-50%, -100%) scale(1.1);
}
.map-illustrated-pin__marker {
  width: 36px;
  height: 36px;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
  border: 2px solid #FAF2E3;
}
.map-illustrated-pin__marker svg {
  transform: rotate(45deg);
  width: 16px;
  height: 16px;
}
.map-illustrated-pin__label {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 4px;
  background: rgba(26, 26, 26, 0.85);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  color: #FAF2E3;
  font-size: 9px;
  padding: 2px 6px;
  border-radius: 6px;
  white-space: nowrap;
  font-weight: 500;
}

.pin-rouge {
  background: #C9483B;
}

.pin-orange {
  background: #E89A3A;
}

.pin-bleu {
  background: #4A90A8;
}

.pin-vert {
  background: #6BA87F;
}

.pin-jaune {
  background: #F1C26B;
  color: #1A1A1A !important;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.map-level2 {
  position: absolute;
  inset: 0;
}
.map-level2[hidden] {
  display: none;
}

#leaflet-map {
  width: 100%;
  height: 100%;
}

.leaflet-container {
  background: var(--bg-surface);
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
}

.leaflet-control-attribution {
  background: rgba(26, 26, 26, 0.7) !important;
  color: var(--text-muted) !important;
  font-size: 9px !important;
  padding: 2px 6px !important;
}
.leaflet-control-attribution a {
  color: #E89A3A !important;
}

.leaflet-control-zoom a {
  background: var(--bg-surface) !important;
  color: var(--text-main) !important;
  border: 1px solid var(--border-subtle) !important;
}
.leaflet-control-zoom a:hover {
  background: color-mix(in srgb, var(--text-main) 8%, transparent) !important;
}

.map-custom-marker {
  width: 32px;
  height: 32px;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.5);
  border: 2px solid #FAF2E3;
}
.map-custom-marker svg {
  transform: rotate(45deg);
  width: 14px;
  height: 14px;
  color: #FAF2E3;
}
.map-custom-marker.pin-jaune svg {
  color: #1A1A1A;
}

.leaflet-div-icon {
  background: transparent !important;
  border: none !important;
}

.leaflet-tooltip.plouf-tooltip {
  background: rgba(26, 26, 26, 0.92);
  color: #F1C26B;
  border: 1px solid rgba(241, 194, 107, 0.3);
  border-radius: 10px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  white-space: normal;
  padding: 0;
  overflow: hidden;
}
.leaflet-tooltip.plouf-tooltip::before {
  border-top-color: rgba(26, 26, 26, 0.92);
}
.leaflet-tooltip.plouf-tooltip.leaflet-tooltip-top::before {
  border-top-color: rgba(26, 26, 26, 0.92);
}
.leaflet-tooltip.plouf-tooltip.leaflet-tooltip-bottom::before {
  border-bottom-color: rgba(26, 26, 26, 0.92);
}
.leaflet-tooltip.plouf-tooltip.leaflet-tooltip-left::before {
  border-left-color: rgba(26, 26, 26, 0.92);
}
.leaflet-tooltip.plouf-tooltip.leaflet-tooltip-right::before {
  border-right-color: rgba(26, 26, 26, 0.92);
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__inner {
  display: flex;
  flex-direction: column;
  width: 220px;
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__media {
  width: 100%;
  aspect-ratio: 16/10;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__media--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: linear-gradient(135deg, rgba(91, 31, 20, 0.6), rgba(0, 0, 0, 0.3));
  background-blend-mode: overlay;
  color: rgba(250, 242, 227, 0.6);
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__media--placeholder svg {
  width: 48px;
  height: 48px;
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__media--placeholder.pin-jaune {
  color: rgba(26, 26, 26, 0.5);
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__footer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__icon-pill {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__icon-pill svg {
  width: 14px;
  height: 14px;
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__icon-pill.pin-jaune {
  color: #1A1A1A;
}
.leaflet-tooltip.plouf-tooltip .plouf-tooltip__title {
  font-size: 13px;
  font-weight: 600;
  color: #F1C26B;
  line-height: 1.2;
}

.leaflet-popup-content-wrapper {
  background: var(--bg-surface);
  color: var(--text-main);
  border-radius: 10px;
  border: 1px solid var(--border-subtle);
  padding: 0;
}

.leaflet-popup-content {
  margin: 12px 16px;
  font-size: 13px;
}
.leaflet-popup-content strong {
  color: var(--titre-signature);
  display: block;
  font-size: 15px;
  margin-bottom: 2px;
}

.leaflet-popup-tip {
  background: var(--bg-surface) !important;
}

.leaflet-popup-close-button {
  color: var(--text-muted) !important;
}

.map-action-btns {
  position: absolute;
  top: 12px;
  right: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 100;
}

.map-action-btn {
  width: 38px;
  height: 38px;
  background: rgba(26, 26, 26, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}
.map-action-btn:hover {
  background: color-mix(in srgb, #FAF2E3 10%, transparent);
  border-color: #E89A3A;
  color: #E89A3A;
}
.map-action-btn svg {
  width: 16px;
  height: 16px;
}

.map-legend {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: rgba(26, 26, 26, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid var(--border-subtle);
  z-index: 100;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 10px;
}
.map-legend__row {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #FAF2E3;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.map-bs-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 250ms ease;
  z-index: 1500;
}
.map-bs-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.map-bs {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateY(100%);
  width: 100%;
  max-width: 720px;
  background: var(--bg-surface);
  border-top-left-radius: 18px;
  border-top-right-radius: 18px;
  border-top: 1px solid var(--border-subtle);
  border-left: 1px solid var(--border-subtle);
  border-right: 1px solid var(--border-subtle);
  z-index: 2000;
  transition: transform 250ms ease;
  box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.5);
}
.map-bs.is-open {
  transform: translateX(-50%) translateY(0);
}
.map-bs__handle {
  width: 40px;
  height: 4px;
  background: var(--text-muted);
  border-radius: 2px;
  margin: 12px auto 8px;
}
.map-bs__media {
  width: 100%;
  aspect-ratio: 16/9;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin-bottom: 12px;
}
.map-bs__media[hidden] {
  display: none;
}
.map-bs__media--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: linear-gradient(135deg, rgba(91, 31, 20, 0.6), rgba(0, 0, 0, 0.3));
  background-blend-mode: overlay;
  color: rgba(250, 242, 227, 0.5);
}
.map-bs__media--placeholder svg {
  width: 64px;
  height: 64px;
}
.map-bs__media--placeholder.pin-jaune {
  color: rgba(26, 26, 26, 0.5);
}
.map-bs__content {
  padding: 8px 20px 24px;
}
.map-bs__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.map-bs__icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
}
.map-bs__icon svg {
  width: 22px;
  height: 22px;
}
.map-bs__icon--rouge {
  background: #C9483B;
}
.map-bs__icon--orange {
  background: #E89A3A;
}
.map-bs__icon--bleu {
  background: #4A90A8;
}
.map-bs__icon--vert {
  background: #6BA87F;
}
.map-bs__icon--jaune {
  background: #F1C26B;
  color: #1A1A1A;
}
.map-bs__info {
  flex: 1;
  min-width: 0;
}
.map-bs__eyebrow {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #E89A3A;
  font-weight: 500;
  margin-bottom: 2px;
}
.map-bs__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 24px;
  line-height: 1;
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
}
.map-bs__meta {
  font-size: 11px;
  color: var(--text-muted);
}
.map-bs__close {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  background: color-mix(in srgb, var(--text-main) 8%, transparent);
  border: 1px solid var(--border-subtle);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text-main);
  transition: border-color 150ms ease, color 150ms ease;
}
.map-bs__close:hover {
  border-color: #E89A3A;
  color: #E89A3A;
}
.map-bs__close svg {
  width: 14px;
  height: 14px;
}
.map-bs__description {
  color: color-mix(in srgb, var(--text-main) 90%, transparent);
  font-size: 13px;
  line-height: 1.5;
  margin-bottom: 16px;
}
.map-bs__actions {
  display: flex;
  gap: 8px;
}
.map-bs__btn {
  flex: 1;
  padding: 12px;
  border-radius: 10px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-size: 13px;
  font-weight: 500;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-decoration: none;
  transition: background 150ms ease, border-color 150ms ease;
}
.map-bs__btn svg {
  width: 14px;
  height: 14px;
}
.map-bs__btn--primary {
  background: #C9483B;
  color: #FAF2E3;
}
.map-bs__btn--primary:hover {
  background: #E89A3A;
}
.map-bs__btn--secondary {
  background: color-mix(in srgb, var(--text-main) 8%, transparent);
  color: var(--text-main);
  border: 1px solid var(--border-subtle);
}
.map-bs__btn--secondary:hover {
  border-color: #E89A3A;
}
.map-bs__btn[hidden] {
  display: none !important;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.map-below-info {
  padding: 20px;
  border-top: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .map-below-info {
    padding: 24px 32px;
    max-width: 960px;
    margin-inline: auto;
  }
}
.map-below-info__title {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 12px;
}

.map-quick-actions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
@media (min-width: 768px) {
  .map-quick-actions {
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
  }
}

.map-quick-action {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 12px;
  color: var(--text-main);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 12px;
  transition: border-color 150ms ease, transform 150ms ease;
}
.map-quick-action:hover {
  border-color: #E89A3A;
  transform: translateY(-1px);
}
.map-quick-action__icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
}
.map-quick-action__icon svg {
  width: 16px;
  height: 16px;
}
.map-quick-action__icon--bleu {
  background: #4A90A8;
}
.map-quick-action__icon--orange {
  background: #E89A3A;
}
.map-quick-action__icon--vert {
  background: #6BA87F;
}
.map-quick-action__icon--jaune {
  background: #F1C26B;
  color: #1A1A1A;
}
.map-quick-action__text {
  flex: 1;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.2;
}
.map-quick-action__text small {
  display: block;
  font-size: 10px;
  color: var(--text-muted);
  margin-top: 1px;
  font-weight: 400;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.me-hero {
  padding: 24px 20px 32px;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .me-hero {
    padding: 32px 32px 40px;
  }
}
.me-hero::before {
  content: "";
  position: absolute;
  top: -60px;
  right: -90px;
  width: 280px;
  height: 280px;
  background: radial-gradient(circle, rgba(241, 194, 107, 0.18), transparent 65%);
  border-radius: 50%;
  pointer-events: none;
}
.me-hero::after {
  content: "";
  position: absolute;
  bottom: -100px;
  left: -60px;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, rgba(232, 154, 58, 0.12), transparent 65%);
  border-radius: 50%;
  pointer-events: none;
}
.me-hero__content {
  position: relative;
  z-index: 1;
}
.me-hero__eyebrow {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.me-hero__dot {
  width: 6px;
  height: 6px;
  background: #C9483B;
  border-radius: 50%;
  animation: me-hero-pulse 2s infinite;
}
.me-hero__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 44px;
  line-height: 0.95;
  color: var(--titre-signature);
  font-weight: 400;
  margin: 0 0 16px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .me-hero__title {
    font-size: 64px;
  }
}
@media (min-width: 1024px) {
  .me-hero__title {
    font-size: 76px;
  }
}
.me-hero__pitch {
  font-size: 15px;
  color: var(--text-main);
  opacity: 0.9;
  line-height: 1.5;
  max-width: 92%;
  margin: 0 0 24px;
}
.me-hero__pitch strong {
  color: var(--titre-signature);
  font-weight: 500;
}
@media (min-width: 768px) {
  .me-hero__pitch {
    font-size: 17px;
    max-width: 540px;
  }
}
.me-hero__bientot {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 9999px;
  border: 1px solid var(--border-subtle);
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 500;
}
.me-hero__bientot svg {
  width: 14px;
  height: 14px;
  opacity: 0.7;
  flex-shrink: 0;
}
.me-hero__ctas {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media (min-width: 768px) {
  .me-hero__ctas {
    flex-direction: row;
    gap: 12px;
  }
}
.me-hero__btn {
  padding: 16px 20px;
  border-radius: 10px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: none;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}
.me-hero__btn svg {
  width: 16px;
  height: 16px;
}
.me-hero__btn--primary {
  background: #C9483B;
  color: #FAF2E3;
  font-size: 15px;
  box-shadow: 0 8px 22px rgba(201, 72, 59, 0.3);
}
.me-hero__btn--primary:hover {
  background: #E89A3A;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(232, 154, 58, 0.35);
}
.me-hero__btn--secondary {
  background: transparent;
  color: var(--text-main);
  font-size: 13px;
  font-weight: 500;
  border: 1px solid var(--border-subtle);
  padding: 12px 20px;
}
.me-hero__btn--secondary:hover {
  border-color: var(--titre-signature);
  color: var(--titre-signature);
}
.me-hero__btn--secondary svg {
  width: 14px;
  height: 14px;
}

@keyframes me-hero-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.me-benefits {
  padding: 32px 20px 24px;
  border-top: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .me-benefits {
    padding: 40px 32px 32px;
  }
}
.me-benefits__eyebrow {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 8px;
}
.me-benefits__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 32px;
  color: var(--titre-signature);
  margin-bottom: 20px;
  line-height: 1.05;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .me-benefits__title {
    font-size: 40px;
  }
}
.me-benefits__grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (min-width: 768px) {
  .me-benefits__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

.me-benefit {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 16px 20px;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  transition: border-color 150ms ease, transform 150ms ease;
}
.me-benefit:hover {
  border-color: #E89A3A;
  transform: translateY(-1px);
}
.me-benefit__icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
}
.me-benefit__icon svg {
  width: 22px;
  height: 22px;
  stroke-width: 2;
}
.me-benefit__icon--agenda {
  background: linear-gradient(135deg, #E89A3A, #C9483B);
}
.me-benefit__icon--info {
  background: linear-gradient(135deg, #4A8260, #6BA87F);
}
.me-benefit__icon--qr {
  background: linear-gradient(135deg, #5B1F14, #E89A3A);
}
.me-benefit__icon--festival {
  background: linear-gradient(135deg, #C9483B, #F1C26B);
  color: #1A1A1A;
}
.me-benefit__content {
  flex: 1;
  min-width: 0;
}
.me-benefit__title {
  font-size: 15px;
  color: var(--text-main);
  font-weight: 700;
  margin: 0 0 4px;
}
.me-benefit__desc {
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.5;
  margin: 0;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.me-mockup {
  padding: 32px 20px;
  border-top: 1px solid var(--border-subtle);
  text-align: center;
  overflow: hidden;
}
@media (min-width: 768px) {
  .me-mockup {
    padding: 40px 32px;
  }
}
.me-mockup__eyebrow {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 8px;
}
.me-mockup__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 32px;
  color: var(--titre-signature);
  line-height: 1.05;
  margin-bottom: 8px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .me-mockup__title {
    font-size: 40px;
  }
}
.me-mockup__intro {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 24px;
  max-width: 90%;
  margin-inline: auto;
}
.me-mockup__phone-frame {
  width: 280px;
  height: 540px;
  margin: 0 auto;
  background: #0A0A0A;
  border-radius: 36px;
  padding: 10px;
  box-shadow: 0 0 0 2px #1A1A1A, 0 30px 60px rgba(0, 0, 0, 0.5), 0 10px 25px rgba(232, 154, 58, 0.15);
  position: relative;
}
.me-mockup__phone-frame::before {
  content: "";
  position: absolute;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 5px;
  background: #1A1A1A;
  border-radius: 4px;
  z-index: 10;
}
.me-mockup__screen {
  width: 100%;
  height: 100%;
  background: #1A1A1A;
  border-radius: 28px;
  overflow: hidden;
  position: relative;
}
.me-mockup__slides {
  height: 100%;
  position: relative;
}
.me-mockup__slide {
  position: absolute;
  inset: 0;
  padding: 30px 14px 14px;
  opacity: 0;
  transform: translateX(20px);
  transition: opacity 0.5s ease, transform 0.5s ease;
  overflow: hidden;
}
.me-mockup__slide.is-active {
  opacity: 1;
  transform: translateX(0);
}
.me-mockup__dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 20px;
}
.me-mockup__dot {
  width: 7px;
  height: 7px;
  background: var(--border-strong);
  border-radius: 50%;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 250ms ease, width 250ms ease, border-radius 250ms ease;
}
.me-mockup__dot.is-active {
  background: #F1C26B;
  width: 22px;
  border-radius: 4px;
}
.me-mockup__caption {
  margin-top: 16px;
  font-size: 13px;
  color: var(--text-main);
  min-height: 20px;
  transition: opacity 0.3s;
}
.me-mockup__caption strong {
  color: var(--titre-signature);
  font-weight: 500;
}

.mock-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 4px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  margin-bottom: 12px;
}

.mock-logo {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: #F1C26B;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.mock-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: linear-gradient(135deg, #E89A3A, #C9483B);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
  font-size: 9px;
  font-weight: 700;
}

.mock-eyebrow {
  font-size: 8px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 4px;
}

.mock-title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: #F1C26B;
  font-size: 17px;
  line-height: 1;
  margin-bottom: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
}

.mock-event {
  background: #2A2A2A;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  padding: 8px 10px;
  margin-bottom: 7px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.mock-event--next {
  border: 1.5px solid #F1C26B;
  background: linear-gradient(135deg, rgba(241, 194, 107, 0.1), rgba(232, 154, 58, 0.04));
}
.mock-event__time {
  flex-shrink: 0;
  font-size: 9px;
  color: #E89A3A;
  font-weight: 700;
  width: 38px;
  line-height: 1.2;
}
.mock-event--next .mock-event__time {
  color: #F1C26B;
}
.mock-event__info {
  flex: 1;
  min-width: 0;
}
.mock-event__name {
  font-size: 10px;
  color: #FAF2E3;
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 1px;
}
.mock-event__meta {
  font-size: 8px;
  color: rgba(250, 242, 227, 0.55);
}
.mock-event__badge {
  flex-shrink: 0;
  font-size: 7px;
  padding: 2px 5px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
}
.mock-event__badge--athlete {
  background: rgba(107, 168, 127, 0.2);
  color: #6BA87F;
}
.mock-event__badge--benevole {
  background: rgba(232, 154, 58, 0.2);
  color: #E89A3A;
}
.mock-event__badge--concert {
  background: rgba(122, 107, 168, 0.2);
  color: #7A6BA8;
}

.mock-info-card {
  background: #2A2A2A;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 8px;
}
.mock-info-card__label {
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(250, 242, 227, 0.55);
  margin-bottom: 3px;
}
.mock-info-card__value {
  font-size: 11px;
  color: #FAF2E3;
  font-weight: 500;
}
.mock-info-card__value--big {
  font-size: 14px;
  color: #F1C26B;
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
}
.mock-info-card__value--small {
  font-size: 10px;
}
.mock-info-card__sub {
  font-size: 9px;
  color: rgba(250, 242, 227, 0.55);
  margin-top: 2px;
}

.mock-roles {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.mock-role {
  font-size: 8px;
  padding: 2px 6px;
  border-radius: 6px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.mock-role--athlete {
  background: rgba(107, 168, 127, 0.2);
  color: #6BA87F;
}
.mock-role--benevole {
  background: rgba(232, 154, 58, 0.2);
  color: #E89A3A;
}
.mock-role--staff {
  background: rgba(122, 107, 168, 0.2);
  color: #7A6BA8;
}

.mock-qr {
  text-align: center;
  margin-top: 8px;
}
.mock-qr__square {
  width: 110px;
  height: 110px;
  margin: 0 auto 10px;
  background: #FAF2E3;
  border-radius: 8px;
  padding: 8px;
  position: relative;
}
.mock-qr__square::before {
  content: "";
  position: absolute;
  inset: 8px;
  background: conic-gradient(from 0deg at 12% 12%, #1A1A1A 0 25%, transparent 25% 100%), conic-gradient(from 0deg at 88% 12%, #1A1A1A 0 25%, transparent 25% 100%), conic-gradient(from 0deg at 12% 88%, #1A1A1A 0 25%, transparent 25% 100%), repeating-linear-gradient(0deg, #1A1A1A 0 4px, transparent 4px 8px), repeating-linear-gradient(90deg, #1A1A1A 0 4px, transparent 4px 8px);
  background-blend-mode: difference, difference, difference, multiply, multiply;
  background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
}
.mock-qr__label {
  font-size: 9px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 3px;
}
.mock-qr__credit {
  font-size: 14px;
  color: #F1C26B;
  font-weight: 700;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
}
.mock-qr__meta {
  font-size: 8px;
  color: rgba(250, 242, 227, 0.55);
  margin-top: 3px;
}

.mock-fest {
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 8px;
  position: relative;
  overflow: hidden;
}
.mock-fest::before {
  content: "";
  position: absolute;
  top: -10px;
  right: -10px;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, rgba(241, 194, 107, 0.4), transparent 70%);
  border-radius: 50%;
}
.mock-fest--orange {
  background: linear-gradient(135deg, rgba(232, 154, 58, 0.3), rgba(241, 194, 107, 0.1)), #5B1F14;
}
.mock-fest--vert {
  background: linear-gradient(135deg, rgba(107, 168, 127, 0.3), rgba(74, 130, 96, 0.1)), #4A8260;
}
.mock-fest--violet {
  background: linear-gradient(135deg, rgba(122, 107, 168, 0.3), rgba(78, 69, 114, 0.1)), #4E4572;
}
.mock-fest__eyebrow {
  font-size: 8px;
  color: #F1C26B;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 3px;
  font-weight: 500;
  position: relative;
  z-index: 1;
}
.mock-fest--vert .mock-fest__eyebrow {
  color: #B8D9C2;
}
.mock-fest--violet .mock-fest__eyebrow {
  color: #C5BDD9;
}
.mock-fest__title {
  font-size: 11px;
  color: #FAF2E3;
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 3px;
  position: relative;
  z-index: 1;
}
.mock-fest__meta {
  font-size: 8px;
  color: #FAF2E3;
  opacity: 0.8;
  position: relative;
  z-index: 1;
}
.mock-fest__cta {
  margin-top: 8px;
  background: rgba(26, 26, 26, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  padding: 5px 8px;
  border-radius: 5px;
  font-size: 8px;
  color: #F1C26B;
  text-align: center;
  font-weight: 500;
  border: 1px solid rgba(241, 194, 107, 0.3);
  position: relative;
  z-index: 1;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.me-benevole {
  padding: 32px 20px;
  border-top: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .me-benevole {
    padding: 40px 32px;
  }
}
.me-benevole__head-eyebrow {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 8px;
}
.me-benevole__head-title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 32px;
  color: var(--titre-signature);
  margin-bottom: 20px;
  line-height: 1.05;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .me-benevole__head-title {
    font-size: 40px;
  }
}

.me-benevole-card {
  background: linear-gradient(135deg, rgba(91, 31, 20, 0.7), rgba(201, 72, 59, 0.5)), #5B1F14;
  border-radius: 18px;
  padding: 32px 24px;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .me-benevole-card {
    padding: 40px 32px;
  }
}
.me-benevole-card::before {
  content: "";
  position: absolute;
  top: -50px;
  right: -50px;
  width: 180px;
  height: 180px;
  background: radial-gradient(circle, rgba(241, 194, 107, 0.3), transparent 70%);
  border-radius: 50%;
}
.me-benevole-card::after {
  content: "";
  position: absolute;
  bottom: -40px;
  left: -40px;
  width: 140px;
  height: 140px;
  background: radial-gradient(circle, rgba(232, 154, 58, 0.2), transparent 70%);
  border-radius: 50%;
}
.me-benevole-card__content {
  position: relative;
  z-index: 1;
}
.me-benevole-card__eyebrow {
  font-size: 11px;
  color: #F1C26B;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 8px;
}
.me-benevole-card__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 30px;
  color: #FAF2E3;
  line-height: 1;
  margin-bottom: 12px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .me-benevole-card__title {
    font-size: 40px;
  }
}
.me-benevole-card__desc {
  font-size: 13px;
  color: #FAF2E3;
  opacity: 0.95;
  margin: 0 0 20px;
  line-height: 1.5;
}
.me-benevole-card__desc strong {
  color: #F1C26B;
  font-weight: 600;
}
@media (min-width: 768px) {
  .me-benevole-card__desc {
    font-size: 15px;
    max-width: 540px;
  }
}
.me-benevole-card__perks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}
.me-benevole-card__perk {
  font-size: 11px;
  background: rgba(26, 26, 26, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  color: #F1C26B;
  padding: 5px 10px;
  border-radius: 9999px;
  border: 1px solid rgba(241, 194, 107, 0.3);
}
.me-benevole-card__btn {
  background: #F1C26B;
  color: #1A1A1A;
  padding: 16px 24px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background 150ms ease, transform 150ms ease;
}
.me-benevole-card__btn svg {
  width: 14px;
  height: 14px;
}
.me-benevole-card__btn:hover {
  background: #FAF2E3;
  transform: translateY(-1px);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.me-faq {
  padding: 32px 20px;
  border-top: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .me-faq {
    padding: 40px 32px;
  }
}
.me-faq__eyebrow {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 8px;
}
.me-faq__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 32px;
  color: var(--titre-signature);
  margin-bottom: 20px;
  line-height: 1.05;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .me-faq__title {
    font-size: 40px;
  }
}
.me-faq__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.me-faq__item {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  overflow: hidden;
}
.me-faq__question {
  padding: 16px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  user-select: none;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-main);
  list-style: none;
}
.me-faq__question::-webkit-details-marker {
  display: none;
}
.me-faq__question span:first-child {
  flex: 1;
}
.me-faq__chevron {
  flex-shrink: 0;
  color: #E89A3A;
  transition: transform 0.25s ease;
  display: inline-flex;
}
.me-faq__chevron svg {
  width: 18px;
  height: 18px;
}
.me-faq__item[open] .me-faq__chevron {
  transform: rotate(180deg);
}
.me-faq__answer {
  padding: 0 16px 16px;
}
.me-faq__answer p {
  font-size: 13px;
  color: color-mix(in srgb, var(--text-main) 80%, transparent);
  line-height: 1.7;
  margin: 0;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.artiste-hero {
  position: relative;
  height: 480px;
  overflow: hidden;
  isolation: isolate;
  margin-top: 16px;
  background: linear-gradient(135deg, var(--g1, #5B1F14) 0%, var(--g2, #C9483B) 60%, var(--g3, #1A1A1A) 100%);
}
@media (min-width: 768px) {
  .artiste-hero {
    height: 560px;
  }
}
@media (min-width: 1024px) {
  .artiste-hero {
    height: 640px;
    border-radius: 14px;
    margin: 16px 20px 0;
  }
}
@media (min-width: 1200px) {
  .artiste-hero {
    max-width: 1200px;
    margin: 20px auto 0;
  }
}
.artiste-hero--has-image {
  background-size: cover;
  background-position: center;
}
.artiste-hero__noise {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0.15;
  background-image: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.3) 0px, transparent 2px), radial-gradient(circle at 70% 60%, rgba(255, 255, 255, 0.2) 0px, transparent 3px);
  background-size: 60px 60px, 80px 80px;
  pointer-events: none;
}
.artiste-hero__photo-hint {
  position: absolute;
  top: 48%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: rgba(255, 255, 255, 0.45);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  border: 1px dashed rgba(255, 255, 255, 0.4);
  padding: 8px 12px;
  border-radius: 6px;
  text-align: center;
  line-height: 1.4;
  pointer-events: none;
}
.artiste-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.75) 90%, #1A1A1A 100%);
  pointer-events: none;
}
.artiste-hero__content {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  padding: 0 20px;
  z-index: 2;
  text-align: center;
}
@media (min-width: 768px) {
  .artiste-hero__content {
    padding: 0 32px;
  }
}
@media (min-width: 1200px) {
  .artiste-hero__content {
    max-width: 1200px;
    margin-inline: auto;
  }
}
.artiste-hero__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 9999px;
  color: rgba(241, 194, 107, 0.9);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  margin-bottom: 16px;
  transition: background 150ms ease;
}
.artiste-hero__back:hover {
  background: rgba(0, 0, 0, 0.6);
  color: #F1C26B;
}
.artiste-hero__back svg {
  width: 12px;
  height: 12px;
}
.artiste-hero__style {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  margin-bottom: 12px;
}
.artiste-hero__style--rock {
  background: rgba(232, 154, 58, 0.4);
  color: #F1C26B;
  border: 1px solid rgba(241, 194, 107, 0.5);
}
.artiste-hero__style--reggae {
  background: rgba(93, 202, 165, 0.4);
  color: #9FE1CB;
  border: 1px solid rgba(93, 202, 165, 0.5);
}
.artiste-hero__style--pop {
  background: rgba(212, 83, 126, 0.4);
  color: #F4C0D1;
  border: 1px solid rgba(212, 83, 126, 0.5);
}
.artiste-hero__style--electro {
  background: rgba(127, 119, 221, 0.4);
  color: #CECBF6;
  border: 1px solid rgba(127, 119, 221, 0.5);
}
.artiste-hero__style--folk {
  background: rgba(91, 31, 20, 0.4);
  color: #E8C9A4;
  border: 1px solid rgba(232, 201, 164, 0.5);
}
.artiste-hero__style--hiphop {
  background: rgba(136, 135, 128, 0.4);
  color: #FAF2E3;
  border: 1px solid rgba(250, 242, 227, 0.4);
}
.artiste-hero__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: #F1C26B;
  font-size: 56px;
  line-height: 0.95;
  margin: 0 0 12px;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
}
@media (min-width: 768px) {
  .artiste-hero__title {
    font-size: 80px;
  }
}
@media (min-width: 1024px) {
  .artiste-hero__title {
    font-size: 96px;
  }
}
.artiste-hero__tagline {
  color: rgba(250, 242, 227, 0.92);
  font-size: 13px;
  line-height: 1.5;
  margin: 0 auto;
  max-width: 92%;
}
@media (min-width: 768px) {
  .artiste-hero__tagline {
    font-size: 15px;
    max-width: 540px;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.artiste-concert-bar {
  background: var(--bg-surface);
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
}
.artiste-concert-bar__inner {
  max-width: 1200px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.artiste-concert-bar__item {
  padding: 16px 8px;
  text-align: center;
}
.artiste-concert-bar__item + .artiste-concert-bar__item {
  border-left: 1px solid var(--border-subtle);
}
.artiste-concert-bar__icon {
  width: 18px;
  height: 18px;
  margin: 0 auto 4px;
  color: #E89A3A;
}
.artiste-concert-bar__icon svg {
  width: 100%;
  height: 100%;
  stroke-width: 1.8;
}
.artiste-concert-bar__label {
  color: color-mix(in srgb, var(--titre-signature) 60%, transparent);
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 2px;
  font-weight: 500;
}
.artiste-concert-bar__value {
  color: var(--titre-signature);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.artiste-section {
  padding: 24px 20px;
  border-top: 1px solid var(--border-subtle);
}
@media (min-width: 768px) {
  .artiste-section {
    padding: 32px 32px;
  }
}
.artiste-section--alt {
  background: var(--bg-surface);
}
.artiste-section > * {
  max-width: 1200px;
  margin-inline: auto;
}
.artiste-section__eyebrow {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  line-height: 1.1;
  color: var(--titre-signature);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
  text-align: center;
  margin-bottom: 20px;
}
@media (min-width: 768px) {
  .artiste-section__eyebrow {
    font-size: 36px;
  }
}
.artiste-section__title {
  display: block;
  width: 100%;
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 28px;
  line-height: 1.05;
  margin: 0 0 16px;
  font-weight: 400;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .artiste-section__title {
    font-size: 36px;
  }
}

.artiste-bio {
  color: color-mix(in srgb, var(--text-main) 82%, transparent);
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
}
.artiste-bio p {
  margin: 0 0 12px;
}
.artiste-bio p:last-child {
  margin-bottom: 0;
}
.artiste-bio strong {
  color: var(--titre-signature);
  font-weight: 600;
}
.artiste-bio em {
  font-style: italic;
  color: var(--text-main);
}
@media (min-width: 768px) {
  .artiste-bio {
    font-size: 15px;
    max-width: 680px;
    margin-inline: auto;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.artiste-embeds {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
@media (min-width: 768px) {
  .artiste-embeds {
    gap: 16px;
  }
}
@media (min-width: 1500px) {
  .artiste-embeds {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 720px));
    justify-content: center;
    align-items: start;
  }
}

.artiste-embed-inline {
  width: 100%;
  max-width: 720px;
  margin: 0 auto 20px;
}
.artiste-embed-inline__caption {
  font-size: 13px;
  color: var(--text-main);
  font-weight: 500;
  text-align: center;
  margin: 0 0 8px;
}
.artiste-embed-inline__caption-title {
  color: var(--text-main);
}
.artiste-embed-inline__caption-platform {
  color: var(--text-muted);
  margin-left: 4px;
}
.artiste-embed-inline__player {
  line-height: 0;
}
.artiste-embed-inline__player iframe {
  width: 100%;
  max-width: 100%;
  display: block;
  border: 0;
}
.artiste-embed-inline--youtube .artiste-embed-inline__player {
  aspect-ratio: 16/9;
}
.artiste-embed-inline--youtube .artiste-embed-inline__player iframe {
  width: 100%;
  height: 100%;
}
.artiste-embed-inline--spotify .artiste-embed-inline__player iframe, .artiste-embed-inline--soundcloud .artiste-embed-inline__player iframe {
  height: auto;
}

.artiste-embed {
  background: color-mix(in srgb, var(--text-main) 4%, transparent);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: border-color 150ms ease, transform 150ms ease;
}
.artiste-embed:hover {
  border-color: #E89A3A;
  transform: translateY(-1px);
}
.artiste-embed__head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.artiste-embed__logo {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.artiste-embed__logo svg {
  width: 100%;
  height: 100%;
}
.artiste-embed__logo--spotify {
  color: #1DB954;
}
.artiste-embed__logo--soundcloud {
  color: #FF5500;
}
.artiste-embed__logo--youtube {
  color: #FF0000;
}
.artiste-embed__logo--bandcamp {
  color: #629AA9;
}
.artiste-embed__platform {
  color: color-mix(in srgb, var(--text-main) 85%, transparent);
  font-size: 13px;
  font-weight: 500;
  flex: 1;
}
.artiste-embed__action {
  color: color-mix(in srgb, var(--titre-signature) 60%, transparent);
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.artiste-embed__preview {
  aspect-ratio: 16/9;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.artiste-embed__preview--spotify {
  background: linear-gradient(135deg, #1DB954 0%, #0C6E33 100%);
  aspect-ratio: 5/2;
}
.artiste-embed__preview--soundcloud {
  background: linear-gradient(135deg, #FF5500 0%, #993300 100%);
  aspect-ratio: 5/2;
}
.artiste-embed__preview--youtube {
  background: linear-gradient(135deg, #FF0000 0%, #990000 100%);
}
.artiste-embed__preview--bandcamp {
  background: linear-gradient(135deg, #629AA9 0%, #3A6873 100%);
  aspect-ratio: 5/2;
}
.artiste-embed__play {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.artiste-embed__play svg {
  width: 16px;
  height: 16px;
  color: #FAF2E3;
  margin-left: 2px;
}
.artiste-embed__preview-text {
  position: absolute;
  bottom: 12px;
  left: 16px;
  color: #FAF2E3;
  font-size: 11px;
  font-weight: 600;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.artiste-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  justify-content: center;
  gap: 8px;
  max-width: 900px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .artiste-gallery {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
  }
}
.artiste-gallery__item {
  aspect-ratio: 1;
  border-radius: 10px;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.artiste-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.artiste-gallery__item--placeholder {
  color: rgba(255, 255, 255, 0.35);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-align: center;
  padding: 12px;
}
.artiste-gallery__item--placeholder:nth-child(4n+1) {
  background: linear-gradient(135deg, #F0997B, #993C1D);
}
.artiste-gallery__item--placeholder:nth-child(4n+2) {
  background: linear-gradient(135deg, #5DCAA5, #0F6E56);
}
.artiste-gallery__item--placeholder:nth-child(4n+3) {
  background: linear-gradient(135deg, #7F77DD, #3C3489);
}
.artiste-gallery__item--placeholder:nth-child(4n+4) {
  background: linear-gradient(135deg, #F1C26B, #BA7517);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.artiste-socials {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
@media (min-width: 768px) {
  .artiste-socials {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }
}

.artiste-social {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: color-mix(in srgb, var(--text-main) 4%, transparent);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  cursor: pointer;
  text-decoration: none;
  transition: border-color 150ms ease, transform 150ms ease;
}
.artiste-social:hover {
  border-color: #E89A3A;
  transform: translateY(-1px);
}
.artiste-social__icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.artiste-social__icon svg {
  width: 100%;
  height: 100%;
}
.artiste-social__icon--spotify {
  color: #1DB954;
}
.artiste-social__icon--instagram {
  color: #E1306C;
}
.artiste-social__icon--facebook {
  color: #1877F2;
}
.artiste-social__icon--youtube {
  color: #FF0000;
}
.artiste-social__icon--soundcloud {
  color: #FF5500;
}
.artiste-social__icon--bandcamp {
  color: #629AA9;
}
.artiste-social__icon--twitter {
  color: #1DA1F2;
}
.artiste-social__icon--tiktok {
  color: var(--text-main);
}
.artiste-social__icon--site {
  color: #F1C26B;
}
.artiste-social__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.artiste-social__name {
  color: color-mix(in srgb, var(--text-main) 90%, transparent);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
}
.artiste-social__handle {
  color: var(--text-muted);
  font-size: 11px;
  line-height: 1.2;
}
.artiste-social__arrow {
  flex-shrink: 0;
  color: color-mix(in srgb, var(--titre-signature) 50%, transparent);
  font-size: 15px;
  line-height: 1;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.artiste-others {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media (min-width: 768px) {
  .artiste-others {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}
@media (min-width: 1024px) {
  .artiste-others {
    grid-template-columns: repeat(3, 1fr);
  }
}

.artiste-other {
  display: flex;
  gap: 12px;
  align-items: center;
  background: color-mix(in srgb, var(--text-main) 4%, transparent);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 12px;
  cursor: pointer;
  text-decoration: none;
  transition: border-color 150ms ease, transform 150ms ease;
}
.artiste-other:hover {
  border-color: #E89A3A;
  transform: translateY(-1px);
}
.artiste-other__thumb {
  width: 56px;
  height: 56px;
  border-radius: 6px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #5B1F14, #C9483B);
}
.artiste-other__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.artiste-other__time {
  color: color-mix(in srgb, var(--titre-signature) 70%, transparent);
  font-size: 10px;
  letter-spacing: 0.05em;
  font-weight: 500;
}
.artiste-other__name {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 17px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
}
.artiste-other__style {
  color: var(--text-muted);
  font-size: 11px;
}
.artiste-other__arrow {
  flex-shrink: 0;
  color: color-mix(in srgb, var(--titre-signature) 40%, transparent);
  font-size: 17px;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.artiste-cta-block {
  max-width: 720px;
  margin: 24px auto 32px;
  padding: 24px 20px;
  background: linear-gradient(135deg, #5B1F14 0%, #C9483B 100%);
  border-radius: 14px;
  text-align: center;
}
@media (min-width: 768px) {
  .artiste-cta-block {
    margin: 32px auto 40px;
    padding: 32px 32px;
  }
}
.artiste-cta-block__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: #F1C26B;
  font-size: 28px;
  line-height: 1.05;
  margin: 0 0 4px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
}
@media (min-width: 768px) {
  .artiste-cta-block__title {
    font-size: 36px;
  }
}
.artiste-cta-block__sub {
  color: color-mix(in srgb, #FAF2E3 85%, transparent);
  font-size: 13px;
  line-height: 1.5;
  margin: 0 0 16px;
  max-width: 480px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .artiste-cta-block__sub {
    font-size: 15px;
  }
}
.artiste-cta-block__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 32px;
  background: #F1C26B;
  color: #5B1F14;
  font-size: 15px;
  font-weight: 700;
  border-radius: 9999px;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: transform 150ms ease, box-shadow 150ms ease;
}
.artiste-cta-block__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(241, 194, 107, 0.3);
}
.artiste-cta-block__btn svg {
  width: 16px;
  height: 16px;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.bv-hero {
  padding: 8px 20px 32px;
}
@media (min-width: 768px) {
  .bv-hero {
    padding: 12px 32px 40px;
  }
}
.bv-hero__tagline {
  color: rgba(230, 149, 74, 0.9);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.bv-hero__tagline svg {
  width: 14px;
  height: 14px;
}
.bv-hero__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 46px;
  line-height: 0.95;
  margin: 0 0 16px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .bv-hero__title {
    font-size: 64px;
  }
}
@media (min-width: 1024px) {
  .bv-hero__title {
    font-size: 80px;
  }
}
.bv-hero__lead {
  color: color-mix(in srgb, var(--text-main) 85%, transparent);
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
}
.bv-hero__lead strong {
  color: var(--titre-signature);
  font-weight: 600;
}
@media (min-width: 768px) {
  .bv-hero__lead {
    font-size: 15px;
    max-width: 640px;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.bv-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin: 8px 20px 0;
  border-radius: 14px;
  overflow: hidden;
}
@media (min-width: 768px) {
  .bv-gallery {
    margin: 12px 32px 0;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
}
.bv-gallery__photo {
  aspect-ratio: 1/1;
  position: relative;
  overflow: hidden;
  border-radius: 10px;
}
.bv-gallery__photo--orange-rouge {
  background: linear-gradient(135deg, #E6954A 0%, #C9483B 50%, #5B1F14 100%);
}
.bv-gallery__photo--jaune-orange {
  background: linear-gradient(135deg, #F1C26B 0%, #E89A3A 50%, #BA7517 100%);
}
.bv-gallery__photo--vert {
  background: linear-gradient(135deg, #6BA87F 0%, #4A8260 50%, #2D5040 100%);
}
.bv-gallery__photo--tall {
  aspect-ratio: 1/2;
  grid-row: span 2;
}
@media (min-width: 768px) {
  .bv-gallery__photo--tall {
    aspect-ratio: 1/1;
    grid-row: span 1;
  }
}
.bv-gallery__icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: rgba(255, 255, 255, 0.4);
}
.bv-gallery__icon svg {
  width: 36px;
  height: 36px;
}
.bv-gallery__shape {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: rgba(0, 0, 0, 0.35);
  clip-path: polygon(0 100%, 0 60%, 25% 30%, 50% 50%, 75% 25%, 100% 40%, 100% 100%);
}
.bv-gallery__label {
  position: absolute;
  bottom: 8px;
  left: 12px;
  right: 12px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 10px;
  font-weight: 500;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.bv-why {
  padding: 32px 20px 8px;
}
@media (min-width: 768px) {
  .bv-why {
    padding: 40px 32px 12px;
  }
}
.bv-why__eyebrow {
  font-size: 11px;
  color: color-mix(in srgb, var(--titre-signature) 70%, transparent);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 8px;
}
.bv-why__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 32px;
  line-height: 1;
  margin: 0 0 20px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .bv-why__title {
    font-size: 40px;
  }
}

.bv-perks {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (min-width: 768px) {
  .bv-perks {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
}

.bv-perk {
  display: flex;
  gap: 16px;
  padding: 16px;
  background: var(--bg-surface);
  border: 1px solid color-mix(in srgb, #E6954A 30%, transparent);
  border-radius: 10px;
}
@media (min-width: 768px) {
  .bv-perk {
    flex-direction: column;
  }
}
.bv-perk__icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(230, 149, 74, 0.15);
  color: #E6954A;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.bv-perk__icon svg {
  width: 22px;
  height: 22px;
}
.bv-perk__content {
  flex: 1;
}
.bv-perk__title {
  color: var(--text-main);
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 4px;
}
.bv-perk__desc {
  color: color-mix(in srgb, var(--text-main) 65%, transparent);
  font-size: 11px;
  line-height: 1.5;
  margin: 0;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.bv-form-section {
  padding: 32px 20px;
  background: var(--bg-surface);
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
  margin-top: 32px;
}
@media (min-width: 768px) {
  .bv-form-section {
    padding: 40px 32px;
  }
}

.bv-form__head {
  text-align: center;
  margin-bottom: 24px;
}

.bv-form__eyebrow {
  color: rgba(230, 149, 74, 0.9);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 8px;
}

.bv-form__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 36px;
  line-height: 1;
  margin: 0 0 8px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .bv-form__title {
    font-size: 48px;
  }
}

.bv-form__pitch {
  color: color-mix(in srgb, var(--text-main) 75%, transparent);
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
  max-width: 560px;
  margin-inline: auto;
}

@media (min-width: 768px) {
  .bv-form {
    max-width: 640px;
    margin-inline: auto;
  }
}

.bv-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.bv-field {
  margin-bottom: 16px;
}
.bv-field__label {
  display: block;
  color: var(--text-main);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.bv-field__req {
  color: #C9483B;
  margin-left: 2px;
}
.bv-field__help {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 4px;
  line-height: 1.5;
}
.bv-field__error {
  font-size: 11px;
  color: #C9483B;
  margin-top: 4px;
  line-height: 1.5;
}

.bv-field-row {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
}
.bv-field-row .bv-field {
  flex: 1;
  margin-bottom: 0;
}

.bv-input {
  width: 100%;
  background: var(--bg-page);
  border: 1px solid var(--border-subtle);
  color: var(--text-main);
  padding: 12px 16px;
  border-radius: 10px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-size: 13px;
  transition: border-color 150ms ease;
}
.bv-input:focus {
  outline: none;
  border-color: #E6954A;
}
.bv-input::placeholder {
  color: var(--text-muted);
}
.bv-input[aria-invalid=true] {
  border-color: #C9483B;
}
.bv-input--textarea {
  min-height: 90px;
  resize: vertical;
  line-height: 1.5;
}

.bv-phone {
  display: flex;
  background: var(--bg-page);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 150ms ease;
}
.bv-phone:focus-within {
  border-color: #E6954A;
}
.bv-phone__prefix {
  background: var(--bg-surface);
  border: none;
  border-right: 1px solid var(--border-subtle);
  color: var(--text-main);
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-size: 13px;
  padding: 12px 12px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888780' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 12px;
  padding-right: 28px;
}
.bv-phone__prefix:focus {
  outline: none;
}
.bv-phone__input {
  flex: 1;
  background: transparent;
  border: none;
  color: var(--text-main);
  padding: 12px 16px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  font-size: 13px;
}
.bv-phone__input:focus {
  outline: none;
}
.bv-phone__input::placeholder {
  color: var(--text-muted);
}

.bv-checks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
@media (min-width: 768px) {
  .bv-checks {
    grid-template-columns: repeat(3, 1fr);
  }
}

.bv-check {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  background: var(--bg-page);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
}
.bv-check:hover {
  background: color-mix(in srgb, var(--text-main) 4%, transparent);
}
.bv-check input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.bv-check.is-checked {
  background: rgba(230, 149, 74, 0.15);
  border-color: #E6954A;
}
.bv-check__box {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 1.5px solid var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 150ms ease, border-color 150ms ease;
}
.bv-check__box svg {
  width: 12px;
  height: 12px;
  color: #1A1A1A;
  opacity: 0;
  transition: opacity 150ms ease;
}
.bv-check.is-checked .bv-check__box {
  background: #E6954A;
  border-color: #E6954A;
}
.bv-check.is-checked .bv-check__box svg {
  opacity: 1;
}
.bv-check__label {
  color: var(--text-main);
  font-size: 11px;
  font-weight: 500;
  flex: 1;
}

.bv-radios {
  display: flex;
  gap: 8px;
}

.bv-radio {
  flex: 1;
  padding: 12px 8px;
  background: var(--bg-page);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  cursor: pointer;
  text-align: center;
  transition: background 150ms ease, border-color 150ms ease;
}
.bv-radio:hover {
  background: color-mix(in srgb, var(--text-main) 4%, transparent);
}
.bv-radio input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.bv-radio.is-selected {
  background: rgba(230, 149, 74, 0.15);
  border-color: #E6954A;
}
.bv-radio__label {
  display: block;
  color: var(--text-main);
  font-size: 13px;
  font-weight: 500;
}
.bv-radio__sub {
  display: block;
  color: var(--text-muted);
  font-size: 10px;
  margin-top: 2px;
}
.bv-radio.is-selected .bv-radio__label {
  color: var(--titre-signature);
  font-weight: 600;
}

.bv-grid-wrapper {
  overflow-x: auto;
  margin: 0 -20px;
  padding: 0 20px 4px;
  -webkit-overflow-scrolling: touch;
}
.bv-grid-wrapper::-webkit-scrollbar {
  height: 4px;
}
.bv-grid-wrapper::-webkit-scrollbar-thumb {
  background: rgba(241, 194, 107, 0.3);
  border-radius: 2px;
}

.bv-grid {
  width: 100%;
  min-width: 380px;
  border-collapse: separate;
  border-spacing: 4px;
}
.bv-grid th, .bv-grid td {
  padding: 0;
}
.bv-grid__day {
  text-align: left;
  padding: 0 0 6px 4px !important;
}
.bv-grid__day-label {
  color: var(--titre-signature);
  font-size: 11px;
  font-weight: 600;
}
.bv-grid__day-tag {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 1px;
  font-weight: 500;
  color: var(--text-muted);
}
.bv-grid__day-tag--festival {
  color: #E89A3A;
}
.bv-grid__day-tag--edge {
  color: #C9483B;
}
.bv-grid__slot {
  color: color-mix(in srgb, var(--titre-signature) 70%, transparent);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  text-align: center;
  padding: 0 0 6px !important;
}
.bv-grid__slot-time {
  color: var(--text-muted);
  font-size: 9px;
  text-transform: none;
  letter-spacing: 0;
  margin-top: 1px;
  font-weight: 400;
}
.bv-grid__cell {
  width: 56px;
  height: 44px;
}
.bv-grid__empty {
  width: 56px;
  height: 44px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.2);
  text-align: center;
  line-height: 42px;
  font-size: 13px;
  font-weight: 700;
}
.bv-grid__check {
  width: 56px;
  height: 44px;
  background: var(--bg-page);
  border: 1.5px solid var(--border-subtle);
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  transition: background 150ms ease, border-color 150ms ease;
}
.bv-grid__check input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.bv-grid__check svg {
  width: 18px;
  height: 18px;
  opacity: 0;
  transition: opacity 150ms ease;
}
.bv-grid__check:hover {
  background: color-mix(in srgb, var(--text-main) 4%, transparent);
  border-color: color-mix(in srgb, #E6954A 50%, transparent);
}
.bv-grid__check.is-checked {
  background: #E6954A;
  border-color: #E6954A;
  color: #1A1A1A;
}
.bv-grid__check.is-checked svg {
  opacity: 1;
}
.bv-grid__note {
  color: var(--text-muted);
  font-size: 10px;
  margin-top: 8px;
  font-style: italic;
  line-height: 1.5;
}

.bv-submit {
  width: 100%;
  background: #C9483B;
  color: #FAF2E3;
  padding: 16px 20px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background 150ms ease, transform 150ms ease, box-shadow 150ms ease;
  box-shadow: 0 6px 18px rgba(201, 72, 59, 0.25);
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  margin-top: 8px;
}
.bv-submit svg {
  width: 16px;
  height: 16px;
}
.bv-submit:hover:not(:disabled) {
  background: #E89A3A;
  transform: translateY(-1px);
}
.bv-submit:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.bv-submit__spinner {
  display: inline-flex;
  animation: bv-spin 1s linear infinite;
}
.bv-submit__spinner svg {
  width: 16px;
  height: 16px;
}

@keyframes bv-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.bv-form__error {
  background: rgba(201, 72, 59, 0.15);
  border: 1px solid #C9483B;
  color: #C9483B;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 13px;
  margin: 12px 0;
}

.bv-consent {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.5;
  margin-top: 12px;
  text-align: center;
}
.bv-consent a {
  color: #E6954A;
  text-decoration: underline;
}
.bv-consent a:hover {
  color: #E89A3A;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.bv-success {
  padding: 48px 20px;
  text-align: center;
  max-width: 560px;
  margin-inline: auto;
}
.bv-success[hidden] {
  display: none;
}
.bv-success__icon {
  width: 80px;
  height: 80px;
  background: #E6954A;
  border-radius: 50%;
  margin: 0 auto 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1A1A1A;
  box-shadow: 0 12px 32px rgba(230, 149, 74, 0.4);
}
.bv-success__icon svg {
  width: 40px;
  height: 40px;
  stroke-width: 3;
}
.bv-success__eyebrow {
  color: #E6954A;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 8px;
}
.bv-success__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 38px;
  line-height: 1;
  margin: 0 0 12px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .bv-success__title {
    font-size: 48px;
  }
}
.bv-success__text {
  color: color-mix(in srgb, var(--text-main) 85%, transparent);
  font-size: 13px;
  line-height: 1.7;
  margin: 0 0 24px;
}
.bv-success__text strong {
  color: var(--titre-signature);
  font-weight: 600;
}
@media (min-width: 768px) {
  .bv-success__text {
    font-size: 15px;
  }
}
.bv-success__info {
  background: rgba(230, 149, 74, 0.08);
  border: 1px solid rgba(230, 149, 74, 0.25);
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 24px;
  text-align: left;
}
.bv-success__info-title {
  color: #E6954A;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.bv-success__info-title svg {
  width: 14px;
  height: 14px;
}
.bv-success__info-text {
  color: color-mix(in srgb, var(--text-main) 80%, transparent);
  font-size: 11px;
  line-height: 1.5;
}
.bv-success__info-text strong {
  color: var(--titre-signature);
  font-weight: 600;
}
.bv-success__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media (min-width: 768px) {
  .bv-success__actions {
    flex-direction: row;
    justify-content: center;
  }
}
.bv-success__btn {
  padding: 12px 20px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  text-decoration: none;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease, transform 150ms ease;
}
.bv-success__btn svg {
  width: 14px;
  height: 14px;
}
.bv-success__btn--primary {
  background: #F1C26B;
  color: #5B1F14;
}
.bv-success__btn--primary:hover {
  background: #FAF2E3;
  transform: translateY(-1px);
}
.bv-success__btn--outline {
  background: transparent;
  color: var(--text-main);
  border: 1px solid var(--border-subtle);
}
.bv-success__btn--outline:hover {
  border-color: var(--titre-signature);
  color: var(--titre-signature);
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.bv-faq {
  padding: 24px 20px 32px;
}
@media (min-width: 768px) {
  .bv-faq {
    padding: 32px 32px 40px;
  }
}
.bv-faq__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 28px;
  line-height: 1;
  margin: 0 0 16px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .bv-faq__title {
    font-size: 36px;
  }
}
.bv-faq__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media (min-width: 768px) {
  .bv-faq__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}
.bv-faq__item {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 12px 16px;
}
.bv-faq__question {
  color: var(--titre-signature);
  font-size: 13px;
  font-weight: 600;
  margin: 0 0 6px;
}
.bv-faq__answer {
  color: color-mix(in srgb, var(--text-main) 70%, transparent);
  font-size: 11px;
  line-height: 1.5;
  margin: 0;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.dashboard-minimal {
  padding: 32px 20px;
}
@media (min-width: 768px) {
  .dashboard-minimal {
    padding: 48px 32px;
  }
}
.dashboard-minimal__container {
  max-width: 540px;
  margin-inline: auto;
  text-align: center;
}
.dashboard-minimal__toast {
  margin-bottom: 24px;
  padding: 12px 16px;
  background: rgba(241, 194, 107, 0.12);
  border: 1px solid rgba(241, 194, 107, 0.4);
  border-radius: 10px;
  font-size: 13px;
  color: var(--text-main);
  text-align: left;
  line-height: 1.5;
}
.dashboard-minimal__hello {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 40px;
  line-height: 1;
  margin: 0 0 8px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .dashboard-minimal__hello {
    font-size: 56px;
  }
}
.dashboard-minimal__email {
  color: var(--text-muted);
  font-size: 13px;
  margin: 0 0 32px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
}
.dashboard-minimal__roles {
  margin-bottom: 32px;
}
.dashboard-minimal__roles-title {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin: 0 0 12px;
}
.dashboard-minimal__roles-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.dashboard-minimal__role {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 9999px;
  font-size: 13px;
  font-weight: 600;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  color: var(--text-main);
}
.dashboard-minimal__role--athlete {
  background: rgba(93, 202, 165, 0.15);
  border-color: rgba(93, 202, 165, 0.5);
  color: #5DCAA5;
}
.dashboard-minimal__role--benevole {
  background: rgba(230, 149, 74, 0.15);
  border-color: rgba(230, 149, 74, 0.5);
  color: #E6954A;
}
.dashboard-minimal__role--artiste {
  background: rgba(175, 169, 236, 0.15);
  border-color: rgba(175, 169, 236, 0.5);
  color: #AFA9EC;
}
.dashboard-minimal__role--staff {
  background: rgba(241, 194, 107, 0.15);
  border-color: rgba(241, 194, 107, 0.5);
  color: #F1C26B;
}
.dashboard-minimal__role--admin {
  background: rgba(201, 72, 59, 0.15);
  border-color: rgba(201, 72, 59, 0.5);
  color: #C9483B;
}
.dashboard-minimal__role--visiteur {
  background: var(--bg-surface);
  border-color: var(--border-subtle);
  color: var(--text-muted);
}
.dashboard-minimal__no-roles {
  color: var(--text-muted);
  font-size: 13px;
  font-style: italic;
  margin: 0;
}
.dashboard-minimal__actions {
  margin-bottom: 24px;
}
.dashboard-minimal__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: transparent;
  color: var(--text-main);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: border-color 150ms ease, color 150ms ease;
}
.dashboard-minimal__btn:hover {
  border-color: var(--titre-signature);
  color: var(--titre-signature);
}
.dashboard-minimal__note {
  font-size: 11px;
  color: var(--text-muted);
  margin: 0;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.page-home {
  width: 100%;
}
@media (min-width: 1024px) {
  .page-home {
    max-width: 1200px;
    margin: 0 auto;
  }
}

.home-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.4s ease-in-out;
  z-index: 0;
}
.home-slide.is-active {
  opacity: 1;
}

.home-hero {
  position: relative;
  height: 70vh;
  min-height: 480px;
  max-height: 720px;
  overflow: hidden;
  isolation: isolate;
}
@media (min-width: 768px) {
  .home-hero {
    height: 80vh;
  }
}
@media (min-width: 1024px) {
  .home-hero {
    height: 88vh;
    max-height: 900px;
    border-radius: 24px;
    margin-top: 16px;
  }
}

.home-hero-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(91, 31, 20, 0.1) 0%, rgba(91, 31, 20, 0.45) 50%, rgba(0, 0, 0, 0.7) 100%);
}

.home-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(91, 31, 20, 0.2) 0%, rgba(91, 31, 20, 0.4) 40%, var(--bg-page) 100%), linear-gradient(135deg, #C9483B 0%, #E89A3A 50%, #F1C26B 100%);
  z-index: -1;
}

.home-hero-mountain {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}
.home-hero-mountain--back {
  height: 35%;
  background: #5B1F14;
  clip-path: polygon(0 100%, 0 65%, 15% 30%, 30% 55%, 45% 15%, 60% 40%, 75% 25%, 90% 50%, 100% 20%, 100% 100%);
}
.home-hero-mountain--front {
  height: 25%;
  background: #1A1A1A;
  opacity: 0.85;
  clip-path: polygon(0 100%, 0 75%, 20% 45%, 40% 60%, 55% 35%, 75% 55%, 90% 40%, 100% 60%, 100% 100%);
}

.home-hero-content {
  position: absolute;
  top: 32px;
  bottom: 18%;
  left: 0;
  right: 0;
  padding: 0 20px;
  text-align: center;
  z-index: 2;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
}
@media (min-width: 768px) {
  .home-hero-content {
    top: 40px;
    bottom: 22%;
  }
}
@media (min-width: 1024px) {
  .home-hero-content {
    top: 48px;
    bottom: 28%;
  }
}

.home-hero-logo {
  display: block;
  height: 100px;
  max-height: 40vh;
  max-width: min(90%, 600px);
  width: auto;
  margin: 0 auto 16px;
  object-fit: contain;
}

.home-hero-eyebrow {
  display: inline-block;
  padding: 8px 16px;
  background: rgba(241, 194, 107, 0.15);
  border: 1px solid rgba(241, 194, 107, 0.4);
  border-radius: 9999px;
  color: #F1C26B;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 16px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.home-hero-title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: #F1C26B;
  font-size: 48px;
  line-height: 0.95;
  margin: 0 0 8px;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .home-hero-title {
    font-size: 64px;
  }
}
@media (min-width: 1024px) {
  .home-hero-title {
    font-size: 88px;
  }
}
@media (min-width: 1200px) {
  .home-hero-title {
    font-size: 104px;
  }
}

.home-hero-sub {
  color: rgba(250, 242, 227, 0.9);
  font-size: 13px;
  line-height: 1.5;
  margin: 0 auto;
  max-width: 280px;
  font-weight: 400;
}
.home-hero-sub sup {
  font-size: 0.7em;
  vertical-align: super;
}
@media (min-width: 768px) {
  .home-hero-sub {
    font-size: 17px;
    max-width: 420px;
  }
}

.home-hero-scroll {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(241, 194, 107, 0.6);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  z-index: 2;
  transition: color 150ms ease;
}
.home-hero-scroll:hover {
  color: #F1C26B;
}

.home-venir {
  padding: 20px;
  background: linear-gradient(135deg, var(--bg-surface) 0%, var(--bg-page) 100%);
  border-bottom: 1px solid color-mix(in srgb, var(--titre-signature) 10%, transparent);
}
@media (min-width: 768px) {
  .home-venir {
    padding: 32px 24px;
  }
}
@media (min-width: 1024px) {
  .home-venir {
    padding: 40px 32px;
  }
}

.home-venir-eyebrow {
  color: color-mix(in srgb, var(--titre-signature) 70%, transparent);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 12px;
  text-align: center;
}

.home-venir-bar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: color-mix(in srgb, var(--titre-signature) 5%, transparent);
  border: 1px solid color-mix(in srgb, var(--titre-signature) 20%, transparent);
  border-radius: 10px;
  overflow: hidden;
  max-width: 600px;
  margin: 0 auto;
}
@media (min-width: 1024px) {
  .home-venir-bar {
    max-width: 780px;
  }
}

.home-venir-item {
  padding: 16px 8px;
  text-align: center;
}
.home-venir-item + .home-venir-item {
  border-left: 1px solid color-mix(in srgb, var(--titre-signature) 15%, transparent);
}
@media (min-width: 768px) {
  .home-venir-item {
    padding: 20px 12px;
  }
}

.home-venir-icon {
  width: 18px;
  height: 18px;
  margin: 0 auto 8px;
  color: #E89A3A;
}
@media (min-width: 768px) {
  .home-venir-icon {
    width: 22px;
    height: 22px;
  }
}

.home-venir-label {
  color: color-mix(in srgb, var(--titre-signature) 60%, transparent);
  font-size: 9px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 2px;
  font-weight: 500;
}
@media (min-width: 768px) {
  .home-venir-label {
    font-size: 11px;
  }
}

.home-venir-value {
  color: var(--titre-signature);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .home-venir-value {
    font-size: 17px;
  }
}

.home-section {
  padding: 40px 20px;
}
@media (min-width: 768px) {
  .home-section {
    padding: 48px 24px;
  }
}
@media (min-width: 1024px) {
  .home-section {
    padding: 64px 32px;
  }
}
.home-section--alt {
  background: var(--bg-surface);
}
.home-section--cream {
  background: #FAF2E3;
  color: #5B1F14;
}
.home-section--cream .home-section-eyebrow {
  color: rgba(91, 31, 20, 0.65);
}
.home-section--cream .home-section-title {
  color: #E89A3A;
}
.home-section--cream .home-section-lead {
  color: #5B1F14;
}

.home-section-header {
  max-width: 720px;
  margin: 0 auto 20px;
  text-align: left;
}
@media (min-width: 1024px) {
  .home-section-header {
    text-align: center;
    margin-bottom: 32px;
  }
}

.home-section-eyebrow {
  color: color-mix(in srgb, var(--titre-signature) 70%, transparent);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 8px;
}

.home-section-title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: var(--titre-signature);
  font-size: 28px;
  line-height: 1;
  margin: 0 0 16px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .home-section-title {
    font-size: 36px;
  }
}
@media (min-width: 1024px) {
  .home-section-title {
    font-size: 48px;
  }
}

.home-section-lead {
  color: color-mix(in srgb, var(--text-main) 75%, transparent);
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
}
@media (min-width: 768px) {
  .home-section-lead {
    font-size: 15px;
  }
}

.home-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  max-width: 720px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .home-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    max-width: 100%;
  }
}
@media (min-width: 1024px) {
  .home-cards {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}

.home-card {
  position: relative;
  display: flex;
  align-items: flex-end;
  aspect-ratio: 16/10;
  padding: 16px;
  border-radius: 14px;
  overflow: hidden;
  color: #FAF2E3;
  transition: transform 250ms ease, box-shadow 250ms ease;
}
@media (min-width: 768px) {
  .home-card {
    aspect-ratio: 4/3;
    padding: 20px;
  }
}
@media (min-width: 1024px) {
  .home-card {
    aspect-ratio: 3/4;
  }
}
.home-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
}
.home-card:hover .home-card-arrow {
  transform: translateX(4px);
}
.home-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 30%, rgba(26, 26, 26, 0.75) 100%);
}
.home-card--sport {
  background: linear-gradient(135deg, #1D9E75 0%, #0F6E56 100%);
}
.home-card--concert {
  background: linear-gradient(135deg, #7F77DD 0%, #534AB7 100%);
}
.home-card--anim {
  background: linear-gradient(135deg, #E89A3A 0%, #C9483B 100%);
}
.home-card.has-images .home-card-slide {
  z-index: 0;
}

.home-card-label {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 4px 12px;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(6px);
  border-radius: 9999px;
  color: #F1C26B;
  font-size: 11px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 500;
  z-index: 2;
}

.home-card-arrow {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 9999px;
  background: rgba(241, 194, 107, 0.2);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #F1C26B;
  font-size: 17px;
  transition: transform 250ms ease;
  z-index: 2;
}

.home-card-content {
  z-index: 2;
  position: relative;
}

.home-card-title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: #F1C26B;
  font-size: 28px;
  line-height: 1;
  margin: 0 0 4px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .home-card-title {
    font-size: 32px;
  }
}
@media (min-width: 1024px) {
  .home-card-title {
    font-size: 36px;
  }
}

.home-card-meta {
  color: rgba(250, 242, 227, 0.85);
  font-size: 13px;
}

.home-section-header--row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
}
.home-section-header--row .home-section-title {
  grid-column: 2;
  margin-bottom: 0;
  text-align: center;
}

.home-moments-nav {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
  justify-content: flex-end;
}

.home-moments-prev,
.home-moments-next {
  width: 36px;
  height: 36px;
  border-radius: 9999px;
  border: 1px solid var(--border-subtle);
  background: var(--bg-surface);
  color: var(--text-main);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
}
.home-moments-prev svg,
.home-moments-next svg {
  width: 16px;
  height: 16px;
}
.home-moments-prev:hover,
.home-moments-next:hover {
  background: var(--bg-elevated);
  border-color: var(--titre-signature);
}
.home-moments-prev:disabled,
.home-moments-next:disabled {
  opacity: 0.35;
  cursor: default;
}

.home-moments-track {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.home-moments-track::-webkit-scrollbar {
  display: none;
}
@media (min-width: 768px) {
  .home-moments-track {
    gap: 16px;
  }
}

.home-moment {
  position: relative;
  flex-shrink: 0;
  width: calc(50% - 8px);
  aspect-ratio: 3/4;
  border-radius: 10px;
  overflow: hidden;
  display: block;
  scroll-snap-align: start;
  transition: transform 250ms ease, box-shadow 250ms ease;
  text-decoration: none;
}
@media (min-width: 768px) {
  .home-moment {
    width: calc(33.333% - 12px);
  }
}
@media (min-width: 1024px) {
  .home-moment {
    width: calc(25% - 16px);
    aspect-ratio: 3/4;
  }
}
.home-moment {
  background: #1A1A1A;
}
.home-moment[href]:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
}
.home-moment[href]:hover .home-moment-img {
  transform: scale(1.05);
}

.home-moment-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 0.5s ease;
  z-index: 0;
}
.home-moment-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(26, 26, 26, 0.05) 30%, rgba(26, 26, 26, 0.65) 100%);
}

.home-moment-label {
  position: absolute;
  bottom: 12px;
  left: 12px;
  right: 12px;
  color: #FAF2E3;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
  z-index: 1;
}
.home-moment-label small {
  display: block;
  font-size: 11px;
  font-weight: 400;
  opacity: 0.75;
  margin-top: 3px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.home-cta {
  padding: 24px 20px;
  background: linear-gradient(135deg, #5B1F14 0%, #C9483B 100%);
  border-radius: 18px;
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .home-cta {
    padding: 40px 32px;
  }
}
@media (min-width: 1024px) {
  .home-cta {
    padding: 48px 40px;
  }
}

.home-cta-eyebrow {
  color: rgba(241, 194, 107, 0.7);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 12px;
}

.home-cta-title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  color: #F1C26B;
  font-size: 28px;
  line-height: 1;
  margin: 0 0 12px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .home-cta-title {
    font-size: 36px;
  }
}
@media (min-width: 1024px) {
  .home-cta-title {
    font-size: 44px;
  }
}

.home-cta-sub {
  color: rgba(250, 242, 227, 0.85);
  font-size: 13px;
  line-height: 1.5;
  margin: 0 0 20px;
  max-width: 480px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .home-cta-sub {
    font-size: 15px;
  }
}

.home-cta-btn {
  display: inline-block;
  padding: 12px 24px;
  background: #F1C26B;
  color: #5B1F14;
  font-size: 13px;
  font-weight: 600;
  border-radius: 10px;
  letter-spacing: 0.02em;
  transition: all 150ms ease;
}
.home-cta-btn:hover {
  background: rgb(243.2037037037, 203.6018518519, 130.2962962963);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(241, 194, 107, 0.3);
}
@media (min-width: 768px) {
  .home-cta-btn {
    padding: 16px 32px;
    font-size: 15px;
  }
}

.home-sponsors {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  max-width: 840px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .home-sponsors {
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
  }
}

.home-sponsor {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.04);
  padding: 16px;
  overflow: hidden;
  transition: box-shadow 150ms ease, transform 150ms ease;
}
.home-sponsor img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: grayscale(12%);
  opacity: 0.8;
  transition: opacity 150ms ease, filter 150ms ease;
}
.home-sponsor span {
  font-size: 11px;
  color: rgba(91, 31, 20, 0.5);
  font-weight: 500;
  text-align: center;
}
.home-sponsor:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}
.home-sponsor:hover img {
  opacity: 1;
  filter: none;
}
.home-sponsor--invert img {
  filter: brightness(0);
  opacity: 0.72;
}
.home-sponsor--invert:hover img {
  filter: brightness(0);
  opacity: 1;
}
.home-sponsor--petit img {
  opacity: 0.6;
}
.home-sponsor--petit:hover img {
  opacity: 0.85;
}

.home-sponsors-empty {
  text-align: center;
  color: rgba(91, 31, 20, 0.5);
  font-size: 13px;
  font-style: italic;
  margin: 0 auto;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.page-sports .cards-section {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 20px;
}
@media (min-width: 768px) {
  .page-sports .cards-section {
    padding-inline: 32px;
  }
}
@media (min-width: 768px) {
  .page-sports .cards-section {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .page-sports .cards-section .card {
    margin-bottom: 0;
  }
}
@media (min-width: 1200px) {
  .page-sports .cards-section {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.page-concerts .cards-section {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 20px;
}
@media (min-width: 768px) {
  .page-concerts .cards-section {
    padding-inline: 32px;
  }
}
@media (min-width: 768px) {
  .page-concerts .cards-section {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .page-concerts .cards-section .card {
    margin-bottom: 0;
  }
}
@media (min-width: 1024px) {
  .page-concerts .cards-section {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}
@media (min-width: 1200px) {
  .page-concerts .cards-section {
    grid-template-columns: repeat(4, 1fr);
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.page-animations .cards-section {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 20px;
}
@media (min-width: 768px) {
  .page-animations .cards-section {
    padding-inline: 32px;
  }
}
@media (min-width: 768px) {
  .page-animations .cards-section {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .page-animations .cards-section .card {
    margin-bottom: 0;
  }
}
@media (min-width: 1200px) {
  .page-animations .cards-section {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
@media (min-width: 1024px) {
  .page-infos {
    max-width: 960px;
    margin-inline: auto;
  }
}

.infos-quick-links {
  padding: 16px 20px 24px;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
}
.infos-quick-links::-webkit-scrollbar {
  display: none;
}
@media (min-width: 768px) {
  .infos-quick-links {
    padding: 20px 32px 32px;
    flex-wrap: wrap;
    overflow-x: visible;
  }
}

.infos-chip {
  flex-shrink: 0;
  padding: 8px 12px;
  background: color-mix(in srgb, var(--text-main) 8%, transparent);
  border: 1px solid var(--border-subtle);
  border-radius: 9999px;
  color: var(--text-main);
  text-decoration: none;
  font-size: 11px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
}
.infos-chip svg {
  width: 14px;
  height: 14px;
}
.infos-chip:hover {
  background: #F1C26B;
  color: #1A1A1A;
  border-color: #F1C26B;
}

.infos-section {
  padding: 32px 20px;
  border-top: 1px solid var(--border-subtle);
  scroll-margin-top: 80px;
}
@media (min-width: 768px) {
  .infos-section {
    padding: 40px 32px;
  }
}
.infos-section__eyebrow {
  font-size: 11px;
  color: #E89A3A;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 8px;
}
.infos-section__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  color: var(--titre-signature);
  margin-bottom: 20px;
  line-height: 1.05;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .infos-section__title {
    font-size: 36px;
  }
}

.infos-lieu-card {
  background: var(--bg-surface);
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border-subtle);
}

.infos-map-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 160px;
  position: relative;
  background: linear-gradient(135deg, rgba(91, 31, 20, 0.4), rgba(232, 154, 58, 0.3)), repeating-linear-gradient(45deg, rgba(241, 194, 107, 0.05) 0 2px, transparent 2px 18px), #5B1F14;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: opacity 150ms ease;
}
.infos-map-preview:hover {
  opacity: 0.92;
}
.infos-map-preview__pin {
  width: 44px;
  height: 44px;
  background: #C9483B;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}
.infos-map-preview__pin svg {
  width: 20px;
  height: 20px;
  transform: rotate(45deg);
  color: #FAF2E3;
}
.infos-map-preview__label {
  position: absolute;
  bottom: 12px;
  right: 12px;
  background: rgba(26, 26, 26, 0.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 11px;
  color: #F1C26B;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-weight: 500;
}
.infos-map-preview__label svg {
  width: 12px;
  height: 12px;
}

.infos-lieu-card__info {
  padding: 16px;
}

.infos-lieu-card__name {
  font-size: 17px;
  font-weight: 700;
  color: var(--text-main);
  margin-bottom: 4px;
}

.infos-lieu-card__address {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 8px;
}

.infos-lieu-card__gps {
  font-size: 11px;
  color: #E89A3A;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

.infos-lieu-card__maps {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--titre-signature);
  text-decoration: none;
  font-size: 11px;
  font-weight: 500;
  transition: color 150ms ease;
}
.infos-lieu-card__maps svg {
  width: 13px;
  height: 13px;
}
.infos-lieu-card__maps:hover {
  color: #E89A3A;
}

.infos-subsection-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 24px 0 12px;
}
.infos-subsection-divider::before, .infos-subsection-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border-subtle);
}
.infos-subsection-divider span {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #E89A3A;
  font-weight: 500;
}

.infos-parkings {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.infos-parking {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.infos-parking__badge {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.infos-parking__p-logo {
  width: 38px;
  height: 38px;
  border-radius: 6px;
  display: block;
}
.infos-parking__badge-num {
  font-size: 10px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 0.04em;
}
.infos-parking__info {
  flex: 1;
  min-width: 0;
}
.infos-parking__name {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-main);
  margin-bottom: 2px;
}
.infos-parking__meta {
  font-size: 11px;
  color: var(--text-muted);
  margin-bottom: 4px;
}
.infos-parking__tag {
  display: inline-block;
  font-size: 10px;
  color: #F1C26B;
  background: rgba(241, 194, 107, 0.1);
  border: 1px solid rgba(241, 194, 107, 0.25);
  padding: 2px 8px;
  border-radius: 9999px;
  letter-spacing: 0.03em;
}
.infos-parking__maps {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 12px;
  background: color-mix(in srgb, var(--text-main) 6%, transparent);
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  color: var(--text-main);
  text-decoration: none;
  font-size: 11px;
  font-weight: 500;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
  white-space: nowrap;
}
.infos-parking__maps svg {
  width: 13px;
  height: 13px;
  color: #E89A3A;
}
.infos-parking__maps:hover {
  background: #F1C26B;
  color: #1A1A1A;
  border-color: #F1C26B;
}
.infos-parking__maps:hover svg {
  color: #1A1A1A;
}

.infos-map-cta-light {
  display: flex;
  align-items: center;
  gap: 8px;
  background: color-mix(in srgb, var(--text-main) 8%, transparent);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 12px 16px;
  color: var(--text-main);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
}
.infos-map-cta-light svg:first-child {
  width: 18px;
  height: 18px;
  color: #E89A3A;
  flex-shrink: 0;
}
.infos-map-cta-light__arrow {
  width: 14px;
  height: 14px;
  margin-left: auto;
  flex-shrink: 0;
}
.infos-map-cta-light:hover {
  background: #F1C26B;
  color: #1A1A1A;
  border-color: #F1C26B;
}
.infos-map-cta-light:hover svg:first-child {
  color: #1A1A1A;
}

.infos-card-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (min-width: 768px) {
  .infos-card-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
@media (min-width: 1024px) {
  .infos-card-list {
    grid-template-columns: repeat(3, 1fr);
  }
}

.infos-info-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 16px;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.infos-info-card__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: linear-gradient(135deg, #E89A3A, #C9483B);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
}
.infos-info-card__icon svg {
  width: 22px;
  height: 22px;
}
.infos-info-card__icon--green {
  background: linear-gradient(135deg, #4A8260, #6BA87F);
}
.infos-info-card__icon--brown {
  background: linear-gradient(135deg, #5B1F14, #C9483B);
}
.infos-info-card__content {
  flex: 1;
  min-width: 0;
}
.infos-info-card__content h3 {
  font-size: 15px;
  font-weight: 700;
  color: var(--text-main);
  margin-bottom: 4px;
}
.infos-info-card__content p {
  font-size: 13px;
  color: color-mix(in srgb, var(--text-main) 85%, transparent);
  margin-bottom: 8px;
}
.infos-info-card__content strong {
  color: #F1C26B;
}
.infos-info-card__meta {
  font-size: 11px;
  color: var(--text-muted);
  margin-bottom: 8px;
}
.infos-info-card__link {
  color: var(--titre-signature);
  font-size: 11px;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 150ms ease;
}
.infos-info-card__link svg {
  width: 12px;
  height: 12px;
}
.infos-info-card__link:hover {
  color: #E89A3A;
}

.infos-resto {
  background: linear-gradient(135deg, rgba(91, 31, 20, 0.6), rgba(201, 72, 59, 0.7)), #5B1F14;
  border-radius: 14px;
  padding: 32px 20px;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .infos-resto {
    padding: 40px 32px;
  }
}
.infos-resto__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  color: #F1C26B;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
}
.infos-resto__text {
  font-size: 13px;
  color: color-mix(in srgb, #FAF2E3 90%, transparent);
  margin-bottom: 12px;
}
.infos-resto__note {
  background: rgba(26, 26, 26, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 11px;
  color: #F1C26B;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid rgba(241, 194, 107, 0.3);
}
.infos-resto__note svg {
  width: 12px;
  height: 12px;
}

.infos-map-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  overflow: hidden;
}

.infos-map-large {
  height: 200px;
  position: relative;
  overflow: hidden;
}
.infos-map-large__bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 70% 25%, rgba(241, 194, 107, 0.18), transparent 35%), radial-gradient(circle at 25% 70%, rgba(74, 130, 96, 0.22), transparent 40%), linear-gradient(135deg, rgba(91, 31, 20, 0.5), rgba(232, 154, 58, 0.25)), repeating-linear-gradient(60deg, rgba(241, 194, 107, 0.04) 0 1px, transparent 1px 14px), repeating-linear-gradient(-30deg, rgba(255, 255, 255, 0.03) 0 1px, transparent 1px 22px), #5B1F14;
}

.infos-map-pin {
  position: absolute;
  width: 28px;
  height: 28px;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.4);
  color: #FAF2E3;
  z-index: 2;
}
.infos-map-pin svg {
  width: 14px;
  height: 14px;
  transform: rotate(45deg);
}
.infos-map-pin--village {
  background: #C9483B;
  width: 32px;
  height: 32px;
}
.infos-map-pin--village svg {
  width: 16px;
  height: 16px;
}
.infos-map-pin--cret {
  background: #E89A3A;
}
.infos-map-pin--parking {
  background: #5B1F14;
  border: 2px solid #F1C26B;
}
.infos-map-pin--route {
  background: rgba(107, 168, 127, 0.95);
}

.infos-map-card__body {
  padding: 16px;
}

.infos-map-card__pitch {
  font-size: 13px;
  color: color-mix(in srgb, var(--text-main) 85%, transparent);
  margin-bottom: 12px;
  line-height: 1.5;
}

.infos-map-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.infos-map-tag {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 9999px;
  border: 1px solid;
}
.infos-map-tag--village {
  color: #C9483B;
  border-color: rgba(201, 72, 59, 0.45);
  background: rgba(201, 72, 59, 0.1);
}
.infos-map-tag--route {
  color: #6BA87F;
  border-color: rgba(107, 168, 127, 0.45);
  background: rgba(107, 168, 127, 0.1);
}
.infos-map-tag--parking {
  color: #F1C26B;
  border-color: rgba(241, 194, 107, 0.4);
  background: rgba(241, 194, 107, 0.1);
}

.infos-map-cta {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #C9483B;
  color: #FAF2E3;
  text-decoration: none;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  transition: background 150ms ease, transform 150ms ease;
}
.infos-map-cta svg:first-child {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.infos-map-cta__arrow {
  width: 14px;
  height: 14px;
  margin-left: auto;
  flex-shrink: 0;
}
.infos-map-cta:hover {
  background: #E89A3A;
  transform: translateY(-1px);
}

.infos-faq {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.infos-faq__item {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  overflow: hidden;
}

.infos-faq__question {
  padding: 12px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  user-select: none;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-main);
  list-style: none;
}
.infos-faq__question::-webkit-details-marker {
  display: none;
}
.infos-faq__question span {
  flex: 1;
}

.infos-faq__chevron {
  color: #E89A3A;
  transition: transform 0.25s ease;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}

.infos-faq__item[open] .infos-faq__chevron {
  transform: rotate(180deg);
}

.infos-faq__answer {
  padding: 0 16px 16px;
}
.infos-faq__answer p {
  font-size: 13px;
  color: color-mix(in srgb, var(--text-main) 80%, transparent);
  line-height: 1.7;
}

.infos-sponsor-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .infos-sponsor-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
  }
}
.infos-sponsor-grid__item {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  text-decoration: none;
  transition: box-shadow 150ms ease;
}
.infos-sponsor-grid__item img {
  max-width: 100%;
  height: auto;
  max-height: 60px;
  object-fit: contain;
  filter: grayscale(20%);
  opacity: 0.85;
  transition: filter 150ms ease, opacity 150ms ease;
}
.infos-sponsor-grid__item:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.infos-sponsor-grid__item:hover img {
  filter: grayscale(0%);
  opacity: 1;
}
.infos-sponsor-grid__item--grand {
  grid-column: span 2;
  aspect-ratio: 3/1;
  padding: 16px;
}
.infos-sponsor-grid__item--grand img {
  max-height: 80px;
}
.infos-sponsor-grid__item--standard {
  grid-column: span 1;
  aspect-ratio: 2/1;
}
.infos-sponsor-grid__item--petit {
  grid-column: span 1;
  aspect-ratio: 2/1;
  padding: 8px;
}
.infos-sponsor-grid__item--petit img {
  max-height: 44px;
}
.infos-sponsor-grid__name {
  font-size: 11px;
  font-weight: 500;
  color: var(--text-muted);
  text-align: center;
  line-height: 1.3;
}

.infos-sponsors-empty {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 16px;
}

.infos-contact {
  text-align: center;
}
.infos-contact__card {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 24px 20px;
}
.infos-contact__email {
  font-size: 17px;
  color: var(--titre-signature);
  text-decoration: none;
  display: block;
  margin-bottom: 12px;
  font-weight: 500;
  transition: color 150ms ease;
}
.infos-contact__email:hover {
  color: #E89A3A;
}
.infos-contact__postal {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 20px;
  line-height: 1.7;
}
.infos-contact__socials {
  display: flex;
  justify-content: center;
  gap: 8px;
}
.infos-contact__socials a {
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  background: color-mix(in srgb, var(--text-main) 8%, transparent);
  border: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-main);
  transition: background 150ms ease, border-color 150ms ease, transform 150ms ease;
}
.infos-contact__socials a:hover {
  background: #C9483B;
  border-color: #C9483B;
  color: #FAF2E3;
  transform: translateY(-2px);
}
.infos-contact__socials a svg {
  width: 18px;
  height: 18px;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
body.is-map-fullscreen {
  overflow: hidden;
  height: 100dvh;
}
body.is-map-fullscreen .site-footer {
  display: none;
}
body.is-map-fullscreen #main {
  overflow: hidden;
}

.page-map {
  display: flex;
  flex-direction: column;
  height: calc(100dvh - 64px - env(safe-area-inset-bottom, 0px));
  min-height: 480px;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (min-width: 768px) {
  .page-map {
    height: calc(100dvh - 72px - env(safe-area-inset-bottom, 0px));
  }
}

.map-container {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  margin: 0 12px 12px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  background: var(--bg-surface);
}
@media (min-width: 768px) {
  .map-container {
    margin: 0 20px 20px;
  }
}
@media (min-width: 1024px) {
  .map-container {
    margin: 0 20px 20px;
  }
}
@media (min-width: 1200px) {
  .map-container {
    margin: 0 24px 24px;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
@media (min-width: 1024px) {
  .page-mon-espace {
    max-width: 960px;
    margin-inline: auto;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
@media (min-width: 1024px) {
  .page-benevoles {
    max-width: 1200px;
    margin-inline: auto;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
@media (min-width: 1024px) {
  .page-dashboard {
    max-width: 1200px;
    margin-inline: auto;
  }
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.legal-page {
  max-width: 680px;
  margin: 0 auto;
  padding: 40px 20px 64px;
  text-align: center;
}
@media (min-width: 768px) {
  .legal-page {
    padding: 48px 32px 80px;
  }
}

.legal-section {
  margin-bottom: 40px;
}
.legal-section + .legal-section {
  padding-top: 40px;
  border-top: 1px solid var(--border-subtle);
}
.legal-section__eyebrow {
  color: color-mix(in srgb, var(--titre-signature) 55%, transparent);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 8px;
}
.legal-section__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  color: var(--titre-signature);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
  margin: 0 0 24px;
}
@media (min-width: 768px) {
  .legal-section__title {
    font-size: 36px;
  }
}
.legal-section p {
  color: color-mix(in srgb, var(--text-main) 80%, transparent);
  font-size: 13px;
  line-height: 1.7;
  margin: 0 auto 12px;
  max-width: 560px;
}
.legal-section p strong {
  color: var(--text-main);
  font-weight: 600;
}
.legal-section p a {
  color: #E89A3A;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: opacity 150ms ease;
}
.legal-section p a:hover {
  opacity: 0.75;
}
@media (min-width: 768px) {
  .legal-section p {
    font-size: 15px;
  }
}

.legal-pill {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: all 150ms ease;
  border: 1px solid transparent;
}
.legal-pill--email {
  background: color-mix(in srgb, #E89A3A 12%, transparent);
  color: #E89A3A;
  border-color: color-mix(in srgb, #E89A3A 30%, transparent);
}
.legal-pill--email:hover {
  background: #E89A3A;
  color: #FAF2E3;
}
.legal-pill--web, .legal-pill--other {
  background: color-mix(in srgb, var(--titre-signature) 8%, transparent);
  color: var(--titre-signature);
  border-color: color-mix(in srgb, var(--titre-signature) 20%, transparent);
}
.legal-pill--web:hover, .legal-pill--other:hover {
  background: var(--titre-signature);
  color: var(--bg-page);
}
.legal-pill--social {
  background: color-mix(in srgb, #C9483B 10%, transparent);
  color: #C9483B;
  border-color: color-mix(in srgb, #C9483B 25%, transparent);
}
.legal-pill--social:hover {
  background: #C9483B;
  color: #FAF2E3;
}

.legal-infra-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  max-width: 560px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .legal-infra-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.legal-infra-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 20px 20px;
}
.legal-infra-card--highlight {
  border-color: color-mix(in srgb, #E89A3A 40%, transparent);
  background: color-mix(in srgb, #E89A3A 5%, var(--bg-surface));
}
.legal-infra-card__label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: color-mix(in srgb, var(--text-main) 50%, transparent);
  margin: 0;
}
.legal-infra-card__name {
  font-weight: 600;
  font-size: 13px;
  color: var(--titre-signature);
  margin: 4px 0 0;
}
@media (min-width: 768px) {
  .legal-infra-card__name {
    font-size: 15px;
  }
}
.legal-infra-card__detail {
  font-size: 11px;
  color: color-mix(in srgb, var(--text-main) 55%, transparent);
  line-height: 1.5;
  margin: 2px 0 0;
}

.legal-copyright-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  background: linear-gradient(135deg, color-mix(in srgb, #C9483B 8%, transparent), color-mix(in srgb, #E89A3A 8%, transparent));
  border: 1px solid color-mix(in srgb, #E89A3A 25%, transparent);
  border-radius: 14px;
  padding: 20px 24px;
  max-width: 360px;
  margin: 0 auto 20px;
}
.legal-copyright-block--dev {
  background: linear-gradient(135deg, color-mix(in srgb, var(--titre-signature) 5%, transparent), color-mix(in srgb, #E89A3A 6%, transparent));
  border-color: color-mix(in srgb, var(--titre-signature) 20%, transparent);
  margin-top: 20px;
}
.legal-copyright-block__year {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 24px;
  color: #E89A3A;
  margin: 0;
  line-height: 1;
  letter-spacing: 0.05em;
}
.legal-copyright-block__owner {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  color: var(--titre-signature);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
  margin: 0;
  line-height: 1;
}
.legal-copyright-block__sub {
  font-size: 11px;
  color: color-mix(in srgb, var(--text-main) 55%, transparent);
  margin: 4px 0 0;
  max-width: none;
}

/*!
Theme Name: Plouf 2026
Theme URI: http://underscores.me/
Author: Jonathan Muller
Author URI: https://plouf-festival.ch
Description: Thème custom pour la 5e édition du Plouf Festival - Vercorin 2026
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: plouf-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Plouf 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.contact-page {
  max-width: 920px;
  margin: 0 auto;
  padding: 40px 20px 64px;
  text-align: center;
}
@media (min-width: 768px) {
  .contact-page {
    padding: 48px 32px 80px;
  }
}

.contact-section {
  margin-bottom: 48px;
}
.contact-section + .contact-section {
  padding-top: 40px;
  border-top: 1px solid var(--border-subtle);
}
.contact-section__eyebrow {
  color: color-mix(in srgb, var(--titre-signature) 55%, transparent);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 8px;
}
.contact-section__title {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  color: var(--titre-signature);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
  margin: 0 0 32px;
}
@media (min-width: 768px) {
  .contact-section__title {
    font-size: 36px;
  }
}

.contact-membres {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  justify-items: center;
}
@media (min-width: 480px) {
  .contact-membres {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .contact-membres {
    grid-template-columns: repeat(3, 1fr);
  }
}

.membre-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 320px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 18px;
  padding: 32px 24px;
  text-align: center;
  transition: box-shadow 250ms ease, transform 250ms ease;
}
.membre-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  transform: translateY(-2px);
}
.membre-card--highlight {
  border-color: color-mix(in srgb, #E89A3A 40%, transparent);
  background: color-mix(in srgb, #E89A3A 4%, var(--bg-surface));
}
.membre-card--solo {
  max-width: 440px;
  margin: 0 auto;
}
.membre-card__avatar {
  width: 68px;
  height: 68px;
  border-radius: 9999px;
  overflow: hidden;
  background: linear-gradient(135deg, #C9483B 0%, #E89A3A 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF2E3;
  margin-bottom: 4px;
  flex-shrink: 0;
}
.membre-card__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.membre-card__name {
  font-family: "Bebas Neue", "Impact", "Arial Narrow Bold", sans-serif;
  font-size: 28px;
  color: var(--titre-signature);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 400;
  margin: 0;
  line-height: 1;
}
.membre-card__role {
  font-size: 11px;
  color: color-mix(in srgb, var(--text-main) 60%, transparent);
  letter-spacing: 0.02em;
  margin: 0;
  line-height: 1.5;
}
.membre-card__address {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 11px;
  color: color-mix(in srgb, var(--text-main) 50%, transparent);
  margin: 4px 0 0;
}
.membre-card__address svg {
  flex-shrink: 0;
  color: #E89A3A;
}
.membre-card__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border-subtle);
  width: 100%;
}

.contact-info-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  max-width: 560px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .contact-info-block {
    flex-direction: row;
    justify-content: center;
  }
}

.contact-info-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 20px 24px;
  flex: 1;
  min-width: 200px;
}
.contact-info-item__icon {
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  background: color-mix(in srgb, #E89A3A 12%, transparent);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #E89A3A;
}
.contact-info-item__icon svg {
  width: 18px;
  height: 18px;
}
.contact-info-item__label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: color-mix(in srgb, var(--text-main) 55%, transparent);
  margin: 0;
}
.contact-info-item__value {
  font-size: 13px;
  font-weight: 500;
  color: var(--titre-signature);
  margin: 0;
}
.contact-info-item__value a {
  color: #E89A3A;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.contact-info-item__value a:hover {
  opacity: 0.75;
}

/*# sourceMappingURL=style.css.map */
