*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:#F5F1E8;color:#20261F;font-family:'Manrope',system-ui,sans-serif;min-height:100vh;min-height:100svh;overflow-x:hidden;-webkit-tap-highlight-color:rgba(52,80,63,.12);-webkit-font-smoothing:antialiased}
html,body{max-width:100%}
img{display:block;max-width:100%}
a{color:inherit}
::selection{background:#34503F;color:#fff}
@keyframes ggFade{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes ggSlide{from{transform:translateX(100%)}to{transform:none}}
@keyframes ggOv{from{opacity:0}to{opacity:1}}

.btn-primary{transition:background .2s,transform .2s}
.btn-primary:hover{background:var(--accent-deep)!important;transform:translateY(-1px)}
.btn-primary-lg:hover{background:var(--accent-deep)!important;transform:translateY(-2px)}
.btn-outline{transition:background .2s}
.btn-outline:hover{background:var(--accent-soft)!important}
.nav-link{transition:color .2s}
.nav-link:hover{color:var(--accent)!important}
.nav-link .bar{transition:transform .25s;transform:scaleX(0);transform-origin:left}
.nav-link.is-active{color:var(--accent)!important}
.nav-link.is-active .bar{transform:scaleX(1)}
.svc-card{transition:transform .28s ease,box-shadow .28s ease}
.svc-card:hover{transform:translateY(-5px);box-shadow:0 22px 46px rgba(30,45,30,.12)}
.wall-card{transition:box-shadow .28s ease}
.wall-card:hover{box-shadow:0 20px 44px rgba(30,45,30,.12)}
.wall-cta{transition:background .2s,color .2s}
.wall-cta:hover{background:var(--accent)!important;color:#fff!important}
.step-cell{transition:background .25s}
.step-cell:hover{background:#fff!important}
.porto-img,.gimg{transition:transform .5s ease}
.svc-card .gimg:hover,#portfolio .gimg:hover{transform:scale(1.06)}
.ghost-btn{transition:background .2s}
.ghost-btn:hover{background:rgba(255,255,255,.1)!important}
.shop-link:hover{border-color:var(--accent)!important}
.field{transition:border-color .2s}
.field:focus{border-color:var(--accent)!important}
.ftr-link{transition:color .2s}
.ftr-link:hover{color:#fff!important}
.msg-soft:hover{border-color:var(--accent)!important}
.drawer-link.is-active{color:var(--accent)!important;background:var(--accent-soft)!important}
.bnav-link .bar{transition:transform .25s;transform:scaleX(0)}
.bnav-link.is-active .bar{transform:scaleX(1)}

.desktop-only{display:flex}
.mobile-only{display:none}
@media (max-width:879px){
  .desktop-only{display:none!important}
  .mobile-only{display:flex!important}
}

/* iPhone/Android: safe-area for notch & home indicator on the fixed bottom nav */
#bottom-nav{padding-bottom:env(safe-area-inset-bottom)}
@media (max-width:879px){
  /* keep content clear of the fixed bottom bar incl. home indicator */
  #top{padding-bottom:0}
}
/* phones: tighten hero card so it never pokes past the screen edge */
@media (max-width:520px){
  body{font-size:15px}
}
/* phones: stack the two hero buttons aligned to a common left edge */
@media (max-width:560px){
  .hero-cta{flex-direction:column;align-items:flex-start}
}

/* ===== admin edit affordances ===== */
.gg-admin .ed{outline:1.5px dashed transparent;outline-offset:3px;border-radius:3px;transition:outline-color .15s,background .15s;cursor:text}
.gg-admin .ed:hover{outline-color:rgba(52,80,63,.5);background:rgba(52,80,63,.05)}
.gg-admin .ed:focus{outline:2px solid var(--accent);background:#fff;color:#1B221B!important}
.gg-admin .gimg{cursor:pointer;outline:2px solid transparent;outline-offset:-2px;transition:outline-color .15s}
.gg-admin .gimg:hover{outline-color:var(--accent)}
.gg-admin a{cursor:default}
body.gg-admin{padding-bottom:70px}

/* admin toolbar */
#gg-bar{position:fixed;left:0;right:0;bottom:0;z-index:200;background:#151914;color:#EFEAdd;display:flex;align-items:center;gap:10px;padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,0,0,.3);font:600 13px Manrope,system-ui,sans-serif;flex-wrap:wrap}
#gg-bar .sp{flex:1}
#gg-bar button{font:600 13px Manrope,system-ui,sans-serif;border:none;border-radius:9px;padding:10px 16px;cursor:pointer}
#gg-bar .b-save{background:#34503F;color:#fff}
#gg-bar .b-pub{background:#7BB661;color:#10210f}
#gg-bar .b-ghost{background:rgba(255,255,255,.1);color:#EFEAdd}
#gg-bar .dot{display:inline-flex;align-items:center;gap:7px;color:#9AA194}
#gg-bar .dot.dirty{color:#E7C24B}
.gg-modal{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;background:rgba(10,12,9,.6);padding:20px}
.gg-modal.open{display:flex}
.gg-modal .card{background:#fff;color:#20261F;border-radius:16px;padding:26px;max-width:440px;width:100%;font-family:Manrope,system-ui,sans-serif;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.gg-modal h3{font:700 19px Manrope;margin-bottom:14px}
.gg-modal label{display:block;font:600 13px Manrope;margin:12px 0 6px;color:#3A4138}
.gg-modal input[type=text],.gg-modal input[type=url],.gg-modal input[type=password]{width:100%;font:400 14px Manrope;padding:11px 13px;border:1px solid #D8CFB9;border-radius:9px;background:#FAF8F1;outline:none}
.gg-modal .row{display:flex;gap:10px;margin-top:18px}
.gg-modal button{font:600 14px Manrope;border:none;border-radius:9px;padding:11px 18px;cursor:pointer}
.gg-modal .ok{background:#34503F;color:#fff;flex:1}
.gg-modal .cancel{background:#EEE7D7;color:#3A4138}
.gg-modal small{display:block;color:#8A9081;font:400 12px/1.5 Manrope;margin-top:8px}
.gg-toast{position:fixed;left:50%;bottom:74px;transform:translateX(-50%);z-index:400;background:#20261F;color:#fff;padding:12px 22px;border-radius:100px;font:600 14px Manrope;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none}
.gg-toast.show{opacity:1;transform:translateX(-50%) translateY(-4px)}
