/* PTP profile presentation. Every global adjustment requires a successfully rendered v2 profile. */
body:has(.ptp-profile-v2) { background: #f6f8fb; }
body:has(.ptp-profile-v2) #title { max-width: 1240px; padding-bottom: 0 !important; margin-bottom: 0 !important; }
body:has(.ptp-profile-v2) #title > .row:has(h1) { display: none; }
body:has(.ptp-profile-v2) #title > .row:last-child { margin-top: 10px; font-size: 13px; }
body:has(.ptp-profile-v2) #title .breadcrumb { font-size: 12px; line-height: 1.7; }
body:has(.ptp-profile-v2) #main { max-width: 1240px; padding-top: 16px !important; }
body:has(.ptp-profile-v2) #main > .row { margin-inline: -12px; }
.ptp-profile-v2 { --ptp-ink: #18283b; --ptp-muted: #5b6c80; --ptp-blue: #0866ae; max-width: none; margin: 0; color: var(--ptp-ink); font-size: 15px; line-height: 1.7; }
.ptp-profile-v2 *, .ptp-profile-v2 *::before, .ptp-profile-v2 *::after { box-sizing: border-box; }
.ptp-profile-v2 svg { width: 20px; height: 20px; flex: 0 0 20px; }
.ptp-profile-v2 a { text-decoration: none; }
.ptp-profile-v2 .ptp-v2__hero { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 36px; border: 1px solid #dce5ef; border-radius: 20px; background: #fff; box-shadow: 0 8px 28px #16283c05; }
.ptp-v2__identity { display: flex; align-items: flex-start; gap: 24px; min-width: 0; }
.ptp-profile-v2 .ptp-v2__category { margin: 0 0 7px; color: #0866ae; font-size: 12px; font-weight: 650; line-height: 1.5; }
.ptp-profile-v2 .ptp-v2__name { margin: 0; font-size: clamp(28px, 3.2vw, 42px); line-height: 1.18; letter-spacing: -.035em; font-weight: 700; color: #18283b; overflow-wrap: anywhere; }
.ptp-profile-v2 .ptp-v2__location { display: flex; align-items: center; gap: 7px; margin: 12px 0 0; color: var(--ptp-muted); font-size: 14px; }
.ptp-v2__location svg { width: 16px; height: 16px; flex-basis: 16px; }
.ptp-profile-v2 .ptp-v2__modes { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 14px 0 0; list-style: none; }
.ptp-v2__modes li { display: flex; align-items: center; gap: 7px; padding: 4px 11px; border-radius: 6px; background: #eef7f5; color: #246657; font-size: 12px; font-weight: 550; }
.ptp-v2__modes li::before { content: ''; flex: 0 0 5px; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.ptp-v2__hero-contact { flex: 0 0 225px; text-align: center; }
.ptp-profile-v2 .ptp-v2__call { display: flex; justify-content: center; align-items: center; gap: 12px; padding: 13px 18px; min-height: 58px; border-radius: 10px; background: var(--ptp-blue); color: #fff; line-height: 1.35; font-size: 12px; text-align: left; transition: background .15s; }
.ptp-v2__call strong { display: block; font-size: 17px; margin-top: 3px; font-weight: 650; white-space: nowrap; }
.ptp-profile-v2 .ptp-v2__call:hover { background: #064f89; color: white; }
.ptp-profile-v2 .ptp-v2__contact-anchor { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 5px; color: #476078; font-size: 12px; }
.ptp-v2__layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 24px; margin-top: 24px; align-items: start; }
.ptp-v2__content { min-width: 0; display: grid; gap: 18px; }
.ptp-profile-v2 .ptp-company-profile__section { margin: 0; padding: 27px 30px; border: 1px solid #dfe6ee; border-radius: 14px; background: #fff; }
.ptp-profile-v2 .ptp-company-profile__section h2, .ptp-profile-v2 .ptp-v2__contact > h2 { font-size: 19px; line-height: 1.35; margin: 0 0 17px; font-weight: 650; letter-spacing: -.015em; color: #18283b; }
.ptp-profile-v2 .ptp-company-profile__description { color: #40546c; }
.ptp-profile-v2 .ptp-company-profile__description p { margin-top: 0; }
.ptp-profile-v2 .ptp-company-profile__services { gap: 10px; }
.ptp-profile-v2 .ptp-company-profile__services li { border: 1px solid #dfeaf4; background: #f1f7fc; color: #235677; padding: 7px 12px; border-radius: 7px; font-size: 13px; line-height: 1.5; }
.ptp-profile-v2 .ptp-csv-extra-services .ptp-company-profile__services { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 20px; }
.ptp-profile-v2 .ptp-csv-extra-services li { position: relative; border: 0; background: transparent; padding: 0 0 0 18px; border-radius: 0; color: #40546c; }
.ptp-profile-v2 .ptp-csv-extra-services li::before { content: '✓'; position: absolute; left: 0; color: #267361; font-weight: 650; }
.ptp-profile-v2 .ptp-v2__contact { position: sticky; top: 115px; padding: 26px; border: 1px solid #dfe6ee; border-radius: 14px; background: #fff; scroll-margin-top: 120px; min-width: 0; overflow-wrap: anywhere; }
.ptp-profile-v2 .ptp-v2__contact > h2 { font-size: 17px; }
.ptp-profile-v2 .ptp-v2__phone-number { display: flex; gap: 10px; align-items: center; color: #0866ae; font-size: 17px; font-weight: 650; min-height: 44px; margin: -3px 0 6px; }
.ptp-profile-v2 .ptp-v2__contact .ptp-company-profile__section { border: 0; border-top: 1px solid #e7edf3; border-radius: 0; padding: 20px 0 0; margin: 18px 0 0; font-size: 13px; line-height: 1.75; color: #52667c; }
.ptp-profile-v2 .ptp-v2__contact .ptp-company-profile__section h2 { font-size: 13px; margin-bottom: 9px; color: #31475e; }
.ptp-v2__contact strong { color: #293f56; font-weight: 600; }
.ptp-profile-v2 .ptp-v2__directions { display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 15px; padding: 10px 12px; min-height: 44px; border: 1px solid #c9dce9; border-radius: 8px; color: #0866ae; font-weight: 600; font-size: 13px; }
.ptp-profile-v2 .ptp-v2__directions:hover { background: #eff6fc; }
.ptp-profile-v2 .ptp-v2__contact-city { margin: 14px 0 0; color: #52667c; font-size: 14px; }
.ptp-profile-v2 .ptp-v2__website .ptp-company-profile__action { font-size: 13px; padding: 8px 12px; min-height: 44px; width: 100%; margin-top: 7px; }
.ptp-profile-v2 .ptp-csv-gallery { overflow: hidden; }
.ptp-profile-v2 .ptp-csv-gallery img { border-radius: 8px; }
.ptp-profile-v2 .ptp-v2__photo .ptp-company-profile__media { max-height: 360px; }
.ptp-profile-v2 a:focus-visible { outline: 3px solid #389ddd; outline-offset: 4px; }
@media (max-width: 900px) {
 .ptp-profile-v2 .ptp-v2__hero { padding: 26px; gap: 22px; }
 .ptp-v2__identity { gap: 16px; }
 .ptp-v2__layout { grid-template-columns: minmax(0,1fr) 290px; gap: 18px; }
}
@media (max-width: 700px) {
 body:has(.ptp-profile-v2) #title { padding-inline: 18px; }
 body:has(.ptp-profile-v2) #main { padding-inline: 18px; }
 .ptp-profile-v2 .ptp-v2__hero { display: block; padding: 24px 20px; border-radius: 14px; }
 .ptp-profile-v2 .ptp-v2__name { font-size: 30px; }
 .ptp-v2__hero-contact { margin-top: 22px; }
 .ptp-v2__layout { display: flex; flex-direction: column; gap: 18px; margin-top: 18px; }
 .ptp-v2__content { width: 100%; }
 .ptp-profile-v2 .ptp-v2__contact { order: -1; position: static; width: 100%; padding: 22px; }
 .ptp-profile-v2 .ptp-company-profile__section { padding: 23px 22px; }
 .ptp-profile-v2 .ptp-csv-extra-services .ptp-company-profile__services { grid-template-columns: 1fr; }
 .ptp-profile-v2 .ptp-v2__contact .ptp-company-profile__section { padding: 17px 0 0; }
}
@media (prefers-reduced-motion: reduce) { .ptp-profile-v2 * { transition: none !important; } }

.ptp-profile-v2 .ptp-v2__owner { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 20px 26px; margin-top: 20px; border: 1px solid #b8d9f0; border-radius: 12px; background: #eaf5ff; }
.ptp-profile-v2 .ptp-v2__owner-copy { min-width: 0; }
.ptp-profile-v2 .ptp-v2__owner-copy strong { display: block; color: #184d76; font-size: 16px; font-weight: 650; line-height: 1.5; }
.ptp-profile-v2 .ptp-v2__owner-copy p { margin: 4px 0 0; color: #476780; font-size: 13px; line-height: 1.5; }
.ptp-profile-v2 .ptp-v2__owner .geodir-claim-post-form-link { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 12px 20px; border-radius: 8px; border: 1px solid #0866ae; background: #0866ae; color: #fff; font-size: 14px; font-weight: 650; line-height: 1.4; text-align: center; }
.ptp-profile-v2 .ptp-v2__owner .geodir-claim-post-form-link:hover { background: #064f89; border-color: #064f89; }
.ptp-profile-v2 .ptp-v2__owner .geodir-claim-post-form-link:focus-visible { outline: 3px solid #389ddd; outline-offset: 4px; }
.ptp-v2__owner .wp-block-geodirectory-geodir-claim-widget-post-claim { flex: 0 0 auto; max-width: 100%; }
@media (max-width: 700px) {
 .ptp-profile-v2 .ptp-v2__owner { display: block; padding: 20px; margin-top: 16px; }
 .ptp-profile-v2 .ptp-v2__owner .geodir-claim-post-form-link { width: 100%; margin-top: 14px; }
 .ptp-profile-v2 .ptp-v2__owner .wp-block-geodirectory-geodir-claim-widget-post-claim,
 .ptp-profile-v2 .ptp-v2__owner .geodir-post-claim,
 .ptp-profile-v2 .ptp-v2__owner .gd-post-claim-wrap { width: 100%; }
}

/* Native profiles retain the permitted gallery and interactive native panels. */
body:has(.ptp-native-layout) .ptp-no-company-image { display: none; }
body:has(.ptp-native-layout) #title .wp-block-geodirectory-geodir-widget-post-address,
body:has(.ptp-native-layout) #title p:has(a[href="#post_map"]) { display: none; }
.ptp-native-layout .ptp-company-profile__services a { color: inherit; }
.ptp-native-details { display: grid; gap: 22px; margin-top: 24px; }
.ptp-native-panel { padding: 26px; border: 1px solid #dfe6ee; border-radius: 14px; background: #fff; min-width: 0; }
.ptp-native-panel > [role="tabpanel"] { margin-bottom: 0 !important; }
.ptp-native-panel .gd-tab-list-title { font-size: 19px; margin-bottom: 18px; }
@media (max-width: 700px) { .ptp-native-panel { padding: 20px; } }

/* Independent of the retired Core presentation stylesheet. */
.ptp-profile-v2 .ptp-company-profile__services { display:flex; flex-wrap:wrap; margin:0; padding:0; list-style:none; }
.ptp-profile-v2 .ptp-company-profile__description > :last-child { margin-bottom:0; }
.ptp-profile-v2 #post_content, .ptp-native-details #reviews { scroll-margin-top:115px; }
.ptp-profile-v2 .ptp-native-contact-fields .geodir_post_meta { margin-bottom:10px; }
.ptp-profile-v2 .ptp-native-contact-fields a { overflow-wrap:anywhere; }
.ptp-native-panel form input:not([type=checkbox]):not([type=radio]), .ptp-native-panel form textarea { max-width:100%; }

.ptp-contact-message{background:#fff;border:1px solid #dfe5eb;border-radius:16px;scroll-margin-top:130px;margin:24px 0}
.ptp-contact-message>summary{font-size:20px;font-weight:700;padding:24px;cursor:pointer;color:#155575}
.ptp-contact-message__body{padding:0 24px 24px;max-width:800px}
.ptp-contact-message__body .wpforms-container{margin:20px 0}
.ptp-contact-message__privacy{font-size:14px;margin-top:16px}
.ptp-contact-message-link{display:inline-block;padding:10px 0;font-weight:700}
@media(max-width:600px){.ptp-contact-message__body{padding:0 16px 20px}.ptp-contact-message>summary{padding:20px 16px}.ptp-contact-message input,.ptp-contact-message textarea{max-width:100%;box-sizing:border-box}}

/* Optional native logo: independent from the gallery allowance. */
.ptp-v2__logo { flex: 0 0 88px; width: 88px; height: 88px; padding: 6px; border: 1px solid #e2e9f0; border-radius: 12px; background: #fff; overflow: hidden; }
.ptp-v2__logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ptp-v2__identity > div:last-child { min-width: 0; }
@media (max-width: 700px) { .ptp-v2__logo { flex-basis: 64px; width: 64px; height: 64px; } }
