/* =========================================================
   Vidartico v1.3 — Contact Concierge
   Standalone on purpose: loaded after the main theme CSS.
   ========================================================= */

.vid-contact {
  --contact-gold: var(--vid-color-accent, #d4b06a);
  --contact-line: rgba(212,176,106,.34);
  --contact-muted: var(--vid-color-text-muted, #94a3b8);
  padding-bottom: clamp(2.75rem,6vw,5.5rem);
}

.contact-stage[hidden],
.contact-hp[hidden] {
  display: none !important;
}

.contact-concierge {
  position: relative;
  isolation: isolate;
  width: min(1120px, calc(100% - 2rem));
  margin: clamp(1.6rem,4vw,3.2rem) auto 0;
  overflow: hidden;
  border: 1px solid rgba(148,163,184,.24);
  border-radius: 30px;
  background:
    radial-gradient(circle at 82% 8%, rgba(212,176,106,.13), transparent 28%),
    linear-gradient(145deg, rgba(7,14,31,.98), rgba(3,8,20,.98));
  box-shadow: 0 30px 90px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.035);
  transition: opacity .16s ease, transform .24s ease;
}

.contact-concierge::before {
  content: "";
  position: absolute;
  inset: 10px;
  z-index: 1;
  border: 1px solid rgba(212,176,106,.28);
  border-radius: 22px;
  pointer-events: none;
}

.contact-concierge::after {
  content: "";
  position: absolute;
  inset: 14px;
  z-index: 1;
  pointer-events: none;
  opacity: .8;
  background-repeat: no-repeat;
  background-size: 13px 13px;
  background-position: left top, right top, left bottom, right bottom;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%23d4b06a' stroke-width='1.05' stroke-linecap='round'%3E%3Ccircle cx='8' cy='3' r='1.2'/%3E%3Ccircle cx='8' cy='13' r='1.2'/%3E%3Ccircle cx='3' cy='8' r='1.2'/%3E%3Ccircle cx='13' cy='8' r='1.2'/%3E%3Cpath d='M8 1v5M8 10v5M1 8h5M10 8h5'/%3E%3C/g%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%23d4b06a' stroke-width='1.05' stroke-linecap='round'%3E%3Ccircle cx='8' cy='3' r='1.2'/%3E%3Ccircle cx='8' cy='13' r='1.2'/%3E%3Ccircle cx='3' cy='8' r='1.2'/%3E%3Ccircle cx='13' cy='8' r='1.2'/%3E%3Cpath d='M8 1v5M8 10v5M1 8h5M10 8h5'/%3E%3C/g%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%23d4b06a' stroke-width='1.05' stroke-linecap='round'%3E%3Ccircle cx='8' cy='3' r='1.2'/%3E%3Ccircle cx='8' cy='13' r='1.2'/%3E%3Ccircle cx='3' cy='8' r='1.2'/%3E%3Ccircle cx='13' cy='8' r='1.2'/%3E%3Cpath d='M8 1v5M8 10v5M1 8h5M10 8h5'/%3E%3C/g%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%23d4b06a' stroke-width='1.05' stroke-linecap='round'%3E%3Ccircle cx='8' cy='3' r='1.2'/%3E%3Ccircle cx='8' cy='13' r='1.2'/%3E%3Ccircle cx='3' cy='8' r='1.2'/%3E%3Ccircle cx='13' cy='8' r='1.2'/%3E%3Cpath d='M8 1v5M8 10v5M1 8h5M10 8h5'/%3E%3C/g%3E%3C/svg%3E");
}

.contact-concierge__glow {
  position: absolute;
  z-index: 0;
  width: min(420px, 68vw);
  aspect-ratio: 1;
  top: -210px;
  right: -110px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212,176,106,.17), transparent 68%);
  filter: blur(7px);
  pointer-events: none;
  animation: vidContactGlow 12s ease-in-out infinite alternate;
}

@keyframes vidContactGlow {
  to { transform: translate3d(-58px,45px,0) scale(1.06); opacity: .7; }
}

.contact-stage {
  position: relative;
  z-index: 2;
  padding: clamp(2rem,5vw,4.2rem);
  transition: opacity .2s ease, transform .28s cubic-bezier(.22,1,.36,1);
}

.contact-concierge.is-stage-changing .contact-stage:not([hidden]) {
  opacity: 0;
  transform: translateY(8px);
}

