@import "home.css";

:root {
    --at-congres-services: var(--at-congres-primary);
    --at-congres-services-rgb: 103,51,126;
    --at-congres-services-contrast: white;
    --at-congres-hotellerie: #296589;
    --at-congres-hotellerie-rgb: 41,101,137;
    --at-congres-hotellerie-contrast: white;
    --at-congres-dd: #4c8759;
    --at-congres-dd-rgb: 76,135,89;
    --at-congres-dd-contrast: white;

    --at-label-spacing: .25rem;

    --at-list-item-bg: #ffffff;
    --at-list-item-bg-hover: rgba(0, 0, 0, .025);
    --at-list-item-border: 1px solid #dee2e6;
    --at-list-item-padding-y: .75em;
    --at-list-item-padding-x: 1em;
    --at-list-item-padding: var(--at-list-item-padding-y) var(--at-list-item-padding-x);

    --at-form-block-color-rgb: var(--at-primary-rgb);
    --at-form-block-color-contrast: var(--at-primary-contrast);
    --at-form-block-bg-opacity: .05;

    --at-form-block-padding-x: .75rem;
}

body {
    background-color: #f8f8f8;
}

.page-wrapper > .container {
    position: relative;
    background-color: #ffffff;
    text-align: left;
    box-shadow: 0 0 2rem rgba(0, 0, 0, 0.75);
    padding: min(1.5rem, 5vh) min(3rem, 5vw) !important;
    border-radius: .5rem;
}



/* ----- PAGE HEADER ----- */

header {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: .75rem;
    margin: min(3rem, 5vh) auto;
}

header .branding {
    box-shadow: none;
}

header .branding img {
    width: 120px;
    height: auto;
}

header h1 {
    flex: 1;
    margin-bottom: 0;
}

header h1 small {
    font-weight: normal;
}

header .certificats {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: min(1rem, 1vw);
}

header .certificats img {
    max-width: 48px;
}



/* ----- MAIN CONTENT ----- */

main {
    padding-top: 1.5rem;
}

.mandatory-info {
    color: var(--at-danger);
    font-size: small;
    line-height: 1.4;
    padding: 0 var(--at-form-block-padding-x);
    margin-bottom: 0;
}

form {
    margin-bottom: 1.5rem;
}

.form-block {
    background-color: transparent;
    box-shadow: 0 0 0 1px rgb(var(--at-form-block-color-rgb));
    padding: min(2rem, 4vw);
    margin-bottom: 2rem;
    border-radius: .6rem;
}

.block-title {
    display: block;
    padding: .6rem 1rem;
    background: rgb(var(--at-form-block-color-rgb));
    color: var(--at-form-block-color-contrast);
    font-weight: var(--at-font-medium);
    margin: -2rem -2rem 2rem;
    font-size: var(--at-font-size-h3);
    border-radius: .5rem .5rem 0 0;
}

.form-group {
    display: flex;
    flex-direction: column;
    padding: var(--at-list-item-padding);
    margin: 0;
}

.form-group > label,
.form-group .label-block {
    font-weight: var(--at-font-medium);
}

label {
    margin-bottom: var(--at-label-spacing);
}

label.required::after,
.required .fieldset-title > span::after,
.form-group.required > label::after,
.form-group.required .label-block::after {
    content: " *";
    color: var(--at-danger);
}

.group-required-proxy {
    padding: 0 !important;
}

fieldset {
    display: block;
    margin-top: 2em;
}

.fieldset-heading {
    position: relative;
    border-bottom: 2px solid;
    padding: .3rem;
    margin-bottom: .75em;
}

table .fieldset-heading {
    border: none;
    padding: 0;
    margin-bottom: 0;
}

.fieldset-title {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: baseline;
    font-size: var(--at-font-size-h4);
    font-weight: var(--at-font-bold);
    margin-bottom: 0;
}

.fieldset-title::before {
    content: "■";
    margin-right: .25em;
    color: rgb(var(--at-form-block-color-rgb));
}

.fieldset-info   {
    font-weight: normal;
    font-size: var(--at-font-size-base);
    margin-left: 1.25rem;
    margin-top: .25rem;
    font-style: italic;
}

.fieldset-intro {
    padding: 0 .3rem;
    margin-bottom: .75em;
}

.title-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 100%;
    padding: 5px;
    top: 1px;
    font-size: 1.6em;
    background-color: var(--at-primary);
    color: var(--at-primary-contrast);
}

