/* GreekReel / one-screen landing.
   The four decisions and the closing baseline fit inside the viewport:
   no false suggestion of more content below the fold. Exception: tiny
   landscape devices retain ordinary scrolling rather than clipping cards.
   Booking and custom builder URLs are NOT single-screen pages. */
html.gr-entry-landing{height:100%;overflow:hidden;scrollbar-width:none}
html.gr-entry-landing::-webkit-scrollbar{display:none}
html.gr-entry-landing body.gr-home{
  display:flex;flex-direction:column;
  height:100svh;min-height:0;overflow:hidden;
}
html.gr-entry-landing body.gr-home>.site-header{flex:none}
html.gr-entry-landing body.gr-home>main{
  display:flex;flex-direction:column;flex:1 1 auto;min-height:0;
}
html.gr-entry-landing body.gr-home .audience-gateway{
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr);
  flex:1 1 auto;
  width:min(1320px,calc(100% - clamp(32px,7vw,120px)));
  max-width:none;min-height:0!important;height:auto;
  padding-top:clamp(11px,2.4svh,32px);
  padding-bottom:clamp(12px,1.8svh,24px);
}
html.gr-entry-landing body.gr-home .gateway-intro{
  margin-bottom:clamp(8px,1.6svh,16px);
}
html.gr-entry-landing body.gr-home .gateway-intro h1{
  font-size:clamp(1.65rem,min(4vw,5.5svh),3.55rem);
  line-height:1.01;max-width:21ch;
}
html.gr-entry-landing body.gr-home .gateway-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-rows:minmax(0,1fr);
  gap:clamp(7px,0.85vw,12px);
  min-height:0;height:100%;
}
html.gr-entry-landing body.gr-home .gateway-card{
  min-height:0!important;height:100%!important;
}
html.gr-entry-landing body.gr-home .site-footer{
  flex:none;position:relative;
  display:block!important;
  padding:7px 0 9px!important;
  background:transparent!important;
  border-top:1px solid rgba(255,255,255,.19);
}
html.gr-entry-landing body.gr-home .footer-row{min-height:20px}
html.gr-entry-landing body.gr-home .footer-meta{font-size:.72rem!important;letter-spacing:.01em}
html.gr-entry-landing body.gr-home .footer-meta>span:first-of-type{display:inline!important}
@media(max-width:1050px){
 html.gr-entry-landing body.gr-home .gateway-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
 }
}
@media(max-width:650px){
 html.gr-entry-landing body.gr-home .audience-gateway{
  width:calc(100% - 32px);
  padding-top:clamp(12px,2svh,20px);padding-bottom:11px;
 }
 html.gr-entry-landing body.gr-home .gateway-intro h1{
  font-size:clamp(1.45rem,min(7vw,4.3svh),2.4rem);
  max-width:23ch;
 }
 html.gr-entry-landing body.gr-home .gateway-intro{margin-bottom:10px}
 html.gr-entry-landing body.gr-home .gateway-card .gateway-title{
  left:12px;right:9px;bottom:clamp(11px,2.5svh,24px);
  font-size:clamp(1rem,4.1vw,1.4rem);
 }
 html.gr-entry-landing body.gr-home .site-footer{padding:6px 0 8px!important}
}
@media(max-height:530px) and (max-width:850px){
 html.gr-entry-landing,html.gr-entry-landing body.gr-home{height:auto;min-height:100svh;overflow-y:auto}
 html.gr-entry-landing body.gr-home main{min-height:520px}
 html.gr-entry-landing body.gr-home .gateway-card{min-height:170px!important}
}
/* Only when the entire landing fits. Never disable scrolling for #contact
   or #builder, where full forms remain reachable. */

/* The compact four-choice services hub is another self-contained screen. */
html:has(body.gr-service .hub-grid){height:100%;overflow:hidden;scroll-snap-type:none!important}
body.gr-service:has(.hub-grid){
 display:flex;flex-direction:column;min-height:0;height:100svh;overflow:hidden;
}
body.gr-service:has(.hub-grid)>.site-head{flex:none}
body.gr-service:has(.hub-grid)>main{
 display:flex;flex-direction:column;flex:1;min-height:0;
}
body.gr-service:has(.hub-grid) main>.hero{
 flex:none;min-height:0!important;padding:clamp(14px,3svh,32px) 0 8px!important;border:0;
}
body.gr-service:has(.hub-grid) main>.hero h1{
 font-size:clamp(1.75rem,4vw,3.4rem);line-height:1.06;
}
body.gr-service:has(.hub-grid) main>.section{
 flex:1;min-height:0!important;padding:clamp(8px,1.8svh,18px) 0!important;
}
body.gr-service:has(.hub-grid) .hub-grid{
 height:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:10px;border:0;
}
body.gr-service:has(.hub-grid) .hub-card{
 min-height:0;padding:clamp(14px,2vw,25px);
 border:1px solid rgba(255,255,255,.28);
 justify-content:flex-end;transition:border-color .2s ease;
}
body.gr-service:has(.hub-grid) .hub-card strong{margin:0 0 8px;font-size:clamp(1.2rem,2vw,2rem)}
body.gr-service:has(.hub-grid) .hub-card em{padding-top:0}
body.gr-service:has(.hub-grid) .hub-card:hover{border-color:#eee}
body.gr-service:has(.hub-grid)>footer{
 flex:none;padding:7px 0 9px!important;
 border-top:1px solid rgba(255,255,255,.22);
}
@media(max-width:920px){
 body.gr-service:has(.hub-grid) .hub-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
}
@media(max-height:530px) and (max-width:850px){
 html:has(body.gr-service .hub-grid),body.gr-service:has(.hub-grid){height:auto;min-height:100svh;overflow-y:auto}
 body.gr-service:has(.hub-grid)>main{min-height:500px}
}

/* Never squeeze three full service choices into a short, two-row card.
   In very short landscape windows, scroll normally rather than crop text. */
@media(max-height:480px) and (min-width:851px) and (max-width:1050px){
 html.gr-entry-landing,html.gr-entry-landing body.gr-home{height:auto;min-height:100svh;overflow-y:auto}
 html.gr-entry-landing body.gr-home main{min-height:520px}
 html.gr-entry-landing body.gr-home .gateway-card{min-height:170px!important}
}
