/* ============================================================
   Saud Anwar for State Senate 2026 - shared styles for subpages
   (About, Media Center, Photo galleries)
   Matches the design system of the main page (SaudAnwar-v3.html)
   ============================================================ */
:root{
  --paper:#F7F2E7; --paper-2:#F1EADA; --card:#FCF8EF;
  --ink:#1D2433; --ink-soft:#4A5468; --ink-faint:#767F92;
  --navy:#17365F; --navy-deep:#0F2440; --navy-mid:#1C4478;
  --blue:#2E66B8; --blue-tint:#DCE7F5; --accent:#2E66B8; --accent-deep:#1C4478;
  --gold:#D9A441; --rule:#DACFB6; --rule-dark:rgba(247,242,231,.18);
  --serif:"Fraunces", Georgia, serif;
  --sans:"Public Sans", -apple-system, sans-serif;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{overflow-x:clip;}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;}
.paper-tex{background-color:var(--paper);background-image:var(--grain);}
a{color:var(--navy-mid);}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:2px;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:10px 18px;z-index:200;}
.skip-link:focus{left:0;}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px;}
.concept-note{background:var(--navy-deep);color:#9FB3CC;font-size:12.5px;text-align:center;padding:7px 16px;letter-spacing:.02em;}
.concept-note strong{color:#fff;font-weight:600;}
.smallcaps{font-size:12.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;}

/* ---------- Masthead ---------- */
.masthead{background:var(--paper);border-bottom:3px double var(--navy);}
.mast-top{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);}
.mast-top .dem{color:var(--accent);}
.mast-name{padding:18px 0 14px;text-align:center;}
.mast-name a{font-family:var(--serif);font-weight:600;font-size:clamp(34px,5vw,54px);letter-spacing:.005em;color:var(--navy);text-decoration:none;line-height:1;}
.mast-name .md{font-style:italic;font-weight:500;color:var(--accent);}
.mast-name .under{display:block;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-soft);margin-top:12px;}
.mast-name .mast-logo{display:inline-block;}
.mast-name .mast-logo img{display:block;margin:0 auto;height:82px;width:auto;max-width:94vw;}
.foot-logo{height:54px;width:auto;margin-bottom:20px;display:block;}
.mast-nav{display:flex;justify-content:center;gap:4px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--rule);}
.mast-nav a{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;padding:8px 14px;transition:color .15s ease;}
.mast-nav a:hover,.mast-nav a[aria-current=page]{color:var(--accent);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px;}

/* ---------- Buttons ---------- */
.btn{display:inline-block;font-family:var(--sans);font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:16px 30px;border:1.5px solid transparent;cursor:pointer;background:none;}
.btn.accent{background:var(--accent);color:#fff;}
.btn.accent:hover{background:var(--accent-deep);}
.btn.navy{background:var(--navy);color:var(--paper);}
.btn.navy:hover{background:var(--navy-deep);}
.btn.ghost{border-color:#B7AD93;color:var(--ink);}
.btn.ghost:hover{border-color:var(--navy);color:var(--navy);}
.btn.cream{background:var(--paper);color:var(--navy);}
.btn.cream:hover{background:#fff;}

/* ---------- Section heads ---------- */
.eyebrow{color:var(--accent);margin-bottom:16px;display:block;}
h2{font-family:var(--serif);font-weight:500;font-size:clamp(32px,4.4vw,54px);line-height:1.08;letter-spacing:-.01em;color:var(--navy);margin-bottom:18px;}
.sec-head{max-width:820px;}
.sec-head p{color:var(--ink-soft);font-size:18px;max-width:62ch;}

/* ---------- Page hero (subpages) ---------- */
.subhero{background:var(--navy-deep);color:var(--paper);}
.subhero .wrap{padding-top:64px;padding-bottom:64px;}
.subhero .eyebrow{color:#E3B764;}
.subhero h1{font-family:var(--serif);font-weight:500;font-size:clamp(34px,5vw,60px);line-height:1.05;letter-spacing:-.015em;color:#fff;margin-bottom:18px;max-width:20ch;}
.subhero h1 em{font-style:italic;color:#A9C1E4;}
.subhero p{font-size:clamp(16px,1.4vw,19px);color:#A9BAD3;max-width:60ch;}

/* ---------- Generic section ---------- */
.section{border-top:1px solid var(--rule);}
.section .wrap{padding-top:70px;padding-bottom:78px;}

/* ---------- Prose ---------- */
.prose{max-width:70ch;}
.prose p{font-size:18px;color:var(--ink-soft);margin-bottom:1.15em;}
.prose p.lead-para{font-family:var(--serif);font-size:22px;line-height:1.6;color:var(--ink);}
.prose h3{font-family:var(--serif);font-weight:500;font-size:26px;color:var(--navy);margin:1.4em 0 .5em;}

/* ---------- Panels ---------- */
.panel{border:1px solid var(--rule);padding:36px;background:var(--card);background-image:var(--grain);}
.panel h3{font-family:var(--serif);font-weight:500;font-size:26px;color:var(--navy);margin-bottom:12px;}
.panel p{font-size:15.5px;color:var(--ink-soft);margin-bottom:16px;}

/* ---------- Photo galleries ---------- */
.gallery{columns:3 260px;column-gap:16px;}
.gallery.two{columns:2 340px;}
figure.photo{break-inside:avoid;margin:0 0 16px;border:1px solid var(--rule);background:var(--card);overflow:hidden;display:inline-block;width:100%;}
figure.photo > img{width:100%;height:auto;display:block;}
figure.photo .frame{position:relative;aspect-ratio:4/3;background:var(--paper-2);display:flex;align-items:center;justify-content:center;overflow:hidden;}
figure.photo .frame.portrait{aspect-ratio:3/4;}
figure.photo .frame img{width:100%;height:100%;object-fit:cover;display:block;}
figure.photo .ph{border:1px dashed #B7AD93;position:absolute;inset:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink-faint);font-size:13px;padding:16px;line-height:1.5;}
figure.photo .ph strong{color:var(--ink-soft);font-weight:600;}
figure.photo .ph small{display:block;margin-top:6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.8;}
figure.photo figcaption{padding:12px 14px;font-size:13.5px;color:var(--ink-soft);border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;gap:10px;}
figure.photo figcaption a{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--accent-deep);white-space:nowrap;}
figure.photo figcaption a:hover{color:var(--accent);}

/* how-to note */
.usenote{border-left:3px solid var(--gold);background:var(--paper-2);padding:16px 20px;margin-bottom:34px;font-size:15px;color:var(--ink-soft);line-height:1.6;}
.usenote strong{color:var(--ink);}

/* ---------- Footer ---------- */
footer{background:var(--navy-deep);color:#A9BAD3;font-size:14.5px;}
footer .wrap{padding-top:64px;padding-bottom:44px;}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:44px;}
@media(max-width:720px){footer .cols{grid-template-columns:1fr;}}
footer h4{color:#fff;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px;}
footer a{color:#CFE0F5;text-decoration:none;}
footer a:hover{color:#fff;}
footer ul{list-style:none;}
footer li{padding:5px 0;}
.disclaimer{border:1px solid rgba(247,242,231,.32);padding:16px 20px;text-align:center;font-size:13px;color:#DCE7F5;margin-bottom:18px;letter-spacing:.02em;}
.foot-legal{text-align:center;font-size:12px;color:#5F769A;}

/* ---------- Responsive ---------- */
@media(max-width:720px){
  .mast-top{display:none;}
  .mast-nav{gap:2px;}
  .mast-nav a{padding:7px 9px;font-size:12px;}
}
