@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Montserrat:wght@400;500;600;700&display=swap');

:root{
  --cream:#faf7f2;
  --cream_deep:#f2ece2;
  --ink:#2b2621;
  --ink_soft:#5c5449;
  --gold:#c9a876;
  --gold_deep:#b3915f;
  --line:#e3dbcc;
  --white:#ffffff;
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:'Montserrat', sans-serif;
  color:var(--ink);
  background:var(--cream);
}

a{
  text-decoration:none;
  color:inherit;
}

ul, ol{
  list-style:none;
}

img{
  display:block;
  max-width:100%;
}

.container{
  max-width:87.5em;
  margin:0 auto;
  padding:0 2.5em;
}



.section_title{
  text-align:center;
  font-family:'Marcellus', serif;
  font-weight:400;
  font-size:2em;
  margin-bottom:3.125em;
}

.section_title_left{
  text-align:left;
  margin-bottom:1.5em;
}



.btn{
  display:inline-block;
  font-size:0.7188em;
  letter-spacing:0.1em;
  font-weight:700;
  padding:0.9375em 1.875em;
  border:0.0625em solid transparent;
  cursor:pointer;
}

.btn_sm{
  padding:0.6875em 1.375em;
  font-size:0.6562em;
}

.btn_primary{
  background:var(--gold);
  color:var(--white);
}

.btn_primary:hover{
  background:var(--gold_deep);
}

.btn_outline{
  background:transparent;
  border-color:var(--gold);
  color:var(--ink);
}

.btn_outline:hover{
  background:var(--gold);
  color:var(--white);
}



.main_header{
  background:var(--cream);
  position:sticky;
  top:0;
  z-index:100;
  border-bottom:0.0625em solid var(--gold);
  box-shadow:0 0.25em 1em rgba(43,38,33,.05);
}

.header_inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2em;
  padding:1em 0;
}

.main_header .logo{
  margin-left: 3em;
}

.logo img{
  height:4em;
  width:auto;
  display:block;
}

.logo_footer img{
  height:4.5em;
  filter:brightness(0) invert(1);
}

.main_nav ul{
  display:flex;
  align-items:center;
  gap:2.1em;
}

.main_nav > ul > li{
  display:flex;
  align-items:center;
}

.main_nav a{
  font-size:0.85em;
  letter-spacing:0.0625em;
  font-weight:600;
}

.main_nav a:hover{
  color:var(--gold_deep);
}

.main_nav li.has_dropdown{
  position:relative;
}

.main_nav .dropdown_toggle{
  display:flex;
  align-items:center;
  gap:0.35em;
  cursor:pointer;
  font-size:0.85em;
  letter-spacing:0.0625em;
  font-weight:600;
}

.main_nav .dropdown_toggle svg{
  width:0.85em;
  height:0.85em;
  transition:transform .25s ease;
}

@media (min-width: 64.01em){
  .main_nav li.has_dropdown:hover .dropdown_toggle svg{
    transform:rotate(180deg);
  }
}

.main_nav .dropdown{
  display:flex;
  flex-direction:column;
  position:absolute;
  top:100%;
  left:50%;
  margin-top:0;
  padding:0.9em 0 0.4em;
  min-width:14em;
  background:var(--white);
  border-top:0.1875em solid var(--gold);
  box-shadow:0 1em 2.5em rgba(43,38,33,.14);
  z-index:50;
  gap:0;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%, -0.35em);
  transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
}

@media (min-width: 64.01em){
  .main_nav li.has_dropdown:hover .dropdown{
    opacity:1;
    visibility:visible;
    transform:translate(-50%, 0);
    pointer-events:auto;
  }
}

.main_nav .dropdown li{
  width:100%;
}

.main_nav .dropdown a{
  display:block;
  padding:0.75em 1.4em;
  white-space:nowrap;
  font-size:0.95em;
  letter-spacing:0.02em;
  border-left:0.1875em solid transparent;
}

.main_nav .dropdown a:hover{
  background:var(--cream);
  border-left-color:var(--gold);
  color:var(--gold_deep);
}

.header_right{
  display:flex;
  align-items:center;
  gap:1.25em;
}

.phone{
  font-size:0.8125em;
  font-weight:500;
}

.header_social{
  display:flex;
  gap:0.75em;
}

.icon_link{
  width:1.875em;
  height:1.875em;
  border:0.0625em solid var(--gold);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold_deep);
}

