/* =========================================================================
   GSEM Servizi e Caf — Design System
   Palette derived from the official logo (infinity mark + leaves).
   ========================================================================= */

:root{
	--navy:        #1F3B54;
	--navy-dark:   #14283A;
	--navy-light:  #2F5170;
	--green:       #3F6B54;
	--green-light: #6B9080;
	--gold:        #C99A4C;
	--gold-light:  #E4C078;
	--teal:        #5B8C93;
	--bg:          #F7F8F6;
	--bg-alt:      #EFF2EF;
	--white:       #FFFFFF;
	--text:        #28323C;
	--text-light:  #5B6672;
	--border:      #E3E7E4;
	--shadow-sm:   0 2px 10px rgba(20,40,58,.06);
	--shadow-md:   0 12px 32px rgba(20,40,58,.10);
	--shadow-lg:   0 24px 60px rgba(20,40,58,.16);
	--radius-sm:   8px;
	--radius-md:   16px;
	--radius-lg:   28px;
	--font-head:   'Playfair Display', Georgia, serif;
	--font-body:   'Inter', 'Segoe UI', Tahoma, sans-serif;
	--container:   1200px;
	--speed:       .35s;
}

/* -------------------------------------------------------------------------
   Base
   ---------------------------------------------------------------------- */
html{ scroll-behavior:smooth; }
body{
	font-family:var(--font-body);
	color:var(--text);
	background:var(--bg);
	font-size:16px;
	line-height:1.7;
	overflow-x:hidden;
}
h1,h2,h3,h4{
	font-family:var(--font-head);
	color:var(--navy);
	line-height:1.2;
	margin:0 0 .5em;
	font-weight:700;
}
h1{ font-size:clamp(2.1rem,4vw,3.2rem); }
h2{ font-size:clamp(1.7rem,3vw,2.4rem); }
h3{ font-size:1.25rem; }
p{ margin:0 0 1em; color:var(--text-light); }
a{ text-decoration:none; transition:color var(--speed) ease; }
ul{ margin:0; padding:0; list-style:none; }
address{ font-style:normal; }
img{ border-radius:4px; }
.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.container.narrow{ max-width:820px; }
.section{ padding:96px 0; }
.eyebrow{
	display:inline-block;
	font-family:var(--font-body);
	font-weight:700;
	font-size:.78rem;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:var(--gold);
	margin-bottom:14px;
}
.section-head{ max-width:680px; margin:0 auto 56px; text-align:center; }
.section-head p{ font-size:1.05rem; }

/* -------------------------------------------------------------------------
   Buttons
   ---------------------------------------------------------------------- */
