/* Унікальний вигляд окремих сторінок розділів */

.page-services { background: #ebebeb; }
.page-services .page-hero {
  background: #111;
  color: #fff;
  padding: 40px 20px 28px;
}
.page-services .page-hero h1 { color: #fff; letter-spacing: .04em; }
.page-services .page-hero p { color: rgba(255,255,255,.78); }
.page-services .page-container { max-width: 760px; padding-top: 8px; box-sizing: border-box; }
.page-services .gv-services { gap: 12px; }

.page-locations { background: #f7f7f5; }
.page-locations .page-hero {
  text-align: left;
  padding: 28px 20px 8px;
  max-width: 1080px;
  margin: 0 auto;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.page-locations .page-hero h1 { text-transform: none; font-size: 34px; }
.page-locations .page-container {
  max-width: 1080px;
  padding: 8px 16px 40px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.page-locations .loc-stack,
.page-locations .loc-row,
.page-locations .loc-row__img,
.page-locations .loc-row__body {
  min-width: 0;
  max-width: 100%;
}
.page-locations .loc-stack { display: flex; flex-direction: column; gap: 18px; }
.page-locations .loc-row {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 0; background: #fff; border-radius: 18px; overflow: hidden;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.page-locations .loc-row__img { min-height: 220px; min-width: 0; background: #ddd; overflow: hidden; }
.page-locations .loc-row__img img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  min-width: 0;
  min-height: 220px;
}
.page-locations .loc-row__body { padding: 22px 22px 24px; display: flex; flex-direction: column; justify-content: center; }
.page-locations .loc-row__name { font-size: 22px; font-weight: 700; margin: 0 0 8px; }
.page-locations .loc-row__descr { margin: 0; color: #555; line-height: 1.55; }
.page-locations a.loc-row { color: inherit; text-decoration: none; }
@media (max-width: 700px) {
  .page-locations .loc-row { grid-template-columns: minmax(0, 1fr); }
  .page-locations .page-hero h1 { font-size: 26px; }
}

.page-graduates { background: #111; color: #fff; }
.page-graduates .page-header,
.page-graduates .page-header__back { border-color: #333; }
.page-graduates .page-hero { color: #fff; }
.page-graduates .page-hero h1 { color: #fff; text-transform: none; }
.page-graduates .page-hero p { color: rgba(255,255,255,.7); }
.page-graduates .page-container { max-width: 1080px; }
.page-graduates .gv-title { color: #fff; }
.page-graduates .gv-portfolio__year h3 {
  font-size: 42px; letter-spacing: .08em; color: #fff; margin: 0 0 10px;
}
.page-graduates .gv-portfolio--timeline .gv-portfolio__chip { color: #e6e6e6; }
.page-graduates .page-header { background: #111; color: #f3f3f3; }
.page-graduates .page-header__back { color: #f3f3f3; border-color: #555; }
.page-graduates #rec-portfolio{background:transparent !important;padding:0 !important;}
.page-graduates .gv-photos{background:#111;}
.page-graduates .page-footer{background:#1a1a1a;color:#f3f3f3;}
.page-graduates .page-footer .links a{border-color:#f3f3f3;color:#f3f3f3;}
.page-graduates .page-footer .links a:hover{background:#f3f3f3;color:#111;}
.page-graduates .gv-legal-footnote{background:#1a1a1a;color:#f3f3f3;}
.page-graduates .gv-legal-footnote__title,
.page-graduates .gv-legal-footnote__copy{color:#9a9a9a;}
.page-graduates .gv-legal-footnote__status{color:#e6e6e6;}
.page-graduates .gv-legal-footnote__links a,
.page-graduates .gv-legal-footnote__social a{color:#f3f3f3;}
.page-graduates .gv-legal-footnote__links a:hover,
.page-graduates .gv-legal-footnote__social a:hover{color:#fff;}


html:has(body.page-photographer),
html.slavbook-boot body.page-photographer,
body.page-photographer { background: #161513; }
.page-photographer .site-header,
.page-photographer .page-header {
  background: #161513;
  color: #f5f1ea;
  border-color: #333;
}
.page-photographer .site-header__back,
.page-photographer .page-header__back {
  color: #f5f1ea;
  border-color: #555;
}
.page-photographer .page-hero {
  background: #161513;
  color: #fff;
  padding-bottom: 8px;
}
.page-photographer .page-hero h1 { color: #fff; text-transform: none; }
.page-photographer .page-hero p { color: rgba(255, 255, 255, .92); }
.page-photographer .page-container { max-width: 920px; padding-top: 0; box-sizing: border-box; min-width: 0; }
.page-photographer .photo-card {
  background: #201e1b; border-radius: 22px; overflow: hidden;
  box-shadow: 0 18px 40px rgba(0,0,0,.35);
}
.page-photographer .gv-photo-about { background: transparent; min-width: 0; max-width: 100%; }
.page-photographer .gv-photo-about__inner,
.page-photographer .gv-photo-about__media,
.page-photographer .gv-photo-about__stack { min-width: 0; max-width: 100%; }
.page-photographer .gv-photo-about__title { color: #fff; }
.page-photographer .gv-photo-about__text { color: rgba(245,241,234,.82); }
.page-photographer .gv-photo-about__eyebrow { color: #c8b8a0; }

html:has(body.page-contacts){height:100%;}
.page-contacts { background: #fff; font-family: var(--ab-font); color: #111; min-height: 100dvh; display: flex; flex-direction: column; margin: 0; padding: 0; overflow-x: clip; }
.page-contacts .page-header {
  width: 100%; max-width: none; margin: 0; padding: 0; box-sizing: border-box;
  position: sticky; top: 0; left: 0; right: 0; background: #fff;
  border-radius: 0; border-left: 0; border-right: 0; z-index: 12; flex-shrink: 0;
}
.page-contacts .page-header__back { right: 12px; }
.page-contacts .contacts-stage {
  width: 100%;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.page-contacts .contacts-panel {
  position: relative;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  background: #f6efe7;
  overflow: hidden;
}
.page-contacts .contacts-doodles {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.page-contacts .contacts-panel__inner {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 72px 0 56px;
  box-sizing: border-box;
  text-align: center;
}
.page-contacts .contacts-doodle {
  position: absolute;
  fill: none;
  stroke: #c4896a;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
  opacity: .82;
}
.page-contacts .contacts-doodle--heart { width: 72px; height: 72px; left: 4%; top: 8%; transform: rotate(-8deg); }
.page-contacts .contacts-doodle--star { width: 56px; height: 56px; right: 6%; top: 12%; transform: rotate(11deg); }
.page-contacts .contacts-doodle--pencil { width: 84px; height: 84px; left: 5%; top: 38%; transform: rotate(-22deg); }
.page-contacts .contacts-doodle--book { width: 76px; height: 76px; right: 5%; top: 36%; transform: rotate(8deg); }
.page-contacts .contacts-doodle--ruler { width: 96px; height: 96px; left: 8%; bottom: 10%; transform: rotate(-16deg); }
.page-contacts .contacts-doodle--heart2 { width: 48px; height: 48px; right: 14%; top: 22%; transform: rotate(10deg); }
.page-contacts .contacts-doodle--star2 { width: 40px; height: 40px; left: 16%; top: 18%; transform: rotate(-8deg); }
.page-contacts .contacts-doodle--pencil2 { width: 64px; height: 64px; right: 8%; bottom: 14%; transform: rotate(28deg); }
.page-contacts .contacts-doodle--heart3 { width: 36px; height: 36px; left: 22%; bottom: 18%; transform: rotate(-12deg); }
.page-contacts h1 {
  margin: 0 0 12px; font-size: 36px; font-weight: 700; line-height: 1.15;
  text-transform: none; letter-spacing: 0; color: #1a1a1a;
}
.page-contacts .contact-hours {
  margin: 0 auto 22px; color: #555; font-size: 16px; line-height: 1.4;
  display: inline-block;
}
.page-contacts .contact-hours::after {
  content: "";
  display: block;
  width: 52px;
  height: 2px;
  margin: 10px auto 0;
  background: #e4c3a8;
  border-radius: 2px;
  transform: rotate(-1.5deg);
}
.page-contacts .contact-lead {
  max-width: 34rem;
  margin: 0 auto 40px;
  color: #5b534c;
  font-size: 15px;
  line-height: 1.55;
  font-weight: 400;
  white-space: pre-line;
}
.page-contacts .contact-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  max-width: 920px;
  margin: 0 auto;
  padding: 0;
  position: relative;
  z-index: 1;
}
.page-contacts .contact-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 128px;
  padding: 18px 14px 16px;
  border-radius: 12px;
  background: #fff;
  color: #111 !important;
  text-decoration: none;
  border: 1.5px solid #111;
  box-shadow: none;
  transition: background .2s ease, color .2s ease, transform .22s ease;
}
@media (hover: hover) {
  .page-contacts .contact-card:hover,
  .page-contacts .contact-card:focus-visible {
    background: #111;
    color: #fff !important;
    transform: translateY(-3px);
  }
  .page-contacts .contact-card:hover .contact-card__icon,
  .page-contacts .contact-card:focus-visible .contact-card__icon {
    background: #fff;
  }
  .page-contacts .contact-card:hover .contact-card__icon svg,
  .page-contacts .contact-card:focus-visible .contact-card__icon svg {
    fill: #111;
  }
}
.page-contacts .contact-card__icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  background: #111;
}
.page-contacts .contact-card--ig .contact-card__icon,
.page-contacts .contact-card--tg .contact-card__icon {
  background: #111;
}
.page-contacts .contact-card__icon svg {
  width: 22px;
  height: 22px;
  fill: #fff;
}
.page-contacts .contact-card--tg .contact-card__icon svg { width: 21px; height: 21px; margin: 0 0 1px 1px; }
.page-contacts .contact-card__label {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  max-width: 100%;
  overflow-wrap: break-word;
}
.page-contacts .contacts-wave {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 56px;
  line-height: 0;
  background: #fff;
  flex-shrink: 0;
}
.page-contacts .contacts-wave svg {
  display: block;
  width: 100%;
  height: 100%;
}
.page-contacts .contacts-wave path { fill: #f6efe7; }
.page-contacts .gv-legal-footnote { margin-top: 0; flex-shrink: 0; }
@media (max-width: 1024px) {
  .page-contacts .contacts-panel__inner { width: min(1180px, calc(100% - 32px)); padding: 56px 0 44px; }
  .page-contacts .contact-grid { max-width: 720px; gap: 14px; }
  .page-contacts .contact-lead { margin-bottom: 32px; }
}
@media (max-width: 900px) {
  .page-contacts .contact-grid { grid-template-columns: 1fr 1fr; max-width: 520px; gap: 12px; }
  .page-contacts .contact-card { min-height: 122px; }
  .page-contacts h1 { font-size: 30px; }
  .page-contacts .contacts-wave { height: 48px; }
}
@media (max-width: 480px) {
  .page-contacts .contacts-panel__inner { width: calc(100% - 28px); padding: 36px 0 32px; }
  .page-contacts h1 { font-size: 26px; }
  .page-contacts .contact-hours { font-size: 15px; margin-bottom: 18px; }
  .page-contacts .contact-lead { font-size: 14px; margin-bottom: 28px; }
  .page-contacts .contact-grid { gap: 10px; max-width: none; }
  .page-contacts .contact-card { min-height: 112px; padding: 14px 10px 12px; border-radius: 14px; }
  .page-contacts .contact-card__icon { width: 40px; height: 40px; }
  .page-contacts .contact-card__icon svg { width: 18px; height: 18px; }
  .page-contacts .contact-card__label { font-size: 13px; }
  .page-contacts .contacts-doodle--heart { width: 48px; height: 48px; left: 2%; top: 6%; }
  .page-contacts .contacts-doodle--star { width: 36px; height: 36px; right: 3%; top: 10%; }
  .page-contacts .contacts-doodle--pencil { width: 52px; height: 52px; left: 2%; top: 34%; }
  .page-contacts .contacts-doodle--book { width: 44px; height: 44px; right: 3%; top: 32%; }
  .page-contacts .contacts-doodle--ruler { width: 58px; height: 58px; left: 4%; bottom: 8%; }
  .page-contacts .contacts-doodle--heart2 { width: 32px; height: 32px; right: 10%; top: 18%; }
  .page-contacts .contacts-doodle--star2 { width: 28px; height: 28px; left: 12%; top: 16%; }
  .page-contacts .contacts-doodle--pencil2 { width: 40px; height: 40px; right: 4%; bottom: 12%; }
  .page-contacts .contacts-doodle--heart3 { width: 26px; height: 26px; left: 16%; bottom: 16%; }
  .page-contacts .contacts-wave { height: 40px; }
}
@media (max-width: 360px) {
  .page-contacts .contact-grid { grid-template-columns: 1fr; }
  .page-contacts .contact-card { min-height: 96px; flex-direction: row; justify-content: flex-start; gap: 12px; padding: 14px 16px; }
  .page-contacts .contact-card__label { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .page-contacts .contact-card,
  .page-contacts .contact-card:hover,
  .page-contacts .contact-card:focus-visible {
    transition: none;
    transform: none;
  }
}

.page-studio {
  margin: 0;
  padding: 0;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  background: #ebebeb;
  font-family: 'Roboto', sans-serif;
  color: #111;
}
.page-studio .page-header {
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  border-radius: 0;
}
.page-studio .page-container {
  max-width: 720px;
  padding: 28px 20px 48px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.page-studio .studio-block,
.page-studio .studio-video,
.page-studio .studio-map-wrap,
.page-studio .studio-map,
.page-studio .studio-lead,
.page-studio .studio-shoes-note {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.page-studio h1 {
  margin: 0 0 12px; font-size: 28px; font-weight: 700; line-height: 1.2;
  text-transform: none; letter-spacing: 0; text-align: center;
}
.page-studio .studio-lead,
.page-studio .studio-block p {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  color: #333;
  text-align: justify;
  text-align-last: center;
  text-justify: inter-word;
  hyphens: auto;
}
.page-studio .studio-lead {
  font-size: 16px; line-height: 1.65; margin: 0 auto 14px;
}
.page-studio .studio-shoes-note {
  display: block;
  width: 100%;
  max-width: min(36em, 100%);
  margin: 0 auto 28px;
  padding: 10px 14px;
  border: 1px solid #e4d9c8;
  border-radius: 12px;
  background: #fffdf8;
  text-align: center;
  text-align-last: center;
  font-family: var(--ab-font);
  font-size: 15px;
  line-height: 1.5;
  color: #111;
}
.page-studio .studio-block { margin: 0 0 28px; }
.page-studio .studio-block h2 {
  margin: 0 0 10px; font-size: 18px; font-weight: 700; line-height: 1.3;
  text-transform: none; letter-spacing: 0; text-align: center;
}
.page-studio .studio-block p { margin: 0 auto; font-size: 15px; line-height: 1.6; }
.page-studio .studio-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.page-studio .studio-cta a,
.page-studio .studio-cta a:visited {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 10px 16px; border-radius: 14px;
  background: #111; color: #fff !important; text-decoration: none;
  font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: none;
}
.page-studio .studio-cta a.studio-cta--ghost {
  background: #fff; color: #111 !important; border: 1px solid #111;
}
.page-studio .studio-video {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: auto;
  max-height: min(70vh, 520px);
  border-radius: 16px;
  background: #111;
  object-fit: cover;
  box-sizing: border-box;
}
.page-studio .studio-map-wrap {
  overflow: hidden; border-radius: 16px; background: #e8e8e8;
  border: 1px solid #ddd;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.page-studio .studio-map {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: min(46vh, 360px);
  border: 0;
}
@media (prefers-reduced-motion: reduce) {
  .page-studio .studio-video { object-fit: contain; }
}
@media (max-width: 480px) {
  .page-studio h1 { font-size: 24px; }
}

@media (max-width: 480px) {
  .page-services .page-hero h1,
  .page-locations .page-hero h1,
  .page-graduates .page-hero h1,
  .page-photographer .page-hero h1,
  .page-studio .page-hero h1 { font-size: 24px; }
}

/* Футер: документи | сайт у розробці | контакти (для сторінок без index-home.css) */
.gv-legal-footnote{padding:22px 20px 24px;background:#fff;color:#222;}
.gv-legal-footnote__inner{max-width:1180px;margin:0 auto;}
.gv-legal-footnote__grid{
  display:grid;
  grid-template-columns:minmax(0,max-content) minmax(0,1fr) minmax(0,max-content);
  gap:16px 28px;
  align-items:start;
}
.gv-legal-footnote__title{
  font-family:'Roboto',sans-serif;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:#666;margin:0 0 8px;
}
.gv-legal-footnote__links{
  display:grid;grid-template-columns:max-content max-content;gap:4px 18px;
  width:max-content;font-family:'Roboto',sans-serif;font-size:13px;line-height:1.35;
}
.gv-legal-footnote__social{
  display:flex;flex-direction:column;align-items:flex-end;gap:2px;
  font-family:'Roboto',sans-serif;font-size:13px;line-height:1.35;
}
.gv-legal-footnote__links a,
.gv-legal-footnote__links .gv-legal-footnote__cookie,
.gv-legal-footnote__social a{
  color:#222;text-decoration:underline;text-underline-offset:3px;
  min-height:0;padding:2px 0;display:inline-flex;align-items:center;
}
.gv-legal-footnote__links a:hover,
.gv-legal-footnote__links .gv-legal-footnote__cookie:hover,
.gv-legal-footnote__social a:hover{color:#000;}
.gv-legal-footnote__col--docs{text-align:left;}
.gv-legal-footnote__col--status{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  text-align:center;gap:8px;min-width:0;
}
.gv-legal-footnote__status{
  margin:0;font-family:'Roboto',sans-serif;font-size:16px;font-weight:700;color:#111;
}
.gv-legal-footnote__status-text{
  margin:0 auto;width:100%;max-width:62ch;font-family:'Roboto',sans-serif;font-size:13px;
  line-height:1.45;color:#444;text-align:justify;text-align-last:center;
}
.gv-legal-footnote__bug{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:20px;padding:2px 8px;border-radius:999px;background:#111;color:#fff !important;
  text-decoration:none !important;font-family:"Roboto",system-ui,sans-serif;
  font-size:11px;font-weight:500;line-height:1.2;letter-spacing:0;text-transform:none;
}
.gv-legal-footnote__bug:hover{opacity:.82;color:#fff;}
.gv-legal-footnote__hours{
  margin:0;font-family:'Roboto',sans-serif;font-size:13px;line-height:1.35;color:#555;
}
.gv-legal-footnote__col--social{text-align:right;}
.gv-legal-footnote__copy{
  margin:18px 0 0;font-family:'Roboto',sans-serif;font-size:12px;line-height:1.5;
  color:#666;text-align:center;
}
.gv-legal-footnote__cookie{
  border:0;background:none;margin:0;color:inherit;font:inherit;
  cursor:pointer;
}
@media (max-width:768px){
  .gv-legal-footnote{padding:10px 8px 8px;}
  .gv-legal-footnote__grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);
    gap:6px 8px;
    align-items:start;
  }
  .gv-legal-footnote__links{grid-template-columns:1fr;width:100%;max-width:100%;gap:0;}
  .gv-legal-footnote__status{font-size:11px;}
  .gv-legal-footnote__status-text{font-size:9px;line-height:1.25;text-align:justify;text-align-last:center;}
  .gv-legal-footnote__title{font-size:9px;margin-bottom:2px;letter-spacing:.08em;}
  .gv-legal-footnote__links a,
  .gv-legal-footnote__links .gv-legal-footnote__cookie,
  .gv-legal-footnote__social a{font-size:10px;line-height:1.2;padding:1px 0;min-width:0;}
  .gv-legal-footnote__hours{font-size:10px;}
  .gv-legal-footnote__bug{min-height:16px;padding:1px 6px;font-size:9px;}
  .gv-legal-footnote__col--docs,
  .gv-legal-footnote__col--social,
  .gv-legal-footnote__col--status{min-width:0;}
  .gv-legal-footnote__col--status{gap:4px;}
  .gv-legal-footnote__copy{margin:8px 0 0;font-size:10px;}
}

.page-unsubscribe { background: #f7f7f5; }
.unsub-stage{
  flex:1;display:flex;align-items:flex-start;justify-content:center;
  padding:28px 16px 48px;
  width:100%;max-width:100%;min-width:0;box-sizing:border-box;
}
.unsub-card{
  width:min(480px,100%);max-width:100%;min-width:0;background:#fff;border-radius:16px;
  padding:28px 24px 24px;box-shadow:0 8px 24px rgba(0,0,0,.06);box-sizing:border-box;
}
.unsub-card h1{
  margin:0 0 12px;font-family:var(--ab-font);font-size:24px;line-height:1.3;
  font-weight:700;color:#111;letter-spacing:0;text-transform:none;
}
.unsub-card p{
  margin:0;font-family:var(--ab-font);font-size:16px;line-height:1.5;color:#333;
  overflow-wrap:anywhere;
}
.unsub-btn{
  display:block;width:100%;margin-top:20px;padding:14px 18px;border:0;border-radius:10px;
  background:#111;color:#fff;font-family:var(--ab-font);font-size:16px;font-weight:700;
  letter-spacing:0;text-transform:none;cursor:pointer;box-sizing:border-box;
}
.unsub-btn:hover{background:#222;}
.unsub-btn:disabled{opacity:.65;cursor:wait;}
@media (max-width:430px){
  .unsub-stage{padding:16px 12px 36px;}
  .unsub-card{padding:22px 16px 18px;border-radius:14px;}
  .unsub-card h1{font-size:22px;}
  .unsub-btn{min-height:48px;}
}
