:root{
  --ak-accent:#c77fa8;
}
body.light-theme{
  --ak-accent:#7a315d;
}

/* Contact page: clearer hierarchy and breathing room between actions. */
.public-contact-person{
  font-size:clamp(21px,1.32vw,27px)!important;
  line-height:1.25!important;
  margin-bottom:17px!important;
}
.public-contact-sales-route .public-contact-direct-links{
  gap:0!important;
}
.public-contact-sales-route .public-contact-sales-email{
  margin-bottom:24px;
}
.public-contact-sales-route .public-contact-phone-line{
  margin-bottom:30px;
}
.public-contact-sales-route .public-contact-hours{
  margin-top:0!important;
}
.public-contact-sales-route address{
  margin-top:30px!important;
}

/* Contact form: accent CTA, shorter message field, disabled until valid. */
.public-contact-form textarea{
  min-height:118px;
}
.public-contact-submit{
  border-color:var(--ak-accent)!important;
  background:var(--ak-accent)!important;
  color:#fff!important;
}
.public-contact-submit:hover:not(:disabled){
  filter:brightness(1.07);
}
.public-contact-submit:disabled{
  opacity:.34;
  cursor:not-allowed;
  filter:saturate(.55);
  transform:none!important;
  box-shadow:none!important;
}

/* Same accent language for the floating AI action. */
.sticky-ai-cta{
  background:var(--ak-accent)!important;
  color:#fff!important;
}
.sticky-ai-cta:hover{
  filter:brightness(1.06);
}

/* Collection cards: photos -> permanent gradient -> copy -> model count. */
.ak-collection-card .ak-catalogue-card-media{
  z-index:0;
  background:#0b0c0d;
}
.ak-collection-card .ak-catalogue-card-shade{
  z-index:2;
}
.ak-collection-card .ak-catalogue-card-copy{
  right:108px;
  z-index:3;
}
.ak-catalogue-card-media .ak-catalogue-card-image{
  position:absolute;
  inset:0;
  z-index:0;
  opacity:0;
  transform:scale(1);
  pointer-events:none;
  will-change:opacity,transform;
  filter:saturate(.72) brightness(.82) contrast(.95);
  transition:none;
  backface-visibility:hidden;
}
.ak-catalogue-card-media .ak-catalogue-card-image.is-underlay{
  z-index:0;
  opacity:1;
  transform:scale(1);
}
.ak-catalogue-card-media .ak-catalogue-card-image.is-current{
  z-index:1;
  opacity:1;
  transform:scale(1);
}
/* Collection previews never inherit the generic card hover zoom. A settled
   frame stays exactly at 100%; only the entering frame animates 130% -> 100%. */
.ak-collection-card.ak-catalogue-card:hover .ak-catalogue-card-media .ak-catalogue-card-image,
.ak-collection-card.ak-catalogue-card:focus-visible .ak-catalogue-card-media .ak-catalogue-card-image{
  transform:scale(1);
  filter:saturate(.72) brightness(.82) contrast(.95);
}
/* Preview animation always stays below the permanent gradient layer. */
.ak-collection-card.is-previewing .ak-catalogue-card-image.is-current{
  z-index:1;
}
.ak-collection-card.is-previewing .ak-catalogue-card-image.is-entering{
  z-index:1;
  opacity:1;
  animation:ak-collection-preview-zoom-down 2.3s cubic-bezier(.16,.72,.22,1) both;
}

.ak-catalogue-card-count-badge{
  position:absolute;
  right:18px;
  bottom:14px;
  z-index:4;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:64px;
  min-height:58px;
  padding:7px 10px 6px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  background:rgba(5,5,5,.92);
  box-shadow:0 7px 22px rgba(0,0,0,.22);
  color:#fff;
  text-align:center;
}
.ak-catalogue-card-count-number{
  display:block;
  font:500 clamp(22px,1.35vw,29px)/.9 Inter,sans-serif;
  letter-spacing:-.045em;
}
.ak-catalogue-card-count-caption{
  display:block;
  margin-top:7px;
  color:rgba(255,255,255,.64);
  font:400 8px/1 Inter,sans-serif;
  letter-spacing:.11em;
  text-transform:uppercase;
}

