/* Young & Blissful - single listing (image10 redesign). Scoped to .ynb-single. */
.ynb-single {
	--ynb-cream: #faf7f0;
	--ynb-white: #ffffff;
	--ynb-green: #1e6b3f;
	--ynb-green-dark: #155030;
	--ynb-green-ink: #1d5f39;
	--ynb-sage: #e8f0e7;
	--ynb-sage-2: #d3e3d1;
	--ynb-gold: #a8771f;
	--ynb-gold-bg: #fbf3e0;
	--ynb-ink: #1f2a24;
	--ynb-muted: #4f5b54;
	--ynb-line: #e3e7df;
	--ynb-radius: 14px;
	--ynb-shadow: 0 1px 2px rgba(31, 42, 36, .04), 0 4px 16px rgba(31, 42, 36, .04);
	background: var(--ynb-cream);
	color: var(--ynb-ink);
	font-size: 17px;
	line-height: 1.6;
	width: 100%;
}
.ynb-single *, .ynb-single *::before, .ynb-single *::after { box-sizing: border-box; }
.ynb-single .ynb-wrap { max-width: 920px; margin: 0 auto; padding: 0 20px; }
.ynb-single .ynb-wrap--wide { max-width: 1240px; }
.ynb-single .ynb-ico { flex: none; display: inline-block; vertical-align: middle; }
.ynb-single a { text-decoration: none; }
.ynb-single a:focus-visible, .ynb-single button:focus-visible, .ynb-single summary:focus-visible,
.ynb-single input:focus-visible, .ynb-single textarea:focus-visible {
	outline: 3px solid #8fb79a; outline-offset: 2px;
}

/* ---------- Hero / header ---------- */
.ynb-single__hero { background: var(--ynb-white); border-bottom: 1px solid var(--ynb-line); padding: 28px 0 26px; }
.ynb-owner-bar { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; margin-bottom: 14px; }
.ynb-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px 28px; }
.ynb-head__main { display: flex; gap: 18px; align-items: flex-start; min-width: 0; flex: 1 1 auto; }
.ynb-head__logo { width: 72px; height: 72px; object-fit: contain; border-radius: 12px; border: 1px solid var(--ynb-line); background: #fff; padding: 6px; flex: none; }
.ynb-head__text { min-width: 0; }
.ynb-single .ynb-head__title { font-size: 32px; line-height: 1.2; font-weight: 700; margin: 0 0 10px; color: var(--ynb-ink); letter-spacing: -.01em; overflow-wrap: anywhere; }
.ynb-head__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; color: var(--ynb-muted); font-size: 16px; }
.ynb-meta { display: inline-flex; align-items: center; gap: 6px; color: var(--ynb-muted); }
.ynb-meta .ynb-ico { width: 18px; height: 18px; color: var(--ynb-green); }
.ynb-single .ynb-meta--rating { color: var(--ynb-ink); font-weight: 600; }
.ynb-meta--rating span { font-weight: 400; color: var(--ynb-muted); }
.ynb-meta--rating .ynb-ico { color: var(--ynb-gold); fill: var(--ynb-gold); }
.ynb-pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; background: var(--ynb-sage); color: var(--ynb-green-ink); font-size: 15px; font-weight: 600; line-height: 1.3; }
.ynb-pill .ynb-ico { width: 16px; height: 16px; }
.ynb-pill--verified { background: var(--ynb-gold-bg); color: #6b4a0f; border: 1px solid #ecd9a8; }
.ynb-pill--verified .ynb-ico { color: var(--ynb-gold); }
.ynb-pills { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; }
.ynb-head__after-title .directorist-claimed { display: inline-flex; position: relative; }
.ynb-head__after-title .directorist-claimed--badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; background: var(--ynb-sage); color: var(--ynb-green-ink); font-size: 15px; font-weight: 600; }
.ynb-head__after-title .directorist-claimed--badge .directorist-icon-mask::after { background-color: var(--ynb-green); }
.ynb-head__after-title .directorist-claimed--tooltip { display: none; }

