:root {
  --padma-white: #FFFFFF;
  --padma-verdone: #4B5A4A;
  --padma-titoli: #3A2A24;
  --padma-testi: #6B716F;
  --padma-salvia: #A1AB94;
  --padma-bianco-salvia: #F6F7F4;
  --padma-accent: #9AB171;
  --border-radius: 10px;
  --border-radius-big: 15px;
}

* { margin: 0; padding: 0 }
*,*:before,*:after { box-sizing: inherit }

body { max-width: 100%; overflow-x: hidden; }

::-moz-selection { background: var(--padma-salvia); color: #fff }
::selection { background: var(--padma-salvia); color: #fff }

@font-face {
  font-family: 'Agrandir';
  src: url('../fonts/Agrandir-Regular.woff') format('woff'), url('../fonts/Agrandir-Regular.woff2') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: swap; /* Optional: helps control how the font loads and displays */
}
@font-face {
  font-family: 'TanPearl';
  src: url('../fonts/tan-pearl.woff') format('woff'), url('../fonts/tan-pearl.woff2') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: swap; /* Optional: helps control how the font loads and displays */
}

body { font-size: 21px; font-family: 'Inter', sans-serif; background-color: #fff; color: #000000; box-sizing: border-box }

.container { max-width: 1130px; width: 70%; margin: 0 auto;  }
.container.medium { width: 50%; max-width: 1350px }
.container.small { width: 45%; max-width: 825px }
.container.x-small { width: 35%; max-width: 670px }

.x-small { max-width: 670px; margin: auto; }

.container {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  width: 100%;
  padding-right: calc(var(--bs-gutter-x) * .5);
  padding-left: calc(var(--bs-gutter-x) * .5);
  margin-right: auto;
  margin-left: auto;
}
.row { 
  display: flex; 
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--bs-gutter-y));
  margin-right: calc(-.5 * var(--bs-gutter-x));
  margin-left: calc(-.5 * var(--bs-gutter-x));
}
.row>* {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--bs-gutter-x) * .5);
  padding-left: calc(var(--bs-gutter-x) * .5);
  margin-top: var(--bs-gutter-y);
}

.half { width: 50% }
.third { width: 30%; float: left; margin: 0 2.5%; text-align: center }

.left { float: left }
.right { float: right }
.clear { clear: both }

.sep { height: 100px }

h1 { font-family: 'Agrandir'; line-height: 1.2em; font-weight: 400; }
h2 { font-family: 'TanPearl'; font-weight: 400; }
h3 {  }

p { color: var(--padma-testi); font-weight: 300; font-size: 90%; }

a { color: var(--padma-testi); cursor: pointer; text-decoration: none; }
a:hover { color: var(--padma-verdone); }

.ta-center { text-align: center }
.ta-left { text-align: left }
.ta-right { text-align: right }

.no-do { padding-bottom: 0px!important }
.no-up { padding-top: 0px!important }
.no-ma-do { margin-bottom: 0px!important }

.big-title { font-size: 180% }
.big-txt { font-size: 150%; margin-bottom: 25px }
.big-link { font-size: 150% }

.first { margin-left: 0px!important }
.last { margin-right: 0px!important }

.d-flex { display: flex; align-items: center; }
.d-none { display: none !important; }
.justify-center { justify-content: center; }
.justify-start { justify-content: flex-start !important; }
.column { flex-direction: column; }

.pb-1 { padding-bottom: 1rem; }
.pb-2 { padding-bottom: 2rem; }
.pb-4 { padding-bottom: 4rem; }
.pb-8 { padding-bottom: 8rem; }

.mb-4 { margin-bottom: 4rem; }
.mb-8 { margin-bottom: 8rem; }

.g-0,.gx-0 {
  --bs-gutter-x: 0
}

/* Common */

.button { padding: 12px 15px; border-radius: 8px; background-color: var(--padma-bianco-salvia); color: var(--padma-verdone); border: 2px solid var(--padma-verdone); transition: .4s; font-size: 85%; white-space: nowrap;}
.button:hover { opacity: .75; cursor: pointer; }
.button.secondary { background-color: var(--padma-verdone); color: var(--padma-bianco-salvia); }
.btn-container {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}

.content .container { padding-top: 8rem; padding-bottom: 8rem; }

.section-bg { background-color: var(--padma-bianco-salvia);}

