/* V44 — final modern editorial polish
   Image-first, restrained, accessible, and intentionally quiet. */

:root{
  --dm-bg:#0B1114;
  --dm-ink:#F9F3E6;
  --dm-muted:rgba(249,243,230,.62);
  --dm-line:rgba(249,243,230,.22);
  --dm-accent:#B36C4D;
  --dm-accent-soft:#C7CFB0;
  --dm-ease:cubic-bezier(.22,.61,.36,1);
}

html{
  scroll-behavior:smooth;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

body{
  background:var(--dm-bg);
}

::selection{
  background:var(--dm-accent-soft);
  color:#0D1518;
}

/* Quiet, editorial navigation. */
.header-menu__primary{
  letter-spacing:.075em;
  transition:color 220ms var(--dm-ease),opacity 220ms var(--dm-ease);
}

.header-menu__item .header-menu__primary{
  position:relative;
}

.header-menu__item .header-menu__primary::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-5px;
  height:1px;
  background:currentColor;
  transition:right 300ms var(--dm-ease);
  opacity:.8;
}

.header-menu__item:hover .header-menu__primary::after,
.header-menu__item.active .header-menu__primary::after{
  right:0;
}

/* Make image presentation feel more deliberate without changing crops. */
.vertical-grid__item,
.gallery-item,
.dynamic-gallery img{
  overflow:hidden;
}

.vertical-grid__photo,
.gallery-item img,
.dynamic-gallery img{
  backface-visibility:hidden;
  -webkit-user-drag:none;
}

@media (hover:hover) and (pointer:fine){
  .vertical-grid__photo,
  .gallery-item img,
  .dynamic-gallery img{
    transition:transform 700ms var(--dm-ease),opacity 700ms var(--dm-ease),filter 700ms var(--dm-ease);
  }

  .vertical-grid__item:hover .vertical-grid__photo,
  .gallery-item:hover img,
  .dynamic-gallery img:hover{
    transform:scale(1.008);
  }
}

/* Contact form: labels always occupy their own line; never overlap input text. */
.contact-form-wrapper{
  max-width:720px !important;
  padding-left:24px;
  padding-right:24px;
}

.contact-form-wrapper .form-group{
  margin-bottom:38px !important;
  text-align:left !important;
}

.contact-form-wrapper .contact-form-field__input-label,
.element-contact-form-field .contact-form-field__input-label{
  position:static !important;
  display:block !important;
  width:auto !important;
  height:auto !important;
  margin:0 0 11px !important;
  padding:0 !important;
  transform:none !important;
  opacity:1 !important;
  pointer-events:auto !important;
  text-align:left !important;
  font-size:.72rem !important;
  line-height:1.3 !important;
  letter-spacing:.19em !important;
  text-transform:uppercase !important;
}

.contact-form-wrapper .contact-form-field__input-wrapper{
  position:relative !important;
  width:100% !important;
}

.contact-form-wrapper .contact-form-field__input{
  position:static !important;
  display:block !important;
  width:100% !important;
  min-height:52px !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:13px 0 12px !important;
  border:0 !important;
  border-bottom:1px solid var(--dm-line) !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--dm-ink) !important;
  outline:none !important;
  box-shadow:none !important;
  font:inherit !important;
  line-height:1.45 !important;
  transition:border-color 250ms var(--dm-ease) !important;
}

.contact-form-wrapper textarea.contact-form-field__input{
  min-height:180px !important;
  padding-top:13px !important;
  resize:vertical;
}

.contact-form-wrapper .contact-form-field__input:focus{
  border-bottom-color:var(--dm-ink) !important;
}

.contact-form-wrapper .contact-form-field__input::placeholder{
  color:transparent !important;
}

.contact-form-wrapper__submit-btn{
  min-width:160px;
  margin-top:2px !important;
  transition:background-color 220ms var(--dm-ease),border-color 220ms var(--dm-ease),color 220ms var(--dm-ease),transform 220ms var(--dm-ease) !important;
}

.contact-form-wrapper__submit-btn:hover:not(:disabled){
  transform:translateY(-1px);
}

.contact-form-wrapper__submit-btn:disabled{
  cursor:wait;
  opacity:.65;
}

.contact-form-wrapper__success-message:not(.hidden){
  display:block !important;
  margin:28px auto 0 !important;
  max-width:520px;
  color:var(--dm-muted) !important;
  font-size:.82rem;
  letter-spacing:.04em;
}

/* Refined focus treatment for keyboard users. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{
  outline:1px solid var(--dm-accent-soft) !important;
  outline-offset:4px;
}

@media (max-width:700px){
  .header-menu__item .header-menu__primary::after{display:none}
  .contact-form-wrapper{padding-left:18px;padding-right:18px}
  .contact-form-wrapper .form-group{margin-bottom:31px !important}
  .contact-form-wrapper textarea.contact-form-field__input{min-height:155px !important}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .header-menu__primary::after,
  .vertical-grid__photo,
  .gallery-item img,
  .dynamic-gallery img,
  .contact-form-wrapper__submit-btn{transition:none !important}
}

/* V45 — contact feedback spacing */
.contact-form-wrapper__success-message:not(.hidden){
  line-height:1.8 !important;
}