/* Bookmark / Share / Report (Directorist quick actions) */
.ynb-single .ynb-head__actions { flex: 0 0 auto; width: auto; display: block; }
.ynb-head__actions .directorist-listing-single__quick-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.ynb-single .ynb-head__actions .directorist-single-listing-action,
.ynb-single .ynb-head__actions .directorist-btn {
	display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 16px; margin: 0;
	background: #fff !important; color: var(--ynb-ink) !important; border: 1px solid #cfd6cc !important; border-radius: 10px;
	font-size: 16px; font-weight: 600; box-shadow: none; position: relative; cursor: pointer;
}
.ynb-single .ynb-head__actions .directorist-single-listing-action:hover { border-color: var(--ynb-green) !important; background: var(--ynb-sage) !important; }
.ynb-single .ynb-head__actions .directorist-icon-mask::after { background-color: var(--ynb-green) !important; width: 18px; height: 18px; }
.ynb-single .ynb-head__actions .directorist-single-listing-action > span { color: inherit; }
.ynb-single .ynb-head__actions .directorist-social-share-links { z-index: 30; list-style: none; margin: 0; padding: 6px 0; width: 170px; }
.ynb-single .ynb-head__actions .directorist-social-share:focus-within .directorist-social-share-links { opacity: 1; visibility: visible; top: calc(100% + 5px); }
.ynb-single .ynb-head__actions .directorist-social-share-links li { margin: 0; }
.ynb-single .ynb-head__actions .directorist-social-share-links a { display: flex; align-items: center; gap: 10px; padding: 8px 14px; color: var(--ynb-ink); font-size: 16px; font-weight: 500; }
.ynb-single .ynb-head__actions .directorist-social-share-links a:hover { background: var(--ynb-sage); }

/* ---------- Body / cards ---------- */
.ynb-single__body { padding: 28px 0 48px; }
.ynb-stack { display: flex; flex-direction: column; gap: 20px; }
.ynb-card {
	background: var(--ynb-white); border: 1px solid var(--ynb-line); border-radius: var(--ynb-radius);
	box-shadow: var(--ynb-shadow); padding: 26px 30px 28px; margin: 0; min-width: 0;
}
.ynb-card__head { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; flex-wrap: nowrap; }
.ynb-card__icon { width: 40px; height: 40px; border-radius: 50%; background: var(--ynb-sage); color: var(--ynb-green); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.ynb-card__icon .ynb-ico { width: 20px; height: 20px; }
.ynb-single .ynb-card__title { font-size: 21px; line-height: 1.3; font-weight: 700; margin: 0; color: var(--ynb-ink); flex: 1 1 auto; min-width: 0; }
.ynb-single .ynb-head-link { flex: none; font-size: 16px; font-weight: 600; color: var(--ynb-green); text-decoration: underline; text-underline-offset: 3px; }

.ynb-rows { margin: 0; padding: 0; }
.ynb-rows + .ynb-rows, .ynb-sub + .ynb-rows, .ynb-rows + .ynb-sub, .ynb-ticks + .ynb-rows { margin-top: 14px; }
.ynb-row { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 4px 20px; padding: 9px 0; align-items: baseline; }
.ynb-row__label { font-size: 15px; font-weight: 600; color: var(--ynb-muted); margin: 0; }
.ynb-row__value { margin: 0; font-size: 17px; color: var(--ynb-ink); overflow-wrap: anywhere; }
.ynb-row--action { align-items: center; }
.ynb-single .ynb-link { color: var(--ynb-green); text-decoration: underline; text-decoration-color: rgba(30, 107, 63, .35); text-underline-offset: 3px; }
.ynb-single .ynb-link:hover { text-decoration-color: currentColor; }
.ynb-single .ynb-link-quiet { color: var(--ynb-ink); text-decoration: underline; text-decoration-color: var(--ynb-line); text-underline-offset: 3px; }
.ynb-strong { font-weight: 700; }
.ynb-break { word-break: break-word; }
.ynb-muted { color: var(--ynb-muted); }
.ynb-note { margin: 14px 0 0; padding: 12px 16px; border-radius: 10px; background: var(--ynb-sage); color: var(--ynb-green-ink); font-size: 16px; }

.ynb-socials { display: inline-flex; gap: 10px; flex-wrap: wrap; }
.ynb-single .ynb-social { width: 40px; height: 40px; border-radius: 10px; background: var(--ynb-green); display: inline-flex; align-items: center; justify-content: center; }
.ynb-single .ynb-social .directorist-icon-mask::after { background-color: #fff; width: 18px; height: 18px; }
.ynb-single .ynb-social:hover { background: var(--ynb-green-dark); }

/* Buttons */
.ynb-single .ynb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 20px;
	border-radius: 10px; font-size: 16px; font-weight: 700; line-height: 1.2; border: 1px solid transparent; cursor: pointer; text-decoration: none;
}
.ynb-single .ynb-btn .ynb-ico { width: 18px; height: 18px; }
.ynb-single .ynb-btn--primary { background: var(--ynb-green) !important; border-color: var(--ynb-green) !important; color: #fff !important; }
.ynb-single .ynb-btn--primary:hover { background: var(--ynb-green-dark) !important; border-color: var(--ynb-green-dark) !important; }
.ynb-single .ynb-btn--ghost { background: #fff; border-color: #cfd6cc; color: var(--ynb-ink); }
.ynb-single .ynb-btn--ghost:hover { border-color: var(--ynb-green); background: var(--ynb-sage); }
.ynb-single .ynb-btn--lg { min-height: 52px; padding: 0 28px; font-size: 17px; }

/* Sub-sections, tags, ticks */
.ynb-sub { margin-top: 16px; }
.ynb-sub:first-child { margin-top: 0; }
.ynb-single .ynb-sub__title { font-size: 15px; font-weight: 700; color: var(--ynb-muted); margin: 0 0 10px; letter-spacing: .01em; }
.ynb-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 0; padding: 0; }
.ynb-single .ynb-tag { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--ynb-sage); color: var(--ynb-green-ink); font-size: 15px; font-weight: 600; line-height: 1.35; }
.ynb-single .ynb-tag:hover { background: var(--ynb-sage-2); }
.ynb-more { margin-top: 10px; }
.ynb-more > summary { cursor: pointer; color: var(--ynb-green); font-weight: 700; font-size: 16px; padding: 6px 0; list-style: none; }
.ynb-more > summary::-webkit-details-marker { display: none; }
.ynb-more > summary::before { content: "+ "; }
.ynb-more[open] > summary::before { content: "\2212  "; }
.ynb-more[open] > .ynb-tags { margin-top: 8px; }
.ynb-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ynb-ticks li { display: flex; gap: 10px; align-items: flex-start; font-size: 17px; }
.ynb-ticks .ynb-ico { width: 20px; height: 20px; color: var(--ynb-green); margin-top: 3px; }
.ynb-ticks--grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px 20px; }