.contact-stage.is-stage-entering {
  opacity: 0;
  transform: translateY(10px);
}

.contact-stage__heading {
  max-width: 760px;
  margin-bottom: clamp(1.7rem,4vw,3rem);
}

.contact-stage__heading h2,
.contact-form-head h2 {
  margin: .18rem 0 .7rem;
  font-family: "Playfair Display", serif;
  font-size: clamp(1.9rem,4.2vw,3.2rem);
  line-height: 1.04;
  letter-spacing: -.028em;
}

.contact-stage__heading > p:last-child {
  margin: 0;
  max-width: 620px;
  color: var(--contact-muted);
  line-height: 1.65;
}

.contact-eyebrow {
  margin: 0 0 .48rem;
  color: var(--contact-gold);
  text-transform: uppercase;
  letter-spacing: .19em;
  font-size: .68rem;
  font-weight: 650;
}

.contact-intro-grid {
  display: grid;
  grid-template-columns: minmax(410px,.82fr) minmax(0,1.55fr);
  gap: clamp(1.5rem,4vw,3.7rem);
  align-items: stretch;
}

.contact-identity {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: clamp(1.25rem,3vw,2.8rem);
  border-right: 1px solid rgba(148,163,184,.16);
}

.contact-identity > label {
  display: block;
  margin-bottom: .68rem;
  color: var(--contact-muted);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .15em;
}

.contact-select-wrap {
  position: relative;
}

.contact-select-wrap::after {
  content: "";
  position: absolute;
  right: 1.05rem;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-72%) rotate(45deg);
  pointer-events: none;
  opacity: .58;
}

.contact-select-wrap select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  min-height: 58px;
  padding: .9rem 2.85rem .9rem 1rem;
  border: 1px solid rgba(148,163,184,.3);
  border-radius: 15px;
  background: rgba(255,255,255,.035);
  color: inherit;
  font: inherit;
  outline: none;
  transition: border-color .22s ease, box-shadow .22s ease, background .22s ease;
}

.contact-select-wrap select:focus {
  border-color: rgba(212,176,106,.72);
  box-shadow: 0 0 0 4px rgba(212,176,106,.10);
  background: rgba(255,255,255,.055);
}

.contact-select-wrap select option {
  color: #111827;
}

/* One premium route object; the content changes in place. */
.contact-route {
  min-width: 0;
  border: 1px solid rgba(148,163,184,.17);
  border-radius: 22px;
  overflow: hidden;
  background: linear-gradient(160deg, rgba(255,255,255,.032), rgba(255,255,255,.012));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.contact-route__nav {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  border-bottom: 1px solid rgba(148,163,184,.16);
  background: rgba(255,255,255,.012);
}

.contact-route-tab {
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: .52rem;
  min-width: 0;
  padding: .95rem .7rem .9rem;
  border: 0;
  border-right: 1px solid rgba(148,163,184,.11);
  background: transparent;
  color: var(--contact-muted);
  cursor: pointer;
  font: inherit;
  transition: color .22s ease, background .22s ease;
}

.contact-route-tab:last-child {
  border-right: 0;
}

.contact-route-tab::after {
  content: "";
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: -1px;
  height: 2px;
  background: var(--contact-gold);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .36s cubic-bezier(.22,1,.36,1);
}

.contact-route-tab:hover,
.contact-route-tab:focus-visible,
.contact-route-tab.is-active {
  color: var(--vid-color-text);
  background: rgba(255,255,255,.025);
}

.contact-route-tab.is-active::after {
  transform: scaleX(1);
}

.contact-route-tab__roman {
  font-family: "Cormorant Garamond", serif;
  color: var(--contact-gold);
  font-size: 1.12rem;
  line-height: 1;
}

.contact-route-tab__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .76rem;
}

.contact-route-display {
  position: relative;
  height: 260px;
  min-height: 260px;
  max-height: 260px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.55rem,3.6vw,2.8rem) clamp(1.25rem,3vw,2.5rem);
  overflow: hidden;
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  transition:
    opacity .16s ease,
    transform .24s cubic-bezier(.22,1,.36,1),
    filter .16s ease;
}

.contact-route-display.is-switching-out {
  opacity: 0;
  transform: translateY(-8px);
  filter: blur(2px);
}

