/* Photobooth Loop Canvas — design shell only. */
:root{
  --pbl-ink:#090909;
  --pbl-flash:#f8f8f4;
  --pbl-lime:#c8ff00;
  --pbl-coral:#ff3158;
  --pbl-ice:#73e7ff;
  --pbl-violet:#8f76ff;
  --pbl-muted:#727272;
  --pbl-line:#dcdcd5;
  --pbl-radius:30px;
  --pbl-shadow:0 28px 90px rgba(0,0,0,.18);
  --pbl-content:1240px;
  --pbl-display:"Arial Black",Impact,Arial,sans-serif;
  --pbl-body:Inter,Arial,Helvetica,sans-serif;
  --pbl-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--pbl-flash);color:var(--pbl-ink);font-family:var(--pbl-body);line-height:1.43;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
::selection{background:var(--pbl-lime);color:var(--pbl-ink)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.pbl-site-header{position:relative;z-index:60;background:rgba(9,9,9,.96);color:#fff;border-bottom:1px solid #292929}
.pbl-site-header__inner{width:min(var(--pbl-content),calc(100% - 40px));min-height:74px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:28px}
.pbl-site-branding .custom-logo{display:block;width:auto;max-height:48px}
.pbl-site-title{font-family:var(--pbl-display);font-size:1.25rem;text-transform:uppercase;letter-spacing:-.03em}
.pbl-primary-navigation ul,.pbl-footer-navigation ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:5px}
.pbl-primary-navigation a{display:block;padding:11px 13px;border-radius:999px;font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.pbl-primary-navigation a:hover,.pbl-primary-navigation .current-menu-item>a{background:var(--pbl-lime);color:var(--pbl-ink)}
.pbl-primary-navigation .loop-cta>a{background:var(--pbl-coral);color:#fff}
.pbl-menu-toggle{display:none;width:44px;height:44px;border:1px solid #333;border-radius:14px;background:#151515;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.pbl-menu-toggle span:not(.screen-reader-text){display:block;width:20px;height:2px;background:var(--pbl-lime)}
.pbl-site-footer{background:var(--pbl-ink);color:#aaa;padding:42px 0}
.pbl-site-footer__inner{width:min(var(--pbl-content),calc(100% - 40px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}
.pbl-site-footer__identity{display:flex;gap:12px;align-items:center}.pbl-site-footer__identity strong{color:#fff}
.pbl-footer-navigation a{color:#bbb;padding:8px}
.pbl-main,.pbl-entry-content{width:100%}
.pbl-content-shell{width:min(760px,calc(100% - 40px));margin:72px auto}
.pbl-entry-title{font-family:var(--pbl-display);font-size:clamp(2.7rem,6vw,5rem);line-height:.92;letter-spacing:-.055em;text-transform:uppercase}
.pbl-entry-thumbnail{margin:32px 0;border-radius:var(--pbl-radius);overflow:hidden}
.pbl-error-page{min-height:75vh;display:grid;place-items:center;padding:80px 20px}.pbl-error-page__inner{text-align:center}.pbl-error-page h1{font-family:var(--pbl-display);font-size:clamp(3rem,8vw,7rem);line-height:.9;text-transform:uppercase}

/* True full-width support for Elementor and WordPress full-bleed content. */
.pbl-site,
.pbl-main,
.pbl-entry-content,
.pbl-fullwidth-content,
.pbl-main--fullwidth{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}
.pbl-fullwidth-canvas .pbl-main,
.pbl-elementor-edge-to-edge .pbl-main,
.pbl-fullwidth-canvas .pbl-entry-content,
.pbl-elementor-edge-to-edge .pbl-entry-content{
  overflow:visible;
}
/* Elementor legacy sections. */
.pbl-fullwidth-canvas .elementor,
.pbl-fullwidth-canvas .elementor-section-wrap,
.pbl-fullwidth-canvas .elementor-section,
.pbl-elementor-edge-to-edge .elementor,
.pbl-elementor-edge-to-edge .elementor-section-wrap,
.pbl-elementor-edge-to-edge .elementor-section{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}
.pbl-fullwidth-canvas .elementor-section.elementor-section-boxed > .elementor-container,
.pbl-elementor-edge-to-edge .elementor-section.elementor-section-boxed > .elementor-container{
  width:100%;
  max-width:100%;
}
/* Elementor Flexbox / Grid Containers, including newer e-con markup. */
.pbl-fullwidth-canvas .e-con,
.pbl-elementor-edge-to-edge .e-con{
  --container-max-width:100%;
}
.pbl-fullwidth-canvas .e-con.e-con-boxed > .e-con-inner,
.pbl-elementor-edge-to-edge .e-con.e-con-boxed > .e-con-inner{
  width:100%;
  max-width:100%;
}
/* WordPress/Gutenberg full and wide alignment support. */
.pbl-entry-content > .alignfull,
.pbl-fullwidth-content > .alignfull,
.pbl-main--fullwidth .alignfull{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
.pbl-entry-content > .alignwide,
.pbl-fullwidth-content > .alignwide{
  width:min(var(--pbl-content),calc(100vw - 40px));
  max-width:none;
  margin-left:auto;
  margin-right:auto;
}
/* Explicit helpers for Elementor containers. */
.loop-fullwidth,
.loop-full-bleed{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
.loop-viewport-width{
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
}
.loop-container{
  width:min(var(--pbl-content),calc(100% - 40px));
  max-width:var(--pbl-content);
  margin-inline:auto;
}

/* Elementor utility classes. Apply in Advanced > CSS Classes. */
.loop-section{min-height:100vh;padding:10vh 6vw;display:flex;align-items:center;position:relative;overflow:hidden}
.loop-section--auto{min-height:auto}.loop-section--dark{background:var(--pbl-ink);color:#fff}.loop-section--flash{background:var(--pbl-flash)}.loop-section--lime{background:var(--pbl-lime)}.loop-section--coral{background:var(--pbl-coral);color:#fff}.loop-section--ice{background:var(--pbl-ice)}.loop-section--violet{background:var(--pbl-violet);color:#fff}
.loop-container{width:min(var(--pbl-content),calc(100% - 40px));max-width:var(--pbl-content);margin-inline:auto}
.loop-display{font-family:var(--pbl-display);font-size:clamp(3.5rem,9.2vw,7.875rem);font-weight:900;line-height:.84;letter-spacing:-.065em;text-transform:uppercase}
.loop-section-title{font-family:var(--pbl-display);font-size:clamp(2.7rem,6.3vw,5.25rem);font-weight:900;line-height:.88;letter-spacing:-.055em;text-transform:uppercase}
.loop-kicker{font-family:var(--pbl-mono);font-size:.75rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase;color:var(--pbl-coral)}
.loop-section--dark .loop-kicker{color:var(--pbl-lime)}
.loop-lead{font-size:clamp(1.15rem,2.3vw,1.7rem);max-width:830px;color:var(--pbl-muted)}.loop-section--dark .loop-lead{color:#cfcfc9}
.loop-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,5vw,70px)}
.loop-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.loop-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.loop-card{border:2px solid var(--pbl-ink);border-radius:25px;background:#fff;box-shadow:8px 8px 0 var(--pbl-ink);overflow:hidden}
.loop-sticker{display:inline-flex;padding:8px 11px;border:2px solid currentColor;border-radius:999px;font-size:.75rem;font-weight:900;text-transform:uppercase}
.loop-button,.pbl-button{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:999px;background:var(--pbl-lime);color:var(--pbl-ink);font-weight:900;text-transform:uppercase;letter-spacing:.045em;border:2px solid var(--pbl-lime)}
.loop-button--coral{background:var(--pbl-coral);border-color:var(--pbl-coral);color:#fff}.loop-button--dark{background:var(--pbl-ink);border-color:var(--pbl-ink);color:#fff}
.loop-hard-shadow{box-shadow:10px 10px 0 var(--pbl-ink)}.loop-rounded{border-radius:var(--pbl-radius);overflow:hidden}.loop-direct-flash img{filter:contrast(1.05) saturate(1.12)}
.pbl-reveal{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s ease}.pbl-reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){.pbl-menu-toggle{display:flex}.pbl-primary-navigation{display:none;position:absolute;top:70px;left:10px;right:10px;background:#111;border:1px solid #333;border-radius:20px;padding:12px}.pbl-site-header.is-menu-open .pbl-primary-navigation{display:block}.pbl-primary-navigation ul{align-items:stretch;flex-direction:column}.pbl-primary-navigation a{text-align:center}.pbl-site-footer__inner{align-items:flex-start;flex-direction:column}.pbl-footer-navigation ul{flex-wrap:wrap}.loop-section{min-height:auto;padding:72px 22px}.loop-grid-2,.loop-grid-3,.loop-grid-4{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pbl-reveal{opacity:1;transform:none;transition:none}}
