:root { --rzym-button-radius: 999px; }
.rzym-date-dialog, .rzym-date-dialog *, .rzym-reviews, .rzym-reviews * { box-sizing: border-box; }
.wp-element-button, .wp-block-button__link, button, input[type="button"], input[type="submit"], input[type="reset"], .rzym-phone-button, .rzym-footer-phone, .rzym-mobile-call, .rzym-date-call, .rzym-reviews-all { border-radius: var(--rzym-button-radius) !important; }
button, .rzym-date-call, .rzym-reviews-all { font: inherit; }
.rzym-date-button { min-height: 50px; padding: .82rem 1.3rem; border: 1px solid var(--rzym-petal); background: var(--rzym-petal); color: #fff; font-weight: 800; cursor: pointer; }
.rzym-date-button:hover, .rzym-date-button:focus-visible { background: var(--rzym-petal-dark); }
.rzym-site-cta .rzym-date-button { margin-top: 8px; }
.rzym-offer-date-action { margin-top: 18px; }
.rzym-offer-date-action .rzym-date-button { min-height: 42px; padding: .55rem .9rem; border: 1px solid #7f9361; background: transparent; color: var(--rzym-forest); font-size: .92rem; font-weight: 700; }
.rzym-offer-date-action .rzym-date-button:hover, .rzym-offer-date-action .rzym-date-button:focus-visible { background: var(--rzym-sage); }
.rzym-footer-date-strip { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 24px; max-width: 1200px; min-height: 76px; margin: 38px auto 28px; padding: 8px 8px 8px clamp(18px,3vw,34px); background: #fff; color: var(--rzym-forest); }
.rzym-footer-date-copy { display: grid; gap: 2px; min-width: 0; }
.rzym-footer-date-copy strong { font-size: 1.05rem; }
.rzym-footer-date-copy span { color: var(--rzym-muted); }
.rzym-footer-date-strip .rzym-date-button { min-width: 285px; min-height: 60px; padding: .85rem 1.5rem; border-color: var(--rzym-petal); background: var(--rzym-petal); color: #fff; font-size: 1rem; }
.rzym-date-dialog { width: min(92vw, 650px); max-height: 92vh; padding: 0; border: 0; border-radius: 16px; color: var(--rzym-ink); background: #fff; box-shadow: 0 24px 80px rgb(15 32 17 / 35%); }
.rzym-date-dialog::backdrop { background: rgb(20 35 22 / 70%); backdrop-filter: blur(3px); }
.rzym-date-dialog-inner { position: relative; display: grid; gap: 17px; padding: clamp(25px,5vw,46px); }
.rzym-date-dialog h2, .rzym-date-dialog p { margin: 0; }
.rzym-dialog-close { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border: 1px solid var(--rzym-line); background: #fff; color: var(--rzym-forest); font-size: 1.7rem; line-height: 1; cursor: pointer; }
.rzym-date-label { display: grid; gap: 7px; color: var(--rzym-forest); font-weight: 800; }
.rzym-date-label input { width: 100%; min-height: 54px; padding: 10px 13px; border: 1px solid #94a18c; border-radius: 8px; background: #fff; color: var(--rzym-ink); font: inherit; }
.rzym-date-shortcuts, .rzym-date-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.rzym-date-shortcuts button, .rzym-date-copy { min-height: 44px; padding: .65rem 1rem; border: 1px solid var(--rzym-forest); background: var(--rzym-sage); color: var(--rzym-forest); font-weight: 700; cursor: pointer; }
.rzym-date-result { display: grid; gap: 5px; min-height: 82px; padding: 16px; border-left: 4px solid var(--rzym-leaf); background: var(--rzym-sage); }
.rzym-date-today { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid var(--rzym-line); background: var(--rzym-cream); }
.rzym-date-today strong { color: var(--rzym-forest); }
.rzym-date-result strong { color: var(--rzym-forest); font-size: 1.12rem; }
.rzym-date-disclaimer { padding-top: 2px; color: var(--rzym-muted); font-size: .92rem; }
.rzym-date-call { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: .8rem 1.2rem; background: var(--rzym-petal); color: #fff !important; font-weight: 800; text-decoration: none; }
.rzym-date-copy:disabled { opacity: .55; cursor: not-allowed; }
.rzym-reviews { width: 100%; max-width: 1200px !important; margin: clamp(60px,8vw,100px) auto !important; padding: clamp(28px,4vw,48px); border: 1px solid var(--rzym-line); background: var(--rzym-cream); }
.rzym-reviews-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; }
.rzym-reviews-head h2 { margin: 0; }
.rzym-reviews-all { display: inline-flex; align-items: center; min-height: 48px; padding: .7rem 1rem; border: 1px solid var(--rzym-forest); color: var(--rzym-forest); font-weight: 700; text-decoration: none; }
.rzym-reviews-summary { margin: 18px 0 4px; color: var(--rzym-forest); font-size: 1.12rem; font-weight: 800; }
.rzym-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 24px; }
.rzym-review-card { min-width: 0; padding: 22px; border-top: 4px solid var(--rzym-leaf); background: #fff; }
.rzym-review-author { display: flex; align-items: center; gap: 12px; }
.rzym-review-author img { flex: 0 0 48px; border-radius: 50% !important; }
.rzym-review-author div { display: grid; }
.rzym-review-name { color: var(--rzym-forest); font-weight: 800; }
.rzym-review-time, .rzym-reviews-notice { color: var(--rzym-muted); font-size: .86rem; }
.rzym-review-stars { margin: 14px 0 8px; color: #bd7500; font-size: 1.2rem; letter-spacing: .08em; }
.rzym-review-text { margin: 0; padding: 0; border: 0; font-style: normal; }
.rzym-review-source { display: inline-block; margin-top: 15px; font-size: .9rem; font-weight: 700; }
.rzym-reviews-notice { max-width: 90ch; margin: 24px 0 0; }
.rzym-google-attribution { margin: 12px 0 0; color: #5e5e5e; font-family: Roboto,Arial,sans-serif; font-size: 1rem; white-space: nowrap; }
@media(max-width:750px){ .rzym-reviews-head{align-items:flex-start;flex-direction:column}.rzym-review-grid{grid-template-columns:1fr}.rzym-date-actions>*{width:100%}.rzym-date-shortcuts button{flex:1 1 140px}.rzym-date-dialog-inner{padding-top:54px}.rzym-footer-date-strip{grid-template-columns:1fr;gap:14px;padding:18px}.rzym-footer-date-strip .rzym-date-button{width:100%;min-width:0}.rzym-offer-date-action .rzym-date-button{width:auto} }
/* Accessible Google reviews carousel: 3 cards on desktop, 2 on tablet, 1 on mobile. */
.rzym-review-carousel { position: relative; margin-top: 24px; }
.rzym-review-viewport { overflow: hidden; touch-action: pan-y; }
.rzym-review-carousel .rzym-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 0; }
.rzym-review-carousel .rzym-review-card { min-width: 0; min-height: 280px; padding: 24px; overflow: hidden; overflow-wrap: anywhere; border-top: 4px solid var(--rzym-leaf); }
.rzym-review-carousel .rzym-review-card[hidden] { display: none !important; }
.rzym-review-carousel .rzym-review-text::before { content: "„"; color: var(--rzym-leaf); font-size: 1.35em; font-weight: 800; line-height: 0; }
.rzym-review-carousel .rzym-review-text::after { content: "”"; color: var(--rzym-leaf); font-size: 1.35em; font-weight: 800; line-height: 0; }
.rzym-review-empty { display: grid; place-items: center; min-height: 190px !important; text-align: center; }
.rzym-review-controls { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 18px; }
.rzym-review-controls[hidden] { display: none !important; }
.rzym-review-arrow { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid var(--rzym-forest); background: #fff; color: var(--rzym-forest); font-size: 1.35rem; cursor: pointer; }
.rzym-review-arrow:hover, .rzym-review-arrow:focus-visible { background: var(--rzym-sage); }
.rzym-review-dots { display: flex; align-items: center; gap: 8px; }
.rzym-review-dot { width: 12px; height: 12px; min-height: 12px; padding: 0; border: 1px solid var(--rzym-forest); background: transparent; cursor: pointer; }
.rzym-review-dot[aria-current] { background: var(--rzym-forest); }
.rzym-review-status { min-width: 5.5em; color: var(--rzym-muted); font-size: .88rem; text-align: center; }
@media (max-width: 1000px) { .rzym-review-carousel .rzym-review-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 650px) { .rzym-review-carousel .rzym-review-grid { grid-template-columns: 1fr; } .rzym-review-carousel .rzym-review-card { min-height: 250px; } }
/* Review showcase inspired by the supplied four-card reference; no invented per-review rating. */
.rzym-reviews { max-width: 1280px !important; margin: clamp(64px,8vw,108px) auto !important; padding: clamp(32px,5vw,72px) clamp(20px,4vw,52px) clamp(34px,5vw,68px); border: 0; border-radius: 28px; background: #f3f2ef; }
.rzym-reviews-head { flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.rzym-reviews-head h2 { font-size: clamp(2.3rem,4.3vw,4.2rem); line-height: 1.06; letter-spacing: -.04em; }
.rzym-reviews-rating { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin: 20px 0 0; color: var(--rzym-forest); font-size: .92rem; }
.rzym-reviews-rating-stars { color: #c57509; font-size: 1.12rem; letter-spacing: .02em; white-space: nowrap; }
.rzym-reviews-all { min-height: 0; padding: 0 0 3px; border: 0; border-bottom: 1px solid currentColor; background: transparent; font-size: .91rem; }
.rzym-review-carousel { margin-top: 82px; }
.rzym-review-carousel .rzym-review-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(12px,1.5vw,22px); }
.rzym-review-carousel .rzym-review-card { display: flex; flex-direction: column; min-height: 410px; padding: clamp(20px,2vw,28px); border: 1px solid #e7e7e1; border-radius: 25px; background: #fff; box-shadow: 0 8px 24px rgba(27,43,29,.035); }
.rzym-review-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 28px; }
.rzym-review-card-rating { color: #c57509; font-size: 1rem; font-weight: 800; white-space: nowrap; }
.rzym-review-platform { color: var(--rzym-forest); font-size: .88rem; font-weight: 700; white-space: nowrap; }
.rzym-review-carousel .rzym-review-text { flex: 1; color: #383d37; font-size: clamp(.93rem,1vw,1.03rem); line-height: 1.58; }
.rzym-review-footer { margin-top: 26px; padding-top: 18px; border-top: 1px solid #e9eae5; }
.rzym-review-footer .rzym-review-author { margin: 0; }
.rzym-review-footer .rzym-review-source { margin-top: 8px; font-size: .78rem; font-weight: 500; }
.rzym-review-controls { position: absolute; top: -66px; right: 0; margin: 0; }
.rzym-review-arrow { width: 46px; height: 46px; border-color: #e4e7e0; border-radius: 999px !important; }
.rzym-review-dots { display: none; }
.rzym-review-status { min-width: 6.2em; }
.rzym-reviews-notice { max-width: 100ch; margin: 30px auto 0; text-align: center; }
.rzym-google-attribution { margin: 10px 0 0; text-align: center; font-size: .88rem; }
@media (max-width: 1000px) { .rzym-review-carousel .rzym-review-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 650px) { .rzym-reviews { border-radius: 20px; } .rzym-review-carousel { margin-top: 80px; } .rzym-review-carousel .rzym-review-grid { grid-template-columns: 1fr; } .rzym-review-carousel .rzym-review-card { min-height: 310px; } .rzym-review-controls { right: 0; } .rzym-review-status { font-size: .8rem; } }
/* Alpha36: controls stay in normal flow; reviews advance only on explicit input. */
.rzym-review-carousel { margin-top: 28px; }
.rzym-review-controls { position: static; top: auto; right: auto; display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 10px; width: 100%; min-height: 48px; margin: 0 0 22px; }
.rzym-review-controls[hidden] { display: none !important; }
.rzym-review-arrow { display: inline-grid; flex: 0 0 46px; place-items: center; box-sizing: border-box; width: 46px; height: 46px; margin: 0; padding: 0; line-height: 1; vertical-align: middle; }
.rzym-review-arrow:disabled { opacity: .42; cursor: default; background: #fff; }
.rzym-review-status { flex: 0 0 auto; min-width: 6.2em; margin: 0; line-height: 1.2; text-align: center; }
@media (max-width: 650px) { .rzym-review-carousel { margin-top: 24px; } .rzym-review-controls { margin-bottom: 18px; } }