.contact-route-display.is-switching-in {
  opacity: 0;
  transform: translateY(9px);
  filter: blur(2px);
}

.contact-route-display__counter {
  position: relative;
  z-index: 2;
  margin: 0 0 .78rem;
  color: var(--contact-gold) !important;
  font-size: .66rem !important;
  font-weight: 650;
  letter-spacing: .18em;
}

.contact-route-display h3 {
  position: relative;
  z-index: 2;
  margin: 0 0 .58rem;
  max-width: 72%;
  font-family: "Playfair Display", serif;
  font-size: clamp(1.5rem,3vw,2.45rem);
  line-height: 1.07;
}

.contact-route-display > p:last-child {
  position: relative;
  z-index: 2;
  margin: 0;
  max-width: min(650px,78%);
  color: var(--contact-muted);
  font-size: clamp(.9rem,1.5vw,1.03rem);
  line-height: 1.62;
}

.contact-route-display__roman {
  position: absolute;
  right: clamp(.6rem,3vw,2rem);
  top: 50%;
  transform: translateY(-53%);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(7rem,13vw,11rem);
  line-height: .8;
  color: transparent;
  -webkit-text-stroke: 1px rgba(212,176,106,.15);
  opacity: .88;
  user-select: none;
}

.contact-start-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: clamp(1.6rem,4vw,2.7rem);
}

.contact-start {
  position: relative;
  min-width: min(285px,100%);
  justify-content: space-between;
  gap: 1.5rem;
  overflow: hidden;
}

.contact-start:not(:disabled)::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.28) 48%, transparent 74%);
  transform: translateX(-135%);
  transition: transform .75s ease;
}

.contact-start:not(:disabled):hover::before {
  transform: translateX(135%);
}

.contact-start:disabled {
  opacity: .42;
  cursor: not-allowed;
  filter: saturate(.55);
}

.contact-start__arrow {
  font-size: 1.05rem;
  transition: transform .25s ease;
}

.contact-start:not(:disabled):hover .contact-start__arrow {
  transform: translate(2px,-2px);
}

.contact-socials {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .95rem;
}

.contact-socials a {
  color: var(--contact-muted);
  font-size: .75rem;
  text-decoration: none;
  transition: color .2s ease;
}

.contact-socials a:hover {
  color: var(--contact-gold);
}

.contact-form-head {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 1.25rem;
  align-items: start;
  margin-bottom: clamp(1.5rem,3vw,2.5rem);
}

.contact-back {
  margin-top: .35rem;
  border: 0;
  background: transparent;
  color: var(--contact-muted);
  font: inherit;
  font-size: .78rem;
  cursor: pointer;
  transition: color .2s ease, transform .2s ease;
}

.contact-back:hover {
  color: var(--contact-gold);
  transform: translateX(-2px);
}

.contact-selection {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .45rem;
  max-width: 290px;
}

.contact-selection span {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: .25rem .68rem;
  border: 1px solid rgba(212,176,106,.24);
  border-radius: 999px;
  color: var(--contact-muted);
  font-size: .67rem;
}

.contact-selection span:empty {
  display: none;
}

.contact-form {
  display: grid !important;
  gap: 1rem;
  max-width: 920px;
  margin: 0 auto;
}

.contact-form__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.contact-form label {
  display: block;
}

.contact-form label > span {
  display: block;
  margin-bottom: .42rem;
  color: var(--contact-muted);
  font-size: .69rem;
  text-transform: uppercase;
  letter-spacing: .115em;
}

.contact-form input,
.contact-form textarea {
  box-sizing: border-box;
  display: block;
  width: 100%;
  max-width: none;
  border: 1px solid rgba(148,163,184,.30);
  border-radius: 14px;
  background: rgba(255,255,255,.03);
  color: var(--vid-color-text);
  padding: .88rem .92rem;
  font: inherit;
  line-height: 1.35;
  outline: none;
  transition: border-color .22s ease, box-shadow .22s ease, background .22s ease;
}

.contact-form input {
  min-height: 55px;
}

.contact-form textarea {
  min-height: 190px;
  resize: vertical;
}

.contact-form input:focus,
.contact-form textarea:focus {
  border-color: rgba(212,176,106,.72);
  box-shadow: 0 0 0 4px rgba(212,176,106,.10);
  background: rgba(255,255,255,.05);
}

