/* Ritual Touch M — klijentska aplikacija v2; admin CSS ostaje nepromenjen. */
:root { --rt-ink:#332721; --rt-rose:#73504a; --rt-rose-dark:#593c38; --rt-muted:#8c7c72; --rt-border:#e9ded4; --rt-gold:#b79a78; --rt-paper:#fffdfa; --rt-warm:#faf5ef; }
body[data-page="public"] { margin:0; height:100%; overflow:hidden; color:var(--rt-ink); background:var(--rt-warm); font-family:'DM Sans',Arial,sans-serif; }
body[data-page="public"] button,body[data-page="public"] select,body[data-page="public"] input { -webkit-tap-highlight-color:transparent; }
body[data-page="public"] :focus-visible { outline:3px solid #b48b76; outline-offset:3px; }
.rt-app { display:flex; flex-direction:column; width:100%; height:100dvh; min-height:360px; overflow:hidden; background:linear-gradient(160deg,#fcf8f3 0%,#f4ede5 100%); }
.rt-header { flex:0 0 auto; height:81px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px max(18px,calc((100vw - 1120px)/2)); background:rgba(255,251,246,.97); border-bottom:1px solid #ede1d8; z-index:4; }
.rt-logo { display:flex; flex-direction:column; align-items:center; min-width:0; }
.rt-logo img { display:block; width:172px; height:39px; object-fit:contain; }
.rt-logo span { font-size:8px; font-weight:700; letter-spacing:.26em; color:#836358; line-height:1.1; margin-top:2px; }
.rt-header-right { display:flex; align-items:center; gap:10px; color:#937f70; font-size:10px; letter-spacing:.22em; white-space:nowrap; }
.rt-header-star { font-size:19px; color:#b99e8a; }
.rt-main { position:relative; flex:1 1 auto; min-height:0; width:100%; }
.rt-screen { display:block; overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:thin; scrollbar-color:#d8c4b7 transparent; height:100%; width:100%; scroll-behavior:smooth; }
.rt-screen[hidden] { display:none!important; }
.rt-screen-inner { width:min(100%,1020px); min-height:100%; margin:0 auto; padding:34px 34px 45px; }
.rt-bottom-nav { z-index:5; flex:0 0 auto; height:calc(75px + env(safe-area-inset-bottom)); padding:6px 12px max(6px,env(safe-area-inset-bottom)); display:flex; gap:5px; justify-content:center; align-items:stretch; background:#fffdfa; border-top:1px solid #eaded5; box-shadow:0 -8px 30px #694b3110; }
.rt-nav-item { position:relative; width:135px; border:0; border-radius:14px; background:transparent; color:#98897c; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:4px; font-size:11px; font-weight:600; letter-spacing:.005em; padding:8px 4px; transition:color .16s,background .16s; }
.rt-nav-item svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.rt-nav-item.active { background:#f1e6de; color:var(--rt-rose); }
.rt-nav-item.active:before { content:""; height:2px; width:21px; position:absolute; top:3px; left:calc(50% - 10.5px); border-radius:3px; background:#9f7461; }
.rt-nav-item:hover:not(.active) { color:var(--rt-rose); background:#f8f2ed; }
.rt-nav-book { color:#85645b; }
.rt-kicker { display:flex; align-items:center; gap:10px; color:#886357; font-size:10px; font-weight:700; letter-spacing:.18em; line-height:1.5; }
.rt-kicker span { color:#b18b7d; font-size:19px; line-height:1; }
.rt-primary-cta { display:inline-flex; justify-content:space-between; align-items:center; gap:24px; min-height:52px; padding:13px 23px; border-radius:13px; border:1px solid var(--rt-rose); background:var(--rt-rose); color:#fff!important; font-weight:700; font-size:13px; box-shadow:0 12px 23px #6b46451c; }
.rt-primary-cta:not(:disabled):hover { background:var(--rt-rose-dark); border-color:var(--rt-rose-dark); transform:translateY(-1px); }
.rt-primary-cta:disabled { opacity:.44; box-shadow:none; transform:none; }
.rt-primary-cta>span { font-size:20px; font-weight:400; }
.rt-full { width:100%; }
.rt-soft-link { display:inline-flex; align-items:center; gap:12px; padding:12px 1px; font-size:12px; font-weight:700; color:#725148; }
.rt-soft-link span { font-size:18px; }
.rt-muted { font-size:13px; color:var(--rt-muted); }
/* Home */
.rt-home { display:flex; flex-direction:column; justify-content:center; gap:36px; padding-top:26px; padding-bottom:34px; }
.rt-home-hero { display:grid; grid-template-columns:1fr .9fr; gap:55px; align-items:center; }
.rt-home-copy { padding:20px 0 12px; }
.rt-home h1 { margin:18px 0 18px; max-width:540px; font:500 clamp(47px,5.2vw,70px)/1.15 'Playfair Display',Georgia,serif; letter-spacing:-.05em; }
.rt-home h1 em,.rt-screen-title h2 em { font-weight:400; color:var(--rt-rose); }
.rt-home-copy>p { max-width:420px; font-size:15px; line-height:1.85; color:#806f66; margin-bottom:24px; }
.rt-home-copy .rt-soft-link { margin-left:22px; }
.rt-home-photo { position:relative; height:min(41vh,378px); min-height:240px; padding:13px; background:#eadbd0; border-radius:210px 210px 24px 24px; }
.rt-home-photo:before { content:""; position:absolute; top:-10px; right:-10px; width:104px; height:104px; border:1px solid #cfb9a7; border-radius:50%; }
.rt-home-photo img { width:100%; height:100%; object-fit:cover; object-position:center 25%; border-radius:200px 200px 16px 16px; filter:saturate(.79); }
.rt-photo-stamp { position:absolute; right:-24px; bottom:19px; width:98px; height:98px; border:1px solid #e1d0bf; border-radius:50%; background:#fcf7ee; box-shadow:0 12px 23px #573d3717; color:#79574d; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:0; font:italic 18px/1.1 'Playfair Display',serif; transform:rotate(10deg); }
.rt-photo-stamp span { font:20px/1 'DM Sans',sans-serif; color:#c3a38a; }
.rt-home-bottom { background:rgba(255,253,249,.85); border:1px solid var(--rt-border); border-radius:18px; padding:18px 21px; }
.rt-mini-title { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
.rt-mini-title>span { font-size:10px; color:#9a7b6d; letter-spacing:.19em; font-weight:700; }
.rt-mini-title a { color:#77524c; font-size:11px; font-weight:700; }
.rt-preview-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.rt-preview-item { padding:13px 15px; border-radius:11px; display:flex; align-items:center; justify-content:space-between; text-align:left; gap:10px; border:1px solid #ecdfd6; background:#f8f0e9; color:#59453e; cursor:pointer; }
.rt-preview-item strong { display:block; font-size:12px; line-height:1.5; }
.rt-preview-item small { display:block; color:#907c71; font-size:11px; margin-top:2px; }
.rt-preview-item>span:last-child { color:#ae8c78; font-size:19px; }
/* Shared screens */
.rt-screen-title { margin-bottom:24px; }
.rt-screen-title h2 { margin:10px 0 9px; font:500 clamp(38px,4.5vw,52px)/1.18 'Playfair Display',Georgia,serif; letter-spacing:-.045em; }
.rt-screen-title>p { color:#8b796f; font-size:13px; line-height:1.7; margin:0; }
.rt-services-page { max-width:825px; }
.rt-service-list { display:grid; gap:12px; }
.rt-service-card { background:var(--rt-paper); border:1px solid var(--rt-border); border-radius:17px; overflow:hidden; box-shadow:0 6px 25px #674b3b0a; }
.rt-service-top { display:flex; align-items:flex-start; gap:15px; padding:18px 19px; }
.rt-service-ornament { flex:0 0 53px; width:53px; height:53px; border-radius:16px; display:grid; place-items:center; color:#9e7c6c; font-size:28px; background:linear-gradient(145deg,#f0e3d7,#dec7b6); }
.rt-service-ornament.rose { background:linear-gradient(135deg,#e7d2cb,#c69e99); color:#855f5c; }
.rt-service-copy { flex:1; min-width:0; }
.rt-service-copy>small { display:block; color:#9b7f70; font-size:9px; text-transform:uppercase; letter-spacing:.15em; font-weight:700; }
.rt-service-copy h3 { margin:4px 0 4px; font:500 24px/1.3 'Playfair Display',serif; letter-spacing:-.025em; }
.rt-service-copy p { margin:4px 0 0; color:#887970; font-size:12px; line-height:1.6; }
.rt-service-meta { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:9px; }
.rt-service-meta span { color:#918175; font-size:11px; }
.rt-service-meta strong { font-size:16px; color:#6c4c47; white-space:nowrap; }
.rt-service-actions { display:flex; gap:8px; border-top:1px solid #f0e7df; padding:10px 15px; align-items:center; justify-content:space-between; }
.rt-service-packages { flex:1; color:#72524b; font-size:12px; }
.rt-service-packages summary { cursor:pointer; font-weight:600; padding:8px 3px; list-style:none; }
.rt-service-packages summary::-webkit-details-marker { display:none; }
.rt-service-packages summary:after { content:"⌄"; padding-left:9px; }
.rt-service-packages[open] summary:after { content:"⌃"; }
.rt-package-row { display:flex; justify-content:space-between; gap:14px; padding:9px 5px 9px 0; font-size:11px; color:#857266; border-top:1px solid #f0e8e0; }
.rt-package-row strong { color:#695148; white-space:nowrap; }
.rt-service-price-action { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.rt-service-book { flex:0 0 auto; background:#73544e; color:#fff; border:0; border-radius:9px; padding:7px 12px; font-size:11px; font-weight:600; line-height:1.2; min-height:30px; cursor:pointer; }
.rt-service-book:hover { background:#624640; }
.rt-service-book:focus-visible { outline:2px solid #73544e; outline-offset:3px; }
.rt-services-note { color:#9b8d84; font-size:11px; line-height:1.6; margin:17px 0 0; }
/* Booking */
.rt-booking-page { max-width:690px; }
.rt-booking-title { margin-bottom:16px; }
.rt-booking-card { border-radius:19px; background:#fffdfb; border:1px solid #ebddd4; padding:22px 27px 27px; box-shadow:0 10px 40px #6848360d; }
.rt-progress { display:flex; align-items:center; justify-content:center; gap:15px; padding:0 2px 13px; border-bottom:1px solid #f0e6df; margin-bottom:13px; }
.rt-progress>span:not(.rt-progress-line) { display:flex; align-items:center; gap:8px; color:#b1a39a; font-weight:700; font-size:12px; }
.rt-progress small { font-weight:500; font-size:11px; }
.rt-progress>span.active { color:#765249; }
.rt-progress-line { height:1px; width:44px; background:#d6bfb1; }
.rt-book-step .form-label { margin:13px 0 6px; color:#675148; font-size:12px; letter-spacing:0; }
.rt-book-step .field { min-height:48px; border-radius:11px; background:#fffcf9; border-color:#e8dcd3; font-size:14px; color:#4e3b34; padding:12px 14px; }
.rt-book-step .field:focus { border-color:#9c7568; }
.rt-book-step .slots-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:3px 0 5px; min-height:47px; }
.rt-book-step .slot { border-radius:10px; border-color:#e6d8cd; font-size:13px; padding:10px 6px; }
.rt-book-step .slot.selected { background:#73504a; border-color:#73504a; }
.rt-book-step .muted-hint { background:#f8f1ea; border-radius:10px; font-size:12px; }
.rt-book-step .rt-primary-cta { margin-top:18px; }
.rt-back-btn { display:flex; align-items:center; gap:8px; border:0; background:none; color:#76544d; font-size:12px; font-weight:700; padding:7px 0 14px; }
.rt-back-btn span { font-size:19px; }
.rt-recap { display:flex; justify-content:space-between; align-items:center; gap:15px; background:#f7efe7; border-radius:13px; padding:12px 15px; }
.rt-recap>div strong { display:block; font-size:13px; }
.rt-recap>div small { display:block; font-size:11px; color:#927c70; }
.rt-recap>span { font-weight:700; color:#705047; white-space:nowrap; font-size:13px; }
.rt-book-step .booking-fields { padding-top:0; margin-top:0; border-top:0; }
.rt-optional-fields { border:1px solid #f0e5dd; border-radius:11px; background:#fffcf9; padding:0 13px 10px; margin:15px 0 2px; }
.rt-optional-fields summary { padding:12px 2px; list-style:none; cursor:pointer; color:#80665c; font-size:12px; font-weight:600; }
.rt-optional-fields summary::-webkit-details-marker { display:none; }
.rt-optional-fields summary span,.rt-privacy summary span { float:right; font-size:17px; color:#ae9285; }
.rt-optional-fields[open] summary span,.rt-privacy[open] summary span { transform:rotate(45deg); }
.rt-book-step .consent { margin:15px 0 4px; font-size:11px; }
.rt-secure-note { text-align:center; color:#aa9a8c; font-size:10px; margin:11px 0 0; line-height:1.6; }
.rt-booking-card .notice { border-radius:11px; margin-top:13px; }
.rt-booking-card .success-panel { padding:13px 0; }
.rt-booking-card .success-icon { background:#f2e9e1; color:#785348; }
.rt-booking-card .success-details { border-radius:13px; }
.rt-booking-card #book-again { border-radius:12px; padding:12px 16px; }
/* Contact */
.rt-contact-page { max-width:750px; }
.rt-contact-card { border:1px solid #eaded5; border-radius:19px; overflow:hidden; background:var(--rt-paper); margin:15px 0 17px; }
.rt-contact-person { display:flex; align-items:center; gap:18px; padding:19px; border-bottom:1px solid #f1e7df; }
.rt-contact-person img { width:105px; height:115px; border-radius:50px 50px 12px 12px; object-fit:cover; object-position:center 25%; flex:0 0 auto; }
.rt-contact-person span { display:block; color:#ad927e; font-size:9px; letter-spacing:.16em; font-weight:700; line-height:1.5; }
.rt-contact-person h3 { font:500 25px/1.25 'Playfair Display',serif; margin:5px 0 8px; }
.rt-contact-person p { color:#85746b; font-size:12px; line-height:1.7; margin:0; }
.rt-contact-item { display:flex; align-items:center; gap:14px; padding:15px 19px; min-height:71px; border-bottom:1px solid #f1e7df; }
.rt-contact-item:last-child { border:0; }
.rt-contact-icon { display:grid; place-items:center; border-radius:12px; width:39px; height:39px; font-size:22px; background:#f5ebe3; color:#835e55; flex:0 0 auto; }
.rt-contact-item>span:nth-child(2) { flex:1; }
.rt-contact-item small { color:#a28c7e; font-weight:700; font-size:9px; letter-spacing:.15em; display:block; }
.rt-contact-item strong { color:#564039; font-size:13px; font-weight:600; }
.rt-contact-arrow { color:#8b6a5f; font-size:20px; }
.rt-contact-phone:empty { display:none; }
.rt-contact-phone .rt-contact-item { border-top:1px solid #f1e7df; }
.rt-privacy { padding:14px 4px; border-bottom:1px solid #e6d5c9; margin-top:9px; }
.rt-privacy summary { list-style:none; cursor:pointer; color:#81665b; font-weight:700; font-size:12px; }
.rt-privacy summary::-webkit-details-marker { display:none; }
.rt-privacy p { margin-top:12px; color:#907f73; font-size:11px; line-height:1.7; }
.rt-client-footer { text-align:center; padding:23px 0 8px; font-size:10px; color:#a49487; }
.rt-client-footer span { padding:0 6px; }
.rt-client-footer a { text-decoration:underline; text-underline-offset:3px; }
/* Responsive */
@media(max-width:760px) {
 .rt-header { height:69px; padding:7px 19px; }
 .rt-header-right { font-size:8px; gap:5px; letter-spacing:.08em; }
 .rt-header-star { font-size:16px; }
 .rt-logo img { width:132px; height:31px; }
 .rt-logo span { font-size:6px; }
 .rt-screen-inner { padding:23px 20px 31px; }
 .rt-home { justify-content:flex-start; gap:21px; }
 .rt-home-hero { grid-template-columns:1fr 42%; gap:13px; }
 .rt-home-copy { padding:6px 0; min-width:0; }
 .rt-home h1 { font-size:clamp(33px,7.5vw,49px); margin:15px 0 12px; }
 .rt-home-copy>p { font-size:12px; line-height:1.7; margin-bottom:17px; }
 .rt-home-copy .rt-primary-cta { min-height:44px; padding:10px 15px; gap:7px; font-size:11px; }
 .rt-home-copy .rt-soft-link { display:flex; margin:3px 0 0; }
 .rt-home-photo { height:272px; min-height:0; padding:6px; }
 .rt-photo-stamp { width:66px; height:66px; font-size:12px; right:-8px; bottom:13px; }
 .rt-photo-stamp span { font-size:14px; }
 .rt-home-bottom { padding:14px; }
 .rt-preview-list { gap:8px; }
 .rt-preview-item { padding:11px; }
 .rt-preview-item strong { font-size:11px; }
 .rt-preview-item small { font-size:10px; }
 .rt-screen-title h2 { font-size:39px; }
 .rt-service-top { padding:15px; }
 .rt-service-copy h3 { font-size:22px; }
 .rt-booking-card { padding:18px; }
 .rt-contact-person img { width:90px; height:110px; }
}
@media(max-width:430px) {
 .rt-header-right { display:none; }
 .rt-header { justify-content:center; height:67px; }
 .rt-logo img { width:148px; height:36px; }
 .rt-screen-inner { padding:17px 16px 25px; }
 .rt-home { gap:18px; }
 .rt-home-hero { grid-template-columns:1fr 43%; gap:9px; }
 .rt-kicker { font-size:8px; gap:6px; letter-spacing:.09em; }
 .rt-kicker span { font-size:15px; }
 .rt-home h1 { font-size:clamp(30px,8.5vw,39px); line-height:1.17; margin:12px 0 11px; }
 .rt-home-copy>p { font-size:11px; line-height:1.6; margin-bottom:14px; }
 .rt-home-photo { height:235px; }
 .rt-home-copy .rt-primary-cta { padding:9px 12px; font-size:10px; }
 .rt-photo-stamp { right:-5px; }
 .rt-nav-item { width:25%; border-radius:12px; font-size:10px; gap:4px; }
 .rt-nav-item svg { width:21px; height:21px; }
 .rt-bottom-nav { justify-content:space-around; height:calc(72px + env(safe-area-inset-bottom)); gap:1px; padding-left:5px; padding-right:5px; }
 .rt-screen-title { margin-bottom:15px; }
 .rt-screen-title h2 { font-size:34px; }
 .rt-screen-title>p { font-size:12px; }
 .rt-booking-page { padding-top:13px; }
 .rt-booking-card { padding:15px 13px 17px; }
 .rt-book-step .slots-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .rt-service-meta { align-items:flex-start; flex-direction:column; gap:4px; }
 .rt-service-copy h3 { font-size:21px; }
 .rt-service-ornament { width:46px; height:46px; flex-basis:46px; }
 .rt-service-book { font-size:11px; padding:7px 11px; }
 .rt-contact-person { gap:11px; padding:14px; }
 .rt-contact-person img { width:78px; height:102px; }
 .rt-contact-person h3 { font-size:21px; }
 .rt-contact-person p { font-size:11px; }
}
@media(max-height:640px) and (max-width:760px) {
 .rt-header { height:55px; }
 .rt-bottom-nav { height:calc(61px + env(safe-area-inset-bottom)); }
 .rt-screen-inner { padding-top:13px; }
 .rt-home-photo { height:205px; }
 .rt-home h1 { margin:7px 0; }
 .rt-home-copy>p { margin-bottom:8px; }
}
@media(prefers-reduced-motion:reduce) { .rt-screen { scroll-behavior:auto; } .rt-primary-cta:hover { transform:none; } }

/* Ritual Touch M v5 — malo dugme pored cene pojedinačnog tretmana */
.rt-service-actions:has(.rt-service-packages) { padding-top:0; flex-direction:column; align-items:stretch; }
.rt-service-packages { width:100%; }
.rt-service-packages summary { padding:10px 3px; }
.rt-package-info { color:#8b7970; font-size:11px; line-height:1.5; margin:4px 0 10px; }
.rt-phone-help { display:block; margin:7px 2px 13px; color:#917e71; font-size:11px; line-height:1.5; }
.rt-contact-location { cursor:pointer; }
.rt-contact-location:hover { background:#f9f3ee; }
.rt-contact-location[aria-disabled="true"] { cursor:default; }

/* v8: compact, accessible language selector (always visible on phones) */
.rt-header-right .rt-language-select {
  flex:0 0 auto; min-width:66px; min-height:36px; margin-left:8px;
  padding:6px 24px 6px 11px; border:1px solid #dfc9bb; border-radius:11px;
  background:#fffaf5; color:#66463d; font:700 12px/1 'DM Sans',sans-serif;
  letter-spacing:.02em; cursor:pointer; outline-offset:3px;
}
.rt-header-right .rt-language-select:focus-visible { outline:3px solid #b48b76; }
@media (max-width:600px) {
  .rt-header-right {display:flex!important;gap:0;}
  .rt-header-right .rt-header-star, .rt-header-right > span:not(.rt-header-star) {display:none;}
  .rt-header {justify-content:space-between;gap:8px;padding-inline:14px;}
  .rt-logo img {width:142px;height:34px;}
  .rt-header-right .rt-language-select {margin-left:0;min-width:65px;min-height:37px;}
}
@media(max-width:360px) { .rt-logo img {width:126px;} .rt-header {padding-inline:10px;} }