/* Dress store tile: city is already known, so show every salon directly. */
.dress-store-list{
  margin-top:18px;
}
.dress-store-entry{
  padding-bottom:4px;
}
.dress-store-entry + .dress-store-entry{
  margin-top:30px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.store-tile .dress-store-entry h3{
  margin-top:0;
}
/* The entry and city picker own the separators. Remove the legacy top/bottom
   frame from the inner point so a single salon never shows doubled rules. */
.store-tile .dress-store-point{
  margin:0 0 24px;
  padding:0;
  border:0;
}
.dress-store-phones{
  display:grid;
  justify-items:start;
  gap:8px;
  margin-top:12px;
}
.dress-store-phone-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  min-height:28px;
}
.dress-store-phone-row.is-messenger-only{
  margin-top:12px;
}
.dress-store-phone{
  display:block;
  width:max-content;
  max-width:100%;
  border-bottom:1px solid color-mix(in srgb,currentColor 26%,transparent);
}
.dress-store-messenger-icons{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.dress-store-messenger-icon{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  padding:0;
  border:1px solid rgba(244,241,236,.20);
  border-radius:50%;
  color:rgba(244,241,236,.62);
  text-decoration:none;
  transition:border-color .2s ease,color .2s ease,background .2s ease;
}
.dress-store-messenger-icon:hover{
  border-color:rgba(244,241,236,.52);
  background:rgba(255,255,255,.045);
  color:#f4f1ec;
}
.dress-store-messenger-icon .fa-whatsapp,
.dress-store-messenger-icon .fa-telegram{
  font-size:15px;
}
.dress-store-max-mark{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  font:500 11px/1 Inter,sans-serif;
  letter-spacing:-.05em;
}
.dress-store-direct-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin-top:14px;
}
.dress-store-direct-links a{
  border-bottom:1px solid color-mix(in srgb,currentColor 24%,transparent);
}
.dress-store-empty{
  margin-top:18px;
}
.store-city-picker{
  margin-top:30px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.dress-store-picker-status{
  min-height:1.2em;
  margin-top:7px;
  opacity:.56;
}
body.light-theme .dress-store-messenger-icon{
  border-color:rgba(17,18,20,.20);
  color:rgba(17,18,20,.58);
}
body.light-theme .dress-store-messenger-icon:hover{
  border-color:rgba(17,18,20,.48);
  background:rgba(0,0,0,.035);
  color:#111214;
}

@keyframes ak-collection-preview-zoom-down{
  0%{
    opacity:1;
    transform:scale(1.30);
  }
  100%{
    opacity:1;
    transform:scale(1);
  }
}

@media(prefers-reduced-motion:reduce){
  .ak-collection-card .ak-catalogue-card-image{
    animation:none!important;
    transition:none!important;
    transform:none!important;
  }
  .ak-collection-card .ak-catalogue-card-image:not(.is-current){opacity:0!important}
}

@media(max-width:760px){
  .public-contact-sales-route .public-contact-sales-email{margin-bottom:19px}
  .public-contact-sales-route .public-contact-phone-line{margin-bottom:24px}
  .public-contact-sales-route address{margin-top:24px!important}

  .ak-collection-card .ak-catalogue-card-copy{right:100px}
  .ak-catalogue-card-count-badge{
    right:16px;
    bottom:13px;
    min-width:58px;
    min-height:54px;
  }
  .ak-catalogue-card-count-number{font-size:22px}

  .dress-store-entry + .dress-store-entry{
    margin-top:24px;
    padding-top:22px;
  }
  .store-city-picker{
    margin-top:24px;
    padding-top:20px;
  }
}

/* Contact labels should read as real field names, not secondary metadata. */
.public-contact-form .public-form-field label{
  color:var(--ink)!important;
  font-weight:500!important;
}

/* Dress header experiment: airy collection name, dense descriptor, back icon at title. */
.dress-collection-eyebrow{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
}
.dress-collection-name{
  letter-spacing:.22em;
}
.dress-collection-separator{
  margin:0 .62em;
  letter-spacing:0;
}
.dress-collection-type{
  letter-spacing:.01em;
}
.dress-poc-page .intro .heading-line{
  align-items:center!important;
  gap:14px!important;
}
.dress-history-back{
  flex:0 0 auto;
  display:inline-grid;
  place-items:center;
  width:45px;
  height:45px;
  padding:0;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:transparent;
  color:rgba(244,241,236,.76);
  cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}
.dress-history-back:hover{
  border-color:rgba(255,255,255,.38);
  background:rgba(255,255,255,.06);
  color:#fff;
  transform:translateX(-2px);
}
body.light-theme .dress-history-back{
  border-color:rgba(17,18,20,.18);
  color:rgba(17,18,20,.70);
}
body.light-theme .dress-history-back:hover{
  border-color:rgba(17,18,20,.38);
  background:rgba(0,0,0,.045);
  color:#111214;
}
.dress-poc-page .intro .product-actions{
  position:relative!important;
  grid-column:4!important;
  grid-row:2!important;
  justify-self:end!important;
}
.dress-poc-page .intro .dress-facts{
  grid-column:2/4!important;
}
#saveDressBtn{
  gap:7px;
}
#saveDressBtn .save-heart{
  width:16px;
  text-align:center;
  font-family:Arial,Helvetica,sans-serif;
}
.save-feedback-pill{
  position:absolute;
  z-index:95;
  right:0;
  top:calc(100% + 9px);
  width:max-content;
  max-width:260px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(18,20,22,.94);
  color:#f4f1ec;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
  font:400 13px/1.2 Inter,sans-serif;
  opacity:0;
  pointer-events:none;
}
body.light-theme .save-feedback-pill{
  background:rgba(247,245,240,.97);
  color:#111214;
}
.save-feedback-pill.is-visible{
  animation:ak-save-feedback 1.9s ease forwards;
}
@keyframes ak-save-feedback{
  0%{opacity:0;transform:translateY(-4px)}
  12%{opacity:1;transform:none}
  70%{opacity:1;transform:none}
  100%{opacity:0;transform:translateY(-6px)}
}

/* AI visual tile experiment: real bridal image + accent conversion button. */
.visual-preview-media{
  width:100%;
  height:clamp(165px,13vw,255px);
  margin:20px 0 22px;
  overflow:hidden;
  border-radius:12px;
  background:rgba(0,0,0,.12);
}
.visual-preview-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 36%;
  filter:saturate(.86) brightness(.9);
}
.visual-tile .visual-action a{
  border-color:var(--ak-accent)!important;
  background:var(--ak-accent)!important;
  color:#fff!important;
  text-transform:none!important;
  letter-spacing:.02em!important;
}
.visual-tile .visual-action a:hover{
  filter:brightness(1.07);
  background:var(--ak-accent)!important;
}

@media(max-width:1120px){
  .dress-poc-page .intro .product-actions{
    grid-column:2!important;
    grid-row:2!important;
  }
  .dress-poc-page .intro .dress-facts{
    grid-column:1/3!important;
    grid-row:4!important;
  }
}

@media(max-width:760px){
  .dress-history-back{
    width:40px;
    height:40px;
  }
  .dress-poc-page .intro .heading-line{gap:10px!important}
  .dress-collection-separator{margin:0 .42em}
  .visual-preview-media{height:190px}
}
