/* ===================================================================
   Pages & misc templates: default page, contact, team, media
   publications, author head, search head, 404, link-in-bio page.
   =================================================================== */

/* ---- default page (generic long-form prose: privacy, terms, editorial) ---- */
.page-content{margin-bottom:40px;}
.page-content.is-narrow > :not(.alignwide):not(.alignfull){max-width:720px; width:100%; margin-left:auto; margin-right:auto;}
.page-content.is-narrow > .wp-block-image:not(.alignwide):not(.alignfull) img{width:100%; height:auto;}
.page-head:has(+ .page-content.is-narrow){max-width:720px; margin-left:auto; margin-right:auto; margin-bottom:20px;}
.page-head + .page-content.is-narrow{margin-top:0;}
.page-content.is-narrow{font-size:16px; line-height:1.75;}
.page-content.is-narrow p{font-size:16px; line-height:1.75;}
.page-content.is-narrow p.lead,.page-content.is-narrow p.has-large-font-size{font-family:var(--font-display); font-size:19px; font-weight:200; line-height:1.55; opacity:.85;}
.page-content.is-narrow h2{font-size:26px; text-transform:uppercase; letter-spacing:.02em; margin-top:48px; margin-bottom:16px;}
.page-content.is-narrow h2:first-child{margin-top:0;}
.page-content.is-narrow h3{font-size:19px; margin-top:32px; margin-bottom:12px;}
.page-content.is-narrow blockquote:not(.tiktok-embed):not(.instagram-media):not(.twitter-tweet){border-left:3px solid var(--gold); background:var(--cream); padding:22px 28px; margin:32px auto; font-family:var(--font-display); font-size:20px; font-weight:200; line-height:1.5; font-style:italic;}
.page-content.is-narrow blockquote cite{display:block; margin-top:12px; font-family:var(--font-mono); font-size:11.5px; font-style:normal; font-weight:700; text-transform:uppercase; letter-spacing:.04em; opacity:.55;}
.page-content.is-narrow figure:not(.alignwide):not(.alignfull) img{border:1.5px solid var(--ink);}
.page-content.is-narrow figcaption{font-family:var(--font-mono); font-size:11px; opacity:.5; margin-top:8px; text-transform:uppercase; letter-spacing:.03em; text-align:left;}
.page-content.is-narrow hr{border:none; height:1px; background:var(--ink); opacity:.15; margin:44px auto;}
.page-content.is-narrow hr.is-style-dots{height:0; border-top:1.5px dotted var(--ink); background:none; opacity:.4;}
.page-content.is-narrow hr.is-style-wide{height:2px; background:var(--gold); opacity:1;}
.page-links{display:flex; flex-wrap:wrap; gap:8px; margin-top:32px; font-family:var(--font-mono); font-size:12px; font-weight:700;}
.page-links a,.page-links > span{border:1.5px solid var(--ink); padding:6px 11px;}

/* ---- contact: intro (title, socials) beside the form ---- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;}
.contact-grid.no-image{grid-template-columns:1fr 1fr;}
.contact-intro .page-head{margin-bottom:14px;}
.contact-intro .lede{font-size:15px; line-height:1.7; opacity:.75; max-width:38ch;}
.contact-social{display:flex; gap:10px; margin-top:26px;}
.contact-social a{width:36px; height:36px; border:1.5px solid var(--ink); display:flex; align-items:center; justify-content:center; color:var(--ink); transition:background .15s ease, color .15s ease;}
.contact-social a:hover{background:var(--ink); color:var(--gold);}
.contact-social svg{width:15px; height:15px;}
.contact-photo{margin:28px 0 0; border:1.5px solid var(--ink); box-shadow:10px 10px 0 var(--mgshop); overflow:hidden;}
.contact-photo img{width:100%; height:auto; display:block;}
/* the form (any plugin / block): underline fields, mono labels — presentation only */
.contact-form-col label{display:block; font-family:var(--font-mono); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; opacity:.6; margin-bottom:8px;}
.contact-form-col :is(input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],textarea,select){border:none; border-bottom:1.5px solid var(--ink); background:transparent; font-family:var(--font); font-size:15px; color:var(--ink); padding:8px 2px; outline:none; resize:vertical; transition:border-color .15s ease;}
.contact-form-col :is(input,textarea,select):focus{border-color:var(--orange); box-shadow:none;}
.contact-form-col textarea{min-height:120px;}
.contact-form-col :is(input[type=submit],button[type=submit],.wpcf7-submit){margin-top:6px;}
.contact-form-col p{margin:0 0 20px;}

