/* ==========================================================
   Developely — main stylesheet (matched to reference design)
   ========================================================== */

:root{
	--navy:#0a0e1f;
	--navy-soft:#0d1226;
	--blue:#2f6fed;
	--cyan:#22d3ee;
	--blue-grad:linear-gradient(135deg,#2f6fed 0%,#22d3ee 100%);
	--light-bg:#f6f7fb;
	--light-bg-alt:#eef1fa;
	--white:#ffffff;
	--border-light:#e5e7f0;
	--border-dark:#ffffff1a;
	--text-navy:#0f1428;
	--text-gray:#6b7185;
	--text-gray-dark:#8b8fa8;
	--text-light:#e7e9f5;
	--green:#22c55e;
	--yellow:#f59e0b;
	--radius:16px;
	--radius-sm:10px;
	--container:1180px;
	--font-body:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;
	--font-mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
	margin:0;
	background:var(--light-bg);
	color:var(--text-navy);
	font-family:var(--font-body);
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
	/* `overflow-x:hidden` on <body> turns it into a scroll container, which
	   breaks every `position:sticky` child (header + the Our Work / Pricing
	   tab bars) once you scroll. `clip` prevents horizontal overflow WITHOUT
	   creating a scroll container, so sticky keeps working. */
	overflow-x:clip;
	width:100%;
	max-width:100%;
}
/* Safari < 16 has no overflow:clip — scope the old behaviour to those
   browsers only so modern browsers keep working sticky headers. */
@supports not (overflow:clip){
	body{overflow-x:hidden;}
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,h5{margin:0 0 .5em;font-weight:700;line-height:1.15;letter-spacing:-0.02em;}
p{margin:0 0 1em;color:var(--text-gray);}
button{font-family:inherit;}

.dev-container{max-width:var(--container);margin:0 auto;padding:0 24px;}
.dev-container-narrow{max-width:760px;}

/* ---------- Buttons ---------- */
.dev-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;
	padding:13px 24px;border-radius:999px;font-weight:600;font-size:14.5px;
	border:1px solid transparent;cursor:pointer;transition:transform .15s ease,opacity .15s ease,background .15s ease;
	white-space:nowrap;
}
.dev-btn .arrow{transition:transform .15s ease;}
.dev-btn:hover .arrow{transform:translateX(3px);}
.dev-btn-primary{background:var(--blue-grad);color:#fff;box-shadow:0 8px 20px -8px #2f6fed80;}
.dev-btn-primary:hover{opacity:.92;transform:translateY(-1px);}
.dev-btn-ghost{background:transparent;color:var(--text-navy);border-color:var(--border-light);}
.dev-btn-ghost:hover{background:#0000000a;}
.dev-header .dev-btn-ghost{color:var(--text-navy);}
.dev-hero .dev-btn-ghost{color:var(--text-light);border-color:var(--border-dark);}
.dev-hero .dev-btn-ghost:hover{background:#ffffff0f;}
.dev-btn-sm{padding:9px 18px;font-size:13.5px;}
.dev-btn-block{width:100%;}

/* ---------- Skip link (a11y) ---------- */
.dev-skip-link{
	position:absolute;left:-9999px;top:0;z-index:200;
	background:var(--white);color:var(--text-navy);
	padding:12px 18px;border-radius:0 0 10px 0;font-size:14px;font-weight:600;
}
.dev-skip-link:focus{left:0;outline:2px solid var(--blue);outline-offset:2px;}

/* ---------- Header (light) ---------- */
/* --dev-header-h  = real header height (mobile drawer anchoring)
   --dev-sticky-top = where the header's bottom edge actually is on screen,
                      kept live by main.js. The Our Work / Pricing tab bars
                      stick to this, so they sit flush under the header when
                      it's pinned and hug the viewport top when it isn't. */
:root{--dev-header-h:72px;--dev-sticky-top:72px;}

/* Sticky ancestors must never clip or scroll, or sticky children break. */
.dev-main{overflow:visible;}

.dev-header{
	position:sticky;position:-webkit-sticky;top:0;z-index:50;
	background:#ffffffee;backdrop-filter:blur(10px);
	border-bottom:1px solid var(--border-light);
}
.dev-header-inner{
	display:flex;align-items:center;justify-content:space-between;
	min-height:72px;gap:clamp(12px,2vw,24px);
	flex-wrap:nowrap;
}
.dev-logo{
	display:flex;align-items:center;gap:9px;
	font-weight:800;font-size:clamp(13px,1.5vw,15px);letter-spacing:.04em;
	text-transform:uppercase;color:var(--text-navy);
	flex-shrink:0;min-width:0;order:1;
}
.dev-logo-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dev-logo-mark{
	font-family:var(--font-mono);color:#fff;background:var(--blue-grad);
	width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
	font-size:13px;font-weight:700;flex-shrink:0;
}
.dev-header .dev-logo img,.dev-header .custom-logo{max-height:40px;width:auto;}

/* Desktop: nav sits centred between the logo and the actions */
.dev-nav{order:2;flex:1 1 auto;display:flex;justify-content:center;min-width:0;}
.dev-nav-list{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(16px,2.4vw,30px);}
.dev-nav-list a{color:var(--text-gray);font-size:clamp(13.5px,1.5vw,14.5px);font-weight:500;transition:color .15s ease;white-space:nowrap;}
.dev-nav-list a:hover,.dev-nav-list .current-menu-item > a{color:var(--text-navy);}
.dev-nav-cta{display:none;}

.dev-header-actions{order:3;display:flex;align-items:center;gap:clamp(8px,1.2vw,12px);flex-shrink:0;}

/* Hamburger — hidden on desktop, animates to an X when open */
.dev-menu-toggle{
	display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;
	background:none;border:none;cursor:pointer;
	width:44px;height:44px;padding:0;flex-shrink:0;
}
.dev-menu-toggle span{
	width:22px;height:2px;background:var(--text-navy);border-radius:2px;
	transition:transform .2s ease,opacity .2s ease;
}
.dev-menu-toggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.dev-menu-toggle.is-active span:nth-child(2){opacity:0;}
.dev-menu-toggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Backdrop behind the open drawer */
.dev-nav-backdrop{
	position:fixed;left:0;right:0;bottom:0;top:var(--dev-header-h);
	background:#0a0e1f66;z-index:40;border:0;
}
.dev-nav-backdrop[hidden]{display:none;}

/* Lock background scroll while the drawer is open */
body.dev-nav-locked{overflow:hidden;}

/* ---------- Section base ---------- */
.dev-section{padding:96px 0;background:var(--light-bg);}
.dev-section-alt{background:var(--light-bg-alt);}
.dev-section-dark{background:var(--navy);}
.dev-section-dark p{color:var(--text-gray-dark);}
.dev-section-dark h2,.dev-section-dark h3,.dev-section-dark h4{color:#fff;}
.dev-section-head{max-width:620px;margin:0 auto 48px;text-align:center;}
.dev-section-head h2{font-size:clamp(26px,3.2vw,36px);color:var(--text-navy);}
.dev-section-head p{font-size:15.5px;}
/* Fix: dark sections (e.g. Process) were losing their white heading colour to the rule above
   because both selectors have equal specificity and this one loaded later. */
.dev-section-dark .dev-section-head h2{color:#fff;}

.dev-eyebrow{
	display:inline-flex;align-items:center;gap:9px;font-family:var(--font-body);font-size:12.5px;
	font-weight:700;color:var(--blue);text-transform:uppercase;
	letter-spacing:.08em;margin-bottom:14px;
}
.dev-eyebrow::before{content:"";width:18px;height:2px;border-radius:2px;background:var(--blue-grad);flex-shrink:0;}
.dev-section-dark .dev-eyebrow{color:var(--cyan);}
.dev-section-dark .dev-eyebrow::before{background:linear-gradient(135deg,var(--cyan),var(--blue));}

.dev-grid{display:grid;gap:22px;}
.dev-grid-3{grid-template-columns:repeat(3,1fr);}

/* ---------- Hero (dark) ---------- */
.dev-hero{padding:70px 0 0;position:relative;overflow:hidden;background:var(--navy);}
.dev-hero::before{
	content:"";position:absolute;top:-260px;left:15%;
	width:700px;height:520px;background:var(--blue-grad);filter:blur(180px);opacity:.22;
	pointer-events:none;
}
.dev-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:start;position:relative;padding-bottom:56px;}
.dev-hero .dev-eyebrow{color:var(--cyan);}
.dev-hero .dev-eyebrow::before{background:linear-gradient(135deg,var(--cyan),var(--blue));}
.dev-hero-title{font-size:clamp(32px,4.2vw,50px);margin-bottom:18px;color:#fff;}
.dev-accent-text{display:block;background:var(--blue-grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.dev-hero-desc{font-size:16.5px;max-width:500px;margin-bottom:30px;color:var(--text-gray-dark);}
.dev-hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px;}

.dev-stats{display:grid;grid-template-columns:repeat(4,auto);gap:36px;}
.dev-stat strong{display:block;font-size:22px;font-weight:800;color:#fff;}
.dev-stat span{font-size:12.5px;color:var(--text-gray-dark);}

/* Full-width checklist bar under hero */
.dev-check-bar{
	display:flex;flex-wrap:wrap;gap:14px 36px;justify-content:space-between;
	border-top:1px solid var(--border-dark);padding:22px 0;
}
.dev-check-bar li{
	font-size:13.5px;color:var(--text-gray-dark);padding-left:22px;position:relative;flex:1;min-width:200px;
}
.dev-check-bar li::before{content:"✓";position:absolute;left:0;top:0;color:var(--cyan);font-weight:700;font-family:var(--font-mono);}

/* ---------- Code window ---------- */
.dev-code-window{background:var(--navy-soft);border:1px solid var(--border-dark);border-radius:var(--radius);overflow:hidden;box-shadow:0 24px 60px -20px #00000080;}
.dev-code-tabs{display:flex;align-items:center;gap:4px;background:#0a0e1f;padding:12px 12px;border-bottom:1px solid var(--border-dark);}
.dev-win-dots{display:flex;gap:6px;margin-right:10px;}
.dev-win-dots i{width:10px;height:10px;border-radius:50%;display:inline-block;}
.dev-win-dots i:nth-child(1){background:#ff5f57;}
.dev-win-dots i:nth-child(2){background:#febc2e;}
.dev-win-dots i:nth-child(3){background:#28c840;}
.dev-tab{font-family:var(--font-mono);font-size:12px;color:var(--text-gray-dark);padding:6px 12px;border-radius:6px;}
.dev-tab.is-active{background:var(--navy-soft);color:#fff;}
.dev-code-body{margin:0;padding:22px;font-family:var(--font-mono);font-size:13px;line-height:1.85;overflow-x:auto;color:#c7c9dd;}
.c-comment{color:var(--text-gray-dark);}
.c-kw{color:#c586ff;}
.c-fn{color:var(--cyan);}
.c-str{color:#4ade80;}
.c-cursor{color:var(--blue);animation:blink 1s step-end infinite;}
@keyframes blink{50%{opacity:0;}}

/* ---------- Service cards (light) ---------- */
.dev-card{
	background:var(--white);border:1px solid var(--border-light);border-radius:var(--radius);
	padding:26px;transition:transform .2s ease,box-shadow .2s ease;
}
.dev-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px -20px #0f142833;}
.dev-card-file{font-family:var(--font-mono);font-size:12px;color:var(--blue);display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;}
.dev-card-file::before{content:"";width:22px;height:22px;border-radius:6px;background:var(--blue-grad);display:inline-block;}
.dev-card h3{font-size:18.5px;margin-bottom:8px;color:var(--text-navy);}
.dev-card p{font-size:14px;margin:0;}

/* ---------- Process (dark, no card bg) ---------- */
.dev-process{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;}
.dev-process-step{padding:0 6px;}
.dev-process-num-badge{
	display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
	border-radius:50%;background:var(--blue-grad);color:#fff;font-weight:700;font-size:13px;
	font-family:var(--font-mono);margin-bottom:16px;
}
.dev-process-step h4{margin:0 0 8px;font-size:16.5px;color:#fff;}
.dev-process-step p{font-size:13.5px;margin:0;}

/* ---------- Pricing (light, middle card dark) ---------- */
.dev-pricing-grid{align-items:stretch;}
.dev-price-card{
	background:var(--white);border:1px solid var(--border-light);border-radius:var(--radius);
	padding:32px;display:flex;flex-direction:column;
}
.dev-price-card.is-featured{
	background:var(--navy);border-color:var(--blue);box-shadow:0 24px 50px -20px #2f6fed4d;
}
.dev-price-card.is-featured h3,.dev-price-card.is-featured .dev-price{color:#fff;}
.dev-price-card.is-featured .dev-price-desc{color:var(--text-gray-dark);}
.dev-price-card.is-featured .dev-price-list li{color:var(--text-gray-dark);}
.dev-tag{
	display:inline-block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
	color:var(--text-gray);background:#0000000a;border:1px solid var(--border-light);padding:5px 12px;border-radius:999px;
	margin-bottom:14px;width:fit-content;
}
.dev-price-card.is-featured .dev-tag{color:var(--cyan);background:#22d3ee1a;border-color:#22d3ee40;}
.dev-price-card h3{font-size:21px;margin-bottom:6px;color:var(--text-navy);}
.dev-price-desc{font-size:13.5px;min-height:40px;}
.dev-price{font-size:34px;font-weight:800;margin-bottom:20px;color:var(--text-navy);}
.dev-price-list{display:grid;gap:10px;margin-bottom:28px;flex:1;}
.dev-price-list li{font-size:13.5px;color:var(--text-gray);padding-left:22px;position:relative;}
.dev-price-list li::before{content:"✓";position:absolute;left:0;color:var(--blue);font-family:var(--font-mono);}
.dev-pricing-note{text-align:center;margin-top:36px;color:var(--text-gray);font-size:14px;}

/* ---------- Work (light) ---------- */
.dev-work-card{background:var(--white);border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden;}
.dev-work-thumb{
	height:150px;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;
}
.dev-thumb-1{background:linear-gradient(135deg,#2f6fed,#22d3ee);}
.dev-thumb-2{background:linear-gradient(135deg,#1e1b4b,#5b3fd6);}
.dev-thumb-3{background:linear-gradient(135deg,#0f766e,#22d3ee);}
.dev-work-thumb span{color:#fff;font-weight:700;font-size:17px;}
.dev-work-card .dev-tag{margin:20px 20px 0;}
.dev-work-card h4{margin:12px 20px 6px;font-size:17.5px;color:var(--text-navy);}
.dev-work-card p{margin:0 20px 20px;font-size:13.5px;}

/* ---------- Testimonials (light) ---------- */
.dev-testimonial{background:var(--white);border:1px solid var(--border-light);border-radius:var(--radius);padding:28px;}
.dev-stars{color:var(--yellow);letter-spacing:2px;margin-bottom:14px;font-size:14px;}
.dev-testimonial p{font-size:14.5px;color:var(--text-navy);margin-bottom:20px;}
.dev-testimonial-author{display:flex;align-items:center;gap:12px;}
.dev-avatar{
	width:38px;height:38px;border-radius:50%;background:var(--blue-grad);color:#fff;
	display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;flex-shrink:0;
}
.dev-testimonial-author strong{display:block;font-size:13.5px;color:var(--text-navy);}
.dev-testimonial-author small{color:var(--text-gray);font-size:12px;}

/* ---------- FAQ accordion (light-alt) ---------- */
.dev-accordion-item{border-bottom:1px solid var(--border-light);}
.dev-accordion-trigger{
	width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
	background:none;border:none;color:var(--text-navy);padding:22px 4px;text-align:left;
	font-size:15.5px;font-weight:600;cursor:pointer;
}
.dev-accordion-icon{font-family:var(--font-mono);color:var(--blue);font-size:20px;transition:transform .2s ease;flex-shrink:0;}
.dev-accordion-item.is-open .dev-accordion-icon{transform:rotate(45deg);}
.dev-accordion-panel{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.dev-accordion-panel p{padding:0 4px 22px;font-size:14px;margin:0;}

.dev-work-thumb-img{padding:0;overflow:hidden;}
.dev-work-thumb-img img{width:100%;height:100%;object-fit:cover;}
.dev-avatar img{width:38px;height:38px;border-radius:50%;object-fit:cover;display:block;}

/* ---------- Contact / Form (dark) ---------- */
.dev-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.dev-contact-grid h2{font-size:clamp(24px,3vw,32px);color:#fff;}
.dev-contact-preview{margin-top:32px;}
.dev-form{background:var(--navy-soft);border:1px solid var(--border-dark);border-radius:var(--radius);padding:32px;display:grid;gap:18px;}
.dev-form-row{display:grid;gap:6px;}
.dev-form-row label{font-size:13px;font-weight:600;color:var(--text-gray-dark);}
.dev-form-row .req{color:var(--cyan);}
.dev-form-row input,.dev-form-row select{
	background:var(--navy);border:1px solid var(--border-dark);color:#fff;
	padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;font-family:inherit;
}
.dev-form-row input::placeholder{color:var(--text-gray-dark);}
.dev-form-row input:focus,.dev-form-row select:focus{outline:none;border-color:var(--blue);}

/* Generic styling for plugin-rendered forms (Contact Form 7 / Mailchimp for WP / WPForms)
   dropped in via the shortcode field, so they visually match the dark panel. */
.dev-form-shortcode input[type="text"],
.dev-form-shortcode input[type="email"],
.dev-form-shortcode input[type="tel"],
.dev-form-shortcode input[type="url"],
.dev-form-shortcode input[type="number"],
.dev-form-shortcode textarea,
.dev-form-shortcode select{
	width:100%;background:var(--navy);border:1px solid var(--border-dark);color:#fff;
	padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;font-family:inherit;margin-bottom:14px;
}
.dev-form-shortcode label{font-size:13px;font-weight:600;color:var(--text-gray-dark);display:block;margin-bottom:6px;}
.dev-form-shortcode input[type="submit"],
.dev-form-shortcode button[type="submit"]{
	width:100%;background:var(--blue-grad);color:#fff;border:none;border-radius:999px;
	padding:13px 24px;font-weight:600;font-size:14.5px;cursor:pointer;
}
.dev-form-shortcode .wpcf7-not-valid-tip{color:#ff8a8a;font-size:12.5px;margin-top:-10px;margin-bottom:10px;}
.dev-form-shortcode .wpcf7-response-output{color:var(--text-gray-dark);border-color:var(--border-dark)!important;border-radius:var(--radius-sm);margin-top:14px;}

/* ---------- Footer (darkest) ---------- */
.dev-footer{background:#070a16;border-top:1px solid var(--border-dark);padding:clamp(40px,6vw,56px) 0 0;}
.dev-footer .dev-logo,.dev-footer .dev-logo-text{color:#fff;}
/* Intrinsic footer grid: 4-up → 2-up → 1-up automatically, identical on every device */
.dev-footer-inner{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
	gap:clamp(26px,4vw,40px);
	padding-bottom:clamp(28px,4vw,40px);
	align-items:start;
}
.dev-footer-col{min-width:0;}
.dev-footer-brand{grid-column:span 1;}
.dev-footer-col p{font-size:13.5px;margin-top:14px;margin-bottom:0;color:var(--text-gray-dark);line-height:1.65;max-width:44ch;}
.footer-widget-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-gray-dark);margin:0 0 16px;line-height:1.4;}
.dev-footer-list{display:grid;gap:2px;}
.dev-footer-list li{min-width:0;}
.dev-footer-list a{
	display:inline-block;
	font-size:13.5px;color:var(--text-gray-dark);
	padding:6px 0;line-height:1.5;
	word-break:break-word;overflow-wrap:anywhere;
	transition:color .15s ease;
}
.dev-footer-list a:hover{color:#fff;}
.dev-footer-bottom{border-top:1px solid var(--border-dark);padding:20px 0 calc(20px + env(safe-area-inset-bottom));}
.dev-footer-bottom p{margin:0;font-size:12.5px;color:var(--text-gray-dark);line-height:1.6;}

@media (min-width:981px){
	/* Brand column gets extra room on wide screens */
	.dev-footer-inner{grid-template-columns:1.6fr 1fr 1fr 1fr;}
}
@media (max-width:600px){
	.dev-footer-inner{grid-template-columns:1fr;}
	.dev-footer-bottom,.dev-footer-bottom p{text-align:center;}
}

/* ---------- Basic page fallback ---------- */
.dev-basic-content{padding:90px 0;max-width:800px;}
.dev-basic-title{font-size:34px;margin-bottom:22px;color:var(--text-navy);}
.dev-basic-body{color:var(--text-gray);font-size:15.5px;}

/* ==========================================================
   Responsive — tablet, mobile, small mobile
   ========================================================== */

/* ---- Large tablets / small laptops (≤1080px) ---- */
@media (max-width:1080px){
	:root{--container:960px;}
	.dev-grid-3{grid-template-columns:repeat(3,1fr);gap:18px;}
	.dev-process{gap:18px;}
	.dev-hero-grid{gap:40px;}
}

/* ---- Tablets (≤980px) ---- */
@media (max-width:980px){
	.dev-section{padding:72px 0;}
	.dev-hero{padding-top:40px;}
	.dev-hero-grid{grid-template-columns:1fr;gap:44px;padding-bottom:44px;}
	.dev-hero-panel{max-width:560px;}
	.dev-grid-3{grid-template-columns:1fr 1fr;}
	.dev-process{grid-template-columns:repeat(3,1fr);}
	.dev-footer-inner{grid-template-columns:1fr 1fr;gap:32px;}
	.dev-contact-grid{grid-template-columns:1fr;gap:40px;}
	.dev-stats{grid-template-columns:repeat(4,auto);gap:24px;}
}

/* ---- Small tablets / large phones (≤768px) ---- */
@media (max-width:768px){
	.dev-container{padding:0 20px;}
	.dev-section{padding:60px 0;}
	.dev-section-head{margin-bottom:36px;}
	.dev-header-actions .dev-btn-ghost{display:none;}
	.dev-header-inner{min-height:64px;}
	/* Keep --dev-header-h in sync with the real header height at this
	   breakpoint so anything anchored to it (mobile drawer, sticky tab
	   bars on Our Work / Pricing) lines up instead of overlapping.
	   main.js also measures the header directly and overrides this on
	   load/resize for pixel-perfect accuracy on every device. */
	:root{--dev-header-h:65px;}
	.dev-hero-title{font-size:clamp(28px,7vw,40px);}
	.dev-hero-desc{font-size:15.5px;}
	.dev-hero-ctas .dev-btn{flex:1;min-width:150px;}
	.dev-stats{grid-template-columns:1fr 1fr;gap:20px 16px;}
	.dev-check-bar{flex-direction:column;gap:12px;padding:20px 0;}
	.dev-check-bar li{min-width:0;}
	.dev-grid-3{grid-template-columns:1fr;}
	.dev-process{grid-template-columns:1fr 1fr;gap:24px 18px;}
	.dev-price-card.is-featured{transform:none;}
	.dev-footer-inner{grid-template-columns:1fr;gap:28px;text-align:left;padding-bottom:32px;}
	.dev-code-body{font-size:12px;padding:18px;}
	.dev-form{padding:24px;}
}

/* ---- Phones (≤600px) ---- */
@media (max-width:600px){
	.dev-container{padding:0 18px;}
	.dev-section{padding:52px 0;}
	.dev-logo{font-size:13px;}
	.dev-logo-mark{width:24px;height:24px;font-size:12px;}
	.dev-btn{padding:12px 20px;font-size:14px;}
	.dev-btn-sm{padding:8px 14px;font-size:13px;}
	.dev-hero-title{font-size:clamp(26px,8vw,34px);}
	.dev-hero-desc{max-width:100%;}
	.dev-hero-ctas{flex-direction:column;}
	.dev-hero-ctas .dev-btn{width:100%;}
	.dev-stats{grid-template-columns:1fr 1fr;}
	.dev-stat strong{font-size:19px;}
	.dev-process{grid-template-columns:1fr 1fr;gap:20px 14px;}
	.dev-price-card{padding:26px 22px;}
	.dev-price{font-size:29px;}
	.dev-work-thumb{height:130px;}
	.dev-section-head h2{font-size:24px;}
	.dev-accordion-trigger{font-size:14.5px;padding:18px 4px;}
	.dev-contact-grid h2{font-size:22px;}
}

/* ---- Small phones (≤420px) ---- */
@media (max-width:420px){
	.dev-container{padding:0 16px;}
	.dev-header-inner{gap:12px;}
	.dev-header-actions{gap:8px;}
	.dev-hero-title{font-size:clamp(24px,8.5vw,30px);}
	.dev-stats{grid-template-columns:1fr 1fr;gap:16px 12px;}
	.dev-process{grid-template-columns:1fr;}
	.dev-grid-3{gap:16px;}
	.dev-card{padding:22px;}
	.dev-form{padding:20px;}
	.dev-form-row input,.dev-form-row select{padding:11px 12px;font-size:13.5px;}
}

/* ---- Landscape phones / short viewports ---- */
@media (max-width:900px) and (orientation:landscape){
	.dev-hero{padding-top:24px;}
}

/* ---- Mobile nav drawer (toggled via JS) ---- */
@media (max-width:900px){
	.dev-nav{
		display:none;
		position:fixed;top:var(--dev-header-h);left:0;right:0;
		background:var(--white);
		border-bottom:1px solid var(--border-light);
		padding:20px clamp(16px,5vw,24px) calc(24px + env(safe-area-inset-bottom));
		max-height:calc(100dvh - var(--dev-header-h));
		overflow-y:auto;-webkit-overflow-scrolling:touch;
		z-index:60;
		box-shadow:0 24px 48px -24px #0f142833;
	}
	.dev-nav.is-open{display:block;}
	.dev-nav-list{flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;gap:2px;}
	.dev-nav-list li{width:100%;}
	.dev-nav-list a{
		display:block;width:100%;
		padding:14px 4px;font-size:16px;
		border-bottom:1px solid var(--border-light);
		white-space:normal;
	}
	.dev-nav-list li:last-child a{border-bottom:none;}
	/* CTA moves inside the drawer so it never crowds the logo */
	.dev-nav-cta{display:flex;width:100%;margin-top:18px;}
	.dev-header-actions .dev-header-cta{display:none;}
	.dev-menu-toggle{display:flex;}
}
@media (min-width:901px){
	.dev-nav-backdrop{display:none;}
}

/* Ensure wide inner elements never force horizontal scroll */
.dev-code-window,.dev-form,.dev-work-thumb,.dev-card,.dev-price-card,.dev-testimonial{max-width:100%;}
table{max-width:100%;}

/* ==========================================================
   SERVICES PAGE — template-services.php
   Distinct from homepage 3-col cards:
     • Dark hero banner with stats
     • 2-col feature cards with checklist + CTA
     • Trust strip (dark)
     • Bottom CTA block
   ========================================================== */

/* ---- Hero ---- */
.svc-page-hero{
	background:var(--navy);
	padding:72px 0 56px;
	position:relative;
	overflow:hidden;
}
.svc-page-hero::before{
	content:"";
	position:absolute;
	top:-200px;right:-100px;
	width:600px;height:500px;
	background:var(--blue-grad);
	filter:blur(160px);
	opacity:.18;
	pointer-events:none;
}
.svc-page-hero-inner{
	position:relative;
}
/* Breadcrumb removed from the services hero — styles intentionally dropped. */
.svc-page-hero-body{
	max-width:680px;
	margin-bottom:48px;
}
.svc-page-hero .dev-eyebrow{color:var(--cyan);}
.svc-page-title{
	font-size:clamp(30px,4vw,48px);
	color:#fff;
	margin-bottom:18px;
	font-weight:800;
	line-height:1.12;
	letter-spacing:-0.025em;
}
.svc-page-subtitle{
	font-size:16.5px;
	color:var(--text-gray-dark);
	max-width:560px;
	margin-bottom:30px;
}
.svc-page-hero-ctas{
	display:flex;
	gap:14px;
	flex-wrap:wrap;
}
.svc-page-hero .dev-btn-ghost{
	color:var(--text-light);
	border-color:var(--border-dark);
}
.svc-page-hero .dev-btn-ghost:hover{background:#ffffff0f;}

/* hero stats row */
.svc-page-hero-stats{
	display:flex;
	gap:0;
	border-top:1px solid var(--border-dark);
	padding-top:32px;
	flex-wrap:wrap;
}
.svc-stat{
	flex:1;
	min-width:120px;
	padding-right:32px;
	border-right:1px solid var(--border-dark);
	margin-right:32px;
}
.svc-stat:last-child{
	border-right:none;
	margin-right:0;
	padding-right:0;
}
.svc-stat strong{
	display:block;
	font-size:28px;
	font-weight:800;
	color:#fff;
	line-height:1.1;
	margin-bottom:4px;
	background:var(--blue-grad);
	-webkit-background-clip:text;
	background-clip:text;
	color:transparent;
}
.svc-stat span{
	font-size:13px;
	color:var(--text-gray-dark);
}

/* ---- Grid section ---- */
.svc-grid-section{
	padding:80px 0 88px;
	background:var(--light-bg);
}
.svc-section-intro{
	text-align:center;
	margin-bottom:44px;
}
.svc-intro-label{
	display:inline-block;
	font-size:14.5px;
	color:var(--text-gray);
	background:var(--white);
	border:1px solid var(--border-light);
	border-radius:999px;
	padding:9px 20px;
	margin:0;
}
.svc-intro-label strong{color:var(--text-navy);}

/* 2-column card grid */
.svc-cards-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:26px;
}

/* Individual service card */
.svc-card{
	background:var(--white);
	border:1px solid var(--border-light);
	border-radius:var(--radius);
	padding:32px;
	display:flex;
	flex-direction:column;
	gap:0;
	transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	position:relative;
	overflow:hidden;
}
.svc-card::before{
	content:"";
	position:absolute;
	top:0;left:0;right:0;
	height:3px;
	background:var(--blue-grad);
	opacity:0;
	transition:opacity .2s ease;
}
.svc-card:hover{
	transform:translateY(-5px);
	box-shadow:0 20px 48px -20px #2f6fed26;
	border-color:#2f6fed40;
}
.svc-card:hover::before{opacity:1;}

.svc-card-top{
	margin-bottom:22px;
}

/* icon row: icon box + file chip + optional badge */
.svc-card-icon-row{
	display:flex;
	align-items:center;
	gap:10px;
	margin-bottom:18px;
	flex-wrap:wrap;
}
.svc-card-icon{
	width:40px;
	height:40px;
	border-radius:10px;
	background:var(--blue-grad);
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
	box-shadow:0 6px 16px -6px #2f6fed60;
}
.svc-file-chip{
	font-family:var(--font-mono);
	font-size:12px;
	color:var(--blue);
	background:#2f6fed0d;
	border:1px solid #2f6fed22;
	padding:4px 10px;
	border-radius:6px;
	white-space:nowrap;
}
.svc-badge{
	font-size:11px;
	font-weight:700;
	letter-spacing:.05em;
	text-transform:uppercase;
	color:var(--cyan);
	background:#22d3ee12;
	border:1px solid #22d3ee33;
	padding:4px 10px;
	border-radius:999px;
	white-space:nowrap;
	margin-left:auto;
}

.svc-card-title{
	font-size:20px;
	color:var(--text-navy);
	margin-bottom:10px;
	font-weight:700;
}
.svc-card-desc{
	font-size:14.5px;
	color:var(--text-gray);
	line-height:1.65;
	margin:0;
}

/* feature checklist */
.svc-card-features{
	list-style:none;
	margin:0 0 24px;
	padding:0;
	display:grid;
	gap:9px;
	border-top:1px solid var(--border-light);
	padding-top:20px;
}
.svc-card-features li{
	font-size:13.5px;
	color:var(--text-gray);
	padding-left:22px;
	position:relative;
	line-height:1.5;
}
.svc-card-features li::before{
	content:"✓";
	position:absolute;
	left:0;top:0;
	color:var(--blue);
	font-family:var(--font-mono);
	font-weight:700;
	font-size:13px;
}

/* card CTA */
.svc-card-footer{
	margin-top:auto;
}
.svc-card-cta{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:14px;
	font-weight:600;
	color:var(--blue);
	transition:gap .15s ease, color .15s ease;
}
.svc-card-cta:hover{color:var(--navy);gap:10px;}
.svc-card-cta span{font-size:16px;line-height:1;}

/* ---- Trust strip ---- */
.svc-trust-strip{
	background:var(--navy);
	padding:44px 0;
}
.svc-trust-inner{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:32px;
}
.svc-trust-item{
	display:flex;
	align-items:flex-start;
	gap:14px;
}
.svc-trust-icon{
	width:38px;
	height:38px;
	border-radius:10px;
	background:#ffffff0d;
	border:1px solid var(--border-dark);
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--cyan);
	flex-shrink:0;
}
.svc-trust-item strong{
	display:block;
	font-size:14px;
	color:#fff;
	margin-bottom:3px;
	font-weight:600;
}
.svc-trust-item span{
	font-size:12.5px;
	color:var(--text-gray-dark);
}

/* ---- Bottom CTA ---- */
.svc-cta-section{
	padding:88px 0;
	background:var(--light-bg-alt);
}
.svc-cta-inner{
	display:grid;
	grid-template-columns:1.1fr 1fr;
	gap:56px;
	align-items:center;
}
.svc-cta-copy .dev-eyebrow{color:var(--blue);}
.svc-cta-copy h2{
	font-size:clamp(24px,2.8vw,34px);
	color:var(--text-navy);
	margin-bottom:14px;
	line-height:1.2;
}
.svc-cta-copy p{
	font-size:15px;
	color:var(--text-gray);
	max-width:440px;
	margin:0;
}
.svc-cta-actions{
	display:flex;
	flex-direction:column;
	gap:14px;
	align-items:flex-start;
}
.dev-btn-lg{
	padding:15px 30px;
	font-size:15.5px;
}
.dev-btn-ghost-dark{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	padding:13px 24px;
	border-radius:999px;
	font-weight:600;
	font-size:14.5px;
	border:1px solid var(--border-light);
	color:var(--text-navy);
	background:var(--white);
	transition:background .15s ease, border-color .15s ease;
	cursor:pointer;
}
.dev-btn-ghost-dark:hover{background:#f0f3fc;border-color:#c5cce8;}
.svc-cta-note{
	font-size:12.5px;
	color:var(--text-gray);
	margin:4px 0 0;
}

/* ==========================================================
   SERVICES PAGE — Responsive
   ========================================================== */

@media (max-width:1080px){
	.svc-cards-grid{grid-template-columns:repeat(2,1fr);gap:22px;}
	.svc-trust-inner{grid-template-columns:repeat(2,1fr);gap:24px;}
	.svc-cta-inner{gap:40px;}
}

@media (max-width:900px){
	.svc-cta-inner{grid-template-columns:1fr;gap:36px;}
	.svc-cta-actions{align-items:flex-start;flex-direction:row;flex-wrap:wrap;}
}

@media (max-width:768px){
	.svc-page-hero{padding:56px 0 44px;}
	.svc-page-title{font-size:clamp(26px,7vw,36px);}
	.svc-page-hero-stats{gap:0;}
	.svc-stat{min-width:calc(50% - 32px);margin-bottom:20px;}
	.svc-stat:nth-child(2n){border-right:none;margin-right:0;padding-right:0;}
	.svc-stat:nth-child(2n+1){border-right:1px solid var(--border-dark);margin-right:24px;padding-right:24px;}
	.svc-cards-grid{grid-template-columns:1fr;gap:20px;}
	.svc-trust-inner{grid-template-columns:1fr 1fr;gap:20px;}
	.svc-card{padding:26px;}
	.svc-grid-section{padding:60px 0 72px;}
	.svc-cta-section{padding:64px 0;}
	.svc-cta-inner{grid-template-columns:1fr;}
	.svc-cta-actions{flex-direction:column;}
	.dev-btn-lg{width:100%;justify-content:center;}
	.dev-btn-ghost-dark{width:100%;justify-content:center;}
}

@media (max-width:600px){
	.svc-page-hero{padding:44px 0 36px;}
	.svc-page-title{font-size:clamp(24px,8vw,30px);}
	.svc-page-hero-ctas{flex-direction:column;}
	.svc-page-hero-ctas .dev-btn{width:100%;justify-content:center;}
	.svc-stat{min-width:100%;border-right:none!important;margin-right:0!important;padding-right:0!important;}
	.svc-trust-inner{grid-template-columns:1fr;gap:18px;}
	.svc-card-icon-row{gap:8px;}
	.svc-badge{margin-left:0;}
	.svc-card-title{font-size:18px;}
	.svc-trust-strip{padding:36px 0;}
	.svc-grid-section{padding:48px 0 56px;}
	.svc-cta-section{padding:52px 0;}
}

@media (max-width:420px){
	.svc-card{padding:22px 18px;}
	.svc-page-hero{padding:36px 0 28px;}
}

/* ==========================================================
   Home "Recent work" gallery (website design shots)
   ========================================================== */
.dev-work-gallery{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:22px;
}
.dev-work-shot{
	position:relative;display:block;
	border:1px solid var(--border-light);
	border-radius:var(--radius);
	overflow:hidden;background:var(--white);
	text-decoration:none;
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.dev-work-shot img{
	display:block;width:100%;height:100%;
	aspect-ratio:16/11;
	object-fit:cover;object-position:top center;
	transition:transform .35s ease;
}
.dev-work-shot:hover{
	transform:translateY(-4px);
	border-color:#c3d6fb;
	box-shadow:0 18px 40px -22px rgba(15,20,40,.35);
}
.dev-work-shot:hover img{transform:scale(1.04);}
.dev-work-shot-overlay{
	position:absolute;inset:0;
	background:linear-gradient(180deg,rgba(10,14,31,0) 45%,rgba(10,14,31,.75) 100%);
	opacity:0;transition:opacity .2s ease;
	display:flex;align-items:flex-end;padding:14px;
}
.dev-work-shot:hover .dev-work-shot-overlay,
.dev-work-shot:focus-visible .dev-work-shot-overlay{opacity:1;}
.dev-work-shot-tag{
	font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
	color:#fff;background:linear-gradient(135deg,#2f6fed,#22d3ee);
	padding:5px 12px;border-radius:999px;
}
.dev-work-more{text-align:center;margin-top:34px;}
.dev-work-more .dev-btn{display:inline-flex;align-items:center;gap:8px;}

@media (max-width:1080px){
	.dev-work-gallery{gap:18px;}
}
@media (max-width:900px){
	.dev-work-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:600px){
	.dev-work-gallery{grid-template-columns:1fr;gap:14px;max-width:440px;margin:0 auto;}
	.dev-work-shot{border-radius:12px;}
	.dev-work-shot:hover{transform:none;box-shadow:none;}
	.dev-work-shot-overlay{opacity:1;background:linear-gradient(180deg,rgba(10,14,31,0) 55%,rgba(10,14,31,.7) 100%);}
	.dev-work-more{margin-top:26px;}
	.dev-work-more .dev-btn{width:100%;justify-content:center;}
}

/* ==========================================================
   Hero — mobile / tablet clean-up
   ========================================================== */
.dev-hero-title,.dev-hero-desc{overflow-wrap:break-word;}
.dev-hero-panel{min-width:0;}
.dev-code-window{max-width:100%;}
.dev-code-body{overflow-x:auto;-webkit-overflow-scrolling:touch;}

@media (max-width:980px){
	.dev-hero{padding-top:36px;}
	.dev-hero-grid{gap:36px;padding-bottom:40px;}
	.dev-hero-panel{max-width:100%;width:100%;}
	.dev-hero-desc{max-width:100%;}
	.dev-hero-ctas{margin-bottom:34px;}
}
@media (max-width:768px){
	.dev-hero{padding-top:30px;}
	.dev-hero-grid{gap:30px;padding-bottom:32px;}
	.dev-hero-title{line-height:1.15;margin-bottom:14px;}
	.dev-accent-text{display:block;}
	.dev-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;}
	.dev-stat strong{font-size:20px;}
	.dev-stat span{font-size:12px;}
	.dev-code-tabs{flex-wrap:wrap;row-gap:6px;padding:10px;}
	.dev-code-body{font-size:12px;padding:16px;line-height:1.7;}
}
@media (max-width:600px){
	.dev-hero{padding-top:26px;}
	.dev-hero-grid{gap:26px;padding-bottom:28px;}
	.dev-hero-ctas{flex-direction:column;gap:10px;margin-bottom:28px;}
	.dev-hero-ctas .dev-btn{width:100%;justify-content:center;}
	.dev-hero-desc{font-size:15px;margin-bottom:24px;}
	.dev-code-body{font-size:11.5px;padding:14px;}
	.dev-check-bar{padding:18px 0;gap:10px;}
	.dev-check-bar li{font-size:13.5px;}
}
@media (max-width:420px){
	.dev-hero-title{line-height:1.18;}
	.dev-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px;}
	.dev-stat strong{font-size:18px;}
	.dev-code-tabs .dev-tab:nth-child(n+4){display:none;}
	.dev-code-body{font-size:11px;padding:12px;}
}