/* Prose */
.ynb-prose { font-size: 17px; line-height: 1.7; color: var(--ynb-ink); }
.ynb-prose p { margin: 0 0 14px; }
.ynb-prose > *:last-child, .ynb-desc > *:last-child { margin-bottom: 0; }
.ynb-prose .ynb-sub__title { margin-top: 18px; }
.ynb-desc { position: relative; }
.ynb-desc.is-clamped { max-height: 15em; overflow: hidden; }
.ynb-desc.is-clamped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4em; background: linear-gradient(rgba(255, 255, 255, 0), #fff); }
.ynb-single .ynb-readmore { margin-top: 10px; background: none; border: 0; padding: 6px 0; color: var(--ynb-green); font-weight: 700; font-size: 16px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* Photos */
.ynb-photos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.ynb-photos a { display: block; border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--ynb-sage); }
.ynb-photos img { width: 100%; height: 100%; object-fit: cover; display: block; max-width: 100%; }

/* Business Hours (Directorist add-on markup inside our card) */
.ynb-card--hours .directorist-single-info__label-icon, .ynb-card--hours .directorist-bh-module__title { display: none; }
.ynb-card--hours * { font-size: 16px; }
.ynb-card--hours [class*="--open"], .ynb-card--hours .directorist-open-24-7, .ynb-card--hours [class*="open-24"] { background: var(--ynb-sage) !important; color: var(--ynb-green-ink) !important; border-color: var(--ynb-sage-2) !important; }
.ynb-card--hours .directorist-bh-schedule-247 { background: var(--ynb-sage) !important; color: var(--ynb-green-ink) !important; border-radius: 10px; padding: 12px 16px; font-weight: 600; text-align: left; margin: 12px 0 0; }
.ynb-card--hours [class*="--close"] { background: #f3f1ec !important; color: var(--ynb-muted) !important; }
.ynb-card--hours .directorist-icon-mask::after { background-color: var(--ynb-green) !important; }

/* Leftover builder fields rendered with Directorist templates */
.ynb-card--legacy .directorist-single-info { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 4px 20px; padding: 8px 0; }
.ynb-card--legacy .directorist-single-info__label-icon { display: none; }
.ynb-card--legacy .directorist-single-info__label { font-size: 15px; font-weight: 600; color: var(--ynb-muted); }

/* ---------- Claim card (markup owned by the claim template) ---------- */
.ynb-claim > * { margin: 0 !important; }

/* ---------- Contact This Provider ---------- */
.ynb-contact__intro { margin: 0 0 18px; color: var(--ynb-muted); font-size: 16px; }
.ynb-single .ynb-form .ynb-field { margin: 0 0 16px; }
.ynb-single .ynb-form label { display: block; font-size: 16px; font-weight: 600; color: var(--ynb-ink); margin: 0 0 6px; }
.ynb-single .ynb-form .directorist-form-element {
	width: 100%; min-height: 50px; padding: 12px 14px; font-size: 17px; line-height: 1.4; color: var(--ynb-ink);
	background: #fff; border: 1px solid #c9d1c6 !important; border-radius: 10px; box-shadow: none;
}
.ynb-single .ynb-form textarea.directorist-form-element { min-height: 140px; resize: vertical; }
.ynb-single .ynb-form .directorist-form-element::placeholder { color: #6d7871; opacity: 1; }
.ynb-single .ynb-form .directorist-form-element:focus { border-color: var(--ynb-green) !important; box-shadow: 0 0 0 3px rgba(30, 107, 63, .15); outline: none; }
.ynb-contact .directorist-contact-message-display { margin: 0; }
.ynb-contact .directorist-contact-message-display:empty { display: none; }
.ynb-contact .directorist-contact-message-display .directorist-alert, .ynb-contact__confirm {
	margin: 0 0 16px; padding: 14px 16px; border-radius: 10px; font-size: 16px; line-height: 1.5;
}
.ynb-contact .directorist-alert-success, .ynb-contact__confirm { background: var(--ynb-sage) !important; color: var(--ynb-green-ink) !important; border: 1px solid var(--ynb-sage-2); }
.ynb-contact__confirm.is-error, .ynb-contact .directorist-alert-danger { background: #fbeceb !important; color: #8a2a22 !important; border: 1px solid #f1c9c5; }
.ynb-contact__privacy { margin: 14px 0 0; font-size: 15px; color: var(--ynb-muted); }
.ynb-single .ynb-contact .directorist-btn-submit { width: auto; }

/* ---------- Reviews (Directorist review template) ---------- */
.ynb-reviews .directorist-review-container { margin: 0; }
.ynb-reviews .directorist-card {
	background: var(--ynb-white) !important; border: 1px solid var(--ynb-line) !important; border-radius: var(--ynb-radius) !important;
	box-shadow: var(--ynb-shadow) !important; margin: 0 0 20px !important; overflow: hidden;
}
.ynb-reviews .directorist-review-container > .directorist-card:last-child, .ynb-reviews .directorist-review-container > *:last-child { margin-bottom: 0 !important; }
.ynb-reviews .directorist-card__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 22px 30px !important; border-bottom: 1px solid var(--ynb-line) !important; background: #fff !important; }
.ynb-single .ynb-reviews .directorist-card__header__title { font-size: 21px !important; font-weight: 700 !important; color: var(--ynb-ink) !important; margin: 0; display: flex; align-items: center; gap: 14px; }
.ynb-single .ynb-reviews .directorist-card__header-text, .ynb-single .ynb-reviews #reply-title { font-size: 21px !important; font-weight: 700 !important; color: var(--ynb-ink) !important; }
.ynb-reviews .directorist-card__header-icon { width: 40px; height: 40px; border-radius: 50%; background: var(--ynb-sage) !important; display: inline-flex; align-items: center; justify-content: center; }
.ynb-reviews .directorist-card__header-icon .directorist-icon-mask::after { background-color: var(--ynb-green) !important; }
.ynb-single .ynb-reviews .directorist-card__header .directorist-btn { background: #fff !important; color: var(--ynb-ink) !important; border: 1px solid #cfd6cc !important; min-height: 44px; padding: 0 16px; border-radius: 10px; font-size: 16px; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; }
.ynb-single .ynb-reviews .directorist-card__header .directorist-btn:hover { background: var(--ynb-sage) !important; border-color: var(--ynb-green) !important; }
.ynb-single .ynb-reviews .directorist-card__header .directorist-btn .directorist-icon-mask::after { background-color: var(--ynb-green) !important; }
.ynb-reviews .directorist-card__body { padding: 20px 30px 24px !important; font-size: 16px; }
.ynb-reviews .directorist-noreviews { color: var(--ynb-muted); font-size: 16px; margin: 0; }
.ynb-reviews .comment-notes, .ynb-reviews .comment-notes * { color: var(--ynb-muted) !important; font-style: normal !important; font-size: 15px; }
.ynb-reviews .required { color: #8a2a22; }
.ynb-reviews label { font-size: 16px; color: var(--ynb-ink); }
.ynb-reviews input[type="text"], .ynb-reviews input[type="email"], .ynb-reviews input[type="url"], .ynb-reviews textarea {
	font-size: 17px !important; border: 1px solid #c9d1c6 !important; border-radius: 10px !important; padding: 12px 14px !important; min-height: 50px; color: var(--ynb-ink);
}
.ynb-single .ynb-reviews #submit, .ynb-single .ynb-reviews .form-submit .directorist-btn, .ynb-single .ynb-reviews button[type="submit"] {
	background: var(--ynb-green) !important; border-color: var(--ynb-green) !important; color: #fff !important; min-height: 50px; padding: 0 26px; border-radius: 10px; font-size: 17px; font-weight: 700;
}
.ynb-reviews .directorist-rating-point { background: var(--ynb-green) !important; color: #fff !important; }
.ynb-reviews .br-theme-fontawesome-stars .br-widget a.br-selected::after, .ynb-reviews .br-theme-fontawesome-stars .br-widget a.br-active::after { color: var(--ynb-gold) !important; }

/* ---------- Related listings ---------- */
.ynb-related { background: var(--ynb-cream); padding: 8px 0 56px; }
.ynb-single .ynb-related .directorist-related-listing-header__title { font-size: 24px; font-weight: 700; color: var(--ynb-ink); }

/* ---------- Mobile ---------- */
@media (max-width: 780px) {
	.ynb-single { font-size: 16px; }
	.ynb-single .ynb-wrap { padding: 0 16px; }
	.ynb-single__hero { padding: 20px 0; }
	.ynb-head { flex-direction: column; }
	.ynb-single .ynb-head__actions, .ynb-head__actions .directorist-listing-single__quick-actions { width: 100%; }
	.ynb-head__actions .directorist-listing-single__quick-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
	.ynb-single .ynb-head__actions .directorist-single-listing-action { justify-content: center; padding: 0 8px; font-size: 15px !important; width: 100%; }
	.ynb-single .ynb-head__actions .directorist-social-share-links { right: auto; left: 50%; transform: translateX(-50%); }
	.ynb-single .ynb-head__title { font-size: 26px; }
	.ynb-head__logo { width: 56px; height: 56px; }
	.ynb-single__body { padding: 18px 0 36px; }
	.ynb-stack { gap: 16px; }
	.ynb-card { padding: 20px 18px 22px; border-radius: 12px; }
	.ynb-single .ynb-card__title { font-size: 19px; }
	.ynb-row, .ynb-card--legacy .directorist-single-info { grid-template-columns: 1fr; gap: 2px; padding: 8px 0; }
	.ynb-row__value { font-size: 17px; }
	.ynb-single .ynb-btn, .ynb-single .ynb-contact .directorist-btn-submit { width: 100%; }
	.ynb-owner-bar { justify-content: stretch; }
	.ynb-owner-bar .ynb-btn { flex: 1 1 auto; }
	.ynb-ticks--grid { grid-template-columns: 1fr; }
	.ynb-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.ynb-reviews .directorist-card__header { padding: 18px !important; }
	.ynb-reviews .directorist-card__body { padding: 16px 18px 20px !important; }
	.ynb-single .ynb-reviews .directorist-card__header .directorist-btn { width: 100%; justify-content: center; }
	.ynb-single .ynb-reviews #submit { width: 100%; }
}
.ynb-single #ynb-contact-provider { scroll-margin-top: 90px; }