header { width: 100%; height: 125px; position: fixed; z-index: 100; }
header .header-top { background-color: var(--padma-accent); }
header .header-main { padding: 15px 0; background-color: var(--padma-white); }
header .header-main .container { display: flex; align-items: center; justify-content: space-between; }
header .hamburger { display: none }

header .small-text { color: var(--padma-white); font-size: 14px; }
header .header-right .small-text {  }

header .header-top .container { display: flex; justify-content: space-between;}
header .header-top .header-right, header .header-top .header-left { display: flex; flex-direction: row; align-items: center; }

.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after, .hamburger.is-active .hamburger-inner, .hamburger.is-active .hamburger-inner::before, .hamburger.is-active .hamburger-inner::after {
  background-color: var(--padma-titoli);
}

.social-header img:hover{
  opacity: .7;
}
.social-header ul {
  display: flex;
  flex-direction: row;
  list-style: none;
}
.social-header img{
  width:35px;
  transition:.4s;
}
.social-header a {
  height: 35px;
  display: block;
}

.logo { float: left;}
.logo img { width: 265px; display: block }

.menu { list-style: none; display: block;}
.menu li { display: inline-block; vertical-align: middle }
.menu li a { display: block; font-family: 'Agrandir'; color: var(--padma-titoli); font-weight: 400; margin-left: 25px; text-decoration: none; font-size: 80%; }
.menu li.active a, .menu li a:hover { text-decoration: none; color: var(--padma-verdone); }

main { padding-top: 125px }

footer  { background-color: var(--padma-white); padding: 4rem 0; background-repeat: no-repeat; background-position: center; background-size: 40%; }
footer .logo { width: 270px }
footer .logo img { width: 100% }
footer p { font-size: 90%; font-weight: 500 }
footer p.title { text-transform: uppercase; font-weight: 600 }
footer p.small { font-weight: 500 }
footer .social li { display: inline }
footer .social li a img { width: 45px }
footer .social li a img:hover { opacity: 0.5 }
footer a { margin-left: 5px }
footer .clear.sep { height: 120px }

footer > .container { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 1rem; }

/* Home */
.welcome.home {
  padding: 10em 0;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
  color: var(--padma-white);
}
.welcome.home h1 {
  font-size: 260%;
}
.welcome.home .claim {
  max-width: 618px;
}
.welcome.home .claim p {
  color: var(--padma-white);
}

.content-box {
  background-color: var(--padma-white);
  border-radius: var(--border-radius);
  padding: 2rem;
}
.content-box .tappetino-container {
  position: relative;
  height: 125px;
}
.content-box .tappetino-img {
  position: absolute;
  bottom: -100px;
  right: -30px;
  width: 80%;
}

.content-card {
  padding-left: 2rem;
}
.card-container {
  display: flex;
  flex-direction: column;
  gap:10px;
}
.card-title {
  font-family: 'Agrandir';
}
.card-text {
  font-size: 85%;
}

.image-divider {
  margin-top: -85px;
  width: 100%;
  text-align: center;
}

.section-icon-bg {
  background-repeat: no-repeat; background-size: 20%; background-position: left center;
}

.welcome.footer {
  padding: 2em 0;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
  color: var(--padma-white);
}
.welcome.footer.inner {
  padding: 0;
}

.cta-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.cta-title {
  font-family: 'Agrandir';
  font-size: 190%;
}
.cta-text {
  color: var(--padma-white);
}

.home .img-background { 
  height: 100svh;
  width: 100vw;
  background-size: cover;
  background-position: top;
  position: fixed;
  top:0;
  left: 0;
  z-index: -1;
}

/* About */
.welcome.about {
  padding: 4em 0;
}
.welcome.about img {
  border-radius: var(--border-radius-big);
  width: calc(100% + 80%);
}
.welcome.about .text-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.welcome.about .text-container h1 {
  font-family: 'TanPearl';
  font-size: 150%;
}
.welcome.about .text-container p {
  max-width: 80%;
}
.welcome.about .text-container p strong {
  color: var(--padma-titoli);
}
.welcome.about .img-container {
  display: flex;
  align-items: center;
}


