/* Contact page premium layer (Gokul, 3 Nov 2026). Loaded only by contact.html, after doc.css; everything is
   scoped to .ct-page so the other doc pages (privacy, terms, 404) are untouched. The form's ids, names and
   the send script are unchanged: this file only changes how it looks. */

.ct-page { position: relative; max-width: 1120px; padding-top: 64px; isolation: isolate; }

/* soft colour that slowly drifts behind the page */
.ct-bg { position: absolute; inset: -40px -10vw auto; height: 620px; z-index: -1; pointer-events: none; overflow: hidden;
  -webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent); }
.ct-bg i { position: absolute; width: 520px; height: 520px; border-radius: 50%; filter: blur(60px); opacity: .55; animation: ct-drift 16s var(--ease-in-out) infinite alternate; }
.ct-bg i:nth-child(1) { left: 2%; top: -120px; background: var(--canvas-sky); }
.ct-bg i:nth-child(2) { right: 4%; top: -60px; background: var(--canvas-lilac); animation-delay: -5s; }
.ct-bg i:nth-child(3) { left: 38%; top: 120px; width: 420px; height: 420px; background: var(--canvas-aqua); opacity: .4; animation-delay: -10s; }
@keyframes ct-drift { to { transform: translate(60px, 40px) scale(1.12); } }

/* hero */
.ct-hero { max-width: 760px; }
.ct-page h1 { font-size: 60px; letter-spacing: -2.4px; line-height: 1.02; }
.ct-page .ct-trust { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; padding: 0; } /* .ct-page: beats doc.css's .doc ul */
.ct-trust li { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px; margin: 0; border-radius: 999px;
  background: rgba(255,255,255,.75); border: 1px solid rgba(15,27,61,.08); box-shadow: var(--shadow-lift);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font: 600 14px/1 var(--font-sans); color: var(--ink); }
