@font-face { font-family: 'Roboto'; font-weight: 300; src: url('../fonts/Roboto-Light.woff'); }
@font-face { font-family: 'Roboto'; font-weight: 400; src: url('../fonts/Roboto-Regular.woff'); }
@font-face { font-family: 'Roboto'; font-weight: 500; src: url('../fonts/Roboto-Medium.woff'); }
@font-face { font-family: 'Roboto'; font-weight: 700; src: url('../fonts/Roboto-Bold.woff'); }

*, *::before, *::after { box-sizing: border-box; }

:root {
--red: #e73937;
--black: #2b2b2b;
--grey: #d1d1d1;
--lightgrey: #f6f6f6;
--silver: #ebebeb;
--blue: #3977e5;
--green: #219653;
--radius: 20px;
--smallradius: 8px;
--shadow-soft: 0 2px 6px rgba(0, 0, 0, 0.05);
--shadow-hard: rgba(0, 0, 0, 0.2) 0px 0px 10px 0px;
}

html {
scroll-behavior: smooth;
overflow-y: scroll;
}

body {
min-height: 100vh;
margin: 0px;
padding-top: 74px;
font-family: Roboto, Arial, sans-serif;
line-height: 1.5;
color: var(--black);
display: flex;
flex-direction: column;
}

main {
flex: 1;
}

a {
color: var(--red);
text-decoration: none;
}
a:hover {
color: #ad1c29;
}

.darklink {
color: var(--black);
}
.darklink:hover {
color: #ad1c29;
}

p {
margin: 0.8em 0em;
}

strong {
font-weight: 700;
}

h1, .h1 {
display: inline-block;
font-size: 2.3rem;
font-weight: 400;
line-height: 1.2;
margin: 0px;
}
h1:after, .h1:after {
float: left;
content: "";
width: 100%;
height: 8px;
background-color: var(--red);
border-radius: var(--radius);
margin-bottom: 30px;
margin-top: 5px;
}
h3 {
margin: 0px;
}

.cta1, .cta2 {
display: inline-block;
font-size: 1em;
font-weight: 500;
line-height: 1.2;
padding: 10px 25px;
background: transparent;
border-radius: 50vh;
transition: all 0.2s;
font-family: inherit;
border: 0px;
cursor: pointer;
white-space: nowrap;
}
.cta1 {
border: 2px solid var(--black);
color: var(--black);
}
.cta2 {
border: 2px solid var(--red);
background-color: var(--red);
color: white;
}
.cta1:hover, .cta2:hover {
color: var(--red);
border: 2px solid var(--red);
background-color: transparent;
}

.ctas {
margin: 16px 0px;
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 14px;
}


/* Header items */

.header {
position: fixed;
top: 0;
z-index: 1001;
width: 100%;
background: #fff;
box-shadow: var(--shadow-hard);
}

.header-inner {
max-width: 1600px;
margin: 0 auto;
display: flex;
align-items: center;
padding: 20px clamp(16px, 5vw, 30px);
transition: all .5s ease-in-out;
}
.header-inner.scrolled {
padding: 10px clamp(16px, 5vw, 30px);
}

.logo {
height: 66px;
transition: all .5s ease-in-out;
}
.header-inner.scrolled .logo {
height: 50px;
}

.header-right{
margin-left: auto;
display: flex;
align-items: center;
}

.nav-list{
display: flex;
align-items:center;
justify-content:flex-end;
flex-wrap: wrap;
list-style:none;
margin:0;
padding:0;
white-space:nowrap;
}

.details{
position: relative;
}
.details > summary{
cursor: pointer;
list-style: none;
}
.details > summary::-webkit-details-marker{ display:none; }

.panel{
position: absolute;
right: 0px;
top: calc(100% + 8px);
min-width: 200px;
background: #fff;
border: 1px solid rgba(0,0,0,.12);
border-radius: var(--smallradius);
padding: 6px;
box-shadow: var(--shadow-soft);
display: none;
}
.details[open] .panel{ display:block; }

