/* LeapCode contact.css (release 1.5): the Contact page in the LeapCode style (Figtree headings, Inter body, red gradient buttons with a light sweep,
   44px or taller targets, 3px Ignition focus ring, 1 icon per heading, soft cards). Loads after the page's own inline styles. */
.hero{padding-bottom:44px}
main>.wrap{padding-top:40px;padding-bottom:64px}
.cols{display:grid;gap:24px;align-items:start}
@media(min-width:60em){.cols{grid-template-columns:5fr 7fr;gap:32px}}
.ct-side{display:grid;gap:20px}
.card{border:1px solid var(--line,#D9DEDE);border-radius:20px;padding:26px 26px 24px;background:#fff;box-shadow:0 18px 36px -28px rgba(26,26,26,.35)}
.card h2{display:flex;align-items:center;gap:10px;margin:0 0 14px;font:800 1.35rem/1.2 var(--font-heading,"Source Sans 3",system-ui,sans-serif);color:var(--fg-heading,#1A1A1A);letter-spacing:-.01em}
.ct-card--cta{background:linear-gradient(135deg,#FFF4F1,#FFE3DD);border-color:#EDB2A8}
.ct-card--cta p{margin:0 0 16px;max-width:none}
.ct-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ct-list li{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line,#D9DEDE)}
.ct-list li:first-child{border-top:0}
.ct-i{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid #E7D5D3;font-size:1.25rem;box-shadow:0 0 0 3px #FFF6F7}
.ct-list b{display:block;font:700 .78rem var(--font-heading,"Source Sans 3",sans-serif);letter-spacing:.08em;text-transform:uppercase;color:#5E6D74}
.ct-list a{font-weight:700;color:#A12A2A;text-decoration:none;border-bottom:1.5px solid rgba(161,42,42,.35)}
.ct-list a:hover,.ct-list a:focus-visible{border-bottom-color:#A12A2A}
.ct-list a:focus-visible{outline:3px solid #D44040;outline-offset:3px;border-radius:2px}
.ct-list span.v{display:block;color:#1A1A1A}
.card .small{font-size:.88rem;color:#5E6D74;margin:14px 0 0;max-width:none}
/* the form */
.form .field{margin:0 0 18px}
.form label.l{display:block;margin:0 0 6px;font:700 .95rem var(--font-heading,"Source Sans 3",sans-serif);color:#1A1A1A}
.form input[type=text],.form input[type=email],.form textarea{display:block;width:100%;min-height:54px;padding:12px 16px;border:1.5px solid #B9C4C9;border-radius:14px;background:#FCFDFD;color:#1A1A1A;font:500 1rem var(--font-body,"Source Sans 3",system-ui,sans-serif);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.form textarea{min-height:150px;line-height:1.55;resize:vertical}
.form input:hover,.form textarea:hover{border-color:#7F8E95}
.form input:focus,.form textarea:focus{outline:0;border-color:#D44040;box-shadow:0 0 0 4px rgba(255,32,50,.18);background:#fff}
.form input:focus-visible,.form textarea:focus-visible{outline:3px solid #D44040;outline-offset:2px}
.form .req{color:var(--c-sol-text,#B83434)}
.form .choice{display:grid;grid-template-columns:26px 1fr;align-items:start;gap:12px;margin:0 0 12px;padding:12px 14px;border:1.5px solid #E6D3D0;border-radius:14px;background:#FFF8F6;cursor:pointer;line-height:1.5}
.form .choice:hover{border-color:#D98F85}
.form .choice input{width:22px;height:22px;margin:1px 0 0;accent-color:#D44040}
.form .choice input:focus-visible{outline:3px solid #D44040;outline-offset:2px}
.form .small{font-size:.86rem;color:#5E6D74;margin:0 0 10px;max-width:none}
.ct-int{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;padding:6px 14px;border-radius:999px;background:#1A1A1A;color:#fff;font:700 .88rem var(--font-heading,"Source Sans 3",sans-serif)}
.ct-int[hidden]{display:none}
.form .btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:56px;padding:0 34px;border:0;border-radius:999px;cursor:pointer;
  background:#D44040;color:#fff;font:800 1.05rem var(--font-body,"Source Sans 3",system-ui,sans-serif);box-shadow:0 10px 22px -12px rgba(200,58,58,.95);transition:transform .2s ease,box-shadow .2s ease}
.form .btn::after{content:"";position:absolute;top:0;left:-70%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);transition:left .55s ease}
.form .btn:focus-visible{background:#D44040;transform:translateY(-2px);box-shadow:0 16px 26px -12px rgba(200,58,58,1)}
@media (hover:hover) and (pointer:fine){.form .btn:hover{background:#D44040;transform:translateY(-2px);box-shadow:0 16px 26px -12px rgba(200,58,58,1)}}
.form .btn:focus-visible::after{left:130%}
@media (hover:hover) and (pointer:fine){.form .btn:hover::after{left:130%}}
.form .btn:focus-visible{outline:3px solid #D44040;outline-offset:3px}
.form .status{margin:12px 0 0;font-weight:600}
@media(max-width:520px){.card{padding:20px 16px}.form .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.form .btn,.form .btn::after,.form input,.form textarea{transition:none}.form .btn:hover{transform:none}}
/* W2e: 320px — grid items may shrink below their content, long addresses wrap, so the page never scrolls sideways */
.cols{grid-template-columns:minmax(0,1fr)}
@media(min-width:60em){.cols{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.cols>*,.ct-side>*{min-width:0}
.ct-list li{grid-template-columns:44px minmax(0,1fr)}
.ct-list a,.ct-list span.v{overflow-wrap:anywhere}
