/* SLAVBOOK home refresh — services, graduates, gate, FAB */

/* Послуги — прозорий фон блоку #ebebeb */
#rec-extra-services .gv-services.gv-services--glass{
  border:none;background:transparent;overflow:visible;border-radius:0;max-width:none;
}
.gv-services--glass{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
}
.gv-glass-card{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:12px 14px;border-radius:var(--card-radius, 14px);
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  box-shadow:0 2px 12px rgba(0,0,0,.05);
  color:var(--ab-text, #111);font-family:'Roboto',sans-serif;text-align:left;cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.gv-glass-card:hover,.gv-glass-card:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(0,0,0,.14);
  background:#fff;
  box-shadow:0 6px 20px rgba(0,0,0,.08);
  outline:none;
}
.gv-glass-card:active{transform:translateY(0);}
.gv-glass-card__emoji{flex:none;font-size:20px;line-height:1;}
.gv-glass-card__name{flex:1;font-weight:600;font-size:14px;line-height:1.35;}
.gv-glass-card__chev{
  flex:none;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(-45deg);opacity:.45;
}

.home-service-sheet{position:fixed;inset:0;z-index:10040;display:none;}
.home-service-sheet.is-open{display:block;}
.home-service-sheet__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5);}
.home-service-sheet__panel{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(560px, calc(100vw - 24px));max-height:min(85dvh, 720px);overflow:auto;
  padding:22px 20px 24px;border-radius:var(--card-radius, 14px);
  background:var(--ab-surface, #fff);color:var(--ab-text, #111);
  box-shadow:0 24px 60px rgba(0,0,0,.22);font-family:'Roboto',sans-serif;
}
.home-service-sheet__close{position:absolute;top:10px;right:14px;border:none;background:none;font-size:26px;line-height:1;cursor:pointer;color:var(--ab-text-muted, #888);}
.home-service-sheet__title{margin:0 28px 8px 0;font-size:20px;font-weight:700;text-transform:uppercase;font-family:'Roboto',sans-serif;}
.home-service-sheet__price{font-weight:600;margin:0 0 12px;color:var(--ab-text-soft, #333);}
.home-service-sheet__body{font-size:15px;line-height:1.6;color:var(--ab-text-soft, #333);}
.home-service-sheet__body p{margin:0 0 10px;}
.home-service-sheet__example{
  margin:14px 0 0;padding-top:12px;border-top:1px solid var(--ab-border, #e5e7eb);
  text-align:center;
}
.home-service-sheet__example a{
  font-size:14px;font-weight:600;color:var(--ab-text, #111);
  text-decoration:underline;text-underline-offset:2px;
}
.home-service-sheet__example a:hover,
.home-service-sheet__example a:focus-visible{color:var(--ab-text-soft, #333);}
@media screen and (max-width:900px){
  .gv-services--glass{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media screen and (max-width:767px){
  .gv-services--glass{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .gv-glass-card{padding:10px 12px;}
  .gv-glass-card__name{font-size:13px;}
  .home-service-sheet.is-open{
    display:flex;align-items:center;justify-content:center;
    padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
    overflow-y:auto;-webkit-overflow-scrolling:touch;
  }
  .home-service-sheet__panel{
    position:relative;left:auto;right:auto;top:auto;bottom:auto;transform:none;
    width:min(100%, 420px);max-width:calc(100vw - 24px);
    max-height:min(84dvh, 640px);overflow-x:hidden;overflow-y:auto;
    margin:0;border-radius:var(--card-radius, 14px);
    padding:20px 16px 22px;box-sizing:border-box;
    -webkit-overflow-scrolling:touch;
  }
  .home-service-sheet__title{
    font-size:16px;line-height:1.3;text-align:center;
    margin:0 0 8px;padding:0 28px 0 0;overflow-wrap:anywhere;
  }
  .home-service-sheet__price{text-align:center;font-size:14px;}
  .home-service-sheet__body{
    font-size:14px;line-height:1.55;overflow-wrap:anywhere;word-break:break-word;
  }
}
@media (prefers-reduced-motion:reduce){
  .gv-glass-card{transition:none;}
}

/* Випускники — фото на всю ширину, таймлайн років нижче */
#rec-portfolio .gv-photos{
  width:100%;max-width:100%;gap:0;margin:0;
}
#rec-portfolio .gv-photos img{border-radius:0;box-shadow:none;}
#rec-portfolio.gv-section{padding-bottom:0 !important;}
#rec-photographer.gv-photo-about{margin-top:0;}
.gv-graduates-timeline-wrap{max-width:900px;}
.gv-portfolio--timeline{
  position:relative;align-items:stretch;gap:0;max-width:none;margin:0;
  padding:4px 0 4px 28px;text-align:left;width:100%;
}
.gv-portfolio--timeline::before{
  content:"";position:absolute;left:9px;top:10px;bottom:10px;width:2px;
  background:linear-gradient(180deg,#ccc 0%,#111 55%,#ccc 100%);
}
.gv-portfolio--timeline .gv-portfolio__year{
  position:relative;display:grid;grid-template-columns:52px 1fr;gap:6px 16px;
  align-items:start;width:100%;max-width:none;padding:12px 0 14px;
  border-bottom:1px solid rgba(0,0,0,.06);box-sizing:border-box;
}
.gv-portfolio--timeline .gv-portfolio__year::before{
  content:"";position:absolute;left:-24px;top:16px;width:10px;height:10px;
  border-radius:50%;background:#111;border:2px solid #ebebeb;box-sizing:border-box;
}
.gv-portfolio--timeline .gv-portfolio__year:last-child{border-bottom:none;padding-bottom:4px;}
.gv-portfolio--timeline .gv-portfolio__year h3{
  margin:0;font-size:17px;font-weight:700;text-align:left;line-height:1.3;
}
.gv-portfolio--timeline .gv-portfolio__chips{
  display:flex;flex-wrap:wrap;gap:3px 14px;justify-content:flex-start;justify-items:start;
  margin:0;width:100%;max-width:none;
}
.gv-portfolio--timeline .gv-portfolio__chips--cols-1,
.gv-portfolio--timeline .gv-portfolio__chips--cols-2,
.gv-portfolio--timeline .gv-portfolio__chips--cols-3,
.gv-portfolio--timeline .gv-portfolio__chips--cols-4{
  display:flex;flex-wrap:wrap;grid-template-columns:unset;
}
.gv-portfolio--timeline .gv-portfolio__chip{
  font-size:11px;font-weight:300;line-height:1.35;color:#444;
  white-space:normal;text-align:left;
}
@media screen and (max-width:767px){
  .gv-portfolio--timeline{padding-left:22px;}
  .gv-portfolio--timeline::before{left:7px;}
  .gv-portfolio--timeline .gv-portfolio__year{
    grid-template-columns:44px 1fr;gap:4px 10px;padding:10px 0 12px;
  }
  .gv-portfolio--timeline .gv-portfolio__year::before{left:-19px;width:8px;height:8px;top:14px;}
  .gv-portfolio--timeline .gv-portfolio__year h3{font-size:15px;}
  .gv-portfolio--timeline .gv-portfolio__chip{font-size:10px;line-height:1.3;}
}

/* Booking FAB — біла тема, з’являється після скролу */
.booking-fab,#booking-fab.booking-fab{
  position:fixed;bottom:20px;right:18px;z-index:9999;display:inline-flex;align-items:center;justify-content:center;
  background:#fff;color:#111;border:2px solid #111;
  border-radius:16px;padding:14px 26px;font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;text-decoration:none;cursor:pointer;
  box-shadow:0 10px 28px rgba(0,0,0,.16);
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(16px);
  transition:opacity .45s ease, visibility .45s ease, transform .45s ease, box-shadow .2s ease;
}
.booking-fab.is-scroll-visible,#booking-fab.booking-fab.is-scroll-visible{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);
}
.booking-fab:hover,#booking-fab.booking-fab:hover{
  transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.22);
}
.booking-fab.is-scroll-visible:hover,#booking-fab.booking-fab.is-scroll-visible:hover{
  transform:translateY(-2px);
}
@media (prefers-reduced-motion:reduce){
  .booking-fab,#booking-fab.booking-fab{transition:opacity .2s ease, visibility .2s ease;}
}

.booking-gate-overlay{display:none;position:fixed;inset:0;z-index:10030;background:rgba(0,0,0,.62);padding:20px;overflow-y:auto;font-family:'Roboto',sans-serif;}
.booking-gate-overlay.is-open{display:flex;align-items:flex-start;justify-content:center;}
.booking-gate-modal{
  position:relative;width:min(520px,100%);margin:auto;padding:32px 28px 28px;
  background:var(--ab-surface, #fff);color:var(--ab-text, #111);border-radius:var(--card-radius, 14px);
  border:1px solid var(--ab-border, #e5e7eb);
  box-shadow:0 24px 60px rgba(0,0,0,.24);
}
.booking-gate-modal .booking-modal__title{
  font-family:'Roboto',sans-serif;font-weight:700;font-size:22px;text-transform:uppercase;margin:0 0 16px;
  letter-spacing:.03em;
}
.booking-gate-modal .booking-gate__box{
  background:var(--ab-surface-2, #f9fafb);border:1px solid var(--ab-border, #e5e7eb);
  border-radius:calc(var(--card-radius, 14px) - 4px);padding:16px 18px;margin:0 0 20px;
  font-size:14px;line-height:1.55;color:var(--ab-text-soft, #333);text-align:left;
}
.booking-gate-modal .booking-gate__box ul{margin:10px 0 12px;padding-left:20px;}
.booking-gate-modal .booking-gate__box li{margin-bottom:6px;}
.booking-gate-modal .booking-submit{
  width:100%;padding:14px 24px;border-radius:16px;border:2px solid var(--ab-cta, #111);
  background:var(--ab-cta, #111);color:var(--ab-cta-text, #fff);
  font-family:'Roboto',sans-serif;font-size:14px;font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;cursor:pointer;transition:opacity .2s ease, transform .2s ease;
}
.booking-gate-modal .booking-submit:hover{opacity:.9;transform:translateY(-1px);}
.booking-gate-modal__close{
  position:absolute;top:10px;right:14px;border:none;background:none;font-size:26px;cursor:pointer;
  color:var(--ab-text-muted, #999);line-height:1;
}

.gv-loc-card,.gv-link-card,.faq-item,.online-board__card{
  border-radius:var(--card-radius, 14px);
}