/* ---- team ---- */
.team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px 28px; list-style:none; margin:0; padding:0;}
.team-card{display:flex; flex-direction:column;}
.team-card .photo-wrap{position:relative; display:block; aspect-ratio:3/3.4; overflow:hidden; border:1.5px solid var(--ink); background:var(--cream);}
.team-card .photo-wrap img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease;}
.team-card:hover .photo-wrap img{transform:scale(1.04);}
.team-card .role-tag{position:absolute; left:0; bottom:16px; font-family:var(--font-mono); font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#fff; padding:7px 14px; max-width:88%;}
.team-card .role-tag.c-orange{background:var(--orange);}
.team-card .role-tag.c-lavender{background:var(--lavender-deep);}
.team-card .role-tag.c-green{background:var(--green);}
.team-card .role-tag.c-gold{background:var(--gold-deep);}
.team-card .role-tag.c-mgshop{background:var(--mgshop);}
.team-card h2{font-family:var(--font-display); font-size:19px; font-weight:700; line-height:1.25; margin-top:16px;}
.team-socials{display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:10px 0 0; padding:0;}
.team-socials a{width:28px; height:28px; border:1px solid var(--ink); display:flex; align-items:center; justify-content:center; color:var(--ink); font-family:var(--font-mono); font-size:10px; font-weight:700; text-transform:uppercase; transition:background .15s ease, color .15s ease;}
.team-socials a:hover{background:var(--ink); color:var(--cream);}
.team-socials svg{width:13px; height:13px;}

.team-single{display:grid; grid-template-columns:420px 1fr; gap:64px; align-items:start; max-width:1080px; margin:0 auto; width:100%;}
.team-single-photo{margin:0; border:1.5px solid var(--ink); box-shadow:10px 10px 0 var(--gold); overflow:hidden;}
.team-single-photo img{width:100%; height:auto; display:block;}
.team-single .page-head .eyebrow{display:block; margin-bottom:10px;}
.team-single .entry-content{margin-bottom:36px;}

/* ---- media publications ---- */
.media-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:30px; list-style:none; margin:0; padding:0;}
.media-card > a{--accent:var(--orange); display:flex; flex-direction:column; height:100%; border:1.5px solid var(--ink); background:var(--paper); padding:16px; box-shadow:6px 6px 0 var(--accent); transition:transform .15s ease, box-shadow .15s ease;}
.media-grid > :nth-child(5n+2) > a{--accent:var(--gold);} .media-grid > :nth-child(5n+3) > a{--accent:var(--mgshop);} .media-grid > :nth-child(5n+4) > a{--accent:var(--lavender-deep);} .media-grid > :nth-child(5n+5) > a{--accent:var(--green);}
.media-card > a:hover{transform:translate(-3px,-3px); box-shadow:9px 9px 0 var(--accent);}
.media-card .img-wrap{display:block; aspect-ratio:4/3; overflow:hidden; margin-bottom:14px;}
.media-card .img-wrap img{width:100%; height:100%; object-fit:cover;}
.media-card .eyebrow{display:block; margin-bottom:6px;}
.media-card h2{font-family:var(--font-display); font-size:16px; font-weight:700; line-height:1.3;}
.media-date{margin-top:auto; padding-top:10px; font-family:var(--font-mono); font-size:10.5px; opacity:.5;}

/* ---- author head ---- */
.author-head{display:grid; grid-template-columns:160px 1fr; gap:36px; align-items:center; padding-bottom:36px; margin-bottom:40px; border-bottom:2px solid var(--gold);}
.author-photo img{width:160px; height:160px; object-fit:cover; border-radius:50% !important; border:1.5px solid var(--ink); box-shadow:6px 6px 0 var(--lavender-deep); display:block;}
.author-info .eyebrow{display:block; margin-bottom:8px;}
.author-info h1{font-family:var(--font-display); font-size:38px; font-weight:700; line-height:1.15; text-transform:uppercase; letter-spacing:.03em;}
.author-info .lede{font-size:16px; line-height:1.6; opacity:.7; max-width:65ch; margin-top:12px;}
.author-info .lede > * + *{margin-top:.6em;}
.author-socials{display:flex; gap:10px; list-style:none; margin:18px 0 0; padding:0;}
.author-socials a{width:34px; height:34px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;}
.author-socials a:hover{background:var(--ink); color:var(--gold);}
.author-socials svg{width:15px; height:15px;}

