/* Full-bleed blocks use the available width, excluding a persistent scrollbar.
   Nested full-width containers stay inside their parent rather than breaking out. */
@supports (width:100cqw) {
  #content { container-type:inline-size; }
  #content .entry-content > .alignfull {
    width:100cqw!important; max-width:100cqw!important;
    margin-inline:calc((100% - 100cqw) / 2)!important;
  }
  #content .entry-content .wp-block-uagb-container .wp-block-uagb-container.alignfull {
    width:100%!important; max-width:100%!important; margin-inline:0!important;
  }
}
/* Spectra's native tablet range ends at 976px. Continue the same shared
   composition through landscape tablets, without affecting desktop. */
@media (min-width:977px) and (max-width:1024px) {
  .entry-content .wp-block-uagb-container:is(.ruelle-service-grid,.ruelle-split-section,.ruelle-contact-section,.ruelle-logo-section) { padding:64px 32px; min-height:0; }
  .entry-content .wp-block-uagb-container.ruelle-intro-section { padding:72px 32px 0; }
  .entry-content .wp-block-uagb-container:is(.ruelle-contact-inner,.ruelle-copy-column,.ruelle-contact-copy,.ruelle-portrait-column,.ruelle-about-section) { min-height:0; padding:0; }
  .entry-content .wp-block-uagb-container.ruelle-service-intro.alignfull { padding:64px 32px; }
  .entry-content .wp-block-uagb-container.ruelle-home-hero { min-height:740px; padding:100px 32px 72px; }
  .ruelle-home-hero h1.uagb-heading-text { font-size:42px; }
  .ruelle-home-hero h3.uagb-heading-text { font-size:22px; }
}
/* Ruelle: responsive composition only. Content stays in Gutenberg/Spectra.
   Simple sizing/spacing is saved in each block's Tablet/Mobile controls.
   These shared classes handle the layouts that span several block types. */
