:root {
  --sgp-bg: #FFF9F6;
  --sgp-rose-pale: #F0DAD8;
  --sgp-rose: #C95873;
  --sgp-old-rose: #C58F91;
  --sgp-gold: #D6B98C;
  --sgp-plum: #563C46;
  --sgp-text: #30445A;
  --sgp-line: rgba(197,143,145,.28);
}

body.sgp-hide-theme-footer footer:not(.sgp-footer),
body.sgp-hide-theme-footer .site-footer:not(.sgp-footer),
body.sgp-hide-theme-footer #colophon,
body.sgp-hide-theme-footer .footer-wrapper,
body.sgp-hide-theme-footer .main-footer,
body.sgp-hide-theme-footer .wd-footer,
body.sgp-hide-theme-footer .footer-container {
  display: none !important;
}

.sgp-footer {
  background: linear-gradient(180deg, #fffaf7 0%, #fff7f3 100%);
  border-top: 1px solid var(--sgp-line);
  color: var(--sgp-text);
  font-family: 'Lato', sans-serif;
  width: 100%;
  position: relative;
  z-index: 2;
}

.sgp-footer__inner {
  max-width: 1580px;
  margin: 0 auto;
  padding: 34px 44px 26px;
  display: grid;
  grid-template-columns: 1.42fr .70fr 1.08fr .88fr;
  gap: 0;
  align-items: start;
}

.sgp-footer__col {
  min-height: 132px;
  padding: 2px 30px;
  position: relative;
}

.sgp-footer__col + .sgp-footer__col::before {
  content: '';
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 2px;
  width: 1px;
  background: var(--sgp-line);
}

.sgp-footer__brand { padding-left: 0; }

.sgp-footer__logo {
  display: inline-block;
  text-decoration: none;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(38px, 3.2vw, 54px);
  font-weight: 500;
  line-height: .92;
  letter-spacing: -1.5px;
  margin-bottom: 8px;
  white-space: nowrap;
}

.sgp-logo-rose { color: #C84E68; }
.sgp-logo-gold { color: #B88A53; }

.sgp-footer__tagline {
  margin-top: 6px;
  font-size: 10.5px;
  letter-spacing: .25em;
  color: #A97556;
  white-space: nowrap;
}

.sgp-footer__city {
  margin-top: 7px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #A97556;
  font-size: 10.5px;
  letter-spacing: .32em;
}

.sgp-footer__city::before,
.sgp-footer__city::after {
  content: '';
  width: 44px;
  height: 1px;
  background: rgba(214,185,140,.8);
}

.sgp-footer h3 {
  margin: 0 0 12px;
  color: #2E4056;
  font-family: 'Lato', sans-serif;
  font-size: 15px;
  font-weight: 700;
}

.sgp-footer__nav,
.sgp-footer__contact,
.sgp-footer__social {
  display: flex;
  flex-direction: column;
}

.sgp-footer__nav a,
.sgp-footer__contact a,
.sgp-footer__legal a {
  color: var(--sgp-text);
  text-decoration: none;
}

.sgp-footer__nav a {
  margin-bottom: 7px;
  font-size: 13.5px;
}

.sgp-footer__line {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 0 0 8px;
  font-size: 13.5px;
  line-height: 1.45;
}

.sgp-icon {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  margin-top: 1px;
}

.sgp-icon svg,
.sgp-instagram-badge svg,
.sgp-cta-cal svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: var(--sgp-rose);
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sgp-icon svg .fill,
.sgp-instagram-badge svg .fill { fill: var(--sgp-rose); stroke: none; }

.sgp-footer__social { gap: 12px; }

.sgp-instagram-badge {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--sgp-rose);
  border-radius: 11px;
  padding: 7px;
  background: #fff;
}

.sgp-footer__cta {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 9px;
  padding: 13px 17px;
  border-radius: 6px;
  background: linear-gradient(135deg, #CA5A74, #C95772);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 13.5px;
  box-shadow: 0 8px 18px rgba(201,88,113,.16);
  transition: transform .2s ease, box-shadow .2s ease;
}

.sgp-footer__cta:hover {
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(201,88,113,.22);
}

.sgp-cta-cal { width: 17px; height: 17px; }
.sgp-cta-cal svg { stroke: #fff; }

.sgp-footer__bottom {
  max-width: 1580px;
  margin: 0 auto;
  border-top: 1px solid var(--sgp-line);
  padding: 12px 44px 14px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  font-size: 10.5px;
  color: #7A7A7A;
}

.sgp-footer__legal {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.sgp-footer__legal a { color: #7A7A7A; }
.sgp-footer__copy { white-space: nowrap; }

@media (max-width: 1100px) {
  .sgp-footer__inner {
    padding: 36px 28px 30px;
    grid-template-columns: 1.2fr .8fr 1fr;
    row-gap: 28px;
  }
  .sgp-footer__social { grid-column: 2 / 4; }
  .sgp-footer__social::before { display: none; }
  .sgp-footer__bottom { padding-left: 28px; padding-right: 28px; }
}

@media (max-width: 760px) {
  .sgp-footer__inner {
    grid-template-columns: 1fr;
    padding: 30px 22px 24px;
  }
  .sgp-footer__col {
    min-height: auto;
    padding: 20px 0;
    border-bottom: 1px solid var(--sgp-line);
  }
  .sgp-footer__col + .sgp-footer__col::before { display: none; }
  .sgp-footer__social { grid-column: auto; border-bottom: 0; }
  .sgp-footer__logo { font-size: 46px; }
  .sgp-footer__tagline { white-space: normal; line-height: 1.5; }
  .sgp-footer__bottom {
    padding: 16px 22px 20px;
    flex-direction: column;
    align-items: flex-start;
  }
  .sgp-footer__copy { white-space: normal; }
}


/* v1.1 Pixel Perfect hardening */
.sgp-footer, .sgp-footer * { box-sizing: border-box; }
.sgp-footer a { box-shadow: none !important; }
.sgp-footer__inner, .sgp-footer__bottom { width: min(1580px, calc(100% - 80px)); }
.sgp-footer__logo { text-transform: none !important; }
.sgp-footer__brand { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; }
.sgp-footer__social { align-items:flex-start; }
.sgp-footer__cta { min-height: 46px; }
@media (min-width: 1450px) {
  .sgp-footer__inner { padding-left: 0; padding-right: 0; }
  .sgp-footer__bottom { padding-left: 0; padding-right: 0; }
}
@media (max-width: 1100px) {
  .sgp-footer__inner, .sgp-footer__bottom { width: min(100% - 48px, 1580px); }
}
@media (max-width: 760px) {
  .sgp-footer__inner, .sgp-footer__bottom { width: calc(100% - 36px); }
}
