/*
 * WordPress / Kadence integration layer for the V3.1 design (swp-v31.css).
 * Only resets and markup adaptations; no new visual language.
 * Header/footer structure and colours come from the Kadence builders; this
 * file only adds what the builders have no control for (marked "why:").
 */

/* Kadence resets: its global button/link/heading rules must not leak in */
body.swp .hd button,body.swp .xp button,body.swp .ibtn,body.swp .xb,body.swp .fbtn{box-shadow:none;text-transform:none;letter-spacing:normal}
body.swp .ibtn,body.swp .ibtn:hover,body.swp .ibtn:focus{background:transparent;color:var(--text);padding:0}
body.swp .xb,body.swp .xb:focus{background:none;color:var(--muted)}
body.swp .xb:hover{background:color-mix(in srgb,var(--surface) 60%,transparent);color:var(--text)}
body.swp .xb[aria-expanded=true],body.swp .xb[aria-expanded=true]:hover{background:var(--surface);color:var(--text)}
body.swp a.btn:hover,body.swp a.tlink:hover{text-decoration:none}
body.swp .btn-go:hover{color:var(--green)!important}
body.swp h1,body.swp h2,body.swp h3{margin-top:0}
body.swp .site,body.swp #inner-wrap{background:var(--bg)}
body.swp #inner-wrap{padding:0}

/* lists rendered as ul instead of spans */
.tech{list-style:none;margin:0;padding:0}
.tech li{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);font-weight:500}
.tech img{width:20px;height:20px;filter:var(--mono-filter)}
.cred-note{margin-top:0;padding-bottom:var(--s5)}
.cred-note .tlink{font-size:14px}

/* hero portrait */
.disc-in img.portrait{width:100%;height:100%;object-fit:cover;object-position:50% 18%}

/* project shots: real images or the labelled global placeholder */
.pshot{position:relative;overflow:hidden;background:var(--raise)}
.pshot img{width:100%;height:100%;object-fit:cover;display:block}
.pshot-feat{aspect-ratio:16/9.4}
.pshot-hy{aspect-ratio:16/9.6}
.phone-in.pshot{position:absolute;padding:0;gap:0}
.phone-in.pshot img{height:100%;object-position:50% 0}
.feat:hover .zoom,.hy:hover .zoom{transform:scale(1.012)}
.frame .fx-tag{background:var(--bg)}
.lbl-warm{color:var(--warm)}
.facts .dd-stt{display:inline-flex;gap:8px;align-items:center;justify-content:flex-end}
.rk-sum{font-size:15px;max-width:260px}
body.swp .tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px} /* body.swp: beats Kadence .entry-content ul padding */
.tags li{font:500 11px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--faint);border:1px solid var(--line);border-radius:999px;padding:6px 9px}
.rk-copy .ph{align-self:flex-start}
.row > .ic{width:18px;height:18px}

/* about */
.about-img{aspect-ratio:4/5}
.about-img img{width:100%;height:100%;object-fit:cover;object-position:70% 50%;display:block;position:relative;z-index:1}
.sig-who{flex:1}
.sig-who b{display:block}
.sig-who .muted{font-size:14px}

/* expertise */
.xpane[hidden],.xinline[hidden]{display:none!important}
.xpane{display:flex;flex-direction:column;gap:var(--s5);height:100%}
.xinline-link{align-self:flex-start}
.tools-link{margin-left:auto}

/* ventures */
.sec-hd-2{grid-template-columns:120px minmax(0,1fr)}
.tv-copy{position:relative}
.tv-kicker{color:var(--tv-ink)}
.tv-text{font-size:18px;max-width:420px}
.ven-text{font-size:15px}
div.ven:hover b{text-decoration:none}

/* contact */
.opt-sub{display:block;font-size:14px}
.od{font-size:14px}

@media (max-width:1024px){
  .sec-hd-2{grid-template-columns:1fr}
}
@media (max-width:640px){
  .pshot-feat,.pshot-hy{aspect-ratio:4/3}
  .about-img{aspect-ratio:4/3}
}
@media (prefers-reduced-motion:reduce){
  .ring,.chip,.disc{animation:none!important}
  .hd{backdrop-filter:none}
}

/* focus ring: 2px green, 3px offset (COMPONENTS.md); beats Kadence focus rules */
body.swp :focus-visible{outline:2px solid var(--green)!important;outline-offset:3px}