.contact-form__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: .25rem;
}

.contact-form__footer p {
  margin: 0;
  max-width: 550px;
  color: var(--contact-muted);
  font-size: .7rem;
  line-height: 1.58;
}

.contact-status {
  max-width: 920px;
  margin: 0 auto 1.25rem;
  padding: .9rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(148,163,184,.3);
  background: rgba(255,255,255,.025);
}

.contact-status.is-success { border-color: rgba(74,222,128,.45); }
.contact-status.is-error { border-color: rgba(248,113,113,.45); }

/* Light mode */
html[data-vid-theme="light"] .contact-concierge {
  background:
    radial-gradient(circle at 82% 8%, rgba(212,176,106,.17), transparent 29%),
    linear-gradient(145deg,#faf6ed,#efe5d4);
  border-color: rgba(122,31,43,.18);
  box-shadow: 0 26px 70px rgba(67,45,32,.12), inset 0 1px 0 rgba(255,255,255,.82);
}

html[data-vid-theme="light"] .contact-concierge::before {
  border-color: rgba(122,31,43,.36);
}

html[data-vid-theme="light"] .contact-concierge::after {
  opacity: .78;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%237A1F2B' stroke-width='1.05' stroke-linecap='round'%3E%3Ccircle cx='8' cy='3' r='1.2'/%3E%3Ccircle cx='8' cy='13' r='1.2'/%3E%3Ccircle cx='3' cy='8' r='1.2'/%3E%3Ccircle cx='13' cy='8' r='1.2'/%3E%3Cpath d='M8 1v5M8 10v5M1 8h5M10 8h5'/%3E%3C/g%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%237A1F2B' stroke-width='1.05' stroke-linecap='round'%3E%3Ccircle cx='8' cy='3' r='1.2'/%3E%3Ccircle cx='8' cy='13' r='1.2'/%3E%3Ccircle cx='3' cy='8' r='1.2'/%3E%3Ccircle cx='13' cy='8' r='1.2'/%3E%3Cpath d='M8 1v5M8 10v5M1 8h5M10 8h5'/%3E%3C/g%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%237A1F2B' stroke-width='1.05' stroke-linecap='round'%3E%3Ccircle cx='8' cy='3' r='1.2'/%3E%3Ccircle cx='8' cy='13' r='1.2'/%3E%3Ccircle cx='3' cy='8' r='1.2'/%3E%3Ccircle cx='13' cy='8' r='1.2'/%3E%3Cpath d='M8 1v5M8 10v5M1 8h5M10 8h5'/%3E%3C/g%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%237A1F2B' stroke-width='1.05' stroke-linecap='round'%3E%3Ccircle cx='8' cy='3' r='1.2'/%3E%3Ccircle cx='8' cy='13' r='1.2'/%3E%3Ccircle cx='3' cy='8' r='1.2'/%3E%3Ccircle cx='13' cy='8' r='1.2'/%3E%3Cpath d='M8 1v5M8 10v5M1 8h5M10 8h5'/%3E%3C/g%3E%3C/svg%3E");
}

html[data-vid-theme="light"] .contact-concierge__glow {
  background: radial-gradient(circle, rgba(122,31,43,.10), transparent 68%);
}

html[data-vid-theme="light"] .contact-identity {
  border-color: rgba(122,31,43,.13);
}

html[data-vid-theme="light"] .contact-route {
  border-color: rgba(122,31,43,.16);
  background: linear-gradient(160deg, rgba(255,255,255,.74), rgba(255,255,255,.36));
}

html[data-vid-theme="light"] .contact-route__nav,
html[data-vid-theme="light"] .contact-route-tab {
  border-color: rgba(122,31,43,.11);
}

html[data-vid-theme="light"] .contact-route-tab:hover,
html[data-vid-theme="light"] .contact-route-tab:focus-visible,
html[data-vid-theme="light"] .contact-route-tab.is-active {
  background: rgba(122,31,43,.035);
}

html[data-vid-theme="light"] .contact-route-display__roman {
  -webkit-text-stroke-color: rgba(122,31,43,.13);
}

html[data-vid-theme="light"] .contact-select-wrap select,
html[data-vid-theme="light"] .contact-form input,
html[data-vid-theme="light"] .contact-form textarea {
  background: rgba(255,255,255,.78);
  color: #111827;
  border-color: rgba(122,31,43,.18);
}

html[data-vid-theme="light"] .contact-selection span {
  border-color: rgba(122,31,43,.18);
}

html[data-vid-theme="light"] .contact-status {
  background: rgba(255,255,255,.52);
}

@media (max-width: 760px) {
  .contact-concierge {
    width: calc(100% - 1rem);
    border-radius: 24px;
  }

  .contact-concierge::before {
    inset: 7px;
    border-radius: 18px;
  }

  .contact-concierge::after {
    inset: 12px;
    background-size: 11px 11px;
  }

  .contact-stage {
    padding: 1.65rem 1.25rem 1.8rem;
  }

  .contact-stage__heading {
    margin-bottom: 1.45rem;
  }

  .contact-intro-grid {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .contact-identity {
    padding-right: 0;
    padding-bottom: 1.25rem;
    border-right: 0;
    border-bottom: 1px solid rgba(148,163,184,.15);
  }

  .contact-route {
    border-radius: 18px;
  }

  .contact-route-tab {
    gap: .25rem;
    padding: .82rem .28rem .78rem;
  }

  .contact-route-tab__roman {
    font-size: 1rem;
  }

  .contact-route-tab__label {
    font-size: .65rem;
  }

  .contact-route-display {
    height: 260px;
    min-height: 260px;
    max-height: 260px;
    padding: 1.35rem 1rem 1.55rem;
  }

  .contact-route-display h3 {
    max-width: 80%;
    font-size: clamp(1.55rem,7vw,2.05rem);
  }

  .contact-route-display > p:last-child {
    max-width: 88%;
    font-size: .92rem;
  }

  .contact-route-display__roman {
    right: .4rem;
    font-size: clamp(5.8rem,31vw,8rem);
  }

  .contact-start-row {
    align-items: stretch;
    flex-direction: column;
  }

  .contact-start {
    width: 100%;
    min-width: 0;
  }

  .contact-socials--intro {
    justify-content: center;
  }

  .contact-form-head {
    grid-template-columns: 1fr;
    gap: .75rem;
  }

  .contact-back {
    justify-self: start;
  }

  .contact-selection {
    justify-content: flex-start;
    max-width: none;
  }

  .contact-form__grid {
    grid-template-columns: 1fr;
  }

  .contact-form__footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .contact-form__footer .btn {
    width: 100%;
  }
}

@media (max-width: 390px) {
  .contact-route-tab__label {
    display: none;
  }

  .contact-route-tab {
    padding-block: .88rem;
  }

  .contact-route-tab__roman {
    font-size: 1.08rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-concierge__glow {
    animation: none !important;
  }

  .contact-concierge,
  .contact-stage,
  .contact-route-display,
  .contact-route-tab::after,
  .contact-start::before,
  .contact-start__arrow {
    transition: none !important;
  }
}

/* =========================================================
   MOBILE CONTACT — SINGLE SOURCE OF TRUTH
   Desktop and mobile now use the SAME route display and SAME contact.js timer.
   No duplicate mobile carousel exists anymore.
   ========================================================= */
@media (max-width: 760px) {
  .contact-route-display[data-contact-route-display] {
    display: block !important;
  }

  .contact-route-mobile-cycle {
    display: none !important;
  }
}

/* Desktop: keep the full English placeholder visible. */
@media (min-width: 901px) {
  .contact-intro-grid {
    grid-template-columns: minmax(350px, .92fr) minmax(0, 1.55fr);
  }
}

.contact-select-wrap,
.contact-select-wrap select {
  min-width: 0;
}

.contact-select-wrap select {
  white-space: nowrap;
}


/* =========================================================
   CONTACT SOURCE FIX — 2026-08-24
   One visible route display only; fixed geometry prevents the
   whole concierge from breathing between I / II / III.
   ========================================================= */
.contact-route-mobile-cycle,
.contact-route-panels,
.contact-route-panel,
.contact-route-slide {
  display: none !important;
}

.contact-route-display[data-contact-route-display] {
  display: flex !important;
  box-sizing: border-box;
  height: 260px !important;
  min-height: 260px !important;
  max-height: 260px !important;
}

@media (max-width: 760px) {
  .contact-route-display[data-contact-route-display] {
    height: 260px !important;
    min-height: 260px !important;
    max-height: 260px !important;
  }
}
