Charleston Wedding Partners
Welcome to Charleston and Isle of Palms where dream vacations and unforgettable weddings come to life. Our handpicked properties, ranging from cozy seaside cottages to luxurious estates, offer the perfect backdrop for any occasion. Whether you're seeking a peaceful retreat or an elegant vacation rental, our accommodations provide both comfort and charm. For couples planning their special day, we’re proud to collaborate with an exclusive selection of top-tier wedding planners. These partners are known for their creativity, attention to detail, and seamless event coordination, ensuring that your wedding experience is as stress-free as it is magical. Let us help you create memories that will last a lifetime!
Finding the perfect beach house for your special day is essential.
Meet our Preferred Wedding Planners and Partners
IOP Escapes, LLC 103 Palm Blvd Suite 3-E
Isle of Palms, SC 29451
© 2026 IOP Escapes
IOP Escapes, LLC takes your privacy very seriously and will not share your personal information with any other party, including, but not limited to, automatically gathered data such as e-mail addresses, browser cookies and IP addresses, as well as any information submitted via an electronic form such as name, address, and phone number. If you believe that your information has been compromised in any way by your use of this website, please contact us immediately. We will work to resolve the problem as quickly as possible.
/* ── IOP Escapes Brand Tokens ── */ :root { --iop-navy: #1E3C4D; --iop-seafoam: #98C8A5; --iop-coastal: #64A9C4; --iop-mist: #F2F2F2; --iop-peach: #E6A05E; --iop-teal: #197A7C; --iop-white: #ffffff; --iop-text: #1a2a33; --iop-subtext: #4a6472; --iop-border: #d4e4ec; --iop-bubble-bot: #EDF5F8; } * { box-sizing: border-box; } /* ── Bubble button ── */ #iop-bubble { position: fixed; bottom: 24px; right: 24px; width: 62px; height: 62px; border-radius: 50%; background: var(--iop-navy); color: var(--iop-white); border: 3px solid var(--iop-seafoam); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 20px rgba(30,60,77,0.35); z-index: 99999; transition: transform 0.18s, background 0.18s; font-family: 'Work Sans', sans-serif; } #iop-bubble:hover { background: #162d3b; transform: scale(1.07); } #iop-bubble svg { width: 26px; height: 26px; } #iop-notif { position: absolute; top: -3px; right: -3px; background: var(--iop-peach); color: #fff; font-size: 10px; font-weight: 700; width: 18px; height: 18px; border-radius: 50%; display: none; align-items: center; justify-content: center; font-family: 'Work Sans', sans-serif; } /* ── Chat Panel ── */ #iop-panel { position: fixed; bottom: 100px; right: 24px; width: 375px; max-height: 580px; background: var(--iop-white); border-radius: 18px; box-shadow: 0 10px 48px rgba(30,60,77,0.22); display: flex; flex-direction: column; z-index: 99998; overflow: hidden; transform: scale(0.9) translateY(20px); opacity: 0; pointer-events: none; transition: transform 0.22s cubic-bezier(.34,1.4,.64,1), opacity 0.2s; font-family: 'Work Sans', sans-serif; } #iop-panel.iop-open { transform: scale(1) translateY(0); opacity: 1; pointer-events: all; } /* Header */ #iop-header { background: var(--iop-navy); padding: 14px 16px 12px; display: flex; align-items: center; gap: 11px; flex-shrink: 0; border-bottom: 3px solid var(--iop-seafoam); } #iop-logo-circle { width: 40px; height: 40px; border-radius: 50%; background: var(--iop-seafoam); display: flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; } #iop-header-text { flex: 1; } #iop-header-text strong { font-family: 'Playfair Display', Georgia, serif; font-size: 14.5px; color: var(--iop-white); display: block; letter-spacing: 0.01em; } #iop-header-text span { font-family: 'Montserrat', sans-serif; font-size: 10px; color: var(--iop-seafoam); letter-spacing: 0.06em; text-transform: uppercase; } #iop-close-btn { background: none; border: none; color: rgba(255,255,255,0.6); cursor: pointer; padding: 4px; display: flex; align-items: center; border-radius: 6px; transition: color 0.15s; } #iop-close-btn:hover { color: #fff; } /* Quick chips */ #iop-chips { padding: 10px 12px 8px; display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--iop-border); flex-shrink: 0; background: #fafcfd; } .iop-chip { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.03em; padding: 5px 11px; border: 1.5px solid var(--iop-coastal); color: var(--iop-navy); background: #EDF7FB; border-radius: 20px; cursor: pointer; transition: background 0.12s, border-color 0.12s; white-space: nowrap; } .iop-chip:hover { background: #d4eef8; border-color: var(--iop-navy); } /* Messages */ #iop-messages { flex: 1; overflow-y: auto; padding: 14px 13px; display: flex; flex-direction: column; gap: 11px; min-height: 0; background: var(--iop-white); } #iop-messages::-webkit-scrollbar { width: 5px; } #iop-messages::-webkit-scrollbar-thumb { background: var(--iop-border); border-radius: 3px; } .iop-row { display: flex; gap: 8px; align-items: flex-end; } .iop-row.iop-user { flex-direction: row-reverse; } .iop-avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--iop-seafoam); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; } .iop-bubble { max-width: 80%; padding: 9px 13px; border-radius: 16px; font-size: 13.5px; line-height: 1.55; color: var(--iop-text); } .iop-row.iop-bot .iop-bubble { background: var(--iop-bubble-bot); border-bottom-left-radius: 4px; border: 1px solid var(--iop-border); } .iop-row.iop-user .iop-bubble { background: var(--iop-navy); color: var(--iop-white); border-bottom-right-radius: 4px; } /* Typing indicator */ .iop-typing { display: flex; gap: 5px; align-items: center; padding: 10px 14px; } .iop-typing span { width: 7px; height: 7px; background: var(--iop-coastal); border-radius: 50%; animation: iopbounce 1.2s infinite; } .iop-typing span:nth-child(2) { animation-delay: 0.2s; } .iop-typing span:nth-child(3) { animation-delay: 0.4s; } @keyframes iopbounce { 0%,60%,100% { transform: translateY(0); opacity: 0.6; } 30% { transform: translateY(-6px); opacity: 1; } } /* Availability result card */ .iop-result-card { background: var(--iop-white); border: 1.5px solid var(--iop-coastal); border-radius: 10px; padding: 10px 13px; margin-top: 4px; font-size: 13px; } .iop-result-card .iop-card-title { font-family: 'Playfair Display', Georgia, serif; font-size: 14px; color: var(--iop-navy); font-weight: 700; margin-bottom: 5px; } .iop-result-card .iop-card-price { font-family: 'Montserrat', sans-serif; font-size: 17px; font-weight: 700; color: var(--iop-teal); } .iop-result-card .iop-card-sub { font-size: 11.5px; color: var(--iop-subtext); margin-top: 2px; } .iop-avail-yes { color: var(--iop-teal); font-weight: 600; } .iop-avail-no { color: #c0392b; font-weight: 600; } /* Input bar */ #iop-inputbar { display: flex; align-items: flex-end; gap: 8px; padding: 9px 11px 12px; border-top: 1px solid var(--iop-border); background: #fafcfd; flex-shrink: 0; } #iop-input { flex: 1; border: 1.5px solid var(--iop-border); border-radius: 22px; padding: 8px 14px; font-size: 13px; font-family: 'Work Sans', sans-serif; outline: none; resize: none; line-height: 1.4; max-height: 88px; overflow-y: auto; color: var(--iop-text); background: var(--iop-white); transition: border-color 0.15s; } #iop-input:focus { border-color: var(--iop-coastal); } #iop-input::placeholder { color: #9ab4c0; } #iop-sendbtn { width: 40px; height: 40px; background: var(--iop-navy); color: var(--iop-white); border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background 0.15s, transform 0.1s; } #iop-sendbtn:hover { background: var(--iop-teal); } #iop-sendbtn:active { transform: scale(0.93); } #iop-sendbtn:disabled { background: #b0cdd8; cursor: default; } /* ── Setup Overlay ── */ #iop-setup { position: absolute; inset: 0; background: var(--iop-white); z-index: 20; display: flex; flex-direction: column; overflow-y: auto; } .iop-setup-head { background: var(--iop-navy); padding: 14px 16px; color: var(--iop-white); font-family: 'Playfair Display', Georgia, serif; font-size: 15px; border-bottom: 3px solid var(--iop-seafoam); flex-shrink: 0; } .iop-setup-body { padding: 18px 16px; } .iop-setup-body h3 { font-family: 'Playfair Display', Georgia, serif; font-size: 16px; color: var(--iop-navy); margin-bottom: 6px; } .iop-setup-body p { font-size: 12px; color: var(--iop-subtext); line-height: 1.6; margin-bottom: 14px; } .iop-field { margin-bottom: 11px; } .iop-field label { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--iop-navy); display: block; margin-bottom: 4px; } .iop-field input, .iop-field textarea { width: 100%; border: 1.5px solid var(--iop-border); border-radius: 8px; padding: 8px 11px; font-size: 12.5px; font-family: 'Work Sans', sans-serif; color: var(--iop-text); outline: none; transition: border-color 0.15s; } .iop-field input:focus, .iop-field textarea:focus { border-color: var(--iop-coastal); } .iop-field textarea { resize: vertical; min-height: 70px; } .iop-save { width: 100%; background: var(--iop-navy); color: var(--iop-white); border: none; border-radius: 9px; padding: 11px; font-family: 'Montserrat', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 0.05em; cursor: pointer; margin-top: 6px; transition: background 0.15s; } .iop-save:hover { background: var(--iop-teal); } /* Powered-by footer */ #iop-footer { text-align: center; font-size: 10px; color: #9ab4c0; font-family: 'Montserrat', sans-serif; padding: 4px 0 6px; flex-shrink: 0; background: #fafcfd; letter-spacing: 0.03em; border-top: 1px solid var(--iop-border); } @media (max-width: 420px) { #iop-panel { right: 8px; left: 8px; width: auto; bottom: 88px; } #iop-bubble { right: 16px; bottom: 16px; } }