/* ================= Kadence header (Customizer → Header) ================= */
/* why: translucent blurred bar from V3.1; Kadence offers solid colours only */
body.swp #masthead .site-main-header-wrap .site-header-row-container-inner{background:color-mix(in srgb,var(--bg) 95%,transparent);backdrop-filter:saturate(1.2) blur(8px)}
body.swp .site-branding a.brand{gap:12px;min-height:44px;text-decoration:none}
body.swp .site-branding .custom-logo{border-radius:10px}
body.swp .site-branding .site-title{margin:0}
/* why: V3.1 numbers each top-level menu item (01, 02 …) — CSS counter, no markup change */
body.swp #primary-menu{counter-reset:swpnav}
body.swp #primary-menu > li > a{display:flex;align-items:baseline;gap:6px;padding:12px;text-decoration:none}
body.swp #primary-menu > li > a::after{counter-increment:swpnav;content:counter(swpnav,decimal-leading-zero);font:500 10px var(--mono);color:var(--faint);position:relative;top:-.5em}
body.swp #primary-menu > li.current-menu-item > a{color:var(--text)}
/* dark-mode toggle (Kadence Pro element) as a V3.1 icon button */
body.swp .kadence-color-palette-switcher.kcps-style-button button.kadence-color-palette-toggle,
body.swp .kadence-color-palette-switcher.kcps-style-button button.kadence-color-palette-toggle:hover{width:44px;height:44px;padding:0;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--text);box-shadow:none;display:grid;place-items:center}
body.swp .kadence-color-palette-switcher.kcps-style-button button.kadence-color-palette-toggle:hover{border-color:var(--line-2)}
body.swp .kadence-color-palette-switcher .kadence-svg-icon{width:18px;height:18px}
body.swp .header-button,body.swp .mobile-header-button-wrap .button{min-height:44px;display:inline-flex;align-items:center;border-radius:12px;font-weight:600;font-size:15px;line-height:1}
body.swp .header-button:hover,body.swp .mobile-header-button-wrap .button:hover{text-decoration:none}
/* mobile toggle + popup */
body.swp .menu-toggle-open{width:44px;height:44px;border:1px solid var(--line);border-radius:12px;padding:0;justify-content:center}
body.swp #mobile-drawer .drawer-inner{background:var(--bg)}
body.swp #mobile-drawer .mobile-navigation ul li > a,body.swp #mobile-drawer .mobile-navigation ul li .drawer-nav-drop-wrap{font-size:22px;font-weight:600;padding-top:16px;padding-bottom:16px}
body.swp .admin-bar .site-header{top:0}

/* ================= Kadence footer (Customizer → Footer, Widgets) ================= */
body.swp .site-footer{font-size:15px;color:var(--muted)}
body.swp .site-footer .site-footer-middle-section-1{flex-direction:column;align-items:flex-start;gap:var(--s4)}
body.swp .site-footer .sft-brand{max-width:360px;gap:var(--s4)}
body.swp .site-footer .sft-name{display:flex;align-items:center;gap:12px;margin:0;color:var(--text);font-size:15px}
body.swp .site-footer .sft-name img{width:36px;height:36px;border-radius:10px;display:block}
body.swp .site-footer .sft-text{margin:0;font-size:15px;color:var(--muted)}
body.swp .site-footer .widget-title{font:500 12px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 var(--s4)}
body.swp .site-footer .widget_nav_menu ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s3)}
body.swp .site-footer .widget_nav_menu a{color:var(--muted);text-decoration:none}
body.swp .site-footer .widget_nav_menu a:hover{color:var(--text)}
body.swp .footer-social-inner-wrap{gap:var(--s2)}
body.swp .footer-social-inner-wrap .social-button{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);color:var(--text);display:grid;place-items:center;padding:0;margin:0}
body.swp .footer-social-inner-wrap .social-button:hover{border-color:var(--line-2);color:var(--text)}
body.swp .footer-social-inner-wrap .kadence-svg-icon{width:18px;height:18px}
body.swp .site-bottom-footer-wrap .footer-html-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s3);width:100%;font-size:13px;color:var(--faint)}
body.swp .site-bottom-footer-wrap .footer-html{width:100%}
body.swp .site-bottom-footer-wrap .footer-html-inner p{display:contents}
body.swp .footer-social-inner-wrap{margin:0!important;gap:var(--s2)!important}
body.swp .footer-social-inner-wrap .social-button{margin:0!important;border:1px solid var(--line)!important;border-radius:12px!important}

/* why: swp-v31.css has a prototype `.entry` row grid; Kadence archive cards and single posts are also `article.entry` */
body.swp article.entry.loop-entry,body.swp article.entry.single-entry{display:block}
body.swp .loop-entry .entry-title{font-size:28px;line-height:1.2;letter-spacing:-.03em}
/* items stack in footer column 1, so Kadence's side-by-side item spacing does not apply */
body.swp .site-footer .site-footer-middle-section-1 > .footer-widget-area{margin-left:0}

/* why: FluentComments 2.1 ships light-only colours as --fcom-* variables (no dark option); map them onto the
   V3.1 tokens (Kadence palette) so comments follow Kadence Dark Mode. Variables only, no layout overrides. */
body.swp .fluent_comments_wrap{
  --fcom-primary-bg:var(--bg);--fcom-secondary-bg:var(--surface);--fcom-secondary-content-bg:var(--surface);
  --fcom-active-bg:var(--raise);--fcom-light-bg:var(--raise);--fcom-highlight-bg:var(--raise);
  --fcom-primary-border:var(--line);--fcom-primary-text:var(--text);--fcom-secondary-text:var(--muted);
  --fcom-text-off:var(--faint);--fcom-text-link:var(--text);--fcom-primary-button:var(--green);
  --fcom-primary-button-text:var(--green-ink);--fcom-radius:12px;--fcom-font-size-base:16px
}
body.swp .fluent_comments_wrap .crayons-card{box-shadow:0 0 0 1px var(--line)}
body.swp .fluent_comments_wrap .flc_comments-title{letter-spacing:-.03em}

/* Selected work: the featured frame keeps its own 16:9.4 height; stretching it to the info column left an empty band under the image. */
body.swp .feat > .frame{align-self:start}