@media (max-width: 1024px) {
  .entry-content :is(.wp-block-uagb-container, .uagb-container-inner-blocks-wrap, .wp-block-column, .wp-block-uagb-advanced-heading, .srfm-form-container) { min-width: 0; }
  .entry-content :is(h1,h2,h3,p,summary,a) { overflow-wrap: break-word; }
  .entry-content :is(.wp-block-uagb-buttons, .uagb-buttons__wrap) { max-width: 100%; }
  .entry-content a.uagb-buttons-repeater { max-width: 100%; min-height: 48px; white-space: normal; }
  .entry-content .uagb-button__link { white-space:normal; line-height:1.3; }

  .wp-block-uagb-container.ruelle-service-grid > .uagb-container-inner-blocks-wrap { column-gap:24px!important; }
  .wp-block-uagb-container.ruelle-service-intro > .uagb-container-inner-blocks-wrap,
  .wp-block-uagb-container.ruelle-service-intro { column-gap:32px; row-gap:32px; }
  .ruelle-service-intro .wp-block-extrnd-slider { min-width:0; max-width:100%; }
  .ruelle-contact-copy > p { font-size:22px!important; line-height:1.5; }
  .ruelle-contact-inner > .uagb-container-inner-blocks-wrap { gap:32px; }
  .ruelle-content-portable .ruelle-content-text { padding:32px!important; }
  .ruelle-content-portable .wp-block-columns { align-items:stretch!important; }
  .ruelle-content-portable .ruelle-content-image { height:100%; }
  .ruelle-content-portable .ruelle-content-image img { height:100%!important; object-fit:cover; }

  :is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages { padding:72px 32px 56px!important; }
  :is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages > .uagb-container-inner-blocks-wrap { grid-template-columns:1fr; max-width:680px!important; gap:28px!important; }
  :is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages .ruelle-package-title { font-size:38px; }
  :is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages .ruelle-funding summary { padding:24px; font-size:26px; }
  :is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages .ruelle-funding > :not(summary) { margin:20px 24px; }
  .ruelle-web-cases.wp-block-group { padding:64px 24px; }
  .ruelle-web-cases .ruelle-cases-title { font-size:38px; }
  .rb-service-copy > p { font-size:24px!important; line-height:1.5; }
  .rb-services.rb-services { min-width:0; }
  .rb-services summary { min-height:44px; display:flex; align-items:center; }
  .ruelle-portrait-column .wp-block-uagb-image { display:flex!important; }
  .ruelle-portrait-column :is(figure,img) { width:100%!important; height:auto!important; max-width:560px; margin-inline:auto; }
}
@media (min-width:768px) and (max-width:1024px) {
  .ruelle-home-hero .wp-block-uagb-image.uag-hide-tab { display:flex!important; }
  .ruelle-home-hero .wp-block-uagb-image :is(figure,img) { max-width:100%; height:auto!important; }
}
@media (max-width: 1024px) {
  #ast-mobile-header .site-branding,
  #ast-mobile-header .menu-toggle { margin-bottom:0!important; }
  #ast-mobile-header .ast-above-header-bar { min-height:88px; padding-inline:24px; }
  #ast-mobile-header .custom-logo { width:180px; max-width:50vw; height:auto; }
  #ast-mobile-header .menu-toggle { color:#5e4040; min-width:48px; min-height:48px; }
  #ast-mobile-header .menu-toggle svg { fill:currentColor; }
  #ast-mobile-header .ast-mobile-header-content { max-height:calc(100dvh - 134px); overflow-y:auto; }
  #ast-mobile-header .menu-link { min-height:48px; padding:12px 24px; white-space:normal; }

  .ruelle-contact-inner.ruelle-contact-inner > .uagb-container-inner-blocks-wrap,
  .ruelle-split-section.ruelle-split-section > .uagb-container-inner-blocks-wrap,
  .ruelle-service-intro.ruelle-service-intro > .uagb-container-inner-blocks-wrap { flex-direction:column!important; align-items:stretch!important; gap:32px!important; }
  .ruelle-service-intro.ruelle-service-intro { flex-direction:column; align-items:stretch; }
  .ruelle-contact-inner > .uagb-container-inner-blocks-wrap > *,
  .ruelle-split-section > .uagb-container-inner-blocks-wrap > *,
  .ruelle-service-intro > .uagb-container-inner-blocks-wrap > *,
  .ruelle-service-intro > :is(.wp-block-uagb-container,.wp-block-extrnd-slider) { width:100%!important; max-width:100%!important; }
  .ruelle-content-portable .wp-block-columns,
  .ruelle-service-intro .wp-block-columns { flex-direction:column; flex-wrap:nowrap!important; }
  .entry-content .ruelle-service-intro .wp-block-columns > .wp-block-column { flex-basis:auto!important; width:100%; }
  .ruelle-service-intro .wp-block-extrnd-slider { margin-inline:auto; }
  .entry-content .ruelle-content-portable .wp-block-columns > .wp-block-column { flex-basis:auto!important; width:100%; }
  .ruelle-content-portable .wp-block-column:has(.ruelle-content-image) { order:-1; }
  .ruelle-content-portable .ruelle-content-image img { height:auto!important; max-height:560px; }
  .ruelle-service-intro .wp-block-extrnd-slider { max-width:560px!important; align-self:center; }
  .ruelle-split-section > .uagb-container-inner-blocks-wrap > .wp-block-uagb-image { max-width:460px!important; align-self:center; }
}
@media (max-width: 767px) {
  .ruelle-service-grid .uagb-heading-text { line-height:1.3; }
  .ruelle-home-hero-copy .wp-block-uagb-advanced-heading { width:100%; max-width:none; }
  .ruelle-home-hero-copy .wp-block-uagb-advanced-heading h1.uagb-heading-text { text-align:left; font-size:clamp(26px,8vw,34px); }
  .ruelle-contact-copy > p { font-size:20px!important; }
  .ruelle-contact-section .srfm-form-container { --srfm-form-padding-left:20px; --srfm-form-padding-right:20px; }
  .ruelle-content-portable .ruelle-content-text { padding:40px 24px!important; }
  :is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages { padding:56px 24px!important; }
  :is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages .ruelle-package-title { font-size:34px; }
  :is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages .ruelle-funding summary { font-size:24px; padding:20px; }
  :is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages .ruelle-funding > :not(summary) { margin:20px; }
  .ruelle-web-cases.wp-block-group { padding:48px 4px; }
  .ruelle-web-cases .ruelle-cases-title { font-size:34px; }
  .ruelle-web-cases .wp-block-columns { gap:40px; }
  .rb-services.rb-services { grid-template-columns:1fr; }
  .rb-services .rb-service-copy { padding:48px 24px; }
  .rb-services .rb-service-copy h2 { font-size:36px; }
  .rb-services .rb-service-copy > p { font-size:22px!important; }
  .rb-services .rb-service-art { min-height:0; height:clamp(340px,100vw,480px); }
  .rb-services summary { font-size:24px; }
  .site-footer .ast-builder-grid-row { padding-inline:24px; }
  .site-footer :is(p,h5,a) { overflow-wrap:anywhere; }
  .ruelle-content-social__strip .ruelle-content-wave__pause { min-height:44px; min-width:44px; }
}
@media (prefers-reduced-motion: reduce) {
  .entry-content [data-aos] { opacity:1!important; transform:none!important; transition:none!important; }
  .entry-content .dbw-slider-track { animation:none!important; flex-wrap:wrap; width:100%!important; justify-content:center; }
  .entry-content .dbw-slider-track .dbw-slider-item { max-width:100%; }
}
/* Very narrow phones need the portrait above the title, not a squeezed word. */
@media (max-width:360px) {
  .ruelle-home-hero-copy > .wp-block-group.is-layout-flex { flex-direction:column; gap:20px; }
  .ruelle-home-hero-copy > .wp-block-group > .wp-block-uagb-image { width:100px!important; }
  .ruelle-home-hero-copy > .wp-block-group > .wp-block-uagb-advanced-heading { width:100%!important; flex:none; }
  .ruelle-home-hero-copy .wp-block-uagb-advanced-heading h1.uagb-heading-text { text-align:center; font-size:30px; }
}