.panel a,
.panel button{
display:block;
width: 100%;
text-align: left;
padding: 10px 12px;
border-radius: var(--smallradius);
text-decoration:none;
background: transparent;
border: 0;
}

.lang__btn{
display: inline-flex;
align-items: center;
}
@media (max-width: 900px){
.nav-item--desktop{ display:none; }
.lang--desktop{ display:none; }
.nav-more{ display: list-item !important; }

}

.menu-item {
display: block;
font-weight: 500;
font-size: 0.95rem;
line-height: 1.2;
color: var(--black);
padding: 10px clamp(8px, calc((100vw - 800px) * 0.05), 18px);
transition: all 0.2s;
border-radius: 50vh;
white-space: nowrap;
}
.menu-item:hover, .menu-item.active {
color: var(--red);
}
.menu-item.red {
margin-left: 10px;
}
.menu-item.red:hover, .menu-item.red.active {
background-color: white;
color: var(--red);
box-shadow: 0px 0px 0px 2px var(--red) inset;
}

.menu_icon {
vertical-align: -15%;
margin-left: 5px;
height: 16px;
width: 16px;
fill: none;
stroke: white;
stroke-width: 11;
transition: all 0.2s;
}
.menu-item:hover .menu_icon, .menu-item.active .menu_icon {
stroke: var(--red);
}



/* content */

.content {
width: 100%;
scroll-margin-top: 90px;
}

.container {
max-width: 1400px;
padding: 80px clamp(16px, 5vw, 30px);
margin: 0px auto;
}

table {
width: 100%;
border-collapse: collapse;
}



/* Buttons Title Image */

.bg1 {
background-image: url(../images/bg_placeholder.png);
background-repeat: no-repeat;
background-position: center;
background-size: cover;

padding-top: calc(70px + 75px);
padding-bottom: 35px; 
}

.title-row {
display: flex;
justify-content: space-between;
align-items: flex-start;
}

.title-left {
flex: 1;
}

.title-right {
flex: 0 0 50%;
text-align: right;
}

.title_title {
color: white;
font-size: 2.5rem;
}

.title_text {
color: white;
font-size: 1.1rem;
line-height: 1.7;
margin: 32px 0px;
}

.title-ctas {
display: flex;
flex-wrap: nowrap;
gap: 20px;
margin-top: 20px;
}

.title-cta {
width: 35%;
min-width: 190px;
padding: 20px;
border-radius: var(--radius);
color: white;
font-size: 1.2em;
font-weight: 500;
backdrop-filter: blur(5px);
background-color: rgba(200, 200, 200, 0.5);
transition: all 0.2s;
}

.title-cta:hover {
color: white;
transform: translateY(-3px);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
filter: brightness(110%);
}

.title-icon {
display: block;
width: 40px;
height: 40px;
fill: white;
stroke: white;
stroke-width: 0;
margin-bottom: 12px;
}

@media (max-width: 768px) {

	.logo {
	height: 50px;
	}

	.bg1 {
	padding-top: 20px;
	}

	.title-row {
	flex-direction: column;
	}

	.title-right {
	display: none;
	}

	.title-ctas {
	width: 100%;
	justify-content: space-between;
	flex-wrap: wrap;
	}

	.title-cta {
	flex: 1 1 calc(50% - 10px);
	min-width: 150px;
	text-align: left;
	}

	.container {
	padding-top: 60px;
	}

}



/* Service Cards */

.services {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
gap: 25px;
}

.service {
background-size: cover;
color: var(--black);
display: block;
height: 200px;
padding: 20px;
border-radius: var(--radius);
transition: all 0.2s ease;
position: relative;
}
.service:hover {
opacity: 0.8;
color: var(--red);
}

.service_link {
display: flex;
align-items: center;
gap: 6px; 
background-color: white;
font-size: 0.94em;
font-weight: 400;
padding: 6px 16px;
border-radius: var(--radius);
position: absolute;
right: 16px;
bottom: 16px;
}