.title-icon svg {
    vertical-align: unset;
}

label + .options-group {
    margin-top: 0;
}

.options-group .option {
    display: inline-flex;
    flex-direction: row;
    gap: .5rem;
    align-items: baseline;
    justify-content: flex-start;
    padding: var(--at-list-item-padding);
}

.options-group.options-list .option {
    margin: 0;
    width: calc(100% - 1.5rem);
    align-items: center;
}

.options-group.options-list .option:hover {
    background-color: var(--at-list-item-bg-hover);
}

.options-group.options-list .option:not(:last-child) {
    border-bottom: 1px solid rgba(0,0,0,.1);
}

.options-group .option label {
    margin: 0;
}

input {
    accent-color: var(--at-primary);
}

.form-block input {
    accent-color: rgb(var(--at-form-block-color-rgb));
}

.radio-group {
    display: flex;
    flex-direction: row;
    gap: 1.5rem;
}

input[type="number"], select, input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="date"], textarea {
    width: 100%;
    padding: .5rem;
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: .5em;
    transition: border-color 0.3s;
}

input[type="number"], select, input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="date"], textarea, .rank-item {
    /*outline-color: rgb(var(--at-form-block-color-rgb));*/
    outline-color: #b4c4d1;
}

input[type="date"] {
    width: fit-content;
}

textarea {
    min-height: 4.4em;
    height: unset !important;
    field-sizing: content;
}

select.readonly {
    pointer-events: none;
    background-color: #e9ecef;
}

input[type="checkbox"].readonly {
    pointer-events: none;
    accent-color: #adb5bd;
    cursor: not-allowed;
}

.btn-submit {
    padding: 1rem 4rem !important;
    width: fit-content !important;
    margin: 1.5rem auto !important;
}





/* TABLES */

table tbody tr > * {
    position: relative;
    font-weight: unset;
}




/* LIST ITEM */

.list-item {
    background-color: var(--at-list-item-bg);
    border: var(--at-list-item-border);
    border-radius: .5em;
}

.list-item:hover {
    background-color: var(--at-list-item-bg-hover);
}

.list-item:not(tr), tr.list-item > * {
    padding: var(--at-list-item-padding);
}




/* RATING */

.table-rating:not(:last-child) {
    margin-bottom: 1rem;
}

.table-rating thead td {
    width: min(7rem, 10vw);
    vertical-align: bottom;
    text-align: center;
    line-height: 1.2;
    font-size: .7rem;
    font-weight: var(--at-font-medium);
    text-transform: uppercase;
}

.table-rating tbody tr > * {
    border: none;
}

.table-rating tbody .matrix-heading {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
}

.table-rating tbody td {
    padding: 0;
}

.table-rating tbody label {
    margin: 0;
}