/* Mobile repair: keep editable media visible and align the existing packages. */
:is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages > .uagb-container-inner-blocks-wrap { align-items:stretch!important; }
:is(.entry-content,.editor-styles-wrapper) .wp-block-uagb-container.ruelle-web-packages > .uagb-container-inner-blocks-wrap > .wp-block-uagb-container { align-self:stretch!important; height:auto!important; justify-content:flex-start!important; }
.entry-content .ruelle-service-intro .wp-block-extrnd-slider .wp-block-uagb-image { opacity:1!important; transform:none!important; }
@media(max-width:1024px) {
  .entry-content .ruelle-page-banner { background-position:center!important; background-size:cover!important; background-attachment:scroll!important; }
  .entry-content .ruelle-split-section.ruelle-split-section { padding-top:96px!important; padding-bottom:72px!important; }
  .entry-content .ruelle-split-section > .uagb-container-inner-blocks-wrap > .wp-block-uagb-image { display:flex!important; opacity:1!important; transform:none!important; margin:0 auto!important; }
  .entry-content .ruelle-split-section > .uagb-container-inner-blocks-wrap > .wp-block-uagb-image :is(figure,img) { width:100%!important; height:auto!important; max-height:560px; object-fit:cover; }
  .entry-content .rb-services .rb-service-copy { padding:64px 24px!important; }
  .entry-content .ruelle-service-intro .wp-block-extrnd-slider :is(figure,img) { width:100%!important; height:auto!important; }
  .entry-content .ruelle-web-packages > .uagb-container-inner-blocks-wrap > .wp-block-uagb-container { padding:32px 24px!important; min-height:0!important; }
}