.picto {
height: 32px;
width: 32px;
margin-left: 3px;
fill: none;
stroke: var(--black);
stroke-width: 4;
transition: all 0.2s ease;
}
.service:hover .picto {
stroke: var(--red);
}

.service-block {
display: grid;
grid-template-columns: 60% 40%;
gap: 25px;
align-items: top;
margin: 20px 0;
}

.service-block.reverse {
grid-template-columns: 40% 60%;
}
.service-block.reverse .service-text {
order: 2;
}
.service-block.reverse .service-image {
order: 1;
}

.service-image {
width: 100%;
max-width: 500px;
height: 333px;
background-size: cover;
background-position: center;
border-radius: var(--smallradius);
}

@media (max-width: 768px) {

	.service {
	height: 170px;
	}

	.service, .service-block, .service-block.reverse {
	grid-template-columns: 1fr;
	}

	.service-block.reverse .service-text, .service-block.reverse .service-image {
	order: initial;
	}

	.service-image {
	height: 220px;
	}

}



/* News posts */

.grey {
background-color: var(--lightgrey);
}

.posts {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 25px;
margin-bottom: 35px;
}

.post {
background-color: white;
color: var(--black);
overflow: hidden;
border-radius: var(--radius);
box-shadow: var(--shadow-soft);
transition: all 0.2s;
position: relative;
}

.post_header {
background-size: cover;
background-position: center 20%;
width: 100%;
height: 150px;
position: relative;
}

.post_image {
width: min(600px, 100%);
aspect-ratio: 16/10;
float: right;
margin: 0 0 20px 20px;
object-fit: cover;
object-position: center;
display: block;
border-radius: var(--smallradius);
}

.post_date {
display: inline-block;
background-color: var(--red);
color: white;
font-size: 0.75rem;
padding: 4px 8px;
margin: 8px 15px;
border-radius: var(--radius);
}

.bottom {
position: absolute;
bottom: 0px;
}

.post_body {
margin: 15px;
}

.post_title {
font-size: 1.1rem;
transition: all 0.3s;
}

.post_lead {
font-size: 0.9rem;
font-weight: 300;
margin-top: 10px;
}

.post:hover {
box-shadow: var(--shadow-hard);
transform: translateY(-2px);
}
.post:hover .post_title {
color: var(--red);
}

/* Pagination */

.pagination {
display: flex;
gap: 12px;
}
.page_number {
background-color: rgba(0,0,0,0.05);
color: var(--black);
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
transition: all 0.1s;
}
.page_number.active {
background-color: var(--red);
color: white;
}
.page_number:hover {
background-color: transparent;
color: var(--red);
box-shadow: 0px 0px 0px 2px var(--red) inset;
}


/* Job Cards */

.jobs-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
gap: 24px;
margin: 30px 0;
}

.job-card {
display: block;
padding: 14px;
font-size: 0.9rem;
color: #444;
border: 1px solid #ddd;
border-radius: var(--radius);
background: #ffffff;
box-shadow: var(--shadow-soft);
transition: all 0.2s ease;
}
.job-card:hover {
transform: translateY(-4px);
box-shadow: var(--shadow-hard);
}



/* Footer */

.black {
background-color: var(--black);
color: white;
}

footer {
font-size: 0.9rem;
}

footer a {
color: white;
transition: color 0.1s;
}

footer a:hover {
color: var(--red);
}

.footer_image {
vertical-align: middle;
width: 200px;
}

.footer_links {
float: right;
display: flex;
flex-wrap: wrap;
gap: 4px 60px;
justify-content: end;
}

.footer_links a {
color: #888;
white-space: nowrap;
}

.cookie-consent {
font-size: 0.9rem;
position: fixed;
bottom: 40px;
right: 40px;
width: 400px;
max-width: 95%;
background: #ffffff;
box-shadow: var(--shadow-hard);
border-radius: var(--radius);
z-index: 9999;
transform:translateY(120%);
animation:ccSlide .4s forwards;
}
@keyframes ccSlide { to { transform:translateY(0); } }

