/*
 Theme Name: 	Archipel custom Theme
 Description: 	Theme enfant pour le site de L'archipel.
 Author: 		Lucas Délèze
 Author URI: 	numeriques.ch
 Template: 		twentytwentyfive
 Version: 		1.0.0
 License:      	GNU General Public License v2 or later
 License URI:  	http://www.gnu.org/licenses/gpl-2.0.html
 Tags:         	light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
 Text Domain:  	twentytwentyfive-child
*/


#wp--skip-link--target {
	margin-top: 0px !important;	
}

.wp-site-blocks > * {
	margin-top: 0;
}

:where(.wp-block-columns) {
    margin-bottom: 0px;

}

.wp-block-column {
  word-break: unset !important;
}

a:hover {
	color: var(--wp--preset--color--custom-rose, #ff7e85);
}

:root :where(.wp-block-separator) {
    border-width: 0 0 2px 0 ;
}

.wp-block-themeisle-blocks-accordion-item {
	font-size: 1.1rem !important;
	font-weight: 100;
}

.is-calculation {
	width: fit-content;
	border-radius: 16px;
    border-color: currentColor;
    border-width: 1px;
    border-style: solid;
    font-size: var(--wp--preset--font-size--small);
    letter-spacing: normal;
    line-height: 1.5;
    padding-top: 0.2rem;
    padding-right: 0.6rem;
    padding-bottom: 0.25rem;
    padding-left: 0.6rem;
}

p {
	font-size: 1.1rem;
    font-weight: 100;
}

ol, ul {
	font-size: 1.1rem;
    font-weight: 200;
}

html, body {
	overflow-x: hidden;
}


/*---------------------------------------------------------------------------- CSS ICONS */
.has-icon {
}

.is-icon {
	position: relative;
	top: 2px;
}

/*---------------------------------------------------------------------------- CSS BUTTONS */
.is-button {
	height: 28px;
	border-width: 2px;
	border-radius: 24px;
	border-style: solid;
    padding: 8px 24px 8px 24px;
	text-decoration: none;
	width: fit-content;
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.is-text-button {
	font-size: 1.1rem;
	font-family: var(--wp--preset--font-family--korolev, Korolev);
	position: relative;
	top: 1px;
}

.is-mail-button {
    display: flex;
    text-decoration: none;
    outline: none;
    gap: 8px;
    margin: 8px 0px 0px 0px;
}
.is-icon-mail {
    top: 4px;
}

.is-home-button {
  	position: absolute;
	bottom: -24px; /* Décalé en dehors du bloc */
  	z-index: 10;
	background-color: var(--wp--preset--color--base, #fefffe);
}
.is-home-button:hover {
	color: var(--wp--preset--color--base, #fefffe);
}

.is-location-button {
    color: var(--wp--preset--color--custom-events, #dca831);
}
.is-location-button:hover {
    background-color: var(--wp--preset--color--custom-events, #dca831);
}

.is-coworking-button {
    color: var(--wp--preset--color--custom-coworking, #003b62);
}
.is-coworking-button:hover {
    background-color: var(--wp--preset--color--custom-coworking, #003b62);
}

.is-ressourcerie-button {
    color: var(--wp--preset--color--custom-ressourcerie);
}
.is-ressourcerie-button:hover {
    background-color: var(--wp--preset--color--custom-ressourcerie);
}

.is-atelier-button {
    color: var(--wp--preset--color--custom-atelier);
}
.is-atelier-button:hover {
    background-color: var(--wp--preset--color--custom-atelier);
}

.is-bob-button {
    color: var(--wp--preset--color--custom-b-ob);
}
.is-bob-button:hover {
    background-color: var(--wp--preset--color--custom-b-ob);
}

.is-jardin-button {
    color: var(--wp--preset--color--custom-jardins);
}
.is-jardin-button:hover {
    background-color: var(--wp--preset--color--custom-jardins);
}

/*---------------------------------------------------------------------------- CSS HOMEPAGE */
.front-page .wp-block-post-title,
.home .wp-block-post-title {
  display: none;
}


/*---------------------------------------------------------------------------- CSS HOMEPAGE ACTIVITY CARD */
/* ---------- Base (fonctionne même sans Flex/Grid) ---------- */
.activity-card {
  min-width: 280px;
  max-width: 400px;
  box-sizing: border-box;
}

.carte-accueil {
  position: relative;
  overflow: visible;
}

.carte-accueil h3 {
  text-align: center;
  font-size: 55px;
  line-height: 0.9;
}

.subtitle_home { font-size: 35px; }

.picto-accueil {
  position: relative;
  top: 55px;
  left: 55px;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  z-index: 2;
}

.appendice {
  position: relative;
  top: -7px;
}

/* Conteneur : fallback float + clearfix */
.activity-card-grid { /* pas d’affichage spécial par défaut */
  text-align: center; /* fallback simple au lieu de justify-items:... */
}
.activity-card-grid::after { content: ""; display: block; clear: both; }

/* Colonnes via float (navigateurs très anciens) */
.activity-card { width: 100%; float: left; }
@media screen and (min-width: 650px) and (max-width: 1024px) {
  .activity-card { width: 50%; }
}
@media (min-width: 1025px) {
  .activity-card { width: 33.3333%; }
}

/* ---------- Upgrade Flex (IE11+ et modernes) ---------- */
@supports (display: flex) {
  .activity-card-grid {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;

    /* gap n’est pas fiable en vieux flex → marges */
    margin: -12px;
    text-align: initial; /* laissons les cartes gérer leur contenu */
  }

  .activity-card {
    float: none;            /* annule le fallback float */
    padding: 12px;          /* “faux gap” avec margin négatif sur parent */
    width: auto;
    -ms-flex: 1 1 100%;
    flex: 1 1 100%;
    box-sizing: border-box;
  }

  @media screen and (min-width: 650px) and (max-width: 1024px) {
    .activity-card {
      -ms-flex: 0 0 50%;
      flex: 0 0 50%;
    }
  }
  @media (min-width: 1025px) {
    .activity-card {
      -ms-flex: 0 0 33.3333%;
      flex: 0 0 33.3333%;
    }
  }
}

/* ---------- Upgrade Grid (navigateurs modernes) ---------- */
@supports (display: grid) {
  .activity-card-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;

    /* Compat “vieux grid” */
    grid-gap: 24px;
    gap: 24px;

    justify-items: center;   /* alternative sûre à anchor-center */
    align-items: start;
    margin: 0;               /* annule le hack flex */
  }

  .activity-card {
    padding: 0;              /* pas besoin du faux gap en grid */
    width: 100%;
  }

  @media screen and (min-width: 650px) and (max-width: 1024px) {
    .activity-card-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
  }

  @media (min-width: 1025px) {
    .activity-card-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
  }
}
	
/*---------------------------------------------------------------------------- CSS PAGE TITLE ACTIVITY */
.page-header {
	position: relative;
	overflow: visible;     /* interdit le débordement */
	align-items: center;
    justify-content: center;
	padding-top: 16px;
    padding-bottom: 48px;
}

@media (min-width: 768px) {
	.page-header {
		overflow: hidden;     /* autorise le débordement */
		height: 120px;         /* hauteur fixe du fond */
		padding: 0 !important;
		display: flex;
	}
}

.page-header img {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90px;
    height: auto;
    z-index: 1;
}

@media (min-width: 768px) {
	.page-header img {
		top: 50%;              /* centre vertical dans le conteneur */
		left: 3rem;            /* marge gauche depuis le conteneur */
		width: 180px;
		justify-self: flex-start;
	}
}

.page-header h1 {
	margin: 1rem 0 1rem 0;
	padding-left: 0%;
}


/*---------------------------------------------------------------------------- CSS SLIDER GALERIE D'IMAGES WORDPRESS */
/* === Slider générique (pour tous les sliders) === */
.slider-container {
	position: relative;
}

.slider-css {
	display: flex;                /* essentiel pour faire défiler */
	overflow-x: auto;             /* permet le scroll horizontal */
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	gap: 48px;                    /* espace entre les items */
	border-radius: 16px;
}

/* Les “slides” elles-mêmes */
.slider-css .gallery-item {
  flex: 0 0 100%;
  scroll-snap-align: center;
  overflow: hidden;
  box-shadow: 0 5px 12px rgba(0,0,0,0.15);
  aspect-ratio: 3 / 2;		/* ratio 16/9 pour le conteneur */
  position: relative;
}

/* L’image à l’intérieur */
.slider-css .gallery-item img {
	height: 100%;			/* remplir tout en hauteur du parent */
	width: auto;           	/* conserve le ratio */
	object-fit: cover;     	/* recadre pour couvrir tout le conteneur */
	display: block;
}

/* Pagination par points */
.bubble .slider-dots {
  position: absolute;
  bottom: 16px;               /* 16px au-dessus du bas du container */
  left: 50%;                  /* centre horizontalement */
  transform: translateX(-50%);
  display: flex;
  gap: 0.75rem;
  z-index: 10;
}

.slider-dot {
	width: 0.8rem;
	height: 0.8rem;
	border-radius: 50%;
	background: rgba(200,200,200,0.6);
	cursor: pointer;
	transition: background 0.3s, transform 0.3s;
}
.slider-dot.active {
	background: var(--wp--preset--color--base, #fefffe);
	transform: scale(1.3);
}

.bubble .slider-css {
	padding: 0px;
	gap: 0px;
}

/* Masquer le scrollbar sur WebKit (Chrome, Safari) */
.slider-css::-webkit-scrollbar {
	display: none;
}

/* Masquer le scrollbar sur Firefox */
.slider-css {
	scrollbar-width: none;       /* Firefox */
	-ms-overflow-style: none;    /* IE 10+ */
}

/*---------------------------------------------------------------------------- CSS BUBBLE CARD GENERIC */
.ressourcerie_bk_color {
	background-color: var(--wp--preset--color--custom-ressourcerie, #cd6d61);
}

.coworking_bk_color {
  	background-color: var(--wp--preset--color--custom-coworking, #003b62);
}

.bob_bk_color {
	background-color: var(--wp--preset--color--custom-b-ob, #8e0431);
}

.events_bk_color {
	background-color: var(--wp--preset--color--custom-events, #dca831);
}

.atelier_bk_color {
	background-color: var(--wp--preset--color--custom-atelier, #7f8b94);
}

.jardins_bk_color {
    background-color: var(--wp--preset--color--custom-jardins, #03584f);
}

.bubble {
	position: relative;
	background: #fefffe;
	/* ombre qui suit le contour y compris la pointe */
	filter: drop-shadow(0 3px 16px rgba(0, 0, 0, 0.25));
	border-radius: 16px 16px 0px 16px;
	height: fit-content;
}

/* la pointe en bas à droite */
.bubble::after {
	content: "";
	position: absolute;
	bottom: -31px;          /* dépasse de 16px sous la bulle */
	right: 0px;            /* à 32px du bord droit */
	width: 32px;
	height: 32px;
	background: var(--wp--preset--color--base, #fefffe);
	clip-path: path("M32 0.421875H0C3.843 0.421875 11.5 2.42188 16 5.92188L32 18.4223V0.421875Z");
}

.bubble-top-img {
	display: block;               /* pas de petit blanc en-dessous */
	width: 100%;                  /* plein largeur de la bulle */
	height: 200px;
	object-fit: cover;            /* recadrage si fixe */
	border-top-left-radius: 16px;  /* coins arrondis assortis */
	border-top-right-radius: 16px;
	margin-bottom: 1rem;          /* espace avant le contenu */
}

.bubble .header {
	padding-top: 16px;
	padding-bottom: 16px;
	border-radius: 16px 16px 0px 0px;
}

.bubble .header h3 {
	text-align: center;
	color: var(--wp--preset--color--base, #fefffe);
}

.bubble .content {
	padding: 0px 24px 8px 24px;
	font-weight: 400;
    font-size: medium;
}

.bubble .price {
	color: var(--wp--preset--color--custom-ok-green, #00c123);
	text-align: center;
}

.bubble .price > sup {
	font-size: 1.2rem;
}

.bubble .meta-info {
	list-style-type: none;
	padding-inline-start: 0px;
	margin-block-end: 1.75rem;
}

.bubble .meta-info > li > span {
	font-weight: bold;
}

.bubble .inclusiv-items {
	list-style-type: none;
	padding-inline-start: 0px;
}

.bubble li {
	display: flex;
	gap: 0.5rem;           /* espace horizontal entre les deux */
	margin-bottom: 8px;
}

.bubble li > * + * {
	margin-left: 0.5rem;
}

.bi-check-circle {
	color: var(--wp--preset--color--custom-ok-green, #00c123);
}

.bi-x-circle {
	color: var(--wp--preset--color--custom-nok-red, #ee004e);
}

.inclusiv-items > li:nth-last-child(-n+3) > i.bi.bi-x-circle + span {
	text-decoration: line-through;
}

/*---------------------------------------------------------------------------- CSS BUBBLE CARD LOCATIONS */
.bubble .header-room {
	padding: 0px 24px 0px 24px;
}

.bubble .title-room {
	color: var(--wp--preset--color--custom-events, #dca831);
	font-size: 48px;
}

.bubble .price-room {
	color: var(--wp--preset--color--custom-ok-green, #00c123);
	text-align: center;
	margin: 0px;
    padding: 8px 0px;
}

.bubble .room .bi {
	color: var(--wp--preset--color--custom-events, #dca831);
}

/*---------------------------------------------------------------------------- CSS BUBBLE CARD RESIDENTS */
.bubble .text-content-loc {
	padding: 0px 16px 16px 16px;
}

.bubble .text-content-loc h3 {
	text-align: left;
	color: var(--wp--preset--color--contrast, #1d1d1b);
}

.bubble img {
	border-radius: 16px;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.bubble .container-img-loc {
	display: flex;
	aspect-ratio: 1 / 1;
	padding: 16px 16px 0px 16px;
}

.bubble .container-img-loc > * {

}

.container-room-loc {
	border: 1px solid var(--wp--preset--color--accent-1, #d0b3aa);
	border-radius: 24px;
	padding: 4px 16px;
	display: flex;                
	width: fit-content;
}

.container-room-loc > * {
    margin-right: 8px;
	font-size: 1rem !important;
}

.container-link-loc {
	padding: 8px 0 8px 0px;
	display: flex;
	align-items: center;
}

.container-link-loc > * {
    margin-right: 8px;
	font-size: 1rem !important;
}

/*---------------------------------------------------------------------------- CSS IMAGES GALLERY */
.wp-block-gallery.has-nested-images figure.wp-block-image {
	border-radius: 16px;
}

/*---------------------------------------------------------------------------- CSS WAVE DIVIDER */
.wave-divider {
	position: relative;
	width: 100%;
	overflow: hidden;
	line-height: 0;
	margin-top: -1px; /* pour éviter une fine ligne blanche */
}

.wave-divider svg {
	display: block;
	width: 100vw;     /* s’étend sur toute la fenêtre */
	height: 100px;    /* ajuste selon ton design */
	box-sizing: border-box;
}

/* miroir horizontal */
.wave-horizontal svg {
	transform: scaleX(-1);
	transform-origin: center center;
}

/* miroir vertical */
.wave-vertical svg {
	transform: scaleY(-1);
	transform-origin: center center;
}

/* miroir horizontal + vertical */
.wave-flip svg {
	transform: scale(-1, -1);
	transform-origin: center center;
}



/* --------------------------------------------------------------------------- CSS MODIFICATIONS PARTNERS GRID PAGE */
.partner-category {
	display: block;        /* s’assure que c’est un bloc plein largeur */
	width: 100%;           /* prend toute la largeur disponible du parent */
	box-sizing: border-box;/* inclut les paddings/bordures dans ce 100% */
	margin: 0;             /* supprime toute marge par défaut */
	margin-left: 1.5rem !important;
	margin-right: 1.5rem !important;
}

.partner-category h2 {
	margin-bottom: 1rem;    
}

/* façon list plus économe sur la DOM */
.partner-list {
	list-style: none;
	margin: 0;
	padding: 0 24px 0 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem;
}

.partner-list li {
    
}

.c-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	background: var(--wp--preset--color--base, #fefffe);
	border-radius: 8px;
	padding: 1rem;
	box-shadow: 0 4px 12px rgba(0,0,0,0.05);
	text-decoration: none;
	color: inherit;
	transition: transform .2s, box-shadow .2s;
	min-height: 100px;
    justify-content: space-evenly;
}

.c-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 16px rgba(0,0,0,0.1);
}

.c-card__img {
	max-width: 120px;
	height: auto;
	margin-bottom: .5rem;
	object-fit: contain;
}

.c-card__title {
	display: block;
	font-weight: bold;
	margin-top: .25rem;
}