.icon_link:hover{
  background:var(--gold);
  color:var(--white);
}

.icon_link svg{
  width:0.875em;
  height:0.875em;
}




.side_nav{
  position:absolute;
  top:50%;
  left:2.5em;
  transform:translateY(-50%);
  z-index:2;
}

.side_nav ul{
  display:flex;
  flex-direction:column;
  gap:0.9em;
}

.side_nav a{
  display:block;
  padding-left:1em;
  font-size:0.75em;
  letter-spacing:0.08em;
  font-weight:600;
  color:rgba(255,255,255,.75);
  border-left:0.0625em solid rgba(255,255,255,.35);
  transition:color .25s ease, border-color .25s ease, padding-left .25s ease;
}

.side_nav a:hover{
  color:var(--white);
  border-left-color:var(--gold);
  padding-left:1.25em;
}
.hero_section{
  position:relative;
  min-height:90vh;
  display:flex;
  align-items:center;
}

.hero_media{
  position:absolute;
  inset:0;
}

.hero_media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero_overlay{
  position:absolute;
  inset:0;
  background:rgba(20,16,12,.65);
}

.hero_content{
  position:relative;
  max-width:47.5em;
  color:var(--white);
  padding:5em 2.5em;
}

.hero_title{
  font-family:'Marcellus', serif;
  font-weight:400;
  font-size:2.875em;
  line-height:1.25;
}

.hero_text{
  margin-top:1.5em;
  font-size:0.9375em;
  line-height:1.8;
  color:rgba(255,255,255,.9);
  max-width:40em;
}

.hero_buttons{
  display:flex;
  gap:1em;
  margin-top:2.25em;
}

.hero_buttons .btn_outline{
  border-color:var(--white);
  color:var(--white);
}

.hero_buttons .btn_outline:hover{
  background:var(--white);
  color:var(--ink);
}

.hero_badges{
  display:flex;
  gap:1.75em;
  margin-top:2.5em;
  padding-top:1.75em;
  border-top:0.0625em solid rgba(255,255,255,.3);
}

.hero_badges li{
  font-size:0.7188em;
  letter-spacing:0.075em;
  font-weight:600;
  padding-left:1em;
  position:relative;
}

.hero_badges li::before{
  content:'';
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:0.375em;
  height:0.375em;
  border-radius:50%;
  background:var(--gold);
}


.about_section{
  padding:6.25em 0;
}

.about_grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4.375em;
  align-items:center;
}

.about_text p{
  font-size:0.9062em;
  line-height:1.85;
  color:var(--ink_soft);
  margin-bottom:1.125em;
}

.about_text .btn{
  margin-top:0.75em;
}

.about_media img{
  width:100%;
  height:32.5em;
  object-fit:cover;
}



.why_section{
  padding:6.25em 0;
  background:var(--cream_deep);
}

.why_grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:0.125em;
  background:var(--line);
}

.why_card{
  background:var(--cream_deep);
  padding:2.75em 1.625em;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1.125em;
}

.why_card:hover{
  background:var(--white);
}

.why_icon{
  width:2.75em;
  height:2.75em;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold_deep);
}

.why_icon svg{
  width:2.125em;
  height:2.125em;
}

.why_card h3{
  font-size:0.7812em;
  font-weight:600;
  line-height:1.5;
}



.services_section{
  padding:6.25em 0;
}

.services_grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.75em;
}

.service_card{
  background:var(--white);
  border:0.0625em solid var(--line);
  display:flex;
  flex-direction:column;
}

.service_media{
  height:13.75em;
  overflow:hidden;
}

.service_media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.service_body{
  padding:1.625em 1.5em 1.875em;
  display:flex;
  flex-direction:column;
  gap:0.75em;
  flex:1;
}

.service_body h3{
  font-family:'Marcellus', serif;
  font-weight:400;
  font-size:1.1875em;
}

.service_body p{
  font-size:0.8438em;
  line-height:1.7;
  color:var(--ink_soft);
  flex:1;
}

.service_duration{
  font-size:0.7188em;
  font-weight:600;
  color:var(--gold_deep);
}

.service_body .btn{
  align-self:flex-start;
}



.certificates_section{
  padding:6.25em 0;
  background:var(--cream_deep);
}

.certificates_grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4.375em;
  align-items:center;
}

