/*
Theme Name: PTO Modern
Description: Lightweight, modern RTL child theme of Hello Elementor for Pezhvak Taban Ofogh.
Template: hello-elementor
Version: 1.0.0
Text Domain: pto-modern
*/

/* ---------- Fonts (self-hosted Vazirmatn; old family names are aliased so existing Elementor settings keep working) ---------- */
@font-face{font-family:'Vazirmatn';src:url(assets/fonts/Vazirmatn.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'iranSansWeb';src:url(assets/fonts/Vazirmatn.woff2) format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'IRANSansWeb';src:url(assets/fonts/Vazirmatn.woff2) format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'IRANSansX';src:url(assets/fonts/Vazirmatn.woff2) format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'IRANSansX-Black';src:url(assets/fonts/Vazirmatn.woff2) format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'IRANSans-Bold';src:url(assets/fonts/Vazirmatn.woff2) format('woff2');font-weight:100 900;font-display:swap}

:root{
	--pto-accent:#f49600;--pto-accent-d:#d57f00;--pto-accent-soft:#fff4e0;
	--pto-dark:#161922;--pto-ink:#2a2b39;--pto-muted:#5f6271;--pto-bg:#f6f7f9;--pto-line:#e6e8ee;
	--pto-radius:14px;--pto-radius-lg:22px;
	--pto-shadow:0 10px 34px rgba(22,25,34,.09);--pto-shadow-s:0 3px 12px rgba(22,25,34,.08);
	--pto-font:'Vazirmatn',Tahoma,'Segoe UI',sans-serif;
	--pto-wrap:1240px;
	--e-global-typography-primary-font-family:'Vazirmatn';
	--e-global-typography-secondary-font-family:'Vazirmatn';
	--e-global-typography-text-font-family:'Vazirmatn';
	--e-global-typography-accent-font-family:'Vazirmatn';
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--pto-font);font-size:16px;line-height:1.95;color:var(--pto-ink);background:transparent;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
/* Site-wide background: fine grid lines over a soft white→warm-yellow gradient with a gentle glow (fixed) */
html{background:#ffffff}
body.elementor-kit-21,body[class*="elementor-kit-"]{background-color:transparent!important}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
	background:
		linear-gradient(to right,rgba(200,150,40,.09) 1px,transparent 1px) 0 0/64px 64px,
		linear-gradient(to bottom,rgba(200,150,40,.09) 1px,transparent 1px) 0 0/64px 64px,
		radial-gradient(1100px 420px at 85% 105%,rgba(255,196,60,.30),transparent 70%),
		radial-gradient(900px 380px at 10% 100%,rgba(255,214,110,.22),transparent 70%),
		radial-gradient(700px 300px at 0% 0%,rgba(255,226,150,.18),transparent 70%),
		linear-gradient(180deg,#ffffff 0%,#fffdf6 45%,#fff6dd 100%)}
body.pto-lock{overflow:hidden}
img,svg,video{max-width:100%;height:auto}
a{color:var(--pto-accent-d);text-decoration:none;transition:color .2s}
a:hover{color:var(--pto-accent)}
h1,h2,h3,h4,h5,h6{font-family:var(--pto-font);color:var(--pto-dark);line-height:1.5;font-weight:800}
::selection{background:var(--pto-accent);color:#fff}
:focus-visible{outline:3px solid var(--pto-accent);outline-offset:3px;border-radius:4px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link:focus{position:fixed;top:8px;right:8px;z-index:100000;width:auto;height:auto;clip:auto;background:var(--pto-dark);color:#fff;padding:10px 16px;border-radius:8px}
.elementor .elementor-heading-title,.elementor .elementor-widget-text-editor,.elementor .elementor-tab-title,.elementor .elementor-button,.elementor .elementor-icon-list-text,.elementor .elementor-accordion-title,.elementor .elementor-counter-title,.elementor-widget-container{font-family:var(--pto-font)}
.elementor-widget-text-editor p{margin-bottom:1em}
.site-main{display:block}
.pto-wrap{width:100%;max-width:var(--pto-wrap);margin-inline:auto;padding-inline:20px}

/* ---------- Top bar ---------- */
.pto-topbar{background:var(--pto-dark);color:#c7c9d4;font-size:13px}
.pto-topbar__in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px}
.pto-topbar__msg{margin:0;line-height:1.6}
.pto-topbar__links{display:flex;gap:18px;flex-wrap:wrap}
.pto-topbar a{color:#fff}
.pto-topbar a:hover{color:var(--pto-accent)}

/* ---------- Header / navigation ---------- */
.pto-header{position:sticky;top:0;z-index:999;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--pto-line);transition:box-shadow .25s,background .25s}
.pto-header.is-stuck{box-shadow:var(--pto-shadow-s);background:rgba(255,255,255,.97)}
body.admin-bar .pto-header{top:32px}
.pto-header__in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:78px}
.pto-logo{display:block;flex:0 0 auto;line-height:0}
.pto-logo img{height:56px;width:auto;max-width:190px;display:block}
.pto-nav{display:flex;align-items:center;gap:20px;flex:1;justify-content:space-between}
.pto-menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.pto-menu li{position:relative;margin:0}
.pto-menu>li>a{display:flex;align-items:center;gap:4px;padding:10px 14px;border-radius:10px;color:var(--pto-ink);font-weight:600;font-size:15px;line-height:1.4}
.pto-menu>li>a:hover,.pto-menu>li.current-menu-item>a,.pto-menu>li.current-menu-ancestor>a,.pto-menu>li.current_page_item>a{background:var(--pto-accent-soft);color:var(--pto-accent-d)}
.pto-menu .menu-item-has-children>a::after{content:"";width:6px;height:6px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-2px);opacity:.6;margin-inline-start:4px}
.pto-sub-toggle{display:none}
.pto-menu .sub-menu{list-style:none;margin:0;padding:8px;position:absolute;top:100%;inset-inline-start:0;min-width:240px;background:#fff;border:1px solid var(--pto-line);border-radius:var(--pto-radius);box-shadow:var(--pto-shadow);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s;z-index:10}
.pto-menu li:hover>.sub-menu,.pto-menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.pto-menu .sub-menu a{display:block;padding:9px 14px;border-radius:9px;color:var(--pto-ink);font-size:14.5px;font-weight:500}
.pto-menu .sub-menu a:hover{background:var(--pto-accent-soft);color:var(--pto-accent-d)}
.pto-cta{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:11px 24px;border-radius:999px;background:var(--pto-accent);color:#fff!important;font-weight:700;font-size:14.5px;box-shadow:0 6px 18px rgba(244,150,0,.35);transition:transform .2s,box-shadow .2s,background .2s}
.pto-cta:hover{background:var(--pto-accent-d);transform:translateY(-2px);box-shadow:0 10px 24px rgba(244,150,0,.42)}
.pto-burger{display:none;width:46px;height:46px;border:1px solid var(--pto-line);border-radius:12px;background:#fff;cursor:pointer;padding:0;position:relative}
.pto-burger span{position:absolute;inset-inline:12px;height:2px;background:var(--pto-dark);border-radius:2px;transition:transform .25s,opacity .2s,top .25s}
.pto-burger span:nth-child(1){top:15px}.pto-burger span:nth-child(2){top:22px}.pto-burger span:nth-child(3){top:29px}
.pto-header.is-open .pto-burger span:nth-child(1){top:22px;transform:rotate(45deg)}
.pto-header.is-open .pto-burger span:nth-child(2){opacity:0}
.pto-header.is-open .pto-burger span:nth-child(3){top:22px;transform:rotate(-45deg)}

@media (max-width:1024px){
	.pto-topbar__msg{display:none}
	.pto-topbar__in{justify-content:center}
	/* backdrop-filter makes the header the containing block of position:fixed children -> the menu panel got clipped */
	.pto-header,.pto-header.is-stuck{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}
	.pto-header__in{min-height:68px}
	.pto-logo img{height:46px}
	.pto-burger{display:block;order:-1}   /* menu button on the right, logo on the left (RTL) */
	.pto-nav{position:fixed;inset:0;top:var(--pto-head-h,110px);background:#fff;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:14px;padding:20px;overflow-y:auto;transform:translateX(100%);visibility:hidden;transition:transform .3s,visibility .3s}
	[dir=ltr] .pto-nav{transform:translateX(-100%)}
	.pto-header.is-open .pto-nav{transform:none;visibility:visible}
	.pto-menu{flex-direction:column;align-items:stretch;gap:2px}
	.pto-menu>li>a{padding:14px;font-size:16px;border-radius:12px}
	.pto-menu li{display:flex;flex-wrap:wrap;align-items:center}
	.pto-menu li>a{flex:1}
	.pto-menu .menu-item-has-children>a::after{display:none}
	.pto-sub-toggle{display:block;width:44px;height:44px;border:0;background:transparent;cursor:pointer;position:relative}
	.pto-sub-toggle::before{content:"";position:absolute;top:16px;inset-inline-start:16px;width:8px;height:8px;border:solid var(--pto-muted);border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .2s}
	.pto-menu li.is-open>.pto-sub-toggle::before{transform:rotate(-135deg);top:20px}
	.pto-menu .sub-menu{position:static;flex:0 0 100%;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-inline-start:3px solid var(--pto-accent-soft);border-radius:0;display:none;padding:4px 8px;margin-inline-start:14px}
	.pto-menu li.is-open>.sub-menu{display:block}
	.pto-cta{width:100%;padding:15px}
}
@media (max-width:782px){body.admin-bar .pto-header{top:46px}}

/* ---------- Mobile menu: glass look ----------
   The blur lives on ::before / on the panel itself, never on .pto-header (that would trap the fixed panel). */
@media (max-width:1024px){
	.pto-header,.pto-header.is-stuck{background:transparent}
	.pto-header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.72);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid rgba(255,255,255,.6);box-shadow:0 6px 24px rgba(22,25,34,.06)}
	.pto-burger{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.8);box-shadow:0 4px 14px rgba(22,25,34,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
	.pto-header.is-open .pto-burger{background:var(--pto-accent);border-color:var(--pto-accent)}
	.pto-header.is-open .pto-burger span{background:#fff}

	.pto-nav{background:linear-gradient(160deg,rgba(255,255,255,.62),rgba(255,246,221,.55));-webkit-backdrop-filter:saturate(170%) blur(22px);backdrop-filter:saturate(170%) blur(22px);border-top:1px solid rgba(255,255,255,.7);padding:18px 16px 28px;gap:16px;transition:transform .35s cubic-bezier(.2,.8,.2,1),visibility .35s}
	.pto-menu{gap:8px}
	.pto-menu>li{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.85);border-radius:16px;box-shadow:0 4px 16px rgba(22,25,34,.06);overflow:hidden;opacity:0;transform:translateX(24px);transition:opacity .35s,transform .35s}
	.pto-header.is-open .pto-menu>li{opacity:1;transform:none}
	.pto-header.is-open .pto-menu>li:nth-child(1){transition-delay:.05s}
	.pto-header.is-open .pto-menu>li:nth-child(2){transition-delay:.09s}
	.pto-header.is-open .pto-menu>li:nth-child(3){transition-delay:.13s}
	.pto-header.is-open .pto-menu>li:nth-child(4){transition-delay:.17s}
	.pto-header.is-open .pto-menu>li:nth-child(5){transition-delay:.21s}
	.pto-header.is-open .pto-menu>li:nth-child(6){transition-delay:.25s}
	.pto-header.is-open .pto-menu>li:nth-child(7){transition-delay:.29s}
	.pto-header.is-open .pto-menu>li:nth-child(8){transition-delay:.33s}
	.pto-menu>li>a{padding:15px 16px;font-weight:700;color:var(--pto-dark);background:transparent!important;border-radius:0}
	.pto-menu>li.current-menu-item,.pto-menu>li.current_page_item,.pto-menu>li.current-menu-ancestor{background:linear-gradient(135deg,rgba(244,150,0,.92),rgba(255,190,40,.9));border-color:transparent;box-shadow:0 8px 22px rgba(244,150,0,.3)}
	.pto-menu>li.current-menu-item>a,.pto-menu>li.current_page_item>a,.pto-menu>li.current-menu-ancestor>a{color:#fff}
	.pto-menu>li.current-menu-item>.pto-sub-toggle::before,.pto-menu>li.current-menu-ancestor>.pto-sub-toggle::before{border-color:#fff}
	.pto-menu li.is-open{background:rgba(255,255,255,.75)}
	.pto-menu .sub-menu{border:0;margin:0 12px 12px;padding:6px;background:rgba(255,248,232,.7);border-radius:12px}
	.pto-menu .sub-menu a{padding:10px 12px;border-radius:10px;font-size:15px;color:var(--pto-ink)}
	.pto-menu .sub-menu a:hover,.pto-menu .sub-menu .current-menu-item>a{background:rgba(244,150,0,.14);color:var(--pto-accent-d)}
	.pto-cta{border-radius:16px;padding:16px;box-shadow:0 10px 26px rgba(244,150,0,.38);opacity:0;transform:translateY(12px);transition:opacity .35s .3s,transform .35s .3s,background .2s}
	.pto-header.is-open .pto-cta{opacity:1;transform:none}
}

/* ---------- Page title (only where the page has none of its own) ---------- */
.page-header{background:linear-gradient(135deg,#161922,#2a2b39);color:#fff;padding:54px 20px;text-align:center}
.page-header .entry-title{margin:0;color:#fff;font-size:clamp(24px,4vw,38px);font-weight:900}
.pto-page-title{margin:0;color:#fff;text-align:center;font-weight:900;font-size:clamp(24px,4vw,38px);line-height:1.5}
.pto-title-widget .pto-page-title{padding:8px 0}
.pto-banner{position:relative}
.pto-breadcrumb,.pto-breadcrumb a,.pto-breadcrumb .rank-math-breadcrumb p{color:#e9eaf0;text-align:center;font-size:14.5px}
.pto-breadcrumb a:hover{color:var(--pto-accent)}
.pto-breadcrumb .rank-math-breadcrumb p{margin:0}

/* ---------- Reading progress ---------- */
#pto-progress{position:fixed;top:0;inset-inline:0;height:3px;background:var(--pto-accent);transform-origin:right center;transform:scaleX(0);z-index:100001;pointer-events:none}
[dir=ltr] #pto-progress{transform-origin:left center}

/* ---------- Elementor polish ---------- */
.elementor-widget-image img,.elementor-widget-image-gallery img,.elementor-widget-image-carousel img{border-radius:var(--pto-radius)}
.elementor-widget-button .elementor-button,.pto-btn .elementor-button{border-radius:999px;padding:13px 30px;font-weight:700;background:var(--pto-dark);color:#fff;box-shadow:var(--pto-shadow-s);transition:transform .2s,box-shadow .2s,background .2s,color .2s}
.elementor-widget-button .elementor-button:hover{background:var(--pto-accent);color:#fff;transform:translateY(-2px);box-shadow:var(--pto-shadow)}
.elementor-widget-divider .elementor-divider-separator{border-radius:3px}

/* Tabs */
.pto-tabs .elementor-tabs-wrapper{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.pto-tabs .elementor-tab-title{flex:0 0 auto;padding:10px 20px;border:1px solid var(--pto-line);border-radius:999px;background:var(--pto-bg);color:var(--pto-muted);font-weight:700;font-size:15px;cursor:pointer;transition:all .2s}
.pto-tabs .elementor-tab-title a{color:inherit}
.pto-tabs .elementor-tab-title:hover{border-color:var(--pto-accent);color:var(--pto-accent-d)}
.pto-tabs .elementor-tab-title.elementor-active{background:var(--pto-accent);border-color:var(--pto-accent);color:#fff;box-shadow:0 6px 16px rgba(244,150,0,.3)}
.pto-tabs .elementor-tabs-wrapper{border:0!important}
.pto-tabs .elementor-tabs-content-wrapper,.pto-tabs .elementor-tab-content{border:0!important;padding:6px 2px;background:transparent}
.pto-tabs .elementor-tab-mobile-title{display:none}
.pto-switcher .elementor-tabs-wrapper{justify-content:center}
.pto-tabs .elementor-tabs-content-wrapper{padding-top:10px}
.pto-tabs .elementor-tab-desktop-title::before,.pto-tabs .elementor-tab-desktop-title::after,.pto-tabs .elementor-tab-content::before{display:none!important}

/* Accordion / FAQ */
.pto-faq .elementor-accordion-item{border:1px solid var(--pto-line)!important;border-radius:var(--pto-radius);margin-bottom:12px;overflow:hidden;background:#fff}
.pto-faq .elementor-tab-title{padding:16px 20px;font-weight:700;color:var(--pto-dark)}
.pto-faq .elementor-tab-title.elementor-active{color:var(--pto-accent-d);background:var(--pto-accent-soft)}
.pto-faq .elementor-tab-content{border-top:1px solid var(--pto-line)!important;padding:16px 20px}

/* Gallery */
.pto-gallery .gallery{display:grid!important;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}
.pto-gallery .gallery.gallery-columns-1{grid-template-columns:1fr}
.pto-gallery .gallery.gallery-columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pto-gallery .gallery.gallery-columns-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pto-gallery .gallery.gallery-columns-5,.pto-gallery .gallery.gallery-columns-6{grid-template-columns:repeat(5,minmax(0,1fr))}
.pto-gallery .gallery-item{width:auto!important;max-width:none!important;margin:0!important;overflow:hidden;border-radius:var(--pto-radius);box-shadow:var(--pto-shadow-s)}
.pto-gallery .gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0!important;transition:transform .45s}
.pto-gallery .gallery-item:hover img{transform:scale(1.06)}
.pto-gallery .gallery-caption{display:none}
.pto-gallery-title{margin:34px 0 14px;font-size:22px}
.pto-gallery-title .elementor-heading-title{font-size:22px}
@media (max-width:640px){.pto-gallery .gallery,.pto-gallery .gallery.gallery-columns-4,.pto-gallery .gallery.gallery-columns-5{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Section titles */
.pto-section-title .elementor-heading-title{font-size:clamp(26px,3.6vw,40px);font-weight:900;position:relative;padding-bottom:22px;text-align:center}
.pto-section-title .elementor-heading-title::after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:64px;height:5px;border-radius:5px;background:var(--pto-accent)}

/* Dark page banner (breadcrumb + title) gets a gradient instead of flat black */
.pto-banner--7740 .elementor-section,.pto-banner--7740 .e-con{background-image:linear-gradient(135deg,#0f1118 0%,#232636 100%)!important}

/* Project pages (uniform "Firouzgar" layout) */
.pto-proj-main>.elementor-container{align-items:flex-start}
.elementor-section.pto-proj-card{background-color:#f5f5f6!important;border:1px solid var(--pto-line);border-radius:var(--pto-radius-lg);box-shadow:var(--pto-shadow-s);overflow:hidden}
.elementor-section.pto-proj-card>.elementor-container{padding:26px 30px}
.pto-proj-card .elementor-heading-title{position:relative;padding-inline-start:16px}
.pto-proj-card .elementor-heading-title::before{content:"";position:absolute;inset-inline-start:0;top:.35em;bottom:.35em;width:4px;border-radius:4px;background:var(--pto-accent)}
.pto-proj-media img,.pto-proj-media video,.pto-proj-media .elementor-wrapper{border-radius:var(--pto-radius-lg);overflow:hidden;box-shadow:var(--pto-shadow)}
.pto-proj-media img{width:100%;height:auto}
.pto-proj-facts .elementor-icon-list-items{justify-content:center;row-gap:14px}
.pto-proj-facts .elementor-icon-list-item{font-weight:600;color:var(--pto-dark)}
.pto-proj-facts .elementor-icon-list-icon svg{transition:transform .2s}
.pto-proj-facts .elementor-icon-list-item:hover .elementor-icon-list-icon svg{transform:scale(1.12)}
.pto-proj-more,.pto-proj-galleries{margin-top:16px}
@media (min-width:1025px){.pto-proj-main .elementor-top-column:last-child>.elementor-widget-wrap{position:sticky;top:100px}}
@media (max-width:767px){.elementor-section.pto-proj-card>.elementor-container{padding:20px 18px}}

/* Dual button */
.pto-dual{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.pto-dual a{display:inline-flex;align-items:center;padding:11px 26px;border-radius:999px;font-weight:700;font-size:15px;border:2px solid var(--pto-dark);color:var(--pto-dark);background:#fff;transition:all .2s}
.pto-dual a:first-child{background:var(--pto-dark);color:#fff}
.pto-dual a:hover{background:var(--pto-accent);border-color:var(--pto-accent);color:#fff;transform:translateY(-2px)}

/* Card grid (posts / pages listing) */
.pto-grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}
.pto-grid.pto-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pto-grid.pto-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pto-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--pto-line);border-radius:var(--pto-radius-lg);overflow:hidden;color:var(--pto-dark);box-shadow:var(--pto-shadow-s);transition:transform .25s,box-shadow .25s}
.pto-card:hover{transform:translateY(-5px);box-shadow:var(--pto-shadow);color:var(--pto-dark)}
.pto-card__img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0!important;transition:transform .5s}
.pto-card:hover .pto-card__img{transform:scale(1.05)}
.pto-card__title{padding:16px 18px 20px;font-weight:800;font-size:16px;line-height:1.7}
@media (max-width:1024px){.pto-grid,.pto-grid.pto-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.pto-grid,.pto-grid.pto-cols-2,.pto-grid.pto-cols-4{grid-template-columns:1fr}}

/* Featured box (image + overlay text) */
.pto-feature{position:relative;border-radius:var(--pto-radius-lg);overflow:hidden;box-shadow:var(--pto-shadow);background:var(--pto-dark)}
.pto-feature__img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0!important}
.pto-feature__body{position:absolute;inset-inline:0;bottom:0;padding:48px 22px 22px;background:linear-gradient(to top,rgba(22,25,34,.92),rgba(22,25,34,0));color:#fff;text-align:center}
.pto-feature__title{margin:0 0 6px;color:#fff;font-size:24px}
.pto-feature__text{margin:0 0 14px;color:#e4e5ec;font-size:15px}
.pto-feature__btn{display:inline-block;padding:10px 24px;border-radius:999px;background:var(--pto-accent);color:#fff;font-weight:700;font-size:14.5px}
.pto-feature__btn:hover{background:#fff;color:var(--pto-dark)}

/* Icon box */
.pto-iconbox{text-align:center;padding:30px 22px;background:#fff;border:1px solid var(--pto-line);border-radius:var(--pto-radius-lg);box-shadow:var(--pto-shadow-s);transition:transform .25s,box-shadow .25s;height:100%}
.pto-iconbox:hover{transform:translateY(-5px);box-shadow:var(--pto-shadow)}
.pto-iconbox__icon{display:inline-flex;align-items:center;justify-content:center;width:104px;height:104px;margin-bottom:14px;background:var(--pto-accent-soft);border-radius:30% 70% 45% 55%/45% 35% 65% 55%}
.pto-iconbox__icon img{width:60px;height:60px;border-radius:0!important}
.pto-iconbox__title{margin:0 0 10px;font-size:20px}
.pto-iconbox__title a{color:var(--pto-dark)}
.pto-iconbox__desc{color:var(--pto-muted);font-size:15px}
.pto-iconbox__more{display:inline-block;margin-top:12px;font-weight:700}

/* Table */
.pto-table-wrap{overflow-x:auto;border:1px solid var(--pto-line);border-radius:var(--pto-radius);box-shadow:var(--pto-shadow-s)}
.pto-table{width:100%;border-collapse:collapse;font-size:15px;min-width:420px}
.pto-table th{background:var(--pto-dark);color:#fff;padding:13px 16px;text-align:start;font-weight:700}
.pto-table td{padding:12px 16px;border-top:1px solid var(--pto-line)}
.pto-table tbody tr:nth-child(even){background:var(--pto-bg)}
.pto-table tbody tr:hover{background:var(--pto-accent-soft)}

/* Timeline */
.pto-timeline{list-style:none;margin:20px 0;padding:0;counter-reset:pto;position:relative}
.pto-timeline::before{content:"";position:absolute;top:8px;bottom:8px;inset-inline-start:21px;width:2px;background:var(--pto-line)}
.pto-timeline>li{position:relative;padding-inline-start:64px;margin-bottom:26px;counter-increment:pto}
.pto-timeline__c ul,.pto-timeline__c ol{list-style:disc;padding-inline-start:20px;margin:8px 0}
.pto-timeline__c li{padding:0;margin:4px 0;counter-increment:none}
.pto-timeline__c li::before{content:none!important}
.pto-timeline>li::before{content:counter(pto,persian);position:absolute;inset-inline-start:0;top:0;width:44px;height:44px;border-radius:50%;background:var(--pto-accent);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 14px rgba(244,150,0,.35)}
.pto-timeline__t{margin:0 0 6px;font-size:18px}
.pto-timeline__c{color:var(--pto-muted)}
.pto-timeline-title{text-align:center;margin-bottom:24px}

/* Table of contents */
.pto-toc{background:var(--pto-bg);border:1px solid var(--pto-line);border-inline-start:4px solid var(--pto-accent);border-radius:var(--pto-radius);padding:18px 22px;margin:10px 0}
.pto-toc__title{margin:0 0 8px;font-weight:800;color:var(--pto-dark);font-size:18px}
.pto-toc ol{margin:0;padding-inline-start:22px}
.pto-toc li{margin:4px 0;font-size:15px}
.pto-toc li.is-sub{margin-inline-start:16px;font-size:14px;list-style:circle}
.pto-toc a{color:var(--pto-ink)}
.pto-toc a:hover{color:var(--pto-accent-d)}

/* Footer menus */
.pto-simple-menu ul{list-style:none;margin:0;padding:0}
.pto-simple-menu li{margin:0}
.pto-simple-menu a{display:flex;align-items:center;gap:8px;padding:5px 0;color:#d9dbe3;font-size:14.5px;line-height:1.8;transition:color .2s,transform .2s}
.pto-simple-menu a::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--pto-accent);opacity:.75;flex:0 0 auto}
.pto-simple-menu a:hover{color:var(--pto-accent);transform:translateX(-4px)}

/* Footer (HFE template) polish */
.hfe-footer,footer.hfe-footer-wrapper{font-family:var(--pto-font)}
.hfe-footer a:hover,.pto-simple-menu a:hover{color:var(--pto-accent)}

/* Forms (WPForms) */
.pto-form .wpforms-container{background:#fff;border:1px solid var(--pto-line);border-radius:var(--pto-radius-lg);padding:28px;box-shadow:var(--pto-shadow-s);margin:0 auto}
.pto-form .wpforms-field-label{font-weight:700;color:var(--pto-dark);font-family:var(--pto-font)}
.pto-form .wpforms-field{padding:10px 0}
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],.wpforms-container input[type=number],.wpforms-container textarea,.wpforms-container select{border:1px solid var(--pto-line)!important;border-radius:12px!important;padding:12px 14px!important;font-family:var(--pto-font)!important;background:#fff;transition:border-color .2s,box-shadow .2s}
.wpforms-container input:focus,.wpforms-container textarea:focus,.wpforms-container select:focus{border-color:var(--pto-accent)!important;box-shadow:0 0 0 3px rgba(244,150,0,.18)!important;outline:0}
.wpforms-container .wpforms-submit{background:var(--pto-accent)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:13px 34px!important;font-weight:700!important;font-family:var(--pto-font)!important;cursor:pointer;transition:transform .2s,background .2s}
.wpforms-container .wpforms-submit:hover{background:var(--pto-accent-d)!important;transform:translateY(-2px)}

/* Blog / archive listing */
.pto-archive__head{background:radial-gradient(800px 260px at 85% 0%,rgba(244,150,0,.22),transparent 65%),linear-gradient(160deg,#0f1118,#232636);color:#fff;padding:56px 0 64px;text-align:center}
.pto-archive__title{margin:10px 0 12px;color:#fff;font-size:clamp(24px,3.6vw,38px);font-weight:900}
.pto-archive__intro{max-width:760px;margin:0 auto;color:#d9dbe3;font-size:16px;line-height:2}
.pto-archive__head .pto-breadcrumb{font-size:14px}
.pto-posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin:-28px 0 40px;position:relative;z-index:2}
.pto-post{display:flex;flex-direction:column;background:rgba(255,255,255,.92);border:1px solid var(--pto-line);border-radius:var(--pto-radius-lg);overflow:hidden;box-shadow:var(--pto-shadow-s);transition:transform .3s,box-shadow .3s}
.pto-post:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(22,25,34,.14)}
.pto-post__media{display:block;overflow:hidden;aspect-ratio:16/10;background:#f1f2f5}
.pto-post__img{width:100%;height:100%;object-fit:cover;border-radius:0!important;transition:transform .6s}
.pto-post:hover .pto-post__img{transform:scale(1.06)}
.pto-post__img--empty{display:block;height:100%;background:linear-gradient(135deg,#fff3d6,#ffe1a1)}
.pto-post__body{display:flex;flex-direction:column;gap:8px;padding:18px 20px 22px;flex:1}
.pto-post__meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--pto-muted)}
.pto-post__cat{background:var(--pto-accent-soft);color:var(--pto-accent-d);padding:3px 10px;border-radius:999px;font-weight:700}
.pto-post__title{margin:4px 0 2px;font-size:18px;line-height:1.7}
.pto-post__title a{color:var(--pto-dark)}
.pto-post__title a:hover{color:var(--pto-accent-d)}
.pto-post__excerpt{margin:0;color:var(--pto-muted);font-size:14.5px;line-height:1.95;flex:1}
.pto-post__more{align-self:flex-start;margin-top:6px;font-weight:800;font-size:14.5px}
.pto-pagination{margin:10px 0 60px;text-align:center}
.pto-pagination .nav-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.pto-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border-radius:12px;background:#fff;border:1px solid var(--pto-line);color:var(--pto-dark);font-weight:700}
.pto-pagination .page-numbers.current,.pto-pagination .page-numbers:hover{background:var(--pto-accent);border-color:var(--pto-accent);color:#fff}
.pto-archive__empty{padding:60px 0;text-align:center}
@media (max-width:1024px){.pto-posts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.pto-posts{grid-template-columns:1fr;gap:18px}.pto-archive__head{padding:40px 0 52px}}

/* About-us sections as modern cards */
.elementor-section.pto-about-card{max-width:calc(var(--pto-wrap) - 40px);margin:26px auto!important;background:rgba(255,255,255,.88)!important;border:1px solid var(--pto-line);border-radius:var(--pto-radius-lg);box-shadow:var(--pto-shadow-s);overflow:hidden}
.elementor-section.pto-about-card>.elementor-container{padding:30px 26px}
.pto-about-card .elementor-heading-title{color:var(--pto-dark)!important;position:relative;padding-inline-start:16px}
.pto-about-card .elementor-heading-title::before{content:"";position:absolute;inset-inline-start:0;top:.3em;bottom:.3em;width:4px;border-radius:4px;background:var(--pto-accent)}
.pto-about-card .elementor-widget-text-editor,.pto-about-card .elementor-image-box-description{color:var(--pto-ink)!important}
.pto-about-card .elementor-image-box-title{color:var(--pto-dark)!important;font-weight:800}
.pto-about-card .elementor-image-box-title::before{display:none}
.pto-about-card img{border-radius:var(--pto-radius)}
@media (max-width:767px){.elementor-section.pto-about-card>.elementor-container{padding:20px 16px}}

/* Uniform FAQ block */
.pto-faq-title .elementor-heading-title{margin-bottom:6px}
.pto-faq .elementor-accordion-icon{color:var(--pto-accent)}
.pto-faq .elementor-tab-title{display:flex;align-items:center;gap:10px;font-size:16.5px;line-height:1.7;cursor:pointer;transition:background .2s,color .2s}
.pto-faq .elementor-tab-title:hover{background:var(--pto-accent-soft)}
.pto-faq .elementor-tab-content{color:var(--pto-ink);line-height:2}
.pto-faq .elementor-tab-content p:last-child{margin-bottom:0}

/* Closing call-to-action box on service pages */
.e-con.pto-cta-box{margin:30px auto 10px;max-width:calc(var(--pto-wrap) - 40px);border-radius:var(--pto-radius-lg);padding:34px 24px!important;background:radial-gradient(700px 240px at 85% 0%,rgba(244,150,0,.25),transparent 65%),linear-gradient(160deg,#0f1118,#232636);box-shadow:0 18px 40px rgba(22,25,34,.18)}
.e-con.pto-cta-box .elementor-heading-title{color:#fff}
.e-con.pto-cta-box .elementor-widget-text-editor{color:#d9dbe3}
.e-con.pto-cta-box .pto-dual a{border-color:rgba(255,255,255,.3)}
.e-con.pto-cta-box .pto-dual a:first-child{background:linear-gradient(135deg,#f49600,#ffb52e);border-color:transparent}
.e-con.pto-cta-box .pto-dual a:last-child{background:rgba(255,255,255,.08);color:#fff}

/* Related links boxes (internal linking) */
.pto-related{margin:44px auto 10px;max-width:var(--pto-wrap);padding:0 20px}
.pto-related__box{background:rgba(255,255,255,.9);border:1px solid var(--pto-line);border-radius:var(--pto-radius-lg);box-shadow:var(--pto-shadow-s);padding:26px 28px}
.pto-related__title{margin:0 0 6px;font-size:22px}
.pto-related__lead{margin:0 0 16px;color:var(--pto-muted);font-size:15px}
.pto-related__links{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.pto-related__links a{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:var(--pto-accent-soft);color:var(--pto-accent-d);font-weight:700;font-size:15px;border:1px solid rgba(244,150,0,.25);transition:all .2s}
.pto-related__links a:hover{background:var(--pto-accent);color:#fff;transform:translateY(-2px)}
.pto-related__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:6px}
.pto-related__cta{margin-top:18px;text-align:center}
.pto-related__cta a{display:inline-flex;padding:12px 26px;border-radius:999px;background:linear-gradient(135deg,#161922,#2d3142);color:#fff;font-weight:700}
.pto-related__cta a:hover{background:linear-gradient(135deg,#f49600,#ffb52e)}
@media (max-width:767px){.pto-related__grid{grid-template-columns:1fr}.pto-related__box{padding:20px 18px}}

/* =====================================================================
   Modern layer v2
   ===================================================================== */

/* Desktop: floating glass header that tightens on scroll */
@media (min-width:1025px){
	.pto-header{transition:padding .3s,background .3s,border-color .3s,box-shadow .3s}
	.pto-header__in{transition:min-height .3s,background .3s,box-shadow .3s,border-radius .3s,padding .3s}
	.pto-logo img{transition:height .3s}
	.pto-header.is-stuck{background:transparent;border-bottom-color:transparent;box-shadow:none;padding-top:10px;-webkit-backdrop-filter:none;backdrop-filter:none}
	.pto-header.is-stuck .pto-header__in{min-height:64px;max-width:calc(var(--pto-wrap) - 20px);padding-inline:22px;border-radius:20px;background:rgba(255,255,255,.78);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);border:1px solid rgba(255,255,255,.85);box-shadow:0 12px 36px rgba(22,25,34,.12)}
	.pto-header.is-stuck .pto-logo img{height:46px}
}

/* Hero banners: readable title and a soft fade into the page */
.pto-banner{position:relative}
.pto-banner::after{content:"";position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(to top,rgba(255,252,243,.95),rgba(255,252,243,0));pointer-events:none;z-index:2}
.pto-banner h1.elementor-heading-title,.pto-banner .pto-page-title{text-shadow:0 6px 28px rgba(0,0,0,.45)}

/* Buttons: gradients with soft glow */
.elementor-widget-button .elementor-button,.pto-btn .elementor-button{background:linear-gradient(135deg,#161922,#2d3142)}
.elementor-widget-button .elementor-button:hover{background:linear-gradient(135deg,#f49600,#ffb830);box-shadow:0 12px 28px rgba(244,150,0,.35)}
.pto-cta,.pto-feature__btn,.wpforms-container .wpforms-submit{background:linear-gradient(135deg,#f49600,#ffb52e)!important}
.pto-cta:hover,.wpforms-container .wpforms-submit:hover{background:linear-gradient(135deg,#e08600,#f49600)!important}
.pto-dual a:first-child{background:linear-gradient(135deg,#161922,#2d3142);border-color:#161922}

/* Images get a gentle lift on hover */
.elementor-widget-image:not(#colophon *):not(.pto-banner *) img,.pto-proj-media img{transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
.elementor-widget-image:not(#colophon *):not(.pto-banner *):hover img{transform:translateY(-4px);box-shadow:0 18px 40px rgba(22,25,34,.16)}

/* Scroll-reveal (class is added by JS only, so content is never hidden without JS) */
.pto-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.pto-reveal.is-in{opacity:1;transform:none}

/* Footer: deep navy gradient, glowing accent line, glass social icons */
#colophon{position:relative}
#colophon::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:3;background:linear-gradient(90deg,transparent,#f49600 20%,#ffcf5a 50%,#f49600 80%,transparent)}
#colophon .elementor-element-6ecacfb{background:radial-gradient(900px 320px at 85% 0%,rgba(244,150,0,.16),transparent 62%),radial-gradient(700px 300px at 0% 100%,rgba(255,190,40,.08),transparent 60%),linear-gradient(160deg,#0f1118 0%,#1a1d29 55%,#11131b 100%)!important}
#colophon .elementor-element-15c8761{background:#0b0d13!important;border-top:1px solid rgba(255,255,255,.06)}
#colophon .elementor-heading-title{color:#fff!important}
#colophon .elementor-social-icon{background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.14);border-radius:14px!important;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform .25s,background .25s,box-shadow .25s}
#colophon .elementor-social-icon:hover{background:linear-gradient(135deg,#f49600,#ffb52e)!important;transform:translateY(-3px);box-shadow:0 10px 24px rgba(244,150,0,.35)}
#colophon .elementor-icon-list-icon i,#colophon .elementor-icon-list-icon svg{transition:transform .25s}
#colophon .elementor-icon-list-item:hover .elementor-icon-list-icon i,#colophon .elementor-icon-list-item:hover .elementor-icon-list-icon svg{transform:scale(1.15)}

/* Floating buttons */
.pto-fab{position:fixed;inset-inline-end:auto;left:18px;z-index:998;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.8);cursor:pointer;color:#161922;background:rgba(255,255,255,.75);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 28px rgba(22,25,34,.18);transition:opacity .3s,transform .3s,background .2s}
.pto-fab svg{width:22px;height:22px;fill:currentColor}
.pto-fab--top{bottom:18px;opacity:0;transform:translateY(16px);pointer-events:none}
.pto-fab--top.is-on{opacity:1;transform:none;pointer-events:auto}
.pto-fab--top:hover{background:#f49600;color:#fff}
.pto-fab--call{display:none;bottom:18px;background:linear-gradient(135deg,#f49600,#ffb52e);color:#fff;border-color:transparent}
.pto-fab--call::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(244,150,0,.55);animation:pto-ring 2.2s infinite}
@keyframes pto-ring{0%{transform:scale(.85);opacity:1}100%{transform:scale(1.35);opacity:0}}
@media (max-width:1024px){
	.pto-fab--call{display:flex}
	.pto-fab--top{bottom:82px}
	body.pto-lock .pto-fab{opacity:0!important;pointer-events:none}
}

/* Thin modern scrollbar (desktop) */
@media (min-width:1025px){
	html{scrollbar-width:thin;scrollbar-color:#f49600 #fff7e6}
	::-webkit-scrollbar{width:10px}
	::-webkit-scrollbar-track{background:#fff7e6}
	::-webkit-scrollbar-thumb{background:linear-gradient(#ffb52e,#f49600);border-radius:10px;border:2px solid #fff7e6}
}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@counter-style persian{system:numeric;symbols:'۰' '۱' '۲' '۳' '۴' '۵' '۶' '۷' '۸' '۹'}
