/* Readable type, touch controls and fluid layouts on the same page URL. */
html { text-size-adjust:100%; -webkit-text-size-adjust:100%; }
button, a, summary { touch-action:manipulation; }
button, input, textarea, select { font-family:var(--sans); }
.hero-sub { font-size:14px; }
.hero-location { font-size:12px; }
.hero-location small { font-size:11px; }
.section-intro, .service-aside > p,
.about-copy > p:not(.eyebrow):not(.lead), .ritual-steps p,
.faq-list details p, .source-placeholder p,
.contact-copy > p:not(.eyebrow) { font-size:14px; line-height:1.85; }
.desktop-nav, .header-book { font-size:12px; }
.text-link { min-height:32px; align-items:center; }
.service-detail, .service-detail .text-link { font-size:12px; }
.service-name small, .price-note { font-size:11px; }
.service-price { font-size:14px; }
.about-values, .ritual-steps article > span { font-size:12px; }
.gallery-hint, .gallery-hint .text-link { font-size:11px; }

.tabs { gap:4px; padding:5px; background:#eee7dc; border:1px solid #e4dbcd; border-radius:8px; }
.service-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.review-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.tabs button {
  display:flex; justify-content:center; align-items:center; gap:6px;
  min-width:0; min-height:46px; padding:10px 12px; border-radius:5px;
  font-size:12px; color:#655e55; transition:background .2s,color .2s,box-shadow .2s;
}
.tabs button[aria-selected=true] { background:var(--cream); color:var(--wine); box-shadow:0 2px 6px #3d2b1710; }
.tabs button[aria-selected=true]:after { display:none; }
.tabs button:focus-visible { outline-offset:2px; }
.service-row summary { min-height:77px; }
.menu-toggle { min-width:44px; min-height:44px; align-items:center; }
.review-card header { flex-wrap:wrap; gap:5px 16px; }
.review-card h3 { font-size:14px; font-weight:600; }
.review-card time, .review-date-label { font-size:11px; color:var(--muted); }
.review-card p { font-size:14px; white-space:pre-line; overflow-wrap:anywhere; line-height:1.85; }
.review-card h3, .service-name { overflow-wrap:anywhere; }
.review-card a { display:inline-flex; align-items:center; min-height:38px; font-size:11px; }
.reviews-content > .text-link, #other-reviews > .text-link { margin-top:18px; }
.feed-rating { font-size:13px; padding-top:24px; }
.reviews-status, .review-sidebar .review-disclosure { font-size:11px; }
.review-sidebar .review-disclosure { line-height:1.8; }
.source-placeholder { min-height:310px; }
.review-retry { margin-top:16px; font-size:12px; }
.reviews-loading { padding-top:30px; color:var(--muted); font-size:13px; }
.review-skeleton { padding:25px 0; border-bottom:1px solid var(--line); }
.review-skeleton span { display:block; height:11px; margin-bottom:13px; background:#e7dfd2; border-radius:3px; animation:review-pulse 1.4s ease-in-out infinite alternate; }
.review-skeleton span:first-child { width:35%; height:14px; margin-bottom:22px; }
.review-skeleton span:last-child { width:75%; }
.faq-list summary { font-size:15px; min-height:64px; }
.lightbox-prev, .lightbox-next { width:48px; height:48px; }
.lightbox-close { min-width:48px; min-height:48px; top:-52px; display:grid; place-items:center; }
.lightbox figcaption { font-size:12px; }
.contact-address small, .contact-address > a, .contact-telegram { font-size:12px; }
.contact-address .contact-phone { font-size:31px; }
.footer { font-size:11px; }

@keyframes review-pulse { to { opacity:.45; } }
@media (min-width:651px) {
  .orbit { inset:38px 22px 35px 11px; transform:rotate(9deg); }
}
@media (hover:none) {
  .button:hover { transform:none; }
  .gallery-item:hover img { transform:none; }
  .text-link:hover { gap:22px; }
}
@media (max-width:1150px) and (min-width:901px) {
  .desktop-nav { gap:16px; }
  .header { gap:16px; }
  .brand > span { font-size:23px; }
}
@media (max-width:900px) {
  .mobile-nav a { min-height:44px; display:flex; align-items:center; }
  .about, .service-layout, .review-layout, .faq { gap:40px; }
  .service-tabs button { padding-inline:7px; }
  .review-tabs button { padding-inline:5px; }
  .hero .hero-sub { font-size:13px; }
}
@media (max-width:650px) {
  .wrap { width:calc(100% - 40px); }
  .header { gap:12px; height:88px; }
  .header-book { min-height:44px; font-size:11px; padding-block:7px; align-items:center; }
  .menu-toggle { width:44px; margin-right:-10px; flex-shrink:0; }
  .brand > span { font-size:22px; }
  .brand img { width:33px; height:33px; }
  .brand small { font-size:6px; letter-spacing:1.3px; }
  .hero { padding-top:32px; }
  .hero-description { font-size:17px; line-height:1.6; }
  .hero .hero-sub { font-size:14px; line-height:1.8; }
  .hero-actions { gap:14px 20px; align-items:center; }
  .hero-actions .button { min-height:54px; font-size:12px; }
  .hero-actions .text-link { min-height:44px; font-size:12px; }
  .hero-art { margin-top:4px; }
  .section { padding-block:60px; }
  .section-heading h2, h2 { font-size:clamp(43px,12.4vw,60px); }
  .section-intro { font-size:14px; line-height:1.8; }
  .eyebrow { font-size:9px; letter-spacing:1.35px; }
  .tabs { border-radius:8px; padding:4px; gap:3px; }
  .tabs button { min-height:46px; padding:10px 5px; font-size:12px; }
  .service-tabs button { font-size:11px; letter-spacing:-.15px; }
  .service-row summary { padding-block:19px; gap:10px; }
  .service-name { font-size:26px; }
  .service-name small { font-size:11px; margin-top:8px; }
  .service-number { font-size:10px; min-width:15px; }
  .service-price { font-size:13px; }
  .service-plus { margin-left:2px; }
  .service-detail { font-size:13px; line-height:1.85; padding-left:25px; }
  .service-detail .text-link { font-size:12px; min-height:44px; }
  .price-note { font-size:11px; line-height:1.8; }
  .show-services { font-size:12px; min-height:44px; }
  .works .section-heading .text-link { font-size:12px; }
  .gallery-hint { align-items:flex-start; gap:20px; font-size:11px; }
  .gallery-hint .text-link { min-height:36px; font-size:11px; white-space:nowrap; }
  .about-copy > p:not(.eyebrow):not(.lead) { font-size:14px; line-height:1.85; }
  .about-copy .text-link { font-size:12px; min-height:44px; }
  .about-values { font-size:13px; gap:13px; }
  .about-values b { font-size:11px; }
  .about-copy .lead { font-size:29px; }
  .ritual-steps p { font-size:14px; line-height:1.85; }
  .ritual-steps article > span { font-size:10px; }
  .ritual-steps { gap:31px; }
  .review-tabs button { font-size:12px; }
  .source-dot { width:19px; height:19px; font-size:12px; }
  .review-card { padding-block:24px; }
  .review-card p { font-size:14px; }
  .review-card time, .review-card a { font-size:11px; }
  .review-card header { align-items:flex-start; }
  .review-card h3 { font-size:14px; }
  .review-stars { font-size:14px; margin-top:12px; }
  .reviews-status { font-size:11px; line-height:1.8; margin-top:20px; }
  .source-placeholder p { font-size:14px; }
  .source-placeholder .button { min-height:52px; font-size:12px; }
  .source-placeholder h3 { font-size:32px; }
  .widget-fallback { font-size:11px; padding-block:14px; }
  .faq-list summary { font-size:14px; padding-block:20px; min-height:68px; }
  .faq-list details p { font-size:14px; line-height:1.85; }
  .faq-list .text-link { font-size:12px; min-height:44px; }
  .contact-copy > p:not(.eyebrow) { font-size:14px; }
  .contact-actions .button { font-size:12px; min-height:54px; }
  .contact-telegram { font-size:13px; min-height:38px; display:flex; align-items:center; }
  .contact-address > a, .contact-address small { font-size:12px; }
  .contact-address .contact-phone { font-size:31px; min-height:44px; }
  .contact-address .channel-link { min-height:38px; }
  .mobile-book { bottom:calc(12px + env(safe-area-inset-bottom,0px)); min-height:54px; font-size:13px; }
  .mobile-book.is-hidden { transform:translateY(calc(100px + env(safe-area-inset-bottom,0px))); }
  .footer { padding-bottom:calc(105px + env(safe-area-inset-bottom,0px)); }
  .footer > span, .footer > a:last-child { font-size:10px; }
  .lightbox-prev, .lightbox-next { width:44px; height:44px; font-size:22px; }
  .lightbox-close { min-width:44px; min-height:44px; top:-48px; }
  .lightbox figcaption { font-size:11px; }
}
@media (max-width:380px) {
  .header-book { display:none; }
  .hero-actions { flex-direction:column; align-items:stretch; gap:9px; }
  .hero-actions .text-link { align-self:flex-start; }
  .hero-art { height:415px; padding-inline:15px; }
  .hero-photo-frame { height:350px; }
  .hero-note, .hero-note em { font-size:17px; }
  .service-name { font-size:23px; }
  .service-price { font-size:12px; }
  .service-tabs button { font-size:10px; }
  .review-tabs button { font-size:11px; gap:4px; }
  .source-dot { width:16px; height:16px; font-size:10px; }
  .gallery-hint { flex-direction:column; gap:3px; }
}
@media (prefers-reduced-motion:reduce) {
  .review-skeleton span { animation:none; }
}