.certificates_text p{
  font-size:0.9062em;
  line-height:1.85;
  color:var(--ink_soft);
  margin-bottom:1.5em;
}

.certificates_list{
  display:flex;
  flex-direction:column;
  gap:0.75em;
  margin-bottom:2em;
}

.certificates_list li{
  display:flex;
  align-items:center;
  gap:0.625em;
  font-size:0.875em;
}

.certificates_list .check{
  color:var(--gold_deep);
  font-weight:700;
}

.certificates_media img{
  width:100%;
  height:26.25em;
  object-fit:cover;
}



.timeline_section{
  padding:6.25em 0;
}

.timeline{
  display:flex;
  justify-content:space-between;
  gap:0.75em;
  position:relative;
}

.timeline::before{
  content:'';
  position:absolute;
  top:1.25em;
  left:0;
  right:0;
  height:0.0625em;
  background:var(--line);
}

.timeline_step{
  position:relative;
  flex:1;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1em;
}

.timeline_number{
  width:2.5em;
  height:2.5em;
  border-radius:50%;
  background:var(--gold);
  color:var(--white);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.75em;
  font-weight:700;
}

.timeline_step h3{
  font-size:0.7812em;
  font-weight:600;
  line-height:1.5;
  max-width:7.5em;
}

.timeline_note{
  max-width:45em;
  margin:3.5em auto 0;
  text-align:center;
  font-size:0.875em;
  line-height:1.8;
  color:var(--ink_soft);
}



.gallery_section{
  padding:6.25em 0;
  background:var(--cream_deep);
}

.gallery_grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:12.5em;
  gap:0.625em;
}

.gallery_item{
  overflow:hidden;
}

.gallery_item:nth-child(3n+1){
  grid-row:span 2;
}

.gallery_item img{
  width:100%;
  height:100%;
  object-fit:cover;
}



.reviews_section{
  padding:6.25em 0;
}

.reviews_grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5em;
}

.review_card{
  background:var(--white);
  border:0.0625em solid var(--line);
  padding:2em 1.75em;
  display:flex;
  flex-direction:column;
  gap:0.875em;
}

.review_avatar{
  width:3.25em;
  height:3.25em;
  border-radius:50%;
  object-fit:cover;
}

.review_rating{
  color:var(--gold);
  font-size:0.875em;
  letter-spacing:0.125em;
}

.review_text{
  font-size:0.875em;
  line-height:1.75;
  color:var(--ink_soft);
  flex:1;
}

.review_name{
  font-size:0.7812em;
  font-weight:700;
}

.reviews_cta{
  text-align:center;
  margin-top:2.25em;
}



.faq_section{
  padding:6.25em 0;
  background:var(--cream_deep);
}

.faq_list{
  max-width:51.25em;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:0.125em;
}

.faq_item{
  background:var(--white);
  border:0.0625em solid var(--line);
  padding:1.375em 1.75em;
}

.faq_item summary{
  cursor:pointer;
  font-size:0.9062em;
  font-weight:600;
}

.faq_item p{
  margin-top:1em;
  font-size:0.8438em;
  line-height:1.8;
  color:var(--ink_soft);
}



.booking_section{
  padding:6.25em 0;
}

.booking_grid{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:4.375em;
}

.booking_intro p{
  font-size:0.9062em;
  color:var(--ink_soft);
  line-height:1.8;
}

.booking_form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.375em;
  background:var(--white);
  border:0.0625em solid var(--line);
  padding:2.25em;
}

.form_row{
  display:flex;
  flex-direction:column;
  gap:0.5em;
}

.form_row_full{
  grid-column:1 / -1;
}

.form_row label{
  font-size:0.7188em;
  font-weight:600;
  color:var(--ink_soft);
}

.form_row input,
.form_row select,
.form_row textarea{
  font-family:'Montserrat', sans-serif;
  font-size:0.8438em;
  padding:0.75em 0.875em;
  border:0.0625em solid var(--line);
  background:var(--cream);
  color:var(--ink);
}

.form_row input:focus,
.form_row select:focus,
.form_row textarea:focus{
  outline:none;
  border-color:var(--gold);
}

.form_checkbox{
  flex-direction:row;
  align-items:center;
  gap:0.625em;
}

.form_checkbox input{
  width:1em;
  height:1em;
}

.form_checkbox label{
  font-size:0.7812em;
  color:var(--ink_soft);
  font-weight:500;
}

