/* ==========================================================================
   QG-Resto — identité visuelle originale (Code A-Z)
   Se superpose à style.min.css : mêmes couleurs (--orange, --vert, --rouge,
   fond crème), nouvelle typographie et quelques compositions signature.
   ========================================================================== */

body{
  font-family:'Nunito', sans-serif;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6{
  font-family:'Berkshire Swash', cursive;
  font-weight:400;
  letter-spacing:.01em;
}

.subheading{
  font-family:'Quicksand', sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.8rem;
}

/* ---------- boutons ---------- */
.btn{
  font-family:'Quicksand', sans-serif;
  font-weight:700;
  letter-spacing:.03em;
}
.btn-primary{
  text-transform:uppercase;
}
.btn-icon{
  font-family:'Quicksand', sans-serif;
  font-weight:600;
}

/* ---------- navigation ---------- */
.navbar .nav-link{
  font-family:'Quicksand', sans-serif;
  font-weight:600;
  position:relative;
  padding-bottom:.3em;
}
.navbar .nav-item:not(.dropdown) > .nav-link::after{
  content:"";
  position:absolute;
  left:6px; right:100%; bottom:2px;
  height:2px;
  background:var(--orange);
  transition:right .2s ease;
}
.navbar .nav-item:not(.dropdown) > .nav-link:hover::after{
  right:6px;
}

/* ---------- hero (page d'accueil) ---------- */
/* Le hero d'origine était calibré pour un owl-carousel plein cadre ;
   la nouvelle composition (photo + chip + badge) se dimensionne à son
   contenu, donc on repasse la section en hauteur libre. */
.hero{ height:auto; padding-block:3.5em; }
@media (min-width:992px){
  .hero{ height:auto; padding-block:5.5em; }
}
.hero-info h5{
  font-family:'Quicksand', sans-serif;
  font-weight:600;
  font-size:.85rem;
}
.hero-visual{ position:relative; max-width:420px; margin:0 auto; }
.hero-photo-main{
  border-radius:16px; overflow:hidden; aspect-ratio:4/5;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.35);
}
.hero-photo-main img{ width:100%; height:100%; object-fit:cover; }
.hero-photo-chip{
  position:absolute; width:42%; aspect-ratio:1/1; border-radius:14px; overflow:hidden;
  border:5px solid #fff; box-shadow:0 18px 34px -14px rgba(0,0,0,.4);
  bottom:-8%; left:-12%;
}
.hero-photo-chip img{ width:100%; height:100%; object-fit:cover; }
.hero-badge{
  position:absolute; top:-6%; right:2%; background:#fff; border-radius:50%;
  width:6.2em; height:6.2em; display:flex; align-items:center; justify-content:center;
  text-align:center; box-shadow:0 14px 30px -12px rgba(0,0,0,.35); transform:rotate(-8deg);
  z-index:2;
}
.hero-badge span{
  font-family:'Quicksand', sans-serif; font-weight:700; font-size:.72rem;
  text-transform:uppercase; line-height:1.25; color:var(--orange);
}
@media (max-width:767px){
  .hero-photo-chip{ display:none; }
}
.hero{ position:relative; overflow:hidden; }
.hero::before{
  content:""; position:absolute; top:-20%; right:-12%; width:55%; height:150%;
  background:var(--orange); opacity:.07;
  border-radius:48% 52% 62% 38%/48% 42% 58% 52%;
  z-index:0; pointer-events:none;
}
.hero > .container{ position:relative; z-index:1; }

/* ---------- à propos : composition en chevauchement, pas le split 50/50 classique ---------- */
@media (min-width:576px){
  #gtco-welcome .row{ position:relative; }
  #gtco-welcome .img-bg.img-2{
    border-radius:18px; box-shadow:0 30px 60px -20px rgba(0,0,0,.35);
    transform:rotate(-2deg); position:relative; z-index:2;
  }
  #gtco-welcome .col-sm-7{ position:relative; z-index:1; }
  #gtco-welcome .col-sm-7::before{
    content:""; position:absolute; inset:-1.5em -1.5em -1.5em -4.5em;
    background:var(--creme, #f4ede5); border-radius:24px; z-index:-1;
  }
}
#gtco-welcome .row .col-4:nth-child(2){ transform:translateY(-16px); }
#gtco-welcome .row .col-4:nth-child(2) .thumb-menu img{ box-shadow:0 22px 38px -16px rgba(0,0,0,.28); }

/* ---------- plats spéciaux : les deux plats ne se ressemblent pas ---------- */
#gtco-special-dishes .special-number{
  font-size:3.4rem;
  display:inline-flex; align-items:center; gap:1em;
}
#gtco-special-dishes .special-number::after{
  background:var(--encre, #000); opacity:.2;
}
#gtco-special-dishes img.shadow{
  border-radius:18px;
}
#gtco-special-dishes .dish-row-a,
#gtco-special-dishes .dish-row-b{ position:relative; }
#gtco-special-dishes .dish-row-a > div,
#gtco-special-dishes .dish-row-b > div{ position:relative; z-index:1; }
#gtco-special-dishes .dish-row-a::before{
  content:""; position:absolute; top:8%; right:-4%; width:52%; height:84%;
  background:var(--vert); opacity:.12;
  border-radius:40% 60% 55% 45%/50% 45% 55% 50%; z-index:0; pointer-events:none;
}
#gtco-special-dishes .dish-row-b::before{
  content:""; position:absolute; top:8%; left:-4%; width:52%; height:84%;
  background:var(--orange); opacity:.1;
  border-radius:45% 55% 50% 50%/55% 45% 55% 45%; z-index:0; pointer-events:none;
}
@media (min-width:992px){
  #gtco-special-dishes .dish-row-a img.shadow{ transform:rotate(-2deg); }
  #gtco-special-dishes .dish-row-b img.shadow{ transform:rotate(2deg); }
}
.special-dishes-price{
  display:inline-block; background:#fff; padding:.35em 1em; border-radius:30px;
  box-shadow:0 12px 26px -14px rgba(0,0,0,.3);
}

