/* ===== Contact v2 — calm, private-appointment feel ===== */
.ct2{ --bz1:#5E4724; --bz2:#7A5D30; --bz3:#A07B3C; --ease2:cubic-bezier(.45,.05,.25,1); padding:140px 0 150px; }
.ct2 .ct-bg{ animation:ctzoom 26s ease-in-out infinite alternate; }
.ct2-glow{ position:absolute; inset:0; pointer-events:none; z-index:0;
  background:radial-gradient(600px circle at var(--gx,70%) var(--gy,45%), rgba(201,150,61,.10), transparent 60%);
  transition:background .2s linear; }

/* gentle entrance */
.ct2-in{ opacity:0; transform:translateY(18px); transition:opacity 1.6s var(--ease2), transform 1.6s var(--ease2); transition-delay:var(--d,0s); }
.ct2.is-in .ct2-in{ opacity:1; transform:none; }
.ct2-title{ font-family:'Cormorant Garamond', Georgia, 'Times New Roman', serif !important; font-weight:400 !important; font-size:clamp(44px,5.6vw,82px) !important; line-height:1.02 !important; }
.ct2-title em{ color:#C9A060 !important; }
.ct2-line{ display:block; overflow:hidden; padding-bottom:.06em; }
.ct2-line > span{ display:block; transform:translateY(105%); transition:transform 1.8s var(--ease2); transition-delay:var(--d,0s); }
.ct2.is-in .ct2-line > span{ transform:none; }

.ct2 .ct-left p{ font-size:1.08rem; line-height:1.75; max-width:420px; color:rgba(236,232,223,.7); }

/* how it works */
.ct2-steps{ list-style:none; padding:0; margin:34px 0 0; display:flex; gap:0; max-width:460px; border-top:1px solid rgba(201,150,61,.22); }
.ct2-steps li{ flex:1; padding:16px 14px 0 0; position:relative; }
.ct2-steps li + li{ padding-left:18px; border-left:1px solid rgba(236,232,223,.08); }
.ct2-steps b{ display:block; font-family:'Cormorant Garamond', Georgia, serif; font-style:italic; font-weight:400; font-size:1.3rem; color:#C9A060; }
.ct2-steps span{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--off-white-dim); }
.ct2 .ct-facts{ margin-top:34px; }
.ct2 .ct-facts b{ font-family:'Cormorant Garamond', Georgia, serif; font-size:34px; color:#C9A060; }

/* the card */
.ct2-card{ position:relative; border-radius:24px !important; padding:44px 44px 40px !important; background:linear-gradient(160deg, rgba(40,42,45,.72), rgba(24,25,27,.78)) !important; border:1px solid rgba(201,150,61,.18) !important; box-shadow:0 50px 120px -50px rgba(0,0,0,.9) !important; overflow:hidden; }
.ct2-card::before{ content:""; position:absolute; inset:-1px; border-radius:inherit; padding:1px; pointer-events:none;
  background:conic-gradient(from var(--ang,0deg), transparent 0 70%, rgba(201,150,61,.55) 80%, transparent 90%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude;
  animation:ct2spin 14s linear infinite; }
@property --ang{ syntax:'<angle>'; inherits:false; initial-value:0deg; }
@keyframes ct2spin{ to{ --ang:360deg; } }
.ct2-kicker{ margin:0 0 10px; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:#B08A4A; }
.ct2-card h3{ font-family:'Cormorant Garamond', Georgia, serif !important; font-style:italic; font-size:2.2rem !important; margin:0 0 6px !important; }

/* fields: a soft bronze line draws in on focus */
.ct2 .ct-f::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:linear-gradient(90deg,#C9A060,rgba(201,150,61,.2)); transform:scaleX(0); transform-origin:left; transition:transform 1.1s var(--ease2); }
.ct2 .ct-f:focus-within::after{ transform:scaleX(1); }
.ct2 .ct-f input:focus,.ct2 .ct-f textarea:focus,.ct2 .ct-f select:focus{ border-color:rgba(236,232,223,.25) !important; box-shadow:none !important; }
.ct2 .ct-f input:focus + label,.ct2 .ct-f input:not(:placeholder-shown) + label,
.ct2 .ct-f textarea:focus + label,.ct2 .ct-f textarea:not(:placeholder-shown) + label,
.ct2 .ct-f select + label,.ct2 .ct-lbl{ color:#B08A4A !important; }
.ct2 .ct-f label{ transition:all .6s var(--ease2); }

/* chips: soft bronze outline instead of bright yellow */
.ct2 .ct-chips span{ transition:all .8s var(--ease2); }
.ct2 .ct-chips span:hover{ background:rgba(201,150,61,.08); border-color:rgba(201,150,61,.45); color:var(--off-white); }
.ct2 .ct-chips span.on{ background:rgba(201,150,61,.14); border-color:rgba(201,160,96,.8); color:var(--off-white); }

/* button: deep bronze, slow light sheen */
.ct2-btn{ position:relative; overflow:hidden; display:flex !important; align-items:center; justify-content:center; gap:14px;
  background:linear-gradient(120deg,var(--bz1),var(--bz2) 55%,var(--bz3)) !important; color:#F1E9DA !important;
  font-family:'Jost', 'Helvetica Neue', Arial, sans-serif !important; font-weight:400 !important; font-size:12px !important; letter-spacing:.28em !important; text-transform:uppercase;
  box-shadow:0 18px 40px -22px rgba(0,0,0,.9) !important; transition:transform 1s var(--ease2), box-shadow 1s var(--ease2) !important; }
.ct2-btn::before{ content:""; position:absolute; top:0; bottom:0; width:40%; left:-60%; background:linear-gradient(100deg,transparent,rgba(255,236,200,.22),transparent); transform:skewX(-18deg); transition:left 1.6s var(--ease2); }
.ct2-btn:hover::before{ left:120%; }
.ct2-btn:hover{ transform:translateY(-2px) !important; box-shadow:0 26px 50px -24px rgba(0,0,0,.95) !important; }
.ct2-btn i{ width:26px; height:1px; background:currentColor; position:relative; transition:width .9s var(--ease2); }
.ct2-btn i::after{ content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg); }
.ct2-btn:hover i{ width:40px; }

/* thank-you state */
.ct2-form-body{ transition:opacity 1.2s var(--ease2), transform 1.2s var(--ease2); }
.ct2-thanks{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px; opacity:0; pointer-events:none; transition:opacity 1.4s var(--ease2) .5s; }
.ct2-thanks svg{ width:74px; height:74px; fill:none; stroke:#C9A060; stroke-width:1.2; margin-bottom:22px; }
.ct2-thanks circle{ stroke-dasharray:183; stroke-dashoffset:183; transition:stroke-dashoffset 2s var(--ease2) .7s; }
.ct2-thanks path{ stroke-dasharray:40; stroke-dashoffset:40; transition:stroke-dashoffset 1.2s var(--ease2) 2s; }
.ct2-thanks p{ color:var(--off-white-dim); max-width:30ch; }
.ct2-card.sent .ct2-form-body{ opacity:0; transform:translateY(-10px); pointer-events:none; }
.ct2-card.sent .ct2-thanks{ opacity:1; pointer-events:auto; }
.ct2-card.sent .ct2-thanks circle,.ct2-card.sent .ct2-thanks path{ stroke-dashoffset:0; }

@media (max-width:860px){
  .ct2{ padding:100px 0 110px; }
  .ct2-card{ padding:30px 24px 28px !important; }
  .ct2-steps li + li{ padding-left:12px; }
  .ct2-steps span{ font-size:10px; letter-spacing:.12em; }
  .ct2-steps li{ padding-right:8px; }
}
@media (prefers-reduced-motion:reduce){
  .ct2-in,.ct2-line > span{ opacity:1 !important; transform:none !important; transition:none !important; }
  .ct2-card::before{ animation:none; }
}