.table-rating tbody td > label {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.table-rating tbody td > label:hover {
    background-color: rgba(0, 0, 0, .02);
}




/* RANKING */

.rank-list {
    position: relative;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rank-list.ranking-locked .rank-item:not(.ranking-unlock) {
    pointer-events: none;
}

.rank-item {
    position: relative;
    margin-bottom: .25em;
}

.rank-item[draggable="true"] {
    padding-left: .25em;
    cursor: grab;
}

.rank-item[draggable="true"]:active {
    cursor: grabbing;
}

.rank-item.dragging {
    opacity: .4;
    transform: translateX(.5rem);
}

.rank-list.ranking-locked .rank-item {
    padding-left: .75rem;
}

.rank-list.ranking-locked .rank-item:not(:last-child) {
    margin-bottom: -1px;
}

.rank-list.ranking-locked .rank-item:first-child {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.rank-list.ranking-locked .rank-item:last-child {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.rank-list.ranking-locked .rank-item:not(:first-child):not(:last-child) {
    border-radius: 0;
}

.rank-item .grip-icon {
    color: #c1c1c1;
}

.rank-item .grip-icon {
    margin-right: -.5rem;
}

.rank-list .ranking-unlock {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0;
    z-index: 2;
}

.rank-list .ranking-unlock .btn-rank-edit {
    display: flex;
    height: 100%;
    width: 100%;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .7);
    color: var(--at-info) !important;
    opacity: 0;
    transition: opacity .3s ease;
    text-decoration: none;
    border-radius: .5rem;
}

.rank-list .ranking-unlock .btn-rank-edit:hover,
.rank-list .ranking-unlock .btn-rank-edit:focus {
    opacity: 1;
}

.rank-list:not(.ranking-locked) .ranking-unlock,
.rank-list:not(.ranking-locked) + .rank-actions-bar .btn-unlock,
.rank-list.ranking-locked .rank-controls,
.rank-list.ranking-locked .rank-item .grip-icon {
    display: none;
}

.rank-item .rank-num {
    width: 2.2ch;
    display: inline-block;
    text-align: right;
    font-weight: var(--at-font-bold);
}

.rank-controls {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
}

.rank-item .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    box-sizing: content-box;
    padding: .25em;
    background: transparent;
    border: none;
}

.rank-list .btn .icon {
    margin: 0 !important;
    top: unset;
    font-size: inherit !important;
    transform: translateY(-1px);
}

.rank-actions-bar {
    padding: .5rem .25rem;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .75em;
}

.rank-actions-bar .btn {
    transition: all .2s ease;
}

.rank-actions-bar .btn .icon {
    font-size: 1em !important;
    top: -.1em;
}

.rank-actions-bar .locked-message {
    display: none;
    font-size: small;
    color: #6c757d;
}

.rank-actions-bar .locked-message .icon {
    color: var(--at-success);
}

.rank-list.ranking-locked + .rank-actions-bar .locked-message {
    display: inline-block;
}

.rank-actions-bar .btn-rank-confirm {
    border-color: var(--at-success);
    background-color: var(--at-success);
    color: var(--at-success-contrast) !important;
}

.rank-actions-bar .btn-rank-confirm:hover,
.rank-actions-bar .btn-rank-confirm:focus {
    filter: brightness(105%);
}

.btn-unlock {
    background: var(--at-info);
    color: var(--at-info-contrast) !important;
    border-color: var(--at-info);
}

.rank-actions-bar .btn-unlock {
    padding: 0;
    background: none;
    border: none;
    color: var(--at-info) !important;
}

.rank-actions-bar .btn-unlock span:not(.icon) {
    text-decoration: underline;
}

.rank-actions-bar .btn-unlock:hover,
.rank-actions-bar .btn-unlock:focus {
    filter: brightness(110%);
}




/* BLOCS SPECIFIQUES */

#block_informations_generales .block-title,
#section_informations_client .fieldset-heading,
#block_conclusion .block-title {
    /* Copie des styles .sr-only */
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

#block_informations_generales .block-title + fieldset,
#block_conclusion .block-title + fieldset {
    margin-top: 0;
}

#section_informations_client {
    margin-left: calc(-1 * var(--at-form-block-padding-x));
    margin-right: calc(-1 * var(--at-form-block-padding-x));
}

#section_origine_connaissance label[for$="_autre"] + div[id$="_autre"] .form-group {
    position: relative;
    padding-top: 0;
    border-top: 1px solid white;
    border-bottom: 1px solid rgba(0,0,0,.1);
    margin-top: -1px;
    z-index: 2;
}

#block_services,
#block_hotellerie,
#block_dd {
    --at-list-item-bg-hover: rgba(255, 255, 255, .5);
    background-color: rgba(var(--at-form-block-color-rgb), var(--at-form-block-bg-opacity));
}

#block_informations_generales,
#block_conclusion {
    box-shadow: none;
    padding-left: var(--at-form-block-padding-x);
    padding-right: var(--at-form-block-padding-x);
    border: none;
}

#block_conclusion {
    margin-bottom: 0;
    padding-bottom: 0;
}




/* RESPONSIVE */

@media (max-width: 768px) {
    .table-rating tbody .matrix-heading {
        word-break: break-all;
    }

    .table-rating thead td {
        text-align: left;
        padding-top: .5rem;
        writing-mode: vertical-lr;
        transform: scale(-1);
        vertical-align: middle;
    }

    .table-rating thead td span {
        transform: rotate(20deg) translate(-10px, 2px);
        display: inline-block;
    }
}

@media (min-width: 769px) {
    header {
        flex-direction: row;
        align-items: flex-start;
    }

    header .branding img {
        width: min(135px, 13vw);
    }

    header .certificats img {
        max-width: min(80px, 6vw);
    }

    header h1 {
        font-size: min(2.2rem, 3vw);
    }

    #section_origine_connaissance .options-list {
        column-count: 2;
    }

    .table-rating tbody .matrix-heading {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        gap: .75rem;
    }
}

