/*
Theme Name: Irfan Visual Blocks
Description: Native editable portfolio blocks with corrected section navigation and balanced responsive cards.
Version: 3.0.0
Requires at least: 6.6
Requires PHP: 7.4
Author: Irfanul Haque
Text Domain: irfan-blocks
License: GPL-2.0-or-later
*/
:root {
 --bg-dark:var(--wp--preset--color--navy,#081321);
 --bg-surface:var(--wp--preset--color--surface,#101f32);
 --bg-card:var(--wp--preset--color--card,#16283d);
 --accent-emerald:var(--wp--preset--color--emerald,#4bd6b3);
 --accent-mint:var(--wp--preset--color--mint,#7ce6cc);
 --accent-sky:var(--wp--preset--color--sky,#8ccaff);
 --text-white:var(--wp--preset--color--white,#f9fafb);
 --text-sub:var(--wp--preset--color--muted,#bdcbdc);
 --text-muted:#a2b3c8;
 --border-line:rgba(190,211,234,.15);
 --irfan-header-offset:112px;
 --font-body:var(--wp--preset--font-family--system,system-ui);
}
html { scroll-behavior:smooth; }
body { background:var(--bg-dark); }
.wp-site-blocks { padding:0; }
.wp-site-blocks > * { margin-block-start:0; }
:is(.irfan-main,.irfan-header-inner,.site-footer,.editor-styles-wrapper) { font-family:var(--font-body); color:var(--text-white); line-height:1.65; }
:is(.irfan-main,.irfan-header-inner,.site-footer,.editor-styles-wrapper) *, :is(.irfan-main,.irfan-header-inner,.site-footer,.editor-styles-wrapper) *::before { box-sizing:border-box; }
:is(.irfan-main,.irfan-header-inner,.site-footer,.editor-styles-wrapper) .container { width:calc(100% - 48px); max-width:1180px; margin-inline:auto; }
.irfan-main { margin:0; width:100%; }
.irfan-main .wp-block-post-content { margin:0; width:100%; max-width:none; }
.irfan-main .wp-block-post-content > .wp-block-group { width:100%; max-width:none; margin:0; }
:is(.irfan-main,.editor-styles-wrapper) .section { padding:clamp(56px,6vw,88px) 0; }
:is(.irfan-main,.editor-styles-wrapper) .wp-block-heading:not(.has-text-color), .site-footer .wp-block-heading:not(.has-text-color) { color:var(--text-white); }
:is(.irfan-main,.editor-styles-wrapper) h1 { font-size:clamp(2.2rem,4.5vw,3.65rem); line-height:1.12; letter-spacing:-.045em; font-weight:800; margin:18px 0 0; }
:is(.irfan-main,.editor-styles-wrapper) h2 { font-size:clamp(1.8rem,3.2vw,2.65rem); line-height:1.2; letter-spacing:-.035em; margin:16px 0; font-weight:750; }
:is(.irfan-main,.editor-styles-wrapper) h3 { font-size:1.2rem; line-height:1.3; letter-spacing:-.015em; font-weight:700; margin:0 0 12px; }
:is(.irfan-main,.editor-styles-wrapper) p { margin-top:0; }
:is(.irfan-main,.site-footer,.editor-styles-wrapper) a { color:var(--accent-mint); text-decoration:none; text-underline-offset:4px; }
:is(.irfan-main,.site-footer,.editor-styles-wrapper) a:hover { color:var(--accent-sky); }
:is(.irfan-main,.editor-styles-wrapper) img { display:block; max-width:100%; height:auto; }
:is(.irfan-main,.editor-styles-wrapper) [id] { scroll-margin-top:var(--irfan-header-offset); }
:is(.irfan-main,.editor-styles-wrapper) .section-tag { display:inline-block; width:fit-content; max-width:100%; padding:7px 13px; margin:0 0 8px; border:1px solid rgba(75,214,179,.22); border-radius:30px; background:rgba(75,214,179,.07); color:var(--accent-mint); font-size:.7rem; letter-spacing:.095em; line-height:1.6; font-weight:700; text-transform:uppercase; }
:is(.irfan-main,.editor-styles-wrapper) .section-intro { color:var(--text-sub); max-width:64ch; margin:12px 0 0; }
:is(.irfan-main,.editor-styles-wrapper) .wp-block-buttons { gap:12px; }
:is(.irfan-main,.editor-styles-wrapper) .wp-block-button__link { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:13px 23px; border-radius:999px; background:var(--accent-emerald); color:var(--bg-dark); font-size:.94rem; font-weight:700; line-height:1.4; text-decoration:none; transition:transform .2s,background .2s; }
:is(.irfan-main,.editor-styles-wrapper) .wp-block-button__link:hover { background:var(--accent-mint); color:var(--bg-dark); transform:translateY(-2px); }
:is(.irfan-main,.editor-styles-wrapper) .wp-block-button.is-style-outline .wp-block-button__link { background:transparent; color:var(--text-white); border:1px solid var(--border-line); }
:is(.irfan-main,.editor-styles-wrapper) .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color:var(--accent-mint); background:rgba(75,214,179,.07); }
/* Separate sticky template part, with one shared content width. */
.irfan-sticky-header { position:sticky; top:0; z-index:100; background:rgba(8,19,33,.97); border-bottom:1px solid var(--border-line); }
.admin-bar .irfan-sticky-header { top:32px; }
.irfan-header-inner { padding:17px 0; }
.irfan-nav-wrap { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.irfan-nav-wrap > * { margin-block:0; min-width:0; }
.brand-block { display:flex; align-items:center; gap:12px; }
.brand-block > * { margin-block:0; }
.brand-block .wp-block-site-logo { flex-shrink:0; }
.brand-block .wp-block-site-logo img { width:44px; height:44px; object-fit:contain; }
.brand-name { margin:0; color:var(--text-white); font-size:1.06rem; line-height:1.3; }
.brand-role { margin:3px 0 0; color:var(--text-sub); font-size:.73rem; line-height:1.4; }
.irfan-sticky-header .wp-block-navigation { color:var(--text-sub); font-weight:600; font-size:.9rem; }
.irfan-sticky-header .wp-block-navigation__container { gap:22px; }
.irfan-sticky-header .wp-block-navigation-item__content:hover,.irfan-sticky-header .wp-block-navigation a[aria-current="location"] { color:var(--accent-mint); }
.irfan-sticky-header .wp-block-navigation-item__content { padding-block:8px; }
.wp-block-navigation__responsive-container.is-menu-open { background:var(--bg-dark); color:var(--text-white); z-index:1000; }
.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open { color:var(--text-white); }
/* Only grid/flex children lose WordPress's flow margins; card content keeps its spacing. */
:is(.irfan-main,.editor-styles-wrapper) :is(.hero-grid,.two-column,.hero-metrics,.services-grid,.process-grid,.testimonial-grid,.principles,.skill-list,.faq-grid,.contact-layout,.hero-actions,.tags,.social-btn-group,.contact-details) > * { margin-block:0; min-width:0; }
:is(.irfan-main,.editor-styles-wrapper) .hero { width:100%; padding:64px 0 72px; background:radial-gradient(ellipse at 12% 15%,rgba(75,214,179,.09),transparent 55%),radial-gradient(ellipse at 95% 80%,rgba(140,202,255,.10),transparent 58%); }
:is(.irfan-main,.editor-styles-wrapper) .hero-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); gap:64px; align-items:center; }
.gradient-text { display:inline-block; max-width:100%; background:linear-gradient(120deg,var(--accent-mint),var(--accent-sky)); background-clip:text; -webkit-background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
:is(.irfan-main,.editor-styles-wrapper) .hero-description { font-size:1.06rem; line-height:1.8; color:var(--text-sub); margin:24px 0 28px; max-width:62ch; }
:is(.irfan-main,.editor-styles-wrapper) .hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin:0 0 30px; }
:is(.irfan-main,.editor-styles-wrapper) .hero-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding-top:24px; border-top:1px solid var(--border-line); }
.hero-metrics p { margin:0; }
.hero-metrics strong { color:var(--accent-mint); font-size:.92rem; font-weight:700; }
.hero-metrics p + p { margin:5px 0 0; font-size:.78rem; line-height:1.5; color:var(--text-sub); }
:is(.irfan-main,.editor-styles-wrapper) .hero-visual { width:100%; max-width:440px; justify-self:end; }
.portrait-frame { overflow:hidden; border-radius:26px; border:1px solid var(--border-line); background:var(--bg-surface); box-shadow:0 24px 55px rgba(0,0,0,.2); }
.portrait-frame .wp-block-image { margin:0; }
.portrait-frame img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.hero-visual .availability-note { margin:13px 0 0; font-size:.82rem; color:var(--accent-mint); }
:is(.irfan-main,.editor-styles-wrapper) .two-column { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:56px; }
:is(.irfan-main,.editor-styles-wrapper) .about { background:var(--bg-surface); border-block:1px solid var(--border-line); }
.about-content > p { color:var(--text-sub); font-size:1rem; margin:0 0 20px; }
.principles { display:grid; gap:14px; margin-top:26px; }
.principles article { display:flex; align-items:flex-start; gap:18px; padding:22px; border:1px solid var(--border-line); border-radius:16px; background:var(--bg-card); }
.principles article > p { margin:0; flex:0 0 24px; font-weight:700; color:var(--accent-mint); }
.principles article > .wp-block-group { margin:0; }
.principles article h3 { font-size:1.04rem; margin:0 0 8px; }
.principles article p { margin:0; color:var(--text-sub); font-size:.9rem; }
:is(.irfan-main,.editor-styles-wrapper) .services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:32px; align-items:stretch; }
:is(.irfan-main,.editor-styles-wrapper) .service-card { display:flex; flex-direction:column; position:relative; padding:28px; border-radius:20px; border:1px solid var(--border-line); background:var(--bg-surface); transition:transform .2s,border-color .2s; }
.service-card:hover { transform:translateY(-4px); border-color:rgba(75,214,179,.5); }
.service-card.featured { background:linear-gradient(150deg,rgba(75,214,179,.08),var(--bg-surface)); border-color:rgba(75,214,179,.35); }
.service-card .service-number { position:absolute; right:24px; top:24px; margin:0; font-size:.75rem; color:var(--text-muted); }
.service-card .service-icon { margin:0 0 18px; font-size:1.5rem; line-height:1.4; }
.service-card h3 { min-height:3.1em; margin:0 0 12px; }
.service-card > p:not(.service-number):not(.service-icon) { margin:0 0 22px; color:var(--text-sub); font-size:.93rem; line-height:1.7; }
.service-card .wp-block-list { list-style:none; padding:18px 0 0; margin: auto 0 0; border-top:1px solid var(--border-line); }
.service-card li { position:relative; padding-left:20px; margin:0 0 8px; color:var(--text-sub); font-size:.85rem; line-height:1.6; }
.service-card li::before { content:'✓'; position:absolute; left:0; color:var(--accent-mint); }
:is(.irfan-main,.editor-styles-wrapper) .skill-list { display:grid; gap:18px; }
.skill-list article { padding:26px; border:1px solid var(--border-line); border-radius:18px; background:var(--bg-surface); }
.skill-list article > p { color:var(--text-sub); font-size:.93rem; margin:0 0 18px; }
.tags { display:flex; flex-wrap:wrap; gap:8px; }
.tags .wp-block-button__link { padding:8px 12px; min-height:36px; font-size:.76rem; font-weight:600; }
:is(.irfan-main,.editor-styles-wrapper) .process { background:rgba(16,31,50,.42); border-block:1px solid var(--border-line); }
:is(.irfan-main,.editor-styles-wrapper) .process-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:32px; align-items:stretch; }
.process-card { padding:25px; background:var(--bg-surface); border:1px solid var(--border-line); border-radius:18px; }
.process-card > p:first-child { color:var(--accent-mint); font-size:1.8rem; font-weight:700; margin:0 0 18px; }
.process-card h3 { font-size:1.08rem; min-height:2.65em; margin:0 0 12px; }
.process-card > p:last-child { color:var(--text-sub); font-size:.89rem; margin:0; }
:is(.irfan-main,.editor-styles-wrapper) .testimonials { background:linear-gradient(125deg,rgba(75,214,179,.045),rgba(140,202,255,.045)); }
:is(.irfan-main,.editor-styles-wrapper) .testimonial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; align-items:stretch; margin-top:28px; }
.testimonial-card { display:flex; flex-direction:column; padding:26px; background:var(--bg-surface); border:1px solid var(--border-line); border-radius:18px; }
.testimonial-card .section-tag { font-size:.6rem; letter-spacing:.04em; margin-bottom:18px; }
.testimonial-card h3 { min-height:2.6em; margin:0 0 15px; }
.testimonial-card .wp-block-quote { border:0; padding:0; margin:0 0 24px; color:var(--text-sub); font-size:.96rem; }
.testimonial-card .wp-block-quote p { margin:0; }
.testimonial-attribution { margin:auto 0 0; padding-top:15px; border-top:1px solid var(--border-line); color:var(--text-muted); font-size:.76rem; }
:is(.irfan-main,.editor-styles-wrapper) .faq-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:stretch; margin-top:30px; }
.faq-item { padding:25px; border:1px solid var(--border-line); border-radius:18px; background:var(--bg-surface); }
.faq-item h3 { font-size:1.06rem; margin:0 0 13px; }
.faq-item p { color:var(--text-sub); font-size:.93rem; margin:0; }
.contact-intro { color:var(--text-sub); max-width:65ch; }
:is(.irfan-main,.editor-styles-wrapper) .contact-details { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:24px 0 0; }
.contact-details > p { display:none; }
.contact-details .wp-block-button__link { font-size:.85rem; }
:is(.irfan-main,.editor-styles-wrapper) .contact-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:24px; margin-top:28px; align-items:start; }
.contact-form,.map-card { padding:30px; border:1px solid var(--border-line); border-radius:20px; background:var(--bg-surface); min-width:0; }
.contact-form h3,.map-card h3 { color:var(--text-white); margin:0 0 16px; }
.contact-form label { display:block; color:var(--text-sub); font-size:.88rem; font-weight:600; margin:18px 0 7px; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; padding:12px 14px; border:1px solid rgba(190,211,234,.22); border-radius:9px; background:var(--bg-dark); color:var(--text-white); font:inherit; font-size:.94rem; line-height:1.6; }
.contact-form textarea { min-height:140px; resize:vertical; }
.form-note,.form-status { color:var(--text-muted); font-size:.82rem; margin:14px 0 0; }
.contact-form .button { display:inline-flex; align-items:center; justify-content:center; padding:13px 22px; min-height:48px; margin-top:20px; border:0; border-radius:50px; background:var(--accent-emerald); color:var(--bg-dark); font:inherit; font-weight:700; font-size:.94rem; cursor:pointer; }
.map-card > p { color:var(--text-sub); font-size:.92rem; margin:0 0 22px; }
.map-placeholder { padding:25px; min-height:230px; margin:0 0 20px; background:linear-gradient(135deg,rgba(75,214,179,.07),rgba(140,202,255,.10)); border:1px solid var(--border-line); border-radius:14px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:12px; }
.map-placeholder > * { margin:0; }
.map-placeholder > p:first-child { font-size:1.2rem; font-weight:700; color:var(--text-white); }
.map-placeholder p { color:var(--text-sub); }
.map-card > .wp-block-buttons > .wp-block-button > .wp-block-button__link { font-size:.83rem; }
.social-btn-group { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.social-btn-group .wp-block-button__link { font-size:.84rem; }
.irfan-enquiry-preview input,.irfan-enquiry-preview textarea { pointer-events:none; }
.site-footer { background:#060f1b; border-top:1px solid var(--border-line); padding:56px 0 24px; font-size:.9rem; }
.site-footer .footer-grid { display:grid; grid-template-columns:1.4fr .8fr 1fr .8fr; gap:36px; }
.site-footer .footer-grid > * { margin:0; min-width:0; }
.site-footer h3 { color:var(--text-white); font-size:1rem; margin:0 0 20px; }
.site-footer .footer-brand h3 { font-size:1.2rem; }
.site-footer p { color:var(--text-sub); margin:0; }
.site-footer .wp-block-navigation { color:var(--text-sub); font-size:.88rem; }
.site-footer .wp-block-navigation__container { gap:10px; align-items:flex-start; }
.site-footer .wp-block-navigation-item__content { line-height:1.6; }
.site-footer .footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:36px; padding-top:22px; border-top:1px solid var(--border-line); font-size:.8rem; }
.site-footer .footer-bottom > * { margin:0; }
/* Three-column customised footers from v1 remain balanced after the update. */
.site-footer .footer-grid:has(> :last-child:nth-child(3)) { grid-template-columns:1.4fr 1fr 1fr; }
:is(.irfan-main,.editor-styles-wrapper) .privacy-copy { max-width:800px !important; width:calc(100% - 48px) !important; margin-inline:auto !important; }
.privacy-copy h2 { font-size:1.4rem; margin:30px 0 12px; }
.privacy-copy p { color:var(--text-sub); }
:focus-visible { outline:3px solid var(--accent-mint); outline-offset:4px; }
@media(max-width:1100px) {
 :is(.irfan-main,.editor-styles-wrapper) .hero-grid { gap:36px; }
 :is(.irfan-main,.editor-styles-wrapper) .process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .site-footer .footer-grid { gap:24px; }
 .irfan-sticky-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none !important; }
 .irfan-sticky-header .wp-block-navigation__responsive-container-open { display:flex !important; }
}
@media(max-width:900px) {
 :is(.irfan-main,.editor-styles-wrapper) .hero-grid { grid-template-columns:minmax(0,1fr); gap:36px; }
 :is(.irfan-main,.editor-styles-wrapper) .hero-visual { justify-self:center; max-width:380px; }
 :is(.irfan-main,.editor-styles-wrapper) .two-column { grid-template-columns:1fr; gap:28px; }
 :is(.irfan-main,.editor-styles-wrapper) .services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 :is(.irfan-main,.editor-styles-wrapper) .testimonial-grid { grid-template-columns:1fr; }
 .testimonial-card h3 { min-height:0; }
 .site-footer .footer-grid,.site-footer .footer-grid:has(> :last-child:nth-child(3)) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .site-footer .footer-brand { grid-column:1/-1; }
}
@media(max-width:767px) {
 :is(.irfan-main,.irfan-header-inner,.site-footer,.editor-styles-wrapper) .container { width:calc(100% - 32px); }
 :is(.irfan-main,.editor-styles-wrapper) .hero { padding:42px 0 52px; }
 :is(.irfan-main,.editor-styles-wrapper) .section { padding:52px 0; }
 :is(.irfan-main,.editor-styles-wrapper) .contact-layout { grid-template-columns:1fr; }
 .admin-bar .irfan-sticky-header { top:46px; }
 .irfan-header-inner { padding:14px 0; }
 .brand-name { font-size:.98rem; }
 .brand-role { font-size:.65rem; }
 .brand-block .wp-block-site-logo img { width:38px; height:38px; }
 .hero-description { font-size:1rem; }
 .hero-actions { flex-direction:column; align-items:stretch; }
 .hero-actions .wp-block-button,.hero-actions .wp-block-button__link { width:100%; }
 .hero-metrics { gap:12px; }
 .hero-metrics strong { font-size:.8rem; }
 .hero-metrics p + p { font-size:.73rem; }
 .contact-form,.map-card { padding:23px; }
}
@media(max-width:600px) {
 :is(.irfan-main,.editor-styles-wrapper) h1 { font-size:clamp(2rem,8.5vw,2.8rem); overflow-wrap:anywhere; }
 .gradient-text { display:inline; }
 .admin-bar .irfan-sticky-header { top:0; }
 :is(.irfan-main,.editor-styles-wrapper) :is(.services-grid,.process-grid,.faq-grid) { grid-template-columns:minmax(0,1fr); }
 .service-card h3,.process-card h3 { min-height:0; }
 .service-card { padding:25px; }
 .footer-bottom { flex-direction:column; align-items:flex-start !important; }
}
@media(max-width:360px) {
 .hero-metrics { grid-template-columns:1fr !important; }
 .site-footer .footer-grid,.site-footer .footer-grid:has(> :last-child:nth-child(3)) { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 :is(.irfan-main,.editor-styles-wrapper) * { transition:none !important; }
}

/* Native Elementor containers: no page-sized HTML/Text Editor wrapper. */
.irfan-main .elementor > .e-con { margin:0; width:100%; max-width:none; }
.irfan-main .elementor .container.e-con { width:calc(100% - 48px); max-width:1180px; margin-inline:auto; }
.irfan-main .elementor :is(.hero-grid,.two-column,.hero-metrics,.services-grid,.process-grid,.testimonial-grid,.faq-grid,.contact-layout) > .e-con { width:auto; flex-basis:auto; }
.irfan-main .elementor .e-con { min-width:0; }
.irfan-main .elementor :is(.hero-copy,.hero-visual,.service-card,.process-card,.testimonial-card,.faq-item,.map-card) { gap:18px; }
.irfan-main .elementor .elementor-widget { margin:0; }
.irfan-main .elementor .elementor-widget-text-editor p { margin:0; }
.irfan-main .elementor .elementor-heading-title { margin:0; }
.irfan-main .elementor .hero-copy > .elementor-widget-heading .elementor-heading-title { font-size:clamp(2.1rem,4.4vw,3.65rem); line-height:1.13; letter-spacing:-.04em; }
.irfan-main .elementor .hero-copy { gap:24px; }
.irfan-main .elementor .irfan-elementor-tag { width:fit-content; max-width:100%; color:var(--accent-mint); padding:7px 13px; border:1px solid rgba(75,214,179,.22); border-radius:30px; background:rgba(75,214,179,.07); text-transform:uppercase; letter-spacing:.09em; }
.irfan-main .elementor .irfan-principle-card { display:flex; flex-direction:row; flex-wrap:nowrap; gap:18px; padding:22px; border:1px solid var(--border-line); border-radius:16px; background:var(--bg-card); }
.irfan-main .elementor .irfan-principle-card > .elementor-widget-heading { width:32px; flex-shrink:0; }
.irfan-main .elementor .irfan-principle-card > .e-con { flex:1; width:auto; }
.irfan-main .elementor .irfan-tool-card { padding:26px; border:1px solid var(--border-line); border-radius:18px; background:var(--bg-surface); }
.irfan-main .elementor .hero-actions,.irfan-main .elementor .tags,.irfan-main .elementor .social-btn-group,.irfan-main .elementor .contact-details { display:flex; flex-direction:row; flex-wrap:wrap; }
.irfan-main .elementor .hero-actions .elementor-widget-button,.irfan-main .elementor .tags .elementor-widget-button,.irfan-main .elementor .social-btn-group .elementor-widget-button,.irfan-main .elementor .contact-details .elementor-widget-button { width:auto; }
.irfan-main .elementor .service-card .elementor-widget-icon-list { margin-top:auto; padding-top:18px; border-top:1px solid var(--border-line); }
.irfan-main .elementor .service-card .elementor-icon-list-item::before { content:none; }
.irfan-main .elementor .service-card .elementor-icon-list-item { padding-left:0; }
.irfan-main .elementor .google_maps iframe,.irfan-main .elementor .elementor-widget-google_maps iframe { border:0; border-radius:14px; width:100%; }
.irfan-main .elementor .contact-layout > .irfan-enquiry-column { padding:0; }
.irfan-main .elementor .contact-form { margin:0; }
body.elementor-editor-active .irfan-sticky-header { position:relative; top:0; }
@media(max-width:767px) {
 .irfan-main .elementor .container.e-con { width:calc(100% - 32px); }
 .irfan-main .elementor .hero-actions { flex-direction:column; align-items:stretch; }
 .irfan-main .elementor .hero-actions .elementor-widget-button { width:100%; }
 .irfan-main .elementor .hero-actions .elementor-button { width:100%; }
}

/* Use native Elementor layout variables, so Grid columns/gaps stay editable. */
.irfan-main .elementor .e-con { gap:var(--gap,20px); }
.irfan-main .elementor .e-con.e-grid { display:grid; grid-template-columns:var(--e-con-grid-template-columns); grid-template-rows:var(--e-con-grid-template-rows,auto); gap:var(--gap,22px); }
