/* * Theme pour https://www.kine-rufi.fr * * Copyright (C) 2026 * */ /*-------------------- DATA, CLASS --------------------*/ @gris: #6D6D6D; @blanc: #FFFFFF; @vert-principal: #5a9a7f; @vert-fonce: #3d7a5f; @beige: #f5f1e8; @noir: #000000; .transition { transition: All 0.8s ease; -webkit-transition: All 0.8s ease; -moz-transition: All 0.8s ease; -o-transition: All 0.8s ease; } /*-------------------- HTML, BODY --------------------*/ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #333; scroll-behavior: smooth; margin: 0px; padding: 0%; } main { margin-left: 250px; &.error { margin-left: 0px; } } section { padding: 6rem 2rem 5rem; max-width: 1200px; margin: 0 auto; &.section_error { padding: 7rem 12rem 12rem; } } h1, h2 { color: @vert-fonce; margin-bottom: 1.5rem; } h1 { font-size: 2.5rem; } h2 { font-size: 2rem; text-align: center; } /*-------------------- HEADER --------------------*/ #header { position: fixed; top: 0px; left: 0px; width: 100%; background-color: @blanc; z-index: 2000; border-bottom: 5px solid @vert-fonce; } #social { position: fixed; top: 0px; right: 0px; margin: 1%; } #img_logo { height: 80px; width: auto; } #img_telephone, #img_doctolib { height: 50px; width: auto; } /*-------------------- MENU --------------------*/ #menu { background: @blanc; box-shadow: 2px 0 10px rgba(0,0,0,0.1); position: fixed; height: 100vh; left: 0px; top: 0px; width: 250px; z-index: 1000; display: flex; flex-direction: column; padding-left: 10px; padding-right: 20px; padding-top: 150px; } nav { ul { display: flex; flex-direction: column; list-style: none; gap: 0; flex: 1; } li { margin: 0; } a { text-decoration: none; color: #333; transition: all 0.3s; display: block; padding: 1rem 1.5rem; border-radius: 8px; position: relative; font-size: 1.1em; font-weight: bolder; text-transform: uppercase; &:hover { color: @vert-principal; background: @beige; transform: translateX(5px); } } a.selected { color: @vert-principal; background: @beige; transform: translateX(5px); } a::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 0; background: @vert-principal; transition: height 0.3s; } a:hover::before { height: 60%; } } /*-------------------- ACCUEIL --------------------*/ #accueil { margin-top: 80px; min-height: 70vh; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; background: linear-gradient(135deg, var(--beige) 0%, var(--blanc) 100%); p { font-size: 1rem; color: @gris; margin-bottom: 2rem; text-align: justify; } } #accueil-grid-lien { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(1, 1fr); gap: 2rem; } .btn-primary { background: @vert-principal; color: @blanc; padding: 1rem 2rem; margin: 1em; text-decoration: none; border-radius: 10px; transition: background 0.3s; display: inline-block; &:hover { background: @vert-fonce; } } /*-------------------- EQUIPE --------------------*/ #equipe { background: @blanc; } #equipe:nth-of-type(even) { background: @beige; } .equipe-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin-top: 3rem; } .membre { background: @blanc; padding: 2rem; border-radius: 10px; box-shadow: 0 3px 10px rgba(0,0,0,0.1); transition: transform 0.3s; text-align: center; cursor: pointer; perspective: 1000px; min-height: 350px; p { color: @gris; } h3 { color: @vert-principal; margin-bottom: 0.5rem; } } .membre-inner { position: relative; width: 100%; height: 100%; min-height: 400px; text-align: center; transition: transform 0.6s; transform-style: preserve-3d; } .membre.flipped .membre-inner { transform: rotateY(180deg); } .membre-front, .membre-back { position: absolute; width: 100%; height: 100%; min-height: 350px; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: 10px; padding: 2rem; } .membre-front { background: @blanc; display: flex; flex-direction: column; justify-content: center; } .membre-back { background: @blanc; transform: rotateY(180deg); overflow-y: auto; p { color: @gris; text-align: justify; font-size: 0.95em; } } .flip-hint { margin-top: 1rem; font-size: 0.85em; font-style: italic; } p.flip-hint { color: @vert-principal; } #img_lucas, #img_clementine { width: auto; height: 200px; } /*-------------------- CENTRE --------------------*/ #centre { background-color: @blanc; p { color: @gris; } } .galerie { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; margin-top: 2rem; } .galerie-item { position: relative; aspect-ratio: 4/3; background: @beige; border-radius: 10px; overflow: hidden; cursor: pointer; display: flex; align-items: center; justify-content: center; color: @gris; font-style: italic; transition: transform 0.3s, box-shadow 0.3s; img { width: 100%; height: 100%; object-fit: cover; } video { width: 100%; height: 100%; object-fit: cover; } &:hover .play-icon { transform: scale(1.05); box-shadow: 0 5px 20px rgba(0,0,0,0.2); } } .galerie-item .play-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 60px; height: 60px; background: rgba(90, 154, 127, 0.9); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: @blanc; font-size: 24px; pointer-events: none; transition: all 0.3s; } .lightbox { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.9); z-index: 2000; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; } .lightbox.active { display: flex; opacity: 1; } .lightbox-content { position: relative; max-width: 90%; max-height: 90%; animation: zoomIn 0.3s; img { max-width: 100%; max-height: 90vh; border-radius: 10px; box-shadow: 0 10px 50px rgba(0,0,0,0.5); } video { max-width: 100%; max-height: 90vh; border-radius: 10px; box-shadow: 0 10px 50px rgba(0,0,0,0.5); } } @keyframes zoomIn { from { transform: scale(0.8); opacity: 0; } to { transform: scale(1); opacity: 1; } } .lightbox-close { position: absolute; top: 20px; right: 20px; width: 40px; height: 40px; background: @blanc; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #333; transition: transform 0.2s; &:hover { transform: rotate(90deg) scale(1.1); } } .lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 50px; height: 50px; background: @blanc; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #333; transition: all 0.2s; &:hover { background: @vert-principal; color: @blanc; transform: translateY(-50%) scale(1.1); } } .lightbox-prev { left: 20px; } .lightbox-next { right: 20px; } .lightbox-caption { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); background: rgba(255,255,255,0.9); padding: 1rem 2rem; border-radius: 25px; color: #333; font-size: 1.1rem; } /*-------------------- ACTES --------------------*/ #actes { background: @blanc; } #actes:nth-of-type(even) { background: @beige; } .actes-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; margin-top: 3rem; } .actes { background: @blanc; padding: 2rem; border-radius: 10px; box-shadow: 0 3px 10px rgba(0,0,0,0.1); transition: transform 0.3s; text-align: center; color: @gris; &:hover { transform: translateY(-5px); } } /*-------------------- RENDEZ-VOUS --------------------*/ #rdv { background: @vert-principal; color: @blanc; text-align: center; h2 { color: @blanc; } p { font-size: 1.1rem; margin-bottom: 2rem; } } .rdv-options { display: flex; gap: 2rem; justify-content: center; flex-wrap: wrap; } .rdv-option { background: @blanc; color: #333; padding: 2rem; border-radius: 10px; min-width: 250px; box-shadow: 0 5px 15px rgba(0,0,0,0.2); h3 { color: @vert-principal; margin-bottom: 1rem; } p { color: @gris; } } /*-------------------- INFOS --------------------*/ #infos { background: @beige; } .infos-container { display: grid; grid-template-colums: repeat(3, 1fr); grid-template-rows: repeat(2, 1fr); gap: 1.7rem; margin-top: 2rem; } .info-box { background: @blanc; padding: 2rem; border-radius: 10px; box-shadow: 0 3px 10px rgba(0,0,0,0.1); h3 { color: @vert-principal; margin-bottom: 1rem; } p { text-align: justify; color: @gris; } } .info-box1 { grid-column: span 3 / span 3; } .info-box2 { grid-row-start: 2; } .info-box3 { grid-row-start: 2; } .info-box4 { grid-row-start: 2; } .map-placeholder { width: 100%; background: @beige; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: @gris; font-style: italic; margin-top: 1rem; } /*-------------------- FOOTER --------------------*/ footer { background: @vert-fonce; text-align: center; padding: 2rem 0; color: @blanc; font-size: 0.8em; a { color: @blanc; text-decoration: none; &:hover { text-decoration: underline; } } &.footer_error { } } /*-------------------- MENTIONS --------------------*/ #mentions h2 { margin: 10px 0 30px; } #mentions p { text-align: justify; } #mentions a { color: @vert-fonce; text-decoration: none; &:hover { text-decoration: underline; } } /*-------------------- TOOLTIP --------------------*/ .tooltip { position: relative; display: inline-block; cursor: pointer; } .tooltiptext { visibility: hidden; width: 130px; background-color: @vert-fonce; color: #ffffff; text-align: center; padding: 5px; border-radius: 6px; position: absolute; z-index: 1; top: 100%; left: -10%; margin-left: -65px; } .tooltip:hover .tooltiptext { visibility: visible; } /*-------------------- MISCELLEANOUS --------------------*/ .hide { display: none; } .visible { display: block; } .bold { font-weight: bold; } /* End of file index.less */ /* Location: ./assets/less/index.less */