.btn{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	font-family:var(--font-body); font-weight:600; font-size:.95rem;
	padding:14px 28px; border-radius:999px; border:2px solid transparent;
	cursor:pointer; transition:all var(--speed) ease; white-space:nowrap;
}
.btn-lg{ padding:17px 34px; font-size:1rem; }
.btn-sm{ padding:9px 18px; font-size:.85rem; }
.btn-block{ width:100%; }
.btn-primary{ background:var(--navy); color:var(--white); box-shadow:var(--shadow-sm); }
.btn-primary:hover{ background:var(--navy-light); transform:translateY(-2px); box-shadow:var(--shadow-md); color:var(--white); }
.btn-outline{ background:transparent; color:var(--navy); border-color:var(--navy); }
.btn-outline:hover{ background:var(--navy); color:var(--white); transform:translateY(-2px); }
.btn-outline-light{ background:transparent; color:var(--white); border-color:rgba(255,255,255,.5); }
.btn-outline-light:hover{ background:var(--white); color:var(--navy); }
.btn-ghost{ background:transparent; color:var(--text-light); border-color:var(--border); }
.btn-ghost:hover{ background:var(--bg-alt); color:var(--text); }
.btn-whatsapp{ background:#25D366; color:#fff; }
.btn-whatsapp:hover{ background:#1DA851; color:#fff; transform:translateY(-2px); }

/* -------------------------------------------------------------------------
   Topbar
   ---------------------------------------------------------------------- */
.gsem-topbar{ background:var(--navy-dark); color:#cfd9e0; font-size:.82rem; }
.gsem-topbar-inner{ display:flex; align-items:center; justify-content:space-between; height:42px; }
.gsem-topbar-contacts{ display:flex; align-items:center; gap:22px; }
.gsem-topbar-contacts a{ color:#cfd9e0; display:inline-flex; align-items:center; gap:6px; }
.gsem-topbar-contacts a:hover{ color:var(--gold-light); }
.gsem-topbar-hours{ opacity:.8; }

/* -------------------------------------------------------------------------
   Header
   ---------------------------------------------------------------------- */
.gsem-header{
	background:var(--white); position:sticky; top:0; z-index:500;
	box-shadow:var(--shadow-sm);
}
.gsem-header-inner{ display:flex; align-items:center; justify-content:space-between; height:84px; gap:24px; }
.gsem-logo{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.gsem-logo img,.gsem-logo .gsem-logo-mark{ height:44px; width:auto; }
.gsem-logo-text{ display:flex; flex-direction:column; line-height:1.15; }
.gsem-logo-text strong{ font-family:var(--font-head); font-size:1.3rem; color:var(--navy); letter-spacing:.02em; }
.gsem-logo-text em{ font-style:normal; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--green); }

.gsem-menu{ display:flex; align-items:center; gap:4px; }
.gsem-menu li{ position:relative; }
.gsem-menu li > a{
	display:block; padding:12px 16px; font-weight:600; font-size:.95rem;
	color:var(--navy); border-radius:8px;
}
.gsem-menu li > a:hover, .gsem-menu li.current-menu-item > a{ color:var(--green); background:var(--bg-alt); }

/* submenu */
.gsem-menu ul{
	position:absolute; top:100%; left:0; min-width:260px; background:var(--white);
	border-radius:var(--radius-sm); box-shadow:var(--shadow-lg); padding:8px;
	opacity:0; visibility:hidden; transform:translateY(8px); transition:all var(--speed) ease; z-index:50;
}
.gsem-menu li:hover > ul, .gsem-menu li.focus-within > ul{ opacity:1; visibility:visible; transform:translateY(0); }
.gsem-menu ul li a{ padding:10px 14px; border-radius:6px; font-weight:500; }
.gsem-menu li.menu-item-has-children > a::after{ content:'\25BE'; font-size:.7em; margin-left:4px; opacity:.7; }

.gsem-header-actions{ display:flex; align-items:center; gap:14px; }
.gsem-menu-toggle{ display:none; background:none; border:0; cursor:pointer; padding:8px; }
.gsem-burger, .gsem-burger::before, .gsem-burger::after{
	display:block; width:24px; height:2px; background:var(--navy); position:relative; transition:all var(--speed);
}
.gsem-burger::before,.gsem-burger::after{ content:''; position:absolute; left:0; }
.gsem-burger::before{ top:-7px; } .gsem-burger::after{ top:7px; }
.gsem-menu-toggle[aria-expanded="true"] .gsem-burger{ background:transparent; }
.gsem-menu-toggle[aria-expanded="true"] .gsem-burger::before{ transform:rotate(45deg); top:0; }
.gsem-menu-toggle[aria-expanded="true"] .gsem-burger::after{ transform:rotate(-45deg); top:0; }

/* language switcher */
.gsem-lang-switcher{ position:relative; }
.gsem-lang-current{
	display:flex; align-items:center; gap:6px; background:transparent; border:1px solid rgba(255,255,255,.25);
	color:#cfd9e0; padding:4px 10px; border-radius:999px; cursor:pointer; font-size:.78rem; font-weight:600;
}
.gsem-lang-list{
	position:absolute; right:0; top:calc(100% + 8px); background:var(--white); border-radius:var(--radius-sm);
	box-shadow:var(--shadow-lg); padding:6px; min-width:150px; opacity:0; visibility:hidden;
	transform:translateY(6px); transition:all var(--speed) ease; z-index:60;
}
.gsem-lang-switcher:hover .gsem-lang-list, .gsem-lang-switcher.is-open .gsem-lang-list{ opacity:1; visibility:visible; transform:translateY(0); }
.gsem-lang-list a{ display:block; padding:8px 12px; border-radius:6px; color:var(--text); font-size:.88rem; font-weight:500; }
.gsem-lang-list a:hover, .gsem-lang-list a.is-current{ background:var(--bg-alt); color:var(--navy); }

/* -------------------------------------------------------------------------
   Hero
   ---------------------------------------------------------------------- */
.gsem-hero{ position:relative; padding:88px 0 64px; overflow:hidden; background:linear-gradient(180deg,#F7F8F6 0%,#EFF2EF 100%); }
.gsem-hero-bg{
	position:absolute; inset:0; z-index:0;
	background:radial-gradient(circle at 82% 20%, rgba(201,154,76,.15), transparent 45%),
	           radial-gradient(circle at 8% 85%, rgba(91,140,147,.16), transparent 45%);
}
.gsem-hero-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center; }
.gsem-hero-content h1{ margin-bottom:.4em; }
.gsem-hero-subtitle{ font-size:1.08rem; max-width:560px; }
.gsem-hero-cta{ display:flex; flex-wrap:wrap; gap:16px; margin:28px 0 32px; }
.gsem-hero-trust{ display:flex; flex-wrap:wrap; gap:22px; }
.gsem-hero-trust li{ display:flex; align-items:center; gap:8px; font-weight:600; font-size:.9rem; color:var(--navy); }
.gsem-hero-trust svg{ color:var(--green); flex-shrink:0; }
.gsem-hero-visual{ display:flex; align-items:center; justify-content:center; }
.gsem-hero-mark{ width:100%; max-width:420px; filter:drop-shadow(var(--shadow-lg)); animation:gsemFloat 5s ease-in-out infinite; }
@keyframes gsemFloat{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-14px);} }

/* stats strip */
.gsem-strip{ background:var(--navy); padding:36px 0; }
.gsem-strip-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center; }
.gsem-strip-item h3{ color:var(--gold-light); font-size:2rem; margin-bottom:2px; }
.gsem-strip-item p{ color:#c7d2da; font-size:.85rem; margin:0; text-transform:uppercase; letter-spacing:.06em; }

/* -------------------------------------------------------------------------
   Services grid
   ---------------------------------------------------------------------- */
.services-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-card{
	background:var(--white); border:1px solid var(--border); border-radius:var(--radius-md);
	padding:32px 26px; display:flex; flex-direction:column; box-shadow:var(--shadow-sm);
	transition:transform var(--speed) ease, box-shadow var(--speed) ease, border-color var(--speed) ease;
}
.service-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--green-light); }
.service-icon{
	width:56px; height:56px; border-radius:14px; display:flex; align-items:center; justify-content:center;
	background:linear-gradient(135deg,var(--navy),var(--navy-light)); color:#fff; margin-bottom:18px;
}
.service-card h3{ font-size:1.08rem; margin-bottom:8px; }
.service-card p{ font-size:.92rem; flex:1; margin-bottom:14px; }
.service-link{ font-weight:700; color:var(--green); font-size:.88rem; display:inline-flex; align-items:center; gap:6px; }
.service-card:hover .service-link span{ transform:translateX(4px); }
.service-link span{ transition:transform var(--speed); }

/* -------------------------------------------------------------------------
   Why section
   ---------------------------------------------------------------------- */
.why-section{ background:var(--white); }
.why-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:center; }
.why-visual-card{
	background:linear-gradient(150deg,var(--navy),var(--navy-dark)); border-radius:var(--radius-lg);
	padding:64px; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg);
}
.why-visual-card img{ width:100%; filter:brightness(0) invert(1) opacity(.92); }
.why-list{ display:grid; gap:26px; margin-top:28px; }
.why-item{ display:flex; gap:18px; }
.why-num{ font-family:var(--font-head); font-size:1.4rem; color:var(--gold); font-weight:700; flex-shrink:0; }
.why-item h4{ color:var(--navy); margin-bottom:4px; font-size:1.05rem; }
.why-item p{ font-size:.92rem; margin:0; }

