.df-site .df-contacts { padding: 0; }
.df-site .df-contact-container { width: min(calc(100% - 32px),1344px); margin-inline: auto; }
.df-site .df-contact-intro { display: flex; flex-direction: column; gap: 16px; padding-block: 24px 16px; }
.df-site .df-contact-eyebrow { font: 400 13px/18px var(--df-font); }
.df-site .df-contact-intro h1 { font: 400 28px/36px var(--df-font); }
.df-site .df-contact-intro-copy { font: 400 16px/24px var(--df-font); }
.df-site .df-contact-top { display: grid; gap: 24px; }
.df-site .df-studio-card { padding: 16px; border-radius: 14px; background: var(--df-soft); }
.df-site .df-studio-card h2 { font: 500 20px/28px var(--df-font); margin-bottom: 16px; }
.df-site .df-studio-details { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.df-site .df-studio-details > div { display: flex; flex-direction: column; gap: 4px; }
.df-site .df-studio-address { order: 0; }
.df-site .df-studio-hours { order: 1; }
.df-site .df-studio-phone { order: 2; }
.df-site .df-studio-email { order: 3; }
.df-site .df-studio-details dt { font: 400 13px/18px var(--df-font); }
.df-site .df-studio-details dd { margin: 0; }
.df-site .df-studio-details a { text-decoration: none; }
.df-site .df-studio-links { display: grid; gap: 12px; margin-top: 16px; }
.df-site .df-studio-links a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 12px 16px; border: 1px solid var(--df-border); border-radius: 26px; background: var(--df-glass); font: 500 16px/20px var(--df-font); text-decoration: none; }
.df-site .df-write-link, .df-site .df-route-link, .df-site .df-map-open, .df-site .df-map-caption a { align-items: center; gap: 8px; min-height: 44px; text-decoration: none; }
.df-site .df-write-link { display: flex; font: 400 16px/24px var(--df-font); margin-top: 12px; }
.df-site .df-write-link .df-icon, .df-site .df-route-link .df-icon, .df-site .df-map-open .df-icon, .df-site .df-map-caption a .df-icon { flex-basis: 24px; }
.df-site .df-map-area { display: flex; flex-direction: column; gap: 16px; padding-block: 0 24px; }
.df-site .df-map-area h2 { font: 400 24px/36px var(--df-font); }
.df-site .df-map-card { overflow: hidden; border-radius: 14px; background: var(--df-sage); }
.df-site .df-yandex-map { display: block; width: 100%; height: auto; aspect-ratio: 358/220; border: 0; }
.df-site .df-mobile-route { display: inline-flex; width: 100%; }
.df-site .df-map-open { display: flex; font: 400 16px/24px var(--df-font); }
.df-site .df-contact-question { padding-block: 0 24px; }
.df-site .df-contact-question > h2 { margin-bottom: 24px; font: 400 24px/36px var(--df-font); }
.df-site .df-question-grid { display: grid; gap: 24px; }
.df-site .df-contact-floral { display: block; order: -1; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; border-radius: 14px; }
.df-site .df-contact-form { display: flex; flex-direction: column; gap: 24px; min-width: 0; margin: 0; }
.df-site .df-form-intro { display: flex; flex-direction: column; gap: 8px; }
.df-site .df-form-intro h3 { font: 500 24px/32px var(--df-font); }
.df-site .df-contact-form .df-control { background: var(--df-soft); }
.df-site .df-contact-form textarea { min-height: 112px; }
.df-site .df-channel-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.df-site .df-channel-fieldset legend { margin-bottom: 12px; padding: 0; font: 500 16px/20px var(--df-font); }
.df-site .df-channel-options { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.df-site .df-channel { position: relative; min-width: 0; cursor: pointer; }
.df-site .df-channel > input { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.df-site .df-channel > span { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 64px; padding: 8px 4px; border: 1px solid rgb(42 91 85 / 12%); border-radius: 26px; background: var(--df-soft); font: 400 12px/16px var(--df-font); }
.df-site .df-channel > input:checked + span { background: var(--df-soft-pressed); border-color: var(--df-soft-pressed); }
.df-site .df-channel > input:focus-visible + span { outline: 2px solid var(--df-green); outline-offset: 3px; }
.df-site .df-contact-consent { min-height: 24px; padding: 0; align-items: flex-start; gap: 8px; font: 400 12px/16px var(--df-font); }
.df-site .df-contact-consent input { width: 20px; height: 20px; margin: 0; }
.df-site .df-contact-consent a { text-underline-offset: 3px; }
.df-site .df-contact-submit { min-height: 52px; padding-block: 12px; width: 100%; }
.df-site .df-contact-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.df-site .df-contact-status { padding: 16px; border-radius: 14px; background: var(--df-soft); }
.df-site .df-contact-status[data-error="true"] { color: var(--df-error); }
@media (min-width: 768px) and (max-width: 1199px) {
  .df-site .df-contact-container { width: calc(100% - 64px); }
  .df-site .df-contact-top { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .df-site .df-studio-links a { min-height: 52px; }
  .df-site .df-yandex-map { min-height: 350px; }
  .df-site .df-contact-question { padding-top: 24px; }
  .df-site .df-contact-floral { max-height: 320px; }
}
@media (min-width: 1200px) {
  .df-site .df-contact-container { width: min(calc(100% - 96px),1344px); }
  .df-site .df-contact-intro { gap: 16px; padding-block: 64px; }
  .df-site .df-contact-eyebrow { font: 400 12px/16px var(--df-font); }
  .df-site .df-contact-intro h1 { font-size: 32px; line-height: 40px; }
  .df-site .df-contact-top { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 48px; }
  .df-site .df-studio-area { display: flex; flex-direction: column; gap: 16px; min-height: 520px; padding: 32px; border: 1px solid rgb(42 91 85 / 20%); border-radius: 36px; background: rgb(244 237 229 / 23%); }
  .df-site .df-studio-card { display: flex; flex-direction: column; gap: 16px; padding: 0; background: transparent; border-radius: 0; }
  .df-site .df-studio-card h2 { font-size: 24px; line-height: 32px; margin: 0; }
  .df-site .df-studio-details { gap: 0; }
  .df-site .df-studio-details > div { flex-direction: row; align-items: center; gap: 16px; min-height: 52px; order: initial; }
  .df-site .df-studio-details dt { flex: 0 0 128px; }
  .df-site .df-studio-links { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 0; }
  .df-site .df-studio-links a { font-size: 16px; padding-inline: 8px; }
  .df-site .df-route-link { display: flex !important; font: 400 16px/24px var(--df-font); }
  .df-site .df-map-area { gap: 0; padding: 0; }
  .df-site .df-map-card { border: 1px solid var(--df-border); border-radius: 36px; min-height: 520px; }
  .df-site .df-yandex-map { height: 364px; aspect-ratio: auto; }
  .df-site .df-map-caption { padding: 24px; }
  .df-site .df-map-caption h3 { font: 500 20px/28px var(--df-font); }
  .df-site .df-map-caption p { font: 400 13px/18px var(--df-font); margin-top: 8px; color: var(--df-muted); }
  .df-site .df-map-caption a { display: flex; font: 400 13px/18px var(--df-font); margin-top: 4px; }
  .df-site .df-contact-question { padding-block: 64px 80px; }
  .df-site .df-contact-question > .df-contact-eyebrow { margin-bottom: 24px; }
  .df-site .df-contact-question > h2 { font-size: 32px; line-height: 40px; }
  .df-site .df-question-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 48px; align-items: stretch; }
  .df-site .df-contact-floral { order: 1; height: 100%; min-height: 744px; aspect-ratio: auto; border-radius: 36px; }
  .df-site .df-contact-form { gap: 16px; padding: 32px; border: 1px solid rgb(42 91 85 / 20%); border-radius: 36px; background: rgb(244 237 229 / 23%); }
  .df-site .df-form-intro { margin-bottom: 8px; }
  .df-site .df-contact-form .df-control { background: var(--df-glass); }
  .df-site .df-channel-fieldset legend { font: 500 24px/32px var(--df-font); }
  .df-site .df-channel-options { gap: 12px; }
  .df-site .df-channel > span { flex-direction: row; gap: 8px; min-height: 52px; padding: 8px 4px; background: var(--df-glass); font: 500 16px/20px var(--df-font); }
  .df-site .df-contact-submit { width: 228px; min-height: 60px; margin-top: 8px; }
}

@media (min-width: 1200px) {
  .df-site .df-contact-form { min-height: 744px; }
  .df-site .df-contact-floral { height: 0; min-height: 100%; }
}

.df-site .df-contact-fields { display: flex; flex-direction: column; gap: inherit; }
.df-site .df-contact-success { display: flex; flex-direction: column; justify-content: center; gap: 16px; flex: 1; padding-block: 32px; }
.df-site .df-contact-success h3 { font: 500 24px/32px var(--df-font); }
.df-site .df-contact-success h3:focus { outline: none; }
.df-site .df-contact-success p { font: 400 16px/24px var(--df-font); }

/* Use the existing button-state tokens for contact and social actions, too. */
@media (hover: hover) {
  .df-site :is(.df-write-link,.df-route-link,.df-map-open,.df-map-caption a):hover { text-decoration: underline; text-underline-offset: 4px; }
}

/* DF / Contact question form: Default / Error / Filled / Success (253:3825). */
.df-site .df-contact-fields { gap: 24px; }
.df-site .df-form-inputs, .df-site .df-preferred-contact { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.df-site .df-contact-form textarea { padding: 16px; resize: none; }
.df-site .df-consent-control { position: relative; display: inline-flex; flex: 0 0 24px; width: 24px; height: 24px; }
.df-site .df-contact-consent .df-consent-control input { appearance: none; display: block; flex-basis: 24px; width: 24px; height: 24px; padding: 0; margin: 0; border: 1px solid var(--df-green); border-radius: 6px; background: var(--df-glass); cursor: pointer; }
.df-site .df-contact-consent .df-consent-control input:checked { background: rgb(7 37 33 / 12%); }
.df-site .df-contact-consent .df-consent-control input[aria-invalid="true"] { border-color: var(--df-error); }
.df-site .df-consent-check { position: absolute; inset: 0; display: none; pointer-events: none; }
.df-site .df-consent-control input:checked + .df-consent-check { display: block; }
.df-site #df-consent-error { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.df-site .df-contact-consent a { text-decoration: none; }
@media (hover: hover) { .df-site .df-contact-consent a:hover { text-decoration: underline; } }
.df-site .df-contact-success { gap: 24px; padding: 0; align-items: flex-start; }
.df-site .df-contact-success h3 { font: 400 var(--df-heading-size)/var(--df-heading-line) var(--df-font); }
.df-site .df-contact-again { width: 100%; min-height: 52px; }
.df-site .df-contact-status { padding: 0; border-radius: 0; background: transparent; font: 400 12px/16px var(--df-font); }
@media (min-width: 1200px) {
  .df-site .df-contact-form { gap: 24px; }
  .df-site .df-form-intro { margin-bottom: 0; }
  .df-site .df-form-inputs { gap: 16px; }
  .df-site .df-preferred-contact { gap: 12px; }
  .df-site .df-contact-consent { gap: 12px; font: 400 13px/18px var(--df-font); }
  .df-site .df-contact-submit { margin-top: 0; }
  .df-site .df-contact-form[data-state="success"] { min-height: 650px; align-self: start; }
  .df-site .df-contact-again { width: 228px; min-height: 60px; }
}

.df-site .df-studio-links a { transition: background var(--df-motion), border-color var(--df-motion), box-shadow var(--df-motion); }
@media (hover: hover) {
 .df-site .df-studio-links a:hover { background: var(--df-glass-hover); border-color: rgb(7 37 33 / 28%); box-shadow: var(--df-shadow-soft); }
}
.df-site .df-studio-links a:active { background: var(--df-glass-pressed); }
