/* All selectors are scoped. No framework or JavaScript required. */
.tammy-services-demo { margin: 0; }
.tammy-services {
  --tammy-services-red: #92070d;
  --tammy-services-gold: #82613a;
  box-sizing: border-box;
  width: 100%;
  /* Preferred height grows with width; content can increase it further. */
  aspect-ratio: 1672 / 941;
  height: auto;
  margin: 0;
  padding: clamp(28px, 2.4vw, 48px) 0 clamp(56px, 4.5vw, 88px);
  background: #f8f3ec url('img/services-bg.jpg') center / cover no-repeat;
  color: #554e4b;
  font-family: 'Times New Roman', Times, serif;
  font-weight: 400;
  isolation: isolate;
}
.tammy-services *, .tammy-services *::before, .tammy-services *::after { box-sizing: border-box; }
.tammy-services .tammy-services-inner { width: 100%; max-width: 1800px; margin: 0 auto; padding-top: 6rem}
.tammy-services .tammy-services-header { margin: 0 6% 0 9.5%; text-align: center; }
.tammy-services .tammy-services-title {
  display: flex; align-items: center; justify-content: center; gap: .18em;
  margin: 0; padding: 0; color: var(--tammy-services-red);
  font-family: 'Bodoni MT', Didot, 'Times New Roman', serif;
  font-size: clamp(38px, 7.4vw, 133px); font-weight: 400;
  font-variant: small-caps; line-height: 1.05; letter-spacing: -.045em;
}
.tammy-services .tammy-services-title-part { white-space: nowrap; }
.tammy-services .tammy-services-by {
  color: var(--tammy-services-gold); font-family: 'Edwardian Script ITC', 'Snell Roundhand', 'URW Chancery L', cursive;
  font-size: .79em; font-style: italic; font-variant: normal; font-weight: 400; letter-spacing: -.08em;
}
.tammy-services .tammy-services-ornament { display: flex; align-items: center; width: 52%; margin: .1em auto 0; color: var(--tammy-services-red); font-size: clamp(27px, 3.1vw, 52px); line-height: 1; }
.tammy-services .tammy-services-ornament::before, .tammy-services .tammy-services-ornament::after { content: ''; height: 1px; flex: 1; background: linear-gradient(90deg, #bca786, #930b16); }
.tammy-services .tammy-services-fleur { padding: 0 .08em; }
.tammy-services .tammy-services-subtitle { display: flex; align-items: center; gap: .55em; margin: .16em 0 .65em; color: var(--tammy-services-gold); font-size: clamp(18px, 2.6vw, 46px); letter-spacing: .23em; line-height: 1.25; text-transform: uppercase; }
.tammy-services .tammy-services-subtitle::before, .tammy-services .tammy-services-subtitle::after { content: ''; flex: 1; height: 1px; background: #aa8760; }
.tammy-services .tammy-services-grid { display: grid; grid-template-columns: 1fr 1.28fr 1.08fr; margin: 0 2.7% 0 8%; }
.tammy-services .tammy-services-column { position: relative; min-width: 0; padding: 0 7% 0 12%; }
.tammy-services .tammy-services-column:first-child { padding-left: 0; padding-right: 8%; }
.tammy-services .tammy-services-column:last-child { padding-right: 0; padding-left: 17%; }
.tammy-services .tammy-services-column + .tammy-services-column { border-left: 1px solid #a58a65; }
.tammy-services .tammy-services-column + .tammy-services-column::before, .tammy-services .tammy-services-column + .tammy-services-column::after { content: '⚜'; position: absolute; left: 0; transform: translateX(-50%); color: var(--tammy-services-red); font-size: clamp(20px, 2vw, 32px); line-height: 1; }
.tammy-services .tammy-services-column + .tammy-services-column::before { top: -5px; }
.tammy-services .tammy-services-column + .tammy-services-column::after { bottom: -10px; transform: translateX(-50%) rotate(180deg); }
.tammy-services .tammy-services-flavor { margin: 0 0 clamp(21px, 1.7vw, 31px); padding: 0; }
.tammy-services .tammy-services-flavor:last-child { margin-bottom: 0; }
.tammy-services .tammy-services-flavor-title { margin: 0; padding: 0; font-family: 'Times New Roman', Times, serif; font-size: clamp(22px, 2.3vw, 41px); font-weight: 400; font-variant: small-caps; line-height: 1.1; color: var(--tammy-services-red); letter-spacing: -.025em; }
.tammy-services .tammy-services-rule { position: relative; width: 74%; height: 1px; margin: .55em 0 .65em; background: linear-gradient(90deg, #b02129, #a48860, #b02129); }
.tammy-services .tammy-services-rule::before { content: '❖'; position: absolute; top: 50%; left: 10%; transform: translateY(-50%); padding: 0 2px; background: #faf7f2; color: var(--tammy-services-red); font-size: 18px; line-height: 1; }
.tammy-services .tammy-services-description { margin: 0; padding: 0; color: #554e4b; font-size: clamp(16px, 1.43vw, 25.7px); line-height: 1.07; font-weight: 400; letter-spacing: -.012em; }
@media (max-width: 1000px) {
  .tammy-services { background-size: cover; background-position: center; }
  .tammy-services .tammy-services-header { margin: 0 5%; }
  .tammy-services .tammy-services-title { font-size: 7vw; }
  .tammy-services .tammy-services-grid { margin: 0 5% 0 8%; grid-template-columns: 1fr 1fr; gap: 32px 0; }
  .tammy-services .tammy-services-column:last-child { grid-column: 1 / -1; border-left: 0; padding: 22px 0 0; border-top: 1px solid #a58a65; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
  .tammy-services .tammy-services-column:last-child::before, .tammy-services .tammy-services-column:last-child::after { display: none; }
  .tammy-services .tammy-services-description { font-size: 19px; line-height: 1.25; }
  .tammy-services .tammy-services-flavor-title { font-size: 28px; }
}
@media (max-width: 600px) {
  .tammy-services { padding: 32px 0 54px; background-image: linear-gradient(#faf6efbf, #faf6efe8), url('../images/services-bg.jpg'); background-size: cover; }
  .tammy-services .tammy-services-title { flex-wrap: wrap; gap: 0 .2em; font-size: clamp(35px, 9.6vw, 57px); letter-spacing: -.035em; }
  .tammy-services .tammy-services-title-part:last-child { flex-basis: 100%; }
  .tammy-services .tammy-services-by { font-size: .8em; }
  .tammy-services .tammy-services-ornament { width: 70%; margin-top: 10px; }
  .tammy-services .tammy-services-subtitle { justify-content: center; font-size: 16px; letter-spacing: .16em; margin: 12px 0 28px; }
  .tammy-services .tammy-services-subtitle::before, .tammy-services .tammy-services-subtitle::after { display: none; }
  .tammy-services .tammy-services-grid { display: block; margin: 0 8%; }
  .tammy-services .tammy-services-column, .tammy-services .tammy-services-column:first-child, .tammy-services .tammy-services-column:last-child { display: block; border: 0; padding: 0; }
  .tammy-services .tammy-services-column + .tammy-services-column::before, .tammy-services .tammy-services-column + .tammy-services-column::after { display: none; }
  .tammy-services .tammy-services-flavor, .tammy-services .tammy-services-flavor:last-child { margin-bottom: 27px; }
  .tammy-services .tammy-services-column:last-child .tammy-services-flavor:last-child { margin-bottom: 0; }
  .tammy-services .tammy-services-rule { width: 76%; }
}

/* Keep linked titles consistent with the design and keyboard accessible. */
.tammy-services .tammy-services-flavor-link,
.tammy-services .tammy-services-flavor-link:visited {
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-decoration: none;
}
.tammy-services .tammy-services-flavor-link:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .15em;
}
.tammy-services .tammy-services-flavor-link:focus-visible {
  outline: 2px solid var(--tammy-services-red);
  outline-offset: 4px;
}

.custom-red-btn {
  display: inline-block;
  padding: 12px 30px;
  background-color: #B10D19 !important;
  color: #fff !important;
  text-decoration: none;
  font-size: 16px;
  font-weight: 600;
  border-radius: 0px;
  border: 2px solid #B10D19 !important;
  transition: all 0.3s ease;
}

.custom-red-btn:hover {
  background-color: #8C0913 !important;
  border-color: #8C0913;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(177, 13, 25, 0.3);
}

.custom-red-btn:focus {
  color: #fff;
  background-color: #8C0913 !important;
  border-color: #8C0913;
  box-shadow: 0 0 0 3px rgba(177, 13, 25, 0.2);
}

@media (max-width: 576px) {
  .custom-red-btn {
    width: 100%;
    text-align: center;
    padding: 12px 20px;
  }
}