* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--font-main);
    line-height: 1.55;
    color: var(--text-color, #111);
    background: var(--bg-color, #fff);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

iframe {
	border: 0;
}

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

h1 {
  text-align: center;
}

a {
    color: #639afe;
    text-decoration:none;
	transition: 0.6s;
}

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

.wrap {
    width: min(100%, var(--max-width, 1100px));
    margin-inline: auto;
    padding-inline: var(--wrap-gutter, 0);
}

.skip-link {
    position: absolute;
    left: -999px;
    top: 1rem;
    background: #fff;
    color: #111;
    padding: .65rem 1rem;
    z-index: 100;
    border: 1px solid #ddd;
}

.skip-link:focus {
    left: 1rem;
}

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

.topbar {
    font-size: .9rem;
}

.site-header{
    width:100%;
    z-index:100000;
    background:transparent;
}

/* Logo centré */
.site-logo{
    position: relative;
  z-index: 100001;
  text-align: center;
}

.site-logo img{
    display:block;
    max-height:70px;
    width:auto;
}

/* Burger fixe à gauche */
.nav-toggle{
    position:fixed;
    top:24px;
    left:24px;
    z-index:100003;
    display:inline-flex;
    flex-direction:column;
    gap:5px;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    border:0;
    background:transparent;
    color:#fff;
    cursor:pointer;
    pointer-events:auto;
}

.nav-toggle__line{
    display:block;
    width:28px;
    height:2px;
    background:currentColor;
    box-shadow:0 0 8px currentColor;
    transition:transform .25s ease, opacity .25s ease;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-of-type(1){
    transform:translateY(7px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-of-type(2){
    opacity:0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-of-type(3){
    transform:translateY(-7px) rotate(-45deg);
}

/* Menu plein écran */
.site-nav{
    position:fixed;
    inset:0;
    z-index:100002;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100vw;
    height:100vh;
    background:rgba(0,0,0,.88);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .3s ease, visibility .3s ease;
}

.site-nav.is-open{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}

.site-nav.is-open > ul,
.site-nav.is-open > .mod-menu{
    position:absolute !important;
    top:50% !important;
    left:50% !important;
    transform:translate(-50%, -50%) !important;

    width:auto !important;
    height:auto !important;
    min-height:0 !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;

    margin:0 !important;
    padding:0 !important;
    text-align:center !important;
	list-style: none;

}

.site-nav ul,
.site-nav .mod-menu{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    width:100%;
    min-height:100vh;
    margin:0;
    padding:0;
}

.site-nav.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.site-nav li{
    margin:.35rem 0;
}

.site-nav a{
    display:block;
    padding:.55rem 0;
    text-decoration:none;
    color:#fff;
    font-size:1.6rem;
    font-weight:900;
}

.site-nav a:hover,
.site-nav a:focus{
    color:#639afe;
}

.hero,
.main,
.component,
.module-zone,
.footer-zone,
.site-footer {
    margin: 0;
    padding: 0;
}

.pleine-largeur {
    width:100vw;
    max-width:100vw;

    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
}

.pleine-largeur img{
    width:100%;
    display:block;
}

.scroll-hidden{
    opacity:0;
    transform:translateY(40px);
    transition:
        opacity .8s ease,
        transform .8s ease;
}

.scroll-hidden.is-visible{
    opacity:1;
    transform:translateY(0);
}

.btn,
button,
input[type="submit"],
.hikashop_cart_input_button,
.hikashop_checkout_login_button,
.vm-button-correct,
.ph-btn {
    border: 1px solid var(--accent, #111);
    background: var(--accent, #111);
    color: #fff;
    border-radius: 999px;
    padding: .7rem 1rem;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

input,
select,
textarea {
    max-width: 100%;
    border: 1px solid #ccc;
    border-radius: .35rem;
    padding: .65rem;
    background: #fff;
    color: #111;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th,
td {
    padding: .65rem;
    border-bottom: 1px solid #eee;
    text-align: left;
}

.hero {
    position: relative;
    width: 100%;
    height: 90vh;
    overflow: hidden;
    padding: 0;
    margin: 0;
}

.hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: 70% 50%;
    display: block;
}

.hero-txt {
  z-index: 10000;
  position: absolute;
  bottom: 20vh;
  left: 5vw;
}

.hero::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;

    height:5%;

    z-index:5;
    pointer-events:none;

    background:linear-gradient(
        to bottom,
        rgba(0,0,0,0),
        rgba(0,0,0,.25) 30%,
        rgba(0,0,0,.65) 70%,
        #000
    );
}
.main {
	position: relative;
}

.main::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;

    height:3vh;

    z-index:5;
    pointer-events:none;

    background:linear-gradient(
        to bottom,
        rgba(0,0,0,0),
        rgba(0,0,0,.25) 30%,
        rgba(0,0,0,.65) 70%,
        #000
    );
}

.titremodule {
  text-align: center;
  font-size: 3em;
}

/**** Agenda ****/
.agenda-simple {
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
}

.agenda-simple__item.featured {
	border: 0;
	color: #639afe;
}

.agenda-simple__item.featured a.agenda-simple__button {
	border-color: #639afe;
	color: #639afe;
}

.agenda-simple__button.agenda-simple__button--soon {
  border: 2px dashed #fff;
  font-weight: 300;
}

.agenda-simple__button--last .agenda-simple__button-after {
  color: #639afe;
}

.agenda-simple__button--new .agenda-simple__button-after {
  color: #e2bc37;
}

.agenda-simple__button--soon .agenda-simple__button-after {
  color: #f84980;
  font-weight: 900;
}

.agenda-simple__button--soldout,
.agenda-simple__button--disabled {
    opacity: .45;
}
/*****/

.module-zone--body-before {
	margin-top: 4em;
}

.actu {
  padding: 2em 0;
}

.page-mentions-legales .main {
	width: 700px;
	max-width: 90vw;
	margin: 0 auto;
  padding-bottom: 2em;
}

.RS {
  position: fixed;
  top: 1em;
  right: 2em;
  z-index: 1000000;
}

.RS img {
  margin: 3px;
}

.RS img:hover {
  opacity: 70%;
}

.sigplus-download{
    display:block;
    margin:.5rem 0 1rem;
    text-align:center;
    font-size:.9rem;
    text-decoration:none;
}

.sigplus-download:hover{
    text-decoration:underline;
}

.galleriepresse img {
	margin: 10px;
	transition: 0.6s;
}

.galleriepresse img:hover {
	opacity: 0.3;
}

.pagination ul {
    display: flex;
    gap: .35rem;
    list-style: none;
    padding: 0;
    flex-wrap: wrap;
}

.pagination a,
.pagination span {
    display: inline-flex;
    min-width: 2rem;
    min-height: 2rem;
    align-items: center;
    justify-content: center;
    border: 1px solid #ddd;
    text-decoration: none;
}

.alert,
.system-message-container {
    margin: 1rem 0;
}

.nav-toggle{
    display:inline-flex;
}

.site-nav{
    display:none;
}

.site-nav.is-open{
    display:block;
}

.site-nav ul,
.site-nav .mod-menu{
    display:block;
}

.hero-image{
    opacity:0;

    transform:
        scale(1.08)
        translateY(60px);

    filter:
        blur(10px);

    animation:
        heroImageIntro 1.8s cubic-bezier(.22,1,.36,1)
        forwards;
}

.hero-txt{
    opacity:0;

    transform:
        translateX(-80px)
        scale(.92);

    filter:
        blur(6px);

    animation:
        heroTextIntro 1.4s ease
        forwards;

    animation-delay:.7s;
	z-index: 10;
}

@keyframes heroImageIntro{

    from{
        opacity:0;

        transform:
            scale(1.08)
            translateY(60px);

        filter:
            blur(10px);
    }

    to{
        opacity:1;

        transform:
            scale(1)
            translateY(0);

        filter:
            blur(0);
    }

}

@keyframes heroTextIntro{

    0%{

        opacity:0;

        transform:
            translateX(-80px)
            scale(.92);

        filter:
            blur(6px);
    }

    70%{

        opacity:1;
    }

    100%{

        opacity:1;

        transform:
            translateX(0)
            scale(1);

        filter:none;
    }

}

.cursor-smoke{
    position:fixed;
    width:12px;
    height:12px;
    border-radius:50%;
    pointer-events:none;
    z-index:99999;
    transform:translate(-50%, -50%);
    background:#1c44cc;
    box-shadow:
        0 0 8px #1c44cc,
        0 0 20px #1c44cc,
        0 0 40px #1c44cc;
    filter:blur(4px);
    opacity:.7;
    animation:smokeFade .5s ease-out forwards;
    mix-blend-mode:screen;
}

@keyframes smokeFade{
    from{
        opacity:.75;
        transform:translate(-50%,-50%) scale(.5);
    }
    to{
        opacity:0;
        transform:translate(-50%,-50%) scale(2.2);
    }
}

.com-contact {
  max-width: 700px;
  margin: 2em auto;
  text-align: center;
}

.com-contact fieldset.m-0 {
	border: 0;
	padding: 0;
}

.com-contact legend {
	display: none;
}

.page-contact h2 {	
	padding: 1em 0 0.2em;
}

.page-contact .main {
  background: url(../../../images/Thomas-Angelvy-Fond-affiche-2026-coupe.jpg);
    background-size: auto;
  background-size: cover;
}

.star,
.field-spacer,
.page-contact .control-label {
    display:none !important;
}

.page-contact input {
  text-align: center;
}

.page-contact fieldset {
  font-size: 0.85em;
  border: 0;
}

.page-contact textarea {
  max-height: 120px;
}

.page-contact .controls {
  margin-bottom: 1em;
}

.altcha {
	border: 0;
  margin: 0 auto;
  font-size: 0.75em;
  text-align: left;
  width: 150px;
}

.form-check {
  margin: 0 auto;
}

.altcha-checkbox {
  width: 14px;
  height: 14px;
}

.altcha-main {
  padding: 5px;
}

.visually-hidden,
.visually-hidden-focusable:not(:focus):not(:focus-within) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.page-contact .m-0:nth-child(2) .controls {
  margin-bottom: 0;
}

.page-contact .btn {
  padding: .6rem 1.5rem;
  margin: 1em auto 4em;
  transition: 0.6s;
}

.page-contact .btn:hover {
  background: #000;
  border-color: #000;
}

.site-footer ul {
	list-style: none;
  text-align: center;
  padding: 0;
}

.site-footer ul a {
	color: #fff;
}

.site-footer ul a:hover {
	color: #639afe;
}

.page-spectacle .com-content-article__body {
	display: flex;
	max-width: 900px; 
	margin: 0 auto;
	padding: 2em 0;
}

.descriptif {
	flex: 5;
	padding: 1em;
  font-size: 1.1em;
}

.affiche {
	flex: 5;
	padding: 0 1em;
	text-align: center;
}

.es-iframe-blocker {
	margin: 0 auto !important;
	max-width: 500px;
}

/**************************
MEDIA QUERIES
**************************/

@media (max-width: 1024px) {
	.hero-txt {
	  position: relative;
	  bottom: auto;
	  left: auto;
	  margin: 2em auto;
	  display: block;
	  max-width: 450px;
	}
}

@media (max-width: 760px) {
	.RS {
	  top: auto;
	  bottom: 1em;
	}
	
.hero-txt {
	  margin: 4em auto;
	  width: 300px;
      max-width: 90vw;
	}
	
	.page-spectacle .com-content-article__body {
		display: block;
	}
	
	.page-spectacle .com-content-article__body {
  		padding: 0;
	}
}