.service-grid,
.blog-grid,
.ydi-price-grid,
.ydi-price-shell,
.ydi-contact-shell,
.ydi-proof-grid,
.ydi-step-grid {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.service-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 30px;
}

.service-card {
  background: color-mix(in srgb, var(--ydi-surface) 94%, var(--ydi-champagne));
  border: 1px solid var(--ydi-line);
  border-radius: var(--ydi-radius-md);
  box-shadow: var(--ydi-shadow-sm);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  min-width: 0;
  overflow: hidden;
  padding: 8px;
}

.ydi-service-image,
.service-art {
  aspect-ratio: 1.22 / 1;
  background: linear-gradient(145deg, #fff8ec, #f5dfca 52%, #efd7d3);
  border-radius: calc(var(--ydi-radius-md) - 6px);
  overflow: hidden;
  position: relative;
}

.ydi-service-image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.service-art::before,
.service-art::after,
.service-art span,
.service-art i,
.service-art b {
  border-radius: 50%;
  content: "";
  position: absolute;
}

.service-art::before {
  background: rgba(255, 255, 255, 0.8);
  height: 48%;
  left: 12%;
  top: 16%;
  width: 48%;
}

.service-art::after {
  border: 1px solid rgba(154, 89, 107, 0.22);
  bottom: 12%;
  height: 46%;
  right: 10%;
  width: 46%;
}

.service-art span {
  background: rgba(154, 89, 107, 0.25);
  bottom: 12%;
  height: 34%;
  left: 17%;
  width: 34%;
}

.service-art i {
  background: rgba(197, 140, 69, 0.28);
  height: 27%;
  right: 18%;
  top: 16%;
  width: 27%;
}

.service-art b {
  border: 1px solid rgba(154, 89, 107, 0.14);
  height: 38%;
  left: 42%;
  top: 31%;
  width: 38%;
}

.service-art.ydi-placeholder-soft_gradient {
  background: linear-gradient(135deg, #f9e5c7, #f6d9d8 52%, #e2c4bc);
}

.service-art.ydi-placeholder-soft_gradient::after,
.service-art.ydi-placeholder-soft_gradient b {
  border-color: transparent;
}

.ydi-service-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  padding: 12px 4px 8px;
}

.ydi-service-badge,
.ydi-blog-kicker {
  color: var(--ydi-accent-hover);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.service-card h3 {
  font-family: var(--ydi-font-ui);
  font-size: clamp(0.82rem, 3.3vw, 1rem);
  font-weight: 750;
  letter-spacing: -0.015em;
  margin-bottom: 6px;
}

.service-card h3 a {
  text-decoration: none;
}

.service-card p {
  color: var(--ydi-muted);
  display: -webkit-box;
  font-size: clamp(0.69rem, 2.75vw, 0.82rem);
  line-height: 1.5;
  margin-bottom: 10px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.service-card dl {
  border-top: 1px solid var(--ydi-line);
  display: grid;
  grid-template-columns: 1fr;
  margin: auto 0 0;
  padding-top: 8px;
}

.service-card dt {
  color: var(--ydi-accent-hover);
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  margin-top: 5px;
  text-transform: uppercase;
}

.service-card dd {
  color: var(--ydi-ink);
  font-size: clamp(0.68rem, 2.7vw, 0.8rem);
  margin: 1px 0 0;
}

.card-actions {
  display: grid;
  gap: 6px;
  grid-template-columns: 1fr;
  margin-top: 8px;
}

.card-actions a {
  background: transparent;
  border: 1px solid var(--ydi-line-strong);
  color: var(--ydi-ink);
  font-size: 0.68rem;
  min-height: 44px;
  padding: 7px 8px;
}

.card-actions a:last-child {
  background: var(--ydi-accent);
  border-color: var(--ydi-accent);
  color: #fff;
}

.card-actions a:hover {
  border-color: var(--ydi-accent);
}

.card-actions a:last-child:hover {
  background: var(--ydi-accent-hover);
}

.ydi-service-empty,
.ydi-blog-empty,
.ydi-price-empty {
  background: var(--ydi-surface);
  border: 1px solid var(--ydi-line);
  border-radius: var(--ydi-radius-md);
  padding: 24px;
}

.ydi-price-grid,
.ydi-price-shell {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ydi-price-grid article,
.ydi-price-shell article {
  background: color-mix(in srgb, var(--ydi-surface) 95%, var(--ydi-champagne));
  border: 1px solid var(--ydi-line);
  border-radius: var(--ydi-radius-md);
  display: flex;
  flex-direction: column;
  min-height: 190px;
  min-width: 0;
  padding: clamp(15px, 3vw, 24px);
  text-align: center;
}

.ydi-price-grid article.is-featured,
.ydi-price-shell article.is-featured {
  border-color: color-mix(in srgb, var(--ydi-gold) 66%, var(--ydi-line));
  box-shadow: var(--ydi-shadow-sm);
}

.ydi-price-icon {
  border: 1px solid color-mix(in srgb, var(--ydi-gold) 65%, transparent);
  border-radius: 50%;
  height: 36px;
  margin: 0 auto 12px;
  position: relative;
  width: 36px;
}

.ydi-price-icon::before,
.ydi-price-icon::after {
  background: var(--ydi-gold);
  content: "";
  left: 50%;
  position: absolute;
  top: 50%;
  transform-origin: 0 0;
}

.ydi-price-icon::before { height: 8px; transform: rotate(0deg); width: 1px; }
.ydi-price-icon::after { height: 1px; transform: rotate(30deg); width: 7px; }

.ydi-price-grid h3,
.ydi-price-shell h3 {
  font-family: var(--ydi-font-ui);
  font-size: 0.86rem;
  font-weight: 750;
  margin-bottom: 8px;
}

.ydi-price-grid article > p,
.ydi-price-shell article > p {
  color: var(--ydi-accent-hover);
  font-family: var(--ydi-font-display);
  font-size: clamp(1rem, 4vw, 1.4rem);
  font-weight: 600;
  line-height: 1.15;
  margin-bottom: 8px;
}

.ydi-price-grid small,
.ydi-price-shell article > span,
.ydi-price-shell article > em {
  color: var(--ydi-muted);
  font-size: 0.7rem;
  font-style: normal;
  line-height: 1.45;
}

.ydi-price-grid article > a,
.ydi-price-shell article > a {
  color: var(--ydi-accent-hover);
  font-size: 0.72rem;
  font-weight: 750;
  margin-top: auto;
  min-height: 44px;
  padding-top: 12px;
  text-decoration: none;
}

.blog-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 28px;
}

.ydi-blog-card {
  background: var(--ydi-surface);
  border: 1px solid var(--ydi-line);
  border-radius: var(--ydi-radius-md);
  box-shadow: var(--ydi-shadow-sm);
  min-width: 0;
  overflow: hidden;
}

.ydi-blog-media {
  aspect-ratio: 1.5 / 1;
  background: linear-gradient(135deg, #f2d5b5, #f4dfdc);
  display: block;
  overflow: hidden;
}

.ydi-blog-media img {
  height: 100%;
  object-fit: cover;
  transition: transform 320ms var(--ydi-ease);
  width: 100%;
}

.ydi-blog-card:hover .ydi-blog-media img {
  transform: scale(1.035);
}

.ydi-blog-media.is-placeholder {
  position: relative;
}

.ydi-blog-media.is-placeholder::before,
.ydi-blog-media.is-placeholder::after {
  background: rgba(255, 255, 255, 0.42);
  border-radius: 50%;
  content: "";
  position: absolute;
}

.ydi-blog-media.is-placeholder::before { height: 58%; left: 12%; top: 20%; width: 38%; }
.ydi-blog-media.is-placeholder::after { height: 42%; right: 12%; top: 28%; width: 32%; }

.ydi-blog-card-body {
  padding: 13px;
}

.ydi-blog-card h3 {
  display: -webkit-box;
  font-family: var(--ydi-font-ui);
  font-size: clamp(0.78rem, 3vw, 0.96rem);
  font-weight: 750;
  line-height: 1.35;
  margin-bottom: 8px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.ydi-blog-card h3 a { text-decoration: none; }

.ydi-blog-card p {
  color: var(--ydi-muted);
  display: none;
  font-size: 0.78rem;
}

.ydi-blog-card time {
  color: var(--ydi-muted);
  font-size: 0.66rem;
}

.ydi-faq-list {
  display: grid;
  gap: 8px;
  margin-top: 26px;
}

.ydi-faq-list details {
  background: var(--ydi-surface);
  border: 1px solid var(--ydi-line);
  border-radius: var(--ydi-radius-sm);
  box-shadow: var(--ydi-shadow-sm);
  overflow: hidden;
}

.ydi-faq-list summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-size: 0.82rem;
  font-weight: 750;
  gap: 12px;
  justify-content: space-between;
  list-style: none;
  min-height: 54px;
  padding: 13px 15px;
}

.ydi-faq-list summary::-webkit-details-marker { display: none; }

.ydi-faq-list summary span {
  border: 1px solid var(--ydi-line);
  border-radius: 50%;
  flex: 0 0 auto;
  height: 26px;
  position: relative;
  width: 26px;
}

.ydi-faq-list summary span::before,
.ydi-faq-list summary span::after {
  background: var(--ydi-accent);
  content: "";
  height: 1px;
  left: 7px;
  position: absolute;
  top: 12px;
  transition: transform 160ms var(--ydi-ease);
  width: 10px;
}

.ydi-faq-list summary span::after { transform: rotate(90deg); }
.ydi-faq-list details[open] summary span::after { transform: rotate(0); }

.ydi-faq-list details > p {
  color: var(--ydi-muted);
  font-size: 0.82rem;
  line-height: 1.65;
  margin: 0;
  padding: 0 15px 16px;
}

.ydi-lotus-mini {
  border: 1px solid color-mix(in srgb, var(--ydi-gold) 65%, transparent);
  border-radius: 50%;
  display: block;
  height: 44px;
  position: relative;
  width: 44px;
}

.ydi-lotus-mini::before,
.ydi-lotus-mini::after {
  border: 1px solid var(--ydi-gold);
  border-radius: 100% 0 100% 100%;
  content: "";
  height: 16px;
  left: 20px;
  position: absolute;
  top: 11px;
  transform-origin: 0 100%;
  width: 9px;
}

.ydi-lotus-mini::before { transform: rotate(-35deg); }
.ydi-lotus-mini::after { transform: rotate(35deg); }

.ydi-cta-rail {
  display: none;
}

.ydi-mobile-sticky {
  background: rgba(252, 249, 244, 0.94);
  border-top: 1px solid var(--ydi-line);
  bottom: 0;
  box-shadow: 0 -10px 32px rgba(43, 24, 18, 0.12);
  display: flex;
  gap: 7px;
  left: 0;
  min-height: var(--ydi-mobile-dock-height);
  padding: 9px 10px calc(9px + env(safe-area-inset-bottom));
  position: fixed;
  right: 0;
  transition: transform 180ms var(--ydi-ease), opacity 180ms var(--ydi-ease);
  z-index: 80;
}

body.ydi-form-focus .ydi-mobile-sticky,
body.ydi-menu-open .ydi-mobile-sticky {
  opacity: 0;
  pointer-events: none;
  transform: translateY(110%);
}

.ydi-mobile-link {
  align-items: center;
  background: var(--ydi-footer);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  flex: 1 1 0;
  font-size: 0.68rem;
  font-weight: 750;
  gap: 6px;
  justify-content: center;
  min-height: 48px;
  min-width: 0;
  padding: 7px;
  text-decoration: none;
}

.ydi-mobile-link span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ydi-mobile-link svg,
.ydi-rail-link svg,
.ydi-booking-chip svg,
.ydi-service-chip svg,
.ydi-footer-contact svg,
.ydi-trust-icon svg,
.ydi-step-icon svg {
  fill: none;
  flex: 0 0 auto;
  height: 18px;
  stroke: currentColor;
  stroke-width: 1.65;
  width: 18px;
}

.ydi-icon-fallback {
  background: currentColor;
  border-radius: 50%;
  display: block;
  height: 10px;
  width: 10px;
}

.ydi-booking-chips,
.ydi-service-contact-chips,
.ydi-footer-contacts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ydi-booking-chip,
.ydi-service-chip,
.ydi-footer-contact {
  align-items: center;
  border: 1px solid var(--ydi-white-line);
  border-radius: 999px;
  color: inherit;
  display: inline-flex;
  font-size: 0.75rem;
  gap: 7px;
  min-height: 44px;
  padding: 8px 13px;
  text-decoration: none;
}

.ydi-footer-contact {
  height: 44px;
  justify-content: center;
  padding: 0;
  width: 44px;
}

.ydi-booking-form-section,
.ydi-inquiry-form-section {
  scroll-margin-top: 100px;
}

.ydi-booking-shell,
.ydi-inquiry-shell {
  background: var(--ydi-surface);
  border: 1px solid var(--ydi-line);
  border-radius: var(--ydi-radius-lg);
  box-shadow: var(--ydi-shadow-md);
  margin-inline: auto;
  max-width: 1040px;
  padding: clamp(20px, 4vw, 42px);
}

.ydi-booking-form,
.ydi-inquiry-form {
  margin-top: 26px;
}

.ydi-form-disabled .ydi-booking-shell,
.ydi-form-disabled .ydi-inquiry-shell {
  text-align: center;
}

.ydi-form-disabled .button-primary {
  margin-top: 18px;
}

.ydi-required-marker {
  color: var(--ydi-accent);
  display: inline;
  margin-left: 3px;
}

.ydi-field-label {
  align-items: baseline;
  display: inline-flex;
  gap: 0;
}

.ydi-booking-grid,
.ydi-inquiry-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
}

.ydi-booking-grid label,
.ydi-inquiry-grid label {
  color: var(--ydi-ink);
  display: grid;
  font-size: 0.78rem;
  font-weight: 700;
  gap: 6px;
}

.ydi-booking-grid input,
.ydi-booking-grid select,
.ydi-booking-grid textarea,
.ydi-inquiry-grid input,
.ydi-inquiry-grid select,
.ydi-inquiry-grid textarea {
  background: #fffdfa;
  border: 1px solid var(--ydi-line-strong);
  border-radius: var(--ydi-radius-sm);
  font-size: 16px;
  min-height: 48px;
  padding: 11px 13px;
  width: 100%;
}

.ydi-booking-grid textarea,
.ydi-inquiry-grid textarea {
  min-height: 140px;
  resize: vertical;
}

.ydi-booking-help,
.ydi-inquiry-help {
  color: var(--ydi-muted);
  font-size: 0.78rem;
  margin: 16px 0;
}

.ydi-booking-submit,
.ydi-inquiry-submit {
  border: 0;
  cursor: pointer;
  min-height: 48px;
  scroll-margin-bottom: calc(var(--ydi-mobile-dock-height) + 22px);
}

.ydi-booking-notice,
.ydi-inquiry-notice {
  border-radius: var(--ydi-radius-sm);
  margin: 18px 0;
  padding: 14px;
}

.ydi-booking-notice-success,
.ydi-inquiry-notice-success { background: #edf6ed; color: #24522b; }
.ydi-booking-notice-error,
.ydi-inquiry-notice-error { background: #fbeaea; color: #7d2c2c; }

.ydi-honeypot {
  left: -10000px;
  position: absolute;
}

.ydi-service-archive-grid.is-single {
  grid-template-columns: minmax(260px, 420px) !important;
  justify-content: center;
}

.ydi-service-summary-grid.is-single {
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
}

.ydi-service-related,
.ydi-service-detail-section,
.ydi-service-summary,
.ydi-service-decision {
  margin-block: clamp(48px, 7vw, 96px);
}