.flipcard {
  background-color: transparent;
  perspective: 1000px;
}
.flipcard-inner {
  /* flip */ position: relative; width: 100%; height: fit-content; text-align: center; transition: transform 0.8s; transform-style: preserve-3d;
}
.flipcard.flipped .flipcard-inner {
  transform: rotateY(180deg);
}
.flipcard-front, .flipcard-back {
  background-color: var(--padma-white) !important;
  border-radius: var(--border-radius);
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden; /* Safari */
  backface-visibility: hidden;
}
.flipcard-back {
  transform: rotateY(180deg);
}

.about-card {
  display: flex;
  align-items: center;
}
.about-card.reverse {
  flex-direction: row-reverse;
}
.about-card .content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2em;
  height: 100%;
}
.about-card .content.left {
  justify-content: center;
  text-align: left;
}
.about-card .title, .about-card .subtitle {
  font-family: 'Agrandir';
}
.about-card .subtitle, .about-card .text {
  font-size: 80%;
}
.about-card .content strong {
  color: var(--padma-titoli);
}

.about-card .image {
  display: flex;
  align-items: center;
}
.about-card .image img {
  width: calc(100% + 10%);
  margin-left: -10%;
  height: calc(100%);
  object-fit: cover;
  border-radius: var(--border-radius);
}
.about-card.reverse .image img {
  margin-left: 0;
  margin-right: -10%;
}

.about-card .btn-flip {
  color: var(--padma-titoli);
  font-size: 80%;
  background-color: transparent;
  border: none;
  font-family: 'Agrandir';
  cursor: pointer;
  text-decoration: underline;
}

/* Corsi e orari */
.corsi h1 {
  font-family: 'TanPearl';
  font-size: 150%;
}
.corsi .img-orari {
  width: 75%;
  border-radius: var(--border-radius-big);
}

.corso-column {
  padding: 1rem;
  display: flex;
  flex-direction: column;
}
.corso-column.space-up {
  padding-top: 7rem;
}
.corso-card {
  background-color: var(--padma-white);
  border-radius: var(--border-radius);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  height: 100%;
  margin-bottom: 2rem;
}
.corso-card.image {
  background-color: transparent;
  padding: 0;
}
.corso-card.image img {
  width: 100%;
  border-radius: var(--border-radius);
}
.corso-card .text {
  font-size: 80%;
}

/* Eventi */
.eventi h1 {
  font-family: 'TanPearl';
  font-size: 150%;
  max-width: 500px;
}

.events-container {
  justify-content: start;
  align-items: flex-start;
}
.events-container .event-card {
  position: relative;
  background-color: var(--padma-bianco-salvia);
  border-radius: var(--border-radius);
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: center;
  padding: 2rem;
  height: 100%;
  width: 85%;
  margin: -2rem auto 2rem auto;
  transition: .4s;
}
.events-container .event-image img {
  width: 100%;
  border-radius: var(--border-radius);
}
.event-card .title {
  font-family: 'Agrandir';
  color: var(--padma-titoli);
  text-transform: uppercase;
  padding-bottom: .5rem;
  text-align: left;
}
.event-card .title:hover {
  color: var(--padma-verdone);
}
.event-card .text {
  font-size: 75%;
  text-align: left;
  color: var(--padma-testi);
  padding-bottom: .5rem;
  font-weight: 400;
}
.event-card .link {
  font-size: 75%;
  color: var(--padma-testi);
  font-style: italic;
}
.event-card .link:hover {
  text-decoration: underline;
}

/* Singolo evento */
.event-detail .post-thumb img {
  width: 100%;
}
.event-detail .post-content {
  text-align: initial !important;
}
.event-detail .post-content a {
  color: var(--padma-titoli);
  transition: .4s;
  font-weight: 500;
}
.event-detail .post-content a:hover {
  text-decoration: underline;
}
.event-detail .post-content strong {
  font-weight: 600;
}

.custom-pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; }
.custom-pagination a { font-size: 80%; font-weight: 700; color: var(--padma-titoli); background-color: var(--padma-bianco-salvia); text-decoration: none; padding: 1rem; text-align: center; border-radius: var(--border-radius);}
.custom-pagination a:hover { color: var(--padma-testi); }
.custom-pagination a:not(.active) { opacity: .5; }
.custom-pagination a.active { color: var(--padma-white); background-color: var(--padma-accent); }
.custom-pagination a:not(:last-child) { border-right: 1px solid white; }

/* Contacts */
.welcome.contacts {
  padding: 8em 0;
}
.welcome.contacts img {
  border-radius: var(--border-radius-big);
}
.welcome.contacts .text-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.welcome.contacts .text-container h1 {
  font-family: 'TanPearl';
  font-size: 150%;
}
.welcome.contacts .text-container p strong {
  color: var(--padma-titoli);
}