/* Content must remain visible if scroll-animation scripts fail to initialize. */
.entry-content .ruelle-web-packages [data-aos],
.entry-content .ruelle-web-packages.aos-init { opacity:1!important; transform:none!important; visibility:visible!important; }
@media(max-width:1024px) {
 body:not(.home) #ast-mobile-header :is(.ast-above-header-bar,.ast-mobile-header-content,.main-header-menu,.menu-link) { background-color:#f6f3ec!important; }
 #ast-mobile-header .ast-above-header-bar > .ast-builder-grid-row { display:flex; flex-direction:column; justify-content:center; gap:4px; padding-block:20px 8px; }
 #ast-mobile-header .site-header-section { justify-content:center; margin:0; }
 #ast-mobile-header .custom-logo { max-width:70vw; width:200px; }
 .entry-content .uagb-block-a44cf10d .uagb-buttons__wrap { flex-direction:column!important; align-items:stretch!important; gap:16px!important; }
 .entry-content .uagb-block-a44cf10d :is(.wp-block-uagb-buttons-child,.uagb-button__wrapper,.uagb-buttons-repeater) { width:100%!important; }
 .entry-content .ruelle-web-packages .ruelle-package-title { max-width:100%; margin:0!important; font-size:clamp(28px,8vw,38px)!important; overflow-wrap:break-word; line-height:1.2; }
 .entry-content .ruelle-web-packages { padding-top:100px!important; }
}

/* Compact mobile CTAs, with space below the overlaid home header. */
@media(max-width:767px) {
 body.home .entry-content .ruelle-home-hero { padding-top:300px!important; }
 body.home .entry-content .uagb-block-a08e4061 { display:none!important; }
 .entry-content .ruelle-service-grid :is(.uagb-buttons__wrap,.wp-block-uagb-buttons-child,.uagb-button__wrapper,a.uagb-buttons-repeater),
 .entry-content .uagb-block-a44cf10d :is(.wp-block-uagb-buttons-child,.uagb-button__wrapper,.uagb-buttons-repeater) { width:auto!important; max-width:100%; min-width:0!important; }
 .entry-content .ruelle-service-grid .uagb-buttons__wrap { justify-content:center!important; }
 .entry-content .ruelle-service-grid a.uagb-buttons-repeater { height:auto; min-height:48px; }
 .entry-content .uagb-block-a44cf10d .uagb-buttons__wrap { align-items:center!important; }
}

