:root {
  --pd-navy-950: #061525;
  --pd-navy-900: #0a2036;
  --pd-navy-800: #102f4e;
  --pd-navy-700: #174362;
  --pd-blue: #1769e0;
  --pd-blue-dark: #1058bd;
  --pd-blue-soft: #eaf2ff;
  --pd-teal: #138a7e;
  --pd-teal-soft: #e9f7f4;
  --pd-gold: #c89432;
  --pd-gold-soft: #fff7e6;
  --pd-ink: #17243a;
  --pd-muted: #5f6f82;
  --pd-line: #dfe6ef;
  --pd-canvas: #f6f8fc;
  --pd-white: #fff;
  --pd-radius-sm: 10px;
  --pd-radius: 18px;
  --pd-radius-lg: 28px;
  --pd-shadow-sm: 0 8px 25px rgba(10,32,54,.07);
  --pd-shadow: 0 18px 55px rgba(10,32,54,.11);
  --pd-shell: 1240px;
  --pd-reading: 760px;
  --pd-transition: 220ms ease;
}

html { scroll-behavior: smooth; }
body.pd-site { background: var(--pd-canvas); color: var(--pd-ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 17px; line-height: 1.72; text-rendering: optimizeLegibility; }
body, button, input, select, textarea { font-family: inherit; }
::selection { background: var(--pd-gold); color: var(--pd-navy-950); }
a { color: var(--pd-blue); text-underline-offset: .18em; transition: color var(--pd-transition), background var(--pd-transition), transform var(--pd-transition), box-shadow var(--pd-transition); }
a:hover { color: var(--pd-blue-dark); }
img { border-radius: var(--pd-radius-sm); }
.pd-shell { box-sizing: border-box; margin-inline: auto; max-width: var(--pd-shell); padding-inline: clamp(20px, 4vw, 48px); width: 100%; }
.screen-reader-text:focus { background: var(--pd-white); border-radius: 6px; box-shadow: var(--pd-shadow); color: var(--pd-navy-900); padding: 12px 18px; }

/* Header */
.pd-header-marker { display: block; height: 1px; position: absolute; top: 0; }
#masthead.site-header { background: rgba(255,255,255,.94); border-bottom: 1px solid rgba(223,230,239,.85); position: sticky; top: 0; z-index: 100; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
#masthead.is-scrolled { box-shadow: 0 10px 30px rgba(10,32,54,.08); }
.site-header .inside-header { align-items: center; display: flex; flex-wrap: nowrap; gap: 28px; justify-content: space-between; max-width: var(--pd-shell); padding: 15px clamp(20px, 3vw, 38px); }
.site-logo img { max-height: 58px; width: auto; }
.site-branding .main-title a { color: var(--pd-navy-900); font-size: clamp(1.35rem, 2vw, 1.65rem); font-weight: 800; letter-spacing: -.04em; text-decoration: none; }
.site-branding .site-description { color: var(--pd-muted); font-size: .76rem; font-weight: 600; letter-spacing: .04em; margin-top: 2px; }
.main-navigation { background: transparent; margin-left: auto; }
.main-navigation .inside-navigation { justify-content: flex-end; }
.main-navigation .main-nav > ul { align-items: center; display: flex; flex-wrap: wrap; justify-content: flex-end; row-gap: 7px; }
.main-navigation .main-nav ul li a { color: var(--pd-ink); font-size: .91rem; font-weight: 650; letter-spacing: -.01em; padding-inline: 15px; }
.main-navigation .main-nav ul li:hover > a,.main-navigation .main-nav ul li:focus > a,.main-navigation .main-nav ul li[class*="current-menu-"] > a { background: transparent; color: var(--pd-blue); }
.main-navigation .main-nav ul li[class*="current-menu-"] > a::after { background: var(--pd-blue); border-radius: 3px; bottom: 10px; content: ""; height: 2px; left: 15px; position: absolute; right: 15px; }
.main-navigation .main-nav ul li.pd-menu-cta > a { background: var(--pd-blue); border-radius: 999px; color: var(--pd-white); line-height: 42px; margin-left: 8px; padding-inline: 21px; }
.main-navigation .main-nav ul li.pd-menu-cta > a:hover { background: var(--pd-blue-dark); box-shadow: 0 9px 22px rgba(23,105,224,.25); color: var(--pd-white); transform: translateY(-1px); }
.menu-toggle { border-radius: 10px; color: var(--pd-navy-900); }

/* Global content */
.site-content { padding: clamp(34px, 6vw, 76px) clamp(20px, 4vw, 48px); }
.grid-container { max-width: var(--pd-shell); }
.separate-containers .inside-article,.separate-containers .comments-area,.separate-containers .page-header,.one-container .site-content { border: 1px solid rgba(223,230,239,.8); border-radius: var(--pd-radius-lg); box-shadow: var(--pd-shadow-sm); }
.separate-containers .inside-article { padding: clamp(28px, 5vw, 64px); }
.pd-front-page .site-content { max-width: none; padding: 0; }
.pd-front-page .inside-article { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; }
.pd-front-page .entry-header { display: none; }
.no-sidebar .content-area { width: 100%; }

/* Graceful presentation for content inherited from the former Resume Kit theme. */
.pd-front-page:not(.pd-layout-built) .site-main { margin: 0; padding: clamp(32px,6vw,78px) clamp(20px,4vw,48px); }
.pd-front-page:not(.pd-layout-built) .entry-content { background: var(--pd-white); border: 1px solid var(--pd-line); border-radius: var(--pd-radius-lg); box-shadow: var(--pd-shadow); margin: 0 auto; max-width: 1060px; padding: clamp(30px,6vw,72px); position: relative; }
.pd-front-page:not(.pd-layout-built) .entry-content::before { background: linear-gradient(90deg,var(--pd-blue),var(--pd-teal),var(--pd-gold)); border-radius: var(--pd-radius-lg) var(--pd-radius-lg) 0 0; content: ""; height: 7px; inset: 0 0 auto; position: absolute; }
.pd-front-page:not(.pd-layout-built) .entry-content > h2:first-child { font-size: clamp(2.1rem,5vw,4rem); letter-spacing: -.055em; margin: 0 0 25px; max-width: 780px; }
.pd-front-page:not(.pd-layout-built) .entry-content h4 { border-left: 4px solid var(--pd-teal); color: var(--pd-navy-900) !important; font-size: clamp(1.25rem,2.5vw,1.65rem); margin: 38px 0 18px; padding-left: 15px; }
.pd-front-page:not(.pd-layout-built) .entry-content p,.pd-front-page:not(.pd-layout-built) .entry-content li,.pd-front-page:not(.pd-layout-built) .entry-content span { color: var(--pd-ink) !important; }
.pd-front-page:not(.pd-layout-built) .entry-content strong { color: var(--pd-navy-800) !important; }
.pd-front-page:not(.pd-layout-built) .entry-content ul { background: var(--pd-blue-soft); border-radius: var(--pd-radius-sm); list-style: none; margin: 28px 0; padding: 18px 22px; }
.pd-front-page:not(.pd-layout-built) .entry-content li { margin: 6px 0; }
.pd-front-page:not(.pd-layout-built) .entry-content a { color: var(--pd-blue) !important; font-weight: 700; }
.entry-title { color: var(--pd-navy-900); font-size: clamp(2.1rem, 5vw, 4.2rem); font-weight: 800; letter-spacing: -.055em; line-height: 1.05; }
.entry-title a { color: inherit; text-decoration: none; }
.entry-title a:hover { color: var(--pd-blue); }
.entry-meta { color: var(--pd-muted); font-size: .85rem; font-weight: 600; }
.entry-content h2,.entry-content h3,.entry-content h4 { color: var(--pd-navy-900); font-weight: 780; letter-spacing: -.035em; line-height: 1.18; scroll-margin-top: 110px; }
.entry-content h2 { font-size: clamp(1.7rem, 3.3vw, 2.65rem); margin-top: 1.7em; }
.entry-content h3 { font-size: clamp(1.3rem, 2.4vw, 1.75rem); }
.entry-content p,.entry-content li { color: var(--pd-ink); }
.entry-content blockquote { background: linear-gradient(135deg,var(--pd-blue-soft),var(--pd-teal-soft)); border: 0; border-left: 5px solid var(--pd-teal); border-radius: 0 var(--pd-radius) var(--pd-radius) 0; color: var(--pd-navy-800); font-size: 1.16rem; margin: 2em 0; padding: 24px 28px; }
.entry-content code { background: #eef2f7; border-radius: 5px; color: #a23a53; padding: .14em .35em; }
.entry-content pre { background: var(--pd-navy-950); border-radius: var(--pd-radius); box-shadow: var(--pd-shadow-sm); color: #e6edf5; padding: 24px; }
.entry-content table { background: var(--pd-white); border-collapse: separate; border-radius: var(--pd-radius); border-spacing: 0; box-shadow: var(--pd-shadow-sm); overflow: hidden; }
.entry-content th { background: var(--pd-navy-900); color: var(--pd-white); }
.entry-content th,.entry-content td { border-color: var(--pd-line); padding: 13px 16px; }

/* Reusable hero and section classes */
.pd-hero { background: radial-gradient(circle at 82% 15%,rgba(19,138,126,.23),transparent 25%),radial-gradient(circle at 68% 78%,rgba(200,148,50,.16),transparent 22%),linear-gradient(135deg,var(--pd-navy-950),var(--pd-navy-800)); color: var(--pd-white); overflow: hidden; padding: clamp(72px, 10vw, 132px) 0; position: relative; }
.pd-hero::after { border: 1px solid rgba(255,255,255,.08); border-radius: 50%; content: ""; height: 540px; position: absolute; right: -180px; top: -220px; width: 540px; }
.pd-hero__grid { align-items: center; display: grid; gap: clamp(36px, 6vw, 82px); grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr); }
.pd-eyebrow { color: var(--pd-teal); font-size: .78rem; font-weight: 800; letter-spacing: .14em; margin: 0 0 13px; text-transform: uppercase; }
.pd-hero .pd-eyebrow { color: #7ce1d2; }
.pd-hero h1 { color: var(--pd-white); font-size: clamp(2.7rem, 6.8vw, 5.7rem); font-weight: 850; letter-spacing: -.065em; line-height: .98; margin: 0 0 24px; max-width: 900px; }
.pd-hero h1 em { color: #7ce1d2; font-style: normal; }
.pd-hero__lead { color: #cedbea; font-size: clamp(1.08rem, 2vw, 1.32rem); line-height: 1.65; max-width: 730px; }
.pd-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 13px; margin-top: 31px; }
.pd-button,.entry-content .wp-block-button__link,.form-submit .submit { align-items: center; background: var(--pd-blue); border: 1px solid transparent; border-radius: 999px; color: var(--pd-white); display: inline-flex; font-size: .92rem; font-weight: 750; gap: 10px; justify-content: center; line-height: 1.2; padding: 15px 23px; text-decoration: none; }
.pd-button:hover,.entry-content .wp-block-button__link:hover,.form-submit .submit:hover { background: var(--pd-blue-dark); box-shadow: 0 11px 25px rgba(23,105,224,.24); color: var(--pd-white); transform: translateY(-2px); }
.pd-button--outline { background: transparent; border-color: rgba(255,255,255,.32); }
.pd-button--outline:hover { background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.7); }
.pd-button--light { background: var(--pd-white); color: var(--pd-navy-900); }
.pd-button--light:hover { background: var(--pd-gold-soft); color: var(--pd-navy-950); }
.pd-section { padding: clamp(64px, 8vw, 110px) 0; }
.pd-section--white { background: var(--pd-white); }
.pd-section--soft { background: linear-gradient(180deg,#f8fafc,var(--pd-blue-soft)); }
.pd-section__head { margin-bottom: clamp(30px, 5vw, 54px); max-width: 760px; }
.pd-section__head h2 { margin: 0 0 16px; }
.pd-section__head p { color: var(--pd-muted); font-size: 1.06rem; }

/* Cards, grids, stats and project pieces */
.pd-grid { display: grid; gap: 24px; }
.pd-grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.pd-grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.pd-card { background: var(--pd-white); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); box-shadow: 0 4px 18px rgba(10,32,54,.04); height: 100%; overflow: hidden; padding: clamp(23px, 3vw, 32px); position: relative; transition: border var(--pd-transition),transform var(--pd-transition),box-shadow var(--pd-transition); }
.pd-card:hover { border-color: #bdcce0; box-shadow: var(--pd-shadow); transform: translateY(-5px); }
.pd-card__icon { align-items: center; background: var(--pd-blue-soft); border-radius: 13px; color: var(--pd-blue); display: inline-flex; font-size: 1.3rem; height: 48px; justify-content: center; margin-bottom: 18px; width: 48px; }
.pd-card h3 { font-size: 1.3rem; margin: 0 0 10px; }
.pd-card p { color: var(--pd-muted); margin-bottom: 0; }
.pd-card a.pd-card__link::after { content: ""; inset: 0; position: absolute; }
.pd-card__link { font-weight: 750; text-decoration: none; }
.pd-project-card { padding: 0; }
.pd-project-card__image { aspect-ratio: 16/10; background: var(--pd-blue-soft); overflow: hidden; }
.pd-project-card__image img { border-radius: 0; height: 100%; object-fit: cover; transition: transform 450ms ease; width: 100%; }
.pd-project-card:hover .pd-project-card__image img { transform: scale(1.035); }
.pd-project-card__body { padding: clamp(23px,3vw,31px); }
.pd-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0; }
.pd-tag { background: var(--pd-teal-soft); border-radius: 999px; color: #08655c; font-size: .73rem; font-weight: 750; padding: 6px 10px; }
.pd-stats { background: var(--pd-white); border: 1px solid var(--pd-line); border-radius: var(--pd-radius); display: grid; grid-template-columns: repeat(4,1fr); overflow: hidden; }
.pd-stat { padding: 25px; text-align: center; }
.pd-stat + .pd-stat { border-left: 1px solid var(--pd-line); }
.pd-stat strong { color: var(--pd-navy-900); display: block; font-size: clamp(1.65rem,3vw,2.5rem); letter-spacing: -.04em; line-height: 1.1; }
.pd-stat span { color: var(--pd-muted); font-size: .8rem; font-weight: 650; }

/* Archives and posts */
.blog .site-main,.archive .site-main,.search .site-main { display: grid; gap: 28px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.blog .site-main > *,.archive .site-main > *,.search .site-main > * { margin-bottom: 0; }
.blog .page-header,.archive .page-header,.search .page-header,.blog .paging-navigation,.archive .paging-navigation,.search .paging-navigation { grid-column: 1/-1; }
.blog article .inside-article,.archive article .inside-article,.search article .inside-article { height: 100%; padding: clamp(24px,3vw,38px); }
.blog article .entry-title,.archive article .entry-title,.search article .entry-title { font-size: clamp(1.45rem,2.5vw,2rem); line-height: 1.2; }
.post-image img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.read-more { font-weight: 750; text-decoration: none; }
.pd-reading-page .site-main { max-width: 900px; }
.pd-reading-page .entry-content { font-size: 1.06rem; }
.cat-links,.tags-links { font-weight: 650; }
.navigation.post-navigation { border-top: 1px solid var(--pd-line); margin-top: 42px; padding-top: 25px; }

/* Forms */
input[type="text"],input[type="email"],input[type="url"],input[type="tel"],input[type="search"],select,textarea { background: var(--pd-white); border: 1px solid #ccd6e3; border-radius: 10px; box-sizing: border-box; color: var(--pd-ink); padding: 13px 15px; width: 100%; }
input:focus,select:focus,textarea:focus { border-color: var(--pd-blue); box-shadow: 0 0 0 4px rgba(23,105,224,.12); outline: 0; }
label { color: var(--pd-navy-900); font-size: .9rem; font-weight: 700; }

/* Footer */
.pd-contact-band { background: linear-gradient(125deg,var(--pd-blue),#1458bd 55%,var(--pd-teal)); color: var(--pd-white); }
.pd-contact-band__inner { align-items: center; display: flex; gap: 35px; justify-content: space-between; padding-block: clamp(42px,6vw,70px); }
.pd-contact-band .pd-eyebrow { color: #c8fff5; }
.pd-contact-band h2 { color: var(--pd-white); font-size: clamp(1.65rem,3.5vw,2.75rem); letter-spacing: -.04em; line-height: 1.12; margin: 0; max-width: 750px; }
.site-footer { background: var(--pd-navy-950); color: #b9c8d8; }
.footer-widgets { background: transparent; padding-block: clamp(44px,6vw,72px); }
.footer-widgets .widget-title { color: var(--pd-white); font-size: .95rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.footer-widgets a { color: #d9e5f0; text-decoration: none; }
.footer-widgets a:hover { color: #7ce1d2; }
.site-info { background: rgba(0,0,0,.16); color: #aebdcd; font-size: .78rem; padding: 19px 20px; }
.inside-site-info { align-items: center; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; max-width: var(--pd-shell); }
.pd-footer-note { color: #8093a7; }

/* Utilities */
.pd-surface { background: var(--pd-white); border: 1px solid var(--pd-line); border-radius: var(--pd-radius-lg); box-shadow: var(--pd-shadow-sm); padding: clamp(25px,4vw,46px); }
.pd-muted { color: var(--pd-muted); }
.pd-text-center { text-align: center; }
.pd-max-reading { margin-inline: auto; max-width: var(--pd-reading); }
.pd-accent { color: var(--pd-teal); }
.pd-divider { background: linear-gradient(90deg,var(--pd-blue),var(--pd-teal),var(--pd-gold)); border: 0; height: 3px; margin: 30px 0; width: 68px; }

@media (max-width: 1024px) {
  .pd-grid--3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pd-hero__grid { grid-template-columns: 1fr; }
  .pd-hero__media { max-width: 520px; }
  .site-header .inside-header { flex-wrap: wrap; }
  .main-navigation { flex-basis: 100%; margin-left: 0; }
  .main-navigation .inside-navigation,.main-navigation .main-nav > ul { justify-content: flex-start; }
  .main-navigation .main-nav ul li.pd-menu-cta > a { margin: 8px 15px; }
}
@media (max-width: 768px) {
  body.pd-site { font-size: 16px; }
  .site-header .inside-header { padding-block: 11px; }
  .site-content { padding-top: 28px; }
  .pd-front-page .site-content { padding-top: 0; }
  .pd-grid--3,.pd-grid--2,.blog .site-main,.archive .site-main,.search .site-main { grid-template-columns: 1fr; }
  .pd-stats { grid-template-columns: repeat(2,1fr); }
  .pd-stat:nth-child(3) { border-left: 0; border-top: 1px solid var(--pd-line); }
  .pd-stat:nth-child(4) { border-top: 1px solid var(--pd-line); }
  .pd-contact-band__inner { align-items: flex-start; flex-direction: column; }
  .pd-contact-band .pd-button { width: 100%; }
  .inside-site-info { justify-content: center; text-align: center; }
}
@media (max-width: 480px) {
  .pd-hero { padding-block: 64px; }
  .pd-actions,.pd-actions .pd-button { width: 100%; }
  .pd-stats { grid-template-columns: 1fr; }
  .pd-stat + .pd-stat { border-left: 0; border-top: 1px solid var(--pd-line); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
@media print {
  #masthead,.main-navigation,.site-footer,.pd-contact-band,.widget-area { display: none !important; }
  body.pd-site,.inside-article { background: #fff !important; box-shadow: none !important; color: #000 !important; }
}