.contact-cards .card {
  height: 100%;
  background-color: var(--padma-bianco-salvia);
  border-radius: var(--border-radius);
  padding: 1.5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.contact-cards .title {
  font-family: 'Agrandir';
  font-size: 110%;
  font-weight: 400;
}
.contact-cards a {
  transition: .4s;
}
.contact-cards a:hover{
  opacity: .7;
}

.contact-card {
  display: flex;
  align-items: center;
}
.contact-card.reverse {
  flex-direction: row-reverse;
}
.contact-card .content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2em;
  height: 100%;
}
.contact-card .content.left {
  justify-content: center;
  text-align: left;
}
.contact-card .title {
  font-family: 'TanPearl';
  font-size: 125%;
}

.contact-card .image {
  display: flex;
  align-items: center;
}
.contact-card .image img {
  width: calc(100% + 25%);
  margin-right: -25%;
  height: calc(100%);
  object-fit: cover;
}

.contact-card .form-container {
  background-color: var(--padma-white);
  border-radius: var(--border-radius-big);
  padding: 2em;
}
.contact-card .image img {
  border-radius: var(--border-radius-big);
}
.contact-card label {
  font-size: 80%;
  color: var(--padma-titoli);
}

section.form form label { display: block; margin-bottom: 20px; font-weight: 500 }
section.form form input, section.form form textarea, section.form button, section.form select { font-size: 100%; outline: none }
section.form form input[type=text], section.form form input[type=email], section.form form textarea, section.form select { border: none; border: 1px solid #F0F0F0; padding: 10px; width: 100%; box-sizing: border-box; line-height: 1.4em; height: 2.75em; border-radius: 5px; }
section.form form input[type=text], section.form form input[type=email], section.form form textarea, section.form select, section.form .pretty { margin-top: 10px }
section.form form textarea { height: 150px }
/*section.form form button { display: block; margin: 0 auto; background-color: #fff; cursor: pointer }
section.form form button:hover { background-color: #1d1d1b; color: #fff }*/

section.form form label span.error { color: var(--padma-salvia); font-weight: 500; float: right }
section.form form label.pretty-label { margin: 0 }
section.form form label.pretty-label span.error { float: none }
section.form form #more { visibility: hidden; height: 0; }
section.form form label.custom { font-size: 80%; color: var(--padma-testi); }
section.form form a { color:var(--padma-titoli) }
.pretty a { position: relative; z-index: 2; }

.pretty .state label:after, .pretty .state label:before { left: auto }
section.form form input[type=text], section.form form input[type=email], section.form form textarea, section.form select, section.form .pretty { margin-top: 0px; }
.row > .custom { margin-top: 10px }
.pretty.p-default input:checked~.state label:after { background-color: var(--padma-salvia) !important;}

section.form .contact-info { width: 475px; margin: 125px auto; margin-right: 0 }
section.form .contact-info p { font-size: 150%; margin-bottom: 25px }
section.form .contact-info span { font-weight: 500 }


.grecaptcha-badge { display: none!important }

/* Thank you */


/* Policies */
section.policy h1 { margin-bottom: 10px }
section.policy h2 { margin-bottom: 1rem; font-family: "Agrandir"; }
section.policy p { margin-bottom: 2rem }
section.policy a { color: #000000; text-decoration: underline; }
section.policy b { display: block; margin: 40px 0 20px }
section.policy ul { padding-left: 30px }

/* 404 */

section.service-page a { color: #000000 }


/* Media Queries */

@media screen and (min-width: 2561px) and (max-width: 3840px) {}
    
@media screen and (min-width: 1921px) and (max-width: 2560px) {}

@media screen and (min-width: 1921px) {}

@media (max-width: 1919px) {
  .container { width: 70% }
	/*#home h1 { font-size: 165% }*/
	.tight { width: 40% }
}

@media screen and (max-width: 1440px) {
  body { font-size: 24px }
	.container { width: 90% }
	.center { width: 70%; margin-bottom: 40px }
	.tight { width: 40% }

	.footer-disclaimer{ text-align: center;}

	.welcome .container { width: 90%; }

  .welcome.about img { width: calc(100% + 25%); }
}

@media (max-width: 1279px) { 

  body { font-size: 21px }
	/*.logo img { height: 40px }*/
	.menu li a { height: 40px; line-height: 40px }

  header .menu { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background: var(--padma-bianco-salvia); margin: 0; padding: 0; z-index: 2; padding: 25px; }
	header .menu li { display: flex; justify-content: center; margin-left: 0; }
	header .menu li a { margin: 25px 20px; font-size: 200% }
	header.home .hamburger, header .hamburger { display: block; position: absolute; right: 2em; z-index: 20 }

  header .header-right {
      display: none;
  }
  header .custom-menu {
      display: none;
  }

  header .mobile-menu {
      overflow: scroll;
  }
    
	.container.small { width: 70% }

}

@media (max-width: 1023px) {

  body { font-size: 18px }
	.container.small { width: 90% }
	.center { margin-bottom: 30px }
	.box-menu { display: block }
	.menu { font-size: 80% }
	.menu li { margin-left: 20px }

  .third { width: 100%;}

  .welcome.home { background-color: transparent; background-image: none !important; }

  .welcome.about img { width: calc(100% + 15%); }

}

@media (max-width: 767px) {
	.container.small { width: 90% }

	.menu-hamb { top: 10px; }
	.hamburger { padding: 10px 0px }

	.menu { padding: 10px 0 15px; }
	.logo img { padding: 15px 15px 15px 0; }

  .content-card { padding-left: 0; }
  .content-box { margin-bottom: 1em; }

  header .header-top .container { justify-content: center; }

  .welcome.footer .cta-image img { width: 40%; margin-bottom: 1em; }
  footer .small { text-align: center; }

  .welcome.about .row { width: 100%; }
  .welcome.about .row img { width: 100%; }
  .welcome.about .text-container { padding-bottom: 2em; }
  .welcome.about .text-container p { max-width: fit-content; }

  .about-card, .about-card.reverse { flex-direction: column-reverse; }
  .about-card .image img { width: 100%; margin-left: 0; margin-right: 0; margin-bottom: -1em; } 
  
  .corso-column.space-up { padding-top: 0; }
  .corso-column.reverse { flex-direction: column-reverse; }
  .corsi .img-orari { width: 100%; }
  .corso-column { padding: 0; }
  .corso-card.image { padding-top: 0; }

  .events-container .event-card { width: 90%; margin-bottom: 3rem; }

  .contact-cards > * { margin-bottom: 2em; }
  .contact-card .image img { width: 100%; margin-left: 0; margin-right: 0; margin-bottom: -2em; } 
  
  .form .button { width: 100%; }

  .content-box { margin-bottom: 3em; }
  .content-box .tappetino-img { width: 100%; bottom: -75px; }

  .welcome.footer { background-attachment: initial !important; }

  footer { background-size: 80%; }
}

@media (max-width: 639px) {
  h1 { font-size: 200% }
  h2 { font-size: 170% }
  h3 { font-size: 130% }
  .center {margin-bottom: 0 }
  .pre-footer { padding: 60px 0 }
  .button { width: auto }

  .fourth { width: 30%; margin: 20px 10% 25px }
  .first { margin-left: 10% !important }
  .last { margin-left: 10% !important }
  .info { margin: 40px auto 20px }

  .half { width: 100%; }

  .card-container {
    text-align: center;
    align-items: center;
  }

  .cta-title {
    font-size: 180%;
  }

  .welcome.home h1 {
    font-size: 220%;
  }

}

@media (max-width: 479px) { 
  body{
    font-size: 18px;
  }
}

@media (max-width: 359px) {
 
}

@media (min-width: 768px) {
    .col-lg-3 {
      flex: 0 0 auto;
      width: 25%
    }
    .col-lg-4 {
      flex: 0 0 auto;
      width: 33.33333333%;
    }
    .col-lg-5 {
        flex: 0 0 auto;
        width: 41.66666667%
    }
    .col-lg-6 {
        flex: 0 0 auto;
        width: 50%
    }
    .col-lg-7 {
        flex: 0 0 auto;
        width: 58.33333333%
    }
    .col-lg-8 {
      flex: 0 0 auto;
      width: 66.66666667%;
    }
    .col-lg-9 {
      flex: 0 0 auto;
      width: 75%
    }

    .d-lg-none {
      display: none !important;
    }
    .d-lg-flex {
      display: flex !important;
    }
    
}