.form_submit{
  border:none;
  text-align:center;
}



.contacts_section{
  padding:6.25em 0;
  background:var(--cream_deep);
}

.contacts_grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:4.375em;
}

.contacts_list{
  display:flex;
  flex-direction:column;
  gap:1.375em;
  margin:1.75em 0 2.125em;
}

.contacts_list li{
  display:flex;
  gap:1em;
}

.info_icon{
  width:2.125em;
  height:2.125em;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold_deep);
}

.info_icon svg{
  width:1.5em;
  height:1.5em;
}

.contacts_list h4{
  font-size:0.75em;
  font-weight:700;
  margin-bottom:0.25em;
}

.contacts_list p,
.contacts_list a{
  font-size:0.8438em;
  color:var(--ink_soft);
}

.contacts_map{
  min-height:26.25em;
  border:0.0625em solid var(--line);
}

.contacts_map iframe{
  width:100%;
  height:100%;
  min-height:26.25em;
}



.page_hero{
  position:relative;
  min-height:22em;
  display:flex;
  align-items:center;
}

.page_hero_media{
  position:absolute;
  inset:0;
}

.page_hero_media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.page_hero_overlay{
  position:absolute;
  inset:0;
  background:rgba(20,16,12,.5);
}

.page_hero_content{
  position:relative;
  color:var(--white);
}

.breadcrumbs{
  display:block;
  font-size:0.75em;
  letter-spacing:0.05em;
  color:rgba(255,255,255,.75);
  margin-bottom:0.75em;
}

.breadcrumbs a{
  color:rgba(255,255,255,.75);
}

.breadcrumbs a:hover{
  color:var(--gold);
}

.page_hero_title{
  font-family:'Marcellus', serif;
  font-weight:400;
  font-size:2.5em;
}



.article_section{
  padding:6.25em 0;
}

.article_container{
  display:grid;
  grid-template-columns:15em minmax(0,42em);
  gap:4em;
  justify-content:center;
  align-items:start;
}

.must_try{
  position:sticky;
  top:6em;
  border:0.0625em solid var(--line);
  background:var(--white);
}

.must_try_label{
  display:block;
  font-family:'Marcellus', serif;
  font-size:0.85em;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--white);
  background:var(--ink);
  padding:0.9em 1.25em;
}

.must_try_item{
  display:block;
  padding:0.9em 1.25em;
  border-bottom:0.0625em solid var(--line);
  border-left:0.1875em solid transparent;
}

.must_try_item:hover{
  border-left-color:var(--gold);
  background:var(--cream);
}

.must_try_name{
  display:block;
  font-size:0.8em;
  font-weight:600;
  color:var(--ink);
  line-height:1.4;
  margin-bottom:0.4em;
}

.must_try_meta{
  display:flex;
  justify-content:space-between;
  font-size:0.7em;
  letter-spacing:0.03em;
  color:var(--gold_deep);
  font-weight:600;
}

.must_try_all{
  display:block;
  text-align:center;
  margin:1em;
  width:calc(100% - 2em);
}

.article_text{
  max-width:44em;
}

.article_text p{
  font-size:0.95em;
  line-height:1.9;
  color:var(--ink_soft);
  margin-bottom:1.4em;
}

.article_lead{
  font-size:1.05em;
  color:var(--ink);
}

.article_text h2{
  font-family:'Marcellus', serif;
  font-weight:400;
  font-size:1.5em;
  color:var(--ink);
  margin:1.8em 0 0.8em;
}

.article_text a{
  color:var(--gold_deep);
  border-bottom:0.0625em solid var(--gold);
}

.article_text a:hover{
  color:var(--ink);
  border-bottom-color:var(--ink);
}

.article_cta{
  margin-top:2em;
}



.main_footer{
  background:var(--ink);
  color:rgba(255,255,255,.75);
  padding-top:5em;
}

.footer_grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:3.125em;
  padding-bottom:3.75em;
  border-bottom:0.0625em solid rgba(255,255,255,.12);
}

.footer_about .logo_name{
  color:var(--white);
}

.footer_about .logo_sub{
  color:rgba(255,255,255,.6);
}

.footer_about p{
  margin-top:1.125em;
  font-size:0.8438em;
  line-height:1.8;
  max-width:17.5em;
}

.footer_col h4{
  font-size:0.75em;
  font-weight:700;
  color:var(--white);
  margin-bottom:1.375em;
  text-transform:uppercase;
}