/* ---------- menu (liste + prix) ---------- */
.menu-item .menu-price, .menu-price{
  font-family:'Quicksand', sans-serif;
  font-weight:700;
  color:var(--vert) !important;
}
.menus .text-wrap h4{
  font-family:'Nunito', sans-serif;
  font-weight:600;
}
.thumb-menu img{ border-radius:12px; }
.thumb-menu h6{
  font-family:'Nunito', sans-serif;
  font-weight:600;
  font-size:.82rem;
}
.menu-img{ border-radius:16px; }
.menu-img.rounded-circle{ border-radius:16px !important; }
@media (min-width:992px){
  .menu-wrap:nth-child(2){ transform:translateY(-30px); }
}

/* ---------- compose ton assiette (signature) ---------- */
.builder{
  margin-top:3.5em; background:#fff; border-radius:18px; padding:2.4em;
  box-shadow:0 24px 60px -30px rgba(0,0,0,.2);
  display:grid; grid-template-columns:1.2fr .8fr; gap:2.6em;
}
.builder-head{ grid-column:1/-1; text-align:center; max-width:56ch; margin:0 auto .6em; }
.builder-head h3{ font-size:1.35rem; margin-top:.25em; }
.chip-group{ margin-bottom:1.5em; }
.chip-group h5{
  font-family:'Quicksand', sans-serif; font-size:.85rem; text-transform:uppercase;
  letter-spacing:.08em; color:var(--orange); margin-bottom:.7em;
}
.chip-list{ display:flex; flex-direction:column; gap:.55em; }
.chip{
  display:flex; justify-content:space-between; align-items:center; gap:1em;
  border:2px solid #e7ddcf; border-radius:12px; padding:.75em 1.05em;
  background:var(--creme, #f4ede5); cursor:pointer; font-family:'Nunito', sans-serif;
  text-align:left; width:100%;
}
.chip .price{ font-family:'Quicksand', sans-serif; font-weight:700; color:var(--vert); flex:none; }
.chip[aria-pressed="true"]{ border-color:var(--orange); background:#fff4ec; }
.receipt{
  background:var(--creme, #f4ede5); border-radius:14px; padding:1.7em;
  border:2px dashed #d8cfc2; align-self:start;
}
.receipt h4{ text-align:center; font-size:1.05rem; margin:0; }
.receipt .sub{ text-align:center; color:#5b544c; font-size:.8rem; margin-top:.2em; font-family:'Nunito'; }
.receipt-line{
  display:flex; justify-content:space-between; gap:1em; font-family:'Nunito', sans-serif;
  font-size:.88rem; padding-block:.5em; border-bottom:1px dashed #d8cfc2; margin:0;
}
.receipt-line.empty{ color:#9a9086; }
.receipt-total{
  display:flex; justify-content:space-between; font-family:'Quicksand', sans-serif;
  font-weight:700; font-size:1.1rem; margin-top:.9em; padding-top:.9em; border-top:2px solid #2b241f;
}
.receipt-total .n{ color:var(--orange); }
.receipt .btn-block-custom{ display:block; width:100%; text-align:center; margin-top:1.2em; }
@media (max-width:991px){
  .builder{ grid-template-columns:1fr; }
}

/* ---------- témoignages ---------- */
.testi-content .testi-icon{ color:var(--orange); }
.testi-author{
  font-family:'Quicksand', sans-serif;
  font-weight:700;
}
.testi-desc{ font-family:'Nunito', sans-serif; }

/* ---------- équipe ---------- */
.team-photo{
  width:8.5em; height:8.5em; border-radius:50%; overflow:hidden; margin:0 auto 1em;
  border:5px solid var(--creme, #f4ede5); box-shadow:0 16px 30px -14px rgba(0,0,0,.3);
}
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-card{ text-align:center; }
.team-desc.team-desc-static{
  position:static; background:none; box-shadow:none; height:auto; overflow:visible;
  padding:0; left:auto; right:auto; bottom:auto;
}
.team-desc.team-desc-static h4{ font-size:1.1rem; }
.team-desc.team-desc-static p{
  font-family:'Quicksand', sans-serif; font-weight:600; color:var(--orange);
  text-transform:uppercase; letter-spacing:.05em; font-size:.82rem;
}
.team-desc.team-desc-static .team-social-links{ opacity:1; margin-top:.5em; }
.team-card:hover .team-desc.team-desc-static{ height:auto !important; overflow:visible !important; }

/* Le PDG dirige l'équipe : la mise en page le dit aussi, pas seulement le texte */
@media (min-width:768px){
  .team-card-lead{ transform:translateY(-22px); }
  .team-card-lead .team-photo{
    width:10.5em; height:10.5em; border-color:#fff;
    box-shadow:0 22px 40px -16px rgba(0,0,0,.35), 0 0 0 3px var(--orange);
  }
}

/* ---------- réservation ---------- */
#gtco-reservation .section-content{
  border-radius:18px;
}

/* ---------- footer ---------- */
.footer-widget h4{
  font-family:'Quicksand', sans-serif;
  font-weight:700;
  font-size:1rem;
}