/* Final mobile refinements. */
@media(max-width:767px) {
 body.home .entry-content .ruelle-home-hero.ruelle-home-hero { padding-top:360px!important; }
 .entry-content .ruelle-service-grid .wp-block-uagb-buttons { display:flex!important; justify-content:center!important; }
 .entry-content .wp-block-uagb-buttons > .uagb-buttons__wrap { margin-inline:auto!important; justify-content:center!important; }
 body.page-id-105 .entry-content .ruelle-split-section > .uagb-container-inner-blocks-wrap > .wp-block-uagb-image img { height:340px!important; max-height:340px!important; object-fit:cover; object-position:center 15%; }
}
@media(max-width:1024px) {
 body #ast-mobile-header .ast-mobile-header-content,
 body #ast-mobile-header .main-header-menu { background:#5e4040!important; }
 body #ast-mobile-header .main-header-menu .menu-link { text-align:center!important; justify-content:center; color:#f6f3ec!important; background:#5e4040!important; border-color:rgba(246,243,236,.18); }
 body #ast-mobile-header .main-header-menu .menu-link:hover,
 body #ast-mobile-header .main-header-menu .menu-link:focus-visible,
 body #ast-mobile-header .main-header-menu .current-menu-item > .menu-link { color:#5e4040!important; background:#f4c8d2!important; }
}
@media(max-width:767px) {
 body.home .entry-content .ruelle-home-hero-mobile { padding-top:200px!important; }
}
/* Final section rhythm and the existing Branding logo. */
.ruelle-content-wave__pause { display:none!important; }
body.page-id-105 .entry-content .ruelle-split-section.ruelle-split-section { padding-bottom:104px!important; }
body.page-id-105 .entry-content .rb-services .rb-service-copy { padding-top:88px!important; }
body.page-id-220 .entry-content .uagb-block-11d722b3 { opacity:1!important; transform:none!important; }
@media(max-width:767px) {
 body.page-id-134 .entry-content .wp-block-uagb-container.ruelle-web-packages { padding-top:140px!important; }
 .entry-content .uagb-block-a44cf10d .uagb-buttons__wrap { align-items:flex-start!important; margin-left:0!important; margin-right:auto!important; }
 body.page-id-220 .entry-content .uagb-block-11d722b3 { display:flex!important; justify-content:center; margin:32px auto 0!important; }
 body.page-id-220 .entry-content .uagb-block-11d722b3 :is(figure,img) { width:260px!important; max-width:100%!important; height:auto!important; object-fit:contain; }
}
/* Footer alignment and a little breathing room after the home CTA. */
.site-footer .wp-block-social-links { justify-content:center!important; margin-inline:auto!important; }
@media(max-width:767px) {
 body.home .entry-content .ruelle-home-hero-mobile { padding-bottom:112px!important; }
}
/* Desktop navigation: services | logo | about, contact, social. */
@media(min-width:1025px) {
 #ast-desktop-header .ast-builder-grid-row { position:relative; display:block; min-height:112px; }
 #ast-desktop-header .site-header-section-left { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2; }
 #ast-desktop-header .custom-logo { width:220px; max-width:220px; }
 #ast-desktop-header .site-header-section-right { display:block; }
 #ast-desktop-header .ast-builder-menu-1,
 #ast-desktop-header .ast-main-header-bar-alignment,
 #ast-desktop-header .main-header-bar-navigation,
 #ast-desktop-header nav,
 #ast-desktop-header .main-navigation { display:contents; }
 #ast-desktop-header .main-header-menu { position:static; display:block; margin:0; }
 #ast-desktop-header .main-header-menu > li { position:absolute; top:50%; transform:translateY(-50%)!important; margin:0!important; }
 #ast-desktop-header .menu-item-21 { right:calc(50% + 340px); }
 #ast-desktop-header .menu-item-22 { right:calc(50% + 231px); }
 #ast-desktop-header .menu-item-23 { right:calc(50% + 140px); }
 #ast-desktop-header .menu-item-25 { left:calc(50% + 140px); }
 #ast-desktop-header .main-header-menu > li:has(a[href$="#kontakt"]) { left:calc(50% + 247px); }
 #ast-desktop-header .main-header-menu .menu-link { padding:12px 0; font-size:14px; line-height:1.4; white-space:nowrap; color:#5e4040; transition:color .15s ease; }
 #ast-desktop-header .main-header-menu :is(li,a,a::before,a::after):hover,
 #ast-desktop-header .main-header-menu .menu-link { scale:1!important; }
 #ast-desktop-header .main-header-menu .menu-link,
 #ast-desktop-header .main-header-menu .menu-link:hover { transform:none!important; }
 #ast-desktop-header .main-header-menu .menu-link:hover,
 #ast-desktop-header .main-header-menu .menu-link:focus-visible,
 #ast-desktop-header .main-header-menu .current-menu-item > .menu-link { color:#da257a; }
 #ast-desktop-header [data-section="section-hb-social-icons-1"] { position:absolute; left:calc(50% + 337px); top:50%; transform:translateY(-50%); margin:0; padding:0; }
 #ast-desktop-header .header-social-inner-wrap { display:flex; flex-wrap:nowrap; align-items:center; gap:12px; }
 #ast-desktop-header .header-social-item { margin:0; }
}
/* Larger desktop labels, consistent brown with pink hover/focus. */
@media(min-width:1025px) {
 #ast-desktop-header .main-header-menu .menu-link { font-size:16px!important; color:#5e4040!important; }
 #ast-desktop-header .main-header-menu .menu-link:hover,
 #ast-desktop-header .main-header-menu .menu-link:focus-visible { color:#da257a!important; }
 #ast-desktop-header .menu-item-21 { right:calc(50% + 364px); }
 #ast-desktop-header .menu-item-22 { right:calc(50% + 242px); }
 #ast-desktop-header .menu-item-23 { right:calc(50% + 140px); }
 #ast-desktop-header .main-header-menu > li:has(a[href$="#kontakt"]) { left:calc(50% + 247px); }
 #ast-desktop-header [data-section="section-hb-social-icons-1"] { left:calc(50% + 345px); }
}
@media(min-width:768px) {
 .entry-content .ruelle-service-grid .wp-block-uagb-buttons { display:flex!important; justify-content:center!important; }
 .entry-content .ruelle-service-grid :is(.uagb-buttons__wrap,.wp-block-uagb-buttons-child,.uagb-button__wrapper,a.uagb-buttons-repeater) { width:auto!important; max-width:100%; }
}
#tjanster,#kontakt,#pris { scroll-margin-top:40px; }
@media(prefers-reduced-motion:no-preference) { html { scroll-behavior:smooth; } }
/* Image/text sections: let columns shrink and keep imagery inside its frame. */
.entry-content :is(.rb-services,.ruelle-content-portable,.ruelle-split-section,.ruelle-service-intro) :is(.wp-block-column,.wp-block-uagb-container,.rb-service-art,.rb-service-copy) { min-width:0; }
.entry-content .rb-services.rb-services { grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); }
.entry-content .rb-service-art { overflow:hidden; isolation:isolate; }
.entry-content .rb-service-image { width:100%; max-width:100%; overflow:hidden; }
.entry-content .rb-service-image img { max-width:100%; object-fit:cover; }
.entry-content :is(.ruelle-content-portable,.ruelle-split-section,.ruelle-service-intro) .wp-block-uagb-image { max-width:100%; }
.entry-content :is(.ruelle-content-portable,.ruelle-split-section,.ruelle-service-intro) .wp-block-uagb-image__figure { max-width:100%; overflow:hidden; border-radius:inherit; }
.entry-content :is(.ruelle-content-portable,.ruelle-split-section,.ruelle-service-intro) img { max-width:100%; }
.entry-content .ruelle-content-image { overflow:hidden; }
@media(max-width:767px) {
 .entry-content .rb-services.rb-services { grid-template-columns:minmax(0,1fr); }
}
/* Let the text define a paired row's height; photos fill that same frame. */
@media(min-width:1025px) {
 .entry-content .ruelle-content-row { align-items:stretch!important; }
 .entry-content .ruelle-content-row > .wp-block-column:has(> .ruelle-content-image) { position:relative; min-height:360px; }
 .entry-content .ruelle-content-row > .wp-block-column > .ruelle-content-image { position:absolute; inset:0; width:100%; height:100%!important; }
 .entry-content .ruelle-content-row .ruelle-content-image img { width:100%!important; height:100%!important; max-height:none!important; aspect-ratio:auto!important; object-fit:cover; }
}
.entry-content .rb-service-art { align-self:stretch; min-width:0; }
.entry-content .rb-service-art > .rb-service-image { position:absolute; inset:0; margin:0!important; height:100%!important; width:100%; }
.entry-content .rb-service-image img { height:100%!important; width:100%!important; aspect-ratio:auto!important; object-fit:cover; }
@media(max-width:1024px) {
 .entry-content .ruelle-content-row .ruelle-content-image { position:relative; height:auto!important; }
 .entry-content .ruelle-content-row .ruelle-content-image img { height:auto!important; max-height:560px; object-fit:cover; object-position:center 25%!important; }
}