/* -------------------------------------------------------------------------
   Steps
   ---------------------------------------------------------------------- */
.steps-section{ background:var(--bg-alt); }
.steps-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.step-card{ background:var(--white); border-radius:var(--radius-md); padding:30px 24px; box-shadow:var(--shadow-sm); position:relative; }
.step-num{
	display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%;
	background:var(--gold); color:var(--navy-dark); font-weight:800; font-family:var(--font-head); margin-bottom:16px;
}
.step-card h4{ font-size:1.02rem; margin-bottom:8px; }
.step-card p{ font-size:.9rem; margin:0; }

/* -------------------------------------------------------------------------
   Contact section
   ---------------------------------------------------------------------- */
.contact-section{ background:var(--white); }
.contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; }
.contact-details{ display:grid; gap:18px; margin:28px 0; }
.contact-details li{ display:flex; gap:14px; align-items:flex-start; }
.contact-details svg{ color:var(--green); flex-shrink:0; margin-top:2px; }
.contact-details a{ color:var(--navy); font-weight:600; }
.contact-details a:hover{ color:var(--green); }

.contact-form-wrap{ background:var(--bg-alt); border-radius:var(--radius-lg); padding:40px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-group{ margin-bottom:18px; }
.form-group label{ display:block; font-weight:600; font-size:.88rem; color:var(--navy); margin-bottom:6px; }
.form-group input, .form-group select, .form-group textarea{
	width:100%; padding:13px 16px; border:1.5px solid var(--border); border-radius:10px;
	font-family:var(--font-body); font-size:.95rem; background:var(--white); transition:border-color var(--speed);
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{ outline:none; border-color:var(--green); }
.form-consent label{ display:flex; align-items:flex-start; gap:10px; font-weight:400; font-size:.86rem; color:var(--text-light); }
.form-consent input{ width:auto; margin-top:3px; }
.gsem-honeypot{ position:absolute; left:-9999px; opacity:0; }
.gsem-form-response{ margin-top:14px; font-weight:600; font-size:.9rem; }
.gsem-form-response.is-success{ color:var(--green); }
.gsem-form-response.is-error{ color:#B3432D; }

.contact-map{ margin-top:56px; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); }
.contact-map iframe{ display:block; filter:grayscale(.15); }

/* -------------------------------------------------------------------------
   CTA band
   ---------------------------------------------------------------------- */
.cta-band{ background:linear-gradient(120deg,var(--navy),var(--navy-dark)); padding:64px 0; }
.cta-band-inner{ display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.cta-band h2{ color:#fff; margin-bottom:8px; font-size:1.6rem; }
.cta-band p{ color:#c7d2da; margin:0; max-width:520px; }
.cta-band-actions{ display:flex; gap:14px; flex-wrap:wrap; }

/* -------------------------------------------------------------------------
   Footer
   ---------------------------------------------------------------------- */
.gsem-footer{ background:var(--navy-dark); color:#c7d2da; }
.gsem-footer-top{ padding:72px 0 40px; }
.gsem-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.gsem-footer-col h4{ color:#fff; font-family:var(--font-body); font-size:.95rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:18px; }
.gsem-footer-col ul{ display:grid; gap:10px; }
.gsem-footer-col a{ color:#c7d2da; font-size:.92rem; }
.gsem-footer-col a:hover{ color:var(--gold-light); }
.gsem-footer-brand p{ color:#aebbc5; font-size:.9rem; margin:16px 0 20px; }
.gsem-logo-footer .gsem-logo-text strong{ color:#fff; }
.gsem-logo-footer .gsem-logo-text em{ color:var(--gold-light); }
.gsem-logo-footer img{ filter:brightness(0) invert(1); }
.gsem-social-icons{ display:flex; gap:10px; }
.gsem-social-icons a{
	width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
	display:flex; align-items:center; justify-content:center; transition:all var(--speed);
}
.gsem-social-icons a:hover{ background:var(--gold); border-color:var(--gold); color:var(--navy-dark); }
.gsem-footer-col address, .gsem-hours{ font-size:.92rem; color:#c7d2da; line-height:1.8; }
.gsem-footer-col address a{ color:#c7d2da; }
.gsem-legal-block{ font-size:.85rem; color:#aebbc5; line-height:1.8; }

.gsem-footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding:20px 0; }
.gsem-footer-bottom-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.gsem-footer-bottom-inner p{ margin:0; font-size:.82rem; color:#98a5b0; }
.gsem-legal-menu{ display:flex; gap:18px; flex-wrap:wrap; }
.gsem-legal-menu a{ font-size:.82rem; color:#98a5b0; }
.gsem-legal-menu a:hover{ color:var(--gold-light); }

/* -------------------------------------------------------------------------
   Cookie banner
   ---------------------------------------------------------------------- */
.gsem-cookie-banner{
	position:fixed; left:20px; right:20px; bottom:20px; max-width:640px; margin:0 auto;
	background:var(--white); border-radius:var(--radius-md); box-shadow:var(--shadow-lg);
	padding:26px 26px 20px; z-index:9999; border:1px solid var(--border);
	transform:translateY(30px); opacity:0; transition:all .4s ease;
}
.gsem-cookie-banner.is-visible{ transform:translateY(0); opacity:1; }
.gsem-cookie-inner{ position:relative; }
.gsem-cookie-close{ position:absolute; right:0; top:-4px; background:none; border:0; font-size:1.4rem; line-height:1; cursor:pointer; color:var(--text-light); }
.gsem-cookie-text{ font-size:.88rem; margin:0 26px 14px 0; color:var(--text); }
.gsem-cookie-text a{ color:var(--green); font-weight:600; }
.gsem-cookie-panel{ border-top:1px solid var(--border); padding-top:14px; margin-bottom:14px; display:grid; gap:14px; }
.gsem-cookie-option label{ display:flex; align-items:center; gap:10px; font-weight:600; font-size:.88rem; color:var(--navy); }
.gsem-cookie-option p{ font-size:.8rem; margin:4px 0 0 26px; }
.gsem-cookie-actions{ display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }

/* -------------------------------------------------------------------------
   Interior pages
   ---------------------------------------------------------------------- */
.page-hero{ background:linear-gradient(120deg,var(--navy),var(--navy-dark)); padding:64px 0 56px; }
.page-hero h1{ color:#fff; margin:6px 0 0; }
.gsem-breadcrumbs ol{ display:flex; gap:8px; flex-wrap:wrap; list-style:none; padding:0; margin:0; font-size:.82rem; }
.gsem-breadcrumbs li{ color:#9fb0bd; }
.gsem-breadcrumbs li:not(:last-child)::after{ content:'/'; margin-left:8px; opacity:.6; }
.gsem-breadcrumbs a{ color:#c7d2da; }
.gsem-breadcrumbs a:hover{ color:var(--gold-light); }

.page-content-section{ background:var(--white); }
.entry-content h2{ margin-top:1.4em; }
.entry-content ul{ list-style:disc; padding-left:22px; margin-bottom:1em; }
.entry-content ul li{ margin-bottom:.4em; color:var(--text-light); }
.entry-content a{ color:var(--green); font-weight:600; text-decoration:underline; }
.page-featured-image{ margin-bottom:32px; border-radius:var(--radius-md); overflow:hidden; }

.service-detail-section{ background:var(--white); }
.service-detail-grid{ display:grid; grid-template-columns:1fr .38fr; gap:48px; align-items:start; }
.sidebar-card{ background:var(--bg-alt); border-radius:var(--radius-md); padding:28px; margin-bottom:24px; }
.sidebar-card h3{ font-size:1.05rem; margin-bottom:10px; }
.sidebar-contact-card .btn{ margin-top:10px; }
.sidebar-services-card ul{ display:grid; gap:10px; margin-top:6px; }
.sidebar-services-card a{ color:var(--navy); font-weight:600; font-size:.92rem; }
.sidebar-services-card a:hover{ color:var(--green); }

/* -------------------------------------------------------------------------
   Blog
   ---------------------------------------------------------------------- */
.blog-section{ background:var(--white); }
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.blog-card{ background:var(--bg-alt); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform var(--speed); }
.blog-card:hover{ transform:translateY(-6px); }
.blog-card-thumb img{ width:100%; height:200px; object-fit:cover; border-radius:0; }
.blog-card-body{ padding:22px; }
.blog-card-date{ font-size:.78rem; color:var(--gold); font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.blog-card h2{ font-size:1.1rem; margin:8px 0; }
.blog-card h2 a{ color:var(--navy); }
.pagination-wrap{ margin-top:48px; display:flex; justify-content:center; gap:8px; }

/* -------------------------------------------------------------------------
   Search form
   ---------------------------------------------------------------------- */
.gsem-search-form{ display:flex; margin-top:24px; max-width:420px; margin-left:auto; margin-right:auto; }
.gsem-search-form input{ flex:1; padding:12px 16px; border:1.5px solid var(--border); border-radius:999px 0 0 999px; }
.gsem-search-form button{ padding:12px 20px; background:var(--navy); color:#fff; border:0; border-radius:0 999px 999px 0; cursor:pointer; }

/* -------------------------------------------------------------------------
   Scroll animations (progressive enhancement, no dependency)
   ---------------------------------------------------------------------- */
[data-aos]{ opacity:0; transition:opacity .7s ease, transform .7s ease; will-change:transform, opacity; }
[data-aos="fade-up"]{ transform:translateY(32px); }
[data-aos="fade-left"]{ transform:translateX(40px); }
[data-aos="fade-right"]{ transform:translateX(-40px); }
[data-aos="fade"]{ transform:none; }
[data-aos].aos-animate{ opacity:1; transform:translate(0,0); }
@media (prefers-reduced-motion: reduce){
	[data-aos]{ opacity:1 !important; transform:none !important; transition:none !important; }
	.gsem-hero-mark{ animation:none; }
}

/* -------------------------------------------------------------------------
   Responsive
   ---------------------------------------------------------------------- */
@media (max-width:1024px){
	.services-grid{ grid-template-columns:repeat(2,1fr); }
	.steps-grid{ grid-template-columns:repeat(2,1fr); }
	.why-grid, .contact-grid{ grid-template-columns:1fr; }
	.service-detail-grid{ grid-template-columns:1fr; }
	.gsem-footer-grid{ grid-template-columns:1fr 1fr; }
	.gsem-hero-grid{ grid-template-columns:1fr; text-align:center; }
	.gsem-hero-cta, .gsem-hero-trust{ justify-content:center; }
	.gsem-hero-visual{ order:-1; max-width:320px; margin:0 auto; }
}
@media (max-width:782px){
	.gsem-topbar-hours{ display:none; }
	.gsem-primary-nav{
		position:fixed; inset:0 0 0 auto; width:min(320px,84vw); height:100vh; background:var(--white);
		padding:100px 28px 28px; box-shadow:var(--shadow-lg); transform:translateX(100%); transition:transform .4s ease; z-index:400;
		overflow-y:auto;
	}
	.gsem-primary-nav.is-open{ transform:translateX(0); }
	.gsem-menu{ flex-direction:column; align-items:flex-start; gap:0; width:100%; }
	.gsem-menu li{ width:100%; }
	.gsem-menu ul{ position:static; box-shadow:none; opacity:1; visibility:visible; transform:none; display:none; padding-left:12px; }
	.gsem-menu li.is-open > ul{ display:block; }
	.gsem-menu-toggle{ display:block; }
	.gsem-header-cta{ display:none; }
	.services-grid, .steps-grid, .blog-grid, .gsem-strip-grid, .gsem-footer-grid{ grid-template-columns:1fr; }
	.form-row{ grid-template-columns:1fr; }
	.section{ padding:64px 0; }
	.contact-form-wrap{ padding:28px; }
	.cta-band-inner{ text-align:center; justify-content:center; }
}
