/* ==========================================================================
   Tablet styles — applies at viewport widths up to 1280px.
   Loaded after styles.css, so rules here override the desktop base.
   ========================================================================== */

@media (max-width: 1280px) {
  body {
    padding-top: 64px;
  }

  .ui-header .ui-header-nav {
    display: none;
  }

  /* header  */
  .ui-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
  }

  .ui-header .ui-mobile-header {
    display: flex;
    justify-content: space-between;
    padding-block: 20px;
    padding-inline: 15px;
    align-items: center;
    background: #111111;
  }

  .ui-header .ui-mobile-header .ui-logo img {
    width: 125px;
    height: auto;
    aspect-ratio: 117/24;
    object-fit: contain;
  }

  .ui-header .ui-mobile-header .ui-mobile-menu-toggle {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
  }

  .ui-header .ui-mobile-header .ui-mobile-menu-toggle svg {
    width: 29px;
    height: 16px;
  }

  .ui-header .ui-mobile-header .ui-logo {
    display: flex;
    align-items: center;
  }

  .ui-nav-submenu-wrapper {
    display: none;
  }
  /* end header  */
  /* event info bars  */

  .ui-event-info-bars .ui-event-info-bar-1 {
    max-width: 254px;
    padding: 10px;
  }

  .ui-event-info-bars .ui-event-info-bar-1 .ui-ei-content {
    max-width: 168px;
  }

  .ui-event-info-bars .ui-event-info-bar-1 .ui-ei-content p {
    font-size: 12px;
  }

  .ui-event-info-bars .ui-event-info-bar-1 .ui-ei-vectors svg:first-child {
    width: 32px;
    height: 33px;
  }

  .ui-event-info-bars .ui-event-info-bar-1 .ui-ei-vectors svg:last-child {
    width: 31px;
    height: 33px;
    bottom: -5px;
  }

  .ui-event-info-bars .ui-event-info-bar-1 .ui-ei-vectors {
    left: 15px;
  }

  .ui-event-info-bars .ui-event-info-bar-2 {
    max-width: 320px;
    padding-block: 7px;
    padding-inline: 10px;
  }

  .ui-event-info-bars .ui-event-info-bar-2 .ui-ei-content p {
    font-size: 12px;
    /* margin-bottom: 15px; */
  }

  .ui-event-info-bars .ui-event-info-bar-2 .ui-ei-content p:first-child {
    margin-bottom: 15px;
  }

  .ui-event-info-bars .ui-event-info-bar-2 .ui-ei-content h3 {
    font-size: 28px;
  }

  .ui-event-info-bars .ui-event-info-bar-2 .ui-ei-vectors svg {
    width: 31px;
    height: 33px;
  }

  .ui-event-info-bars .ui-event-info-bar-2 .ui-ei-vectors svg:first-child {
    top: -4px;
  }

  .ui-event-info-bar-3 {
    padding: 12px;
    max-width: 154px;
  }

  .ui-event-info-bar-3 p {
    font-size: 16px;
  }

  /* banner  */

  .ui-banner-video-wrapper .ui-banner-small-video {
    display: none;
  }

  .ui-banner-video-wrapper {
    height: auto; /* the desktop viewport height and cap stop here */
    max-height: none;
    min-height: 429px; /* fixed minimum on tablet (desktop is 810px) */
  }

  .ui-banner-video-wrapper .ui-logo {
    display: none;
  }
  /* end banner  */

  /* menu mobile  */
  .ui-mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: #000;
    overflow: hidden;
    z-index: 9999;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
  }

  .ui-mobile-menu.is-open {
    transform: translateX(0);
  }

  .ui-mobile-menu ul {
    margin: 0;
    list-style: none;
    padding: 0;
  }

  .ui-mobile-menu .ui-mobile-menu-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 10px;
    border-bottom: 1px solid #343434;
  }

  .ui-mobile-menu .ui-mobile-menu-head .ui-logo {
    display: flex;
  }

  .ui-mobile-menu .ui-mobile-menu-head .ui-logo img {
    width: 125px;
    height: auto;
    aspect-ratio: 117/24;
  }

  .ui-mobile-menu .ui-mobile-menu-head .ui-mmh-actions {
    display: flex;
    align-items: center;
    gap: 50px;
  }

  .ui-mobile-menu .ui-mobile-menu-head .ui-mmh-actions .ui-mmh-langs ul {
    display: flex;
    color: rgba(158, 158, 158, 1);
    font-family: 'Neue Montreal';
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
    gap: 3px;
  }

  .ui-mobile-menu .ui-mobile-menu-head .ui-mmh-actions .ui-mmh-langs ul li a {
    text-transform: uppercase;
    text-decoration: none;
  }

  .ui-mobile-menu
    .ui-mobile-menu-head
    .ui-mmh-actions
    .ui-mmh-langs
    ul
    li.active
    a {
    color: #c3ff74;
  }

  .ui-mobile-menu .ui-mobile-menu-head .ui-mmh-actions .ui-mmh-langs ul li a {
    color: rgba(158, 158, 158, 1);
  }

  .ui-mobile-menu
    .ui-mobile-menu-head
    .ui-mmh-actions
    .ui-mmh-langs
    ul
    li.active {
    color: #fff;
  }

  .ui-mobile-menu .ui-mobile-menu-head .ui-mmh-actions .ui-mobile-menu-close {
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    padding: 0;
  }

  .ui-mmh-markee {
    overflow: hidden;
    padding-block: 8px;
    border-bottom: 1px solid #343434;
  }

  .ui-mmh-markee-track {
    display: flex;
    width: max-content;
    animation: ui-marquee 14s linear infinite;
  }

  .ui-mmh-markee-items {
    display: flex;
    align-items: center;
    justify-content: space-around;
    gap: 18px;
    padding-right: 18px;
    /* Each copy fills at least the viewport so the loop never shows a gap on
       wider (tablet) screens; on phones the content is already wider, so
       space-around adds nothing and the tight spacing is kept. */
    min-width: 100vw;
  }

  .ui-mmh-markee p {
    color: #c3ff74;
    font-family: 'Neue Montreal';
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .ui-mmh-markee svg {
    width: 10px;
    height: 10px;
    display: block;
    min-width: 10px;
  }

  @keyframes ui-marquee {
    from {
      transform: translateX(0);
    }
    to {
      transform: translateX(-50%);
    }
  }

  .ui-mmh-body ul li {
    padding: 25px 20px;
    border-bottom: 1px solid #343434;
  }

  .ui-mmh-body ul li a {
    color: #fff;
    font-family: 'Neue Montreal';
    font-size: 30px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
    text-decoration: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 5px;
  }

  .ui-mmh-body ul li p {
    color: #575757;
    font-family: 'Neue Montreal';
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
  }

  .ui-mobile-menu .ui-mmh-cta {
    background: #c3ff74;
    height: 62px;
    width: 100%;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #000;
    text-align: right;
    font-family: 'Neue Montreal';
    font-size: 22px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
    gap: 10px;
  }

  /* sub menu  */
  .ui-submenu-wrapper {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
    padding-block: 20px;
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
    overflow-y: auto;
  }

  .ui-submenu-wrapper.is-open {
    transform: translateX(0);
  }

  .ui-submenu-wrapper .ui-submenu-header a {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 5px;
  }

  .ui-submenu-wrapper .ui-submenu-header a span {
    color: #111;
    font-family: 'Neue Montreal';
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
  }

  .ui-submenu-wrapper .ui-submenu-header h3 {
    color: #111;
    font-family: 'Neue Montreal';
    font-size: 30px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
  }

  .ui-submenu-wrapper .ui-submenu-header {
    padding-bottom: 10px;
    border-bottom: 1px solid #343434;
    padding-inline: 10px;
    margin-bottom: 15px;
  }

  .ui-submenu-body .ui-sm-group-links label {
    color: #575757;
    font-family: 'Neue Montreal';
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
    padding-inline: 10px;
  }

  .ui-submenu-body .ui-sm-group-links ul li a {
    display: flex;
    justify-content: space-between;
    padding: 10px;
    color: #111;
    font-family: 'Neue Montreal';
    font-size: 18px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(17, 17, 17, 0.5);
  }

  .ui-submenu-body .ui-sm-group-links {
    margin-bottom: 25px;
  }

  .ui-submenu-body .ui-sm-group-links ul li a svg {
    width: 11px;
    height: 11px;
  }

  /* menu mobile  */
  /* engagement */
  .ui-engagement-wrapper .ui-engagement-row .ui-engagement-title h3 {
    font-size: 31px;
  }

  .ui-engagement-wrapper .ui-engagement-row .ui-engagement-title {
    min-width: 280px;
  }

  .ui-engagement-wrapper .ui-engagement-row {
    gap: 35px;
  }

  .ui-engagement-wrapper
    .ui-engagement-row
    .ui-engagement-content
    .ui-engagement-text {
    font-size: 18px;
    line-height: normal;
  }

  .ui-engagement-wrapper
    .ui-engagement-row
    .ui-engagement-content
    .ui-engagement-states
    .ui-engagement-state
    h4 {
    font-size: 40px;
  }

  .ui-engagement-wrapper
    .ui-engagement-row
    .ui-engagement-content
    .ui-engagement-states {
    gap: 20px;
  }

  .ui-engagement-wrapper
    .ui-engagement-row
    .ui-engagement-content
    .ui-engagement-states
    .ui-engagement-state {
    width: calc(50% - 10px);
  }
  /* end engagement  */
  .footer-left {
    padding: 30px 20px;
    gap: 40px;
  }
  .footer-header {
    gap: 13px;
    font-size: 28px;
    line-height: 34px;
  }
  .footer-header .line {
    height: 4px;
  }
  .footer-right {
    display: none;
  }
  .footer-left .futur-section {
    gap: 33px;
    margin-top: 40px;
  }
  .footer-left .futur-section h3 {
    font-size: 25px;
    line-height: 18px;
  }
  .footer-left .futur-section .be-part {
    margin-top: 14px;
    gap: 5px;
  }
  .footer-left .futur-section .be-part img {
    width: 20px;
    height: 20px;
  }
  .footer-left .futur-section .be-part p {
    padding: 3px 10px;
    font-size: 18px;
    line-height: 19px;
    margin-top: 0px;
  }
  .footer-left .futur-section p {
    font-size: 16px;
  }
  .footer-left .footer-links {
    display: flex;
    justify-content: space-between;
    gap: 20px;
  }
  .footer-left .footer-links ul li {
    font-size: 16px;
    line-height: 19px;
  }
  .footer-copyright {
    padding: 20px;
  }
  .footer-copyright img {
    width: 40px;
    height: 32px;
  }
  .footer-copyright p {
    font-size: 16px;
    line-height: 19px;
  }

  /* recap  */
  .ui-recap {
    height: auto; /* the desktop viewport height and cap stop here */
    max-height: none;
    min-height: 432px; /* fixed minimum on tablet (desktop is 990px) */
  }
  .ui-recap .ui-recap-text {
    display: none;
  }
  /* end recap  */

  /* programmes  */
  .ui-programmes .ui-programmes-inner {
    position: sticky;
    top: var(--header-h, 64px);
    /* height comes from the content (heading + cards); the cards carry the
       minimum, and main.js measures this box for the scroll runway */
    overflow: hidden;
  }
  .ui-programmes .ui-programmes-cols {
    width: max-content;
    will-change: transform;
  }
  .ui-programmes .ui-programmes-col {
    flex: 0 0 45vw;
    height: auto; /* the desktop viewport height and cap stop here */
    max-height: none;
    min-height: 542px; /* fixed minimum on tablet (desktop is 720px) */
    padding: 40px 20px;
  }
  .ui-programmes .ui-programmes-col .ui-programmes-col-title {
    font-size: 30px;
  }
  .ui-programmes .ui-programmes-col .ui-programmes-col-badge {
    font-size: 18px;
  }
  .ui-programmes .ui-programmes-col .ui-programmes-col-text {
    font-size: 16px;
  }
  /* end programmes  */
  /* ui-theme */
  .ui-theme .ui-theme-right {
    display: none;
  }

  /* list becomes a row: ul takes the rest, black arrow (271px) on the right */
  .ui-theme .ui-theme-list {
    display: flex;
    flex-direction: row-reverse;
    align-items: flex-end;
    gap: 74px;
  }

  .ui-theme .ui-theme-list ul {
    flex: 1;
  }

  .ui-theme .ui-theme-black-arrow {
    /* thickness kept proportional to the 271px block (≈ SVG 173/721 ratio) */
    --arrow-thickness: 65px;
    display: block;
    flex: 0 0 271px;
    width: 271px;
    aspect-ratio: 1 / 1;
    position: relative;
    overflow: hidden;
    background: #c3ff74;
  }

  /* reversed colors — green block, black arrow bars */
  .ui-theme .ui-theme-black-arrow .ui-theme-arrow-top,
  .ui-theme .ui-theme-black-arrow .ui-theme-arrow-right,
  .ui-theme .ui-theme-black-arrow .ui-theme-arrow-diagonal {
    background: #111;
  }

  /* blue circle CTA overlaid on top of the black arrow (tablet only) */
  .ui-theme .ui-theme-black-arrow .ui-theme-arrow-circle {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: #0082fe;
    color: #fff;
    text-align: right;
    font-family: 'Neue Montreal';
    font-size: 20px;
    font-weight: 500;
    line-height: normal;
    text-transform: uppercase;
  }
  .ui-theme {
    padding: 40px 20px;
    padding-bottom: 0;
    padding-right: 0;
  }

  .ui-theme .ui-theme-desc {
    padding-right: 20px;
  }

  .ui-theme .ui-theme-title h2 {
    font-size: 40px;
  }

  .ui-theme .ui-theme-desc p {
    font-size: 16px;
  }

  .ui-theme .ui-theme-list li {
    font-size: 25px;
  }

  .ui-theme .ui-theme-list ul {
    margin-bottom: 25px;
  }
  .ui-theme .ui-theme-right .ui-theme-arrow-circle {
    display: none;
  }
  /* end ui-theme */

  /* speakers — drop the checkerboard, use a simple grid */
  .ui-speakers {
    padding-inline: 20px;
    padding-top: 60px;
  }
  .ui-speakers .ui-speakers-title h2 {
    font-size: 40px;
  }

  .ui-speakers .ui-speakers-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
  }

  .ui-speakers .ui-speakers-track > .ui-speakers-card:nth-child(n) {
    grid-area: auto;
  }
  .ui-speakers .ui-speakers-cta {
    grid-area: auto;
  }
  .ui-speakers .ui-speakers-title {
    margin-bottom: 40px;
  }
  .ui-speakers .ui-speakers-card .ui-speakers-card-info h3 {
    font-size: 20px;
  }

  .ui-speakers .ui-speakers-card .ui-speakers-card-info {
    padding: 10px;
  }

  .ui-speakers .ui-speakers-card .ui-speakers-card-info p {
    font-size: 12px;
  }

  .ui-speakers .ui-speakers-cta p {
    font-size: 18px;
  }

  .ui-speakers .ui-speakers-cta .ui-speakers-cta-btn {
    font-size: 16px;
  }

  .ui-speakers .ui-speakers-cta .ui-speakers-cta-count {
    font-size: 16px;
  }
  /* end speakers */

  /* companies — left column stacks on top, centered, arrow hidden */
  .ui-companies .ui-companies-inner {
    flex-direction: column;
  }

  .ui-companies .ui-companies-left .ui-companies-head {
    position: static;
    text-align: center;
    margin-bottom: 40px;
  }

  .ui-companies .ui-companies-arrow {
    display: none;
  }

  .ui-companies .ui-companies-label span {
    font-size: 18px;
  }

  .ui-companies .ui-companies-title h2 {
    font-size: 40px;
  }

  .ui-companies {
    padding-top: 0;
  }

  .ui-companies .ui-companies-cta {
    padding: 14px;
  }

  .ui-companies .ui-companies-cta .ui-companies-cta-count {
    font-size: 14px;
  }
  /* end companies */

  /* activities — image full, colored bar (title + arrow) over image bottom */
  .ui-activities {
    padding-top: 0;
    padding-bottom: 0;
  }

  .ui-activities .ui-activities-head {
    max-width: 614px;
  }

  .ui-activities .ui-activities-label span {
    font-size: 18px;
  }

  .ui-activities .ui-activities-title h2 {
    font-size: 40px;
  }

  .ui-activities .ui-activities-title {
    margin-bottom: 40px;
  }

  .ui-activities .ui-activities-grid {
    gap: 20px;
  }

  .ui-activities .ui-activities-card {
    display: block;
    min-height: 331px;
  }

  .ui-activities .ui-activities-card-media img {
    height: 261px;
    aspect-ratio: 413 / 275;
  }

  /* body becomes the bottom overlay bar; the big title is hidden */
  .ui-activities .ui-activities-card-body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0;
    gap: 0;
  }

  .ui-activities .ui-activities-card-body h3 {
    display: none;
  }

  .ui-activities .ui-activities-explore {
    width: 100%;
    height: auto;
    margin-top: 0;
    padding: 26px 15px 26px 8px;
    justify-content: space-between;
    background: var(--card-bg);
  }

  /* swap the bar text: hide "Explorer plus", show the activity name */
  .ui-activities .ui-activities-explore-label {
    display: none;
  }

  .ui-activities .ui-activities-explore-name {
    display: inline;
    color: #fff;
    font-family: 'Neue Montreal';
    font-size: 25px;
    font-style: normal;
    font-weight: 400;
    line-height: 120%;
    text-transform: capitalize;
  }

  .ui-activities .ui-activities-explore svg {
    width: 20px;
    height: 20px;
    aspect-ratio: 1 / 1;
  }

  .ui-activities .ui-activities-explore svg path {
    fill: #fff;
  }
  /* end activities */

  /* partners — smaller cards, hover state is the default, CTA arrow hidden */
  .ui-partners {
    padding-top: 60px;
  }

  /* center the head + cards as one group (track no longer fills the height) */
  .ui-partners .ui-partners-inner {
    justify-content: center;
    height: auto; /* the desktop viewport height and cap stop here */
    max-height: none;
    min-height: 430px; /* fixed minimum on tablet (desktop is 685px) */
  }

  .ui-partners .ui-partners-track {
    flex: 0 0 auto;
  }

  .ui-partners .ui-partners-title h2 {
    font-size: 40px;
  }

  .ui-partners .ui-partners-head {
    margin-bottom: 40px;
  }

  /* cards: always colored + pill visible (hover deactivated) */
  .ui-partners .ui-partners-card {
    width: 250px;
    height: 250px;
    max-height: none;
    aspect-ratio: 1 / 1;
    background: var(--hover-bg);
  }

  .ui-partners .ui-partners-card .ui-partners-visit {
    opacity: 1;
  }

  /* CTA: hide the arrow box, content becomes a square like the other cards */
  .ui-partners .ui-partners-cta {
    height: 250px;
  }

  .ui-partners .ui-partners-cta-arrow {
    display: none;
  }

  .ui-partners .ui-partners-cta-content {
    flex: 0 0 250px;
    width: 250px;
  }

  .ui-partners .ui-partners-cta-content p {
    font-size: 18px;
  }

  .ui-partners .ui-partners-cta-btn {
    font-size: 18px;
    padding: 10px 20px;
    gap: 10px;
  }

  .ui-partners .ui-partners-cta-count {
    font-size: 18px;
    height: 30px;
    padding: 0 10px;
    gap: 10px;
  }
  /* end partners */

  /* infolettre */
  .ui-infolettre .ui-infolettre-title h2 {
    font-size: 25px;
  }

  .ui-infolettre .ui-infolettre-input {
    width: 223px;
  }

  .ui-infolettre .ui-infolettre-submit {
    width: 164px;
  }
  /* end infolettre */

  .ui-reservation{
    padding-block: 254px;
  }

  .ui-reservation .reservation-title {
    font-size: 63px;
    max-width: 655px;
  }
}
