/*
Theme Name: The Garden Mann
Theme URI: https://thegardenmann.com/
Author: Pabame Prosper
Description: A clean, conversion-focused WordPress theme for The Garden Mann, professional gardening and landscaping services in Nicosia, Cyprus.
Version: 2.0.5
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: gardenmann
License: GPL-2.0-or-later
*/

:root {
  --gm-forest-950: #0b2119;
  --gm-forest-900: #103225;
  --gm-forest-800: #164534;
  --gm-forest-700: #1d5a42;
  --gm-sage-500: #769b7e;
  --gm-sage-200: #dce8df;
  --gm-cream: #f6f3eb;
  --gm-paper: #fffdf8;
  --gm-ink: #17231d;
  --gm-muted: #627068;
  --gm-line: #dbe2dc;
  --gm-gold: #c8a66a;
  --gm-white: #fff;
  --gm-radius-sm: 10px;
  --gm-radius-md: 18px;
  --gm-radius-lg: 28px;
  --gm-shadow: 0 18px 50px rgba(11,33,25,.10);
  --gm-max: 1200px;
  --gm-gutter: clamp(20px, 4vw, 48px);
  --gm-section: clamp(64px, 9vw, 112px);
  --gm-heading: clamp(2.25rem, 5vw, 4.8rem);
  --gm-h2: clamp(1.9rem, 3.5vw, 3.25rem);
  --gm-h3: clamp(1.2rem, 2vw, 1.55rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--gm-paper);
  color: var(--gm-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
a { color: var(--gm-forest-800); }
a:hover { color: var(--gm-forest-700); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--gm-gold); outline-offset: 3px; }

.gm-container { width: min(100% - (2 * var(--gm-gutter)), var(--gm-max)); margin-inline: auto; }
.gm-section { padding-block: var(--gm-section); }
.gm-section--cream { background: var(--gm-cream); }
.gm-section--dark { background: var(--gm-forest-950); color: var(--gm-white); }
.gm-eyebrow { display:inline-flex; align-items:center; gap:8px; margin:0 0 12px; color:var(--gm-sage-500); font-size:.78rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.gm-section--dark .gm-eyebrow { color:#b7d1bf; }
.gm-title { margin:0; color:var(--gm-forest-950); font-size:var(--gm-h2); line-height:1.08; letter-spacing:-.035em; }
.gm-section--dark .gm-title { color:var(--gm-white); }
.gm-lead { max-width:720px; margin:18px 0 0; color:var(--gm-muted); font-size:1.08rem; }
.gm-section--dark .gm-lead { color:#cbd7d0; }
.gm-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.gm-btn { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:12px 20px; border:1px solid transparent; border-radius:999px; font-weight:800; text-decoration:none; transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.gm-btn:hover { transform:translateY(-2px); }
.gm-btn--primary { background:var(--gm-forest-800); color:var(--gm-white); }
.gm-btn--primary:hover { background:var(--gm-forest-700); color:var(--gm-white); }
.gm-btn--light { background:var(--gm-white); color:var(--gm-forest-950); }
.gm-btn--outline { border-color:rgba(255,255,255,.35); color:var(--gm-white); background:transparent; }
.gm-btn--outline:hover { background:rgba(255,255,255,.08); color:var(--gm-white); }
.gm-btn--ghost { border-color:var(--gm-line); color:var(--gm-forest-800); background:transparent; }

/* Header / navigation */
.gm-site-header { position:sticky; top:0; z-index:1000; background:rgba(255,253,248,.94); backdrop-filter:blur(14px); border-bottom:1px solid rgba(219,226,220,.75); }
.gm-header-inner { min-height:82px; display:flex; align-items:center; gap:24px; }
.gm-brand { display:flex; align-items:center; min-width:150px; text-decoration:none; }
.gm-brand img { width:auto; max-height:56px; }
.gm-brand-text { color:var(--gm-forest-950); font-weight:900; letter-spacing:-.02em; }
.gm-menu-toggle { display:none; margin-left:auto; border:1px solid var(--gm-line); border-radius:12px; background:var(--gm-white); padding:9px 12px; }
.gm-primary-nav { margin-left:auto; }
.gm-primary-nav ul { display:flex; align-items:center; gap:4px; margin:0; padding:0; list-style:none; }
.gm-primary-nav li { position:relative; }
.gm-primary-nav a { display:block; padding:12px 13px; border-radius:10px; color:var(--gm-ink); text-decoration:none; font-size:.94rem; font-weight:700; }
.gm-primary-nav a:hover, .gm-primary-nav .current-menu-item > a { background:var(--gm-sage-200); color:var(--gm-forest-900); }
.gm-primary-nav .menu-item-has-children > a::after { content:"⌄"; margin-left:7px; font-size:.8em; }
.gm-primary-nav ul ul { position:absolute; left:0; top:calc(100% + 8px); min-width:270px; display:grid; grid-template-columns:1fr; gap:2px; padding:12px; background:var(--gm-white); border:1px solid var(--gm-line); border-radius:16px; box-shadow:var(--gm-shadow); opacity:0; visibility:hidden; transform:translateY(5px); transition:.18s ease; }
.gm-primary-nav li:hover > ul, .gm-primary-nav li:focus-within > ul { opacity:1; visibility:visible; transform:none; }
.gm-header-cta { white-space:nowrap; }

/* Mega-menu when a Services item has 4+ children */
.gm-primary-nav .gm-mega-menu > ul { min-width:min(760px, 70vw); grid-template-columns:repeat(2, minmax(220px,1fr)); }
.gm-primary-nav .gm-mega-menu > ul > li > a { font-weight:850; }

/* Search-first utility */
.gm-search-strip { background:var(--gm-forest-900); padding:12px 0; }
.gm-search-form { display:flex; max-width:760px; margin:auto; }
.gm-search-form input { flex:1; min-width:0; border:0; padding:13px 17px; border-radius:999px 0 0 999px; background:var(--gm-white); color:var(--gm-ink); }
.gm-search-form button { border:0; padding:13px 20px; border-radius:0 999px 999px 0; background:var(--gm-gold); color:var(--gm-forest-950); font-weight:850; }

/* Hero */
.gm-hero { position:relative; overflow:hidden; background:linear-gradient(115deg, var(--gm-forest-950), var(--gm-forest-800)); color:var(--gm-white); }
.gm-hero::after { content:""; position:absolute; inset:auto -10% -55% 45%; height:620px; border-radius:50%; background:rgba(118,155,126,.18); filter:blur(8px); }
.gm-hero-inner { position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(32px, 6vw, 76px); min-height:min(780px, calc(100vh - 130px)); padding-block:80px; }
.gm-hero h1 { max-width:780px; margin:0; font-size:var(--gm-heading); line-height:.98; letter-spacing:-.055em; }
.gm-hero p { max-width:650px; margin:22px 0 0; color:#dce8df; font-size:1.1rem; }
.gm-hero-card { overflow:hidden; border:1px solid rgba(255,255,255,.18); border-radius:var(--gm-radius-lg); background:rgba(255,255,255,.08); box-shadow:0 30px 80px rgba(0,0,0,.2); }
.gm-hero-card img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; padding:0; background:var(--gm-sage-200); }
.gm-hero-card__body { padding:22px; }
.gm-hero-card__body strong { display:block; font-size:1.15rem; }
.gm-hero-card__body span { color:#cbd7d0; font-size:.95rem; }

/* Grids / cards */
.gm-grid { display:grid; gap:18px; }
.gm-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gm-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.gm-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.gm-service-card, .gm-trust-card, .gm-project-card, .gm-testimonial { border:1px solid var(--gm-line); border-radius:var(--gm-radius-md); background:var(--gm-white); }
.gm-service-card { padding:24px; transition:transform .2s ease, box-shadow .2s ease; }
.gm-service-card:hover { transform:translateY(-4px); box-shadow:var(--gm-shadow); }
.gm-icon { width:44px; height:44px; display:grid; place-items:center; margin-bottom:18px; border-radius:14px; background:var(--gm-sage-200); color:var(--gm-forest-900); font-weight:900; }
.gm-card-title { margin:0; color:var(--gm-forest-950); font-size:var(--gm-h3); line-height:1.2; }
.gm-card-text { margin:10px 0 0; color:var(--gm-muted); }
.gm-card-link { display:inline-flex; margin-top:18px; font-weight:850; text-decoration:none; }

.gm-project-card { overflow:hidden; }
.gm-project-card__image { display:block; aspect-ratio:4/3; overflow:hidden; background:var(--gm-sage-200); }
.gm-project-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.gm-project-card:hover img { transform:scale(1.04); }
.gm-project-card__body { padding:20px; }
.gm-project-card__meta { color:var(--gm-muted); font-size:.86rem; font-weight:750; }
.gm-project-card h3 { margin:7px 0 0; font-size:1.25rem; }

.gm-trust-card { padding:22px; background:transparent; }
.gm-trust-card strong { display:block; margin-bottom:7px; }
.gm-trust-card p { margin:0; color:var(--gm-muted); font-size:.94rem; }

.gm-split { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(30px,6vw,80px); }
.gm-media { overflow:hidden; border-radius:var(--gm-radius-lg); background:var(--gm-sage-200); }
.gm-media img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.gm-checklist { display:grid; gap:12px; margin:24px 0 0; padding:0; list-style:none; }
.gm-checklist li { position:relative; padding-left:28px; }
.gm-checklist li::before { content:"✓"; position:absolute; left:0; top:0; color:var(--gm-forest-700); font-weight:900; }

/* Testimonials */
.gm-testimonial { padding:24px; }
.gm-stars { color:var(--gm-gold); letter-spacing:2px; }
.gm-testimonial blockquote { margin:14px 0 16px; font-size:1.05rem; font-weight:650; }
.gm-testimonial cite { color:var(--gm-muted); font-style:normal; font-size:.9rem; }

/* FAQ */
.gm-faq { display:grid; gap:10px; }
.gm-faq details { padding:20px 22px; border:1px solid var(--gm-line); border-radius:14px; background:var(--gm-white); }
.gm-faq summary { cursor:pointer; font-weight:850; }
.gm-faq p { margin:12px 0 0; color:var(--gm-muted); }

/* Forms */
.gm-form-wrap { padding:clamp(24px,4vw,42px); border-radius:var(--gm-radius-lg); background:var(--gm-white); box-shadow:var(--gm-shadow); }
.gm-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.gm-field { display:grid; gap:7px; }
.gm-field--full { grid-column:1/-1; }
.gm-field label { font-weight:800; font-size:.92rem; }
.gm-field input, .gm-field textarea, .gm-field select { width:100%; border:1px solid var(--gm-line); border-radius:11px; background:#fff; padding:13px 14px; color:var(--gm-ink); }
.gm-field textarea { min-height:140px; resize:vertical; }
.gm-hp { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.gm-form-note { margin:12px 0 0; color:var(--gm-muted); font-size:.85rem; }
.gm-success, .gm-error { margin-bottom:18px; padding:13px 15px; border-radius:10px; }
.gm-success { background:#e5f3e8; color:#164b29; }
.gm-error { background:#fce9e7; color:#7b201a; }

/* Floating CTA */
.gm-floating-cta { position:fixed; right:20px; bottom:20px; z-index:1100; box-shadow:0 12px 30px rgba(0,0,0,.18); }
.gm-modal { position:fixed; inset:0; z-index:1200; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(7,20,14,.72); }
.gm-modal.is-open { display:flex; }
.gm-modal__dialog { position:relative; width:min(720px,100%); max-height:90vh; overflow:auto; border-radius:22px; background:var(--gm-cream); }
.gm-modal__close { position:absolute; top:12px; right:12px; width:42px; height:42px; border:1px solid var(--gm-line); border-radius:50%; background:var(--gm-white); font-size:1.3rem; }
.gm-modal .gm-form-wrap { box-shadow:none; }
body.gm-modal-open { overflow:hidden; }

/* Footer */
.gm-footer { padding:60px 0 24px; background:var(--gm-forest-950); color:#cbd7d0; }
.gm-footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:36px; }
.gm-footer h2, .gm-footer h3 { margin-top:0; color:var(--gm-white); }
.gm-footer a { color:#dce8df; text-decoration:none; }
.gm-footer a:hover { color:var(--gm-white); }
.gm-footer ul { margin:0; padding:0; list-style:none; }
.gm-footer li + li { margin-top:8px; }
.gm-footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:42px; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); font-size:.86rem; }

/* WordPress / editor content */
.entry-content { max-width:820px; margin-inline:auto; }
.entry-content > * { max-width:100%; }
.alignwide { width:min(100%, 1100px); margin-inline:auto; }
.alignfull { width:100%; }
.wp-block-image img, .wp-block-cover { border-radius:var(--gm-radius-md); }

@media (max-width: 980px) {
  .gm-header-inner { flex-wrap:wrap; }
  .gm-menu-toggle { display:block; }
  .gm-primary-nav { display:none; width:100%; margin:0; }
  .gm-primary-nav.is-open { display:block; }
  .gm-primary-nav ul { display:block; }
  .gm-primary-nav a { padding:11px 10px; }
  .gm-primary-nav ul ul { position:static; display:block; min-width:0; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding:0 0 8px 14px; }
  .gm-primary-nav .gm-mega-menu > ul { min-width:0; display:block; }
  .gm-header-cta { margin-left:auto; }
  .gm-hero-inner, .gm-split { grid-template-columns:1fr; }
  .gm-hero-inner { min-height:auto; padding-block:60px; }
  .gm-grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gm-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .gm-header-cta { display:none; }
  .gm-search-form input { font-size:.92rem; }
  .gm-grid--2, .gm-grid--3, .gm-grid--4, .gm-form-grid { grid-template-columns:1fr; }
  .gm-field--full { grid-column:auto; }
  .gm-footer-grid { grid-template-columns:1fr; }
  .gm-footer-bottom { flex-direction:column; }
  .gm-floating-cta { right:12px; bottom:12px; left:12px; }
  .gm-floating-cta.gm-btn { width:auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}

.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;}