.ct-trust li::before { content: ""; width: 18px; height: 18px; border-radius: 50%; background: var(--done-soft)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B6B50' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 11px no-repeat; }

/* layout */
.ct-page .ct-grid { grid-template-columns: 1.35fr 1fr; gap: 28px; margin-top: 48px; align-items: start; }

/* form card */
.ct-page .ct-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; padding: 36px; border-radius: 32px; border: 1px solid rgba(15,27,61,.08);
  background: rgba(255,255,255,.92); box-shadow: 0 40px 90px -30px rgba(20,40,120,.28), 0 2px 0 #fff inset; position: relative; }
.ct-page .ct-form[hidden] { display: none; }
.ct-page .ct-form::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; pointer-events: none;
  background: linear-gradient(140deg, rgba(91,140,255,.55), rgba(124,58,237,.18) 40%, transparent 65%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.ct-page .ct-form > label, .ct-page .ct-form > .ct-err, .ct-page .ct-form > .doc-btn, .ct-page .ct-form > small { grid-column: 1 / -1; }
.ct-page .ct-form > label[for="ct-name"], .ct-page .ct-form > label[for="ct-phone"] { grid-column: auto; }
.ct-page .ct-form label { position: relative; gap: 8px; font-size: 14px; }
/* "optional" as a small tag at the right of the label, not a line of its own */
.ct-page .ct-opt { position: absolute; top: -1px; right: 0; padding: 3px 9px; border-radius: 999px; background: var(--mist); font: 600 11px/1.2 var(--font-sans); color: var(--slate); }

/* fields: an icon in each, a glowing ring on focus, red when a required field is wrong */
.ct-page .ct-form input, .ct-page .ct-form select, .ct-page .ct-form textarea {
  min-height: 54px; padding: 14px 16px 14px 46px; border-radius: 16px; border: 1.5px solid #D5DCEB; background-color: #FBFCFF;
  background-repeat: no-repeat; background-position: 16px 50%; background-size: 18px; font-size: 16px;
  transition: border-color 200ms, box-shadow 260ms var(--ease-out-soft), background-color 200ms; }
.ct-page .ct-form textarea { min-height: 130px; background-position: 16px 17px; }
.ct-page .ct-form input:hover, .ct-page .ct-form select:hover, .ct-page .ct-form textarea:hover { border-color: #B9C4DC; }
.ct-page .ct-form input:focus, .ct-page .ct-form select:focus, .ct-page .ct-form textarea:focus {
  border-color: var(--blue); background-color: #fff; box-shadow: 0 0 0 5px rgba(31,91,232,.12), 0 10px 24px rgba(31,91,232,.10); }
.ct-page .ct-form input:user-invalid, .ct-page .ct-form select:user-invalid { border-color: var(--missed); box-shadow: 0 0 0 4px rgba(192,21,59,.10); }
.ct-page #ct-name { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C9AB8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); }
.ct-page #ct-phone { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C9AB8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.ct-page #ct-email { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C9AB8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.ct-page #ct-biz { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C9AB8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E"); }
.ct-page #ct-message { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238C9AB8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E"); }

/* send button: full width, light sweep on hover, arrow; spinner while the script says "Sending…" (disabled) */
.ct-page .ct-form .doc-btn { position: relative; overflow: hidden; justify-content: center; gap: 10px; height: 58px; margin-top: 4px; font-size: 17px; font-weight: 700;
  background: linear-gradient(135deg, #3B74FF, var(--blue) 55%, var(--blue-deep)); box-shadow: 0 14px 30px rgba(31,91,232,.35); }
.ct-page .ct-form .doc-btn::after { content: ""; width: 20px; height: 20px; flex: none; transition: transform 200ms var(--ease-out-soft);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.ct-page .ct-form .doc-btn::before { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.35) 50%, transparent 65%); transform: translateX(-110%); }
.ct-page .ct-form .doc-btn:hover::before { transition: transform 800ms var(--ease-out-soft); transform: translateX(110%); }
.ct-page .ct-form .doc-btn:hover::after { transform: translateX(4px); }
.ct-page .ct-form .doc-btn:disabled { cursor: progress; opacity: .92; }
.ct-page .ct-form .doc-btn:disabled::after { background: none; border: 2.5px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: ct-spin 800ms linear infinite; }
@keyframes ct-spin { to { transform: rotate(360deg); } }
.ct-page .ct-form small { text-align: center; }
.ct-page .ct-err:not(:empty) { padding: 12px 14px; border-radius: 14px; background: var(--missed-soft); animation: ct-shake 420ms var(--ease-out-soft); }
@keyframes ct-shake { 20%, 60% { transform: translateX(-5px); } 40%, 80% { transform: translateX(5px); } }

/* success */
.ct-page .ct-done { padding: 44px 36px; border-radius: 32px; text-align: center; background: linear-gradient(160deg, #E4FBF2, var(--done-soft));
  border: 1px solid rgba(14,138,102,.2); box-shadow: 0 40px 90px -30px rgba(14,138,102,.35); }
.ct-page .ct-done:not([hidden]) { animation: ct-pop 620ms var(--ease-spring) both; }
.ct-done-ic { display: block; width: 84px; height: 84px; margin: 0 auto 18px; }
.ct-done-ic svg { width: 100%; height: 100%; fill: none; stroke: var(--done); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.ct-done-ic circle { stroke-dasharray: 145; stroke-dashoffset: 145; animation: ct-draw 700ms 150ms var(--ease-out-soft) forwards; }
.ct-done-ic path { stroke-dasharray: 40; stroke-dashoffset: 40; animation: ct-draw 450ms 700ms var(--ease-out-soft) forwards; }
.ct-page .ct-done b { font-size: 26px; }
@keyframes ct-draw { to { stroke-dashoffset: 0; } }
@keyframes ct-pop { from { opacity: 0; transform: translateY(16px) scale(.96); } to { opacity: 1; transform: none; } }

/* side: what happens next + contact cards */
.ct-page .ct-side { gap: 16px; }
.ct-next { position: relative; overflow: hidden; padding: 30px 28px; border-radius: 28px; color: #fff;
  background: linear-gradient(135deg, #0F1B3D 0%, #16295A 60%, #1A3A8F 100%); box-shadow: 0 30px 70px -24px rgba(15,27,61,.45); }
.ct-next::after { content: ""; position: absolute; width: 300px; height: 300px; right: -120px; top: -140px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(91,140,255,.55), transparent 65%); animation: ct-drift 9s var(--ease-in-out) infinite alternate; }
.ct-next-eb { font: 700 12px/1 var(--font-sans); letter-spacing: .14em; text-transform: uppercase; color: #9FB8FF; }
.ct-next ol { list-style: none; counter-reset: ct; margin: 20px 0 0; padding: 0; display: grid; gap: 18px; position: relative; }
.ct-next ol::before { content: ""; position: absolute; left: 17px; top: 18px; bottom: 18px; width: 2px; background: linear-gradient(#5B8CFF, rgba(91,140,255,.15)); }
.ct-next li { counter-increment: ct; position: relative; display: grid; grid-template-columns: 36px 1fr; column-gap: 14px; margin: 0; color: #fff; font-size: inherit; }
.ct-next li::before { content: counter(ct); grid-row: span 2; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; position: relative; z-index: 1;
  background: linear-gradient(135deg, #5B8CFF, var(--blue)); box-shadow: 0 8px 20px rgba(31,91,232,.45); font: 800 15px/1 var(--font-sans); }
.ct-next li b { font: 700 16px/1.3 var(--font-sans); color: #fff; align-self: end; }
.ct-next li span { font: 400 14px/1.45 var(--font-sans); color: rgba(234,240,255,.72); }
.ct-page .ct-card { position: relative; padding: 20px 22px 20px 72px; border-radius: 22px; background: rgba(255,255,255,.85); border: 1px solid rgba(15,27,61,.07);
  transition: transform 260ms var(--ease-out-soft), box-shadow 260ms var(--ease-out-soft); }
.ct-page .ct-card::before { content: ""; position: absolute; left: 20px; top: 50%; width: 38px; height: 38px; margin-top: -19px; border-radius: 12px;
  background: var(--blue-soft) center / 20px no-repeat; }
.ct-ic-mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D4ED8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E") !important; }
.ct-ic-pin::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D4ED8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-12a7 7 0 0 1 14 0c0 5.8-7 12-7 12z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E") !important; }
.ct-ic-salon::before { background-color: var(--violet-soft) !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236D28D9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='6' r='3'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Cpath d='M20 4 8.1 15.9M14.5 14.5 20 20M8.1 8.1 12 12'/%3E%3C/svg%3E") !important; }
@media (hover: hover) and (pointer: fine) { .ct-page .ct-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px -12px rgba(20,40,120,.22); } }

@media (max-width: 860px) {
  .ct-page { padding-top: 40px; }
  .ct-page h1 { font-size: 40px; letter-spacing: -1.4px; }
  .ct-page .ct-grid { grid-template-columns: 1fr; }
  .ct-page .ct-form { grid-template-columns: 1fr; padding: 24px 20px; border-radius: 26px; }
  .ct-page .ct-form > label[for="ct-name"], .ct-page .ct-form > label[for="ct-phone"] { grid-column: 1 / -1; }
  .ct-trust li { height: 34px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .ct-bg i, .ct-next::after, .ct-page .ct-done:not([hidden]), .ct-done-ic circle, .ct-done-ic path, .ct-page .ct-err:not(:empty) { animation: none !important; }
  .ct-done-ic circle, .ct-done-ic path { stroke-dashoffset: 0; }
}