/* ---- search / 404 head ---- */
.search-again{max-width:720px; margin-top:26px; border:1.5px solid var(--ink); box-shadow:6px 6px 0 var(--gold); background:var(--paper); padding:20px 22px;}
.not-found{padding-top:10px;}
.not-found-code{display:block; font-family:var(--font-display); font-size:120px; font-weight:800; line-height:.85; color:transparent; -webkit-text-stroke:1.5px var(--ink); margin-bottom:14px;}
.not-found-links{display:flex; flex-wrap:wrap; gap:14px; margin-top:28px;}

/* ---- link in bio (templates/insta.php) ---- */
.mg-insta .insta-page{max-width:560px; margin:0 auto; padding:36px 16px 60px; position:relative; z-index:1;}
.insta-head{text-align:center; margin-bottom:28px;}
.insta-logo img{height:48px; width:auto; margin:0 auto;}
.insta-head h1{font-family:var(--font-display); font-size:22px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-top:18px;}
.insta-socials{display:flex; justify-content:center; gap:10px; list-style:none; margin:16px 0 0; padding:0;}
.insta-socials a{width:36px; height:36px; border:1.5px solid var(--ink); background:var(--paper); display:flex; align-items:center; justify-content:center;}
.insta-socials a:hover{background:var(--ink); color:var(--gold);}
.insta-socials svg{width:16px; height:16px;}
.insta-intro{text-align:center; font-size:15px; margin-bottom:24px;}
.insta-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; list-style:none; margin:0; padding:0;}
.insta-card{--accent:var(--gold); display:flex; flex-direction:column; height:100%; border:1.5px solid var(--ink); background:var(--paper); padding:10px; box-shadow:5px 5px 0 var(--accent); transition:transform .15s ease, box-shadow .15s ease;}
.insta-grid > :nth-child(4n+2) .insta-card{--accent:var(--orange);} .insta-grid > :nth-child(4n+3) .insta-card{--accent:var(--mgshop);} .insta-grid > :nth-child(4n+4) .insta-card{--accent:var(--lavender-deep);}
.insta-card:hover{transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--accent);}
.insta-card .img-wrap{display:block; aspect-ratio:1; overflow:hidden; margin-bottom:10px;}
.insta-card .img-wrap img{width:100%; height:100%; object-fit:cover;}
.insta-title{font-family:var(--font-display); font-size:14px; font-weight:700; line-height:1.3;}
.insta-home{display:flex; margin:36px auto 0; align-self:center; width:max-content; max-width:100%;}

@media (max-width:1080px){
  .contact-grid{grid-template-columns:1fr; gap:36px;}
  .contact-photo{max-width:560px;}
  .team-grid,.media-grid{grid-template-columns:repeat(3,1fr); gap:24px;}
  .team-single{grid-template-columns:1fr; gap:32px;}
  .team-single-photo{max-width:420px;}
}
@media (max-width:640px){
  .team-grid,.media-grid{grid-template-columns:repeat(2,1fr); gap:16px;}
  .media-card > a{padding:10px; box-shadow:4px 4px 0 var(--accent);}
  .team-card h2{font-size:16px;}
  .author-head{grid-template-columns:1fr; gap:20px; text-align:left;}
  .author-photo img{width:110px; height:110px;}
  .author-info h1{font-size:27px;}
  .not-found-code{font-size:84px;}
  .search-again{padding:16px;}
  .insta-grid{gap:12px;}
}

/* ---- brands (WooCommerce brands, templates/brands.php) ---- */
.brands-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; list-style:none; margin:0; padding:0;}
.brand-tile{display:flex; align-items:center; justify-content:center; height:150px; padding:28px; border:1.5px solid var(--ink); background:var(--paper); box-shadow:6px 6px 0 var(--gold); transition:transform .15s ease, box-shadow .15s ease;}
.brand-tile:hover{transform:translate(-2px,-2px); box-shadow:8px 8px 0 var(--gold);}
.brand-tile img{max-width:100%; max-height:100%; object-fit:contain;}
.brand-name{font-family:var(--font-display); font-size:20px; font-weight:700; text-align:center;}
@media (max-width:900px){
  .team-grid,.brands-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .team-grid,.brands-grid{grid-template-columns:1fr;}
  .brand-tile{height:120px; padding:20px;}
}
