.elementor-kit-6{--e-global-color-primary:#EF8404;--e-global-color-secondary:#18252A;--e-global-color-text:#53636B;--e-global-color-accent:#BD6700;--e-global-color-pnivory:#FAF9F6;--e-global-color-pnstone:#E7E2D9;--e-global-color-pndeep:#101719;--e-global-color-pnlink:#9B5500;--e-global-color-pnglow:#FFAD4C;--e-global-color-pnmist:#B9C4C7;--e-global-color-pnline:#CCD0CE;--e-global-color-pnhover:#FF9D28;--e-global-color-pnwhite:#FFFFFF;--e-global-typography-primary-font-family:"Manrope";--e-global-typography-primary-font-size:clamp(5rem,8vw,7rem);--e-global-typography-primary-font-weight:500;--e-global-typography-primary-line-height:1.02;--e-global-typography-primary-letter-spacing:-0.055em;--e-global-typography-secondary-font-family:"Manrope";--e-global-typography-secondary-font-size:clamp(3.2rem,5.4vw,5.4rem);--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-line-height:1.02;--e-global-typography-secondary-letter-spacing:-0.055em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:0.7rem;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.65;--e-global-typography-accent-letter-spacing:0.16em;--e-global-typography-pnh3-font-family:"Manrope";--e-global-typography-pnh3-font-size:clamp(1.35rem,2vw,1.9rem);--e-global-typography-pnh3-font-weight:500;--e-global-typography-pnh3-line-height:1.02;--e-global-typography-pnh3-letter-spacing:-0.055em;--e-global-typography-pnrow-font-family:"Manrope";--e-global-typography-pnrow-font-size:clamp(1.35rem,2vw,2rem);--e-global-typography-pnrow-font-weight:600;--e-global-typography-pnrow-line-height:1.2;--e-global-typography-pnrow-letter-spacing:-0.04em;--e-global-typography-pnlead-font-family:"Inter";--e-global-typography-pnlead-font-size:1.08rem;--e-global-typography-pnlead-font-weight:400;--e-global-typography-pnlead-line-height:1.65;--e-global-typography-pnsmall-font-family:"Inter";--e-global-typography-pnsmall-font-size:0.86rem;--e-global-typography-pnsmall-font-weight:400;--e-global-typography-pnsmall-line-height:1.65;--e-global-typography-pnbtn-font-family:"Inter";--e-global-typography-pnbtn-font-size:0.75rem;--e-global-typography-pnbtn-font-weight:700;--e-global-typography-pnbtn-text-transform:uppercase;--e-global-typography-pnbtn-line-height:1.2;--e-global-typography-pnbtn-letter-spacing:0.06em;--e-global-typography-pnlink-font-family:"Inter";--e-global-typography-pnlink-font-size:0.72rem;--e-global-typography-pnlink-font-weight:700;--e-global-typography-pnlink-text-transform:uppercase;--e-global-typography-pnlink-line-height:1.4;--e-global-typography-pnlink-letter-spacing:0.05em;--e-global-typography-pnlabel-font-family:"Inter";--e-global-typography-pnlabel-font-size:0.7rem;--e-global-typography-pnlabel-font-weight:600;--e-global-typography-pnlabel-text-transform:uppercase;--e-global-typography-pnlabel-line-height:1.65;--e-global-typography-pnnav-font-family:"Inter";--e-global-typography-pnnav-font-size:0.72rem;--e-global-typography-pnnav-font-weight:600;--e-global-typography-pnnav-text-transform:uppercase;--e-global-typography-pnnav-line-height:1.65;--e-global-typography-pnstat-font-family:"Manrope";--e-global-typography-pnstat-font-size:clamp(1.05rem,1.6vw,1.4rem);--e-global-typography-pnstat-font-weight:600;--e-global-typography-pnstat-line-height:1.3;background-color:#FAF9F6;color:var( --e-global-color-secondary );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-pnbtn-font-family ), Sans-serif;font-size:var( --e-global-typography-pnbtn-font-size );font-weight:var( --e-global-typography-pnbtn-font-weight );text-transform:var( --e-global-typography-pnbtn-text-transform );line-height:var( --e-global-typography-pnbtn-line-height );letter-spacing:var( --e-global-typography-pnbtn-letter-spacing );color:var( --e-global-color-secondary );border-style:solid;border-width:1px 1px 1px 1px;border-color:#EF8404;border-radius:999px 999px 999px 999px;padding:0.85rem 1.45rem 0.85rem 1.45rem;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{background-color:var( --e-global-color-pnhover );color:var( --e-global-color-secondary );}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:inherit;}.elementor-kit-6 a:hover{color:inherit;}.elementor-kit-6 h1{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-6 h2{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-6 h3{font-family:var( --e-global-typography-pnh3-font-family ), Sans-serif;font-size:var( --e-global-typography-pnh3-font-size );font-weight:var( --e-global-typography-pnh3-font-weight );line-height:var( --e-global-typography-pnh3-line-height );letter-spacing:var( --e-global-typography-pnh3-letter-spacing );}.elementor-kit-6 h4{font-family:"Manrope", Sans-serif;font-weight:700;}.elementor-kit-6 h5{font-family:"Manrope", Sans-serif;font-weight:700;}.elementor-kit-6 h6{font-family:"Manrope", Sans-serif;font-weight:700;}.elementor-kit-6 img{border-radius:0px 0px 0px 0px;}.elementor-kit-6 label{color:#FFFFFF;font-family:var( --e-global-typography-pnlabel-font-family ), Sans-serif;font-size:var( --e-global-typography-pnlabel-font-size );font-weight:var( --e-global-typography-pnlabel-font-weight );text-transform:var( --e-global-typography-pnlabel-text-transform );line-height:var( --e-global-typography-pnlabel-line-height );}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-family:"Inter", Sans-serif;font-size:16px;color:#FFFFFF;background-color:#223238;border-style:solid;border-width:1px 1px 1px 1px;border-color:#6C777B;border-radius:0px 0px 0px 0px;padding:0.75rem 0.75rem 0.75rem 0.75rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-lightbox{background-color:rgba(8,13,15,0.9);--lightbox-ui-color:#FFFFFF;--lightbox-ui-color-hover:#FFAD4C;}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:950px){.elementor-kit-6{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-6 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-6 h2{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-6 h3{font-size:var( --e-global-typography-pnh3-font-size );line-height:var( --e-global-typography-pnh3-line-height );letter-spacing:var( --e-global-typography-pnh3-letter-spacing );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-pnbtn-font-size );line-height:var( --e-global-typography-pnbtn-line-height );letter-spacing:var( --e-global-typography-pnbtn-letter-spacing );}.elementor-kit-6 label{font-size:var( --e-global-typography-pnlabel-font-size );line-height:var( --e-global-typography-pnlabel-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:600px){.elementor-kit-6{--e-global-typography-primary-font-size:clamp(2.8rem,13vw,3.4rem);--e-global-typography-secondary-font-size:clamp(2.7rem,12vw,3.5rem);--e-global-typography-text-font-size:16px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-6 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-6 h2{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-6 h3{font-size:var( --e-global-typography-pnh3-font-size );line-height:var( --e-global-typography-pnh3-line-height );letter-spacing:var( --e-global-typography-pnh3-letter-spacing );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-pnbtn-font-size );line-height:var( --e-global-typography-pnbtn-line-height );letter-spacing:var( --e-global-typography-pnbtn-letter-spacing );}.elementor-kit-6 label{font-size:var( --e-global-typography-pnlabel-font-size );line-height:var( --e-global-typography-pnlabel-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ==========================================================================
   Penna Construction — site stylesheet (Elementor Site Settings › Custom CSS)
   Recreates the approved Figma Make design on native Elementor containers/widgets.
   Colors and type reference the kit's global tokens (--e-global-*). Section classes
   are prefixed pn-*. Where a section's approved type size differs from the global
   style, the section overrides the global token variable locally.
   ========================================================================== */

:root {
	--pn-o: var(--e-global-color-primary, #ef8404);
	--pn-c: var(--e-global-color-secondary, #18252a);
	--pn-sl: var(--e-global-color-text, #53636b);
	--pn-w: var(--e-global-color-pnivory, #faf9f6);
	--pn-s: var(--e-global-color-pnstone, #e7e2d9);
	--pn-deep: var(--e-global-color-pndeep, #101719);
	--pn-amber: var(--e-global-color-pnlink, #9b5500);
	--pn-glow: var(--e-global-color-pnglow, #ffad4c);
	--pn-mist: var(--e-global-color-pnmist, #b9c4c7);
	--pn-line: var(--e-global-color-pnline, #ccd0ce);
	--pn-ease: cubic-bezier(.22, .8, .25, 1);
	--pn-shadow: 0 35px 80px rgba(16, 23, 25, .22);
	--pn-pad-x: clamp(1.25rem, 6vw, 6rem);
	--pn-pad-y: clamp(6rem, 8vw, 7.5rem);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; background: var(--pn-w); }
body *, body *::before, body *::after { box-sizing: border-box; }
a { color: inherit; text-decoration: none; }
:focus-visible { outline: 3px solid var(--pn-o); outline-offset: 3px; }

/* Typography resets matching the approved design (paragraph margins 0, headings 0 0 1.4rem). */
.elementor-widget-text-editor p,
.elementor-widget-heading p.elementor-heading-title { margin: 0; }
.elementor-widget-text-editor ul { list-style: none; margin: 0; padding: 0; }
.elementor-widget-heading :is(h1, h2, h3).elementor-heading-title { margin: 0 0 1.4rem; color: inherit; }
.elementor-widget-heading .elementor-heading-title { color: inherit; }
.elementor-widget-heading .elementor-heading-title a { color: inherit; }

/* Images: cover their box; shapes are applied by component classes. */
.elementor-widget-image img { display: block; width: 100%; object-fit: cover; }
.e-con .elementor-widget-image { text-align: left; }

/* Containers: layout is defined per component; reset Elementor's implicit flex sizing inside grids. */
.e-con.pn-grid, .e-con[class*="pn-"] { --gap: 0px; --row-gap: 0px; --column-gap: 0px; }

/* Eyebrow ------------------------------------------------------------------ */
.pn-eye .elementor-heading-title {
	color: var(--e-global-color-accent);
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-size: var(--e-global-typography-accent-font-size);
	font-weight: var(--e-global-typography-accent-font-weight);
	letter-spacing: var(--e-global-typography-accent-letter-spacing);
	text-transform: uppercase;
	line-height: 1.65;
}
.pn-eye .elementor-heading-title::before {
	content: "";
	display: inline-block;
	width: 2rem;
	border-top: 2px solid var(--pn-o);
	margin: 0 .7rem .2rem 0;
	vertical-align: middle;
}

/* Buttons -------------------------------------------------------------------- */
.elementor-widget-button.pn-btn .elementor-button,
.elementor-widget-button.pn-ghost .elementor-button,
.pn-form .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	min-height: 3.3rem;
	padding: .85rem 1.45rem;
	border: 1px solid var(--pn-o);
	border-radius: 999px;
	background: var(--pn-o);
	color: var(--pn-c);
	line-height: 1.65;
	transition: transform .35s var(--pn-ease), background .35s;
}
.elementor-widget-button.pn-btn .elementor-button:hover,
.pn-form .elementor-button:hover { background: var(--e-global-color-pnhover, #ff9d28); color: var(--pn-c); }
.elementor-widget-button.pn-ghost .elementor-button { background: transparent; border-color: var(--pn-c); color: var(--pn-c); }
.elementor-widget-button.pn-ghost .elementor-button:hover { background: rgba(24, 37, 42, .06); }
.elementor-button .elementor-button-content-wrapper { gap: 1rem; }

/* Text links (button widgets rendered as links). */
.elementor-widget-button:is(.pn-link-plain, .pn-link-caps) .elementor-button {
	display: inline-flex;
	align-items: center;
	padding: 0;
	min-height: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-transform: none;
	line-height: inherit;
}
.elementor-widget-button.pn-link-caps .elementor-button {
	gap: .7rem;
	padding-bottom: .3rem;
	border-bottom: 1px solid currentColor;
	color: var(--pn-amber);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
}

/* The approved ↗ glyph, drawn after the label and nudged on hover/focus. */
.pn-arrow .elementor-button-text::after,
.pn-arrow-submit .elementor-button-text::after,
.pn-footer-cta li:last-child .elementor-icon-list-text::after {
	content: "↗" / "";
	display: inline-block;
	margin-left: 1rem;
	transition: transform .35s var(--pn-ease);
}
.pn-link-plain.pn-arrow .elementor-button-text::after { margin-left: .3em; }
.pn-link-caps.pn-arrow .elementor-button-text::after { margin-left: .7rem; }
.pn-footer-cta li:last-child .elementor-icon-list-text::after { margin-left: .3em; }
.pn-arrow .elementor-button:is(:hover, :focus-visible) .elementor-button-text::after,
.pn-arrow-submit .elementor-button:is(:hover, :focus-visible) .elementor-button-text::after { transform: translate(.25rem, -.25rem); }

/* Shared section rhythm ---------------------------------------------------------- */
.e-con.pn-section { max-width: 1440px; margin: 0 auto; padding: 7rem var(--pn-pad-x); }

.pn-muted, .pn-muted p { color: var(--pn-sl); }

/* Orange dash bullet list. */
.pn-list ul { border-top: 1px solid var(--pn-line); }
.pn-list li { position: relative; padding: 1rem .5rem 1rem 2rem; border-bottom: 1px solid var(--pn-line); color: var(--pn-sl); font-size: .87rem; }
.pn-list li::before { content: ""; position: absolute; left: .25rem; top: 1.55rem; width: .7rem; border-top: 2px solid var(--pn-o); }

/* Contact link cards (Call Penna / Email). */
.pn-contact .elementor-heading-title a { display: flex; flex-direction: column; padding: .9rem 0; border-top: 1px solid var(--pn-line); }
.pn-contact small { color: var(--pn-amber); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.pn-contact strong { font: 600 clamp(1.05rem, 1.6vw, 1.4rem)/1.3 var(--e-global-typography-secondary-font-family), sans-serif; overflow-wrap: anywhere; }
.e-con.pn-contacts { display: grid; gap: .5rem; margin-top: 2.5rem; }

/* Numbered steps. */
.pn-step-num .elementor-heading-title { color: var(--pn-amber); font-size: .65rem; font-weight: 700; letter-spacing: .14em; }
.pn-step .elementor-widget-heading h3.elementor-heading-title { margin: 1.1rem 0 .75rem; }
.pn-step-text p { color: var(--pn-sl); font-size: .88rem; }

/* FAQ (native nested accordion). */
.pn-faq.elementor-widget-n-accordion {
	--n-accordion-item-title-space-between: 0px;
	--n-accordion-item-title-distance-from-content: 0px;
	--n-accordion-border-width: 0px;
	--n-accordion-padding: 1.2rem 0;
	--n-accordion-title-justify-content: space-between;
	--n-accordion-title-flex-grow: 1;
	--n-accordion-title-normal-color: currentColor;
	--n-accordion-title-hover-color: currentColor;
	--n-accordion-title-active-color: currentColor;
}
.pn-faq .e-n-accordion { border-top: 1px solid var(--pn-line); }
.pn-faq .e-n-accordion-item { border-bottom: 1px solid var(--pn-line); }
.pn-faq.elementor-widget-n-accordion .e-n-accordion-item-title { border: 0; background: none; }
.pn-faq .e-n-accordion-item-title-header { flex: 1; }
.pn-faq .e-n-accordion-item-title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.2rem 0;
	border: 0;
	background: none;
	cursor: pointer;
	font-weight: 600;
	color: inherit;
}
.pn-faq .e-n-accordion-item-title-text { font: inherit; font-weight: 600; color: inherit; }
.pn-faq .e-n-accordion-item-title::after { content: "+" / ""; font-weight: 600; }
.pn-faq.elementor-widget-n-accordion .e-n-accordion-item > .e-con { padding: 0; border: 0; background: none; }
.pn-faq .e-n-accordion-item p { color: var(--pn-sl); }
.pn-faq .e-n-accordion-item-title:focus-visible { outline: 3px solid var(--pn-o); outline-offset: 3px; }

/* Header (Theme Builder) ------------------------------------------------------- */
.e-con.pn-header {
	position: fixed;
	z-index: 30;
	top: 1rem;
	left: clamp(1rem, 3vw, 3rem);
	right: clamp(1rem, 3vw, 3rem);
	width: auto;
	height: 80px;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	padding: 0 1.4rem 0 1.7rem;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 1.15rem;
	background: rgba(16, 23, 25, .82);
	box-shadow: 0 14px 44px rgba(0, 0, 0, .16);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	color: #fff;
	transition: height .35s var(--pn-ease), top .35s, background .35s;
}
body.admin-bar .e-con.pn-header { top: calc(1rem + 32px); }
.pn-scrolled .e-con.pn-header { top: .55rem; height: 66px; background: rgba(16, 23, 25, .97); }
body.admin-bar.pn-scrolled .e-con.pn-header { top: calc(.55rem + 32px); }
.pn-header .pn-logo { width: min(250px, 32vw); flex: none; transition: width .35s; }
.pn-scrolled .pn-header .pn-logo { width: min(220px, 30vw); }
.pn-header .pn-logo img { height: auto; object-fit: contain; }

.pn-nav { position: static; }
.pn-nav .elementor-nav-menu--main .elementor-nav-menu { display: flex; align-items: center; gap: 2rem; white-space: nowrap; }
.pn-nav .elementor-nav-menu--main .elementor-item {
	padding: 0;
	color: #fff;
	font-size: .72rem;
	font-weight: 600;
	line-height: 1.65;
	text-transform: uppercase;
}
.pn-nav .elementor-nav-menu--main .elementor-item:is(:hover, :focus, .elementor-item-active, .highlighted) { color: #fff; }
.pn-nav .sub-arrow { display: none; }
.pn-nav .elementor-nav-menu--main .pn-menu-phone > .elementor-item { color: var(--pn-glow); }
.pn-nav .elementor-nav-menu--main .pn-menu-cta > .elementor-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.3rem;
	padding: .85rem 1.45rem;
	border: 1px solid var(--pn-o);
	border-radius: 999px;
	background: var(--pn-o);
	color: var(--pn-c);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .06em;
	transition: background .35s;
}
.pn-nav .elementor-nav-menu--main .pn-menu-cta > .elementor-item:hover { background: var(--e-global-color-pnhover, #ff9d28); color: var(--pn-c); }

/* Desktop dropdowns (Services, Service Areas). */
.pn-nav .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown {
	min-width: 18rem !important;
	width: 18rem;
	margin-top: 1.4rem !important;
	margin-left: -1rem !important;
	padding: .5rem;
	border: 0;
	border-radius: .8rem;
	background: #fff;
	box-shadow: var(--pn-shadow);
}
.pn-nav .elementor-nav-menu--main .sub-menu .elementor-sub-item {
	display: block;
	padding: .6rem;
	border: 0;
	border-radius: .45rem;
	background: none;
	color: var(--pn-c);
	font-size: .72rem;
	font-weight: 600;
	line-height: 1.65;
	text-transform: none;
	white-space: normal;
}
.pn-nav .elementor-nav-menu--main .sub-menu .elementor-sub-item:is(:hover, :focus, .highlighted) { background: var(--pn-s); color: var(--pn-c); }
/* As in the approved design, dropdowns open on hover and on keyboard focus (independent of SmartMenus' pointer detection).
   The ::before strip bridges the gap below the link so the menu stays open while the pointer moves into it. */
@media (min-width: 951px) {
	.pn-nav .elementor-nav-menu--main .elementor-nav-menu > li:is(:hover, :focus-within) > .sub-menu { display: block !important; }
	.pn-nav .elementor-nav-menu--main .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -1.6rem; height: 1.6rem; }
}

/* Mobile menu (≤950px): bordered "Menu" toggle and a dark panel below the header. */
.pn-nav .elementor-menu-toggle {
	width: auto;
	height: auto;
	padding: .6rem;
	border: 1px solid #6c777b;
	border-radius: 0;
	background: none;
	color: #fff;
	font-size: 1rem;
}
.pn-nav .elementor-menu-toggle svg, .pn-nav .elementor-menu-toggle i { display: none; }
.pn-nav .elementor-menu-toggle::before { content: "Menu"; font: 400 17px/1.65 var(--e-global-typography-text-font-family), sans-serif; }
.pn-nav .elementor-menu-toggle.elementor-active::before { content: "Close"; }
.pn-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
	position: absolute;
	top: calc(100% + .5rem);
	left: 0;
	right: 0;
	margin: 0;
	padding: 1rem;
	border-radius: 1rem;
	background: var(--pn-c);
	box-shadow: var(--pn-shadow);
}
/* Open mobile menu scrolls inside the screen (Elementor's own rule sets max-height: 100vh, which overflows on phones). */
.pn-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { max-height: calc(100svh - 7rem) !important; overflow-y: auto !important; overscroll-behavior: contain; }
@media (max-width: 600px) {
	/* Stop above the fixed Call / Quote bar (3.5rem). */
	.pn-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { max-height: calc(100svh - 7rem - 3.5rem) !important; }
}
.pn-nav .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container { padding: 0; }
.pn-nav .elementor-nav-menu--dropdown .elementor-item,
.pn-nav .elementor-nav-menu--dropdown .elementor-sub-item {
	display: block;
	padding: .6rem;
	border-bottom: 1px solid #526066;
	background: none;
	color: #fff;
	font-size: .72rem;
	font-weight: 600;
	line-height: 1.65;
	text-transform: uppercase;
	text-align: left;
	white-space: normal;
}
.pn-nav .elementor-nav-menu--dropdown .sub-menu { display: block !important; position: static !important; width: auto !important; margin: 0 !important; padding: 0; background: none; box-shadow: none; }
.pn-nav .elementor-nav-menu--dropdown .elementor-sub-item { padding-left: .6rem; border-bottom: 0; color: var(--pn-mist); text-transform: none; }
.pn-nav .elementor-nav-menu--dropdown .pn-menu-phone > .elementor-item { color: var(--pn-glow); }
.pn-nav .elementor-nav-menu--dropdown .pn-menu-cta > .elementor-item { margin-top: .8rem; border: 0; border-radius: 999px; background: var(--pn-o); color: var(--pn-c); text-align: center; font-weight: 700; }
.pn-nav .elementor-nav-menu--dropdown :is(.elementor-item, .elementor-sub-item):is(:hover, :focus, .highlighted) { background: none; color: #fff; }

@media (max-width: 1120px) and (min-width: 951px) {
	.e-con.pn-header { left: 1rem; right: 1rem; }
	.pn-nav .elementor-nav-menu--main .elementor-nav-menu { gap: 1.05rem; }
	.pn-nav .elementor-nav-menu--main .pn-menu-cta > .elementor-item { padding-inline: 1rem; }
	.pn-header .pn-logo { width: 205px; }
}
@media (max-width: 950px) {
	.e-con.pn-header { top: .7rem; height: 70px; }
	.pn-scrolled .e-con.pn-header { height: 62px; }
	body.admin-bar .e-con.pn-header { top: calc(.7rem + 46px); }
}
@media (max-width: 600px) {
	.e-con.pn-header { left: .65rem; right: .65rem; padding: 0 1rem; border-radius: .85rem; }
	.pn-header .pn-logo, .pn-scrolled .pn-header .pn-logo { width: 12rem; }
}

/* Footer (Theme Builder) ------------------------------------------------------- */
.e-con.pn-footer {
	display: grid;
	grid-template-columns: 1.7fr 1fr 1fr 1.2fr;
	gap: 4rem;
	padding: 7rem 5vw 5rem;
	background: var(--pn-deep);
	color: #fff;
}
.pn-footer-logo { max-width: 18rem; }
.pn-footer-logo img { height: auto; object-fit: contain; }
.pn-footer-text p { color: #9ba7aa; font-size: .8rem; line-height: 1.65; }
.pn-footer-head .elementor-heading-title { color: var(--pn-glow); font-size: .7rem; font-weight: 700; line-height: 1.65; text-transform: uppercase; }
.pn-footer-links.elementor-widget .elementor-icon-list-items { margin: 0; padding: 0; }
.pn-footer-links.elementor-widget .elementor-icon-list-items .elementor-icon-list-item { margin: .6rem 0; padding: 0; }
.pn-footer-links .elementor-icon-list-item a { display: block; color: #fff; }
.pn-footer-links .elementor-icon-list-text { padding: 0; color: #fff; font-size: .78rem; line-height: 1.65; }
.pn-footer-links .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--pn-glow); }
.pn-footer-links .elementor-icon-list-icon { display: none; }

.e-con.pn-footer { padding-bottom: 2.5rem; }
.e-con.pn-footer-bottom { grid-column: 1 / -1; display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .4rem 1.5rem; margin-top: -1.5rem; }
.pn-footer-legal .elementor-heading-title { color: #9ba7aa; font-size: .72rem; line-height: 1.65; }
.pn-footer-legal .elementor-heading-title a { text-decoration: underline; text-underline-offset: 3px; }
.pn-footer-legal .elementor-heading-title a:hover { color: var(--pn-glow); }
@media (max-width: 600px) { .e-con.pn-footer-bottom { margin-top: 0; } }
.pn-copyright .elementor-heading-title { color: #9ba7aa; font-size: .72rem; line-height: 1.65; }

/* Mobile Call / Quote bar. */
.e-con.pn-sticky { display: none; }
@media (max-width: 950px) {
	.e-con.pn-footer { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	body { padding-bottom: 3.5rem; }
	.e-con.pn-footer { grid-template-columns: 1fr; gap: 2rem; }
	.e-con.pn-sticky { display: grid; grid-template-columns: 1fr 1fr; position: fixed; z-index: 50; left: 0; right: 0; bottom: 0; background: var(--pn-o); }
	.pn-sticky .elementor-button {
		display: flex;
		width: 100%;
		height: 3.5rem;
		align-items: center;
		justify-content: center;
		gap: .5rem;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: var(--pn-o);
		color: var(--pn-c);
		font: 700 .7rem/1 var(--e-global-typography-text-font-family), sans-serif;
		letter-spacing: 0;
		text-transform: uppercase;
	}
	.pn-sticky .elementor-widget-button:first-child .elementor-button { background: var(--pn-c); color: #fff; }
	.pn-sticky .pn-arrow .elementor-button-text::after { margin-left: .5rem; }
}

/* Skip link (Hello Elementor) styled as in the approved design. */
.skip-link.screen-reader-text:focus { top: 1rem; left: 1rem; z-index: 99; padding: 1rem; background: var(--pn-o); color: var(--pn-c); clip: auto; width: auto; height: auto; }

/* Homepage ------------------------------------------------------------------------ */

/* Hero */
.e-con.pn-hero {
	position: relative;
	display: block;
	height: max(880px, 100svh);
	overflow: hidden;
	border-radius: 0 0 clamp(4rem, 10vw, 10rem) 0;
	background: var(--pn-deep);
	color: #fff;
}
.pn-hero .pn-hero-media {
	position: absolute;
	inset: -3%;
	width: 106%;
	height: 106%;
	transform: translateY(var(--hero-shift, 0)) scale(1.05);
	animation: pn-hero-settle 1.6s var(--pn-ease) forwards;
}
.pn-hero .pn-hero-media img { height: 100%; object-position: 58% 50%; }
/* Hero video: sits over the photo, fades in only once it is actually playing. */
.pn-hero .pn-hero-video { opacity: 0; transition: opacity 1s var(--pn-ease); }
.pn-hero .pn-hero-video.is-playing { opacity: 1; }
.pn-hero .pn-hero-video .elementor-wrapper { height: 100%; aspect-ratio: auto; padding: 0; }
.pn-hero .pn-hero-video video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 58% 50%; }
.e-con.pn-hero-shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(9, 15, 17, .9) 0%, rgba(9, 15, 17, .64) 42%, rgba(9, 15, 17, .08) 76%), linear-gradient(0deg, rgba(9, 15, 17, .48), transparent 50%);
}
.e-con.pn-hero-content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: min(850px, 68vw);
	height: 100%;
	padding: 10rem 0 5rem clamp(1.5rem, 8vw, 8rem);
}
.pn-hero .pn-eye .elementor-heading-title { color: var(--pn-glow); animation: pn-rise .7s .12s both; }
.pn-hero { --e-global-typography-primary-font-size: clamp(5rem, 8.4vw, 7rem); }
.pn-hero h1.elementor-heading-title { margin-bottom: 1.8rem; }
/* Each line is masked for the slide-up reveal. The mask is extended below the baseline (padding) and the extra
   height is taken back (negative margin), so descenders like the "g" in "strength." are not cut off. */
.pn-hero h1 span { display: block; overflow: hidden; padding-bottom: .16em; margin-bottom: -.16em; animation: pn-line-in .9s var(--pn-ease) both; }
.pn-hero h1 span:nth-child(2) { color: #f0eee9; animation-delay: .13s; }
.pn-hero-lead p { max-width: 39rem; color: #e1e5e4; font-size: 1.08rem; animation: pn-rise .8s .48s both; }
.e-con.pn-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; animation: pn-rise .8s .62s both; }
.pn-hero .pn-ghost .elementor-button { color: #fff; border-color: rgba(255, 255, 255, .65); background: rgba(16, 23, 25, .25); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.pn-hero-caption { position: absolute; right: 4vw; bottom: 2.2rem; z-index: 2; }
.pn-hero-caption .elementor-heading-title { color: #e2e5e4; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; line-height: 1.65; }
.pn-hero-caption .elementor-heading-title::before { content: ""; display: inline-block; width: 2rem; border-top: 1px solid var(--pn-o); margin: 0 .65rem .2rem 0; vertical-align: middle; }

@keyframes pn-hero-settle { to { transform: translateY(var(--hero-shift, 0)) scale(1); } }
@keyframes pn-line-in { from { opacity: 0; transform: translateY(45px); clip-path: inset(100% 0 0); } to { opacity: 1; transform: none; clip-path: inset(0); } }
@keyframes pn-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

/* Depth intro */
.e-con.pn-intro {
	display: grid;
	grid-template-columns: .82fr 1.18fr;
	align-items: center;
	gap: clamp(4rem, 9vw, 10rem);
	padding-top: 11rem;
	padding-bottom: 12rem;
}
.pn-intro-statement .pn-eye .elementor-heading-title { color: var(--pn-sl); }
.pn-intro-statement h2.elementor-heading-title { max-width: 12ch; }
.pn-intro-statement h2 span { color: var(--pn-sl); }
.pn-intro-statement .elementor-widget-text-editor p { max-width: 34rem; color: var(--pn-sl); }
.e-con.pn-depth {
	--rx: 0deg;
	--ry: 0deg;
	position: relative;
	display: block;
	height: 50rem;
	perspective: 1200px;
	transform: rotateX(var(--rx)) rotateY(var(--ry));
	transform-style: preserve-3d;
	transition: transform .3s var(--pn-ease);
}
.pn-depth .pn-fig { margin: 0; overflow: hidden; box-shadow: var(--pn-shadow); }
.pn-depth .pn-fig .elementor-widget-image, .pn-depth .pn-fig img { height: 100%; }
.e-con.pn-arch { position: absolute; inset: 0 13% 5% 4%; border-radius: 20rem 20rem 2.5rem 2.5rem; transform: translateZ(0); }
.e-con.pn-crew { position: absolute; right: -4%; bottom: -3%; width: 48%; height: 34%; border: 8px solid var(--pn-w); border-radius: 1.2rem 1.2rem 5rem 1.2rem; transform: translateZ(50px); }
.pn-established { position: absolute; left: -4%; top: 55%; z-index: 4; transform: translateZ(75px); }
.pn-established .elementor-heading-title {
	display: flex;
	flex-direction: column;
	padding: 1rem 1.4rem;
	border-radius: .7rem;
	background: var(--pn-o);
	color: var(--pn-deep);
	box-shadow: 0 18px 40px rgba(16, 23, 25, .2);
}
.pn-established small { font-size: .6rem; letter-spacing: .15em; text-transform: uppercase; line-height: 1.65; }
.pn-established strong { font: 700 2rem/normal var(--e-global-typography-secondary-font-family), sans-serif; }

/* Service showcase */
.e-con.pn-showcase {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(4rem, 8vw, 9rem);
	padding: 7rem var(--pn-pad-x);
	background: var(--pn-s);
}
.e-con.pn-stage {
	position: sticky;
	top: 7rem;
	display: block;
	height: 43rem;
	overflow: hidden;
	border-radius: 1.5rem 12rem 1.5rem 1.5rem;
	background: var(--pn-deep);
	box-shadow: var(--pn-shadow);
}
.pn-stage .pn-stage-img { position: absolute; inset: 0; opacity: 0; transform: scale(1.035); transition: opacity .65s var(--pn-ease), transform 1s var(--pn-ease); }
.pn-stage .pn-stage-img img { height: 100%; }
.pn-stage .pn-stage-img.is-active { opacity: 1; transform: scale(1); }
.pn-stage-count { position: absolute; left: 1.2rem; bottom: 1.2rem; z-index: 2; }
.pn-stage-count .elementor-heading-title { padding: .55rem .8rem; border-radius: 99px; background: rgba(16, 23, 25, .8); color: #fff; font-size: .65rem; letter-spacing: .12em; line-height: 1.65; }
.pn-service-rows { --e-global-typography-secondary-font-size: clamp(2.6rem, 4vw, 4.6rem); }
.pn-service-rows h2.elementor-heading-title { max-width: 12ch; margin-bottom: 2.5rem; }
.pn-row .elementor-heading-title a {
	display: grid;
	grid-template-columns: 2.5rem 1fr auto;
	gap: 1rem;
	padding: 1.55rem 0;
	border-top: 1px solid rgba(24, 37, 42, .2);
	font-size: 17px;
	line-height: 1.65;
}
.pn-service-row:last-child .elementor-heading-title a { border-bottom: 1px solid rgba(24, 37, 42, .2); }
.pn-row small { color: var(--pn-amber); }
.pn-row .pn-row-body { display: flex; flex-direction: column; }
.pn-service-row .pn-row-title { font: 600 clamp(1.35rem, 2vw, 2rem)/normal var(--e-global-typography-secondary-font-family), sans-serif; letter-spacing: -.04em; }
.pn-service-row .pn-row-desc {
	display: block;
	line-height: 1.65;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	color: var(--pn-sl);
	font-size: .78rem;
	transition: max-height .45s, opacity .35s, margin .35s;
}
.pn-service-row.is-active .pn-row-desc, .pn-service-row a:focus-visible .pn-row-desc { max-height: 5rem; margin-top: .5rem; opacity: 1; }
.pn-row-arrow { display: inline-block; transition: transform .35s var(--pn-ease); }
.pn-row a:is(:hover, :focus-visible) .pn-row-arrow,
.pn-area-link a:is(:hover, :focus-visible) > span:last-child { transform: translate(.25rem, -.25rem); }

/* Feature */
.e-con.pn-feature {
	position: relative;
	display: grid;
	grid-template-columns: 62% 38%;
	padding: 5rem 0 5rem 5vw;
	overflow: hidden;
	background: linear-gradient(145deg, var(--pn-deep), var(--pn-c));
	color: #fff;
}
.e-con.pn-feature::after {
	content: "";
	position: absolute;
	right: -8rem;
	bottom: -10rem;
	width: 25rem;
	height: 25rem;
	border: 1px solid rgba(239, 132, 4, .28);
	border-radius: 42% 58% 62% 38%;
	box-shadow: inset 0 0 80px rgba(239, 132, 4, .08);
	transform: rotate(28deg);
	pointer-events: none;
}
.pn-feature-img img { height: 43rem; border-radius: 1.5rem 11rem 1.5rem 1.5rem; -webkit-mask-image: linear-gradient(90deg, #000 75%, transparent 100%); mask-image: linear-gradient(90deg, #000 75%, transparent 100%); }
.e-con.pn-feature-copy { --width: auto; position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; width: auto; margin-left: -5vw; padding: 7vw 7vw 7vw 4vw; }
.pn-feature { --e-global-typography-secondary-font-size: clamp(3rem, 5vw, 5.2rem); }
.pn-feature .pn-eye .elementor-heading-title, .pn-feature-copy .elementor-widget-text-editor p { color: var(--pn-mist); }
.pn-feature-copy .pn-link-plain .elementor-button { color: var(--pn-glow); }

/* Selected work */
.e-con.pn-work-intro { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 4rem; margin-bottom: 3rem; }
.pn-work-heading { max-width: 55rem; }
.e-con.pn-mosaic { display: grid; grid-template-columns: 1.25fr .75fr; grid-template-rows: 12rem 22rem 12rem; gap: 1.5rem; perspective: 1000px; }
.e-con.pn-tile { position: relative; display: block; border-radius: 1.2rem; overflow: hidden; box-shadow: 0 22px 50px rgba(16, 23, 25, .14); }
.e-con.pn-tile:nth-child(1) { grid-row: 1 / 4; border-radius: 10rem 1.2rem 1.2rem 1.2rem; transform: translateY(1.5rem); }
.e-con.pn-tile:nth-child(2) { grid-row: 1 / 3; }
.e-con.pn-tile:nth-child(3) { grid-row: 3 / 4; }
.pn-tile .elementor-widget-image, .pn-tile .elementor-widget-image a, .pn-tile img { display: block; height: 100%; }
.pn-tile img { transition: transform .8s var(--pn-ease); }
.pn-tile:hover img { transform: scale(1.035); }
.pn-tile-cap { position: absolute; left: 0; bottom: 0; pointer-events: none; }
.pn-tile-cap .elementor-heading-title { padding: .8rem; border-radius: 0 .7rem 0 0; background: var(--pn-w); color: var(--pn-c); font: 500 1.4rem/normal var(--e-global-typography-secondary-font-family), sans-serif; }
.pn-tile-cap small, .pn-card-cap small { display: block; color: var(--pn-amber); font: 400 .6rem/1.65 var(--e-global-typography-text-font-family), sans-serif; text-transform: uppercase; }

/* Process */
.e-con.pn-process {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	align-items: center;
	gap: 8vw;
	padding: 7vw;
	background: linear-gradient(135deg, #e7e2d9, #f3f0ea);
}
.pn-process-img img { height: 34rem; border-radius: 1.2rem 8rem 1.2rem 1.2rem; box-shadow: var(--pn-shadow); }
.pn-process-copy .elementor-widget-heading p.elementor-heading-title {
	padding: 1rem;
	border-top: 1px solid #b7b3ab;
	font: 500 1.5rem/normal var(--e-global-typography-secondary-font-family), sans-serif;
}
/* In the approved design the process eyebrow takes the step-row treatment (24px Manrope with a top rule). */
.pn-process-copy {
	--e-global-typography-accent-font-family: var(--e-global-typography-secondary-font-family);
	--e-global-typography-accent-font-size: 1.5rem;
	--e-global-typography-accent-font-weight: 500;
	--e-global-typography-accent-line-height: normal;
}
.pn-process-step small { margin-right: 1rem; color: var(--pn-amber); }

/* Service areas */
.e-con.pn-areas, .e-con.pn-history, .e-con.pn-faqsec { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; }
.pn-area-link .elementor-heading-title a { display: grid; grid-template-columns: 1fr auto 1rem; align-items: center; padding: 1rem 0; border-top: 1px solid var(--pn-line); font-size: 17px; line-height: 1.65; }
.pn-area-link b { font: 500 2rem/normal var(--e-global-typography-secondary-font-family), sans-serif; }
.pn-area-link small { color: var(--pn-sl); }
.pn-area-link a > span:last-child { display: inline-block; transition: transform .35s var(--pn-ease); }

/* History */
.pn-big-year .elementor-heading-title { color: var(--pn-o); font: 500 clamp(7rem, 16vw, 16rem)/.7 var(--e-global-typography-secondary-font-family), sans-serif; letter-spacing: -.08em; }
.pn-history-copy .elementor-widget-text-editor p { color: var(--pn-c); }

/* Quote band */
.e-con.pn-quote {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: 8vw;
	padding: 7rem 6vw;
	background: radial-gradient(circle at 15% 20%, #24363b 0, var(--pn-deep) 45%);
	color: #fff;
}
.pn-quote-intro { padding-top: 1rem; }
.pn-quote .pn-eye .elementor-heading-title, .pn-quote-text p { color: var(--pn-mist); }
.elementor-widget-button.pn-quote-mail .elementor-button { color: var(--pn-glow); }
.pn-quote .pn-form-panel { padding: 2rem; border: 1px solid rgba(255, 255, 255, .12); border-radius: 1.2rem; background: rgba(255, 255, 255, .035); }

@media (max-width: 950px) {
	.e-con.pn-hero { height: 900px; max-height: none; min-height: 720px; }
	.e-con.pn-hero-content { width: 85vw; padding-left: 6vw; padding-top: 9rem; }
	.e-con.pn-intro, .e-con.pn-showcase { grid-template-columns: 1fr; }
	.e-con.pn-depth { height: 42rem; }
	.e-con.pn-stage { position: relative; top: auto; height: 35rem; }
	.e-con.pn-feature { grid-template-columns: 1fr; padding: 4rem 1.25rem; }
	.e-con.pn-feature-copy { margin: 0; padding: 4rem 0 1rem; }
	.pn-feature-img img { height: 32rem; -webkit-mask-image: none; mask-image: none; }
	.e-con.pn-work-intro { display: block; }
	.e-con.pn-process, .e-con.pn-areas, .e-con.pn-history, .e-con.pn-faqsec, .e-con.pn-quote { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.e-con.pn-section { padding: 5rem 1.25rem; }
	.e-con.pn-hero { height: 800px; min-height: 760px; border-radius: 0 0 3.5rem 0; }
	.pn-hero .pn-hero-photo img { object-position: 52% center; }
	.pn-hero .pn-hero-video video { object-position: 60% center; }
	.e-con.pn-hero-shade { background: linear-gradient(0deg, rgba(9, 15, 17, .94) 0%, rgba(9, 15, 17, .6) 55%, rgba(9, 15, 17, .18) 100%); }
	.e-con.pn-hero-content { width: auto; justify-content: flex-end; padding: 8rem 1.25rem 4rem; }
	.pn-hero { --e-global-typography-primary-font-size: clamp(2.9rem, 13vw, 3.5rem); }
	.pn-hero-lead p { font-size: 1rem; }
	.e-con.pn-actions { flex-direction: column; }
	.pn-actions .elementor-widget-button, .pn-actions .elementor-button { width: 100%; }
	.pn-hero-caption { display: none; }
	.e-con.pn-intro { padding-top: 6rem; padding-bottom: 7rem; gap: 3rem; }
	.e-con.pn-depth { height: 29rem; transform: none !important; }
	.e-con.pn-arch { inset: 0 5% 4%; border-radius: 10rem 10rem 1.5rem 1.5rem; }
	.e-con.pn-crew { right: 0; width: 52%; height: 33%; border-width: 5px; border-radius: .8rem .8rem 2.5rem; }
	.pn-established { left: 0; top: 57%; }
	.pn-established .elementor-heading-title { padding: .75rem 1rem; }
	.e-con.pn-showcase { padding-left: 1.25rem; padding-right: 1.25rem; }
	.e-con.pn-stage { height: 24rem; border-radius: 1rem 5rem 1rem 1rem; }
	.pn-row .elementor-heading-title a { grid-template-columns: 2rem 1fr auto; }
	.pn-service-row .pn-row-desc { display: none; }
	.pn-feature-img img { height: 25rem; border-radius: 1rem 4rem 1rem 1rem; }
	.e-con.pn-mosaic { display: block; }
	.e-con.pn-tile, .e-con.pn-tile:nth-child(1) { height: 25rem; margin-bottom: 1rem; border-radius: 1rem 4rem 1rem 1rem; transform: none; }
	.e-con.pn-process { padding: 5rem 1.25rem; }
	.pn-process-img img { height: 22rem; border-radius: 1rem 4rem 1rem 1rem; }
	.pn-area-link small { grid-column: 1; }
	.e-con.pn-quote { padding: 5rem 1.25rem; }
	.pn-quote .pn-form-panel { padding: 1rem; }
}

/* Inquiry forms (Elementor Pro Form widget) -------------------------------------------- */
.e-con.pn-form-panel { padding: 2rem; border-radius: 1.2rem; background: var(--pn-deep); color: #fff; box-shadow: var(--pn-shadow); }
.pn-form .elementor-form-fields-wrapper { margin: 0 -.5rem; }
.pn-form .elementor-field-group { padding: 0 .5rem; margin-bottom: 1rem; }
.pn-form .elementor-field-group > .elementor-field-label {
	display: block;
	margin: 0;
	padding: 0;
	color: #fff;
	font-size: .7rem;
	font-weight: 600;
	line-height: 1.65;
	text-transform: uppercase;
}
.pn-form .elementor-field-label small { display: block; color: #aeb8ba; font-size: .56rem; }
/* Colors, border and type come from the form widget's own style controls; only spacing is set here. */
.pn-form.elementor-widget-form .elementor-field-group .elementor-field-textual { min-height: 0; padding: .75rem; text-transform: none; box-shadow: none; }
.pn-form.elementor-widget-form .elementor-select-wrapper select { padding: .75rem 2rem .75rem .75rem; }
.pn-form .elementor-field-group select option { color: var(--pn-c); background: #fff; }
.pn-form .elementor-select-wrapper .select-caret-down-wrapper { right: .75rem; color: #fff; font-size: .7rem; }
.pn-form .elementor-field-group :is(input, select, textarea):focus { border-color: var(--pn-o); outline: 3px solid var(--pn-o); outline-offset: 1px; }
.pn-form .elementor-field::placeholder { color: #9aa5a8; opacity: 1; }
.pn-form .elementor-field-type-submit { margin-bottom: 0; }
.pn-form .elementor-button { width: 100%; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pn-form .elementor-button[disabled], .pn-form form.elementor-form-waiting .elementor-button { opacity: .7; cursor: progress; }
.pn-form .elementor-message { margin-top: 1rem; font-size: .9rem; line-height: 1.5; }
.pn-form .elementor-message.elementor-message-success { color: var(--pn-glow); }
.pn-form .elementor-message.elementor-message-danger, .pn-form .elementor-error .elementor-message { color: #ffb4a8; }
.pn-form .elementor-field-group.elementor-error :is(input, select, textarea) { border-color: #ff8a73; }
.pn-form .elementor-message::before { display: none; }
@media (max-width: 600px) {
	/* Single column on phones; field text is 16px there (widget control) to prevent iOS zoom-on-focus. */
	.pn-form .elementor-field-group { width: 100%; flex-basis: 100%; max-width: 100%; }
	.e-con.pn-form-panel { padding: 1rem; }
}

/* Scroll reveal (enabled by the site script only when motion is allowed) ------------------- */
.pn-motion .pn-reveal { opacity: .01; transform: translateY(24px); transition: opacity .85s var(--pn-ease), transform .85s var(--pn-ease); }
.pn-motion .pn-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	body * { transition: none !important; }
	.pn-hero .pn-hero-media, .pn-hero h1 span, .pn-hero .pn-eye .elementor-heading-title, .pn-hero-lead p, .e-con.pn-actions { animation: none !important; }
	.pn-reveal { opacity: 1 !important; transform: none !important; }
	.e-con.pn-depth { transform: none !important; }
}

/* Inside the Elementor editor keep everything visible and static. */
.elementor-editor-active .pn-reveal { opacity: 1 !important; transform: none !important; }
.elementor-editor-active .e-con.pn-header { position: relative; top: 0; left: 0; right: 0; }

/* Inner pages ---------------------------------------------------------------------------- */

/* Page hero */
.e-con.pn-pagehero {
	display: grid;
	place-items: center;
	min-height: 35rem;
	padding: 10rem 8vw 7rem;
	background: linear-gradient(145deg, var(--pn-s), var(--pn-w));
}
.pn-pagehero-copy { max-width: 75rem; }
.pn-pagehero-text p { max-width: 52rem; color: var(--pn-sl); font-size: 1.1rem; }
.pn-pagehero-link { margin-top: 1.4rem; }
.elementor-widget-button.pn-pagehero-link .elementor-button { gap: .8rem; padding-bottom: .25rem; font-size: .76rem; font-weight: 600; }
.e-con.pn-pagehero.has-pic {
	position: relative;
	grid-template-columns: 46% 54%;
	place-items: stretch;
	min-height: 48rem;
	padding: 0;
	overflow: hidden;
	border-radius: 0 0 7rem 0;
	background: var(--pn-deep);
	color: #fff;
}
.pn-pagehero.has-pic .e-con.pn-pagehero-copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding: 7vw; }
.pn-pagehero.has-pic .pn-pagehero-text p { color: #c2ccce; }
.pn-pagehero.has-pic .pn-eye .elementor-heading-title { color: var(--pn-glow); }
.pn-pagehero.has-pic .elementor-widget-button.pn-pagehero-link .elementor-button { color: var(--pn-glow); }
.e-con.pn-pagehero-fig { position: absolute; right: 0; top: 0; width: 57%; height: 100%; margin: 0; overflow: hidden; }
.e-con.pn-pagehero-fig::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--pn-deep), transparent 34%), linear-gradient(0deg, rgba(16, 23, 25, .35), transparent 45%); pointer-events: none; }
.pn-pagehero-fig .elementor-widget-image, .pn-pagehero-fig img { height: 100%; }
.pn-pagehero-fig img { filter: brightness(.8); }
.pn-figcap-pill { position: absolute; z-index: 2; right: 2rem; bottom: 2rem; }
.pn-figcap-pill .elementor-heading-title {
	padding: .55rem .8rem;
	border: 1px solid rgba(255, 255, 255, .24);
	border-radius: 999px;
	background: rgba(16, 23, 25, .64);
	color: #fff;
	font-size: .6rem;
	letter-spacing: .12em;
	line-height: 1.65;
	text-transform: uppercase;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

/* Figures with a caption strip */
.e-con.pn-fig { position: relative; margin: 0; overflow: hidden; }
.pn-fig .elementor-widget-image, .pn-fig .elementor-widget-image a, .pn-fig img { display: block; height: 100%; }
.pn-figcap { position: absolute; left: 0; bottom: 0; }
.pn-figcap .elementor-heading-title { padding: .6rem .8rem; background: rgba(16, 23, 25, .78); color: #fff; font-size: .7rem; letter-spacing: .04em; line-height: 1.65; }

/* Detail blocks (service pages, services overview editorial, area features) */
.e-con.pn-detail { padding: var(--pn-pad-y) var(--pn-pad-x); }
.e-con.pn-detail.tone-stone { background: var(--pn-s); }
.e-con.pn-detail.tone-dark { background: radial-gradient(circle at 12% 15%, #293a3e, var(--pn-deep) 50%); color: #fff; }
.e-con.pn-detail-inner { width: 100%; max-width: 1440px; margin: auto; }
.pn-detail.has-image .e-con.pn-detail-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: clamp(3rem, 7vw, 7rem); }
.e-con.pn-detail-heading { align-self: end; }
.pn-detail { --e-global-typography-secondary-font-size: clamp(3rem, 4.8vw, 5rem); }
.pn-detail-heading h2.elementor-heading-title { max-width: 12ch; }
.e-con.pn-detail-copy { align-self: start; max-width: 42rem; }
.tone-dark .pn-muted p, .tone-dark .pn-step-text p { color: var(--pn-mist); }
.e-con.pn-detail-image { grid-row: 1 / 3; height: clamp(29rem, 40vw, 35rem); margin: 0; overflow: hidden; box-shadow: var(--pn-shadow); }
.pn-detail-image .elementor-widget-image:first-child, .pn-detail-image .elementor-widget-image:first-child img { height: 100%; }
.pn-detail-image img { transition: transform .9s var(--pn-ease); }
.pn-detail:hover .pn-detail-image .elementor-widget-image:first-child img { transform: scale(1.015); }
.pn-detail.image-left .e-con.pn-detail-image { grid-column: 1; border-radius: 1.5rem 10rem 1.5rem 1.5rem; }
.pn-detail.image-left :is(.pn-detail-heading, .pn-detail-copy) { grid-column: 2; }
.pn-detail.image-right .e-con.pn-detail-image { grid-column: 2; border-radius: 9rem 1.5rem 1.5rem 1.5rem; }
.pn-detail.image-right :is(.pn-detail-heading, .pn-detail-copy) { grid-column: 1; }
.e-con.pn-detail.compact { padding-block: clamp(4.5rem, 6vw, 6rem); }
.pn-detail.compact .e-con.pn-detail-image { height: clamp(22rem, 30vw, 28rem); }
.pn-detail.compact { --e-global-typography-secondary-font-size: clamp(2.8rem, 4.2vw, 4.4rem); }

/* Numbered items inside detail blocks */
.e-con.pn-items { display: grid; border-top: 1px solid #c8c4bc; }
.pn-items .e-con.pn-step { padding: 1.8rem clamp(1rem, 2.5vw, 2.5rem); border-right: 1px solid #c8c4bc; }
.pn-items .e-con.pn-step:first-child { padding-left: 0; }
.pn-items .e-con.pn-step:last-child { border-right: 0; }
.tone-dark .e-con.pn-items, .tone-dark .pn-items .e-con.pn-step { border-color: rgba(255, 255, 255, .18); }
.pn-detail.has-image .e-con.pn-items { grid-template-columns: 1fr; margin-top: 1.6rem; }
.pn-detail.has-image .pn-items .e-con.pn-step { display: grid; grid-template-columns: 2.4rem 1fr; padding: 1rem 0; border-right: 0; border-bottom: 1px solid var(--pn-line); }
.pn-detail.has-image .pn-items .pn-step-num { grid-row: 1 / 3; padding-top: .25rem; }
.pn-detail.has-image .pn-items h3.elementor-heading-title { margin: 0 0 .35rem; }
.pn-detail.has-image .pn-items .pn-step-text { grid-column: 2; }
.tone-dark.has-image .pn-items .e-con.pn-step { border-color: rgba(255, 255, 255, .18); }

/* Scope block: heading split, items in columns */
.pn-detail-scope { background: var(--pn-s); }
.e-con.pn-detail.pn-detail-scope { background: var(--pn-s); }
.pn-detail-scope .e-con.pn-detail-heading { display: grid; grid-template-columns: .55fr 1.45fr; gap: 5vw; }
.pn-detail-scope .pn-detail-heading .pn-eye { padding-top: .7rem; }
.pn-detail-scope .e-con.pn-detail-copy { max-width: none; }
.pn-detail-scope .pn-detail-copy > .pn-muted p { max-width: 52rem; margin: 0 0 3rem auto; font-size: 1.05rem; }
.pn-detail-scope .pn-detail-copy > .pn-muted { display: flex; justify-content: flex-end; }
.pn-detail-scope .e-con.pn-items { grid-template-columns: repeat(3, 1fr); }
.pn-detail-scope .e-con.pn-items-2 { grid-template-columns: repeat(2, 1fr); }

/* Middle blocks without images */
.pn-detail-middle-one:not(.has-image) .e-con.pn-detail-heading { display: grid; grid-template-columns: .55fr 1.45fr; gap: 5vw; }
.pn-detail-middle-one:not(.has-image) .e-con.pn-detail-copy { max-width: none; margin-top: 2rem; }
.pn-detail-middle-one:not(.has-image) .e-con.pn-items { grid-template-columns: 1fr; }
.pn-detail-middle-one:not(.has-image) .pn-items .e-con.pn-step { display: grid; grid-template-columns: 4rem .55fr 1.45fr; align-items: start; padding: 1.4rem 0; border-right: 0; border-bottom: 1px solid var(--pn-line); }
.pn-detail-middle-one:not(.has-image) .pn-items h3.elementor-heading-title { margin: 0; }
.pn-detail-middle-two:not(.has-image) .e-con.pn-detail-inner { display: grid; grid-template-columns: .7fr 1.3fr; gap: 7vw; }
.pn-detail-middle-two:not(.has-image) .e-con.pn-detail-copy { max-width: none; }
.pn-detail-middle-two:not(.has-image) .e-con.pn-items { grid-template-columns: repeat(3, 1fr); margin-top: 2rem; }
.pn-detail-middle-two:not(.has-image) .pn-items .e-con.pn-step { padding-block: 1.2rem; }

/* Bullet lists */
.pn-points ul { margin-top: 1.8rem; }
.pn-points li { padding: .9rem .5rem .9rem 1.8rem; font-size: .86rem; }
.pn-points li::before, .pn-checklist li::before { left: .2rem; top: 1.45rem; width: .65rem; }
.tone-dark .pn-list ul, .tone-dark .pn-list li { border-color: rgba(255, 255, 255, .18); }
.tone-dark .pn-list li { color: var(--pn-mist); }
.pn-checklist ul { display: grid; grid-template-columns: 1fr 1fr; margin-top: 2rem; }
.pn-checklist li { padding: 1rem .75rem 1rem 1.8rem; font-size: .83rem; }

/* Link rows */
.e-con.pn-links { display: flex; flex-direction: row; flex-wrap: wrap; gap: 1.5rem; margin-top: 2rem; }
.pn-detail-copy > .elementor-widget-button.pn-link-caps { margin-top: .8rem; }
.tone-dark .elementor-widget-button.pn-link-caps .elementor-button { color: var(--pn-glow); }

/* Services overview editorial */
.pn-svc-editorial { --e-global-typography-secondary-font-size: clamp(3rem, 4.8vw, 5rem); }
.pn-svc-editorial .pn-detail-heading h2.elementor-heading-title { max-width: 11ch; }
.pn-svc-editorial .e-con.pn-detail-copy { max-width: 37rem; }
.pn-svc-editorial .pn-points li { padding: 1rem .5rem 1rem 2rem; font-size: .87rem; }
.pn-svc-editorial .pn-points li::before { left: .25rem; top: 1.55rem; width: .7rem; }
.pn-svc-editorial .pn-points ul { margin: 2rem 0; }
.pn-svc-editorial .e-con.pn-detail-image { position: relative; overflow: visible; box-shadow: none; }
.pn-svc-editorial .pn-detail-image .elementor-widget-image:first-child img { box-shadow: var(--pn-shadow); }
.pn-svc-editorial.image-left .e-con.pn-detail-image, .pn-svc-editorial.image-right .e-con.pn-detail-image { border-radius: 0; }
.pn-svc-editorial-1 .pn-detail-image .elementor-widget-image:first-child img { border-radius: 1.5rem 11rem 1.5rem 1.5rem; }
.e-con.pn-svc-editorial-2 { background: var(--pn-deep); color: #fff; }
.pn-svc-editorial-2 .pn-detail-image img { border-radius: 10rem 1.5rem 1.5rem 1.5rem; }
.pn-svc-editorial-2 .pn-muted p, .pn-svc-editorial-2 .pn-list li { color: var(--pn-mist); }
.pn-svc-editorial-2 .pn-list ul, .pn-svc-editorial-2 .pn-list li { border-color: rgba(255, 255, 255, .18); }
.pn-svc-editorial-2 .elementor-widget-button.pn-link-caps .elementor-button { color: var(--pn-glow); }
.pn-svc-editorial-3 .pn-detail-image img { border-radius: 1.5rem 1.5rem 10rem 1.5rem; }
.e-con.pn-svc-editorial-4 { background: var(--pn-s); }
.pn-svc-editorial-4 .pn-detail-image img { border-radius: 9rem 1.5rem 1.5rem 1.5rem; object-position: center 55%; }
.pn-svc-detail-img { position: absolute; right: -4%; bottom: -5%; width: 39%; height: 31%; }
.pn-svc-detail-img img { height: 100%; border: 7px solid var(--pn-w); border-radius: 1rem 1rem 4rem 1rem; box-shadow: 0 18px 45px rgba(16, 23, 25, .24); }

.e-con.pn-svc-planning { display: grid; grid-template-columns: 1.4fr .6fr; align-items: stretch; min-height: 32rem; overflow: hidden; background: radial-gradient(circle at 12% 15%, #293a3e, var(--pn-deep) 48%); color: #fff; }
.e-con.pn-svc-planning-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(5rem, 7vw, 7rem) clamp(1.25rem, 7vw, 7rem); }
.pn-svc-planning { --e-global-typography-secondary-font-size: clamp(3rem, 5vw, 5.2rem); }
.pn-svc-planning h2.elementor-heading-title { max-width: 14ch; }
.pn-svc-planning .elementor-widget-text-editor p { max-width: 47rem; color: var(--pn-mist); }
.pn-svc-planning .pn-btn { margin-top: 1rem; }
.e-con.pn-svc-planning-fig { position: relative; min-height: 32rem; margin: 0; }
.e-con.pn-svc-planning-fig::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--pn-deep), transparent 55%); }
.pn-svc-planning-fig .elementor-widget-image { position: absolute; inset: 0; }
.pn-svc-planning-fig img { height: 100%; filter: brightness(.78); }

.e-con.pn-svc-process { padding: var(--pn-pad-y) var(--pn-pad-x); background: var(--pn-w); }
.e-con.pn-svc-process-heading { display: grid; grid-template-columns: .65fr 1.35fr; gap: 5vw; width: 100%; max-width: 1440px; margin: 0 auto 4rem; }
.pn-svc-process-heading h2.elementor-heading-title { max-width: 13ch; }

/* Three-step rows */
.e-con.pn-steps { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; max-width: 1440px; margin: auto; border-top: 1px solid var(--pn-line); }
.pn-steps .e-con.pn-step { min-height: 15rem; padding: 2rem clamp(1.25rem, 3vw, 3rem) 1rem; border-right: 1px solid var(--pn-line); }
.pn-steps .e-con.pn-step:first-child { padding-left: 0; }
.pn-steps .e-con.pn-step:last-child { border-right: 0; }
.pn-steps { --e-global-typography-pnh3-font-size: clamp(1.5rem, 2.2vw, 2rem); }
.pn-steps .pn-step h3.elementor-heading-title { margin: 1.3rem 0 .8rem; }
.pn-steps .pn-step-text p { max-width: 24rem; font-size: .9rem; }
.pn-steps-dark.e-con { border-color: rgba(255, 255, 255, .18); }
.pn-steps-dark .e-con.pn-step, .pn-steps-dark .e-con.pn-step:first-child { min-height: 0; padding: 1.8rem clamp(.8rem, 2vw, 2rem); border-color: rgba(255, 255, 255, .18); }
.pn-steps-dark .pn-step-num .elementor-heading-title { color: var(--pn-glow); }
.pn-steps-dark { --e-global-typography-pnh3-font-size: 1.5rem; }
.pn-steps-dark .pn-step h3.elementor-heading-title { margin: 1rem 0 .7rem; }
.pn-steps-dark .pn-step-text p { color: var(--pn-mist); font-size: .84rem; }

/* Inquiry sections */
.e-con.pn-inquiry { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem, 8vw, 8rem); padding: var(--pn-pad-y) var(--pn-pad-x); background: var(--pn-w); scroll-margin-top: 6rem; }
.e-con.pn-inquiry-stone { background: linear-gradient(135deg, var(--pn-s), var(--pn-w)); }
.e-con.pn-inquiry-intro { max-width: 34rem; }
.pn-inquiry h2.elementor-heading-title { max-width: 10ch; }
.pn-inquiry-plain { grid-template-columns: .7fr 1.3fr; gap: 8vw; }
.e-con.pn-inquiry-plain { grid-template-columns: .7fr 1.3fr; gap: 8vw; }
.pn-inquiry-plain .pn-inquiry-intro .pn-muted p { max-width: 30rem; }
.pn-inquiry-plain h2.elementor-heading-title { max-width: 12ch; }
.pn-inquiry .pn-contact .elementor-heading-title a { border-color: #c4bfb6; }

/* Gallery (ICF service) */
.e-con.pn-gallery { padding: var(--pn-pad-y) var(--pn-pad-x); }
.e-con.pn-gallery-heading { display: grid; grid-template-columns: .55fr 1.45fr; gap: 5vw; width: 100%; max-width: 1440px; margin: 0 auto 3rem; }
.pn-gallery-heading h2.elementor-heading-title { max-width: 13ch; }
.e-con.pn-gallery-grid { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: 18rem 18rem; gap: 1rem; width: 100%; max-width: 1440px; margin: auto; }
.pn-gallery-grid .e-con.pn-fig { border-radius: 1rem; }
.pn-gallery-grid .e-con.pn-fig:first-child { grid-row: 1 / 3; border-radius: 9rem 1rem 1rem 1rem; }
.pn-gallery-grid .e-con.pn-fig:last-child { border-radius: 1rem 1rem 5rem 1rem; }
.pn-gallery-grid img { transition: transform .8s var(--pn-ease); }
.pn-gallery-grid .pn-fig:hover img { transform: scale(1.025); }

/* FAQ section */
.e-con.pn-faq-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: 8vw; padding: var(--pn-pad-y) clamp(1.25rem, 7vw, 7rem); }
.e-con.pn-faq-stone { background: var(--pn-s); }
.pn-faq-section h2.elementor-heading-title { max-width: 11ch; }
.pn-faq-section .pn-faq { align-self: start; }

/* Service areas overview */
.e-con.pn-corridor { display: grid; grid-template-columns: 1fr 1fr; background: var(--pn-o); color: var(--pn-deep); }
.pn-corridor .elementor-heading-title { display: flex; flex-direction: column; padding: 1.5rem clamp(1.25rem, 7vw, 7rem); border-right: 1px solid rgba(24, 37, 42, .25); }
.pn-corridor small { font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.65; }
.pn-corridor strong { font: 600 clamp(1.1rem, 1.8vw, 1.5rem)/1.3 var(--e-global-typography-secondary-font-family), sans-serif; }
.pn-area-feature { --e-global-typography-secondary-font-size: clamp(3.5rem, 6vw, 6rem); }
.e-con.pn-area-feature-2 { background: var(--pn-s); }
.e-con.pn-area-feature-4 { background: var(--pn-deep); color: #fff; }
.pn-area-feature-4 .pn-muted p { color: var(--pn-mist); }
.pn-area-feature-4 .elementor-widget-button.pn-link-caps .elementor-button { color: var(--pn-glow); }
.pn-area-feature .pn-detail-heading h2.elementor-heading-title { max-width: none; }
.pn-area-feature .e-con.pn-detail-copy { max-width: 38rem; }
.pn-area-feature .pn-figcap-pill { left: 1rem; right: auto; bottom: 1rem; max-width: 80%; }
.pn-area-feature .pn-figcap-pill .elementor-heading-title, .pn-city-intro .pn-figcap-pill .elementor-heading-title { border: 0; background: rgba(16, 23, 25, .72); font-size: .58rem; letter-spacing: .04em; text-transform: none; }
.pn-area-support .elementor-heading-title { padding-top: 1rem; border-top: 1px solid var(--pn-line); font-size: .68rem; font-weight: 700; letter-spacing: .06em; line-height: 1.65; text-transform: uppercase; }
.pn-area-feature .elementor-widget-button.pn-link-caps { margin-top: 1rem; }
.e-con.pn-other-location { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: center; padding: 4.5rem clamp(1.25rem, 7vw, 7rem); background: var(--pn-c); color: #fff; }
.pn-other-location { --e-global-typography-secondary-font-size: clamp(2.6rem, 4vw, 4rem); }
.pn-other-location .elementor-widget-text-editor p { max-width: 43rem; color: var(--pn-mist); }
.pn-other-location .pn-btn { margin-top: .7rem; }

/* City pages */
.e-con.pn-city-intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 7vw, 7rem); align-items: center; padding: var(--pn-pad-y) var(--pn-pad-x); }
.pn-city-intro .e-con.pn-fig { height: clamp(29rem, 38vw, 34rem); border-radius: 1.5rem 10rem 1.5rem 1.5rem; box-shadow: var(--pn-shadow); }
.pn-city-intro .pn-figcap-pill { left: 1rem; right: auto; bottom: 1rem; max-width: 80%; }
:is(.pn-city-intro, .pn-city-services, .pn-city-prep, .pn-faq-section, .pn-inquiry) { --e-global-typography-secondary-font-size: clamp(3rem, 4.8vw, 5rem); }
:is(.pn-city-intro, .pn-city-services, .pn-city-prep) h2.elementor-heading-title { max-width: 12ch; }
.pn-city-intro .pn-muted p { max-width: 40rem; }
.e-con.pn-city-services { display: grid; grid-template-columns: .65fr 1.35fr; gap: 7vw; padding: var(--pn-pad-y) var(--pn-pad-x); background: var(--pn-s); }
.pn-city-row .elementor-heading-title a { grid-template-columns: 3rem 1fr auto; padding: 1.3rem 0; border-top: 1px solid #c4bfb6; }
.pn-city-row:last-child .elementor-heading-title a { border-bottom: 1px solid #c4bfb6; }
.pn-city-row small, .pn-about-row small { padding-top: .25rem; font-size: .63rem; font-weight: 700; }
.pn-city-row .pn-row-title { margin: 0 0 .35rem; font: 500 clamp(1.4rem, 2vw, 1.9rem)/1.02 var(--e-global-typography-secondary-font-family), sans-serif; letter-spacing: -.055em; }
.pn-city-row .pn-row-desc { max-width: 40rem; color: var(--pn-sl); font-size: .86rem; }
.e-con.pn-city-planning { display: grid; grid-template-columns: 1fr 1fr; min-height: 38rem; }
.e-con.pn-city-planning-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(5rem, 7vw, 7rem); }
.pn-city-planning { --e-global-typography-secondary-font-size: clamp(3rem, 5vw, 5.1rem); }
.e-con.pn-city-planning-fig { min-height: 38rem; margin: 0; overflow: hidden; }
.pn-city-planning-fig .elementor-widget-image, .pn-city-planning-fig img { height: 100%; }
.e-con.pn-city-planning.tone-dark { background: var(--pn-deep); color: #fff; }
.pn-city-planning.tone-dark .pn-muted p { color: var(--pn-mist); }
.pn-city-planning.tone-dark .e-con.pn-city-planning-fig { border-radius: 9rem 0 0 1.5rem; }
.e-con.pn-city-planning.tone-stone { background: var(--pn-s); }
.e-con.pn-city-planning.has-gallery { grid-template-columns: .75fr 1.25fr; }
.e-con.pn-city-gallery { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 19rem); gap: .8rem; padding: 1.2rem; }
.pn-city-gallery .e-con.pn-fig { border-radius: 1rem; }
.pn-city-gallery .e-con.pn-fig:nth-child(2), .pn-city-gallery .e-con.pn-fig:nth-child(3) { border-radius: 1rem 4rem 1rem 1rem; }
.pn-city-gallery .pn-figcap { left: .5rem; right: .5rem; bottom: .5rem; }
.pn-city-gallery .pn-figcap .elementor-heading-title { padding: .45rem .55rem; border-radius: .45rem; background: rgba(16, 23, 25, .76); font-size: .58rem; line-height: 1.35; letter-spacing: 0; }
.e-con.pn-city-prep { display: grid; grid-template-columns: .7fr 1.3fr; gap: 7vw; padding: var(--pn-pad-y) var(--pn-pad-x); }
.pn-city-prep .pn-muted p { max-width: 34rem; }
.e-con.pn-city-prep-items { align-self: center; }
.e-con.pn-prep-cols { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--pn-line); }
.pn-prep-cols .e-con.pn-step { padding: 1.5rem clamp(.8rem, 2vw, 2rem); border-right: 1px solid var(--pn-line); }
.pn-prep-cols .e-con.pn-step:first-child { padding-left: 0; }
.pn-prep-cols .e-con.pn-step:last-child { border-right: 0; }
.pn-prep-cols { --e-global-typography-pnh3-font-size: 1.5rem; }
.pn-prep-cols .pn-step h3.elementor-heading-title { margin: 1rem 0 .6rem; }
.pn-prep-cols .pn-step-text p { font-size: .84rem; }
.pn-prep-list ul { display: grid; grid-template-columns: 1fr 1fr; }
.pn-prep-list li { padding: 1rem .7rem 1rem 1.8rem; font-size: .86rem; }
.pn-prep-list li::before { left: .2rem; top: 1.5rem; width: .65rem; }
.pn-city-prep-items .pn-link-caps { margin-top: 1rem; }

/* About */
.e-con.pn-about-hero { display: grid; grid-template-columns: .85fr 1.15fr; min-height: 52rem; padding: 10rem clamp(1.25rem, 7vw, 7rem) 6rem; overflow: hidden; background: var(--pn-deep); color: #fff; }
.e-con.pn-about-hero-copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; }
.pn-about-hero { --e-global-typography-primary-font-size: clamp(4.2rem, 7vw, 7rem); }
.pn-about-hero h1.elementor-heading-title { max-width: 10ch; }
.pn-about-hero .pn-eye .elementor-heading-title { color: var(--pn-glow); }
.pn-about-lead p { max-width: 38rem; color: #c2ccce; }
.pn-about-hero .pn-btn { margin-top: 1rem; }
.e-con.pn-about-hero-images { position: relative; min-height: 39rem; }
.e-con.pn-about-hero-fig { position: absolute; inset: 4% 0 8% 2%; margin: 0; overflow: hidden; border-radius: 10rem 1.5rem 1.5rem 1.5rem; box-shadow: var(--pn-shadow); }
.pn-about-hero-fig .elementor-widget-image, .pn-about-hero-fig img { height: 100%; object-position: center; }
.pn-about-hero-logo { position: absolute; left: 0; bottom: 8%; z-index: 3; width: min(16rem, 42%); }
.pn-about-hero-logo img { padding: 1rem; border-radius: .8rem; background: rgba(16, 23, 25, .85); object-fit: contain; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.e-con.pn-about-history { display: grid; grid-template-columns: .65fr .65fr .9fr; gap: 5vw; align-items: center; padding: clamp(7rem, 10vw, 10rem) var(--pn-pad-x); }
.pn-about-year .elementor-heading-title { color: var(--pn-o); font: 700 clamp(7rem, 13vw, 13rem)/.72 var(--e-global-typography-secondary-font-family), sans-serif; letter-spacing: -.09em; writing-mode: vertical-rl; transform: rotate(180deg); }
.pn-about-history .e-con.pn-fig { height: 34rem; border-radius: 1.5rem 8rem 1.5rem 1.5rem; }
.pn-about-history .pn-figcap { left: .8rem; bottom: .8rem; max-width: 80%; }
.pn-about-history .pn-figcap .elementor-heading-title { padding: .45rem .6rem; border-radius: .5rem; background: rgba(16, 23, 25, .72); font-size: .58rem; letter-spacing: 0; }
:is(.pn-about-history, .pn-about-focus, .pn-about-gallery, .pn-about-areas) { --e-global-typography-secondary-font-size: clamp(3rem, 4.8vw, 5rem); }
.e-con.pn-about-focus { display: grid; grid-template-columns: .7fr .6fr .9fr; gap: 4vw; padding: var(--pn-pad-y) var(--pn-pad-x); background: var(--pn-s); }
.e-con.pn-about-focus-fig { height: 38rem; margin: 0; overflow: hidden; border-radius: 8rem 1.5rem 1.5rem 1.5rem; }
.pn-about-focus-fig .elementor-widget-image, .pn-about-focus-fig img { height: 100%; }
.pn-about-row .elementor-heading-title a { grid-template-columns: 2.5rem 1fr auto; gap: .7rem; padding: 1rem 0; border-top: 1px solid #c4bfb6; }
.pn-about-row .pn-row-title { font: 500 1.35rem/1.02 var(--e-global-typography-secondary-font-family), sans-serif; letter-spacing: -.055em; }
.pn-about-row .pn-row-desc { margin-top: .35rem; color: var(--pn-sl); font-size: .78rem; }
.pn-about-all { margin-top: 1.5rem; }
.elementor-widget-button.pn-about-all .elementor-button { padding-bottom: 0; border-bottom: 0; }
.e-con.pn-about-approach { padding: var(--pn-pad-y) var(--pn-pad-x); background: var(--pn-deep); color: #fff; }
.pn-about-approach > .e-con:first-child { margin-bottom: 3rem; }
.pn-about-approach { --e-global-typography-secondary-font-size: clamp(3rem, 4.4vw, 4.7rem); }
.pn-about-approach h2.elementor-heading-title { max-width: 22ch; }
.pn-about-approach .pn-eye .elementor-heading-title { color: var(--pn-glow); }
.pn-about-approach .e-con.pn-steps { max-width: none; }
.e-con.pn-about-gallery { display: grid; grid-template-columns: .65fr 1.35fr; gap: 7vw; padding: var(--pn-pad-y) var(--pn-pad-x); }
.e-con.pn-about-gallery-images { display: grid; grid-template-columns: 1.1fr .9fr; grid-template-rows: 16rem 16rem; gap: 1rem; }
.pn-about-gallery-images .e-con.pn-fig { border-radius: 1rem; }
.pn-about-gallery-images .e-con.pn-fig:first-child { grid-row: 1 / 3; border-radius: 8rem 1rem 1rem 1rem; }
.pn-about-gallery-images .e-con.pn-fig:last-child { border-radius: 1rem 1rem 5rem 1rem; }
.e-con.pn-about-areas { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; padding: 5rem clamp(1.25rem, 7vw, 7rem); background: var(--pn-s); }
.pn-about-areas > .e-con:last-child { align-self: center; }

/* Contact */
.e-con.pn-contact-intro { display: grid; grid-template-columns: 1fr 1fr; min-height: 42rem; overflow: hidden; border-radius: 0 0 5rem 0; background: var(--pn-deep); color: #fff; }
.e-con.pn-contact-intro-copy { display: flex; flex-direction: column; justify-content: center; padding: 10rem clamp(1.25rem, 7vw, 7rem) 5rem; }
.pn-contact-intro { --e-global-typography-primary-font-size: clamp(4rem, 7vw, 6.8rem); }
.pn-contact-intro h1.elementor-heading-title { max-width: 13ch; }
.pn-contact-intro .pn-eye .elementor-heading-title { color: var(--pn-glow); }
.pn-contact-intro .pn-about-lead p { font-size: 1.08rem; }
.e-con.pn-contact-hero-fig { min-height: 42rem; margin: 0; overflow: hidden; border-radius: 9rem 0 0 1.5rem; }
.pn-contact-hero-fig .elementor-widget-image, .pn-contact-hero-fig img { height: 100%; object-position: center; }
.e-con.pn-contact-composition {
	display: grid;
	grid-template-columns: 1.6fr .9fr;
	grid-template-areas: "form links" "form prep";
	gap: 1.5rem clamp(3rem, 6vw, 6rem);
	align-items: start;
	padding: 4rem clamp(1.25rem, 7vw, 7rem) var(--pn-pad-y);
	background: linear-gradient(145deg, var(--pn-w), var(--pn-s));
}
.e-con.pn-contact-form { grid-area: form; border: 1px solid #d4d0c8; }
.pn-contact-form { --e-global-typography-secondary-font-size: clamp(2.8rem, 4vw, 4.2rem); }
.pn-contact-form-text p { margin-bottom: 1rem; color: var(--pn-mist); }
.e-con.pn-contact-quick { grid-area: links; display: grid; }
.pn-contact-quick .pn-contact .elementor-heading-title a { padding: 1rem 0; border-color: #c4bfb6; }
.e-con.pn-contact-prep { grid-area: prep; }
.pn-contact-prep-head .elementor-heading-title { color: var(--pn-amber); font-size: .68rem; font-weight: 700; line-height: 1.65; text-transform: uppercase; }
.pn-plain-list ul { margin-top: .8rem; border-top: 1px solid #c4bfb6; }
.pn-plain-list li { padding: .65rem 0; border-bottom: 1px solid #c4bfb6; color: var(--pn-sl); font-size: .82rem; }
.pn-plain-list li::before { display: none; }
.e-con.pn-contact-next { display: grid; grid-template-columns: .55fr 1.45fr; gap: 7vw; padding: clamp(5rem, 7vw, 7rem) clamp(1.25rem, 7vw, 7rem); background: var(--pn-deep); color: #fff; }
.pn-contact-next { --e-global-typography-secondary-font-size: clamp(3rem, 4.8vw, 5rem); }
.pn-contact-next .pn-eye .elementor-heading-title { color: var(--pn-glow); }
.pn-contact-next .pn-steps-dark { --e-global-typography-pnh3-font-size: 1.4rem; }
.pn-contact-next .pn-steps-dark .e-con.pn-step, .pn-contact-next .pn-steps-dark .e-con.pn-step:first-child { padding: 1.5rem clamp(.7rem, 2vw, 2rem); }
.pn-contact-next .pn-steps-dark .pn-step h3.elementor-heading-title { margin: 1rem 0 .6rem; }
.pn-contact-next .pn-steps-dark .pn-step-text p { font-size: .82rem; }
.pn-contact-intro ~ .pn-faq-section h2.elementor-heading-title { max-width: 10ch; }

/* Projects */
.pn-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
/* body-prefixed to override the kit's global button style, which targets every <button>. */
body .pn-filters button.pn-filter { padding: .6rem 1rem; border: 1px solid #abb1af; border-radius: 999px; background: none; color: var(--pn-c); font: inherit; letter-spacing: normal; text-transform: none; cursor: pointer; transition: background .3s, color .3s, transform .3s; }
body .pn-filters button.pn-filter:hover { transform: translateY(-2px); background: none; color: var(--pn-c); }
body .pn-filters button.pn-filter.is-active, body .pn-filters button.pn-filter.is-active:hover { background: var(--pn-c); border-color: #abb1af; color: #fff; }
.e-con.pn-project-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem 1rem; }
.e-con.pn-card[hidden] { display: none; }
.pn-card img { aspect-ratio: 4 / 3; height: auto; transition: transform .7s var(--pn-ease); }
.pn-card:hover img, .pn-card a:focus-visible img { transform: scale(1.025); }
.pn-card .elementor-widget-image a { display: block; overflow: visible; }
.pn-card:nth-child(3n + 1) img { border-radius: 8rem 1rem 1rem 1rem; }
.pn-card:nth-child(3n + 2) img { border-radius: 1rem 1rem 8rem 1rem; }
.pn-card-cap .elementor-heading-title { margin-top: .25rem; font: 500 1.8rem/normal var(--e-global-typography-secondary-font-family), sans-serif; }

/* Call-to-action rows (added sections CTAs) */
.e-con.pn-cta-row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .7rem; margin-top: 2rem; }
.pn-faq-heading .e-con.pn-cta-row { margin-top: .4rem; }
.pn-process-copy .e-con.pn-cta-row { margin-top: 1.5rem; }
.pn-svc-process .e-con.pn-cta-row { width: 100%; max-width: 1440px; margin: 2.5rem auto 0; }
.pn-service-rows .e-con.pn-cta-row { margin-top: 2.2rem; }
@media (max-width: 600px) {
	.pn-cta-row .elementor-widget-button, .pn-cta-row .elementor-button { width: 100%; }
}

/* Privacy Policy */
.e-con.pn-legal-hero { place-items: end start; min-height: 0; padding: 11rem var(--pn-pad-x) 4.5rem; }
.pn-legal-hero .pn-pagehero-copy { width: 100%; max-width: 1440px; margin: 0 auto; }
.pn-legal-hero .pn-pagehero-text p { max-width: 44rem; }
.e-con.pn-legal { display: grid; grid-template-columns: .55fr 1.45fr; gap: 7vw; align-items: start; max-width: 1440px; margin: 0 auto; padding: 5rem var(--pn-pad-x) var(--pn-pad-y); }
.e-con.pn-legal-toc { position: sticky; top: 7.5rem; padding-top: .3rem; }
.pn-legal-toc-head .elementor-heading-title { color: var(--pn-amber); font-size: .68rem; font-weight: 700; letter-spacing: .12em; line-height: 1.65; text-transform: uppercase; }
.pn-legal-toc-list ul { margin-top: .8rem; border-top: 1px solid var(--pn-line); }
.pn-legal-toc-list li { border-bottom: 1px solid var(--pn-line); }
.pn-legal-toc-list a { display: block; padding: .6rem 0; color: var(--pn-sl); font-size: .86rem; transition: color .25s, padding .25s var(--pn-ease); }
.pn-legal-toc-list a:hover, .pn-legal-toc-list a:focus-visible { color: var(--pn-c); padding-left: .4rem; }
.e-con.pn-legal-body { max-width: 46rem; }
.pn-legal-intro p { color: var(--pn-c); font-size: 1.08rem; }
.pn-legal { --e-global-typography-secondary-font-size: clamp(1.7rem, 2.4vw, 2.3rem); }
.pn-legal-h { scroll-margin-top: 7rem; }
.pn-legal-h h2.elementor-heading-title { margin: 3rem 0 1rem; padding-top: 1.6rem; border-top: 1px solid var(--pn-line); }
.pn-legal-text p { margin: 0 0 1em; color: var(--pn-sl); }
.pn-legal-text p:last-child { margin-bottom: 0; }
.pn-legal-text strong { color: var(--pn-c); font-weight: 600; }
.pn-legal-text a, .pn-form-note a { color: var(--pn-amber); text-decoration: underline; text-underline-offset: 3px; }
.pn-legal-text ul { border-top: 1px solid var(--pn-line); }
.pn-legal-text li { position: relative; padding: .8rem .5rem .8rem 1.8rem; border-bottom: 1px solid var(--pn-line); color: var(--pn-sl); }
.pn-legal-text li::before { content: ""; position: absolute; left: .2rem; top: 1.55rem; width: .65rem; border-top: 2px solid var(--pn-o); }
.pn-legal-cta { margin-top: 3.5rem; }

/* Privacy note in inquiry forms */
.pn-form .elementor-field-type-html { margin-bottom: .6rem; }
.pn-form-note { margin: 0; color: #aeb8ba; font-size: .78rem; line-height: 1.5; }
.pn-form .pn-form-note a { color: var(--pn-glow); }

/* 404 */
.e-con.pn-404 { min-height: 70vh; }

/* Lightbox caption colors */
.elementor-lightbox .elementor-slideshow__title { color: #fff; font-family: var(--e-global-typography-secondary-font-family), sans-serif; }
.elementor-lightbox .elementor-slideshow__description { color: var(--pn-glow); text-transform: uppercase; font-size: .7rem; letter-spacing: .08em; }

@media (max-width: 950px) {
	.e-con.pn-pagehero.has-pic { grid-template-columns: 1fr; border-radius: 0 0 4rem 0; }
	.pn-pagehero.has-pic .e-con.pn-pagehero-copy { padding-top: 10rem; }
	.e-con.pn-pagehero-fig { position: relative; width: 100%; height: 31rem; }
	.e-con.pn-pagehero-fig::after { background: linear-gradient(0deg, var(--pn-deep), transparent 38%); }
	.pn-pagehero-fig img { filter: none; }
	.pn-detail.has-image .e-con.pn-detail-inner { column-gap: 3rem; }
	.pn-detail { --e-global-typography-secondary-font-size: clamp(2.7rem, 5vw, 4rem); }
	.e-con.pn-detail-image { height: 29rem; }
	.pn-detail-middle-two:not(.has-image) .e-con.pn-detail-inner, .e-con.pn-faq-section, .e-con.pn-inquiry, .e-con.pn-inquiry-plain { grid-template-columns: 1fr; }
	.pn-detail-middle-two:not(.has-image) .e-con.pn-detail-copy { max-width: 50rem; }
	.e-con.pn-inquiry-intro { max-width: 48rem; }
	.e-con.pn-contacts { grid-template-columns: 1fr 1fr; }
	.e-con.pn-svc-planning { grid-template-columns: 1fr; }
	.e-con.pn-svc-planning-fig { display: none; }
	.e-con.pn-svc-process-heading { grid-template-columns: 1fr; }
	.pn-area-feature .e-con.pn-detail-image { height: 29rem; }
	.e-con.pn-city-services, .e-con.pn-city-prep, .e-con.pn-about-focus, .e-con.pn-about-gallery, .e-con.pn-about-areas, .e-con.pn-contact-next { grid-template-columns: 1fr; }
	.e-con.pn-city-planning, .e-con.pn-city-planning.has-gallery { grid-template-columns: 1fr; }
	.e-con.pn-city-planning-fig { min-height: 28rem; height: 28rem; }
	.pn-city-planning.tone-dark .e-con.pn-city-planning-fig { border-radius: 4rem 0 0 0; }
	.e-con.pn-city-gallery { grid-template-rows: repeat(2, 18rem); }
	.e-con.pn-about-hero { grid-template-columns: 1fr; padding-top: 9rem; }
	.e-con.pn-about-hero-images { min-height: 34rem; }
	.e-con.pn-about-history { grid-template-columns: .4fr .8fr 1.2fr; }
	.e-con.pn-about-focus-fig { height: 30rem; }
	.pn-about-approach > .e-con:first-child { margin-bottom: 2.5rem; }
	.e-con.pn-contact-intro { grid-template-columns: 1fr; min-height: 0; }
	.e-con.pn-contact-intro-copy { padding: 9rem 6vw 4rem; }
	.e-con.pn-contact-hero-fig { height: 28rem; min-height: 0; border-radius: 5rem 0 0 0; }
	.e-con.pn-steps-dark { margin-top: 1rem; }
	.e-con.pn-legal { grid-template-columns: 1fr; gap: 2.5rem; }
	.e-con.pn-legal-toc { position: static; }
}
@media (max-width: 600px) {
	.e-con.pn-pagehero { padding: 5rem 1.25rem; }
	.e-con.pn-pagehero.has-pic { padding: 0; border-radius: 0 0 3rem 0; }
	.pn-pagehero.has-pic .e-con.pn-pagehero-copy { padding: 9rem 1.25rem 5rem; }
	.e-con.pn-pagehero-fig { height: 26rem; }
	.pn-figcap-pill { right: 1rem; bottom: 1rem; }
	.e-con.pn-detail, .e-con.pn-gallery, .e-con.pn-faq-section, .e-con.pn-inquiry { padding: 3.75rem 1.25rem; }
	.pn-detail.has-image .e-con.pn-detail-inner { display: flex; flex-direction: column; }
	.e-con.pn-detail-heading { order: 1; }
	.pn-detail { --e-global-typography-secondary-font-size: clamp(2.65rem, 11vw, 3.25rem); }
	.pn-detail .e-con.pn-detail-image { order: 2; width: 100%; height: 22rem; margin: 1rem 0 2.2rem; border-radius: 1rem 4.5rem 1rem 1rem !important; }
	.e-con.pn-detail-copy { order: 3; }
	.pn-detail:hover .pn-detail-image img { transform: none; }
	.pn-detail-scope .e-con.pn-detail-heading, .e-con.pn-gallery-heading, .pn-detail-middle-one:not(.has-image) .e-con.pn-detail-heading { display: block; }
	.pn-detail-scope .pn-detail-heading .pn-eye { padding: 0; }
	.pn-detail-scope .pn-detail-copy > .pn-muted p { margin: 0 0 2rem; }
	.pn-detail-scope .e-con.pn-items, .pn-detail-scope .e-con.pn-items-2, .pn-detail-middle-two:not(.has-image) .e-con.pn-items { grid-template-columns: 1fr; }
	.pn-items .e-con.pn-step, .pn-items .e-con.pn-step:first-child { padding: 1.4rem 0; border-right: 0; border-bottom: 1px solid #c8c4bc; }
	.pn-detail-middle-one:not(.has-image) .pn-items .e-con.pn-step { grid-template-columns: 2.5rem 1fr; }
	.pn-detail-middle-one:not(.has-image) .pn-items :is(.elementor-widget-heading:nth-child(2), .pn-step-text) { grid-column: 2; }
	.pn-detail-middle-one:not(.has-image) .pn-items .pn-step-num { grid-row: 1 / 3; }
	.pn-detail-middle-two:not(.has-image) .e-con.pn-detail-inner { display: block; }
	.e-con.pn-gallery-grid { grid-template-columns: 1fr; grid-template-rows: none; }
	.pn-gallery-grid .e-con.pn-fig, .pn-gallery-grid .e-con.pn-fig:first-child, .pn-gallery-grid .e-con.pn-fig:last-child { grid-row: auto; height: 20rem; border-radius: 1rem 4.5rem 1rem 1rem; }
	.pn-checklist ul, .pn-prep-list ul { grid-template-columns: 1fr; }
	.e-con.pn-contacts { grid-template-columns: 1fr; }
	.pn-svc-editorial .pn-detail-image img { border-radius: 1rem 4.5rem 1rem 1rem !important; }
	.pn-svc-editorial .e-con.pn-detail-image { box-shadow: none; }
	.pn-svc-detail-img { display: none; }
	.e-con.pn-svc-planning { min-height: 0; }
	.e-con.pn-svc-planning-copy { padding: 4rem 1.25rem; }
	.pn-svc-planning { --e-global-typography-secondary-font-size: 2.9rem; }
	.e-con.pn-svc-process { padding: 4rem 1.25rem; }
	.e-con.pn-svc-process-heading { margin-bottom: 2rem; }
	.e-con.pn-steps { grid-template-columns: 1fr; }
	.pn-steps .e-con.pn-step, .pn-steps .e-con.pn-step:first-child { min-height: 0; padding: 1.5rem 0; border-right: 0; border-bottom: 1px solid var(--pn-line); }
	.pn-steps-dark .e-con.pn-step, .pn-steps-dark .e-con.pn-step:first-child { padding: 1.2rem 0; border-bottom-color: rgba(255, 255, 255, .18); }
	.e-con.pn-corridor { grid-template-columns: 1fr; }
	.pn-corridor .elementor-heading-title { border-right: 0; border-bottom: 1px solid rgba(24, 37, 42, .25); }
	.pn-area-feature .pn-figcap-pill, .pn-city-intro .pn-figcap-pill { left: .7rem; bottom: .7rem; max-width: 90%; }
	.e-con.pn-other-location { grid-template-columns: 1fr; padding: 3.75rem 1.25rem; }
	.e-con.pn-city-intro, .e-con.pn-city-services, .e-con.pn-city-prep { padding: 3.75rem 1.25rem; }
	.pn-city-planning .e-con.pn-city-planning-copy { padding: 3.75rem 1.25rem; }
	.e-con.pn-city-intro { grid-template-columns: 1fr; }
	.pn-city-intro .e-con.pn-fig { order: 2; height: 22rem; border-radius: 1rem 4.5rem 1rem 1rem; }
	.e-con.pn-city-services { gap: 2rem; }
	.e-con.pn-city-planning-fig { height: 22rem; min-height: 22rem; }
	.e-con.pn-city-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2, 15rem); padding: .8rem; }
	.e-con.pn-prep-cols { grid-template-columns: 1fr; }
	.pn-prep-cols .e-con.pn-step, .pn-prep-cols .e-con.pn-step:first-child { padding: 1.2rem 0; border-right: 0; border-bottom: 1px solid var(--pn-line); }
	.e-con.pn-about-hero { padding: 8rem 1.25rem 4rem; }
	.pn-about-hero { --e-global-typography-primary-font-size: clamp(3.1rem, 13vw, 4rem); }
	.e-con.pn-about-hero-images { min-height: 25rem; margin-top: 2rem; }
	.e-con.pn-about-hero-fig { inset: 0 0 3%; border-radius: 5rem 1rem 1rem; }
	.pn-about-hero-logo { width: 11rem; }
	.e-con.pn-about-history { grid-template-columns: 1fr; padding: 5rem 1.25rem; }
	.pn-about-year .elementor-heading-title { writing-mode: initial; transform: none; font-size: 7rem; }
	.pn-about-history .e-con.pn-fig { height: 24rem; }
	.e-con.pn-about-focus, .e-con.pn-about-approach, .e-con.pn-about-gallery, .e-con.pn-about-areas { padding: 4rem 1.25rem; }
	.e-con.pn-about-focus-fig { height: 24rem; }
	.pn-about-approach { --e-global-typography-secondary-font-size: clamp(2.7rem, 11vw, 3.4rem); }
	.e-con.pn-about-gallery-images { grid-template-columns: 1fr; grid-template-rows: none; }
	.pn-about-gallery-images .e-con.pn-fig, .pn-about-gallery-images .e-con.pn-fig:first-child { grid-row: auto; height: 20rem; border-radius: 1rem 4rem 1rem 1rem; }
	.pn-about-gallery-images .e-con.pn-fig:last-child { display: none; }
	.e-con.pn-contact-intro { border-radius: 0 0 3rem 0; }
	.e-con.pn-contact-intro-copy { padding: 8rem 1.25rem 3rem; }
	.pn-contact-intro { --e-global-typography-primary-font-size: clamp(3rem, 13vw, 4rem); }
	.e-con.pn-contact-hero-fig { height: 20rem; }
	.e-con.pn-contact-composition { grid-template-columns: 1fr; grid-template-areas: "links" "form" "prep"; padding: 2.5rem 1.25rem 4rem; }
	.e-con.pn-contact-next { padding: 4rem 1.25rem; }
	.e-con.pn-project-grid { grid-template-columns: 1fr; }
	.e-con.pn-legal-hero { padding: 9rem 1.25rem 3rem; }
	.e-con.pn-legal { padding: 2.5rem 1.25rem 4rem; }
	.pn-card:nth-child(n) img { border-radius: 1rem 4rem 1rem 1rem; }
}

/* Eyebrow colors/sizes per section, matching the computed values of the approved design
   (section paragraph colors in the prototype also apply to its eyebrow labels). */
:is(.pn-svc-planning, .pn-other-location, .pn-about-approach, .pn-contact-next, .pn-city-planning.tone-dark) .pn-eye .elementor-heading-title { color: var(--pn-mist); }
:is(.pn-inquiry, .pn-city-intro, .pn-city-planning:not(.tone-dark), .pn-city-prep, .pn-about-history, .pn-about-focus, .pn-about-gallery, .pn-about-areas) .pn-eye .elementor-heading-title { color: var(--pn-sl); }
:is(.pn-about-hero, .pn-contact-intro) .pn-eye .elementor-heading-title { color: #c2ccce; }
.pn-about-approach .pn-eye { --e-global-typography-accent-font-size: .84rem; }
.pn-contact-intro .pn-eye { --e-global-typography-accent-font-size: 1.08rem; }
.pn-contact-next .pn-eye { --e-global-typography-accent-font-size: .82rem; }

/* touch-field-zoom */
@media (pointer: coarse){.elementor-form .elementor-field-group .elementor-field,.elementor-form .elementor-field-group select,.elementor-form .elementor-field-group textarea{font-size:16px!important}}

/* contact-static */
.pn-contact-static .elementor-heading-title { display: flex; flex-direction: column; padding: 1rem 0; border-top: 1px solid #c4bfb6; }
/* hero-video-first */
@media (prefers-reduced-motion: no-preference) {
	.pn-hero .pn-hero-photo { opacity: 0; transition: opacity .6s var(--pn-ease); }
	.pn-hero .pn-hero-video { opacity: 1; transition: opacity .6s var(--pn-ease); }
	.pn-hero.pn-photo-on .pn-hero-photo { opacity: 1; }
	.pn-hero.pn-photo-on .pn-hero-video { opacity: 0; }
}

/* hero-posters */
.pn-hero .pn-hero-video .elementor-wrapper video { background-color: transparent; opacity: 0; }
.pn-hero .pn-hero-video.is-playing .elementor-wrapper video { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
	.pn-hero .pn-hero-video { background: url(https://pennaconstructioninc.com/wp-content/uploads/2026/10/penna-hero-logo-card.webp) 58% 50% / cover no-repeat; }
}
@media (max-width: 600px) {
	.pn-hero .pn-hero-video { background-image: url(https://pennaconstructioninc.com/wp-content/uploads/2026/10/penna-hero-logo-card-mobile.webp); background-position: center; }
	.pn-hero .pn-hero-video video { object-position: center; }
}
@media (prefers-reduced-motion: reduce) {
	.pn-hero .pn-hero-video { background: none; }
}
/* project-pages:start */
/* Project pages ---------------------------------------------------------------------- */
:is(.pn-project-overview, .pn-project-gallery) { --e-global-typography-secondary-font-size: clamp(3rem, 4.8vw, 5rem); }

/* Scope of work + facts */
.e-con.pn-project-overview { display: grid; grid-template-columns: .7fr 1.3fr; gap: 7vw; padding: var(--pn-pad-y) var(--pn-pad-x) 4rem; background: var(--pn-w); }
.pn-project-overview-heading h2.elementor-heading-title { max-width: 9ch; }
.e-con.pn-project-overview-copy { gap: 2.5rem; max-width: 52rem; }
.pn-project-overview .pn-points ul { margin-top: 0; }
.pn-project-overview .pn-points li { padding: 1rem .5rem 1rem 2rem; font-size: 1rem; line-height: 1.6; }
.pn-project-overview .pn-points li::before { top: 1.75rem; }
.pn-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 0 2rem; margin: 0; }
.pn-facts div { padding: 1.1rem 0; border-top: 1px solid var(--pn-line); }
.pn-facts dt { margin-bottom: .4rem; color: var(--pn-amber); font-size: .63rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.pn-facts dd { margin: 0; color: var(--pn-c); font-size: .95rem; line-height: 1.5; }

/* Photo grid: 6-column track; first two photos share the top row, the rest go three per row and the
   last row always fills (a single leftover spans the row; two leftovers split it). */
.e-con.pn-project-gallery { padding: 4rem var(--pn-pad-x) var(--pn-pad-y); background: var(--pn-w); }
.e-con.pn-project-gallery-heading { display: block; width: 100%; max-width: 1440px; margin: 0 auto 3rem; }
.pn-project-gallery-heading h2.elementor-heading-title { max-width: 14ch; }
.pn-project-gallery-heading .pn-muted p { max-width: 40rem; margin-top: 1.2rem; }
.e-con.pn-project-gallery-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: 26rem; grid-auto-rows: 18rem; gap: 1rem; width: 100%; max-width: 1440px; margin: auto; }
.pn-project-gallery-grid .e-con.pn-fig { grid-column: span 2; overflow: hidden; border-radius: 1rem; }
.pn-project-gallery-grid .e-con.pn-fig:nth-child(-n + 2) { grid-column: span 3; }
.pn-project-gallery-grid .e-con.pn-fig:first-child { border-radius: 8rem 1rem 1rem 1rem; }
.pn-project-gallery-grid .e-con.pn-fig:nth-child(3n):last-child { grid-column: span 6; }
.pn-project-gallery-grid .e-con.pn-fig:nth-child(3n):nth-last-child(2),
.pn-project-gallery-grid .e-con.pn-fig:nth-child(3n):nth-last-child(2) + .pn-fig { grid-column: span 3; }
.pn-project-gallery-grid .e-con.pn-fig:last-child { border-radius: 1rem 1rem 5rem 1rem; }
.pn-project-gallery-grid :is(.elementor-widget-image, .elementor-widget-image a, img) { display: block; width: 100%; height: 100%; }
.pn-project-gallery-grid img { object-fit: cover; transition: transform .8s var(--pn-ease); }
.pn-project-gallery-grid .pn-fig:hover img { transform: scale(1.025); }

/* Related links section */
.pn-project-related h2.elementor-heading-title { max-width: 11ch; }

/* Projects index: first card full width, then two per row */
.pn-project-index .pn-project-card:first-child { grid-column: 1 / -1; }
.pn-project-index .pn-project-card:first-child img { aspect-ratio: 21 / 9; }
.pn-project-card .pn-card-cap a { color: inherit; }
.pn-project-card .pn-card-cap small { display: block; margin-bottom: .2rem; }
.pn-project-card .pn-card-text p { max-width: 36rem; margin: .6rem 0 0; color: var(--pn-sl); }
.pn-project-card .elementor-widget-button.pn-link-caps { margin-top: .9rem; }

@media (max-width: 950px) {
	.e-con.pn-project-overview { grid-template-columns: 1fr; gap: 2.5rem; }
	.pn-project-overview-heading h2.elementor-heading-title { max-width: none; }
	.e-con.pn-project-gallery-grid { grid-template-rows: 20rem; grid-auto-rows: 14rem; }
}
@media (max-width: 600px) {
	:is(.pn-project-overview, .pn-project-gallery) { --e-global-typography-secondary-font-size: clamp(2.65rem, 11vw, 3.25rem); }
	.e-con.pn-project-overview { padding: 3.75rem 1.25rem 2.5rem; }
	.e-con.pn-project-gallery { padding: 2.5rem 1.25rem 3.75rem; }
	.e-con.pn-project-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 15rem; grid-auto-rows: 11rem; gap: .6rem; }
	.pn-project-gallery-grid .e-con.pn-fig, .pn-project-gallery-grid .e-con.pn-fig:nth-child(n) { grid-column: span 1; }
	.pn-project-gallery-grid .e-con.pn-fig:first-child, .pn-project-gallery-grid .e-con.pn-fig:nth-child(2n + 1):last-child { grid-column: span 2; }
	.pn-project-gallery-grid .e-con.pn-fig:first-child { border-radius: 4rem 1rem 1rem 1rem; }
	.pn-project-gallery-grid .e-con.pn-fig:last-child { border-radius: 1rem 1rem 3rem 1rem; }
	.pn-project-index .pn-project-card:first-child img { aspect-ratio: 4 / 3; }
}

/* project-pages:end *//* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('https://pennaconstructioninc.com/wp-content/uploads/penna-fonts/manrope-latin-var.woff2') format('woff2');
}
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('https://pennaconstructioninc.com/wp-content/uploads/penna-fonts/manrope-latin-var.woff2') format('woff2');
}
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('https://pennaconstructioninc.com/wp-content/uploads/penna-fonts/manrope-latin-var.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('https://pennaconstructioninc.com/wp-content/uploads/penna-fonts/inter-latin-var.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('https://pennaconstructioninc.com/wp-content/uploads/penna-fonts/inter-latin-var.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('https://pennaconstructioninc.com/wp-content/uploads/penna-fonts/inter-latin-var.woff2') format('woff2');
}
/* End Custom Fonts CSS */