@media (max-width: 768px) {

	.footer_image {
	width: 120px;
	}

	.footer_links {
	font-size: 0.8rem;
	}

	.cookie-consent {
	left: 50%;
	right: auto;
	bottom: 20px;
	transform: translate(-50%, 120%);
	}
	@keyframes ccSlide {
	to { transform: translate(-50%, 0); }
	}

}


/* Divers */

.red {
background-color: var(--red);
color: white;
}
.blue {
background-color: var(--blue);
color: white;
}

.gradient1 {
background: linear-gradient(45deg, white 0%, white 33%, #ddd 100%);
}

.center {
text-align: center;
}

.cards {
max-width: 900px;
margin: 50px auto;
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
gap: 10px;
}

.card {
flex: 1;
font-weight: 600;
}

.card_icon {
width: 12vw;
max-width: 80px;
height: 120px;
fill: none;
stroke: white;
stroke-width: 2.5;
}

.dashed {
display: inline-block;
width: calc(100% - 45px);
height: 14px;
border-top: 2px dashed white;
margin-left: 10px;
}

.maintenance_block {
display: grid;
grid-template-columns: 1fr 300px;
gap: 60px;
align-items: top;
margin: 20px 0;
}

.maintenance_block.reverse {
grid-template-columns: 300px 1fr;
}
.maintenance_block.reverse .maintenance_text {
order: 2;
}
.maintenance_block.reverse .maintenance_picture {
order: 1;
}

.maintenance_picture {
width: 300px;
height: 400px;
background-repeat: no-repeat;
background-position: center;
background-size: cover;
border-radius: var(--smallradius);
}

@media (max-width: 768px) {

	.maintenance_block, .maintenance_block.reverse {
	grid-template-columns: 1fr;
	}

	.maintenance_block.reverse .maintenance_text, .maintenance_block.reverse .maintenance_picture {
	order: initial;
	}

	.maintenance_picture {
	height: 250px;
	background-position: center top;
	}
}

/* Contact Page */

.contact-content {
display: flex;
flex-wrap: wrap;
}

.contact-grid {
flex: 1 1 400px;
display: grid;
grid-template-columns: 180px 1fr;
gap: 8px;
}

.contact-item {
display: contents;
}

.contact-label {
font-weight: 600;
white-space: nowrap;
}

.contact-map {
flex: 1 1 400px;
display: flex;
}

.contact-iframe {
width: 100%;
height: 100%;
min-height: 300px;
border: 0;
border-radius: var(--smallradius);
}




/* About Page */

.timeline-line {
height: 3px;
background: var(--black);
margin: 16px 0;
}

.event {
min-width: 15%;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
}

.event.row-1 {
flex-direction: column-reverse;
}

.event.row-2 {

}

.text-box {
background: rgba(0,0,0,0.04);
padding: 0.75rem;
border-radius: 10px;
font-size: 0.9rem;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}

.timeline-icon {
width: 100%;
height: 100%;
stroke: white;
fill: none;
stroke-width: 6;
}

.timeline-icon-wrapper {
display:inline-block;
width: 28px;
height: 28px;
padding: 4.5px;
margin: 3px;
background-color: #999;
border-radius: 50%;

}

.dot {
width: 25px;
height: 25px;
border-radius: 50%;
position: absolute;
z-index: 2;
}

.event.row-1 .dot {
bottom: -30px;
}
.event.row-2 .dot {
top: -30px;
}
.service_icon {
width: 50px;
height: 50px;
margin: calc((80px - 50px) / 2);
fill: none;
stroke: white;
stroke-width: 3.5;
transition: all 0.2s;
}

.service_icon_list {
display:flex;
flex-wrap:wrap;
justify-content: center;
gap: 20px;
margin-top: 40px;
}

.service_icon_wrapper {
text-align:center;
width:120px;
}
.service_icon_wrapper a {
color: var(--black);
font-weight: 500;
}

.service_icon_background {
background: var(--red);
width: 80px;
height: 80px;
border-radius: 50%;
margin: auto;
overflow: hidden;
transition: all 0.15s;
}

.service_icon_wrapper:hover a {
color: var(--red);
}
.service_icon_wrapper:hover .service_icon_background {
background: transparent;
box-shadow: 0px 0px 0px 2px var(--red) inset;
}
.service_icon_wrapper:hover .service_icon {
stroke: var(--red);
}


/* Profile */

.profile-menu {
padding: 10px 0px;
}
@media (max-width: 900px) {
	.profile-menu a {
	margin: 4px 0;
	padding: 4px 10px;
	font-size: 0.9rem;
	line-height: 1.1;
	}
}

.profile-contracts {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: flex-start;
gap: 14px;
border: 2px solid var(--silver);
border-radius: 8px;
padding: 10px 20px;
margin-bottom: 16px;
}
.profile-contracts > div:nth-child(1) {flex: 0 0 40%;}
.profile-contracts > div:nth-child(2) {flex: 0 0 25%;}
.profile-contracts > div:nth-child(3) {
flex: 1 1 30%;
white-space: nowrap;
min-width: 250px;
}

.profile-cards {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
border: 2px solid var(--silver);
border-radius: 8px;
padding: 8px 16px;
margin-bottom: 16px;
}
.profile-cards > div:last-child {
display: flex;
flex-wrap: wrap;
justify-content:flex-end;
gap: 8px;
}


/* Admin */

.ctc-list {
width: 100%;
font-size: 0.95rem;
color: #333;
border-collapse: separate;
border-spacing: 0;
overflow: hidden;
border-radius: 8px 8px 0px 0px;
}

.ctc-list th, .ctc-list td {
text-align: left;
padding: 8px;
border-bottom: 1px solid #e5e5e5;
}

.ctc-list th {
padding: 16px 8px;
background: var(--lightgrey);
font-weight: 600;
}

.ctc-list tbody tr:hover {
background: var(--lightgrey);
transition: all 0.15s ease;
}

.table-border th, .table-border td { border-right: 1px solid #e5e5e5; }
.table-border th:first-child, .table-border td:first-child { border-left: 1px solid #e5e5e5; }

.edit_icon {
vertical-align: -10%;
margin-right: 5px;
height: 16px;
width: 16px;
fill: none;
stroke: var(--black);
stroke-width: 2.5;
transition: all 0.2s;
}
.cta1:hover .edit_icon {
stroke: var(--red);
}

.span_actif, .span_inactif, .span_draft, .span_beta {
color: #fff;
font-size: 0.8em;
font-weight: 600;
padding: 2px 5px;
border-radius: 6px;
text-transform: uppercase;
white-space: nowrap;
}
.span_actif { background: var(--green); }
.span_inactif { background: #bb4646; }
.span_draft { background: #aaa; }
.span_beta { background: #f92; }

.message {
max-height: 270px;
overflow: auto;
position: fixed;
bottom: 0;
z-index: 100;
margin: 20px;
padding: 0px 16px;
font-size: 0.9rem;
background: orange;
color: #fff;
border-radius: 10px;
}

.disabled {
background: #fefefe;
color: #aaa;
border:2px solid #ccc;
pointer-events: none;
}
.disabled .edit_icon {
stroke: #aaa;
}


/* --- CTC notes --- */

.note-bubble {
width: 22px;
height: 22px;
border-radius: 8px 8px 8px 2px;
color: white;
font-size: 0.7rem;
font-weight: 600;
display: inline-flex;
justify-content: center;
align-items: center;
transition: all .2s ease;
}
.note-client {
background: var(--blue);
}
.note-backoffice {
background: #f92;
}
.note-add {
color: #aaa;
border: 2px dotted #aaa;
}
.note-bubble:hover {
transform: translateY(-1px);
color: white;
filter: brightness(.8);
}

.note-popover {
position: absolute;
z-index: 1000;
display: none;
max-width: 350px;
}
.note-popover.is-open {
display:block
}
.note-popover-card {
background: #fff;
border: 1px solid #ccc;
border-radius: 10px;
box-shadow: var(--shadow-soft);
padding: 10px;
font-size: 0.9rem;
}
.note-popover-meta {
color: #444;
font-weight: 500;
margin-bottom: 10px;
}

.doc-bubble {
display: inline-block;
background: #eee;
padding: 2px 5px;
border-radius: 6px;
transition: all 0.2s;
}
.doc-bubble:hover {
transform: translateY(-1px);
background: #ccc;
}
.doc-icon {
vertical-align: -10%;

height: 14px;
width: 14px;
fill: none;
stroke: #333;
stroke-width: 2.5;
}

/* Form */

.form-group {
min-width: 50%;
flex: 1;
margin: 1rem 0rem;
}

label {
display: block;
color: #666;
}

.form-icon {
vertical-align: middle;
height: 16px;
width: 16px;
fill: none;
stroke: #666;
stroke-width: 10;
} 

.form-input {
width: calc(100% - 20px);
padding: 4px;
margin: 2px 6px;
font-size: 1rem;
color: #333;
background-color: white;
border: none;
border-bottom: 2px solid var(--grey);
transition: all 0.3s;
}

select {
cursor: pointer;
border-radius: 0;
}

.form-input:focus {
outline: none;
border-bottom: 2px solid var(--red);
}

.form-input[readonly] {
color: #777;
border-bottom: 2px solid #dcdcdc;
cursor: default;
}

textarea.form-input {
resize: vertical;
font-family: Roboto, Arial, sans-serif;
font-size: 0.9rem;
border: 2px solid var(--grey);
border-radius: 4px;
}
textarea.form-input:focus {
outline: none;
border: 2px solid var(--red);
}

.form-info {
min-width: 100%;
background-color: var(--lightgrey);
border-radius: 8px;
padding: 1px 15px;
margin-bottom: 20px;
}

.is-hidden {
display: none;
}

/* fancy radio buttons */


input[type="radio"] {
position: absolute;
opacity:0;
width: 1px;
height: 1px;
overflow: hidden;
white-space: nowrap;
}

input[type="radio"] + label {
position: relative;
padding-left: 30px;
display: inline-block;
cursor: pointer;
font-size: 1rem;
line-height: 25px;
height: 25px;
}

input[type="radio"] + label::before,
input[type="radio"] + label::after {
content: '';
position: absolute;
top: 0;
left: 0;
margin: 4px;
width: 16px;
height: 16px;
border-radius: 50%;
z-index: 0;
transition: 0.3s ease;
}

input[type="radio"] + label::before {
border: 2px solid var(--grey);
background: #fff;
}

input[type="radio"] + label::after {
border: 2px solid var(--red);
background: var(--red);
transform: scale(0);
}

input[type="radio"]:checked + label::after {
transform: scale(1.02);
}

input[type="radio"] + label:hover::before {
border-color: var(--red);
}



input[type="radio"]:focus-visible + label {
border-bottom: 2px solid var(--red);
}

input[type="checkbox"]:focus-visible + label {
border-bottom: 2px solid var(--red);
}

/* fancy checkbox */

input[type="checkbox"] {
position: absolute;
opacity:0;
width: 1px;
height: 1px;
overflow: hidden;
white-space: nowrap;
}

input[type="checkbox"] + label {
position: relative;
padding-left: 30px;
padding-bottom: 4px;
cursor: pointer;
color: #444;
}

input[type="checkbox"] + label:hover::before {
border-color: var(--red);
}

input[type="checkbox"] + label::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 18px;
height: 18px;
border: 2px solid #ccc;
border-radius: 2px;
transition: 0.2s;
background: transparent;
}

input[type="checkbox"]:checked + label::before {
top: -4px;
left: -3px;
width: 12px;
height: 22px;
border: 2px solid var(--red);
border-top: 2px solid transparent;
border-left: 2px solid transparent;
transform: rotate(35deg);
transform-origin: 100% 100%;
}





/* tabs & edit box */

.editor-box {
border: 1px solid var(--grey);
}

.tabs {
display: flex;
}

.tabs a {
padding: 10px 20px;
background: #f8f8f8;
color: grey;
text-decoration: none;
border: 1px solid var(--grey);
border-top-left-radius: 6px;
border-top-right-radius: 6px;
border-bottom: none;
cursor: pointer;
margin-right: 5px;
}

.tabs a.active {
color: black;
font-weight: 500;
background: white;
}

.tab-content {
display: none;
padding: 1rem;
}

.tab-content.active {
display: block;
}

/* CTC */

.contract-box {
padding: 1rem;
margin-bottom: 1.5rem;
border: 2px solid var(--grey);
border-radius: 8px;
transition: border 0.3s ease;
}
.contract-box.active {
border: 2px solid var(--red);
}

.badge {
white-space: nowrap;
background-color: var(--red);
color: white;
margin-left: 20px;
padding: 0.3em 0.6em;
font-size: 0.9em;
font-weight: bold;
border-radius: 4px;
}

.contract-list {
column-count: 2;
column-gap: 2rem;
list-style: none;
padding: 0;
margin-top: 1rem;
}

.contract-list li {
break-inside: avoid;
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
display: flex;
align-items: flex-start;
margin-bottom: 0.8rem;
}

@media (max-width: 768px) {
.contract-list {
column-count: 1;
}
}

.check {
position: relative;
top: -4px;
color: var(--red);
margin-right: 0.5em;
flex-shrink: 0;
margin-top: 2px;
}

.check-text {
display: block;
text-align: left;
}

.ctc-option-details {
display: block;
font-size: 0.9rem;
color: #666;
margin-left: 30px;
padding-bottom: 10px;
border-bottom: 1px solid var(--grey);
}

.ctc-info-toggle {
font-size: 0.9em;
color: #555;
padding: 0.3em 0.6em;
background-color: white;
border: 2px solid var(--grey);
border-radius: 10px;
cursor: pointer;
white-space: nowrap;
transition: 0.2s;
}
.ctc-info-toggle:hover {
border: 2px solid var(--red);
color: var(--red);
}


.input-error, input.input-error + label {
border-bottom: 2px solid var(--red);
background-color: #ffeaea;
}
/* Shake animation */
@keyframes shake {
0% { transform: translateX(0); }
20% { transform: translateX(-4px); }
40% { transform: translateX(4px); }
60% { transform: translateX(-4px); }
80% { transform: translateX(4px); }
100% { transform: translateX(0); }
}
.shake {
animation: shake 0.4s ease;
}


.ctc_recap_table th {
font-size: 1.5rem;
font-weight: 500;
text-align: left;
height: 70px;
vertical-align: bottom;
}
.ctc_recap_table td, .ctc_recap_table th {
border-bottom: 1px solid #eceeef;
padding: 8px;
}


/* side bar additions */

.ctc-container {
display: flex;
gap: 30px;
justify-content: flex-start;
}

.ctc-content {
flex: 1 1 auto;
min-width: 0;
}

.ctc-sidebar {
position: sticky;
top: 120px;
flex: 0 0 min(300px, 30%);
order: 2;
}

.ctc-sidebar-item {
color: #888;
display: flex;
align-items: center;
}
.ctc-sidebar-item.active {
color: var(--black);
}

.ctc-sidebar-number {
display: inline-block;
background: var(--grey);
color: white;
line-height: 24px;
max-width: 24px;
min-width: 24px;
border-radius: 12px;
margin: 8px;
padding: 0px;
text-align: center;
}
.ctc-sidebar-number.active {
background: var(--black);
}

/* --- mobile layout --- */
@media (max-width: 768px) {

.ctc-container {
flex-direction: column;
}

.ctc-sidebar {
position: static;
flex: none;
width: 100%;
order: initial;
}

}



/*------------------ INFO LABEL -------------*/

.info-icon {
display: inline-flex;
justify-content: center;
align-items: center;
width: 20px;
height: 20px;
font-size : 0.8rem;
color: #555;
background: var(--silver);
border-radius: 50%;
margin-left: 6px;
position: relative;
}

.info-icon::after {
content: attr(data-info);
position: absolute;
left: 22px;
background: #fff;
color: #333;
padding: 6px 8px;
border: 1px solid #dadada;
font-size: 0.78rem;
line-height: 1.3;
border-radius: 6px;
min-width: 200px;
max-width: 300px;
opacity: 0;
pointer-events: none;
transition: all .15s ease;
z-index: 50;
}

.info-icon:hover::after, .info-icon:focus::after{
opacity: 1;
transform: translate(4px,0);
}




/* Popup */

.sos-modal {
display: none; 
position: fixed; 
z-index: 9999; 
left: 0; 
top: 0; 
width: 100%; 
height: 100%; 
overflow: auto; 
background-color: rgba(0,0,0,0.6);
animation: fadeIn 0.3s;
}

.sos-modal-content {
position: relative;
margin: 8% auto;
width: 90%;
max-width: 1000px;
background: white;
border-radius: var(--radius);
padding: clamp(20px, 6vw, 80px);
box-shadow: 0 5px 20px rgba(0,0,0,0.5);
animation: slideDown 0.3s;
}

.sos-hours {
font-size: 0.9em;
color: #777;
}

.sos-number {
color: var(--red);
font-weight: 500;
font-size: 1.5em;
}

.sos-section {
margin-bottom: 40px;
}

.sos-close {
position: absolute;
top: 12px;
right: 24px;
font-size: 2.2em;
cursor: pointer;
color: var(--black);
transition: all 0.3s;
}
.sos-close:hover {
color: var(--red);
}

@keyframes fadeIn {
from {opacity: 0;}
to {opacity: 1;}
}

@keyframes slideDown {
from {transform: translateY(-50px); opacity: 0;}
to {transform: translateY(0); opacity: 1;}
}


.test-environment-banner {
display: inline-block;
padding: 4px 10px;
margin: 20px;
font-size: 1rem;
font-weight: 500;
color: #856404;
background: #fff3cd;
border: 1px solid #ffe69c;
border-radius: 8px;
}

.code {
	max-height: 800px;
	overflow: auto;
	padding: 0 10px;
	background: #2d2d2d;
	color: lime;
	font-size: 0.7rem;
	border-radius: 6px;
}

/* --- Smart Search --- */
.search-form {
	float:				right;
	position:			relative;
}

.search-bar {
	width:				350px;
	font-size:			0.9rem;
	padding:			8px 8px 8px 38px;
	border:				2px solid #999;
	border-radius:		50vh;
}
.search-bar:focus {
	outline: none;
	border: 2px solid var(--red);
}

.search-icon {
	position:			absolute;
	left:				13px;
	top:				50%;
	transform:			translateY(-50%);
	height:				18px;
	fill:				none;
	stroke:				grey;
	stroke-width:		11;
}

.search-reset {
	position:			absolute;
	right:				13px;
	top:				50%;
	transform:			translateY(-50%);
	font-size:			1.25rem;
	color:				grey;
}

/* --- Smart Select --- */
.smartselect {
    position: relative;
    display: block;
}

.smartselect-text {
    width: 100%;
    cursor: text;
}

#smartselect-suggest {
    position: fixed;
    z-index: 9999;
    display: none;
    min-width: 180px;
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.13);
    background: #fff;
}

#smartselect-suggest .smartselect-item {
    padding: 10px 12px;
    cursor: pointer;
    font-size: 0.92rem;
    transition: background 0.1s;
}

#smartselect-suggest .smartselect-item:hover,
#smartselect-suggest .smartselect-item.active {
    background: #f6f6f6;
}

#smartselect-suggest .smartselect-empty {
    padding: 10px 12px;
    color: #aaa;
    font-size: 0.9rem;
}