.footer_col ul{
  display:flex;
  flex-direction:column;
  gap:0.75em;
}

.footer_col a:hover{
  color:var(--gold);
}

.footer_col li{
  font-size:0.8438em;
}

.footer_bottom{
  padding:1.625em 0;
}

.footer_bottom p{
  font-size:0.75em;
  color:rgba(255,255,255,.5);
  text-align:center;
}



.nav_toggle,
.services_toggle{
  display:none;
}

.burger{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:0.3125em;
  width:2.875em;
  height:2.875em;
  flex-shrink:0;
  border:0.0625em solid var(--gold);
  border-radius:50%;
  cursor:pointer;
  position:relative;
  z-index:210;
  transition:background .25s ease, border-color .25s ease;
}

.burger:hover{
  background:var(--gold);
}

.burger span{
  display:block;
  width:1.125em;
  height:0.09375em;
  background:var(--ink);
  border-radius:0.125em;
  transition:transform .3s ease, opacity .3s ease, width .3s ease, background .25s ease;
}

.burger:hover span{
  background:var(--white);
}

.burger span:nth-child(2){
  width:0.8em;
  align-self:flex-end;
  margin-right:0.65em;
}

.nav_toggle:checked ~ .burger{
  background:var(--gold);
  border-color:var(--gold);
}

.nav_toggle:checked ~ .burger span{
  background:var(--white);
}

.nav_toggle:checked ~ .burger span:nth-child(1){
  width:1.125em;
  transform:translateY(0.4em) rotate(45deg);
}

.nav_toggle:checked ~ .burger span:nth-child(2){
  opacity:0;
}

.nav_toggle:checked ~ .burger span:nth-child(3){
  width:1.125em;
  transform:translateY(-0.4em) rotate(-45deg);
}

.nav_backdrop{
  display:none;
}

.mobile_panel{
  display:contents;
}

