/* Juniper Dental demo: styles for Divi 5 sections built by build-pages.php.
   Brand: --brand-primary (teal #0F766E) / --brand-secondary (rose #FB7185).
   Visual language: friendly and soft. Mint and white sections, organic blob shapes, a rose "smile" curve under
   emphasised words, chunky rounded cards, a visit-reason picker, an emergency first-aid guide and a membership
   savings calculator. Fredoka headlines over Karla body copy. */

:root {
	--jnp-teal: var(--brand-primary);
	--jnp-rose: var(--brand-secondary);
	--jnp-rose-ink: #be123c;
	--jnp-deep: #0b4f4a;
	--jnp-mint: #ecfbf6;
	--jnp-mint2: #d2f3e8;
	--jnp-blush: #fff1f3;
	--jnp-ink: #0c2e2b;
	--jnp-muted: #4c625f;
	--jnp-line: #dcebe6;
	--jnp-display: "Fredoka", "Karla", Arial, sans-serif;
	--jnp-sans: "Karla", "Open Sans", Arial, sans-serif;
	--jnp-shadow: 0 30px 60px -36px rgba(12, 46, 43, .45);
	--jnp-blob: 42% 58% 63% 37% / 41% 44% 56% 59%;
	--jnp-smile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 16' preserveAspectRatio='none'%3E%3Cpath d='M3 4c30 13 64 13 94 0' fill='none' stroke='%23FB7185' stroke-width='4.5' stroke-linecap='round'/%3E%3C/svg%3E");
}
/* Header CTA: teal with white text (rose with teal text is too low-contrast). */
:root:root { --brand-cta-bg: #0F766E; --brand-cta-text: #fff; --brand-accent: #0F766E; }

.logo_container a::before, .logo_container a::after { font-family: var(--jnp-display); }
.logo_container a::before { border-radius: var(--jnp-blob); box-shadow: inset 0 -3px 0 var(--jnp-rose); }
.logo_container a::after { font-size: 21px; font-weight: 600; letter-spacing: -.01em; }
#top-menu li.csb-nav-cta > a { border-radius: 999px; }

/* ---------- Divi flex layout fixes (gap via --horizontal-gap-parent, wrap on small screens) ---------- */
.et_pb_section[class*="jnp-"] { padding: clamp(64px, 7vw, 104px) 0; background: #fff; gap: 44px; overflow: hidden; }
.et_pb_section[class*="jnp-"] .et_pb_row { width: min(1200px, calc(100% - 40px)); max-width: none; padding: 0; }
.jnp-row { --jnp-gap: 24px; column-gap: var(--jnp-gap) !important; row-gap: 24px !important; flex-wrap: wrap !important; }
.jnp-row > .et_pb_column { --horizontal-gap-parent: var(--jnp-gap); }
.jnp-split, .jnp-heading-row, .jnp-cta-row { --jnp-gap: clamp(28px, 5vw, 64px); }
.jnp-grid-3, .jnp-grid-4 { align-items: stretch !important; }
.jnp-checks, .jnp-hero-proof, .jnp-menu, .jnp-prices, .jnp-sos ol, .jnp-hours ul { list-style: none !important; padding: 0 !important; }

/* ---------- Section backgrounds ---------- */
.et_pb_section:is(.jnp-hero, .jnp-page-hero) { background: radial-gradient(ellipse 380px 300px at 92% 18%, var(--jnp-mint2) 0 99%, transparent 100%), radial-gradient(ellipse 200px 160px at 4% 92%, var(--jnp-blush) 0 99%, transparent 100%), var(--jnp-mint) !important; }
.et_pb_section.jnp-trust { padding: 32px 0 !important; border-bottom: 1px solid var(--jnp-line); }
.et_pb_section:is(.jnp-sos-sec, .jnp-promise) { background: var(--jnp-blush) !important; }
.et_pb_section:is(.jnp-comfort, .jnp-team, .jnp-plan-sec, .jnp-faq) { background: var(--jnp-mint) !important; }
.et_pb_section:is(.jnp-book, .jnp-contact) { background: linear-gradient(180deg, var(--jnp-mint), #fff) !important; }
.et_pb_section.jnp-numbers { background: var(--jnp-teal) !important; padding: 58px 0; }
.et_pb_section.jnp-cta { background: radial-gradient(ellipse 260px 220px at 100% 0%, rgba(251,113,133,.35) 0 99%, transparent 100%), linear-gradient(120deg, var(--jnp-deep), var(--jnp-teal)) !important; }

/* ---------- Base ---------- */
[class*="jnp-"] .et_pb_text_inner, [class*="jnp-"] .et_pb_code_inner { font-family: var(--jnp-sans); color: var(--jnp-muted); font-size: 18px; line-height: 1.65; }
[class*="jnp-"] h1, [class*="jnp-"] h2, [class*="jnp-"] h3 { font-family: var(--jnp-display); color: var(--jnp-ink); font-weight: 600; line-height: 1.08; padding-bottom: 0; letter-spacing: -.015em; }
[class*="jnp-"] h1 { font-size: clamp(46px, 5.6vw, 78px); margin-bottom: 22px; }
[class*="jnp-"] h2 { font-size: clamp(34px, 3.9vw, 54px); margin-bottom: 16px; }
[class*="jnp-"] h3 { font-size: 23px; line-height: 1.2; margin-bottom: 8px; }
[class*="jnp-"] :is(h1, h2) em { font-style: normal; color: var(--jnp-teal); padding-bottom: .12em; background: var(--jnp-smile) bottom / 100% .32em no-repeat; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
[class*="jnp-"] p { padding-bottom: 0; margin-bottom: 14px; }
[class*="jnp-"] a { color: var(--jnp-teal); }
.jnp-eyebrow { display: inline-flex !important; align-items: center; gap: 8px; padding: 6px 14px !important; border-radius: 999px; background: #fff; color: var(--jnp-teal) !important; font-family: var(--jnp-display); font-size: 14.5px !important; font-weight: 500; margin-bottom: 18px !important; box-shadow: 0 6px 16px -10px rgba(12,46,43,.4); }
.jnp-eyebrow::before { content: ""; width: 10px; height: 10px; border-radius: var(--jnp-blob); background: var(--jnp-rose); }
.jnp-lead { font-size: 20px !important; max-width: 620px; color: #3d5552 !important; }
.jnp-lead a { white-space: nowrap; }
.jnp-heading-row { align-items: flex-end; }
.jnp-heading h2 { margin-bottom: 0 !important; }
.jnp-heading-lead .jnp-lead { margin-bottom: 6px !important; }
.jnp-ico { width: 22px; height: 22px; flex: none; vertical-align: middle; }
.jnp-opt { font-weight: 400; color: #6b807d; }
.jnp-small { font-size: 14px !important; color: #6b807d !important; }

/* Buttons */
.jnp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 28px; border-radius: 999px; border: 0; background: var(--jnp-teal); color: #fff !important; font-family: var(--jnp-display); font-size: 17px; font-weight: 500; text-decoration: none; line-height: 1.2; cursor: pointer; box-shadow: 0 14px 26px -14px rgba(15,118,110,.9); transition: transform .2s, background .2s; }
.jnp-btn:hover { background: var(--jnp-deep); transform: translateY(-2px); }
.jnp-btn .jnp-ico { width: 18px; height: 18px; stroke-width: 2.2; }
.jnp-btn--rose { background: var(--jnp-rose); color: #3b0614 !important; box-shadow: 0 14px 26px -14px rgba(251,113,133,.9); }
.jnp-btn--rose:hover { background: #fda4af; }
.jnp-btn--ghost { background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.5); }
.jnp-btn--ghost:hover { background: rgba(255,255,255,.2); }
.jnp-btn--block { width: 100%; }
.jnp-link { display: inline-flex; align-items: center; gap: 8px; font-family: var(--jnp-display); font-weight: 500; font-size: 18px; color: var(--jnp-ink) !important; text-decoration: none; }
.jnp-link .jnp-ico { width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: #fff; color: var(--jnp-rose-ink); box-shadow: 0 6px 16px -8px rgba(12,46,43,.4); }

/* ---------- Hero ---------- */
.jnp-hero { padding-block: clamp(56px, 6vw, 92px) !important; }
.jnp-hero-row { align-items: center; }
.jnp-hero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin: 6px 0 30px; }
.jnp-hero-proof { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0 !important; }
.jnp-hero-proof li { display: flex; align-items: center; gap: 8px; font-size: 15.5px; color: var(--jnp-ink); font-weight: 700; }
.jnp-hero-proof .jnp-ico { width: 20px; height: 20px; color: var(--jnp-teal); }
.jnp-hero-proof li:first-child .jnp-ico { color: #f59e0b; }

/* Reason picker */
.jnp-picker { position: relative; padding: 26px; border-radius: 34px; background: #fff; box-shadow: var(--jnp-shadow); }
.jnp-picker::before { content: ""; position: absolute; z-index: -1; right: -26px; bottom: -26px; width: 160px; height: 160px; border-radius: var(--jnp-blob); background: var(--jnp-rose); opacity: .85; }
.jnp-picker-q { margin-bottom: 14px !important; font-family: var(--jnp-display); font-size: 22px; font-weight: 600; color: var(--jnp-ink) !important; }
.jnp-picks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.jnp-pick { position: relative; margin: 0; cursor: pointer; }
.jnp-pick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.jnp-pick span { display: grid; justify-items: center; gap: 6px; padding: 12px 6px; border-radius: 20px; background: var(--jnp-mint); text-align: center; font-weight: 700; font-size: 14.5px; line-height: 1.2; color: var(--jnp-ink); transition: all .15s; }
.jnp-pick .jnp-ico { width: 30px; height: 30px; color: var(--jnp-teal); }
.jnp-pick:hover span { background: var(--jnp-mint2); }
.jnp-pick input:checked + span { background: var(--jnp-teal); color: #fff; box-shadow: 0 12px 22px -12px rgba(15,118,110,.9); }
.jnp-pick input:checked + span .jnp-ico { color: #fff; }
.jnp-pick input:focus-visible + span { outline: 2px solid var(--jnp-rose); outline-offset: 2px; }
.jnp-reasons { margin-top: 18px; }
.jnp-reason { display: none; animation: jnp-in .35s ease both; }
.jnp-picker:has(input[value="checkup"]:checked) .jnp-reason--checkup, .jnp-picker:has(input[value="pain"]:checked) .jnp-reason--pain, .jnp-picker:has(input[value="whitening"]:checked) .jnp-reason--whitening,
.jnp-picker:has(input[value="aligners"]:checked) .jnp-reason--aligners, .jnp-picker:has(input[value="implants"]:checked) .jnp-reason--implants, .jnp-picker:has(input[value="kids"]:checked) .jnp-reason--kids { display: block; }
@keyframes jnp-in { from { opacity: 0; transform: translateY(8px); } }
.jnp-reason h3 { margin-bottom: 6px !important; }
.jnp-reason > p { font-size: 16.5px; }
.jnp-reason dl { display: grid; grid-template-columns: 1fr 1.6fr; gap: 10px; margin: 0 0 16px; }
.jnp-reason dl div { padding: 12px 14px; border-radius: 16px; background: var(--jnp-blush); }
.jnp-reason dt { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--jnp-rose-ink); }
.jnp-reason dt .jnp-ico { width: 15px; height: 15px; }
.jnp-reason dd { margin: 4px 0 0; font-size: 15px; line-height: 1.4; font-weight: 600; color: var(--jnp-ink); }

/* ---------- Trust bar ---------- */
.jnp-trust-item p { display: flex; gap: 14px; align-items: flex-start; margin: 0 !important; line-height: 1.4; font-size: 15px; }
.jnp-trust-item .jnp-ico { width: 48px; height: 48px; padding: 12px; border-radius: var(--jnp-blob); background: var(--jnp-mint); color: var(--jnp-teal); }
.jnp-trust-item span { display: grid; gap: 2px; }
.jnp-trust-item b { font-family: var(--jnp-display); font-size: 17.5px; font-weight: 600; color: var(--jnp-ink); }

/* ---------- Services ---------- */
.jnp-service, .jnp-person, .jnp-promise-card { height: 100%; padding: 28px 26px; border-radius: 28px; background: #fff; border: 1.5px solid var(--jnp-line); transition: transform .2s, box-shadow .2s; }
.jnp-service:hover { transform: translateY(-4px); box-shadow: var(--jnp-shadow); }
.jnp-svc-ico { margin-bottom: 16px !important; }
.jnp-svc-ico .jnp-ico { width: 58px; height: 58px; padding: 14px; border-radius: var(--jnp-blob); background: var(--jnp-mint2); color: var(--jnp-teal); }
.jnp-grid-3 > .et_pb_column:nth-child(even) .jnp-svc-ico .jnp-ico { background: var(--jnp-blush); color: var(--jnp-rose-ink); }
.jnp-service p:last-child, .jnp-promise-card p:last-child, .jnp-person p:last-child { margin-bottom: 0 !important; font-size: 16.5px; }
.jnp-service .jnp-checks { margin: 14px 0 0 !important; padding-top: 14px !important; border-top: 1.5px dashed var(--jnp-line); }
.jnp-service .jnp-checks li { font-size: 15px; margin-bottom: 6px; }

/* ---------- Emergency guide ---------- */
.jnp-sos { display: grid; grid-template-columns: 230px 1fr; gap: 0; border-radius: 30px; overflow: hidden; background: #fff; box-shadow: var(--jnp-shadow); }
.jnp-sos-tabs { display: grid; align-content: start; gap: 6px; padding: 18px; background: #fff7f8; border-right: 1px solid #fde2e6; }
.jnp-sos-tabs label { position: relative; margin: 0; cursor: pointer; }
.jnp-sos-tabs input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.jnp-sos-tabs span { display: block; padding: 11px 14px; border-radius: 14px; font-weight: 700; font-size: 15px; line-height: 1.3; color: var(--jnp-muted); transition: all .15s; }
.jnp-sos-tabs label:hover span { background: var(--jnp-blush); color: var(--jnp-ink); }
.jnp-sos-tabs input:checked + span { background: var(--jnp-rose); color: #3b0614; }
.jnp-sos-tabs input:focus-visible + span { outline: 2px solid var(--jnp-teal); outline-offset: 2px; }
.jnp-sos-body { display: flex; flex-direction: column; padding: 26px 28px; }
.jnp-sos-panel { display: none; animation: jnp-in .3s ease both; }
.jnp-sos:has(input[value="knocked"]:checked) .jnp-sos-panel--knocked, .jnp-sos:has(input[value="pain"]:checked) .jnp-sos-panel--pain, .jnp-sos:has(input[value="broken"]:checked) .jnp-sos-panel--broken,
.jnp-sos:has(input[value="swelling"]:checked) .jnp-sos-panel--swelling, .jnp-sos:has(input[value="crown"]:checked) .jnp-sos-panel--crown, .jnp-sos:has(input[value="bleeding"]:checked) .jnp-sos-panel--bleeding { display: block; }
.jnp-urgency { display: inline-flex !important; align-items: center; gap: 8px; margin-bottom: 18px !important; padding: 7px 14px !important; border-radius: 999px; font-weight: 800; font-size: 14.5px; }
.jnp-urgency .jnp-ico { width: 18px; height: 18px; }
.jnp-urgency.is-urgent { background: #fee2e2; color: #b91c1c !important; }
.jnp-urgency.is-soon { background: #fef3c7; color: #92400e !important; }
.jnp-urgency.is-routine { background: var(--jnp-mint2); color: var(--jnp-deep) !important; }
.jnp-sos ol { display: grid; gap: 10px; margin: 0 0 20px !important; }
.jnp-sos li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; font-size: 16.5px; line-height: 1.5; color: var(--jnp-ink); }
.jnp-sos li b { display: grid; place-items: center; width: 34px; height: 34px; border-radius: var(--jnp-blob); background: var(--jnp-teal); color: #fff; font-family: var(--jnp-display); font-size: 16px; font-weight: 600; }
.jnp-sos li span { padding-top: 4px; }
.jnp-sos-call { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: auto; padding-top: 18px; border-top: 1.5px dashed var(--jnp-line); }
.jnp-sos-call span { flex: 1; min-width: 220px; font-size: 14px; line-height: 1.45; color: var(--jnp-muted); }

/* ---------- Comfort menu ---------- */
.jnp-menu { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 !important; }
.jnp-menu li { display: flex; gap: 14px; align-items: center; padding: 18px; border-radius: 22px; background: #fff; box-shadow: 0 14px 30px -26px rgba(12,46,43,.6); font-size: 15px; line-height: 1.4; }
.jnp-menu .jnp-ico { width: 50px; height: 50px; padding: 13px; border-radius: var(--jnp-blob); background: var(--jnp-blush); color: var(--jnp-rose-ink); }
.jnp-menu li:nth-child(4n+1) .jnp-ico, .jnp-menu li:nth-child(4n) .jnp-ico { background: var(--jnp-mint2); color: var(--jnp-teal); }
.jnp-menu span { display: grid; gap: 2px; }
.jnp-menu b { font-family: var(--jnp-display); font-weight: 600; font-size: 17px; color: var(--jnp-ink); }

/* ---------- Reviews ---------- */
.jnp-review { height: 100%; padding: 28px; border-radius: 28px; background: var(--jnp-mint); }
.jnp-grid-3 > .et_pb_column:nth-child(2) .jnp-review { background: var(--jnp-blush); }
.jnp-stars { display: flex; gap: 2px; color: #f59e0b; }
.jnp-stars .jnp-ico { width: 20px; height: 20px; }
.jnp-review blockquote { margin: 0 0 20px; padding: 0; border: 0; font-family: var(--jnp-display); font-size: 20px; line-height: 1.4; font-weight: 400; color: var(--jnp-ink); }
.jnp-who { display: grid; grid-template-columns: 48px 1fr; column-gap: 12px; align-items: center; margin: 0 !important; font-size: 14px; line-height: 1.35; }
.jnp-who span { grid-row: 1 / 3; display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--jnp-blob); background: var(--jnp-teal); color: #fff; font-family: var(--jnp-display); font-weight: 600; }
.jnp-who strong { color: var(--jnp-ink); font-size: 15.5px; }

/* ---------- Forms ---------- */
.jnp-form-col .et_pb_code_inner { height: 100%; }
.jnp-form { position: relative; display: grid; gap: 16px; padding: 30px; border-radius: 32px; background: #fff; box-shadow: var(--jnp-shadow); }
.jnp-form-head { display: flex; gap: 14px; align-items: center; padding-bottom: 16px; border-bottom: 1.5px dashed var(--jnp-line); }
.jnp-form-ico { display: grid; place-items: center; flex: none; width: 54px; height: 54px; border-radius: var(--jnp-blob); background: var(--jnp-blush); color: var(--jnp-rose-ink); }
.jnp-form-title { font-size: 27px !important; margin: 0 0 2px !important; }
.jnp-form-sub { font-size: 15px; margin: 0 !important; }
.jnp-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.jnp-field { display: grid; gap: 6px; margin: 0; font-size: 15px; font-weight: 700; color: var(--jnp-ink); }
.jnp-field :is(input, select, textarea) { width: 100%; padding: 12px 16px; border: 1.5px solid var(--jnp-line); border-radius: 16px; background: #fff; font: 400 16px/1.4 var(--jnp-sans); color: var(--jnp-ink); transition: border-color .15s, box-shadow .15s; }
.jnp-field :is(input, select, textarea):focus { outline: 0; border-color: var(--jnp-teal); box-shadow: 0 0 0 4px rgba(15,118,110,.13); }
.jnp-choices { border: 0; margin: 0; padding: 0; min-width: 0; }
.jnp-choices legend { margin-bottom: 8px; padding: 0; font-size: 15px; font-weight: 700; color: var(--jnp-ink); }
.jnp-choices > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.jnp-choices--2 > div { grid-template-columns: 1fr 1fr; }
.jnp-choices--4 > div { grid-template-columns: repeat(4, 1fr); }
.jnp-chip { position: relative; margin: 0; cursor: pointer; }
.jnp-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.jnp-chip span { display: grid; place-content: center; height: 100%; padding: 10px 6px; border: 1.5px solid var(--jnp-line); border-radius: 999px; background: #fff; text-align: center; font-size: 14.5px; font-weight: 700; line-height: 1.25; color: var(--jnp-muted); transition: all .15s; }
.jnp-chip:hover span { border-color: var(--jnp-rose); }
.jnp-chip input:checked + span { border-color: var(--jnp-teal); background: var(--jnp-mint2); color: var(--jnp-deep); box-shadow: inset 0 0 0 1px var(--jnp-teal); }
.jnp-chip input:focus-visible + span { outline: 2px solid var(--jnp-rose); outline-offset: 2px; }
.jnp-nervous { position: relative; display: flex; gap: 12px; align-items: flex-start; margin: 0; padding: 14px 16px; border-radius: 18px; background: var(--jnp-blush); cursor: pointer; font-size: 14.5px; line-height: 1.45; color: var(--jnp-muted); }
.jnp-nervous input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.jnp-nervous-box { display: grid; place-items: center; flex: none; width: 26px; height: 26px; margin-top: 1px; border-radius: 8px; border: 2px solid var(--jnp-rose); background: #fff; color: transparent; transition: all .15s; }
.jnp-nervous-box .jnp-ico { width: 16px; height: 16px; stroke-width: 3; }
.jnp-nervous input:checked + .jnp-nervous-box { background: var(--jnp-rose); color: #fff; }
.jnp-nervous input:focus-visible + .jnp-nervous-box { outline: 2px solid var(--jnp-teal); outline-offset: 2px; }
.jnp-nervous > span:last-child { display: grid; }
.jnp-nervous b { font-size: 15.5px; color: var(--jnp-ink); }
.jnp-form-note { font-size: 14px; text-align: center; margin: -4px 0 0 !important; }
.jnp-form-note a { font-weight: 700; white-space: nowrap; }
.jnp-form-ok { display: flex; align-items: flex-start; gap: 10px; background: #dcfce7; color: #166534 !important; border-radius: 16px; padding: 12px 14px !important; margin: 0 !important; font-size: 15px; }
.jnp-form-ok[hidden] { display: none; }
.jnp-form-ok .jnp-ico { margin-top: 2px; stroke-width: 2.6; }
.jnp-hp { position: absolute; left: -9999px; }
.jnp-checks { margin: 0 0 16px !important; }
.jnp-checks li { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 9px; color: var(--jnp-ink); font-size: 16.5px; line-height: 1.5; }
.jnp-checks .jnp-ico { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--jnp-mint2); color: var(--jnp-teal); stroke-width: 3; }
.jnp-checks--lg li { font-size: 17.5px; margin-bottom: 14px; }

/* ---------- CTA ---------- */
.jnp-cta-row { align-items: center; }
.jnp-cta h2 { color: #fff !important; }
.jnp-cta h2 em { color: #fff !important; }
.jnp-cta .jnp-eyebrow { background: rgba(255,255,255,.12); box-shadow: none; color: #fff !important; }
.jnp-cta-sub { color: rgba(255,255,255,.86) !important; font-size: 18px; margin: 0 !important; }
.jnp-cta-box { display: grid; gap: 12px; }

/* ---------- About ---------- */
.jnp-blob-card { position: relative; overflow: hidden; padding: 44px 40px 36px; border-radius: 36px; background: var(--jnp-teal); }
.jnp-blob { position: absolute; right: -60px; top: -70px; width: 220px; height: 200px; border-radius: var(--jnp-blob); background: var(--jnp-rose); opacity: .9; }
.jnp-blob-card blockquote { position: relative; margin: 0 0 24px; padding: 0; border: 0; max-width: 80%; font-family: var(--jnp-display); font-size: clamp(23px, 2.3vw, 30px); line-height: 1.3; font-weight: 500; color: #fff; }
.jnp-blob-card .jnp-who { position: relative; color: rgba(255,255,255,.75); }
.jnp-blob-card .jnp-who strong { color: #fff; }
.jnp-blob-card .jnp-who span { background: #fff; color: var(--jnp-teal); }
.jnp-number { display: grid; margin: 0 !important; text-align: center; }
.jnp-number strong { font-family: var(--jnp-display); font-size: clamp(38px, 3.8vw, 54px); font-weight: 600; line-height: 1.05; color: #fff; }
.jnp-number span { margin-top: 6px; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fecdd3; }
.jnp-avatar { display: grid !important; place-items: center; width: 80px; height: 80px; margin-bottom: 18px !important; border-radius: var(--jnp-blob); font-family: var(--jnp-display); font-size: 26px; font-weight: 600; color: #fff !important; }
.jnp-avatar--1 { background: linear-gradient(135deg, #0f766e, #2dd4bf); }
.jnp-avatar--2 { background: linear-gradient(135deg, #be123c, #fb7185); }
.jnp-avatar--3 { background: linear-gradient(135deg, #7c3aed, #c4b5fd); }
.jnp-avatar--4 { background: linear-gradient(135deg, #d97706, #fcd34d); }
.jnp-role { font-size: 14.5px !important; font-weight: 700; color: var(--jnp-rose-ink) !important; margin-bottom: 10px !important; }

/* ---------- Plan calculator & prices ---------- */
.jnp-calc { display: grid; grid-template-columns: 1.15fr 1fr; border-radius: 32px; overflow: hidden; background: #fff; box-shadow: var(--jnp-shadow); }
.jnp-calc-in { display: grid; gap: 14px; align-content: start; padding: 28px; }
.jnp-calc-q { margin: 0 !important; font-family: var(--jnp-display); font-size: 21px; font-weight: 600; color: var(--jnp-ink) !important; }
.jnp-stepper { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 20px; background: var(--jnp-mint); }
.jnp-stepper > span { display: grid; font-size: 14px; color: var(--jnp-muted); }
.jnp-stepper b { font-family: var(--jnp-display); font-size: 18px; font-weight: 600; color: var(--jnp-ink); }
.jnp-stepper > div { display: flex; align-items: center; gap: 4px; padding: 4px; border-radius: 999px; background: #fff; }
.jnp-stepper button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; background: var(--jnp-teal); color: #fff; cursor: pointer; transition: transform .15s; }
.jnp-stepper button:hover { transform: scale(1.08); }
.jnp-stepper button .jnp-ico { width: 18px; height: 18px; stroke-width: 2.6; }
.jnp-stepper input { width: 40px; padding: 0; border: 0; background: transparent; text-align: center; font: 600 22px/1 var(--jnp-display); color: var(--jnp-ink); -moz-appearance: textfield; }
.jnp-stepper input::-webkit-inner-spin-button, .jnp-stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.jnp-calc-inc { margin: 0 !important; font-size: 15px; }
.jnp-calc-out { display: flex; flex-direction: column; gap: 10px; padding: 28px; background: radial-gradient(ellipse 160px 140px at 100% 0%, rgba(251,113,133,.4) 0 99%, transparent 100%), var(--jnp-deep); color: rgba(255,255,255,.8); }
.jnp-calc-row { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.14); font-size: 15.5px; }
.jnp-calc-row s { font-family: var(--jnp-display); font-size: 22px; color: rgba(255,255,255,.6); }
.jnp-calc-row b { font-family: var(--jnp-display); font-size: 24px; font-weight: 600; color: #fff; }
.jnp-calc-save { display: grid; margin: 6px 0 12px; }
.jnp-calc-save span { font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fecdd3; }
.jnp-calc-save strong { font-family: var(--jnp-display); font-size: 58px; font-weight: 600; line-height: 1.05; color: #fff; }
.jnp-calc-save small { font-size: 13px; color: rgba(255,255,255,.6); }
.jnp-calc-out .jnp-btn { margin-top: auto; }
.jnp-price-col .et_pb_code_inner { height: 100%; }
.jnp-price-head { display: flex !important; align-items: center; gap: 10px; margin: 0 !important; padding: 20px 24px !important; border-radius: 26px 26px 0 0; background: var(--jnp-teal); font-family: var(--jnp-display); font-size: 20px; font-weight: 600; color: #fff !important; }
.jnp-price-col:nth-child(2) .jnp-price-head { background: var(--jnp-rose); color: #3b0614 !important; }
.jnp-price-head .jnp-ico { width: 26px; height: 26px; }
.jnp-prices { margin: 0 !important; padding: 8px 24px 14px !important; border-radius: 0 0 26px 26px; background: #fff; border: 1.5px solid var(--jnp-line); border-top: 0; }
.jnp-prices li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 13px 0; border-bottom: 1.5px dashed var(--jnp-line); font-size: 16px; color: var(--jnp-ink); }
.jnp-prices li:last-child { border-bottom: 0; }
.jnp-prices b { font-family: var(--jnp-display); font-size: 18px; font-weight: 600; color: var(--jnp-teal); white-space: nowrap; }
.jnp-finance { display: flex !important; gap: 14px; align-items: center; margin: 6px 0 0 !important; padding: 18px 22px !important; border-radius: 22px; background: var(--jnp-mint); font-size: 16.5px; color: var(--jnp-ink) !important; }
.jnp-finance .jnp-ico { width: 44px; height: 44px; padding: 11px; border-radius: var(--jnp-blob); background: #fff; color: var(--jnp-teal); }

/* ---------- FAQ ---------- */
.jnp-sticky-row { align-items: stretch !important; }
.jnp-faq-side .et_pb_code { position: sticky; top: 110px; }
.jnp-faq-title { font-size: 33px !important; margin: 44px 0 16px !important; }
.jnp-faq-main > .et_pb_text:first-child .jnp-faq-title { margin-top: 0 !important; }
.jnp-accordion .et_pb_toggle { border: 1.5px solid var(--jnp-line); border-radius: 22px; padding: 18px 24px; margin-bottom: 10px !important; background: #fff !important; transition: border-color .2s, box-shadow .2s; }
.jnp-accordion .et_pb_toggle_open { border-color: var(--jnp-rose); box-shadow: 0 12px 26px -18px rgba(251,113,133,.8); }
.jnp-accordion .et_pb_toggle .et_pb_toggle_title { font-family: var(--jnp-display); font-size: 18px; font-weight: 500; color: var(--jnp-ink) !important; padding-right: 36px; line-height: 1.4; }
.jnp-accordion .et_pb_toggle_title:before { color: var(--jnp-teal) !important; }
.jnp-accordion .et_pb_toggle_content, .jnp-accordion .et_pb_toggle_content p { font-family: var(--jnp-sans); color: var(--jnp-muted); font-weight: 400 !important; padding-top: 8px; font-size: 16.5px; line-height: 1.65; }
.jnp-aside { padding: 28px; border-radius: 30px; background: #fff; box-shadow: var(--jnp-shadow); border-top: 6px solid var(--jnp-rose); }
.jnp-aside-tag { display: inline-flex !important; align-items: center; gap: 8px; margin-bottom: 12px !important; padding: 6px 12px !important; border-radius: 999px; background: var(--jnp-blush); font-size: 13.5px !important; font-weight: 800; color: var(--jnp-rose-ink) !important; }
.jnp-aside-tag .jnp-ico { width: 18px; height: 18px; }
.jnp-aside h3 { font-size: 23px !important; }
.jnp-aside p { font-size: 16px; }
.jnp-aside-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-weight: 700; font-size: 15px; text-decoration: none; }
.jnp-aside-link .jnp-ico { width: 16px; height: 16px; }
.jnp-aside-note { margin: 14px 0 0 !important; padding-top: 14px; border-top: 1.5px dashed var(--jnp-line); font-size: 14px !important; color: #6b807d !important; }

/* ---------- Contact ---------- */
.jnp-card { padding: 26px; background: #fff; border-radius: 28px; box-shadow: var(--jnp-shadow); margin-bottom: 20px; }
.jnp-card-tag { display: flex !important; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13.5px !important; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--jnp-teal) !important; margin-bottom: 16px !important; }
.jnp-card-tag .jnp-ico { width: 18px; height: 18px; }
.jnp-contact-line { display: flex; gap: 14px; align-items: flex-start; color: var(--jnp-ink) !important; line-height: 1.5; }
.jnp-contact-line:last-child { margin-bottom: 0 !important; }
.jnp-contact-line > .jnp-ico { width: 44px; height: 44px; padding: 11px; border-radius: var(--jnp-blob); background: var(--jnp-mint); color: var(--jnp-teal); }
.jnp-contact-line a { font-family: var(--jnp-display); font-size: 21px; font-weight: 600; color: var(--jnp-ink) !important; text-decoration: none; word-break: break-word; }
.jnp-contact-line a:hover { color: var(--jnp-teal) !important; }
.jnp-contact-line small { display: block; font-size: 13.5px; color: #6b807d; }
.jnp-open { margin-left: auto; padding: 3px 10px; border-radius: 999px; background: #ffe4e6; color: #be123c; letter-spacing: .02em; text-transform: none; font-size: 12.5px; }
.jnp-open.is-open { background: #dcfce7; color: #15803d; }
.jnp-open[hidden] { display: none; }
.jnp-hours ul { margin: 0 0 12px !important; }
.jnp-hours li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; border-radius: 12px; font-size: 15.5px; color: var(--jnp-ink); }
.jnp-hours li b { font-weight: 600; }
.jnp-hours li.is-today { background: var(--jnp-mint2); font-weight: 700; }
.jnp-hours li[data-hours=""] b { color: #9fb0ad; }
.jnp-card .jnp-checks { margin: 0 !important; }
.jnp-card .jnp-checks li { font-size: 15.5px; }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
	.jnp-hero-row > .et_pb_column:last-child { max-width: 640px; }
	.jnp-faq-side .et_pb_code { position: static; }
	.jnp-service, .jnp-review, .jnp-person, .jnp-promise-card { height: auto; }
	.jnp-sos { grid-template-columns: 1fr; }
	.jnp-sos-tabs { grid-template-columns: repeat(3, 1fr); border-right: 0; border-bottom: 1px solid #fde2e6; }
	.jnp-sos-tabs span { text-align: center; padding: 10px 6px; font-size: 14px; }
}
@media (max-width: 640px) {
	[class*="jnp-"] h1 { font-size: clamp(40px, 11.5vw, 52px); }
	[class*="jnp-"] h2 { font-size: clamp(31px, 8.8vw, 40px); }
	.jnp-picker, .jnp-form { padding: 18px 16px; border-radius: 26px; }
	.jnp-picker::before { width: 110px; height: 110px; right: -16px; bottom: -16px; }
	.jnp-picks { grid-template-columns: repeat(2, 1fr); }
	.jnp-pick span { grid-auto-flow: column; justify-content: start; padding: 10px 12px; text-align: left; font-size: 14px; }
	.jnp-pick .jnp-ico { width: 22px; height: 22px; }
	.jnp-reason dl { grid-template-columns: 1fr; }
	.jnp-sos-tabs { grid-template-columns: 1fr 1fr; padding: 12px; }
	.jnp-sos-body { padding: 20px 18px; }
	.jnp-sos li { font-size: 15.5px; }
	.jnp-menu { grid-template-columns: 1fr; }
	.jnp-grid-4 { --jnp-gap: 12px; }
	.jnp-numbers .jnp-grid-4 > .et_pb_column { width: calc(50% - 6px) !important; flex: 0 0 calc(50% - 6px) !important; }
	.jnp-number strong { font-size: 32px; }
	.jnp-number span { font-size: 11px; letter-spacing: .04em; }
	.jnp-form-grid { grid-template-columns: 1fr; }
	.jnp-choices--4 > div { grid-template-columns: 1fr 1fr; }
	.jnp-choices--3 .jnp-chip span { font-size: 13px; padding: 10px 4px; }
	.jnp-calc { grid-template-columns: 1fr; border-radius: 26px; }
	.jnp-calc-in, .jnp-calc-out { padding: 20px 16px; }
	.jnp-calc-save strong { font-size: 48px; }
	.jnp-blob-card { padding: 30px 22px 26px; }
	.jnp-blob { width: 150px; height: 140px; right: -60px; top: -60px; }
	.jnp-blob-card blockquote { max-width: 100%; }
	.et_pb_section.jnp-cta { background: linear-gradient(120deg, var(--jnp-deep), var(--jnp-teal)) !important; }
}
