
:root {
  --ink:#13233a;
  --muted:#607086;
  --paper:#ffffff;
  --soft:#f3f6f8;
  --accent:#b5904f;
  --accent-dark:#80652f;
  --line:#dce3e8;
  --max:1180px;
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.65}
a{color:inherit}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 40px),var(--max));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;top:auto}
.skip-link:focus{left:20px;top:20px;background:#fff;padding:12px 16px;z-index:999}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(19,35,58,.08)}
.nav-wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand-mark{width:44px;height:44px;border:1px solid var(--ink);display:grid;place-items:center;font-weight:800;letter-spacing:-.04em}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-text strong{text-transform:uppercase;letter-spacing:.06em;font-size:.92rem}
.brand-text small{color:var(--muted);margin-top:4px}
.main-nav{display:flex;align-items:center;gap:26px}
.main-nav a{text-decoration:none;font-weight:650;font-size:.94rem}
.main-nav a:hover{color:var(--accent-dark)}
.lang-link{border-left:1px solid var(--line);padding-left:22px}
.menu-btn{display:none;border:1px solid var(--line);background:#fff;padding:10px 14px;border-radius:10px;font:inherit}
.hero{background:
radial-gradient(circle at 85% 15%, rgba(181,144,79,.20), transparent 28%),
linear-gradient(135deg,#eef3f6 0%,#ffffff 58%);padding:86px 0 76px}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center}
.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.18em;font-weight:800;font-size:.75rem;color:var(--accent-dark)}
.hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(3.6rem,8vw,7.2rem);letter-spacing:-.055em;line-height:.88;margin:15px 0 18px}
.hero-role{font-size:clamp(1.35rem,2.3vw,2rem);font-weight:750;margin:0 0 18px}
.hero-lead{font-size:1.14rem;color:var(--muted);max-width:700px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 20px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 20px;border-radius:999px;text-decoration:none;font-weight:800;border:1px solid transparent;cursor:pointer;font:inherit}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:#243a57}
.btn-secondary{background:#fff;border-color:var(--line)}
.btn-secondary:hover{border-color:#aeb9c1}
.disclaimer{font-size:.82rem;color:var(--muted)}
.photo-card{position:relative}
.photo-placeholder{aspect-ratio:4/5;border-radius:180px 180px 28px 28px;background:
linear-gradient(160deg,#20344f,#8b9aac);display:grid;place-items:center;color:#fff;text-align:center;box-shadow:0 35px 80px rgba(26,43,65,.18);overflow:hidden}
.photo-placeholder.has-photo{background-position:center;background-size:cover}
.photo-placeholder div{padding:30px;background:rgba(16,33,54,.66);border-radius:16px}
.photo-placeholder strong,.photo-placeholder span{display:block}
.photo-placeholder span{font-size:.78rem;margin-top:5px;opacity:.8}
.photo-caption{position:absolute;right:-18px;bottom:26px;background:#fff;padding:18px 22px;border-radius:16px;box-shadow:0 16px 45px rgba(26,43,65,.14);border:1px solid var(--line)}
.photo-caption span{display:block;font-family:Georgia,serif;font-size:1.7rem}
.photo-caption small{color:var(--muted)}
.stats{background:var(--ink);color:#fff;padding:26px 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stats article{padding:14px 18px;border-left:1px solid rgba(255,255,255,.18)}
.stats strong{display:block;font-family:Georgia,serif;font-size:1.75rem;font-weight:500}
.stats span{display:block;color:#d6dee7;font-size:.88rem;margin-top:5px}
.section{padding:100px 0}
.section-alt{background:var(--soft)}
.two-col{display:grid;grid-template-columns:.72fr 1.28fr;gap:80px}
.section h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(2.45rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.035em;margin:12px 0 28px}
.prose{font-size:1.1rem;color:#314359}
.prose p:first-child{font-size:1.35rem;color:var(--ink)}
.cards{display:grid;gap:18px;margin-top:44px}
.cards.four{grid-template-columns:repeat(4,1fr)}
.card,.priority{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;min-height:260px}
.card-num{color:var(--accent-dark);font-weight:850;font-size:.8rem;letter-spacing:.14em}
.card h3,.priority h3,.voting h3{font-size:1.25rem;margin:55px 0 12px}
.card p,.priority p,.voting p{color:var(--muted);margin:0}
.section-intro{max-width:700px;color:var(--muted);font-size:1.08rem}
.priority-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.priority{min-height:220px}
.priority h3{margin:0 0 12px}
.voting{background:var(--ink);color:#fff}
.voting .section-kicker{color:#d2b77e}
.voting-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:38px}
.voting-grid article{border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);padding:28px;background:rgba(255,255,255,.04)}
.voting h3{margin:26px 0 12px}
.voting p{color:#d8e0e7}
.date-badge{display:inline-block;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:8px 12px;font-weight:800;font-size:.82rem}
.source-note{margin-top:26px;color:#d8e0e7!important;font-size:.9rem}
.source-note a{color:#fff}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}
.contact-details{margin-top:30px}
.editable{background:#fff4cc;padding:2px 5px;border-radius:5px}
.contact-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;display:grid;gap:18px}
.contact-form label{font-weight:750;font-size:.93rem}
.contact-form label span{font-weight:500;color:var(--muted)}
.contact-form input,.contact-form textarea{width:100%;margin-top:7px;border:1px solid #cbd5dd;border-radius:12px;padding:13px 14px;font:inherit;background:#fff}
.contact-form input:focus,.contact-form textarea:focus{outline:3px solid rgba(181,144,79,.24);border-color:var(--accent)}
.check{display:flex;gap:10px;align-items:flex-start}
.check input{width:auto;margin-top:5px}
.privacy-note{color:var(--muted);font-size:.78rem;margin:0}
.site-footer{background:#0d1929;color:#fff;padding:52px 0}
.footer-grid{display:grid;grid-template-columns:1.1fr .6fr 1.3fr;gap:45px}
.footer-grid a{display:block;color:#d7e0e8;margin-bottom:8px;text-decoration:none}
.footer-grid p{color:#aeb9c5;font-size:.86rem;margin:.4rem 0}
@media(max-width:900px){
  .menu-btn{display:block}
  .main-nav{display:none;position:absolute;left:20px;right:20px;top:70px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 50px rgba(20,34,51,.12);border-radius:16px;padding:18px;flex-direction:column;align-items:stretch;gap:0}
  .main-nav.open{display:flex}
  .main-nav a{padding:12px 8px}
  .lang-link{border-left:0;border-top:1px solid var(--line);padding-left:8px}
  .hero-grid,.two-col,.contact-grid{grid-template-columns:1fr}
  .hero-grid{gap:42px}
  .photo-card{max-width:520px;margin-inline:auto;width:100%}
  .cards.four,.priority-grid,.voting-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}
  .two-col,.contact-grid{gap:24px}
}
@media(max-width:600px){
  .container{width:min(calc(100% - 28px),var(--max))}
  .hero{padding:60px 0 55px}
  .hero h1{font-size:3.5rem}
  .section{padding:72px 0}
  .cards.four,.priority-grid,.voting-grid,.stats-grid,.footer-grid{grid-template-columns:1fr}
  .stats article{border-left:0;border-top:1px solid rgba(255,255,255,.16)}
  .photo-caption{right:10px}
}

.photo-placeholder.has-photo{
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}


/* Photo placeholders */
.photo-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  margin-top:38px;
}
.photo-slot{
  min-height:330px;
  border-radius:24px;
  border:2px dashed #9aa8b7;
  background:
    linear-gradient(135deg, rgba(19,35,58,.06), rgba(181,144,79,.10)),
    #eef2f5;
  display:grid;
  place-items:center;
  text-align:center;
  overflow:hidden;
  background-position:center;
  background-size:cover;
  position:relative;
}
.photo-slot::before{
  content:"+";
  position:absolute;
  top:22px;
  right:22px;
  width:42px;
  height:42px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#fff;
  border:1px solid #d7dee4;
  font-size:1.7rem;
  color:#607086;
}
.photo-slot-label{
  max-width:75%;
  padding:24px;
  background:rgba(255,255,255,.92);
  border:1px solid #dce3e8;
  border-radius:16px;
  box-shadow:0 12px 35px rgba(19,35,58,.08);
}
.photo-slot-label strong,
.photo-slot-label span,
.photo-slot-label small{
  display:block;
}
.photo-slot-label strong{
  font-size:1.05rem;
  margin-bottom:7px;
}
.photo-slot-label span{
  color:#607086;
  line-height:1.45;
}
.photo-slot-label small{
  margin-top:10px;
  color:#80652f;
  font-weight:700;
}
.photo-slot-wide{
  grid-column:span 2;
  min-height:380px;
}
.photo-slot-hero{
  aspect-ratio:4/5;
  min-height:0;
  border-radius:180px 180px 28px 28px;
  box-shadow:0 35px 80px rgba(26,43,65,.12);
}
.photo-slot-hero .photo-slot-label{
  max-width:72%;
}
@media(max-width:700px){
  .photo-grid{grid-template-columns:1fr}
  .photo-slot-wide{grid-column:span 1}
}


/* Multi-page additions */
.page-hero{
  padding:72px 0 54px;
  background:
    radial-gradient(circle at 85% 15%, rgba(181,144,79,.18), transparent 28%),
    linear-gradient(135deg,#eef3f6 0%,#ffffff 60%);
  border-bottom:1px solid var(--line);
}
.page-hero h1{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:500;
  font-size:clamp(3rem,7vw,6rem);
  line-height:.95;
  letter-spacing:-.045em;
  margin:12px 0 18px;
}
.page-hero p{
  max-width:760px;
  color:var(--muted);
  font-size:1.12rem;
}
.hero-mini-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:28px;
}
.home-sections{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  margin-top:34px;
}
.home-link-card{
  display:block;
  text-decoration:none;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:30px;
  background:#fff;
  min-height:210px;
  transition:.2s ease;
}
.home-link-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(19,35,58,.08);
}
.home-link-card span{
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.15em;
  color:var(--accent-dark);
  font-weight:800;
}
.home-link-card h3{
  margin:42px 0 8px;
  font-size:1.3rem;
}
.home-link-card p{color:var(--muted);margin:0}
.detail-list{
  display:grid;
  gap:16px;
  margin-top:28px;
}
.detail-item{
  border:1px solid var(--line);
  border-radius:18px;
  padding:22px;
  background:#fff;
}
.detail-item h3{margin:0 0 8px}
.detail-item p{margin:0;color:var(--muted)}
.voting-location{
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.05);
  padding:24px;
  border-radius:18px;
  margin-top:28px;
}
.voting-location strong{font-size:1.2rem}
.contact-cta{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:28px;
  background:#fff;
}
.contact-cta p{margin:6px 0 0;color:var(--muted)}
.site-header .main-nav a.active{color:var(--accent-dark)}
@media(max-width:760px){
  .home-sections{grid-template-columns:1fr}
  .contact-cta{flex-direction:column;align-items:flex-start}
}


.photo-slot.photo-real{
  border-style:solid;
  border-width:0;
  background-size:cover;
  background-position:center;
  min-height:360px;
}
.photo-slot.photo-real::before{display:none}

.campaign-gallery{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  grid-auto-rows:280px;
  gap:16px;
  margin-top:34px;
}
.campaign-gallery figure{
  margin:0;
  overflow:hidden;
  border-radius:22px;
  background:#e8edf1;
}
.campaign-gallery figure:nth-child(1){
  grid-row:span 2;
}
.campaign-gallery img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.campaign-gallery figure:hover img{
  transform:scale(1.02);
}
@media(max-width:760px){
  .campaign-gallery{
    grid-template-columns:1fr;
    grid-auto-rows:260px;
  }
  .campaign-gallery figure:nth-child(1){
    grid-row:span 1;
  }
}


.credentials-figure{
  margin:34px 0 0;
  border:1px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 20px 55px rgba(19,35,58,.08);
}
.credentials-figure img{
  width:100%;
  height:auto;
  display:block;
}
.credentials-figure.compact{
  margin:0;
}
.credentials-home{
  padding-top:78px;
  padding-bottom:78px;
}
@media(max-width:900px){
  .credentials-home .two-col{
    grid-template-columns:1fr;
  }
}


/* Final campaign photo treatment */
.candidate-photo{
  overflow:hidden;
  background:#e8edf1;
  box-shadow:0 28px 70px rgba(26,43,65,.16);
}
.candidate-photo picture{display:block;width:100%;height:100%}
.candidate-photo img{width:100%;height:100%;object-fit:cover;display:block}
.candidate-photo-hero{
  aspect-ratio:4/5;
  border-radius:180px 180px 28px 28px;
}
.candidate-photo-hero img{object-position:center 25%}
.candidate-photo-about{
  aspect-ratio:4/5;
  border-radius:28px;
  max-width:460px;
}
.candidate-photo-about img{object-position:center 24%}
.about-photo-grid{align-items:center}

/* Top campaign actions */
.quick-actions{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.quick-grid a{padding:20px 18px;text-decoration:none;border-right:1px solid var(--line);transition:.2s ease}
.quick-grid a:first-child{border-left:1px solid var(--line)}
.quick-grid a:hover{background:#f7f9fb}
.quick-grid strong,.quick-grid span{display:block}
.quick-grid strong{font-size:1rem}
.quick-grid span{font-size:.79rem;color:var(--muted);margin-top:3px}

/* Service section */
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:38px}
.service-grid article{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.service-grid article>span{color:var(--accent-dark);font-weight:850;font-size:.78rem;letter-spacing:.14em}
.service-grid h3{margin:12px 0 8px}
.service-grid p{margin:0;color:var(--muted);font-size:.94rem}

/* Donate styling */
.donate-link{border:1px solid var(--accent);border-radius:999px;padding:9px 14px!important;color:var(--accent-dark)}
.donate-link:hover,.donate-link.active{background:var(--accent);color:#fff!important}
.btn-gold{background:var(--accent);color:#fff}
.btn-gold:hover{background:var(--accent-dark)}
.donation-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:64px;align-items:start}
.donation-card{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:30px}
.donation-card h3{margin-top:0;font-size:1.45rem}
.contribution-limit{display:flex;gap:18px;align-items:center;border-left:5px solid var(--accent);padding:14px 16px;background:#fff;margin:20px 0}
.contribution-limit strong{font-family:Georgia,serif;font-size:2.2rem;font-weight:500}
.contribution-limit span{color:var(--muted)}
.donation-card li+li{margin-top:9px}
.donation-source{font-size:.82rem;color:var(--muted);margin-top:22px}
.donation-contact{margin-top:28px;display:flex;flex-direction:column;gap:4px}
.donation-contact a{font-size:1.12rem;font-weight:800}
.source-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.source-links a{font-size:.82rem;color:var(--accent-dark);font-weight:750}

/* Gallery captions and crop control */
.campaign-gallery figure{position:relative}
.campaign-gallery figcaption{
  position:absolute;left:12px;right:12px;bottom:12px;
  padding:9px 11px;border-radius:10px;
  background:rgba(13,25,41,.78);color:#fff;font-size:.78rem;font-weight:700
}
.campaign-gallery figure:nth-child(1) img{object-position:63% center}
.campaign-gallery figure:nth-child(2) img{object-position:center center}
.campaign-gallery figure:nth-child(3) img{object-position:center 38%}
.campaign-gallery figure:nth-child(4) img{object-position:63% center}
.community-focus-right{background-position:62% center!important}

@media(max-width:1000px){
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .donation-layout{grid-template-columns:1fr}
}
@media(max-width:760px){
  .quick-grid{grid-template-columns:1fr 1fr}
  .quick-grid a{border-bottom:1px solid var(--line)}
}
@media(max-width:600px){
  .quick-grid,.service-grid{grid-template-columns:1fr}
  .quick-grid a{border-left:1px solid var(--line)}
  .candidate-photo-hero{border-radius:90px 90px 24px 24px}
}

.donation-transfer-box{
  margin-top:26px;
  padding:24px;
  border:1px solid var(--line);
  border-left:5px solid var(--accent);
  border-radius:var(--radius);
  background:var(--soft);
}
.donation-transfer-box span,
.donation-transfer-box strong{
  display:block;
}
.donation-transfer-box span{
  color:var(--muted);
  font-size:.82rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.donation-transfer-box strong{
  margin-top:5px;
  font-size:1.25rem;
  overflow-wrap:anywhere;
}
.donation-transfer-box p{
  margin-bottom:0;
  color:var(--muted);
}


/* Quick Actions spacing fix */
.quick-actions{
  padding:28px 0;
  background:#f7f9fb;
}
.quick-grid{
  gap:18px;
}
.quick-grid a{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:104px;
  padding:22px 24px;
  border:1px solid var(--line)!important;
  border-radius:16px;
  background:#fff;
  box-shadow:0 6px 18px rgba(20,35,55,.05);
}
.quick-grid a:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(20,35,55,.09);
}
.quick-grid strong{
  margin-bottom:7px;
  font-size:1.05rem;
}
.quick-grid span{
  line-height:1.45;
  font-size:.84rem;
}

@media(max-width:760px){
  .quick-actions{padding:22px 0}
  .quick-grid{gap:14px}
  .quick-grid a{min-height:96px;padding:20px}
}


/* ---------------------------------------------------------
   Final photo sizing / border containment fix
   --------------------------------------------------------- */

/* Keep every real-photo card inside its rounded border */
.photo-real,
.photo-slot-wide,
.campaign-gallery figure,
.candidate-photo {
  overflow: hidden !important;
}

/* Wide feature photos on About / Priorities pages */
.photo-slot-wide.photo-real,
.community-focus-right {
  width: 100%;
  max-width: 980px;
  height: 280px !important;
  min-height: 0 !important;
  margin: 26px auto 0;
  border-radius: 18px;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center 42% !important;
  box-sizing: border-box;
}

/* The specific BBQ / youth image benefits from a slightly higher focal point */
.community-focus-right {
  background-position: center 36% !important;
}

/* If any wide image is rendered as an <img>, contain it properly */
.photo-slot-wide img,
.community-focus-right img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 38% !important;
  border-radius: inherit;
}

/* Homepage community gallery: smaller, neater cards */
.campaign-gallery {
  gap: 16px;
}

.campaign-gallery figure {
  min-height: 0 !important;
  height: 250px !important;
  border-radius: 16px;
  background: #eef2f5;
}

.campaign-gallery figure img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}

/* Maintain more sensible focal points */
.campaign-gallery figure:nth-child(1) img { object-position: 62% 42% !important; }
.campaign-gallery figure:nth-child(2) img { object-position: center 35% !important; }
.campaign-gallery figure:nth-child(3) img { object-position: center 42% !important; }
.campaign-gallery figure:nth-child(4) img { object-position: 63% 38% !important; }

/* Ensure rounded borders visually contain backgrounds */
.photo-slot {
  box-sizing: border-box;
  overflow: hidden !important;
}

/* Tablet */
@media (max-width: 900px) {
  .photo-slot-wide.photo-real,
  .community-focus-right {
    max-width: 100%;
    height: 240px !important;
  }

  .campaign-gallery figure {
    height: 220px !important;
  }
}

/* Mobile */
@media (max-width: 600px) {
  .photo-slot-wide.photo-real,
  .community-focus-right {
    height: 210px !important;
    border-radius: 14px;
    margin-top: 20px;
  }

  .campaign-gallery {
    grid-template-columns: 1fr !important;
  }

  .campaign-gallery figure {
    height: 230px !important;
    width: 100%;
  }

  .campaign-gallery figure img {
    object-fit: cover !important;
  }
}


/* =========================================================
   FINAL LAYOUT FIX — community photos + quick action cards
   ========================================================= */

/* Priorities-page photos:
   use normal image elements, never oversized background images */
.priority-photo-wrap{
  width:100%;
  display:flex;
  justify-content:center;
  margin:28px auto 8px;
  padding:0 20px;
}

.priority-photo-card{
  width:min(100%, 760px);
  margin:0;
  padding:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(19,35,58,.06);
}

.priority-photo-card img{
  display:block;
  width:100%;
  height:auto !important;
  max-height:430px;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 auto;
  border:0;
}

/* Quick action cards:
   visible physical separation on all screen sizes */
.quick-actions{
  padding:34px 0 !important;
  background:#f3f6f8 !important;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.quick-actions .quick-grid{
  width:100%;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:24px !important;
  align-items:stretch;
}

.quick-actions .quick-card{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  min-height:118px !important;
  padding:24px 26px !important;
  margin:0 !important;
  background:#fff !important;
  border:1px solid #d7e0e8 !important;
  border-radius:18px !important;
  box-shadow:0 8px 24px rgba(19,35,58,.06) !important;
  text-decoration:none !important;
}

.quick-actions .quick-card strong{
  display:block !important;
  margin:0 0 10px 0 !important;
  font-size:1.08rem !important;
  line-height:1.2 !important;
  color:var(--ink) !important;
}

.quick-actions .quick-card span{
  display:block !important;
  margin:0 !important;
  font-size:.86rem !important;
  line-height:1.45 !important;
  color:var(--muted) !important;
}

.quick-actions .quick-card:hover{
  transform:translateY(-2px);
  border-color:#b8c4cf !important;
  box-shadow:0 12px 30px rgba(19,35,58,.10) !important;
}

@media(max-width:900px){
  .quick-actions .quick-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:18px !important;
  }
  .priority-photo-card{
    width:min(100%,680px);
  }
}

@media(max-width:600px){
  .quick-actions{
    padding:24px 0 !important;
  }
  .quick-actions .quick-grid{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  .quick-actions .quick-card{
    min-height:96px !important;
    padding:20px !important;
  }
  .priority-photo-wrap{
    padding:0;
    margin-top:20px;
  }
  .priority-photo-card{
    width:100%;
    border-radius:14px;
  }
  .priority-photo-card img{
    max-height:320px;
  }
}


/* Campaign contact typography fix */
.contact-cta h2,
.contact-cta h2 a,
.contact-cta > div > a:not(.btn),
.contact-cta p a {
  font-size: 1.05rem !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
}

.contact-cta h2 {
  margin-bottom: 6px !important;
}

.contact-cta > div > a:not(.btn),
.contact-cta p {
  margin-top: 0 !important;
}


/* Make small page/section labels substantially larger across all pages */
.section-kicker,
.eyebrow,
.page-hero .section-kicker,
.hero .section-kicker,
.hero .eyebrow,
.page-hero p.section-kicker {
  font-size: 2.25rem !important;
  line-height: 1.15 !important;
  letter-spacing: .06em !important;
  font-weight: 800 !important;
  margin-bottom: 16px !important;
}

/* Slightly smaller on mobile so it remains readable without wrapping badly */
@media(max-width: 600px){
  .section-kicker,
  .eyebrow,
  .page-hero .section-kicker,
  .hero .section-kicker,
  .hero .eyebrow,
  .page-hero p.section-kicker {
    font-size: 1.65rem !important;
    line-height: 1.2 !important;
  }
}


/* =========================================================
   Unified header / kicker styling across ALL pages
   ========================================================= */

/* All small page headers and section headers use one consistent style */
.section-kicker,
.eyebrow,
.page-hero .section-kicker,
.hero .section-kicker,
.hero .eyebrow,
.page-hero p.section-kicker,
[class*="kicker"] {
  font-size: 2.25rem !important;
  line-height: 1.15 !important;
  letter-spacing: .045em !important;
  font-weight: 800 !important;
  color: #163f6b !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
  text-transform: none !important;
}

/* Prevent special sections from overriding the unified header color */
.section-navy .section-kicker,
.donation-section .section-kicker,
.page-hero .section-kicker,
.hero .section-kicker {
  color: #163f6b !important;
}

/* Keep the same visual treatment on mobile, just scaled responsibly */
@media(max-width: 600px){
  .section-kicker,
  .eyebrow,
  .page-hero .section-kicker,
  .hero .section-kicker,
  .hero .eyebrow,
  .page-hero p.section-kicker,
  [class*="kicker"] {
    font-size: 1.65rem !important;
    line-height: 1.2 !important;
    letter-spacing: .035em !important;
    color: #163f6b !important;
  }
}


/* Professional title display */
.brand-text strong,
.site-footer strong {
  line-height: 1.15;
}

@media(max-width:700px){
  .brand-text strong{
    font-size:.92rem;
    max-width:230px;
    white-space:normal;
  }
}


/* Main homepage photo: square corners */
.candidate-photo-hero {
  border-radius: 0 !important;
}

@media(max-width:600px){
  .candidate-photo-hero {
    border-radius: 0 !important;
  }
}


/* =========================================================
   FINAL CORRECTIONS — AUG 23 2026
   ========================================================= */

/* 1. Main homepage photo: absolutely square corners */
.photo-card,
.photo-card picture,
.photo-card img,
.candidate-photo,
.candidate-photo-hero,
.candidate-photo-hero picture,
.candidate-photo-hero img {
  border-radius: 0 !important;
  clip-path: none !important;
}

/* 2. All section labels/titles such as:
   Candidate Information • Richmond Hill Ward 5
   How I Will Serve Ward 5
   Professional Background
   Campaign Contact
*/
.section-kicker,
.eyebrow,
.page-hero .section-kicker,
.hero .section-kicker,
.hero .eyebrow,
[class*="kicker"] {
  font-size: 1.9rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: .035em !important;
  color: #163f6b !important;
  text-transform: none !important;
  margin: 0 0 16px 0 !important;
}

/* 3. Campaign email and website: same modest size */
.contact-cta .campaign-contact-line {
  margin: 4px 0 !important;
  font-size: 1.05rem !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
  color: #263f5d !important;
}

/* Do not let generic heading rules enlarge the email */
.contact-cta h2,
.contact-cta h3 {
  font-size: 1.05rem !important;
  line-height: 1.45 !important;
}

/* Preserve the Campaign Contact section label at the larger section-title size */
.contact-cta .section-kicker {
  font-size: 1.9rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #163f6b !important;
  margin-bottom: 14px !important;
}

@media (max-width: 700px) {
  .section-kicker,
  .eyebrow,
  .page-hero .section-kicker,
  .hero .section-kicker,
  .hero .eyebrow,
  [class*="kicker"],
  .contact-cta .section-kicker {
    font-size: 1.4rem !important;
    line-height: 1.25 !important;
  }

  .contact-cta .campaign-contact-line {
    font-size: 1rem !important;
  }
}


/* =========================================================
   Professional name/title size — consistent across all pages
   ========================================================= */

.brand-text strong,
.site-footer strong,
.professional-name,
.candidate-name,
.hero-name,
.page-hero .candidate-name {
  font-size: 1rem !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
}

/* Any heading that contains the full professional title should not inherit large heading sizing */
h1.professional-name,
h2.professional-name,
h3.professional-name,
h1.candidate-name,
h2.candidate-name,
h3.candidate-name {
  font-size: 1rem !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
}

/* Mobile: same size for consistency */
@media(max-width:700px){
  .brand-text strong,
  .site-footer strong,
  .professional-name,
  .candidate-name,
  .hero-name,
  .page-hero .candidate-name,
  h1.professional-name,
  h2.professional-name,
  h3.professional-name,
  h1.candidate-name,
  h2.candidate-name,
  h3.candidate-name {
    font-size: 1rem !important;
    line-height: 1.3 !important;
  }
}


/* =========================================================
   FINAL SITE AUDIT — typography, duplication, photos
   ========================================================= */

/* ---- GLOBAL TYPOGRAPHY ---- */
body{
  font-size:16px;
  line-height:1.6;
}

.page-hero h1{
  font-size:clamp(2.7rem,5vw,4.4rem) !important;
  line-height:1.02 !important;
  margin:10px 0 16px !important;
}

.section h2,
.service-home h2{
  font-size:clamp(2rem,3.8vw,3.25rem) !important;
  line-height:1.08 !important;
  margin:10px 0 24px !important;
}

.section h3,
.card h3,
.priority h3,
.detail-item h3,
.home-link-card h3,
.quick-card strong{
  font-size:1.16rem !important;
  line-height:1.3 !important;
}

/* Consistent section labels across ALL English pages */
.section-kicker,
.eyebrow,
.page-hero .section-kicker,
.hero .eyebrow,
.hero .section-kicker,
[class*="kicker"]{
  font-size:1.55rem !important;
  line-height:1.2 !important;
  letter-spacing:.025em !important;
  font-weight:800 !important;
  color:#163f6b !important;
  text-transform:none !important;
  margin:0 0 14px !important;
}

/* Header name: readable, consistent on every page */
.brand-text strong,
.brand-text .professional-name{
  font-size:1.12rem !important;
  line-height:1.22 !important;
  font-weight:750 !important;
  letter-spacing:0 !important;
  max-width:360px !important;
  white-space:normal !important;
}

/* Homepage candidate name: larger than site header, but not oversized */
.hero-professional-name{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:clamp(2.15rem,4.2vw,3.35rem) !important;
  line-height:1.03 !important;
  letter-spacing:-.025em !important;
  font-weight:500 !important;
  margin:12px 0 14px !important;
  color:var(--ink) !important;
}

/* Footer should be concise and not repeat the long title */
.footer-campaign-name{
  font-size:1rem !important;
  line-height:1.3 !important;
  font-weight:800 !important;
}

/* Campaign contact email + website: exactly the same size */
.contact-cta .campaign-contact-line{
  font-size:1.02rem !important;
  line-height:1.45 !important;
  font-weight:600 !important;
  margin:5px 0 !important;
  color:#263f5d !important;
}

/* Do not accidentally enlarge contact content */
.contact-details,
.contact-details a,
.site-footer,
.site-footer a{
  font-size:1rem !important;
}

/* ---- MAIN CANDIDATE PHOTO ---- */
.photo-card{
  border-radius:0 !important;
  overflow:visible !important;
}

.candidate-photo,
.candidate-photo-hero,
.candidate-photo-hero picture,
.candidate-photo-hero img{
  border-radius:0 !important;
  clip-path:none !important;
}

.candidate-photo-hero{
  width:min(100%,470px) !important;
  aspect-ratio:4/5 !important;
  margin:0 auto !important;
  overflow:hidden !important;
  background:#e9eef3 !important;
}

.candidate-photo-hero img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center 24% !important;
}

/* About portrait: properly contained and balanced */
.candidate-photo-about{
  width:min(100%,390px) !important;
  aspect-ratio:4/5 !important;
  margin:0 auto !important;
  overflow:hidden !important;
  border-radius:14px !important;
}

.candidate-photo-about img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center 24% !important;
}

/* ---- HOMEPAGE COMMUNITY GALLERY ---- */
.campaign-gallery{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:18px !important;
  max-width:980px !important;
  margin:28px auto 0 !important;
}

.campaign-gallery figure{
  height:285px !important;
  min-height:0 !important;
  margin:0 !important;
  border-radius:14px !important;
  overflow:hidden !important;
  background:#eef2f5 !important;
}

.campaign-gallery figure img{
  width:100% !important;
  height:100% !important;
  display:block !important;
  object-fit:cover !important;
  border-radius:0 !important;
}

.campaign-gallery figure:nth-child(1) img{object-position:62% 42% !important;}
.campaign-gallery figure:nth-child(2) img{object-position:center 32% !important;}
.campaign-gallery figure:nth-child(3) img{object-position:center 40% !important;}
.campaign-gallery figure:nth-child(4) img{object-position:62% 38% !important;}

/* ---- ABOUT PAGE PHOTO GALLERY ---- */
.about-photo-gallery{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  max-width:940px;
  margin:26px auto 0;
}

.about-photo-gallery figure{
  margin:0;
  height:260px;
  overflow:hidden;
  border-radius:14px;
  border:1px solid var(--line);
  background:#eef2f5;
}

.about-photo-gallery img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.about-photo-gallery figure:nth-child(1) img{object-position:62% 42%;}
.about-photo-gallery figure:nth-child(2) img{object-position:center 32%;}
.about-photo-gallery figure:nth-child(3) img{object-position:center 40%;}
.about-photo-gallery figure:nth-child(4) img{object-position:62% 38%;}

/* ---- PRIORITIES PAGE PHOTOS ---- */
.priority-photo-wrap{
  width:100% !important;
  padding:0 !important;
  margin:26px auto 4px !important;
  display:flex !important;
  justify-content:center !important;
}

.priority-photo-card{
  width:min(100%,620px) !important;
  margin:0 !important;
  overflow:hidden !important;
  border:1px solid var(--line) !important;
  border-radius:14px !important;
  background:#fff !important;
}

.priority-photo-card img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:420px !important;
  object-fit:contain !important;
  object-position:center !important;
}

/* ---- QUICK ACTIONS: clear separation ---- */
.quick-actions{
  padding:32px 0 !important;
}

.quick-actions .quick-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:22px !important;
}

.quick-actions .quick-card{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  min-height:112px !important;
  padding:22px 24px !important;
  border:1px solid #d7e0e8 !important;
  border-radius:14px !important;
  background:#fff !important;
}

.quick-actions .quick-card strong{
  margin-bottom:8px !important;
}

.quick-actions .quick-card span{
  line-height:1.45 !important;
}

/* ---- RESPONSIVE ---- */
@media(max-width:900px){
  .quick-actions .quick-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:16px !important;
  }
  .campaign-gallery,
  .about-photo-gallery{
    grid-template-columns:1fr 1fr !important;
  }
}

@media(max-width:650px){
  .section-kicker,
  .eyebrow,
  .page-hero .section-kicker,
  .hero .eyebrow,
  .hero .section-kicker,
  [class*="kicker"]{
    font-size:1.18rem !important;
    line-height:1.25 !important;
  }

  .brand-text strong,
  .brand-text .professional-name{
    font-size:.96rem !important;
    max-width:235px !important;
  }

  .hero-professional-name{
    font-size:1.9rem !important;
  }

  .quick-actions .quick-grid,
  .campaign-gallery,
  .about-photo-gallery{
    grid-template-columns:1fr !important;
  }

  .campaign-gallery figure,
  .about-photo-gallery figure{
    height:230px !important;
  }

  .priority-photo-card{
    width:100% !important;
  }
}
