/*
Theme Name: Dave for GPC Fund Representative
Theme URI: https://davehamelin.ca/
Author: Dave Hamelin-Schuilenburg
Description: Independent copy of the October 27 personal landing page preview, with dedicated GPC Federal Council Representative branding.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: dave-for-gpc-fund-rep
*/
:root{--dark:#103f2b;--green:#1db54e;--blue:#235ac6;--cream:#edf7ed;--text:#13271d}*{box-sizing:border-box}html,body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--text)}.ribbon{height:3px;background:#1db54e}.header{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:17px max(5vw,20px);min-height:110px;background:#fff}.brand{display:flex;align-items:center;min-width:0;max-width:min(82vw,800px)}.brand-logo{display:block;width:100%;height:auto;max-height:100px;object-fit:contain;object-position:left center}.language{padding:11px 16px;border:2px solid #acc5fa;border-radius:12px;color:var(--blue);font-weight:700;font-size:14px;white-space:nowrap}.hero{background:linear-gradient(105deg,#edf7ed 0%,#eff8f6 47%,#e5f0fc 100%);min-height:590px;padding:60px max(5vw,20px) 48px}.hero-grid{display:grid;grid-template-columns:39% 61%;max-width:1400px;margin:auto;align-items:center;gap:0}.copy{padding-right:110px;max-width:420px;position:relative;z-index:2;transform:translateY(-4px)}h1{font-size:clamp(48px,5.1vw,84px);line-height:.99;letter-spacing:-3.7px;margin:21px 0;font-weight:900;color:var(--dark)}h1 .light{color:var(--green)}h1 .blue{color:var(--blue)}.lead{font-size:clamp(17px,1.45vw,21px);line-height:1.35;margin:0 0 18px}.description{font-size:15px;line-height:1.65;max-width:570px}.visual{position:relative;height:590px;min-width:0}.video-card{position:absolute;right:0;top:42px;width:92%;height:470px;overflow:hidden;border-radius:26px;box-shadow:0 22px 45px rgba(27,54,70,.12);background:#83bac9}.video-card video{width:100%;height:100%;object-fit:cover;display:block}.video-card:after{content:'';position:absolute;inset:58% 0 0;background:linear-gradient(transparent,rgba(4,45,29,.7));pointer-events:none}.caption{position:absolute;bottom:24px;right:24px;color:#fff;max-width:350px;text-align:right;font-weight:700;line-height:1.45;font-size:14px;z-index:2}.portrait{position:absolute;z-index:3;left:-23%;bottom:0;height:585px;max-width:112%;width:auto;object-fit:contain;object-position:bottom;filter:none}@media(max-width:1100px){.hero-grid{grid-template-columns:1fr 1fr}.copy{padding-right:24px;max-width:none}.portrait{height:490px;left:-8%}.visual{height:500px}.video-card{height:380px;width:90%}}@media(max-width:760px){.header{min-height:78px;gap:10px}.brand{max-width:75vw}.brand-logo{max-height:76px}.language{padding:7px 9px;font-size:11px}.hero{padding-top:32px}.hero-grid{display:flex;flex-direction:column;align-items:stretch}.copy{padding-right:0;transform:none}h1{font-size:55px}.visual{height:460px;margin-top:20px}.portrait{height:450px;left:0}.video-card{width:85%;height:320px;top:65px}}@media(prefers-reduced-motion:reduce){video{display:none}.video-card{background:#9acae0}}

/* Fund Rep header navigation */
.header{gap:18px;padding-left:max(2vw,16px);padding-right:max(2vw,16px)}
.fr-brand{flex:0 1 690px;max-width:690px;min-width:0}
.fr-header-nav{display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.4vw,24px);margin-left:auto;flex-wrap:wrap}
.fr-header-nav a{color:#1db54e;text-decoration:none;font-size:clamp(12px,1vw,16px);font-weight:750;white-space:nowrap;transition:color .15s ease}
.fr-header-nav a:hover,.fr-header-nav a:focus-visible{color:#103f2b}
.language{flex-shrink:0}
@media(max-width:1100px){.header{flex-wrap:wrap;justify-content:space-between}.fr-brand{flex-basis:calc(100% - 110px)}.fr-header-nav{order:3;width:100%;margin:0 auto;gap:20px;padding:4px 0 10px}}
@media(max-width:760px){.fr-brand{flex-basis:calc(100% - 70px)}.fr-header-nav{gap:10px 18px}.fr-header-nav a{font-size:12px}}
/* Fund Representative wordmark: preserves the three brand colours while fitting the full office title. */
.fr-brand{gap:13px;max-width:min(83vw,840px)}
.fr-brand-dot{display:block;cursor:default;text-decoration:none;flex:0 0 clamp(38px,4.5vw,72px);width:clamp(38px,4.5vw,72px);height:clamp(38px,4.5vw,72px);border-radius:50%;background:#1db54e}
.fr-brand-lines{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px}
.fr-brand-name{font-weight:900;letter-spacing:-.045em;line-height:1.04;font-size:clamp(17px,2.32vw,38px);white-space:nowrap}
.fr-brand-tag{font-weight:400;letter-spacing:-.025em;line-height:1.14;font-size:clamp(10px,1.46vw,23px);white-space:nowrap}
.fr-logo-green{color:#1db54e}.fr-logo-blue{color:#235ac6}.fr-logo-dark{color:#103f2b}.fr-logo-for{color:#202020}

/* Bilingual under-construction footer; visually confined to white space below hero. */
.fr-construction{background:#fff;border-top:3px solid #1db54e;padding:15px max(5vw,20px) 12px;color:#103f2b}
.fr-construction-inner{max-width:1180px;margin:0 auto}
.fr-construction-cols{display:grid;grid-template-columns:1fr 1fr;gap:42px;text-align:center;align-items:start}
.fr-construction h2{color:#235ac6;font-size:clamp(14px,1.25vw,18px);line-height:1.25;margin:0 0 5px;font-weight:750;letter-spacing:0}
.fr-construction p{font-size:clamp(11px,.85vw,13px);line-height:1.4;margin:0 auto;max-width:460px}
.fr-construction .fr-construction-signoff{font-size:11px;line-height:1.3;text-align:center;margin:10px auto 0;color:#103f2b;max-width:none}
.fr-construction-dot{color:#1db54e;font-weight:900;padding:0 5px}
@media(max-width:760px){.fr-construction{padding:15px 20px}.fr-construction-cols{grid-template-columns:1fr;gap:14px}.fr-construction .fr-construction-signoff{margin-top:15px}}
@media(max-width:760px){.fr-brand{gap:6px;max-width:79vw}.fr-brand-dot{flex-basis:clamp(20px,5vw,38px);width:clamp(20px,5vw,38px);height:clamp(20px,5vw,38px)}.fr-brand-name{font-size:clamp(10px,2.65vw,18px)}.fr-brand-tag{font-size:clamp(6px,1.62vw,11px)}}

