style.scss 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189
  1. // GENERAL STYLES
  2. .picto {
  3. display: block;
  4. cursor: pointer;
  5. background-color: $mainColor;
  6. }
  7. .picto-url {
  8. display: inline-block;
  9. width: $pictoInlineWidth;
  10. height: $pictoInlineHeight;
  11. }
  12. h1, h2 {
  13. font-family: $titleFont;
  14. font-size: $titleFontSizeMobile;
  15. line-height: $titleLineHeight;
  16. }
  17. h4 {
  18. display: block;
  19. padding-top: 0.8rem;
  20. width: 100%;
  21. font-family: $titleFont;
  22. font-size: $currentLineHeight;
  23. cursor: pointer;
  24. a {
  25. text-decoration: underline;
  26. text-decoration-thickness: 1px;
  27. }
  28. }
  29. h4:first-of-type {
  30. padding-top: 0;
  31. }
  32. h4 + p {
  33. margin-bottom: 0.5rem !important;
  34. em {
  35. display: block;
  36. font-size: $tinySize;
  37. cursor: pointer;
  38. > img {
  39. display: inline-block;
  40. height: $tinySize;
  41. width: $tinySize !important;
  42. margin-bottom: unset !important;
  43. margin-left: 0.3rem;
  44. transform: rotate(0deg);
  45. @include transition-ease-out(transform);
  46. }
  47. > img.open {
  48. transform: rotate(180deg);
  49. }
  50. }
  51. }
  52. h4 + p + p {
  53. margin-bottom: 0 !important;
  54. line-height: $smallFontLineHeight;
  55. padding-bottom: 0rem;
  56. font-size: $tinySize;
  57. max-height: 0px;
  58. height: auto;
  59. overflow: hidden;
  60. @include transition-ease-out(max-height, padding-bottom);
  61. }
  62. h4 + p + p.open {
  63. max-height: 50vh;
  64. padding-bottom: 1rem;
  65. }
  66. h4 + p + p + h2 {
  67. margin-top: 1.5rem;
  68. }
  69. p, ul, figcaption {
  70. font-family: $mainFont;
  71. font-size: $currentSize;
  72. line-height: $currentLineHeight;
  73. }
  74. strong {
  75. font-weight: bold;
  76. font-family: $titleFont;
  77. }
  78. em {
  79. font-style: italic;
  80. }
  81. // CASCADE
  82. body {
  83. overflow-x: hidden;
  84. color: $mainColor;
  85. background-color: $bgColor;
  86. @include transition-ease-out(background-color);
  87. header {
  88. position: fixed;
  89. top: 0;
  90. z-index: 1;
  91. width: 100%;
  92. box-sizing: border-box;
  93. #nav-container {
  94. height: $navHeight;
  95. padding: 0 $bodyMarginMobile;
  96. display: flex;
  97. justify-content: space-between;
  98. align-items: center;
  99. background-color: $bgColor;
  100. @include transition-ease-out(background-color);
  101. h1 {
  102. cursor: pointer;
  103. }
  104. #burger {
  105. width: $pictoSmallWidth;
  106. height: $pictoSmallHeight;
  107. }
  108. }
  109. nav {
  110. position: absolute;
  111. background-color: $mainColor;
  112. top: -100vh;
  113. width: 100%;
  114. height: calc(100vh - #{$footerHeightMobile});
  115. display: flex;
  116. align-items: center;
  117. opacity: 0;
  118. @include transition-ease-out(opacity, top 0.7s, background-color);
  119. #crossMenu {
  120. position: absolute;
  121. top: 2vh;
  122. right: $bodyMarginMobile;
  123. background-color: $bgColor;
  124. width: $pictoSmallWidth;
  125. height: $pictoSmallHeight;
  126. }
  127. ul {
  128. display: flex;
  129. flex-direction: column;
  130. justify-content: space-between;
  131. width: 100%;
  132. li {
  133. text-align: center;
  134. color: $bgColor;
  135. a {
  136. display: block;
  137. margin: 4vh 0;
  138. padding: 2.5vh 0;
  139. width: 100%;
  140. font-family: $titleFont;
  141. font-size: $bigFontSizeMobile;
  142. }
  143. }
  144. li.selected a {
  145. color: $mainColor;
  146. background-color: $bgColor;
  147. }
  148. }
  149. }
  150. nav.mobile-nav-open {
  151. top: 0;
  152. opacity: 1;
  153. }
  154. }
  155. header:after {
  156. content: "";
  157. display: block;
  158. width: 100%;
  159. height: $navGradientHeightMobile;
  160. background: $bgGradientToBottom;
  161. opacity: 1;
  162. @include transition-ease-out(opacity);
  163. }
  164. header.plain_bg:after {
  165. opacity: 0;
  166. }
  167. main {
  168. position: relative;
  169. width: 100%;
  170. box-sizing: border-box;
  171. margin-top: calc(#{$navHeight} + #{$navGradientHeightMobile});
  172. z-index: 0;
  173. .content {
  174. position: absolute;
  175. padding: 0 $bodyMarginMobile;
  176. h2, p, ul{
  177. margin-bottom: $sectionSpacing;
  178. a {
  179. text-decoration: underline;
  180. text-underline-offset: 0.1em;
  181. @include transition-ease-out(text-underline-offset);
  182. }
  183. a:hover {
  184. text-underline-offset: 0.15em !important;
  185. }
  186. }
  187. .projet-card {
  188. cursor: pointer;
  189. position: relative;
  190. display: flex;
  191. flex-direction: column;
  192. align-items: center;
  193. justify-content: center;
  194. margin-bottom: $sectionSpacing;
  195. img, video {
  196. border-radius: 10px;
  197. width: 100%;
  198. }
  199. .loader {
  200. min-height: 200px;
  201. width: 20px;
  202. opacity: $transparency;
  203. }
  204. a {
  205. width: 100%;
  206. display: flex;
  207. justify-content: center;
  208. figcaption {
  209. color: $mainColor;
  210. background-color: transparent;
  211. padding: 0;
  212. margin-top: 5px;
  213. position: relative;
  214. font-size: $smallSize;
  215. @include transition-ease-out(opacity);
  216. .publique-title {
  217. @include publique-font;
  218. }
  219. .sociale-title {
  220. @include sociale-font;
  221. }
  222. .culturelle-title {
  223. @include culturelle-font;
  224. }
  225. }
  226. }
  227. }
  228. .card-displayed {
  229. display: block;
  230. }
  231. .card-hidden {
  232. display: none;
  233. }
  234. }
  235. #index-content {
  236. display: flex;
  237. flex-direction: column;
  238. align-items: center;
  239. .animateText {
  240. text-decoration: underline 1px;
  241. }
  242. #loader-index {
  243. position: absolute;
  244. height: 80vh;
  245. width: 100vw;
  246. background-color: $bgColor;
  247. z-index: 1;
  248. display: flex;
  249. justify-content: center;
  250. align-items: center;
  251. }
  252. #main-p-index {
  253. p {
  254. font-size: $bigFontSizeMobile;
  255. }
  256. #figureslibres {
  257. @include figures-libres-font;
  258. }
  259. #publique {
  260. @include publique-font;
  261. }
  262. #sociale {
  263. @include sociale-font;
  264. }
  265. #culturelle {
  266. @include culturelle-font;
  267. }
  268. }
  269. #extrait-projets {
  270. >div {
  271. max-height: 0vh;
  272. display: grid;
  273. grid-template-columns: repeat(2, 1fr);
  274. gap: 0px 20px;
  275. align-items: flex-start;
  276. div {
  277. figure {
  278. align-items: flex-start;
  279. }
  280. }
  281. div:last-of-type {
  282. width: auto;
  283. margin-top: 1vh;
  284. text-align: center;
  285. font-size: $currentSize;
  286. grid-column-end: span 2;
  287. p{
  288. cursor: pointer;
  289. margin-bottom: 5px;
  290. width: auto;
  291. display: flex;
  292. align-items: center;
  293. justify-content: center;
  294. span {
  295. border-bottom: solid 1px $mainColor;
  296. padding-bottom: 1px;
  297. #publique-link {
  298. @include publique-font;
  299. }
  300. #sociale-link {
  301. @include sociale-font;
  302. }
  303. #culturelle-link {
  304. @include culturelle-font;
  305. }
  306. }
  307. .picto {
  308. display: inline-block;
  309. height: $pictoInlineHeight;
  310. width: $pictoSmallWidth;
  311. margin-left: 8px;
  312. @include transition-ease-out(margin-left);
  313. }
  314. }
  315. p:first-of-type:hover + p .picto, p:last-of-type:hover .picto {
  316. margin-left: 13px;
  317. }
  318. }
  319. }
  320. }
  321. #second-p-index {
  322. p {
  323. font-size: $bigFontSizeMobile;
  324. }
  325. #commanditaires {
  326. @include commanditaires-font;
  327. }
  328. #projets {
  329. @include projets-font;
  330. }
  331. }
  332. #commanditaires-grid {
  333. width: 85vw;
  334. display: grid;
  335. grid-template-columns: repeat(2, 1fr);
  336. gap: 25px 40px;
  337. align-items: center;
  338. img {
  339. filter: grayscale(100%);
  340. opacity: 0.7;
  341. width: 100%;
  342. }
  343. }
  344. #arrow-container {
  345. margin-top: $sectionSpacing;
  346. margin-bottom: 0vh;
  347. @include transition-ease-out(transform 0.8s, margin-bottom 0.4s);
  348. .picto {
  349. width: $pictoLargeWidth;
  350. height: $pictoLargeHeight;
  351. }
  352. #arrowIndex {
  353. animation: arrowIndex 4s infinite ease-out;
  354. }
  355. }
  356. .container {
  357. overflow-y: hidden;
  358. height: auto;
  359. max-height: 0vh;
  360. margin-top: 0vh;
  361. opacity: 0;
  362. @include transition-ease-out(opacity, 0.7s, max-height 1.2s, margin-top 1s);
  363. }
  364. a {
  365. text-decoration: none;
  366. }
  367. }
  368. #projets-index {
  369. width: 100%;
  370. #filter-index {
  371. text-align: center;
  372. width: 100%;
  373. margin-bottom: $sectionSpacing;
  374. display: flex;
  375. flex-direction: column;
  376. align-items: center;
  377. justify-content: center;
  378. .filter-button {
  379. cursor: pointer;
  380. filter: grayscale(1);
  381. opacity: $transparency;
  382. padding: 0.25rem 0.75rem;
  383. border-radius: 1rem;
  384. font-size: $smallSize;
  385. min-height: $currentLineHeight;
  386. display: inline-block;
  387. @include transition-ease-out(opacity, filter);
  388. }
  389. .filter-button:hover {
  390. filter: grayscale(0) !important;
  391. opacity: 1 !important;
  392. }
  393. p {
  394. margin-bottom: 1rem;
  395. }
  396. #publique-filter {
  397. @include publique-font;
  398. background-color: $color_publique;
  399. }
  400. #sociale-filter {
  401. @include sociale-font;
  402. background-color: $color_sociale;
  403. }
  404. #culturelle-filter {
  405. @include culturelle-font;
  406. background-color: $color_culturelle;
  407. }
  408. }
  409. hr {
  410. width: 66%;
  411. margin-bottom: 4vh;
  412. opacity: $transparency;
  413. }
  414. .projets-grid {
  415. width: calc(100vw - $bodyMarginMobile * 2);
  416. display: flex;
  417. flex-direction: column;
  418. align-items: center;
  419. >div {
  420. width: 80%;
  421. }
  422. }
  423. .title-category {
  424. cursor: pointer;
  425. display: flex;
  426. align-items: center;
  427. margin-bottom: $sectionSpacing;
  428. h2 {
  429. margin: 0;
  430. max-width: 60%;
  431. }
  432. .chevron-category {
  433. display: inline-block;
  434. width: $pictoSmallWidth;
  435. height: $pictoSmallHeight;
  436. max-height: 10px;
  437. margin-left: 6px;
  438. @include transition-ease-out(transform);
  439. }
  440. .close {
  441. transform: rotate(180deg);
  442. }
  443. }
  444. }
  445. #text-content {
  446. display: flex;
  447. flex-direction: column-reverse;
  448. img {
  449. width: 100%;
  450. }
  451. }
  452. #reader {
  453. display: flex;
  454. flex-direction: column;
  455. align-items: center;
  456. figure {
  457. width: 100%;
  458. min-height: 200px;
  459. display: flex;
  460. justify-content: center;
  461. }
  462. img, video {
  463. cursor: pointer;
  464. max-width: 100%;
  465. }
  466. .loader {
  467. max-width: 20px;
  468. }
  469. #header-project {
  470. z-index: 1;
  471. display: block;
  472. position: fixed;
  473. height: 6vh;
  474. width: 100%;
  475. // background-color: $bgColor;
  476. top: -4vh;
  477. @include transition-ease-out(top);
  478. h2 {
  479. margin: 0;
  480. overflow: hidden;
  481. position: absolute;
  482. width: 100%;
  483. height: 100%;
  484. padding: 3px 0;
  485. padding-top: 1.8vh;
  486. padding-left: $bodyMarginMobile;
  487. font-size: $currentSize;
  488. span {
  489. transform: translate(0, 0);
  490. display: inline-block;
  491. white-space: nowrap;
  492. }
  493. .scrollText:after {
  494. content: attr(data-text);
  495. padding-left: 20px;
  496. white-space: nowrap;
  497. }
  498. }
  499. h2.info-project-publique {
  500. background: linear-gradient(to bottom, $color_publique, $color_publique 60%, rgba($color_publique, 0));
  501. span {
  502. @include publique-font;
  503. }
  504. }
  505. h2.info-project-sociale {
  506. background: linear-gradient(to bottom, $color_sociale, $color_sociale 60%, rgba($color_sociale, 0));
  507. span {
  508. @include sociale-font;
  509. }
  510. }
  511. h2.info-project-culturelle {
  512. background: linear-gradient(to bottom, $color_culturelle, $color_culturelle 60%, rgba($color_culturelle, 0));
  513. span {
  514. @include culturelle-font;
  515. }
  516. }
  517. #gradient-long-title {
  518. position: absolute;
  519. height: 4vh;
  520. width: 40px;
  521. top: 1.5vh;
  522. right: 16.5%;
  523. background: $bgGradientToLeft;
  524. }
  525. }
  526. #header-project + a {
  527. z-index: 2;
  528. }
  529. #close-project {
  530. position: fixed;
  531. right: $bodyMarginMobile;
  532. top: 2.3vh;
  533. width: calc(#{$pictoSmallWidth} - 5px);
  534. height: calc(#{$pictoSmallHeight} - 5px);
  535. }
  536. figure#cover-image-mobile {
  537. margin-top: -2vh;
  538. margin-bottom: 2vh;
  539. }
  540. figure#cover-image {
  541. display: none;
  542. }
  543. figure#cover-image-mobile,
  544. figure#cover-image {
  545. position: relative;
  546. margin-top: 3vh;
  547. img {
  548. filter: grayscale(0);
  549. @include transition-ease-out(filter);
  550. mix-blend-mode: normal;
  551. }
  552. }
  553. figure#cover-image-mobile:hover img,
  554. figure#cover-image:hover img {
  555. filter: grayscale(1);
  556. mix-blend-mode: darken;
  557. }
  558. figure#cover-image-mobile::before,
  559. figure#cover-image::before {
  560. position: absolute;
  561. content: '';
  562. height: 100%;
  563. width: 100%;
  564. opacity: 0;
  565. @include transition-ease-out(opacity);
  566. }
  567. figure#cover-image-mobile:hover::before,
  568. figure#cover-image:hover::before {
  569. opacity: 1;
  570. }
  571. figure#cover-image-mobile.sociale:hover::before,
  572. figure#cover-image.sociale:hover::before {
  573. background-color: $color_sociale;
  574. }
  575. figure#cover-image-mobile.culturelle:hover::before,
  576. figure#cover-image.culturelle:hover::before {
  577. background-color: $color_culturelle;
  578. }
  579. figure#cover-image-mobile.publique:hover::before,
  580. figure#cover-image.publique:hover::before {
  581. background-color: $color_publique;
  582. }
  583. #info-project {
  584. align-self: flex-start;
  585. h2 {
  586. margin-top: 2vh;
  587. margin-bottom: 0;
  588. font-size: 1.6em;
  589. line-height: $titleLineHeight;
  590. }
  591. >div {
  592. margin-top: 0.3em;
  593. margin-bottom: 2.5vh;
  594. font-weight: normal;
  595. line-height: $currentLineHeight;
  596. }
  597. }
  598. .info-project-publique {
  599. h2, >div {
  600. @include publique-font;
  601. }
  602. }
  603. .info-project-sociale {
  604. h2, >div {
  605. @include sociale-font;
  606. }
  607. }
  608. .info-project-culturelle {
  609. h2, >div {
  610. @include culturelle-font;
  611. }
  612. }
  613. #project-description {
  614. margin-top: 2.2vh;
  615. }
  616. #project-images-grid {
  617. figure {
  618. position: relative;
  619. margin-top: 3vh;
  620. img {
  621. filter: grayscale(0);
  622. @include transition-ease-out(filter);
  623. mix-blend-mode: normal;
  624. }
  625. }
  626. figure:hover img {
  627. filter: grayscale(1);
  628. mix-blend-mode: darken;
  629. }
  630. figure::before {
  631. position: absolute;
  632. content: '';
  633. height: 100%;
  634. width: 100%;
  635. opacity: 0;
  636. @include transition-ease-out(opacity);
  637. }
  638. figure:hover::before {
  639. opacity: 1;
  640. }
  641. figure:hover.sociale::before {
  642. background-color: $color_sociale;
  643. }
  644. figure:hover.publique::before {
  645. background-color: $color_publique;
  646. }
  647. figure:hover.culturelle::before {
  648. background-color: $color_culturelle;
  649. }
  650. }
  651. hr {
  652. margin-bottom: 2vh;
  653. width: 66%;
  654. opacity: 0.5;
  655. color: $mainColor;
  656. background-color: $mainColor;
  657. }
  658. #related-pages {
  659. margin-top: 5vh;
  660. width: 100%;
  661. display: flex;
  662. flex-direction: column;
  663. align-items: center;
  664. h3 {
  665. text-align: center;
  666. font-size: $titleFontSizeMobile;
  667. font-family: $titleFont;
  668. margin-bottom: 2vh;
  669. margin-top: 2vh;
  670. }
  671. #related-grid {
  672. width: 80%;
  673. .card-displayed {
  674. margin-top: 1.5vh;
  675. }
  676. }
  677. p {
  678. margin-top: 3vh;
  679. margin-bottom: 5vh;
  680. }
  681. }
  682. .swiper {
  683. position: fixed;
  684. top: 0;
  685. left: 0;
  686. height: 100vh;
  687. width: 100vw;
  688. background-color: rgba(255, 255, 255, 0.75);
  689. backdrop-filter: blur(2px);
  690. box-sizing: border-box;
  691. z-index: 3;
  692. display: none;
  693. opacity: 0;
  694. transition: opacity 0.3s ease-out;
  695. .swiper-wrapper {
  696. z-index: 9;
  697. display: flex;
  698. align-items: center;
  699. .swiper-slide {
  700. height: 100%;
  701. width: 100%;
  702. display: flex;
  703. align-items: center;
  704. justify-content: center;
  705. img {
  706. max-height: 90%;
  707. max-width: 90%;
  708. object-fit: cover;
  709. }
  710. }
  711. }
  712. .swiper-button-next, .swiper-button-prev {
  713. color: $mainColor;
  714. padding: 2rem;
  715. bottom: 5vh;
  716. top: unset;
  717. }
  718. #close-carousel {
  719. width: calc(#{$pictoSmallWidth} - 5px);
  720. height: calc(#{$pictoSmallHeight} - 5px);
  721. position: absolute;
  722. top: 5vh;
  723. right: 5vh;
  724. z-index: 10;
  725. }
  726. }
  727. }
  728. }
  729. footer {
  730. display: none;
  731. position: fixed;
  732. height: $footerHeightMobile;
  733. bottom: 0;
  734. align-items: center;
  735. justify-content: center;
  736. z-index: 1;
  737. width: 100vw;
  738. p {
  739. width: 100%;
  740. height: 100%;
  741. text-align: center;
  742. color: $bgColor;
  743. a {
  744. display: block;
  745. background: $mainColor;
  746. height: 100%;
  747. width: 100%;
  748. font-family: $titleFont;
  749. padding: $smallSize 0;
  750. color: $bgColor;
  751. }
  752. }
  753. }
  754. }
  755. @media only screen and (min-width: $minScreenWidthS) {
  756. body {
  757. header {
  758. nav {
  759. height: 100vh;
  760. }
  761. }
  762. main {
  763. #index-content {
  764. min-height: 80vh;
  765. display: flex;
  766. flex-direction: column;
  767. justify-content: center;
  768. #extrait-projets {
  769. >div {
  770. grid-template-columns: repeat(2, 1fr);
  771. div:last-of-type {
  772. overflow-x: hidden;
  773. text-align: right;
  774. grid-column-end: span 2;
  775. p {
  776. display: inline-block;
  777. .picto {
  778. margin-right: -6px;
  779. }
  780. }
  781. p:last-of-type span:first-of-type {
  782. margin-left: -5px;
  783. padding-left: 5px;
  784. }
  785. }
  786. }
  787. }
  788. #commanditaires-grid {
  789. width: auto;
  790. grid-template-columns: repeat(5, 1fr);
  791. }
  792. }
  793. #projets-index {
  794. width: auto;
  795. #filter-index {
  796. justify-content: start;
  797. flex-direction: row;
  798. max-width: 100%;
  799. p:last-of-type {
  800. margin-left: 8px;
  801. }
  802. }
  803. hr {
  804. margin-left: 0;
  805. width: 75%;
  806. }
  807. .projets-grid {
  808. width: 100%;
  809. display: grid;
  810. grid-template-columns: repeat(3, 1fr);
  811. gap: 0 10px;
  812. align-items: start;
  813. >div {
  814. width: 100%;
  815. }
  816. }
  817. }
  818. #reader {
  819. #close-project {
  820. width: $pictoInlineWidth;
  821. height: $pictoInlineHeight;
  822. top: 2.5vh;
  823. }
  824. #cover-image-mobile {
  825. display: none !important;
  826. }
  827. #cover-image {
  828. display: flex !important;
  829. margin-bottom: 5vh;
  830. }
  831. h2#main-project-title {
  832. font-size: $bigFontSizeDesktop;
  833. }
  834. #info-project {
  835. margin-top: -6vh;
  836. div {
  837. margin-top: 0;
  838. margin-bottom: 8vh;
  839. }
  840. }
  841. #project-description {
  842. font-size: $smallSize;
  843. margin-bottom: 5vh;
  844. }
  845. #project-images-grid {
  846. width: auto;
  847. display: grid;
  848. grid-template-columns: repeat(2, 1fr);
  849. grid-gap: 1em;
  850. figure {
  851. margin-top: 0;
  852. width: 100%;
  853. min-width: 40vw;
  854. img:not(.loader) {
  855. width: 100%;
  856. height: 100%;
  857. object-fit: cover;
  858. }
  859. }
  860. figure:last-child:nth-child(odd) {
  861. grid-column: span 2;
  862. }
  863. }
  864. #related-pages {
  865. #related-grid {
  866. display: grid;
  867. grid-template-columns: repeat(3, 1fr);
  868. width: auto !important;
  869. grid-column-gap: 10%;
  870. .card-displayed {
  871. margin-top: 2vh !important;
  872. width: 100%;
  873. figure {
  874. min-height: 80px !important;
  875. }
  876. }
  877. }
  878. p {
  879. margin-top: 3vh;
  880. margin-bottom: 6vh !important;
  881. }
  882. }
  883. .swiper {
  884. .swiper-button-next, .swiper-button-prev {
  885. bottom: unset;
  886. top: var(--swiper-navigation-top-offset,50%);
  887. }
  888. }
  889. }
  890. }
  891. footer {
  892. display: flex;
  893. align-items: center;
  894. justify-content: center;
  895. width: auto;
  896. padding: 0 15px;
  897. height: $footerHeightDesktop;
  898. right: $bodyMarginMobile;
  899. border-radius: 20px 20px 0 0;
  900. background-color: $mainColor;
  901. p {
  902. height: auto;
  903. font-size: $smallSize;
  904. a {
  905. padding: 0;
  906. background-color: transparent;
  907. }
  908. }
  909. }
  910. }
  911. }
  912. @media only screen and (min-width: $minScreenWidthM) {
  913. body {
  914. header {
  915. #nav-container {
  916. display: none;
  917. }
  918. nav {
  919. background-color: $bgColor;
  920. position: relative;
  921. top: 0;
  922. opacity: 1;
  923. height: $navHeight;
  924. justify-content: center;
  925. #crossMenu {
  926. display: none;
  927. }
  928. ul {
  929. width: calc(#{$bodyWidth} - 12px);
  930. max-width: $maxBodyWidth;
  931. flex-direction: row;
  932. li {
  933. width: auto;
  934. color: $mainColor;
  935. height: $smallSize;
  936. z-index: 0;
  937. a {
  938. display: inline;
  939. font-size: $smallSize;
  940. width: auto;
  941. margin: 0;
  942. padding: 0;
  943. @include transition-ease-out(color);
  944. }
  945. }
  946. li:hover a {
  947. color: $bgColor;
  948. }
  949. li.selected {
  950. a {
  951. color: $bgColor;
  952. background-color: transparent;
  953. }
  954. }
  955. li:after {
  956. content: "";
  957. display: block;
  958. position: relative;
  959. opacity: 0;
  960. height: 100%;
  961. width: 100%;
  962. $paddingX: 12px;
  963. $paddingY: 4px;
  964. padding: $paddingY $paddingX;
  965. transform: translateX(-#{$paddingX}) translateY(calc(-100% - 2px + #{$paddingY}));
  966. background-color: $mainColor;
  967. border-radius: 15px;
  968. z-index: -1;
  969. @include transition-ease-out(opacity);
  970. }
  971. .selected:after, li:hover:after {
  972. opacity: 1;
  973. }
  974. }
  975. }
  976. }
  977. header:after {
  978. height: $navGradientHeightDesktop;
  979. }
  980. main {
  981. display: flex;
  982. justify-content: center;
  983. margin-top: calc(#{$navHeight} + #{$navGradientHeightDesktop} + #{$sectionSpacing});
  984. #index-content > #extrait-projets figure a figcaption {
  985. background-color: $mainColor;
  986. color: $bgColor;
  987. }
  988. .content {
  989. width: $bodyWidth;
  990. padding: 0;
  991. .card-displayed figure a figcaption {
  992. opacity: 0;
  993. position: absolute;
  994. bottom: 0;
  995. left: 0;
  996. width: 100%;
  997. box-sizing: border-box;
  998. padding: 10px;
  999. color: $mainColor;
  1000. font-size: $tinySize;
  1001. border-radius: 0 0 10px 10px;
  1002. }
  1003. .culturelle-card figure a figcaption {
  1004. background-color: $color_culturelle;
  1005. }
  1006. .sociale-card figure a figcaption {
  1007. background-color: $color_sociale;
  1008. }
  1009. .publique-card figure a figcaption {
  1010. background-color: $color_publique;
  1011. }
  1012. }
  1013. .card-displayed:hover figure a figcaption {
  1014. opacity: 1;
  1015. }
  1016. #index-content {
  1017. #extrait-projets {
  1018. >div {
  1019. grid-template-columns: repeat(4, 1fr);
  1020. div:last-of-type {
  1021. grid-column-end: span 4;
  1022. }
  1023. }
  1024. }
  1025. #commanditaires-grid {
  1026. grid-template-columns: repeat(8, 1fr);
  1027. }
  1028. }
  1029. #projets-index {
  1030. width: $bodyWidth;
  1031. .projets-grid {
  1032. grid-template-columns: repeat(4, 1fr);
  1033. }
  1034. }
  1035. #text-content {
  1036. .text-item {
  1037. width: 70%;
  1038. }
  1039. .text-item:first-of-type {
  1040. position: absolute;
  1041. top: 0;
  1042. width: 20vw;
  1043. left: 82%;
  1044. img {
  1045. width: 70%;
  1046. margin-bottom: 5vh;
  1047. }
  1048. }
  1049. }
  1050. #reader {
  1051. margin-top: -10vh;
  1052. width: 60vw;
  1053. #header-project {
  1054. width: 100%;
  1055. h2 {
  1056. width: 100%;
  1057. padding: 0;
  1058. span {
  1059. padding-left: 20vw;
  1060. padding-top: 1.4vh;
  1061. height: $currentLineHeight;
  1062. }
  1063. }
  1064. #gradient-long-title {
  1065. right: 34.2vw;
  1066. }
  1067. }
  1068. #cover-image {
  1069. width: 66.666%;
  1070. box-sizing: border-box;
  1071. margin: 0 10vw;
  1072. }
  1073. #info-project {
  1074. width: 100%;
  1075. box-sizing: border-box;
  1076. padding: 0 10vw;
  1077. margin-top: 2vh;
  1078. margin-bottom: 4vh;
  1079. h2 {
  1080. min-width: 95%;
  1081. border-right: solid 1px rgba(0, 0, 0, $transparency);
  1082. margin-top: 0;
  1083. margin-bottom: 1vh;
  1084. }
  1085. div {
  1086. margin-bottom: 2vh;
  1087. }
  1088. }
  1089. .info-project-culturelle {
  1090. h2 {
  1091. line-height: $currentLineHeight !important;
  1092. }
  1093. }
  1094. #close-project {
  1095. width: $pictoSmallWidth;
  1096. height: $pictoSmallHeight;
  1097. top: calc(4vh + $pictoSmallHeight / 2);
  1098. right: calc(30vw - #{$pictoSmallWidth} - 2vw);
  1099. transform: scale(1, 1);
  1100. @include transition-ease-out(top, right, transform);
  1101. }
  1102. .scrolled-cross {
  1103. top: 1.4vh !important;
  1104. right: 20vw !important;
  1105. transform: scale(0.7, 0.7) !important;
  1106. }
  1107. #project-description {
  1108. padding: 0 10vw;
  1109. align-self: flex-start;
  1110. }
  1111. #project-images-grid {
  1112. width: auto;
  1113. margin-bottom: 6vh;
  1114. figure {
  1115. min-width: 15vw;
  1116. }
  1117. }
  1118. #related-pages {
  1119. hr {
  1120. margin-bottom: 4vh;
  1121. }
  1122. h3 {
  1123. margin-top: 0;
  1124. }
  1125. #related-grid {
  1126. width: 100%;
  1127. grid-column-gap: 3%;
  1128. div figure {
  1129. min-width: 10vw;
  1130. }
  1131. }
  1132. p {
  1133. align-self: flex-end;
  1134. }
  1135. }
  1136. }
  1137. }
  1138. footer {
  1139. height: $footerHeightDesktop;
  1140. width: auto;
  1141. right: 12%;
  1142. p {
  1143. width: inherit;
  1144. a {
  1145. font-size: $currentSize;
  1146. }
  1147. }
  1148. }
  1149. }
  1150. }
  1151. @media only screen and (min-width: $minScreenWidthL) {
  1152. body {
  1153. main {
  1154. #index-content {
  1155. #main-p-index {
  1156. p {
  1157. font-size: $bigFontSizeDesktop;
  1158. }
  1159. }
  1160. #arrow-container {
  1161. margin-top: $marginTopShortContent;
  1162. .picto {
  1163. width: $pictoExtraLargeWidth;
  1164. height: $pictoExtraLargeHeight;
  1165. }
  1166. }
  1167. }
  1168. #projets-index {
  1169. .projets-grid {
  1170. column-gap: 2em;
  1171. grid-template-columns: repeat(4, 1fr);
  1172. }
  1173. }
  1174. #reader {
  1175. #related-pages {
  1176. padding: 0 10vw;
  1177. box-sizing: border-box;
  1178. }
  1179. }
  1180. }
  1181. }
  1182. }