/* Contact page: Elementor widgets (TWN Contact Header / Visual / Form).
   Tailwind sizes of the prototype, 1:1. Keep selectors at 3 classes or fewer so the Style-tab controls win. */

/* ---------- Grid (the page shell reuses .twn-about-page / .twn-about-inner) ---------- */
.elementor .twn-contact-grid.e-con { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; }
.elementor .twn-contact-grid.e-con>.elementor-widget { width: auto; min-width: 0; max-width: 100%; }
@media (min-width: 1024px) {
  .elementor .twn-contact-grid.e-con { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .elementor .twn-contact-grid.e-con>.elementor-widget-twn-contact-visual { grid-column: span 5 / span 5; }
  .elementor .twn-contact-grid.e-con>.elementor-widget-twn-contact-form { grid-column: span 7 / span 7; }
}

/* ---------- Header ---------- */
.twn-ch { text-align: center; max-width: 42rem; margin: 0 auto 3rem; font-family: 'Poppins', sans-serif; }
@media (min-width: 640px) { .twn-ch { margin-bottom: 3.5rem; } }
.twn-ch__eyebrow { display: block; font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .28em; color: #B89047; font-weight: 500; margin-bottom: .5rem; }
@media (min-width: 640px) { .twn-ch__eyebrow { font-size: .875rem; line-height: 1.25rem; } }
.twn-ch .twn-ch__title { margin: 0; font-family: 'Abril Fatface', Georgia, serif; font-weight: 400; font-size: 2.25rem; line-height: 2.5rem; color: #1A1A1A; letter-spacing: -.025em; }
@media (min-width: 640px) { .twn-ch .twn-ch__title { font-size: 3rem; line-height: 1; } }
@media (min-width: 1024px) { .twn-ch .twn-ch__title { font-size: 3.75rem; } }
.twn-ch__divider { display: flex; align-items: center; justify-content: center; gap: 1rem; margin: .75rem 0; --twn-line: rgb(201 169 106 / .7); }
.twn-ch__line { width: 4rem; height: 1px; }
@media (min-width: 640px) { .twn-ch__line { width: 5rem; } }
.twn-ch__line--l { background: linear-gradient(to right, transparent, var(--twn-line)); }
.twn-ch__line--r { background: linear-gradient(to left, transparent, var(--twn-line)); }
.twn-ch__star { color: #B89047; display: flex; }
.twn-ch__sparkle { width: .875rem; height: .875rem; display: block; }
.twn-ch__lede { margin: 0 auto; max-width: 36rem; font-size: .875rem; line-height: 1.625; color: #4A3E39; font-weight: 400; text-align: center; }
@media (min-width: 640px) { .twn-ch__lede { font-size: 1rem; } }

/* ---------- Visual ---------- */
.twn-cv { position: relative; display: flex; flex-direction: column; align-items: center; }
@media (min-width: 1024px) { .twn-cv { align-items: flex-end; } }
.twn-cv__inner { position: relative; isolation: isolate; width: 100%; max-width: 380px; }
@media (min-width: 640px) { .twn-cv__inner { max-width: 420px; } }
.twn-cv__panel { position: absolute; top: -1.5rem; left: -1.5rem; width: 100%; height: 95%; background: #F3ECE1; border-top-left-radius: 160px; border-bottom-right-radius: 1.5rem; z-index: -1; }
@media (min-width: 640px) { .twn-cv__panel { border-top-left-radius: 190px; } }
.twn-cv__contour { position: absolute; top: -1.75rem; left: -1.75rem; width: 100%; height: 92%; border-style: solid; border-width: 1px 0 0 1px; border-color: rgb(201 169 106 / .7); border-top-left-radius: 170px; pointer-events: none; }
@media (min-width: 640px) { .twn-cv__contour { border-top-left-radius: 200px; } }
.twn-cv__spark { position: absolute; top: 4rem; left: -.5rem; color: #B89047; display: flex; }
.twn-cv__sparkle { width: 1rem; height: 1rem; display: block; }
.twn-cv__photo { position: relative; width: 100%; aspect-ratio: 4 / 4.6; overflow: hidden; border-radius: 170px 170px .75rem .75rem; border: 1px solid rgb(201 169 106 / .3); box-shadow: 0 8px 30px rgb(0 0 0 / .06); background: #EAE2D5; }
@media (min-width: 640px) { .twn-cv__photo { aspect-ratio: 4 / 4.8; border-radius: 200px 200px .75rem .75rem; } }
.twn-cv__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; max-width: none; }
.twn-cv__leaf { display: none; position: absolute; right: -2rem; top: 25%; width: 7rem; height: 16rem; pointer-events: none; z-index: 10; color: #B89047; }
@media (min-width: 640px) { .twn-cv__leaf { display: block; right: -2.5rem; } }
.twn-cv__leaf svg { display: block; width: 100%; height: 100%; }
.twn-cv__pill { display: flex; align-items: center; gap: 1rem; width: 100%; margin-top: 1.5rem; background: #F5EDE1; border: 1px solid #E5DAC8; border-radius: 1rem; padding: 1rem; box-shadow: 0 1px 2px rgb(0 0 0 / .05); }
@media (min-width: 640px) { .twn-cv__pill { padding: 1.25rem; } }
.twn-cv__pill-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 2.5rem; height: 2.5rem; border-radius: 9999px; border: 1px solid #B89047; color: #B89047; background: #FAF7F2; }
.twn-cv__pill-sep { flex-shrink: 0; width: 1px; height: 2.25rem; background: rgb(201 169 106 / .4); }
.twn-cv__pill-text { display: flex; flex-direction: column; font-family: 'Poppins', sans-serif; }
.twn-cv__pill-a { font-size: .75rem; line-height: 1rem; font-weight: 500; color: #2E241E; }
.twn-cv__pill-b { font-size: .75rem; line-height: 1rem; color: #6B5A4E; font-weight: 400; }
@media (min-width: 640px) { .twn-cv__pill-a, .twn-cv__pill-b { font-size: 13px; } }

/* ---------- Form ---------- */
.twn-cf-card { background: #fff; border: 1px solid #EBDCC5; border-radius: 1.5rem; padding: 1.5rem; box-shadow: 0 8px 30px rgb(0 0 0 / .03); font-family: 'Poppins', sans-serif; }
@media (min-width: 640px) { .twn-cf-card { padding: 2.5rem; } }
@media (min-width: 1024px) { .twn-cf-card { padding: 3rem; } }
.twn-cf { --twn-focus: #C9A96A; }
.twn-cf__fields { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 1.25rem; column-gap: 1rem; }
@media (min-width: 640px) { .twn-cf__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1.5rem; column-gap: 1.5rem; } }
.twn-cf__field { grid-column: 1 / -1; min-width: 0; }
@media (min-width: 640px) { .twn-cf__field--half { grid-column: span 1; } }
.twn-cf__field label { display: block; font-size: 11px; line-height: 1rem; font-weight: 600; letter-spacing: .05em; color: #2E241E; text-transform: uppercase; margin-bottom: .5rem; }
.twn-cf__control { display: block; width: 100%; border-radius: .75rem; background: #fff; border: 1px solid #E5DAC8; font-size: .875rem; line-height: 1.25rem; color: #2E241E; font-family: inherit; transition: all .15s; -webkit-appearance: none; appearance: none; }
input.twn-cf__control, select.twn-cf__control { height: 3rem; padding: 0 1rem; }
textarea.twn-cf__control { padding: 1rem; resize: none; }
.twn-cf__control::placeholder { color: #B5A898; }
.twn-cf__control:focus { outline: none; box-shadow: 0 0 0 2px var(--twn-focus); border-color: transparent; }
.twn-cf__control.is-invalid { border-color: #c4553f; }
.twn-cf__control--select { padding-right: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23B89047' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; }
.twn-cf__error { margin: 1rem 0 0; font-size: .875rem; line-height: 1.25rem; color: #a9442f; }
.twn-cf__actions { margin-top: 1.5rem; }
.twn-cf__btn { display: inline-flex; align-items: center; gap: .625rem; background: #BA9355; color: #fff; font-weight: 500; font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .1em; padding: .875rem 2rem; border-radius: .75rem; box-shadow: 0 1px 2px rgb(0 0 0 / .05); transition: all .2s; cursor: pointer; border: 0; font-family: inherit; }
@media (min-width: 640px) { .twn-cf__btn { font-size: .875rem; line-height: 1.25rem; } }
.twn-cf__btn:hover { background: #A88245; }
.twn-cf__btn:active { transform: scale(.98); }
.twn-cf__btn:disabled { opacity: .7; cursor: default; }
.twn-cf__btn svg { display: block; flex-shrink: 0; }
.twn-cf__done { background: #FAF7F2; border: 1px solid #C9A96A; border-radius: 1rem; padding: 2rem; text-align: center; margin: 1.5rem 0; }
@media (min-width: 640px) { .twn-cf__done { padding: 3rem; } }
.twn-cf__done[hidden], .twn-cf[hidden] { display: none; }
.twn-cf__done-icon { display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 9999px; background: rgb(184 144 71 / .15); color: #B89047; margin: 0 auto 1rem; }
.twn-cf__done h3 { margin: 0 0 .5rem; font-family: 'Abril Fatface', Georgia, serif; font-weight: 400; font-size: 1.5rem; line-height: 2rem; color: #1A1A1A; }
.twn-cf__done p { margin: 0 auto; max-width: 28rem; font-size: .875rem; line-height: 1.625; color: #4A3E39; font-weight: 400; }
.twn-cf__done strong { font-weight: 600; }
