.cem-contact {
    --ink: #172d2b;
    --paper: #f7f4eb;
    --line: #bdc2ad;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
    gap: clamp(2rem, 6vw, 8rem);
    width: min(100%, 1680px);
    margin: 0 auto;
    padding: clamp(6.5rem, 10vw, 12rem) clamp(1.2rem, 6vw, 7rem) clamp(3rem, 8vw, 9rem);
    color: var(--ink);
}
.cem-contact * { box-sizing: border-box; }
.cem-contact-intro { min-width: 0; align-self: start; }
.cem-contact-kicker { font-size: .76rem; letter-spacing: .13em; text-transform: uppercase; margin: 0 0 1.75rem; }
.cem-contact h1 { font-family: inherit; margin: 0; font-size: clamp(3.5rem, 6.7vw, 7.4rem); font-weight: 450; line-height: .98; letter-spacing: -.066em; }
.cem-contact h1 em { display: block; font-family: var(--serif, Georgia, serif); font-weight: 400; letter-spacing: -.075em; }
.cem-contact-copy { max-width: 36ch; line-height: 1.55; font-size: clamp(1rem, 1.25vw, 1.3rem); margin: 1.45rem 0 1.5rem; }
.cem-contact-email { font-size: clamp(1.15rem, 1.9vw, 2rem); text-decoration: none; border-bottom: 1px solid currentColor; overflow-wrap: anywhere; }
.cem-contact-social { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: 1rem; font-size: .9rem; }
.cem-contact-social a { text-decoration: none; }
.cem-contact-social a:hover, .cem-brief-end a:hover { text-decoration: underline; }
.cem-print { position: relative; overflow: hidden; width: min(21rem,85%); height: clamp(5.5rem,10vw,9.5rem); margin-top: clamp(1.5rem,3vw,3rem); isolation: isolate; }
.cem-print i { width: 42%; aspect-ratio: 1; position: absolute; bottom: -8%; left: 0; border-radius: 100%; mix-blend-mode: multiply; background: repeating-linear-gradient(-38deg,#3d746e 0 2px, transparent 2px 5px); transform: rotate(0deg); }
.cem-print i:nth-child(2) { left: 23%; bottom: 6%; background: #e39a64; }
.cem-print i:nth-child(3) { left: 47%; bottom: -5%; background: repeating-linear-gradient(38deg,#899b79 0 2px, transparent 2px 5px); }
.cem-brief { display: grid; align-content: start; gap: clamp(1.1rem,2vw,1.65rem); min-width: 0; padding: clamp(1.25rem,3.2vw,3.5rem); background: #eeeee1; border: 1px solid #d5d9c5; border-radius: .35rem; }
.cem-brief h2 { margin: 0; font-family: inherit; font-weight: 500; font-size: clamp(1.6rem,3vw,3.25rem); line-height: 1.05; letter-spacing: -.045em; }
.cem-brief-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem; }
.cem-brief label { color: var(--ink); font-size: .95rem; font-weight: 550; }
.cem-brief label small { color: #43584b; font-size: .78rem; font-weight: 400; }
.cem-brief :is(input:not([type=hidden]):not([type=file]), textarea) { display: block; width: 100%; margin-top: .35rem; border: 0; border-bottom: 1px solid #889782; background: #f8f8ef; color: #142b25; padding: .65rem .72rem; border-radius: .15rem .15rem 0 0; font: inherit; font-size: max(1rem, 16px); }
.cem-brief textarea { resize: vertical; min-height: 6rem; }
.cem-contact :focus-visible { outline: 2px solid #17644e; outline-offset: 3px; }
.cem-brief-upload { display: flex; align-items: center; gap: .8rem; position: relative; padding: .95rem; border: 1px dashed #798771; border-radius: .25rem; }
.cem-brief-upload:hover, .cem-brief-upload:focus-within { background: #e4e9d8; }
.cem-brief-upload:focus-within { outline: 2px solid #17644e; outline-offset: 2px; }
.cem-brief-upload input { position: absolute; inset: 0; cursor: pointer; opacity: 0; width: 100%; height: 100%; }
.cem-brief-clip { width: 2.3rem; height: 2.3rem; flex: 0 0 2.3rem; display: grid; place-items: center; border-radius: 50%; color: #f8f5e7; background: #314e40; font: 1.4rem/1 system-ui,sans-serif; }
.cem-formats { display: block; margin-top: .18rem; color: #415349; font-weight: 400; font-size: .8rem; line-height: 1.4; }
.cem-brief-filename { font-size: .88rem; overflow-wrap: anywhere; }
.cem-brief-filename:not(:empty) { display: inline-block; margin: .55rem .6rem 0 0; }
.cem-brief-clear { padding: .25rem; color: #364c40; background: none; border: 0; font: inherit; font-size: .82rem; text-decoration: underline; cursor: pointer; }
.cem-brief-clear[hidden] { display: none; }
.cem-brief-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; }
.cem-brief-end>a { font-size: .85rem; text-underline-offset: .2rem; }
.cem-brief button[type=submit] { display: inline-flex; gap: 1.3rem; align-items: center; background: #213d35; color: #faf7ea; border-radius: 3rem; border: none; font: inherit; font-size: 1rem; padding: .85rem 1.3rem; cursor: pointer; }
.cem-brief button[type=submit]:hover { background: #365949; }
.cem-contact-feedback { padding: .75rem; margin: 0; border-left: .18rem solid #3c7551; background: #e0edda; }
.cem-contact-feedback.is-error { background: #f1e5db; border-left-color: #985132; }
.cem-brief-trap { position: absolute!important; clip-path: inset(50%); overflow: hidden; width: 1px; height: 1px; }
@media (prefers-reduced-motion:no-preference) {
    .cem-contact-intro, .cem-brief { animation: cem-contact-enter .65s cubic-bezier(.18,.66,.23,1) both; }
    .cem-brief { animation-delay: .08s; }
    .cem-print i:first-child { animation: cem-print-turn 4s ease-in-out both; }
    .cem-print i:last-child { animation: cem-print-turn 4.6s ease-in-out reverse both; }
    .cem-brief button[type=submit] span { transition: transform .2s ease; }
    .cem-brief button[type=submit]:hover span { transform: translate(.12rem,-.12rem); }
}
@keyframes cem-contact-enter { from { transform: translateY(12px); opacity: .24; } to { transform: translateY(0); opacity: 1; } }
@keyframes cem-print-turn { from { transform: rotate(-22deg); } to { transform: rotate(8deg); } }
@media (max-width: 800px) {
    .cem-contact { grid-template-columns: 1fr; max-width: 42rem; gap: 1.5rem; padding-top: 6.4rem; }
    .cem-contact h1 em { display: inline; }
    .cem-print { display: none; }
    .cem-contact-kicker { margin-bottom: .8rem; }
    .cem-contact-copy { margin: .9rem 0 1rem; }
}
@media (max-width: 500px) {
    .cem-brief-row { grid-template-columns: 1fr; gap: 1.1rem; }
    .cem-contact h1 { font-size: clamp(2.75rem, 12vw, 3.7rem); }
    .cem-brief-end { align-items: flex-start; }
}