@media (max-width: 64em){



  .header_inner{
    padding:0.75em 0;
    gap:1em;
  }

  .main_header .logo{
    margin-left:0.75em;
  }

  .logo img{
    height:4.25em;
  }

  .burger{
    display:flex;
  }

  .nav_backdrop{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(20,16,12,.45);
    opacity:0;
    visibility:hidden;
    transition:opacity .35s ease, visibility .35s ease;
    z-index:190;
  }

  .nav_toggle:checked ~ .nav_backdrop{
    opacity:1;
    visibility:visible;
  }

  .mobile_panel{
    display:flex;
    flex-direction:column;
    gap:2.25em;
    position:fixed;
    top:0;
    right:0;
    height:100vh;
    width:min(22em, 84vw);
    background:var(--cream);
    box-shadow:-1em 0 3em rgba(43,38,33,.18);
    padding:6em 2em 2.5em;
    overflow-y:auto;
    transform:translateX(100%);
    transition:transform .35s ease;
    z-index:200;
  }

  .nav_toggle:checked ~ .mobile_panel{
    transform:translateX(0);
  }

  .main_nav ul{
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }

  .main_nav > ul > li{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    border-bottom:0.0625em solid var(--line);
  }

  .main_nav > ul > li:first-child{
    border-top:0.0625em solid var(--line);
  }

  .main_nav a{
    width:100%;
    padding:1em 0 1em 0.9em;
    font-size:0.95em;
    border-left:0.1875em solid transparent;
    transition:color .2s ease, border-color .2s ease, background .2s ease, padding-left .2s ease;
  }

  .main_nav > ul > li > a:hover,
  .main_nav > ul > li > a:active{
    color:var(--gold_deep);
    border-left-color:var(--gold);
    background:var(--cream_deep);
    padding-left:1.25em;
  }

  .main_nav .dropdown_toggle{
    width:100%;
    padding:1em 0 1em 0.9em;
    font-size:0.95em;
    justify-content:space-between;
    border-left:0.1875em solid transparent;
    transition:color .2s ease, border-color .2s ease, background .2s ease;
  }

  .main_nav .dropdown_toggle:hover,
  .main_nav .dropdown_toggle:active{
    color:var(--gold_deep);
    border-left-color:var(--gold);
    background:var(--cream_deep);
  }

  .services_toggle:checked ~ .dropdown_toggle svg{
    transform:rotate(180deg);
  }

  .main_nav .dropdown{
    position:static;
    display:flex;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
    box-shadow:none;
    border-top:none;
    min-width:0;
    padding:0;
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease, padding .3s ease;
  }

  .services_toggle:checked ~ .dropdown{
    max-height:20em;
    padding:0.25em 0 0.75em;
  }

  .main_nav .dropdown a{
    padding:0.7em 0 0.7em 1em;
    font-size:0.875em;
    border-left:0.1875em solid var(--line);
  }

  .main_nav .dropdown a:hover{
    border-left-color:var(--gold);
  }

  .header_right{
    flex-direction:column;
    align-items:flex-start;
    gap:1.25em;
    width:100%;
  }

  .header_right .btn{
    width:100%;
    text-align:center;
  }

  .phone{
    font-size:0.95em;
  }


  .side_nav{
    display:none;
  }

  .hero_section{
    min-height:auto;
  }

  .hero_content{
    padding:5.5em 1.5em 3.5em;
  }

  .hero_title{
    font-size:2em;
  }

  .hero_buttons{
    flex-wrap:wrap;
  }

  .hero_badges{
    flex-wrap:wrap;
    gap:1.25em 1.75em;
  }

  .page_hero{
    min-height:16em;
  }

  .page_hero_title{
    font-size:1.75em;
  }


  .about_grid{
    grid-template-columns:1fr;
    gap:2.5em;
  }

  .about_media{
    order:-1;
  }

  .about_media img{
    height:20em;
  }


  .why_grid{
    grid-template-columns:repeat(2, 1fr);
  }



  .services_grid{
    grid-template-columns:repeat(2, 1fr);
    gap:1.25em;
  }



  .certificates_grid{
    grid-template-columns:1fr;
    gap:2.5em;
  }

  .certificates_media{
    order:-1;
  }

  .certificates_media img{
    height:18em;
  }



  .timeline{
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }

  .timeline::before{
    display:none;
  }

  .timeline_step{
    flex:none;
    flex-direction:row;
    align-items:flex-start;
    text-align:left;
    gap:1.25em;
    padding-bottom:2.25em;
    position:relative;
  }

  .timeline_step:last-child{
    padding-bottom:0;
  }

  .timeline_step:not(:last-child)::after{
    content:'';
    position:absolute;
    left:1.25em;
    top:2.5em;
    bottom:0;
    width:0.0625em;
    background:var(--line);
  }

  .timeline_number{
    flex-shrink:0;
  }

  .timeline_step h3{
    max-width:none;
    padding-top:0.5em;
    text-align:left;
  }



  .gallery_grid{
    grid-template-columns:repeat(2, 1fr);
    grid-auto-rows:10em;
  }



  .reviews_grid{
    grid-template-columns:1fr 1fr;
  }



  .faq_item summary{
    font-size:0.875em;
  }



  .booking_grid{
    grid-template-columns:1fr;
    gap:2.5em;
  }

  .booking_form{
    grid-template-columns:1fr;
    padding:1.75em;
  }



  .contacts_grid{
    grid-template-columns:1fr;
    gap:2.5em;
  }

  .contacts_map{
    order:-1;
    min-height:18em;
  }

  .contacts_map iframe{
    min-height:18em;
  }


  .article_container{
    grid-template-columns:1fr;
    gap:2.5em;
  }

  .must_try{
    position:static;
    max-width:none;
  }


  .footer_grid{
    grid-template-columns:1fr 1fr;
    gap:2.5em 1.75em;
  }

  .footer_about{
    grid-column:1 / -1;
  }
}

@media (max-width: 40em){

  .container{
    padding-left:1.25em;
    padding-right:1.25em;
  }

  .section_title{
    font-size:1.5em;
    margin-bottom:2em;
  }

  .hero_title{
    font-size:1.625em;
  }

  .hero_text{
    font-size:0.9em;
  }

  .hero_badges{
    gap:1em 1.5em;
  }

  .hero_badges li{
    font-size:0.6875em;
  }

  .why_grid{
    grid-template-columns:1fr;
  }

  .services_grid{
    grid-template-columns:1fr;
  }

  .gallery_grid{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:8.5em;
  }

  .reviews_grid{
    grid-template-columns:1fr;
  }

  .footer_grid{
    grid-template-columns:1fr;
  }

  .footer_about{
    grid-column:auto;
  }

  .mobile_panel{
    width:100%;
    max-width:none;
  }
}