/* cf-survey — Acted visual language (typography, colors, components).
   Fonts, palette and component styles mirror www.acted.org (theme acted2018). */

@font-face {
  font-family: "Branding";
  src: url("/assets/fonts/BrandingSemilight.woff2") format("woff2"),
       url("/assets/fonts/BrandingSemilight.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Branding";
  src: url("/assets/fonts/BrandingMedium.woff2") format("woff2"),
       url("/assets/fonts/BrandingMedium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Branding";
  src: url("/assets/fonts/BrandingSemibold.woff2") format("woff2"),
       url("/assets/fonts/BrandingSemibold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Branding";
  src: url("/assets/fonts/BrandingBold.woff2") format("woff2"),
       url("/assets/fonts/BrandingBold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --acted-blue: #1b1464;
  --acted-blue-dark: #0f0b39;
  --acted-green: #4bb272;
  --acted-green-dark: #3b8e5b;
  --acted-yellow: #fbbf00;
  --acted-grey: #f4f4f4;
  --acted-border: #d9d9d9;
  --acted-text: #333;
}

* { box-sizing: border-box; }

html { font-size: 10px; }

body {
  margin: 0;
  font-family: "Branding", sans-serif;
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 1.6;
  color: var(--acted-text);
  background: #fff;
}

a { color: var(--acted-blue); transition: color .2s ease-in-out; }
a:hover { color: var(--acted-green); }

h1, h2, h3, h4, h5 { font-family: "Branding", sans-serif; margin: 0 0 1rem; }

.container { max-width: 1140px; margin: 0 auto; padding: 0 15px; }

.material-icons.md-18 { font-size: 18px; }

/* ------------------------------ header ------------------------------ */

.first-header {
  min-height: 50px;
  background: var(--acted-grey);
  font-size: 1.3rem;
}
.first-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  min-height: 50px;
}
.lang-selector {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  color: var(--acted-blue);
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: .1rem;
}
.first-header .menu-right ul { list-style: none; display: flex; gap: 20px; margin: 0; padding: 0; }
.first-header .menu-right a { text-decoration: none; text-transform: uppercase; letter-spacing: .1rem; font-weight: 600; }

.second-header { border-bottom: 1px solid var(--acted-border); background: #fff; }
.second-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding-top: 15px;
  padding-bottom: 15px;
}
.main-logo {
  display: block;
  width: 180px;
  height: 69px;
  background: url("/assets/img/logo-acted-couleur.png") 0 0 no-repeat;
  background-size: contain;
  text-indent: -435252px;
  margin: 0;
}
.main-nav ul { list-style: none; display: flex; gap: 25px; margin: 0; padding: 0; flex-wrap: wrap; }
.main-nav a {
  text-decoration: none;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: .1rem;
  font-size: 1.4rem;
  color: var(--acted-blue);
  border-bottom: 3px solid transparent;
  padding-bottom: 4px;
}
.main-nav a:hover { color: var(--acted-green); border-bottom-color: var(--acted-green); text-decoration: none; }

/* ------------------------------ hero ------------------------------ */

.bg-blue {
  background: var(--acted-blue) url("/assets/img/texture-new.jpg") 50% 0% no-repeat;
  background-size: cover;
}

.main-slider { color: #fff; }
.main-slider .container { padding-top: 50px; padding-bottom: 50px; }

.ban-une {
  background: var(--acted-green);
  color: #fff;
  display: inline-block;
  margin-bottom: 20px;
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: .1rem;
  padding: 1px 10px;
  text-transform: uppercase;
}

.title {
  font-size: 3rem;
  line-height: 4rem;
  font-weight: 600;
}
.title.uppercase { text-transform: uppercase; }
.title.white { color: #fff; }
.main-slider .lead { max-width: 760px; font-weight: 300; font-size: 1.7rem; }

/* ------------------------------ buttons ------------------------------ */

.cta {
  font-family: "Branding", sans-serif;
  font-weight: 600;
  font-size: 1.6rem;
  text-align: center;
  display: inline-block;
  text-transform: uppercase;
  padding: 11px 30px;
  letter-spacing: .2rem;
  transition: background .2s ease-in-out, color .2s ease-in-out, border-color .2s ease-in-out;
  cursor: pointer;
  border: none;
  text-decoration: none;
}
.cta.cta-red { background: var(--acted-green); color: #fff; }
.cta.cta-red:hover { background: var(--acted-green-dark); color: #fff; }
.cta.cta-blue { background: var(--acted-blue); color: #fff; }
.cta.cta-blue:hover { background: var(--acted-blue-dark); color: #fff; }
.cta.border-white { border: 2px solid #fff; color: #fff; padding: 9px 30px; }
.cta.border-white:hover { border-color: var(--acted-green) !important; color: var(--acted-green); }

/* ------------------------------ survey form ------------------------------ */

.survey-section { padding: 50px 0 70px; background: var(--acted-grey); position: relative; }
.survey-box { background: #fff; padding: 35px 40px 45px; box-shadow: 0 2px 14px rgba(27, 20, 100, .08); }

.section-title {
  font-size: 2.2rem;
  line-height: 3rem;
  text-transform: uppercase;
  color: var(--acted-blue);
  font-weight: 600;
  margin-bottom: 25px;
}

.fieldset { border: none; margin: 0 0 30px; padding: 0; }
.fieldset legend,
.question-label {
  display: block;
  font-size: 1.4rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08rem;
  color: var(--acted-blue);
  margin-bottom: 12px;
  max-width: 760px;
}
.q-number { color: var(--acted-green); margin-right: 6px; }
.req { color: var(--acted-green); }

.form-hint { font-size: 1.3rem; color: #777; font-weight: 300; margin: -6px 0 12px; }

input[type="text"],
input[type="email"],
select,
textarea {
  width: 100%;
  font-family: "Branding", sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--acted-text);
  padding: 10px 14px;
  border: 1px solid var(--acted-border);
  border-radius: 0;
  background: #fff;
  outline: none;
  transition: border-color .2s ease-in-out;
  appearance: none;
}
input[type="text"]:focus,
input[type="email"]:focus,
select:focus,
textarea:focus { border-color: var(--acted-green); }
select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%231b1464' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}
textarea { min-height: 120px; resize: vertical; max-width: 760px; }

.option-group { display: flex; flex-direction: column; gap: 8px; max-width: 760px; }
.option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 1.5rem;
  font-weight: 500;
  cursor: pointer;
}
.option input { margin-top: 5px; accent-color: var(--acted-green); width: 16px; height: 16px; flex: none; }
.option:hover { color: var(--acted-blue); }

.scale-group { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; max-width: 760px; }
.scale-value { position: absolute; opacity: 0; width: 0; height: 0; }
.scale-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 2px solid var(--acted-blue);
  color: var(--acted-blue);
  font-size: 1.8rem;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
  transition: all .15s ease-in-out;
}
.scale-value:checked + .scale-btn { background: var(--acted-blue); color: #fff; }
.scale-value:focus-visible + .scale-btn { outline: 2px solid var(--acted-green); outline-offset: 2px; }
.scale-btn:hover { background: var(--acted-green); border-color: var(--acted-green); color: #fff; }
.scale-caption { font-size: 1.3rem; font-weight: 300; color: #777; max-width: 170px; line-height: 1.4; }

.field-error { color: #c0392b; font-size: 1.3rem; font-weight: 600; margin-top: 6px; }
.fieldset.has-error .question-label { color: #c0392b; }
.fieldset.has-error input[type="text"],
.fieldset.has-error input[type="email"],
.fieldset.has-error select,
.fieldset.has-error textarea { border-color: #c0392b; }

.form-alert {
  background: #fdecea;
  border-left: 4px solid #c0392b;
  color: #7b241c;
  padding: 12px 18px;
  font-size: 1.4rem;
  margin-bottom: 25px;
}

.consent { font-size: 1.3rem; font-weight: 300; color: #777; max-width: 760px; margin-bottom: 25px; }

/* ------------------------------ thanks ------------------------------ */

.thanks { padding: 80px 0; }
.thanks .material-icons { font-size: 64px; color: var(--acted-green); }
.thanks p { max-width: 640px; font-weight: 300; font-size: 1.7rem; }

/* ------------------------------ footer ------------------------------ */

.site-footer { color: #fff; padding: 40px 0 30px; }
.site-footer .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.footer-logo {
  display: block;
  width: 160px;
  height: 41px;
  background: url("/assets/img/logo-acted-blanc.png") 0 0 no-repeat;
  background-size: cover;
  text-indent: -435252px;
}
.site-footer p { margin: 0; font-size: 1.3rem; font-weight: 300; }

/* ------------------------------ responsive ------------------------------ */

@media (max-width: 767px) {
  .main-nav { display: none; }
  .main-logo { width: 150px; height: 58px; }
  .title { font-size: 2.4rem; line-height: 3.2rem; }
  .survey-box { padding: 25px 20px 35px; }
  .scale-btn { width: 42px; height: 42px; }
}
