/* LLTattoo interaction states and responsive adjustments. */
:root { --header-height: 112px; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 20px); }
/* Clip horizontal overflow without creating a scroll container that breaks sticky banners. */
body.site-body { overflow-x: clip; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid #c4b583; outline-offset: 5px; }
header.site-header { position: sticky; top: 0; z-index: 1000; background: var(--surface-dark); }
.removal-offer { position: sticky; top: var(--header-height); transform: none; z-index: 900; }
.page-tattooentfernung-bern-schweiz #calendly { scroll-margin-top: 60px; }
.site-nav .nav-toggle span.nav-close { display: none; position: static; inset: auto; width: auto; height: auto; }
.site-nav .nav-toggle[aria-expanded="true"] .nav-open { display: none !important; }
.site-nav .nav-toggle[aria-expanded="true"] .nav-close { display: inline-flex !important; }
.site-nav .nav-toggle span.nav-close svg { width: var(--nav-toggle-icon-size,30px); height: var(--nav-toggle-icon-size,30px); fill: var(--nav-toggle-icon-color-active,#fff); }
@media (max-width: 1024px) {
  .site-nav .nav-toggle { display: flex; }
  .site-nav .nav-panel { display: none; }
  .site-nav.ll-menu-open .nav-panel { display: block; position: fixed; left: 0; right: 0; top: var(--header-height); width: 100%; background: var(--surface-dark); padding: 12px 20px 22px; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; }
  .site-nav.ll-menu-open .nav-list { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .site-nav.ll-menu-open .nav-link { display: flex; padding: 13px 0; }
}
.portfolio-grid[data-gallery] { display: flex !important; flex-wrap: wrap; height: auto !important; position: relative; opacity: 1 !important; visibility: visible !important; }
.portfolio-grid[data-gallery] > .portfolio-item { position: relative !important; left: auto !important; top: auto !important; opacity: 1 !important; transform: none !important; }
.portfolio-grid[data-gallery] > [hidden] { display: none !important; }
.ll-load-more { background: #c4b583; color: #111; border: 0; padding: 15px 30px; font: 600 16px inherit; cursor: pointer; }
.portfolio-more { text-align: center; margin-top: 24px; }
[data-carousel] { --slides-visible: var(--slides-desktop,3); }
[data-carousel] .carousel-track { display: flex; gap: var(--slide-gap,0px); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; transform: none !important; width: 100%; }
[data-carousel] .carousel-track::-webkit-scrollbar { display: none; }
[data-carousel] .carousel-slide { width: auto; flex: 0 0 calc((100% - (var(--slides-visible) - 1) * var(--slide-gap,0px)) / var(--slides-visible)); scroll-snap-align: start; }
[data-carousel] .carousel-pagination { position: relative; margin-top: 12px; }
[data-carousel] .carousel-dot { min-height: 8px; padding: 0; border: none; margin: 0 4px; background: #c4b583; }
@media (max-width:1024px) { [data-carousel] { --slides-visible: var(--slides-tablet,2); } }
@media (max-width:767px) { [data-carousel] { --slides-visible: var(--slides-mobile,1); } }
.table-scroll { max-width: 100%; overflow-x: auto; }
.text-editor-block { overflow-wrap: anywhere; }
.tab-panels > .layout-grid.is-active { display: grid !important; }
@media(max-width:767px) {
  .tab-panels > .layout-grid { grid-template-columns: minmax(0,1fr); }
  .tab-panels > .layout-grid > .layout { grid-column: auto !important; grid-row: auto !important; min-width: 0; }
}
.booking-fallback { font: 14px/1.4 sans-serif; text-align: center; margin: 10px 0; }
.booking-fallback a { color: #c4b583; }
.calendly-inline-widget { overflow: hidden; height:auto !important; }
.calendly-inline-widget, iframe[src*="calendly.com/"] { background: transparent; }
iframe[src^="https://calendly.com/"] { display:block; width:100%; height:var(--calendly-height,800px) !important; }
@media(max-width:767px) {
  iframe[src^="https://calendly.com/"] { height:var(--calendly-height,1000px) !important; }
}
.ll-modal-open { overflow: hidden; }
dialog.ll-lightbox { width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:64px 72px 48px; border:none; background:transparent; color:#fff; }
dialog.ll-lightbox::backdrop { background:rgba(var(--surface-dark-rgb), .95); }
.ll-modal-open :is(.custom-booking-button,.ll-whatsapp,#bookingBtn) { visibility:hidden; }
.ll-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.ll-lightbox figure { width:fit-content; max-width:100%; margin:0; text-align:center; }
.ll-lightbox-media { position:relative; width:fit-content; margin:auto; }
.ll-lightbox img { display:block; width:auto; height:auto; max-width:min(calc(100vw - 160px),1400px); max-height:calc(100dvh - 160px); object-fit:contain; }
.ll-lightbox figcaption { display:table; margin:10px auto 0; padding:4px 10px; border-radius:16px; background:var(--surface-dark); color:#f4f3ee; font:14px/1.4 Jost,sans-serif; }
.ll-lightbox button { position:absolute; display:grid; place-items:center; width:44px; min-width:44px; height:44px; padding:0; border:1px solid #ffffff40; border-radius:50%; background:var(--surface-dark); color:#fff; cursor:pointer; }
.ll-lightbox button:hover,.ll-lightbox button:focus-visible { background:#303431; }
.ll-lightbox button svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.ll-lightbox-close { top:-52px; right:0; }
.ll-lightbox-prev { left:-56px; top:calc(50% - 22px); }
.ll-lightbox-next { right:-56px; top:calc(50% - 22px); }
.ll-whatsapp { position: fixed; right: 25px; bottom: 75px; z-index: 99999999; width: 48.75px; height: 48.75px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #25d366; box-shadow: 0 4px 15px rgb(0 0 0 / .3); border: 0; padding: 0; margin: 0; cursor: pointer; }
/* Keep a comfortable tap target even on pages with a smaller visual button. */
.ll-whatsapp::before { content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:100%; height:100%; min-width:44px; min-height:44px; border-radius:50%; }
.ll-whatsapp:hover, .ll-whatsapp:focus { background: #25d366; }
.ll-whatsapp svg { fill: white; width: 26.25px; height: 26.25px; }
@media(max-width:768px) {
 .ll-whatsapp { bottom:var(--mobile-whatsapp-bottom,63px); }
 dialog.ll-lightbox { padding:64px 12px 48px; }
 .ll-lightbox img { max-width:calc(100vw - 24px); max-height:calc(100dvh - 152px); }
 .ll-lightbox-prev { left:8px; }
 .ll-lightbox-next { right:8px; }
}
.reviews.reviews-google .review-track { display: flex !important; overflow-x: auto !important; scroll-snap-type: x mandatory; transform: none !important; scrollbar-width: none; max-width: 100%; margin: 0 !important; }
.reviews.reviews-google .reviews-inner .review { flex: 0 0 calc(100% / var(--review-columns,4)) !important; max-width: calc(100% / var(--review-columns,4)) !important; min-width: 0; scroll-snap-align: start; }
.reviews .ll-review-expanded .review-text { max-height: none !important; height: auto !important; -webkit-line-clamp: unset !important; }
.reviews .review-more span { cursor: pointer; }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } *,*::before,*::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
