/* Public styles */
#gsm3-hamburger{
 position:fixed; display:flex; align-items:center; justify-content:center;
 cursor:pointer; user-select:none; transition:transform .2s ease, box-shadow .2s ease;
}
#gsm3-hamburger .gsm3-bar{display:block;width:70%;height:2px;background:currentColor;margin:3px 0;border-radius:2px}
#gsm3-hamburger .gsm3-btn-content{display:block;width:100%;text-align:center;line-height:1.1}

#gsm3-panel{
 position:fixed; top:0; right:0; height:100vh; transform:translateX(100%);
 background: var(--gsm3-panel-bg); color: var(--gsm3-text);
 -webkit-backdrop-filter: blur(var(--gsm3-blur)); backdrop-filter: blur(var(--gsm3-blur));
 border-left: var(--gsm3-border); border-radius: var(--gsm3-radius) 0 0 var(--gsm3-radius);
 box-shadow: var(--gsm3-shadow);
 display:flex; flex-direction:column; padding: var(--gsm3-pad);
 font-family: var(--gsm3-font); font-size: var(--gsm3-base);
 transition: transform .35s ease;
 width: 0; /* width set via inline CSS */
}
#gsm3-panel.gsm3-open{ transform: translateX(0); }
#gsm3-panel .gsm3-inner{ position:relative; display:flex; flex-direction:column; gap: var(--gsm3-gap); height:100%; overflow:auto; }
.gsm3-toptext,.gsm3-bottomtext{ color: var(--gsm3-muted); }

.gsm3-menu{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap: var(--gsm3-menu-gap); }
.gsm3-item{ }
.gsm3-link{ display:block; padding: var(--gsm3-menu-pad); border-radius: var(--gsm3-menu-radius); background: var(--gsm3-menu-bg); color: var(--gsm3-menu-color); text-decoration:none !important; transition:background .2s ease, color .2s ease; }
.gsm3-link:hover{ background: var(--gsm3-menu-hover-bg); color: var(--gsm3-menu-hover-color); text-decoration:none !important; }
.gsm3-sub{ list-style:none; margin: 6px 0 0 var(--gsm3-sub-indent); padding:0; display:flex; flex-direction:column; gap: calc(var(--gsm3-menu-gap) * .7); }

.gsm3-section-title{ font-size: var(--gsm3-head); margin: 4px 0 }
.gsm3-rand-slot{ display:flex; flex-direction:column; gap:10px }
/* Aspect ratio handling */
.gsm3-thumb-img{ display:block; width:100%; height:var(--gsm3-featured-h); object-fit:cover; border-radius:12px; border: var(--gsm3-border); }
.gsm3-thumb-img[data-ar="1"]{ height:auto; aspect-ratio: var(--gsm3-featured-ar); }
.gsm3-rand-title{ display:block; font-weight:700; text-decoration:underline; color: var(--gsm3-text); }
.gsm3-rand-title:hover{ text-decoration:none; }
.gsm3-rand-excerpt{ color: var(--gsm3-muted); }

body.gsm3-locked{ overflow:hidden }


/* Menu item description */
.gsm3-item-desc{
    margin-top: var(--gsm3-desc-mt);
    font-size: var(--gsm3-desc-size);
    color: var(--gsm3-desc-color);
    font-weight: var(--gsm3-desc-weight);
    line-height: 1.4;
}


/* Inline description after menu title */
.gsm3-item-desc-inline{
    display:inline-block;
    margin-left: var(--gsm3-desc-gap);
    font-size: var(--gsm3-desc-size);
    color: var(--gsm3-desc-color);
    font-weight: var(--gsm3-desc-weight);
    line-height: 1.2;
    vertical-align: baseline;
    opacity: 0.9;
}
/* Keep legacy block class working */
.gsm3-item-desc{
    margin-top: var(--gsm3-desc-mt);
    font-size: var(--gsm3-desc-size);
    color: var(--gsm3-desc-color);
    font-weight: var(--gsm3-desc-weight);
    line-height: 1.4;
}

/* Ensure bottom text sits at the bottom of the panel */
.gsm3-bottomtext{ margin-top:auto; }


/* Embedded iFrame block */
.gsm3-iframe-block{ margin-top: var(--gsm3-gap); }
.gsm3-iframe-title{ font-size: var(--gsm3-head); font-weight: 600; line-height: 1.2; margin: .5em 0 .25em; }
.gsm3-iframe-text{ font-size: var(--gsm3-base); line-height: 1.5; opacity: .9; margin: 0 0 .5em; }
.gsm3-iframe-wrap{ width:100%; margin: .5em 0; }
.gsm3-iframe-wrap iframe{ width:100%; height:360px; border:0; display:block; border-radius: var(--gsm3-radius); background: rgba(0,0,0,0.2); }


/* Hide UI when page is embedded as an iframe */
html.gsm3-in-iframe #gsm3-hamburger,
html.gsm3-in-iframe #gsm3-panel{ display:none !important; }

/* Responsive iframe ratio wrapper */
.gsm3-iframe-ratio{ position:relative; }
.gsm3-iframe-ratio > iframe{ position:absolute; top:0; left:0; width:100%; height:100%; }


/* Keep hamburger in DOM while open for proximity math */
body.gsm3-locked #gsm3-hamburger{ opacity:0 !important; pointer-events:none !important; }


